Codebase list gupnp-dlna / d103eba
Imported Upstream version 0.6.0 Andreas Henriksson 13 years ago
79 changed file(s) with 5688 addition(s) and 12691 deletion(s). Raw diff Collapse all Expand all
00 # Generated by Makefile. Do not edit.
11
2 commit 7b9417d405230781d578c5ec157e2f03c0106b6f
3 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
2 commit: 678ed97 678ed97c051fb8d65340749be950d56ba8f336f3
3 Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
4 Date: Thu Apr 7 17:05:38 2011 +0300
5
6 Relase 0.6.0
7
8
9 NEWS | 25 +++++++++++++++++++++++++
10 configure.ac | 2 +-
11 2 files changed, 26 insertions(+), 1 deletions(-)
12 commit: 4e7b27e 4e7b27e911de5dcda1135dd0a3887c4f9aa2374c
13 Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
14 Date: Thu Mar 10 16:50:16 2011 +0200
15
16 Test media moved to gitorious
17
18
19 tests/test-discoverer.sh.in | 2 +-
20 1 files changed, 1 insertions(+), 1 deletions(-)
21 commit: 14930e3 14930e3a46e0b3401f1ab7de89a08b9f8eae9556
22 Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
23 Date: Wed Mar 9 17:42:48 2011 +0200
24
25 Relax some video restrictions for MPEG TS
26
27 Relax pixel-aspect-ratio and video bitrate restrictions for MPEG TS.
28
29
30 data/mpeg-ts.xml | 40 ++++++++++++++++++++--------------------
31 1 files changed, 20 insertions(+), 20 deletions(-)
32 commit: 469f7cb 469f7cb3ea509885f5115d4a959b159696a06dab
33 Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
34 Date: Fri Mar 4 19:51:20 2011 +0200
35
36 Add 'MPEG_TS_SD_EU_ISO' profile
37
38
39 data/mpeg-ts.xml | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
40 1 files changed, 108 insertions(+), 0 deletions(-)
41 commit: cead8da cead8dafd2919176e2495e6bad981b8152d57ba8
42 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
43 Date: Thu Feb 24 20:10:03 2011 +1100
44
45 Fix return types for getter functions
46
47 The getter functions for GUPnPDLNAProfile to get video/audio/container caps
48 need to return const.
49
50
51 libgupnp-dlna/gupnp-dlna-profile.c | 7 ++++---
52 1 files changed, 4 insertions(+), 3 deletions(-)
53 commit: 3ab68a6 3ab68a6ed2f57455370b0b64b158ba188d0a74d8
54 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
55 Date: Thu Feb 24 20:04:53 2011 +1100
56
57 Add header guard to gupnp-dlna-profile-private.h
58
59
60 libgupnp-dlna/gupnp-dlna-profile-private.h | 7 +++++++
61 1 files changed, 7 insertions(+), 0 deletions(-)
62 commit: 71f4d0c 71f4d0cd88f4e229a2a28ed87b97b3e0695d9a4c
63 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
64 Date: Wed Feb 23 15:21:32 2011 +1100
65
66 Rename gupnp-dlna-load.[hc] to profile-loading.[hc]
67
68
69 doc/Makefile.am | 2 +-
70 libgupnp-dlna/Makefile.am | 4 +-
71 libgupnp-dlna/gupnp-dlna-discoverer.c | 2 +-
72 libgupnp-dlna/gupnp-dlna-load.c | 925 ---------------------------------
73 libgupnp-dlna/gupnp-dlna-load.h | 56 --
74 libgupnp-dlna/profile-loading.c | 925 +++++++++++++++++++++++++++++++++
75 libgupnp-dlna/profile-loading.h | 56 ++
76 tests/dlna-profile-parser.c | 2 +-
77 tools/gupnp-dlna-info.c | 2 +-
78 9 files changed, 987 insertions(+), 987 deletions(-)
79 commit: 4974665 497466586f77755ba442f5cea9c5b83a44621837
80 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
81 Date: Fri Feb 11 23:20:10 2011 +1100
82
83 Remove misleading 'Priv' suffix
84
85 Remove the misleading 'Priv' suffix from GUPnPDLNARestrictionsPriv. This
86 internal structure is now known as 'GUPnPDLNARestrictions'.
87
88
89 libgupnp-dlna/gupnp-dlna-load.c | 34 +++++++++++++++++-----------------
90 libgupnp-dlna/gupnp-dlna-load.h | 2 +-
91 tests/dlna-profile-parser.c | 10 +++++-----
92 3 files changed, 23 insertions(+), 23 deletions(-)
93 commit: b66813f b66813feef500ab94b43677181c40d421f54a3f2
94 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
95 Date: Fri Feb 11 22:34:32 2011 +1100
96
97 Fix indentation.
98
99
100 libgupnp-dlna/gupnp-dlna-profile.c | 12 ++++++------
101 1 files changed, 6 insertions(+), 6 deletions(-)
102 commit: 3ba3e70 3ba3e70443fcf78f4ab2e10fd27b41bfc778c5ef
103 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
104 Date: Tue Feb 8 01:37:13 2011 +1100
105
106 No doc for gupnp_dlna_profile_new()
107
108 gupnp_dlna_profile_new() is no more a public api. It is internal now, so
109 it isn't documented anymore.
110
111
112 libgupnp-dlna/gupnp-dlna-profile.c | 7 -------
113 1 files changed, 0 insertions(+), 7 deletions(-)
114 commit: f63964d f63964dd828ccba805861c7041cd2d0df5d43b12
115 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
116 Date: Tue Feb 8 01:30:42 2011 +1100
117
118 Hilight test failure
119
120 Make the failure of the tests more obvious. Failure messages now appear
121 in red.
122
123
124 tests/test-discoverer.sh.in | 2 +-
125 1 files changed, 1 insertions(+), 1 deletions(-)
126 commit: 298fa25 298fa252c6d92a22cb2cbbc6a02d476e233032c3
127 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
128 Date: Tue Feb 8 01:26:00 2011 +1100
129
130 Refactor gupnp_dlna_profile_get_encoding_profile
131
132 This patch results in a cleaner and a more concise implementation of the
133 gupnp_dlna_profile_get_encoding_profile () api in gupnp-dlna-profile.c
134
135
136 libgupnp-dlna/gupnp-dlna-profile.c | 60 ++++++++++++++++++++++++------------
137 1 files changed, 40 insertions(+), 20 deletions(-)
138 commit: d83f79e d83f79ea7d2dd9f52b0295e82dafed722d6cbcd6
139 Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
140 Date: Tue Feb 8 17:58:29 2011 +0200
141
142 Remove redundant initializations
143
144 The private structures are zero'ed out for us so there is no need to
145 explicitly unset individual fields.
146
147
148 libgupnp-dlna/gupnp-dlna-profile.c | 6 ------
149 1 files changed, 0 insertions(+), 6 deletions(-)
150 commit: 6face8c 6face8cfd6d3a44b89dcd437ef354a61c872f778
151 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
152 Date: Mon Feb 7 22:21:08 2011 +1100
153
154 Free caps in GUPnPDLNAProfilePriv
155
156 This patch frees the container/video/audio caps in GUPnPDLNAProfilePriv
157
158
159 libgupnp-dlna/gupnp-dlna-profile.c | 7 +++++++
160 1 files changed, 7 insertions(+), 0 deletions(-)
161 commit: cc09d19 cc09d19d16ca677bca7bab193a8914aff8bd768a
162 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
163 Date: Sat Feb 5 13:05:35 2011 +1100
164
165 More gtk-doc cleanups
166
167 Removes several warnings about missing documenation.
168
169
170 libgupnp-dlna/gupnp-dlna-discoverer.c | 2 ++
171 libgupnp-dlna/gupnp-dlna-information.c | 2 +-
172 libgupnp-dlna/gupnp-dlna-profile.h | 6 ++++++
173 3 files changed, 9 insertions(+), 1 deletions(-)
174 commit: 522043d 522043d662a7d29d3bcdade047ffe7e3e3f037ef
175 Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
176 Date: Tue Feb 8 17:44:21 2011 +0200
177
178 Check for empty caps after merge
179
180
181 libgupnp-dlna/gupnp-dlna-load.c | 7 ++++---
182 1 files changed, 4 insertions(+), 3 deletions(-)
183 commit: cec5214 cec52144586d8bc9799cf9463974a6913b193aa2
184 Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
185 Date: Tue Feb 8 17:43:47 2011 +0200
186
187 Use container caps when inheriting from base profile
188
189 Use the container caps from the base profile (if it exists). This will be
190 the format(caps) of a GstEncondingContainerProfile.
191
192
193 libgupnp-dlna/gupnp-dlna-load.c | 5 +++++
194 1 files changed, 5 insertions(+), 0 deletions(-)
195 commit: 2bfafa6 2bfafa65ae6d0cae616fa78683c283147a62a9eb
196 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
197 Date: Fri Feb 4 20:16:17 2011 +1100
198
199 Fix profile parsing logic for images
200
201
202 libgupnp-dlna/gupnp-dlna-profiles.c | 2 +-
203 1 files changed, 1 insertions(+), 1 deletions(-)
204 commit: be1b2ee be1b2eeab8530b4b578a2b5cfdc8b30437d0a2ab
205 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
206 Date: Fri Feb 4 16:11:34 2011 +1100
207
208 Remove format I420 field from XML
209
210 Gstreamer currently doesn't export the format field so dropping the field
211 for now.
212
213
214 data/avc.xml | 3 ---
215 data/mpeg-ts.xml | 3 ---
216 data/mpeg4.xml | 6 ------
217 3 files changed, 0 insertions(+), 12 deletions(-)
218 commit: d8a779d d8a779d56f45d4eae9af5619bb6bb46411ee10f5
219 Author: Luis de Bethencourt <luis@debethencourt.com>
220 Date: Thu Feb 3 17:56:02 2011 +0100
221
222 Added documentation to test-discoverer
223
224 Added some documentation to test-discoverer.sh.in so it
225 is obvious where the test media folder should be.
226
227
228 tests/test-discoverer.sh.in | 6 ++++++
229 1 files changed, 6 insertions(+), 0 deletions(-)
230 commit: b5194ac b5194ac6cb322f9870c3d8f7903e8ccaa06b50a4
231 Author: Luis de Bethencourt <luis@debethencourt.com>
232 Date: Thu Feb 3 13:42:44 2011 +0100
233
234 Get rid of nasty warnings when building docs
235
236 Added a SCANGOBJ_OPTIONS in the Makefile.am so gst_init is
237 executed before using gstreamer in the gupnp-dlna-scan.
238
239
240 doc/Makefile.am | 2 +-
241 1 files changed, 1 insertions(+), 1 deletions(-)
242 commit: ad5a524 ad5a5243c3a24f736f56fc337750b42d5ef847e2
243 Author: Luis de Bethencourt <luis@debethencourt.com>
244 Date: Thu Feb 3 13:41:27 2011 +0100
245
246 Only initialize thread system once
247
248 Added a check to see if g_threads are supported before initializing
249 g_threads.
250
251
252 tests/dlna-profile-parser.c | 3 ++-
253 tools/gupnp-dlna-info.c | 3 ++-
254 tools/gupnp-dlna-ls-profiles.c | 3 ++-
255 3 files changed, 6 insertions(+), 3 deletions(-)
256 commit: b0412f7 b0412f76cf67e4369bea1387f80c49ace1f5fa8d
257 Author: Luis de Bethencourt <luis@debethencourt.com>
258 Date: Wed Feb 2 12:39:17 2011 +0100
259
260 Clear the ChangeLog file
261
262 The ChangeLog was obsolete and since it's use has been replaced
263 by git log, an empty ChangeLog file is kept to satisfy autools.
264
265
266 ChangeLog | 4 ----
267 1 files changed, 0 insertions(+), 4 deletions(-)
268 commit: 50b8b2a 50b8b2a18bf5062bba16d7ca2521fec11d762666
269 Author: Luis de Bethencourt <luis@debethencourt.com>
270 Date: Mon Jan 31 16:58:44 2011 +0100
271
272 libgupnp-dlna/gupnp-dlna-load.c: removing unused variable.
273
274
275 libgupnp-dlna/gupnp-dlna-load.c | 4 +---
276 1 files changed, 1 insertions(+), 3 deletions(-)
277 commit: 4c7a3dd 4c7a3ddee6a3e840a549933ee85048718b32603a
278 Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
279 Date: Fri Jan 21 23:16:35 2011 +0200
280
281 Release 0.5.1
282
283
284 NEWS | 21 +++++++++++++++++++++
285 configure.ac | 2 +-
286 2 files changed, 22 insertions(+), 1 deletions(-)
287 commit: e7c3bfb e7c3bfb13ef238870636d50fb143d8ffe1a958bb
288 Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
289 Date: Fri Jan 21 20:51:24 2011 +0200
290
291 build: Require pbutils >= 0.10.32
292
293
294 configure.ac | 2 +-
295 1 files changed, 1 insertions(+), 1 deletions(-)
296 commit: 3b09dea 3b09dea9748dd8740e1e3d380d8f0dc8206747c6
297 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
298 Date: Wed Jan 19 14:08:38 2011 +0530
299
300 libgupnp-dlna: Drop internalize gst-convenience
301
302 With gupnp-dlna now using encoding-profile from base, we get rid of the
303 internal copy of gst-convenience.
304
305 tools/tests: Plug memory leak unref the encoding_profile after calling
306 gupnp_dlna_get_encoding_profile(). 100 points goes to Partha for putting
307 this unrelated change here.
308
309
310 README.gst-convenience | 25 -
311 gst-convenience/Makefile.am | 16 -
312 gst-convenience/gst-libs/Makefile.am | 1 -
313 gst-convenience/gst-libs/gst/Makefile.am | 3 -
314 gst-convenience/gst-libs/gst/gettext.h | 69 ---
315 gst-convenience/gst-libs/gst/gst-i18n-plugin.h | 37 --
316 gst-convenience/gst-libs/gst/profile/Makefile.am | 85 ---
317 .../gst-libs/gst/profile/gstfactorylists.c | 578 --------------------
318 .../gst-libs/gst/profile/gstfactorylists.h | 99 ----
319 gst-convenience/gst-libs/gst/profile/gstprofile.c | 376 -------------
320 gst-convenience/gst-libs/gst/profile/gstprofile.h | 230 --------
321 .../gst-libs/gst/profile/gstprofileutils.c | 184 -------
322 .../gst-libs/gst/profile/profile-enumtypes.c | 29 -
323 .../gst-libs/gst/profile/profile-enumtypes.h | 19 -
324 .../gstreamer-profile-gupnp-dlna-0.10.deps | 1 -
325 .../gstreamer-profile-gupnp-dlna-0.10.vapi | 78 ---
326 tests/dlna-profile-parser.c | 1 +
327 tools/gupnp-dlna-ls-profiles.c | 1 +
328 18 files changed, 2 insertions(+), 1830 deletions(-)
329 commit: 5735728 5735728f2608d2e055a9417bd775c4353b3496c3
330 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
331 Date: Wed Jan 19 12:03:40 2011 +0530
332
333 libgupnp-dlna: Add encoding_profile prop to GUPnPDLNAProfile
334
335 Add "encoding_profile" property to GUPnPDLNAProfile. This makes for nicer
336 code in bindings.
337
338
339 libgupnp-dlna/gupnp-dlna-load.c | 9 +++++----
340 libgupnp-dlna/gupnp-dlna-profile.c | 21 +++++++++++++++++++--
341 libgupnp-dlna/gupnp-dlna-profiles.c | 25 +++++++++++++------------
342 3 files changed, 37 insertions(+), 18 deletions(-)
343 commit: b1c0653 b1c0653b1cfff963e90bfbbbb262a4e75f7e0b30
344 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
345 Date: Thu Jan 6 18:12:13 2011 +0530
346
347 libgupnp-dlna: Use encoding-profile from plugins-base
348
349 - Give up on the local copy of gstprofile (from gst-convenience) and use
350 the encoding-profile api from gst-plugins-base.
351
352 - Stop using GstEncodingProfile for in memory representation of the on
353 disk XML profiles but rather create GstEncodingProfile on the fly.
354
355 - We now use a single GstCaps variable each for audio/video and container
356 instead of a GList and merge them as they are processed from the XML file.
357
358
359 Makefile.am | 2 +-
360 configure.ac | 4 -
361 doc/Makefile.am | 2 -
362 libgupnp-dlna/Makefile.am | 5 +-
363 libgupnp-dlna/gupnp-dlna-discoverer.h | 2 +-
364 libgupnp-dlna/gupnp-dlna-information.h | 2 +-
365 libgupnp-dlna/gupnp-dlna-load.c | 264 ++++++++++++----------------
366 libgupnp-dlna/gupnp-dlna-load.h | 5 +
367 libgupnp-dlna/gupnp-dlna-profile-private.h | 37 ++++
368 libgupnp-dlna/gupnp-dlna-profile.c | 140 +++++++++++----
369 libgupnp-dlna/gupnp-dlna-profile.h | 9 +-
370 libgupnp-dlna/gupnp-dlna-profiles.c | 85 ++++++----
371 tests/Makefile.am | 4 +-
372 tests/dlna-encoding.c | 8 +-
373 tests/dlna-profile-parser.c | 32 +++-
374 tools/Makefile.am | 8 +-
375 tools/gupnp-dlna-info.c | 3 +-
376 tools/gupnp-dlna-ls-profiles.c | 17 +-
377 18 files changed, 364 insertions(+), 265 deletions(-)
378 commit: 1460166 146016623735b7b0e7330e31daecb1919487c0bd
379 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
380 Date: Tue Jan 18 18:45:20 2011 +0530
381
382 libgupnp-dlna: discover_uri_* don't take ownership of the uri
383
384 This marks the 'uri' argument as a const since we don't take ownership
385 of the string (GstDiscoverer makes a copy).
386
387
388 libgupnp-dlna/gupnp-dlna-discoverer.c | 5 +++--
389 libgupnp-dlna/gupnp-dlna-discoverer.h | 4 ++--
390 2 files changed, 5 insertions(+), 4 deletions(-)
391 commit: 72cdaeb 72cdaebd5b1dcc2ebe4d59ce97bd35fa5ab8aec8
392 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
393 Date: Tue Jan 11 13:06:29 2011 +0530
394
395 build: Explicitly link pbutils
396
397 This is required by gupnp-dlna-info. Thanks to Peter Robinson for
398 pointing this out.
399
400
401 tools/Makefile.am | 2 ++
402 1 files changed, 2 insertions(+), 0 deletions(-)
403 commit: 61e5118 61e5118e4b0d3ee593ff6b2874db5f2a7f3f8b2d
404 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
405 Date: Fri Jan 7 21:07:10 2011 +0530
406
407 doc: fix typo in NEWS
408
409
410 NEWS | 2 +-
411 1 files changed, 1 insertions(+), 1 deletions(-)
412 commit: c18f261 c18f2618fec62d71a851818109265340b6336fe5
413 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
414 Date: Fri Jan 7 20:16:39 2011 +0530
415
416 doc: Update NEWS for 0.5.0
417
418
419 NEWS | 13 +++++++++++++
420 1 files changed, 13 insertions(+), 0 deletions(-)
421 commit: 57bc5ca 57bc5ca3c7a1ae516ec4b4da90556e0efff78b69
422 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
423 Date: Fri Jan 7 20:14:06 2011 +0530
424
425 build: Bump version to 0.5.0
426
427
428 configure.ac | 2 +-
429 1 files changed, 1 insertions(+), 1 deletions(-)
430 commit: 473de1b 473de1ba4dd09c11949a8f79e4b718b8ecb695a4
431 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
432 Date: Fri Jan 7 20:12:57 2011 +0530
433
434 build: bump so version to 2 (GUPNP_DLNA_CURRENT)
435
436
437 configure.ac | 2 +-
438 1 files changed, 1 insertions(+), 1 deletions(-)
439 commit: 88fe248 88fe248db9e0576c7f1cad9b3bd8b8d42f409ae4
440 Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
441 Date: Fri Jan 7 16:07:19 2011 +0200
442
443 build: Bump pbutils dep to 0.10.31
444
445
446 configure.ac | 2 +-
447 1 files changed, 1 insertions(+), 1 deletions(-)
448 commit: d85e418 d85e418b4a606afda892708778d306bb114503a3
449 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
450 Date: Wed Jan 5 22:26:25 2011 +0530
451
452 libgupnp-dlna: fix coding style issues
453
454
455 libgupnp-dlna/gupnp-dlna-discoverer.c | 45 ++++++++-----
456 libgupnp-dlna/gupnp-dlna-discoverer.h | 44 +++++++-------
457 libgupnp-dlna/gupnp-dlna-information.c | 41 ++++++++----
458 libgupnp-dlna/gupnp-dlna-information.h | 34 ++++++----
459 libgupnp-dlna/gupnp-dlna-load.c | 54 +++++++++-------
460 libgupnp-dlna/gupnp-dlna-profile.c | 35 ++++++-----
461 libgupnp-dlna/gupnp-dlna-profile.h | 28 ++++----
462 libgupnp-dlna/gupnp-dlna-profiles.c | 108 ++++++++++++++++---------------
463 8 files changed, 220 insertions(+), 169 deletions(-)
464 commit: df06d47 df06d4745be6c849218df0995ae7bf1bafd5b8cd
465 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
466 Date: Thu Dec 9 16:20:49 2010 +0530
467
468 libgupnp-dlna: use g_new0 instead of g_new
469
470
471 libgupnp-dlna/gupnp-dlna-load.c | 2 +-
472 1 files changed, 1 insertions(+), 1 deletions(-)
473 commit: 4fb8242 4fb82426a37ef14cf1b5e3b4de44b9ae36d0c2d5
474 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
475 Date: Mon Dec 6 23:48:50 2010 +0530
476
477 libgupnp-dlna: bug fix in gupnp-dlna-load.c
478
479 add missing brances in process_parent(), fix
480 parsing issue.
481
482
483 libgupnp-dlna/gupnp-dlna-load.c | 7 ++++---
484 1 files changed, 4 insertions(+), 3 deletions(-)
485 commit: 14cce9f 14cce9f639c1fdbbd9ca80b2b582da5c6a64e363
486 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
487 Date: Tue Nov 30 13:47:51 2010 +0530
488
489 libgupnp-dlna: Coding style fixes
490
491
492 libgupnp-dlna/gupnp-dlna-load.c | 29 ++++++++++++++---------------
493 1 files changed, 14 insertions(+), 15 deletions(-)
494 commit: e4d4de7 e4d4de72e174c97c18217cb5a9e36fc12e49d7c7
495 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
496 Date: Wed Nov 24 17:04:31 2010 +0530
497
498 tests: Add libxml cflags/libs for compilation
499
500 These are just required for xmlFree()
501
502
503 tests/Makefile.am | 3 ++-
504 1 files changed, 2 insertions(+), 1 deletions(-)
505 commit: c98ac50 c98ac5039f31d60c7fd6e35f8b690c82efe08a63
506 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
507 Date: Tue Nov 9 23:49:17 2010 +0530
508
509 libgupnp-dlna: Plug a leak at XML load time
510
511
512 libgupnp-dlna/gupnp-dlna-load.c | 4 ++--
513 1 files changed, 2 insertions(+), 2 deletions(-)
514 commit: 4a09b8c 4a09b8c9e00dc16e9b4e70fcb1ff3abf3936bc58
515 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
516 Date: Tue Nov 9 11:45:30 2010 +0530
517
518 libgupnp-dlna: changes in function signatures.
519
520 This changes the function signatures of processing
521 functions in gupnp-dlna-load.c, which now take the
522 GUPnPDLNALoadState as an argument.
523
524
525 libgupnp-dlna/gupnp-dlna-load.c | 40 ++++++++++++++------------------------
526 1 files changed, 15 insertions(+), 25 deletions(-)
527 commit: 038cb4e 038cb4e3ebfdb00c665d74d93060286eda1413c0
528 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
529 Date: Mon Nov 8 22:55:14 2010 +0530
530
531 build: bump so version to 1 (GUPNP_DLNA_CURRENT)
532
533
534 configure.ac | 2 +-
535 1 files changed, 1 insertions(+), 1 deletions(-)
536 commit: b58a9c7 b58a9c7fae0c419d1f1add704651e623e7aec8fb
537 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
538 Date: Mon Nov 8 18:33:07 2010 +0530
539
540 gst-convenience: Remove gstreamer-discoverer-gupnp-dlna-0.10.deps and do not include it in make dist as a part of the move to GstDiscoverer from gst-plugins-base.
541
542
543 gst-convenience/Makefile.am | 4 ++--
544 .../gstreamer-discoverer-gupnp-dlna-0.10.deps | 2 --
545 2 files changed, 2 insertions(+), 4 deletions(-)
546 commit: 0017897 0017897a3248c53a71b145ba15fd4b3932d97b6b
547 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
548 Date: Mon Nov 8 18:18:39 2010 +0530
549
550 gst-convenience: remove the internal copy of discoverer now that gupnp-dlna uses GstDiscoverer from gst-plugins-base
551
552 Also remove the gstreamer-discoverer-gupnp-dlna-0.10.vapi as a part of the
553 move to GstDiscoverer from gst-plugins-base
554
555
556 .../gst-libs/gst/discoverer/Makefile.am | 87 --
557 .../gst/discoverer/gstdiscoverer-enumtypes.c | 48 -
558 .../gst/discoverer/gstdiscoverer-enumtypes.h | 21 -
559 .../gst/discoverer/gstdiscoverer-marshal.c | 89 --
560 .../gst/discoverer/gstdiscoverer-marshal.h | 20 -
561 .../gst/discoverer/gstdiscoverer-marshal.list | 1 -
562 .../gst-libs/gst/discoverer/gstdiscoverer-types.c | 452 -------
563 .../gst-libs/gst/discoverer/gstdiscoverer.c | 1242 --------------------
564 .../gst-libs/gst/discoverer/gstdiscoverer.h | 331 ------
565 .../gstreamer-discoverer-gupnp-dlna-0.10.vapi | 106 --
566 10 files changed, 0 insertions(+), 2397 deletions(-)
567 commit: ebaf122 ebaf1224086d3c05063deedae98b23ed082be3db
568 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
569 Date: Mon Nov 8 17:56:59 2010 +0530
570
571 build: Fix the issue with make distcheck by removing dependency on internal copy of discoverer
572
573
574 configure.ac | 1 -
575 1 files changed, 0 insertions(+), 1 deletions(-)
576 commit: f27cf32 f27cf32d9cc62c6ba00611c123b1acf54014ffb9
577 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
578 Date: Mon Nov 8 17:54:38 2010 +0530
579
580 doc: remove dependence on the internal copy of discoverer
581
582
583 doc/Makefile.am | 4 ++--
584 1 files changed, 2 insertions(+), 2 deletions(-)
585 commit: 3c16cd0 3c16cd05a10502dbd9cb21dcdac2d7d29338db7f
586 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
587 Date: Mon Nov 8 16:50:51 2010 +0530
588
589 libgupnp-dlna/tools: use GstDiscoverer from base
590
591 Use the GstDiscoverer from gst-plugins base instead of the internal
592 copy. This adds a dependency on gstreamer-pbutils. The tools/ and
593 tests/ have been updated to use the new discoverer api.
594
595
596 configure.ac | 7 +-
597 gst-convenience/gst-libs/gst/Makefile.am | 4 +-
598 libgupnp-dlna/Makefile.am | 7 +-
599 libgupnp-dlna/gupnp-dlna-discoverer.c | 10 +-
600 libgupnp-dlna/gupnp-dlna-discoverer.h | 2 +-
601 libgupnp-dlna/gupnp-dlna-information.c | 44 +++---
602 libgupnp-dlna/gupnp-dlna-information.h | 14 +-
603 libgupnp-dlna/gupnp-dlna-profiles.c | 263 +++++++++++++++++-------------
604 tests/Makefile.am | 3 -
605 tools/Makefile.am | 2 -
606 tools/gupnp-dlna-info.c | 247 ++++++++++++++--------------
607 11 files changed, 319 insertions(+), 284 deletions(-)
608 commit: d6ff45a d6ff45ad8277827474fffbef0cd04b294265712f
609 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
610 Date: Mon Oct 25 11:28:53 2010 +0100
611
612 tests: Add libxml header to dlna-profile-parser
613
614 This header is required for xmlFree(). The problem wasn't caught thus
615 far because in most cases, this gets included in some GStreamer header.
616
617
618 tests/dlna-profile-parser.c | 1 +
619 1 files changed, 1 insertions(+), 0 deletions(-)
620 commit: af2bc16 af2bc16aecbb62c4b0bcdc76362f5c4c68f46de3
621 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
622 Date: Mon Oct 25 10:50:27 2010 +0100
623
624 tools: Include stdio.h in gupnp-dlna-info.c
625
626 We need it for fprintf(), but somehow this didn't turn up as a warning
627 on any of our systems.
628
629
630 tools/gupnp-dlna-info.c | 1 +
631 1 files changed, 1 insertions(+), 0 deletions(-)
632 commit: 7b9417d 7b9417d405230781d578c5ec157e2f03c0106b6f
633 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
4634 Date: Thu Oct 14 20:06:41 2010 +0530
5635
6636 doc: Update NEWS for 0.4.2
637
7638
8639 NEWS | 12 ++++++++++++
9640 1 files changed, 12 insertions(+), 0 deletions(-)
10
11 commit 85fe3fc11568e75342e6c4aaaf321e7ae928c1f2
12 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
641 commit: 85fe3fc 85fe3fc11568e75342e6c4aaaf321e7ae928c1f2
642 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
13643 Date: Thu Oct 14 19:55:34 2010 +0530
14644
15645 build: Bump version to 0.4.2
16646
647
17648 configure.ac | 2 +-
18649 1 files changed, 1 insertions(+), 1 deletions(-)
19
20 commit a0524eef8de657234af4c23183b64cbed0efdb5d
21 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
650 commit: a0524ee a0524eef8de657234af4c23183b64cbed0efdb5d
651 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
22652 Date: Thu Oct 14 23:08:59 2010 +0530
23653
24654 tests: Skip tests if media is missing
655
25656
26657 tests/test-discoverer.sh.in | 7 +++++++
27658 1 files changed, 7 insertions(+), 0 deletions(-)
28
29 commit d83fcedb766a819601cf77b79d7db59277f9e8d3
30 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
659 commit: d83fced d83fcedb766a819601cf77b79d7db59277f9e8d3
660 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
31661 Date: Thu Oct 14 19:54:16 2010 +0530
32662
33663 gst-convenience: Undo discoverer namespace changes
664
34665
35666 .../gst-libs/gst/discoverer/gstdiscoverer.c | 120 ++++++++++----------
36667 .../gst-libs/gst/discoverer/gstdiscoverer.h | 54 +++++-----
38669 libgupnp-dlna/gupnp-dlna-discoverer.c | 16 +--
39670 libgupnp-dlna/gupnp-dlna-discoverer.h | 8 +-
40671 5 files changed, 99 insertions(+), 103 deletions(-)
41
42 commit f029c38c81eb49dd3d2055d130f11b2946b49b35
43 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
672 commit: f029c38 f029c38c81eb49dd3d2055d130f11b2946b49b35
673 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
44674 Date: Tue Oct 12 15:36:45 2010 +0530
45675
46676 doc: Update NEWS for 0.4.1
677
47678
48679 NEWS | 13 +++++++++++++
49680 1 files changed, 13 insertions(+), 0 deletions(-)
50
51 commit a034a30522707d6fec421b15f91667736f9fe9ee
52 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
681 commit: a034a30 a034a30522707d6fec421b15f91667736f9fe9ee
682 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
53683 Date: Wed Oct 6 11:52:20 2010 +0530
54684
55685 gst-convenience: Change GstDiscoverer namespace
59689 copy of gst-convenience. This change is necessary till we port
60690 gupnp-dlna to use GstDiscoverer from gst-plugins-base, after which the
61691 internal copy of discoverer can be discarded entirely.
692
62693
63694 .../gst-libs/gst/discoverer/gstdiscoverer.c | 120 ++++++++++----------
64695 .../gst-libs/gst/discoverer/gstdiscoverer.h | 54 +++++-----
66697 libgupnp-dlna/gupnp-dlna-discoverer.c | 16 ++-
67698 libgupnp-dlna/gupnp-dlna-discoverer.h | 8 +-
68699 5 files changed, 103 insertions(+), 99 deletions(-)
69
70 commit 6d04d56aab2764be24195accceb6f0dddc010105
71 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
700 commit: 6d04d56 6d04d56aab2764be24195accceb6f0dddc010105
701 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
72702 Date: Wed Oct 6 16:32:13 2010 +0530
73703
74704 build: Fix directory permissions during 'make install'
78708
79709 http://bugzilla.openedhand.com/show_bug.cgi?id=2199
80710
711
81712 gst-convenience/Makefile.am | 2 +-
82713 1 files changed, 1 insertions(+), 1 deletions(-)
83
84 commit 2acd682e2310784b85db5d7934f68608e88f2cce
85 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
714 commit: 2acd682 2acd682e2310784b85db5d7934f68608e88f2cce
715 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
86716 Date: Wed Oct 6 11:48:41 2010 +0530
87717
88718 build: Post-release version bump to 0.4.1
89719
720
90721 configure.ac | 2 +-
91722 1 files changed, 1 insertions(+), 1 deletions(-)
92
93 commit 639a04febc3869f25efec7d1e3f58b8d9b879836
94 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
723 commit: 639a04f 639a04febc3869f25efec7d1e3f58b8d9b879836
724 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
95725 Date: Mon Oct 4 00:31:51 2010 +0530
96726
97727 tests: remove dependency on pbutils and build dlna-encoding
728
98729
99730 configure.ac | 2 +-
100731 tests/Makefile.am | 2 +-
101732 tests/dlna-encoding.c | 1 -
102733 3 files changed, 2 insertions(+), 3 deletions(-)
103
104 commit 0f16b7b6eda00b5aca8df58426b9df903be6198e
105 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
734 commit: 0f16b7b 0f16b7b6eda00b5aca8df58426b9df903be6198e
735 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
106736 Date: Mon Sep 27 23:44:03 2010 +0530
107737
108738 NEWS: Update list of contributors to the release
739
109740
110741 NEWS | 2 ++
111742 1 files changed, 2 insertions(+), 0 deletions(-)
112
113 commit 8215bc2f3f128d8dcfbcf0e73cd32ced7e25c601
114 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
743 commit: 8215bc2 8215bc2f3f128d8dcfbcf0e73cd32ced7e25c601
744 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
115745 Date: Mon Sep 27 22:45:57 2010 +0530
116746
117747 doc: Update NEWS about linking against pbutils
748
118749
119750 NEWS | 1 +
120751 1 files changed, 1 insertions(+), 0 deletions(-)
121
122 commit a78e56cfa6d68de89b88e2f7319173e7cd3b2dfe
123 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
752 commit: a78e56c a78e56cfa6d68de89b88e2f7319173e7cd3b2dfe
753 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
124754 Date: Mon Sep 27 22:16:21 2010 +0530
125755
126756 tests: Don't build dlna-encoding temporarily
128758 This depends on pbutils, which, post gst-plugins-base 0.10.30, conflicts
129759 with our internal copy of GstDiscoverer.
130760
761
131762 tests/Makefile.am | 2 +-
132763 1 files changed, 1 insertions(+), 1 deletions(-)
133
134 commit e6295e62314c00d15e9d9e2d0ef688559430f569
135 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
764 commit: e6295e6 e6295e62314c00d15e9d9e2d0ef688559430f569
765 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
136766 Date: Mon Sep 27 22:12:32 2010 +0530
137767
138768 tools: Don't depend on pbutils
139769
140770 Removes the dependency on pbutils temporarily since internal
141771 gst-convenience conflicts with the version merged into gst-plugins-base.
772
142773
143774 tools/Makefile.am | 3 +--
144775 tools/gupnp-dlna-info.c | 6 +-----
145776 2 files changed, 2 insertions(+), 7 deletions(-)
146
147 commit c25ecccf0c552b261e4029365df12082ca99a176
148 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
777 commit: c25eccc c25ecccf0c552b261e4029365df12082ca99a176
778 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
149779 Date: Fri Sep 24 19:46:32 2010 +0530
150780
151781 doc: Update NEWS for 0.4.0
782
152783
153784 NEWS | 10 ++++++++++
154785 1 files changed, 10 insertions(+), 0 deletions(-)
155
156 commit 2c62c77fb7cc6954ab12f89d9f46445636656c05
157 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
786 commit: 2c62c77 2c62c77fb7cc6954ab12f89d9f46445636656c05
787 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
158788 Date: Fri Sep 24 19:45:11 2010 +0530
159789
160790 build: Bump version to 0.4.0
161791
792
162793 configure.ac | 2 +-
163794 1 files changed, 1 insertions(+), 1 deletions(-)
164
165 commit d4689f1e94955db646ef663b5d6d9176a68cae6f
166 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
795 commit: d4689f1 d4689f1e94955db646ef663b5d6d9176a68cae6f
796 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
167797 Date: Fri Sep 24 19:44:32 2010 +0530
168798
169799 build: Add library versioning
800
170801
171802 configure.ac | 15 +++++++++++++++
172803 1 files changed, 15 insertions(+), 0 deletions(-)
173
174 commit d86a8de582b80989f69791677c179fee50305564
175 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
804 commit: d86a8de d86a8de582b80989f69791677c179fee50305564
805 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
176806 Date: Fri Sep 24 10:45:05 2010 +0530
177807
178808 tests: Allow the test harness to run out-of-tree
180810 Provides the option of picking up gupnp-dlna-info from any arbitrary
181811 location.
182812
813
183814 tests/test-discoverer.sh.in | 4 +++-
184815 1 files changed, 3 insertions(+), 1 deletions(-)
185
186 commit c662f88e3bf96540236f1cbb2bbe32268e07c504
187 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
816 commit: c662f88 c662f88e3bf96540236f1cbb2bbe32268e07c504
817 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
188818 Date: Thu Aug 26 23:48:18 2010 +0530
189819
190820 doc: Update NEWS for 0.3.1
821
191822
192823 NEWS | 18 ++++++++++++++++++
193824 1 files changed, 18 insertions(+), 0 deletions(-)
194
195 commit c10c749ebb7c7f712bb9a20e09cb99e0d1d30f7f
196 Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
825 commit: c10c749 c10c749ebb7c7f712bb9a20e09cb99e0d1d30f7f
826 Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
197827 Date: Thu Aug 5 01:33:16 2010 +0300
198828
199829 xml: Add JPEG icon profiles
830
200831
201832 data/jpeg.xml | 26 ++++++++++++++++++++++++++
202833 1 files changed, 26 insertions(+), 0 deletions(-)
203
204 commit 53efe9eccc18d3e3f2383f1030a86971a8a8168b
205 Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
834 commit: 53efe9e 53efe9eccc18d3e3f2383f1030a86971a8a8168b
835 Author: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
206836 Date: Thu Aug 5 01:23:45 2010 +0300
207837
208838 xml: Add PNG icon profiles
839
209840
210841 data/png.xml | 26 ++++++++++++++++++++++++++
211842 1 files changed, 26 insertions(+), 0 deletions(-)
212
213 commit 987386936002d0dda0273159e9b310b07d86ca00
214 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
843 commit: 9873869 987386936002d0dda0273159e9b310b07d86ca00
844 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
215845 Date: Tue Aug 31 00:14:53 2010 +0530
216846
217847 libgupnp-dlna: Fix PNG support
218848
219849 The depth was not being used for matching, which broke PNG support.
850
220851
221852 libgupnp-dlna/gupnp-dlna-profiles.c | 3 +++
222853 1 files changed, 3 insertions(+), 0 deletions(-)
223
224 commit 0c86db34d8ca9c5e6bea023dabbcf360e5b64689
225 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
854 commit: 0c86db3 0c86db34d8ca9c5e6bea023dabbcf360e5b64689
855 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
226856 Date: Thu Aug 26 23:48:07 2010 +0530
227857
228858 doc: Missed adding Zeeshan to credits earlier
859
229860
230861 NEWS | 2 ++
231862 1 files changed, 2 insertions(+), 0 deletions(-)
232
233 commit 24a231e1cba8a5359775d6b7fb45c5e61b50977f
234 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
863 commit: 24a231e 24a231e1cba8a5359775d6b7fb45c5e61b50977f
864 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
235865 Date: Wed Aug 25 21:05:12 2010 +0530
236866
237867 build: Bump version to 0.3.1
238868
869
239870 configure.ac | 2 +-
240871 1 files changed, 1 insertions(+), 1 deletions(-)
241
242 commit 203e3fed257f880c1b12763de8e9b9c5733a9444
243 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
872 commit: 203e3fe 203e3fed257f880c1b12763de8e9b9c5733a9444
873 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
244874 Date: Wed Aug 25 20:54:39 2010 +0530
245875
246876 tools: Relaxed mode support for gupnp-dlna-ls-profiles
249879 restrictions are printed, but might be useful for getting debug
250880 information from users.
251881
882
252883 tools/gupnp-dlna-ls-profiles.c | 6 ++++--
253884 1 files changed, 4 insertions(+), 2 deletions(-)
254
255 commit b94261f2531ed4e31aa135d49aa5480e8bdc0318
256 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
885 commit: b94261f b94261f2531ed4e31aa135d49aa5480e8bdc0318
886 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
257887 Date: Tue Aug 24 20:01:44 2010 +0530
258888
259889 libgupnp-dlna: Add support for extended profiles
264894
265895 Also included are changes to mark extended profiles as so in
266896 gupnp-dlna-ls-profiles.
897
267898
268899 data/dlna-profiles.rng | 9 +++++++++
269900 libgupnp-dlna/gupnp-dlna-load.c | 18 +++++++++++++++---
270901 tools/gupnp-dlna-ls-profiles.c | 12 ++++++++----
271902 3 files changed, 32 insertions(+), 7 deletions(-)
272
273 commit 0c9aae6fcd524e3ed7092d68a2ca5a7a64137f9a
274 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
903 commit: 0c9aae6 0c9aae6fcd524e3ed7092d68a2ca5a7a64137f9a
904 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
275905 Date: Wed Aug 25 20:42:34 2010 +0530
276906
277907 xml: Ignore PAR in relaxed mode for AVC*
278908
909
279910 data/avc.xml | 2 +-
280911 1 files changed, 1 insertions(+), 1 deletions(-)
281
282 commit d1b9a9d715a5c3709a5f565283f081fdf90229be
283 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
912 commit: d1b9a9d d1b9a9d715a5c3709a5f565283f081fdf90229be
913 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
284914 Date: Wed Aug 25 20:41:04 2010 +0530
285915
286916 xml: Relax AVC_MP4_MP_HD_1080i_AAC profile restrictions
917
287918
288919 data/common.xml | 10 ++++++++--
289920 1 files changed, 8 insertions(+), 2 deletions(-)
290
291 commit 8278a74295243f30204fb8029d38b33e086c3425
292 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
921 commit: 8278a74 8278a74295243f30204fb8029d38b33e086c3425
922 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
293923 Date: Wed Aug 25 20:40:28 2010 +0530
294924
295925 xml: Relax AVC_MP4_MP_HD_720p_AAC profile restrictions
926
296927
297928 data/common.xml | 10 ++++++++--
298929 1 files changed, 8 insertions(+), 2 deletions(-)
299
300 commit 8d2e5146e66fcb987d76e527cc16fbe6975e4d3a
301 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
930 commit: 8d2e514 8d2e5146e66fcb987d76e527cc16fbe6975e4d3a
931 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
302932 Date: Wed Aug 25 20:34:40 2010 +0530
303933
304934 xml: Relax AVC_MP4_MP* profile restrictions
935
305936
306937 data/avc.xml | 50 +++++++++++++++++++++++++-------------------------
307938 1 files changed, 25 insertions(+), 25 deletions(-)
308
309 commit 214660e4e72e21996043c77f16917cc4913fd6b8
310 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
939 commit: 214660e 214660e4e72e21996043c77f16917cc4913fd6b8
940 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
311941 Date: Wed Aug 25 15:32:24 2010 +0530
312942
313943 xml: Relax AVC_MP4_BL_L3* profile restrictions
944
314945
315946 data/avc.xml | 12 ++++++------
316947 data/common.xml | 10 ++++++++--
317948 2 files changed, 14 insertions(+), 8 deletions(-)
318
319 commit f2d47a6d443494ba36c9d95b270d155302c451e9
320 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
949 commit: f2d47a6 f2d47a6d443494ba36c9d95b270d155302c451e9
950 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
321951 Date: Tue Aug 24 15:14:06 2010 +0530
322952
323953 xml: Relax AVC_MP4_BL_CIF15_* profile restrictions
954
324955
325956 data/avc.xml | 26 +++++++++++++-------------
326957 data/common.xml | 10 ++++++++--
327958 2 files changed, 21 insertions(+), 15 deletions(-)
328
329 commit 04ec04a7811b6fd2d152775877bc325bf13a9326
330 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
959 commit: 04ec04a 04ec04a7811b6fd2d152775877bc325bf13a9326
960 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
331961 Date: Tue Aug 24 15:13:22 2010 +0530
332962
333963 xml: Relax MPEG1 profile restrictions
964
334965
335966 data/mpeg1.xml | 16 ++++++++++------
336967 1 files changed, 10 insertions(+), 6 deletions(-)
337
338 commit 3cd17cb91e7ad54fdb5e527d7d7abfe6908c390c
339 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
968 commit: 3cd17cb 3cd17cb91e7ad54fdb5e527d7d7abfe6908c390c
969 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
340970 Date: Tue Aug 24 15:12:34 2010 +0530
341971
342972 xml: Relax AAC profile restrictions
973
343974
344975 data/aac.xml | 4 ++--
345976 1 files changed, 2 insertions(+), 2 deletions(-)
346
347 commit e072f32eada99ca94efa27cbc0e229e72c10b4ea
348 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
977 commit: e072f32 e072f32eada99ca94efa27cbc0e229e72c10b4ea
978 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
349979 Date: Wed Aug 25 13:28:53 2010 +0530
350980
351981 tools: add arguments to gupnp-dlna-info
354984 -r to enable relaxed mode support and -e to enable
355985 extended mode support
356986
987
357988 tools/gupnp-dlna-info.c | 10 ++++++++--
358989 1 files changed, 8 insertions(+), 2 deletions(-)
359
360 commit 865a9d0d7fb2cf69b2c470b679c72b25c075fd74
361 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
990 commit: 865a9d0 865a9d0d7fb2cf69b2c470b679c72b25c075fd74
991 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
362992 Date: Wed Aug 25 19:36:09 2010 +0530
363993
364994 libgupnp-dlna: Fix relaxed-mode <field> processing
366996 When skipping a field, we need to make sure we don't touch the out
367997 parameter (caps_str).
368998
999
3691000 libgupnp-dlna/gupnp-dlna-load.c | 3 ++-
3701001 1 files changed, 2 insertions(+), 1 deletions(-)
371
372 commit 992a4d89a0c8ef9c1a199b31c000d8412d23ab20
373 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
1002 commit: 992a4d8 992a4d89a0c8ef9c1a199b31c000d8412d23ab20
1003 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
3741004 Date: Tue Aug 24 13:21:01 2010 +0530
3751005
3761006 libgupnp-dlna: Add relaxed mode support
3881018 Add parameters to the test program to test for
3891019 relaxed and extended mode support
3901020
1021
3911022 data/dlna-profiles.rng | 24 ++++
3921023 libgupnp-dlna/gupnp-dlna-discoverer.c | 44 ++++++--
3931024 libgupnp-dlna/gupnp-dlna-discoverer.h | 2 +-
3951026 libgupnp-dlna/gupnp-dlna-load.h | 21 +++-
3961027 tests/dlna-profile-parser.c | 76 +++++++++----
3971028 6 files changed, 276 insertions(+), 92 deletions(-)
398
399 commit 14c22392cf6183a8c85ee03d34a439f0695a05c5
400 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1029 commit: 14c2239 14c22392cf6183a8c85ee03d34a439f0695a05c5
1030 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
4011031 Date: Tue Aug 24 15:47:35 2010 +0530
4021032
4031033 license: Change to the LGPL v2.1
4041034
4051035 The terms remain the same, essentially. It's just a nomenclature change
4061036 (s/Library/Lesser/g).
1037
4071038
4081039 COPYING | 216 +++++++++++---------
4091040 .../gst-libs/gst/discoverer/gstdiscoverer-types.c | 6 +-
4301061 tools/gupnp-dlna-info.c | 6 +-
4311062 tools/gupnp-dlna-ls-profiles.c | 6 +-
4321063 24 files changed, 187 insertions(+), 167 deletions(-)
433
434 commit 81d42f0fbdb37d57108726618092dfc0b1329493
435 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1064 commit: 81d42f0 81d42f0fbdb37d57108726618092dfc0b1329493
1065 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
4361066 Date: Thu Aug 19 00:46:17 2010 +0530
4371067
4381068 build: Clean up library deps for tools and tests
4411071 development of tools and tests. This sanitizes the autofoo for these
4421072 (and should fix build issues faced in distro packaging).
4431073
1074
4441075 tests/Makefile.am | 7 ++++++-
4451076 tools/Makefile.am | 9 ++++++++-
4461077 2 files changed, 14 insertions(+), 2 deletions(-)
447
448 commit f5c0e1806af971df4fb3a787e7088ef9e8d4cdaa
449 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1078 commit: f5c0e18 f5c0e1806af971df4fb3a787e7088ef9e8d4cdaa
1079 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
4501080 Date: Wed Aug 18 16:13:21 2010 +0530
4511081
4521082 build: Fix pkgconfig files
4531083
4541084 A number of small fixes and cleanups to the pkgconfig files
1085
4551086
4561087 gupnp-dlna-1.0-uninstalled.pc.in | 6 +++---
4571088 gupnp-dlna-1.0.pc.in | 2 +-
4581089 2 files changed, 4 insertions(+), 4 deletions(-)
459
460 commit 070933f6789de719d789a864c85f46550af1808f
461 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1090 commit: 070933f 070933f6789de719d789a864c85f46550af1808f
1091 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
4621092 Date: Mon Aug 16 23:03:34 2010 +0530
4631093
4641094 libgupnp-dlna: Don't free the profiles list
4681098 (which was the original behaviour). Eventually, we'll change this so
4691099 that the lists only last for the lifetime of the objects.
4701100
1101
4711102 libgupnp-dlna/gupnp-dlna-discoverer.c | 7 -------
4721103 1 files changed, 0 insertions(+), 7 deletions(-)
473
474 commit 5087e23939e5fbe8e917b21a3d959137d939742e
475 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
1104 commit: 5087e23 5087e23939e5fbe8e917b21a3d959137d939742e
1105 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
4761106 Date: Mon Aug 16 21:30:22 2010 +0530
4771107
4781108 libgupnp-dlna: add 'extended' mode property
4791109
4801110 This patch adds getters for the 'extended' mode
4811111 property on the GUPnPDLNAProfile class.
1112
4821113
4831114 libgupnp-dlna/gupnp-dlna-load.c | 3 ++-
4841115 libgupnp-dlna/gupnp-dlna-profile.c | 22 ++++++++++++++++++++--
4851116 libgupnp-dlna/gupnp-dlna-profile.h | 4 +++-
4861117 3 files changed, 25 insertions(+), 4 deletions(-)
487
488 commit 8854593127c587b7deab44af2d4acd3702b20f7a
489 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
1118 commit: 8854593 8854593127c587b7deab44af2d4acd3702b20f7a
1119 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
4901120 Date: Mon Aug 16 20:56:52 2010 +0530
4911121
4921122 libgupnp-dlna: add getters for properties
4931123
4941124 This patch adds the getters for relaxed_mode and extended_mode
4951125 of GUPnPDLNADiscoverer
1126
4961127
4971128 libgupnp-dlna/gupnp-dlna-discoverer.c | 74 ++++++++++++++++++++++++---------
4981129 libgupnp-dlna/gupnp-dlna-discoverer.h | 9 ++++-
5001131 tools/gupnp-dlna-info.c | 4 +-
5011132 tools/gupnp-dlna-ls-profiles.c | 4 +-
5021133 5 files changed, 71 insertions(+), 24 deletions(-)
503
504 commit 17aa09acdbb4e96537496f5564c6134b50247d4a
505 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1134 commit: 17aa09a 17aa09acdbb4e96537496f5564c6134b50247d4a
1135 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
5061136 Date: Mon Aug 16 20:41:37 2010 +0530
5071137
5081138 libgupnp-dlna: Remove unused variable
1139
5091140
5101141 libgupnp-dlna/gupnp-dlna-profiles.c | 2 --
5111142 1 files changed, 0 insertions(+), 2 deletions(-)
512
513 commit ceb961611db39d1ccb1658977edc702b882cf14a
514 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1143 commit: ceb9616 ceb961611db39d1ccb1658977edc702b882cf14a
1144 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
5151145 Date: Mon Aug 16 19:25:30 2010 +0530
5161146
5171147 docs: Update NEWS
1148
5181149
5191150 NEWS | 24 +++++++++++++++++++++++-
5201151 1 files changed, 23 insertions(+), 1 deletions(-)
521
522 commit 53e9880c079a2def15a1bc9d16bd4f90641044ad
523 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1152 commit: 53e9880 53e9880c079a2def15a1bc9d16bd4f90641044ad
1153 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
5241154 Date: Mon Aug 16 18:32:23 2010 +0530
5251155
5261156 build: Bump to version 0.3.0
5271157
5281158 Bumping to 0.3.0 since we've got a whole bunch of API changes.
5291159
1160
5301161 configure.ac | 2 +-
5311162 1 files changed, 1 insertions(+), 1 deletions(-)
532
533 commit fdfaed8ffe4f7e62105c7e8ad03031324150c7ea
534 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1163 commit: fdfaed8 fdfaed8ffe4f7e62105c7e8ad03031324150c7ea
1164 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
5351165 Date: Mon Aug 16 18:02:37 2010 +0530
5361166
5371167 libgupnp-dlna: Don't depend on gcc-specific attributes
5411171 we wish to optimise this, the constructor bits can be moved to a
5421172 gupnp_dlna_init() or to one of the class init functions.
5431173
1174
5441175 libgupnp-dlna/gupnp-dlna-profiles.c | 17 +++++------------
5451176 1 files changed, 5 insertions(+), 12 deletions(-)
546
547 commit 1fe1ec2a4103af23e9074ccb9ec1dc7d9843ab28
548 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1177 commit: 1fe1ec2 1fe1ec2a4103af23e9074ccb9ec1dc7d9843ab28
1178 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
5491179 Date: Mon Aug 16 17:01:51 2010 +0530
5501180
5511181 build: Bump version to 0.2.2
5521182
1183
5531184 configure.ac | 2 +-
5541185 1 files changed, 1 insertions(+), 1 deletions(-)
555
556 commit eb98d6097beb4499962f1e670e1bef2aed0f20db
557 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1186 commit: eb98d60 eb98d6097beb4499962f1e670e1bef2aed0f20db
1187 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
5581188 Date: Mon Aug 16 14:08:39 2010 +0530
5591189
5601190 libgupnp-dlna: Add some debug output
5631193 having to jump through hoops. The output can be enabled by setting the
5641194 environment variable GUPNP_DLNA_DEBUG to anything except '0'.
5651195
1196
5661197 libgupnp-dlna/Makefile.am | 3 +-
5671198 libgupnp-dlna/gupnp-dlna-profiles.c | 41 +++++++++++++++++++++++++++++++---
5681199 2 files changed, 39 insertions(+), 5 deletions(-)
569
570 commit 8201eb0b1da45b882571e39f27ca312c87807134
571 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
1200 commit: 8201eb0 8201eb0b1da45b882571e39f27ca312c87807134
1201 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
5721202 Date: Mon Aug 16 13:50:31 2010 +0530
5731203
5741204 libgupnp-dlna: add 'extended' mode property
5761206 This patch adds the 'extended' mode propery on the GUPnPDLNAProfile
5771207 class.
5781208
1209
5791210 libgupnp-dlna/gupnp-dlna-profile.c | 19 +++++++++++++++++++
5801211 1 files changed, 19 insertions(+), 0 deletions(-)
581
582 commit c30e5f24afbb24496d56006741f33ac4bef9c486
583 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
1212 commit: c30e5f2 c30e5f24afbb24496d56006741f33ac4bef9c486
1213 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
5841214 Date: Mon Aug 16 13:40:12 2010 +0530
5851215
5861216 libgupnp-dlna: add 'relaxed' and 'extended' mode properties
5891219 'relaxed' mode and 'extended' mode support. These will be supported
5901220 in the next release.
5911221
1222
5921223 libgupnp-dlna/gupnp-dlna-discoverer.c | 104 +++++++++++++++++++++++++++++++++
5931224 1 files changed, 104 insertions(+), 0 deletions(-)
594
595 commit f35ea6b091d56e1483ed30d1a168944368280102
596 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1225 commit: f35ea6b f35ea6b091d56e1483ed30d1a168944368280102
1226 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
5971227 Date: Sat Aug 14 23:18:41 2010 +0530
5981228
5991229 docs: Add GUPnPDLNAProfile generated docs
6011231 Since the GUPnPDLNAProfile object is now part of the public API (we
6021232 return it from a couple of GUPnPDLNADiscoverer functions), we add it to
6031233 the generated documentation as well.
1234
6041235
6051236 doc/Makefile.am | 1 -
6061237 doc/gupnp-dlna-docs.sgml | 1 +
6071238 doc/gupnp-dlna-sections.txt | 3 +++
6081239 3 files changed, 4 insertions(+), 1 deletions(-)
609
610 commit 901adc7d1d8a93e113c51cd121312cf081a58ce7
611 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1240 commit: 901adc7 901adc7d1d8a93e113c51cd121312cf081a58ce7
1241 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
6121242 Date: Sat Aug 14 23:18:09 2010 +0530
6131243
6141244 libgupnp-dlna: Update GUPnPDLNAProfile documentation
1245
6151246
6161247 libgupnp-dlna/gupnp-dlna-profile.c | 24 +++++++++++++++++++++---
6171248 1 files changed, 21 insertions(+), 3 deletions(-)
618
619 commit 33890a344053b36deb2ed4717aa65fd968537bd8
620 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
1249 commit: 33890a3 33890a344053b36deb2ed4717aa65fd968537bd8
1250 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
6211251 Date: Sat Aug 14 22:46:29 2010 +0530
6221252
6231253 tools: Add a tool to list supported profiles
6241254
6251255 This lists all supported profiles. There is a verbose mode (-v) which
6261256 dumps the GstCaps for the restrictions of that profile.
1257
6271258
6281259 tools/Makefile.am | 2 +-
6291260 tools/gupnp-dlna-ls-profiles.c | 128 ++++++++++++++++++++++++++++++++++++++++
6301261 2 files changed, 129 insertions(+), 1 deletions(-)
631
632 commit 6a136db697f81055194c899d8893ffe53a674b65
633 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
1262 commit: 6a136db 6a136db697f81055194c899d8893ffe53a674b65
1263 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
6341264 Date: Sat Aug 14 21:51:07 2010 +0530
6351265
6361266 libgupnp-dlna: Add an API to list profiles
1267
6371268
6381269 libgupnp-dlna/gupnp-dlna-discoverer.c | 20 ++++++++++++++++++++
6391270 libgupnp-dlna/gupnp-dlna-discoverer.h | 4 ++++
6401271 2 files changed, 24 insertions(+), 0 deletions(-)
641
642 commit bf75bde19c057d8d6341c126b25aa01c9a3f6928
643 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1272 commit: bf75bde bf75bde19c057d8d6341c126b25aa01c9a3f6928
1273 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
6441274 Date: Sat Aug 14 21:46:39 2010 +0530
6451275
6461276 docs: Add a note about Gst initialisation
6481278 This is particularly important now that we load profiles at Discoverer
6491279 class initialisation time.
6501280
1281
6511282 doc/gupnp-dlna-docs.sgml | 5 +++++
6521283 1 files changed, 5 insertions(+), 0 deletions(-)
653
654 commit 62f9c8aa05599b9cf5af73bdc42d0d5c51ab4b3c
655 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1284 commit: 62f9c8a 62f9c8aa05599b9cf5af73bdc42d0d5c51ab4b3c
1285 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
6561286 Date: Sat Aug 14 17:44:51 2010 +0530
6571287
6581288 libgupnp-dlna: Move profile list to DLNADiscovererClass
6671297
6681298 Based on a patch from:
6691299 Parthasarathi Susarla <partha.susarla@collabora.co.uk>
1300
6701301
6711302 libgupnp-dlna/gupnp-dlna-discoverer.c | 58 ++++++++++++++++++++++++++++++-
6721303 libgupnp-dlna/gupnp-dlna-discoverer.h | 10 +++++
6751306 libgupnp-dlna/gupnp-dlna-profiles.c | 53 +++++++++--------------------
6761307 tests/dlna-encoding.c | 9 ++++-
6771308 6 files changed, 92 insertions(+), 43 deletions(-)
678
679 commit 5d436874e7f9d1a94fd6503ed26e44bf086ec5e1
680 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1309 commit: 5d43687 5d436874e7f9d1a94fd6503ed26e44bf086ec5e1
1310 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
6811311 Date: Sat Aug 14 17:28:47 2010 +0530
6821312
6831313 libgupnp-dlna: Clean up non-matched profiles
6861316 names which are used as base profiles in inheritance but are actually
6871317 skipped while matching.
6881318
1319
6891320 libgupnp-dlna/gupnp-dlna-load.c | 19 ++++++++++++++++++-
6901321 1 files changed, 18 insertions(+), 1 deletions(-)
691
692 commit d752a319859f3ea47af84c0d39b66bf88943bb6e
693 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1322 commit: d752a31 d752a319859f3ea47af84c0d39b66bf88943bb6e
1323 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
6941324 Date: Wed Jul 14 10:46:12 2010 +0530
6951325
6961326 tests: Add a test harness for testing discoverer
6981328 The harness expects a tests/media directory with a file list in the
6991329 format described in a comment at the top of the harness. The means to
7001330 set up the media directory will come in a subsequent commit.
1331
7011332
7021333 configure.ac | 1 +
7031334 tests/Makefile.am | 3 ++
7041335 tests/test-discoverer.sh.in | 67 +++++++++++++++++++++++++++++++++++++++++++
7051336 3 files changed, 71 insertions(+), 0 deletions(-)
706
707 commit 4bf5dec94585bec1abdd0ae9cd198cd36c7d41c1
708 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1337 commit: 4bf5dec 4bf5dec94585bec1abdd0ae9cd198cd36c7d41c1
1338 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
7091339 Date: Sat Aug 14 02:45:13 2010 +0530
7101340
7111341 libgupnp-dlna: Support interlaced files
7131343 It's just a matter of setting the caps appropriately if the
7141344 GstVideoInformation structure has the corresponding field set.
7151345
1346
7161347 libgupnp-dlna/gupnp-dlna-profiles.c | 3 +++
7171348 1 files changed, 3 insertions(+), 0 deletions(-)
718
719 commit 836ca7468ed934e7a1e669e78bb32d8e31503ce8
720 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1349 commit: 836ca74 836ca7468ed934e7a1e669e78bb32d8e31503ce8
1350 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
7211351 Date: Sat Aug 14 02:55:26 2010 +0530
7221352
7231353 xml: Fix typo in AVC_MP4_MP_HD_1080i_AAC
7241354
1355
7251356 data/avc.xml | 2 +-
7261357 1 files changed, 1 insertions(+), 1 deletions(-)
727
728 commit 9d9eed05bdda24465795c0b43f0b64c9f03c1e5b
729 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1358 commit: 9d9eed0 9d9eed05bdda24465795c0b43f0b64c9f03c1e5b
1359 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
7301360 Date: Fri Aug 13 11:31:48 2010 +0530
7311361
7321362 xml: Add support for AVC_MP4_MP_HD_1080i
1363
7331364
7341365 data/avc.xml | 43 +++++++++++++++++++++++++++++++++++++++++++
7351366 1 files changed, 43 insertions(+), 0 deletions(-)
736
737 commit c787dea9be44a7d7502f725369aaca29c77d60f0
738 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1367 commit: c787dea c787dea9be44a7d7502f725369aaca29c77d60f0
1368 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
7391369 Date: Fri Aug 13 11:29:36 2010 +0530
7401370
7411371 xml: Add support for AVC_MP4_MP_HD_720p_AAC
1372
7421373
7431374 data/avc.xml | 37 +++++++++++++++++++++++++++++++++++++
7441375 data/common.xml | 6 ++++++
7451376 2 files changed, 43 insertions(+), 0 deletions(-)
746
747 commit 0210a95939bd007733601c6d57b6d435e0abdf2c
748 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1377 commit: 0210a95 0210a95939bd007733601c6d57b6d435e0abdf2c
1378 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
7491379 Date: Fri Aug 13 02:24:06 2010 +0530
7501380
7511381 xml: Factor out common resolutions
1382
7521383
7531384 data/common.xml | 18 ++++++++++++++++++
7541385 data/mpeg-ts.xml | 23 +++++++----------------
7551386 2 files changed, 25 insertions(+), 16 deletions(-)
756
757 commit 9fa52512614475554da370b90ef24a6251cc9ba4
758 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1387 commit: 9fa5251 9fa52512614475554da370b90ef24a6251cc9ba4
1388 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
7591389 Date: Fri Aug 13 01:39:20 2010 +0530
7601390
7611391 xml: Add support for some AVC_MP4_MP_SD* profiles
7631393 This adds support for the AVC_MP4_MP_SD_AAC_MULT5,
7641394 AVC_MP4_MP_SD_AAC_MPEG1_L3, and AVC_MP4_MP_SD_AC3 profiles.
7651395
1396
7661397 data/avc.xml | 208 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
7671398 1 files changed, 208 insertions(+), 0 deletions(-)
768
769 commit 5af047746ace3f5541630c40c2a8de9a64b6dfb2
770 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1399 commit: 5af0477 5af047746ace3f5541630c40c2a8de9a64b6dfb2
1400 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
7711401 Date: Fri Aug 13 01:28:47 2010 +0530
7721402
7731403 xml: Factor out AC3 restriction
7751405 This will allow us to reuse the restrictions for video profiles with AC3
7761406 audio streams.
7771407
1408
7781409 data/ac3.xml | 8 ++++++--
7791410 1 files changed, 6 insertions(+), 2 deletions(-)
780
781 commit 9322fbf0f5189354603ef3f6d916dd9a36b7c466
782 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1411 commit: 9322fbf 9322fbf0f5189354603ef3f6d916dd9a36b7c466
1412 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
7831413 Date: Thu Aug 12 22:38:44 2010 +0530
7841414
7851415 libgupnp-dlna: Make GUPnPDLNAProfile opaque
7861416
7871417 This moves the public members of GUPnPDLNAProfile into a private
7881418 structure, accessible by getter methods and properties.
1419
7891420
7901421 libgupnp-dlna/gupnp-dlna-profile.c | 180 ++++++++++++++++++++++++++++++++---
7911422 libgupnp-dlna/gupnp-dlna-profile.h | 9 +-
7931424 tests/dlna-encoding.c | 8 +-
7941425 tests/dlna-profile-parser.c | 13 ++-
7951426 5 files changed, 221 insertions(+), 48 deletions(-)
796
797 commit 224a3a4353e174d462cea58cd6984aaf5ede7601
798 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1427 commit: 224a3a4 224a3a4353e174d462cea58cd6984aaf5ede7601
1428 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
7991429 Date: Thu Aug 12 19:38:32 2010 +0530
8001430
8011431 libgupnp-dlna: Fix private structure registration
8031433 We're registering the wrong type as the private type (which only worked
8041434 because GUPnPDLNAInformation is bigger than GUPnPDLNAInformationPrivate)
8051435
1436
8061437 libgupnp-dlna/gupnp-dlna-information.c | 2 +-
8071438 1 files changed, 1 insertions(+), 1 deletions(-)
808
809 commit c496cf419b363c6f2480695f1892dee959a53ced
810 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1439 commit: c496cf4 c496cf419b363c6f2480695f1892dee959a53ced
1440 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
8111441 Date: Tue Aug 10 20:08:53 2010 +0530
8121442
8131443 docs: Add notes on transcoding
8141444
8151445 Summarising a discussion from IRC. Needs some fleshing out.
1446
8161447
8171448 TODO | 18 ++++++++++++++++++
8181449 1 files changed, 18 insertions(+), 0 deletions(-)
819
820 commit e4f878c2fc9676d0d5d2e33227b058ebbdd5f39c
821 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
1450 commit: e4f878c e4f878c2fc9676d0d5d2e33227b058ebbdd5f39c
1451 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
8221452 Date: Tue Jul 20 14:53:39 2010 +0530
8231453
8241454 print topology instead of just the stream info
1455
8251456
8261457 tools/gupnp-dlna-info.c | 35 ++++++++++++++++++++++++-----------
8271458 1 files changed, 24 insertions(+), 11 deletions(-)
828
829 commit 0c9577281e2e1693ac3f298c2b295983c66c2567
830 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1459 commit: 0c95772 0c9577281e2e1693ac3f298c2b295983c66c2567
1460 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
8311461 Date: Thu Jul 22 09:47:43 2010 +0100
8321462
8331463 xml: Fix typo in bitrate field
8341464
8351465 Thanks to "tresvecesseis" on gitorious for pointing this out.
8361466
1467
8371468 data/mpeg4.xml | 2 +-
8381469 1 files changed, 1 insertions(+), 1 deletions(-)
839
840 commit 641d762d884c5808db8c578767677cfceb58ea60
841 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1470 commit: 641d762 641d762d884c5808db8c578767677cfceb58ea60
1471 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
8421472 Date: Tue Jul 20 17:02:23 2010 +0100
8431473
8441474 xml: Fix typos in AVC_MP4_BL_L3* profiles
1475
8451476
8461477 data/avc.xml | 4 ++--
8471478 1 files changed, 2 insertions(+), 2 deletions(-)
848
849 commit db90182b2ae0f9d81769c4954c4c91a2c1760bcd
850 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1479 commit: db90182 db90182b2ae0f9d81769c4954c4c91a2c1760bcd
1480 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
8511481 Date: Mon Jul 19 19:08:16 2010 +0100
8521482
8531483 xml: Fix framerate in MPEG4_P2_MP4_SP_VGA_AAC profile
8541484
8551485 Seems I'd missed the framerate constriant while adding this profile.
1486
8561487
8571488 data/mpeg4.xml | 1 +
8581489 1 files changed, 1 insertions(+), 0 deletions(-)
859
860 commit cd3e7e350ea130a201612e7a547abe301c67b60f
861 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1490 commit: cd3e7e3 cd3e7e350ea130a201612e7a547abe301c67b60f
1491 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
8621492 Date: Mon Jul 19 17:07:16 2010 +0100
8631493
8641494 xml: Add bitrate constraint for AVC_MP4_L3L_SD_AAC
1495
8651496
8661497 data/avc.xml | 5 +++++
8671498 1 files changed, 5 insertions(+), 0 deletions(-)
868
869 commit cf633b975d9dd4268092b7b1fb1eb6d3b02fc519
870 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1499 commit: cf633b9 cf633b975d9dd4268092b7b1fb1eb6d3b02fc519
1500 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
8711501 Date: Fri Jul 16 20:07:30 2010 +0530
8721502
8731503 docs: Fix some warnings
8751505 Introduce some slightly redundant documentation to get rid of gtk-doc
8761506 warnings.
8771507
1508
8781509 libgupnp-dlna/gupnp-dlna-information.c | 3 +++
8791510 1 files changed, 3 insertions(+), 0 deletions(-)
880
881 commit 259e651385263a385e2dca309dc29d1835979f2d
882 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1511 commit: 259e651 259e651385263a385e2dca309dc29d1835979f2d
1512 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
8831513 Date: Fri Jul 16 20:05:54 2010 +0530
8841514
8851515 libgupnp-dlna: Replace redundant calls with macros
8881518 arround the corresponding gst_discoverer* APIs, so we define them as
8891519 macros instead.
8901520
1521
8911522 libgupnp-dlna/gupnp-dlna-discoverer.c | 8 --------
8921523 libgupnp-dlna/gupnp-dlna-discoverer.h | 6 ++++--
8931524 2 files changed, 4 insertions(+), 10 deletions(-)
894
895 commit bac23eea15835f3d597eaa4f436fe640b28419ff
896 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1525 commit: bac23ee bac23eea15835f3d597eaa4f436fe640b28419ff
1526 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
8971527 Date: Fri Jul 16 19:51:19 2010 +0530
8981528
8991529 xml: Use bitrate instead of maximum-bitrate
9031533 need to introduce code to intelligently use whichever of these tags is
9041534 present in the stream.
9051535
1536
9061537 data/avc.xml | 3 ---
9071538 data/mpeg4.xml | 12 ++++++------
9081539 2 files changed, 6 insertions(+), 9 deletions(-)
909
910 commit f49966516a811b8e25855f111959b8134f68dc7e
911 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1540 commit: f499665 f49966516a811b8e25855f111959b8134f68dc7e
1541 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
9121542 Date: Mon Jul 19 15:47:05 2010 +0100
9131543
9141544 xml: Include common.xml in mpeg-ts.xml
9151545
9161546 We're using restrictions from common.xml but I forgot to include it.
1547
9171548
9181549 data/mpeg-ts.xml | 2 ++
9191550 1 files changed, 2 insertions(+), 0 deletions(-)
920
921 commit 8a5f2cf659d0877d04f32d062682b66e229d36c8
922 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1551 commit: 8a5f2cf 8a5f2cf659d0877d04f32d062682b66e229d36c8
1552 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
9231553 Date: Wed Jul 14 19:21:45 2010 +0530
9241554
9251555 Release 0.2.1
1556
9261557
9271558 NEWS | 5 +++++
9281559 configure.ac | 2 +-
9291560 2 files changed, 6 insertions(+), 1 deletions(-)
930
931 commit fcefca6d31953e17f7e3169ddc3908172a477d18
932 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1561 commit: fcefca6 fcefca6d31953e17f7e3169ddc3908172a477d18
1562 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
9331563 Date: Thu Jul 15 20:56:12 2010 +0530
9341564
9351565 build: Correct gst-plugins-base dependency
9361566
9371567 We don't (yet) need the latest gst-plugins-base
1568
9381569
9391570 configure.ac | 3 ++-
9401571 1 files changed, 2 insertions(+), 1 deletions(-)
941
942 commit f753153e20faf32d301046ecb48fe2b4d290a8ed
943 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1572 commit: f753153 f753153e20faf32d301046ecb48fe2b4d290a8ed
1573 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
9441574 Date: Thu Jul 8 21:14:43 2010 +0530
9451575
9461576 build: Update gstreamer dependency
9471577
9481578 The newly imported gst-convenience will depend on gstreamer-0.10.30
9491579
1580
9501581 configure.ac | 2 +-
9511582 1 files changed, 1 insertions(+), 1 deletions(-)
952
953 commit 458c82f390fbd93bd93a3819186a5fe4b68da9f8
954 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1583 commit: 458c82f 458c82f390fbd93bd93a3819186a5fe4b68da9f8
1584 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
9551585 Date: Wed Jul 7 15:21:33 2010 +0530
9561586
9571587 Release 0.2
1588
9581589
9591590 NEWS | 21 +++++++++++++++++++++
9601591 configure.ac | 2 +-
9611592 2 files changed, 22 insertions(+), 1 deletions(-)
962
963 commit 7bcba3a31d3cba8ae8cc45c298cefbbbf6de646e
964 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1593 commit: 7bcba3a 7bcba3a31d3cba8ae8cc45c298cefbbbf6de646e
1594 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
9651595 Date: Wed Jul 7 13:59:31 2010 +0530
9661596
9671597 libgupnp-dlna: Remove debug print
9681598
9691599 This message was used for debugging and testing.
1600
9701601
9711602 libgupnp-dlna/gupnp-dlna-profiles.c | 2 --
9721603 1 files changed, 0 insertions(+), 2 deletions(-)
973
974 commit 428d4f7abee173a83732456eb006a2c737731f9f
975 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1604 commit: 428d4f7 428d4f7abee173a83732456eb006a2c737731f9f
1605 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
9761606 Date: Wed Jul 7 13:57:33 2010 +0530
9771607
9781608 gst-convenience: Rebase in-tree version
9801610 Sync our copy of gst-convenience against upstream (upstream commit
9811611 fab830b7692200a808655deb4aeb0afa3be4e7b1). Also includes one
9821612 to-be-merged patch to fix a crash while marshalling.
1613
9831614
9841615 .../gst/discoverer/gstdiscoverer-marshal.c | 2 +
9851616 .../gst-libs/gst/discoverer/gstdiscoverer-types.c | 10 +-
9931624 .../gst-libs/gst/profile/gstprofileutils.c | 184 +++++++
9941625 .../gstreamer-discoverer-gupnp-dlna-0.10.vapi | 2 +-
9951626 11 files changed, 889 insertions(+), 207 deletions(-)
996
997 commit 3e4ba655a3e9fe7a61d57b0a538c05355e10d1cf
998 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1627 commit: 3e4ba65 3e4ba655a3e9fe7a61d57b0a538c05355e10d1cf
1628 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
9991629 Date: Fri Jul 2 13:49:31 2010 +0530
10001630
10011631 xml: Don't require empty name/mime for profiles
10041634 inheritance, we required the name and mime to be set as empty strings.
10051635 This makes this unncessary in the XML (the implementation is not
10061636 changed, but this is now handled transparently).
1637
10071638
10081639 data/avc.xml | 2 +-
10091640 data/dlna-profiles.rng | 26 ++++++++++++++++----------
10101641 data/mpeg4.xml | 4 ++--
10111642 libgupnp-dlna/gupnp-dlna-load.c | 10 ++++++++++
10121643 4 files changed, 29 insertions(+), 13 deletions(-)
1013
1014 commit 79ac1ce24e9565db43d77c514b1eb7e48b684e80
1015 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1644 commit: 79ac1ce 79ac1ce24e9565db43d77c514b1eb7e48b684e80
1645 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
10161646 Date: Thu Jul 1 13:15:07 2010 +0530
10171647
10181648 xml: Add AVC_MP4_BL_CIF15_AAC profile support
1649
10191650
10201651 data/avc.xml | 36 +++++++++++++++++++++++++-----------
10211652 1 files changed, 25 insertions(+), 11 deletions(-)
1022
1023 commit 303dddf6052cc26468954eb1d2ac8b549fcb7906
1024 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1653 commit: 303dddf 303dddf6052cc26468954eb1d2ac8b549fcb7906
1654 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
10251655 Date: Wed Jun 30 18:11:34 2010 +0530
10261656
10271657 xml: Add the AVC_MP4_BL_L3(L)_SD_AAC profiles
1658
10281659
10291660 data/avc.xml | 148 ++++++++++++++++++++++++++++++++++++++++++++++++-------
10301661 data/common.xml | 12 +++++
10311662 2 files changed, 142 insertions(+), 18 deletions(-)
1032
1033 commit fa4fa00545305c5954d4d9ecdbb1e8e20416667b
1034 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
1663 commit: fa4fa00 fa4fa00545305c5954d4d9ecdbb1e8e20416667b
1664 Author: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
10351665 Date: Mon Jul 5 13:23:06 2010 +0530
10361666
10371667 tools: Add utility for printing discovered info
1668
10381669
10391670 Makefile.am | 2 +-
10401671 configure.ac | 2 +
10411672 tools/Makefile.am | 4 +
10421673 tools/gupnp-dlna-info.c | 484 +++++++++++++++++++++++++++++++++++++++++++++++
10431674 4 files changed, 491 insertions(+), 1 deletions(-)
1044
1045 commit be91b9ac469172db0b9e5ea2b3f5cc7d2c038652
1046 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1675 commit: be91b9a be91b9ac469172db0b9e5ea2b3f5cc7d2c038652
1676 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
10471677 Date: Wed Jun 30 18:37:22 2010 +0530
10481678
10491679 doc: Add a TODO
10501680
10511681 Currently a brain dump of the things that I remember need doing.
1682
10521683
10531684 TODO | 44 ++++++++++++++++++++++++++++++++++++++++++++
10541685 1 files changed, 44 insertions(+), 0 deletions(-)
1055
1056 commit 97ca696811e3e0bf5406b6a1c58e2ae900ae3b21
1057 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1686 commit: 97ca696 97ca696811e3e0bf5406b6a1c58e2ae900ae3b21
1687 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
10581688 Date: Wed Jun 30 15:25:50 2010 +0530
10591689
10601690 xml: Use bitrate in constraints for AVC*
10621692 This is more likely to be set than maximum-bitrate. Also, the range
10631693 starts from 1 instead of 0, to ensure that it is actually known.
10641694
1695
10651696 data/avc.xml | 4 ++--
10661697 1 files changed, 2 insertions(+), 2 deletions(-)
1067
1068 commit 3690dce6080b317f71850e995dfdce48fab37708
1069 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1698 commit: 3690dce 3690dce6080b317f71850e995dfdce48fab37708
1699 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
10701700 Date: Tue Jun 29 23:07:34 2010 +0530
10711701
10721702 libgupnp-dlna: only free format caps if present
10741704 This gets rid of a GStreamer warning in certain cases when we try to
10751705 free NULL caps.
10761706
1707
10771708 libgupnp-dlna/gupnp-dlna-load.c | 3 ++-
10781709 1 files changed, 2 insertions(+), 1 deletions(-)
1079
1080 commit 00ad1e80bcb71a176bb24609aa09000c06e92b3d
1081 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1710 commit: 00ad1e8 00ad1e80bcb71a176bb24609aa09000c06e92b3d
1711 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
10821712 Date: Tue Jun 29 19:55:09 2010 +0530
10831713
10841714 libgupnp-dlna: Detect duplicates in <include>
10911721 This adds some (not fool-proof, but good enough) duplicate detection, so
10921722 that we can include one XML file in another. This is particularly useful
10931723 for reusing audio profile restrictions in video profiles.
1724
10941725
10951726 libgupnp-dlna/gupnp-dlna-load.c | 85 ++++++++++++++++++++++++++++---
10961727 libgupnp-dlna/gupnp-dlna-load.h | 5 +-
10981729 tests/xml/duplicate-detection/dup1.xml | 11 ++++
10991730 tests/xml/duplicate-detection/dup2.xml | 7 +++
11001731 5 files changed, 107 insertions(+), 14 deletions(-)
1101
1102 commit 66ec07fbec61b4858c31c7d5039e869149adc1d5
1103 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1732 commit: 66ec07f 66ec07fbec61b4858c31c7d5039e869149adc1d5
1733 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
11041734 Date: Tue Jun 29 11:30:47 2010 +0530
11051735
11061736 xml: Fix MPEG_TS_*_NA profile names
11091739 long (188 byte payload + 4 byte timestamp), the profile must be suffixed
11101740 with an _ISO.
11111741
1742
11121743 data/mpeg-ts.xml | 4 ++--
11131744 1 files changed, 2 insertions(+), 2 deletions(-)
1114
1115 commit b5d84443468cb6af8db8a50389f3fe0091bfff13
1116 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1745 commit: b5d8444 b5d84443468cb6af8db8a50389f3fe0091bfff13
1746 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
11171747 Date: Tue Jun 29 03:03:12 2010 +0530
11181748
11191749 xml: Add more common SD resolutions to common.xml
11201750
11211751 Also makes MPEG_TS* use these factored-out restrictions.
1752
11221753
11231754 data/common.xml | 144 +++++++++++++++++++++++++++++++++++++++++++++++-------
11241755 data/mpeg-ts.xml | 42 ++-------------
11251756 2 files changed, 132 insertions(+), 54 deletions(-)
1126
1127 commit a98581da83e17a5f77a19afcadf580d5f857c2f3
1128 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1757 commit: a98581d a98581da83e17a5f77a19afcadf580d5f857c2f3
1758 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
11291759 Date: Mon Jun 28 19:30:13 2010 +0530
11301760
11311761 xml: Fix typo in AVC_BL profile
11321762
1763
11331764 data/avc.xml | 2 +-
11341765 1 files changed, 1 insertions(+), 1 deletions(-)
1135
1136 commit f0edbf7669ca09675e4cc6ee65a0ddd5c18e6d1f
1137 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1766 commit: f0edbf7 f0edbf7669ca09675e4cc6ee65a0ddd5c18e6d1f
1767 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
11381768 Date: Thu Jun 24 23:03:02 2010 +0530
11391769
11401770 xml: Fix MP4 container usage
11471777
11481778 When we have smart transcoding, this will be taken care of
11491779 automatically, since encodebin will be able to transmux to MP4.
1780
11501781
11511782 data/aac.xml | 15 ---------------
11521783 data/amr.xml | 4 ----
11541785 data/common.xml | 5 ++++-
11551786 data/mpeg4.xml | 19 -------------------
11561787 5 files changed, 4 insertions(+), 45 deletions(-)
1157
1158 commit ac8046bcc3f3180640e822dfe4b3f0371fc4ea79
1159 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1788 commit: ac8046b ac8046bcc3f3180640e822dfe4b3f0371fc4ea79
1789 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
11601790 Date: Tue Jun 29 11:48:42 2010 +0530
11611791
11621792 libgupnp-dlna: Fix crash on invalid parent
1793
11631794
11641795 libgupnp-dlna/gupnp-dlna-load.c | 4 +++-
11651796 1 files changed, 3 insertions(+), 1 deletions(-)
1166
1167 commit b8b92ea6f76e79bba0ad89fdfe93968787987999
1168 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1797 commit: b8b92ea b8b92ea6f76e79bba0ad89fdfe93968787987999
1798 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
11691799 Date: Tue Jun 29 15:48:06 2010 +0530
11701800
11711801 libgupnp-dlna: Fix copy-paste-o in property init
11721802
11731803 Absolutely no cookies for me.
11741804
1805
11751806 libgupnp-dlna/gupnp-dlna-information.c | 2 +-
11761807 1 files changed, 1 insertions(+), 1 deletions(-)
1177
1178 commit e22f03dfb2fc45eac06d4686a4533ad7c7e5db06
1179 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1808 commit: e22f03d e22f03dfb2fc45eac06d4686a4533ad7c7e5db06
1809 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
11801810 Date: Mon Jun 21 14:40:06 2010 +0530
11811811
11821812 tests: Add a transcoding exmple
11831813
11841814 This takes an input file and transcodes to a given DLNA profile
1815
11851816
11861817 tests/Makefile.am | 4 +-
11871818 tests/dlna-encoding.c | 238 +++++++++++++++++++++++++++++++++++++++++++++++++
11881819 2 files changed, 241 insertions(+), 1 deletions(-)
1189
1190 commit dd6fcadd8bb5f438e5b27bd042e667e2d17a13ac
1191 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1820 commit: dd6fcad dd6fcadd8bb5f438e5b27bd042e667e2d17a13ac
1821 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
11921822 Date: Mon Jun 21 13:33:17 2010 +0530
11931823
11941824 profiles: API to get encoding profile from name
11951825
11961826 This adds a simple API to get a GstEncodingProfile given a DLNA profile
11971827 name. This should make automatic transcoding easier for clients.
1828
11981829
11991830 libgupnp-dlna/gupnp-dlna-profile.h | 2 ++
12001831 libgupnp-dlna/gupnp-dlna-profiles.c | 22 ++++++++++++++++++++++
12011832 2 files changed, 24 insertions(+), 0 deletions(-)
1202
1203 commit ce24afc337572ba9f2e0b9693756dde7fcac4543
1204 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1833 commit: ce24afc ce24afc337572ba9f2e0b9693756dde7fcac4543
1834 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
12051835 Date: Mon Jun 21 15:06:25 2010 +0530
12061836
12071837 xml: Support ID3 in MP3 profiles
12091839 This also makes encoding work, since a container needs to be provided
12101840 for encoding.
12111841
1842
12121843 data/mp3.xml | 33 +++++++++++++++++++++++++--------
12131844 1 files changed, 25 insertions(+), 8 deletions(-)
1214
1215 commit 9f442945c3c0fc3d6f01788deae9c6f248c01d9e
1216 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1845 commit: 9f44294 9f442945c3c0fc3d6f01788deae9c6f248c01d9e
1846 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
12171847 Date: Thu Jun 24 18:16:57 2010 +0530
12181848
12191849 build: Get rid of gst-convenience warning
12201850
12211851 Suppress the unstable API warning so we don't miss other warnings.
1852
12221853
12231854 configure.ac | 3 +++
12241855 1 files changed, 3 insertions(+), 0 deletions(-)
1225
1226 commit 4872007d251da8d5a11c6021388feff4401ca08c
1227 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1856 commit: 4872007 4872007d251da8d5a11c6021388feff4401ca08c
1857 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
12281858 Date: Thu Jun 24 18:12:46 2010 +0530
12291859
12301860 tests: Move XML test cases
12311861
12321862 Undo unnecessary nesting now that this is a spearate package.
1863
12331864
12341865 tests/dlna/xml/dlna-profile-illegal-base.xml | 10 ------
12351866 tests/dlna/xml/dlna-profile-illegal-parent.xml | 11 -------
12581889 tests/xml/value-empty.xml | 13 ++++++++
12591890 tests/xml/value-invalid.xml | 13 ++++++++
12601891 26 files changed, 172 insertions(+), 172 deletions(-)
1261
1262 commit 47b1dd4063a825d5c3b84380ddfb5685e36754d9
1263 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1892 commit: 47b1dd4 47b1dd4063a825d5c3b84380ddfb5685e36754d9
1893 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
12641894 Date: Thu Jun 24 18:11:04 2010 +0530
12651895
12661896 doc: Build documentation using gtk-doc
1897
12671898
12681899 Makefile.am | 4 +-
12691900 configure.ac | 2 +
12731904 doc/gupnp-dlna.types | 3 +
12741905 doc/version.xml.in | 1 +
12751906 7 files changed, 224 insertions(+), 2 deletions(-)
1276
1277 commit 642cec131c85367cf9b8c218916f0f61e3cd3341
1278 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1907 commit: 642cec1 642cec131c85367cf9b8c218916f0f61e3cd3341
1908 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
12791909 Date: Thu Jun 24 18:00:09 2010 +0530
12801910
12811911 libgupnp-dlna: Update GUPnPDLNADiscoverer documentation
12821912
12831913 This adds documentation for the undocumented parts of the
12841914 GUPnPDLNADiscoverer API and updates other bits.
1915
12851916
12861917 libgupnp-dlna/gupnp-dlna-discoverer.c | 67 ++++++++++++++++++++++++++++++++-
12871918 libgupnp-dlna/gupnp-dlna-discoverer.h | 12 ++----
12881919 2 files changed, 69 insertions(+), 10 deletions(-)
1289
1290 commit 3794de4597f453c6963fc960648c29bbd0cc5be5
1291 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1920 commit: 3794de4 3794de4597f453c6963fc960648c29bbd0cc5be5
1921 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
12921922 Date: Thu Jun 24 17:59:30 2010 +0530
12931923
12941924 libgupnp-dlna: Document GUPnPDLNAInformation
1925
12951926
12961927 libgupnp-dlna/gupnp-dlna-information.c | 48 +++++++++++++++++++++++++++++--
12971928 1 files changed, 44 insertions(+), 4 deletions(-)
1298
1299 commit 44bd40eb2ab735723fba6ccf0c26664fa4030924
1300 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1929 commit: 44bd40e 44bd40eb2ab735723fba6ccf0c26664fa4030924
1930 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
13011931 Date: Thu Jun 24 17:58:15 2010 +0530
13021932
13031933 libgupnp-dlna: Don't install gupnp-dlna-load.h
13041934
13051935 The API to load profiles from disk is not public.
1936
13061937
13071938 libgupnp-dlna/Makefile.am | 5 +++--
13081939 1 files changed, 3 insertions(+), 2 deletions(-)
1309
1310 commit 8442ff31df29bf288ac7ae2526fdadfbc9eeca43
1311 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1940 commit: 8442ff3 8442ff31df29bf288ac7ae2526fdadfbc9eeca43
1941 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
13121942 Date: Thu Jun 24 14:51:32 2010 +0530
13131943
13141944 libgupnp-dlna: Return const pointers from get functions
13171947 structure members (since these are not expected to be modified), so
13181948 these should be made const pointers.
13191949
1950
13201951 libgupnp-dlna/gupnp-dlna-information.c | 6 +++---
13211952 libgupnp-dlna/gupnp-dlna-information.h | 6 +++---
13221953 2 files changed, 6 insertions(+), 6 deletions(-)
1323
1324 commit 55ad6adc5846bf244ee1b89b607a6f7a6495c431
1325 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1954 commit: 55ad6ad 55ad6adc5846bf244ee1b89b607a6f7a6495c431
1955 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
13261956 Date: Mon Jun 21 13:22:22 2010 +0530
13271957
13281958 xml: Use 3GPP container correctly
13291959
13301960 This corrects some ambiguous use of 3GP as an alternative to the ISO
13311961 MPEG4 container.
1962
13321963
13331964 data/aac.xml | 15 ---------------
13341965 data/mpeg4.xml | 15 ++-------------
13351966 2 files changed, 2 insertions(+), 28 deletions(-)
1336
1337 commit 7dbc61382a2579a34f6dda09a119d896cd9fe093
1338 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
1967 commit: 7dbc613 7dbc61382a2579a34f6dda09a119d896cd9fe093
1968 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
13391969 Date: Sat Jun 19 23:37:44 2010 +0530
13401970
13411971 Initial commit
1972
13421973
13431974 AUTHORS | 1 +
13441975 COPYING | 482 ++++++++
14182049 tests/dlna/xml/value-empty.xml | 13 +
14192050 tests/dlna/xml/value-invalid.xml | 13 +
14202051 77 files changed, 8878 insertions(+), 0 deletions(-)
1421
1422 commit 5dc6021842e6d41fb9f87fcfe225ed8c390b4268
1423 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
2052 commit: 5dc6021 5dc6021842e6d41fb9f87fcfe225ed8c390b4268
2053 Author: Arun Raghavan <arun.raghavan@collabora.co.uk>
14242054 Date: Sun Jun 20 20:18:16 2010 +0530
14252055
14262056 misc: Add .gitignore
2057
14272058
14282059 .gitignore | 36 ++++++++++++++++++++++++++++++++++++
14292060 1 files changed, 36 insertions(+), 0 deletions(-)
0 SUBDIRS = gst-convenience libgupnp-dlna tools tests data doc
0 SUBDIRS = libgupnp-dlna tools tests data doc
11
22 pkgconfig_DATA = gupnp-dlna-1.0.pc
33 pkgconfigdir = $(libdir)/pkgconfig
3939 $(srcdir)/gupnp-dlna-1.0-uninstalled.pc.in \
4040 $(srcdir)/gupnp-dlna-1.0.pc.in $(top_srcdir)/configure AUTHORS \
4141 COPYING ChangeLog INSTALL NEWS TODO config.guess config.sub \
42 depcomp install-sh ltmain.sh missing
42 depcomp install-sh ltmain.sh missing mkinstalldirs
4343 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
4444 am__aclocal_m4_deps = $(top_srcdir)/configure.ac
4545 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
4646 $(ACLOCAL_M4)
4747 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
4848 configure.lineno config.status.lineno
49 mkinstalldirs = $(install_sh) -d
49 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
5050 CONFIG_HEADER = config.h
5151 CONFIG_CLEAN_FILES = gupnp-dlna-1.0.pc gupnp-dlna-1.0-uninstalled.pc
5252 CONFIG_CLEAN_VPATH_FILES =
160160 FGREP = @FGREP@
161161 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
162162 GREP = @GREP@
163 GST_BASE_CFLAGS = @GST_BASE_CFLAGS@
164 GST_BASE_LIBS = @GST_BASE_LIBS@
165163 GST_CFLAGS = @GST_CFLAGS@
166164 GST_LIBS = @GST_LIBS@
167165 GST_MAJORMINOR = @GST_MAJORMINOR@
168 GST_VIDEO_CFLAGS = @GST_VIDEO_CFLAGS@
169 GST_VIDEO_LIBS = @GST_VIDEO_LIBS@
166 GST_PBU_CFLAGS = @GST_PBU_CFLAGS@
167 GST_PBU_LIBS = @GST_PBU_LIBS@
170168 GTKDOC_CHECK = @GTKDOC_CHECK@
171169 GTKDOC_MKPDF = @GTKDOC_MKPDF@
172170 GTKDOC_REBASE = @GTKDOC_REBASE@
204202 PACKAGE_VERSION = @PACKAGE_VERSION@
205203 PATH_SEPARATOR = @PATH_SEPARATOR@
206204 PKG_CONFIG = @PKG_CONFIG@
207 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
208 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
209205 RANLIB = @RANLIB@
210206 SED = @SED@
211207 SET_MAKE = @SET_MAKE@
248244 libexecdir = @libexecdir@
249245 localedir = @localedir@
250246 localstatedir = @localstatedir@
247 lt_ECHO = @lt_ECHO@
251248 mandir = @mandir@
252249 mkdir_p = @mkdir_p@
253250 oldincludedir = @oldincludedir@
263260 top_build_prefix = @top_build_prefix@
264261 top_builddir = @top_builddir@
265262 top_srcdir = @top_srcdir@
266 SUBDIRS = gst-convenience libgupnp-dlna tools tests data doc
263 SUBDIRS = libgupnp-dlna tools tests data doc
267264 pkgconfig_DATA = gupnp-dlna-1.0.pc
268265 pkgconfigdir = $(libdir)/pkgconfig
269266 DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc
0 0.6.0
1 =====
2
3 - Add 'MPEG_TS_SD_EU_ISO' profile.
4 - Relax some video restrictions for MPEG TS profile.
5 - Fix profile parsing logic for images.
6 - Drop fourcc format restrictions.
7 - Only initialize thread system once.
8 - Improve/fix external and internal documentation.
9 - Get rid of nasty warnings when building docs.
10 - Improved handling of GstCaps.
11 - Remove redundant initializations.
12 - Fix some leaks.
13 - Hilight test failures by use of red color.
14 - Mark constant return values as such.
15 - Clear the (obsolete) ChangeLog file.
16 - Test media moved to gitorious.
17 - Many non-functional improvements.
18
19 All contributors to this release:
20
21 Parthasarathi Susarla <partha.susarla@collabora.co.uk>
22 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
23 Luis de Bethencourt <luis@debethencourt.com>
24
25 0.5.1
26 =====
27
28 Changes since 0.5.0:
29
30 - Use encoding-profile from gst-plugins-base.
31 - Drop internalized copy of gst-convenience. Did you hear that Fedora peeps?
32 - Explicitly link gupnp-dlna-info against gstreamer-pbutils.
33 - GUPnPDLNAProfile exposes related GstEncodingProfile as a property.
34
35 Dependency related changes:
36
37 - Require gstreamer-pbutils >= 0.10.32.
38
39 All contributors to this release:
40
41 Arun Raghavan <arun.raghavan@collabora.co.uk>
42 Parthasarathi Susarla <partha.susarla@collabora.co.uk>
43 Luis de Bethencourt <luis@debethencourt.com>
44 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
45
46 0.5.0
47 =====
48
49 Changes since 0.4.2:
50
51 - Use GstDiscoverer from gst-plugins-base and remove internal
52 copy of discoverer.
53 - Minor bug fixes.
54
55 Arun Raghavan <arun.raghavan@collabora.co.uk>
56 Parthasarathi Susarla <partha.susarla@collabora.co.uk>
57 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
58
059 0.4.2
160 =====
261
1212
1313 m4_ifndef([AC_AUTOCONF_VERSION],
1414 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
15 m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
16 [m4_warning([this file was generated for autoconf 2.68.
15 m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],,
16 [m4_warning([this file was generated for autoconf 2.67.
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.
1919 To do so, use the procedure documented by the package, typically `autoreconf'.])])
987987 AC_SUBST([am__untar])
988988 ]) # _AM_PROG_TAR
989989
990 dnl -*- mode: autoconf -*-
991
992 # serial 1
993
994 dnl Usage:
995 dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
996 AC_DEFUN([GTK_DOC_CHECK],
997 [
998 AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
999 AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
1000
1001 dnl check for tools we added during development
1002 AC_PATH_PROG([GTKDOC_CHECK],[gtkdoc-check])
1003 AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true])
1004 AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf])
1005
1006 dnl for overriding the documentation installation directory
1007 AC_ARG_WITH([html-dir],
1008 AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),,
1009 [with_html_dir='${datadir}/gtk-doc/html'])
1010 HTML_DIR="$with_html_dir"
1011 AC_SUBST([HTML_DIR])
1012
1013 dnl enable/disable documentation building
1014 AC_ARG_ENABLE([gtk-doc],
1015 AS_HELP_STRING([--enable-gtk-doc],
1016 [use gtk-doc to build documentation [[default=no]]]),,
1017 [enable_gtk_doc=no])
1018
1019 if test x$enable_gtk_doc = xyes; then
1020 ifelse([$1],[],
1021 [PKG_CHECK_EXISTS([gtk-doc],,
1022 AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
1023 [PKG_CHECK_EXISTS([gtk-doc >= $1],,
1024 AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))])
1025 fi
1026
1027 AC_MSG_CHECKING([whether to build gtk-doc documentation])
1028 AC_MSG_RESULT($enable_gtk_doc)
1029
1030 dnl enable/disable output formats
1031 AC_ARG_ENABLE([gtk-doc-html],
1032 AS_HELP_STRING([--enable-gtk-doc-html],
1033 [build documentation in html format [[default=yes]]]),,
1034 [enable_gtk_doc_html=yes])
1035 AC_ARG_ENABLE([gtk-doc-pdf],
1036 AS_HELP_STRING([--enable-gtk-doc-pdf],
1037 [build documentation in pdf format [[default=no]]]),,
1038 [enable_gtk_doc_pdf=no])
1039
1040 if test -z "$GTKDOC_MKPDF"; then
1041 enable_gtk_doc_pdf=no
1042 fi
1043
1044
1045 AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
1046 AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes])
1047 AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes])
1048 AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"])
1049 AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"])
1050 ])
1051
1052990 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
1053991 #
1054992 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
1055 # 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
1056 # Inc.
993 # 2006, 2007, 2008 Free Software Foundation, Inc.
1057994 # Written by Gordon Matzigkeit, 1996
1058995 #
1059996 # This file is free software; the Free Software Foundation gives
1062999
10631000 m4_define([_LT_COPYING], [dnl
10641001 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
1065 # 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
1066 # Inc.
1002 # 2006, 2007, 2008 Free Software Foundation, Inc.
10671003 # Written by Gordon Matzigkeit, 1996
10681004 #
10691005 # This file is part of GNU Libtool.
10901026 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
10911027 ])
10921028
1093 # serial 57 LT_INIT
1029 # serial 56 LT_INIT
10941030
10951031
10961032 # LT_PREREQ(VERSION)
11191055 # ------------------
11201056 AC_DEFUN([LT_INIT],
11211057 [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
1122 AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
11231058 AC_BEFORE([$0], [LT_LANG])dnl
11241059 AC_BEFORE([$0], [LT_OUTPUT])dnl
11251060 AC_BEFORE([$0], [LTDL_INIT])dnl
11351070 AC_REQUIRE([LTVERSION_VERSION])dnl
11361071 AC_REQUIRE([LTOBSOLETE_VERSION])dnl
11371072 m4_require([_LT_PROG_LTMAIN])dnl
1138
1139 _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
11401073
11411074 dnl Parse OPTIONS
11421075 _LT_SET_OPTIONS([$0], [$1])
11741107 *) break;;
11751108 esac
11761109 done
1177 cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
1110 cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
11781111 ])
11791112
11801113
11941127 m4_defun([_LT_SETUP],
11951128 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
11961129 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
1197 AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
1198 AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
1199
12001130 _LT_DECL([], [host_alias], [0], [The host system])dnl
12011131 _LT_DECL([], [host], [0])dnl
12021132 _LT_DECL([], [host_os], [0])dnl
12381168 _LT_CHECK_OBJDIR
12391169
12401170 m4_require([_LT_TAG_COMPILER])dnl
1171 _LT_PROG_ECHO_BACKSLASH
12411172
12421173 case $host_os in
12431174 aix3*)
12511182 ;;
12521183 esac
12531184
1185 # Sed substitution that helps us do robust quoting. It backslashifies
1186 # metacharacters that are still active within double-quoted strings.
1187 sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
1188
1189 # Same as above, but do not quote variable references.
1190 double_quote_subst='s/\([["`\\]]\)/\\\1/g'
1191
1192 # Sed substitution to delay expansion of an escaped shell variable in a
1193 # double_quote_subst'ed string.
1194 delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
1195
1196 # Sed substitution to delay expansion of an escaped single quote.
1197 delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
1198
1199 # Sed substitution to avoid accidental globbing in evaled expressions
1200 no_glob_subst='s/\*/\\\*/g'
1201
12541202 # Global variables:
12551203 ofile=libtool
12561204 can_build_shared=yes
12901238 _LT_CONFIG_COMMANDS
12911239 ])# _LT_SETUP
12921240
1293
1294 # _LT_PREPARE_SED_QUOTE_VARS
1295 # --------------------------
1296 # Define a few sed substitution that help us do robust quoting.
1297 m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
1298 [# Backslashify metacharacters that are still active within
1299 # double-quoted strings.
1300 sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
1301
1302 # Same as above, but do not quote variable references.
1303 double_quote_subst='s/\([["`\\]]\)/\\\1/g'
1304
1305 # Sed substitution to delay expansion of an escaped shell variable in a
1306 # double_quote_subst'ed string.
1307 delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
1308
1309 # Sed substitution to delay expansion of an escaped single quote.
1310 delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
1311
1312 # Sed substitution to avoid accidental globbing in evaled expressions
1313 no_glob_subst='s/\*/\\\*/g'
1314 ])
13151241
13161242 # _LT_PROG_LTMAIN
13171243 # ---------------
14651391 # declaration there will have the same value as in `configure'. VARNAME
14661392 # must have a single quote delimited value for this to work.
14671393 m4_define([_LT_CONFIG_STATUS_DECLARE],
1468 [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
1394 [$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`'])
14691395
14701396
14711397 # _LT_CONFIG_STATUS_DECLARATIONS
14751401 # embedded single quotes properly. In configure, this macro expands
14761402 # each variable declared with _LT_DECL (and _LT_TAGDECL) into:
14771403 #
1478 # <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
1404 # <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`'
14791405 m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
14801406 [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
14811407 [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
15741500 LTCFLAGS='$LTCFLAGS'
15751501 compiler='$compiler_DEFAULT'
15761502
1577 # A function that is used when there is no print builtin or printf.
1578 func_fallback_echo ()
1579 {
1580 eval 'cat <<_LTECHO_EOF
1581 \$[]1
1582 _LTECHO_EOF'
1583 }
1584
15851503 # Quote evaled strings.
15861504 for var in lt_decl_all_varnames([[ \
15871505 ]], lt_decl_quote_varnames); do
1588 case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
1506 case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
15891507 *[[\\\\\\\`\\"\\\$]]*)
1590 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
1508 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
15911509 ;;
15921510 *)
15931511 eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
15981516 # Double-quote double-evaled strings.
15991517 for var in lt_decl_all_varnames([[ \
16001518 ]], lt_decl_dquote_varnames); do
1601 case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
1519 case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
16021520 *[[\\\\\\\`\\"\\\$]]*)
1603 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
1521 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
16041522 ;;
16051523 *)
16061524 eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
16081526 esac
16091527 done
16101528
1529 # Fix-up fallback echo if it was mangled by the above quoting rules.
1530 case \$lt_ECHO in
1531 *'\\\[$]0 --fallback-echo"')dnl "
1532 lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\`
1533 ;;
1534 esac
1535
16111536 _LT_OUTPUT_LIBTOOL_INIT
16121537 ])
16131538
1614 # _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
1615 # ------------------------------------
1616 # Generate a child script FILE with all initialization necessary to
1617 # reuse the environment learned by the parent script, and make the
1618 # file executable. If COMMENT is supplied, it is inserted after the
1619 # `#!' sequence but before initialization text begins. After this
1620 # macro, additional text can be appended to FILE to form the body of
1621 # the child script. The macro ends with non-zero status if the
1622 # file could not be fully written (such as if the disk is full).
1623 m4_ifdef([AS_INIT_GENERATED],
1624 [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
1625 [m4_defun([_LT_GENERATED_FILE_INIT],
1626 [m4_require([AS_PREPARE])]dnl
1627 [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
1628 [lt_write_fail=0
1629 cat >$1 <<_ASEOF || lt_write_fail=1
1630 #! $SHELL
1631 # Generated by $as_me.
1632 $2
1633 SHELL=\${CONFIG_SHELL-$SHELL}
1634 export SHELL
1635 _ASEOF
1636 cat >>$1 <<\_ASEOF || lt_write_fail=1
1637 AS_SHELL_SANITIZE
1638 _AS_PREPARE
1639 exec AS_MESSAGE_FD>&1
1640 _ASEOF
1641 test $lt_write_fail = 0 && chmod +x $1[]dnl
1642 m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
16431539
16441540 # LT_OUTPUT
16451541 # ---------
16491545 AC_DEFUN([LT_OUTPUT],
16501546 [: ${CONFIG_LT=./config.lt}
16511547 AC_MSG_NOTICE([creating $CONFIG_LT])
1652 _LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
1653 [# Run this file to recreate a libtool stub with the current configuration.])
1548 cat >"$CONFIG_LT" <<_LTEOF
1549 #! $SHELL
1550 # Generated by $as_me.
1551 # Run this file to recreate a libtool stub with the current configuration.
1552
1553 lt_cl_silent=false
1554 SHELL=\${CONFIG_SHELL-$SHELL}
1555 _LTEOF
16541556
16551557 cat >>"$CONFIG_LT" <<\_LTEOF
1656 lt_cl_silent=false
1558 AS_SHELL_SANITIZE
1559 _AS_PREPARE
1560
1561 exec AS_MESSAGE_FD>&1
16571562 exec AS_MESSAGE_LOG_FD>>config.log
16581563 {
16591564 echo
16791584 m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
16801585 configured by $[0], generated by m4_PACKAGE_STRING.
16811586
1682 Copyright (C) 2010 Free Software Foundation, Inc.
1587 Copyright (C) 2008 Free Software Foundation, Inc.
16831588 This config.lt script is free software; the Free Software Foundation
16841589 gives unlimited permision to copy, distribute and modify it."
16851590
17241629 # appending to config.log, which fails on DOS, as config.log is still kept
17251630 # open by configure. Here we exec the FD to /dev/null, effectively closing
17261631 # config.log, so it can be properly (re)opened and appended to by config.lt.
1727 lt_cl_success=:
1728 test "$silent" = yes &&
1729 lt_config_lt_args="$lt_config_lt_args --quiet"
1730 exec AS_MESSAGE_LOG_FD>/dev/null
1731 $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
1732 exec AS_MESSAGE_LOG_FD>>config.log
1733 $lt_cl_success || AS_EXIT(1)
1632 if test "$no_create" != yes; then
1633 lt_cl_success=:
1634 test "$silent" = yes &&
1635 lt_config_lt_args="$lt_config_lt_args --quiet"
1636 exec AS_MESSAGE_LOG_FD>/dev/null
1637 $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
1638 exec AS_MESSAGE_LOG_FD>>config.log
1639 $lt_cl_success || AS_EXIT(1)
1640 fi
17341641 ])# LT_OUTPUT
17351642
17361643
19071814 AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
19081815 AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
19091816 AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
1910 AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
19111817 dnl aclocal-1.4 backwards compatibility:
19121818 dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
19131819 dnl AC_DEFUN([AC_LIBTOOL_F77], [])
19141820 dnl AC_DEFUN([AC_LIBTOOL_FC], [])
19151821 dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
1916 dnl AC_DEFUN([AC_LIBTOOL_RC], [])
19171822
19181823
19191824 # _LT_TAG_COMPILER
20181923 [lt_cv_ld_exported_symbols_list=no])
20191924 LDFLAGS="$save_LDFLAGS"
20201925 ])
2021 AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
2022 [lt_cv_ld_force_load=no
2023 cat > conftest.c << _LT_EOF
2024 int forced_loaded() { return 2;}
2025 _LT_EOF
2026 echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
2027 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
2028 echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
2029 $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
2030 echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
2031 $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
2032 cat > conftest.c << _LT_EOF
2033 int main() { return 0;}
2034 _LT_EOF
2035 echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
2036 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
2037 _lt_result=$?
2038 if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
2039 lt_cv_ld_force_load=yes
2040 else
2041 cat conftest.err >&AS_MESSAGE_LOG_FD
2042 fi
2043 rm -f conftest.err libconftest.a conftest conftest.c
2044 rm -rf conftest.dSYM
2045 ])
20461926 case $host_os in
20471927 rhapsody* | darwin1.[[012]])
20481928 _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
20701950 else
20711951 _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
20721952 fi
2073 if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
1953 if test "$DSYMUTIL" != ":"; then
20741954 _lt_dsymutil='~$DSYMUTIL $lib || :'
20751955 else
20761956 _lt_dsymutil=
20901970 _LT_TAGVAR(hardcode_direct, $1)=no
20911971 _LT_TAGVAR(hardcode_automatic, $1)=yes
20921972 _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
2093 if test "$lt_cv_ld_force_load" = "yes"; then
2094 _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\"`'
2095 else
2096 _LT_TAGVAR(whole_archive_flag_spec, $1)=''
2097 fi
1973 _LT_TAGVAR(whole_archive_flag_spec, $1)=''
20981974 _LT_TAGVAR(link_all_deplibs, $1)=yes
20991975 _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
21001976 case $cc_basename in
21021978 *) _lt_dar_can_shared=$GCC ;;
21031979 esac
21041980 if test "$_lt_dar_can_shared" = "yes"; then
2105 output_verbose_link_cmd=func_echo_all
1981 output_verbose_link_cmd=echo
21061982 _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
21071983 _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
21081984 _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
21482024 # _LT_SHELL_INIT(ARG)
21492025 # -------------------
21502026 m4_define([_LT_SHELL_INIT],
2151 [m4_divert_text([M4SH-INIT], [$1
2152 ])])# _LT_SHELL_INIT
2153
2027 [ifdef([AC_DIVERSION_NOTICE],
2028 [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
2029 [AC_DIVERT_PUSH(NOTICE)])
2030 $1
2031 AC_DIVERT_POP
2032 ])# _LT_SHELL_INIT
21542033
21552034
21562035 # _LT_PROG_ECHO_BACKSLASH
21572036 # -----------------------
2158 # Find how we can fake an echo command that does not interpret backslash.
2159 # In particular, with Autoconf 2.60 or later we add some code to the start
2160 # of the generated configure script which will find a shell with a builtin
2161 # printf (which we can use as an echo command).
2037 # Add some code to the start of the generated configure script which
2038 # will find an echo command which doesn't interpret backslashes.
21622039 m4_defun([_LT_PROG_ECHO_BACKSLASH],
2163 [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
2164 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
2165 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
2166
2167 AC_MSG_CHECKING([how to print strings])
2168 # Test print first, because it will be a builtin if present.
2169 if test "X`print -r -- -n 2>/dev/null`" = X-n && \
2170 test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
2171 ECHO='print -r --'
2172 elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
2173 ECHO='printf %s\n'
2040 [_LT_SHELL_INIT([
2041 # Check that we are running under the correct shell.
2042 SHELL=${CONFIG_SHELL-/bin/sh}
2043
2044 case X$lt_ECHO in
2045 X*--fallback-echo)
2046 # Remove one level of quotation (which was required for Make).
2047 ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
2048 ;;
2049 esac
2050
2051 ECHO=${lt_ECHO-echo}
2052 if test "X[$]1" = X--no-reexec; then
2053 # Discard the --no-reexec flag, and continue.
2054 shift
2055 elif test "X[$]1" = X--fallback-echo; then
2056 # Avoid inline document here, it may be left over
2057 :
2058 elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
2059 # Yippee, $ECHO works!
2060 :
21742061 else
2175 # Use this function as a fallback that always works.
2176 func_fallback_echo ()
2177 {
2178 eval 'cat <<_LTECHO_EOF
2179 $[]1
2180 _LTECHO_EOF'
2181 }
2182 ECHO='func_fallback_echo'
2062 # Restart under the correct shell.
2063 exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
21832064 fi
21842065
2185 # func_echo_all arg...
2186 # Invoke $ECHO with all args, space-separated.
2187 func_echo_all ()
2188 {
2189 $ECHO "$*"
2190 }
2191
2192 case "$ECHO" in
2193 printf*) AC_MSG_RESULT([printf]) ;;
2194 print*) AC_MSG_RESULT([print -r]) ;;
2195 *) AC_MSG_RESULT([cat]) ;;
2196 esac
2197
2198 m4_ifdef([_AS_DETECT_SUGGESTED],
2199 [_AS_DETECT_SUGGESTED([
2200 test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
2201 ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
2202 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
2203 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
2204 PATH=/empty FPATH=/empty; export PATH FPATH
2205 test "X`printf %s $ECHO`" = "X$ECHO" \
2206 || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
2207
2066 if test "X[$]1" = X--fallback-echo; then
2067 # used as fallback echo
2068 shift
2069 cat <<_LT_EOF
2070 [$]*
2071 _LT_EOF
2072 exit 0
2073 fi
2074
2075 # The HP-UX ksh and POSIX shell print the target directory to stdout
2076 # if CDPATH is set.
2077 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
2078
2079 if test -z "$lt_ECHO"; then
2080 if test "X${echo_test_string+set}" != Xset; then
2081 # find a string as large as possible, as long as the shell can cope with it
2082 for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
2083 # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
2084 if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
2085 { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
2086 then
2087 break
2088 fi
2089 done
2090 fi
2091
2092 if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
2093 echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
2094 test "X$echo_testing_string" = "X$echo_test_string"; then
2095 :
2096 else
2097 # The Solaris, AIX, and Digital Unix default echo programs unquote
2098 # backslashes. This makes it impossible to quote backslashes using
2099 # echo "$something" | sed 's/\\/\\\\/g'
2100 #
2101 # So, first we look for a working echo in the user's PATH.
2102
2103 lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
2104 for dir in $PATH /usr/ucb; do
2105 IFS="$lt_save_ifs"
2106 if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
2107 test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
2108 echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
2109 test "X$echo_testing_string" = "X$echo_test_string"; then
2110 ECHO="$dir/echo"
2111 break
2112 fi
2113 done
2114 IFS="$lt_save_ifs"
2115
2116 if test "X$ECHO" = Xecho; then
2117 # We didn't find a better echo, so look for alternatives.
2118 if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
2119 echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
2120 test "X$echo_testing_string" = "X$echo_test_string"; then
2121 # This shell has a builtin print -r that does the trick.
2122 ECHO='print -r'
2123 elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
2124 test "X$CONFIG_SHELL" != X/bin/ksh; then
2125 # If we have ksh, try running configure again with it.
2126 ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
2127 export ORIGINAL_CONFIG_SHELL
2128 CONFIG_SHELL=/bin/ksh
2129 export CONFIG_SHELL
2130 exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
2131 else
2132 # Try using printf.
2133 ECHO='printf %s\n'
2134 if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
2135 echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
2136 test "X$echo_testing_string" = "X$echo_test_string"; then
2137 # Cool, printf works
2138 :
2139 elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
2140 test "X$echo_testing_string" = 'X\t' &&
2141 echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
2142 test "X$echo_testing_string" = "X$echo_test_string"; then
2143 CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
2144 export CONFIG_SHELL
2145 SHELL="$CONFIG_SHELL"
2146 export SHELL
2147 ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
2148 elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
2149 test "X$echo_testing_string" = 'X\t' &&
2150 echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
2151 test "X$echo_testing_string" = "X$echo_test_string"; then
2152 ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
2153 else
2154 # maybe with a smaller string...
2155 prev=:
2156
2157 for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
2158 if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
2159 then
2160 break
2161 fi
2162 prev="$cmd"
2163 done
2164
2165 if test "$prev" != 'sed 50q "[$]0"'; then
2166 echo_test_string=`eval $prev`
2167 export echo_test_string
2168 exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
2169 else
2170 # Oops. We lost completely, so just stick with echo.
2171 ECHO=echo
2172 fi
2173 fi
2174 fi
2175 fi
2176 fi
2177 fi
2178
2179 # Copy echo and quote the copy suitably for passing to libtool from
2180 # the Makefile, instead of quoting the original, which is used later.
2181 lt_ECHO=$ECHO
2182 if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
2183 lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
2184 fi
2185
2186 AC_SUBST(lt_ECHO)
2187 ])
22082188 _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
2209 _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
2189 _LT_DECL([], [ECHO], [1],
2190 [An echo program that does not interpret backslashes])
22102191 ])# _LT_PROG_ECHO_BACKSLASH
22112192
22122193
22382219 ;;
22392220 *-*-irix6*)
22402221 # Find out which ABI we are using.
2241 echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
2222 echo '[#]line __oline__ "configure"' > conftest.$ac_ext
22422223 if AC_TRY_EVAL(ac_compile); then
22432224 if test "$lt_cv_prog_gnu_ld" = yes; then
22442225 case `/usr/bin/file conftest.$ac_objext` in
23902371 esac
23912372 old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
23922373 fi
2393
2394 case $host_os in
2395 darwin*)
2396 lock_old_archive_extraction=yes ;;
2397 *)
2398 lock_old_archive_extraction=no ;;
2399 esac
24002374 _LT_DECL([], [old_postinstall_cmds], [2])
24012375 _LT_DECL([], [old_postuninstall_cmds], [2])
24022376 _LT_TAGDECL([], [old_archive_cmds], [2],
24032377 [Commands used to build an old-style archive])
2404 _LT_DECL([], [lock_old_archive_extraction], [0],
2405 [Whether to use a lock for old archive extraction])
24062378 ])# _LT_CMD_OLD_ARCHIVE
24072379
24082380
24272399 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
24282400 -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
24292401 -e 's:$: $lt_compiler_flag:'`
2430 (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
2402 (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
24312403 (eval "$lt_compile" 2>conftest.err)
24322404 ac_status=$?
24332405 cat conftest.err >&AS_MESSAGE_LOG_FD
2434 echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
2406 echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
24352407 if (exit $ac_status) && test -s "$ac_outfile"; then
24362408 # The compiler can only warn and ignore the option if not recognized
24372409 # So say no if there are warnings other than the usual output.
2438 $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
2410 $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
24392411 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
24402412 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
24412413 $2=yes
24752447 if test -s conftest.err; then
24762448 # Append any errors to the config.log.
24772449 cat conftest.err 1>&AS_MESSAGE_LOG_FD
2478 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
2450 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
24792451 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
24802452 if diff conftest.exp conftest.er2 >/dev/null; then
24812453 $2=yes
25352507 # the test eventually succeeds (with a max line length of 256k).
25362508 # Instead, let's just punt: use the minimum linelength reported by
25372509 # all of the supported platforms: 8192 (on NT/2K/XP).
2538 lt_cv_sys_max_cmd_len=8192;
2539 ;;
2540
2541 mint*)
2542 # On MiNT this can take a long time and run out of memory.
25432510 lt_cv_sys_max_cmd_len=8192;
25442511 ;;
25452512
26072574 # If test is not a shell built-in, we'll probably end up computing a
26082575 # maximum length that is only half of the actual maximum length, but
26092576 # we can't tell.
2610 while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
2611 = "X$teststring$teststring"; } >/dev/null 2>&1 &&
2577 while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
2578 = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
26122579 test $i != 17 # 1/2 MB should be enough
26132580 do
26142581 i=`expr $i + 1`
26592626 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
26602627 lt_status=$lt_dlunknown
26612628 cat > conftest.$ac_ext <<_LT_EOF
2662 [#line $LINENO "configure"
2629 [#line __oline__ "configure"
26632630 #include "confdefs.h"
26642631
26652632 #if HAVE_DLFCN_H
27002667 # endif
27012668 #endif
27022669
2703 /* When -fvisbility=hidden is used, assume the code has been annotated
2704 correspondingly for the symbols needed. */
2705 #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
2706 void fnord () __attribute__((visibility("default")));
2707 #endif
2708
2709 void fnord () { int i=42; }
2670 void fnord() { int i=42;}
27102671 int main ()
27112672 {
27122673 void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
27152676 if (self)
27162677 {
27172678 if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
2718 else
2719 {
2720 if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
2721 else puts (dlerror ());
2722 }
2679 else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
27232680 /* dlclose (self); */
27242681 }
27252682 else
28952852 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
28962853 -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
28972854 -e 's:$: $lt_compiler_flag:'`
2898 (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
2855 (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
28992856 (eval "$lt_compile" 2>out/conftest.err)
29002857 ac_status=$?
29012858 cat out/conftest.err >&AS_MESSAGE_LOG_FD
2902 echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
2859 echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
29032860 if (exit $ac_status) && test -s out/conftest2.$ac_objext
29042861 then
29052862 # The compiler can only warn and ignore the option if not recognized
29062863 # So say no if there are warnings
2907 $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
2864 $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
29082865 $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
29092866 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
29102867 _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
30633020 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
30643021 m4_require([_LT_DECL_OBJDUMP])dnl
30653022 m4_require([_LT_DECL_SED])dnl
3066 m4_require([_LT_CHECK_SHELL_FEATURES])dnl
30673023 AC_MSG_CHECKING([dynamic linker characteristics])
30683024 m4_if([$1],
30693025 [], [
30723028 darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
30733029 *) lt_awk_arg="/^libraries:/" ;;
30743030 esac
3075 case $host_os in
3076 mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
3077 *) lt_sed_strip_eq="s,=/,/,g" ;;
3078 esac
3079 lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
3080 case $lt_search_path_spec in
3081 *\;*)
3031 lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
3032 if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
30823033 # if the path contains ";" then we assume it to be the separator
30833034 # otherwise default to the standard path separator (i.e. ":") - it is
30843035 # assumed that no part of a normal pathname contains ";" but that should
30853036 # okay in the real world where ";" in dirpaths is itself problematic.
3086 lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
3087 ;;
3088 *)
3089 lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
3090 ;;
3091 esac
3037 lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
3038 else
3039 lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
3040 fi
30923041 # Ok, now we have the path, separated by spaces, we can step through it
30933042 # and add multilib dir if necessary.
30943043 lt_tmp_lt_search_path_spec=
31013050 lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
31023051 fi
31033052 done
3104 lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
3053 lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
31053054 BEGIN {RS=" "; FS="/|\n";} {
31063055 lt_foo="";
31073056 lt_count=0;
31213070 if (lt_foo != "") { lt_freq[[lt_foo]]++; }
31223071 if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
31233072 }'`
3124 # AWK program above erroneously prepends '/' to C:/dos/paths
3125 # for these hosts.
3126 case $host_os in
3127 mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
3128 $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
3129 esac
3130 sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
3073 sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
31313074 else
31323075 sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
31333076 fi])
32153158 m68k)
32163159 library_names_spec='$libname.ixlibrary $libname.a'
32173160 # Create ${libname}_ixlibrary.a entries in /sys/libs.
3218 finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
3161 finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
32193162 ;;
32203163 esac
32213164 ;;
32683211 cygwin*)
32693212 # Cygwin DLLs use 'cyg' prefix rather than 'lib'
32703213 soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
3271 m4_if([$1], [],[
3272 sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
3214 sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
32733215 ;;
32743216 mingw* | cegcc*)
32753217 # MinGW DLLs use traditional 'lib' prefix
32763218 soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
3219 sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
3220 if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
3221 # It is most probably a Windows format PATH printed by
3222 # mingw gcc, but we are running on Cygwin. Gcc prints its search
3223 # path with ; separators, and with drive letters. We can handle the
3224 # drive letters (cygwin fileutils understands them), so leave them,
3225 # especially as we might pass files found there to a mingw objdump,
3226 # which wouldn't understand a cygwinified path. Ahh.
3227 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
3228 else
3229 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
3230 fi
32773231 ;;
32783232 pw32*)
32793233 # pw32 DLLs use 'pw' prefix rather than 'lib'
33303284 *) objformat=elf ;;
33313285 esac
33323286 fi
3333 # Handle Gentoo/FreeBSD as it was Linux
3334 case $host_vendor in
3335 gentoo)
3336 version_type=linux ;;
3337 *)
3338 version_type=freebsd-$objformat ;;
3339 esac
3340
3287 version_type=freebsd-$objformat
33413288 case $version_type in
33423289 freebsd-elf*)
33433290 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
33473294 freebsd-*)
33483295 library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
33493296 need_version=yes
3350 ;;
3351 linux)
3352 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
3353 soname_spec='${libname}${release}${shared_ext}$major'
3354 need_lib_prefix=no
3355 need_version=no
33563297 ;;
33573298 esac
33583299 shlibpath_var=LD_LIBRARY_PATH
33833324 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
33843325 soname_spec='${libname}${release}${shared_ext}$major'
33853326 shlibpath_var=LD_LIBRARY_PATH
3386 hardcode_into_libs=yes
3387 ;;
3388
3389 haiku*)
3390 version_type=linux
3391 need_lib_prefix=no
3392 need_version=no
3393 dynamic_linker="$host_os runtime_loader"
3394 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
3395 soname_spec='${libname}${release}${shared_ext}$major'
3396 shlibpath_var=LIBRARY_PATH
3397 shlibpath_overrides_runpath=yes
3398 sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
33993327 hardcode_into_libs=yes
34003328 ;;
34013329
34413369 soname_spec='${libname}${release}${shared_ext}$major'
34423370 ;;
34433371 esac
3444 # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
3372 # HP-UX runs *really* slowly unless shared libraries are mode 555.
34453373 postinstall_cmds='chmod 555 $lib'
3446 # or fails outright, so override atomically:
3447 install_override_mode=555
34483374 ;;
34493375
34503376 interix[[3-9]]*)
35113437 finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
35123438 shlibpath_var=LD_LIBRARY_PATH
35133439 shlibpath_overrides_runpath=no
3514
35153440 # Some binutils ld are patched to set DT_RUNPATH
3516 AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
3517 [lt_cv_shlibpath_overrides_runpath=no
3518 save_LDFLAGS=$LDFLAGS
3519 save_libdir=$libdir
3520 eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
3521 LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
3522 AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
3523 [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
3524 [lt_cv_shlibpath_overrides_runpath=yes])])
3525 LDFLAGS=$save_LDFLAGS
3526 libdir=$save_libdir
3527 ])
3528 shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
3441 save_LDFLAGS=$LDFLAGS
3442 save_libdir=$libdir
3443 eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
3444 LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
3445 AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
3446 [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
3447 [shlibpath_overrides_runpath=yes])])
3448 LDFLAGS=$save_LDFLAGS
3449 libdir=$save_libdir
35293450
35303451 # This implies no fast_install, which is unacceptable.
35313452 # Some rework will be needed to allow for fast_install
35343455
35353456 # Append ld.so.conf contents to the search path
35363457 if test -f /etc/ld.so.conf; then
3537 lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
3458 lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
35383459 sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
35393460 fi
35403461
35453466 # people can always --disable-shared, the test was removed, and we
35463467 # assume the GNU/Linux dynamic linker is in use.
35473468 dynamic_linker='GNU/Linux ld.so'
3469 ;;
3470
3471 netbsdelf*-gnu)
3472 version_type=linux
3473 need_lib_prefix=no
3474 need_version=no
3475 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
3476 soname_spec='${libname}${release}${shared_ext}$major'
3477 shlibpath_var=LD_LIBRARY_PATH
3478 shlibpath_overrides_runpath=no
3479 hardcode_into_libs=yes
3480 dynamic_linker='NetBSD ld.elf_so'
35483481 ;;
35493482
35503483 netbsd*)
37673700 The last name is the one that the linker finds with -lNAME]])
37683701 _LT_DECL([], [soname_spec], [1],
37693702 [[The coded name of the library, if different from the real name]])
3770 _LT_DECL([], [install_override_mode], [1],
3771 [Permission mode override for installation of shared libraries])
37723703 _LT_DECL([], [postinstall_cmds], [2],
37733704 [Command to use after installation of a shared archive])
37743705 _LT_DECL([], [postuninstall_cmds], [2],
38813812 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
38823813 m4_require([_LT_DECL_SED])dnl
38833814 m4_require([_LT_DECL_EGREP])dnl
3884 m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
38853815
38863816 AC_ARG_WITH([gnu-ld],
38873817 [AS_HELP_STRING([--with-gnu-ld],
40113941 fi
40123942 ;;
40133943 esac
4014 _LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
4015 _LT_TAGDECL([], [reload_cmds], [2])dnl
3944 _LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl
3945 _LT_DECL([], [reload_cmds], [2])dnl
40163946 ])# _LT_CMD_RELOAD
40173947
40183948
40643994 # Base MSYS/MinGW do not provide the 'file' command needed by
40653995 # func_win32_libid shell function, so use a weaker test based on 'objdump',
40663996 # unless we find 'file', for example because we are cross-compiling.
4067 # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
4068 if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
3997 if ( file / ) >/dev/null 2>&1; then
40693998 lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
40703999 lt_cv_file_magic_cmd='func_win32_libid'
40714000 else
4072 # Keep this pattern in sync with the one in func_win32_libid.
4073 lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
4001 lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
40744002 lt_cv_file_magic_cmd='$OBJDUMP -f'
40754003 fi
40764004 ;;
40774005
4078 cegcc*)
4006 cegcc)
40794007 # use the weaker test based on 'objdump'. See mingw*.
40804008 lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
40814009 lt_cv_file_magic_cmd='$OBJDUMP -f'
41054033 lt_cv_deplibs_check_method=pass_all
41064034 ;;
41074035
4108 haiku*)
4109 lt_cv_deplibs_check_method=pass_all
4110 ;;
4111
41124036 hpux10.20* | hpux11*)
41134037 lt_cv_file_magic_cmd=/usr/bin/file
41144038 case $host_cpu in
41174041 lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
41184042 ;;
41194043 hppa*64*)
4120 [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
4044 [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
41214045 lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
41224046 ;;
41234047 *)
4124 lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
4048 lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
41254049 lt_cv_file_magic_test_file=/usr/lib/libc.sl
41264050 ;;
41274051 esac
41474071 lt_cv_deplibs_check_method=pass_all
41484072 ;;
41494073
4150 netbsd*)
4074 netbsd* | netbsdelf*-gnu)
41514075 if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
41524076 lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
41534077 else
42854209 NM="$lt_cv_path_NM"
42864210 else
42874211 # Didn't find any BSD compatible name lister, look for dumpbin.
4288 if test -n "$DUMPBIN"; then :
4289 # Let the user override the test.
4290 else
4291 AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
4292 case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
4293 *COFF*)
4294 DUMPBIN="$DUMPBIN -symbols"
4295 ;;
4296 *)
4297 DUMPBIN=:
4298 ;;
4299 esac
4300 fi
4212 AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :)
43014213 AC_SUBST([DUMPBIN])
43024214 if test "$DUMPBIN" != ":"; then
43034215 NM="$DUMPBIN"
43104222 AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
43114223 [lt_cv_nm_interface="BSD nm"
43124224 echo "int some_variable = 0;" > conftest.$ac_ext
4313 (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
4225 (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
43144226 (eval "$ac_compile" 2>conftest.err)
43154227 cat conftest.err >&AS_MESSAGE_LOG_FD
4316 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
4228 (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
43174229 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
43184230 cat conftest.err >&AS_MESSAGE_LOG_FD
4319 (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
4231 (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD)
43204232 cat conftest.out >&AS_MESSAGE_LOG_FD
43214233 if $GREP 'External.*some_variable' conftest.out > /dev/null; then
43224234 lt_cv_nm_interface="MS dumpbin"
43394251 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
43404252 LIBM=
43414253 case $host in
4342 *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
4254 *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
43434255 # These system don't have libm, or don't need it
43444256 ;;
43454257 *-ncr-sysv4.3*)
43674279 _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
43684280
43694281 if test "$GCC" = yes; then
4370 case $cc_basename in
4371 nvcc*)
4372 _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
4373 *)
4374 _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
4375 esac
4282 _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
43764283
43774284 _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
43784285 lt_cv_prog_compiler_rtti_exceptions,
43894296 m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
43904297 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
43914298 AC_REQUIRE([AC_PROG_CC])dnl
4392 AC_REQUIRE([AC_PROG_AWK])dnl
43934299 AC_REQUIRE([LT_PATH_NM])dnl
43944300 AC_REQUIRE([LT_PATH_LD])dnl
43954301 m4_require([_LT_DECL_SED])dnl
45154421 if AC_TRY_EVAL(ac_compile); then
45164422 # Now try to grab the symbols.
45174423 nlist=conftest.nm
4518 if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
4424 if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
45194425 # Try sorting and uniquifying the output.
45204426 if sort "$nlist" | uniq > "$nlist"T; then
45214427 mv -f "$nlist"T "$nlist"
46764582 *djgpp*)
46774583 # DJGPP does not support shared libraries at all
46784584 _LT_TAGVAR(lt_prog_compiler_pic, $1)=
4679 ;;
4680 haiku*)
4681 # PIC is the default for Haiku.
4682 # The "-static" flag exists, but is broken.
4683 _LT_TAGVAR(lt_prog_compiler_static, $1)=
46844585 ;;
46854586 interix[[3-9]]*)
46864587 # Interix 3.x gcc -fpic/-fPIC options generate broken code.
48204721 _LT_TAGVAR(lt_prog_compiler_pic, $1)=
48214722 _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
48224723 ;;
4823 xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
4824 # IBM XL 8.0, 9.0 on PPC and BlueGene
4724 xlc* | xlC*)
4725 # IBM XL 8.0 on PPC
48254726 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
48264727 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
48274728 _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
48514752 ;;
48524753 esac
48534754 ;;
4854 netbsd*)
4755 netbsd* | netbsdelf*-gnu)
48554756 ;;
48564757 *qnx* | *nto*)
48574758 # QNX uses GNU C++, but need to define -shared option too, otherwise
48834784 ;;
48844785 solaris*)
48854786 case $cc_basename in
4886 CC* | sunCC*)
4787 CC*)
48874788 # Sun C++ 4.2, 5.x and Centerline C++
48884789 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
48894790 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
49874888 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
49884889 ;;
49894890
4990 haiku*)
4991 # PIC is the default for Haiku.
4992 # The "-static" flag exists, but is broken.
4993 _LT_TAGVAR(lt_prog_compiler_static, $1)=
4994 ;;
4995
49964891 hpux*)
49974892 # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
49984893 # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
50334928
50344929 *)
50354930 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
5036 ;;
5037 esac
5038
5039 case $cc_basename in
5040 nvcc*) # Cuda Compiler Driver 2.2
5041 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
5042 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC'
50434931 ;;
50444932 esac
50454933 else
51054993 _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
51064994 _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
51074995 ;;
5108 pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
4996 pgcc* | pgf77* | pgf90* | pgf95*)
51094997 # Portland Group compilers (*not* the Pentium gcc compiler,
51104998 # which looks to be a dead project)
51114999 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
51175005 # All Alpha code is PIC.
51185006 _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
51195007 ;;
5120 xl* | bgxl* | bgf* | mpixl*)
5121 # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
5008 xl*)
5009 # IBM XL C 8.0/Fortran 10.1 on PPC
51225010 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
51235011 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
51245012 _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
51255013 ;;
51265014 *)
51275015 case `$CC -V 2>&1 | sed 5q` in
5128 *Sun\ F* | *Sun*Fortran*)
5129 # Sun Fortran 8.3 passes all unrecognized flags to the linker
5130 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
5131 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
5132 _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
5133 ;;
51345016 *Sun\ C*)
51355017 # Sun C 5.9
51365018 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
51375019 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
51385020 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
51395021 ;;
5022 *Sun\ F*)
5023 # Sun Fortran 8.3 passes all unrecognized flags to the linker
5024 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
5025 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
5026 _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
5027 ;;
51405028 esac
51415029 ;;
51425030 esac
51675055 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
51685056 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
51695057 case $cc_basename in
5170 f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
5058 f77* | f90* | f95*)
51715059 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
51725060 *)
51735061 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
52775165 aix[[4-9]]*)
52785166 # If we're using GNU nm, then we don't want the "-C" option.
52795167 # -C means demangle to AIX nm, but means don't demangle with GNU nm
5280 # Also, AIX nm treats weak defined symbols like other global defined
5281 # symbols, whereas GNU nm marks them as "W".
52825168 if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
5283 _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
5169 _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
52845170 else
52855171 _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
52865172 fi
52905176 ;;
52915177 cygwin* | mingw* | cegcc*)
52925178 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
5179 ;;
5180 linux* | k*bsd*-gnu)
5181 _LT_TAGVAR(link_all_deplibs, $1)=no
52935182 ;;
52945183 *)
52955184 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
53555244 openbsd*)
53565245 with_gnu_ld=no
53575246 ;;
5247 linux* | k*bsd*-gnu)
5248 _LT_TAGVAR(link_all_deplibs, $1)=no
5249 ;;
53585250 esac
53595251
53605252 _LT_TAGVAR(ld_shlibs, $1)=yes
5361
5362 # On some targets, GNU ld is compatible enough with the native linker
5363 # that we're better off using the native interface for both.
5364 lt_use_gnu_ld_interface=no
53655253 if test "$with_gnu_ld" = yes; then
5366 case $host_os in
5367 aix*)
5368 # The AIX port of GNU ld has always aspired to compatibility
5369 # with the native linker. However, as the warning in the GNU ld
5370 # block says, versions before 2.19.5* couldn't really create working
5371 # shared libraries, regardless of the interface used.
5372 case `$LD -v 2>&1` in
5373 *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
5374 *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
5375 *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
5376 *)
5377 lt_use_gnu_ld_interface=yes
5378 ;;
5379 esac
5380 ;;
5381 *)
5382 lt_use_gnu_ld_interface=yes
5383 ;;
5384 esac
5385 fi
5386
5387 if test "$lt_use_gnu_ld_interface" = yes; then
53885254 # If archive_cmds runs LD, not CC, wlarc should be empty
53895255 wlarc='${wl}'
53905256
54185284 _LT_TAGVAR(ld_shlibs, $1)=no
54195285 cat <<_LT_EOF 1>&2
54205286
5421 *** Warning: the GNU linker, at least up to release 2.19, is reported
5287 *** Warning: the GNU linker, at least up to release 2.9.1, is reported
54225288 *** to be unable to reliably create shared libraries on AIX.
54235289 *** Therefore, libtool is disabling shared libraries support. If you
5424 *** really care for shared libraries, you may want to install binutils
5425 *** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
5426 *** You will then need to restart the configuration process.
5290 *** really care for shared libraries, you may want to modify your PATH
5291 *** so that a non-GNU linker is found, and then restart.
54275292
54285293 _LT_EOF
54295294 fi
54595324 # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
54605325 # as there is no search path for DLLs.
54615326 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
5462 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
54635327 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
54645328 _LT_TAGVAR(always_export_symbols, $1)=no
54655329 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
54815345 fi
54825346 ;;
54835347
5484 haiku*)
5485 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
5486 _LT_TAGVAR(link_all_deplibs, $1)=yes
5487 ;;
5488
54895348 interix[[3-9]]*)
54905349 _LT_TAGVAR(hardcode_direct, $1)=no
54915350 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
55155374 tmp_sharedflag='-shared'
55165375 case $cc_basename,$host_cpu in
55175376 pgcc*) # Portland Group C compiler
5518 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
5377 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
55195378 tmp_addflag=' $pic_flag'
55205379 ;;
5521 pgf77* | pgf90* | pgf95* | pgfortran*)
5522 # Portland Group f77 and f90 compilers
5523 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
5380 pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers
5381 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
55245382 tmp_addflag=' $pic_flag -Mnomain' ;;
55255383 ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
55265384 tmp_addflag=' -i_dynamic' ;;
55315389 lf95*) # Lahey Fortran 8.1
55325390 _LT_TAGVAR(whole_archive_flag_spec, $1)=
55335391 tmp_sharedflag='--shared' ;;
5534 xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
5392 xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
55355393 tmp_sharedflag='-qmkshrobj'
55365394 tmp_addflag= ;;
5537 nvcc*) # Cuda Compiler Driver 2.2
5538 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
5539 _LT_TAGVAR(compiler_needs_object, $1)=yes
5540 ;;
55415395 esac
55425396 case `$CC -V 2>&1 | sed 5q` in
55435397 *Sun\ C*) # Sun C 5.9
5544 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
5398 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
55455399 _LT_TAGVAR(compiler_needs_object, $1)=yes
55465400 tmp_sharedflag='-G' ;;
55475401 *Sun\ F*) # Sun Fortran 8.3
55575411 fi
55585412
55595413 case $cc_basename in
5560 xlf* | bgf* | bgxlf* | mpixlf*)
5414 xlf*)
55615415 # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
55625416 _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
55635417 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
55645418 _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
5565 _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
5419 _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
55665420 if test "x$supports_anon_versioning" = xyes; then
55675421 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
55685422 cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
55695423 echo "local: *; };" >> $output_objdir/$libname.ver~
5570 $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
5424 $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
55715425 fi
55725426 ;;
55735427 esac
55765430 fi
55775431 ;;
55785432
5579 netbsd*)
5433 netbsd* | netbsdelf*-gnu)
55805434 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
55815435 _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
55825436 wlarc=
56885542 else
56895543 # If we're using GNU nm, then we don't want the "-C" option.
56905544 # -C means demangle to AIX nm, but means don't demangle with GNU nm
5691 # Also, AIX nm treats weak defined symbols like other global
5692 # defined symbols, whereas GNU nm marks them as "W".
56935545 if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
5694 _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
5546 _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
56955547 else
56965548 _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
56975549 fi
57535605 if test "$aix_use_runtimelinking" = yes; then
57545606 shared_flag="$shared_flag "'${wl}-G'
57555607 fi
5608 _LT_TAGVAR(link_all_deplibs, $1)=no
57565609 else
57575610 # not using gcc
57585611 if test "$host_cpu" = ia64; then
57805633 # empty executable.
57815634 _LT_SYS_MODULE_PATH_AIX
57825635 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
5783 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
5636 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
57845637 else
57855638 if test "$host_cpu" = ia64; then
57865639 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
57955648 # -berok will link without error, but may produce a broken library.
57965649 _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
57975650 _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
5798 if test "$with_gnu_ld" = yes; then
5799 # We only use this code for GNU lds that support --whole-archive.
5800 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
5801 else
5802 # Exported symbols can be pulled into shared objects from archives
5803 _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
5804 fi
5651 # Exported symbols can be pulled into shared objects from archives
5652 _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
58055653 _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
58065654 # This is similar to how AIX traditionally builds its shared libraries.
58075655 _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
58405688 # Tell ltmain to make .dll files, not .so files.
58415689 shrext_cmds=".dll"
58425690 # FIXME: Setting linknames here is a bad hack.
5843 _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
5691 _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
58445692 # The linker will automatically build a .lib file if we build a DLL.
58455693 _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
58465694 # FIXME: Should let the user specify the lib program.
59075755 ;;
59085756
59095757 hpux10*)
5910 if test "$GCC" = yes && test "$with_gnu_ld" = no; then
5758 if test "$GCC" = yes -a "$with_gnu_ld" = no; then
59115759 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
59125760 else
59135761 _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
59265774 ;;
59275775
59285776 hpux11*)
5929 if test "$GCC" = yes && test "$with_gnu_ld" = no; then
5777 if test "$GCC" = yes -a "$with_gnu_ld" = no; then
59305778 case $host_cpu in
59315779 hppa*64*)
59325780 _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
59475795 _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
59485796 ;;
59495797 *)
5950 m4_if($1, [], [
5951 # Older versions of the 11.00 compiler do not understand -b yet
5952 # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
5953 _LT_LINKER_OPTION([if $CC understands -b],
5954 _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
5955 [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
5956 [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
5957 [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
5798 _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
59585799 ;;
59595800 esac
59605801 fi
59825823
59835824 irix5* | irix6* | nonstopux*)
59845825 if test "$GCC" = yes; then
5985 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
5826 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
59865827 # Try to use the -exported_symbol ld option, if it does not
59875828 # work, assume that -exports_file does not work either and
59885829 # implicitly export all symbols.
59895830 save_LDFLAGS="$LDFLAGS"
59905831 LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
59915832 AC_LINK_IFELSE(int foo(void) {},
5992 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
5833 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
59935834 )
59945835 LDFLAGS="$save_LDFLAGS"
59955836 else
5996 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
5997 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
5837 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
5838 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
59985839 fi
59995840 _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
60005841 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
60035844 _LT_TAGVAR(link_all_deplibs, $1)=yes
60045845 ;;
60055846
6006 netbsd*)
5847 netbsd* | netbsdelf*-gnu)
60075848 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
60085849 _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
60095850 else
60565897 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
60575898 _LT_TAGVAR(hardcode_minus_L, $1)=yes
60585899 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
6059 _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
5900 _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
60605901 _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
60615902 ;;
60625903
60635904 osf3*)
60645905 if test "$GCC" = yes; then
60655906 _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
6066 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
5907 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
60675908 else
60685909 _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
6069 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
5910 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
60705911 fi
60715912 _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
60725913 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
60765917 osf4* | osf5*) # as osf3* with the addition of -msym flag
60775918 if test "$GCC" = yes; then
60785919 _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
6079 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
5920 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
60805921 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
60815922 else
60825923 _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
6083 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
5924 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
60845925 _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
6085 $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
5926 $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
60865927
60875928 # Both c and cxx compiler support -rpath directly
60885929 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
62736114 # Test whether the compiler implicitly links with -lc since on some
62746115 # systems, -lgcc has to come before -lc. If gcc already passes -lc
62756116 # to ld, don't add -lc before -lgcc.
6276 AC_CACHE_CHECK([whether -lc should be explicitly linked in],
6277 [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
6278 [$RM conftest*
6279 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
6280
6281 if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
6282 soname=conftest
6283 lib=conftest
6284 libobjs=conftest.$ac_objext
6285 deplibs=
6286 wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
6287 pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
6288 compiler_flags=-v
6289 linker_flags=-v
6290 verstring=
6291 output_objdir=.
6292 libname=conftest
6293 lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
6294 _LT_TAGVAR(allow_undefined_flag, $1)=
6295 if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
6296 then
6297 lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
6298 else
6299 lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
6300 fi
6301 _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
6302 else
6303 cat conftest.err 1>&5
6304 fi
6305 $RM conftest*
6306 ])
6307 _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
6117 AC_MSG_CHECKING([whether -lc should be explicitly linked in])
6118 $RM conftest*
6119 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
6120
6121 if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
6122 soname=conftest
6123 lib=conftest
6124 libobjs=conftest.$ac_objext
6125 deplibs=
6126 wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
6127 pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
6128 compiler_flags=-v
6129 linker_flags=-v
6130 verstring=
6131 output_objdir=.
6132 libname=conftest
6133 lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
6134 _LT_TAGVAR(allow_undefined_flag, $1)=
6135 if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
6136 then
6137 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
6138 else
6139 _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
6140 fi
6141 _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
6142 else
6143 cat conftest.err 1>&5
6144 fi
6145 $RM conftest*
6146 AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)])
63086147 ;;
63096148 esac
63106149 fi
64706309 ])# _LT_LANG_C_CONFIG
64716310
64726311
6473 # _LT_LANG_CXX_CONFIG([TAG])
6474 # --------------------------
6475 # Ensure that the configuration variables for a C++ compiler are suitably
6476 # defined. These variables are subsequently used by _LT_CONFIG to write
6477 # the compiler configuration to `libtool'.
6478 m4_defun([_LT_LANG_CXX_CONFIG],
6479 [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
6480 m4_require([_LT_DECL_EGREP])dnl
6312 # _LT_PROG_CXX
6313 # ------------
6314 # Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++
6315 # compiler, we have our own version here.
6316 m4_defun([_LT_PROG_CXX],
6317 [
6318 pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes])
6319 AC_PROG_CXX
64816320 if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
64826321 ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
64836322 (test "X$CXX" != "Xg++"))) ; then
64856324 else
64866325 _lt_caught_CXX_error=yes
64876326 fi
6327 popdef([AC_MSG_ERROR])
6328 ])# _LT_PROG_CXX
6329
6330 dnl aclocal-1.4 backwards compatibility:
6331 dnl AC_DEFUN([_LT_PROG_CXX], [])
6332
6333
6334 # _LT_LANG_CXX_CONFIG([TAG])
6335 # --------------------------
6336 # Ensure that the configuration variables for a C++ compiler are suitably
6337 # defined. These variables are subsequently used by _LT_CONFIG to write
6338 # the compiler configuration to `libtool'.
6339 m4_defun([_LT_LANG_CXX_CONFIG],
6340 [AC_REQUIRE([_LT_PROG_CXX])dnl
6341 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
6342 m4_require([_LT_DECL_EGREP])dnl
64886343
64896344 AC_LANG_PUSH(C++)
64906345 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
65066361 _LT_TAGVAR(module_expsym_cmds, $1)=
65076362 _LT_TAGVAR(link_all_deplibs, $1)=unknown
65086363 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
6509 _LT_TAGVAR(reload_flag, $1)=$reload_flag
6510 _LT_TAGVAR(reload_cmds, $1)=$reload_cmds
65116364 _LT_TAGVAR(no_undefined_flag, $1)=
65126365 _LT_TAGVAR(whole_archive_flag_spec, $1)=
65136366 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
66106463 # Commands to make compiler produce verbose output that lists
66116464 # what "hidden" libraries, object files and flags are used when
66126465 # linking a shared library.
6613 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
6466 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
66146467
66156468 else
66166469 GXX=no
67226575 _LT_SYS_MODULE_PATH_AIX
67236576 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
67246577
6725 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
6578 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
67266579 else
67276580 if test "$host_cpu" = ia64; then
67286581 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
67376590 # -berok will link without error, but may produce a broken library.
67386591 _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
67396592 _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
6740 if test "$with_gnu_ld" = yes; then
6741 # We only use this code for GNU lds that support --whole-archive.
6742 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
6743 else
6744 # Exported symbols can be pulled into shared objects from archives
6745 _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
6746 fi
6593 # Exported symbols can be pulled into shared objects from archives
6594 _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
67476595 _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
67486596 # This is similar to how AIX traditionally builds its shared
67496597 # libraries.
67766624 # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
67776625 # as there is no search path for DLLs.
67786626 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
6779 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
67806627 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
67816628 _LT_TAGVAR(always_export_symbols, $1)=no
67826629 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
68376684 gnu*)
68386685 ;;
68396686
6840 haiku*)
6841 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
6842 _LT_TAGVAR(link_all_deplibs, $1)=yes
6843 ;;
6844
68456687 hpux9*)
68466688 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
68476689 _LT_TAGVAR(hardcode_libdir_separator, $1)=:
68666708 # explicitly linking system object files so we need to strip them
68676709 # from the output so that they don't get included in the library
68686710 # dependencies.
6869 output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
6711 output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
68706712 ;;
68716713 *)
68726714 if test "$GXX" = yes; then
69316773 # explicitly linking system object files so we need to strip them
69326774 # from the output so that they don't get included in the library
69336775 # dependencies.
6934 output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
6776 output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
69356777 ;;
69366778 *)
69376779 if test "$GXX" = yes; then
69746816 case $cc_basename in
69756817 CC*)
69766818 # SGI C++
6977 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
6819 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
69786820
69796821 # Archives containing C++ object files must be created using
69806822 # "CC -ar", where "CC" is the IRIX C++ compiler. This is
69856827 *)
69866828 if test "$GXX" = yes; then
69876829 if test "$with_gnu_ld" = no; then
6988 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
6830 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
69896831 else
6990 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
6832 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib'
69916833 fi
69926834 fi
69936835 _LT_TAGVAR(link_all_deplibs, $1)=yes
70166858 # explicitly linking system object files so we need to strip them
70176859 # from the output so that they don't get included in the library
70186860 # dependencies.
7019 output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
6861 output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
70206862
70216863 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
70226864 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
70536895 pgCC* | pgcpp*)
70546896 # Portland Group C++ compiler
70556897 case `$CC -V` in
7056 *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
6898 *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*)
70576899 _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
70586900 rm -rf $tpldir~
70596901 $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
7060 compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
6902 compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
70616903 _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
70626904 rm -rf $tpldir~
70636905 $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
7064 $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
6906 $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
70656907 $RANLIB $oldlib'
70666908 _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
70676909 rm -rf $tpldir~
70686910 $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
7069 $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
6911 $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
70706912 _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
70716913 rm -rf $tpldir~
70726914 $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
7073 $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
6915 $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
70746916 ;;
7075 *) # Version 6 and above use weak symbols
6917 *) # Version 6 will use weak symbols
70766918 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
70776919 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
70786920 ;;
70806922
70816923 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
70826924 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
7083 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
6925 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
70846926 ;;
70856927 cxx*)
70866928 # Compaq C++
70996941 # explicitly linking system object files so we need to strip them
71006942 # from the output so that they don't get included in the library
71016943 # dependencies.
7102 output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
6944 output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
71036945 ;;
7104 xl* | mpixl* | bgxl*)
6946 xl*)
71056947 # IBM XL 8.0 on PPC, with GNU ld
71066948 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
71076949 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
71216963 _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
71226964 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
71236965 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
7124 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
6966 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
71256967 _LT_TAGVAR(compiler_needs_object, $1)=yes
71266968
71276969 # Not sure whether something based on
71286970 # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
71296971 # would be better.
7130 output_verbose_link_cmd='func_echo_all'
6972 output_verbose_link_cmd='echo'
71316973
71326974 # Archives containing C++ object files must be created using
71336975 # "CC -xar", where "CC" is the Sun C++ compiler. This is
71967038 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
71977039 _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
71987040 fi
7199 output_verbose_link_cmd=func_echo_all
7041 output_verbose_link_cmd=echo
72007042 else
72017043 _LT_TAGVAR(ld_shlibs, $1)=no
72027044 fi
72317073 case $host in
72327074 osf3*)
72337075 _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
7234 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
7076 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
72357077 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
72367078 ;;
72377079 *)
72387080 _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
7239 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
7081 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
72407082 _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
72417083 echo "-hidden">> $lib.exp~
7242 $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
7084 $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~
72437085 $RM $lib.exp'
72447086 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
72457087 ;;
72557097 # explicitly linking system object files so we need to strip them
72567098 # from the output so that they don't get included in the library
72577099 # dependencies.
7258 output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
7100 output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed'
72597101 ;;
72607102 *)
72617103 if test "$GXX" = yes && test "$with_gnu_ld" = no; then
72627104 _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
72637105 case $host in
72647106 osf3*)
7265 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
7107 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
72667108 ;;
72677109 *)
7268 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
7110 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
72697111 ;;
72707112 esac
72717113
72757117 # Commands to make compiler produce verbose output that lists
72767118 # what "hidden" libraries, object files and flags are used when
72777119 # linking a shared library.
7278 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
7120 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
72797121
72807122 else
72817123 # FIXME: insert proper C++ library support
73117153
73127154 solaris*)
73137155 case $cc_basename in
7314 CC* | sunCC*)
7156 CC*)
73157157 # Sun C++ 4.2, 5.x and Centerline C++
73167158 _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
73177159 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
73327174 esac
73337175 _LT_TAGVAR(link_all_deplibs, $1)=yes
73347176
7335 output_verbose_link_cmd='func_echo_all'
7177 output_verbose_link_cmd='echo'
73367178
73377179 # Archives containing C++ object files must be created using
73387180 # "CC -xar", where "CC" is the Sun C++ compiler. This is
73597201 # Commands to make compiler produce verbose output that lists
73607202 # what "hidden" libraries, object files and flags are used when
73617203 # linking a shared library.
7362 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
7204 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
73637205 else
73647206 # g++ 2.7 appears to require `-G' NOT `-shared' on this
73657207 # platform.
73707212 # Commands to make compiler produce verbose output that lists
73717213 # what "hidden" libraries, object files and flags are used when
73727214 # linking a shared library.
7373 output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
7215 output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
73747216 fi
73757217
73767218 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
74247266 CC*)
74257267 _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
74267268 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
7427 _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
7428 '"$_LT_TAGVAR(old_archive_cmds, $1)"
7429 _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
7430 '"$_LT_TAGVAR(reload_cmds, $1)"
74317269 ;;
74327270 *)
74337271 _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
76747512
76757513 solaris*)
76767514 case $cc_basename in
7677 CC* | sunCC*)
7515 CC*)
76787516 # The more standards-conforming stlport4 library is
76797517 # incompatible with the Cstd library. Avoid specifying
76807518 # it if it's in CXXFLAGS. Ignore libCrun as
77187556 ])# _LT_SYS_HIDDEN_LIBDEPS
77197557
77207558
7559 # _LT_PROG_F77
7560 # ------------
7561 # Since AC_PROG_F77 is broken, in that it returns the empty string
7562 # if there is no fortran compiler, we have our own version here.
7563 m4_defun([_LT_PROG_F77],
7564 [
7565 pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes])
7566 AC_PROG_F77
7567 if test -z "$F77" || test "X$F77" = "Xno"; then
7568 _lt_disable_F77=yes
7569 fi
7570 popdef([AC_MSG_ERROR])
7571 ])# _LT_PROG_F77
7572
7573 dnl aclocal-1.4 backwards compatibility:
7574 dnl AC_DEFUN([_LT_PROG_F77], [])
7575
7576
77217577 # _LT_LANG_F77_CONFIG([TAG])
77227578 # --------------------------
77237579 # Ensure that the configuration variables for a Fortran 77 compiler are
77247580 # suitably defined. These variables are subsequently used by _LT_CONFIG
77257581 # to write the compiler configuration to `libtool'.
77267582 m4_defun([_LT_LANG_F77_CONFIG],
7727 [AC_LANG_PUSH(Fortran 77)
7728 if test -z "$F77" || test "X$F77" = "Xno"; then
7729 _lt_disable_F77=yes
7730 fi
7583 [AC_REQUIRE([_LT_PROG_F77])dnl
7584 AC_LANG_PUSH(Fortran 77)
77317585
77327586 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
77337587 _LT_TAGVAR(allow_undefined_flag, $1)=
77467600 _LT_TAGVAR(module_expsym_cmds, $1)=
77477601 _LT_TAGVAR(link_all_deplibs, $1)=unknown
77487602 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
7749 _LT_TAGVAR(reload_flag, $1)=$reload_flag
7750 _LT_TAGVAR(reload_cmds, $1)=$reload_cmds
77517603 _LT_TAGVAR(no_undefined_flag, $1)=
77527604 _LT_TAGVAR(whole_archive_flag_spec, $1)=
77537605 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
78477699 ])# _LT_LANG_F77_CONFIG
78487700
78497701
7702 # _LT_PROG_FC
7703 # -----------
7704 # Since AC_PROG_FC is broken, in that it returns the empty string
7705 # if there is no fortran compiler, we have our own version here.
7706 m4_defun([_LT_PROG_FC],
7707 [
7708 pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes])
7709 AC_PROG_FC
7710 if test -z "$FC" || test "X$FC" = "Xno"; then
7711 _lt_disable_FC=yes
7712 fi
7713 popdef([AC_MSG_ERROR])
7714 ])# _LT_PROG_FC
7715
7716 dnl aclocal-1.4 backwards compatibility:
7717 dnl AC_DEFUN([_LT_PROG_FC], [])
7718
7719
78507720 # _LT_LANG_FC_CONFIG([TAG])
78517721 # -------------------------
78527722 # Ensure that the configuration variables for a Fortran compiler are
78537723 # suitably defined. These variables are subsequently used by _LT_CONFIG
78547724 # to write the compiler configuration to `libtool'.
78557725 m4_defun([_LT_LANG_FC_CONFIG],
7856 [AC_LANG_PUSH(Fortran)
7857
7858 if test -z "$FC" || test "X$FC" = "Xno"; then
7859 _lt_disable_FC=yes
7860 fi
7726 [AC_REQUIRE([_LT_PROG_FC])dnl
7727 AC_LANG_PUSH(Fortran)
78617728
78627729 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
78637730 _LT_TAGVAR(allow_undefined_flag, $1)=
78767743 _LT_TAGVAR(module_expsym_cmds, $1)=
78777744 _LT_TAGVAR(link_all_deplibs, $1)=unknown
78787745 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
7879 _LT_TAGVAR(reload_flag, $1)=$reload_flag
7880 _LT_TAGVAR(reload_cmds, $1)=$reload_cmds
78817746 _LT_TAGVAR(no_undefined_flag, $1)=
78827747 _LT_TAGVAR(whole_archive_flag_spec, $1)=
78837748 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
80237888 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
80247889
80257890 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
8026 _LT_TAGVAR(reload_flag, $1)=$reload_flag
8027 _LT_TAGVAR(reload_cmds, $1)=$reload_cmds
80287891
80297892 if test -n "$compiler"; then
80307893 _LT_COMPILER_NO_RTTI($1)
83868249 func_dirname ()
83878250 {
83888251 # Extract subdirectory from the argument.
8389 func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
8252 func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
83908253 if test "X$func_dirname_result" = "X${1}"; then
83918254 func_dirname_result="${3}"
83928255 else
83978260 # func_basename file
83988261 func_basename ()
83998262 {
8400 func_basename_result=`$ECHO "${1}" | $SED "$basename"`
8263 func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
84018264 }
84028265
84038266 dnl func_dirname_and_basename
84138276 func_stripname ()
84148277 {
84158278 case ${2} in
8416 .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
8417 *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
8279 .*) func_stripname_result=`$ECHO "X${3}" \
8280 | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
8281 *) func_stripname_result=`$ECHO "X${3}" \
8282 | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
84188283 esac
84198284 }
84208285
84258290 # func_opt_split
84268291 func_opt_split ()
84278292 {
8428 func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
8429 func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
8293 func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
8294 func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
84308295 }
84318296
84328297 # func_lo2o object
84338298 func_lo2o ()
84348299 {
8435 func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
8300 func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
84368301 }
84378302
84388303 # func_xform libobj-or-source
84398304 func_xform ()
84408305 {
8441 func_xform_result=`$ECHO "${1}" | $SED 's/\.[[^.]]*$/.lo/'`
8306 func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'`
84428307 }
84438308
84448309 # func_arith arithmetic-term...
84868351
84878352 # Helper functions for option handling. -*- Autoconf -*-
84888353 #
8489 # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
8490 # Inc.
8354 # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
84918355 # Written by Gary V. Vaughan, 2004
84928356 #
84938357 # This file is free software; the Free Software Foundation gives
84948358 # unlimited permission to copy and/or distribute it, with or without
84958359 # modifications, as long as this notice is preserved.
84968360
8497 # serial 7 ltoptions.m4
8361 # serial 6 ltoptions.m4
84988362
84998363 # This is to help aclocal find these macros, as it can't see m4_define.
85008364 AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
86098473 [enable_win32_dll=yes
86108474
86118475 case $host in
8612 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
8476 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
86138477 AC_CHECK_TOOL(AS, as, false)
86148478 AC_CHECK_TOOL(DLLTOOL, dlltool, false)
86158479 AC_CHECK_TOOL(OBJDUMP, objdump, false)
86178481 esac
86188482
86198483 test -z "$AS" && AS=as
8620 _LT_DECL([], [AS], [1], [Assembler program])dnl
8484 _LT_DECL([], [AS], [0], [Assembler program])dnl
86218485
86228486 test -z "$DLLTOOL" && DLLTOOL=dlltool
8623 _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
8487 _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl
86248488
86258489 test -z "$OBJDUMP" && OBJDUMP=objdump
8626 _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
8490 _LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl
86278491 ])# win32-dll
86288492
86298493 AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
89838847
89848848 # Generated from ltversion.in.
89858849
8986 # serial 3175 ltversion.m4
8850 # serial 3017 ltversion.m4
89878851 # This file is part of GNU Libtool
89888852
8989 m4_define([LT_PACKAGE_VERSION], [2.2.10])
8990 m4_define([LT_PACKAGE_REVISION], [1.3175])
8853 m4_define([LT_PACKAGE_VERSION], [2.2.6b])
8854 m4_define([LT_PACKAGE_REVISION], [1.3017])
89918855
89928856 AC_DEFUN([LTVERSION_VERSION],
8993 [macro_version='2.2.10'
8994 macro_revision='1.3175'
8857 [macro_version='2.2.6b'
8858 macro_revision='1.3017'
89958859 _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
89968860 _LT_DECL(, macro_revision, 0)
89978861 ])
89988862
89998863 # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
90008864 #
9001 # Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
8865 # Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
90028866 # Written by Scott James Remnant, 2004.
90038867 #
90048868 # This file is free software; the Free Software Foundation gives
90058869 # unlimited permission to copy and/or distribute it, with or without
90068870 # modifications, as long as this notice is preserved.
90078871
9008 # serial 5 lt~obsolete.m4
8872 # serial 4 lt~obsolete.m4
90098873
90108874 # These exist entirely to fool aclocal when bootstrapping libtool.
90118875 #
90758939 m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
90768940 m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
90778941 m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
8942 m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])])
90788943 m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
90798944 m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
90808945 m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
90878952 m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
90888953 m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
90898954 m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
9090 m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
9091 m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
9092 m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
9093 m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
9094 m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
9095 m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
9096 m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
8955
8956 dnl -*- mode: autoconf -*-
8957
8958 # serial 1
8959
8960 dnl Usage:
8961 dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
8962 AC_DEFUN([GTK_DOC_CHECK],
8963 [
8964 AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
8965 AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
8966
8967 dnl check for tools we added during development
8968 AC_PATH_PROG([GTKDOC_CHECK],[gtkdoc-check])
8969 AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true])
8970 AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf])
8971
8972 dnl for overriding the documentation installation directory
8973 AC_ARG_WITH([html-dir],
8974 AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),,
8975 [with_html_dir='${datadir}/gtk-doc/html'])
8976 HTML_DIR="$with_html_dir"
8977 AC_SUBST([HTML_DIR])
8978
8979 dnl enable/disable documentation building
8980 AC_ARG_ENABLE([gtk-doc],
8981 AS_HELP_STRING([--enable-gtk-doc],
8982 [use gtk-doc to build documentation [[default=no]]]),,
8983 [enable_gtk_doc=no])
8984
8985 if test x$enable_gtk_doc = xyes; then
8986 ifelse([$1],[],
8987 [PKG_CHECK_EXISTS([gtk-doc],,
8988 AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
8989 [PKG_CHECK_EXISTS([gtk-doc >= $1],,
8990 AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))])
8991 fi
8992
8993 AC_MSG_CHECKING([whether to build gtk-doc documentation])
8994 AC_MSG_RESULT($enable_gtk_doc)
8995
8996 dnl enable/disable output formats
8997 AC_ARG_ENABLE([gtk-doc-html],
8998 AS_HELP_STRING([--enable-gtk-doc-html],
8999 [build documentation in html format [[default=yes]]]),,
9000 [enable_gtk_doc_html=yes])
9001 AC_ARG_ENABLE([gtk-doc-pdf],
9002 AS_HELP_STRING([--enable-gtk-doc-pdf],
9003 [build documentation in pdf format [[default=no]]]),,
9004 [enable_gtk_doc_pdf=no])
9005
9006 if test -z "$GTKDOC_MKPDF"; then
9007 enable_gtk_doc_pdf=no
9008 fi
9009
9010
9011 AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
9012 AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes])
9013 AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes])
9014 AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"])
9015 AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"])
9016 ])
90979017
90989018 # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
9099 # serial 1 (pkg-config-0.24)
91009019 #
91019020 # Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
91029021 #
91249043 AC_DEFUN([PKG_PROG_PKG_CONFIG],
91259044 [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
91269045 m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
9127 AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
9128 AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
9129 AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
9130
9046 AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
91319047 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
91329048 AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
91339049 fi
91409056 AC_MSG_RESULT([no])
91419057 PKG_CONFIG=""
91429058 fi
9059
91439060 fi[]dnl
91449061 ])# PKG_PROG_PKG_CONFIG
91459062
91489065 # Check to see whether a particular set of modules exists. Similar
91499066 # to PKG_CHECK_MODULES(), but does not set variables or print errors.
91509067 #
9151 # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
9152 # only at the first occurence in configure.ac, so if the first place
9153 # it's called might be skipped (such as if it is within an "if", you
9154 # have to call PKG_CHECK_EXISTS manually
9068 #
9069 # Similar to PKG_CHECK_MODULES, make sure that the first instance of
9070 # this or PKG_CHECK_MODULES is called, or make sure to call
9071 # PKG_CHECK_EXISTS manually
91559072 # --------------------------------------------------------------
91569073 AC_DEFUN([PKG_CHECK_EXISTS],
91579074 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
91589075 if test -n "$PKG_CONFIG" && \
91599076 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
9160 m4_default([$2], [:])
9077 m4_ifval([$2], [$2], [:])
91619078 m4_ifvaln([$3], [else
91629079 $3])dnl
91639080 fi])
9081
91649082
91659083 # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
91669084 # ---------------------------------------------
92149132 See the pkg-config man page for more details.])
92159133
92169134 if test $pkg_failed = yes; then
9217 AC_MSG_RESULT([no])
92189135 _PKG_SHORT_ERRORS_SUPPORTED
92199136 if test $_pkg_short_errors_supported = yes; then
92209137 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
92249141 # Put the nasty error message in config.log where it belongs
92259142 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
92269143
9227 m4_default([$4], [AC_MSG_ERROR(
9144 ifelse([$4], , [AC_MSG_ERROR(dnl
92289145 [Package requirements ($2) were not met:
92299146
92309147 $$1_PKG_ERRORS
92329149 Consider adjusting the PKG_CONFIG_PATH environment variable if you
92339150 installed software in a non-standard prefix.
92349151
9235 _PKG_TEXT])[]dnl
9236 ])
9152 _PKG_TEXT
9153 ])],
9154 [AC_MSG_RESULT([no])
9155 $4])
92379156 elif test $pkg_failed = untried; then
9238 AC_MSG_RESULT([no])
9239 m4_default([$4], [AC_MSG_FAILURE(
9157 ifelse([$4], , [AC_MSG_FAILURE(dnl
92409158 [The pkg-config script could not be found or is too old. Make sure it
92419159 is in your PATH or set the PKG_CONFIG environment variable to the full
92429160 path to pkg-config.
92439161
92449162 _PKG_TEXT
92459163
9246 To get pkg-config, see <http://pkg-config.freedesktop.org/>.])dnl
9247 ])
9164 To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
9165 [$4])
92489166 else
92499167 $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
92509168 $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
92519169 AC_MSG_RESULT([yes])
9252 $3
9170 ifelse([$3], , :, [$3])
92539171 fi[]dnl
92549172 ])# PKG_CHECK_MODULES
92559173
33 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
44 # Free Software Foundation, Inc.
55
6 timestamp='2010-04-03'
6 timestamp='2009-12-30'
77
88 # This file is free software; you can redistribute it and/or modify it
99 # under the terms of the GNU General Public License as published by
9191 exit 1
9292 fi
9393
94 trap 'exit 1' HUP INT TERM
94 trap 'exit 1' 1 2 15
9595
9696 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
9797 # compiler to aid in system detection is discouraged as it requires
105105
106106 set_cc_for_build='
107107 trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
108 trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" HUP INT PIPE TERM ;
108 trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
109109 : ${TMPDIR=/tmp} ;
110110 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
111111 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
138138 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
139139 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
140140 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
141
142 case "${UNAME_SYSTEM}" in
143 Linux|GNU/*)
144 eval $set_cc_for_build
145 cat <<-EOF > $dummy.c
146 #include <features.h>
147 #ifdef __UCLIBC__
148 # ifdef __UCLIBC_CONFIG_VERSION__
149 LIBC=uclibc __UCLIBC_CONFIG_VERSION__
150 # else
151 LIBC=uclibc
152 # endif
153 #else
154 # ifdef __dietlibc__
155 LIBC=dietlibc
156 # else
157 LIBC=gnu
158 # endif
159 #endif
160 EOF
161 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
162 ;;
163 esac
164141
165142 # Note: order is significant - the case branches are not exclusive.
166143
871848 exit ;;
872849 *:GNU:*:*)
873850 # the GNU system
874 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
851 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
875852 exit ;;
876853 *:GNU/*:*:*)
877854 # other systems with GNU libc and userland
878 echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
855 echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
879856 exit ;;
880857 i*86:Minix:*:*)
881858 echo ${UNAME_MACHINE}-pc-minix
891868 EV68*) UNAME_MACHINE=alphaev68 ;;
892869 esac
893870 objdump --private-headers /bin/sh | grep -q ld.so.1
894 if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
895 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
871 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
872 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
896873 exit ;;
897874 arm*:Linux:*:*)
898875 eval $set_cc_for_build
899876 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
900877 | grep -q __ARM_EABI__
901878 then
902 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
879 echo ${UNAME_MACHINE}-unknown-linux-gnu
903880 else
904 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
881 echo ${UNAME_MACHINE}-unknown-linux-gnueabi
905882 fi
906883 exit ;;
907884 avr32*:Linux:*:*)
908 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
885 echo ${UNAME_MACHINE}-unknown-linux-gnu
909886 exit ;;
910887 cris:Linux:*:*)
911 echo cris-axis-linux-${LIBC}
888 echo cris-axis-linux-gnu
912889 exit ;;
913890 crisv32:Linux:*:*)
914 echo crisv32-axis-linux-${LIBC}
891 echo crisv32-axis-linux-gnu
915892 exit ;;
916893 frv:Linux:*:*)
917 echo frv-unknown-linux-${LIBC}
894 echo frv-unknown-linux-gnu
918895 exit ;;
919896 i*86:Linux:*:*)
920 echo ${UNAME_MACHINE}-pc-linux-${LIBC}
897 LIBC=gnu
898 eval $set_cc_for_build
899 sed 's/^ //' << EOF >$dummy.c
900 #ifdef __dietlibc__
901 LIBC=dietlibc
902 #endif
903 EOF
904 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
905 echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
921906 exit ;;
922907 ia64:Linux:*:*)
923 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
908 echo ${UNAME_MACHINE}-unknown-linux-gnu
924909 exit ;;
925910 m32r*:Linux:*:*)
926 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
911 echo ${UNAME_MACHINE}-unknown-linux-gnu
927912 exit ;;
928913 m68*:Linux:*:*)
929 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
914 echo ${UNAME_MACHINE}-unknown-linux-gnu
930915 exit ;;
931916 mips:Linux:*:* | mips64:Linux:*:*)
932917 eval $set_cc_for_build
945930 #endif
946931 EOF
947932 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
948 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
933 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
949934 ;;
950935 or32:Linux:*:*)
951 echo or32-unknown-linux-${LIBC}
936 echo or32-unknown-linux-gnu
952937 exit ;;
953938 padre:Linux:*:*)
954 echo sparc-unknown-linux-${LIBC}
939 echo sparc-unknown-linux-gnu
955940 exit ;;
956941 parisc64:Linux:*:* | hppa64:Linux:*:*)
957 echo hppa64-unknown-linux-${LIBC}
942 echo hppa64-unknown-linux-gnu
958943 exit ;;
959944 parisc:Linux:*:* | hppa:Linux:*:*)
960945 # Look for CPU level
961946 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
962 PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
963 PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
964 *) echo hppa-unknown-linux-${LIBC} ;;
947 PA7*) echo hppa1.1-unknown-linux-gnu ;;
948 PA8*) echo hppa2.0-unknown-linux-gnu ;;
949 *) echo hppa-unknown-linux-gnu ;;
965950 esac
966951 exit ;;
967952 ppc64:Linux:*:*)
968 echo powerpc64-unknown-linux-${LIBC}
953 echo powerpc64-unknown-linux-gnu
969954 exit ;;
970955 ppc:Linux:*:*)
971 echo powerpc-unknown-linux-${LIBC}
956 echo powerpc-unknown-linux-gnu
972957 exit ;;
973958 s390:Linux:*:* | s390x:Linux:*:*)
974959 echo ${UNAME_MACHINE}-ibm-linux
975960 exit ;;
976961 sh64*:Linux:*:*)
977 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
962 echo ${UNAME_MACHINE}-unknown-linux-gnu
978963 exit ;;
979964 sh*:Linux:*:*)
980 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
965 echo ${UNAME_MACHINE}-unknown-linux-gnu
981966 exit ;;
982967 sparc:Linux:*:* | sparc64:Linux:*:*)
983 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
968 echo ${UNAME_MACHINE}-unknown-linux-gnu
984969 exit ;;
985970 vax:Linux:*:*)
986 echo ${UNAME_MACHINE}-dec-linux-${LIBC}
971 echo ${UNAME_MACHINE}-dec-linux-gnu
987972 exit ;;
988973 x86_64:Linux:*:*)
989 echo x86_64-unknown-linux-${LIBC}
974 echo x86_64-unknown-linux-gnu
990975 exit ;;
991976 xtensa*:Linux:*:*)
992 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
977 echo ${UNAME_MACHINE}-unknown-linux-gnu
993978 exit ;;
994979 i*86:DYNIX/ptx:4*:*)
995980 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
33 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
44 # Free Software Foundation, Inc.
55
6 timestamp='2010-03-22'
6 timestamp='2010-01-22'
77
88 # This file is (in principle) common to ALL GNU software.
99 # The presence of a machine in this file suggests that SOME GNU software
251251 | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
252252 | bfin \
253253 | c4x | clipper \
254 | d10v | d30v | dlx | dsp16xx | dvp \
254 | d10v | d30v | dlx | dsp16xx \
255255 | fido | fr30 | frv \
256256 | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
257257 | i370 | i860 | i960 | ia64 \
294294 | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
295295 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
296296 | spu | strongarm \
297 | tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
297 | tahoe | thumb | tic4x | tic80 | tron \
298298 | ubicom32 \
299299 | v850 | v850e \
300300 | we32k \
301301 | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
302302 | z8k | z80)
303303 basic_machine=$basic_machine-unknown
304 ;;
305 c54x)
306 basic_machine=tic54x-unknown
307 ;;
308 c55x)
309 basic_machine=tic55x-unknown
310 ;;
311 c6x)
312 basic_machine=tic6x-unknown
313304 ;;
314305 m6811 | m68hc11 | m6812 | m68hc12 | picochip)
315306 # Motorola 68HC11/12.
342333 | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
343334 | avr-* | avr32-* \
344335 | bfin-* | bs2000-* \
345 | c[123]* | c30-* | [cjt]90-* | c4x-* \
336 | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
346337 | clipper-* | craynv-* | cydra-* \
347338 | d10v-* | d30v-* | dlx-* \
348339 | elxsi-* \
490481 basic_machine=powerpc-ibm
491482 os=-cnk
492483 ;;
493 c54x-*)
494 basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
495 ;;
496 c55x-*)
497 basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
498 ;;
499 c6x-*)
500 basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
501 ;;
502484 c90)
503485 basic_machine=c90-cray
504486 os=-unicos
768750 *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
769751 basic_machine=m68k-atari
770752 os=-mint
771 ;;
772 mipsEE* | ee | ps2)
773 basic_machine=mips64r5900el-scei
774 case $os in
775 -linux*)
776 ;;
777 *)
778 os=-elf
779 ;;
780 esac
781 ;;
782 iop)
783 basic_machine=mipsel-scei
784 os=-irx
785 ;;
786 dvp)
787 basic_machine=dvp-scei
788 os=-elf
789753 ;;
790754 mips3*-*)
791755 basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
11091073 t90)
11101074 basic_machine=t90-cray
11111075 os=-unicos
1076 ;;
1077 tic54x | c54x*)
1078 basic_machine=tic54x-unknown
1079 os=-coff
1080 ;;
1081 tic55x | c55x*)
1082 basic_machine=tic55x-unknown
1083 os=-coff
1084 ;;
1085 tic6x | c6x*)
1086 basic_machine=tic6x-unknown
1087 os=-coff
11121088 ;;
11131089 # This must be matched before tile*.
11141090 tilegx*)
13281304 | -uxpv* | -beos* | -mpeix* | -udk* \
13291305 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
13301306 | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
1331 | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -irx* \
1307 | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
13321308 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
13331309 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
13341310 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
15071483 c4x-* | tic4x-*)
15081484 os=-coff
15091485 ;;
1510 tic54x-*)
1511 os=-coff
1512 ;;
1513 tic55x-*)
1514 os=-coff
1515 ;;
1516 tic6x-*)
1517 os=-coff
1518 ;;
15191486 # This must come before the *-dec entry.
15201487 pdp10-*)
15211488 os=-tops20
+721
-1009
configure less more
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.68 for gupnp-dlna 0.4.2.
2 # Generated by GNU Autoconf 2.67 for gupnp-dlna 0.6.0.
33 #
44 # Report bugs to <http://www.gupnp.org/>.
55 #
9090 IFS=" "" $as_nl"
9191
9292 # Find who we are. Look in the path if we contain no directory separator.
93 as_myself=
9493 case $0 in #((
9594 *[\\/]* ) as_myself=$0 ;;
9695 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
173172 as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
174173 eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
175174 test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
176 test \$(( 1 + 1 )) = 2 || exit 1
177
178 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
179 ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
180 ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
181 ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
182 PATH=/empty FPATH=/empty; export PATH FPATH
183 test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
184 || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"
175 test \$(( 1 + 1 )) = 2 || exit 1"
185176 if (eval "$as_required") 2>/dev/null; then :
186177 as_have_required=yes
187178 else
224215 # We cannot yet assume a decent shell, so we have to provide a
225216 # neutralization value for shells without unset; and this also
226217 # works around shells that cannot unset nonexistent variables.
227 # Preserve -v and -x to the replacement shell.
228218 BASH_ENV=/dev/null
229219 ENV=/dev/null
230220 (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
231221 export CONFIG_SHELL
232 case $- in # ((((
233 *v*x* | *x*v* ) as_opts=-vx ;;
234 *v* ) as_opts=-v ;;
235 *x* ) as_opts=-x ;;
236 * ) as_opts= ;;
237 esac
238 exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
222 exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
239223 fi
240224
241225 if test x$as_have_required = xno; then :
543527 # Sed expression to map a string onto a valid variable name.
544528 as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
545529
530
531
532 # Check that we are running under the correct shell.
546533 SHELL=${CONFIG_SHELL-/bin/sh}
534
535 case X$lt_ECHO in
536 X*--fallback-echo)
537 # Remove one level of quotation (which was required for Make).
538 ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','`
539 ;;
540 esac
541
542 ECHO=${lt_ECHO-echo}
543 if test "X$1" = X--no-reexec; then
544 # Discard the --no-reexec flag, and continue.
545 shift
546 elif test "X$1" = X--fallback-echo; then
547 # Avoid inline document here, it may be left over
548 :
549 elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
550 # Yippee, $ECHO works!
551 :
552 else
553 # Restart under the correct shell.
554 exec $SHELL "$0" --no-reexec ${1+"$@"}
555 fi
556
557 if test "X$1" = X--fallback-echo; then
558 # used as fallback echo
559 shift
560 cat <<_LT_EOF
561 $*
562 _LT_EOF
563 exit 0
564 fi
565
566 # The HP-UX ksh and POSIX shell print the target directory to stdout
567 # if CDPATH is set.
568 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
569
570 if test -z "$lt_ECHO"; then
571 if test "X${echo_test_string+set}" != Xset; then
572 # find a string as large as possible, as long as the shell can cope with it
573 for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
574 # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
575 if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
576 { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
577 then
578 break
579 fi
580 done
581 fi
582
583 if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
584 echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
585 test "X$echo_testing_string" = "X$echo_test_string"; then
586 :
587 else
588 # The Solaris, AIX, and Digital Unix default echo programs unquote
589 # backslashes. This makes it impossible to quote backslashes using
590 # echo "$something" | sed 's/\\/\\\\/g'
591 #
592 # So, first we look for a working echo in the user's PATH.
593
594 lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
595 for dir in $PATH /usr/ucb; do
596 IFS="$lt_save_ifs"
597 if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
598 test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
599 echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
600 test "X$echo_testing_string" = "X$echo_test_string"; then
601 ECHO="$dir/echo"
602 break
603 fi
604 done
605 IFS="$lt_save_ifs"
606
607 if test "X$ECHO" = Xecho; then
608 # We didn't find a better echo, so look for alternatives.
609 if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
610 echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
611 test "X$echo_testing_string" = "X$echo_test_string"; then
612 # This shell has a builtin print -r that does the trick.
613 ECHO='print -r'
614 elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
615 test "X$CONFIG_SHELL" != X/bin/ksh; then
616 # If we have ksh, try running configure again with it.
617 ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
618 export ORIGINAL_CONFIG_SHELL
619 CONFIG_SHELL=/bin/ksh
620 export CONFIG_SHELL
621 exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
622 else
623 # Try using printf.
624 ECHO='printf %s\n'
625 if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
626 echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
627 test "X$echo_testing_string" = "X$echo_test_string"; then
628 # Cool, printf works
629 :
630 elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
631 test "X$echo_testing_string" = 'X\t' &&
632 echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
633 test "X$echo_testing_string" = "X$echo_test_string"; then
634 CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
635 export CONFIG_SHELL
636 SHELL="$CONFIG_SHELL"
637 export SHELL
638 ECHO="$CONFIG_SHELL $0 --fallback-echo"
639 elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
640 test "X$echo_testing_string" = 'X\t' &&
641 echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
642 test "X$echo_testing_string" = "X$echo_test_string"; then
643 ECHO="$CONFIG_SHELL $0 --fallback-echo"
644 else
645 # maybe with a smaller string...
646 prev=:
647
648 for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
649 if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
650 then
651 break
652 fi
653 prev="$cmd"
654 done
655
656 if test "$prev" != 'sed 50q "$0"'; then
657 echo_test_string=`eval $prev`
658 export echo_test_string
659 exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
660 else
661 # Oops. We lost completely, so just stick with echo.
662 ECHO=echo
663 fi
664 fi
665 fi
666 fi
667 fi
668 fi
669
670 # Copy echo and quote the copy suitably for passing to libtool from
671 # the Makefile, instead of quoting the original, which is used later.
672 lt_ECHO=$ECHO
673 if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
674 lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
675 fi
676
677
547678
548679
549680 test -n "$DJDIR" || exec 7<&0 </dev/null
569700 # Identity of this package.
570701 PACKAGE_NAME='gupnp-dlna'
571702 PACKAGE_TARNAME='gupnp-dlna'
572 PACKAGE_VERSION='0.4.2'
573 PACKAGE_STRING='gupnp-dlna 0.4.2'
703 PACKAGE_VERSION='0.6.0'
704 PACKAGE_STRING='gupnp-dlna 0.6.0'
574705 PACKAGE_BUGREPORT='http://www.gupnp.org/'
575706 PACKAGE_URL=''
576707
631762 GTKDOC_CHECK
632763 GLIB_GENMARSHAL
633764 GST_MAJORMINOR
634 GST_VIDEO_LIBS
635 GST_VIDEO_CFLAGS
636 GST_BASE_LIBS
637 GST_BASE_CFLAGS
765 GST_PBU_LIBS
766 GST_PBU_CFLAGS
638767 GST_LIBS
639768 GST_CFLAGS
640769 LIBXML_LIBS
641770 LIBXML_CFLAGS
642 PKG_CONFIG_LIBDIR
643 PKG_CONFIG_PATH
644771 PKG_CONFIG
645772 OTOOL64
646773 OTOOL
647774 LIPO
648775 NMEDIT
649776 DSYMUTIL
777 lt_ECHO
650778 RANLIB
651779 AR
652780 LN_S
778906 CPPFLAGS
779907 CPP
780908 PKG_CONFIG
781 PKG_CONFIG_PATH
782 PKG_CONFIG_LIBDIR
783909 LIBXML_CFLAGS
784910 LIBXML_LIBS
785911 GST_CFLAGS
786912 GST_LIBS
787 GST_BASE_CFLAGS
788 GST_BASE_LIBS
789 GST_VIDEO_CFLAGS
790 GST_VIDEO_LIBS'
913 GST_PBU_CFLAGS
914 GST_PBU_LIBS'
791915
792916
793917 # Initialize some variables set by options.
11921316 $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
11931317 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
11941318 $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
1195 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
1319 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
11961320 ;;
11971321
11981322 esac
13301454 # Omit some internal or obsolete options to make the list less imposing.
13311455 # This message is too long to be a string in the A/UX 3.1 sh.
13321456 cat <<_ACEOF
1333 \`configure' configures gupnp-dlna 0.4.2 to adapt to many kinds of systems.
1457 \`configure' configures gupnp-dlna 0.6.0 to adapt to many kinds of systems.
13341458
13351459 Usage: $0 [OPTION]... [VAR=VALUE]...
13361460
14001524
14011525 if test -n "$ac_init_help"; then
14021526 case $ac_init_help in
1403 short | recursive ) echo "Configuration of gupnp-dlna 0.4.2:";;
1527 short | recursive ) echo "Configuration of gupnp-dlna 0.6.0:";;
14041528 esac
14051529 cat <<\_ACEOF
14061530
14401564 you have headers in a nonstandard directory <include dir>
14411565 CPP C preprocessor
14421566 PKG_CONFIG path to pkg-config utility
1443 PKG_CONFIG_PATH
1444 directories to add to pkg-config's search path
1445 PKG_CONFIG_LIBDIR
1446 path overriding pkg-config's built-in search path
14471567 LIBXML_CFLAGS
14481568 C compiler flags for LIBXML, overriding pkg-config
14491569 LIBXML_LIBS linker flags for LIBXML, overriding pkg-config
14501570 GST_CFLAGS C compiler flags for GST, overriding pkg-config
14511571 GST_LIBS linker flags for GST, overriding pkg-config
1452 GST_BASE_CFLAGS
1453 C compiler flags for GST_BASE, overriding pkg-config
1454 GST_BASE_LIBS
1455 linker flags for GST_BASE, overriding pkg-config
1456 GST_VIDEO_CFLAGS
1457 C compiler flags for GST_VIDEO, overriding pkg-config
1458 GST_VIDEO_LIBS
1459 linker flags for GST_VIDEO, overriding pkg-config
1572 GST_PBU_CFLAGS
1573 C compiler flags for GST_PBU, overriding pkg-config
1574 GST_PBU_LIBS
1575 linker flags for GST_PBU, overriding pkg-config
14601576
14611577 Use these variables to override the choices made by `configure' or to help
14621578 it to find libraries and programs with nonstandard names/locations.
15241640 test -n "$ac_init_help" && exit $ac_status
15251641 if $ac_init_version; then
15261642 cat <<\_ACEOF
1527 gupnp-dlna configure 0.4.2
1528 generated by GNU Autoconf 2.68
1643 gupnp-dlna configure 0.6.0
1644 generated by GNU Autoconf 2.67
15291645
15301646 Copyright (C) 2010 Free Software Foundation, Inc.
15311647 This configure script is free software; the Free Software Foundation
15711687
15721688 ac_retval=1
15731689 fi
1574 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1690 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
15751691 as_fn_set_status $ac_retval
15761692
15771693 } # ac_fn_c_try_compile
16171733 # interfere with the next link command; also delete a directory that is
16181734 # left behind by Apple's compiler. We do this before executing the actions.
16191735 rm -rf conftest.dSYM conftest_ipa8_conftest.oo
1620 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1736 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
16211737 as_fn_set_status $ac_retval
16221738
16231739 } # ac_fn_c_try_link
16541770
16551771 ac_retval=1
16561772 fi
1657 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1773 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
16581774 as_fn_set_status $ac_retval
16591775
16601776 } # ac_fn_c_try_cpp
16961812 ac_retval=$ac_status
16971813 fi
16981814 rm -rf conftest.dSYM conftest_ipa8_conftest.oo
1699 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1815 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
17001816 as_fn_set_status $ac_retval
17011817
17021818 } # ac_fn_c_try_run
17101826 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
17111827 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
17121828 $as_echo_n "checking for $2... " >&6; }
1713 if eval \${$3+:} false; then :
1829 if eval "test \"\${$3+set}\"" = set; then :
17141830 $as_echo_n "(cached) " >&6
17151831 else
17161832 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17281844 eval ac_res=\$$3
17291845 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
17301846 $as_echo "$ac_res" >&6; }
1731 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1847 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
17321848
17331849 } # ac_fn_c_check_header_compile
17341850
17401856 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
17411857 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
17421858 $as_echo_n "checking for $2... " >&6; }
1743 if eval \${$3+:} false; then :
1859 if eval "test \"\${$3+set}\"" = set; then :
17441860 $as_echo_n "(cached) " >&6
17451861 else
17461862 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17951911 eval ac_res=\$$3
17961912 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
17971913 $as_echo "$ac_res" >&6; }
1798 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1914 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
17991915
18001916 } # ac_fn_c_check_func
18011917 cat >config.log <<_ACEOF
18021918 This file contains any messages produced by compilers while
18031919 running configure, to aid debugging if configure makes a mistake.
18041920
1805 It was created by gupnp-dlna $as_me 0.4.2, which was
1806 generated by GNU Autoconf 2.68. Invocation command line was
1921 It was created by gupnp-dlna $as_me 0.6.0, which was
1922 generated by GNU Autoconf 2.67. Invocation command line was
18071923
18081924 $ $0 $@
18091925
20612177 || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
20622178 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
20632179 as_fn_error $? "failed to load site script $ac_site_file
2064 See \`config.log' for more details" "$LINENO" 5; }
2180 See \`config.log' for more details" "$LINENO" 5 ; }
20652181 fi
20662182 done
20672183
21982314 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
21992315 $as_echo_n "checking for a BSD-compatible install... " >&6; }
22002316 if test -z "$INSTALL"; then
2201 if ${ac_cv_path_install+:} false; then :
2317 if test "${ac_cv_path_install+set}" = set; then :
22022318 $as_echo_n "(cached) " >&6
22032319 else
22042320 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
22852401 '
22862402 case `pwd` in
22872403 *[\\\"\#\$\&\'\`$am_lf]*)
2288 as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
2404 as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;;
22892405 esac
22902406 case $srcdir in
22912407 *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
2292 as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
2408 as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;;
22932409 esac
22942410
22952411 # Do `set' in a subshell so we don't clobber the current shell's
23752491 set dummy ${ac_tool_prefix}strip; ac_word=$2
23762492 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
23772493 $as_echo_n "checking for $ac_word... " >&6; }
2378 if ${ac_cv_prog_STRIP+:} false; then :
2494 if test "${ac_cv_prog_STRIP+set}" = set; then :
23792495 $as_echo_n "(cached) " >&6
23802496 else
23812497 if test -n "$STRIP"; then
24152531 set dummy strip; ac_word=$2
24162532 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
24172533 $as_echo_n "checking for $ac_word... " >&6; }
2418 if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
2534 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
24192535 $as_echo_n "(cached) " >&6
24202536 else
24212537 if test -n "$ac_ct_STRIP"; then
24682584 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
24692585 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
24702586 if test -z "$MKDIR_P"; then
2471 if ${ac_cv_path_mkdir+:} false; then :
2587 if test "${ac_cv_path_mkdir+set}" = set; then :
24722588 $as_echo_n "(cached) " >&6
24732589 else
24742590 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
25192635 set dummy $ac_prog; ac_word=$2
25202636 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
25212637 $as_echo_n "checking for $ac_word... " >&6; }
2522 if ${ac_cv_prog_AWK+:} false; then :
2638 if test "${ac_cv_prog_AWK+set}" = set; then :
25232639 $as_echo_n "(cached) " >&6
25242640 else
25252641 if test -n "$AWK"; then
25592675 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
25602676 set x ${MAKE-make}
25612677 ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
2562 if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
2678 if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
25632679 $as_echo_n "(cached) " >&6
25642680 else
25652681 cat >conftest.make <<\_ACEOF
26172733
26182734 # Define the identity of the package.
26192735 PACKAGE='gupnp-dlna'
2620 VERSION='0.4.2'
2736 VERSION='0.6.0'
26212737
26222738
26232739 cat >>confdefs.h <<_ACEOF
26612777 ac_config_headers="$ac_config_headers config.h"
26622778
26632779
2664 GUPNP_DLNA_CURRENT=0
2780 GUPNP_DLNA_CURRENT=2
26652781
26662782 GUPNP_DLNA_REVISION=0
26672783
27552871 set dummy ${ac_tool_prefix}gcc; ac_word=$2
27562872 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
27572873 $as_echo_n "checking for $ac_word... " >&6; }
2758 if ${ac_cv_prog_CC+:} false; then :
2874 if test "${ac_cv_prog_CC+set}" = set; then :
27592875 $as_echo_n "(cached) " >&6
27602876 else
27612877 if test -n "$CC"; then
27952911 set dummy gcc; ac_word=$2
27962912 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
27972913 $as_echo_n "checking for $ac_word... " >&6; }
2798 if ${ac_cv_prog_ac_ct_CC+:} false; then :
2914 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
27992915 $as_echo_n "(cached) " >&6
28002916 else
28012917 if test -n "$ac_ct_CC"; then
28482964 set dummy ${ac_tool_prefix}cc; ac_word=$2
28492965 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
28502966 $as_echo_n "checking for $ac_word... " >&6; }
2851 if ${ac_cv_prog_CC+:} false; then :
2967 if test "${ac_cv_prog_CC+set}" = set; then :
28522968 $as_echo_n "(cached) " >&6
28532969 else
28542970 if test -n "$CC"; then
28883004 set dummy cc; ac_word=$2
28893005 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
28903006 $as_echo_n "checking for $ac_word... " >&6; }
2891 if ${ac_cv_prog_CC+:} false; then :
3007 if test "${ac_cv_prog_CC+set}" = set; then :
28923008 $as_echo_n "(cached) " >&6
28933009 else
28943010 if test -n "$CC"; then
29473063 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
29483064 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
29493065 $as_echo_n "checking for $ac_word... " >&6; }
2950 if ${ac_cv_prog_CC+:} false; then :
3066 if test "${ac_cv_prog_CC+set}" = set; then :
29513067 $as_echo_n "(cached) " >&6
29523068 else
29533069 if test -n "$CC"; then
29913107 set dummy $ac_prog; ac_word=$2
29923108 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
29933109 $as_echo_n "checking for $ac_word... " >&6; }
2994 if ${ac_cv_prog_ac_ct_CC+:} false; then :
3110 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
29953111 $as_echo_n "(cached) " >&6
29963112 else
29973113 if test -n "$ac_ct_CC"; then
30463162 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
30473163 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
30483164 as_fn_error $? "no acceptable C compiler found in \$PATH
3049 See \`config.log' for more details" "$LINENO" 5; }
3165 See \`config.log' for more details" "$LINENO" 5 ; }
30503166
30513167 # Provide some information about the compiler.
30523168 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
31613277 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
31623278 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
31633279 as_fn_error 77 "C compiler cannot create executables
3164 See \`config.log' for more details" "$LINENO" 5; }
3280 See \`config.log' for more details" "$LINENO" 5 ; }
31653281 else
31663282 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
31673283 $as_echo "yes" >&6; }
32043320 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
32053321 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
32063322 as_fn_error $? "cannot compute suffix of executables: cannot compile and link
3207 See \`config.log' for more details" "$LINENO" 5; }
3323 See \`config.log' for more details" "$LINENO" 5 ; }
32083324 fi
32093325 rm -f conftest conftest$ac_cv_exeext
32103326 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
32633379 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
32643380 as_fn_error $? "cannot run C compiled programs.
32653381 If you meant to cross compile, use \`--host'.
3266 See \`config.log' for more details" "$LINENO" 5; }
3382 See \`config.log' for more details" "$LINENO" 5 ; }
32673383 fi
32683384 fi
32693385 fi
32743390 ac_clean_files=$ac_clean_files_save
32753391 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
32763392 $as_echo_n "checking for suffix of object files... " >&6; }
3277 if ${ac_cv_objext+:} false; then :
3393 if test "${ac_cv_objext+set}" = set; then :
32783394 $as_echo_n "(cached) " >&6
32793395 else
32803396 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
33153431 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
33163432 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
33173433 as_fn_error $? "cannot compute suffix of object files: cannot compile
3318 See \`config.log' for more details" "$LINENO" 5; }
3434 See \`config.log' for more details" "$LINENO" 5 ; }
33193435 fi
33203436 rm -f conftest.$ac_cv_objext conftest.$ac_ext
33213437 fi
33253441 ac_objext=$OBJEXT
33263442 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
33273443 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
3328 if ${ac_cv_c_compiler_gnu+:} false; then :
3444 if test "${ac_cv_c_compiler_gnu+set}" = set; then :
33293445 $as_echo_n "(cached) " >&6
33303446 else
33313447 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
33623478 ac_save_CFLAGS=$CFLAGS
33633479 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
33643480 $as_echo_n "checking whether $CC accepts -g... " >&6; }
3365 if ${ac_cv_prog_cc_g+:} false; then :
3481 if test "${ac_cv_prog_cc_g+set}" = set; then :
33663482 $as_echo_n "(cached) " >&6
33673483 else
33683484 ac_save_c_werror_flag=$ac_c_werror_flag
34403556 fi
34413557 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
34423558 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
3443 if ${ac_cv_prog_cc_c89+:} false; then :
3559 if test "${ac_cv_prog_cc_c89+set}" = set; then :
34443560 $as_echo_n "(cached) " >&6
34453561 else
34463562 ac_cv_prog_cc_c89=no
35393655
35403656 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
35413657 $as_echo_n "checking dependency style of $depcc... " >&6; }
3542 if ${am_cv_CC_dependencies_compiler_type+:} false; then :
3658 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
35433659 $as_echo_n "(cached) " >&6
35443660 else
35453661 if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
36653781
36663782 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5
36673783 $as_echo_n "checking for library containing strerror... " >&6; }
3668 if ${ac_cv_search_strerror+:} false; then :
3784 if test "${ac_cv_search_strerror+set}" = set; then :
36693785 $as_echo_n "(cached) " >&6
36703786 else
36713787 ac_func_search_save_LIBS=$LIBS
36993815 fi
37003816 rm -f core conftest.err conftest.$ac_objext \
37013817 conftest$ac_exeext
3702 if ${ac_cv_search_strerror+:} false; then :
3818 if test "${ac_cv_search_strerror+set}" = set; then :
37033819 break
37043820 fi
37053821 done
3706 if ${ac_cv_search_strerror+:} false; then :
3822 if test "${ac_cv_search_strerror+set}" = set; then :
37073823
37083824 else
37093825 ac_cv_search_strerror=no
37293845 set dummy ${ac_tool_prefix}gcc; ac_word=$2
37303846 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
37313847 $as_echo_n "checking for $ac_word... " >&6; }
3732 if ${ac_cv_prog_CC+:} false; then :
3848 if test "${ac_cv_prog_CC+set}" = set; then :
37333849 $as_echo_n "(cached) " >&6
37343850 else
37353851 if test -n "$CC"; then
37693885 set dummy gcc; ac_word=$2
37703886 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
37713887 $as_echo_n "checking for $ac_word... " >&6; }
3772 if ${ac_cv_prog_ac_ct_CC+:} false; then :
3888 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
37733889 $as_echo_n "(cached) " >&6
37743890 else
37753891 if test -n "$ac_ct_CC"; then
38223938 set dummy ${ac_tool_prefix}cc; ac_word=$2
38233939 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
38243940 $as_echo_n "checking for $ac_word... " >&6; }
3825 if ${ac_cv_prog_CC+:} false; then :
3941 if test "${ac_cv_prog_CC+set}" = set; then :
38263942 $as_echo_n "(cached) " >&6
38273943 else
38283944 if test -n "$CC"; then
38623978 set dummy cc; ac_word=$2
38633979 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
38643980 $as_echo_n "checking for $ac_word... " >&6; }
3865 if ${ac_cv_prog_CC+:} false; then :
3981 if test "${ac_cv_prog_CC+set}" = set; then :
38663982 $as_echo_n "(cached) " >&6
38673983 else
38683984 if test -n "$CC"; then
39214037 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
39224038 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
39234039 $as_echo_n "checking for $ac_word... " >&6; }
3924 if ${ac_cv_prog_CC+:} false; then :
4040 if test "${ac_cv_prog_CC+set}" = set; then :
39254041 $as_echo_n "(cached) " >&6
39264042 else
39274043 if test -n "$CC"; then
39654081 set dummy $ac_prog; ac_word=$2
39664082 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
39674083 $as_echo_n "checking for $ac_word... " >&6; }
3968 if ${ac_cv_prog_ac_ct_CC+:} false; then :
4084 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
39694085 $as_echo_n "(cached) " >&6
39704086 else
39714087 if test -n "$ac_ct_CC"; then
40204136 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
40214137 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
40224138 as_fn_error $? "no acceptable C compiler found in \$PATH
4023 See \`config.log' for more details" "$LINENO" 5; }
4139 See \`config.log' for more details" "$LINENO" 5 ; }
40244140
40254141 # Provide some information about the compiler.
40264142 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
40494165
40504166 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
40514167 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
4052 if ${ac_cv_c_compiler_gnu+:} false; then :
4168 if test "${ac_cv_c_compiler_gnu+set}" = set; then :
40534169 $as_echo_n "(cached) " >&6
40544170 else
40554171 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
40864202 ac_save_CFLAGS=$CFLAGS
40874203 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
40884204 $as_echo_n "checking whether $CC accepts -g... " >&6; }
4089 if ${ac_cv_prog_cc_g+:} false; then :
4205 if test "${ac_cv_prog_cc_g+set}" = set; then :
40904206 $as_echo_n "(cached) " >&6
40914207 else
40924208 ac_save_c_werror_flag=$ac_c_werror_flag
41644280 fi
41654281 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
41664282 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
4167 if ${ac_cv_prog_cc_c89+:} false; then :
4283 if test "${ac_cv_prog_cc_c89+set}" = set; then :
41684284 $as_echo_n "(cached) " >&6
41694285 else
41704286 ac_cv_prog_cc_c89=no
42634379
42644380 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
42654381 $as_echo_n "checking dependency style of $depcc... " >&6; }
4266 if ${am_cv_CC_dependencies_compiler_type+:} false; then :
4382 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
42674383 $as_echo_n "(cached) " >&6
42684384 else
42694385 if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
43984514 CPP=
43994515 fi
44004516 if test -z "$CPP"; then
4401 if ${ac_cv_prog_CPP+:} false; then :
4517 if test "${ac_cv_prog_CPP+set}" = set; then :
44024518 $as_echo_n "(cached) " >&6
44034519 else
44044520 # Double quotes because CPP needs to be expanded
45144630 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
45154631 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
45164632 as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
4517 See \`config.log' for more details" "$LINENO" 5; }
4633 See \`config.log' for more details" "$LINENO" 5 ; }
45184634 fi
45194635
45204636 ac_ext=c
45264642
45274643 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
45284644 $as_echo_n "checking for grep that handles long lines and -e... " >&6; }
4529 if ${ac_cv_path_GREP+:} false; then :
4645 if test "${ac_cv_path_GREP+set}" = set; then :
45304646 $as_echo_n "(cached) " >&6
45314647 else
45324648 if test -z "$GREP"; then
45894705
45904706 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
45914707 $as_echo_n "checking for egrep... " >&6; }
4592 if ${ac_cv_path_EGREP+:} false; then :
4708 if test "${ac_cv_path_EGREP+set}" = set; then :
45934709 $as_echo_n "(cached) " >&6
45944710 else
45954711 if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
46564772
46574773 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
46584774 $as_echo_n "checking for ANSI C header files... " >&6; }
4659 if ${ac_cv_header_stdc+:} false; then :
4775 if test "${ac_cv_header_stdc+set}" = set; then :
46604776 $as_echo_n "(cached) " >&6
46614777 else
46624778 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
47724888
47734889 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
47744890 $as_echo_n "checking build system type... " >&6; }
4775 if ${ac_cv_build+:} false; then :
4891 if test "${ac_cv_build+set}" = set; then :
47764892 $as_echo_n "(cached) " >&6
47774893 else
47784894 ac_build_alias=$build_alias
47884904 $as_echo "$ac_cv_build" >&6; }
47894905 case $ac_cv_build in
47904906 *-*-*) ;;
4791 *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
4907 *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;;
47924908 esac
47934909 build=$ac_cv_build
47944910 ac_save_IFS=$IFS; IFS='-'
48064922
48074923 { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
48084924 $as_echo_n "checking host system type... " >&6; }
4809 if ${ac_cv_host+:} false; then :
4925 if test "${ac_cv_host+set}" = set; then :
48104926 $as_echo_n "(cached) " >&6
48114927 else
48124928 if test "x$host_alias" = x; then
48214937 $as_echo "$ac_cv_host" >&6; }
48224938 case $ac_cv_host in
48234939 *-*-*) ;;
4824 *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
4940 *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;;
48254941 esac
48264942 host=$ac_cv_host
48274943 ac_save_IFS=$IFS; IFS='-'
48404956 enable_win32_dll=yes
48414957
48424958 case $host in
4843 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
4959 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
48444960 if test -n "$ac_tool_prefix"; then
48454961 # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
48464962 set dummy ${ac_tool_prefix}as; ac_word=$2
48474963 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
48484964 $as_echo_n "checking for $ac_word... " >&6; }
4849 if ${ac_cv_prog_AS+:} false; then :
4965 if test "${ac_cv_prog_AS+set}" = set; then :
48504966 $as_echo_n "(cached) " >&6
48514967 else
48524968 if test -n "$AS"; then
48865002 set dummy as; ac_word=$2
48875003 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
48885004 $as_echo_n "checking for $ac_word... " >&6; }
4889 if ${ac_cv_prog_ac_ct_AS+:} false; then :
5005 if test "${ac_cv_prog_ac_ct_AS+set}" = set; then :
48905006 $as_echo_n "(cached) " >&6
48915007 else
48925008 if test -n "$ac_ct_AS"; then
49385054 set dummy ${ac_tool_prefix}dlltool; ac_word=$2
49395055 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
49405056 $as_echo_n "checking for $ac_word... " >&6; }
4941 if ${ac_cv_prog_DLLTOOL+:} false; then :
5057 if test "${ac_cv_prog_DLLTOOL+set}" = set; then :
49425058 $as_echo_n "(cached) " >&6
49435059 else
49445060 if test -n "$DLLTOOL"; then
49785094 set dummy dlltool; ac_word=$2
49795095 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
49805096 $as_echo_n "checking for $ac_word... " >&6; }
4981 if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
5097 if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then :
49825098 $as_echo_n "(cached) " >&6
49835099 else
49845100 if test -n "$ac_ct_DLLTOOL"; then
50305146 set dummy ${ac_tool_prefix}objdump; ac_word=$2
50315147 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
50325148 $as_echo_n "checking for $ac_word... " >&6; }
5033 if ${ac_cv_prog_OBJDUMP+:} false; then :
5149 if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
50345150 $as_echo_n "(cached) " >&6
50355151 else
50365152 if test -n "$OBJDUMP"; then
50705186 set dummy objdump; ac_word=$2
50715187 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
50725188 $as_echo_n "checking for $ac_word... " >&6; }
5073 if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
5189 if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
50745190 $as_echo_n "(cached) " >&6
50755191 else
50765192 if test -n "$ac_ct_OBJDUMP"; then
51485264
51495265
51505266
5151 macro_version='2.2.10'
5152 macro_revision='1.3175'
5267 macro_version='2.2.6b'
5268 macro_revision='1.3017'
51535269
51545270
51555271
51645280
51655281
51665282 ltmain="$ac_aux_dir/ltmain.sh"
5167
5168 # Backslashify metacharacters that are still active within
5169 # double-quoted strings.
5170 sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
5171
5172 # Same as above, but do not quote variable references.
5173 double_quote_subst='s/\(["`\\]\)/\\\1/g'
5174
5175 # Sed substitution to delay expansion of an escaped shell variable in a
5176 # double_quote_subst'ed string.
5177 delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
5178
5179 # Sed substitution to delay expansion of an escaped single quote.
5180 delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
5181
5182 # Sed substitution to avoid accidental globbing in evaled expressions
5183 no_glob_subst='s/\*/\\\*/g'
5184
5185 ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
5186 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
5187 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
5188
5189 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
5190 $as_echo_n "checking how to print strings... " >&6; }
5191 # Test print first, because it will be a builtin if present.
5192 if test "X`print -r -- -n 2>/dev/null`" = X-n && \
5193 test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
5194 ECHO='print -r --'
5195 elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
5196 ECHO='printf %s\n'
5197 else
5198 # Use this function as a fallback that always works.
5199 func_fallback_echo ()
5200 {
5201 eval 'cat <<_LTECHO_EOF
5202 $1
5203 _LTECHO_EOF'
5204 }
5205 ECHO='func_fallback_echo'
5206 fi
5207
5208 # func_echo_all arg...
5209 # Invoke $ECHO with all args, space-separated.
5210 func_echo_all ()
5211 {
5212 $ECHO ""
5213 }
5214
5215 case "$ECHO" in
5216 printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
5217 $as_echo "printf" >&6; } ;;
5218 print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
5219 $as_echo "print -r" >&6; } ;;
5220 *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
5221 $as_echo "cat" >&6; } ;;
5222 esac
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
52365283
52375284 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
52385285 $as_echo_n "checking for a sed that does not truncate output... " >&6; }
5239 if ${ac_cv_path_SED+:} false; then :
5286 if test "${ac_cv_path_SED+set}" = set; then :
52405287 $as_echo_n "(cached) " >&6
52415288 else
52425289 ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
53185365
53195366 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
53205367 $as_echo_n "checking for fgrep... " >&6; }
5321 if ${ac_cv_path_FGREP+:} false; then :
5368 if test "${ac_cv_path_FGREP+set}" = set; then :
53225369 $as_echo_n "(cached) " >&6
53235370 else
53245371 if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
54495496 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
54505497 $as_echo_n "checking for non-GNU ld... " >&6; }
54515498 fi
5452 if ${lt_cv_path_LD+:} false; then :
5499 if test "${lt_cv_path_LD+set}" = set; then :
54535500 $as_echo_n "(cached) " >&6
54545501 else
54555502 if test -z "$LD"; then
54895536 test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
54905537 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
54915538 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
5492 if ${lt_cv_prog_gnu_ld+:} false; then :
5539 if test "${lt_cv_prog_gnu_ld+set}" = set; then :
54935540 $as_echo_n "(cached) " >&6
54945541 else
54955542 # I'd rather use --version here, but apparently some GNU lds only accept -v.
55165563
55175564 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
55185565 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
5519 if ${lt_cv_path_NM+:} false; then :
5566 if test "${lt_cv_path_NM+set}" = set; then :
55205567 $as_echo_n "(cached) " >&6
55215568 else
55225569 if test -n "$NM"; then
55695616 NM="$lt_cv_path_NM"
55705617 else
55715618 # Didn't find any BSD compatible name lister, look for dumpbin.
5572 if test -n "$DUMPBIN"; then :
5573 # Let the user override the test.
5574 else
5575 if test -n "$ac_tool_prefix"; then
5576 for ac_prog in dumpbin "link -dump"
5619 if test -n "$ac_tool_prefix"; then
5620 for ac_prog in "dumpbin -symbols" "link -dump -symbols"
55775621 do
55785622 # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
55795623 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
55805624 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
55815625 $as_echo_n "checking for $ac_word... " >&6; }
5582 if ${ac_cv_prog_DUMPBIN+:} false; then :
5626 if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
55835627 $as_echo_n "(cached) " >&6
55845628 else
55855629 if test -n "$DUMPBIN"; then
56175661 fi
56185662 if test -z "$DUMPBIN"; then
56195663 ac_ct_DUMPBIN=$DUMPBIN
5620 for ac_prog in dumpbin "link -dump"
5664 for ac_prog in "dumpbin -symbols" "link -dump -symbols"
56215665 do
56225666 # Extract the first word of "$ac_prog", so it can be a program name with args.
56235667 set dummy $ac_prog; ac_word=$2
56245668 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
56255669 $as_echo_n "checking for $ac_word... " >&6; }
5626 if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
5670 if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then :
56275671 $as_echo_n "(cached) " >&6
56285672 else
56295673 if test -n "$ac_ct_DUMPBIN"; then
56725716 fi
56735717 fi
56745718
5675 case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
5676 *COFF*)
5677 DUMPBIN="$DUMPBIN -symbols"
5678 ;;
5679 *)
5680 DUMPBIN=:
5681 ;;
5682 esac
5683 fi
56845719
56855720 if test "$DUMPBIN" != ":"; then
56865721 NM="$DUMPBIN"
56955730
56965731 { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
56975732 $as_echo_n "checking the name lister ($NM) interface... " >&6; }
5698 if ${lt_cv_nm_interface+:} false; then :
5733 if test "${lt_cv_nm_interface+set}" = set; then :
56995734 $as_echo_n "(cached) " >&6
57005735 else
57015736 lt_cv_nm_interface="BSD nm"
57025737 echo "int some_variable = 0;" > conftest.$ac_ext
5703 (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
5738 (eval echo "\"\$as_me:5739: $ac_compile\"" >&5)
57045739 (eval "$ac_compile" 2>conftest.err)
57055740 cat conftest.err >&5
5706 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
5741 (eval echo "\"\$as_me:5742: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
57075742 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
57085743 cat conftest.err >&5
5709 (eval echo "\"\$as_me:$LINENO: output\"" >&5)
5744 (eval echo "\"\$as_me:5745: output\"" >&5)
57105745 cat conftest.out >&5
57115746 if $GREP 'External.*some_variable' conftest.out > /dev/null; then
57125747 lt_cv_nm_interface="MS dumpbin"
57305765 # find the maximum length of command line arguments
57315766 { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
57325767 $as_echo_n "checking the maximum length of command line arguments... " >&6; }
5733 if ${lt_cv_sys_max_cmd_len+:} false; then :
5768 if test "${lt_cv_sys_max_cmd_len+set}" = set; then :
57345769 $as_echo_n "(cached) " >&6
57355770 else
57365771 i=0
57605795 # the test eventually succeeds (with a max line length of 256k).
57615796 # Instead, let's just punt: use the minimum linelength reported by
57625797 # all of the supported platforms: 8192 (on NT/2K/XP).
5763 lt_cv_sys_max_cmd_len=8192;
5764 ;;
5765
5766 mint*)
5767 # On MiNT this can take a long time and run out of memory.
57685798 lt_cv_sys_max_cmd_len=8192;
57695799 ;;
57705800
58325862 # If test is not a shell built-in, we'll probably end up computing a
58335863 # maximum length that is only half of the actual maximum length, but
58345864 # we can't tell.
5835 while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
5836 = "X$teststring$teststring"; } >/dev/null 2>&1 &&
5865 while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
5866 = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
58375867 test $i != 17 # 1/2 MB should be enough
58385868 do
58395869 i=`expr $i + 1`
59275957
59285958 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
59295959 $as_echo_n "checking for $LD option to reload object files... " >&6; }
5930 if ${lt_cv_ld_reload_flag+:} false; then :
5960 if test "${lt_cv_ld_reload_flag+set}" = set; then :
59315961 $as_echo_n "(cached) " >&6
59325962 else
59335963 lt_cv_ld_reload_flag='-r'
59635993 set dummy ${ac_tool_prefix}objdump; ac_word=$2
59645994 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
59655995 $as_echo_n "checking for $ac_word... " >&6; }
5966 if ${ac_cv_prog_OBJDUMP+:} false; then :
5996 if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
59675997 $as_echo_n "(cached) " >&6
59685998 else
59695999 if test -n "$OBJDUMP"; then
60036033 set dummy objdump; ac_word=$2
60046034 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
60056035 $as_echo_n "checking for $ac_word... " >&6; }
6006 if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
6036 if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
60076037 $as_echo_n "(cached) " >&6
60086038 else
60096039 if test -n "$ac_ct_OBJDUMP"; then
60596089
60606090 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
60616091 $as_echo_n "checking how to recognize dependent libraries... " >&6; }
6062 if ${lt_cv_deplibs_check_method+:} false; then :
6092 if test "${lt_cv_deplibs_check_method+set}" = set; then :
60636093 $as_echo_n "(cached) " >&6
60646094 else
60656095 lt_cv_file_magic_cmd='$MAGIC_CMD'
61016131 # Base MSYS/MinGW do not provide the 'file' command needed by
61026132 # func_win32_libid shell function, so use a weaker test based on 'objdump',
61036133 # unless we find 'file', for example because we are cross-compiling.
6104 # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
6105 if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
6134 if ( file / ) >/dev/null 2>&1; then
61066135 lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
61076136 lt_cv_file_magic_cmd='func_win32_libid'
61086137 else
6109 # Keep this pattern in sync with the one in func_win32_libid.
6110 lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
6138 lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
61116139 lt_cv_file_magic_cmd='$OBJDUMP -f'
61126140 fi
61136141 ;;
61146142
6115 cegcc*)
6143 cegcc)
61166144 # use the weaker test based on 'objdump'. See mingw*.
61176145 lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
61186146 lt_cv_file_magic_cmd='$OBJDUMP -f'
61426170 lt_cv_deplibs_check_method=pass_all
61436171 ;;
61446172
6145 haiku*)
6146 lt_cv_deplibs_check_method=pass_all
6147 ;;
6148
61496173 hpux10.20* | hpux11*)
61506174 lt_cv_file_magic_cmd=/usr/bin/file
61516175 case $host_cpu in
61546178 lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
61556179 ;;
61566180 hppa*64*)
6157 lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
6181 lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
61586182 lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
61596183 ;;
61606184 *)
6161 lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
6185 lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
61626186 lt_cv_file_magic_test_file=/usr/lib/libc.sl
61636187 ;;
61646188 esac
61846208 lt_cv_deplibs_check_method=pass_all
61856209 ;;
61866210
6187 netbsd*)
6211 netbsd* | netbsdelf*-gnu)
61886212 if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
61896213 lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
61906214 else
62816305 set dummy ${ac_tool_prefix}ar; ac_word=$2
62826306 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
62836307 $as_echo_n "checking for $ac_word... " >&6; }
6284 if ${ac_cv_prog_AR+:} false; then :
6308 if test "${ac_cv_prog_AR+set}" = set; then :
62856309 $as_echo_n "(cached) " >&6
62866310 else
62876311 if test -n "$AR"; then
63216345 set dummy ar; ac_word=$2
63226346 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
63236347 $as_echo_n "checking for $ac_word... " >&6; }
6324 if ${ac_cv_prog_ac_ct_AR+:} false; then :
6348 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
63256349 $as_echo_n "(cached) " >&6
63266350 else
63276351 if test -n "$ac_ct_AR"; then
63866410 set dummy ${ac_tool_prefix}strip; ac_word=$2
63876411 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
63886412 $as_echo_n "checking for $ac_word... " >&6; }
6389 if ${ac_cv_prog_STRIP+:} false; then :
6413 if test "${ac_cv_prog_STRIP+set}" = set; then :
63906414 $as_echo_n "(cached) " >&6
63916415 else
63926416 if test -n "$STRIP"; then
64266450 set dummy strip; ac_word=$2
64276451 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
64286452 $as_echo_n "checking for $ac_word... " >&6; }
6429 if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
6453 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
64306454 $as_echo_n "(cached) " >&6
64316455 else
64326456 if test -n "$ac_ct_STRIP"; then
64856509 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
64866510 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
64876511 $as_echo_n "checking for $ac_word... " >&6; }
6488 if ${ac_cv_prog_RANLIB+:} false; then :
6512 if test "${ac_cv_prog_RANLIB+set}" = set; then :
64896513 $as_echo_n "(cached) " >&6
64906514 else
64916515 if test -n "$RANLIB"; then
65256549 set dummy ranlib; ac_word=$2
65266550 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
65276551 $as_echo_n "checking for $ac_word... " >&6; }
6528 if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
6552 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
65296553 $as_echo_n "(cached) " >&6
65306554 else
65316555 if test -n "$ac_ct_RANLIB"; then
65966620 old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
65976621 fi
65986622
6599 case $host_os in
6600 darwin*)
6601 lock_old_archive_extraction=yes ;;
6602 *)
6603 lock_old_archive_extraction=no ;;
6604 esac
6605
6606
6607
6608
6609
6610
66116623
66126624
66136625
66546666 # Check for command to grab the raw symbol name followed by C symbol from nm.
66556667 { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
66566668 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
6657 if ${lt_cv_sys_global_symbol_pipe+:} false; then :
6669 if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then :
66586670 $as_echo_n "(cached) " >&6
66596671 else
66606672
67776789 test $ac_status = 0; }; then
67786790 # Now try to grab the symbols.
67796791 nlist=conftest.nm
6780 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
6781 (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
6792 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5
6793 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
67826794 ac_status=$?
67836795 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
67846796 test $ac_status = 0; } && test -s "$nlist"; then
69316943 ;;
69326944 *-*-irix6*)
69336945 # Find out which ABI we are using.
6934 echo '#line '$LINENO' "configure"' > conftest.$ac_ext
6946 echo '#line 6947 "configure"' > conftest.$ac_ext
69356947 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
69366948 (eval $ac_compile) 2>&5
69376949 ac_status=$?
70257037 CFLAGS="$CFLAGS -belf"
70267038 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
70277039 $as_echo_n "checking whether the C compiler needs -belf... " >&6; }
7028 if ${lt_cv_cc_needs_belf+:} false; then :
7040 if test "${lt_cv_cc_needs_belf+set}" = set; then :
70297041 $as_echo_n "(cached) " >&6
70307042 else
70317043 ac_ext=c
71017113 set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
71027114 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
71037115 $as_echo_n "checking for $ac_word... " >&6; }
7104 if ${ac_cv_prog_DSYMUTIL+:} false; then :
7116 if test "${ac_cv_prog_DSYMUTIL+set}" = set; then :
71057117 $as_echo_n "(cached) " >&6
71067118 else
71077119 if test -n "$DSYMUTIL"; then
71417153 set dummy dsymutil; ac_word=$2
71427154 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
71437155 $as_echo_n "checking for $ac_word... " >&6; }
7144 if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
7156 if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then :
71457157 $as_echo_n "(cached) " >&6
71467158 else
71477159 if test -n "$ac_ct_DSYMUTIL"; then
71937205 set dummy ${ac_tool_prefix}nmedit; ac_word=$2
71947206 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
71957207 $as_echo_n "checking for $ac_word... " >&6; }
7196 if ${ac_cv_prog_NMEDIT+:} false; then :
7208 if test "${ac_cv_prog_NMEDIT+set}" = set; then :
71977209 $as_echo_n "(cached) " >&6
71987210 else
71997211 if test -n "$NMEDIT"; then
72337245 set dummy nmedit; ac_word=$2
72347246 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
72357247 $as_echo_n "checking for $ac_word... " >&6; }
7236 if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
7248 if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then :
72377249 $as_echo_n "(cached) " >&6
72387250 else
72397251 if test -n "$ac_ct_NMEDIT"; then
72857297 set dummy ${ac_tool_prefix}lipo; ac_word=$2
72867298 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
72877299 $as_echo_n "checking for $ac_word... " >&6; }
7288 if ${ac_cv_prog_LIPO+:} false; then :
7300 if test "${ac_cv_prog_LIPO+set}" = set; then :
72897301 $as_echo_n "(cached) " >&6
72907302 else
72917303 if test -n "$LIPO"; then
73257337 set dummy lipo; ac_word=$2
73267338 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
73277339 $as_echo_n "checking for $ac_word... " >&6; }
7328 if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
7340 if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then :
73297341 $as_echo_n "(cached) " >&6
73307342 else
73317343 if test -n "$ac_ct_LIPO"; then
73777389 set dummy ${ac_tool_prefix}otool; ac_word=$2
73787390 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
73797391 $as_echo_n "checking for $ac_word... " >&6; }
7380 if ${ac_cv_prog_OTOOL+:} false; then :
7392 if test "${ac_cv_prog_OTOOL+set}" = set; then :
73817393 $as_echo_n "(cached) " >&6
73827394 else
73837395 if test -n "$OTOOL"; then
74177429 set dummy otool; ac_word=$2
74187430 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
74197431 $as_echo_n "checking for $ac_word... " >&6; }
7420 if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
7432 if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then :
74217433 $as_echo_n "(cached) " >&6
74227434 else
74237435 if test -n "$ac_ct_OTOOL"; then
74697481 set dummy ${ac_tool_prefix}otool64; ac_word=$2
74707482 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
74717483 $as_echo_n "checking for $ac_word... " >&6; }
7472 if ${ac_cv_prog_OTOOL64+:} false; then :
7484 if test "${ac_cv_prog_OTOOL64+set}" = set; then :
74737485 $as_echo_n "(cached) " >&6
74747486 else
74757487 if test -n "$OTOOL64"; then
75097521 set dummy otool64; ac_word=$2
75107522 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
75117523 $as_echo_n "checking for $ac_word... " >&6; }
7512 if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
7524 if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then :
75137525 $as_echo_n "(cached) " >&6
75147526 else
75157527 if test -n "$ac_ct_OTOOL64"; then
75847596
75857597 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
75867598 $as_echo_n "checking for -single_module linker flag... " >&6; }
7587 if ${lt_cv_apple_cc_single_mod+:} false; then :
7599 if test "${lt_cv_apple_cc_single_mod+set}" = set; then :
75887600 $as_echo_n "(cached) " >&6
75897601 else
75907602 lt_cv_apple_cc_single_mod=no
76137625 $as_echo "$lt_cv_apple_cc_single_mod" >&6; }
76147626 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
76157627 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
7616 if ${lt_cv_ld_exported_symbols_list+:} false; then :
7628 if test "${lt_cv_ld_exported_symbols_list+set}" = set; then :
76177629 $as_echo_n "(cached) " >&6
76187630 else
76197631 lt_cv_ld_exported_symbols_list=no
76437655 fi
76447656 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
76457657 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
7646 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
7647 $as_echo_n "checking for -force_load linker flag... " >&6; }
7648 if ${lt_cv_ld_force_load+:} false; then :
7649 $as_echo_n "(cached) " >&6
7650 else
7651 lt_cv_ld_force_load=no
7652 cat > conftest.c << _LT_EOF
7653 int forced_loaded() { return 2;}
7654 _LT_EOF
7655 echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
7656 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
7657 echo "$AR cru libconftest.a conftest.o" >&5
7658 $AR cru libconftest.a conftest.o 2>&5
7659 echo "$RANLIB libconftest.a" >&5
7660 $RANLIB libconftest.a 2>&5
7661 cat > conftest.c << _LT_EOF
7662 int main() { return 0;}
7663 _LT_EOF
7664 echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
7665 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
7666 _lt_result=$?
7667 if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
7668 lt_cv_ld_force_load=yes
7669 else
7670 cat conftest.err >&5
7671 fi
7672 rm -f conftest.err libconftest.a conftest conftest.c
7673 rm -rf conftest.dSYM
7674
7675 fi
7676 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
7677 $as_echo "$lt_cv_ld_force_load" >&6; }
76787658 case $host_os in
76797659 rhapsody* | darwin1.[012])
76807660 _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
77027682 else
77037683 _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
77047684 fi
7705 if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
7685 if test "$DSYMUTIL" != ":"; then
77067686 _lt_dsymutil='~$DSYMUTIL $lib || :'
77077687 else
77087688 _lt_dsymutil=
77317711 do :
77327712 ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
77337713 "
7734 if test "x$ac_cv_header_dlfcn_h" = xyes; then :
7714 if test "x$ac_cv_header_dlfcn_h" = x""yes; then :
77357715 cat >>confdefs.h <<_ACEOF
77367716 #define HAVE_DLFCN_H 1
77377717 _ACEOF
77397719 fi
77407720
77417721 done
7742
7743
77447722
77457723
77467724
78947872
78957873
78967874
7897
78987875 test -z "$LN_S" && LN_S="ln -s"
78997876
79007877
79167893
79177894 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
79187895 $as_echo_n "checking for objdir... " >&6; }
7919 if ${lt_cv_objdir+:} false; then :
7896 if test "${lt_cv_objdir+set}" = set; then :
79207897 $as_echo_n "(cached) " >&6
79217898 else
79227899 rm -f .libs 2>/dev/null
79407917 cat >>confdefs.h <<_ACEOF
79417918 #define LT_OBJDIR "$lt_cv_objdir/"
79427919 _ACEOF
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
79437933
79447934
79457935
79567946 ;;
79577947 esac
79587948
7949 # Sed substitution that helps us do robust quoting. It backslashifies
7950 # metacharacters that are still active within double-quoted strings.
7951 sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
7952
7953 # Same as above, but do not quote variable references.
7954 double_quote_subst='s/\(["`\\]\)/\\\1/g'
7955
7956 # Sed substitution to delay expansion of an escaped shell variable in a
7957 # double_quote_subst'ed string.
7958 delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
7959
7960 # Sed substitution to delay expansion of an escaped single quote.
7961 delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
7962
7963 # Sed substitution to avoid accidental globbing in evaled expressions
7964 no_glob_subst='s/\*/\\\*/g'
7965
79597966 # Global variables:
79607967 ofile=libtool
79617968 can_build_shared=yes
79847991 *) break;;
79857992 esac
79867993 done
7987 cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
7994 cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
79887995
79897996
79907997 # Only perform the check for file, if the check method requires it
79948001 if test "$file_magic_cmd" = '$MAGIC_CMD'; then
79958002 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
79968003 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
7997 if ${lt_cv_path_MAGIC_CMD+:} false; then :
8004 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
79988005 $as_echo_n "(cached) " >&6
79998006 else
80008007 case $MAGIC_CMD in
80608067 if test -n "$ac_tool_prefix"; then
80618068 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
80628069 $as_echo_n "checking for file... " >&6; }
8063 if ${lt_cv_path_MAGIC_CMD+:} false; then :
8070 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
80648071 $as_echo_n "(cached) " >&6
80658072 else
80668073 case $MAGIC_CMD in
81898196 lt_prog_compiler_no_builtin_flag=
81908197
81918198 if test "$GCC" = yes; then
8192 case $cc_basename in
8193 nvcc*)
8194 lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
8195 *)
8196 lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
8197 esac
8199 lt_prog_compiler_no_builtin_flag=' -fno-builtin'
81988200
81998201 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
82008202 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
8201 if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
8203 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then :
82028204 $as_echo_n "(cached) " >&6
82038205 else
82048206 lt_cv_prog_compiler_rtti_exceptions=no
82148216 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
82158217 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
82168218 -e 's:$: $lt_compiler_flag:'`
8217 (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
8219 (eval echo "\"\$as_me:8220: $lt_compile\"" >&5)
82188220 (eval "$lt_compile" 2>conftest.err)
82198221 ac_status=$?
82208222 cat conftest.err >&5
8221 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8223 echo "$as_me:8224: \$? = $ac_status" >&5
82228224 if (exit $ac_status) && test -s "$ac_outfile"; then
82238225 # The compiler can only warn and ignore the option if not recognized
82248226 # So say no if there are warnings other than the usual output.
8225 $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
8227 $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
82268228 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
82278229 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
82288230 lt_cv_prog_compiler_rtti_exceptions=yes
83008302 lt_prog_compiler_pic='-fno-common'
83018303 ;;
83028304
8303 haiku*)
8304 # PIC is the default for Haiku.
8305 # The "-static" flag exists, but is broken.
8306 lt_prog_compiler_static=
8307 ;;
8308
83098305 hpux*)
83108306 # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
83118307 # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
83468342
83478343 *)
83488344 lt_prog_compiler_pic='-fPIC'
8349 ;;
8350 esac
8351
8352 case $cc_basename in
8353 nvcc*) # Cuda Compiler Driver 2.2
8354 lt_prog_compiler_wl='-Xlinker '
8355 lt_prog_compiler_pic='-Xcompiler -fPIC'
83568345 ;;
83578346 esac
83588347 else
84178406 lt_prog_compiler_pic='--shared'
84188407 lt_prog_compiler_static='--static'
84198408 ;;
8420 pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
8409 pgcc* | pgf77* | pgf90* | pgf95*)
84218410 # Portland Group compilers (*not* the Pentium gcc compiler,
84228411 # which looks to be a dead project)
84238412 lt_prog_compiler_wl='-Wl,'
84298418 # All Alpha code is PIC.
84308419 lt_prog_compiler_static='-non_shared'
84318420 ;;
8432 xl* | bgxl* | bgf* | mpixl*)
8433 # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
8421 xl*)
8422 # IBM XL C 8.0/Fortran 10.1 on PPC
84348423 lt_prog_compiler_wl='-Wl,'
84358424 lt_prog_compiler_pic='-qpic'
84368425 lt_prog_compiler_static='-qstaticlink'
84378426 ;;
84388427 *)
84398428 case `$CC -V 2>&1 | sed 5q` in
8440 *Sun\ F* | *Sun*Fortran*)
8441 # Sun Fortran 8.3 passes all unrecognized flags to the linker
8442 lt_prog_compiler_pic='-KPIC'
8443 lt_prog_compiler_static='-Bstatic'
8444 lt_prog_compiler_wl=''
8445 ;;
84468429 *Sun\ C*)
84478430 # Sun C 5.9
84488431 lt_prog_compiler_pic='-KPIC'
84498432 lt_prog_compiler_static='-Bstatic'
84508433 lt_prog_compiler_wl='-Wl,'
84518434 ;;
8435 *Sun\ F*)
8436 # Sun Fortran 8.3 passes all unrecognized flags to the linker
8437 lt_prog_compiler_pic='-KPIC'
8438 lt_prog_compiler_static='-Bstatic'
8439 lt_prog_compiler_wl=''
8440 ;;
84528441 esac
84538442 ;;
84548443 esac
84798468 lt_prog_compiler_pic='-KPIC'
84808469 lt_prog_compiler_static='-Bstatic'
84818470 case $cc_basename in
8482 f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
8471 f77* | f90* | f95*)
84838472 lt_prog_compiler_wl='-Qoption ld ';;
84848473 *)
84858474 lt_prog_compiler_wl='-Wl,';;
85508539 if test -n "$lt_prog_compiler_pic"; then
85518540 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
85528541 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
8553 if ${lt_cv_prog_compiler_pic_works+:} false; then :
8542 if test "${lt_cv_prog_compiler_pic_works+set}" = set; then :
85548543 $as_echo_n "(cached) " >&6
85558544 else
85568545 lt_cv_prog_compiler_pic_works=no
85668555 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
85678556 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
85688557 -e 's:$: $lt_compiler_flag:'`
8569 (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
8558 (eval echo "\"\$as_me:8559: $lt_compile\"" >&5)
85708559 (eval "$lt_compile" 2>conftest.err)
85718560 ac_status=$?
85728561 cat conftest.err >&5
8573 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8562 echo "$as_me:8563: \$? = $ac_status" >&5
85748563 if (exit $ac_status) && test -s "$ac_outfile"; then
85758564 # The compiler can only warn and ignore the option if not recognized
85768565 # So say no if there are warnings other than the usual output.
8577 $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
8566 $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
85788567 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
85798568 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
85808569 lt_cv_prog_compiler_pic_works=yes
86098598 wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
86108599 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
86118600 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
8612 if ${lt_cv_prog_compiler_static_works+:} false; then :
8601 if test "${lt_cv_prog_compiler_static_works+set}" = set; then :
86138602 $as_echo_n "(cached) " >&6
86148603 else
86158604 lt_cv_prog_compiler_static_works=no
86228611 if test -s conftest.err; then
86238612 # Append any errors to the config.log.
86248613 cat conftest.err 1>&5
8625 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
8614 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
86268615 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
86278616 if diff conftest.exp conftest.er2 >/dev/null; then
86288617 lt_cv_prog_compiler_static_works=yes
86528641
86538642 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
86548643 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
8655 if ${lt_cv_prog_compiler_c_o+:} false; then :
8644 if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
86568645 $as_echo_n "(cached) " >&6
86578646 else
86588647 lt_cv_prog_compiler_c_o=no
86718660 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
86728661 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
86738662 -e 's:$: $lt_compiler_flag:'`
8674 (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
8663 (eval echo "\"\$as_me:8664: $lt_compile\"" >&5)
86758664 (eval "$lt_compile" 2>out/conftest.err)
86768665 ac_status=$?
86778666 cat out/conftest.err >&5
8678 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8667 echo "$as_me:8668: \$? = $ac_status" >&5
86798668 if (exit $ac_status) && test -s out/conftest2.$ac_objext
86808669 then
86818670 # The compiler can only warn and ignore the option if not recognized
86828671 # So say no if there are warnings
8683 $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
8672 $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
86848673 $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
86858674 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
86868675 lt_cv_prog_compiler_c_o=yes
87078696
87088697 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
87098698 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
8710 if ${lt_cv_prog_compiler_c_o+:} false; then :
8699 if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
87118700 $as_echo_n "(cached) " >&6
87128701 else
87138702 lt_cv_prog_compiler_c_o=no
87268715 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
87278716 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
87288717 -e 's:$: $lt_compiler_flag:'`
8729 (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
8718 (eval echo "\"\$as_me:8719: $lt_compile\"" >&5)
87308719 (eval "$lt_compile" 2>out/conftest.err)
87318720 ac_status=$?
87328721 cat out/conftest.err >&5
8733 echo "$as_me:$LINENO: \$? = $ac_status" >&5
8722 echo "$as_me:8723: \$? = $ac_status" >&5
87348723 if (exit $ac_status) && test -s out/conftest2.$ac_objext
87358724 then
87368725 # The compiler can only warn and ignore the option if not recognized
87378726 # So say no if there are warnings
8738 $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
8727 $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
87398728 $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
87408729 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
87418730 lt_cv_prog_compiler_c_o=yes
88458834 openbsd*)
88468835 with_gnu_ld=no
88478836 ;;
8837 linux* | k*bsd*-gnu)
8838 link_all_deplibs=no
8839 ;;
88488840 esac
88498841
88508842 ld_shlibs=yes
8851
8852 # On some targets, GNU ld is compatible enough with the native linker
8853 # that we're better off using the native interface for both.
8854 lt_use_gnu_ld_interface=no
88558843 if test "$with_gnu_ld" = yes; then
8856 case $host_os in
8857 aix*)
8858 # The AIX port of GNU ld has always aspired to compatibility
8859 # with the native linker. However, as the warning in the GNU ld
8860 # block says, versions before 2.19.5* couldn't really create working
8861 # shared libraries, regardless of the interface used.
8862 case `$LD -v 2>&1` in
8863 *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
8864 *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
8865 *\ \(GNU\ Binutils\)\ [3-9]*) ;;
8866 *)
8867 lt_use_gnu_ld_interface=yes
8868 ;;
8869 esac
8870 ;;
8871 *)
8872 lt_use_gnu_ld_interface=yes
8873 ;;
8874 esac
8875 fi
8876
8877 if test "$lt_use_gnu_ld_interface" = yes; then
88788844 # If archive_cmds runs LD, not CC, wlarc should be empty
88798845 wlarc='${wl}'
88808846
89088874 ld_shlibs=no
89098875 cat <<_LT_EOF 1>&2
89108876
8911 *** Warning: the GNU linker, at least up to release 2.19, is reported
8877 *** Warning: the GNU linker, at least up to release 2.9.1, is reported
89128878 *** to be unable to reliably create shared libraries on AIX.
89138879 *** Therefore, libtool is disabling shared libraries support. If you
8914 *** really care for shared libraries, you may want to install binutils
8915 *** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
8916 *** You will then need to restart the configuration process.
8880 *** really care for shared libraries, you may want to modify your PATH
8881 *** so that a non-GNU linker is found, and then restart.
89178882
89188883 _LT_EOF
89198884 fi
89498914 # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
89508915 # as there is no search path for DLLs.
89518916 hardcode_libdir_flag_spec='-L$libdir'
8952 export_dynamic_flag_spec='${wl}--export-all-symbols'
89538917 allow_undefined_flag=unsupported
89548918 always_export_symbols=no
89558919 enable_shared_with_static_runtimes=yes
89718935 fi
89728936 ;;
89738937
8974 haiku*)
8975 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
8976 link_all_deplibs=yes
8977 ;;
8978
89798938 interix[3-9]*)
89808939 hardcode_direct=no
89818940 hardcode_shlibpath_var=no
90058964 tmp_sharedflag='-shared'
90068965 case $cc_basename,$host_cpu in
90078966 pgcc*) # Portland Group C compiler
9008 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
8967 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
90098968 tmp_addflag=' $pic_flag'
90108969 ;;
9011 pgf77* | pgf90* | pgf95* | pgfortran*)
9012 # Portland Group f77 and f90 compilers
9013 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
8970 pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers
8971 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
90148972 tmp_addflag=' $pic_flag -Mnomain' ;;
90158973 ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
90168974 tmp_addflag=' -i_dynamic' ;;
90218979 lf95*) # Lahey Fortran 8.1
90228980 whole_archive_flag_spec=
90238981 tmp_sharedflag='--shared' ;;
9024 xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
8982 xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
90258983 tmp_sharedflag='-qmkshrobj'
90268984 tmp_addflag= ;;
9027 nvcc*) # Cuda Compiler Driver 2.2
9028 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
9029 compiler_needs_object=yes
9030 ;;
90318985 esac
90328986 case `$CC -V 2>&1 | sed 5q` in
90338987 *Sun\ C*) # Sun C 5.9
9034 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
8988 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive'
90358989 compiler_needs_object=yes
90368990 tmp_sharedflag='-G' ;;
90378991 *Sun\ F*) # Sun Fortran 8.3
90479001 fi
90489002
90499003 case $cc_basename in
9050 xlf* | bgf* | bgxlf* | mpixlf*)
9004 xlf*)
90519005 # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
90529006 whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
90539007 hardcode_libdir_flag_spec=
90549008 hardcode_libdir_flag_spec_ld='-rpath $libdir'
9055 archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
9009 archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
90569010 if test "x$supports_anon_versioning" = xyes; then
90579011 archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
90589012 cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
90599013 echo "local: *; };" >> $output_objdir/$libname.ver~
9060 $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
9014 $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
90619015 fi
90629016 ;;
90639017 esac
90669020 fi
90679021 ;;
90689022
9069 netbsd*)
9023 netbsd* | netbsdelf*-gnu)
90709024 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
90719025 archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
90729026 wlarc=
91789132 else
91799133 # If we're using GNU nm, then we don't want the "-C" option.
91809134 # -C means demangle to AIX nm, but means don't demangle with GNU nm
9181 # Also, AIX nm treats weak defined symbols like other global
9182 # defined symbols, whereas GNU nm marks them as "W".
91839135 if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
9184 export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
9136 export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
91859137 else
91869138 export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
91879139 fi
92439195 if test "$aix_use_runtimelinking" = yes; then
92449196 shared_flag="$shared_flag "'${wl}-G'
92459197 fi
9198 link_all_deplibs=no
92469199 else
92479200 # not using gcc
92489201 if test "$host_cpu" = ia64; then
92999252 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
93009253
93019254 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
9302 archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
9255 archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
93039256 else
93049257 if test "$host_cpu" = ia64; then
93059258 hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
93439296 # -berok will link without error, but may produce a broken library.
93449297 no_undefined_flag=' ${wl}-bernotok'
93459298 allow_undefined_flag=' ${wl}-berok'
9346 if test "$with_gnu_ld" = yes; then
9347 # We only use this code for GNU lds that support --whole-archive.
9348 whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
9349 else
9350 # Exported symbols can be pulled into shared objects from archives
9351 whole_archive_flag_spec='$convenience'
9352 fi
9299 # Exported symbols can be pulled into shared objects from archives
9300 whole_archive_flag_spec='$convenience'
93539301 archive_cmds_need_lc=yes
93549302 # This is similar to how AIX traditionally builds its shared libraries.
93559303 archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
93889336 # Tell ltmain to make .dll files, not .so files.
93899337 shrext_cmds=".dll"
93909338 # FIXME: Setting linknames here is a bad hack.
9391 archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
9339 archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
93929340 # The linker will automatically build a .lib file if we build a DLL.
93939341 old_archive_from_new_cmds='true'
93949342 # FIXME: Should let the user specify the lib program.
94049352 hardcode_direct=no
94059353 hardcode_automatic=yes
94069354 hardcode_shlibpath_var=unsupported
9407 if test "$lt_cv_ld_force_load" = "yes"; then
9408 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\"`'
9409 else
9410 whole_archive_flag_spec=''
9411 fi
9355 whole_archive_flag_spec=''
94129356 link_all_deplibs=yes
94139357 allow_undefined_flag="$_lt_dar_allow_undefined"
94149358 case $cc_basename in
94169360 *) _lt_dar_can_shared=$GCC ;;
94179361 esac
94189362 if test "$_lt_dar_can_shared" = "yes"; then
9419 output_verbose_link_cmd=func_echo_all
9363 output_verbose_link_cmd=echo
94209364 archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
94219365 module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
94229366 archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
94829426 ;;
94839427
94849428 hpux10*)
9485 if test "$GCC" = yes && test "$with_gnu_ld" = no; then
9429 if test "$GCC" = yes -a "$with_gnu_ld" = no; then
94869430 archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
94879431 else
94889432 archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
95019445 ;;
95029446
95039447 hpux11*)
9504 if test "$GCC" = yes && test "$with_gnu_ld" = no; then
9448 if test "$GCC" = yes -a "$with_gnu_ld" = no; then
95059449 case $host_cpu in
95069450 hppa*64*)
95079451 archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
95229466 archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
95239467 ;;
95249468 *)
9525
9526 # Older versions of the 11.00 compiler do not understand -b yet
9527 # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
9528 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
9529 $as_echo_n "checking if $CC understands -b... " >&6; }
9530 if ${lt_cv_prog_compiler__b+:} false; then :
9531 $as_echo_n "(cached) " >&6
9532 else
9533 lt_cv_prog_compiler__b=no
9534 save_LDFLAGS="$LDFLAGS"
9535 LDFLAGS="$LDFLAGS -b"
9536 echo "$lt_simple_link_test_code" > conftest.$ac_ext
9537 if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
9538 # The linker can only warn and ignore the option if not recognized
9539 # So say no if there are warnings
9540 if test -s conftest.err; then
9541 # Append any errors to the config.log.
9542 cat conftest.err 1>&5
9543 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
9544 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
9545 if diff conftest.exp conftest.er2 >/dev/null; then
9546 lt_cv_prog_compiler__b=yes
9547 fi
9548 else
9549 lt_cv_prog_compiler__b=yes
9550 fi
9551 fi
9552 $RM -r conftest*
9553 LDFLAGS="$save_LDFLAGS"
9554
9555 fi
9556 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
9557 $as_echo "$lt_cv_prog_compiler__b" >&6; }
9558
9559 if test x"$lt_cv_prog_compiler__b" = xyes; then
9560 archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
9561 else
9562 archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
9563 fi
9564
9469 archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
95659470 ;;
95669471 esac
95679472 fi
95899494
95909495 irix5* | irix6* | nonstopux*)
95919496 if test "$GCC" = yes; then
9592 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
9497 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
95939498 # Try to use the -exported_symbol ld option, if it does not
95949499 # work, assume that -exports_file does not work either and
95959500 # implicitly export all symbols.
96009505 int foo(void) {}
96019506 _ACEOF
96029507 if ac_fn_c_try_link "$LINENO"; then :
9603 archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
9508 archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
96049509
96059510 fi
96069511 rm -f core conftest.err conftest.$ac_objext \
96079512 conftest$ac_exeext conftest.$ac_ext
96089513 LDFLAGS="$save_LDFLAGS"
96099514 else
9610 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
9611 archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
9515 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
9516 archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
96129517 fi
96139518 archive_cmds_need_lc='no'
96149519 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
96179522 link_all_deplibs=yes
96189523 ;;
96199524
9620 netbsd*)
9525 netbsd* | netbsdelf*-gnu)
96219526 if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
96229527 archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
96239528 else
96709575 hardcode_libdir_flag_spec='-L$libdir'
96719576 hardcode_minus_L=yes
96729577 allow_undefined_flag=unsupported
9673 archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
9578 archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
96749579 old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
96759580 ;;
96769581
96779582 osf3*)
96789583 if test "$GCC" = yes; then
96799584 allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
9680 archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
9585 archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
96819586 else
96829587 allow_undefined_flag=' -expect_unresolved \*'
9683 archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
9588 archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
96849589 fi
96859590 archive_cmds_need_lc='no'
96869591 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
96909595 osf4* | osf5*) # as osf3* with the addition of -msym flag
96919596 if test "$GCC" = yes; then
96929597 allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
9693 archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
9598 archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
96949599 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
96959600 else
96969601 allow_undefined_flag=' -expect_unresolved \*'
9697 archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
9602 archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
96989603 archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
9699 $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
9604 $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
97009605
97019606 # Both c and cxx compiler support -rpath directly
97029607 hardcode_libdir_flag_spec='-rpath $libdir'
98999804 # to ld, don't add -lc before -lgcc.
99009805 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
99019806 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
9902 if ${lt_cv_archive_cmds_need_lc+:} false; then :
9903 $as_echo_n "(cached) " >&6
9904 else
9905 $RM conftest*
9906 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
9907
9908 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
9807 $RM conftest*
9808 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
9809
9810 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
99099811 (eval $ac_compile) 2>&5
99109812 ac_status=$?
99119813 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
99129814 test $ac_status = 0; } 2>conftest.err; then
9913 soname=conftest
9914 lib=conftest
9915 libobjs=conftest.$ac_objext
9916 deplibs=
9917 wl=$lt_prog_compiler_wl
9918 pic_flag=$lt_prog_compiler_pic
9919 compiler_flags=-v
9920 linker_flags=-v
9921 verstring=
9922 output_objdir=.
9923 libname=conftest
9924 lt_save_allow_undefined_flag=$allow_undefined_flag
9925 allow_undefined_flag=
9926 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
9815 soname=conftest
9816 lib=conftest
9817 libobjs=conftest.$ac_objext
9818 deplibs=
9819 wl=$lt_prog_compiler_wl
9820 pic_flag=$lt_prog_compiler_pic
9821 compiler_flags=-v
9822 linker_flags=-v
9823 verstring=
9824 output_objdir=.
9825 libname=conftest
9826 lt_save_allow_undefined_flag=$allow_undefined_flag
9827 allow_undefined_flag=
9828 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
99279829 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
99289830 ac_status=$?
99299831 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
99309832 test $ac_status = 0; }
9931 then
9932 lt_cv_archive_cmds_need_lc=no
9933 else
9934 lt_cv_archive_cmds_need_lc=yes
9935 fi
9936 allow_undefined_flag=$lt_save_allow_undefined_flag
9937 else
9938 cat conftest.err 1>&5
9939 fi
9940 $RM conftest*
9941
9942 fi
9943 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
9944 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
9945 archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
9833 then
9834 archive_cmds_need_lc=no
9835 else
9836 archive_cmds_need_lc=yes
9837 fi
9838 allow_undefined_flag=$lt_save_allow_undefined_flag
9839 else
9840 cat conftest.err 1>&5
9841 fi
9842 $RM conftest*
9843 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5
9844 $as_echo "$archive_cmds_need_lc" >&6; }
99469845 ;;
99479846 esac
99489847 fi
1011310012 darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
1011410013 *) lt_awk_arg="/^libraries:/" ;;
1011510014 esac
10116 case $host_os in
10117 mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
10118 *) lt_sed_strip_eq="s,=/,/,g" ;;
10119 esac
10120 lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
10121 case $lt_search_path_spec in
10122 *\;*)
10015 lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
10016 if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
1012310017 # if the path contains ";" then we assume it to be the separator
1012410018 # otherwise default to the standard path separator (i.e. ":") - it is
1012510019 # assumed that no part of a normal pathname contains ";" but that should
1012610020 # okay in the real world where ";" in dirpaths is itself problematic.
10127 lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
10128 ;;
10129 *)
10130 lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
10131 ;;
10132 esac
10021 lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
10022 else
10023 lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
10024 fi
1013310025 # Ok, now we have the path, separated by spaces, we can step through it
1013410026 # and add multilib dir if necessary.
1013510027 lt_tmp_lt_search_path_spec=
1014210034 lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
1014310035 fi
1014410036 done
10145 lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
10037 lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
1014610038 BEGIN {RS=" "; FS="/|\n";} {
1014710039 lt_foo="";
1014810040 lt_count=0;
1016210054 if (lt_foo != "") { lt_freq[lt_foo]++; }
1016310055 if (lt_freq[lt_foo] == 1) { print lt_foo; }
1016410056 }'`
10165 # AWK program above erroneously prepends '/' to C:/dos/paths
10166 # for these hosts.
10167 case $host_os in
10168 mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
10169 $SED 's,/\([A-Za-z]:\),\1,g'` ;;
10170 esac
10171 sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
10057 sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
1017210058 else
1017310059 sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
1017410060 fi
1025610142 m68k)
1025710143 library_names_spec='$libname.ixlibrary $libname.a'
1025810144 # Create ${libname}_ixlibrary.a entries in /sys/libs.
10259 finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
10145 finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
1026010146 ;;
1026110147 esac
1026210148 ;;
1030910195 cygwin*)
1031010196 # Cygwin DLLs use 'cyg' prefix rather than 'lib'
1031110197 soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
10312
10313 sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
10198 sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
1031410199 ;;
1031510200 mingw* | cegcc*)
1031610201 # MinGW DLLs use traditional 'lib' prefix
1031710202 soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
10203 sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
10204 if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
10205 # It is most probably a Windows format PATH printed by
10206 # mingw gcc, but we are running on Cygwin. Gcc prints its search
10207 # path with ; separators, and with drive letters. We can handle the
10208 # drive letters (cygwin fileutils understands them), so leave them,
10209 # especially as we might pass files found there to a mingw objdump,
10210 # which wouldn't understand a cygwinified path. Ahh.
10211 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
10212 else
10213 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
10214 fi
1031810215 ;;
1031910216 pw32*)
1032010217 # pw32 DLLs use 'pw' prefix rather than 'lib'
1037110268 *) objformat=elf ;;
1037210269 esac
1037310270 fi
10374 # Handle Gentoo/FreeBSD as it was Linux
10375 case $host_vendor in
10376 gentoo)
10377 version_type=linux ;;
10378 *)
10379 version_type=freebsd-$objformat ;;
10380 esac
10381
10271 version_type=freebsd-$objformat
1038210272 case $version_type in
1038310273 freebsd-elf*)
1038410274 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
1038810278 freebsd-*)
1038910279 library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
1039010280 need_version=yes
10391 ;;
10392 linux)
10393 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
10394 soname_spec='${libname}${release}${shared_ext}$major'
10395 need_lib_prefix=no
10396 need_version=no
1039710281 ;;
1039810282 esac
1039910283 shlibpath_var=LD_LIBRARY_PATH
1042410308 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
1042510309 soname_spec='${libname}${release}${shared_ext}$major'
1042610310 shlibpath_var=LD_LIBRARY_PATH
10427 hardcode_into_libs=yes
10428 ;;
10429
10430 haiku*)
10431 version_type=linux
10432 need_lib_prefix=no
10433 need_version=no
10434 dynamic_linker="$host_os runtime_loader"
10435 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
10436 soname_spec='${libname}${release}${shared_ext}$major'
10437 shlibpath_var=LIBRARY_PATH
10438 shlibpath_overrides_runpath=yes
10439 sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
1044010311 hardcode_into_libs=yes
1044110312 ;;
1044210313
1048210353 soname_spec='${libname}${release}${shared_ext}$major'
1048310354 ;;
1048410355 esac
10485 # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
10356 # HP-UX runs *really* slowly unless shared libraries are mode 555.
1048610357 postinstall_cmds='chmod 555 $lib'
10487 # or fails outright, so override atomically:
10488 install_override_mode=555
1048910358 ;;
1049010359
1049110360 interix[3-9]*)
1055210421 finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
1055310422 shlibpath_var=LD_LIBRARY_PATH
1055410423 shlibpath_overrides_runpath=no
10555
1055610424 # Some binutils ld are patched to set DT_RUNPATH
10557 if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
10558 $as_echo_n "(cached) " >&6
10559 else
10560 lt_cv_shlibpath_overrides_runpath=no
10561 save_LDFLAGS=$LDFLAGS
10562 save_libdir=$libdir
10563 eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
10564 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
10565 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
10425 save_LDFLAGS=$LDFLAGS
10426 save_libdir=$libdir
10427 eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
10428 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
10429 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
1056610430 /* end confdefs.h. */
1056710431
1056810432 int
1057510439 _ACEOF
1057610440 if ac_fn_c_try_link "$LINENO"; then :
1057710441 if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
10578 lt_cv_shlibpath_overrides_runpath=yes
10442 shlibpath_overrides_runpath=yes
1057910443 fi
1058010444 fi
1058110445 rm -f core conftest.err conftest.$ac_objext \
1058210446 conftest$ac_exeext conftest.$ac_ext
10583 LDFLAGS=$save_LDFLAGS
10584 libdir=$save_libdir
10585
10586 fi
10587
10588 shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
10447 LDFLAGS=$save_LDFLAGS
10448 libdir=$save_libdir
1058910449
1059010450 # This implies no fast_install, which is unacceptable.
1059110451 # Some rework will be needed to allow for fast_install
1059410454
1059510455 # Append ld.so.conf contents to the search path
1059610456 if test -f /etc/ld.so.conf; then
10597 lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
10457 lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
1059810458 sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
1059910459 fi
1060010460
1060510465 # people can always --disable-shared, the test was removed, and we
1060610466 # assume the GNU/Linux dynamic linker is in use.
1060710467 dynamic_linker='GNU/Linux ld.so'
10468 ;;
10469
10470 netbsdelf*-gnu)
10471 version_type=linux
10472 need_lib_prefix=no
10473 need_version=no
10474 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
10475 soname_spec='${libname}${release}${shared_ext}$major'
10476 shlibpath_var=LD_LIBRARY_PATH
10477 shlibpath_overrides_runpath=no
10478 hardcode_into_libs=yes
10479 dynamic_linker='NetBSD ld.elf_so'
1060810480 ;;
1060910481
1061010482 netbsd*)
1089710769
1089810770
1089910771
10900
10901
10902
10903
10904
1090510772 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
1090610773 $as_echo_n "checking how to hardcode library paths into programs... " >&6; }
1090710774 hardcode_action=
1097410841 # if libdl is installed we need to link against it
1097510842 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
1097610843 $as_echo_n "checking for dlopen in -ldl... " >&6; }
10977 if ${ac_cv_lib_dl_dlopen+:} false; then :
10844 if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
1097810845 $as_echo_n "(cached) " >&6
1097910846 else
1098010847 ac_check_lib_save_LIBS=$LIBS
1100810875 fi
1100910876 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
1101010877 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
11011 if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
10878 if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
1101210879 lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
1101310880 else
1101410881
1102210889
1102310890 *)
1102410891 ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
11025 if test "x$ac_cv_func_shl_load" = xyes; then :
10892 if test "x$ac_cv_func_shl_load" = x""yes; then :
1102610893 lt_cv_dlopen="shl_load"
1102710894 else
1102810895 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
1102910896 $as_echo_n "checking for shl_load in -ldld... " >&6; }
11030 if ${ac_cv_lib_dld_shl_load+:} false; then :
10897 if test "${ac_cv_lib_dld_shl_load+set}" = set; then :
1103110898 $as_echo_n "(cached) " >&6
1103210899 else
1103310900 ac_check_lib_save_LIBS=$LIBS
1106110928 fi
1106210929 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
1106310930 $as_echo "$ac_cv_lib_dld_shl_load" >&6; }
11064 if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
10931 if test "x$ac_cv_lib_dld_shl_load" = x""yes; then :
1106510932 lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
1106610933 else
1106710934 ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
11068 if test "x$ac_cv_func_dlopen" = xyes; then :
10935 if test "x$ac_cv_func_dlopen" = x""yes; then :
1106910936 lt_cv_dlopen="dlopen"
1107010937 else
1107110938 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
1107210939 $as_echo_n "checking for dlopen in -ldl... " >&6; }
11073 if ${ac_cv_lib_dl_dlopen+:} false; then :
10940 if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
1107410941 $as_echo_n "(cached) " >&6
1107510942 else
1107610943 ac_check_lib_save_LIBS=$LIBS
1110410971 fi
1110510972 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
1110610973 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
11107 if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
10974 if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
1110810975 lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
1110910976 else
1111010977 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
1111110978 $as_echo_n "checking for dlopen in -lsvld... " >&6; }
11112 if ${ac_cv_lib_svld_dlopen+:} false; then :
10979 if test "${ac_cv_lib_svld_dlopen+set}" = set; then :
1111310980 $as_echo_n "(cached) " >&6
1111410981 else
1111510982 ac_check_lib_save_LIBS=$LIBS
1114311010 fi
1114411011 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
1114511012 $as_echo "$ac_cv_lib_svld_dlopen" >&6; }
11146 if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
11013 if test "x$ac_cv_lib_svld_dlopen" = x""yes; then :
1114711014 lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
1114811015 else
1114911016 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
1115011017 $as_echo_n "checking for dld_link in -ldld... " >&6; }
11151 if ${ac_cv_lib_dld_dld_link+:} false; then :
11018 if test "${ac_cv_lib_dld_dld_link+set}" = set; then :
1115211019 $as_echo_n "(cached) " >&6
1115311020 else
1115411021 ac_check_lib_save_LIBS=$LIBS
1118211049 fi
1118311050 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
1118411051 $as_echo "$ac_cv_lib_dld_dld_link" >&6; }
11185 if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
11052 if test "x$ac_cv_lib_dld_dld_link" = x""yes; then :
1118611053 lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
1118711054 fi
1118811055
1122311090
1122411091 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
1122511092 $as_echo_n "checking whether a program can dlopen itself... " >&6; }
11226 if ${lt_cv_dlopen_self+:} false; then :
11093 if test "${lt_cv_dlopen_self+set}" = set; then :
1122711094 $as_echo_n "(cached) " >&6
1122811095 else
1122911096 if test "$cross_compiling" = yes; then :
1123211099 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
1123311100 lt_status=$lt_dlunknown
1123411101 cat > conftest.$ac_ext <<_LT_EOF
11235 #line $LINENO "configure"
11102 #line 11103 "configure"
1123611103 #include "confdefs.h"
1123711104
1123811105 #if HAVE_DLFCN_H
1127311140 # endif
1127411141 #endif
1127511142
11276 /* When -fvisbility=hidden is used, assume the code has been annotated
11277 correspondingly for the symbols needed. */
11278 #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
11279 void fnord () __attribute__((visibility("default")));
11280 #endif
11281
11282 void fnord () { int i=42; }
11143 void fnord() { int i=42;}
1128311144 int main ()
1128411145 {
1128511146 void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
1128811149 if (self)
1128911150 {
1129011151 if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
11291 else
11292 {
11293 if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
11294 else puts (dlerror ());
11295 }
11152 else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
1129611153 /* dlclose (self); */
1129711154 }
1129811155 else
1132911186 wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
1133011187 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
1133111188 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
11332 if ${lt_cv_dlopen_self_static+:} false; then :
11189 if test "${lt_cv_dlopen_self_static+set}" = set; then :
1133311190 $as_echo_n "(cached) " >&6
1133411191 else
1133511192 if test "$cross_compiling" = yes; then :
1133811195 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
1133911196 lt_status=$lt_dlunknown
1134011197 cat > conftest.$ac_ext <<_LT_EOF
11341 #line $LINENO "configure"
11198 #line 11199 "configure"
1134211199 #include "confdefs.h"
1134311200
1134411201 #if HAVE_DLFCN_H
1137911236 # endif
1138011237 #endif
1138111238
11382 /* When -fvisbility=hidden is used, assume the code has been annotated
11383 correspondingly for the symbols needed. */
11384 #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
11385 void fnord () __attribute__((visibility("default")));
11386 #endif
11387
11388 void fnord () { int i=42; }
11239 void fnord() { int i=42;}
1138911240 int main ()
1139011241 {
1139111242 void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
1139411245 if (self)
1139511246 {
1139611247 if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
11397 else
11398 {
11399 if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
11400 else puts (dlerror ());
11401 }
11248 else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
1140211249 /* dlclose (self); */
1140311250 }
1140411251 else
1157811425
1157911426
1158011427
11581
11582
11583
11584
1158511428 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
1158611429 if test -n "$ac_tool_prefix"; then
1158711430 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
1158811431 set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
1158911432 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
1159011433 $as_echo_n "checking for $ac_word... " >&6; }
11591 if ${ac_cv_path_PKG_CONFIG+:} false; then :
11434 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
1159211435 $as_echo_n "(cached) " >&6
1159311436 else
1159411437 case $PKG_CONFIG in
1163111474 set dummy pkg-config; ac_word=$2
1163211475 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
1163311476 $as_echo_n "checking for $ac_word... " >&6; }
11634 if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
11477 if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
1163511478 $as_echo_n "(cached) " >&6
1163611479 else
1163711480 case $ac_pt_PKG_CONFIG in
1169411537 $as_echo "no" >&6; }
1169511538 PKG_CONFIG=""
1169611539 fi
11540
1169711541 fi
1169811542
1169911543 pkg_failed=no
1173611580
1173711581
1173811582 if test $pkg_failed = yes; then
11739 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11740 $as_echo "no" >&6; }
1174111583
1174211584 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
1174311585 _pkg_short_errors_supported=yes
1176111603
1176211604 Alternatively, you may set the environment variables LIBXML_CFLAGS
1176311605 and LIBXML_LIBS to avoid the need to call pkg-config.
11764 See the pkg-config man page for more details." "$LINENO" 5
11606 See the pkg-config man page for more details.
11607 " "$LINENO" 5
1176511608 elif test $pkg_failed = untried; then
11766 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11767 $as_echo "no" >&6; }
1176811609 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
1176911610 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
1177011611 as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
1177611617 See the pkg-config man page for more details.
1177711618
1177811619 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
11779 See \`config.log' for more details" "$LINENO" 5; }
11620 See \`config.log' for more details" "$LINENO" 5 ; }
1178011621 else
1178111622 LIBXML_CFLAGS=$pkg_cv_LIBXML_CFLAGS
1178211623 LIBXML_LIBS=$pkg_cv_LIBXML_LIBS
1178311624 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
1178411625 $as_echo "yes" >&6; }
11785
11626 :
1178611627 fi
1178711628
1178811629 GST_MAJORMINOR=0.10
1178911630 GST_REQ=0.10.29.2
11790 GSTVID_REQ=0.10.25
11791 GSTPBU_REQ=0.10.25
11631 GSTPBU_REQ=0.10.32
1179211632
1179311633
1179411634 pkg_failed=no
1183111671
1183211672
1183311673 if test $pkg_failed = yes; then
11834 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11835 $as_echo "no" >&6; }
1183611674
1183711675 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
1183811676 _pkg_short_errors_supported=yes
1185611694
1185711695 Alternatively, you may set the environment variables GST_CFLAGS
1185811696 and GST_LIBS to avoid the need to call pkg-config.
11859 See the pkg-config man page for more details." "$LINENO" 5
11697 See the pkg-config man page for more details.
11698 " "$LINENO" 5
1186011699 elif test $pkg_failed = untried; then
11861 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11862 $as_echo "no" >&6; }
1186311700 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
1186411701 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
1186511702 as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
1187111708 See the pkg-config man page for more details.
1187211709
1187311710 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
11874 See \`config.log' for more details" "$LINENO" 5; }
11711 See \`config.log' for more details" "$LINENO" 5 ; }
1187511712 else
1187611713 GST_CFLAGS=$pkg_cv_GST_CFLAGS
1187711714 GST_LIBS=$pkg_cv_GST_LIBS
1187811715 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
1187911716 $as_echo "yes" >&6; }
11880
11717 :
1188111718 fi
1188211719
1188311720 pkg_failed=no
11884 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GST_BASE" >&5
11885 $as_echo_n "checking for GST_BASE... " >&6; }
11886
11887 if test -n "$GST_BASE_CFLAGS"; then
11888 pkg_cv_GST_BASE_CFLAGS="$GST_BASE_CFLAGS"
11721 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GST_PBU" >&5
11722 $as_echo_n "checking for GST_PBU... " >&6; }
11723
11724 if test -n "$GST_PBU_CFLAGS"; then
11725 pkg_cv_GST_PBU_CFLAGS="$GST_PBU_CFLAGS"
1188911726 elif test -n "$PKG_CONFIG"; then
1189011727 if test -n "$PKG_CONFIG" && \
11891 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gstreamer-base-\$GST_MAJORMINOR >= \$GST_REQ\""; } >&5
11892 ($PKG_CONFIG --exists --print-errors "gstreamer-base-$GST_MAJORMINOR >= $GST_REQ") 2>&5
11728 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gstreamer-pbutils-\$GST_MAJORMINOR >= \$GSTPBU_REQ\""; } >&5
11729 ($PKG_CONFIG --exists --print-errors "gstreamer-pbutils-$GST_MAJORMINOR >= $GSTPBU_REQ") 2>&5
1189311730 ac_status=$?
1189411731 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1189511732 test $ac_status = 0; }; then
11896 pkg_cv_GST_BASE_CFLAGS=`$PKG_CONFIG --cflags "gstreamer-base-$GST_MAJORMINOR >= $GST_REQ" 2>/dev/null`
11733 pkg_cv_GST_PBU_CFLAGS=`$PKG_CONFIG --cflags "gstreamer-pbutils-$GST_MAJORMINOR >= $GSTPBU_REQ" 2>/dev/null`
1189711734 else
1189811735 pkg_failed=yes
1189911736 fi
1190011737 else
1190111738 pkg_failed=untried
1190211739 fi
11903 if test -n "$GST_BASE_LIBS"; then
11904 pkg_cv_GST_BASE_LIBS="$GST_BASE_LIBS"
11740 if test -n "$GST_PBU_LIBS"; then
11741 pkg_cv_GST_PBU_LIBS="$GST_PBU_LIBS"
1190511742 elif test -n "$PKG_CONFIG"; then
1190611743 if test -n "$PKG_CONFIG" && \
11907 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gstreamer-base-\$GST_MAJORMINOR >= \$GST_REQ\""; } >&5
11908 ($PKG_CONFIG --exists --print-errors "gstreamer-base-$GST_MAJORMINOR >= $GST_REQ") 2>&5
11744 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gstreamer-pbutils-\$GST_MAJORMINOR >= \$GSTPBU_REQ\""; } >&5
11745 ($PKG_CONFIG --exists --print-errors "gstreamer-pbutils-$GST_MAJORMINOR >= $GSTPBU_REQ") 2>&5
1190911746 ac_status=$?
1191011747 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1191111748 test $ac_status = 0; }; then
11912 pkg_cv_GST_BASE_LIBS=`$PKG_CONFIG --libs "gstreamer-base-$GST_MAJORMINOR >= $GST_REQ" 2>/dev/null`
11749 pkg_cv_GST_PBU_LIBS=`$PKG_CONFIG --libs "gstreamer-pbutils-$GST_MAJORMINOR >= $GSTPBU_REQ" 2>/dev/null`
1191311750 else
1191411751 pkg_failed=yes
1191511752 fi
1192011757
1192111758
1192211759 if test $pkg_failed = yes; then
11923 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11924 $as_echo "no" >&6; }
1192511760
1192611761 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
1192711762 _pkg_short_errors_supported=yes
1192911764 _pkg_short_errors_supported=no
1193011765 fi
1193111766 if test $_pkg_short_errors_supported = yes; then
11932 GST_BASE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gstreamer-base-$GST_MAJORMINOR >= $GST_REQ" 2>&1`
11767 GST_PBU_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gstreamer-pbutils-$GST_MAJORMINOR >= $GSTPBU_REQ" 2>&1`
1193311768 else
11934 GST_BASE_PKG_ERRORS=`$PKG_CONFIG --print-errors "gstreamer-base-$GST_MAJORMINOR >= $GST_REQ" 2>&1`
11769 GST_PBU_PKG_ERRORS=`$PKG_CONFIG --print-errors "gstreamer-pbutils-$GST_MAJORMINOR >= $GSTPBU_REQ" 2>&1`
1193511770 fi
1193611771 # Put the nasty error message in config.log where it belongs
11937 echo "$GST_BASE_PKG_ERRORS" >&5
11938
11939 as_fn_error $? "Package requirements (gstreamer-base-$GST_MAJORMINOR >= $GST_REQ) were not met:
11940
11941 $GST_BASE_PKG_ERRORS
11772 echo "$GST_PBU_PKG_ERRORS" >&5
11773
11774 as_fn_error $? "Package requirements (gstreamer-pbutils-$GST_MAJORMINOR >= $GSTPBU_REQ) were not met:
11775
11776 $GST_PBU_PKG_ERRORS
1194211777
1194311778 Consider adjusting the PKG_CONFIG_PATH environment variable if you
1194411779 installed software in a non-standard prefix.
1194511780
11946 Alternatively, you may set the environment variables GST_BASE_CFLAGS
11947 and GST_BASE_LIBS to avoid the need to call pkg-config.
11948 See the pkg-config man page for more details." "$LINENO" 5
11781 Alternatively, you may set the environment variables GST_PBU_CFLAGS
11782 and GST_PBU_LIBS to avoid the need to call pkg-config.
11783 See the pkg-config man page for more details.
11784 " "$LINENO" 5
1194911785 elif test $pkg_failed = untried; then
11950 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11951 $as_echo "no" >&6; }
1195211786 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
1195311787 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
1195411788 as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
1195511789 is in your PATH or set the PKG_CONFIG environment variable to the full
1195611790 path to pkg-config.
1195711791
11958 Alternatively, you may set the environment variables GST_BASE_CFLAGS
11959 and GST_BASE_LIBS to avoid the need to call pkg-config.
11792 Alternatively, you may set the environment variables GST_PBU_CFLAGS
11793 and GST_PBU_LIBS to avoid the need to call pkg-config.
1196011794 See the pkg-config man page for more details.
1196111795
1196211796 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
11963 See \`config.log' for more details" "$LINENO" 5; }
11964 else
11965 GST_BASE_CFLAGS=$pkg_cv_GST_BASE_CFLAGS
11966 GST_BASE_LIBS=$pkg_cv_GST_BASE_LIBS
11797 See \`config.log' for more details" "$LINENO" 5 ; }
11798 else
11799 GST_PBU_CFLAGS=$pkg_cv_GST_PBU_CFLAGS
11800 GST_PBU_LIBS=$pkg_cv_GST_PBU_LIBS
1196711801 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
1196811802 $as_echo "yes" >&6; }
11969
11970 fi
11971
11972 pkg_failed=no
11973 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GST_VIDEO" >&5
11974 $as_echo_n "checking for GST_VIDEO... " >&6; }
11975
11976 if test -n "$GST_VIDEO_CFLAGS"; then
11977 pkg_cv_GST_VIDEO_CFLAGS="$GST_VIDEO_CFLAGS"
11978 elif test -n "$PKG_CONFIG"; then
11979 if test -n "$PKG_CONFIG" && \
11980 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gstreamer-video-\$GST_MAJORMINOR >= \$GSTVID_REQ\""; } >&5
11981 ($PKG_CONFIG --exists --print-errors "gstreamer-video-$GST_MAJORMINOR >= $GSTVID_REQ") 2>&5
11982 ac_status=$?
11983 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
11984 test $ac_status = 0; }; then
11985 pkg_cv_GST_VIDEO_CFLAGS=`$PKG_CONFIG --cflags "gstreamer-video-$GST_MAJORMINOR >= $GSTVID_REQ" 2>/dev/null`
11986 else
11987 pkg_failed=yes
11988 fi
11989 else
11990 pkg_failed=untried
11991 fi
11992 if test -n "$GST_VIDEO_LIBS"; then
11993 pkg_cv_GST_VIDEO_LIBS="$GST_VIDEO_LIBS"
11994 elif test -n "$PKG_CONFIG"; then
11995 if test -n "$PKG_CONFIG" && \
11996 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gstreamer-video-\$GST_MAJORMINOR >= \$GSTVID_REQ\""; } >&5
11997 ($PKG_CONFIG --exists --print-errors "gstreamer-video-$GST_MAJORMINOR >= $GSTVID_REQ") 2>&5
11998 ac_status=$?
11999 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
12000 test $ac_status = 0; }; then
12001 pkg_cv_GST_VIDEO_LIBS=`$PKG_CONFIG --libs "gstreamer-video-$GST_MAJORMINOR >= $GSTVID_REQ" 2>/dev/null`
12002 else
12003 pkg_failed=yes
12004 fi
12005 else
12006 pkg_failed=untried
12007 fi
12008
12009
12010
12011 if test $pkg_failed = yes; then
12012 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12013 $as_echo "no" >&6; }
12014
12015 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
12016 _pkg_short_errors_supported=yes
12017 else
12018 _pkg_short_errors_supported=no
12019 fi
12020 if test $_pkg_short_errors_supported = yes; then
12021 GST_VIDEO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gstreamer-video-$GST_MAJORMINOR >= $GSTVID_REQ" 2>&1`
12022 else
12023 GST_VIDEO_PKG_ERRORS=`$PKG_CONFIG --print-errors "gstreamer-video-$GST_MAJORMINOR >= $GSTVID_REQ" 2>&1`
12024 fi
12025 # Put the nasty error message in config.log where it belongs
12026 echo "$GST_VIDEO_PKG_ERRORS" >&5
12027
12028 as_fn_error $? "Package requirements (gstreamer-video-$GST_MAJORMINOR >= $GSTVID_REQ) were not met:
12029
12030 $GST_VIDEO_PKG_ERRORS
12031
12032 Consider adjusting the PKG_CONFIG_PATH environment variable if you
12033 installed software in a non-standard prefix.
12034
12035 Alternatively, you may set the environment variables GST_VIDEO_CFLAGS
12036 and GST_VIDEO_LIBS to avoid the need to call pkg-config.
12037 See the pkg-config man page for more details." "$LINENO" 5
12038 elif test $pkg_failed = untried; then
12039 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12040 $as_echo "no" >&6; }
12041 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
12042 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
12043 as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
12044 is in your PATH or set the PKG_CONFIG environment variable to the full
12045 path to pkg-config.
12046
12047 Alternatively, you may set the environment variables GST_VIDEO_CFLAGS
12048 and GST_VIDEO_LIBS to avoid the need to call pkg-config.
12049 See the pkg-config man page for more details.
12050
12051 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
12052 See \`config.log' for more details" "$LINENO" 5; }
12053 else
12054 GST_VIDEO_CFLAGS=$pkg_cv_GST_VIDEO_CFLAGS
12055 GST_VIDEO_LIBS=$pkg_cv_GST_VIDEO_LIBS
12056 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
12057 $as_echo "yes" >&6; }
12058
11803 :
1205911804 fi
1206011805
1206111806
1208411829 set dummy gtkdoc-check; ac_word=$2
1208511830 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
1208611831 $as_echo_n "checking for $ac_word... " >&6; }
12087 if ${ac_cv_path_GTKDOC_CHECK+:} false; then :
11832 if test "${ac_cv_path_GTKDOC_CHECK+set}" = set; then :
1208811833 $as_echo_n "(cached) " >&6
1208911834 else
1209011835 case $GTKDOC_CHECK in
1212611871 set dummy $ac_prog; ac_word=$2
1212711872 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
1212811873 $as_echo_n "checking for $ac_word... " >&6; }
12129 if ${ac_cv_path_GTKDOC_REBASE+:} false; then :
11874 if test "${ac_cv_path_GTKDOC_REBASE+set}" = set; then :
1213011875 $as_echo_n "(cached) " >&6
1213111876 else
1213211877 case $GTKDOC_REBASE in
1217011915 set dummy gtkdoc-mkpdf; ac_word=$2
1217111916 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
1217211917 $as_echo_n "checking for $ac_word... " >&6; }
12173 if ${ac_cv_path_GTKDOC_MKPDF+:} false; then :
11918 if test "${ac_cv_path_GTKDOC_MKPDF+set}" = set; then :
1217411919 $as_echo_n "(cached) " >&6
1217511920 else
1217611921 case $GTKDOC_MKPDF in
1230612051
1230712052
1230812053
12309 ac_config_files="$ac_config_files Makefile gst-convenience/Makefile gst-convenience/gst-libs/Makefile gst-convenience/gst-libs/gst/Makefile gst-convenience/gst-libs/gst/discoverer/Makefile gst-convenience/gst-libs/gst/profile/Makefile libgupnp-dlna/Makefile tools/Makefile tests/Makefile tests/test-discoverer.sh doc/Makefile doc/version.xml data/Makefile gupnp-dlna-1.0.pc gupnp-dlna-1.0-uninstalled.pc"
12054 ac_config_files="$ac_config_files Makefile libgupnp-dlna/Makefile tools/Makefile tests/Makefile tests/test-discoverer.sh doc/Makefile doc/version.xml data/Makefile gupnp-dlna-1.0.pc gupnp-dlna-1.0-uninstalled.pc"
1231012055
1231112056 cat >confcache <<\_ACEOF
1231212057 # This file is a shell script that caches the results of configure
1237212117 :end' >>confcache
1237312118 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
1237412119 if test -w "$cache_file"; then
12375 if test "x$cache_file" != "x/dev/null"; then
12120 test "x$cache_file" != "x/dev/null" &&
1237612121 { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
1237712122 $as_echo "$as_me: updating cache $cache_file" >&6;}
12378 if test ! -f "$cache_file" || test -h "$cache_file"; then
12379 cat confcache >"$cache_file"
12380 else
12381 case $cache_file in #(
12382 */* | ?:*)
12383 mv -f confcache "$cache_file"$$ &&
12384 mv -f "$cache_file"$$ "$cache_file" ;; #(
12385 *)
12386 mv -f confcache "$cache_file" ;;
12387 esac
12388 fi
12389 fi
12123 cat confcache >$cache_file
1239012124 else
1239112125 { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
1239212126 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
1245812192 Usually this means the macro was only invoked conditionally." "$LINENO" 5
1245912193 fi
1246012194
12461 : "${CONFIG_STATUS=./config.status}"
12195 : ${CONFIG_STATUS=./config.status}
1246212196 ac_write_fail=0
1246312197 ac_clean_files_save=$ac_clean_files
1246412198 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
1255912293 IFS=" "" $as_nl"
1256012294
1256112295 # Find who we are. Look in the path if we contain no directory separator.
12562 as_myself=
1256312296 case $0 in #((
1256412297 *[\\/]* ) as_myself=$0 ;;
1256512298 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1286612599 # report actual input values of CONFIG_FILES etc. instead of their
1286712600 # values after options handling.
1286812601 ac_log="
12869 This file was extended by gupnp-dlna $as_me 0.4.2, which was
12870 generated by GNU Autoconf 2.68. Invocation command line was
12602 This file was extended by gupnp-dlna $as_me 0.6.0, which was
12603 generated by GNU Autoconf 2.67. Invocation command line was
1287112604
1287212605 CONFIG_FILES = $CONFIG_FILES
1287312606 CONFIG_HEADERS = $CONFIG_HEADERS
1293212665 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
1293312666 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
1293412667 ac_cs_version="\\
12935 gupnp-dlna config.status 0.4.2
12936 configured by $0, generated by GNU Autoconf 2.68,
12668 gupnp-dlna config.status 0.6.0
12669 configured by $0, generated by GNU Autoconf 2.67,
1293712670 with options \\"\$ac_cs_config\\"
1293812671
1293912672 Copyright (C) 2010 Free Software Foundation, Inc.
1306112794 sed_quote_subst='$sed_quote_subst'
1306212795 double_quote_subst='$double_quote_subst'
1306312796 delay_variable_subst='$delay_variable_subst'
13064 AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`'
13065 DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
13066 OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
13067 macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
13068 macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
13069 enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
13070 enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
13071 pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
13072 enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
13073 SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
13074 ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
13075 host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
13076 host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
13077 host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
13078 build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
13079 build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
13080 build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
13081 SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
13082 Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
13083 GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
13084 EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
13085 FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
13086 LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
13087 NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
13088 LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
13089 max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
13090 ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
13091 exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
13092 lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
13093 lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
13094 lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
13095 reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
13096 reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
13097 deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
13098 file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
13099 AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
13100 AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
13101 STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
13102 RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
13103 old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
13104 old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
13105 old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
13106 lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
13107 CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
13108 CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
13109 compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
13110 GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
13111 lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
13112 lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
13113 lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
13114 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
13115 objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
13116 MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
13117 lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
13118 lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
13119 lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
13120 lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
13121 lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
13122 need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
13123 DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
13124 NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
13125 LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
13126 OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
13127 OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
13128 libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
13129 shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
13130 extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
13131 archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
13132 enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
13133 export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
13134 whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
13135 compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
13136 old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
13137 old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
13138 archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
13139 archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
13140 module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
13141 module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
13142 with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
13143 allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
13144 no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
13145 hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
13146 hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`'
13147 hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
13148 hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
13149 hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
13150 hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
13151 hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
13152 hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
13153 inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
13154 link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
13155 fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`'
13156 always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
13157 export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
13158 exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
13159 include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
13160 prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
13161 file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
13162 variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
13163 need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
13164 need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
13165 version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
13166 runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
13167 shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
13168 shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
13169 libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
13170 library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
13171 soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
13172 install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
13173 postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
13174 postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
13175 finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
13176 finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
13177 hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
13178 sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
13179 sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
13180 hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
13181 enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
13182 enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
13183 enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
13184 old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
13185 striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
12797 AS='`$ECHO "X$AS" | $Xsed -e "$delay_single_quote_subst"`'
12798 DLLTOOL='`$ECHO "X$DLLTOOL" | $Xsed -e "$delay_single_quote_subst"`'
12799 OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`'
12800 macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`'
12801 macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`'
12802 enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`'
12803 enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`'
12804 pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`'
12805 enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`'
12806 host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`'
12807 host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`'
12808 host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`'
12809 build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`'
12810 build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`'
12811 build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`'
12812 SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`'
12813 Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`'
12814 GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`'
12815 EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`'
12816 FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`'
12817 LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`'
12818 NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`'
12819 LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`'
12820 max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`'
12821 ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`'
12822 exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`'
12823 lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`'
12824 lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`'
12825 lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`'
12826 reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`'
12827 reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`'
12828 deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`'
12829 file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`'
12830 AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`'
12831 AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`'
12832 STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`'
12833 RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`'
12834 old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
12835 old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
12836 old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
12837 CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`'
12838 CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`'
12839 compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`'
12840 GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`'
12841 lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`'
12842 lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`'
12843 lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`'
12844 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
12845 objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`'
12846 SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`'
12847 ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`'
12848 MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`'
12849 lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`'
12850 lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`'
12851 lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`'
12852 lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`'
12853 lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`'
12854 need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`'
12855 DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`'
12856 NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`'
12857 LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`'
12858 OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`'
12859 OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`'
12860 libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`'
12861 shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`'
12862 extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
12863 archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`'
12864 enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`'
12865 export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
12866 whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
12867 compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`'
12868 old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`'
12869 old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
12870 archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
12871 archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
12872 module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`'
12873 module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
12874 with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`'
12875 allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
12876 no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
12877 hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
12878 hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`'
12879 hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`'
12880 hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`'
12881 hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`'
12882 hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`'
12883 hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
12884 hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`'
12885 inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`'
12886 link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`'
12887 fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`'
12888 always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`'
12889 export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`'
12890 exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
12891 include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
12892 prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`'
12893 file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`'
12894 variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`'
12895 need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
12896 need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`'
12897 version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`'
12898 runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`'
12899 shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
12900 shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`'
12901 libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`'
12902 library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`'
12903 soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`'
12904 postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
12905 postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
12906 finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`'
12907 finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`'
12908 hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`'
12909 sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
12910 sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
12911 hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`'
12912 enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`'
12913 enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`'
12914 enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`'
12915 old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`'
12916 striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`'
1318612917
1318712918 LTCC='$LTCC'
1318812919 LTCFLAGS='$LTCFLAGS'
1318912920 compiler='$compiler_DEFAULT'
1319012921
13191 # A function that is used when there is no print builtin or printf.
13192 func_fallback_echo ()
13193 {
13194 eval 'cat <<_LTECHO_EOF
13195 \$1
13196 _LTECHO_EOF'
13197 }
13198
1319912922 # Quote evaled strings.
13200 for var in AS \
13201 DLLTOOL \
13202 OBJDUMP \
13203 SHELL \
13204 ECHO \
13205 SED \
12923 for var in SED \
1320612924 GREP \
1320712925 EGREP \
1320812926 FGREP \
1322512943 lt_cv_sys_global_symbol_to_cdecl \
1322612944 lt_cv_sys_global_symbol_to_c_name_address \
1322712945 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
12946 SHELL \
12947 ECHO \
1322812948 lt_prog_compiler_no_builtin_flag \
1322912949 lt_prog_compiler_wl \
1323012950 lt_prog_compiler_pic \
1325412974 libname_spec \
1325512975 library_names_spec \
1325612976 soname_spec \
13257 install_override_mode \
1325812977 finish_eval \
1325912978 old_striplib \
1326012979 striplib; do
13261 case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
12980 case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
1326212981 *[\\\\\\\`\\"\\\$]*)
13263 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
12982 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
1326412983 ;;
1326512984 *)
1326612985 eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
1328713006 finish_cmds \
1328813007 sys_lib_search_path_spec \
1328913008 sys_lib_dlsearch_path_spec; do
13290 case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
13009 case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
1329113010 *[\\\\\\\`\\"\\\$]*)
13292 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
13011 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
1329313012 ;;
1329413013 *)
1329513014 eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
1329613015 ;;
1329713016 esac
1329813017 done
13018
13019 # Fix-up fallback echo if it was mangled by the above quoting rules.
13020 case \$lt_ECHO in
13021 *'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\`
13022 ;;
13023 esac
1329913024
1330013025 ac_aux_dir='$ac_aux_dir'
1330113026 xsi_shell='$xsi_shell'
1332913054 "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
1333013055 "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
1333113056 "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
13332 "gst-convenience/Makefile") CONFIG_FILES="$CONFIG_FILES gst-convenience/Makefile" ;;
13333 "gst-convenience/gst-libs/Makefile") CONFIG_FILES="$CONFIG_FILES gst-convenience/gst-libs/Makefile" ;;
13334 "gst-convenience/gst-libs/gst/Makefile") CONFIG_FILES="$CONFIG_FILES gst-convenience/gst-libs/gst/Makefile" ;;
13335 "gst-convenience/gst-libs/gst/discoverer/Makefile") CONFIG_FILES="$CONFIG_FILES gst-convenience/gst-libs/gst/discoverer/Makefile" ;;
13336 "gst-convenience/gst-libs/gst/profile/Makefile") CONFIG_FILES="$CONFIG_FILES gst-convenience/gst-libs/gst/profile/Makefile" ;;
1333713057 "libgupnp-dlna/Makefile") CONFIG_FILES="$CONFIG_FILES libgupnp-dlna/Makefile" ;;
1333813058 "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
1333913059 "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
1334413064 "gupnp-dlna-1.0.pc") CONFIG_FILES="$CONFIG_FILES gupnp-dlna-1.0.pc" ;;
1334513065 "gupnp-dlna-1.0-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES gupnp-dlna-1.0-uninstalled.pc" ;;
1334613066
13347 *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
13067 *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
1334813068 esac
1334913069 done
1335013070
1336713087 # after its creation but before its name has been assigned to `$tmp'.
1336813088 $debug ||
1336913089 {
13370 tmp= ac_tmp=
13090 tmp=
1337113091 trap 'exit_status=$?
13372 : "${ac_tmp:=$tmp}"
13373 { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
13092 { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
1337413093 ' 0
1337513094 trap 'as_fn_exit 1' 1 2 13 15
1337613095 }
1337813097
1337913098 {
1338013099 tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
13381 test -d "$tmp"
13100 test -n "$tmp" && test -d "$tmp"
1338213101 } ||
1338313102 {
1338413103 tmp=./conf$$-$RANDOM
1338513104 (umask 077 && mkdir "$tmp")
1338613105 } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
13387 ac_tmp=$tmp
1338813106
1338913107 # Set up the scripts for CONFIG_FILES section.
1339013108 # No need to generate them if there are no CONFIG_FILES.
1340613124 ac_cs_awk_cr=$ac_cr
1340713125 fi
1340813126
13409 echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
13127 echo 'BEGIN {' >"$tmp/subs1.awk" &&
1341013128 _ACEOF
1341113129
1341213130
1343413152 rm -f conf$$subs.sh
1343513153
1343613154 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
13437 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
13155 cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
1343813156 _ACEOF
1343913157 sed -n '
1344013158 h
1348213200 rm -f conf$$subs.awk
1348313201 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
1348413202 _ACAWK
13485 cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
13203 cat >>"\$tmp/subs1.awk" <<_ACAWK &&
1348613204 for (key in S) S_is_set[key] = 1
1348713205 FS = ""
1348813206
1351413232 sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
1351513233 else
1351613234 cat
13517 fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
13235 fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
1351813236 || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
1351913237 _ACEOF
1352013238
1354813266 # No need to generate them if there are no CONFIG_HEADERS.
1354913267 # This happens for instance with `./config.status Makefile'.
1355013268 if test -n "$CONFIG_HEADERS"; then
13551 cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
13269 cat >"$tmp/defines.awk" <<\_ACAWK ||
1355213270 BEGIN {
1355313271 _ACEOF
1355413272
1356013278 # handling of long lines.
1356113279 ac_delim='%!_!# '
1356213280 for ac_last_try in false false :; do
13563 ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
13564 if test -z "$ac_tt"; then
13281 ac_t=`sed -n "/$ac_delim/p" confdefs.h`
13282 if test -z "$ac_t"; then
1356513283 break
1356613284 elif $ac_last_try; then
1356713285 as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
1366213380 esac
1366313381 case $ac_mode$ac_tag in
1366413382 :[FHL]*:*);;
13665 :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
13383 :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
1366613384 :[FH]-) ac_tag=-:-;;
1366713385 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
1366813386 esac
1368113399 for ac_f
1368213400 do
1368313401 case $ac_f in
13684 -) ac_f="$ac_tmp/stdin";;
13402 -) ac_f="$tmp/stdin";;
1368513403 *) # Look for the file first in the build tree, then in the source tree
1368613404 # (if the path is not absolute). The absolute path cannot be DOS-style,
1368713405 # because $ac_f cannot contain `:'.
1369013408 [\\/$]*) false;;
1369113409 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
1369213410 esac ||
13693 as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
13411 as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
1369413412 esac
1369513413 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
1369613414 as_fn_append ac_file_inputs " '$ac_f'"
1371613434 esac
1371713435
1371813436 case $ac_tag in
13719 *:-:* | *:-) cat >"$ac_tmp/stdin" \
13720 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
13437 *:-:* | *:-) cat >"$tmp/stdin" \
13438 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
1372113439 esac
1372213440 ;;
1372313441 esac
1385313571 s&@MKDIR_P@&$ac_MKDIR_P&;t t
1385413572 $ac_datarootdir_hack
1385513573 "
13856 eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
13857 >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
13574 eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
13575 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
1385813576
1385913577 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
13860 { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
13861 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
13862 "$ac_tmp/out"`; test -z "$ac_out"; } &&
13578 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
13579 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
1386313580 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
1386413581 which seems to be undefined. Please make sure it is defined" >&5
1386513582 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
1386613583 which seems to be undefined. Please make sure it is defined" >&2;}
1386713584
13868 rm -f "$ac_tmp/stdin"
13585 rm -f "$tmp/stdin"
1386913586 case $ac_file in
13870 -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
13871 *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
13587 -) cat "$tmp/out" && rm -f "$tmp/out";;
13588 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
1387213589 esac \
1387313590 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
1387413591 ;;
1387913596 if test x"$ac_file" != x-; then
1388013597 {
1388113598 $as_echo "/* $configure_input */" \
13882 && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
13883 } >"$ac_tmp/config.h" \
13599 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
13600 } >"$tmp/config.h" \
1388413601 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
13885 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
13602 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
1388613603 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
1388713604 $as_echo "$as_me: $ac_file is unchanged" >&6;}
1388813605 else
1388913606 rm -f "$ac_file"
13890 mv "$ac_tmp/config.h" "$ac_file" \
13607 mv "$tmp/config.h" "$ac_file" \
1389113608 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
1389213609 fi
1389313610 else
1389413611 $as_echo "/* $configure_input */" \
13895 && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
13612 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
1389613613 || as_fn_error $? "could not create -" "$LINENO" 5
1389713614 fi
1389813615 # Compute "$ac_file"'s index in $config_headers.
1405413771 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
1405513772 #
1405613773 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
14057 # 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
14058 # Inc.
13774 # 2006, 2007, 2008 Free Software Foundation, Inc.
1405913775 # Written by Gordon Matzigkeit, 1996
1406013776 #
1406113777 # This file is part of GNU Libtool.
1408813804 # ### BEGIN LIBTOOL CONFIG
1408913805
1409013806 # Assembler program.
14091 AS=$lt_AS
13807 AS=$AS
1409213808
1409313809 # DLL creation program.
14094 DLLTOOL=$lt_DLLTOOL
13810 DLLTOOL=$DLLTOOL
1409513811
1409613812 # Object dumper program.
14097 OBJDUMP=$lt_OBJDUMP
13813 OBJDUMP=$OBJDUMP
1409813814
1409913815 # Which release of libtool.m4 was used?
1410013816 macro_version=$macro_version
1411113827
1411213828 # Whether or not to optimize for fast installation.
1411313829 fast_install=$enable_fast_install
14114
14115 # Shell to use when invoking shell scripts.
14116 SHELL=$lt_SHELL
14117
14118 # An echo program that protects backslashes.
14119 ECHO=$lt_ECHO
1412013830
1412113831 # The host system.
1412213832 host_alias=$host_alias
1416713877 # turn newlines into spaces.
1416813878 NL2SP=$lt_lt_NL2SP
1416913879
13880 # How to create reloadable object files.
13881 reload_flag=$lt_reload_flag
13882 reload_cmds=$lt_reload_cmds
13883
1417013884 # Method to check whether dependent libraries are shared objects.
1417113885 deplibs_check_method=$lt_deplibs_check_method
1417213886
1418513899 old_postinstall_cmds=$lt_old_postinstall_cmds
1418613900 old_postuninstall_cmds=$lt_old_postuninstall_cmds
1418713901
14188 # Whether to use a lock for old archive extraction.
14189 lock_old_archive_extraction=$lock_old_archive_extraction
14190
1419113902 # A C compiler.
1419213903 LTCC=$lt_CC
1419313904
1420813919
1420913920 # The name of the directory that contains temporary libtool files.
1421013921 objdir=$objdir
13922
13923 # Shell to use when invoking shell scripts.
13924 SHELL=$lt_SHELL
13925
13926 # An echo program that does not interpret backslashes.
13927 ECHO=$lt_ECHO
1421113928
1421213929 # Used to examine libraries when file_magic_cmd begins with "file".
1421313930 MAGIC_CMD=$MAGIC_CMD
1427113988 # The coded name of the library, if different from the real name.
1427213989 soname_spec=$lt_soname_spec
1427313990
14274 # Permission mode override for installation of shared libraries.
14275 install_override_mode=$lt_install_override_mode
14276
1427713991 # Command to use after installation of a shared archive.
1427813992 postinstall_cmds=$lt_postinstall_cmds
1427913993
1431214026
1431314027 # The linker used to build libraries.
1431414028 LD=$lt_LD
14315
14316 # How to create reloadable object files.
14317 reload_flag=$lt_reload_flag
14318 reload_cmds=$lt_reload_cmds
1431914029
1432014030 # Commands used to build an old-style archive.
1432114031 old_archive_cmds=$lt_old_archive_cmds
1457614286 func_dirname ()
1457714287 {
1457814288 # Extract subdirectory from the argument.
14579 func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
14289 func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
1458014290 if test "X$func_dirname_result" = "X${1}"; then
1458114291 func_dirname_result="${3}"
1458214292 else
1458714297 # func_basename file
1458814298 func_basename ()
1458914299 {
14590 func_basename_result=`$ECHO "${1}" | $SED "$basename"`
14300 func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
1459114301 }
1459214302
1459314303
1460014310 func_stripname ()
1460114311 {
1460214312 case ${2} in
14603 .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
14604 *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
14313 .*) func_stripname_result=`$ECHO "X${3}" \
14314 | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
14315 *) func_stripname_result=`$ECHO "X${3}" \
14316 | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
1460514317 esac
1460614318 }
1460714319
1461214324 # func_opt_split
1461314325 func_opt_split ()
1461414326 {
14615 func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
14616 func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
14327 func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
14328 func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
1461714329 }
1461814330
1461914331 # func_lo2o object
1462014332 func_lo2o ()
1462114333 {
14622 func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
14334 func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
1462314335 }
1462414336
1462514337 # func_xform libobj-or-source
1462614338 func_xform ()
1462714339 {
14628 func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
14340 func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'`
1462914341 }
1463014342
1463114343 # func_arith arithmetic-term...
00 AC_PREREQ(2.53)
1 AC_INIT(gupnp-dlna, 0.4.2, http://www.gupnp.org/)
1 AC_INIT(gupnp-dlna, 0.6.0, http://www.gupnp.org/)
22 AM_INIT_AUTOMAKE()
33 AC_CONFIG_SRCDIR(libgupnp-dlna/gupnp-dlna-profile.h)
44 AM_CONFIG_HEADER(config.h)
55
66 dnl library versioning
77 dnl Increase when changing the API
8 GUPNP_DLNA_CURRENT=0
8 GUPNP_DLNA_CURRENT=2
99
1010 dnl Update when changing implementation of current API,
1111 dnl reset to 0 when changing CURRENT. This is the revision of
3030
3131 GST_MAJORMINOR=0.10
3232 GST_REQ=0.10.29.2
33 GSTVID_REQ=0.10.25
34 GSTPBU_REQ=0.10.25
33 GSTPBU_REQ=0.10.32
3534
3635 PKG_CHECK_MODULES(GST, gstreamer-$GST_MAJORMINOR >= $GST_REQ)
37 PKG_CHECK_MODULES(GST_BASE, gstreamer-base-$GST_MAJORMINOR >= $GST_REQ)
38 PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-$GST_MAJORMINOR >= $GSTVID_REQ)
39 dnl PKG_CHECK_MODULES(GST_PBU, gstreamer-pbutils-$GST_MAJORMINOR >= $GSTPBU_REQ)
36 PKG_CHECK_MODULES(GST_PBU, gstreamer-pbutils-$GST_MAJORMINOR >= $GSTPBU_REQ)
4037 AC_SUBST(GST_MAJORMINOR)
4138
4239 GST_CFLAGS="$GST_CFLAGS -DGST_USE_UNSTABLE_API"
5855
5956 AC_OUTPUT([
6057 Makefile
61 gst-convenience/Makefile
62 gst-convenience/gst-libs/Makefile
63 gst-convenience/gst-libs/gst/Makefile
64 gst-convenience/gst-libs/gst/discoverer/Makefile
65 gst-convenience/gst-libs/gst/profile/Makefile
6658 libgupnp-dlna/Makefile
6759 tools/Makefile
6860 tests/Makefile
3939 am__aclocal_m4_deps = $(top_srcdir)/configure.ac
4040 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
4141 $(ACLOCAL_M4)
42 mkinstalldirs = $(install_sh) -d
42 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
4343 CONFIG_HEADER = $(top_builddir)/config.h
4444 CONFIG_CLEAN_FILES =
4545 CONFIG_CLEAN_VPATH_FILES =
103103 FGREP = @FGREP@
104104 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
105105 GREP = @GREP@
106 GST_BASE_CFLAGS = @GST_BASE_CFLAGS@
107 GST_BASE_LIBS = @GST_BASE_LIBS@
108106 GST_CFLAGS = @GST_CFLAGS@
109107 GST_LIBS = @GST_LIBS@
110108 GST_MAJORMINOR = @GST_MAJORMINOR@
111 GST_VIDEO_CFLAGS = @GST_VIDEO_CFLAGS@
112 GST_VIDEO_LIBS = @GST_VIDEO_LIBS@
109 GST_PBU_CFLAGS = @GST_PBU_CFLAGS@
110 GST_PBU_LIBS = @GST_PBU_LIBS@
113111 GTKDOC_CHECK = @GTKDOC_CHECK@
114112 GTKDOC_MKPDF = @GTKDOC_MKPDF@
115113 GTKDOC_REBASE = @GTKDOC_REBASE@
147145 PACKAGE_VERSION = @PACKAGE_VERSION@
148146 PATH_SEPARATOR = @PATH_SEPARATOR@
149147 PKG_CONFIG = @PKG_CONFIG@
150 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
151 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
152148 RANLIB = @RANLIB@
153149 SED = @SED@
154150 SET_MAKE = @SET_MAKE@
191187 libexecdir = @libexecdir@
192188 localedir = @localedir@
193189 localstatedir = @localstatedir@
190 lt_ECHO = @lt_ECHO@
194191 mandir = @mandir@
195192 mkdir_p = @mkdir_p@
196193 oldincludedir = @oldincludedir@
2222 <!-- profile=baseline + constraint_set1_flag=1
2323 == constrained-baseline -->
2424 <value>constrained-baseline</value>
25 </field>
26 <field name="format" type="fourcc">
27 <value>I420</value>
2825 </field>
2926 <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
3027 <value>1/1</value>
2222 <field name="channels" type="int">
2323 <range min="1" max="6" />
2424 </field>
25 <field name="bitrate" type="int">
25 <field name="bitrate" type="int" used="in-strict">
2626 <range min="1" max="448000" />
2727 </field>
2828 </restriction>
4747 <value>high-1440</value>
4848 <value>high</value>
4949 </field>
50 <field name="format" type="fourcc">
51 <value>I420</value>
52 </field>
53 <field name="bitrate" type="int">
50 <field name="bitrate" type="int" used="in-strict">
5451 <!-- Max. system bitrate is 19.3927 Mb/s. Subtracting max. audio
5552 bitrate, and ignoring close caption data and other overhead -->
5653 <range min="1" max="18881700" />
5754 </field>
5855 </restriction>
5956
57 <!-- SD resolutions -->
58 <!-- NA region -->
6059 <restriction id="720x480" type="video">
6160 <parent name="525_D1" />
6261 <field name="framerate" type="fraction">
6362 <value>30000/1001</value>
6463 </field>
65 <field name="pixel-aspect-ratio" type="fraction">
64 <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
6665 <value>32/27</value>
6766 <value>8/9</value>
6867 </field>
7877 <value>60000/1001</value> <!-- Note: only valid for interlaced=false -->
7978 <value>60/1</value> <!-- Note: only valid for interlaced=false -->
8079 </field>
81 <field name="pixel-aspect-ratio" type="fraction">
80 <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
8281 <value>40/33</value>
8382 <value>10/11</value>
8483 </field>
9493 <value>60000/1001</value> <!-- Note: only valid for interlaced=false -->
9594 <value>60/1</value> <!-- Note: only valid for interlaced=false -->
9695 </field>
97 <field name="pixel-aspect-ratio" type="fraction">
96 <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
9897 <value>1/1</value>
9998 <value>4/3</value>
10099 </field>
105104 <field name="framerate" type="fraction">
106105 <value>30000/1001</value>
107106 </field>
108 <field name="pixel-aspect-ratio" type="fraction">
107 <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
109108 <value>80/51</value>
110109 <value>20/17</value>
111110 </field>
116115 <field name="framerate" type="fraction">
117116 <value>30000/1001</value>
118117 </field>
119 <field name="pixel-aspect-ratio" type="fraction">
118 <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
120119 <value>16/9</value>
121120 <value>4/3</value>
122121 </field>
127126 <field name="framerate" type="fraction">
128127 <value>30000/1001</value>
129128 </field>
130 <field name="pixel-aspect-ratio" type="fraction">
129 <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
131130 <value>80/33</value>
132131 <value>20/11</value>
132 </field>
133 </restriction>
134
135 <!-- EU region -->
136 <restriction id="EU_FPS" type="video">
137 <field name="framerate" type="fraction">
138 <value>25/1</value>
139 </field>
140 </restriction>
141
142 <restriction id="720x576" type="video">
143 <parent name="625_D1" />
144 <parent name="EU_FPS" />
145 <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
146 <value>64/45</value>
147 <value>16/15</value>
148 </field>
149 </restriction>
150
151 <restriction id="544x576" type="video">
152 <parent name="625_3/4D1" />
153 <parent name="EU_FPS" />
154 <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
155 <value>32/17</value>
156 <value>24/17</value>
157 </field>
158 </restriction>
159
160 <restriction id="480x576" type="video">
161 <parent name="625_2/3D1" />
162 <parent name="EU_FPS" />
163 <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
164 <value>32/15</value>
165 <value>8/5</value>
166 </field>
167 </restriction>
168
169 <restriction id="352x576" type="video">
170 <parent name="625_1/2D1" />
171 <parent name="EU_FPS" />
172 <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
173 <value>32/11</value>
174 <value>24/11</value>
175 </field>
176 </restriction>
177
178 <restriction id="352x288" type="video">
179 <parent name="CIF" />
180 <parent name="EU_FPS" />
181 <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
182 <value>16/11</value>
183 <value>12/11</value>
133184 </field>
134185 </restriction>
135186
142193 <value>24000/1001</value> <!-- Note: only valid for interlaced=false -->
143194 <value>24/1</value> <!-- Note: only valid for interlaced=false -->
144195 </field>
145 <field name="pixel-aspect-ratio" type="fraction">
196 <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
146197 <value>1/1</value>
147198 <value>9/16</value>
148199 </field>
157208 <value>24000/1001</value> <!-- Note: only valid for interlaced=false -->
158209 <value>24/1</value> <!-- Note: only valid for interlaced=false -->
159210 </field>
160 <field name="pixel-aspect-ratio" type="fraction">
211 <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
161212 <value>1/1</value>
162213 <value>9/16</value>
163214 </field>
176227 <value>24000/1001</value> <!-- Note: only valid for interlaced=false -->
177228 <value>24/1</value> <!-- Note: only valid for interlaced=false -->
178229 </field>
179 <field name="pixel-aspect-ratio" type="fraction">
230 <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
180231 <value>4/3</value>
181232 </field>
182233 </restriction>
194245 <value>24000/1001</value> <!-- Note: only valid for interlaced=false -->
195246 <value>24/1</value> <!-- Note: only valid for interlaced=false -->
196247 </field>
197 <field name="pixel-aspect-ratio" type="fraction">
248 <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
198249 <value>3/2</value>
199250 </field>
200251 </restriction>
259310 </restriction>
260311 </dlna-profile>
261312
313 <dlna-profile name="MPEG_TS_SD_EU_ISO" mime="video/mpeg">
314 <!-- Note: We have no way to restrict the system bitrate yet -->
315 <parent name="MPEG_TS" />
316
317 <restriction type="audio">
318 <parent name="MPEG_TS_AUDIO" />
319
320 <field name="name" type="string">
321 <value>audio/x-ac3</value>
322 </field>
323 </restriction>
324
325 <restriction type="audio">
326 <parent name="MPEG_TS_AUDIO" />
327
328 <field name="name" type="string">
329 <value>audio/x-private1-ac3</value>
330 </field>
331 </restriction>
332
333 <restriction type="audio">
334 <parent name="MPEG_TS_AUDIO" />
335
336 <field name="name" type="string">
337 <value>audio/ac3</value>
338 </field>
339 </restriction>
340
341 <restriction type="video">
342 <parent name="MPEG_TS_VIDEO" />
343 <parent name="720x576" />
344 </restriction>
345
346 <restriction type="video">
347 <parent name="MPEG_TS_VIDEO" />
348 <parent name="544x576" />
349 </restriction>
350
351 <restriction type="video">
352 <parent name="MPEG_TS_VIDEO" />
353 <parent name="480x576" />
354 </restriction>
355
356 <restriction type="video">
357 <parent name="MPEG_TS_VIDEO" />
358 <parent name="352x576" />
359 </restriction>
360
361 <restriction type="video">
362 <parent name="MPEG_TS_VIDEO" />
363 <parent name="352x288" />
364 </restriction>
365 </dlna-profile>
366
262367 <dlna-profile name="MPEG_TS_HD_NA_ISO" mime="video/mpeg">
263368 <parent name="MPEG_TS" />
264369
1313 <field name="systemstream" type="boolean">
1414 <value>false</value>
1515 </field>
16 <field name="format" type="fourcc">
17 <value>I420</value>
18 </field>
1916 </restriction>
2017
2118 <restriction id="H263_P0_L10" type="video">
3128 <field name="pixel-aspect-ratio" type="fraction">
3229 <value>12/11</value>
3330 <value>16/11</value>
34 </field>
35 <field name="format" type="fourcc">
36 <value>I420</value>
3731 </field>
3832 <field name="bitrate" type="int">
3933 <range min="1" max="64000" />
2020 DOC_SOURCE_DIR=../libgupnp-dlna
2121
2222 # Extra options to pass to gtkdoc-scangobj. Not normally needed.
23 SCANGOBJ_OPTIONS=
23 SCANGOBJ_OPTIONS=--type-init-func="gst_init(NULL,NULL)"
2424
2525 # Extra options to supply to gtkdoc-scan.
2626 # e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
4848 # e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
4949 IGNORE_HFILES= xml-util.h \
5050 gvalue-util.h \
51 gupnp-dlna-load.h \
51 profile-loading.h \
5252 gupnp-dlna-marshal.h
5353
5454 # Images to copy into HTML directory.
7070 # e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
7171 # e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
7272 INCLUDES=-I$(top_srcdir) \
73 -I$(top_srcdir)/gst-convenience/gst-libs \
7473 $(GST_CFLAGS)
7574 GTKDOC_LIBS=$(top_builddir)/libgupnp-dlna/libgupnp-dlna-1.0.la \
76 $(top_builddir)/gst-convenience/gst-libs/gst/discoverer/.libs/libgstdiscoverer-gupnp-dlna-0.10.la \
77 $(top_builddir)/gst-convenience/gst-libs/gst/profile/.libs/libgstprofile-gupnp-dlna-0.10.la
75 $(GST_LIBS)
7876
7977 # This includes the standard gtk-doc make rules, copied by gtkdocize.
8078 include $(top_srcdir)/gtk-doc.make
4545 am__aclocal_m4_deps = $(top_srcdir)/configure.ac
4646 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
4747 $(ACLOCAL_M4)
48 mkinstalldirs = $(install_sh) -d
48 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
4949 CONFIG_HEADER = $(top_builddir)/config.h
5050 CONFIG_CLEAN_FILES = version.xml
5151 CONFIG_CLEAN_VPATH_FILES =
8686 FGREP = @FGREP@
8787 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
8888 GREP = @GREP@
89 GST_BASE_CFLAGS = @GST_BASE_CFLAGS@
90 GST_BASE_LIBS = @GST_BASE_LIBS@
9189 GST_CFLAGS = @GST_CFLAGS@
9290 GST_LIBS = @GST_LIBS@
9391 GST_MAJORMINOR = @GST_MAJORMINOR@
94 GST_VIDEO_CFLAGS = @GST_VIDEO_CFLAGS@
95 GST_VIDEO_LIBS = @GST_VIDEO_LIBS@
92 GST_PBU_CFLAGS = @GST_PBU_CFLAGS@
93 GST_PBU_LIBS = @GST_PBU_LIBS@
9694 GTKDOC_CHECK = @GTKDOC_CHECK@
9795 GTKDOC_MKPDF = @GTKDOC_MKPDF@
9896 GTKDOC_REBASE = @GTKDOC_REBASE@
130128 PACKAGE_VERSION = @PACKAGE_VERSION@
131129 PATH_SEPARATOR = @PATH_SEPARATOR@
132130 PKG_CONFIG = @PKG_CONFIG@
133 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
134 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
135131 RANLIB = @RANLIB@
136132 SED = @SED@
137133 SET_MAKE = @SET_MAKE@
174170 libexecdir = @libexecdir@
175171 localedir = @localedir@
176172 localstatedir = @localstatedir@
173 lt_ECHO = @lt_ECHO@
177174 mandir = @mandir@
178175 mkdir_p = @mkdir_p@
179176 oldincludedir = @oldincludedir@
211208 DOC_SOURCE_DIR = ../libgupnp-dlna
212209
213210 # Extra options to pass to gtkdoc-scangobj. Not normally needed.
214 SCANGOBJ_OPTIONS =
211 SCANGOBJ_OPTIONS = --type-init-func="gst_init(NULL,NULL)"
215212
216213 # Extra options to supply to gtkdoc-scan.
217214 # e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
239236 # e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
240237 IGNORE_HFILES = xml-util.h \
241238 gvalue-util.h \
242 gupnp-dlna-load.h \
239 profile-loading.h \
243240 gupnp-dlna-marshal.h
244241
245242
262259 # e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
263260 # e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
264261 INCLUDES = -I$(top_srcdir) \
265 -I$(top_srcdir)/gst-convenience/gst-libs \
266262 $(GST_CFLAGS)
267263
268264 GTKDOC_LIBS = $(top_builddir)/libgupnp-dlna/libgupnp-dlna-1.0.la \
269 $(top_builddir)/gst-convenience/gst-libs/gst/discoverer/.libs/libgstdiscoverer-gupnp-dlna-0.10.la \
270 $(top_builddir)/gst-convenience/gst-libs/gst/profile/.libs/libgstprofile-gupnp-dlna-0.10.la
265 $(GST_LIBS)
271266
272267 @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
273268 @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
283278 #
284279 GPATH = $(srcdir)
285280 TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE)
281 SETUP_FILES = \
282 $(content_files) \
283 $(DOC_MAIN_SGML_FILE) \
284 $(DOC_MODULE)-sections.txt \
285 $(DOC_MODULE)-overrides.txt
286
286287
287288 # This includes the standard gtk-doc make rules, copied by gtkdocize.
288289
289290 # Other files to distribute
290291 # e.g. EXTRA_DIST += version.xml.in
291 EXTRA_DIST = $(content_files) $(HTML_IMAGES) $(DOC_MAIN_SGML_FILE) \
292 $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt \
293 version.xml.in
294 DOC_STAMPS = scan-build.stamp sgml-build.stamp html-build.stamp pdf-build.stamp \
295 $(srcdir)/sgml.stamp $(srcdir)/html.stamp \
296 $(srcdir)/pdf.stamp
292 EXTRA_DIST = $(SETUP_FILES) version.xml.in
293 DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \
294 html-build.stamp pdf-build.stamp \
295 setup.stamp sgml.stamp html.stamp pdf.stamp
297296
298297 SCANOBJ_FILES = \
299298 $(DOC_MODULE).args \
514513
515514 $(REPORT_FILES): sgml-build.stamp
516515
516 #### setup ####
517
518 setup-build.stamp:
519 -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
520 echo 'gtk-doc: Preparing build'; \
521 files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
522 if test "x$$files" != "x" ; then \
523 for file in $$files ; do \
524 test -f $(abs_srcdir)/$$file && \
525 cp -p $(abs_srcdir)/$$file $(abs_builddir)/; \
526 done \
527 fi \
528 fi
529 @touch setup-build.stamp
530
531 setup.stamp: setup-build.stamp
532 @true
533
517534 #### scan ####
518535
519536 scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
520537 @echo 'gtk-doc: Scanning header files'
521 @-chmod -R u+w $(srcdir)
522 @_source_dir='' ; for i in $(DOC_SOURCE_DIR) ; do \
538 @_source_dir='' ; \
539 for i in $(DOC_SOURCE_DIR) ; do \
523540 _source_dir="$${_source_dir} --source-dir=$$i" ; \
524 done ; \
525 cd $(srcdir) && \
526 gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
527 @if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \
528 CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \
541 done ; \
542 gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
543 @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
544 CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) ; \
529545 else \
530 cd $(srcdir) ; \
531546 for i in $(SCANOBJ_FILES) ; do \
532 test -f $$i || touch $$i ; \
547 test -f $$i || touch $$i ; \
533548 done \
534549 fi
535550 @touch scan-build.stamp
539554
540555 #### xml ####
541556
542 sgml-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files)
557 sgml-build.stamp: setup.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files)
543558 @echo 'gtk-doc: Building XML'
544 @-chmod -R u+w $(srcdir)
545 @_source_dir='' ; for i in $(DOC_SOURCE_DIR) ; do \
559 @_source_dir='' ; \
560 for i in $(DOC_SOURCE_DIR) ; do \
546561 _source_dir="$${_source_dir} --source-dir=$$i" ; \
547 done ; \
548 cd $(srcdir) && \
549 gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
562 done ; \
563 gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
550564 @touch sgml-build.stamp
551565
552566 sgml.stamp: sgml-build.stamp
556570
557571 html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
558572 @echo 'gtk-doc: Building HTML'
559 @-chmod -R u+w $(srcdir)
560 @rm -rf $(srcdir)/html
561 @mkdir $(srcdir)/html
573 @rm -rf html
574 @mkdir html
562575 @mkhtml_options=""; \
563576 gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \
564577 if test "$(?)" = "0"; then \
565 mkhtml_options=--path="$(srcdir)"; \
578 mkhtml_options=--path="$(abs_srcdir)"; \
566579 fi; \
567 cd $(srcdir)/html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
568 @test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html )
580 cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
581 -@test "x$(HTML_IMAGES)" = "x" || \
582 for file in $(HTML_IMAGES) ; do \
583 if test -f $(abs_srcdir)/$$file ; then \
584 cp $(abs_srcdir)/$$file $(abs_builddir)/html; \
585 fi; \
586 if test -f $(abs_builddir)/$$file ; then \
587 cp $(abs_builddir)/$$file $(abs_builddir)/html; \
588 fi; \
589 done;
569590 @echo 'gtk-doc: Fixing cross-references'
570 @cd $(srcdir) && gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
591 @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
571592 @touch html-build.stamp
572593
573594 #### pdf ####
574595
575596 pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
576597 @echo 'gtk-doc: Building PDF'
577 @-chmod -R u+w $(srcdir)
578 @rm -rf $(srcdir)/$(DOC_MODULE).pdf
598 @rm -rf $(DOC_MODULE).pdf
579599 @mkpdf_imgdirs=""; \
580600 if test "x$(HTML_IMAGES)" != "x"; then \
581601 for img in $(HTML_IMAGES); do \
586606 fi; \
587607 done; \
588608 fi; \
589 cd $(srcdir) && gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_imgdirs $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
609 gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_imgdirs $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
590610 @touch pdf-build.stamp
591611
592612 ##############
596616 rm -rf .libs
597617
598618 distclean-local:
599 cd $(srcdir) && \
600 rm -rf xml $(REPORT_FILES) $(DOC_MODULE).pdf \
601 $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
619 rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
620 $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
621 if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
622 rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
623 fi
602624
603625 maintainer-clean-local: clean
604 cd $(srcdir) && rm -rf html
626 rm -rf xml html
605627
606628 install-data-local:
607 @installfiles=`echo $(srcdir)/html/*`; \
629 @installfiles=`echo $(builddir)/html/*`; \
608630 if test "$$installfiles" = '$(srcdir)/html/*'; \
609631 then echo '-- Nothing to install' ; \
610632 else \
645667
646668 dist-hook: dist-check-gtkdoc dist-hook-local
647669 mkdir $(distdir)/html
648 cp $(srcdir)/html/* $(distdir)/html
649 -cp $(srcdir)/$(DOC_MODULE).pdf $(distdir)/
650 -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/
651 -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/
670 cp $(builddir)/html/* $(distdir)/html
671 -cp $(builddir)/$(DOC_MODULE).pdf $(distdir)/
672 -cp $(builddir)/$(DOC_MODULE).types $(distdir)/
673 -cp $(builddir)/$(DOC_MODULE)-sections.txt $(distdir)/
652674 cd $(distdir) && rm -f $(DISTCLEANFILES)
653675 $(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html
654676
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>GUPnPDLNADiscoverer</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
66 <link rel="home" href="index.html" title="GUPnP DLNA Reference Manual">
77 <link rel="up" href="ch01.html" title="GUPnP DLNA">
88 <link rel="prev" href="ch01.html" title="GUPnP DLNA">
99 <link rel="next" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation">
10 <meta name="generator" content="GTK-Doc V1.15 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.16.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
3131 <a href="#GUPnPDLNADiscoverer.signals" class="shortcut">Signals</a>
3232 </td></tr>
3333 </table>
34 <div class="refentry" title="GUPnPDLNADiscoverer">
34 <div class="refentry">
3535 <a name="GUPnPDLNADiscoverer"></a><div class="titlepage"></div>
3636 <div class="refnamediv"><table width="100%"><tr>
3737 <td valign="top">
4141 </td>
4242 <td valign="top" align="right"></td>
4343 </tr></table></div>
44 <div class="refsynopsisdiv" title="Synopsis">
44 <div class="refsynopsisdiv">
4545 <a name="GUPnPDLNADiscoverer.synopsis"></a><h2>Synopsis</h2>
4646 <pre class="synopsis"> <a class="link" href="GUPnPDLNADiscoverer.html#GUPnPDLNADiscoverer-struct" title="GUPnPDLNADiscoverer">GUPnPDLNADiscoverer</a>;
47 <a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="returnvalue">GUPnPDLNADiscoverer</span></a> * <a class="link" href="GUPnPDLNADiscoverer.html#gupnp-dlna-discoverer-new" title="gupnp_dlna_discoverer_new ()">gupnp_dlna_discoverer_new</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timeout</code></em>,
47 <a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="returnvalue">GUPnPDLNADiscoverer</span></a> * <a class="link" href="GUPnPDLNADiscoverer.html#gupnp-dlna-discoverer-new" title="gupnp_dlna_discoverer_new ()">gupnp_dlna_discoverer_new</a> (<em class="parameter"><code><span class="type">GstClockTime</span> timeout</code></em>,
4848 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> relaxed_mode</code></em>,
4949 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> extended_mode</code></em>);
5050 #define <a class="link" href="GUPnPDLNADiscoverer.html#gupnp-dlna-discoverer-start" title="gupnp_dlna_discoverer_start()">gupnp_dlna_discoverer_start</a> (discoverer)
5151 #define <a class="link" href="GUPnPDLNADiscoverer.html#gupnp-dlna-discoverer-stop" title="gupnp_dlna_discoverer_stop()">gupnp_dlna_discoverer_stop</a> (discoverer)
5252 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="GUPnPDLNADiscoverer.html#gupnp-dlna-discoverer-discover-uri" title="gupnp_dlna_discoverer_discover_uri ()">gupnp_dlna_discoverer_discover_uri</a> (<em class="parameter"><code><a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="type">GUPnPDLNADiscoverer</span></a> *discoverer</code></em>,
53 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);
53 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);
5454 <a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="returnvalue">GUPnPDLNAInformation</span></a> * <a class="link" href="GUPnPDLNADiscoverer.html#gupnp-dlna-discoverer-discover-uri-sync" title="gupnp_dlna_discoverer_discover_uri_sync ()">gupnp_dlna_discoverer_discover_uri_sync</a>
5555 (<em class="parameter"><code><a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="type">GUPnPDLNADiscoverer</span></a> *discoverer</code></em>,
56 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>,
56 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>,
5757 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **err</code></em>);
5858 </pre>
5959 </div>
60 <div class="refsect1" title="Object Hierarchy">
60 <div class="refsect1">
6161 <a name="GUPnPDLNADiscoverer.object-hierarchy"></a><h2>Object Hierarchy</h2>
6262 <pre class="synopsis">
6363 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
64 +----<a href="../gst-convenience-0.10/gst-convenience-gstdiscoverer.html#GstDiscoverer">GstDiscoverer</a>
64 +----<a href="/opt/gnome2/share/gtk-doc/html/gst-convenience-0.10/gst-convenience-gstdiscoverer.html#GstDiscoverer">GstDiscoverer</a>
6565 +----GUPnPDLNADiscoverer
6666 </pre>
6767 </div>
68 <div class="refsect1" title="Properties">
68 <div class="refsect1">
6969 <a name="GUPnPDLNADiscoverer.properties"></a><h2>Properties</h2>
7070 <pre class="synopsis">
7171 "<a class="link" href="GUPnPDLNADiscoverer.html#GUPnPDLNADiscoverer--extended-mode" title='The "extended-mode" property'>extended-mode</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct Only
7272 "<a class="link" href="GUPnPDLNADiscoverer.html#GUPnPDLNADiscoverer--relaxed-mode" title='The "relaxed-mode" property'>relaxed-mode</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct Only
7373 </pre>
7474 </div>
75 <div class="refsect1" title="Signals">
75 <div class="refsect1">
7676 <a name="GUPnPDLNADiscoverer.signals"></a><h2>Signals</h2>
7777 <pre class="synopsis">
78 "<a class="link" href="GUPnPDLNADiscoverer.html#GUPnPDLNADiscoverer-done" title='The "done" signal'>done</a>" : Run Last
79 </pre>
80 </div>
81 <div class="refsect1" title="Description">
78 "<a class="link" href="GUPnPDLNADiscoverer.html#GUPnPDLNADiscoverer-done" title='The "done" signal'>done</a>" : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
79 </pre>
80 </div>
81 <div class="refsect1">
8282 <a name="GUPnPDLNADiscoverer.description"></a><h2>Description</h2>
8383 <p>
8484 The GUPnPDLNADiscoverer object provides a light-weight wrapper over the
85 <a href="../gst-convenience-0.10/gst-convenience-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> API. The latter provides a simple interface to discover
85 <a href="/opt/gnome2/share/gtk-doc/html/gst-convenience-0.10/gst-convenience-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> API. The latter provides a simple interface to discover
8686 media metadata given a URI. GUPnPDLNADiscoverer extends this API to also
8787 provide a DLNA profile name and mime type for the media.
8888 </p>
8989 <p>
9090 The API provided corresponds very closely to the API provided by
91 <a href="../gst-convenience-0.10/gst-convenience-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> - both synchronous and asynchronous discovery of metadata
91 <a href="/opt/gnome2/share/gtk-doc/html/gst-convenience-0.10/gst-convenience-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> - both synchronous and asynchronous discovery of metadata
9292 are possible.
9393 </p>
9494 <p>
9797 URIs to be processed and then asks for the discovery to begin.
9898 </p>
9999 </div>
100 <div class="refsect1" title="Details">
100 <div class="refsect1">
101101 <a name="GUPnPDLNADiscoverer.details"></a><h2>Details</h2>
102 <div class="refsect2" title="GUPnPDLNADiscoverer">
102 <div class="refsect2">
103103 <a name="GUPnPDLNADiscoverer-struct"></a><h3>GUPnPDLNADiscoverer</h3>
104104 <pre class="programlisting">typedef struct _GUPnPDLNADiscoverer GUPnPDLNADiscoverer;</pre>
105105 <p>
107107 </p>
108108 </div>
109109 <hr>
110 <div class="refsect2" title="gupnp_dlna_discoverer_new ()">
110 <div class="refsect2">
111111 <a name="gupnp-dlna-discoverer-new"></a><h3>gupnp_dlna_discoverer_new ()</h3>
112 <pre class="programlisting"><a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="returnvalue">GUPnPDLNADiscoverer</span></a> * gupnp_dlna_discoverer_new (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timeout</code></em>,
112 <pre class="programlisting"><a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="returnvalue">GUPnPDLNADiscoverer</span></a> * gupnp_dlna_discoverer_new (<em class="parameter"><code><span class="type">GstClockTime</span> timeout</code></em>,
113113 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> relaxed_mode</code></em>,
114114 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> extended_mode</code></em>);</pre>
115115 <p>
121121 <tbody>
122122 <tr>
123123 <td><p><span class="term"><em class="parameter"><code>timeout</code></em> :</span></p></td>
124 <td>default discovery timeout, in nanoseconds
125 </td>
124 <td>default discovery timeout, in nanoseconds</td>
125 </tr>
126 <tr>
127 <td><p><span class="term"><em class="parameter"><code>relaxed_mode</code></em> :</span></p></td>
128 <td>set to TRUE, to enable relaxed mode support. FALSE otherwise</td>
129 </tr>
130 <tr>
131 <td><p><span class="term"><em class="parameter"><code>extended_mode</code></em> :</span></p></td>
132 <td>set to TRUE, to enable extended mode support. FALSE otherwise</td>
126133 </tr>
127134 <tr>
128135 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
129 <td> A new <a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="type">GUPnPDLNADiscoverer</span></a> object.
130 </td>
131 </tr>
132 </tbody>
133 </table></div>
134 </div>
135 <hr>
136 <div class="refsect2" title="gupnp_dlna_discoverer_start()">
136 <td>A new <a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="type">GUPnPDLNADiscoverer</span></a> object.</td>
137 </tr>
138 </tbody>
139 </table></div>
140 </div>
141 <hr>
142 <div class="refsect2">
137143 <a name="gupnp-dlna-discoverer-start"></a><h3>gupnp_dlna_discoverer_start()</h3>
138144 <pre class="programlisting">#define gupnp_dlna_discoverer_start(discoverer)</pre>
139145 <p>
144150 <tbody><tr>
145151 <td><p><span class="term"><em class="parameter"><code>discoverer</code></em> :</span></p></td>
146152 <td>
147 <a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="type">GUPnPDLNADiscoverer</span></a> object to start discovery on
148 </td>
153 <a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="type">GUPnPDLNADiscoverer</span></a> object to start discovery on</td>
149154 </tr></tbody>
150155 </table></div>
151156 </div>
152157 <hr>
153 <div class="refsect2" title="gupnp_dlna_discoverer_stop()">
158 <div class="refsect2">
154159 <a name="gupnp-dlna-discoverer-stop"></a><h3>gupnp_dlna_discoverer_stop()</h3>
155160 <pre class="programlisting">#define gupnp_dlna_discoverer_stop(discoverer)</pre>
156161 <p>
161166 <tbody><tr>
162167 <td><p><span class="term"><em class="parameter"><code>discoverer</code></em> :</span></p></td>
163168 <td>
164 <a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="type">GUPnPDLNADiscoverer</span></a> object to stop discovery on
165 </td>
169 <a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="type">GUPnPDLNADiscoverer</span></a> object to stop discovery on</td>
166170 </tr></tbody>
167171 </table></div>
168172 </div>
169173 <hr>
170 <div class="refsect2" title="gupnp_dlna_discoverer_discover_uri ()">
174 <div class="refsect2">
171175 <a name="gupnp-dlna-discoverer-discover-uri"></a><h3>gupnp_dlna_discoverer_discover_uri ()</h3>
172176 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gupnp_dlna_discoverer_discover_uri (<em class="parameter"><code><a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="type">GUPnPDLNADiscoverer</span></a> *discoverer</code></em>,
173 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);</pre>
177 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);</pre>
174178 <p>
175179 Queues <em class="parameter"><code>uri</code></em> for metadata discovery. When discovery is completed, the
176180 "discovered" signal is emitted on <em class="parameter"><code>discoverer</code></em>.
181185 <tr>
182186 <td><p><span class="term"><em class="parameter"><code>discoverer</code></em> :</span></p></td>
183187 <td>
184 <a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="type">GUPnPDLNADiscoverer</span></a> object to use for discovery
185 </td>
188 <a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="type">GUPnPDLNADiscoverer</span></a> object to use for discovery</td>
186189 </tr>
187190 <tr>
188191 <td><p><span class="term"><em class="parameter"><code>uri</code></em> :</span></p></td>
189 <td>URI to gather metadata for
190 </td>
192 <td>URI to gather metadata for</td>
191193 </tr>
192194 <tr>
193195 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
194 <td> TRUE if <em class="parameter"><code>uri</code></em> was successfully queued, FALSE otherwise.
195 </td>
196 </tr>
197 </tbody>
198 </table></div>
199 </div>
200 <hr>
201 <div class="refsect2" title="gupnp_dlna_discoverer_discover_uri_sync ()">
196 <td>TRUE if <em class="parameter"><code>uri</code></em> was successfully queued, FALSE otherwise.</td>
197 </tr>
198 </tbody>
199 </table></div>
200 </div>
201 <hr>
202 <div class="refsect2">
202203 <a name="gupnp-dlna-discoverer-discover-uri-sync"></a><h3>gupnp_dlna_discoverer_discover_uri_sync ()</h3>
203204 <pre class="programlisting"><a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="returnvalue">GUPnPDLNAInformation</span></a> * gupnp_dlna_discoverer_discover_uri_sync
204205 (<em class="parameter"><code><a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="type">GUPnPDLNADiscoverer</span></a> *discoverer</code></em>,
205 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>,
206 <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>,
206207 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **err</code></em>);</pre>
207208 <p>
208209 Synchronously gathers metadata for <em class="parameter"><code>uri</code></em>.
213214 <tr>
214215 <td><p><span class="term"><em class="parameter"><code>discoverer</code></em> :</span></p></td>
215216 <td>
216 <a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="type">GUPnPDLNADiscoverer</span></a> object to use for discovery
217 </td>
217 <a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="type">GUPnPDLNADiscoverer</span></a> object to use for discovery</td>
218218 </tr>
219219 <tr>
220220 <td><p><span class="term"><em class="parameter"><code>uri</code></em> :</span></p></td>
221 <td>URI to gather metadata for
222 </td>
221 <td>URI to gather metadata for</td>
223222 </tr>
224223 <tr>
225224 <td><p><span class="term"><em class="parameter"><code>err</code></em> :</span></p></td>
226 <td>contains details of the error if discovery fails, else is NULL
227 </td>
225 <td>contains details of the error if discovery fails, else is NULL</td>
228226 </tr>
229227 <tr>
230228 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
231 <td> a <a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> with the metadata for <em class="parameter"><code>uri</code></em> on success, NULL
232 otherwise
233 </td>
234 </tr>
235 </tbody>
236 </table></div>
237 </div>
238 </div>
239 <div class="refsect1" title="Property Details">
229 <td>a <a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> with the metadata for <em class="parameter"><code>uri</code></em> on success, NULL
230 otherwise</td>
231 </tr>
232 </tbody>
233 </table></div>
234 </div>
235 </div>
236 <div class="refsect1">
240237 <a name="GUPnPDLNADiscoverer.property-details"></a><h2>Property Details</h2>
241 <div class="refsect2" title='The "extended-mode" property'>
238 <div class="refsect2">
242239 <a name="GUPnPDLNADiscoverer--extended-mode"></a><h3>The <code class="literal">"extended-mode"</code> property</h3>
243240 <pre class="programlisting"> "extended-mode" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct Only</pre>
244241 <p>Indicates support for profiles that are not part of the DLNA specification.</p>
245242 <p>Default value: FALSE</p>
246243 </div>
247244 <hr>
248 <div class="refsect2" title='The "relaxed-mode" property'>
245 <div class="refsect2">
249246 <a name="GUPnPDLNADiscoverer--relaxed-mode"></a><h3>The <code class="literal">"relaxed-mode"</code> property</h3>
250247 <pre class="programlisting"> "relaxed-mode" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct Only</pre>
251248 <p>Indicates that profile matching shouldbe strictly compliant with the DLNA specification.</p>
252249 <p>Default value: FALSE</p>
253250 </div>
254251 </div>
255 <div class="refsect1" title="Signal Details">
252 <div class="refsect1">
256253 <a name="GUPnPDLNADiscoverer.signal-details"></a><h2>Signal Details</h2>
257 <div class="refsect2" title='The "done" signal'>
254 <div class="refsect2">
258255 <a name="GUPnPDLNADiscoverer-done"></a><h3>The <code class="literal">"done"</code> signal</h3>
259256 <pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="type">GUPnPDLNADiscoverer</span></a> *discoverer,
260257 <a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> *dlna,
261258 <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *err,
262 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : Run Last</pre>
259 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
263260 <p>
264261 Will be emitted when all information on a URI could be discovered.
265262 </p>
281278 </tr>
282279 <tr>
283280 <td><p><span class="term"><em class="parameter"><code>err</code></em> :</span></p></td>
284 <td>contains details of the error if discovery fails, else is NULL
285 </td>
281 <td>contains details of the error if discovery fails, else is NULL</td>
286282 </tr>
287283 <tr>
288284 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
295291 </div>
296292 <div class="footer">
297293 <hr>
298 Generated by GTK-Doc V1.15</div>
294 Generated by GTK-Doc V1.16.1</div>
299295 </body>
300296 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>GUPnPDLNAInformation</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
66 <link rel="home" href="index.html" title="GUPnP DLNA Reference Manual">
77 <link rel="up" href="ch01.html" title="GUPnP DLNA">
88 <link rel="prev" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer">
99 <link rel="next" href="GUPnPDLNAProfile.html" title="GUPnPDLNAProfile">
10 <meta name="generator" content="GTK-Doc V1.15 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.16.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
2929 <a href="#GUPnPDLNAInformation.properties" class="shortcut">Properties</a>
3030 </td></tr>
3131 </table>
32 <div class="refentry" title="GUPnPDLNAInformation">
32 <div class="refentry">
3333 <a name="GUPnPDLNAInformation"></a><div class="titlepage"></div>
3434 <div class="refnamediv"><table width="100%"><tr>
3535 <td valign="top">
3636 <h2><span class="refentrytitle"><a name="GUPnPDLNAInformation.top_of_page"></a>GUPnPDLNAInformation</span></h2>
3737 <p>GUPnPDLNAInformation — Object containing metadata information returned by the
38 <span class="type">GUPNPDLNADiscoverer</span> API</p>
38 <a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="type">GUPnPDLNADiscoverer</span></a> API</p>
3939 </td>
4040 <td valign="top" align="right"></td>
4141 </tr></table></div>
42 <div class="refsynopsisdiv" title="Synopsis">
42 <div class="refsynopsisdiv">
4343 <a name="GUPnPDLNAInformation.synopsis"></a><h2>Synopsis</h2>
4444 <pre class="synopsis"> <a class="link" href="GUPnPDLNAInformation.html#GUPnPDLNAInformation-struct" title="GUPnPDLNAInformation">GUPnPDLNAInformation</a>;
4545 <a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="returnvalue">GUPnPDLNAInformation</span></a> * <a class="link" href="GUPnPDLNAInformation.html#gupnp-dlna-information-new" title="gupnp_dlna_information_new ()">gupnp_dlna_information_new</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
4646 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *mime</code></em>,
47 <em class="parameter"><code><a href="../gst-convenience-0.10/gst-convenience-gstdiscoverer.html#GstDiscovererInformation"><span class="type">GstDiscovererInformation</span></a> *info</code></em>);
47 <em class="parameter"><code><span class="type">GstDiscovererInfo</span> *info</code></em>);
4848 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="GUPnPDLNAInformation.html#gupnp-dlna-information-get-name" title="gupnp_dlna_information_get_name ()">gupnp_dlna_information_get_name</a> (<em class="parameter"><code><a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> *self</code></em>);
4949 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="GUPnPDLNAInformation.html#gupnp-dlna-information-get-mime" title="gupnp_dlna_information_get_mime ()">gupnp_dlna_information_get_mime</a> (<em class="parameter"><code><a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> *self</code></em>);
50 const <a href="../gst-convenience-0.10/gst-convenience-gstdiscoverer.html#GstDiscovererInformation"><span class="returnvalue">GstDiscovererInformation</span></a> * <a class="link" href="GUPnPDLNAInformation.html#gupnp-dlna-information-get-info" title="gupnp_dlna_information_get_info ()">gupnp_dlna_information_get_info</a>
50 const <span class="returnvalue">GstDiscovererInfo</span> * <a class="link" href="GUPnPDLNAInformation.html#gupnp-dlna-information-get-info" title="gupnp_dlna_information_get_info ()">gupnp_dlna_information_get_info</a>
5151 (<em class="parameter"><code><a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> *self</code></em>);
5252 </pre>
5353 </div>
54 <div class="refsect1" title="Object Hierarchy">
54 <div class="refsect1">
5555 <a name="GUPnPDLNAInformation.object-hierarchy"></a><h2>Object Hierarchy</h2>
5656 <pre class="synopsis">
5757 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
5858 +----GUPnPDLNAInformation
5959 </pre>
6060 </div>
61 <div class="refsect1" title="Properties">
61 <div class="refsect1">
6262 <a name="GUPnPDLNAInformation.properties"></a><h2>Properties</h2>
6363 <pre class="synopsis">
64 "<a class="link" href="GUPnPDLNAInformation.html#GUPnPDLNAInformation--info" title='The "info" property'>info</a>" <a href="../gst-convenience-0.10/gst-convenience-gstdiscoverer.html#GstDiscovererInformation"><span class="type">GstDiscovererInformation</span></a>* : Read / Write / Construct Only
64 "<a class="link" href="GUPnPDLNAInformation.html#GUPnPDLNAInformation--info" title='The "info" property'>info</a>" <span class="type">GstDiscovererInfo</span>* : Read / Write / Construct Only
6565 "<a class="link" href="GUPnPDLNAInformation.html#GUPnPDLNAInformation--mime" title='The "mime" property'>mime</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct Only
6666 "<a class="link" href="GUPnPDLNAInformation.html#GUPnPDLNAInformation--name" title='The "name" property'>name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct Only
6767 </pre>
6868 </div>
69 <div class="refsect1" title="Description">
69 <div class="refsect1">
7070 <a name="GUPnPDLNAInformation.description"></a><h2>Description</h2>
7171 <p>
7272 The GUPnPDLNAInformation object holds metadata information discovered by the
7373 GUPnPDiscoverer API. The DLNA profile name and MIME type have their own
74 fields, and other metadata is held in a GstDiscovererInformation structure.
74 fields, and other metadata is held in a GstDiscovererInfo structure.
7575 All fields are read-only.
7676 </p>
7777 </div>
78 <div class="refsect1" title="Details">
78 <div class="refsect1">
7979 <a name="GUPnPDLNAInformation.details"></a><h2>Details</h2>
80 <div class="refsect2" title="GUPnPDLNAInformation">
80 <div class="refsect2">
8181 <a name="GUPnPDLNAInformation-struct"></a><h3>GUPnPDLNAInformation</h3>
8282 <pre class="programlisting">typedef struct _GUPnPDLNAInformation GUPnPDLNAInformation;</pre>
8383 </div>
8484 <hr>
85 <div class="refsect2" title="gupnp_dlna_information_new ()">
85 <div class="refsect2">
8686 <a name="gupnp-dlna-information-new"></a><h3>gupnp_dlna_information_new ()</h3>
8787 <pre class="programlisting"><a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="returnvalue">GUPnPDLNAInformation</span></a> * gupnp_dlna_information_new (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
8888 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *mime</code></em>,
89 <em class="parameter"><code><a href="../gst-convenience-0.10/gst-convenience-gstdiscoverer.html#GstDiscovererInformation"><span class="type">GstDiscovererInformation</span></a> *info</code></em>);</pre>
89 <em class="parameter"><code><span class="type">GstDiscovererInfo</span> *info</code></em>);</pre>
9090 <p>
9191 Creates a new <a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> object with the given properties.
9292 </p>
9595 <tbody>
9696 <tr>
9797 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
98 <td>DLNA media profile name corresponding to the media
99 </td>
98 <td>DLNA media profile name corresponding to the media</td>
10099 </tr>
101100 <tr>
102101 <td><p><span class="term"><em class="parameter"><code>mime</code></em> :</span></p></td>
103 <td>DLNA MIME type for the media
104 </td>
102 <td>DLNA MIME type for the media</td>
105103 </tr>
106104 <tr>
107105 <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
108106 <td>
109 <a href="../gst-convenience-0.10/gst-convenience-gstdiscoverer.html#GstDiscovererInformation"><span class="type">GstDiscovererInformation</span></a> type with additional metadata about the
110 stream
111 </td>
107 <span class="type">GstDiscovererInfo</span> type with additional metadata about the
108 stream</td>
112109 </tr>
113110 <tr>
114111 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
115 <td> A newly created <a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> object.
116 </td>
112 <td>A newly created <a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> object.</td>
117113 </tr>
118114 </tbody>
119115 </table></div>
120116 </div>
121117 <hr>
122 <div class="refsect2" title="gupnp_dlna_information_get_name ()">
118 <div class="refsect2">
123119 <a name="gupnp-dlna-information-get-name"></a><h3>gupnp_dlna_information_get_name ()</h3>
124120 <pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gupnp_dlna_information_get_name (<em class="parameter"><code><a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> *self</code></em>);</pre>
125121 <div class="variablelist"><table border="0">
127123 <tbody>
128124 <tr>
129125 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
130 <td>The <a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> object
131 </td>
126 <td>The <a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> object</td>
132127 </tr>
133128 <tr>
134129 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
135 <td> the DLNA profile name of the stream represented by <em class="parameter"><code>self</code></em>. Do not
136 free this string.
137 </td>
130 <td>the DLNA profile name of the stream represented by <em class="parameter"><code>self</code></em>. Do not
131 free this string.</td>
138132 </tr>
139133 </tbody>
140134 </table></div>
141135 </div>
142136 <hr>
143 <div class="refsect2" title="gupnp_dlna_information_get_mime ()">
137 <div class="refsect2">
144138 <a name="gupnp-dlna-information-get-mime"></a><h3>gupnp_dlna_information_get_mime ()</h3>
145139 <pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gupnp_dlna_information_get_mime (<em class="parameter"><code><a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> *self</code></em>);</pre>
146140 <div class="variablelist"><table border="0">
148142 <tbody>
149143 <tr>
150144 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
151 <td>The <a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> object
152 </td>
145 <td>The <a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> object</td>
153146 </tr>
154147 <tr>
155148 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
156 <td> the DLNA MIME type of the stream represented by <em class="parameter"><code>self</code></em>. Do not
157 free this string.
158 </td>
149 <td>the DLNA MIME type of the stream represented by <em class="parameter"><code>self</code></em>. Do not
150 free this string.</td>
159151 </tr>
160152 </tbody>
161153 </table></div>
162154 </div>
163155 <hr>
164 <div class="refsect2" title="gupnp_dlna_information_get_info ()">
156 <div class="refsect2">
165157 <a name="gupnp-dlna-information-get-info"></a><h3>gupnp_dlna_information_get_info ()</h3>
166 <pre class="programlisting">const <a href="../gst-convenience-0.10/gst-convenience-gstdiscoverer.html#GstDiscovererInformation"><span class="returnvalue">GstDiscovererInformation</span></a> * gupnp_dlna_information_get_info
158 <pre class="programlisting">const <span class="returnvalue">GstDiscovererInfo</span> * gupnp_dlna_information_get_info
167159 (<em class="parameter"><code><a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> *self</code></em>);</pre>
168 <div class="variablelist"><table border="0">
169 <col align="left" valign="top">
170 <tbody>
171 <tr>
172 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
173 <td>The <a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> object
174 </td>
175 </tr>
176 <tr>
177 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
178 <td> additional stream metadata for <em class="parameter"><code>self</code></em> in the form of a
179 <a href="../gst-convenience-0.10/gst-convenience-gstdiscoverer.html#GstDiscovererInformation"><span class="type">GstDiscovererInformation</span></a> structure. Do not free this structure.
180 </td>
181 </tr>
182 </tbody>
183 </table></div>
184160 </div>
185161 </div>
186 <div class="refsect1" title="Property Details">
162 <div class="refsect1">
187163 <a name="GUPnPDLNAInformation.property-details"></a><h2>Property Details</h2>
188 <div class="refsect2" title='The "info" property'>
164 <div class="refsect2">
189165 <a name="GUPnPDLNAInformation--info"></a><h3>The <code class="literal">"info"</code> property</h3>
190 <pre class="programlisting"> "info" <a href="../gst-convenience-0.10/gst-convenience-gstdiscoverer.html#GstDiscovererInformation"><span class="type">GstDiscovererInformation</span></a>* : Read / Write / Construct Only</pre>
191 <p>Metadata of the stream in a GstDiscovererInformation structure.</p>
166 <pre class="programlisting"> "info" <span class="type">GstDiscovererInfo</span>* : Read / Write / Construct Only</pre>
167 <p>Metadata of the stream in a GstDiscovererInfo structure.</p>
192168 </div>
193169 <hr>
194 <div class="refsect2" title='The "mime" property'>
170 <div class="refsect2">
195171 <a name="GUPnPDLNAInformation--mime"></a><h3>The <code class="literal">"mime"</code> property</h3>
196172 <pre class="programlisting"> "mime" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct Only</pre>
197173 <p>The DLNA MIME type of the stream.</p>
198174 <p>Default value: NULL</p>
199175 </div>
200176 <hr>
201 <div class="refsect2" title='The "name" property'>
177 <div class="refsect2">
202178 <a name="GUPnPDLNAInformation--name"></a><h3>The <code class="literal">"name"</code> property</h3>
203179 <pre class="programlisting"> "name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct Only</pre>
204180 <p>The name of the DLNA profile corresponding to the strream.</p>
208184 </div>
209185 <div class="footer">
210186 <hr>
211 Generated by GTK-Doc V1.15</div>
187 Generated by GTK-Doc V1.16.1</div>
212188 </body>
213189 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>GUPnPDLNAProfile</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
66 <link rel="home" href="index.html" title="GUPnP DLNA Reference Manual">
77 <link rel="up" href="ch01.html" title="GUPnP DLNA">
88 <link rel="prev" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation">
9 <meta name="generator" content="GTK-Doc V1.15 (XML mode)">
9 <meta name="generator" content="GTK-Doc V1.16.1 (XML mode)">
1010 <link rel="stylesheet" href="style.css" type="text/css">
1111 </head>
1212 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
2828 <a href="#GUPnPDLNAProfile.properties" class="shortcut">Properties</a>
2929 </td></tr>
3030 </table>
31 <div class="refentry" title="GUPnPDLNAProfile">
31 <div class="refentry">
3232 <a name="GUPnPDLNAProfile"></a><div class="titlepage"></div>
3333 <div class="refnamediv"><table width="100%"><tr>
3434 <td valign="top">
3737 </td>
3838 <td valign="top" align="right"></td>
3939 </tr></table></div>
40 <div class="refsynopsisdiv" title="Synopsis">
40 <div class="refsynopsisdiv">
4141 <a name="GUPnPDLNAProfile.synopsis"></a><h2>Synopsis</h2>
4242 <pre class="synopsis"> <a class="link" href="GUPnPDLNAProfile.html#GUPnPDLNAProfile-struct" title="GUPnPDLNAProfile">GUPnPDLNAProfile</a>;
4343 <a class="link" href="GUPnPDLNAProfile.html#GUPnPDLNAProfileClass" title="GUPnPDLNAProfileClass">GUPnPDLNAProfileClass</a>;
44 <a class="link" href="GUPnPDLNAProfile.html" title="GUPnPDLNAProfile"><span class="returnvalue">GUPnPDLNAProfile</span></a>* <a class="link" href="GUPnPDLNAProfile.html#gupnp-dlna-profile-new" title="gupnp_dlna_profile_new ()">gupnp_dlna_profile_new</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
44 <a class="link" href="GUPnPDLNAProfile.html" title="GUPnPDLNAProfile"><span class="returnvalue">GUPnPDLNAProfile</span></a> * <a class="link" href="GUPnPDLNAProfile.html#gupnp-dlna-profile-new" title="gupnp_dlna_profile_new ()">gupnp_dlna_profile_new</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
4545 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *mime</code></em>,
46 <em class="parameter"><code><a href="../gst-convenience-0.10/gst-convenience-gstprofile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *enc_profile</code></em>,
46 <em class="parameter"><code><span class="type">GstCaps</span> *container_caps</code></em>,
47 <em class="parameter"><code><span class="type">GstCaps</span> *video_caps</code></em>,
48 <em class="parameter"><code><span class="type">GstCaps</span> *audio_caps</code></em>,
4749 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> extended</code></em>);
4850 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="GUPnPDLNAProfile.html#gupnp-dlna-profile-get-name" title="gupnp_dlna_profile_get_name ()">gupnp_dlna_profile_get_name</a> (<em class="parameter"><code><a class="link" href="GUPnPDLNAProfile.html" title="GUPnPDLNAProfile"><span class="type">GUPnPDLNAProfile</span></a> *self</code></em>);
4951 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="GUPnPDLNAProfile.html#gupnp-dlna-profile-get-mime" title="gupnp_dlna_profile_get_mime ()">gupnp_dlna_profile_get_mime</a> (<em class="parameter"><code><a class="link" href="GUPnPDLNAProfile.html" title="GUPnPDLNAProfile"><span class="type">GUPnPDLNAProfile</span></a> *self</code></em>);
50 const <a href="../gst-convenience-0.10/gst-convenience-gstprofile.html#GstEncodingProfile"><span class="returnvalue">GstEncodingProfile</span></a> * <a class="link" href="GUPnPDLNAProfile.html#gupnp-dlna-profile-get-encoding-profile" title="gupnp_dlna_profile_get_encoding_profile ()">gupnp_dlna_profile_get_encoding_profile</a>
52 <a href="/opt/gnome2/share/gtk-doc/html/gst-convenience-0.10/gst-convenience-gstprofile.html#GstEncodingProfile"><span class="returnvalue">GstEncodingProfile</span></a> * <a class="link" href="GUPnPDLNAProfile.html#gupnp-dlna-profile-get-encoding-profile" title="gupnp_dlna_profile_get_encoding_profile ()">gupnp_dlna_profile_get_encoding_profile</a>
5153 (<em class="parameter"><code><a class="link" href="GUPnPDLNAProfile.html" title="GUPnPDLNAProfile"><span class="type">GUPnPDLNAProfile</span></a> *self</code></em>);
5254 </pre>
5355 </div>
54 <div class="refsect1" title="Object Hierarchy">
56 <div class="refsect1">
5557 <a name="GUPnPDLNAProfile.object-hierarchy"></a><h2>Object Hierarchy</h2>
5658 <pre class="synopsis">
5759 <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
5860 +----GUPnPDLNAProfile
5961 </pre>
6062 </div>
61 <div class="refsect1" title="Properties">
63 <div class="refsect1">
6264 <a name="GUPnPDLNAProfile.properties"></a><h2>Properties</h2>
6365 <pre class="synopsis">
64 "<a class="link" href="GUPnPDLNAProfile.html#GUPnPDLNAProfile--encoding-profile" title='The "encoding-profile" property'>encoding-profile</a>" <a href="../gst-convenience-0.10/gst-convenience-gstprofile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>* : Read / Write / Construct Only
66 "<a class="link" href="GUPnPDLNAProfile.html#GUPnPDLNAProfile--encoding-profile" title='The "encoding-profile" property'>encoding-profile</a>" <a href="/opt/gnome2/share/gtk-doc/html/gst-convenience-0.10/gst-convenience-gstprofile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>* : Read
6567 "<a class="link" href="GUPnPDLNAProfile.html#GUPnPDLNAProfile--extended" title='The "extended" property'>extended</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct Only
6668 "<a class="link" href="GUPnPDLNAProfile.html#GUPnPDLNAProfile--mime" title='The "mime" property'>mime</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct Only
6769 "<a class="link" href="GUPnPDLNAProfile.html#GUPnPDLNAProfile--name" title='The "name" property'>name</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct Only
6870 </pre>
6971 </div>
70 <div class="refsect1" title="Description">
72 <div class="refsect1">
7173 <a name="GUPnPDLNAProfile.description"></a><h2>Description</h2>
7274 <p>
7375 The <a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="type">GUPnPDLNADiscoverer</span></a> object provides a few APIs that return
7476 <a class="link" href="GUPnPDLNAProfile.html" title="GUPnPDLNAProfile"><span class="type">GUPnPDLNAProfile</span></a> objects. These represent a single DLNA profile. Each
7577 <a class="link" href="GUPnPDLNAProfile.html" title="GUPnPDLNAProfile"><span class="type">GUPnPDLNAProfile</span></a> has a name (the name of the DLNA profile), the
76 corresponding MIME type, and a <a href="../gst-convenience-0.10/gst-convenience-gstprofile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> which represents the
78 corresponding MIME type, and a <a href="/opt/gnome2/share/gtk-doc/html/gst-convenience-0.10/gst-convenience-gstprofile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> which represents the
7779 various audio/video/container restrictions specified for that DLNA profile.
7880 </p>
7981 </div>
80 <div class="refsect1" title="Details">
82 <div class="refsect1">
8183 <a name="GUPnPDLNAProfile.details"></a><h2>Details</h2>
82 <div class="refsect2" title="GUPnPDLNAProfile">
84 <div class="refsect2">
8385 <a name="GUPnPDLNAProfile-struct"></a><h3>GUPnPDLNAProfile</h3>
8486 <pre class="programlisting">typedef struct _GUPnPDLNAProfile GUPnPDLNAProfile;</pre>
85 </div>
86 <hr>
87 <div class="refsect2" title="GUPnPDLNAProfileClass">
87 <p>
88 The top-level object used for the in-memory representation of the DLNA
89 Profiles.
90 </p>
91 </div>
92 <hr>
93 <div class="refsect2">
8894 <a name="GUPnPDLNAProfileClass"></a><h3>GUPnPDLNAProfileClass</h3>
8995 <pre class="programlisting">typedef struct {
90 GObjectClass parent_class;
96 GObjectClass parent_class;
9197 } GUPnPDLNAProfileClass;
9298 </pre>
9399 </div>
94100 <hr>
95 <div class="refsect2" title="gupnp_dlna_profile_new ()">
101 <div class="refsect2">
96102 <a name="gupnp-dlna-profile-new"></a><h3>gupnp_dlna_profile_new ()</h3>
97 <pre class="programlisting"><a class="link" href="GUPnPDLNAProfile.html" title="GUPnPDLNAProfile"><span class="returnvalue">GUPnPDLNAProfile</span></a>* gupnp_dlna_profile_new (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
103 <pre class="programlisting"><a class="link" href="GUPnPDLNAProfile.html" title="GUPnPDLNAProfile"><span class="returnvalue">GUPnPDLNAProfile</span></a> * gupnp_dlna_profile_new (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
98104 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *mime</code></em>,
99 <em class="parameter"><code><a href="../gst-convenience-0.10/gst-convenience-gstprofile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *enc_profile</code></em>,
105 <em class="parameter"><code><span class="type">GstCaps</span> *container_caps</code></em>,
106 <em class="parameter"><code><span class="type">GstCaps</span> *video_caps</code></em>,
107 <em class="parameter"><code><span class="type">GstCaps</span> *audio_caps</code></em>,
100108 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> extended</code></em>);</pre>
101 <p>
102 Creates a new <a class="link" href="GUPnPDLNAProfile.html" title="GUPnPDLNAProfile"><span class="type">GUPnPDLNAProfile</span></a> object.
103 </p>
104 <div class="variablelist"><table border="0">
105 <col align="left" valign="top">
106 <tbody><tr>
107 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
108 <td> A new <a class="link" href="GUPnPDLNAProfile.html" title="GUPnPDLNAProfile"><span class="type">GUPnPDLNAProfile</span></a> object.
109 </td>
110 </tr></tbody>
111 </table></div>
112 </div>
113 <hr>
114 <div class="refsect2" title="gupnp_dlna_profile_get_name ()">
109 </div>
110 <hr>
111 <div class="refsect2">
115112 <a name="gupnp-dlna-profile-get-name"></a><h3>gupnp_dlna_profile_get_name ()</h3>
116113 <pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gupnp_dlna_profile_get_name (<em class="parameter"><code><a class="link" href="GUPnPDLNAProfile.html" title="GUPnPDLNAProfile"><span class="type">GUPnPDLNAProfile</span></a> *self</code></em>);</pre>
117114 <div class="variablelist"><table border="0">
119116 <tbody>
120117 <tr>
121118 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
122 <td>The <a class="link" href="GUPnPDLNAProfile.html" title="GUPnPDLNAProfile"><span class="type">GUPnPDLNAProfile</span></a> object
123 </td>
119 <td>The <a class="link" href="GUPnPDLNAProfile.html" title="GUPnPDLNAProfile"><span class="type">GUPnPDLNAProfile</span></a> object</td>
124120 </tr>
125121 <tr>
126122 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
127 <td> the name of the DLNA profile represented by <em class="parameter"><code>self</code></em>
123 <td>the name of the DLNA profile represented by <em class="parameter"><code>self</code></em>
128124 </td>
129125 </tr>
130126 </tbody>
131127 </table></div>
132128 </div>
133129 <hr>
134 <div class="refsect2" title="gupnp_dlna_profile_get_mime ()">
130 <div class="refsect2">
135131 <a name="gupnp-dlna-profile-get-mime"></a><h3>gupnp_dlna_profile_get_mime ()</h3>
136132 <pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gupnp_dlna_profile_get_mime (<em class="parameter"><code><a class="link" href="GUPnPDLNAProfile.html" title="GUPnPDLNAProfile"><span class="type">GUPnPDLNAProfile</span></a> *self</code></em>);</pre>
137133 <div class="variablelist"><table border="0">
139135 <tbody>
140136 <tr>
141137 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
142 <td>The <a class="link" href="GUPnPDLNAProfile.html" title="GUPnPDLNAProfile"><span class="type">GUPnPDLNAProfile</span></a> object
143 </td>
138 <td>The <a class="link" href="GUPnPDLNAProfile.html" title="GUPnPDLNAProfile"><span class="type">GUPnPDLNAProfile</span></a> object</td>
144139 </tr>
145140 <tr>
146141 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
147 <td> the DLNA MIME type of the DLNA profile represented by <em class="parameter"><code>self</code></em>
142 <td>the DLNA MIME type of the DLNA profile represented by <em class="parameter"><code>self</code></em>
148143 </td>
149144 </tr>
150145 </tbody>
151146 </table></div>
152147 </div>
153148 <hr>
154 <div class="refsect2" title="gupnp_dlna_profile_get_encoding_profile ()">
149 <div class="refsect2">
155150 <a name="gupnp-dlna-profile-get-encoding-profile"></a><h3>gupnp_dlna_profile_get_encoding_profile ()</h3>
156 <pre class="programlisting">const <a href="../gst-convenience-0.10/gst-convenience-gstprofile.html#GstEncodingProfile"><span class="returnvalue">GstEncodingProfile</span></a> * gupnp_dlna_profile_get_encoding_profile
151 <pre class="programlisting"><a href="/opt/gnome2/share/gtk-doc/html/gst-convenience-0.10/gst-convenience-gstprofile.html#GstEncodingProfile"><span class="returnvalue">GstEncodingProfile</span></a> * gupnp_dlna_profile_get_encoding_profile
157152 (<em class="parameter"><code><a class="link" href="GUPnPDLNAProfile.html" title="GUPnPDLNAProfile"><span class="type">GUPnPDLNAProfile</span></a> *self</code></em>);</pre>
158153 <div class="variablelist"><table border="0">
159154 <col align="left" valign="top">
160155 <tbody>
161156 <tr>
162157 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
163 <td>The <a class="link" href="GUPnPDLNAProfile.html" title="GUPnPDLNAProfile"><span class="type">GUPnPDLNAProfile</span></a> object
164 </td>
158 <td>The <a class="link" href="GUPnPDLNAProfile.html" title="GUPnPDLNAProfile"><span class="type">GUPnPDLNAProfile</span></a> object</td>
165159 </tr>
166160 <tr>
167161 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
168 <td> a <a href="../gst-convenience-0.10/gst-convenience-gstprofile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> object that, in a future version, can be used
169 to transcode a given stream to match the DLNA profile represented
170 by <em class="parameter"><code>self</code></em>.
171 </td>
162 <td>a <a href="/opt/gnome2/share/gtk-doc/html/gst-convenience-0.10/gst-convenience-gstprofile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> object that, in a future version, can be used
163 to transcode a given stream to match the DLNA profile represented
164 by <em class="parameter"><code>self</code></em>.
165 The receiver must unref the returned <a href="/opt/gnome2/share/gtk-doc/html/gst-convenience-0.10/gst-convenience-gstprofile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> when done
166 using it.</td>
172167 </tr>
173168 </tbody>
174169 </table></div>
175170 </div>
176171 </div>
177 <div class="refsect1" title="Property Details">
172 <div class="refsect1">
178173 <a name="GUPnPDLNAProfile.property-details"></a><h2>Property Details</h2>
179 <div class="refsect2" title='The "encoding-profile" property'>
174 <div class="refsect2">
180175 <a name="GUPnPDLNAProfile--encoding-profile"></a><h3>The <code class="literal">"encoding-profile"</code> property</h3>
181 <pre class="programlisting"> "encoding-profile" <a href="../gst-convenience-0.10/gst-convenience-gstprofile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>* : Read / Write / Construct Only</pre>
182 <p>GstEncodingProfile object corresponding to the DLNA profile.</p>
183 </div>
184 <hr>
185 <div class="refsect2" title='The "extended" property'>
176 <pre class="programlisting"> "encoding-profile" <a href="/opt/gnome2/share/gtk-doc/html/gst-convenience-0.10/gst-convenience-gstprofile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>* : Read</pre>
177 <p>GstEncodingProfile objectcorresponding to the DLNA profile.</p>
178 </div>
179 <hr>
180 <div class="refsect2">
186181 <a name="GUPnPDLNAProfile--extended"></a><h3>The <code class="literal">"extended"</code> property</h3>
187182 <pre class="programlisting"> "extended" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct Only</pre>
188183 <p>Indicates that this profile is not part of the DLNA specification.</p>
189184 <p>Default value: FALSE</p>
190185 </div>
191186 <hr>
192 <div class="refsect2" title='The "mime" property'>
187 <div class="refsect2">
193188 <a name="GUPnPDLNAProfile--mime"></a><h3>The <code class="literal">"mime"</code> property</h3>
194189 <pre class="programlisting"> "mime" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct Only</pre>
195190 <p>The MIME type of the DLNA profile.</p>
196191 <p>Default value: NULL</p>
197192 </div>
198193 <hr>
199 <div class="refsect2" title='The "name" property'>
194 <div class="refsect2">
200195 <a name="GUPnPDLNAProfile--name"></a><h3>The <code class="literal">"name"</code> property</h3>
201196 <pre class="programlisting"> "name" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write / Construct Only</pre>
202197 <p>The name of the DLNA profile .</p>
206201 </div>
207202 <div class="footer">
208203 <hr>
209 Generated by GTK-Doc V1.15</div>
204 Generated by GTK-Doc V1.16.1</div>
210205 </body>
211206 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>GUPnP DLNA</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
66 <link rel="home" href="index.html" title="GUPnP DLNA Reference Manual">
77 <link rel="up" href="index.html" title="GUPnP DLNA Reference Manual">
88 <link rel="prev" href="index.html" title="GUPnP DLNA Reference Manual">
99 <link rel="next" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer">
10 <meta name="generator" content="GTK-Doc V1.15 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.16.1 (XML mode)">
1111 <link rel="stylesheet" href="style.css" type="text/css">
1212 </head>
1313 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
1818 <th width="100%" align="center">GUPnP DLNA Reference Manual</th>
1919 <td><a accesskey="n" href="GUPnPDLNADiscoverer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
2020 </tr></table>
21 <div class="chapter" title="GUPnP DLNA">
21 <div class="chapter">
2222 <div class="titlepage"><div><div><h2 class="title">
23 <a name="id469156"></a>GUPnP DLNA</h2></div></div></div>
23 <a name="id2876831"></a>GUPnP DLNA</h2></div></div></div>
2424 <div class="toc"><dl>
2525 <dt>
2626 <span class="refentrytitle"><a href="GUPnPDLNADiscoverer.html">GUPnPDLNADiscoverer</a></span><span class="refpurpose"> — Utility API for discovering DLNA profile/mime type and
2828 </dt>
2929 <dt>
3030 <span class="refentrytitle"><a href="GUPnPDLNAInformation.html">GUPnPDLNAInformation</a></span><span class="refpurpose"> — Object containing metadata information returned by the
31 <span class="type">GUPNPDLNADiscoverer</span> API</span>
31 <a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="type">GUPnPDLNADiscoverer</span></a> API</span>
3232 </dt>
3333 <dt>
3434 <span class="refentrytitle"><a href="GUPnPDLNAProfile.html">GUPnPDLNAProfile</a></span><span class="refpurpose"> — Object representing a DLNA profile</span>
4545 </div>
4646 <div class="footer">
4747 <hr>
48 Generated by GTK-Doc V1.15</div>
48 Generated by GTK-Doc V1.16.1</div>
4949 </body>
5050 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>GUPnP DLNA Reference Manual</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
66 <link rel="home" href="index.html" title="GUPnP DLNA Reference Manual">
77 <link rel="next" href="ch01.html" title="GUPnP DLNA">
8 <meta name="generator" content="GTK-Doc V1.15 (XML mode)">
8 <meta name="generator" content="GTK-Doc V1.16.1 (XML mode)">
99 <link rel="stylesheet" href="style.css" type="text/css">
1010 </head>
1111 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
12 <div class="book" title="GUPnP DLNA Reference Manual">
12 <div class="book">
1313 <div class="titlepage">
1414 <div>
1515 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GUPnP DLNA Reference Manual</p></th></tr></table></div>
16 <div><p class="releaseinfo">Version 0.4.2
16 <div><p class="releaseinfo">Version 0.5.1
1717 </p></div>
1818 <div><p class="copyright">Copyright © 2010 Arun Raghavan &lt;arun.raghavan@collabora.co.uk&gt;</p></div>
1919 <div><p class="copyright">Copyright © 2010 Collabora Multimedia</p></div>
2020 <div><p class="copyright">Copyright © 2010 Nokia Corporation</p></div>
21 <div><div class="legalnotice" title="Legal Notice">
22 <a name="id444158"></a><p>
21 <div><div class="legalnotice">
22 <a name="id2876778"></a><p>
2323 Permission is granted to copy, distribute and/or modify this
2424 document under the terms of the <em class="citetitle">GNU Free
2525 Documentation License</em>, Version 1.1 or any later
5252 </dt>
5353 <dt>
5454 <span class="refentrytitle"><a href="GUPnPDLNAInformation.html">GUPnPDLNAInformation</a></span><span class="refpurpose"> — Object containing metadata information returned by the
55 <span class="type">GUPNPDLNADiscoverer</span> API</span>
55 <a class="link" href="GUPnPDLNADiscoverer.html" title="GUPnPDLNADiscoverer"><span class="type">GUPnPDLNADiscoverer</span></a> API</span>
5656 </dt>
5757 <dt>
5858 <span class="refentrytitle"><a href="GUPnPDLNAProfile.html">GUPnPDLNAProfile</a></span><span class="refpurpose"> — Object representing a DLNA profile</span>
6262 </div>
6363 <div class="footer">
6464 <hr>
65 Generated by GTK-Doc V1.15</div>
65 Generated by GTK-Doc V1.16.1</div>
6666 </body>
6767 </html>
3131 /* this is needed so that the local anchors are displayed below the naviagtion */
3232 div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
3333 {
34 display: inline-block;
3435 position: relative;
35 padding-top:4.5em;
36 top:-5em;
3637 }
3738 /* this seems to be a bug in the xsl style sheets when generating indexes */
3839 div.index div.index
0 0.4.2
0 0.6.0
+0
-16
gst-convenience/Makefile.am less more
0 SUBDIRS = gst-libs
1
2 vapidir = $(datadir)/vala/vapi
3 vapifiles = gstreamer-discoverer-gupnp-dlna-0.10.vapi gstreamer-profile-gupnp-dlna-0.10.vapi
4 vapideps = gstreamer-discoverer-gupnp-dlna-0.10.deps gstreamer-profile-gupnp-dlna-0.10.deps
5
6 EXTRA_DIST = $(vapifiles) $(vapideps)
7
8 install-data-local:
9 $(INSTALL) -d ${DESTDIR}$(vapidir) -m 755
10 @for i in $(vapifiles) $(vapideps); do \
11 $(INSTALL_DATA) $(top_srcdir)/gst-convenience/$${i} ${DESTDIR}$(vapidir)/; \
12 done
13
14 uninstall-local:
15 cd ${DESTDIR}${vapidir} && rm -f ${vapifiles} ${vapideps}
+0
-589
gst-convenience/Makefile.in less more
0 # Makefile.in generated by automake 1.11.1 from Makefile.am.
1 # @configure_input@
2
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.
6 # This Makefile.in is free software; the Free Software Foundation
7 # gives unlimited permission to copy and/or distribute it,
8 # with or without modifications, as long as this notice is preserved.
9
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
12 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13 # PARTICULAR PURPOSE.
14
15 @SET_MAKE@
16 VPATH = @srcdir@
17 pkgdatadir = $(datadir)/@PACKAGE@
18 pkgincludedir = $(includedir)/@PACKAGE@
19 pkglibdir = $(libdir)/@PACKAGE@
20 pkglibexecdir = $(libexecdir)/@PACKAGE@
21 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
22 install_sh_DATA = $(install_sh) -c -m 644
23 install_sh_PROGRAM = $(install_sh) -c
24 install_sh_SCRIPT = $(install_sh) -c
25 INSTALL_HEADER = $(INSTALL_DATA)
26 transform = $(program_transform_name)
27 NORMAL_INSTALL = :
28 PRE_INSTALL = :
29 POST_INSTALL = :
30 NORMAL_UNINSTALL = :
31 PRE_UNINSTALL = :
32 POST_UNINSTALL = :
33 build_triplet = @build@
34 host_triplet = @host@
35 subdir = gst-convenience
36 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
37 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
38 am__aclocal_m4_deps = $(top_srcdir)/configure.ac
39 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
40 $(ACLOCAL_M4)
41 mkinstalldirs = $(install_sh) -d
42 CONFIG_HEADER = $(top_builddir)/config.h
43 CONFIG_CLEAN_FILES =
44 CONFIG_CLEAN_VPATH_FILES =
45 AM_V_GEN = $(am__v_GEN_$(V))
46 am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
47 am__v_GEN_0 = @echo " GEN " $@;
48 AM_V_at = $(am__v_at_$(V))
49 am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
50 am__v_at_0 = @
51 SOURCES =
52 DIST_SOURCES =
53 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
54 html-recursive info-recursive install-data-recursive \
55 install-dvi-recursive install-exec-recursive \
56 install-html-recursive install-info-recursive \
57 install-pdf-recursive install-ps-recursive install-recursive \
58 installcheck-recursive installdirs-recursive pdf-recursive \
59 ps-recursive uninstall-recursive
60 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
61 distclean-recursive maintainer-clean-recursive
62 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
63 $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
64 distdir
65 ETAGS = etags
66 CTAGS = ctags
67 DIST_SUBDIRS = $(SUBDIRS)
68 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
69 am__relativize = \
70 dir0=`pwd`; \
71 sed_first='s,^\([^/]*\)/.*$$,\1,'; \
72 sed_rest='s,^[^/]*/*,,'; \
73 sed_last='s,^.*/\([^/]*\)$$,\1,'; \
74 sed_butlast='s,/*[^/]*$$,,'; \
75 while test -n "$$dir1"; do \
76 first=`echo "$$dir1" | sed -e "$$sed_first"`; \
77 if test "$$first" != "."; then \
78 if test "$$first" = ".."; then \
79 dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
80 dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
81 else \
82 first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
83 if test "$$first2" = "$$first"; then \
84 dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
85 else \
86 dir2="../$$dir2"; \
87 fi; \
88 dir0="$$dir0"/"$$first"; \
89 fi; \
90 fi; \
91 dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
92 done; \
93 reldir="$$dir2"
94 ACLOCAL = @ACLOCAL@
95 AMTAR = @AMTAR@
96 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
97 AR = @AR@
98 AS = @AS@
99 AUTOCONF = @AUTOCONF@
100 AUTOHEADER = @AUTOHEADER@
101 AUTOMAKE = @AUTOMAKE@
102 AWK = @AWK@
103 CC = @CC@
104 CCDEPMODE = @CCDEPMODE@
105 CFLAGS = @CFLAGS@
106 CPP = @CPP@
107 CPPFLAGS = @CPPFLAGS@
108 CYGPATH_W = @CYGPATH_W@
109 DEFS = @DEFS@
110 DEPDIR = @DEPDIR@
111 DLLTOOL = @DLLTOOL@
112 DSYMUTIL = @DSYMUTIL@
113 DUMPBIN = @DUMPBIN@
114 ECHO_C = @ECHO_C@
115 ECHO_N = @ECHO_N@
116 ECHO_T = @ECHO_T@
117 EGREP = @EGREP@
118 EXEEXT = @EXEEXT@
119 FGREP = @FGREP@
120 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
121 GREP = @GREP@
122 GST_BASE_CFLAGS = @GST_BASE_CFLAGS@
123 GST_BASE_LIBS = @GST_BASE_LIBS@
124 GST_CFLAGS = @GST_CFLAGS@
125 GST_LIBS = @GST_LIBS@
126 GST_MAJORMINOR = @GST_MAJORMINOR@
127 GST_VIDEO_CFLAGS = @GST_VIDEO_CFLAGS@
128 GST_VIDEO_LIBS = @GST_VIDEO_LIBS@
129 GTKDOC_CHECK = @GTKDOC_CHECK@
130 GTKDOC_MKPDF = @GTKDOC_MKPDF@
131 GTKDOC_REBASE = @GTKDOC_REBASE@
132 GUPNP_DLNA_VERSION_INFO = @GUPNP_DLNA_VERSION_INFO@
133 HTML_DIR = @HTML_DIR@
134 INSTALL = @INSTALL@
135 INSTALL_DATA = @INSTALL_DATA@
136 INSTALL_PROGRAM = @INSTALL_PROGRAM@
137 INSTALL_SCRIPT = @INSTALL_SCRIPT@
138 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
139 LD = @LD@
140 LDFLAGS = @LDFLAGS@
141 LIBOBJS = @LIBOBJS@
142 LIBS = @LIBS@
143 LIBTOOL = @LIBTOOL@
144 LIBXML_CFLAGS = @LIBXML_CFLAGS@
145 LIBXML_LIBS = @LIBXML_LIBS@
146 LIPO = @LIPO@
147 LN_S = @LN_S@
148 LTLIBOBJS = @LTLIBOBJS@
149 MAKEINFO = @MAKEINFO@
150 MKDIR_P = @MKDIR_P@
151 NM = @NM@
152 NMEDIT = @NMEDIT@
153 OBJDUMP = @OBJDUMP@
154 OBJEXT = @OBJEXT@
155 OTOOL = @OTOOL@
156 OTOOL64 = @OTOOL64@
157 PACKAGE = @PACKAGE@
158 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
159 PACKAGE_NAME = @PACKAGE_NAME@
160 PACKAGE_STRING = @PACKAGE_STRING@
161 PACKAGE_TARNAME = @PACKAGE_TARNAME@
162 PACKAGE_URL = @PACKAGE_URL@
163 PACKAGE_VERSION = @PACKAGE_VERSION@
164 PATH_SEPARATOR = @PATH_SEPARATOR@
165 PKG_CONFIG = @PKG_CONFIG@
166 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
167 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
168 RANLIB = @RANLIB@
169 SED = @SED@
170 SET_MAKE = @SET_MAKE@
171 SHELL = @SHELL@
172 STRIP = @STRIP@
173 VERSION = @VERSION@
174 abs_builddir = @abs_builddir@
175 abs_srcdir = @abs_srcdir@
176 abs_top_builddir = @abs_top_builddir@
177 abs_top_srcdir = @abs_top_srcdir@
178 ac_ct_CC = @ac_ct_CC@
179 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
180 am__include = @am__include@
181 am__leading_dot = @am__leading_dot@
182 am__quote = @am__quote@
183 am__tar = @am__tar@
184 am__untar = @am__untar@
185 bindir = @bindir@
186 build = @build@
187 build_alias = @build_alias@
188 build_cpu = @build_cpu@
189 build_os = @build_os@
190 build_vendor = @build_vendor@
191 builddir = @builddir@
192 datadir = @datadir@
193 datarootdir = @datarootdir@
194 docdir = @docdir@
195 dvidir = @dvidir@
196 exec_prefix = @exec_prefix@
197 host = @host@
198 host_alias = @host_alias@
199 host_cpu = @host_cpu@
200 host_os = @host_os@
201 host_vendor = @host_vendor@
202 htmldir = @htmldir@
203 includedir = @includedir@
204 infodir = @infodir@
205 install_sh = @install_sh@
206 libdir = @libdir@
207 libexecdir = @libexecdir@
208 localedir = @localedir@
209 localstatedir = @localstatedir@
210 mandir = @mandir@
211 mkdir_p = @mkdir_p@
212 oldincludedir = @oldincludedir@
213 pdfdir = @pdfdir@
214 prefix = @prefix@
215 program_transform_name = @program_transform_name@
216 psdir = @psdir@
217 sbindir = @sbindir@
218 sharedstatedir = @sharedstatedir@
219 srcdir = @srcdir@
220 sysconfdir = @sysconfdir@
221 target_alias = @target_alias@
222 top_build_prefix = @top_build_prefix@
223 top_builddir = @top_builddir@
224 top_srcdir = @top_srcdir@
225 SUBDIRS = gst-libs
226 vapidir = $(datadir)/vala/vapi
227 vapifiles = gstreamer-discoverer-gupnp-dlna-0.10.vapi gstreamer-profile-gupnp-dlna-0.10.vapi
228 vapideps = gstreamer-discoverer-gupnp-dlna-0.10.deps gstreamer-profile-gupnp-dlna-0.10.deps
229 EXTRA_DIST = $(vapifiles) $(vapideps)
230 all: all-recursive
231
232 .SUFFIXES:
233 $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
234 @for dep in $?; do \
235 case '$(am__configure_deps)' in \
236 *$$dep*) \
237 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
238 && { if test -f $@; then exit 0; else break; fi; }; \
239 exit 1;; \
240 esac; \
241 done; \
242 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-convenience/Makefile'; \
243 $(am__cd) $(top_srcdir) && \
244 $(AUTOMAKE) --gnu gst-convenience/Makefile
245 .PRECIOUS: Makefile
246 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
247 @case '$?' in \
248 *config.status*) \
249 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
250 *) \
251 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
252 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
253 esac;
254
255 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
256 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
257
258 $(top_srcdir)/configure: $(am__configure_deps)
259 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
260 $(ACLOCAL_M4): $(am__aclocal_m4_deps)
261 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
262 $(am__aclocal_m4_deps):
263
264 mostlyclean-libtool:
265 -rm -f *.lo
266
267 clean-libtool:
268 -rm -rf .libs _libs
269
270 # This directory's subdirectories are mostly independent; you can cd
271 # into them and run `make' without going through this Makefile.
272 # To change the values of `make' variables: instead of editing Makefiles,
273 # (1) if the variable is set in `config.status', edit `config.status'
274 # (which will cause the Makefiles to be regenerated when you run `make');
275 # (2) otherwise, pass the desired values on the `make' command line.
276 $(RECURSIVE_TARGETS):
277 @fail= failcom='exit 1'; \
278 for f in x $$MAKEFLAGS; do \
279 case $$f in \
280 *=* | --[!k]*);; \
281 *k*) failcom='fail=yes';; \
282 esac; \
283 done; \
284 dot_seen=no; \
285 target=`echo $@ | sed s/-recursive//`; \
286 list='$(SUBDIRS)'; for subdir in $$list; do \
287 echo "Making $$target in $$subdir"; \
288 if test "$$subdir" = "."; then \
289 dot_seen=yes; \
290 local_target="$$target-am"; \
291 else \
292 local_target="$$target"; \
293 fi; \
294 ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
295 || eval $$failcom; \
296 done; \
297 if test "$$dot_seen" = "no"; then \
298 $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
299 fi; test -z "$$fail"
300
301 $(RECURSIVE_CLEAN_TARGETS):
302 @fail= failcom='exit 1'; \
303 for f in x $$MAKEFLAGS; do \
304 case $$f in \
305 *=* | --[!k]*);; \
306 *k*) failcom='fail=yes';; \
307 esac; \
308 done; \
309 dot_seen=no; \
310 case "$@" in \
311 distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
312 *) list='$(SUBDIRS)' ;; \
313 esac; \
314 rev=''; for subdir in $$list; do \
315 if test "$$subdir" = "."; then :; else \
316 rev="$$subdir $$rev"; \
317 fi; \
318 done; \
319 rev="$$rev ."; \
320 target=`echo $@ | sed s/-recursive//`; \
321 for subdir in $$rev; do \
322 echo "Making $$target in $$subdir"; \
323 if test "$$subdir" = "."; then \
324 local_target="$$target-am"; \
325 else \
326 local_target="$$target"; \
327 fi; \
328 ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
329 || eval $$failcom; \
330 done && test -z "$$fail"
331 tags-recursive:
332 list='$(SUBDIRS)'; for subdir in $$list; do \
333 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
334 done
335 ctags-recursive:
336 list='$(SUBDIRS)'; for subdir in $$list; do \
337 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
338 done
339
340 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
341 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
342 unique=`for i in $$list; do \
343 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
344 done | \
345 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
346 END { if (nonempty) { for (i in files) print i; }; }'`; \
347 mkid -fID $$unique
348 tags: TAGS
349
350 TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
351 $(TAGS_FILES) $(LISP)
352 set x; \
353 here=`pwd`; \
354 if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
355 include_option=--etags-include; \
356 empty_fix=.; \
357 else \
358 include_option=--include; \
359 empty_fix=; \
360 fi; \
361 list='$(SUBDIRS)'; for subdir in $$list; do \
362 if test "$$subdir" = .; then :; else \
363 test ! -f $$subdir/TAGS || \
364 set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
365 fi; \
366 done; \
367 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
368 unique=`for i in $$list; do \
369 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
370 done | \
371 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
372 END { if (nonempty) { for (i in files) print i; }; }'`; \
373 shift; \
374 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
375 test -n "$$unique" || unique=$$empty_fix; \
376 if test $$# -gt 0; then \
377 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
378 "$$@" $$unique; \
379 else \
380 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
381 $$unique; \
382 fi; \
383 fi
384 ctags: CTAGS
385 CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
386 $(TAGS_FILES) $(LISP)
387 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
388 unique=`for i in $$list; do \
389 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
390 done | \
391 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
392 END { if (nonempty) { for (i in files) print i; }; }'`; \
393 test -z "$(CTAGS_ARGS)$$unique" \
394 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
395 $$unique
396
397 GTAGS:
398 here=`$(am__cd) $(top_builddir) && pwd` \
399 && $(am__cd) $(top_srcdir) \
400 && gtags -i $(GTAGS_ARGS) "$$here"
401
402 distclean-tags:
403 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
404
405 distdir: $(DISTFILES)
406 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
407 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
408 list='$(DISTFILES)'; \
409 dist_files=`for file in $$list; do echo $$file; done | \
410 sed -e "s|^$$srcdirstrip/||;t" \
411 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
412 case $$dist_files in \
413 */*) $(MKDIR_P) `echo "$$dist_files" | \
414 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
415 sort -u` ;; \
416 esac; \
417 for file in $$dist_files; do \
418 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
419 if test -d $$d/$$file; then \
420 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
421 if test -d "$(distdir)/$$file"; then \
422 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
423 fi; \
424 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
425 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
426 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
427 fi; \
428 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
429 else \
430 test -f "$(distdir)/$$file" \
431 || cp -p $$d/$$file "$(distdir)/$$file" \
432 || exit 1; \
433 fi; \
434 done
435 @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
436 if test "$$subdir" = .; then :; else \
437 test -d "$(distdir)/$$subdir" \
438 || $(MKDIR_P) "$(distdir)/$$subdir" \
439 || exit 1; \
440 fi; \
441 done
442 @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
443 if test "$$subdir" = .; then :; else \
444 dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
445 $(am__relativize); \
446 new_distdir=$$reldir; \
447 dir1=$$subdir; dir2="$(top_distdir)"; \
448 $(am__relativize); \
449 new_top_distdir=$$reldir; \
450 echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
451 echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
452 ($(am__cd) $$subdir && \
453 $(MAKE) $(AM_MAKEFLAGS) \
454 top_distdir="$$new_top_distdir" \
455 distdir="$$new_distdir" \
456 am__remove_distdir=: \
457 am__skip_length_check=: \
458 am__skip_mode_fix=: \
459 distdir) \
460 || exit 1; \
461 fi; \
462 done
463 check-am: all-am
464 check: check-recursive
465 all-am: Makefile
466 installdirs: installdirs-recursive
467 installdirs-am:
468 install: install-recursive
469 install-exec: install-exec-recursive
470 install-data: install-data-recursive
471 uninstall: uninstall-recursive
472
473 install-am: all-am
474 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
475
476 installcheck: installcheck-recursive
477 install-strip:
478 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
479 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
480 `test -z '$(STRIP)' || \
481 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
482 mostlyclean-generic:
483
484 clean-generic:
485
486 distclean-generic:
487 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
488 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
489
490 maintainer-clean-generic:
491 @echo "This command is intended for maintainers to use"
492 @echo "it deletes files that may require special tools to rebuild."
493 clean: clean-recursive
494
495 clean-am: clean-generic clean-libtool mostlyclean-am
496
497 distclean: distclean-recursive
498 -rm -f Makefile
499 distclean-am: clean-am distclean-generic distclean-tags
500
501 dvi: dvi-recursive
502
503 dvi-am:
504
505 html: html-recursive
506
507 html-am:
508
509 info: info-recursive
510
511 info-am:
512
513 install-data-am: install-data-local
514
515 install-dvi: install-dvi-recursive
516
517 install-dvi-am:
518
519 install-exec-am:
520
521 install-html: install-html-recursive
522
523 install-html-am:
524
525 install-info: install-info-recursive
526
527 install-info-am:
528
529 install-man:
530
531 install-pdf: install-pdf-recursive
532
533 install-pdf-am:
534
535 install-ps: install-ps-recursive
536
537 install-ps-am:
538
539 installcheck-am:
540
541 maintainer-clean: maintainer-clean-recursive
542 -rm -f Makefile
543 maintainer-clean-am: distclean-am maintainer-clean-generic
544
545 mostlyclean: mostlyclean-recursive
546
547 mostlyclean-am: mostlyclean-generic mostlyclean-libtool
548
549 pdf: pdf-recursive
550
551 pdf-am:
552
553 ps: ps-recursive
554
555 ps-am:
556
557 uninstall-am: uninstall-local
558
559 .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
560 install-am install-strip tags-recursive
561
562 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
563 all all-am check check-am clean clean-generic clean-libtool \
564 ctags ctags-recursive distclean distclean-generic \
565 distclean-libtool distclean-tags distdir dvi dvi-am html \
566 html-am info info-am install install-am install-data \
567 install-data-am install-data-local install-dvi install-dvi-am \
568 install-exec install-exec-am install-html install-html-am \
569 install-info install-info-am install-man install-pdf \
570 install-pdf-am install-ps install-ps-am install-strip \
571 installcheck installcheck-am installdirs installdirs-am \
572 maintainer-clean maintainer-clean-generic mostlyclean \
573 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
574 tags tags-recursive uninstall uninstall-am uninstall-local
575
576
577 install-data-local:
578 $(INSTALL) -d ${DESTDIR}$(vapidir) -m 755
579 @for i in $(vapifiles) $(vapideps); do \
580 $(INSTALL_DATA) $(top_srcdir)/gst-convenience/$${i} ${DESTDIR}$(vapidir)/; \
581 done
582
583 uninstall-local:
584 cd ${DESTDIR}${vapidir} && rm -f ${vapifiles} ${vapideps}
585
586 # Tell versions [3.59,3.63) of GNU make to not export all variables.
587 # Otherwise a system limit (for SysV at least) may be exceeded.
588 .NOEXPORT:
+0
-1
gst-convenience/gst-libs/Makefile.am less more
0 SUBDIRS = gst
+0
-576
gst-convenience/gst-libs/Makefile.in less more
0 # Makefile.in generated by automake 1.11.1 from Makefile.am.
1 # @configure_input@
2
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.
6 # This Makefile.in is free software; the Free Software Foundation
7 # gives unlimited permission to copy and/or distribute it,
8 # with or without modifications, as long as this notice is preserved.
9
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
12 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13 # PARTICULAR PURPOSE.
14
15 @SET_MAKE@
16 VPATH = @srcdir@
17 pkgdatadir = $(datadir)/@PACKAGE@
18 pkgincludedir = $(includedir)/@PACKAGE@
19 pkglibdir = $(libdir)/@PACKAGE@
20 pkglibexecdir = $(libexecdir)/@PACKAGE@
21 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
22 install_sh_DATA = $(install_sh) -c -m 644
23 install_sh_PROGRAM = $(install_sh) -c
24 install_sh_SCRIPT = $(install_sh) -c
25 INSTALL_HEADER = $(INSTALL_DATA)
26 transform = $(program_transform_name)
27 NORMAL_INSTALL = :
28 PRE_INSTALL = :
29 POST_INSTALL = :
30 NORMAL_UNINSTALL = :
31 PRE_UNINSTALL = :
32 POST_UNINSTALL = :
33 build_triplet = @build@
34 host_triplet = @host@
35 subdir = gst-convenience/gst-libs
36 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
37 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
38 am__aclocal_m4_deps = $(top_srcdir)/configure.ac
39 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
40 $(ACLOCAL_M4)
41 mkinstalldirs = $(install_sh) -d
42 CONFIG_HEADER = $(top_builddir)/config.h
43 CONFIG_CLEAN_FILES =
44 CONFIG_CLEAN_VPATH_FILES =
45 AM_V_GEN = $(am__v_GEN_$(V))
46 am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
47 am__v_GEN_0 = @echo " GEN " $@;
48 AM_V_at = $(am__v_at_$(V))
49 am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
50 am__v_at_0 = @
51 SOURCES =
52 DIST_SOURCES =
53 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
54 html-recursive info-recursive install-data-recursive \
55 install-dvi-recursive install-exec-recursive \
56 install-html-recursive install-info-recursive \
57 install-pdf-recursive install-ps-recursive install-recursive \
58 installcheck-recursive installdirs-recursive pdf-recursive \
59 ps-recursive uninstall-recursive
60 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
61 distclean-recursive maintainer-clean-recursive
62 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
63 $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
64 distdir
65 ETAGS = etags
66 CTAGS = ctags
67 DIST_SUBDIRS = $(SUBDIRS)
68 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
69 am__relativize = \
70 dir0=`pwd`; \
71 sed_first='s,^\([^/]*\)/.*$$,\1,'; \
72 sed_rest='s,^[^/]*/*,,'; \
73 sed_last='s,^.*/\([^/]*\)$$,\1,'; \
74 sed_butlast='s,/*[^/]*$$,,'; \
75 while test -n "$$dir1"; do \
76 first=`echo "$$dir1" | sed -e "$$sed_first"`; \
77 if test "$$first" != "."; then \
78 if test "$$first" = ".."; then \
79 dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
80 dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
81 else \
82 first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
83 if test "$$first2" = "$$first"; then \
84 dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
85 else \
86 dir2="../$$dir2"; \
87 fi; \
88 dir0="$$dir0"/"$$first"; \
89 fi; \
90 fi; \
91 dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
92 done; \
93 reldir="$$dir2"
94 ACLOCAL = @ACLOCAL@
95 AMTAR = @AMTAR@
96 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
97 AR = @AR@
98 AS = @AS@
99 AUTOCONF = @AUTOCONF@
100 AUTOHEADER = @AUTOHEADER@
101 AUTOMAKE = @AUTOMAKE@
102 AWK = @AWK@
103 CC = @CC@
104 CCDEPMODE = @CCDEPMODE@
105 CFLAGS = @CFLAGS@
106 CPP = @CPP@
107 CPPFLAGS = @CPPFLAGS@
108 CYGPATH_W = @CYGPATH_W@
109 DEFS = @DEFS@
110 DEPDIR = @DEPDIR@
111 DLLTOOL = @DLLTOOL@
112 DSYMUTIL = @DSYMUTIL@
113 DUMPBIN = @DUMPBIN@
114 ECHO_C = @ECHO_C@
115 ECHO_N = @ECHO_N@
116 ECHO_T = @ECHO_T@
117 EGREP = @EGREP@
118 EXEEXT = @EXEEXT@
119 FGREP = @FGREP@
120 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
121 GREP = @GREP@
122 GST_BASE_CFLAGS = @GST_BASE_CFLAGS@
123 GST_BASE_LIBS = @GST_BASE_LIBS@
124 GST_CFLAGS = @GST_CFLAGS@
125 GST_LIBS = @GST_LIBS@
126 GST_MAJORMINOR = @GST_MAJORMINOR@
127 GST_VIDEO_CFLAGS = @GST_VIDEO_CFLAGS@
128 GST_VIDEO_LIBS = @GST_VIDEO_LIBS@
129 GTKDOC_CHECK = @GTKDOC_CHECK@
130 GTKDOC_MKPDF = @GTKDOC_MKPDF@
131 GTKDOC_REBASE = @GTKDOC_REBASE@
132 GUPNP_DLNA_VERSION_INFO = @GUPNP_DLNA_VERSION_INFO@
133 HTML_DIR = @HTML_DIR@
134 INSTALL = @INSTALL@
135 INSTALL_DATA = @INSTALL_DATA@
136 INSTALL_PROGRAM = @INSTALL_PROGRAM@
137 INSTALL_SCRIPT = @INSTALL_SCRIPT@
138 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
139 LD = @LD@
140 LDFLAGS = @LDFLAGS@
141 LIBOBJS = @LIBOBJS@
142 LIBS = @LIBS@
143 LIBTOOL = @LIBTOOL@
144 LIBXML_CFLAGS = @LIBXML_CFLAGS@
145 LIBXML_LIBS = @LIBXML_LIBS@
146 LIPO = @LIPO@
147 LN_S = @LN_S@
148 LTLIBOBJS = @LTLIBOBJS@
149 MAKEINFO = @MAKEINFO@
150 MKDIR_P = @MKDIR_P@
151 NM = @NM@
152 NMEDIT = @NMEDIT@
153 OBJDUMP = @OBJDUMP@
154 OBJEXT = @OBJEXT@
155 OTOOL = @OTOOL@
156 OTOOL64 = @OTOOL64@
157 PACKAGE = @PACKAGE@
158 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
159 PACKAGE_NAME = @PACKAGE_NAME@
160 PACKAGE_STRING = @PACKAGE_STRING@
161 PACKAGE_TARNAME = @PACKAGE_TARNAME@
162 PACKAGE_URL = @PACKAGE_URL@
163 PACKAGE_VERSION = @PACKAGE_VERSION@
164 PATH_SEPARATOR = @PATH_SEPARATOR@
165 PKG_CONFIG = @PKG_CONFIG@
166 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
167 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
168 RANLIB = @RANLIB@
169 SED = @SED@
170 SET_MAKE = @SET_MAKE@
171 SHELL = @SHELL@
172 STRIP = @STRIP@
173 VERSION = @VERSION@
174 abs_builddir = @abs_builddir@
175 abs_srcdir = @abs_srcdir@
176 abs_top_builddir = @abs_top_builddir@
177 abs_top_srcdir = @abs_top_srcdir@
178 ac_ct_CC = @ac_ct_CC@
179 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
180 am__include = @am__include@
181 am__leading_dot = @am__leading_dot@
182 am__quote = @am__quote@
183 am__tar = @am__tar@
184 am__untar = @am__untar@
185 bindir = @bindir@
186 build = @build@
187 build_alias = @build_alias@
188 build_cpu = @build_cpu@
189 build_os = @build_os@
190 build_vendor = @build_vendor@
191 builddir = @builddir@
192 datadir = @datadir@
193 datarootdir = @datarootdir@
194 docdir = @docdir@
195 dvidir = @dvidir@
196 exec_prefix = @exec_prefix@
197 host = @host@
198 host_alias = @host_alias@
199 host_cpu = @host_cpu@
200 host_os = @host_os@
201 host_vendor = @host_vendor@
202 htmldir = @htmldir@
203 includedir = @includedir@
204 infodir = @infodir@
205 install_sh = @install_sh@
206 libdir = @libdir@
207 libexecdir = @libexecdir@
208 localedir = @localedir@
209 localstatedir = @localstatedir@
210 mandir = @mandir@
211 mkdir_p = @mkdir_p@
212 oldincludedir = @oldincludedir@
213 pdfdir = @pdfdir@
214 prefix = @prefix@
215 program_transform_name = @program_transform_name@
216 psdir = @psdir@
217 sbindir = @sbindir@
218 sharedstatedir = @sharedstatedir@
219 srcdir = @srcdir@
220 sysconfdir = @sysconfdir@
221 target_alias = @target_alias@
222 top_build_prefix = @top_build_prefix@
223 top_builddir = @top_builddir@
224 top_srcdir = @top_srcdir@
225 SUBDIRS = gst
226 all: all-recursive
227
228 .SUFFIXES:
229 $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
230 @for dep in $?; do \
231 case '$(am__configure_deps)' in \
232 *$$dep*) \
233 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
234 && { if test -f $@; then exit 0; else break; fi; }; \
235 exit 1;; \
236 esac; \
237 done; \
238 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-convenience/gst-libs/Makefile'; \
239 $(am__cd) $(top_srcdir) && \
240 $(AUTOMAKE) --gnu gst-convenience/gst-libs/Makefile
241 .PRECIOUS: Makefile
242 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
243 @case '$?' in \
244 *config.status*) \
245 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
246 *) \
247 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
248 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
249 esac;
250
251 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
252 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
253
254 $(top_srcdir)/configure: $(am__configure_deps)
255 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
256 $(ACLOCAL_M4): $(am__aclocal_m4_deps)
257 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
258 $(am__aclocal_m4_deps):
259
260 mostlyclean-libtool:
261 -rm -f *.lo
262
263 clean-libtool:
264 -rm -rf .libs _libs
265
266 # This directory's subdirectories are mostly independent; you can cd
267 # into them and run `make' without going through this Makefile.
268 # To change the values of `make' variables: instead of editing Makefiles,
269 # (1) if the variable is set in `config.status', edit `config.status'
270 # (which will cause the Makefiles to be regenerated when you run `make');
271 # (2) otherwise, pass the desired values on the `make' command line.
272 $(RECURSIVE_TARGETS):
273 @fail= failcom='exit 1'; \
274 for f in x $$MAKEFLAGS; do \
275 case $$f in \
276 *=* | --[!k]*);; \
277 *k*) failcom='fail=yes';; \
278 esac; \
279 done; \
280 dot_seen=no; \
281 target=`echo $@ | sed s/-recursive//`; \
282 list='$(SUBDIRS)'; for subdir in $$list; do \
283 echo "Making $$target in $$subdir"; \
284 if test "$$subdir" = "."; then \
285 dot_seen=yes; \
286 local_target="$$target-am"; \
287 else \
288 local_target="$$target"; \
289 fi; \
290 ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
291 || eval $$failcom; \
292 done; \
293 if test "$$dot_seen" = "no"; then \
294 $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
295 fi; test -z "$$fail"
296
297 $(RECURSIVE_CLEAN_TARGETS):
298 @fail= failcom='exit 1'; \
299 for f in x $$MAKEFLAGS; do \
300 case $$f in \
301 *=* | --[!k]*);; \
302 *k*) failcom='fail=yes';; \
303 esac; \
304 done; \
305 dot_seen=no; \
306 case "$@" in \
307 distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
308 *) list='$(SUBDIRS)' ;; \
309 esac; \
310 rev=''; for subdir in $$list; do \
311 if test "$$subdir" = "."; then :; else \
312 rev="$$subdir $$rev"; \
313 fi; \
314 done; \
315 rev="$$rev ."; \
316 target=`echo $@ | sed s/-recursive//`; \
317 for subdir in $$rev; do \
318 echo "Making $$target in $$subdir"; \
319 if test "$$subdir" = "."; then \
320 local_target="$$target-am"; \
321 else \
322 local_target="$$target"; \
323 fi; \
324 ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
325 || eval $$failcom; \
326 done && test -z "$$fail"
327 tags-recursive:
328 list='$(SUBDIRS)'; for subdir in $$list; do \
329 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
330 done
331 ctags-recursive:
332 list='$(SUBDIRS)'; for subdir in $$list; do \
333 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
334 done
335
336 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
337 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
338 unique=`for i in $$list; do \
339 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
340 done | \
341 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
342 END { if (nonempty) { for (i in files) print i; }; }'`; \
343 mkid -fID $$unique
344 tags: TAGS
345
346 TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
347 $(TAGS_FILES) $(LISP)
348 set x; \
349 here=`pwd`; \
350 if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
351 include_option=--etags-include; \
352 empty_fix=.; \
353 else \
354 include_option=--include; \
355 empty_fix=; \
356 fi; \
357 list='$(SUBDIRS)'; for subdir in $$list; do \
358 if test "$$subdir" = .; then :; else \
359 test ! -f $$subdir/TAGS || \
360 set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
361 fi; \
362 done; \
363 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
364 unique=`for i in $$list; do \
365 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
366 done | \
367 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
368 END { if (nonempty) { for (i in files) print i; }; }'`; \
369 shift; \
370 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
371 test -n "$$unique" || unique=$$empty_fix; \
372 if test $$# -gt 0; then \
373 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
374 "$$@" $$unique; \
375 else \
376 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
377 $$unique; \
378 fi; \
379 fi
380 ctags: CTAGS
381 CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
382 $(TAGS_FILES) $(LISP)
383 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
384 unique=`for i in $$list; do \
385 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
386 done | \
387 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
388 END { if (nonempty) { for (i in files) print i; }; }'`; \
389 test -z "$(CTAGS_ARGS)$$unique" \
390 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
391 $$unique
392
393 GTAGS:
394 here=`$(am__cd) $(top_builddir) && pwd` \
395 && $(am__cd) $(top_srcdir) \
396 && gtags -i $(GTAGS_ARGS) "$$here"
397
398 distclean-tags:
399 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
400
401 distdir: $(DISTFILES)
402 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
403 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
404 list='$(DISTFILES)'; \
405 dist_files=`for file in $$list; do echo $$file; done | \
406 sed -e "s|^$$srcdirstrip/||;t" \
407 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
408 case $$dist_files in \
409 */*) $(MKDIR_P) `echo "$$dist_files" | \
410 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
411 sort -u` ;; \
412 esac; \
413 for file in $$dist_files; do \
414 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
415 if test -d $$d/$$file; then \
416 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
417 if test -d "$(distdir)/$$file"; then \
418 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
419 fi; \
420 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
421 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
422 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
423 fi; \
424 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
425 else \
426 test -f "$(distdir)/$$file" \
427 || cp -p $$d/$$file "$(distdir)/$$file" \
428 || exit 1; \
429 fi; \
430 done
431 @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
432 if test "$$subdir" = .; then :; else \
433 test -d "$(distdir)/$$subdir" \
434 || $(MKDIR_P) "$(distdir)/$$subdir" \
435 || exit 1; \
436 fi; \
437 done
438 @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
439 if test "$$subdir" = .; then :; else \
440 dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
441 $(am__relativize); \
442 new_distdir=$$reldir; \
443 dir1=$$subdir; dir2="$(top_distdir)"; \
444 $(am__relativize); \
445 new_top_distdir=$$reldir; \
446 echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
447 echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
448 ($(am__cd) $$subdir && \
449 $(MAKE) $(AM_MAKEFLAGS) \
450 top_distdir="$$new_top_distdir" \
451 distdir="$$new_distdir" \
452 am__remove_distdir=: \
453 am__skip_length_check=: \
454 am__skip_mode_fix=: \
455 distdir) \
456 || exit 1; \
457 fi; \
458 done
459 check-am: all-am
460 check: check-recursive
461 all-am: Makefile
462 installdirs: installdirs-recursive
463 installdirs-am:
464 install: install-recursive
465 install-exec: install-exec-recursive
466 install-data: install-data-recursive
467 uninstall: uninstall-recursive
468
469 install-am: all-am
470 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
471
472 installcheck: installcheck-recursive
473 install-strip:
474 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
475 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
476 `test -z '$(STRIP)' || \
477 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
478 mostlyclean-generic:
479
480 clean-generic:
481
482 distclean-generic:
483 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
484 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
485
486 maintainer-clean-generic:
487 @echo "This command is intended for maintainers to use"
488 @echo "it deletes files that may require special tools to rebuild."
489 clean: clean-recursive
490
491 clean-am: clean-generic clean-libtool mostlyclean-am
492
493 distclean: distclean-recursive
494 -rm -f Makefile
495 distclean-am: clean-am distclean-generic distclean-tags
496
497 dvi: dvi-recursive
498
499 dvi-am:
500
501 html: html-recursive
502
503 html-am:
504
505 info: info-recursive
506
507 info-am:
508
509 install-data-am:
510
511 install-dvi: install-dvi-recursive
512
513 install-dvi-am:
514
515 install-exec-am:
516
517 install-html: install-html-recursive
518
519 install-html-am:
520
521 install-info: install-info-recursive
522
523 install-info-am:
524
525 install-man:
526
527 install-pdf: install-pdf-recursive
528
529 install-pdf-am:
530
531 install-ps: install-ps-recursive
532
533 install-ps-am:
534
535 installcheck-am:
536
537 maintainer-clean: maintainer-clean-recursive
538 -rm -f Makefile
539 maintainer-clean-am: distclean-am maintainer-clean-generic
540
541 mostlyclean: mostlyclean-recursive
542
543 mostlyclean-am: mostlyclean-generic mostlyclean-libtool
544
545 pdf: pdf-recursive
546
547 pdf-am:
548
549 ps: ps-recursive
550
551 ps-am:
552
553 uninstall-am:
554
555 .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
556 install-am install-strip tags-recursive
557
558 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
559 all all-am check check-am clean clean-generic clean-libtool \
560 ctags ctags-recursive distclean distclean-generic \
561 distclean-libtool distclean-tags distdir dvi dvi-am html \
562 html-am info info-am install install-am install-data \
563 install-data-am install-dvi install-dvi-am install-exec \
564 install-exec-am install-html install-html-am install-info \
565 install-info-am install-man install-pdf install-pdf-am \
566 install-ps install-ps-am install-strip installcheck \
567 installcheck-am installdirs installdirs-am maintainer-clean \
568 maintainer-clean-generic mostlyclean mostlyclean-generic \
569 mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
570 uninstall uninstall-am
571
572
573 # Tell versions [3.59,3.63) of GNU make to not export all variables.
574 # Otherwise a system limit (for SysV at least) may be exceeded.
575 .NOEXPORT:
+0
-5
gst-convenience/gst-libs/gst/Makefile.am less more
0 SUBDIRS = \
1 discoverer \
2 profile
3
4 noinst_HEADERS = gettext.h gst-i18n-plugin.h
+0
-583
gst-convenience/gst-libs/gst/Makefile.in less more
0 # Makefile.in generated by automake 1.11.1 from Makefile.am.
1 # @configure_input@
2
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.
6 # This Makefile.in is free software; the Free Software Foundation
7 # gives unlimited permission to copy and/or distribute it,
8 # with or without modifications, as long as this notice is preserved.
9
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
12 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13 # PARTICULAR PURPOSE.
14
15 @SET_MAKE@
16
17 VPATH = @srcdir@
18 pkgdatadir = $(datadir)/@PACKAGE@
19 pkgincludedir = $(includedir)/@PACKAGE@
20 pkglibdir = $(libdir)/@PACKAGE@
21 pkglibexecdir = $(libexecdir)/@PACKAGE@
22 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
23 install_sh_DATA = $(install_sh) -c -m 644
24 install_sh_PROGRAM = $(install_sh) -c
25 install_sh_SCRIPT = $(install_sh) -c
26 INSTALL_HEADER = $(INSTALL_DATA)
27 transform = $(program_transform_name)
28 NORMAL_INSTALL = :
29 PRE_INSTALL = :
30 POST_INSTALL = :
31 NORMAL_UNINSTALL = :
32 PRE_UNINSTALL = :
33 POST_UNINSTALL = :
34 build_triplet = @build@
35 host_triplet = @host@
36 subdir = gst-convenience/gst-libs/gst
37 DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
38 $(srcdir)/Makefile.in
39 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
40 am__aclocal_m4_deps = $(top_srcdir)/configure.ac
41 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
42 $(ACLOCAL_M4)
43 mkinstalldirs = $(install_sh) -d
44 CONFIG_HEADER = $(top_builddir)/config.h
45 CONFIG_CLEAN_FILES =
46 CONFIG_CLEAN_VPATH_FILES =
47 AM_V_GEN = $(am__v_GEN_$(V))
48 am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
49 am__v_GEN_0 = @echo " GEN " $@;
50 AM_V_at = $(am__v_at_$(V))
51 am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
52 am__v_at_0 = @
53 SOURCES =
54 DIST_SOURCES =
55 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
56 html-recursive info-recursive install-data-recursive \
57 install-dvi-recursive install-exec-recursive \
58 install-html-recursive install-info-recursive \
59 install-pdf-recursive install-ps-recursive install-recursive \
60 installcheck-recursive installdirs-recursive pdf-recursive \
61 ps-recursive uninstall-recursive
62 HEADERS = $(noinst_HEADERS)
63 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
64 distclean-recursive maintainer-clean-recursive
65 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
66 $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
67 distdir
68 ETAGS = etags
69 CTAGS = ctags
70 DIST_SUBDIRS = $(SUBDIRS)
71 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
72 am__relativize = \
73 dir0=`pwd`; \
74 sed_first='s,^\([^/]*\)/.*$$,\1,'; \
75 sed_rest='s,^[^/]*/*,,'; \
76 sed_last='s,^.*/\([^/]*\)$$,\1,'; \
77 sed_butlast='s,/*[^/]*$$,,'; \
78 while test -n "$$dir1"; do \
79 first=`echo "$$dir1" | sed -e "$$sed_first"`; \
80 if test "$$first" != "."; then \
81 if test "$$first" = ".."; then \
82 dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
83 dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
84 else \
85 first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
86 if test "$$first2" = "$$first"; then \
87 dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
88 else \
89 dir2="../$$dir2"; \
90 fi; \
91 dir0="$$dir0"/"$$first"; \
92 fi; \
93 fi; \
94 dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
95 done; \
96 reldir="$$dir2"
97 ACLOCAL = @ACLOCAL@
98 AMTAR = @AMTAR@
99 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
100 AR = @AR@
101 AS = @AS@
102 AUTOCONF = @AUTOCONF@
103 AUTOHEADER = @AUTOHEADER@
104 AUTOMAKE = @AUTOMAKE@
105 AWK = @AWK@
106 CC = @CC@
107 CCDEPMODE = @CCDEPMODE@
108 CFLAGS = @CFLAGS@
109 CPP = @CPP@
110 CPPFLAGS = @CPPFLAGS@
111 CYGPATH_W = @CYGPATH_W@
112 DEFS = @DEFS@
113 DEPDIR = @DEPDIR@
114 DLLTOOL = @DLLTOOL@
115 DSYMUTIL = @DSYMUTIL@
116 DUMPBIN = @DUMPBIN@
117 ECHO_C = @ECHO_C@
118 ECHO_N = @ECHO_N@
119 ECHO_T = @ECHO_T@
120 EGREP = @EGREP@
121 EXEEXT = @EXEEXT@
122 FGREP = @FGREP@
123 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
124 GREP = @GREP@
125 GST_BASE_CFLAGS = @GST_BASE_CFLAGS@
126 GST_BASE_LIBS = @GST_BASE_LIBS@
127 GST_CFLAGS = @GST_CFLAGS@
128 GST_LIBS = @GST_LIBS@
129 GST_MAJORMINOR = @GST_MAJORMINOR@
130 GST_VIDEO_CFLAGS = @GST_VIDEO_CFLAGS@
131 GST_VIDEO_LIBS = @GST_VIDEO_LIBS@
132 GTKDOC_CHECK = @GTKDOC_CHECK@
133 GTKDOC_MKPDF = @GTKDOC_MKPDF@
134 GTKDOC_REBASE = @GTKDOC_REBASE@
135 GUPNP_DLNA_VERSION_INFO = @GUPNP_DLNA_VERSION_INFO@
136 HTML_DIR = @HTML_DIR@
137 INSTALL = @INSTALL@
138 INSTALL_DATA = @INSTALL_DATA@
139 INSTALL_PROGRAM = @INSTALL_PROGRAM@
140 INSTALL_SCRIPT = @INSTALL_SCRIPT@
141 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
142 LD = @LD@
143 LDFLAGS = @LDFLAGS@
144 LIBOBJS = @LIBOBJS@
145 LIBS = @LIBS@
146 LIBTOOL = @LIBTOOL@
147 LIBXML_CFLAGS = @LIBXML_CFLAGS@
148 LIBXML_LIBS = @LIBXML_LIBS@
149 LIPO = @LIPO@
150 LN_S = @LN_S@
151 LTLIBOBJS = @LTLIBOBJS@
152 MAKEINFO = @MAKEINFO@
153 MKDIR_P = @MKDIR_P@
154 NM = @NM@
155 NMEDIT = @NMEDIT@
156 OBJDUMP = @OBJDUMP@
157 OBJEXT = @OBJEXT@
158 OTOOL = @OTOOL@
159 OTOOL64 = @OTOOL64@
160 PACKAGE = @PACKAGE@
161 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
162 PACKAGE_NAME = @PACKAGE_NAME@
163 PACKAGE_STRING = @PACKAGE_STRING@
164 PACKAGE_TARNAME = @PACKAGE_TARNAME@
165 PACKAGE_URL = @PACKAGE_URL@
166 PACKAGE_VERSION = @PACKAGE_VERSION@
167 PATH_SEPARATOR = @PATH_SEPARATOR@
168 PKG_CONFIG = @PKG_CONFIG@
169 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
170 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
171 RANLIB = @RANLIB@
172 SED = @SED@
173 SET_MAKE = @SET_MAKE@
174 SHELL = @SHELL@
175 STRIP = @STRIP@
176 VERSION = @VERSION@
177 abs_builddir = @abs_builddir@
178 abs_srcdir = @abs_srcdir@
179 abs_top_builddir = @abs_top_builddir@
180 abs_top_srcdir = @abs_top_srcdir@
181 ac_ct_CC = @ac_ct_CC@
182 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
183 am__include = @am__include@
184 am__leading_dot = @am__leading_dot@
185 am__quote = @am__quote@
186 am__tar = @am__tar@
187 am__untar = @am__untar@
188 bindir = @bindir@
189 build = @build@
190 build_alias = @build_alias@
191 build_cpu = @build_cpu@
192 build_os = @build_os@
193 build_vendor = @build_vendor@
194 builddir = @builddir@
195 datadir = @datadir@
196 datarootdir = @datarootdir@
197 docdir = @docdir@
198 dvidir = @dvidir@
199 exec_prefix = @exec_prefix@
200 host = @host@
201 host_alias = @host_alias@
202 host_cpu = @host_cpu@
203 host_os = @host_os@
204 host_vendor = @host_vendor@
205 htmldir = @htmldir@
206 includedir = @includedir@
207 infodir = @infodir@
208 install_sh = @install_sh@
209 libdir = @libdir@
210 libexecdir = @libexecdir@
211 localedir = @localedir@
212 localstatedir = @localstatedir@
213 mandir = @mandir@
214 mkdir_p = @mkdir_p@
215 oldincludedir = @oldincludedir@
216 pdfdir = @pdfdir@
217 prefix = @prefix@
218 program_transform_name = @program_transform_name@
219 psdir = @psdir@
220 sbindir = @sbindir@
221 sharedstatedir = @sharedstatedir@
222 srcdir = @srcdir@
223 sysconfdir = @sysconfdir@
224 target_alias = @target_alias@
225 top_build_prefix = @top_build_prefix@
226 top_builddir = @top_builddir@
227 top_srcdir = @top_srcdir@
228 SUBDIRS = \
229 discoverer \
230 profile
231
232 noinst_HEADERS = gettext.h gst-i18n-plugin.h
233 all: all-recursive
234
235 .SUFFIXES:
236 $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
237 @for dep in $?; do \
238 case '$(am__configure_deps)' in \
239 *$$dep*) \
240 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
241 && { if test -f $@; then exit 0; else break; fi; }; \
242 exit 1;; \
243 esac; \
244 done; \
245 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-convenience/gst-libs/gst/Makefile'; \
246 $(am__cd) $(top_srcdir) && \
247 $(AUTOMAKE) --gnu gst-convenience/gst-libs/gst/Makefile
248 .PRECIOUS: Makefile
249 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
250 @case '$?' in \
251 *config.status*) \
252 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
253 *) \
254 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
255 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
256 esac;
257
258 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
259 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
260
261 $(top_srcdir)/configure: $(am__configure_deps)
262 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
263 $(ACLOCAL_M4): $(am__aclocal_m4_deps)
264 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
265 $(am__aclocal_m4_deps):
266
267 mostlyclean-libtool:
268 -rm -f *.lo
269
270 clean-libtool:
271 -rm -rf .libs _libs
272
273 # This directory's subdirectories are mostly independent; you can cd
274 # into them and run `make' without going through this Makefile.
275 # To change the values of `make' variables: instead of editing Makefiles,
276 # (1) if the variable is set in `config.status', edit `config.status'
277 # (which will cause the Makefiles to be regenerated when you run `make');
278 # (2) otherwise, pass the desired values on the `make' command line.
279 $(RECURSIVE_TARGETS):
280 @fail= failcom='exit 1'; \
281 for f in x $$MAKEFLAGS; do \
282 case $$f in \
283 *=* | --[!k]*);; \
284 *k*) failcom='fail=yes';; \
285 esac; \
286 done; \
287 dot_seen=no; \
288 target=`echo $@ | sed s/-recursive//`; \
289 list='$(SUBDIRS)'; for subdir in $$list; do \
290 echo "Making $$target in $$subdir"; \
291 if test "$$subdir" = "."; then \
292 dot_seen=yes; \
293 local_target="$$target-am"; \
294 else \
295 local_target="$$target"; \
296 fi; \
297 ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
298 || eval $$failcom; \
299 done; \
300 if test "$$dot_seen" = "no"; then \
301 $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
302 fi; test -z "$$fail"
303
304 $(RECURSIVE_CLEAN_TARGETS):
305 @fail= failcom='exit 1'; \
306 for f in x $$MAKEFLAGS; do \
307 case $$f in \
308 *=* | --[!k]*);; \
309 *k*) failcom='fail=yes';; \
310 esac; \
311 done; \
312 dot_seen=no; \
313 case "$@" in \
314 distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
315 *) list='$(SUBDIRS)' ;; \
316 esac; \
317 rev=''; for subdir in $$list; do \
318 if test "$$subdir" = "."; then :; else \
319 rev="$$subdir $$rev"; \
320 fi; \
321 done; \
322 rev="$$rev ."; \
323 target=`echo $@ | sed s/-recursive//`; \
324 for subdir in $$rev; do \
325 echo "Making $$target in $$subdir"; \
326 if test "$$subdir" = "."; then \
327 local_target="$$target-am"; \
328 else \
329 local_target="$$target"; \
330 fi; \
331 ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
332 || eval $$failcom; \
333 done && test -z "$$fail"
334 tags-recursive:
335 list='$(SUBDIRS)'; for subdir in $$list; do \
336 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
337 done
338 ctags-recursive:
339 list='$(SUBDIRS)'; for subdir in $$list; do \
340 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
341 done
342
343 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
344 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
345 unique=`for i in $$list; do \
346 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
347 done | \
348 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
349 END { if (nonempty) { for (i in files) print i; }; }'`; \
350 mkid -fID $$unique
351 tags: TAGS
352
353 TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
354 $(TAGS_FILES) $(LISP)
355 set x; \
356 here=`pwd`; \
357 if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
358 include_option=--etags-include; \
359 empty_fix=.; \
360 else \
361 include_option=--include; \
362 empty_fix=; \
363 fi; \
364 list='$(SUBDIRS)'; for subdir in $$list; do \
365 if test "$$subdir" = .; then :; else \
366 test ! -f $$subdir/TAGS || \
367 set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
368 fi; \
369 done; \
370 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
371 unique=`for i in $$list; do \
372 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
373 done | \
374 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
375 END { if (nonempty) { for (i in files) print i; }; }'`; \
376 shift; \
377 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
378 test -n "$$unique" || unique=$$empty_fix; \
379 if test $$# -gt 0; then \
380 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
381 "$$@" $$unique; \
382 else \
383 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
384 $$unique; \
385 fi; \
386 fi
387 ctags: CTAGS
388 CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
389 $(TAGS_FILES) $(LISP)
390 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
391 unique=`for i in $$list; do \
392 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
393 done | \
394 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
395 END { if (nonempty) { for (i in files) print i; }; }'`; \
396 test -z "$(CTAGS_ARGS)$$unique" \
397 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
398 $$unique
399
400 GTAGS:
401 here=`$(am__cd) $(top_builddir) && pwd` \
402 && $(am__cd) $(top_srcdir) \
403 && gtags -i $(GTAGS_ARGS) "$$here"
404
405 distclean-tags:
406 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
407
408 distdir: $(DISTFILES)
409 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
410 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
411 list='$(DISTFILES)'; \
412 dist_files=`for file in $$list; do echo $$file; done | \
413 sed -e "s|^$$srcdirstrip/||;t" \
414 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
415 case $$dist_files in \
416 */*) $(MKDIR_P) `echo "$$dist_files" | \
417 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
418 sort -u` ;; \
419 esac; \
420 for file in $$dist_files; do \
421 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
422 if test -d $$d/$$file; then \
423 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
424 if test -d "$(distdir)/$$file"; then \
425 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
426 fi; \
427 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
428 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
429 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
430 fi; \
431 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
432 else \
433 test -f "$(distdir)/$$file" \
434 || cp -p $$d/$$file "$(distdir)/$$file" \
435 || exit 1; \
436 fi; \
437 done
438 @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
439 if test "$$subdir" = .; then :; else \
440 test -d "$(distdir)/$$subdir" \
441 || $(MKDIR_P) "$(distdir)/$$subdir" \
442 || exit 1; \
443 fi; \
444 done
445 @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
446 if test "$$subdir" = .; then :; else \
447 dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
448 $(am__relativize); \
449 new_distdir=$$reldir; \
450 dir1=$$subdir; dir2="$(top_distdir)"; \
451 $(am__relativize); \
452 new_top_distdir=$$reldir; \
453 echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
454 echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
455 ($(am__cd) $$subdir && \
456 $(MAKE) $(AM_MAKEFLAGS) \
457 top_distdir="$$new_top_distdir" \
458 distdir="$$new_distdir" \
459 am__remove_distdir=: \
460 am__skip_length_check=: \
461 am__skip_mode_fix=: \
462 distdir) \
463 || exit 1; \
464 fi; \
465 done
466 check-am: all-am
467 check: check-recursive
468 all-am: Makefile $(HEADERS)
469 installdirs: installdirs-recursive
470 installdirs-am:
471 install: install-recursive
472 install-exec: install-exec-recursive
473 install-data: install-data-recursive
474 uninstall: uninstall-recursive
475
476 install-am: all-am
477 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
478
479 installcheck: installcheck-recursive
480 install-strip:
481 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
482 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
483 `test -z '$(STRIP)' || \
484 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
485 mostlyclean-generic:
486
487 clean-generic:
488
489 distclean-generic:
490 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
491 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
492
493 maintainer-clean-generic:
494 @echo "This command is intended for maintainers to use"
495 @echo "it deletes files that may require special tools to rebuild."
496 clean: clean-recursive
497
498 clean-am: clean-generic clean-libtool mostlyclean-am
499
500 distclean: distclean-recursive
501 -rm -f Makefile
502 distclean-am: clean-am distclean-generic distclean-tags
503
504 dvi: dvi-recursive
505
506 dvi-am:
507
508 html: html-recursive
509
510 html-am:
511
512 info: info-recursive
513
514 info-am:
515
516 install-data-am:
517
518 install-dvi: install-dvi-recursive
519
520 install-dvi-am:
521
522 install-exec-am:
523
524 install-html: install-html-recursive
525
526 install-html-am:
527
528 install-info: install-info-recursive
529
530 install-info-am:
531
532 install-man:
533
534 install-pdf: install-pdf-recursive
535
536 install-pdf-am:
537
538 install-ps: install-ps-recursive
539
540 install-ps-am:
541
542 installcheck-am:
543
544 maintainer-clean: maintainer-clean-recursive
545 -rm -f Makefile
546 maintainer-clean-am: distclean-am maintainer-clean-generic
547
548 mostlyclean: mostlyclean-recursive
549
550 mostlyclean-am: mostlyclean-generic mostlyclean-libtool
551
552 pdf: pdf-recursive
553
554 pdf-am:
555
556 ps: ps-recursive
557
558 ps-am:
559
560 uninstall-am:
561
562 .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
563 install-am install-strip tags-recursive
564
565 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
566 all all-am check check-am clean clean-generic clean-libtool \
567 ctags ctags-recursive distclean distclean-generic \
568 distclean-libtool distclean-tags distdir dvi dvi-am html \
569 html-am info info-am install install-am install-data \
570 install-data-am install-dvi install-dvi-am install-exec \
571 install-exec-am install-html install-html-am install-info \
572 install-info-am install-man install-pdf install-pdf-am \
573 install-ps install-ps-am install-strip installcheck \
574 installcheck-am installdirs installdirs-am maintainer-clean \
575 maintainer-clean-generic mostlyclean mostlyclean-generic \
576 mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
577 uninstall uninstall-am
578
579
580 # Tell versions [3.59,3.63) of GNU make to not export all variables.
581 # Otherwise a system limit (for SysV at least) may be exceeded.
582 .NOEXPORT:
+0
-87
gst-convenience/gst-libs/gst/discoverer/Makefile.am less more
0 lib_LTLIBRARIES = libgstdiscoverer-gupnp-dlna-@GST_MAJORMINOR@.la
1
2 glib_enum_define = GST_DISCOVERER
3 glib_gen_prefix = __gst_discoverer
4 glib_enum_headers = gstdiscoverer.h
5 glib_gen_basename = gstdiscoverer
6
7 #include $(top_srcdir)/common/gst-glib-gen.mak
8
9 built_sources = gstdiscoverer-marshal.c gstdiscoverer-enumtypes.c
10 built_headers = gstdiscoverer-marshal.h gstdiscoverer-enumtypes.h
11
12 BUILT_SOURCES = $(built_sources) $(built_headers)
13
14 nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_SOURCES = $(BUILT_SOURCES)
15
16 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_SOURCES = gstdiscoverer.c \
17 gstdiscoverer-types.c
18 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) \
19 $(GST_VIDEO_CFLAGS) -I$(top_srcdir)/gst-convenience/gst-libs
20 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) $(GST_VIDEO_LIBS)
21 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
22 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_LIBTOOLFLAGS = --tag=disable-static
23
24 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includedir = $(includedir)/gupnp-dlna-1.0/gst/discoverer
25 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS = gstdiscoverer.h
26 nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS = gstdiscoverer-enumtypes.h
27
28 CLEANFILES = #$(BUILT_SOURCES)
29
30 EXTRA_DIST = gstdiscoverer-marshal.list $(BUILT_SOURCES)
31
32 #if HAVE_INTROSPECTION
33 #
34 #BUILT_GIRSOURCES = GstDiscoverer-@GST_MAJORMINOR@.gir
35 #
36 #gir_headers=$(patsubst %,$(srcdir)/%, $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS))
37 #gir_headers+=$(patsubst %,$(builddir)/%, $(nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS))
38 #gir_sources=$(patsubst %,$(srcdir)/%, $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_SOURCES))
39 #gir_sources+=$(patsubst %,$(builddir)/%, $(nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_SOURCES))
40 #gir_cincludes=$(patsubst %,--c-include='gst/discoverer/%',$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS))
41 #gir_cincludes+=$(patsubst %,--c-include='gst/discoverer/%',$(nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS))
42 #
43 #GstDiscoverer-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstdiscoverer-gupnp-dlna-@GST_MAJORMINOR@.la
44 # $(AM_V_GEN)PKG_CONFIG_PATH="$(PKG_CONFIG_PATH):$(top_builddir)/pkgconfig" \
45 # $(INTROSPECTION_SCANNER) -v --namespace GstDiscoverer \
46 # --nsversion=@GST_MAJORMINOR@ \
47 # --strip-prefix=Gst \
48 # $(gir_cincludes) \
49 # -I$(top_srcdir)/gst-libs \
50 # -I$(top_builddir)/gst-libs \
51 # --add-include-path=$$($(PKG_CONFIG) --variable=girdir gstreamer-@GST_MAJORMINOR@) \
52 # --add-include-path=$$($(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_MAJORMINOR@) \
53 # --add-include-path=$$($(PKG_CONFIG) --variable=girdir gstreamer-video-@GST_MAJORMINOR@) \
54 # --library=libgstdiscoverer-gupnp-dlna-@GST_MAJORMINOR@.la \
55 # --include=Gst-@GST_MAJORMINOR@ \
56 # --include=GstBase-@GST_MAJORMINOR@ \
57 # --include=GstVideo-@GST_MAJORMINOR@ \
58 # --libtool="$(top_builddir)/libtool" \
59 # --pkg gstreamer-@GST_MAJORMINOR@ \
60 # --pkg gstreamer-base-@GST_MAJORMINOR@ \
61 # --pkg gstreamer-video-@GST_MAJORMINOR@ \
62 # --output $@ \
63 # $(gir_headers) \
64 # $(gir_sources)
65 #
66 ## INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
67 ## install anything - we need to install inside our prefix.
68 #girdir = $(datadir)/gir-1.0
69 #gir_DATA = $(BUILT_GIRSOURCES)
70 #
71 #typelibsdir = $(libdir)/girepository-1.0/
72 #
73 #typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
74 #
75 #%.typelib: %.gir $(INTROSPECTION_COMPILER)
76 # $(AM_V_GEN)$(INTROSPECTION_COMPILER) \
77 # --includedir=$(srcdir) \
78 # --includedir=$(builddir) \
79 # --includedir=$$($(PKG_CONFIG) --variable=girdir gstreamer-@GST_MAJORMINOR@) \
80 # --includedir=$$($(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_MAJORMINOR@) \
81 # --includedir=$$($(PKG_CONFIG) --variable=girdir gstreamer-video-@GST_MAJORMINOR@) \
82 # $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
83 #
84 #CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
85 #
86 #endif
+0
-743
gst-convenience/gst-libs/gst/discoverer/Makefile.in less more
0 # Makefile.in generated by automake 1.11.1 from Makefile.am.
1 # @configure_input@
2
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.
6 # This Makefile.in is free software; the Free Software Foundation
7 # gives unlimited permission to copy and/or distribute it,
8 # with or without modifications, as long as this notice is preserved.
9
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
12 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13 # PARTICULAR PURPOSE.
14
15 @SET_MAKE@
16
17
18 VPATH = @srcdir@
19 pkgdatadir = $(datadir)/@PACKAGE@
20 pkgincludedir = $(includedir)/@PACKAGE@
21 pkglibdir = $(libdir)/@PACKAGE@
22 pkglibexecdir = $(libexecdir)/@PACKAGE@
23 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
24 install_sh_DATA = $(install_sh) -c -m 644
25 install_sh_PROGRAM = $(install_sh) -c
26 install_sh_SCRIPT = $(install_sh) -c
27 INSTALL_HEADER = $(INSTALL_DATA)
28 transform = $(program_transform_name)
29 NORMAL_INSTALL = :
30 PRE_INSTALL = :
31 POST_INSTALL = :
32 NORMAL_UNINSTALL = :
33 PRE_UNINSTALL = :
34 POST_UNINSTALL = :
35 build_triplet = @build@
36 host_triplet = @host@
37 subdir = gst-convenience/gst-libs/gst/discoverer
38 DIST_COMMON = $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS) \
39 $(srcdir)/Makefile.am $(srcdir)/Makefile.in
40 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
41 am__aclocal_m4_deps = $(top_srcdir)/configure.ac
42 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
43 $(ACLOCAL_M4)
44 mkinstalldirs = $(install_sh) -d
45 CONFIG_HEADER = $(top_builddir)/config.h
46 CONFIG_CLEAN_FILES =
47 CONFIG_CLEAN_VPATH_FILES =
48 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
49 am__vpath_adj = case $$p in \
50 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
51 *) f=$$p;; \
52 esac;
53 am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
54 am__install_max = 40
55 am__nobase_strip_setup = \
56 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
57 am__nobase_strip = \
58 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
59 am__nobase_list = $(am__nobase_strip_setup); \
60 for p in $$list; do echo "$$p $$p"; done | \
61 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
62 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
63 if (++n[$$2] == $(am__install_max)) \
64 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
65 END { for (dir in files) print dir, files[dir] }'
66 am__base_list = \
67 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
68 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
69 am__installdirs = "$(DESTDIR)$(libdir)" \
70 "$(DESTDIR)$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includedir)" \
71 "$(DESTDIR)$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includedir)"
72 LTLIBRARIES = $(lib_LTLIBRARIES)
73 am__DEPENDENCIES_1 =
74 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_DEPENDENCIES = \
75 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
76 am_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_OBJECTS = libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer.lo \
77 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-types.lo
78 am__objects_1 = libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-marshal.lo \
79 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-enumtypes.lo
80 am__objects_2 =
81 am__objects_3 = $(am__objects_1) $(am__objects_2)
82 nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_OBJECTS = \
83 $(am__objects_3)
84 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_OBJECTS = \
85 $(am_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_OBJECTS) \
86 $(nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_OBJECTS)
87 AM_V_lt = $(am__v_lt_$(V))
88 am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
89 am__v_lt_0 = --silent
90 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) \
91 $(AM_V_lt) --tag=CC \
92 $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) \
93 $(LIBTOOLFLAGS) --mode=link $(CCLD) \
94 $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_CFLAGS) \
95 $(CFLAGS) \
96 $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_LDFLAGS) \
97 $(LDFLAGS) -o $@
98 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
99 depcomp = $(SHELL) $(top_srcdir)/depcomp
100 am__depfiles_maybe = depfiles
101 am__mv = mv -f
102 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
103 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
104 LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
105 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
106 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
107 $(AM_CFLAGS) $(CFLAGS)
108 AM_V_CC = $(am__v_CC_$(V))
109 am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
110 am__v_CC_0 = @echo " CC " $@;
111 AM_V_at = $(am__v_at_$(V))
112 am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
113 am__v_at_0 = @
114 CCLD = $(CC)
115 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
116 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
117 $(AM_LDFLAGS) $(LDFLAGS) -o $@
118 AM_V_CCLD = $(am__v_CCLD_$(V))
119 am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
120 am__v_CCLD_0 = @echo " CCLD " $@;
121 AM_V_GEN = $(am__v_GEN_$(V))
122 am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
123 am__v_GEN_0 = @echo " GEN " $@;
124 SOURCES = $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_SOURCES) \
125 $(nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_SOURCES)
126 DIST_SOURCES = \
127 $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_SOURCES)
128 HEADERS = $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS) \
129 $(nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS)
130 ETAGS = etags
131 CTAGS = ctags
132 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
133 ACLOCAL = @ACLOCAL@
134 AMTAR = @AMTAR@
135 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
136 AR = @AR@
137 AS = @AS@
138 AUTOCONF = @AUTOCONF@
139 AUTOHEADER = @AUTOHEADER@
140 AUTOMAKE = @AUTOMAKE@
141 AWK = @AWK@
142 CC = @CC@
143 CCDEPMODE = @CCDEPMODE@
144 CFLAGS = @CFLAGS@
145 CPP = @CPP@
146 CPPFLAGS = @CPPFLAGS@
147 CYGPATH_W = @CYGPATH_W@
148 DEFS = @DEFS@
149 DEPDIR = @DEPDIR@
150 DLLTOOL = @DLLTOOL@
151 DSYMUTIL = @DSYMUTIL@
152 DUMPBIN = @DUMPBIN@
153 ECHO_C = @ECHO_C@
154 ECHO_N = @ECHO_N@
155 ECHO_T = @ECHO_T@
156 EGREP = @EGREP@
157 EXEEXT = @EXEEXT@
158 FGREP = @FGREP@
159 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
160 GREP = @GREP@
161 GST_BASE_CFLAGS = @GST_BASE_CFLAGS@
162 GST_BASE_LIBS = @GST_BASE_LIBS@
163 GST_CFLAGS = @GST_CFLAGS@
164 GST_LIBS = @GST_LIBS@
165 GST_MAJORMINOR = @GST_MAJORMINOR@
166 GST_VIDEO_CFLAGS = @GST_VIDEO_CFLAGS@
167 GST_VIDEO_LIBS = @GST_VIDEO_LIBS@
168 GTKDOC_CHECK = @GTKDOC_CHECK@
169 GTKDOC_MKPDF = @GTKDOC_MKPDF@
170 GTKDOC_REBASE = @GTKDOC_REBASE@
171 GUPNP_DLNA_VERSION_INFO = @GUPNP_DLNA_VERSION_INFO@
172 HTML_DIR = @HTML_DIR@
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 LD = @LD@
179 LDFLAGS = @LDFLAGS@
180 LIBOBJS = @LIBOBJS@
181 LIBS = @LIBS@
182 LIBTOOL = @LIBTOOL@
183 LIBXML_CFLAGS = @LIBXML_CFLAGS@
184 LIBXML_LIBS = @LIBXML_LIBS@
185 LIPO = @LIPO@
186 LN_S = @LN_S@
187 LTLIBOBJS = @LTLIBOBJS@
188 MAKEINFO = @MAKEINFO@
189 MKDIR_P = @MKDIR_P@
190 NM = @NM@
191 NMEDIT = @NMEDIT@
192 OBJDUMP = @OBJDUMP@
193 OBJEXT = @OBJEXT@
194 OTOOL = @OTOOL@
195 OTOOL64 = @OTOOL64@
196 PACKAGE = @PACKAGE@
197 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
198 PACKAGE_NAME = @PACKAGE_NAME@
199 PACKAGE_STRING = @PACKAGE_STRING@
200 PACKAGE_TARNAME = @PACKAGE_TARNAME@
201 PACKAGE_URL = @PACKAGE_URL@
202 PACKAGE_VERSION = @PACKAGE_VERSION@
203 PATH_SEPARATOR = @PATH_SEPARATOR@
204 PKG_CONFIG = @PKG_CONFIG@
205 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
206 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
207 RANLIB = @RANLIB@
208 SED = @SED@
209 SET_MAKE = @SET_MAKE@
210 SHELL = @SHELL@
211 STRIP = @STRIP@
212 VERSION = @VERSION@
213 abs_builddir = @abs_builddir@
214 abs_srcdir = @abs_srcdir@
215 abs_top_builddir = @abs_top_builddir@
216 abs_top_srcdir = @abs_top_srcdir@
217 ac_ct_CC = @ac_ct_CC@
218 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
219 am__include = @am__include@
220 am__leading_dot = @am__leading_dot@
221 am__quote = @am__quote@
222 am__tar = @am__tar@
223 am__untar = @am__untar@
224 bindir = @bindir@
225 build = @build@
226 build_alias = @build_alias@
227 build_cpu = @build_cpu@
228 build_os = @build_os@
229 build_vendor = @build_vendor@
230 builddir = @builddir@
231 datadir = @datadir@
232 datarootdir = @datarootdir@
233 docdir = @docdir@
234 dvidir = @dvidir@
235 exec_prefix = @exec_prefix@
236 host = @host@
237 host_alias = @host_alias@
238 host_cpu = @host_cpu@
239 host_os = @host_os@
240 host_vendor = @host_vendor@
241 htmldir = @htmldir@
242 includedir = @includedir@
243 infodir = @infodir@
244 install_sh = @install_sh@
245 libdir = @libdir@
246 libexecdir = @libexecdir@
247 localedir = @localedir@
248 localstatedir = @localstatedir@
249 mandir = @mandir@
250 mkdir_p = @mkdir_p@
251 oldincludedir = @oldincludedir@
252 pdfdir = @pdfdir@
253 prefix = @prefix@
254 program_transform_name = @program_transform_name@
255 psdir = @psdir@
256 sbindir = @sbindir@
257 sharedstatedir = @sharedstatedir@
258 srcdir = @srcdir@
259 sysconfdir = @sysconfdir@
260 target_alias = @target_alias@
261 top_build_prefix = @top_build_prefix@
262 top_builddir = @top_builddir@
263 top_srcdir = @top_srcdir@
264 lib_LTLIBRARIES = libgstdiscoverer-gupnp-dlna-@GST_MAJORMINOR@.la
265 glib_enum_define = GST_DISCOVERER
266 glib_gen_prefix = __gst_discoverer
267 glib_enum_headers = gstdiscoverer.h
268 glib_gen_basename = gstdiscoverer
269
270 #include $(top_srcdir)/common/gst-glib-gen.mak
271 built_sources = gstdiscoverer-marshal.c gstdiscoverer-enumtypes.c
272 built_headers = gstdiscoverer-marshal.h gstdiscoverer-enumtypes.h
273 BUILT_SOURCES = $(built_sources) $(built_headers)
274 nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_SOURCES = $(BUILT_SOURCES)
275 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_SOURCES = gstdiscoverer.c \
276 gstdiscoverer-types.c
277
278 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) \
279 $(GST_VIDEO_CFLAGS) -I$(top_srcdir)/gst-convenience/gst-libs
280
281 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) $(GST_VIDEO_LIBS)
282 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
283 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_LIBTOOLFLAGS = --tag=disable-static
284 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includedir = $(includedir)/gupnp-dlna-1.0/gst/discoverer
285 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS = gstdiscoverer.h
286 nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS = gstdiscoverer-enumtypes.h
287 CLEANFILES = #$(BUILT_SOURCES)
288 EXTRA_DIST = gstdiscoverer-marshal.list $(BUILT_SOURCES)
289 all: $(BUILT_SOURCES)
290 $(MAKE) $(AM_MAKEFLAGS) all-am
291
292 .SUFFIXES:
293 .SUFFIXES: .c .lo .o .obj
294 $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
295 @for dep in $?; do \
296 case '$(am__configure_deps)' in \
297 *$$dep*) \
298 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
299 && { if test -f $@; then exit 0; else break; fi; }; \
300 exit 1;; \
301 esac; \
302 done; \
303 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst-convenience/gst-libs/gst/discoverer/Makefile'; \
304 $(am__cd) $(top_srcdir) && \
305 $(AUTOMAKE) --gnu gst-convenience/gst-libs/gst/discoverer/Makefile
306 .PRECIOUS: Makefile
307 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
308 @case '$?' in \
309 *config.status*) \
310 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
311 *) \
312 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
313 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
314 esac;
315
316 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
317 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
318
319 $(top_srcdir)/configure: $(am__configure_deps)
320 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
321 $(ACLOCAL_M4): $(am__aclocal_m4_deps)
322 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
323 $(am__aclocal_m4_deps):
324 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
325 @$(NORMAL_INSTALL)
326 test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
327 @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
328 list2=; for p in $$list; do \
329 if test -f $$p; then \
330 list2="$$list2 $$p"; \
331 else :; fi; \
332 done; \
333 test -z "$$list2" || { \
334 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
335 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
336 }
337
338 uninstall-libLTLIBRARIES:
339 @$(NORMAL_UNINSTALL)
340 @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
341 for p in $$list; do \
342 $(am__strip_dir) \
343 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
344 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
345 done
346
347 clean-libLTLIBRARIES:
348 -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
349 @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
350 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
351 test "$$dir" != "$$p" || dir=.; \
352 echo "rm -f \"$${dir}/so_locations\""; \
353 rm -f "$${dir}/so_locations"; \
354 done
355 libgstdiscoverer-gupnp-dlna-@GST_MAJORMINOR@.la: $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_OBJECTS) $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_DEPENDENCIES)
356 $(AM_V_CCLD)$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_OBJECTS) $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
357
358 mostlyclean-compile:
359 -rm -f *.$(OBJEXT)
360
361 distclean-compile:
362 -rm -f *.tab.c
363
364 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-enumtypes.Plo@am__quote@
365 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-marshal.Plo@am__quote@
366 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-types.Plo@am__quote@
367 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer.Plo@am__quote@
368
369 .c.o:
370 @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
371 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
372 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
373 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
374 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
375 @am__fastdepCC_FALSE@ $(COMPILE) -c $<
376
377 .c.obj:
378 @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
379 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
380 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
381 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
382 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
383 @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
384
385 .c.lo:
386 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
387 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
388 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
389 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
390 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
391 @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
392
393 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer.lo: gstdiscoverer.c
394 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer.lo -MD -MP -MF $(DEPDIR)/libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer.Tpo -c -o libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer.lo `test -f 'gstdiscoverer.c' || echo '$(srcdir)/'`gstdiscoverer.c
395 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer.Tpo $(DEPDIR)/libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer.Plo
396 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
397 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdiscoverer.c' object='libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer.lo' libtool=yes @AMDEPBACKSLASH@
398 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
399 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer.lo `test -f 'gstdiscoverer.c' || echo '$(srcdir)/'`gstdiscoverer.c
400
401 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-types.lo: gstdiscoverer-types.c
402 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-types.lo -MD -MP -MF $(DEPDIR)/libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-types.Tpo -c -o libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-types.lo `test -f 'gstdiscoverer-types.c' || echo '$(srcdir)/'`gstdiscoverer-types.c
403 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-types.Tpo $(DEPDIR)/libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-types.Plo
404 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
405 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdiscoverer-types.c' object='libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-types.lo' libtool=yes @AMDEPBACKSLASH@
406 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
407 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-types.lo `test -f 'gstdiscoverer-types.c' || echo '$(srcdir)/'`gstdiscoverer-types.c
408
409 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-marshal.lo: gstdiscoverer-marshal.c
410 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-marshal.lo -MD -MP -MF $(DEPDIR)/libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-marshal.Tpo -c -o libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-marshal.lo `test -f 'gstdiscoverer-marshal.c' || echo '$(srcdir)/'`gstdiscoverer-marshal.c
411 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-marshal.Tpo $(DEPDIR)/libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-marshal.Plo
412 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
413 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdiscoverer-marshal.c' object='libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-marshal.lo' libtool=yes @AMDEPBACKSLASH@
414 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
415 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-marshal.lo `test -f 'gstdiscoverer-marshal.c' || echo '$(srcdir)/'`gstdiscoverer-marshal.c
416
417 libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-enumtypes.lo: gstdiscoverer-enumtypes.c
418 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-enumtypes.Tpo -c -o libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-enumtypes.lo `test -f 'gstdiscoverer-enumtypes.c' || echo '$(srcdir)/'`gstdiscoverer-enumtypes.c
419 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-enumtypes.Tpo $(DEPDIR)/libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-enumtypes.Plo
420 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
421 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdiscoverer-enumtypes.c' object='libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
422 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
423 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la-gstdiscoverer-enumtypes.lo `test -f 'gstdiscoverer-enumtypes.c' || echo '$(srcdir)/'`gstdiscoverer-enumtypes.c
424
425 mostlyclean-libtool:
426 -rm -f *.lo
427
428 clean-libtool:
429 -rm -rf .libs _libs
430 install-libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS: $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS)
431 @$(NORMAL_INSTALL)
432 test -z "$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includedir)"
433 @list='$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includedir)" || list=; \
434 for p in $$list; do \
435 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
436 echo "$$d$$p"; \
437 done | $(am__base_list) | \
438 while read files; do \
439 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includedir)'"; \
440 $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includedir)" || exit $$?; \
441 done
442
443 uninstall-libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS:
444 @$(NORMAL_UNINSTALL)
445 @list='$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includedir)" || list=; \
446 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
447 test -n "$$files" || exit 0; \
448 echo " ( cd '$(DESTDIR)$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
449 cd "$(DESTDIR)$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includedir)" && rm -f $$files
450 install-nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS: $(nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS)
451 @$(NORMAL_INSTALL)
452 test -z "$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includedir)"
453 @list='$(nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includedir)" || list=; \
454 for p in $$list; do \
455 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
456 echo "$$d$$p"; \
457 done | $(am__base_list) | \
458 while read files; do \
459 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includedir)'"; \
460 $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includedir)" || exit $$?; \
461 done
462
463 uninstall-nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS:
464 @$(NORMAL_UNINSTALL)
465 @list='$(nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includedir)" || list=; \
466 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
467 test -n "$$files" || exit 0; \
468 echo " ( cd '$(DESTDIR)$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
469 cd "$(DESTDIR)$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includedir)" && rm -f $$files
470
471 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
472 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
473 unique=`for i in $$list; do \
474 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
475 done | \
476 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
477 END { if (nonempty) { for (i in files) print i; }; }'`; \
478 mkid -fID $$unique
479 tags: TAGS
480
481 TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
482 $(TAGS_FILES) $(LISP)
483 set x; \
484 here=`pwd`; \
485 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
486 unique=`for i in $$list; do \
487 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
488 done | \
489 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
490 END { if (nonempty) { for (i in files) print i; }; }'`; \
491 shift; \
492 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
493 test -n "$$unique" || unique=$$empty_fix; \
494 if test $$# -gt 0; then \
495 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
496 "$$@" $$unique; \
497 else \
498 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
499 $$unique; \
500 fi; \
501 fi
502 ctags: CTAGS
503 CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
504 $(TAGS_FILES) $(LISP)
505 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
506 unique=`for i in $$list; do \
507 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
508 done | \
509 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
510 END { if (nonempty) { for (i in files) print i; }; }'`; \
511 test -z "$(CTAGS_ARGS)$$unique" \
512 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
513 $$unique
514
515 GTAGS:
516 here=`$(am__cd) $(top_builddir) && pwd` \
517 && $(am__cd) $(top_srcdir) \
518 && gtags -i $(GTAGS_ARGS) "$$here"
519
520 distclean-tags:
521 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
522
523 distdir: $(DISTFILES)
524 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
525 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
526 list='$(DISTFILES)'; \
527 dist_files=`for file in $$list; do echo $$file; done | \
528 sed -e "s|^$$srcdirstrip/||;t" \
529 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
530 case $$dist_files in \
531 */*) $(MKDIR_P) `echo "$$dist_files" | \
532 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
533 sort -u` ;; \
534 esac; \
535 for file in $$dist_files; do \
536 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
537 if test -d $$d/$$file; then \
538 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
539 if test -d "$(distdir)/$$file"; then \
540 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
541 fi; \
542 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
543 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
544 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
545 fi; \
546 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
547 else \
548 test -f "$(distdir)/$$file" \
549 || cp -p $$d/$$file "$(distdir)/$$file" \
550 || exit 1; \
551 fi; \
552 done
553 check-am: all-am
554 check: $(BUILT_SOURCES)
555 $(MAKE) $(AM_MAKEFLAGS) check-am
556 all-am: Makefile $(LTLIBRARIES) $(HEADERS)
557 installdirs:
558 for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includedir)" "$(DESTDIR)$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includedir)"; do \
559 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
560 done
561 install: $(BUILT_SOURCES)
562 $(MAKE) $(AM_MAKEFLAGS) install-am
563 install-exec: install-exec-am
564 install-data: install-data-am
565 uninstall: uninstall-am
566
567 install-am: all-am
568 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
569
570 installcheck: installcheck-am
571 install-strip:
572 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
573 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
574 `test -z '$(STRIP)' || \
575 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
576 mostlyclean-generic:
577
578 clean-generic:
579 -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
580
581 distclean-generic:
582 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
583 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
584
585 maintainer-clean-generic:
586 @echo "This command is intended for maintainers to use"
587 @echo "it deletes files that may require special tools to rebuild."
588 -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
589 clean: clean-am
590
591 clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
592 mostlyclean-am
593
594 distclean: distclean-am
595 -rm -rf ./$(DEPDIR)
596 -rm -f Makefile
597 distclean-am: clean-am distclean-compile distclean-generic \
598 distclean-tags
599
600 dvi: dvi-am
601
602 dvi-am:
603
604 html: html-am
605
606 html-am:
607
608 info: info-am
609
610 info-am:
611
612 install-data-am: install-libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS \
613 install-nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS
614
615 install-dvi: install-dvi-am
616
617 install-dvi-am:
618
619 install-exec-am: install-libLTLIBRARIES
620
621 install-html: install-html-am
622
623 install-html-am:
624
625 install-info: install-info-am
626
627 install-info-am:
628
629 install-man:
630
631 install-pdf: install-pdf-am
632
633 install-pdf-am:
634
635 install-ps: install-ps-am
636
637 install-ps-am:
638
639 installcheck-am:
640
641 maintainer-clean: maintainer-clean-am
642 -rm -rf ./$(DEPDIR)
643 -rm -f Makefile
644 maintainer-clean-am: distclean-am maintainer-clean-generic
645
646 mostlyclean: mostlyclean-am
647
648 mostlyclean-am: mostlyclean-compile mostlyclean-generic \
649 mostlyclean-libtool
650
651 pdf: pdf-am
652
653 pdf-am:
654
655 ps: ps-am
656
657 ps-am:
658
659 uninstall-am: uninstall-libLTLIBRARIES \
660 uninstall-libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS \
661 uninstall-nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS
662
663 .MAKE: all check install install-am install-strip
664
665 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
666 clean-libLTLIBRARIES clean-libtool ctags distclean \
667 distclean-compile distclean-generic distclean-libtool \
668 distclean-tags distdir dvi dvi-am html html-am info info-am \
669 install install-am install-data install-data-am install-dvi \
670 install-dvi-am install-exec install-exec-am install-html \
671 install-html-am install-info install-info-am \
672 install-libLTLIBRARIES \
673 install-libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS \
674 install-man \
675 install-nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS \
676 install-pdf install-pdf-am install-ps install-ps-am \
677 install-strip installcheck installcheck-am installdirs \
678 maintainer-clean maintainer-clean-generic mostlyclean \
679 mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
680 pdf pdf-am ps ps-am tags uninstall uninstall-am \
681 uninstall-libLTLIBRARIES \
682 uninstall-libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS \
683 uninstall-nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS
684
685
686 #if HAVE_INTROSPECTION
687 #
688 #BUILT_GIRSOURCES = GstDiscoverer-@GST_MAJORMINOR@.gir
689 #
690 #gir_headers=$(patsubst %,$(srcdir)/%, $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS))
691 #gir_headers+=$(patsubst %,$(builddir)/%, $(nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS))
692 #gir_sources=$(patsubst %,$(srcdir)/%, $(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_SOURCES))
693 #gir_sources+=$(patsubst %,$(builddir)/%, $(nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@_la_SOURCES))
694 #gir_cincludes=$(patsubst %,--c-include='gst/discoverer/%',$(libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS))
695 #gir_cincludes+=$(patsubst %,--c-include='gst/discoverer/%',$(nodist_libgstdiscoverer_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS))
696 #
697 #GstDiscoverer-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstdiscoverer-gupnp-dlna-@GST_MAJORMINOR@.la
698 # $(AM_V_GEN)PKG_CONFIG_PATH="$(PKG_CONFIG_PATH):$(top_builddir)/pkgconfig" \
699 # $(INTROSPECTION_SCANNER) -v --namespace GstDiscoverer \
700 # --nsversion=@GST_MAJORMINOR@ \
701 # --strip-prefix=Gst \
702 # $(gir_cincludes) \
703 # -I$(top_srcdir)/gst-libs \
704 # -I$(top_builddir)/gst-libs \
705 # --add-include-path=$$($(PKG_CONFIG) --variable=girdir gstreamer-@GST_MAJORMINOR@) \
706 # --add-include-path=$$($(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_MAJORMINOR@) \
707 # --add-include-path=$$($(PKG_CONFIG) --variable=girdir gstreamer-video-@GST_MAJORMINOR@) \
708 # --library=libgstdiscoverer-gupnp-dlna-@GST_MAJORMINOR@.la \
709 # --include=Gst-@GST_MAJORMINOR@ \
710 # --include=GstBase-@GST_MAJORMINOR@ \
711 # --include=GstVideo-@GST_MAJORMINOR@ \
712 # --libtool="$(top_builddir)/libtool" \
713 # --pkg gstreamer-@GST_MAJORMINOR@ \
714 # --pkg gstreamer-base-@GST_MAJORMINOR@ \
715 # --pkg gstreamer-video-@GST_MAJORMINOR@ \
716 # --output $@ \
717 # $(gir_headers) \
718 # $(gir_sources)
719 #
720 #girdir = $(datadir)/gir-1.0
721 #gir_DATA = $(BUILT_GIRSOURCES)
722 #
723 #typelibsdir = $(libdir)/girepository-1.0/
724 #
725 #typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
726 #
727 #%.typelib: %.gir $(INTROSPECTION_COMPILER)
728 # $(AM_V_GEN)$(INTROSPECTION_COMPILER) \
729 # --includedir=$(srcdir) \
730 # --includedir=$(builddir) \
731 # --includedir=$$($(PKG_CONFIG) --variable=girdir gstreamer-@GST_MAJORMINOR@) \
732 # --includedir=$$($(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_MAJORMINOR@) \
733 # --includedir=$$($(PKG_CONFIG) --variable=girdir gstreamer-video-@GST_MAJORMINOR@) \
734 # $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
735 #
736 #CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
737 #
738 #endif
739
740 # Tell versions [3.59,3.63) of GNU make to not export all variables.
741 # Otherwise a system limit (for SysV at least) may be exceeded.
742 .NOEXPORT:
+0
-48
gst-convenience/gst-libs/gst/discoverer/gstdiscoverer-enumtypes.c less more
0
1
2
3 #include "gstdiscoverer-enumtypes.h"
4
5 #include "gstdiscoverer.h"
6
7 /* enumerations from "gstdiscoverer.h" */
8 GType
9 gst_stream_type_get_type (void)
10 {
11 static volatile gsize g_define_type_id__volatile = 0;
12 if (g_once_init_enter (&g_define_type_id__volatile)) {
13 static const GEnumValue values[] = {
14 { GST_STREAM_CONTAINER, "GST_STREAM_CONTAINER", "container" },
15 { GST_STREAM_AUDIO, "GST_STREAM_AUDIO", "audio" },
16 { GST_STREAM_VIDEO, "GST_STREAM_VIDEO", "video" },
17 { GST_STREAM_IMAGE, "GST_STREAM_IMAGE", "image" },
18 { GST_STREAM_UNKNOWN, "GST_STREAM_UNKNOWN", "unknown" },
19 { 0, NULL, NULL }
20 };
21 GType g_define_type_id = g_enum_register_static ("GstStreamType", values);
22 g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
23 }
24 return g_define_type_id__volatile;
25 }
26 GType
27 gst_discoverer_result_get_type (void)
28 {
29 static volatile gsize g_define_type_id__volatile = 0;
30 if (g_once_init_enter (&g_define_type_id__volatile)) {
31 static const GFlagsValue values[] = {
32 { GST_DISCOVERER_OK, "GST_DISCOVERER_OK", "ok" },
33 { GST_DISCOVERER_URI_INVALID, "GST_DISCOVERER_URI_INVALID", "uri-invalid" },
34 { GST_DISCOVERER_ERROR, "GST_DISCOVERER_ERROR", "error" },
35 { GST_DISCOVERER_TIMEOUT, "GST_DISCOVERER_TIMEOUT", "timeout" },
36 { GST_DISCOVERER_BUSY, "GST_DISCOVERER_BUSY", "busy" },
37 { GST_DISCOVERER_MISSING_PLUGINS, "GST_DISCOVERER_MISSING_PLUGINS", "missing-plugins" },
38 { 0, NULL, NULL }
39 };
40 GType g_define_type_id = g_flags_register_static ("GstDiscovererResult", values);
41 g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
42 }
43 return g_define_type_id__volatile;
44 }
45
46
47
+0
-21
gst-convenience/gst-libs/gst/discoverer/gstdiscoverer-enumtypes.h less more
0
1
2
3 #ifndef __GST_DISCOVERER_ENUM_TYPES_H__
4 #define __GST_DISCOVERER_ENUM_TYPES_H__
5
6 #include <glib-object.h>
7
8 G_BEGIN_DECLS
9
10 /* enumerations from "gstdiscoverer.h" */
11 GType gst_stream_type_get_type (void);
12 #define GST_TYPE_STREAM_TYPE (gst_stream_type_get_type())
13 GType gst_discoverer_result_get_type (void);
14 #define GST_TYPE_DISCOVERER_RESULT (gst_discoverer_result_get_type())
15 G_END_DECLS
16
17 #endif /* __GST_DISCOVERER_ENUM_TYPES_H__ */
18
19
20
+0
-89
gst-convenience/gst-libs/gst/discoverer/gstdiscoverer-marshal.c less more
0 #include "gstdiscoverer-marshal.h"
1
2 #include <glib-object.h>
3
4
5 #ifdef G_ENABLE_DEBUG
6 #define g_marshal_value_peek_boolean(v) g_value_get_boolean (v)
7 #define g_marshal_value_peek_char(v) g_value_get_char (v)
8 #define g_marshal_value_peek_uchar(v) g_value_get_uchar (v)
9 #define g_marshal_value_peek_int(v) g_value_get_int (v)
10 #define g_marshal_value_peek_uint(v) g_value_get_uint (v)
11 #define g_marshal_value_peek_long(v) g_value_get_long (v)
12 #define g_marshal_value_peek_ulong(v) g_value_get_ulong (v)
13 #define g_marshal_value_peek_int64(v) g_value_get_int64 (v)
14 #define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v)
15 #define g_marshal_value_peek_enum(v) g_value_get_enum (v)
16 #define g_marshal_value_peek_flags(v) g_value_get_flags (v)
17 #define g_marshal_value_peek_float(v) g_value_get_float (v)
18 #define g_marshal_value_peek_double(v) g_value_get_double (v)
19 #define g_marshal_value_peek_string(v) (char*) g_value_get_string (v)
20 #define g_marshal_value_peek_param(v) g_value_get_param (v)
21 #define g_marshal_value_peek_boxed(v) g_value_get_boxed (v)
22 #define g_marshal_value_peek_pointer(v) g_value_get_pointer (v)
23 #define g_marshal_value_peek_object(v) g_value_get_object (v)
24 #define g_marshal_value_peek_variant(v) g_value_get_variant (v)
25 #else /* !G_ENABLE_DEBUG */
26 /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
27 * Do not access GValues directly in your code. Instead, use the
28 * g_value_get_*() functions
29 */
30 #define g_marshal_value_peek_boolean(v) (v)->data[0].v_int
31 #define g_marshal_value_peek_char(v) (v)->data[0].v_int
32 #define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint
33 #define g_marshal_value_peek_int(v) (v)->data[0].v_int
34 #define g_marshal_value_peek_uint(v) (v)->data[0].v_uint
35 #define g_marshal_value_peek_long(v) (v)->data[0].v_long
36 #define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong
37 #define g_marshal_value_peek_int64(v) (v)->data[0].v_int64
38 #define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64
39 #define g_marshal_value_peek_enum(v) (v)->data[0].v_long
40 #define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong
41 #define g_marshal_value_peek_float(v) (v)->data[0].v_float
42 #define g_marshal_value_peek_double(v) (v)->data[0].v_double
43 #define g_marshal_value_peek_string(v) (v)->data[0].v_pointer
44 #define g_marshal_value_peek_param(v) (v)->data[0].v_pointer
45 #define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer
46 #define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer
47 #define g_marshal_value_peek_object(v) (v)->data[0].v_pointer
48 #define g_marshal_value_peek_variant(v) (v)->data[0].v_pointer
49 #endif /* !G_ENABLE_DEBUG */
50
51
52 /* VOID:BOXED,BOXED (gstdiscoverer-marshal.list:1) */
53 void
54 __gst_discoverer_marshal_VOID__BOXED_BOXED (GClosure *closure,
55 GValue *return_value G_GNUC_UNUSED,
56 guint n_param_values,
57 const GValue *param_values,
58 gpointer invocation_hint G_GNUC_UNUSED,
59 gpointer marshal_data)
60 {
61 typedef void (*GMarshalFunc_VOID__BOXED_BOXED) (gpointer data1,
62 gpointer arg_1,
63 gpointer arg_2,
64 gpointer data2);
65 register GMarshalFunc_VOID__BOXED_BOXED callback;
66 register GCClosure *cc = (GCClosure*) closure;
67 register gpointer data1, data2;
68
69 g_return_if_fail (n_param_values == 3);
70
71 if (G_CCLOSURE_SWAP_DATA (closure))
72 {
73 data1 = closure->data;
74 data2 = g_value_peek_pointer (param_values + 0);
75 }
76 else
77 {
78 data1 = g_value_peek_pointer (param_values + 0);
79 data2 = closure->data;
80 }
81 callback = (GMarshalFunc_VOID__BOXED_BOXED) (marshal_data ? marshal_data : cc->callback);
82
83 callback (data1,
84 g_marshal_value_peek_boxed (param_values + 1),
85 g_marshal_value_peek_boxed (param_values + 2),
86 data2);
87 }
88
+0
-20
gst-convenience/gst-libs/gst/discoverer/gstdiscoverer-marshal.h less more
0
1 #ifndef ____gst_discoverer_marshal_MARSHAL_H__
2 #define ____gst_discoverer_marshal_MARSHAL_H__
3
4 #include <glib-object.h>
5
6 G_BEGIN_DECLS
7
8 /* VOID:BOXED,BOXED (gstdiscoverer-marshal.list:1) */
9 extern void __gst_discoverer_marshal_VOID__BOXED_BOXED (GClosure *closure,
10 GValue *return_value,
11 guint n_param_values,
12 const GValue *param_values,
13 gpointer invocation_hint,
14 gpointer marshal_data);
15
16 G_END_DECLS
17
18 #endif /* ____gst_discoverer_marshal_MARSHAL_H__ */
19
+0
-1
gst-convenience/gst-libs/gst/discoverer/gstdiscoverer-marshal.list less more
0 VOID:BOXED,BOXED
+0
-452
gst-convenience/gst-libs/gst/discoverer/gstdiscoverer-types.c less more
0 /* GStreamer
1 * Copyright (C) 2010 Collabora Multimedia
2 * 2010 Nokia Corporation
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 Public
15 * 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
20 #include "gstdiscoverer.h"
21 #include "gstdiscoverer-marshal.h"
22
23 static GstStreamContainerInformation
24 * gst_stream_container_info_copy_int (GstStreamContainerInformation * ptr,
25 GHashTable * stream_map);
26
27 /* Per-stream information */
28
29 /**
30 * gst_stream_information_new:
31 *
32 * Returns a newly allocated #GstStreamInformation object. All fields are
33 * initialised to zero/NULL, so callers have to allocate member structures.
34 * However, these structures will automatically be freed if allocated in
35 * #gst_stream_information_free().
36 *
37 * Returns: a newly allocated #GstStreamInformation.
38 */
39 GstStreamInformation *
40 gst_stream_information_new (void)
41 {
42 GstStreamInformation *info = g_new0 (GstStreamInformation, 1);
43 info->streamtype = GST_STREAM_UNKNOWN;
44 return info;
45 }
46
47 /* Does everything except freeing info */
48 static void
49 gst_stream_information_deinit (GstStreamInformation * info)
50 {
51 if (info->next)
52 gst_stream_information_free (info->next);
53
54 if (info->caps)
55 gst_caps_unref (info->caps);
56
57 if (info->tags)
58 gst_tag_list_free (info->tags);
59
60 if (info->misc)
61 gst_structure_free (info->misc);
62 }
63
64 static GstStreamInformation *
65 gst_stream_information_copy_int (GstStreamInformation * info,
66 GHashTable * stream_map)
67 {
68 GstStreamInformation *ret = NULL;
69 g_return_val_if_fail (info != NULL, NULL);
70
71 switch (info->streamtype) {
72 case GST_STREAM_CONTAINER:
73 ret = (GstStreamInformation *)
74 gst_stream_container_info_copy_int (
75 (GstStreamContainerInformation *) info, stream_map);
76 break;
77
78 case GST_STREAM_AUDIO:
79 ret = (GstStreamInformation *)
80 gst_stream_audio_information_copy (
81 (GstStreamAudioInformation *) info);
82 break;
83
84 case GST_STREAM_VIDEO:
85 case GST_STREAM_IMAGE:
86 ret = (GstStreamInformation *)
87 gst_stream_video_information_copy (
88 (GstStreamVideoInformation *) info);
89 break;
90
91 default:
92 ret = gst_stream_information_new ();
93 break;
94 }
95
96 if (info->next) {
97 ret->next = gst_stream_information_copy_int (info->next, stream_map);
98 ret->next->previous = ret;
99 }
100
101 if (info->caps)
102 ret->caps = gst_caps_copy (info->caps);
103
104 if (info->tags)
105 ret->tags = gst_tag_list_copy (info->tags);
106
107 if (info->misc)
108 ret->misc = gst_structure_copy (info->misc);
109
110 if (stream_map)
111 g_hash_table_insert (stream_map, info, ret);
112
113 return ret;
114 }
115
116 /**
117 * gst_stream_information_copy:
118 * @info: the #GstStreamInformation to be copied
119 *
120 * Returns a deep copy of @info.
121 *
122 * Returns: a newly allocated #GstStreamInformation.
123 */
124 GstStreamInformation *
125 gst_stream_information_copy (GstStreamInformation * info)
126 {
127 return gst_stream_information_copy_int (info, NULL);
128 }
129
130 /**
131 * gst_stream_information_free:
132 * @info: a #GstStreamInformation
133 *
134 * Frees @info, along with any associated data structures. For derived types,
135 * this also calls the appropriate free function.
136 */
137 void
138 gst_stream_information_free (GstStreamInformation * info)
139 {
140 g_return_if_fail (info != NULL);
141
142 switch (info->streamtype) {
143 case GST_STREAM_CONTAINER:
144 gst_stream_container_information_free (
145 (GstStreamContainerInformation *) info);
146 break;
147
148 case GST_STREAM_AUDIO:
149 gst_stream_audio_information_free ((GstStreamAudioInformation *) info);
150 break;
151
152 case GST_STREAM_VIDEO:
153 case GST_STREAM_IMAGE:
154 gst_stream_video_information_free ((GstStreamVideoInformation *) info);
155 break;
156
157 default:
158 gst_stream_information_deinit (info);
159 g_free (info);
160 break;
161 }
162 }
163
164 GType
165 gst_stream_information_get_type (void)
166 {
167 static GType gst_stream_information_type = 0;
168
169 if (G_UNLIKELY (gst_stream_information_type == 0)) {
170 gst_stream_information_type =
171 g_boxed_type_register_static ("GstStreamInformation",
172 (GBoxedCopyFunc) gst_stream_information_copy,
173 (GBoxedFreeFunc) gst_stream_information_free);
174 }
175
176 return gst_stream_information_type;
177 }
178
179
180 /* Container information */
181
182 GstStreamContainerInformation *
183 gst_stream_container_information_new (void)
184 {
185 GstStreamContainerInformation *info =
186 g_new0 (GstStreamContainerInformation, 1);
187 info->parent.streamtype = GST_STREAM_CONTAINER;
188 return info;
189 }
190
191 static GstStreamContainerInformation *
192 gst_stream_container_info_copy_int (GstStreamContainerInformation * ptr,
193 GHashTable * stream_map)
194 {
195 GstStreamContainerInformation *ret;
196 GList *tmp;
197
198 g_return_val_if_fail (ptr != NULL, NULL);
199
200 ret = gst_stream_container_information_new ();
201
202 for (tmp = ((GstStreamContainerInformation *) ptr)->streams; tmp;
203 tmp = tmp->next) {
204 GstStreamInformation *subtop = gst_stream_information_copy_int (tmp->data,
205 stream_map);
206 ret->streams = g_list_append (ret->streams, subtop);
207 if (stream_map)
208 g_hash_table_insert (stream_map, tmp->data, subtop);
209 }
210
211 return ret;
212 }
213
214 GstStreamContainerInformation *
215 gst_stream_container_information_copy (GstStreamContainerInformation * ptr)
216 {
217 return gst_stream_container_info_copy_int (ptr, NULL);
218 }
219
220 void
221 gst_stream_container_information_free (GstStreamContainerInformation * ptr)
222 {
223 GList *tmp;
224
225 g_return_if_fail (ptr != NULL);
226
227 gst_stream_information_deinit (&ptr->parent);
228
229 for (tmp = ((GstStreamContainerInformation *) ptr)->streams; tmp;
230 tmp = tmp->next) {
231 GstStreamInformation *subtop = (GstStreamInformation *) tmp->data;
232 gst_stream_information_free (subtop);
233 }
234
235 g_list_free (ptr->streams);
236 g_free (ptr);
237 }
238
239 GType
240 gst_stream_container_information_get_type (void)
241 {
242 static GType gst_stream_container_information_type = 0;
243
244 if (G_UNLIKELY (gst_stream_container_information_type == 0)) {
245 gst_stream_container_information_type =
246 g_boxed_type_register_static ("GstStreamContainerInformation",
247 (GBoxedCopyFunc) gst_stream_container_information_copy,
248 (GBoxedFreeFunc) gst_stream_container_information_free);
249 }
250
251 return gst_stream_container_information_type;
252 }
253
254
255 /* Audio information */
256
257 GstStreamAudioInformation *
258 gst_stream_audio_information_new (void)
259 {
260 GstStreamAudioInformation *info = g_new0 (GstStreamAudioInformation, 1);
261 info->parent.streamtype = GST_STREAM_AUDIO;
262 return info;
263 }
264
265 GstStreamAudioInformation *
266 gst_stream_audio_information_copy (GstStreamAudioInformation * ptr)
267 {
268 GstStreamAudioInformation *ret;
269
270 g_return_val_if_fail (ptr != NULL, NULL);
271
272 ret = gst_stream_audio_information_new ();
273
274 ret->channels = ptr->channels;
275 ret->sample_rate = ptr->sample_rate;
276 ret->depth = ptr->depth;
277 ret->bitrate = ptr->bitrate;
278 ret->max_bitrate = ptr->max_bitrate;
279 ret->is_vbr = ptr->is_vbr;
280
281 return ret;
282 }
283
284 void
285 gst_stream_audio_information_free (GstStreamAudioInformation * ptr)
286 {
287 g_return_if_fail (ptr != NULL);
288 gst_stream_information_deinit (&ptr->parent);
289 g_free (ptr);
290 }
291
292 GType
293 gst_stream_audio_information_get_type (void)
294 {
295 static GType gst_stream_audio_information_type = 0;
296
297 if (G_UNLIKELY (gst_stream_audio_information_type == 0)) {
298 gst_stream_audio_information_type =
299 g_boxed_type_register_static ("GstStreamAudioInformation",
300 (GBoxedCopyFunc) gst_stream_audio_information_copy,
301 (GBoxedFreeFunc) gst_stream_audio_information_free);
302 }
303
304 return gst_stream_audio_information_type;
305 }
306
307
308 /* Video information */
309
310 GstStreamVideoInformation *
311 gst_stream_video_information_new (void)
312 {
313 GstStreamVideoInformation *info = g_new0 (GstStreamVideoInformation, 1);
314
315 info->parent.streamtype = GST_STREAM_VIDEO;
316 g_value_init (&info->frame_rate, GST_TYPE_FRACTION);
317 g_value_init (&info->pixel_aspect_ratio, GST_TYPE_FRACTION);
318
319 return info;
320 }
321
322 GstStreamVideoInformation *
323 gst_stream_video_information_copy (GstStreamVideoInformation * ptr)
324 {
325 GstStreamVideoInformation *ret;
326
327 g_return_val_if_fail (ptr != NULL, NULL);
328
329 ret = gst_stream_video_information_new ();
330
331 /* Because the streamtype can also be GST_STREAM_IMAGE */
332 GST_STREAM_INFORMATION (ret)->streamtype =
333 GST_STREAM_INFORMATION (ptr)->streamtype;
334 ret->width = ptr->width;
335 ret->height = ptr->height;
336 ret->depth = ptr->depth;
337 g_value_copy (&ptr->frame_rate, &ret->frame_rate);
338 g_value_copy (&ptr->pixel_aspect_ratio, &ret->pixel_aspect_ratio);
339 ret->format = ptr->format;
340 ret->interlaced = ptr->interlaced;
341
342 return ret;
343 }
344
345 void
346 gst_stream_video_information_free (GstStreamVideoInformation * ptr)
347 {
348 g_return_if_fail (ptr != NULL);
349 gst_stream_information_deinit (&ptr->parent);
350 g_free (ptr);
351 }
352
353 GType
354 gst_stream_video_information_get_type (void)
355 {
356 static GType gst_stream_video_information_type = 0;
357
358 if (G_UNLIKELY (gst_stream_video_information_type == 0)) {
359 gst_stream_video_information_type =
360 g_boxed_type_register_static ("GstStreamVideoInformation",
361 (GBoxedCopyFunc) gst_stream_video_information_copy,
362 (GBoxedFreeFunc) gst_stream_video_information_free);
363 }
364
365 return gst_stream_video_information_type;
366 }
367
368
369 /* Global stream information */
370
371 GstDiscovererInformation *
372 gst_discoverer_information_new (void)
373 {
374 GstDiscovererInformation *di = g_new0 (GstDiscovererInformation, 1);
375 return di;
376 }
377
378 GstDiscovererInformation *
379 gst_discoverer_information_copy (GstDiscovererInformation * ptr)
380 {
381 GstDiscovererInformation *ret;
382 GHashTable *stream_map = g_hash_table_new (g_direct_hash, NULL);
383 GList *tmp;
384
385 g_return_val_if_fail (ptr != NULL, NULL);
386
387 ret = gst_discoverer_information_new ();
388
389 ret->uri = g_strdup (ptr->uri);
390 if (ptr->stream_info) {
391 ret->stream_info = gst_stream_information_copy_int (ptr->stream_info,
392 stream_map);
393 }
394 ret->duration = ptr->duration;
395 if (ptr->misc)
396 ret->misc = gst_structure_copy (ptr->misc);
397
398 /* We need to set up the new list of streams to correspond to old one. The
399 * list just contains a set of pointers to streams in the stream_info tree,
400 * so we keep a map of old stream info objects to the corresponding new
401 * ones and use that to figure out correspondence in stream_list. */
402 for (tmp = ptr->stream_list; tmp; tmp = tmp->next) {
403 GstStreamInformation *old_stream = (GstStreamInformation *) tmp->data;
404 GstStreamInformation *new_stream = g_hash_table_lookup (stream_map,
405 old_stream);
406 g_assert (new_stream != NULL);
407 ret->stream_list = g_list_append (ret->stream_list, new_stream);
408 }
409
410 if (ptr->tags)
411 ret->tags = gst_tag_list_copy (ptr->tags);
412
413 g_hash_table_destroy (stream_map);
414 return ret;
415 }
416
417 void
418 gst_discoverer_information_free (GstDiscovererInformation * ptr)
419 {
420 g_return_if_fail (ptr != NULL);
421
422 g_free (ptr->uri);
423
424 if (ptr->stream_info)
425 gst_stream_information_free (ptr->stream_info);
426
427 if (ptr->misc)
428 gst_structure_free (ptr->misc);
429
430 g_list_free (ptr->stream_list);
431
432 if (ptr->tags)
433 gst_tag_list_free (ptr->tags);
434
435 g_free (ptr);
436 }
437
438 GType
439 gst_discoverer_information_get_type (void)
440 {
441 static GType gst_discoverer_information_type = 0;
442
443 if (G_UNLIKELY (gst_discoverer_information_type == 0)) {
444 gst_discoverer_information_type =
445 g_boxed_type_register_static ("GstDiscovererInformation",
446 (GBoxedCopyFunc) gst_discoverer_information_copy,
447 (GBoxedFreeFunc) gst_discoverer_information_free);
448 }
449
450 return gst_discoverer_information_type;
451 }
+0
-1242
gst-convenience/gst-libs/gst/discoverer/gstdiscoverer.c less more
0 /* GStreamer
1 * Copyright (C) 2009 Edward Hervey <edward.hervey@collabora.co.uk>
2 * 2009 Nokia Corporation
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 Public
15 * 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
20 /**
21 * SECTION:gstdiscoverer
22 * @short_description: Utility for discovering information on URIs.
23 *
24 * The #GstDiscoverer is a utility object which allows to get as much
25 * information as possible from one or many URIs.
26 *
27 * It provides two APIs, allowing usage in blocking or non-blocking mode.
28 *
29 * The blocking mode just requires calling @gst_discoverer_discover_uri
30 * with the URI one wishes to discover.
31 *
32 * The non-blocking mode requires a running #GMainLoop in the default
33 * #GMainContext, where one connects to the various signals, appends the
34 * URIs to be processed (through @gst_discoverer_append_uri) and then
35 * asks for the discovery to begin (through @gst_discoverer_start).
36 *
37 * The information #GstStructure contains the fllowing information:
38 * <variablelist>
39 * <varlistentry>
40 * <term>'duration'</term>
41 * <listitem>The duration in nanoseconds. May not be present in case of
42 * errors.</listitem>
43 * </varlistentry>
44 * </variablelist>
45 *
46 * Since 0.10.26
47 */
48 #ifdef HAVE_CONFIG_H
49 #include "config.h"
50 #endif
51
52
53 #include "gstdiscoverer.h"
54 #include "gstdiscoverer-marshal.h"
55
56 GST_DEBUG_CATEGORY_STATIC (discoverer_debug);
57 #define GST_CAT_DEFAULT discoverer_debug
58
59 static GQuark _INFORMATION_QUARK;
60 static GQuark _CAPS_QUARK;
61 static GQuark _TAGS_QUARK;
62 static GQuark _MISSING_PLUGIN_QUARK;
63 static GQuark _STREAM_TOPOLOGY_QUARK;
64 static GQuark _TOPOLOGY_PAD_QUARK;
65
66 typedef struct
67 {
68 GstDiscoverer *dc;
69 GstPad *pad;
70 GstElement *queue;
71 GstElement *sink;
72 GstTagList *tags;
73 } PrivateStream;
74
75 #define DISCO_LOCK(dc) g_mutex_lock (dc->lock);
76 #define DISCO_UNLOCK(dc) g_mutex_unlock (dc->lock);
77
78 static void
79 _do_init (void)
80 {
81 GST_DEBUG_CATEGORY_INIT (discoverer_debug, "discoverer", 0, "Discoverer");
82
83 _INFORMATION_QUARK = g_quark_from_string ("information");
84 _CAPS_QUARK = g_quark_from_string ("caps");
85 _TAGS_QUARK = g_quark_from_string ("tags");
86 _MISSING_PLUGIN_QUARK = g_quark_from_string ("missing-plugin");
87 _STREAM_TOPOLOGY_QUARK = g_quark_from_string ("stream-topology");
88 _TOPOLOGY_PAD_QUARK = g_quark_from_string ("pad");
89 };
90
91 G_DEFINE_TYPE_EXTENDED (GstDiscoverer, gst_discoverer, G_TYPE_OBJECT, 0,
92 _do_init ());
93
94 enum
95 {
96 SIGNAL_READY,
97 SIGNAL_STARTING,
98 SIGNAL_DISCOVERED,
99 LAST_SIGNAL
100 };
101
102 #define DEFAULT_PROP_TIMEOUT 15 * GST_SECOND
103
104 enum
105 {
106 PROP_0,
107 PROP_TIMEOUT
108 };
109
110 static guint gst_discoverer_signals[LAST_SIGNAL] = { 0 };
111
112 static void gst_discoverer_set_timeout (GstDiscoverer * dc,
113 GstClockTime timeout);
114
115 static void discoverer_bus_cb (GstBus * bus, GstMessage * msg,
116 GstDiscoverer * dc);
117 static void uridecodebin_pad_added_cb (GstElement * uridecodebin, GstPad * pad,
118 GstDiscoverer * dc);
119 static void uridecodebin_pad_removed_cb (GstElement * uridecodebin,
120 GstPad * pad, GstDiscoverer * dc);
121
122 static void gst_discoverer_dispose (GObject * dc);
123 static void gst_discoverer_set_property (GObject * object, guint prop_id,
124 const GValue * value, GParamSpec * pspec);
125 static void gst_discoverer_get_property (GObject * object, guint prop_id,
126 GValue * value, GParamSpec * pspec);
127
128 static void
129 gst_discoverer_class_init (GstDiscovererClass * klass)
130 {
131 GObjectClass *gobject_class = (GObjectClass *) klass;
132
133 gobject_class->dispose = gst_discoverer_dispose;
134
135 gobject_class->set_property = gst_discoverer_set_property;
136 gobject_class->get_property = gst_discoverer_get_property;
137
138 /* properties */
139 /**
140 * GstDiscoverer:timeout
141 *
142 * The duration (in nanoseconds) after which the discovery of an individual
143 * URI will timeout.
144 *
145 * If the discovery of a URI times out, the @GST_DISCOVERER_TIMEOUT will be
146 * set on the result flags.
147 */
148 g_object_class_install_property (gobject_class, PROP_TIMEOUT,
149 g_param_spec_uint64 ("timeout", "timeout", "Timeout",
150 GST_SECOND, 3600 * GST_SECOND, DEFAULT_PROP_TIMEOUT,
151 G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
152
153 /* signals */
154 /**
155 * GstDiscoverer::ready:
156 * @discoverer: the #GstDiscoverer
157 *
158 * Will be emitted when all pending URIs have been processed.
159 */
160 gst_discoverer_signals[SIGNAL_READY] =
161 g_signal_new ("ready", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
162 G_STRUCT_OFFSET (GstDiscovererClass, ready),
163 NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0, G_TYPE_NONE);
164
165 /**
166 * GstDiscoverer::starting:
167 * @discoverer: the #GstDiscoverer
168 *
169 * Will be emitted when the discover starts analyzing the pending URIs
170 */
171 gst_discoverer_signals[SIGNAL_STARTING] =
172 g_signal_new ("starting", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
173 G_STRUCT_OFFSET (GstDiscovererClass, starting),
174 NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0, G_TYPE_NONE);
175
176 /**
177 * GstDiscoverer::discovered:
178 * @discoverer: the #GstDiscoverer
179 * @info: the results #GstDiscovererInformation
180 * @error: (type GLib.Error): #GError, which will be non-NULL if an error
181 * occured during discovery
182 *
183 * Will be emitted when all information on a URI could be discovered.
184 */
185 gst_discoverer_signals[SIGNAL_DISCOVERED] =
186 g_signal_new ("discovered", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
187 G_STRUCT_OFFSET (GstDiscovererClass, discovered),
188 NULL, NULL, __gst_discoverer_marshal_VOID__BOXED_BOXED,
189 G_TYPE_NONE, 2, GST_TYPE_DISCOVERER_INFORMATION, GST_TYPE_G_ERROR);
190 }
191
192 #if (GST_CHECK_VERSION(0,10,26) || (GST_VERSION_MICRO == 25 && GST_VERSION_NANO >= 1))
193 static void
194 uridecodebin_element_added_cb (GstElement * uridecodebin,
195 GstElement * child, GstDiscoverer * dc)
196 {
197 GST_DEBUG ("New element added to uridecodebin : %s",
198 GST_ELEMENT_NAME (child));
199
200 if (G_OBJECT_TYPE (child) == dc->decodebin2_type) {
201 g_object_set (child, "post-stream-topology", TRUE, NULL);
202 }
203 }
204 #endif
205
206 static void
207 gst_discoverer_init (GstDiscoverer * dc)
208 {
209 #if (GST_CHECK_VERSION(0,10,26) || (GST_VERSION_MICRO == 25 && GST_VERSION_NANO >= 1))
210 GstElement *tmp;
211 #endif
212
213 dc->timeout = DEFAULT_PROP_TIMEOUT;
214 dc->async = FALSE;
215
216 dc->lock = g_mutex_new ();
217
218 GST_LOG ("Creating pipeline");
219 dc->pipeline = (GstBin *) gst_pipeline_new ("Discoverer");
220 GST_LOG_OBJECT (dc, "Creating uridecodebin");
221 dc->uridecodebin =
222 gst_element_factory_make ("uridecodebin", "discoverer-uri");
223 GST_LOG_OBJECT (dc, "Adding uridecodebin to pipeline");
224 gst_bin_add (dc->pipeline, dc->uridecodebin);
225
226 g_signal_connect (dc->uridecodebin, "pad-added",
227 G_CALLBACK (uridecodebin_pad_added_cb), dc);
228 g_signal_connect (dc->uridecodebin, "pad-removed",
229 G_CALLBACK (uridecodebin_pad_removed_cb), dc);
230
231 GST_LOG_OBJECT (dc, "Getting pipeline bus");
232 dc->bus = gst_pipeline_get_bus ((GstPipeline *) dc->pipeline);
233
234 g_signal_connect (dc->bus, "message", G_CALLBACK (discoverer_bus_cb), dc);
235
236 GST_DEBUG_OBJECT (dc, "Done initializing Discoverer");
237
238 #if (GST_CHECK_VERSION(0,10,26) || (GST_VERSION_MICRO == 25 && GST_VERSION_NANO >= 1))
239 /* This is ugly. We get the GType of decodebin2 so we can quickly detect
240 * when a decodebin2 is added to uridecodebin so we can set the
241 * post-stream-topology setting to TRUE */
242 g_signal_connect (dc->uridecodebin, "element-added",
243 G_CALLBACK (uridecodebin_element_added_cb), dc);
244 tmp = gst_element_factory_make ("decodebin2", NULL);
245 dc->decodebin2_type = G_OBJECT_TYPE (tmp);
246 g_object_unref (tmp);
247 #endif
248 }
249
250 static void
251 discoverer_reset (GstDiscoverer * dc)
252 {
253 GST_DEBUG_OBJECT (dc, "Resetting");
254
255 if (dc->pending_uris) {
256 g_list_foreach (dc->pending_uris, (GFunc) g_free, NULL);
257 g_list_free (dc->pending_uris);
258 dc->pending_uris = NULL;
259 }
260
261 gst_element_set_state ((GstElement *) dc->pipeline, GST_STATE_NULL);
262 }
263
264 static void
265 gst_discoverer_dispose (GObject * obj)
266 {
267 GstDiscoverer *dc = (GstDiscoverer *) obj;
268
269 GST_DEBUG_OBJECT (dc, "Disposing");
270
271 discoverer_reset (dc);
272
273 if (G_LIKELY (dc->pipeline)) {
274 /* pipeline was set to NULL in _reset */
275 g_object_unref (dc->pipeline);
276 g_object_unref (dc->bus);
277 dc->pipeline = NULL;
278 dc->uridecodebin = NULL;
279 dc->bus = NULL;
280 }
281
282 if (dc->lock) {
283 g_mutex_free (dc->lock);
284 dc->lock = NULL;
285 }
286 }
287
288 static void
289 gst_discoverer_set_property (GObject * object, guint prop_id,
290 const GValue * value, GParamSpec * pspec)
291 {
292 GstDiscoverer *dc = (GstDiscoverer *) object;
293
294 switch (prop_id) {
295 case PROP_TIMEOUT:
296 gst_discoverer_set_timeout (dc, g_value_get_uint64 (value));
297 break;
298 default:
299 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
300 break;
301 }
302 }
303
304 static void
305 gst_discoverer_get_property (GObject * object, guint prop_id,
306 GValue * value, GParamSpec * pspec)
307 {
308 GstDiscoverer *dc = (GstDiscoverer *) object;
309
310 switch (prop_id) {
311 case PROP_TIMEOUT:
312 g_value_set_uint64 (value, dc->timeout);
313 break;
314 default:
315 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
316 break;
317 }
318 }
319
320 static void
321 gst_discoverer_set_timeout (GstDiscoverer * dc, GstClockTime timeout)
322 {
323 GST_DEBUG_OBJECT (dc, "timeout : %" GST_TIME_FORMAT, GST_TIME_ARGS (timeout));
324
325 /* FIXME : update current pending timeout if we're running */
326 DISCO_LOCK (dc);
327 dc->timeout = timeout;
328 DISCO_UNLOCK (dc);
329 }
330
331 static gboolean
332 _event_probe (GstPad * pad, GstEvent * event, PrivateStream * ps)
333 {
334 if (GST_EVENT_TYPE (event) == GST_EVENT_TAG) {
335 GstTagList *tl = NULL;
336
337 gst_event_parse_tag (event, &tl);
338 GST_DEBUG_OBJECT (pad, "tags %" GST_PTR_FORMAT, tl);
339 DISCO_LOCK (ps->dc);
340 ps->tags = gst_tag_list_merge (ps->tags, tl, GST_TAG_MERGE_APPEND);
341 DISCO_UNLOCK (ps->dc);
342 }
343
344 return TRUE;
345 }
346
347 static void
348 uridecodebin_pad_added_cb (GstElement * uridecodebin, GstPad * pad,
349 GstDiscoverer * dc)
350 {
351 PrivateStream *ps;
352 GstPad *sinkpad = NULL;
353
354 GST_DEBUG_OBJECT (dc, "pad %s:%s", GST_DEBUG_PAD_NAME (pad));
355
356 ps = g_slice_new0 (PrivateStream);
357
358 ps->dc = dc;
359 ps->pad = pad;
360 ps->queue = gst_element_factory_make ("queue", NULL);
361 ps->sink = gst_element_factory_make ("fakesink", NULL);
362 g_object_set (ps->sink, "silent", TRUE, NULL);
363
364 if (G_UNLIKELY (ps->queue == NULL || ps->sink == NULL))
365 goto error;
366
367 g_object_set (ps->queue, "max-size-buffers", 1, NULL);
368
369 gst_bin_add_many (dc->pipeline, ps->queue, ps->sink, NULL);
370
371 if (!gst_element_link (ps->queue, ps->sink))
372 goto error;
373 if (!gst_element_sync_state_with_parent (ps->sink))
374 goto error;
375 if (!gst_element_sync_state_with_parent (ps->queue))
376 goto error;
377
378 sinkpad = gst_element_get_static_pad (ps->queue, "sink");
379 if (sinkpad == NULL)
380 goto error;
381 if (gst_pad_link (pad, sinkpad) != GST_PAD_LINK_OK)
382 goto error;
383 g_object_unref (sinkpad);
384
385 /* Add an event probe */
386 gst_pad_add_event_probe (pad, G_CALLBACK (_event_probe), ps);
387
388 DISCO_LOCK (dc);
389 dc->streams = g_list_append (dc->streams, ps);
390 DISCO_UNLOCK (dc);
391
392 GST_DEBUG_OBJECT (dc, "Done handling pad");
393
394 return;
395
396 error:
397 GST_ERROR_OBJECT (dc, "Error while handling pad");
398 if (sinkpad)
399 g_object_unref (sinkpad);
400 if (ps->queue)
401 g_object_unref (ps->queue);
402 if (ps->sink)
403 g_object_unref (ps->sink);
404 g_free (ps);
405 return;
406 }
407
408 static void
409 uridecodebin_pad_removed_cb (GstElement * uridecodebin, GstPad * pad,
410 GstDiscoverer * dc)
411 {
412 GList *tmp;
413 PrivateStream *ps;
414 GstPad *sinkpad;
415
416 GST_DEBUG_OBJECT (dc, "pad %s:%s", GST_DEBUG_PAD_NAME (pad));
417
418 /* Find the PrivateStream */
419 DISCO_LOCK (dc);
420 for (tmp = dc->streams; tmp; tmp = tmp->next) {
421 ps = (PrivateStream *) tmp->data;
422 if (ps->pad == pad)
423 break;
424 }
425
426 if (tmp == NULL) {
427 DISCO_UNLOCK (dc);
428 GST_DEBUG ("The removed pad wasn't controlled by us !");
429 return;
430 }
431
432 dc->streams = g_list_delete_link (dc->streams, tmp);
433 DISCO_UNLOCK (dc);
434
435 gst_element_set_state (ps->sink, GST_STATE_NULL);
436 gst_element_set_state (ps->queue, GST_STATE_NULL);
437 gst_element_unlink (ps->queue, ps->sink);
438
439 sinkpad = gst_element_get_static_pad (ps->queue, "sink");
440 gst_pad_unlink (pad, sinkpad);
441 g_object_unref (sinkpad);
442
443 /* references removed here */
444 gst_bin_remove_many (dc->pipeline, ps->sink, ps->queue, NULL);
445
446 if (ps->tags) {
447 gst_tag_list_free (ps->tags);
448 }
449
450 g_slice_free1 (sizeof (PrivateStream), ps);
451
452 GST_DEBUG ("Done handling pad");
453 }
454
455 static GstStructure *
456 collect_stream_information (GstDiscoverer * dc, PrivateStream * ps, guint idx)
457 {
458 GstCaps *caps;
459 GstStructure *st;
460 gchar *stname;
461
462 stname = g_strdup_printf ("stream-%02d", idx);
463 st = gst_structure_empty_new (stname);
464 g_free (stname);
465
466 /* Get caps */
467 caps = gst_pad_get_negotiated_caps (ps->pad);
468 if (caps) {
469 GST_DEBUG ("Got caps %" GST_PTR_FORMAT, caps);
470 gst_structure_id_set (st, _CAPS_QUARK, GST_TYPE_CAPS, caps, NULL);
471
472 gst_caps_unref (caps);
473 } else
474 GST_WARNING ("Couldn't get negotiated caps from %s:%s",
475 GST_DEBUG_PAD_NAME (ps->pad));
476 if (ps->tags)
477 gst_structure_id_set (st, _TAGS_QUARK, GST_TYPE_STRUCTURE, ps->tags, NULL);
478
479 return st;
480 }
481
482 /* Parses a set of caps and tags in st and populates a GstStreamInformation
483 * structure (parent, if !NULL, otherwise it allocates one)
484 */
485 static GstStreamInformation *
486 collect_information (GstDiscoverer * dc, const GstStructure * st,
487 GstStreamInformation * parent)
488 {
489 GstCaps *caps;
490 GstStructure *caps_st, *tags_st;
491 const gchar *name;
492 int tmp, tmp2;
493 guint utmp;
494 gboolean btmp;
495
496 if (!st || !gst_structure_id_has_field (st, _CAPS_QUARK)) {
497 GST_WARNING ("Couldn't find caps !");
498 if (parent)
499 return parent;
500 else
501 return gst_stream_information_new ();
502 }
503
504 gst_structure_id_get ((GstStructure *) st, _CAPS_QUARK, GST_TYPE_CAPS, &caps,
505 NULL);
506 caps_st = gst_caps_get_structure (caps, 0);
507 name = gst_structure_get_name (caps_st);
508
509 if (g_str_has_prefix (name, "audio/")) {
510 GstStreamAudioInformation *info;
511
512 if (parent)
513 info = (GstStreamAudioInformation *) parent;
514 else {
515 info = gst_stream_audio_information_new ();
516 info->parent.caps = caps;
517 }
518
519 if (gst_structure_get_int (caps_st, "rate", &tmp))
520 info->sample_rate = (guint) tmp;
521
522 if (gst_structure_get_int (caps_st, "channels", &tmp))
523 info->channels = (guint) tmp;
524
525 if (gst_structure_get_int (caps_st, "depth", &tmp))
526 info->depth = (guint) tmp;
527
528 if (gst_structure_id_has_field (st, _TAGS_QUARK)) {
529 gst_structure_id_get ((GstStructure *) st, _TAGS_QUARK,
530 GST_TYPE_STRUCTURE, &tags_st, NULL);
531 if (gst_structure_get_uint (tags_st, GST_TAG_BITRATE, &utmp))
532 info->bitrate = utmp;
533
534 if (gst_structure_get_uint (tags_st, GST_TAG_MAXIMUM_BITRATE, &utmp))
535 info->max_bitrate = utmp;
536
537 #ifdef GST_TAG_HAS_VBR
538 if (gst_structure_get_boolean (tags_st, GST_TAG_HAS_VBR, &btmp))
539 info->is_vbr = btmp;
540 #endif
541
542 /* FIXME: Is it worth it to remove the tags we've parsed? */
543 info->parent.tags = gst_tag_list_merge (info->parent.tags,
544 (GstTagList *) tags_st, GST_TAG_MERGE_REPLACE);
545
546 gst_structure_free (tags_st);
547 }
548
549 return (GstStreamInformation *) info;
550
551 } else if (g_str_has_prefix (name, "video/") ||
552 g_str_has_prefix (name, "image/")) {
553 GstStreamVideoInformation *info;
554 GstVideoFormat format;
555
556 if (parent)
557 info = (GstStreamVideoInformation *) parent;
558 else {
559 info = gst_stream_video_information_new ();
560 info->parent.caps = caps;
561 }
562
563 if (gst_video_format_parse_caps (caps, &format, &tmp, &tmp2)) {
564 info->width = (guint) tmp;
565 info->height = (guint) tmp2;
566 info->format = format;
567 }
568
569 if (gst_structure_get_int (caps_st, "depth", &tmp))
570 info->depth = (guint) tmp;
571
572 if (gst_video_parse_caps_pixel_aspect_ratio (caps, &tmp, &tmp2))
573 gst_value_set_fraction (&info->pixel_aspect_ratio, tmp, tmp2);
574
575 if (gst_video_parse_caps_framerate (caps, &tmp, &tmp2))
576 gst_value_set_fraction (&info->frame_rate, tmp, tmp2);
577
578 if (gst_video_format_parse_caps_interlaced (caps, &btmp))
579 info->interlaced = btmp;
580
581 if (gst_structure_id_has_field (st, _TAGS_QUARK)) {
582 gst_structure_id_get ((GstStructure *) st, _TAGS_QUARK,
583 GST_TYPE_STRUCTURE, &tags_st, NULL);
584 /* FIXME: Is it worth it to remove the tags we've parsed? */
585 info->parent.tags = gst_tag_list_merge (info->parent.tags,
586 (GstTagList *) tags_st, GST_TAG_MERGE_REPLACE);
587 gst_structure_free (tags_st);
588 }
589
590 return (GstStreamInformation *) info;
591
592 } else {
593 /* None of the above - populate what information we can */
594 GstStreamInformation *info;
595
596 if (parent)
597 info = parent;
598 else {
599 info = gst_stream_information_new ();
600 info->caps = caps;
601 }
602
603 if (gst_structure_id_get ((GstStructure *) st, _TAGS_QUARK,
604 GST_TYPE_STRUCTURE, &tags_st, NULL)) {
605 info->tags = gst_tag_list_merge (info->tags, (GstTagList *) tags_st,
606 GST_TAG_MERGE_REPLACE);
607 gst_structure_free (tags_st);
608 }
609
610 return info;
611 }
612
613 }
614
615 static GstStructure *
616 find_stream_for_node (GstDiscoverer * dc, const GstStructure * topology)
617 {
618 GstPad *pad;
619 GstPad *target_pad = NULL;
620 GstStructure *st = NULL;
621 PrivateStream *ps;
622 guint i;
623 GList *tmp;
624
625 if (!gst_structure_id_has_field (topology, _TOPOLOGY_PAD_QUARK)) {
626 GST_DEBUG ("Could not find pad for node %" GST_PTR_FORMAT "\n", topology);
627 return NULL;
628 }
629
630 gst_structure_id_get ((GstStructure *) topology, _TOPOLOGY_PAD_QUARK,
631 GST_TYPE_PAD, &pad, NULL);
632
633 if (!dc->streams)
634 return NULL;
635
636 for (i = 0, tmp = dc->streams; tmp; tmp = tmp->next, i++) {
637 ps = (PrivateStream *) tmp->data;
638
639 target_pad = gst_ghost_pad_get_target (GST_GHOST_PAD (ps->pad));
640 gst_object_unref (target_pad);
641
642 if (target_pad == pad)
643 break;
644 }
645
646 if (tmp)
647 st = collect_stream_information (dc, ps, i);
648
649 gst_object_unref (pad);
650
651 return st;
652 }
653
654 static gboolean
655 child_is_raw_stream (GstCaps * parent, GstCaps * child)
656 {
657 GstStructure *st1, *st2;
658 const gchar *name1, *name2;
659
660 st1 = gst_caps_get_structure (parent, 0);
661 name1 = gst_structure_get_name (st1);
662 st2 = gst_caps_get_structure (child, 0);
663 name2 = gst_structure_get_name (st2);
664
665 if ((g_str_has_prefix (name1, "audio/") &&
666 g_str_has_prefix (name2, "audio/x-raw")) ||
667 ((g_str_has_prefix (name1, "video/") ||
668 g_str_has_prefix (name1, "image/")) &&
669 g_str_has_prefix (name2, "video/x-raw"))) {
670 /* child is the "raw" sub-stream corresponding to parent */
671 return TRUE;
672 }
673
674 return FALSE;
675 }
676
677 /* If a parent is non-NULL, collected stream information will be appended to it
678 * (and where the information exists, it will be overriden)
679 */
680 static GstStreamInformation *
681 parse_stream_topology (GstDiscoverer * dc, const GstStructure * topology,
682 GstStreamInformation * parent)
683 {
684 GstStreamInformation *res = NULL;
685 GstCaps *caps = NULL;
686 const GValue *nval = NULL;
687
688 GST_DEBUG ("parsing: %" GST_PTR_FORMAT, topology);
689
690 nval = gst_structure_get_value (topology, "next");
691
692 if (nval == NULL || GST_VALUE_HOLDS_STRUCTURE (nval)) {
693 GstStructure *st = find_stream_for_node (dc, topology);
694 gboolean add_to_list = TRUE;
695
696 if (st) {
697 res = collect_information (dc, st, parent);
698 gst_structure_free (st);
699 } else {
700 /* Didn't find a stream structure, so let's just use the caps we have */
701 res = collect_information (dc, topology, parent);
702 }
703
704 if (nval == NULL) {
705 /* FIXME : aggregate with information from main streams */
706 GST_DEBUG ("Coudn't find 'next' ! might be the last entry");
707 } else {
708 GstCaps *caps;
709 const GstStructure *st;
710
711 GST_DEBUG ("next is a structure %" GST_PTR_FORMAT);
712
713 st = gst_value_get_structure (nval);
714
715 if (!parent)
716 parent = res;
717
718 if (gst_structure_id_get ((GstStructure *) st, _CAPS_QUARK, GST_TYPE_CAPS,
719 &caps, NULL)) {
720 if (gst_caps_can_intersect (parent->caps, caps)) {
721 /* We sometimes get an extra sub-stream from the parser. If this is
722 * the case, we just replace the parent caps with this stream's caps
723 * since they might contain more information */
724 gst_caps_unref (parent->caps);
725 parent->caps = caps;
726
727 parse_stream_topology (dc, st, parent);
728 add_to_list = FALSE;
729
730 } else if (child_is_raw_stream (parent->caps, caps)) {
731 /* This is the "raw" stream corresponding to the parent. This
732 * contains more information than the parent, tags etc. */
733 parse_stream_topology (dc, st, parent);
734 add_to_list = FALSE;
735 gst_caps_unref (caps);
736
737 } else {
738 GstStreamInformation *next = parse_stream_topology (dc, st, NULL);
739 res->next = next;
740 next->previous = res;
741 }
742 }
743 }
744
745 if (add_to_list) {
746 dc->current_info->stream_list =
747 g_list_append (dc->current_info->stream_list, res);
748 }
749
750 } else if (GST_VALUE_HOLDS_LIST (nval)) {
751 guint i, len;
752 GstStreamContainerInformation *cont;
753 GstTagList *tags;
754
755 if (!gst_structure_id_get ((GstStructure *) topology, _CAPS_QUARK,
756 GST_TYPE_CAPS, &caps, NULL))
757 GST_WARNING ("Couldn't find caps !");
758
759 len = gst_value_list_get_size (nval);
760 GST_DEBUG ("next is a list of %d entries", len);
761
762 cont = gst_stream_container_information_new ();
763 cont->parent.caps = caps;
764 res = (GstStreamInformation *) cont;
765
766 if (gst_structure_id_has_field (topology, _TAGS_QUARK)) {
767 gst_structure_id_get ((GstStructure *) topology, _TAGS_QUARK,
768 GST_TYPE_STRUCTURE, &tags, NULL);
769 cont->parent.tags =
770 gst_tag_list_merge (cont->parent.tags, (GstTagList *) tags,
771 GST_TAG_MERGE_APPEND);
772 gst_tag_list_free (tags);
773 }
774
775 for (i = 0; i < len; i++) {
776 const GValue *subv = gst_value_list_get_value (nval, i);
777 const GstStructure *subst = gst_value_get_structure (subv);
778 GstStreamInformation *substream;
779
780 GST_DEBUG ("%d %" GST_PTR_FORMAT, i, subst);
781
782 substream = parse_stream_topology (dc, subst, NULL);
783
784 substream->previous = res;
785 cont->streams = g_list_append (cont->streams, substream);
786 }
787 }
788
789 return res;
790 }
791
792 /* Called when pipeline is pre-rolled */
793 static void
794 discoverer_collect (GstDiscoverer * dc)
795 {
796 GST_DEBUG ("Collecting information");
797
798 if (dc->streams) {
799 /* FIXME : Make this querying optional */
800 if (TRUE) {
801 GstFormat format = GST_FORMAT_TIME;
802 gint64 dur;
803
804 GST_DEBUG ("Attempting to query duration");
805
806 if (gst_element_query_duration ((GstElement *) dc->pipeline, &format,
807 &dur)) {
808 if (format == GST_FORMAT_TIME) {
809 GST_DEBUG ("Got duration %" GST_TIME_FORMAT, GST_TIME_ARGS (dur));
810 dc->current_info->duration = (guint64) dur;
811 }
812 }
813 }
814
815 if (dc->current_topology)
816 dc->current_info->stream_info = parse_stream_topology (dc,
817 dc->current_topology, NULL);
818
819 /*
820 * Images need some special handling. They do not have a duration, have
821 * caps named image/<foo> (th exception being MJPEG video which is also
822 * type image/jpeg), and should consist of precisely one stream (actually
823 * initially there are 2, the image and raw stream, but we squash these
824 * while parsing the stream topology). At some ponit, if we find that these
825 * conditions are not sufficient, we can count the number of decoders and
826 * parsers in the chain, and if there's more than one decoder, or any
827 * parser at all, we should not mark this as an image.
828 */
829 if (dc->current_info->duration == 0 &&
830 dc->current_info->stream_info != NULL &&
831 dc->current_info->stream_info->next == NULL) {
832 GstStructure *st =
833 gst_caps_get_structure (dc->current_info->stream_info->caps, 0);
834
835 if (g_str_has_prefix (gst_structure_get_name (st), "image/"))
836 dc->current_info->stream_info->streamtype = GST_STREAM_IMAGE;
837 }
838 }
839
840 if (dc->async) {
841 GST_DEBUG ("Emitting 'discoverered'");
842 g_signal_emit (dc, gst_discoverer_signals[SIGNAL_DISCOVERED], 0,
843 dc->current_info, dc->current_error);
844 /* Clients get a copy of current_info since it is a boxed type */
845 gst_discoverer_information_free (dc->current_info);
846 }
847 }
848
849 static void
850 handle_current_async (GstDiscoverer * dc)
851 {
852 /* FIXME : TIMEOUT ! */
853 }
854
855
856 /* Returns TRUE if processing should stop */
857 static gboolean
858 handle_message (GstDiscoverer * dc, GstMessage * msg)
859 {
860 gboolean done = FALSE;
861
862 GST_DEBUG ("got a %s message", GST_MESSAGE_TYPE_NAME (msg));
863
864 switch (GST_MESSAGE_TYPE (msg)) {
865 case GST_MESSAGE_ERROR:{
866 GError *gerr;
867 gchar *debug;
868
869 gst_message_parse_error (msg, &gerr, &debug);
870 GST_WARNING ("Got an error [debug:%s]", debug);
871 dc->current_error = gerr;
872 g_free (debug);
873
874 /* We need to stop */
875 done = TRUE;
876
877 dc->current_info->result |= GST_DISCOVERER_ERROR;
878 }
879 break;
880
881 case GST_MESSAGE_EOS:
882 GST_DEBUG ("Got EOS !");
883 done = TRUE;
884 break;
885
886 case GST_MESSAGE_ASYNC_DONE:
887 if (GST_MESSAGE_SRC (msg) == (GstObject *) dc->pipeline) {
888 GST_DEBUG ("Finished changing state asynchronously");
889 done = TRUE;
890
891 }
892 break;
893
894 case GST_MESSAGE_ELEMENT:
895 {
896 GQuark sttype = gst_structure_get_name_id (msg->structure);
897 GST_DEBUG_OBJECT (GST_MESSAGE_SRC (msg),
898 "structure %" GST_PTR_FORMAT, msg->structure);
899 if (sttype == _MISSING_PLUGIN_QUARK) {
900 dc->current_info->result |= GST_DISCOVERER_MISSING_PLUGINS;
901 dc->current_info->misc = gst_structure_copy (msg->structure);
902 } else if (sttype == _STREAM_TOPOLOGY_QUARK) {
903 dc->current_topology = gst_structure_copy (msg->structure);
904 }
905 }
906 break;
907
908 case GST_MESSAGE_TAG:
909 {
910 GstTagList *tl;
911
912 gst_message_parse_tag (msg, &tl);
913 GST_DEBUG ("Got tags %" GST_PTR_FORMAT, tl);
914 /* Merge with current tags */
915 dc->current_info->tags =
916 gst_tag_list_merge (dc->current_info->tags, tl, GST_TAG_MERGE_APPEND);
917 gst_tag_list_free (tl);
918 }
919 break;
920
921 default:
922 break;
923 }
924
925 return done;
926 }
927
928
929 static void
930 handle_current_sync (GstDiscoverer * dc)
931 {
932 GTimer *timer;
933 gdouble deadline = ((gdouble) dc->timeout) / GST_SECOND;
934 GstMessage *msg;
935 gboolean done = FALSE;
936
937 timer = g_timer_new ();
938 g_timer_start (timer);
939
940 do {
941 /* poll bus with timeout */
942 /* FIXME : make the timeout more fine-tuned */
943 if ((msg = gst_bus_timed_pop (dc->bus, GST_SECOND / 2))) {
944 done = handle_message (dc, msg);
945 gst_message_unref (msg);
946 }
947
948 } while (!done && (g_timer_elapsed (timer, NULL) < deadline));
949
950 /* return result */
951 if (!done) {
952 GST_DEBUG ("we timed out!");
953 dc->current_info->result |= GST_DISCOVERER_TIMEOUT;
954 }
955
956 GST_DEBUG ("Done");
957
958 g_timer_stop (timer);
959 g_timer_destroy (timer);
960 }
961
962 static void
963 _setup_locked (GstDiscoverer * dc)
964 {
965 GstStateChangeReturn ret;
966
967 GST_DEBUG ("Setting up");
968
969 /* Pop URI off the pending URI list */
970 dc->current_info = gst_discoverer_information_new ();
971 dc->current_info->uri = (gchar *) dc->pending_uris->data;
972 dc->pending_uris = g_list_delete_link (dc->pending_uris, dc->pending_uris);
973
974 /* set uri on uridecodebin */
975 g_object_set (dc->uridecodebin, "uri", dc->current_info->uri, NULL);
976
977 GST_DEBUG ("Current is now %s", dc->current_info->uri);
978
979 /* set pipeline to PAUSED */
980 dc->running = TRUE;
981
982 DISCO_UNLOCK (dc);
983 GST_DEBUG ("Setting pipeline to PAUSED");
984 ret = gst_element_set_state ((GstElement *) dc->pipeline, GST_STATE_PAUSED);
985 DISCO_LOCK (dc);
986
987 GST_DEBUG_OBJECT (dc, "Pipeline going to PAUSED : %s",
988 gst_element_state_change_return_get_name (ret));
989 }
990
991 static void
992 discoverer_cleanup (GstDiscoverer * dc)
993 {
994 GST_DEBUG ("Cleaning up");
995
996 gst_bus_set_flushing (dc->bus, TRUE);
997 gst_element_set_state ((GstElement *) dc->pipeline, GST_STATE_READY);
998 gst_bus_set_flushing (dc->bus, FALSE);
999
1000 DISCO_LOCK (dc);
1001 if (dc->current_error)
1002 g_error_free (dc->current_error);
1003 dc->current_error = NULL;
1004 if (dc->current_topology) {
1005 gst_structure_free (dc->current_topology);
1006 dc->current_topology = NULL;
1007 }
1008
1009 dc->current_info = NULL;
1010
1011 /* Try popping the next uri */
1012 if (dc->async) {
1013 if (dc->pending_uris != NULL) {
1014 _setup_locked (dc);
1015 DISCO_UNLOCK (dc);
1016 /* Start timeout */
1017 handle_current_async (dc);
1018 } else {
1019 /* We're done ! */
1020 DISCO_UNLOCK (dc);
1021 g_signal_emit (dc, gst_discoverer_signals[SIGNAL_READY], 0);
1022 }
1023 } else
1024 DISCO_UNLOCK (dc);
1025
1026 GST_DEBUG ("out");
1027 }
1028
1029 static void
1030 discoverer_bus_cb (GstBus * bus, GstMessage * msg, GstDiscoverer * dc)
1031 {
1032 GST_DEBUG ("dc->running:%d", dc->running);
1033 if (dc->running) {
1034 if (handle_message (dc, msg)) {
1035 GST_DEBUG ("Stopping asynchronously");
1036 dc->running = FALSE;
1037 discoverer_collect (dc);
1038 discoverer_cleanup (dc);
1039 }
1040 }
1041 }
1042
1043
1044
1045 /* If there is a pending URI, it will pop it from the list of pending
1046 * URIs and start the discovery on it.
1047 *
1048 * Returns GST_DISCOVERER_OK if the next URI was popped and is processing,
1049 * else a error flag.
1050 */
1051 static GstDiscovererResult
1052 start_discovering (GstDiscoverer * dc)
1053 {
1054 GstDiscovererResult res = GST_DISCOVERER_OK;
1055
1056 GST_DEBUG ("Starting");
1057
1058 DISCO_LOCK (dc);
1059 if (dc->pending_uris == NULL) {
1060 GST_WARNING ("No URI to process");
1061 res |= GST_DISCOVERER_URI_INVALID;
1062 DISCO_UNLOCK (dc);
1063 goto beach;
1064 }
1065
1066 if (dc->current_info != NULL) {
1067 GST_WARNING ("Already processing a file");
1068 res |= GST_DISCOVERER_BUSY;
1069 DISCO_UNLOCK (dc);
1070 goto beach;
1071 }
1072
1073 _setup_locked (dc);
1074
1075 DISCO_UNLOCK (dc);
1076
1077 if (dc->async)
1078 handle_current_async (dc);
1079 else
1080 handle_current_sync (dc);
1081
1082 beach:
1083 return res;
1084 }
1085
1086
1087 /**
1088 * gst_discoverer_start:
1089 * @discoverer: A #GstDiscoverer
1090 *
1091 * Allow asynchronous discovering of URIs to take place.
1092 */
1093 void
1094 gst_discoverer_start (GstDiscoverer * discoverer)
1095 {
1096 GST_DEBUG_OBJECT (discoverer, "Starting...");
1097
1098 if (discoverer->async) {
1099 GST_DEBUG_OBJECT (discoverer, "We were already started");
1100 return;
1101 }
1102
1103 discoverer->async = TRUE;
1104 /* Connect to bus signals */
1105 gst_bus_add_signal_watch (discoverer->bus);
1106
1107 start_discovering (discoverer);
1108 GST_DEBUG_OBJECT (discoverer, "Started");
1109 }
1110
1111 /**
1112 * gst_discoverer_stop:
1113 * @discoverer: A #GstDiscoverer
1114 *
1115 * Stop the discovery of any pending URIs and clears the list of
1116 * pending URIS (if any).
1117 */
1118 void
1119 gst_discoverer_stop (GstDiscoverer * discoverer)
1120 {
1121 GST_DEBUG_OBJECT (discoverer, "Stopping...");
1122
1123 if (!discoverer->async) {
1124 GST_DEBUG_OBJECT (discoverer,
1125 "We were already stopped, or running synchronously");
1126 return;
1127 }
1128
1129 DISCO_LOCK (discoverer);
1130 if (discoverer->running) {
1131 /* FIXME : Stop any ongoing discovery */
1132 }
1133 DISCO_UNLOCK (discoverer);
1134
1135 /* Remove signal watch */
1136 gst_bus_remove_signal_watch (discoverer->bus);
1137 discoverer_reset (discoverer);
1138
1139 discoverer->async = FALSE;
1140
1141 GST_DEBUG_OBJECT (discoverer, "Stopped");
1142 }
1143
1144 /**
1145 * gst_discoverer_append_uri:
1146 * @discoverer: A #GstDiscoverer
1147 * @uri: the URI to add.
1148 *
1149 * Appends the given @uri to the list of URIs to discoverer. The actual
1150 * discovery of the @uri will only take place if @gst_discoverer_start has
1151 * been called.
1152 *
1153 * A copy of @uri will be done internally, the caller can safely %g_free afterwards.
1154 *
1155 * Returns: TRUE if the @uri was succesfully appended to the list of pending
1156 * uris, else FALSE
1157 */
1158 gboolean
1159 gst_discoverer_append_uri (GstDiscoverer * discoverer, gchar * uri)
1160 {
1161 gboolean can_run;
1162
1163 GST_DEBUG_OBJECT (discoverer, "uri : %s", uri);
1164
1165 DISCO_LOCK (discoverer);
1166 can_run = (discoverer->pending_uris == NULL);
1167 discoverer->pending_uris =
1168 g_list_append (discoverer->pending_uris, g_strdup (uri));
1169 DISCO_UNLOCK (discoverer);
1170
1171 if (can_run)
1172 start_discovering (discoverer);
1173
1174 return TRUE;
1175 }
1176
1177
1178 /* Synchronous mode */
1179 /**
1180 * gst_discoverer_discover_uri:
1181 *
1182 * @discoverer: A #GstDiscoverer
1183 * @uri: The URI to run on.
1184 * @err: If an error occured, this field will be filled in.
1185 *
1186 * Synchronously discovers the given @uri.
1187 *
1188 * A copy of @uri will be done internally, the caller can safely %g_free afterwards.
1189 *
1190 * Returns: (transfer none): see #GstDiscovererInformation. The caller must free this structure
1191 * after use.
1192 */
1193 GstDiscovererInformation *
1194 gst_discoverer_discover_uri (GstDiscoverer * discoverer, gchar * uri,
1195 GError ** err)
1196 {
1197 GstDiscovererResult res = 0;
1198 GstDiscovererInformation *info;
1199
1200 GST_DEBUG_OBJECT (discoverer, "uri:%s", uri);
1201
1202 DISCO_LOCK (discoverer);
1203 if (G_UNLIKELY (discoverer->current_info)) {
1204 DISCO_UNLOCK (discoverer);
1205 GST_WARNING_OBJECT (discoverer, "Already handling a uri");
1206 return NULL;
1207 }
1208
1209 discoverer->pending_uris =
1210 g_list_append (discoverer->pending_uris, g_strdup (uri));
1211 DISCO_UNLOCK (discoverer);
1212
1213 res = start_discovering (discoverer);
1214 discoverer_collect (discoverer);
1215
1216 /* Get results */
1217 if (discoverer->current_error)
1218 *err = g_error_copy (discoverer->current_error);
1219 else
1220 *err = NULL;
1221 discoverer->current_info->result |= res;
1222 info = discoverer->current_info;
1223
1224 discoverer_cleanup (discoverer);
1225
1226 return info;
1227 }
1228
1229 /**
1230 * gst_discoverer_new:
1231 * @timeout: The timeout to set on the discoverer
1232 *
1233 * Creates a new #GstDiscoverer with the provided timeout.
1234 *
1235 * Returns: The new #GstDiscoverer. Free with g_object_unref() when done.
1236 */
1237 GstDiscoverer *
1238 gst_discoverer_new (GstClockTime timeout)
1239 {
1240 return g_object_new (GST_TYPE_DISCOVERER, "timeout", timeout, NULL);
1241 }
+0
-331
gst-convenience/gst-libs/gst/discoverer/gstdiscoverer.h less more
0 /* GStreamer
1 * Copyright (C) 2009 Edward Hervey <edward.hervey@collabora.co.uk>
2 * 2009 Nokia Corporation
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 Public
15 * 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
20 #ifndef _GST_DISCOVERER_H_
21 #define _GST_DISCOVERER_H_
22
23 #ifndef GST_USE_UNSTABLE_API
24 #warning "GstDiscoverer is unstable API and may change in future."
25 #warning "You can define GST_USE_UNSTABLE_API to avoid this warning."
26 #endif
27
28 #include <gst/gst.h>
29 #include <gst/video/video.h>
30 #include <gst/discoverer/gstdiscoverer-enumtypes.h>
31
32 G_BEGIN_DECLS
33
34 /**
35 * GstStreamType:
36 * @GST_STREAM_CONTAINER: Container media stream
37 * @GST_STREAM_AUDIO: Audio media stream
38 * @GST_STREAM_VIDEO: Video media stream
39 * @GST_STREAM_IMAGE: Single-picture media stream
40 * @GST_STREAM_UNKNOWN: Unknown media stream
41 *
42 * The various types of #GstStreamInformation.
43 */
44 typedef enum {
45 GST_STREAM_CONTAINER,
46 GST_STREAM_AUDIO,
47 GST_STREAM_VIDEO,
48 GST_STREAM_IMAGE,
49 GST_STREAM_UNKNOWN,
50 } GstStreamType;
51
52 typedef struct _GstStreamInformation GstStreamInformation;
53
54 /**
55 * GstStreamInformation:
56 * @streamtype: the type of stream, can be a container or a media type (audio/video/text)
57 * @previous: previous #GstStreamInformation in a chain, NULL for starting points
58 * @next: next #GstStreamInformation in a chain, NULL for containers
59 * @caps: #GstCaps for the stream
60 * @tags: #GstTagList containing tags for the stream
61 * @misc: #GstStructure with additional information (for example, codec version, profile, etc.)
62 *
63 * Base structure for informations concerning a media stream. Depending on the @streamtype,
64 * One can find more media-specific information in #GstStreamAudioInformation,
65 * #GstStreamVideoInformation, #GstStreamContainerInformation.
66 */
67 struct _GstStreamInformation {
68 GstStreamType streamtype;
69
70 GstStreamInformation *previous; /* NULL for starting points */
71 GstStreamInformation *next; /* NULL for containers */
72
73 GstCaps *caps;
74 GstTagList *tags;
75 GstStructure *misc;
76 };
77
78 GstStreamInformation * gst_stream_information_new (void);
79 GstStreamInformation *
80 gst_stream_information_copy (GstStreamInformation * info);
81 void gst_stream_information_free (GstStreamInformation *topology);
82 GType gst_stream_information_get_type (void);
83
84 #define GST_TYPE_STREAM_INFORMATION (gst_stream_information_get_type ())
85 #define GST_STREAM_INFORMATION(object) ((GstStreamInformation *)(object))
86
87
88 /**
89 * GstStreamContainerInformation:
90 * @parent: See #GstStreamInformation for fields
91 * @streams: List of #GstStreamInformation objects in this container
92 *
93 * #GstStreamInformation specific to streams of type #GST_STREAM_CONTAINER.
94 */
95 typedef struct _GstStreamContainerInformation GstStreamContainerInformation;
96
97 struct _GstStreamContainerInformation {
98 GstStreamInformation parent;
99
100 GList *streams;
101 };
102
103 GstStreamContainerInformation * gst_stream_container_information_new (void);
104 GstStreamContainerInformation *
105 gst_stream_container_information_copy (GstStreamContainerInformation * ptr);
106 void gst_stream_container_information_free (GstStreamContainerInformation *ptr);
107 GType gst_stream_container_information_get_type (void);
108
109 #define GST_TYPE_STREAM_CONTAINER_INFORMATION \
110 (gst_stream_container_information_get_type ())
111 #define GST_STREAM_CONTAINER_INFORMATION(object) \
112 ((GstStreamContainerInformation *)(object))
113
114
115 /**
116 * GstStreamAudioInformation:
117 * @parent: See #GstStreamInformation for fields
118 * @channels: Number of channels in the stream
119 * @sample_rate: Sampling rate of the stream in Hz
120 * @depth: Number of bits used per sample
121 * @bitrate: Bitrate of the stream in bits/second
122 * @is_vbr: True if the stream has a variable bitrate
123 *
124 * #GstStreamInformation specific to streams of type #GST_STREAM_AUDIO.
125 */
126 typedef struct _GstStreamAudioInformation GstStreamAudioInformation;
127
128 struct _GstStreamAudioInformation {
129 GstStreamInformation parent;
130
131 guint channels;
132 guint sample_rate;
133 guint depth;
134
135 guint bitrate;
136 guint max_bitrate;
137 gboolean is_vbr;
138 };
139
140 GstStreamAudioInformation * gst_stream_audio_information_new (void);
141 GstStreamAudioInformation *
142 gst_stream_audio_information_copy (GstStreamAudioInformation * ptr);
143 void gst_stream_audio_information_free (GstStreamAudioInformation *ptr);
144 GType gst_stream_audio_information_get_type (void);
145
146 #define GST_TYPE_STREAM_AUDIO_INFORMATION \
147 (gst_stream_audio_information_get_type ())
148 #define GST_STREAM_AUDIO_INFORMATION(object) \
149 ((GstStreamAudioInformation *)(object))
150
151
152 /**
153 * GstStreamVideoInformation:
154 * @parent: See #GstStreamInformation for fields
155 * @width: Width of the video stream
156 * @height: Height of the video stream
157 * @depth: Depth in bits of the video stream (only relevant for RGB streams)
158 * @frame_rate: Frame rte of the video stream as a fraction
159 * @pixel_aspect_ratio: PAR of the video stream as a fraction
160 * @format: Colorspace and depth of the stream as a #GstVideoFormat
161 * @interlaced: True if the stream is interlaced, false otherwise
162 *
163 * #GstStreamInformation specific to streams of type #GST_STREAM_VIDEO.
164 */
165 typedef struct _GstStreamVideoInformation GstStreamVideoInformation;
166
167 struct _GstStreamVideoInformation {
168 GstStreamInformation parent;
169
170 guint width;
171 guint height;
172 guint depth;
173 GValue frame_rate;
174 GValue pixel_aspect_ratio;
175 GstVideoFormat format;
176 gboolean interlaced;
177 };
178
179 GstStreamVideoInformation * gst_stream_video_information_new (void);
180 GstStreamVideoInformation *
181 gst_stream_video_information_copy (GstStreamVideoInformation * ptr);
182 void gst_stream_video_information_free (GstStreamVideoInformation *ptr);
183 GType gst_stream_video_information_get_type (void);
184
185 #define GST_TYPE_STREAM_VIDEO_INFORMATION \
186 (gst_stream_video_information_get_type ())
187 #define GST_STREAM_VIDEO_INFORMATION(object) \
188 ((GstStreamVideoInformation *)(object))
189
190
191 /**
192 * GstDiscovererResult:
193 * @GST_DISCOVERER_OK: The discovery was successfull
194 * @GST_DISCOVERER_URI_INVALID: the URI is invalid
195 * @GST_DISCOVERER_ERROR: an error happend and the GError is set
196 * @GST_DISCOVERER_TIMEOUT: the discovery timed-out
197 * @GST_DISCOVERER_BUSY: the discoverer was already discovering a file
198 * @GST_DISCOVERER_MISSING_PLUGINS: Some plugins are missing for full discovery
199 *
200 * Result values for the discovery process.
201 */
202 typedef enum
203 {
204 GST_DISCOVERER_OK = 0,
205 GST_DISCOVERER_URI_INVALID = (1<<0),
206 GST_DISCOVERER_ERROR = (1<<1),
207 GST_DISCOVERER_TIMEOUT = (1<<2),
208 GST_DISCOVERER_BUSY = (1<<3),
209 GST_DISCOVERER_MISSING_PLUGINS = (1<<4)
210 } GstDiscovererResult;
211
212
213 /**
214 * GstDiscovererInformation:
215 * @uri: The URI for which the information was discovered
216 * @result: Result of discovery as a #GstDiscovererResult
217 * @stream_info: #GstStreamInformation struct with information about the stream and its substreams, preserving the original hierarchy
218 * @stream_list: #GList of streams for easy iteration
219 * @duration: Duration of the stream in nanoseconds
220 * @misc: Miscellaneous information stored as a #GstStructure (for example, information about missing plugins)
221 *
222 * Structure containing the information of a URI analyzed by #GstDiscoverer.
223 */
224 typedef struct _GstDiscovererInformation GstDiscovererInformation;
225
226 struct _GstDiscovererInformation {
227 gchar *uri;
228 GstDiscovererResult result;
229
230 /* Sub-streams */
231 GstStreamInformation *stream_info;
232 GList *stream_list;
233
234 /* Stream global information */
235 GstClockTime duration;
236 GstStructure *misc;
237 GstTagList *tags;
238 };
239
240 GstDiscovererInformation * gst_discoverer_information_new (void);
241 GstDiscovererInformation *
242 gst_discoverer_information_copy (GstDiscovererInformation * ptr);
243 void gst_discoverer_information_free (GstDiscovererInformation *ptr);
244 GType gst_discoverer_information_get_type (void);
245
246 #define GST_TYPE_DISCOVERER_INFORMATION (gst_discoverer_information_get_type ())
247 #define GST_DISCOVERER_INFORMATION(object) \
248 ((GstDiscovererInformation *)(object))
249
250
251 #define GST_TYPE_DISCOVERER \
252 (gst_discoverer_get_type())
253 #define GST_DISCOVERER(obj) \
254 (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DISCOVERER,GstDiscoverer))
255 #define GST_DISCOVERER_CLASS(klass) \
256 (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DISCOVERER,GstDiscovererClass))
257 #define GST_IS_DISCOVERER(obj) \
258 (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DISCOVERER))
259 #define GST_IS_DISCOVERER_CLASS(klass) \
260 (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DISCOVERER))
261
262 typedef struct _GstDiscoverer GstDiscoverer;
263 typedef struct _GstDiscovererClass GstDiscovererClass;
264
265 /**
266 * GstDiscoverer:
267 *
268 * The #GstDiscoverer structure.
269 **/
270 struct _GstDiscoverer {
271 GObject parent;
272
273 /*< private >*/
274 gboolean async;
275
276 /* allowed time to discover each uri in nanoseconds */
277 GstClockTime timeout;
278
279 /* list of pending URI to process (current excluded) */
280 GList *pending_uris;
281
282 GMutex *lock;
283
284 /* TRUE if processing a URI */
285 gboolean running;
286
287 /* current items */
288 /* FIXME : Protect all this with a lock */
289 GstDiscovererInformation *current_info;
290 GError *current_error;
291 GstStructure *current_topology;
292
293 /* List of private streams */
294 GList *streams;
295
296 /* Global elements */
297 GstBin *pipeline;
298 GstElement *uridecodebin;
299 GstBus *bus;
300
301 GType decodebin2_type;
302 };
303
304 struct _GstDiscovererClass {
305 GObjectClass parentclass;
306
307 /*< signals >*/
308 void (*ready) (GstDiscoverer *discoverer);
309 void (*starting) (GstDiscoverer *discoverer);
310 void (*discovered) (GstDiscoverer *discoverer,
311 GstDiscovererInformation *info,
312 GError *err);
313 };
314
315 GType gst_discoverer_get_type (void);
316 GstDiscoverer *gst_discoverer_new (GstClockTime timeout);
317
318 /* Asynchronous API */
319 void gst_discoverer_start (GstDiscoverer *discoverer);
320 void gst_discoverer_stop (GstDiscoverer *discoverer);
321 gboolean gst_discoverer_append_uri (GstDiscoverer *discoverer, gchar *uri);
322
323
324 /* Synchronous API */
325 GstDiscovererInformation *
326 gst_discoverer_discover_uri (GstDiscoverer * discoverer, gchar * uri, GError ** err);
327
328 G_END_DECLS
329
330 #endif /* _GST_DISCOVERER_H */
+0
-69
gst-convenience/gst-libs/gst/gettext.h less more
0 /* Convenience header for conditional use of GNU <libintl.h>.
1 Copyright (C) 1995-1998, 2000-2002 Free Software Foundation, Inc.
2
3 This program is free software; you can redistribute it and/or modify it
4 under the terms of the GNU Lesser General Public License as published
5 by the Free Software Foundation; either version 2, or (at your option)
6 any later version.
7
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 Lesser General Public License for more details.
12
13 You should have received a copy of the GNU Lesser General Public
14 License along with this program; if not, write to the Free Software
15 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
16 USA. */
17
18 #ifndef _LIBGETTEXT_H
19 #define _LIBGETTEXT_H 1
20
21 /* NLS can be disabled through the configure --disable-nls option. */
22 #if ENABLE_NLS
23
24 /* Get declarations of GNU message catalog functions. */
25 # include <libintl.h>
26
27 #else
28
29 /* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which
30 chokes if dcgettext is defined as a macro. So include it now, to make
31 later inclusions of <locale.h> a NOP. We don't include <libintl.h>
32 as well because people using "gettext.h" will not include <libintl.h>,
33 and also including <libintl.h> would fail on SunOS 4, whereas <locale.h>
34 is OK. */
35 #if defined(__sun)
36 # include <locale.h>
37 #endif
38
39 /* Disabled NLS.
40 The casts to 'const char *' serve the purpose of producing warnings
41 for invalid uses of the value returned from these functions.
42 On pre-ANSI systems without 'const', the config.h file is supposed to
43 contain "#define const". */
44 # define gettext(Msgid) ((const char *) (Msgid))
45 # define dgettext(Domainname, Msgid) ((const char *) (Msgid))
46 # define dcgettext(Domainname, Msgid, Category) ((const char *) (Msgid))
47 # define ngettext(Msgid1, Msgid2, N) \
48 ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
49 # define dngettext(Domainname, Msgid1, Msgid2, N) \
50 ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
51 # define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
52 ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
53 # define textdomain(Domainname) ((const char *) (Domainname))
54 # define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname))
55 # define bind_textdomain_codeset(Domainname, Codeset) ((const char *) (Codeset))
56
57 #endif
58
59 /* A pseudo function call that serves as a marker for the automated
60 extraction of messages, but does not call gettext(). The run-time
61 translation is done at a different place in the code.
62 The argument, String, should be a literal string. Concatenated strings
63 and other string expressions won't work.
64 The macro's expansion is not parenthesized, so that it is suitable as
65 initializer for static 'char[]' or 'const char[]' variables. */
66 #define gettext_noop(String) String
67
68 #endif /* _LIBGETTEXT_H */
+0
-37
gst-convenience/gst-libs/gst/gst-i18n-plugin.h less more
0 /* GStreamer
1 * Copyright (C) 2004 Thomas Vander Stichele <thomas@apestaart.org>
2 *
3 * gst-i18n-plugins.h: internationalization macros for the GStreamer plugins
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This library 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 GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the
17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 * Boston, MA 02111-1307, USA.
19 */
20
21 #ifndef __GST_I18N_PLUGIN_H__
22 #define __GST_I18N_PLUGIN_H__
23
24 #include <locale.h> /* some people need it and some people don't */
25 #include "gettext.h" /* included with gettext distribution and copied */
26
27 #ifndef GETTEXT_PACKAGE
28 #error You must define GETTEXT_PACKAGE before including this header.
29 #endif
30
31 /* we want to use shorthand _() for translating and N_() for marking */
32 #define _(String) dgettext (GETTEXT_PACKAGE, String)
33 #define N_(String) gettext_noop (String)
34 /* FIXME: if we need it, we can add Q_ as well, like in glib */
35
36 #endif /* __GST_I18N_PLUGIN_H__ */
+0
-85
gst-convenience/gst-libs/gst/profile/Makefile.am less more
0 # variables used for enum/marshal generation
1 glib_enum_headers = gstprofile.h
2 glib_enum_define = GST_PROFILE
3 glib_gen_prefix = gst_profile
4 glib_gen_basename = profile
5
6 built_sources = profile-enumtypes.c
7 built_headers = profile-enumtypes.h
8 BUILT_SOURCES = $(built_sources) $(built_headers)
9
10 lib_LTLIBRARIES = libgstprofile-gupnp-dlna-@GST_MAJORMINOR@.la
11
12 CLEANFILES = #$(BUILT_SOURCES)
13 EXTRA_DIST = $(BUILT_SOURCES)
14
15 libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_SOURCES = \
16 gstprofile.c \
17 gstprofileutils.c \
18 gstfactorylists.c
19 nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_SOURCES = $(BUILT_SOURCES)
20
21 libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includedir = $(includedir)/gupnp-dlna-1.0/gst/profile
22 libgstprofile_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS = \
23 gstprofile.h \
24 gstfactorylists.h
25 nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS = $(built_headers)
26
27 libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_CFLAGS = -I$(top_srcdir)/gst-convenience/gst-libs $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
28 libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS)
29 libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
30
31 #include $(top_srcdir)/common/gst-glib-gen.mak
32
33 #if HAVE_INTROSPECTION
34 #
35 #BUILT_GIRSOURCES = GstProfile-@GST_MAJORMINOR@.gir
36 #
37 #gir_headers=$(patsubst %,$(srcdir)/%, $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS))
38 #gir_headers+=$(patsubst %,$(builddir)/%, $(nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS))
39 #gir_sources=$(patsubst %,$(srcdir)/%, $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_SOURCES))
40 #gir_sources+=$(patsubst %,$(builddir)/%, $(nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_SOURCES))
41 #gir_cincludes=$(patsubst %,--c-include='gst/profile/%',$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS))
42 #gir_cincludes+=$(patsubst %,--c-include='gst/profile/%',$(nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS))
43 #
44 #GstProfile-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstprofile-gupnp-dlna-@GST_MAJORMINOR@.la
45 # $(AM_V_GEN)PKG_CONFIG_PATH="$(PKG_CONFIG_PATH):$(top_builddir)/pkgconfig" \
46 # $(INTROSPECTION_SCANNER) -v --namespace GstProfile \
47 # --nsversion=@GST_MAJORMINOR@ \
48 # --strip-prefix=Gst \
49 # $(gir_cincludes) \
50 # -I$(top_srcdir)/gst-libs \
51 # -I$(top_builddir)/gst-libs \
52 # --add-include-path=$$($(PKG_CONFIG) --variable=girdir gstreamer-@GST_MAJORMINOR@) \
53 # --add-include-path=$$($(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_MAJORMINOR@) \
54 # --library=libgstprofile-gupnp-dlna-@GST_MAJORMINOR@.la \
55 # --include=Gst-@GST_MAJORMINOR@ \
56 # --include=GstBase-@GST_MAJORMINOR@ \
57 # --include=GstVideo-@GST_MAJORMINOR@ \
58 # --libtool="$(top_builddir)/libtool" \
59 # --pkg gstreamer-@GST_MAJORMINOR@ \
60 # --pkg gstreamer-base-@GST_MAJORMINOR@ \
61 # --output $@ \
62 # $(gir_headers) \
63 # $(gir_sources)
64 #
65 ## INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
66 ## install anything - we need to install inside our prefix.
67 #girdir = $(datadir)/gir-1.0
68 #gir_DATA = $(BUILT_GIRSOURCES)
69 #
70 #typelibsdir = $(libdir)/girepository-1.0/
71 #
72 #typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
73 #
74 #%.typelib: %.gir $(INTROSPECTION_COMPILER)
75 # $(AM_V_GEN)$(INTROSPECTION_COMPILER) \
76 # --includedir=$(srcdir) \
77 # --includedir=$(builddir) \
78 # --includedir=$$($(PKG_CONFIG) --variable=girdir gstreamer-@GST_MAJORMINOR@) \
79 # --includedir=$$($(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_MAJORMINOR@) \
80 # $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
81 #
82 #CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
83 #
84 #endif
+0
-745
gst-convenience/gst-libs/gst/profile/Makefile.in less more
0 # Makefile.in generated by automake 1.11.1 from Makefile.am.
1 # @configure_input@
2
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.
6 # This Makefile.in is free software; the Free Software Foundation
7 # gives unlimited permission to copy and/or distribute it,
8 # with or without modifications, as long as this notice is preserved.
9
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
12 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13 # PARTICULAR PURPOSE.
14
15 @SET_MAKE@
16
17
18 VPATH = @srcdir@
19 pkgdatadir = $(datadir)/@PACKAGE@
20 pkgincludedir = $(includedir)/@PACKAGE@
21 pkglibdir = $(libdir)/@PACKAGE@
22 pkglibexecdir = $(libexecdir)/@PACKAGE@
23 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
24 install_sh_DATA = $(install_sh) -c -m 644
25 install_sh_PROGRAM = $(install_sh) -c
26 install_sh_SCRIPT = $(install_sh) -c
27 INSTALL_HEADER = $(INSTALL_DATA)
28 transform = $(program_transform_name)
29 NORMAL_INSTALL = :
30 PRE_INSTALL = :
31 POST_INSTALL = :
32 NORMAL_UNINSTALL = :
33 PRE_UNINSTALL = :
34 POST_UNINSTALL = :
35 build_triplet = @build@
36 host_triplet = @host@
37 subdir = gst-convenience/gst-libs/gst/profile
38 DIST_COMMON = \
39 $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS) \
40 $(srcdir)/Makefile.am $(srcdir)/Makefile.in
41 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42 am__aclocal_m4_deps = $(top_srcdir)/configure.ac
43 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
44 $(ACLOCAL_M4)
45 mkinstalldirs = $(install_sh) -d
46 CONFIG_HEADER = $(top_builddir)/config.h
47 CONFIG_CLEAN_FILES =
48 CONFIG_CLEAN_VPATH_FILES =
49 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
50 am__vpath_adj = case $$p in \
51 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
52 *) f=$$p;; \
53 esac;
54 am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
55 am__install_max = 40
56 am__nobase_strip_setup = \
57 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
58 am__nobase_strip = \
59 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
60 am__nobase_list = $(am__nobase_strip_setup); \
61 for p in $$list; do echo "$$p $$p"; done | \
62 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
63 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
64 if (++n[$$2] == $(am__install_max)) \
65 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
66 END { for (dir in files) print dir, files[dir] }'
67 am__base_list = \
68 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
69 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
70 am__installdirs = "$(DESTDIR)$(libdir)" \
71 "$(DESTDIR)$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includedir)" \
72 "$(DESTDIR)$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includedir)"
73 LTLIBRARIES = $(lib_LTLIBRARIES)
74 am__DEPENDENCIES_1 =
75 libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_DEPENDENCIES = \
76 $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
77 am_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_OBJECTS = \
78 libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstprofile.lo \
79 libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstprofileutils.lo \
80 libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstfactorylists.lo
81 am__objects_1 = libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-profile-enumtypes.lo
82 am__objects_2 =
83 am__objects_3 = $(am__objects_1) $(am__objects_2)
84 nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_OBJECTS = \
85 $(am__objects_3)
86 libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_OBJECTS = \
87 $(am_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_OBJECTS) \
88 $(nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_OBJECTS)
89 AM_V_lt = $(am__v_lt_$(V))
90 am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
91 am__v_lt_0 = --silent
92 libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) \
93 $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
94 --mode=link $(CCLD) \
95 $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_CFLAGS) \
96 $(CFLAGS) \
97 $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_LDFLAGS) \
98 $(LDFLAGS) -o $@
99 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
100 depcomp = $(SHELL) $(top_srcdir)/depcomp
101 am__depfiles_maybe = depfiles
102 am__mv = mv -f
103 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
104 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
105 LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
106 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
107 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
108 $(AM_CFLAGS) $(CFLAGS)
109 AM_V_CC = $(am__v_CC_$(V))
110 am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
111 am__v_CC_0 = @echo " CC " $@;
112 AM_V_at = $(am__v_at_$(V))
113 am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
114 am__v_at_0 = @
115 CCLD = $(CC)
116 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
117 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
118 $(AM_LDFLAGS) $(LDFLAGS) -o $@
119 AM_V_CCLD = $(am__v_CCLD_$(V))
120 am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
121 am__v_CCLD_0 = @echo " CCLD " $@;
122 AM_V_GEN = $(am__v_GEN_$(V))
123 am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
124 am__v_GEN_0 = @echo " GEN " $@;
125 SOURCES = $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_SOURCES) \
126 $(nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_SOURCES)
127 DIST_SOURCES = \
128 $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_SOURCES)
129 HEADERS = $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS) \
130 $(nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS)
131 ETAGS = etags
132 CTAGS = ctags
133 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
134 ACLOCAL = @ACLOCAL@
135 AMTAR = @AMTAR@
136 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
137 AR = @AR@
138 AS = @AS@
139 AUTOCONF = @AUTOCONF@
140 AUTOHEADER = @AUTOHEADER@
141 AUTOMAKE = @AUTOMAKE@
142 AWK = @AWK@
143 CC = @CC@
144 CCDEPMODE = @CCDEPMODE@
145 CFLAGS = @CFLAGS@
146 CPP = @CPP@
147 CPPFLAGS = @CPPFLAGS@
148 CYGPATH_W = @CYGPATH_W@
149 DEFS = @DEFS@
150 DEPDIR = @DEPDIR@
151 DLLTOOL = @DLLTOOL@
152 DSYMUTIL = @DSYMUTIL@
153 DUMPBIN = @DUMPBIN@
154 ECHO_C = @ECHO_C@
155 ECHO_N = @ECHO_N@
156 ECHO_T = @ECHO_T@
157 EGREP = @EGREP@
158 EXEEXT = @EXEEXT@
159 FGREP = @FGREP@
160 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
161 GREP = @GREP@
162 GST_BASE_CFLAGS = @GST_BASE_CFLAGS@
163 GST_BASE_LIBS = @GST_BASE_LIBS@
164 GST_CFLAGS = @GST_CFLAGS@
165 GST_LIBS = @GST_LIBS@
166 GST_MAJORMINOR = @GST_MAJORMINOR@
167 GST_VIDEO_CFLAGS = @GST_VIDEO_CFLAGS@
168 GST_VIDEO_LIBS = @GST_VIDEO_LIBS@
169 GTKDOC_CHECK = @GTKDOC_CHECK@
170 GTKDOC_MKPDF = @GTKDOC_MKPDF@
171 GTKDOC_REBASE = @GTKDOC_REBASE@
172 GUPNP_DLNA_VERSION_INFO = @GUPNP_DLNA_VERSION_INFO@
173 HTML_DIR = @HTML_DIR@
174 INSTALL = @INSTALL@
175 INSTALL_DATA = @INSTALL_DATA@
176 INSTALL_PROGRAM = @INSTALL_PROGRAM@
177 INSTALL_SCRIPT = @INSTALL_SCRIPT@
178 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
179 LD = @LD@
180 LDFLAGS = @LDFLAGS@
181 LIBOBJS = @LIBOBJS@
182 LIBS = @LIBS@
183 LIBTOOL = @LIBTOOL@
184 LIBXML_CFLAGS = @LIBXML_CFLAGS@
185 LIBXML_LIBS = @LIBXML_LIBS@
186 LIPO = @LIPO@
187 LN_S = @LN_S@
188 LTLIBOBJS = @LTLIBOBJS@
189 MAKEINFO = @MAKEINFO@
190 MKDIR_P = @MKDIR_P@
191 NM = @NM@
192 NMEDIT = @NMEDIT@
193 OBJDUMP = @OBJDUMP@
194 OBJEXT = @OBJEXT@
195 OTOOL = @OTOOL@
196 OTOOL64 = @OTOOL64@
197 PACKAGE = @PACKAGE@
198 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
199 PACKAGE_NAME = @PACKAGE_NAME@
200 PACKAGE_STRING = @PACKAGE_STRING@
201 PACKAGE_TARNAME = @PACKAGE_TARNAME@
202 PACKAGE_URL = @PACKAGE_URL@
203 PACKAGE_VERSION = @PACKAGE_VERSION@
204 PATH_SEPARATOR = @PATH_SEPARATOR@
205 PKG_CONFIG = @PKG_CONFIG@
206 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
207 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
208 RANLIB = @RANLIB@
209 SED = @SED@
210 SET_MAKE = @SET_MAKE@
211 SHELL = @SHELL@
212 STRIP = @STRIP@
213 VERSION = @VERSION@
214 abs_builddir = @abs_builddir@
215 abs_srcdir = @abs_srcdir@
216 abs_top_builddir = @abs_top_builddir@
217 abs_top_srcdir = @abs_top_srcdir@
218 ac_ct_CC = @ac_ct_CC@
219 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
220 am__include = @am__include@
221 am__leading_dot = @am__leading_dot@
222 am__quote = @am__quote@
223 am__tar = @am__tar@
224 am__untar = @am__untar@
225 bindir = @bindir@
226 build = @build@
227 build_alias = @build_alias@
228 build_cpu = @build_cpu@
229 build_os = @build_os@
230 build_vendor = @build_vendor@
231 builddir = @builddir@
232 datadir = @datadir@
233 datarootdir = @datarootdir@
234 docdir = @docdir@
235 dvidir = @dvidir@
236 exec_prefix = @exec_prefix@
237 host = @host@
238 host_alias = @host_alias@
239 host_cpu = @host_cpu@
240 host_os = @host_os@
241 host_vendor = @host_vendor@
242 htmldir = @htmldir@
243 includedir = @includedir@
244 infodir = @infodir@
245 install_sh = @install_sh@
246 libdir = @libdir@
247 libexecdir = @libexecdir@
248 localedir = @localedir@
249 localstatedir = @localstatedir@
250 mandir = @mandir@
251 mkdir_p = @mkdir_p@
252 oldincludedir = @oldincludedir@
253 pdfdir = @pdfdir@
254 prefix = @prefix@
255 program_transform_name = @program_transform_name@
256 psdir = @psdir@
257 sbindir = @sbindir@
258 sharedstatedir = @sharedstatedir@
259 srcdir = @srcdir@
260 sysconfdir = @sysconfdir@
261 target_alias = @target_alias@
262 top_build_prefix = @top_build_prefix@
263 top_builddir = @top_builddir@
264 top_srcdir = @top_srcdir@
265
266 # variables used for enum/marshal generation
267 glib_enum_headers = gstprofile.h
268 glib_enum_define = GST_PROFILE
269 glib_gen_prefix = gst_profile
270 glib_gen_basename = profile
271 built_sources = profile-enumtypes.c
272 built_headers = profile-enumtypes.h
273 BUILT_SOURCES = $(built_sources) $(built_headers)
274 lib_LTLIBRARIES = libgstprofile-gupnp-dlna-@GST_MAJORMINOR@.la
275 CLEANFILES = #$(BUILT_SOURCES)
276 EXTRA_DIST = $(BUILT_SOURCES)
277 libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_SOURCES = \
278 gstprofile.c \
279 gstprofileutils.c \
280 gstfactorylists.c
281
282 nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_SOURCES = $(BUILT_SOURCES)
283 libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includedir = $(includedir)/gupnp-dlna-1.0/gst/profile
284 libgstprofile_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS = \
285 gstprofile.h \
286 gstfactorylists.h
287
288 nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS = $(built_headers)
289 libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_CFLAGS = -I$(top_srcdir)/gst-convenience/gst-libs $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
290 libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS)
291 libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
292 all: $(BUILT_SOURCES)
293 $(MAKE) $(AM_MAKEFLAGS) all-am
294
295 .SUFFIXES:
296 .SUFFIXES: .c .lo .o .obj
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 gst-convenience/gst-libs/gst/profile/Makefile'; \
307 $(am__cd) $(top_srcdir) && \
308 $(AUTOMAKE) --gnu gst-convenience/gst-libs/gst/profile/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 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
328 @$(NORMAL_INSTALL)
329 test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
330 @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
331 list2=; for p in $$list; do \
332 if test -f $$p; then \
333 list2="$$list2 $$p"; \
334 else :; fi; \
335 done; \
336 test -z "$$list2" || { \
337 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
338 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
339 }
340
341 uninstall-libLTLIBRARIES:
342 @$(NORMAL_UNINSTALL)
343 @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
344 for p in $$list; do \
345 $(am__strip_dir) \
346 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
347 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
348 done
349
350 clean-libLTLIBRARIES:
351 -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
352 @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
353 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
354 test "$$dir" != "$$p" || dir=.; \
355 echo "rm -f \"$${dir}/so_locations\""; \
356 rm -f "$${dir}/so_locations"; \
357 done
358 libgstprofile-gupnp-dlna-@GST_MAJORMINOR@.la: $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_OBJECTS) $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_DEPENDENCIES)
359 $(AM_V_CCLD)$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_OBJECTS) $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
360
361 mostlyclean-compile:
362 -rm -f *.$(OBJEXT)
363
364 distclean-compile:
365 -rm -f *.tab.c
366
367 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstfactorylists.Plo@am__quote@
368 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstprofile.Plo@am__quote@
369 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstprofileutils.Plo@am__quote@
370 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-profile-enumtypes.Plo@am__quote@
371
372 .c.o:
373 @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
374 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
375 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
376 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
377 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
378 @am__fastdepCC_FALSE@ $(COMPILE) -c $<
379
380 .c.obj:
381 @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
382 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
383 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
384 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
385 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
386 @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
387
388 .c.lo:
389 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
390 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
391 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
392 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
393 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
394 @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
395
396 libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstprofile.lo: gstprofile.c
397 @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) $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstprofile.lo -MD -MP -MF $(DEPDIR)/libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstprofile.Tpo -c -o libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstprofile.lo `test -f 'gstprofile.c' || echo '$(srcdir)/'`gstprofile.c
398 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstprofile.Tpo $(DEPDIR)/libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstprofile.Plo
399 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
400 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstprofile.c' object='libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstprofile.lo' libtool=yes @AMDEPBACKSLASH@
401 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
402 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstprofile.lo `test -f 'gstprofile.c' || echo '$(srcdir)/'`gstprofile.c
403
404 libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstprofileutils.lo: gstprofileutils.c
405 @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) $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstprofileutils.lo -MD -MP -MF $(DEPDIR)/libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstprofileutils.Tpo -c -o libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstprofileutils.lo `test -f 'gstprofileutils.c' || echo '$(srcdir)/'`gstprofileutils.c
406 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstprofileutils.Tpo $(DEPDIR)/libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstprofileutils.Plo
407 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
408 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstprofileutils.c' object='libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstprofileutils.lo' libtool=yes @AMDEPBACKSLASH@
409 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
410 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstprofileutils.lo `test -f 'gstprofileutils.c' || echo '$(srcdir)/'`gstprofileutils.c
411
412 libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstfactorylists.lo: gstfactorylists.c
413 @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) $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstfactorylists.lo -MD -MP -MF $(DEPDIR)/libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstfactorylists.Tpo -c -o libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstfactorylists.lo `test -f 'gstfactorylists.c' || echo '$(srcdir)/'`gstfactorylists.c
414 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstfactorylists.Tpo $(DEPDIR)/libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstfactorylists.Plo
415 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
416 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstfactorylists.c' object='libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstfactorylists.lo' libtool=yes @AMDEPBACKSLASH@
417 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
418 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-gstfactorylists.lo `test -f 'gstfactorylists.c' || echo '$(srcdir)/'`gstfactorylists.c
419
420 libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-profile-enumtypes.lo: profile-enumtypes.c
421 @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) $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-profile-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-profile-enumtypes.Tpo -c -o libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-profile-enumtypes.lo `test -f 'profile-enumtypes.c' || echo '$(srcdir)/'`profile-enumtypes.c
422 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-profile-enumtypes.Tpo $(DEPDIR)/libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-profile-enumtypes.Plo
423 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
424 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='profile-enumtypes.c' object='libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-profile-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
425 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
426 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la-profile-enumtypes.lo `test -f 'profile-enumtypes.c' || echo '$(srcdir)/'`profile-enumtypes.c
427
428 mostlyclean-libtool:
429 -rm -f *.lo
430
431 clean-libtool:
432 -rm -rf .libs _libs
433 install-libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS: $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS)
434 @$(NORMAL_INSTALL)
435 test -z "$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includedir)"
436 @list='$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includedir)" || list=; \
437 for p in $$list; do \
438 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
439 echo "$$d$$p"; \
440 done | $(am__base_list) | \
441 while read files; do \
442 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includedir)'"; \
443 $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includedir)" || exit $$?; \
444 done
445
446 uninstall-libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS:
447 @$(NORMAL_UNINSTALL)
448 @list='$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includedir)" || list=; \
449 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
450 test -n "$$files" || exit 0; \
451 echo " ( cd '$(DESTDIR)$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
452 cd "$(DESTDIR)$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includedir)" && rm -f $$files
453 install-nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS: $(nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS)
454 @$(NORMAL_INSTALL)
455 test -z "$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includedir)"
456 @list='$(nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includedir)" || list=; \
457 for p in $$list; do \
458 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
459 echo "$$d$$p"; \
460 done | $(am__base_list) | \
461 while read files; do \
462 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includedir)'"; \
463 $(INSTALL_HEADER) $$files "$(DESTDIR)$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includedir)" || exit $$?; \
464 done
465
466 uninstall-nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS:
467 @$(NORMAL_UNINSTALL)
468 @list='$(nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includedir)" || list=; \
469 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
470 test -n "$$files" || exit 0; \
471 echo " ( cd '$(DESTDIR)$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
472 cd "$(DESTDIR)$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includedir)" && rm -f $$files
473
474 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
475 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
476 unique=`for i in $$list; do \
477 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
478 done | \
479 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
480 END { if (nonempty) { for (i in files) print i; }; }'`; \
481 mkid -fID $$unique
482 tags: TAGS
483
484 TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
485 $(TAGS_FILES) $(LISP)
486 set x; \
487 here=`pwd`; \
488 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
489 unique=`for i in $$list; do \
490 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
491 done | \
492 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
493 END { if (nonempty) { for (i in files) print i; }; }'`; \
494 shift; \
495 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
496 test -n "$$unique" || unique=$$empty_fix; \
497 if test $$# -gt 0; then \
498 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
499 "$$@" $$unique; \
500 else \
501 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
502 $$unique; \
503 fi; \
504 fi
505 ctags: CTAGS
506 CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
507 $(TAGS_FILES) $(LISP)
508 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
509 unique=`for i in $$list; do \
510 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
511 done | \
512 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
513 END { if (nonempty) { for (i in files) print i; }; }'`; \
514 test -z "$(CTAGS_ARGS)$$unique" \
515 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
516 $$unique
517
518 GTAGS:
519 here=`$(am__cd) $(top_builddir) && pwd` \
520 && $(am__cd) $(top_srcdir) \
521 && gtags -i $(GTAGS_ARGS) "$$here"
522
523 distclean-tags:
524 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
525
526 distdir: $(DISTFILES)
527 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
528 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
529 list='$(DISTFILES)'; \
530 dist_files=`for file in $$list; do echo $$file; done | \
531 sed -e "s|^$$srcdirstrip/||;t" \
532 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
533 case $$dist_files in \
534 */*) $(MKDIR_P) `echo "$$dist_files" | \
535 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
536 sort -u` ;; \
537 esac; \
538 for file in $$dist_files; do \
539 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
540 if test -d $$d/$$file; then \
541 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
542 if test -d "$(distdir)/$$file"; then \
543 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
544 fi; \
545 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
546 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
547 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
548 fi; \
549 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
550 else \
551 test -f "$(distdir)/$$file" \
552 || cp -p $$d/$$file "$(distdir)/$$file" \
553 || exit 1; \
554 fi; \
555 done
556 check-am: all-am
557 check: $(BUILT_SOURCES)
558 $(MAKE) $(AM_MAKEFLAGS) check-am
559 all-am: Makefile $(LTLIBRARIES) $(HEADERS)
560 installdirs:
561 for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includedir)" "$(DESTDIR)$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includedir)"; do \
562 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
563 done
564 install: $(BUILT_SOURCES)
565 $(MAKE) $(AM_MAKEFLAGS) install-am
566 install-exec: install-exec-am
567 install-data: install-data-am
568 uninstall: uninstall-am
569
570 install-am: all-am
571 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
572
573 installcheck: installcheck-am
574 install-strip:
575 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
576 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
577 `test -z '$(STRIP)' || \
578 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
579 mostlyclean-generic:
580
581 clean-generic:
582 -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
583
584 distclean-generic:
585 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
586 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
587
588 maintainer-clean-generic:
589 @echo "This command is intended for maintainers to use"
590 @echo "it deletes files that may require special tools to rebuild."
591 -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
592 clean: clean-am
593
594 clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
595 mostlyclean-am
596
597 distclean: distclean-am
598 -rm -rf ./$(DEPDIR)
599 -rm -f Makefile
600 distclean-am: clean-am distclean-compile distclean-generic \
601 distclean-tags
602
603 dvi: dvi-am
604
605 dvi-am:
606
607 html: html-am
608
609 html-am:
610
611 info: info-am
612
613 info-am:
614
615 install-data-am: install-libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS \
616 install-nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS
617
618 install-dvi: install-dvi-am
619
620 install-dvi-am:
621
622 install-exec-am: install-libLTLIBRARIES
623
624 install-html: install-html-am
625
626 install-html-am:
627
628 install-info: install-info-am
629
630 install-info-am:
631
632 install-man:
633
634 install-pdf: install-pdf-am
635
636 install-pdf-am:
637
638 install-ps: install-ps-am
639
640 install-ps-am:
641
642 installcheck-am:
643
644 maintainer-clean: maintainer-clean-am
645 -rm -rf ./$(DEPDIR)
646 -rm -f Makefile
647 maintainer-clean-am: distclean-am maintainer-clean-generic
648
649 mostlyclean: mostlyclean-am
650
651 mostlyclean-am: mostlyclean-compile mostlyclean-generic \
652 mostlyclean-libtool
653
654 pdf: pdf-am
655
656 pdf-am:
657
658 ps: ps-am
659
660 ps-am:
661
662 uninstall-am: uninstall-libLTLIBRARIES \
663 uninstall-libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS \
664 uninstall-nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS
665
666 .MAKE: all check install install-am install-strip
667
668 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
669 clean-libLTLIBRARIES clean-libtool ctags distclean \
670 distclean-compile distclean-generic distclean-libtool \
671 distclean-tags distdir dvi dvi-am html html-am info info-am \
672 install install-am install-data install-data-am install-dvi \
673 install-dvi-am install-exec install-exec-am install-html \
674 install-html-am install-info install-info-am \
675 install-libLTLIBRARIES \
676 install-libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS \
677 install-man \
678 install-nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS \
679 install-pdf install-pdf-am install-ps install-ps-am \
680 install-strip installcheck installcheck-am installdirs \
681 maintainer-clean maintainer-clean-generic mostlyclean \
682 mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
683 pdf pdf-am ps ps-am tags uninstall uninstall-am \
684 uninstall-libLTLIBRARIES \
685 uninstall-libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS \
686 uninstall-nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@includeHEADERS
687
688
689 #include $(top_srcdir)/common/gst-glib-gen.mak
690
691 #if HAVE_INTROSPECTION
692 #
693 #BUILT_GIRSOURCES = GstProfile-@GST_MAJORMINOR@.gir
694 #
695 #gir_headers=$(patsubst %,$(srcdir)/%, $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS))
696 #gir_headers+=$(patsubst %,$(builddir)/%, $(nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS))
697 #gir_sources=$(patsubst %,$(srcdir)/%, $(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_SOURCES))
698 #gir_sources+=$(patsubst %,$(builddir)/%, $(nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@_la_SOURCES))
699 #gir_cincludes=$(patsubst %,--c-include='gst/profile/%',$(libgstprofile_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS))
700 #gir_cincludes+=$(patsubst %,--c-include='gst/profile/%',$(nodist_libgstprofile_gupnp_dlna_@GST_MAJORMINOR@include_HEADERS))
701 #
702 #GstProfile-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstprofile-gupnp-dlna-@GST_MAJORMINOR@.la
703 # $(AM_V_GEN)PKG_CONFIG_PATH="$(PKG_CONFIG_PATH):$(top_builddir)/pkgconfig" \
704 # $(INTROSPECTION_SCANNER) -v --namespace GstProfile \
705 # --nsversion=@GST_MAJORMINOR@ \
706 # --strip-prefix=Gst \
707 # $(gir_cincludes) \
708 # -I$(top_srcdir)/gst-libs \
709 # -I$(top_builddir)/gst-libs \
710 # --add-include-path=$$($(PKG_CONFIG) --variable=girdir gstreamer-@GST_MAJORMINOR@) \
711 # --add-include-path=$$($(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_MAJORMINOR@) \
712 # --library=libgstprofile-gupnp-dlna-@GST_MAJORMINOR@.la \
713 # --include=Gst-@GST_MAJORMINOR@ \
714 # --include=GstBase-@GST_MAJORMINOR@ \
715 # --include=GstVideo-@GST_MAJORMINOR@ \
716 # --libtool="$(top_builddir)/libtool" \
717 # --pkg gstreamer-@GST_MAJORMINOR@ \
718 # --pkg gstreamer-base-@GST_MAJORMINOR@ \
719 # --output $@ \
720 # $(gir_headers) \
721 # $(gir_sources)
722 #
723 #girdir = $(datadir)/gir-1.0
724 #gir_DATA = $(BUILT_GIRSOURCES)
725 #
726 #typelibsdir = $(libdir)/girepository-1.0/
727 #
728 #typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
729 #
730 #%.typelib: %.gir $(INTROSPECTION_COMPILER)
731 # $(AM_V_GEN)$(INTROSPECTION_COMPILER) \
732 # --includedir=$(srcdir) \
733 # --includedir=$(builddir) \
734 # --includedir=$$($(PKG_CONFIG) --variable=girdir gstreamer-@GST_MAJORMINOR@) \
735 # --includedir=$$($(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_MAJORMINOR@) \
736 # $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
737 #
738 #CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
739 #
740 #endif
741
742 # Tell versions [3.59,3.63) of GNU make to not export all variables.
743 # Otherwise a system limit (for SysV at least) may be exceeded.
744 .NOEXPORT:
+0
-578
gst-convenience/gst-libs/gst/profile/gstfactorylists.c less more
0 /* GStreamer
1 * Copyright (C) <2007> Wim Taymans <wim.taymans@gmail.com>
2 *
3 * This library is free software; you can redistribute it and/or
4 * modify it under the terms of the GNU Lesser General Public
5 * License as published by the Free Software Foundation; either
6 * version 2 of the License, or (at your option) any later version.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public
14 * License along with this library; if not, write to the
15 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16 * Boston, MA 02111-1307, USA.
17 */
18 #include <string.h>
19
20 #include "gstfactorylists.h"
21
22 typedef struct
23 {
24 GstFactoryListType type;
25 GstRank minrank;
26 } FilterData;
27
28 /* function used to sort element features. We first sort on the rank, then
29 * on the element name (to get a consistent, predictable list) */
30 static gint
31 compare_ranks (GValue * v1, GValue * v2)
32 {
33 gint diff;
34 GstPluginFeature *f1, *f2;
35
36 f1 = g_value_get_object (v1);
37 f2 = g_value_get_object (v2);
38
39 diff = f2->rank - f1->rank;
40 if (diff != 0)
41 return diff;
42
43 diff = strcmp (f2->name, f1->name);
44
45 return diff;
46 }
47
48
49 /**
50 * gst_factory_list_is_type:
51 * @factory: a #GstElementFactory
52 * @type: a #GstFactoryListType
53 *
54 * Check if @factory if of the given types.
55 *
56 * Returns: %TRUE if @factory is of @type.
57 */
58 gboolean
59 gst_factory_list_is_type (GstElementFactory * factory, GstFactoryListType type)
60 {
61 gboolean res = FALSE;
62 const gchar *klass;
63
64 klass = gst_element_factory_get_klass (factory);
65
66 /* Filter by element type first, as soon as it matches
67 * one type, we skip all other tests */
68 if (!res && (type & GST_FACTORY_LIST_SINK))
69 res = (strstr (klass, "Sink") != NULL);
70
71 if (!res && (type & GST_FACTORY_LIST_SRC))
72 res = (strstr (klass, "Source") != NULL);
73
74 if (!res && (type & GST_FACTORY_LIST_DECODER))
75 res = (strstr (klass, "Decoder") != NULL);
76
77 if (!res && (type & GST_FACTORY_LIST_ENCODER))
78 res = (strstr (klass, "Encoder") != NULL);
79
80 if (!res && (type & GST_FACTORY_LIST_MUXER))
81 res = (strstr (klass, "Muxer") != NULL);
82
83 if (!res && (type & GST_FACTORY_LIST_DEMUXER))
84 res = (strstr (klass, "Demux") != NULL);
85
86 if (!res && (type & GST_FACTORY_LIST_PARSER))
87 res = ((strstr (klass, "Parse") != NULL)
88 && (strstr (klass, "Codec") != NULL));
89
90 if (!res && (type & GST_FACTORY_LIST_DEPAYLOADER))
91 res = (strstr (klass, "Depayload") != NULL);
92
93
94 /* Filter by media type now, we only test if it
95 * matched any of the types above. */
96 if (res && (type & (GST_FACTORY_LIST_AUDIO | GST_FACTORY_LIST_VIDEO)))
97 res = ((type & GST_FACTORY_LIST_AUDIO) && (strstr (klass, "Audio") != NULL))
98 || ((type & GST_FACTORY_LIST_VIDEO)
99 && (strstr (klass, "Video") != NULL));
100
101 return res;
102 }
103
104 static gboolean
105 element_filter (GstPluginFeature * feature, FilterData * data)
106 {
107 gboolean res;
108
109 /* we only care about element factories */
110 if (G_UNLIKELY (!GST_IS_ELEMENT_FACTORY (feature)))
111 return FALSE;
112
113 res = (gst_plugin_feature_get_rank (feature) >= data->minrank) &&
114 gst_factory_list_is_type (GST_ELEMENT_FACTORY_CAST (feature), data->type);
115
116 return res;
117 }
118
119 /**
120 * gst_factory_list_get_elements:
121 * @type: a #GstFactoryListType
122 * @minrank: Minimum rank
123 *
124 * Get a list of factories that match the given @type. Only elements
125 * with a rank greater or equal to @minrank will be returned.
126 * The list of factories is returned by decreasing rank.
127 *
128 * Returns: a #GValueArray of #GstElementFactory elements. Use
129 * g_value_array_free() after usage.
130 */
131 GValueArray *
132 gst_factory_list_get_elements (GstFactoryListType type, GstRank minrank)
133 {
134 GValueArray *result;
135 GList *walk, *list;
136 FilterData data;
137
138 /* prepare type */
139 data.type = type;
140 data.minrank = minrank;
141
142 /* get the feature list using the filter */
143 list = gst_default_registry_feature_filter ((GstPluginFeatureFilter)
144 element_filter, FALSE, &data);
145
146 result = g_value_array_new (g_list_length (list));
147
148 /* convert to an array */
149 for (walk = list; walk; walk = g_list_next (walk)) {
150 GstElementFactory *factory = GST_ELEMENT_FACTORY_CAST (walk->data);
151 GValue val = { 0, };
152
153 g_value_init (&val, G_TYPE_OBJECT);
154 g_value_set_object (&val, factory);
155 g_value_array_append (result, &val);
156 g_value_unset (&val);
157 }
158 gst_plugin_feature_list_free (list);
159
160 /* sort on rank and name */
161 g_value_array_sort (result, (GCompareFunc) compare_ranks);
162
163 return result;
164 }
165
166 /**
167 * gst_factory_list_debug:
168 * @array: an array of element factories
169 *
170 * Debug the element factory names in @array.
171 */
172 void
173 gst_factory_list_debug (GValueArray * array)
174 {
175 #ifndef GST_DISABLE_GST_DEBUG
176 gint i;
177
178 for (i = 0; i < array->n_values; i++) {
179 GValue *value;
180 GstPluginFeature *feature;
181
182 value = g_value_array_get_nth (array, i);
183 feature = g_value_get_object (value);
184
185 GST_DEBUG ("%s", gst_plugin_feature_get_name (feature));
186 }
187 #endif
188 }
189
190 /**
191 * gst_factory_list_filter:
192 * @array: a #GValueArray to filter
193 * @caps: a #GstCaps
194 * @direction: a #GstPadDirection to filter on
195 * @subsetonly: whether to filter on caps subsets or not.
196 *
197 * Filter out all the elementfactories in @array that can handle @caps in
198 * the given direction.
199 *
200 * If @subsetonly is %TRUE, then only the elements whose pads templates
201 * are a complete superset of @caps will be returned. Else any element
202 * whose pad templates caps can intersect with @caps will be returned.
203 *
204 * Returns: a #GValueArray of #GstElementFactory elements that match the
205 * given requisits. Use g_value_array_free() after usage.
206 */
207 GValueArray *
208 gst_factory_list_filter (GValueArray * array,
209 const GstCaps * caps, GstPadDirection direction, gboolean subsetonly)
210 {
211 GValueArray *result;
212 gint i;
213
214 result = g_value_array_new (0);
215
216 GST_DEBUG ("finding factories");
217
218 /* loop over all the factories */
219 for (i = 0; i < array->n_values; i++) {
220 GValue *value;
221 GstElementFactory *factory;
222 const GList *templates;
223 GList *walk;
224
225 value = g_value_array_get_nth (array, i);
226 factory = g_value_get_object (value);
227
228 GST_DEBUG ("Trying %s",
229 gst_plugin_feature_get_name ((GstPluginFeature *) factory));
230
231 /* get the templates from the element factory */
232 templates = gst_element_factory_get_static_pad_templates (factory);
233 for (walk = (GList *) templates; walk; walk = g_list_next (walk)) {
234 GstStaticPadTemplate *templ = walk->data;
235
236 /* we only care about the sink templates */
237 if (templ->direction == direction) {
238 GstCaps *tmpl_caps;
239
240 /* try to intersect the caps with the caps of the template */
241 tmpl_caps = gst_static_caps_get (&templ->static_caps);
242
243 /* FIXME, intersect is not the right method, we ideally want to check
244 * for a subset here */
245
246 /* check if the intersection is empty */
247 if ((subsetonly && gst_caps_is_subset (caps, tmpl_caps)) ||
248 (!subsetonly && gst_caps_can_intersect (caps, tmpl_caps))) {
249 /* non empty intersection, we can use this element */
250 GValue resval = { 0, };
251 g_value_init (&resval, G_TYPE_OBJECT);
252 g_value_set_object (&resval, factory);
253 g_value_array_append (result, &resval);
254 g_value_unset (&resval);
255 gst_caps_unref (tmpl_caps);
256 break;
257 }
258 gst_caps_unref (tmpl_caps);
259 }
260 }
261 }
262 return result;
263 }
264
265
266 /*
267 * Caps listing convenience functions
268 */
269
270 static gboolean
271 remove_range_foreach (GQuark field_id, const GValue * value, GstStructure * st)
272 {
273 GType ftype = G_VALUE_TYPE (value);
274 const gchar *fname;
275
276 if (ftype == GST_TYPE_INT_RANGE || ftype == GST_TYPE_DOUBLE_RANGE ||
277 ftype == GST_TYPE_FRACTION_RANGE) {
278 gst_structure_remove_field (st, g_quark_to_string (field_id));
279 return FALSE;
280 }
281
282 fname = g_quark_to_string (field_id);
283
284 /* if (strstr (fname, "framerate") || strstr (fname, "pixel-aspect-ratio") || */
285 /* strstr (fname, "rate")) { */
286 /* gst_structure_remove_field (st, g_quark_to_string (field_id)); */
287 /* return FALSE; */
288 /* } */
289
290 return TRUE;
291 }
292
293 static void
294 clear_caps (GstCaps * caps, GValueArray * resarray)
295 {
296 GstCaps *res, *res2;
297 GstStructure *st;
298 guint i;
299
300 res = gst_caps_make_writable (caps);
301
302 GST_WARNING ("incoming caps %" GST_PTR_FORMAT, res);
303
304 /* Remove width/height/framerate/depth/width fields */
305 for (i = gst_caps_get_size (res); i; i--) {
306 st = gst_caps_get_structure (res, i - 1);
307
308 /* Remove range fields */
309 while (!gst_structure_foreach (st,
310 (GstStructureForeachFunc) remove_range_foreach, st));
311 }
312
313 GST_WARNING ("stripped %" GST_PTR_FORMAT, res);
314
315 /* Explode to individual structures */
316 res2 = gst_caps_normalize (res);
317 gst_caps_unref (res);
318
319 GST_WARNING ("normalized %" GST_PTR_FORMAT, res2);
320
321 /* And append to list without duplicates */
322 while ((st = gst_caps_steal_structure (res2, 0))) {
323 GstCaps *tmpc;
324 gboolean duplicate = FALSE;
325 guint i;
326
327 /* Skip fake codecs/containers */
328 if (gst_structure_has_name (st, "audio/x-raw-int") ||
329 gst_structure_has_name (st, "audio/x-raw-float") ||
330 gst_structure_has_name (st, "video/x-raw-yuv") ||
331 gst_structure_has_name (st, "video/x-raw-rgb") ||
332 gst_structure_has_name (st, "unknown/unknown")) {
333 gst_structure_free (st);
334 continue;
335 }
336
337 tmpc = gst_caps_new_full (st, NULL);
338
339 /* Check if the caps are already present */
340 GST_DEBUG ("resarray n_value %d", resarray->n_values);
341 for (i = 0; i < resarray->n_values; i++) {
342 const GstCaps *cval =
343 gst_value_get_caps (g_value_array_get_nth (resarray, i));
344
345 GST_DEBUG ("tmpc %" GST_PTR_FORMAT, tmpc);
346 GST_DEBUG ("cva %" GST_PTR_FORMAT, cval);
347
348 if (gst_caps_is_equal (tmpc, cval)) {
349 duplicate = TRUE;
350 break;
351 }
352 }
353
354 if (!duplicate) {
355 GValue resval = { 0, };
356 g_value_init (&resval, GST_TYPE_CAPS);
357
358 GST_DEBUG ("appending %" GST_PTR_FORMAT, tmpc);
359
360 gst_value_set_caps (&resval, tmpc);
361 g_value_array_append (resarray, &resval);
362 g_value_unset (&resval);
363 }
364
365 gst_caps_unref (tmpc);
366 }
367
368 gst_caps_unref (res2);
369 }
370
371 static GValueArray *
372 get_all_caps (GValueArray * array, GstPadDirection direction)
373 {
374 GValueArray *res = NULL;
375 guint i;
376
377 res = g_value_array_new (0);
378
379 for (i = 0; i < array->n_values; i++) {
380 GValue *value;
381 GstElementFactory *factory;
382 const GList *templates;
383 GList *walk;
384
385 value = g_value_array_get_nth (array, i);
386 factory = g_value_get_object (value);
387
388 templates = gst_element_factory_get_static_pad_templates (factory);
389 for (walk = (GList *) templates; walk; walk = g_list_next (walk)) {
390 GstStaticPadTemplate *templ = walk->data;
391 if (templ->direction == direction)
392 clear_caps (gst_static_caps_get (&templ->static_caps), res);
393 }
394 }
395
396 return res;
397 }
398
399 /**
400 * gst_caps_list_container_formats:
401 * @minrank: The minimum #GstRank
402 *
403 * Returns an array of #GstCaps corresponding to all the container formats
404 * one can mux to on this system.
405 *
406 * Returns: An array of #GstCaps. Free with #gst_value_array_free when done
407 * with it.
408 */
409 GValueArray *
410 gst_caps_list_container_formats (GstRank minrank)
411 {
412 GValueArray *res;
413 GValueArray *muxers;
414
415 muxers = gst_factory_list_get_elements (GST_FACTORY_LIST_MUXER, minrank);
416 res = get_all_caps (muxers, GST_PAD_SRC);
417 g_value_array_free (muxers);
418
419 return res;
420 }
421
422 static GValueArray *
423 gst_caps_list_encoding_formats (GstRank minrank)
424 {
425 GValueArray *res;
426 GValueArray *encoders;
427
428 encoders = gst_factory_list_get_elements (GST_FACTORY_LIST_ENCODER, minrank);
429 res = get_all_caps (encoders, GST_PAD_SRC);
430 g_value_array_free (encoders);
431
432 return res;
433 }
434
435 /**
436 * gst_caps_list_video_encoding_formats:
437 * @minrank: The minimum #GstRank
438 *
439 * Returns an array of #GstCaps corresponding to all the video formats one
440 * can encode to on this system.
441 *
442 * Returns: An array of #GstCaps. Free with #gst_value_array_free when done
443 * with it.
444 */
445 GValueArray *
446 gst_caps_list_video_encoding_formats (GstRank minrank)
447 {
448 GValueArray *res;
449 GValueArray *encoders;
450
451 encoders =
452 gst_factory_list_get_elements (GST_FACTORY_LIST_ENCODER |
453 GST_FACTORY_LIST_VIDEO, minrank);
454 res = get_all_caps (encoders, GST_PAD_SRC);
455 g_value_array_free (encoders);
456
457 return res;
458 }
459
460
461 /**
462 * gst_caps_list_audio_encoding_formats:
463 * @minrank: The minimum #GstRank
464 *
465 * Returns an array of #GstCaps corresponding to all the audio formats one
466 * can encode to on this system.
467 *
468 * Returns: An array of #GstCaps. Free with #gst_value_array_free when done
469 * with it.
470 */
471 GValueArray *
472 gst_caps_list_audio_encoding_formats (GstRank minrank)
473 {
474 GValueArray *res;
475 GValueArray *encoders;
476
477 encoders =
478 gst_factory_list_get_elements (GST_FACTORY_LIST_ENCODER |
479 GST_FACTORY_LIST_AUDIO, minrank);
480 res = get_all_caps (encoders, GST_PAD_SRC);
481 g_value_array_free (encoders);
482
483 return res;
484 }
485
486 /**
487 * gst_caps_list_compatible_codecs:
488 * @containerformat: A #GstCaps
489 * @codecformats: An optional #GValueArray of #GstCaps.
490 * @muxers: An optional #GValueArray of muxer #GstElementFactory.
491 *
492 * Returns an array of #GstCaps corresponding to the audio/video/text formats
493 * one can encode to and that can be muxed in the provided @containerformat.
494 *
495 * If specified, only the #GstCaps contained in @codecformats will be checked
496 * against, else all compatible audio/video formats will be returned.
497 *
498 * If specified, only the #GstElementFactory contained in @muxers will be checked,
499 * else all available muxers on the system will be checked.
500 *
501 * Returns: An array of #GstCaps. Free with #gst_value_array_free when done
502 * with it.
503 */
504 GValueArray *
505 gst_caps_list_compatible_codecs (const GstCaps * containerformat,
506 GValueArray * codecformats, GValueArray * muxers)
507 {
508 guint i;
509 const GList *templates;
510 GstElementFactory *factory;
511 GList *walk;
512 GValueArray *res;
513 GValueArray *tmp;
514 gboolean hadmuxers = (muxers != NULL);
515 gboolean hadcodecs = (codecformats != NULL);
516
517 GST_WARNING ("containerformat %" GST_PTR_FORMAT
518 ", codecformats:%p, muxers:%p", containerformat, codecformats, muxers);
519
520 if (!hadmuxers)
521 muxers =
522 gst_factory_list_get_elements (GST_FACTORY_LIST_MUXER, GST_RANK_NONE);
523 if (!hadcodecs)
524 codecformats = gst_caps_list_encoding_formats (GST_RANK_NONE);
525
526 res = g_value_array_new (0);
527
528 /* Get the highest rank muxer matching containerformat */
529 tmp = gst_factory_list_filter (muxers, containerformat, GST_PAD_SRC, TRUE);
530 GST_WARNING ("n_values %d", tmp->n_values);
531 if (G_UNLIKELY (tmp->n_values == 0))
532 goto beach;
533 factory = g_value_get_object (g_value_array_get_nth (tmp, 0));
534
535 GST_WARNING ("Trying with factory %s",
536 gst_element_factory_get_longname (factory));
537
538 /* Match all muxer sink pad templates against the available codec formats */
539 templates = gst_element_factory_get_static_pad_templates (factory);
540 for (walk = (GList *) templates; walk; walk = walk->next) {
541 GstStaticPadTemplate *templ = walk->data;
542
543 if (templ->direction == GST_PAD_SINK) {
544 GstCaps *templ_caps;
545
546 templ_caps = gst_static_caps_get (&templ->static_caps);
547
548 GST_WARNING ("templ_caps %" GST_PTR_FORMAT, templ_caps);
549 for (i = 0; i < codecformats->n_values; i++) {
550 const GstCaps *match =
551 gst_value_get_caps (g_value_array_get_nth (codecformats, i));
552
553 GST_WARNING ("Trying match %" GST_PTR_FORMAT, match);
554
555 if (gst_caps_can_intersect (match, templ_caps)) {
556 GValue resval = { 0, };
557 GST_WARNING ("matches");
558 g_value_init (&resval, GST_TYPE_CAPS);
559 gst_value_set_caps (&resval, match);
560 g_value_array_append (res, &resval);
561 g_value_unset (&resval);
562 }
563 }
564 gst_caps_unref (templ_caps);
565 }
566 }
567
568
569 beach:
570 g_value_array_free (tmp);
571 if (!hadmuxers)
572 g_value_array_free (muxers);
573 if (!hadcodecs)
574 g_value_array_free (codecformats);
575
576 return res;
577 }
+0
-99
gst-convenience/gst-libs/gst/profile/gstfactorylists.h less more
0 /* GStreamer
1 * Copyright (C) <2007> Wim Taymans <wim.taymans@gmail.com>
2 *
3 * This library is free software; you can redistribute it and/or
4 * modify it under the terms of the GNU Lesser General Public
5 * License as published by the Free Software Foundation; either
6 * version 2 of the License, or (at your option) any later version.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public
14 * License along with this library; if not, write to the
15 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16 * Boston, MA 02111-1307, USA.
17 */
18
19
20 #ifndef __GST_FACTORY_LISTS_H__
21 #define __GST_FACTORY_LISTS_H__
22
23 #include <gst/gst.h>
24
25 G_BEGIN_DECLS
26
27 /**
28 * GstFactoryListType:
29 * @GST_FACTORY_LIST_DECODER:
30 * @GST_FACTORY_LIST_ENCODER:
31 * @GST_FACTORY_LIST_SINK:
32 * @GST_FACTORY_LIST_SRC:
33 * @GST_FACTORY_LIST_MUXER:
34 * @GST_FACTORY_LIST_PARSER:
35 *
36 * The type of #GstElementFactory to filter.
37 */
38
39 typedef enum {
40 GST_FACTORY_LIST_DECODER = (1 << 0),
41 GST_FACTORY_LIST_ENCODER = (1 << 1),
42 GST_FACTORY_LIST_SINK = (1 << 2),
43 GST_FACTORY_LIST_SRC = (1 << 3),
44 GST_FACTORY_LIST_MUXER = (1 << 4),
45 GST_FACTORY_LIST_DEMUXER = (1 << 5),
46 GST_FACTORY_LIST_PARSER = (1 << 6),
47 GST_FACTORY_LIST_DEPAYLOADER = (1 << 7),
48
49 GST_FACTORY_LIST_MAX_ELEMENTS = (1 << 16),
50 GST_FACTORY_LIST_VIDEO = (1 << 17),
51 GST_FACTORY_LIST_AUDIO = (1 << 18),
52 } GstFactoryListType;
53
54 #define GST_FACTORY_LIST_VIDEO_ENCODER (GST_FACTORY_LIST_ENCODER | GST_FACTORY_LIST_VIDEO)
55 #define GST_FACTORY_LIST_AUDIO_ENCODER (GST_FACTORY_LIST_ENCODER | GST_FACTORY_LIST_AUDIO)
56 #define GST_FACTORY_LIST_AV_SINKS (GST_FACTORY_LIST_SINK | GST_FACTORY_LIST_AUDIO | GST_FACTORY_LIST_VIDEO)
57
58 #define GST_FACTORY_LIST_DECODABLE \
59 (GST_FACTORY_LIST_DECODER | GST_FACTORY_LIST_DEMUXER | GST_FACTORY_LIST_DEPAYLOADER | GST_FACTORY_LIST_PARSER)
60
61 /* Factory list functions */
62
63 gboolean gst_factory_list_is_type (GstElementFactory *factory, GstFactoryListType type);
64
65 GValueArray * gst_factory_list_get_elements (GstFactoryListType type, GstRank minrank);
66
67 void gst_factory_list_debug (GValueArray *array);
68
69 GValueArray * gst_factory_list_filter (GValueArray *array, const GstCaps *caps,
70 GstPadDirection direction,
71 gboolean subsetonly);
72
73 /* Caps functions */
74
75 GValueArray *gst_caps_list_compatible_codecs (const GstCaps *containerformat,
76 GValueArray *codecformats,
77 GValueArray *muxers);
78
79 GValueArray *gst_caps_list_compatible_containers (GstCaps *mediaformat,
80 GValueArray *containerformats);
81
82
83 GValueArray *gst_caps_list_container_formats (GstRank minrank);
84
85 GValueArray *gst_caps_list_video_encoding_formats (GstRank minrank);
86
87 GValueArray *gst_caps_list_audio_encoding_formats (GstRank minrank);
88
89
90 #ifndef GST_DISABLE_GST_DEBUG
91 #define GST_FACTORY_LIST_DEBUG(array) gst_factory_list_debug(array)
92 #else
93 #define GST_FACTORY_LIST_DEBUG(array)
94 #endif
95
96 G_END_DECLS
97
98 #endif /* __GST_FACTORY_LISTS_H__ */
+0
-376
gst-convenience/gst-libs/gst/profile/gstprofile.c less more
0 /* GStreamer encoding profiles library
1 * Copyright (C) 2009 Edward Hervey <edward.hervey@collabora.co.uk>
2 * (C) 2009 Nokia Corporation
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 Public
15 * 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
20 /**
21 * SECTION:gstprofile
22 * @short_description: Encoding profile library
23 *
24 * Since 0.10.XXXX
25 */
26 #ifdef HAVE_CONFIG_H
27 # include "config.h"
28 #endif
29
30 #include "gstprofile.h"
31
32 /* GstEncodingProfile API */
33
34 GType
35 gst_encoding_profile_get_type (void)
36 {
37 static GType gst_encoding_profile_type = 0;
38
39 if (G_UNLIKELY (gst_encoding_profile_type == 0)) {
40 gst_encoding_profile_type =
41 g_boxed_type_register_static ("GstEncodingProfile",
42 (GBoxedCopyFunc) gst_encoding_profile_copy,
43 (GBoxedFreeFunc) gst_encoding_profile_free);
44 }
45
46 return gst_encoding_profile_type;
47 }
48
49 GType
50 gst_stream_encoding_profile_get_type (void)
51 {
52 static GType gst_stream_encoding_profile_type = 0;
53
54 if (G_UNLIKELY (gst_stream_encoding_profile_type == 0)) {
55 gst_stream_encoding_profile_type =
56 g_boxed_type_register_static ("GstStreamEncodingProfile",
57 (GBoxedCopyFunc) gst_stream_encoding_profile_copy,
58 (GBoxedFreeFunc) gst_stream_encoding_profile_free);
59 }
60
61 return gst_stream_encoding_profile_type;
62 }
63
64 GType
65 gst_video_encoding_profile_get_type (void)
66 {
67 static GType gst_video_encoding_profile_type = 0;
68
69 if (G_UNLIKELY (gst_video_encoding_profile_type == 0)) {
70 gst_video_encoding_profile_type =
71 g_boxed_type_register_static ("GstVideoEncodingProfile",
72 (GBoxedCopyFunc) gst_stream_encoding_profile_copy,
73 (GBoxedFreeFunc) gst_stream_encoding_profile_free);
74 }
75
76 return gst_video_encoding_profile_type;
77 }
78
79 /**
80 * gst_encoding_profile_copy:
81 * @profile: a #GstEncodingProfile
82 *
83 * Creates a copy of the given profile.
84 *
85 * Returns: a new #GstEncodingProfile
86 */
87 GstEncodingProfile *
88 gst_encoding_profile_copy (GstEncodingProfile * prof)
89 {
90 GstEncodingProfile *copy;
91 GList *tmp;
92 GstStreamEncodingProfile *sprof;
93
94 copy = gst_encoding_profile_new (prof->name, prof->format, prof->preset,
95 prof->multipass);
96
97 for (tmp = prof->encodingprofiles; tmp; tmp = tmp->next) {
98 sprof = (GstStreamEncodingProfile *) tmp->data;
99 copy->encodingprofiles = g_list_append (copy->encodingprofiles,
100 gst_stream_encoding_profile_copy (sprof));
101 }
102
103 return copy;
104 }
105
106 /**
107 * gst_encoding_profile_free:
108 * @profile: a #GstEncodingProfile
109 *
110 * Frees the profile and associated streams
111 */
112 void
113 gst_encoding_profile_free (GstEncodingProfile * prof)
114 {
115 g_return_if_fail (prof != NULL);
116
117 if (prof->name)
118 g_free (prof->name);
119 if (prof->format)
120 gst_caps_unref (prof->format);
121 if (prof->preset)
122 g_free (prof->preset);
123
124 /* FIXME : Free stream profiles */
125 g_list_foreach (prof->encodingprofiles,
126 (GFunc) gst_stream_encoding_profile_free, NULL);
127 g_list_free (prof->encodingprofiles);
128
129 g_free (prof);
130 }
131
132 /**
133 * gst_encoding_profile_new:
134 * @name: the name to use for the profile
135 * @format: the #GstCaps corresponding to the output container format. Can
136 * be #NULL for container-less encoding profiles, in which case only a single
137 * #GstStreamEncodingProfile can be added to it.
138 * @preset: the #GstPreset to use on the muxer, can be #NULL
139 * @multipass: Set to %TRUE if this profile uses multi-pass video encoding.
140 *
141 * Creates a new #GstEncodingProfile.
142 *
143 * All provided allocatable arguments will be internally copied, so can be
144 * safely freed/unreferenced after calling this method.
145 *
146 * Returns: the newly created #GstEncodingProfile.
147 */
148 GstEncodingProfile *
149 gst_encoding_profile_new (gchar * name, GstCaps * format, gchar * preset,
150 gboolean multipass)
151 {
152 GstEncodingProfile *prof;
153
154 prof = g_new0 (GstEncodingProfile, 1);
155
156 prof->name = g_strdup (name);
157 if (format)
158 prof->format = gst_caps_copy (format);
159 if (preset)
160 prof->preset = g_strdup (preset);
161 prof->multipass = multipass;
162
163 return prof;
164 }
165
166 /**
167 * gst_encoding_profile_add_stream:
168 * @profile: the #GstEncodingProfile to use
169 * @stream: the #GstStreamEncodingProfile to add.
170 *
171 * Add a #GstStreamEncodingProfile to the list of profiles handled by @profile.
172 *
173 * No copy of @stream will be made, if you wish to use it elsewhere after this
174 * method you should copy it.
175 *
176 * Returns: %TRUE if the @stream was properly added, else %FALSE.
177 */
178 gboolean
179 gst_encoding_profile_add_stream (GstEncodingProfile * profile,
180 GstStreamEncodingProfile * stream)
181 {
182 if ((profile->format == NULL) && profile->encodingprofiles) {
183 GST_ERROR ("Container-less profiles can also have one stream profile");
184 return FALSE;
185 }
186 /* FIXME : Maybe we should have a better way to detect if an exactly
187 * similar profile is already present */
188 profile->encodingprofiles = g_list_append (profile->encodingprofiles, stream);
189
190 return TRUE;
191 }
192
193 /**
194 * gst_encoding_profile_get_codec_caps:
195 * @profile: a #GstEncodingProfile
196 *
197 * Returns all the caps that can bypass encoding process.
198 *
199 * This is useful if you wish to connect (uri)decodebin to encodebin and avoid
200 * as much decoding/encoding as possible. You can pass those caps to the 'caps'
201 * properties of those elements.
202 *
203 * Returns: The caps that will bypass the encoding process.
204 */
205 GstCaps *
206 gst_encoding_profile_get_codec_caps (GstEncodingProfile * profile)
207 {
208 GstCaps *res;
209 GList *tmp;
210
211 res = gst_caps_new_empty ();
212
213 for (tmp = profile->encodingprofiles; tmp; tmp = g_list_next (tmp)) {
214 GstStreamEncodingProfile *sprof = (GstStreamEncodingProfile *) tmp->data;
215 gst_caps_append (res, gst_stream_encoding_profile_get_output_caps (sprof));
216 }
217
218 return res;
219 }
220
221
222 /* GstStreamEncodingProfile API */
223 /**
224 * gst_stream_encoding_profile_new:
225 * @type: a #GstEncodingProfileType
226 * @format: the #GstCaps of the encoding media.
227 * @preset: the preset(s) to use on the encoder, can be #NULL
228 * @restriction: the #GstCaps used to restrict the input to the encoder, can be
229 * NULL.
230 * @presence: the number of time this stream must be used. 0 means any number of
231 * times (including never)
232 *
233 * Creates a new #GstStreamEncodingProfile to be used in a #GstEncodingProfile.
234 *
235 * All provided allocatable arguments will be internally copied, so can be
236 * safely freed/unreferenced after calling this method.
237 *
238 * Returns: the newly created #GstStreamEncodingProfile.
239 */
240 GstStreamEncodingProfile *
241 gst_stream_encoding_profile_new (GstEncodingProfileType type,
242 GstCaps * format, gchar * preset, GstCaps * restriction, guint presence)
243 {
244 GstStreamEncodingProfile *prof;
245
246 if (type == GST_ENCODING_PROFILE_VIDEO)
247 prof = (GstStreamEncodingProfile *) g_new0 (GstVideoEncodingProfile, 1);
248 else
249 prof = g_new0 (GstStreamEncodingProfile, 1);
250 prof->type = type;
251 prof->format = gst_caps_copy (format);
252 prof->preset = g_strdup (preset);
253 if (restriction)
254 prof->restriction = gst_caps_copy (restriction);
255 else
256 prof->restriction = gst_caps_new_any ();
257 prof->presence = presence;
258
259 return prof;
260 }
261
262 /**
263 * gst_stream_encoding_profile_free:
264 * @profile: a #GstStreamEncodingProfile
265 *
266 * Frees the profile and associated entries.
267 */
268 void
269 gst_stream_encoding_profile_free (GstStreamEncodingProfile * prof)
270 {
271 g_return_if_fail (prof != NULL);
272
273 gst_caps_unref (prof->format);
274 if (prof->preset)
275 g_free (prof->preset);
276 if (prof->restriction)
277 gst_caps_unref (prof->restriction);
278 g_free (prof);
279 }
280
281 /**
282 * gst_stream_encoding_profile_copy:
283 * @profile: a #GstStreamEncodingProfile
284 *
285 * Copies the stream profile and associated entries.
286 *
287 * Returns: A copy of the provided profile
288 */
289 GstStreamEncodingProfile *
290 gst_stream_encoding_profile_copy (GstStreamEncodingProfile * prof)
291 {
292 GstStreamEncodingProfile *copy;
293
294 if (prof->type == GST_ENCODING_PROFILE_VIDEO)
295 copy = gst_video_encoding_profile_new (prof->format, prof->preset,
296 prof->restriction, prof->presence,
297 ((GstVideoEncodingProfile *) prof)->pass);
298 else
299 copy =
300 gst_stream_encoding_profile_new (prof->type, prof->format, prof->preset,
301 prof->restriction, prof->presence);
302
303 return copy;
304 }
305
306 /**
307 * gst_video_encoding_profile_new:
308 * @format: the #GstCaps
309 * @preset: the preset(s) to use on the encoder, can be #NULL
310 * @restriction: the #GstCaps used to restrict the input to the encoder, can be
311 * NULL.
312 * @presence: the number of time this stream must be used. 0 means any number of
313 * times (including never)
314 * @pass: For which pass this profile should be used. Set to 0 if no multipass
315 * encoding is needed.
316 *
317 * Creates a new #GstStreamEncodingProfile to be used in a #GstEncodingProfile.
318 *
319 * All provided allocatable arguments will be internally copied, so can be
320 * safely freed/unreferenced after calling this method.
321 *
322 * Returns: the newly created #GstStreamEncodingProfile.
323 */
324 GstStreamEncodingProfile *
325 gst_video_encoding_profile_new (GstCaps * format, gchar * preset,
326 GstCaps * restriction, guint presence, guint pass)
327 {
328 GstStreamEncodingProfile *prof;
329
330 prof =
331 gst_stream_encoding_profile_new (GST_ENCODING_PROFILE_VIDEO, format,
332 preset, restriction, presence);
333 ((GstVideoEncodingProfile *) prof)->pass = pass;
334
335 return prof;
336 }
337
338 /**
339 * gst_stream_encoding_profile_get_output_caps:
340 * @profile: a #GstStreamEncodingProfile
341 *
342 * Computes the full output caps that this @profile will generate.
343 *
344 * Returns: The full output caps for the given @profile. Call gst_caps_unref
345 * when you are done with the caps.
346 */
347 GstCaps *
348 gst_stream_encoding_profile_get_output_caps (GstStreamEncodingProfile * profile)
349 {
350 GstCaps *out, *tmp;
351 GstStructure *st, *outst;
352 GQuark out_name;
353 guint i, len;
354
355 /* fast-path */
356 if ((profile->restriction == NULL) || gst_caps_is_any (profile->restriction))
357 return gst_caps_copy (profile->format);
358
359 /* Combine the format with the restriction caps */
360 outst = gst_caps_get_structure (profile->format, 0);
361 out_name = gst_structure_get_name_id (outst);
362 tmp = gst_caps_new_empty ();
363 len = gst_caps_get_size (profile->restriction);
364
365 for (i = 0; i < len; i++) {
366 st = gst_structure_copy (gst_caps_get_structure (profile->restriction, i));
367 st->name = out_name;
368 gst_caps_append_structure (tmp, st);
369 }
370
371 out = gst_caps_intersect (tmp, profile->format);
372 gst_caps_unref (tmp);
373
374 return out;
375 }
+0
-230
gst-convenience/gst-libs/gst/profile/gstprofile.h less more
0 /* GStreamer encoding profiles library
1 * Copyright (C) 2009 Edward Hervey <edward.hervey@collabora.co.uk>
2 * (C) 2009 Nokia Corporation
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 Public
15 * 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
20 #ifndef __GST_PROFILE_H__
21 #define __GST_PROFILE_H__
22
23 #ifndef GST_USE_UNSTABLE_API
24 #warning "GstProfile is unstable API and may change in future."
25 #warning "You can define GST_USE_UNSTABLE_API to avoid this warning."
26 #endif
27
28 #include <gst/gst.h>
29
30 G_BEGIN_DECLS
31
32 #include <gst/profile/profile-enumtypes.h>
33
34 #define GST_TYPE_ENCODING_PROFILE (gst_encoding_profile_get_type())
35 #define GST_ENCODING_PROFILE(object) ((GstEncodingProfile*)object)
36
37 #define GST_TYPE_STREAM_ENCODING_PROFILE (gst_stream_encoding_profile_get_type())
38 #define GST_STREAM_ENCODING_PROFILE(object) ((GstStreamEncodingProfile*)object)
39
40 #define GST_TYPE_VIDEO_ENCODING_PROFILE (gst_video_encoding_profile_get_type())
41 #define GST_VIDEO_ENCODING_PROFILE(object) ((GstVideoEncodingProfile*)object)
42
43 /**
44 * GstEncodingProfileType:
45 * @GST_ENCODING_PROFILE_UNKNOWN: unknown stream
46 * @GST_ENCODING_PROFILE_VIDEO: video stream
47 * @GST_ENCODING_PROFILE_AUDIO: audio stream
48 * @GST_ENCODING_PROFILE_TEXT: text/subtitle stream
49 * @GST_ENCODING_PROFILE_IMAGE: image
50 *
51 * Type of stream for a #GstStreamEncodingProfile
52 **/
53 typedef enum {
54 GST_ENCODING_PROFILE_UNKNOWN,
55 GST_ENCODING_PROFILE_VIDEO,
56 GST_ENCODING_PROFILE_AUDIO,
57 GST_ENCODING_PROFILE_TEXT,
58 GST_ENCODING_PROFILE_IMAGE,
59 /* Room for extenstion */
60 } GstEncodingProfileType;
61
62 typedef struct _GstEncodingTarget GstEncodingTarget;
63 typedef struct _GstEncodingProfile GstEncodingProfile;
64 typedef struct _GstStreamEncodingProfile GstStreamEncodingProfile;
65 typedef struct _GstVideoEncodingProfile GstVideoEncodingProfile;
66
67 /* FIXME/UNKNOWNS
68 *
69 * Should encoding categories be well-known strings/quarks ?
70 *
71 */
72
73 /**
74 * GstEncodingTarget:
75 * @name: The name of the target profile.
76 * @category: The target category (device, service, use-case).
77 * @profiles: A list of #GstProfile this device supports.
78 *
79 */
80 struct _GstEncodingTarget {
81 gchar *name;
82 gchar *category;
83 GList *profiles;
84 };
85
86 /**
87 * GstEncodingProfile:
88 * @name: The name of the profile
89 * @format: The #GstCaps corresponding to the muxing format.
90 * @preset: The name of the #GstPreset(s) to be used on the muxer. This is optional.
91 * @multipass: Whether this profile is a multi-pass profile or not.
92 * @encodingprofiles: A list of #GstStreamEncodingProfile for the various streams.
93 *
94 * Profile for a specific combination of format/stream encoding.
95 */
96
97 struct _GstEncodingProfile {
98 gchar *name;
99 GstCaps *format;
100 gchar *preset;
101 gboolean multipass;
102 GList *encodingprofiles;
103 };
104
105 /**
106 * GstStreamEncodingProfile:
107 * @type: Type of profile
108 * @format: The GStreamer mime type corresponding to the encoding format.
109 * @preset: The name of the #GstPreset to be used on the encoder. This is optional.
110 * @restriction: The #GstCaps restricting the input. This is optional.
111 * @presence: The number of streams that can be created. 0 => any.
112 *
113 * Invididual stream profile, to be used in #GstEncodingProfile
114 */
115 struct _GstStreamEncodingProfile {
116 GstEncodingProfileType type;
117 GstCaps *format;
118 gchar *preset;
119 GstCaps *restriction;
120 guint presence;
121 };
122
123 /**
124 * GstVideoEncodingProfile:
125 * @profile: common #GstEncodingProfile part.
126 * @pass: The pass number if this is part of a multi-pass profile. Starts at 1
127 * for multi-pass. Set to 0 if this is not part of a multi-pass profile.
128 * @vfr: Variable Frame Rate allowed.
129 * If %FALSE (default), the incoming video frames will be duplicated/dropped in
130 * order to produce an exact constant framerate.
131 * If %TRUE, then the incoming video stream will not be modified.
132 *
133 * Variant of #GstStreamEncodingProfile for video streams, allows specifying the @pass.
134 */
135 struct _GstVideoEncodingProfile {
136 GstStreamEncodingProfile profile;
137 guint pass;
138 gboolean vfr;
139 };
140
141 /* GstEncodingProfile API */
142 GType gst_encoding_profile_get_type (void);
143 GstEncodingProfile * gst_encoding_profile_new (gchar *name, GstCaps *format,
144 gchar *preset,
145 gboolean multipass);
146 GstEncodingProfile * gst_encoding_profile_copy (GstEncodingProfile *profile);
147
148 void gst_encoding_profile_free (GstEncodingProfile *profile);
149
150 gboolean gst_encoding_profile_add_stream (GstEncodingProfile *profile,
151 GstStreamEncodingProfile *stream);
152 GstCaps * gst_encoding_profile_get_codec_caps (GstEncodingProfile *profile);
153
154
155 /* GstStreamEncodingProfile API */
156 GType gst_stream_encoding_profile_get_type (void);
157 GstStreamEncodingProfile * gst_stream_encoding_profile_new (GstEncodingProfileType type,
158 GstCaps *format,
159 gchar *preset,
160 GstCaps *restriction,
161 guint presence);
162
163 GType gst_video_encoding_profile_get_type (void);
164 GstStreamEncodingProfile * gst_video_encoding_profile_new (GstCaps *format,
165 gchar *preset,
166 GstCaps *restriction,
167 guint presence,
168 guint pass);
169
170 GstStreamEncodingProfile * gst_stream_encoding_profile_copy (GstStreamEncodingProfile *profile);
171
172 void gst_stream_encoding_profile_free (GstStreamEncodingProfile *profile);
173
174 GstCaps * gst_stream_encoding_profile_get_output_caps (GstStreamEncodingProfile *profile);
175
176 /* Generic helper API */
177 GList *gst_encoding_category_list_target (gchar *category);
178
179 GList *gst_profile_list_target_categories (void);
180
181 gboolean gst_profile_target_save (GstEncodingTarget *target);
182
183
184 /*
185 * Application convenience methods (possibly to be added in gst-pb-utils)
186 */
187
188 GstElement *gst_pb_utils_create_encoder(GstCaps *caps, gchar *preset, gchar *name);
189 GstElement *gst_pb_utils_create_encoder_format(gchar *format, gchar *preset,
190 gchar *name);
191
192 GstElement *gst_pb_utils_create_muxer(GstCaps *caps, gchar *preset);
193 GstElement *gst_pb_utils_create_muxer_format(gchar *format, gchar *preset,
194 gchar *name);
195
196
197 /*
198 * GstPreset modifications
199 */
200
201 /**
202 * gst_preset_create:
203 * @preset: The #GstPreset on which to create the preset
204 * @name: A name for the preset
205 * @properties: The properties
206 *
207 * Creates a new preset with the given properties. This preset will only
208 * exist during the lifetime of the process.
209 * If you wish to use it after the lifetime of the process, you must call
210 * @gst_preset_save_preset.
211 *
212 * Returns: #TRUE if the preset could be created, else #FALSE.
213 */
214 gboolean gst_preset_create (GstPreset *preset, gchar *name,
215 GstStructure *properties);
216
217 /**
218 * gst_preset_reset:
219 * @preset: a #GstPreset
220 *
221 * Sets all the properties of the element back to their default values.
222 */
223 /* FIXME : This could actually be put at the GstObject level, or maybe even
224 * at the GObject level. */
225 void gst_preset_reset (GstPreset *preset);
226
227 G_END_DECLS
228
229 #endif /* __GST_PROFILE_H__ */
+0
-184
gst-convenience/gst-libs/gst/profile/gstprofileutils.c less more
0 /* GStreamer encoding profiles library utilities
1 * Copyright (C) 2010 Edward Hervey <edward.hervey@collabora.co.uk>
2 * (C) 2010 Nokia Corporation
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 Public
15 * 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
20 #ifdef HAVE_CONFIG_H
21 # include "config.h"
22 #endif
23
24 #include "gstprofile.h"
25
26 /**
27 * gst_encoding_category_list_target:
28 * @category: a profile target category name. Can be NULL.
29 *
30 * NOT IMPLEMENTED
31 *
32 * Returns: the list of all available #GstEncodingTarget for the given @category.
33 * If @category is #NULL, then all available #GstEncodingTarget are returned.
34 */
35
36 GList *
37 gst_encoding_category_list_target (gchar * category)
38 {
39 /* FIXME : IMPLEMENT */
40 return NULL;
41 }
42
43 /**
44 * gst_profile_list_target_categories:
45 *
46 * list available profile target categories
47 *
48 * NOT IMPLEMENTED
49 */
50 GList *
51 gst_profile_list_target_categories (void)
52 {
53 /* FIXME : IMPLEMENT */
54 return NULL;
55 }
56
57 /**
58 * gst_profile_target_save:
59 *
60 * NOT IMPLEMENTED
61 */
62 gboolean
63 gst_profile_target_save (GstEncodingTarget * target)
64 {
65 /* FIXME : IMPLEMENT */
66 return FALSE;
67 }
68
69 /**
70 * gst_pb_utils_create_encoder:
71 * @caps: The #GstCaps corresponding to a codec format
72 * @preset: The name of a preset, can be #NULL
73 * @name: The name to give to the returned instance, can be #NULL.
74 *
75 * Creates an encoder which can output the given @caps. If several encoders can
76 * output the given @caps, then the one with the highest rank will be picked.
77 * If a @preset is specified, it will be applied to the created encoder before
78 * returning it.
79 * If a @preset is specified, then the highest-ranked encoder that can accept
80 * the givein preset will be returned.
81 *
82 * Returns: The encoder instance with the preset applied if it is available.
83 * #NULL if no encoder is available.
84 */
85 GstElement *
86 gst_pb_utils_create_encoder (GstCaps * caps, gchar * preset, gchar * name)
87 {
88 /* FIXME : IMPLEMENT */
89 return NULL;
90 }
91
92
93 /**
94 * gst_pb_utils_create_encoder_format:
95 *
96 * Convenience version of @gst_pb_utils_create_encoder except one does not need
97 * to create a #GstCaps.
98 */
99
100 GstElement *
101 gst_pb_utils_create_encoder_format (gchar * format, gchar * preset,
102 gchar * name)
103 {
104 /* FIXME : IMPLEMENT */
105 return NULL;
106 }
107
108 /**
109 * gst_pb_utils_create_muxer:
110 * @caps: The #GstCaps corresponding to a codec format
111 * @preset: The name of a preset, can be NULL
112 *
113 * Creates an muxer which can output the given @caps. If several muxers can
114 * output the given @caps, then the one with the highest rank will be picked.
115 * If a @preset is specified, it will be applied to the created muxer before
116 * returning it.
117 * If a @preset is specified, then the highest-ranked muxer that can accept
118 * the givein preset will be returned.
119 *
120 * Returns: The muxer instance with the preset applied if it is available.
121 * #NULL if no muxer is available.
122 */
123 GstElement *
124 gst_pb_utils_create_muxer (GstCaps * caps, gchar * preset)
125 {
126 /* FIXME : IMPLEMENT */
127 return NULL;
128 }
129
130
131 /**
132 * gst_pb_utils_create_muxer_format:
133 *
134 * Convenience version of @gst_pb_utils_create_muxer except one does not need
135 * to create a #GstCaps.
136 */
137 GstElement *
138 gst_pb_utils_create_muxer_format (gchar * format, gchar * preset, gchar * name)
139 {
140 /* FIXME : IMPLEMENT */
141 return NULL;
142 }
143
144
145
146
147 /*
148 * GstPreset modifications
149 */
150
151 /**
152 * gst_preset_create:
153 * @preset: The #GstPreset on which to create the preset
154 * @name: A name for the preset
155 * @properties: The properties
156 *
157 * Creates a new preset with the given properties. This preset will only
158 * exist during the lifetime of the process.
159 * If you wish to use it after the lifetime of the process, you must call
160 * @gst_preset_save_preset.
161 *
162 * Returns: #TRUE if the preset could be created, else #FALSE.
163 */
164 gboolean
165 gst_preset_create (GstPreset * preset, gchar * name, GstStructure * properties)
166 {
167 /* FIXME : IMPLEMENT */
168 return FALSE;
169 }
170
171 /**
172 * gst_preset_reset:
173 * @preset: a #GstPreset
174 *
175 * Sets all the properties of the element back to their default values.
176 */
177 /* FIXME : This could actually be put at the GstObject level, or maybe even
178 * at the GObject level. */
179 void
180 gst_preset_reset (GstPreset * preset)
181 {
182
183 }
+0
-29
gst-convenience/gst-libs/gst/profile/profile-enumtypes.c less more
0
1
2
3 #include "profile-enumtypes.h"
4
5 #include "gstprofile.h"
6
7 /* enumerations from "gstprofile.h" */
8 GType
9 gst_encoding_profile_type_get_type (void)
10 {
11 static volatile gsize g_define_type_id__volatile = 0;
12 if (g_once_init_enter (&g_define_type_id__volatile)) {
13 static const GEnumValue values[] = {
14 { GST_ENCODING_PROFILE_UNKNOWN, "GST_ENCODING_PROFILE_UNKNOWN", "unknown" },
15 { GST_ENCODING_PROFILE_VIDEO, "GST_ENCODING_PROFILE_VIDEO", "video" },
16 { GST_ENCODING_PROFILE_AUDIO, "GST_ENCODING_PROFILE_AUDIO", "audio" },
17 { GST_ENCODING_PROFILE_TEXT, "GST_ENCODING_PROFILE_TEXT", "text" },
18 { GST_ENCODING_PROFILE_IMAGE, "GST_ENCODING_PROFILE_IMAGE", "image" },
19 { 0, NULL, NULL }
20 };
21 GType g_define_type_id = g_enum_register_static ("GstEncodingProfileType", values);
22 g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
23 }
24 return g_define_type_id__volatile;
25 }
26
27
28
+0
-19
gst-convenience/gst-libs/gst/profile/profile-enumtypes.h less more
0
1
2
3 #ifndef __GST_PROFILE_ENUM_TYPES_H__
4 #define __GST_PROFILE_ENUM_TYPES_H__
5
6 #include <glib-object.h>
7
8 G_BEGIN_DECLS
9
10 /* enumerations from "gstprofile.h" */
11 GType gst_encoding_profile_type_get_type (void);
12 #define GST_TYPE_ENCODING_PROFILE_TYPE (gst_encoding_profile_type_get_type())
13 G_END_DECLS
14
15 #endif /* __GST_PROFILE_ENUM_TYPES_H__ */
16
17
18
+0
-2
gst-convenience/gstreamer-discoverer-gupnp-dlna-0.10.deps less more
0 gstreamer-0.10
1 gstreamer-video-0.10
+0
-106
gst-convenience/gstreamer-discoverer-gupnp-dlna-0.10.vapi less more
0 /* gstreamer-discoverer-0.10.vapi generated by vapigen, do not modify. */
1
2 [CCode (cprefix = "Gst", lower_case_cprefix = "gst_")]
3 namespace Gst {
4 [CCode (cheader_filename = "gst/discoverer/gstdiscoverer.h")]
5 public class Discoverer : GLib.Object {
6 public bool @async;
7 public weak Gst.Bus bus;
8 public weak GLib.Error current_error;
9 public weak Gst.DiscovererInformation current_info;
10 public weak Gst.Structure current_topology;
11 public GLib.Type decodebin2_type;
12 public weak GLib.Mutex @lock;
13 public weak GLib.List pending_uris;
14 public weak Gst.Bin pipeline;
15 public bool running;
16 public weak GLib.List streams;
17 public weak Gst.Element uridecodebin;
18 [CCode (has_construct_function = false)]
19 public Discoverer (Gst.ClockTime timeout);
20 public bool append_uri (string uri);
21 public Gst.DiscovererInformation discover_uri (string uri) throws GLib.Error;
22 public void start ();
23 public void stop ();
24 [NoAccessorMethod]
25 public uint64 timeout { get; set construct; }
26 public virtual signal void discovered (Gst.DiscovererInformation info, GLib.Error err);
27 public virtual signal void ready ();
28 public virtual signal void starting ();
29 }
30 [Compact]
31 [CCode (copy_function = "gst_discoverer_information_copy", type_id = "GST_TYPE_DISCOVERER_INFORMATION", cheader_filename = "gst/discoverer/gstdiscoverer.h")]
32 public class DiscovererInformation {
33 public Gst.ClockTime duration;
34 public weak Gst.Structure misc;
35 public Gst.DiscovererResult result;
36 public weak Gst.StreamInformation stream_info;
37 public weak GLib.List<Gst.StreamInformation> stream_list;
38 public weak Gst.TagList tags;
39 public weak string uri;
40 [CCode (has_construct_function = false)]
41 public DiscovererInformation ();
42 }
43 [Compact]
44 [CCode (copy_function = "gst_stream_audio_information_copy", type_id = "GST_TYPE_STREAM_AUDIO_INFORMATION", cheader_filename = "gst/discoverer/gstdiscoverer.h")]
45 public class StreamAudioInformation : Gst.StreamInformation {
46 public uint bitrate;
47 public uint channels;
48 public uint depth;
49 public bool is_vbr;
50 public uint max_bitrate;
51 public uint sample_rate;
52 [CCode (has_construct_function = false)]
53 public StreamAudioInformation ();
54 }
55 [Compact]
56 [CCode (copy_function = "gst_stream_container_information_copy", type_id = "GST_TYPE_STREAM_CONTAINER_INFORMATION", cheader_filename = "gst/discoverer/gstdiscoverer.h")]
57 public class StreamContainerInformation : Gst.StreamInformation {
58 public weak GLib.List streams;
59 [CCode (has_construct_function = false)]
60 public StreamContainerInformation ();
61 }
62 [Compact]
63 [CCode (copy_function = "gst_stream_information_copy", type_id = "GST_TYPE_STREAM_INFORMATION", cheader_filename = "gst/discoverer/gstdiscoverer.h")]
64 public class StreamInformation {
65 public weak Gst.Caps caps;
66 public weak Gst.Structure misc;
67 public weak Gst.StreamInformation next;
68 public weak Gst.StreamInformation previous;
69 public Gst.StreamType streamtype;
70 public weak Gst.TagList tags;
71 [CCode (has_construct_function = false)]
72 public StreamInformation ();
73 }
74 [Compact]
75 [CCode (copy_function = "gst_stream_video_information_copy", type_id = "GST_TYPE_STREAM_VIDEO_INFORMATION", cheader_filename = "gst/discoverer/gstdiscoverer.h")]
76 public class StreamVideoInformation : Gst.StreamInformation {
77 public uint depth;
78 public Gst.VideoFormat format;
79 public Gst.Value frame_rate;
80 public uint height;
81 public bool interlaced;
82 public Gst.Value pixel_aspect_ratio;
83 public uint width;
84 [CCode (has_construct_function = false)]
85 public StreamVideoInformation ();
86 }
87 [CCode (cprefix = "GST_DISCOVERER_", cheader_filename = "gst/discoverer/gstdiscoverer.h")]
88 [Flags]
89 public enum DiscovererResult {
90 OK,
91 URI_INVALID,
92 ERROR,
93 TIMEOUT,
94 BUSY,
95 MISSING_PLUGINS
96 }
97 [CCode (cprefix = "GST_STREAM_", cheader_filename = "gst/discoverer/gstdiscoverer.h")]
98 public enum StreamType {
99 CONTAINER,
100 AUDIO,
101 VIDEO,
102 IMAGE,
103 UNKNOWN
104 }
105 }
+0
-1
gst-convenience/gstreamer-profile-gupnp-dlna-0.10.deps less more
0 gstreamer-0.10
+0
-78
gst-convenience/gstreamer-profile-gupnp-dlna-0.10.vapi less more
0 /* gstreamer-profile-0.10.vapi generated by vapigen, do not modify. */
1
2 [CCode (cprefix = "Gst", lower_case_cprefix = "gst_")]
3 namespace Gst {
4 [Compact]
5 [CCode (copy_function = "gst_encoding_profile_copy", type_id = "GST_TYPE_ENCODING_PROFILE", cheader_filename = "gst/profile/gstprofile.h")]
6 public class EncodingProfile {
7 public weak GLib.List encodingprofiles;
8 public weak Gst.Caps format;
9 public bool multipass;
10 public weak string name;
11 public weak string preset;
12 [CCode (has_construct_function = false)]
13 public EncodingProfile (string name, Gst.Caps format, string? preset, bool multipass);
14 public bool add_stream (owned Gst.StreamEncodingProfile stream);
15 public unowned Gst.EncodingProfile copy ();
16 public unowned Gst.Caps get_codec_caps ();
17 }
18 [Compact]
19 [CCode (cheader_filename = "gst/profile/gstprofile.h")]
20 public class EncodingTarget {
21 public weak string category;
22 public weak string name;
23 public weak GLib.List profiles;
24 }
25 [Compact]
26 [CCode (copy_function = "gst_stream_encoding_profile_copy", type_id = "GST_TYPE_STREAM_ENCODING_PROFILE", cheader_filename = "gst/profile/gstprofile.h")]
27 public class StreamEncodingProfile {
28 public weak Gst.Caps format;
29 public uint presence;
30 public weak string preset;
31 public weak Gst.Caps restriction;
32 public Gst.EncodingProfileType type;
33 [CCode (has_construct_function = false)]
34 public StreamEncodingProfile (Gst.EncodingProfileType type, Gst.Caps format, string? preset, Gst.Caps? restriction, uint presence);
35 public unowned Gst.StreamEncodingProfile copy ();
36 public unowned Gst.Caps get_output_caps ();
37 }
38 [Compact]
39 [CCode (free_function = "gst_stream_encoding_profile_free", type_id = "GST_TYPE_VIDEO_ENCODING_PROFILE", cheader_filename = "gst/profile/gstprofile.h")]
40 public class VideoEncodingProfile : Gst.StreamEncodingProfile {
41 public uint pass;
42 public weak Gst.StreamEncodingProfile profile;
43 public bool vfr;
44 [CCode (type = "GstStreamEncodingProfile*", has_construct_function = false)]
45 public VideoEncodingProfile (Gst.Caps format, string? preset, Gst.Caps? restriction, uint presence, uint pass);
46 }
47 [CCode (cprefix = "GST_ENCODING_PROFILE_", cheader_filename = "gst/profile/gstprofile.h")]
48 public enum EncodingProfileType {
49 UNKNOWN,
50 VIDEO,
51 AUDIO,
52 TEXT,
53 IMAGE
54 }
55 [CCode (cheader_filename = "gstreamer-profile-0.10.h")]
56 public static unowned GLib.List encoding_category_list_target (string category);
57 [CCode (cheader_filename = "gstreamer-profile-0.10.h")]
58 public static unowned Gst.Element pb_utils_create_encoder (Gst.Caps caps, string? preset, string name);
59 [CCode (cheader_filename = "gstreamer-profile-0.10.h")]
60 public static unowned Gst.Element pb_utils_create_encoder_format (string format, string preset, string name);
61 [CCode (cheader_filename = "gstreamer-profile-0.10.h")]
62 public static unowned Gst.Element pb_utils_create_muxer (Gst.Caps caps, string? preset);
63 [CCode (cheader_filename = "gstreamer-profile-0.10.h")]
64 public static unowned Gst.Element pb_utils_create_muxer_format (string format, string preset, string name);
65 [CCode (cheader_filename = "gstreamer-profile-0.10.h")]
66 public static unowned GLib.List pb_utils_encoders_compatible_with_muxer (Gst.Element muxer);
67 [CCode (cheader_filename = "gstreamer-profile-0.10.h")]
68 public static unowned GLib.List pb_utils_muxers_compatible_with_encoder (Gst.Element encoder);
69 [CCode (cheader_filename = "gstreamer-profile-0.10.h")]
70 public static bool preset_create (Gst.Preset preset, string name, Gst.Structure properties);
71 [CCode (cheader_filename = "gstreamer-profile-0.10.h")]
72 public static void preset_reset (Gst.Preset preset);
73 [CCode (cheader_filename = "gstreamer-profile-0.10.h")]
74 public static unowned GLib.List profile_list_target_categories ();
75 [CCode (cheader_filename = "gstreamer-profile-0.10.h")]
76 public static bool profile_target_save (Gst.EncodingTarget target);
77 }
2222
2323 TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
2424
25 EXTRA_DIST = \
25 SETUP_FILES = \
2626 $(content_files) \
27 $(HTML_IMAGES) \
2827 $(DOC_MAIN_SGML_FILE) \
2928 $(DOC_MODULE)-sections.txt \
3029 $(DOC_MODULE)-overrides.txt
3130
32 DOC_STAMPS=scan-build.stamp sgml-build.stamp html-build.stamp pdf-build.stamp \
33 $(srcdir)/sgml.stamp $(srcdir)/html.stamp \
34 $(srcdir)/pdf.stamp
31 EXTRA_DIST = \
32 $(SETUP_FILES)
33
34 DOC_STAMPS=setup-build.stamp scan-build.stamp sgml-build.stamp \
35 html-build.stamp pdf-build.stamp \
36 setup.stamp sgml.stamp html.stamp pdf.stamp
3537
3638 SCANOBJ_FILES = \
3739 $(DOC_MODULE).args \
6870
6971 $(REPORT_FILES): sgml-build.stamp
7072
73 #### setup ####
74
75 setup-build.stamp:
76 -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
77 echo 'gtk-doc: Preparing build'; \
78 files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
79 if test "x$$files" != "x" ; then \
80 for file in $$files ; do \
81 test -f $(abs_srcdir)/$$file && \
82 cp -p $(abs_srcdir)/$$file $(abs_builddir)/; \
83 done \
84 fi \
85 fi
86 @touch setup-build.stamp
87
88
89 setup.stamp: setup-build.stamp
90 @true
91
92
7193 #### scan ####
7294
7395 scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
7496 @echo 'gtk-doc: Scanning header files'
75 @-chmod -R u+w $(srcdir)
76 @_source_dir='' ; for i in $(DOC_SOURCE_DIR) ; do \
97 @_source_dir='' ; \
98 for i in $(DOC_SOURCE_DIR) ; do \
7799 _source_dir="$${_source_dir} --source-dir=$$i" ; \
78 done ; \
79 cd $(srcdir) && \
80 gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
81 @if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \
82 CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \
100 done ; \
101 gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
102 @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
103 CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) ; \
83104 else \
84 cd $(srcdir) ; \
85105 for i in $(SCANOBJ_FILES) ; do \
86 test -f $$i || touch $$i ; \
106 test -f $$i || touch $$i ; \
87107 done \
88108 fi
89109 @touch scan-build.stamp
93113
94114 #### xml ####
95115
96 sgml-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files)
116 sgml-build.stamp: setup.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files)
97117 @echo 'gtk-doc: Building XML'
98 @-chmod -R u+w $(srcdir)
99 @_source_dir='' ; for i in $(DOC_SOURCE_DIR) ; do \
118 @_source_dir='' ; \
119 for i in $(DOC_SOURCE_DIR) ; do \
100120 _source_dir="$${_source_dir} --source-dir=$$i" ; \
101 done ; \
102 cd $(srcdir) && \
103 gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
121 done ; \
122 gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
104123 @touch sgml-build.stamp
105124
106125 sgml.stamp: sgml-build.stamp
110129
111130 html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
112131 @echo 'gtk-doc: Building HTML'
113 @-chmod -R u+w $(srcdir)
114 @rm -rf $(srcdir)/html
115 @mkdir $(srcdir)/html
132 @rm -rf html
133 @mkdir html
116134 @mkhtml_options=""; \
117135 gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \
118136 if test "$(?)" = "0"; then \
119 mkhtml_options=--path="$(srcdir)"; \
137 mkhtml_options=--path="$(abs_srcdir)"; \
120138 fi; \
121 cd $(srcdir)/html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
122 @test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html )
139 cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
140 -@test "x$(HTML_IMAGES)" = "x" || \
141 for file in $(HTML_IMAGES) ; do \
142 if test -f $(abs_srcdir)/$$file ; then \
143 cp $(abs_srcdir)/$$file $(abs_builddir)/html; \
144 fi; \
145 if test -f $(abs_builddir)/$$file ; then \
146 cp $(abs_builddir)/$$file $(abs_builddir)/html; \
147 fi; \
148 done;
123149 @echo 'gtk-doc: Fixing cross-references'
124 @cd $(srcdir) && gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
150 @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
125151 @touch html-build.stamp
126152
127153 #### pdf ####
128154
129155 pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
130156 @echo 'gtk-doc: Building PDF'
131 @-chmod -R u+w $(srcdir)
132 @rm -rf $(srcdir)/$(DOC_MODULE).pdf
157 @rm -rf $(DOC_MODULE).pdf
133158 @mkpdf_imgdirs=""; \
134159 if test "x$(HTML_IMAGES)" != "x"; then \
135160 for img in $(HTML_IMAGES); do \
140165 fi; \
141166 done; \
142167 fi; \
143 cd $(srcdir) && gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_imgdirs $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
168 gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_imgdirs $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
144169 @touch pdf-build.stamp
145170
146171 ##############
150175 rm -rf .libs
151176
152177 distclean-local:
153 cd $(srcdir) && \
154 rm -rf xml $(REPORT_FILES) $(DOC_MODULE).pdf \
155 $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
178 rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
179 $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
180 if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
181 rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
182 fi
156183
157184 maintainer-clean-local: clean
158 cd $(srcdir) && rm -rf html
185 rm -rf xml html
159186
160187 install-data-local:
161 @installfiles=`echo $(srcdir)/html/*`; \
188 @installfiles=`echo $(builddir)/html/*`; \
162189 if test "$$installfiles" = '$(srcdir)/html/*'; \
163190 then echo '-- Nothing to install' ; \
164191 else \
202229
203230 dist-hook: dist-check-gtkdoc dist-hook-local
204231 mkdir $(distdir)/html
205 cp $(srcdir)/html/* $(distdir)/html
206 -cp $(srcdir)/$(DOC_MODULE).pdf $(distdir)/
207 -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/
208 -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/
232 cp $(builddir)/html/* $(distdir)/html
233 -cp $(builddir)/$(DOC_MODULE).pdf $(distdir)/
234 -cp $(builddir)/$(DOC_MODULE).types $(distdir)/
235 -cp $(builddir)/$(DOC_MODULE)-sections.txt $(distdir)/
209236 cd $(distdir) && rm -f $(DISTCLEANFILES)
210237 $(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html
211238
1111 shareddir = $(datadir)/gupnp-dlna
1212
1313 AM_CFLAGS = -I$(top_srcdir) \
14 -I$(top_srcdir)/gst-convenience/gst-libs \
1514 $(LIBXML_CFLAGS) \
1615 $(GST_CFLAGS) \
17 $(GST_BASE_CFLAGS) \
18 $(GST_VIDEO_CFLAGS) \
16 $(GST_PBU_CFLAGS) \
1917 -DDATA_DIR='"$(shareddir)"' \
2018 -DG_LOG_DOMAIN='"gupnp-dlna"'
2119
3937 gupnp-dlna-information.h \
4038 gupnp-dlna-discoverer.h
4139
42 noinst_HEADERS = gupnp-dlna-load.h
40 noinst_HEADERS = profile-loading.h \
41 gupnp-dlna-profile-private.h
4342
4443 libgupnp_dlna_1_0_la_SOURCES = gupnp-dlna-information.c \
4544 gupnp-dlna-discoverer.c \
4645 gupnp-dlna-profile.c \
4746 gupnp-dlna-profiles.c \
48 gupnp-dlna-load.c \
47 profile-loading.c \
4948 $(BUILT_SOURCES)
5049
5150 libgupnp_dlna_1_0_la_LIBADD = $(LIBXML_LIBS) \
52 $(top_builddir)/gst-convenience/gst-libs/gst/discoverer/.libs/libgstdiscoverer-gupnp-dlna-0.10.la \
53 $(top_builddir)/gst-convenience/gst-libs/gst/profile/.libs/libgstprofile-gupnp-dlna-0.10.la
51 $(GST_PBU_LIBS)
5452
5553 EXTRA_DIST = gupnp-dlna-marshal.list
5654
4141 am__aclocal_m4_deps = $(top_srcdir)/configure.ac
4242 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
4343 $(ACLOCAL_M4)
44 mkinstalldirs = $(install_sh) -d
44 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
4545 CONFIG_HEADER = $(top_builddir)/config.h
4646 CONFIG_CLEAN_FILES =
4747 CONFIG_CLEAN_VPATH_FILES =
7171 LTLIBRARIES = $(lib_LTLIBRARIES)
7272 am__DEPENDENCIES_1 =
7373 libgupnp_dlna_1_0_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
74 $(top_builddir)/gst-convenience/gst-libs/gst/discoverer/.libs/libgstdiscoverer-gupnp-dlna-0.10.la \
75 $(top_builddir)/gst-convenience/gst-libs/gst/profile/.libs/libgstprofile-gupnp-dlna-0.10.la
74 $(am__DEPENDENCIES_1)
7675 am__objects_1 = gupnp-dlna-marshal.lo
7776 am_libgupnp_dlna_1_0_la_OBJECTS = gupnp-dlna-information.lo \
7877 gupnp-dlna-discoverer.lo gupnp-dlna-profile.lo \
79 gupnp-dlna-profiles.lo gupnp-dlna-load.lo $(am__objects_1)
78 gupnp-dlna-profiles.lo profile-loading.lo $(am__objects_1)
8079 libgupnp_dlna_1_0_la_OBJECTS = $(am_libgupnp_dlna_1_0_la_OBJECTS)
8180 AM_V_lt = $(am__v_lt_$(V))
8281 am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
145144 FGREP = @FGREP@
146145 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
147146 GREP = @GREP@
148 GST_BASE_CFLAGS = @GST_BASE_CFLAGS@
149 GST_BASE_LIBS = @GST_BASE_LIBS@
150147 GST_CFLAGS = @GST_CFLAGS@
151148 GST_LIBS = @GST_LIBS@
152149 GST_MAJORMINOR = @GST_MAJORMINOR@
153 GST_VIDEO_CFLAGS = @GST_VIDEO_CFLAGS@
154 GST_VIDEO_LIBS = @GST_VIDEO_LIBS@
150 GST_PBU_CFLAGS = @GST_PBU_CFLAGS@
151 GST_PBU_LIBS = @GST_PBU_LIBS@
155152 GTKDOC_CHECK = @GTKDOC_CHECK@
156153 GTKDOC_MKPDF = @GTKDOC_MKPDF@
157154 GTKDOC_REBASE = @GTKDOC_REBASE@
189186 PACKAGE_VERSION = @PACKAGE_VERSION@
190187 PATH_SEPARATOR = @PATH_SEPARATOR@
191188 PKG_CONFIG = @PKG_CONFIG@
192 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
193 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
194189 RANLIB = @RANLIB@
195190 SED = @SED@
196191 SET_MAKE = @SET_MAKE@
233228 libexecdir = @libexecdir@
234229 localedir = @localedir@
235230 localstatedir = @localstatedir@
231 lt_ECHO = @lt_ECHO@
236232 mandir = @mandir@
237233 mkdir_p = @mkdir_p@
238234 oldincludedir = @oldincludedir@
261257 LTVERSION = 0:0:0
262258 shareddir = $(datadir)/gupnp-dlna
263259 AM_CFLAGS = -I$(top_srcdir) \
264 -I$(top_srcdir)/gst-convenience/gst-libs \
265260 $(LIBXML_CFLAGS) \
266261 $(GST_CFLAGS) \
267 $(GST_BASE_CFLAGS) \
268 $(GST_VIDEO_CFLAGS) \
262 $(GST_PBU_CFLAGS) \
269263 -DDATA_DIR='"$(shareddir)"' \
270264 -DG_LOG_DOMAIN='"gupnp-dlna"'
271265
277271 gupnp-dlna-information.h \
278272 gupnp-dlna-discoverer.h
279273
280 noinst_HEADERS = gupnp-dlna-load.h
274 noinst_HEADERS = profile-loading.h \
275 gupnp-dlna-profile-private.h
276
281277 libgupnp_dlna_1_0_la_SOURCES = gupnp-dlna-information.c \
282278 gupnp-dlna-discoverer.c \
283279 gupnp-dlna-profile.c \
284280 gupnp-dlna-profiles.c \
285 gupnp-dlna-load.c \
281 profile-loading.c \
286282 $(BUILT_SOURCES)
287283
288284 libgupnp_dlna_1_0_la_LIBADD = $(LIBXML_LIBS) \
289 $(top_builddir)/gst-convenience/gst-libs/gst/discoverer/.libs/libgstdiscoverer-gupnp-dlna-0.10.la \
290 $(top_builddir)/gst-convenience/gst-libs/gst/profile/.libs/libgstprofile-gupnp-dlna-0.10.la
285 $(GST_PBU_LIBS)
291286
292287 EXTRA_DIST = gupnp-dlna-marshal.list
293288 CLEANFILES = $(BUILT_SOURCES)
368363
369364 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gupnp-dlna-discoverer.Plo@am__quote@
370365 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gupnp-dlna-information.Plo@am__quote@
371 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gupnp-dlna-load.Plo@am__quote@
372366 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gupnp-dlna-marshal.Plo@am__quote@
373367 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gupnp-dlna-profile.Plo@am__quote@
374368 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gupnp-dlna-profiles.Plo@am__quote@
369 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/profile-loading.Plo@am__quote@
375370
376371 .c.o:
377372 @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
2020
2121 #include "gupnp-dlna-discoverer.h"
2222 #include "gupnp-dlna-marshal.h"
23 #include "gupnp-dlna-load.h"
23 #include "profile-loading.h"
2424
2525 /**
2626 * SECTION:gupnp-dlna-discoverer
5050
5151 G_DEFINE_TYPE (GUPnPDLNADiscoverer, gupnp_dlna_discoverer, GST_TYPE_DISCOVERER)
5252
53 #define GET_PRIVATE(o) \
54 (G_TYPE_INSTANCE_GET_PRIVATE ((o), \
55 GUPNP_TYPE_DLNA_DISCOVERER, \
56 GUPnPDLNADiscovererPrivate))
53 #define GET_PRIVATE(o) \
54 (G_TYPE_INSTANCE_GET_PRIVATE ((o), \
55 GUPNP_TYPE_DLNA_DISCOVERER, \
56 GUPnPDLNADiscovererPrivate))
5757
5858 typedef struct _GUPnPDLNADiscovererPrivate GUPnPDLNADiscovererPrivate;
5959
132132 G_OBJECT_CLASS (gupnp_dlna_discoverer_parent_class)->finalize (object);
133133 }
134134
135 static void gupnp_dlna_discovered_cb (GstDiscoverer *discoverer,
136 GstDiscovererInformation *info,
137 GError *err)
135 static void
136 gupnp_dlna_discovered_cb (GstDiscoverer *discoverer,
137 GstDiscovererInfo *info,
138 GError *err)
138139 {
139140 GUPnPDLNAInformation *dlna = NULL;
140 GUPnPDLNADiscovererClass *klass = GUPNP_DLNA_DISCOVERER_GET_CLASS (discoverer);
141 GUPnPDLNADiscovererPrivate *priv = GET_PRIVATE (GUPNP_DLNA_DISCOVERER (discoverer));
141 GUPnPDLNADiscovererClass *klass =
142 GUPNP_DLNA_DISCOVERER_GET_CLASS (discoverer);
143 GUPnPDLNADiscovererPrivate *priv =
144 GET_PRIVATE (GUPNP_DLNA_DISCOVERER (discoverer));
142145 gboolean relaxed = priv->relaxed_mode;
143146 gboolean extended = priv->extended_mode;
144147
145148 if (info)
146 dlna = gupnp_dlna_information_new_from_discoverer_info (info,
147 klass->profiles_list [relaxed][extended]);
149 dlna = gupnp_dlna_information_new_from_discoverer_info
150 (info,
151 klass->profiles_list
152 [relaxed][extended]);
148153
149154 g_signal_emit (GUPNP_DLNA_DISCOVERER (discoverer),
150155 signals[DONE], 0, dlna, err);
178183 "be strictly compliant with the DLNA "
179184 "specification",
180185 FALSE,
181 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
186 G_PARAM_READWRITE |
187 G_PARAM_CONSTRUCT_ONLY);
182188 g_object_class_install_property (object_class,
183189 PROP_DLNA_RELAXED_MODE,
184190 pspec);
194200 "Indicates support for profiles that are "
195201 "not part of the DLNA specification",
196202 FALSE,
197 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
203 G_PARAM_READWRITE |
204 G_PARAM_CONSTRUCT_ONLY);
198205 g_object_class_install_property (object_class,
199206 PROP_DLNA_EXTENDED_MODE,
200207 pspec);
255262 /**
256263 * gupnp_dlna_discoverer_new:
257264 * @timeout: default discovery timeout, in nanoseconds
265 * @relaxed_mode: set to TRUE, to enable relaxed mode support. FALSE otherwise
266 * @extended_mode: set to TRUE, to enable extended mode support. FALSE otherwise
258267 *
259268 * Creates a new #GUPnPDLNADiscoverer object with the given default timeout
260269 * value.
300309 * Returns: TRUE if @uri was successfully queued, FALSE otherwise.
301310 */
302311 gboolean
303 gupnp_dlna_discoverer_discover_uri (GUPnPDLNADiscoverer *discoverer, gchar *uri)
304 {
305 return gst_discoverer_append_uri (GST_DISCOVERER (discoverer), uri);
312 gupnp_dlna_discoverer_discover_uri (GUPnPDLNADiscoverer *discoverer,
313 const gchar *uri)
314 {
315 return gst_discoverer_discover_uri_async (GST_DISCOVERER (discoverer),
316 uri);
306317 }
307318
308319 /* Synchronous API */
320331 */
321332 GUPnPDLNAInformation *
322333 gupnp_dlna_discoverer_discover_uri_sync (GUPnPDLNADiscoverer *discoverer,
323 gchar *uri,
334 const gchar *uri,
324335 GError **err)
325336 {
326 GstDiscovererInformation *info;
327 GUPnPDLNADiscovererClass *klass = GUPNP_DLNA_DISCOVERER_GET_CLASS (discoverer);
337 GstDiscovererInfo *info;
338 GUPnPDLNADiscovererClass *klass =
339 GUPNP_DLNA_DISCOVERER_GET_CLASS (discoverer);
328340 GUPnPDLNADiscovererPrivate *priv = GET_PRIVATE (discoverer);
329341 gboolean relaxed = priv->relaxed_mode;
330342 gboolean extended = priv->extended_mode;
334346 err);
335347
336348 if (info)
337 return gupnp_dlna_information_new_from_discoverer_info (info,
338 klass->profiles_list [relaxed][extended]);
349 return gupnp_dlna_information_new_from_discoverer_info
350 (info, klass->profiles_list [relaxed][extended]);
339351
340352 return NULL;
341353 }
410422 gupnp_dlna_discoverer_get_relaxed_mode (GUPnPDLNADiscoverer *self)
411423 {
412424 GUPnPDLNADiscovererPrivate *priv = GET_PRIVATE (self);
425
413426 return priv->relaxed_mode;
414427 }
415428
423436 gupnp_dlna_discoverer_get_extended_mode (GUPnPDLNADiscoverer *self)
424437 {
425438 GUPnPDLNADiscovererPrivate *priv = GET_PRIVATE (self);
439
426440 return priv->extended_mode;
427441 }
2222 #define _GUPNP_DLNA_DISCOVERER
2323
2424 #include <glib-object.h>
25 #include <gst/discoverer/gstdiscoverer.h>
25 #include <gst/pbutils/pbutils.h>
2626 #include "gupnp-dlna-information.h"
2727 #include "gupnp-dlna-profile.h"
2828
3030
3131 #define GUPNP_TYPE_DLNA_DISCOVERER gupnp_dlna_discoverer_get_type()
3232
33 #define GUPNP_DLNA_DISCOVERER(obj) \
34 (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
35 GUPNP_TYPE_DLNA_DISCOVERER, \
36 GUPnPDLNADiscoverer))
33 #define GUPNP_DLNA_DISCOVERER(obj) \
34 (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
35 GUPNP_TYPE_DLNA_DISCOVERER, \
36 GUPnPDLNADiscoverer))
3737
38 #define GUPNP_DLNA_DISCOVERER_CLASS(klass) \
39 (G_TYPE_CHECK_CLASS_CAST ((klass), \
40 GUPNP_TYPE_DLNA_DISCOVERER, \
41 GUPnPDLNADiscovererClass))
38 #define GUPNP_DLNA_DISCOVERER_CLASS(klass) \
39 (G_TYPE_CHECK_CLASS_CAST ((klass), \
40 GUPNP_TYPE_DLNA_DISCOVERER, \
41 GUPnPDLNADiscovererClass))
4242
43 #define GUPNP_IS_DLNA_DISCOVERER(obj) \
44 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
45 GUPNP_TYPE_DLNA_DISCOVERER))
43 #define GUPNP_IS_DLNA_DISCOVERER(obj) \
44 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
45 GUPNP_TYPE_DLNA_DISCOVERER))
4646
47 #define GUPNP_IS_DLNA_DISCOVERER_CLASS(klass) \
48 (G_TYPE_CHECK_CLASS_TYPE ((klass), \
49 GUPNP_TYPE_DLNA_DISCOVERER))
47 #define GUPNP_IS_DLNA_DISCOVERER_CLASS(klass) \
48 (G_TYPE_CHECK_CLASS_TYPE ((klass), \
49 GUPNP_TYPE_DLNA_DISCOVERER))
5050
51 #define GUPNP_DLNA_DISCOVERER_GET_CLASS(obj) \
52 (G_TYPE_INSTANCE_GET_CLASS ((obj), \
53 GUPNP_TYPE_DLNA_DISCOVERER, \
54 GUPnPDLNADiscovererClass))
51 #define GUPNP_DLNA_DISCOVERER_GET_CLASS(obj) \
52 (G_TYPE_INSTANCE_GET_CLASS ((obj), \
53 GUPNP_TYPE_DLNA_DISCOVERER, \
54 GUPnPDLNADiscovererClass))
5555
5656 /**
5757 * GUPnPDLNADiscoverer:
8989 gst_discoverer_stop(GST_DISCOVERER((discoverer)))
9090 gboolean
9191 gupnp_dlna_discoverer_discover_uri (GUPnPDLNADiscoverer *discoverer,
92 gchar *uri);
92 const gchar *uri);
9393
9494 /* Synchronous API */
9595 GUPnPDLNAInformation *
9696 gupnp_dlna_discoverer_discover_uri_sync (GUPnPDLNADiscoverer *discoverer,
97 gchar *uri,
97 const gchar *uri,
9898 GError **err);
9999
100100 /* Get a GUPnPDLNAProfile by name */
1919 */
2020
2121 #include "gupnp-dlna-information.h"
22 #include <gst/gstminiobject.h>
2223
2324 /**
2425 * SECTION:gupnp-dlna-information
2526 * @short_description: Object containing metadata information returned by the
26 * #GUPNPDLNADiscoverer API
27 * #GUPnPDLNADiscoverer API
2728 *
2829 * The GUPnPDLNAInformation object holds metadata information discovered by the
2930 * GUPnPDiscoverer API. The DLNA profile name and MIME type have their own
30 * fields, and other metadata is held in a GstDiscovererInformation structure.
31 * fields, and other metadata is held in a GstDiscovererInfo structure.
3132 * All fields are read-only.
3233 */
3334
3435 G_DEFINE_TYPE (GUPnPDLNAInformation, gupnp_dlna_information, G_TYPE_OBJECT)
3536
36 #define GET_PRIVATE(o) \
37 (G_TYPE_INSTANCE_GET_PRIVATE ((o), \
38 GUPNP_TYPE_DLNA_INFORMATION, \
39 GUPnPDLNAInformationPrivate))
37 #define GET_PRIVATE(o) \
38 (G_TYPE_INSTANCE_GET_PRIVATE ((o), \
39 GUPNP_TYPE_DLNA_INFORMATION, \
40 GUPnPDLNAInformationPrivate))
4041
4142 typedef struct _GUPnPDLNAInformationPrivate GUPnPDLNAInformationPrivate;
4243
4344 struct _GUPnPDLNAInformationPrivate {
44 GstDiscovererInformation *info;
45 gchar *name;
46 gchar *mime;
45 GstDiscovererInfo *info;
46 gchar *name;
47 gchar *mime;
4748 };
4849
4950 enum {
6566 switch (property_id) {
6667 case PROP_DLNA_NAME:
6768 g_value_set_string (value, priv->name);
69
6870 break;
6971
7072 case PROP_DLNA_MIME:
7173 g_value_set_string (value, priv->mime);
74
7275 break;
7376
7477 case PROP_DISCOVERER_INFO:
75 g_value_set_boxed (value, priv->info);
78 gst_value_set_mini_object (value,
79 GST_MINI_OBJECT(priv->info));
80
7681 break;
7782
7883 default:
7984 G_OBJECT_WARN_INVALID_PROPERTY_ID (object,
8085 property_id,
8186 pspec);
87
8288 break;
8389 }
8490 }
96102 case PROP_DLNA_NAME:
97103 g_free (priv->name);
98104 priv->name = g_value_dup_string (value);
105
99106 break;
100107
101108 case PROP_DLNA_MIME:
102109 g_free (priv->mime);
103110 priv->mime = g_value_dup_string (value);
111
104112 break;
105113
106114 case PROP_DISCOVERER_INFO:
107115 if (priv->info)
108 gst_discoverer_information_free (priv->info);
109 priv->info = g_value_dup_boxed (value);
116 gst_discoverer_info_unref (priv->info);
117 priv->info = GST_DISCOVERER_INFO
118 (gst_value_dup_mini_object (value));
119
110120 break;
111121
112122 default:
113123 G_OBJECT_WARN_INVALID_PROPERTY_ID (object,
114124 property_id,
115125 pspec);
116 break;
117 }
126
127 break;
128 }
118129 }
119130
120131
127138 g_free (priv->name);
128139 g_free (priv->mime);
129140 if (priv->info)
130 gst_discoverer_information_free (priv->info);
141 gst_discoverer_info_unref (priv->info);
131142
132143 G_OBJECT_CLASS (gupnp_dlna_information_parent_class)->finalize (object);
133144 }
149160 "The name of the DLNA profile "
150161 "corresponding to the strream",
151162 NULL,
152 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
163 G_PARAM_READWRITE |
164 G_PARAM_CONSTRUCT_ONLY);
153165 g_object_class_install_property (object_class, PROP_DLNA_NAME, pspec);
154166
155167 pspec = g_param_spec_string ("mime",
157169 "to the stream",
158170 "The DLNA MIME type of the stream",
159171 NULL,
160 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
172 G_PARAM_READWRITE |
173 G_PARAM_CONSTRUCT_ONLY);
161174 g_object_class_install_property (object_class, PROP_DLNA_MIME, pspec);
162175
163 pspec = g_param_spec_boxed ("info",
164 "Stream metadata",
165 "Metadata of the stream in a "
166 "GstDiscovererInformation structure",
167 GST_TYPE_DISCOVERER_INFORMATION,
168 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
176 pspec = gst_param_spec_mini_object ("info",
177 "Stream metadata",
178 "Metadata of the stream in a "
179 "GstDiscovererInfo structure",
180 GST_TYPE_DISCOVERER_INFO,
181 G_PARAM_READWRITE |
182 G_PARAM_CONSTRUCT_ONLY);
169183 g_object_class_install_property (object_class,
170184 PROP_DISCOVERER_INFO,
171185 pspec);
185199 * gupnp_dlna_information_new:
186200 * @name: DLNA media profile name corresponding to the media
187201 * @mime: DLNA MIME type for the media
188 * @info: #GstDiscovererInformation type with additional metadata about the
202 * @info: #GstDiscovererInfo type with additional metadata about the
189203 * stream
190204 *
191205 * Creates a new #GUPnPDLNAInformation object with the given properties.
193207 * Returns: A newly created #GUPnPDLNAInformation object.
194208 */
195209 GUPnPDLNAInformation*
196 gupnp_dlna_information_new (gchar *name,
197 gchar *mime,
198 GstDiscovererInformation *info)
210 gupnp_dlna_information_new (gchar *name,
211 gchar *mime,
212 GstDiscovererInfo *info)
199213 {
200214 return g_object_new (GUPNP_TYPE_DLNA_INFORMATION,
201215 "name", name,
215229 gupnp_dlna_information_get_name (GUPnPDLNAInformation *self)
216230 {
217231 GUPnPDLNAInformationPrivate *priv = GET_PRIVATE (self);
232
218233 return priv->name;
219234 }
220235
229244 gupnp_dlna_information_get_mime (GUPnPDLNAInformation *self)
230245 {
231246 GUPnPDLNAInformationPrivate *priv = GET_PRIVATE (self);
247
232248 return priv->mime;
233249 }
234250
235 /**
251 /**finalize
236252 * gupnp_dlna_information_get_info:
237253 * @self: The #GUPnPDLNAInformation object
238254 *
239255 * Returns: additional stream metadata for @self in the form of a
240 * #GstDiscovererInformation structure. Do not free this structure.
241 */
242 const GstDiscovererInformation *
256 * #GstDiscovererInfo structure. Do not free this structure.
257 */
258 const GstDiscovererInfo *
243259 gupnp_dlna_information_get_info (GUPnPDLNAInformation *self)
244260 {
245261 GUPnPDLNAInformationPrivate *priv = GET_PRIVATE (self);
262
246263 return priv->info;
247264 }
2121 #ifndef __GUPNP_DLNA_INFORMATION_H__
2222 #define __GUPNP_DLNA_INFORMATION_H__
2323
24 #include <gst/discoverer/gstdiscoverer.h>
24 #include <gst/pbutils/pbutils.h>
2525 #include <glib-object.h>
2626
2727 G_BEGIN_DECLS
2828
2929 #define GUPNP_TYPE_DLNA_INFORMATION gupnp_dlna_information_get_type()
3030
31 #define GUPNP_DLNA_INFORMATION(obj) \
32 (G_TYPE_CHECK_INSTANCE_CAST ((obj), GUPNP_TYPE_DLNA_INFORMATION, GUPnPDLNAInformation))
31 #define GUPNP_DLNA_INFORMATION(obj) \
32 (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
33 GUPNP_TYPE_DLNA_INFORMATION, \
34 GUPnPDLNAInformation))
3335
34 #define GUPNP_DLNA_INFORMATION_CLASS(klass) \
35 (G_TYPE_CHECK_CLASS_CAST ((klass), GUPNP_TYPE_DLNA_INFORMATION, GUPnPDLNAInformationClass))
36 #define GUPNP_DLNA_INFORMATION_CLASS(klass) \
37 (G_TYPE_CHECK_CLASS_CAST ((klass), \
38 GUPNP_TYPE_DLNA_INFORMATION, \
39 GUPnPDLNAInformationClass))
3640
37 #define GUPNP_IS_DLNA_INFORMATION(obj) \
38 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GUPNP_TYPE_DLNA_INFORMATION))
41 #define GUPNP_IS_DLNA_INFORMATION(obj) \
42 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GUPNP_TYPE_DLNA_INFORMATION))
3943
40 #define GUPNP_IS_DLNA_INFORMATION_CLASS(klass) \
41 (G_TYPE_CHECK_CLASS_TYPE ((klass), GUPNP_TYPE_DLNA_INFORMATION))
44 #define GUPNP_IS_DLNA_INFORMATION_CLASS(klass) \
45 (G_TYPE_CHECK_CLASS_TYPE ((klass), GUPNP_TYPE_DLNA_INFORMATION))
4246
43 #define GUPNP_DLNA_INFORMATION_GET_CLASS(obj) \
44 (G_TYPE_INSTANCE_GET_CLASS ((obj), GUPNP_TYPE_DLNA_INFORMATION, GUPnPDLNAInformationClass))
47 #define GUPNP_DLNA_INFORMATION_GET_CLASS(obj) \
48 (G_TYPE_INSTANCE_GET_CLASS ((obj), \
49 GUPNP_TYPE_DLNA_INFORMATION, \
50 GUPnPDLNAInformationClass))
4551
4652 typedef struct {
4753 GObject parent;
5460 GType gupnp_dlna_information_get_type (void);
5561
5662 GUPnPDLNAInformation*
57 gupnp_dlna_information_new (gchar *name,
58 gchar *mime,
59 GstDiscovererInformation *info);
63 gupnp_dlna_information_new (gchar *name,
64 gchar *mime,
65 GstDiscovererInfo *info);
6066
6167 const gchar * gupnp_dlna_information_get_name (GUPnPDLNAInformation *self);
6268 const gchar * gupnp_dlna_information_get_mime (GUPnPDLNAInformation *self);
63 const GstDiscovererInformation *
69 const GstDiscovererInfo *
6470 gupnp_dlna_information_get_info (GUPnPDLNAInformation *self);
6571
6672 G_GNUC_INTERNAL GUPnPDLNAInformation *
67 gupnp_dlna_information_new_from_discoverer_info (GstDiscovererInformation *info,
68 GList *profiles);
73 gupnp_dlna_information_new_from_discoverer_info (GstDiscovererInfo *info,
74 GList *profiles);
6975
7076
7177 G_END_DECLS
+0
-954
libgupnp-dlna/gupnp-dlna-load.c less more
0 /*
1 * Copyright (C) 2010 Nokia Corporation.
2 *
3 * Authors: Arun Raghavan <arun.raghavan@collabora.co.uk>
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This library 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 GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the
17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 * Boston, MA 02111-1307, USA.
19 */
20
21 #include <glib.h>
22 #include <glib/gstdio.h>
23 #include <glib-object.h>
24 #include <libxml/xmlreader.h>
25 #include <libxml/relaxng.h>
26 #include <gst/profile/gstprofile.h>
27 #include "gupnp-dlna-load.h"
28 #include "gupnp-dlna-profile.h"
29
30 #define GST_CAPS_NULL_NAME "NULL"
31 #define DLNA_DATA_DIR DATA_DIR \
32 G_DIR_SEPARATOR_S "dlna-profiles" G_DIR_SEPARATOR_S
33
34 static gboolean
35 copy_func (GQuark field_id, const GValue *value, gpointer data)
36 {
37 GstStructure *st2 = (GstStructure *)data;
38
39 if (!gst_structure_has_field (st2, g_quark_to_string (field_id)))
40 gst_structure_id_set_value (st2, field_id, value);
41
42 return TRUE;
43 }
44
45 /* Note: It is assumed that caps1 and caps2 have only 1 structure each */
46 static GstCaps *
47 merge_caps (GstCaps *caps1, GstCaps *caps2)
48 {
49 GstStructure *st1, *st2;
50 GstCaps *ret;
51 gboolean any = FALSE;
52
53 /* If one of the caps GST_CAPS_ANY, gst_caps_merge will result in a
54 * GST_CAPS_ANY, which might not be correct for us */
55 if (!gst_caps_is_any (caps1) && !gst_caps_is_any (caps2)) {
56 any = TRUE;
57 gst_caps_merge (caps1, gst_caps_copy (caps2));
58 gst_caps_do_simplify (caps1);
59 }
60
61 ret = gst_caps_make_writable (caps1);
62 st1 = gst_caps_get_structure (ret, 0);
63 if (gst_caps_get_size (caps1) == 2)
64 /* Non-merged fields were copied to a second structure in caps1 at
65 * gst_merge_caps() time */
66 st2 = gst_caps_get_structure (ret, 1);
67 else
68 /* Either one of the caps was GST_CAPS_ANY, or there were no
69 * unmerged fields */
70 st2 = gst_caps_get_structure (caps2, 0);
71
72 /* If caps1 has a name, we retain it. If not, and caps2 does, caps1
73 * gets caps2's name. */
74 if ((g_strcmp0 (GST_CAPS_NULL_NAME,
75 gst_structure_get_name (st1)) == 0) &&
76 (g_strcmp0 (GST_CAPS_NULL_NAME,
77 gst_structure_get_name (st2)) != 0)) {
78 gst_structure_set_name (st1, gst_structure_get_name (st2));
79 }
80
81 /* We now walk over the structures and append any fields that are in
82 * caps2 but not in caps1. */
83 if (any || gst_caps_get_size (caps1) == 2)
84 gst_structure_foreach (st2, copy_func, st1);
85
86 if (gst_caps_get_size (caps1) == 2)
87 gst_caps_remove_structure (ret, 1);
88
89 return ret;
90 }
91
92 static xmlChar *
93 get_value (xmlTextReaderPtr reader)
94 {
95 xmlChar *value = NULL, *curr;
96 int ret = 1;
97
98 curr = xmlTextReaderName (reader);
99
100 /* This function may be called with reader pointing to a <field> or
101 * the element just below a <field>. In the former case, we move the
102 * cursor forward and then continue processing. */
103 if (xmlStrEqual (curr, BAD_CAST ("field")))
104 ret = xmlTextReaderRead (reader);
105 xmlFree (curr);
106
107 while (ret == 1) {
108 xmlChar *tag;
109
110 tag = xmlTextReaderName (reader);
111
112 if (xmlTextReaderNodeType (reader) == 1 &&
113 xmlStrEqual (tag, BAD_CAST ("value"))) {
114 /* <value> */
115
116 /* Note: This assumes you won't have a comment in the
117 * middle of your text */
118 do {
119 ret = xmlTextReaderRead (reader);
120 } while (ret == 1 &&
121 xmlTextReaderNodeType (reader) != 3 &&
122 xmlTextReaderNodeType (reader) != 15);
123
124 /* We're now at the real text between a <value> and a
125 * </value> */
126
127 if (xmlTextReaderNodeType (reader) == 3)
128 value = xmlTextReaderValue (reader);
129 }
130
131 if (xmlTextReaderNodeType (reader) == 15 &&
132 xmlStrEqual (tag, BAD_CAST ("value"))) {
133 /* </value> */
134 xmlFree (tag);
135 break;
136 }
137
138 xmlFree (tag);
139 ret = xmlTextReaderRead (reader);
140 }
141
142 if (!value)
143 g_warning ("Empty <value>s are illegal");
144 return value;
145 }
146
147 static void
148 xml_str_free (xmlChar *str, gpointer unused)
149 {
150 xmlFree (str);
151 }
152
153 static void
154 dlna_encoding_profile_add_stream (GstEncodingProfile *profile,
155 GstStreamEncodingProfile *stream_profile)
156 {
157 GList *i;
158
159 /* Try to merge with an existing stream profile of the same type */
160 for (i = profile->encodingprofiles; i; i = i->next) {
161 GstStreamEncodingProfile *cur =
162 (GstStreamEncodingProfile *) i->data;
163
164 if (cur->type != stream_profile->type)
165 continue;
166
167 /* Since we maintain only one stream profile for each type,
168 * this will get executed exactly once */
169 gst_caps_merge (cur->format,
170 gst_caps_copy (stream_profile->format));
171
172 gst_stream_encoding_profile_free (stream_profile);
173 goto done;
174 }
175
176 /* If we get here, there's no existing stream of this type */
177 gst_encoding_profile_add_stream (profile, stream_profile);
178
179 done:
180 return;
181 }
182
183 static void process_range (xmlTextReaderPtr reader, GString *caps_str)
184 {
185 xmlChar *min, *max;
186
187 min = xmlTextReaderGetAttribute (reader, BAD_CAST ("min"));
188 max = xmlTextReaderGetAttribute (reader, BAD_CAST ("max"));
189
190 g_string_append_printf (caps_str, "[ %s, %s ]", min, max);
191
192 xmlFree (min);
193 xmlFree (max);
194 }
195
196 static int
197 process_field (xmlTextReaderPtr reader,
198 GString *caps_str,
199 gboolean relaxed_mode,
200 gboolean extended_mode)
201 {
202 int ret;
203 xmlChar *name;
204 xmlChar *type;
205 xmlChar *used;
206 GList *values = NULL;
207 gboolean done = FALSE, skip = FALSE;
208
209 /*
210 * Parse the 'used' attribute and figure out the mode we
211 * need to follow.
212 */
213 used = xmlTextReaderGetAttribute (reader, BAD_CAST ("used"));
214 if (used) {
215 if ((relaxed_mode == FALSE) &&
216 xmlStrEqual (used, BAD_CAST ("in-relaxed"))) {
217 xmlFree (used);
218 skip = TRUE;
219 } else if ((relaxed_mode == TRUE) &&
220 (xmlStrEqual (used, BAD_CAST ("in-strict")))) {
221 xmlFree (used);
222 skip = TRUE;
223 }
224 }
225
226 name = xmlTextReaderGetAttribute (reader, BAD_CAST ("name"));
227 type = xmlTextReaderGetAttribute (reader, BAD_CAST ("type"));
228
229 /*
230 * This function reads a <field> and appends it to caps_str in the
231 * GstCaps-as-a-string format:
232 *
233 * Single value: field = (type) value
234 * Multiple values: field = (type) { value1, value2, value3 }
235 * Range: field = (type) [ min, max ]
236 */
237
238 /* Fields are comma-separeted. The leading comma is okay for the first
239 * field - we will be prepending the restriction name to this string */
240 if (!skip)
241 g_string_append_printf (caps_str, ", %s = (%s) ", name, type);
242 xmlFree (name);
243 xmlFree (type);
244
245 ret = xmlTextReaderRead (reader);
246 while (ret == 1 && !done) {
247 xmlChar *tag;
248
249 tag = xmlTextReaderName (reader);
250
251 switch (xmlTextReaderNodeType (reader)) {
252 case 1:
253 if (skip)
254 break;
255
256 if (xmlStrEqual (tag, BAD_CAST ("range"))) {
257 /* <range> */
258 process_range (reader, caps_str);
259 } else if (xmlStrEqual (tag, BAD_CAST ("value"))) {
260 /* <value> */
261 xmlChar *value;
262
263 value = get_value (reader);
264
265 if (value)
266 values = g_list_append (values, value);
267 }
268
269 break;
270
271 case 15:
272 if (xmlStrEqual (tag, BAD_CAST ("field")))
273 /* </field> */
274 done = TRUE;
275
276 break;
277
278 default:
279 break;
280 }
281
282 xmlFree (tag);
283 ret = xmlTextReaderRead (reader);
284 }
285
286 if (skip)
287 return ret;
288
289 if (g_list_length (values) == 1)
290 /* Single value */
291 g_string_append_printf (caps_str, "%s",
292 (xmlChar *) values->data);
293 else if (g_list_length (values) > 1) {
294 /* Multiple values */
295 GList *tmp = values->next;
296 g_string_append_printf (caps_str, "{ %s",
297 (xmlChar *) values->data);
298
299 do {
300 g_string_append_printf (caps_str, ", %s",
301 (xmlChar *) tmp->data);
302 } while ((tmp = tmp->next) != NULL);
303
304 g_string_append_printf (caps_str, " }");
305 }
306
307 if (values) {
308 g_list_foreach (values, (GFunc) xml_str_free, NULL);
309 g_list_free (values);
310 }
311
312 return ret;
313 }
314
315 static GstStreamEncodingProfile *
316 process_parent (xmlTextReaderPtr reader,
317 GHashTable *restrictions,
318 gboolean relaxed_mode,
319 gboolean extended_mode)
320 {
321 xmlChar *parent;
322 xmlChar *used;
323 GstStreamEncodingProfile *profile;
324
325 /*
326 * Check to see if we need to follow any relaxed/strict mode
327 * restrictions.
328 */
329 used = xmlTextReaderGetAttribute (reader, BAD_CAST ("used"));
330 if (used) {
331 if ((relaxed_mode == FALSE) &&
332 xmlStrEqual (used, BAD_CAST ("in-relaxed"))) {
333 xmlFree (used);
334 return NULL;
335 } else if ((relaxed_mode == TRUE) &&
336 (xmlStrEqual (used, BAD_CAST ("in-strict")))) {
337 xmlFree (used);
338 return NULL;
339 }
340 }
341
342 parent = xmlTextReaderGetAttribute (reader, BAD_CAST ("name"));
343 profile = g_hash_table_lookup (restrictions, parent);
344
345 if (!profile) {
346 g_warning ("Could not find parent restriction: %s", parent);
347 return NULL;
348 }
349
350 xmlFree (parent);
351 xmlFree (used);
352 return gst_stream_encoding_profile_copy (profile);
353 }
354
355 static GstStreamEncodingProfile *
356 process_restriction (xmlTextReaderPtr reader,
357 GHashTable *restrictions,
358 gboolean relaxed_mode,
359 gboolean extended_mode)
360 {
361 GstStreamEncodingProfile *stream_profile = NULL;
362 GstEncodingProfileType type;
363 GstCaps *caps = NULL;
364 GString *caps_str = g_string_sized_new (100);
365 GList *parents = NULL, *tmp;
366 xmlChar *id, *name = NULL, *restr_type, *used;
367 int ret;
368 gboolean done = FALSE, skip = FALSE;
369
370 /*
371 * First we parse the 'used' attribute and figure out
372 * the mode we need to comply to.
373 */
374 used = xmlTextReaderGetAttribute (reader, BAD_CAST ("used"));
375 if (used) {
376 if ((relaxed_mode == FALSE) &&
377 xmlStrEqual (used, BAD_CAST ("in-relaxed"))) {
378 skip = TRUE;
379 } else if ((relaxed_mode == TRUE) &&
380 (xmlStrEqual (used, BAD_CAST ("in-strict")))) {
381 skip = TRUE;
382 }
383 }
384
385 /* We then walk through the fields in this restriction, and make a
386 * string that can be parsed by gst_caps_from_string (). We then make
387 * a GstCaps from this string, and use the other metadata to make a
388 * GstStreamEncodingProfile */
389
390 id = xmlTextReaderGetAttribute (reader, BAD_CAST ("id"));
391 restr_type = xmlTextReaderGetAttribute (reader, BAD_CAST ("type"));
392
393 ret = xmlTextReaderRead (reader);
394 while (ret == 1 && !done) {
395 xmlChar *tag;
396
397 tag = xmlTextReaderName (reader);
398
399 switch (xmlTextReaderNodeType (reader)) {
400 case 1:
401 if (skip)
402 break;
403
404 if (xmlStrEqual (tag, BAD_CAST ("field"))) {
405 /* <field> */
406 xmlChar *field;
407
408 field = xmlTextReaderGetAttribute (reader,
409 BAD_CAST ("name"));
410
411 /* We handle the "name" field specially - if
412 * present, it is the caps name */
413 if (xmlStrEqual (field, BAD_CAST ("name")))
414 name = get_value (reader);
415 else
416 process_field (reader,
417 caps_str,
418 relaxed_mode,
419 extended_mode);
420
421 xmlFree (field);
422 } else if (xmlStrEqual (tag, BAD_CAST ("parent"))) {
423 /* <parent> */
424 GstStreamEncodingProfile *profile =
425 process_parent (reader,
426 restrictions,
427 relaxed_mode,
428 extended_mode);
429
430 if (profile)
431 /* Collect parents in a list - we'll
432 * coalesce them later */
433 parents = g_list_append (parents,
434 profile);
435 }
436
437 break;
438
439 case 15:
440 if (xmlStrEqual (tag, BAD_CAST ("restriction")))
441 /* </restriction> */
442 done = TRUE;
443
444 break;
445
446 default:
447 break;
448 }
449
450 xmlFree (tag);
451 ret = xmlTextReaderRead (reader);
452 }
453
454 if (skip)
455 goto out;
456
457 /* If the restriction doesn't have a name, we make it up */
458 if (!name)
459 name = BAD_CAST (g_strdup (GST_CAPS_NULL_NAME));
460 g_string_prepend (caps_str, (gchar *) name);
461 xmlFree (name);
462
463 if (xmlStrEqual (restr_type, BAD_CAST ("container")))
464 type = GST_ENCODING_PROFILE_UNKNOWN;
465 else if (xmlStrEqual (restr_type, BAD_CAST ("audio")))
466 type = GST_ENCODING_PROFILE_AUDIO;
467 else if (xmlStrEqual (restr_type, BAD_CAST ("video")))
468 type = GST_ENCODING_PROFILE_VIDEO;
469 else if (xmlStrEqual (restr_type, BAD_CAST ("image")))
470 type = GST_ENCODING_PROFILE_IMAGE;
471 else {
472 g_warning ("Support for '%s' restrictions not yet implemented",
473 restr_type);
474 goto out;
475 }
476
477 caps = gst_caps_from_string (caps_str->str);
478 g_string_free (caps_str, TRUE);
479 g_return_val_if_fail (caps != NULL, NULL);
480
481 tmp = parents;
482 while (tmp) {
483 /* Merge all the parent caps. The child overrides parent
484 * attributes */
485 GstStreamEncodingProfile *profile = tmp->data;
486 caps = merge_caps (caps, profile->format);
487 gst_stream_encoding_profile_free (profile);
488 tmp = tmp->next;
489 }
490
491 stream_profile = gst_stream_encoding_profile_new (type,
492 caps,
493 NULL,
494 GST_CAPS_ANY,
495 0);
496
497 if (id) {
498 /* Make a copy so we can free it at the end of processing
499 * without worrying about it being reffed by an encoding
500 * profile */
501 GstStreamEncodingProfile *tmp =
502 gst_stream_encoding_profile_copy (stream_profile);
503 g_hash_table_insert (restrictions, id, tmp);
504 }
505
506 out:
507 xmlFree (restr_type);
508 if (used)
509 xmlFree (used);
510 if (caps)
511 gst_caps_unref (caps);
512 if (parents)
513 g_list_free (parents);
514 return stream_profile;
515 }
516
517 static void
518 process_restrictions (xmlTextReaderPtr reader,
519 GHashTable *restrictions,
520 gboolean relaxed_mode,
521 gboolean extended_mode)
522 {
523 /* While we use a GstStreamEncodingProfile to store restrictions here,
524 * this is not how they are finally used. This is just a convenient
525 * container for the format caps and stream type. Once the restriction
526 * is used in a profile, all the restrictions of the same type
527 * (audio/video) are merged into a single GstStreamEncodingProfile,
528 * which is added to the GstEncodingProfile for the DLNA profile.
529 */
530
531 int ret = xmlTextReaderRead (reader);
532
533 while (ret == 1) {
534 xmlChar *tag;
535
536 tag = xmlTextReaderName (reader);
537
538 switch (xmlTextReaderNodeType (reader)) {
539 case 1:
540 if (xmlStrEqual (tag, BAD_CAST ("restriction"))) {
541 /* <restriction> */
542 GstStreamEncodingProfile *stream =
543 process_restriction (reader,
544 restrictions,
545 relaxed_mode,
546 extended_mode);
547 gst_stream_encoding_profile_free (stream);
548 }
549
550 break;
551
552 case 15:
553 if (xmlStrEqual (tag, BAD_CAST ("restrictions"))) {
554 /* </restrictions> */
555 xmlFree (tag);
556 return;
557 }
558
559 default:
560 break;
561 }
562
563 xmlFree (tag);
564 ret = xmlTextReaderRead (reader);
565 }
566 }
567
568 static int
569 process_dlna_profile (xmlTextReaderPtr reader,
570 GList **profiles,
571 GUPnPDLNALoadState *data)
572 {
573 int ret;
574 GUPnPDLNAProfile *profile;
575 GstStreamEncodingProfile *stream_profile;
576 GstEncodingProfile *enc_profile, *base = NULL;
577 GstCaps *format = NULL;
578 GList *stream_profiles = NULL, *streams;
579 xmlChar *name, *mime, *id, *base_profile, *extended;
580 gboolean done = FALSE, is_extended = FALSE;;
581
582 name = xmlTextReaderGetAttribute (reader, BAD_CAST ("name"));
583 mime = xmlTextReaderGetAttribute (reader, BAD_CAST ("mime"));
584 extended = xmlTextReaderGetAttribute (reader, BAD_CAST ("extended"));
585 id = xmlTextReaderGetAttribute (reader, BAD_CAST ("id"));
586 base_profile = xmlTextReaderGetAttribute (reader,
587 BAD_CAST ("base-profile"));
588
589 if (!name) {
590 g_assert (mime == NULL);
591
592 /* We need a non-NULL string to not trigger asserts in the
593 * places these are used. Profiles without names are used
594 * only for inheritance, not for actual matching. */
595 name = xmlStrdup (BAD_CAST (""));
596 mime = xmlStrdup (BAD_CAST (""));
597 }
598
599 if (extended && xmlStrEqual (extended, BAD_CAST ("true"))) {
600 /* If we're not in extended mode, skip this profile */
601 if (!data->extended_mode)
602 goto out;
603
604 is_extended = TRUE;
605 }
606
607 ret = xmlTextReaderRead (reader);
608 while (ret == 1 && !done) {
609 xmlChar *tag;
610
611 tag = xmlTextReaderName (reader);
612
613 switch (xmlTextReaderNodeType (reader)) {
614 case 1:
615 if (xmlStrEqual (tag, BAD_CAST ("restriction"))) {
616 stream_profile =
617 process_restriction (reader,
618 data->restrictions,
619 data->relaxed_mode,
620 data->extended_mode);
621 } else if (xmlStrEqual (tag, BAD_CAST ("parent"))) {
622 stream_profile =
623 process_parent (reader,
624 data->restrictions,
625 data->relaxed_mode,
626 data->extended_mode);
627 }
628
629 if (!stream_profile)
630 break;
631
632 if (stream_profile->type ==
633 GST_ENCODING_PROFILE_UNKNOWN) {
634 format = gst_caps_copy (
635 stream_profile->format);
636 gst_stream_encoding_profile_free (stream_profile);
637 } else {
638 stream_profiles =
639 g_list_append (stream_profiles,
640 stream_profile);
641 }
642
643 break;
644
645 case 15:
646 if (xmlStrEqual (tag, BAD_CAST ("dlna-profile")))
647 done = TRUE;
648
649 default:
650 break;
651 }
652
653 xmlFree (tag);
654 ret = xmlTextReaderRead (reader);
655 }
656
657 if (base_profile) {
658 base = g_hash_table_lookup (data->profile_ids, base_profile);
659 if (!base)
660 g_warning ("Invalid base-profile reference");
661 }
662
663 if (!base) {
664 /* Create a new GstEncodingProfile */
665 if (!format)
666 format = GST_CAPS_NONE;
667 enc_profile = gst_encoding_profile_new ((gchar *) name,
668 format,
669 NULL,
670 0);
671 } else {
672 /* We're inherting from a parent profile */
673 enc_profile = gst_encoding_profile_copy (base);
674
675 g_free (enc_profile->name);
676 enc_profile->name = g_strdup ((gchar *) name);
677
678 if (format) {
679 gst_caps_unref (enc_profile->format);
680 enc_profile->format = gst_caps_copy (format);
681 }
682 }
683
684 for (streams = stream_profiles; streams; streams = streams->next) {
685 GstStreamEncodingProfile *stream_profile =
686 (GstStreamEncodingProfile *)
687 streams->data;
688 /* The stream profile *must* not be referenced after this */
689 dlna_encoding_profile_add_stream (enc_profile, stream_profile);
690 }
691
692 profile = gupnp_dlna_profile_new ((gchar *) name,
693 (gchar *) mime,
694 enc_profile,
695 is_extended);
696 *profiles = g_list_append (*profiles, profile);
697
698 if (id)
699 /* id is freed when the hash table is destroyed */
700 g_hash_table_insert (data->profile_ids, id, enc_profile);
701 else
702 /* we've got a copy in profile, so we're done with this */
703 gst_encoding_profile_free (enc_profile);
704
705 out:
706 g_list_free (stream_profiles);
707 if (format)
708 gst_caps_unref (format);
709 xmlFree (mime);
710 xmlFree (name);
711 if (extended)
712 xmlFree (extended);
713 if (base_profile)
714 xmlFree (base_profile);
715
716 return ret;
717 }
718
719 static GList *
720 process_include (xmlTextReaderPtr reader,
721 GUPnPDLNALoadState *data)
722 {
723 xmlChar *path;
724 GList *ret;
725
726 path = xmlTextReaderGetAttribute (reader, BAD_CAST ("ref"));
727
728 if (!g_path_is_absolute ((gchar *) path)) {
729 gchar *tmp = g_strconcat (DLNA_DATA_DIR,
730 G_DIR_SEPARATOR_S,
731 path,
732 NULL);
733 xmlFree (path);
734 path = BAD_CAST (tmp);
735 }
736
737 ret = gupnp_dlna_load_profiles_from_file ((gchar *) path,
738 data);
739 xmlFree (path);
740
741 return ret;
742 }
743
744 /* This can go away once we have a glib function to canonicalize paths (see
745 * https://bugzilla.gnome.org/show_bug.cgi?id=111848
746 *
747 * The implementationis not generic enough, but sufficient for our use. The
748 * idea is taken from Tristan Van Berkom's comment in the bug mentioned above:
749 *
750 * 1. cd dirname(path)
751 * 2. absdir = $CWD
752 * 3. cd $OLDPWD
753 * 4. abspath = absdir + basename(path)
754 */
755 static gchar *
756 canonicalize_path_name (const char *path)
757 {
758 gchar *dir_name = NULL, *file_name = NULL, *abs_dir = NULL,
759 *old_dir = NULL, *ret = NULL;
760
761 if (g_path_is_absolute (path))
762 return g_strdup (path);
763
764 old_dir = g_get_current_dir ();
765 dir_name = g_path_get_dirname (path);
766
767 if (g_chdir (dir_name) < 0) {
768 ret = g_strdup (path);
769 goto out;
770 }
771
772 abs_dir = g_get_current_dir ();
773 g_chdir (old_dir);
774
775 file_name = g_path_get_basename (path);
776 ret = g_build_filename (abs_dir, file_name, NULL);
777
778 out:
779 g_free (dir_name);
780 g_free (file_name);
781 g_free (abs_dir);
782 g_free (old_dir);
783
784 return ret;
785 }
786
787 GList *
788 gupnp_dlna_load_profiles_from_file (const char *file_name,
789 GUPnPDLNALoadState *data)
790 {
791 GList *profiles = NULL;
792 gchar *path = NULL;
793 xmlTextReaderPtr reader;
794 xmlRelaxNGParserCtxtPtr rngp;
795 xmlRelaxNGPtr rngs;
796 int ret;
797
798 path = canonicalize_path_name (file_name);
799 if (g_hash_table_lookup_extended (data->files_hash, path, NULL, NULL))
800 goto out;
801 else
802 g_hash_table_insert (data->files_hash, g_strdup (path), NULL);
803
804 reader = xmlNewTextReaderFilename (path);
805 if (!reader)
806 goto out;
807
808 /* Load the schema for validation */
809 rngp = xmlRelaxNGNewParserCtxt (DLNA_DATA_DIR "dlna-profiles.rng");
810 rngs = xmlRelaxNGParse (rngp);
811 xmlTextReaderRelaxNGSetSchema (reader, rngs);
812
813 ret = xmlTextReaderRead (reader);
814 while (ret == 1) {
815 xmlChar *tag;
816
817 tag = xmlTextReaderName (reader);
818
819 switch (xmlTextReaderNodeType (reader)) {
820 /* Start tag */
821 case 1:
822 if (xmlStrEqual (tag, BAD_CAST ("include"))) {
823 /* <include> */
824 GList *include =
825 process_include (reader,
826 data);
827 profiles = g_list_concat (profiles,
828 include);
829 } else if (xmlStrEqual (tag,
830 BAD_CAST ("restrictions"))) {
831 /* <restrictions> */
832 process_restrictions (reader,
833 data->restrictions,
834 data->relaxed_mode,
835 data->extended_mode);
836 } else if (xmlStrEqual (tag,
837 BAD_CAST ("dlna-profile"))) {
838 /* <dlna-profile> */
839 process_dlna_profile (reader,
840 &profiles,
841 data);
842
843 }
844
845 break;
846
847 default:
848 break;
849 }
850
851 xmlFree (tag);
852 ret = xmlTextReaderRead (reader);
853 }
854
855 xmlFreeTextReader (reader);
856 xmlRelaxNGFree (rngs);
857 xmlRelaxNGFreeParserCtxt (rngp);
858
859 out:
860 g_free (path);
861 return profiles;
862 }
863
864 GList *
865 gupnp_dlna_load_profiles_from_dir (gchar *profile_dir,
866 GUPnPDLNALoadState *data)
867 {
868 GDir *dir;
869 data->restrictions =
870 g_hash_table_new_full (g_str_hash,
871 g_str_equal,
872 (GDestroyNotify) xmlFree,
873 (GDestroyNotify)
874 gst_stream_encoding_profile_free);
875 data->profile_ids =
876 g_hash_table_new_full (g_str_hash,
877 g_str_equal,
878 (GDestroyNotify) xmlFree,
879 (GDestroyNotify)
880 gst_encoding_profile_free);
881 GList *profiles = NULL;
882
883 if ((dir = g_dir_open (profile_dir, 0, NULL))) {
884 const gchar *entry;
885
886 while ((entry = g_dir_read_name (dir))) {
887 gchar *path = g_strconcat (profile_dir,
888 G_DIR_SEPARATOR_S,
889 entry,
890 NULL);
891
892 if (g_str_has_suffix (entry, ".xml") &&
893 g_file_test (path, G_FILE_TEST_IS_REGULAR)) {
894 profiles = g_list_concat (profiles,
895 gupnp_dlna_load_profiles_from_file (
896 path,
897 data));
898 }
899
900 g_free (path);
901 }
902
903 g_dir_close (dir);
904 }
905
906 g_hash_table_unref (data->restrictions);
907 g_hash_table_unref (data->profile_ids);
908 return profiles;
909 }
910
911 GList *
912 gupnp_dlna_load_profiles_from_disk (gboolean relaxed_mode,
913 gboolean extended_mode)
914 {
915 GUPnPDLNALoadState *load_data;
916 GList *ret, *i;
917
918 load_data = g_new (GUPnPDLNALoadState, 1);
919
920 if (load_data) {
921 load_data->files_hash = g_hash_table_new_full (g_str_hash,
922 g_str_equal,
923 g_free,
924 NULL);
925 load_data->relaxed_mode = relaxed_mode;
926 load_data->extended_mode = extended_mode;
927 }
928
929 ret = gupnp_dlna_load_profiles_from_dir (DLNA_DATA_DIR,
930 load_data);
931
932 /* Now that we're done loading profiles, remove all profiles with no
933 * name which are only used for inheritance and not matching. */
934 i = ret;
935 while (i) {
936 GUPnPDLNAProfile *profile = i->data;
937 const GstEncodingProfile *enc_profile =
938 gupnp_dlna_profile_get_encoding_profile (profile);
939 GList *tmp = g_list_next (i);
940
941 if (enc_profile->name[0] == '\0') {
942 ret = g_list_delete_link (ret, i);
943 g_object_unref (profile);
944 }
945
946 i = tmp;
947 }
948
949 g_hash_table_unref (load_data->files_hash);
950 g_free (load_data);
951 load_data = NULL;
952 return ret;
953 }
+0
-51
libgupnp-dlna/gupnp-dlna-load.h less more
0 /*
1 * Copyright (C) 2009 Nokia Corporation.
2 *
3 * Authors: Zeeshan Ali <zeeshanak@gnome.org>
4 * <zeeshan.ali@nokia.com>
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This library 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 GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 02111-1307, USA.
20 */
21
22 #ifndef __GUPNP_DLNA_LOAD_H__
23 #define __GUPNP_DLNA_LOAD_H__
24
25 #include <glib.h>
26
27 G_BEGIN_DECLS
28
29 typedef struct {
30 GHashTable *restrictions;
31 GHashTable *profile_ids;
32 GHashTable *files_hash;
33 gboolean relaxed_mode;
34 gboolean extended_mode;
35 } GUPnPDLNALoadState;
36
37 GList *
38 gupnp_dlna_load_profiles_from_file (const gchar *file_name,
39 GUPnPDLNALoadState *data);
40 GList *
41 gupnp_dlna_load_profiles_from_dir (gchar *profile_dir,
42 GUPnPDLNALoadState *data);
43
44 GList *
45 gupnp_dlna_load_profiles_from_disk (gboolean relaxed_mode,
46 gboolean extended_mode);
47
48 G_END_DECLS
49
50 #endif /* __GUPNP_DLNA_LOAD_H__ */
0 /*
1 * Copyright (C) 2011 Nokia Corporation.
2 *
3 * Authors: Parthasarathi Susarla <partha.susarla@collabora.co.uk>
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This library 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 GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the
17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 * Boston, MA 02111-1307, USA.
19 */
20 #ifndef __GUPNP_DLNA_PROFILE_PRIVATE_H__
21 #define __GUPNP_DLNA_PROFILE_PRIVATE_H__
22
23 G_BEGIN_DECLS
24
25 GUPnPDLNAProfile * gupnp_dlna_profile_new (gchar *name,
26 gchar *mime,
27 GstCaps *container_caps,
28 GstCaps *video_caps,
29 GstCaps *audio_caps,
30 gboolean extended);
31
32
33 const GstCaps * gupnp_dlna_profile_get_container_caps (GUPnPDLNAProfile *self);
34 const GstCaps * gupnp_dlna_profile_get_video_caps (GUPnPDLNAProfile *self);
35 const GstCaps * gupnp_dlna_profile_get_audio_caps (GUPnPDLNAProfile *self);
36
37 void gupnp_dlna_profile_set_container_caps (GUPnPDLNAProfile *self, GstCaps *caps);
38 void gupnp_dlna_profile_set_video_caps (GUPnPDLNAProfile *self, GstCaps *caps);
39 void gupnp_dlna_profile_set_audio_caps (GUPnPDLNAProfile *self, GstCaps *caps);
40
41 G_END_DECLS
42
43 #endif /* __GUPNP_DLNA_PROFILE_PRIVATE_H__ */
1919 */
2020
2121 #include "gupnp-dlna-profile.h"
22 #include "gupnp-dlna-profile-private.h"
23 #include <gst/gstminiobject.h>
2224
2325 /**
2426 * SECTION:gupnp-dlna-profile
3234 */
3335 G_DEFINE_TYPE (GUPnPDLNAProfile, gupnp_dlna_profile, G_TYPE_OBJECT)
3436
35 #define GET_PRIVATE(o) \
36 (G_TYPE_INSTANCE_GET_PRIVATE ((o), \
37 GUPNP_TYPE_DLNA_PROFILE, \
38 GUPnPDLNAProfilePrivate))
37 #define GET_PRIVATE(o) \
38 (G_TYPE_INSTANCE_GET_PRIVATE ((o), \
39 GUPNP_TYPE_DLNA_PROFILE, \
40 GUPnPDLNAProfilePrivate))
3941
4042 typedef struct _GUPnPDLNAProfilePrivate GUPnPDLNAProfilePrivate;
4143
4244 struct _GUPnPDLNAProfilePrivate {
4345 gchar *name;
4446 gchar *mime;
47 GstCaps *container_caps;
48 GstCaps *video_caps;
49 GstCaps *audio_caps;
50 gboolean extended;
4551 GstEncodingProfile *enc_profile;
46 gboolean extended;
4752 };
4853
4954 enum {
7378 break;
7479
7580 case PROP_ENCODING_PROFILE:
76 g_value_set_boxed (value, priv->enc_profile);
81 gst_value_set_mini_object (value,
82 GST_MINI_OBJECT (priv->enc_profile));
7783 break;
7884
7985 case PROP_DLNA_EXTENDED:
108114 priv->mime = g_value_dup_string (value);
109115 break;
110116
111 case PROP_ENCODING_PROFILE:
112 if (priv->enc_profile)
113 gst_encoding_profile_free (priv->enc_profile);
114 priv->enc_profile = g_value_dup_boxed (value);
115 break;
116
117117 case PROP_DLNA_EXTENDED:
118118 priv->extended = g_value_get_boolean (value);
119119 break;
120120
121121 default:
122 G_OBJECT_WARN_INVALID_PROPERTY_ID (object,
123 property_id,
124 pspec);
125 break;
126 }
127 }
122 G_OBJECT_WARN_INVALID_PROPERTY_ID
123 (object, property_id, pspec);
124 break;
125 }
126 }
127
128128 static void
129129 gupnp_dlna_profile_finalize (GObject *object)
130130 {
133133
134134 g_free (priv->name);
135135 g_free (priv->mime);
136
137 if (priv->container_caps)
138 gst_caps_unref (priv->container_caps);
139 if (priv->audio_caps)
140 gst_caps_unref (priv->audio_caps);
141 if (priv->video_caps)
142 gst_caps_unref (priv->video_caps);
143
136144 if (priv->enc_profile)
137 gst_encoding_profile_free (priv->enc_profile);
145 gst_encoding_profile_unref (priv->enc_profile);
138146
139147 G_OBJECT_CLASS (gupnp_dlna_profile_parent_class)->finalize (object);
140148 }
155163 "DLNA profile name",
156164 "The name of the DLNA profile ",
157165 NULL,
158 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
166 G_PARAM_READWRITE |
167 G_PARAM_CONSTRUCT_ONLY);
159168 g_object_class_install_property (object_class, PROP_DLNA_NAME, pspec);
160169
161170 pspec = g_param_spec_string ("mime",
162171 "DLNA profile MIME type",
163172 "The MIME type of the DLNA profile",
164173 NULL,
165 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
174 G_PARAM_READWRITE |
175 G_PARAM_CONSTRUCT_ONLY);
166176 g_object_class_install_property (object_class, PROP_DLNA_MIME, pspec);
167177
168 pspec = g_param_spec_boxed ("encoding-profile",
169 "Encoding profile for the DLNA profile",
170 "GstEncodingProfile object corresponding "
171 "to the DLNA profile",
172 GST_TYPE_ENCODING_PROFILE,
173 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
178 pspec = gst_param_spec_mini_object ("encoding-profile",
179 "Encoding Profile for the "
180 "DLNA Profile",
181 "GstEncodingProfile object"
182 "corresponding to the DLNA profile",
183 GST_TYPE_ENCODING_PROFILE,
184 G_PARAM_READABLE);
174185 g_object_class_install_property (object_class,
175186 PROP_ENCODING_PROFILE,
176187 pspec);
180191 "Indicates that this profile is not "
181192 "part of the DLNA specification",
182193 FALSE,
183 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
194 G_PARAM_READWRITE |
195 G_PARAM_CONSTRUCT_ONLY);
184196 g_object_class_install_property (object_class,
185197 PROP_DLNA_EXTENDED,
186198 pspec);
190202 static void
191203 gupnp_dlna_profile_init (GUPnPDLNAProfile *self)
192204 {
193 GUPnPDLNAProfilePrivate *priv = GET_PRIVATE (self);
194
195 priv->name = NULL;
196 priv->mime = NULL;
197 priv->enc_profile = NULL;
198 priv->extended = FALSE;
199 }
200
201 /**
202 * gupnp_dlna_profile_new:
203 *
204 * Creates a new #GUPnPDLNAProfile object.
205 *
206 * Returns: A new #GUPnPDLNAProfile object.
207 */
208 GUPnPDLNAProfile*
209 gupnp_dlna_profile_new (gchar *name,
210 gchar *mime,
211 GstEncodingProfile *enc_profile,
212 gboolean extended)
213 {
214 return g_object_new (GUPNP_TYPE_DLNA_PROFILE,
215 "name", name,
216 "mime", mime,
217 "encoding-profile", enc_profile,
218 "extended", extended,
219 NULL);
205 }
206
207 const GstCaps *
208 gupnp_dlna_profile_get_container_caps (GUPnPDLNAProfile *self)
209 {
210 GUPnPDLNAProfilePrivate *priv = GET_PRIVATE (self);
211 return priv->container_caps;
212 }
213
214 const GstCaps *
215 gupnp_dlna_profile_get_video_caps (GUPnPDLNAProfile *self)
216 {
217 GUPnPDLNAProfilePrivate *priv = GET_PRIVATE (self);
218 return priv->video_caps;
219 }
220
221 const GstCaps *
222 gupnp_dlna_profile_get_audio_caps (GUPnPDLNAProfile *self)
223 {
224 GUPnPDLNAProfilePrivate *priv = GET_PRIVATE (self);
225 return priv->audio_caps;
226 }
227
228 void
229 gupnp_dlna_profile_set_container_caps (GUPnPDLNAProfile *self, GstCaps *caps)
230 {
231 GUPnPDLNAProfilePrivate *priv = GET_PRIVATE (self);
232
233 if (priv->container_caps)
234 gst_caps_unref (priv->container_caps);
235 priv->container_caps = gst_caps_copy (caps);
236 }
237
238 void
239 gupnp_dlna_profile_set_video_caps (GUPnPDLNAProfile *self, GstCaps *caps)
240 {
241 GUPnPDLNAProfilePrivate *priv = GET_PRIVATE (self);
242
243 if (priv->video_caps)
244 gst_caps_unref (priv->video_caps);
245 priv->video_caps = gst_caps_copy (caps);
246 }
247
248 void
249 gupnp_dlna_profile_set_audio_caps (GUPnPDLNAProfile *self, GstCaps *caps)
250 {
251 GUPnPDLNAProfilePrivate *priv = GET_PRIVATE (self);
252
253 if (priv->audio_caps)
254 gst_caps_unref (priv->audio_caps);
255 priv->audio_caps = gst_caps_copy (caps);
256 }
257
258 GUPnPDLNAProfile *
259 gupnp_dlna_profile_new (gchar *name,
260 gchar *mime,
261 GstCaps *container_caps,
262 GstCaps *video_caps,
263 GstCaps *audio_caps,
264 gboolean extended)
265 {
266 GUPnPDLNAProfile *prof;
267
268 prof = g_object_new (GUPNP_TYPE_DLNA_PROFILE,
269 "name", name,
270 "mime", mime,
271 "extended", extended,
272 NULL);
273
274 gupnp_dlna_profile_set_container_caps (prof, container_caps);
275 gupnp_dlna_profile_set_video_caps (prof, video_caps);
276 gupnp_dlna_profile_set_audio_caps (prof, audio_caps);
277
278 return prof;
220279 }
221280
222281 /**
252311 * Returns: a #GstEncodingProfile object that, in a future version, can be used
253312 * to transcode a given stream to match the DLNA profile represented
254313 * by @self.
255 */
256 const GstEncodingProfile *
314 * The receiver must unref the returned #GstEncodingProfile when done
315 * using it.
316 */
317 GstEncodingProfile *
257318 gupnp_dlna_profile_get_encoding_profile (GUPnPDLNAProfile *self)
258319 {
259320 GUPnPDLNAProfilePrivate *priv = GET_PRIVATE (self);
321
322 /* create an encoding-profile if we don't have one */
323 if (!priv->enc_profile) {
324 GstEncodingContainerProfile *container = NULL;
325 GstEncodingAudioProfile *audio_profile = NULL;
326 GstEncodingVideoProfile *video_profile = NULL;
327
328 if (GST_IS_CAPS (priv->video_caps) &&
329 !gst_caps_is_empty (priv->video_caps))
330 video_profile = gst_encoding_video_profile_new
331 (priv->video_caps,NULL, NULL, 0);
332
333 if (GST_IS_CAPS (priv->audio_caps) &&
334 !gst_caps_is_empty (priv->audio_caps))
335 audio_profile = gst_encoding_audio_profile_new
336 (priv->audio_caps,NULL, NULL, 0);
337
338 if (GST_IS_CAPS (priv->container_caps)) {
339 container = gst_encoding_container_profile_new
340 (priv->name,
341 priv->mime,
342 priv->container_caps,
343 NULL);
344
345 if (video_profile)
346 gst_encoding_container_profile_add_profile
347 (container,
348 (GstEncodingProfile *)video_profile);
349
350 if (audio_profile)
351 gst_encoding_container_profile_add_profile
352 (container,
353 (GstEncodingProfile *) audio_profile);
354
355 priv->enc_profile = (GstEncodingProfile *)container;
356 } else {
357 if(audio_profile)
358 /* Container-less audio */
359 priv->enc_profile =
360 (GstEncodingProfile *)audio_profile;
361
362 if (video_profile)
363 /* Container-less video isn't a possibility
364 yet */
365 g_assert_not_reached ();
366 }
367 }
368
369 gst_encoding_profile_ref (priv->enc_profile);
370
260371 return priv->enc_profile;
261372 }
262373
2121 #ifndef __GUPNP_DLNA_PROFILE_H__
2222 #define __GUPNP_DLNA_PROFILE_H__
2323
24 #include <gst/profile/gstprofile.h>
24 #include <gst/pbutils/pbutils.h>
2525 #include <glib-object.h>
2626
2727 G_BEGIN_DECLS
2828
2929 #define GUPNP_TYPE_DLNA_PROFILE gupnp_dlna_profile_get_type()
3030
31 #define GUPNP_DLNA_PROFILE(obj) \
32 (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
31 #define GUPNP_DLNA_PROFILE(obj) \
32 (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
3333 GUPNP_TYPE_DLNA_PROFILE, \
3434 GUPnPDLNAProfile))
3535
36 #define GUPNP_DLNA_PROFILE_CLASS(klass) \
37 (G_TYPE_CHECK_CLASS_CAST ((klass), \
36 #define GUPNP_DLNA_PROFILE_CLASS(klass) \
37 (G_TYPE_CHECK_CLASS_CAST ((klass), \
3838 GUPNP_TYPE_DLNA_PROFILE, \
3939 GUPnPDLNAProfileClass))
4040
41 #define GUPNP_IS_DLNA_PROFILE(obj) \
41 #define GUPNP_IS_DLNA_PROFILE(obj) \
4242 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GUPNP_TYPE_DLNA_PROFILE))
4343
44 #define GUPNP_IS_DLNA_PROFILE_CLASS(klass) \
44 #define GUPNP_IS_DLNA_PROFILE_CLASS(klass) \
4545 (G_TYPE_CHECK_CLASS_TYPE ((klass), GUPNP_TYPE_DLNA_PROFILE))
4646
47 #define GUPNP_DLNA_PROFILE_GET_CLASS(obj) \
48 (G_TYPE_INSTANCE_GET_CLASS ((obj), \
47 #define GUPNP_DLNA_PROFILE_GET_CLASS(obj) \
48 (G_TYPE_INSTANCE_GET_CLASS ((obj), \
4949 GUPNP_TYPE_DLNA_PROFILE, \
5050 GUPnPDLNAProfileClass))
5151
52 /**
53 * GUPnPDLNAProfile:
54 *
55 * The top-level object used for the in-memory representation of the DLNA
56 * Profiles.
57 */
5258 typedef struct {
53 GObject parent;
59 GObject parent;
5460 } GUPnPDLNAProfile;
5561
5662 typedef struct {
57 GObjectClass parent_class;
63 GObjectClass parent_class;
5864 } GUPnPDLNAProfileClass;
5965
6066 GType gupnp_dlna_profile_get_type (void);
6167
62 GUPnPDLNAProfile* gupnp_dlna_profile_new (gchar *name,
63 gchar *mime,
64 GstEncodingProfile *enc_profile,
65 gboolean extended);
66
6768 const gchar * gupnp_dlna_profile_get_name (GUPnPDLNAProfile *self);
6869 const gchar * gupnp_dlna_profile_get_mime (GUPnPDLNAProfile *self);
69 const GstEncodingProfile *
70 GstEncodingProfile *
7071 gupnp_dlna_profile_get_encoding_profile (GUPnPDLNAProfile *self);
7172 gboolean gupnp_dlna_profile_get_extended (GUPnPDLNAProfile *self);
7273
1919 */
2020
2121 #include <glib.h>
22 #include <gst/profile/gstprofile.h>
22 #include <gst/pbutils/pbutils.h>
2323 #include "gupnp-dlna-discoverer.h"
24 #include "gupnp-dlna-load.h"
2524 #include "gupnp-dlna-profile.h"
2625
2726 /*
7372 g_debug (args); \
7473 } while (0)
7574
76 static gboolean is_video_profile (const GstEncodingProfile *profile)
77 {
78 GList *i;
79
80 for (i = profile->encodingprofiles; i; i = i->next)
81 if (((GstStreamEncodingProfile *) i->data)->type ==
82 GST_ENCODING_PROFILE_VIDEO)
83 return TRUE;
75 static gboolean
76 is_video_profile (const GstEncodingProfile *profile)
77 {
78 const GList *i, *profiles_list;
79
80 if (GST_IS_ENCODING_CONTAINER_PROFILE (profile)) {
81 profiles_list = gst_encoding_container_profile_get_profiles
82 (GST_ENCODING_CONTAINER_PROFILE (profile));
83
84 for (i = profiles_list ; i; i = i->next)
85 if (GST_IS_ENCODING_VIDEO_PROFILE (i->data))
86 return TRUE;
87 }
8488
8589 return FALSE;
8690 }
8791
88 static gboolean structure_can_intersect (const GstStructure *st1,
89 const GstStructure *st2)
92 static gboolean
93 structure_can_intersect (const GstStructure *st1, const GstStructure *st2)
9094 {
9195 /* Since there is no API to intersect GstStructures, we cheat (thanks
9296 * for the idea, tpm!) and make caps from the structuresa */
101105
102106 gst_caps_unref (caps1);
103107 gst_caps_unref (caps2);
108
104109 return ret;
105110 }
106111
107 static gboolean structure_is_subset (const GstStructure *st1,
108 const GstStructure *st2)
112 static gboolean
113 structure_is_subset (const GstStructure *st1, const GstStructure *st2)
109114 {
110115 int i;
111116
129134 * profile_caps (viz. all the fields specified by the DLNA profile's
130135 * restrictions)
131136 */
132 static gboolean caps_can_intersect_and_is_subset (GstCaps *stream_caps,
133 GstCaps *profile_caps)
137 static gboolean
138 caps_can_intersect_and_is_subset (GstCaps *stream_caps,
139 const GstCaps *profile_caps)
134140 {
135141 int i;
136142 GstStructure *stream_st, *profile_st;
149155 }
150156
151157 static gboolean
152 match_profile (const GstEncodingProfile *profile,
153 GstCaps *caps,
154 GstEncodingProfileType type)
155 {
156 GList *i;
158 match_profile (GstEncodingProfile *profile,
159 GstCaps *caps,
160 GType type)
161 {
162 const GList *i, *profiles_list;
163 const gchar *name;
157164
158165 /* Profiles with an empty name are used only for inheritance and should
159166 * not be matched against. */
160 if (profile->name[0] == '\0')
161 return FALSE;
162
163 for (i = profile->encodingprofiles; i; i = i->next) {
164 GstStreamEncodingProfile *enc_profile = i->data;
165
166 if (enc_profile->type == type &&
167 caps_can_intersect_and_is_subset (caps,
168 enc_profile->format))
167 name = gst_encoding_profile_get_name (profile);
168 if (name[0] == '\0')
169 return FALSE;
170
171 profiles_list = gst_encoding_container_profile_get_profiles
172 (GST_ENCODING_CONTAINER_PROFILE (profile));
173
174 for (i = profiles_list; i; i = i->next){
175 GstEncodingProfile *enc_profile = GST_ENCODING_PROFILE
176 (i->data);
177 const GstCaps *format = gst_encoding_profile_get_format
178 (enc_profile);
179
180 if (type == G_TYPE_FROM_INSTANCE (enc_profile) &&
181 caps_can_intersect_and_is_subset (caps, format))
169182 return TRUE;
170183 }
171184
173186 }
174187
175188 static gboolean
176 check_container (GstDiscovererInformation *info,
177 const GstEncodingProfile *profile)
178 {
189 check_container (GstDiscovererInfo *info,
190 GstEncodingProfile *profile)
191 {
192 GstDiscovererStreamInfo *stream_info;
193 GType stream_type;
194 GstCaps *stream_caps;
195 gboolean ret = FALSE;
196
197 const GstCaps *profile_caps = gst_encoding_profile_get_format (profile);
198
179199 /* Top-level GstStreamInformation in the topology will be
180200 * the container */
181 if (info->stream_info->streamtype == GST_STREAM_CONTAINER &&
182 gst_caps_can_intersect (info->stream_info->caps, profile->format))
183 return TRUE;
184 else if (info->stream_info->streamtype != GST_STREAM_CONTAINER &&
185 gst_caps_is_empty (profile->format))
186 return TRUE;
187
188 return FALSE;
201 stream_info = gst_discoverer_info_get_stream_info (info);
202 stream_caps = gst_discoverer_stream_info_get_caps (stream_info);
203 stream_type = G_TYPE_FROM_INSTANCE (stream_info);
204
205 if (stream_type == GST_TYPE_DISCOVERER_CONTAINER_INFO &&
206 gst_caps_can_intersect (stream_caps, profile_caps))
207 ret = TRUE;
208 else if (stream_type != GST_TYPE_DISCOVERER_CONTAINER_INFO &&
209 gst_caps_is_empty (profile_caps))
210 ret = TRUE;
211
212 gst_discoverer_stream_info_unref (stream_info);
213 gst_caps_unref (stream_caps);
214
215 return ret;
189216 }
190217
191218 static GstCaps *
192 caps_from_audio_stream_info (GstStreamAudioInformation *audio)
193 {
194 GstCaps *caps = gst_caps_copy ((GST_STREAM_INFORMATION (audio))->caps);
195
196 if (audio->sample_rate)
197 gst_caps_set_simple (caps, "rate", G_TYPE_INT,
198 audio->sample_rate, NULL);
199 if (audio->channels)
200 gst_caps_set_simple (caps, "channels", G_TYPE_INT,
201 audio->channels, NULL);
202 if (audio->bitrate)
203 gst_caps_set_simple (caps, "bitrate", G_TYPE_INT,
204 audio->bitrate, NULL);
205 if (audio->max_bitrate)
206 gst_caps_set_simple (caps, "maximum-bitrate", G_TYPE_INT,
207 audio->max_bitrate, NULL);
208 if (audio->depth)
209 gst_caps_set_simple (caps, "depth", G_TYPE_INT,
210 audio->depth, NULL);
219 caps_from_audio_stream_info (GstDiscovererStreamInfo *info)
220 {
221 GstCaps *temp = gst_discoverer_stream_info_get_caps (info);
222 GstCaps *caps = gst_caps_copy (temp);
223 const GstDiscovererAudioInfo *audio_info =
224 GST_DISCOVERER_AUDIO_INFO(info);
225 guint data;
226
227 gst_caps_unref (temp);
228
229 data = gst_discoverer_audio_info_get_sample_rate (audio_info);
230 if (data)
231 gst_caps_set_simple (caps, "rate", G_TYPE_INT, data, NULL);
232
233 data = gst_discoverer_audio_info_get_channels (audio_info);
234 if (data)
235 gst_caps_set_simple (caps, "channels", G_TYPE_INT, data, NULL);
236
237 data = gst_discoverer_audio_info_get_bitrate (audio_info);
238 if (data)
239 gst_caps_set_simple (caps, "bitrate", G_TYPE_INT, data, NULL);
240
241 data = gst_discoverer_audio_info_get_max_bitrate (audio_info);
242 if (data)
243 gst_caps_set_simple
244 (caps, "maximum-bitrate", G_TYPE_INT, data, NULL);
245
246 data = gst_discoverer_audio_info_get_depth (audio_info);
247 if (data)
248 gst_caps_set_simple (caps, "depth", G_TYPE_INT, data, NULL);
211249
212250 return caps;
213251 }
214252
215253 static gboolean
216 check_audio_profile (const GstEncodingProfile *profile,
217 GstDiscovererInformation *info)
254 check_audio_profile (GstDiscovererInfo *info,
255 GstEncodingProfile *profile)
218256 {
219257 GstCaps *caps;
220 GList *i;
258 GList *i, *stream_list;
221259 gboolean found = FALSE;
222260
223261 /* Optimisation TODO: this can be pre-computed */
224262 if (is_video_profile (profile))
225263 return FALSE;
226264
227 for (i = info->stream_list; !found && i; i = i->next) {
228 GstStreamInformation *stream = (GstStreamInformation *) i->data;
229 GstStreamAudioInformation *audio;
230
231 if (stream->streamtype != GST_STREAM_AUDIO)
265 stream_list = gst_discoverer_info_get_stream_list (info);
266
267 for (i = stream_list; !found && i; i = i->next) {
268 GstDiscovererStreamInfo *stream =
269 GST_DISCOVERER_STREAM_INFO(i->data);
270 GType stream_type = G_TYPE_FROM_INSTANCE (stream);
271
272 if (stream_type != GST_TYPE_DISCOVERER_AUDIO_INFO)
232273 continue;
233274
234 audio = GST_STREAM_AUDIO_INFORMATION (stream);
235 caps = caps_from_audio_stream_info (audio);
236
237 if (match_profile (profile, caps, GST_ENCODING_PROFILE_AUDIO)) {
275 caps = caps_from_audio_stream_info (stream);
276
277 if (match_profile (profile,
278 caps,
279 GST_TYPE_ENCODING_AUDIO_PROFILE)) {
238280 found = TRUE;
239281 break;
240282 }
242284 gst_caps_unref (caps);
243285 }
244286
287 gst_discoverer_stream_info_list_free (stream_list);
288
245289 return found;
246290 }
247291
248292 static void
249 guess_audio_profile (GstDiscovererInformation *info,
250 gchar **name,
251 gchar **mime,
252 GList *profiles)
293 guess_audio_profile (GstDiscovererInfo *info,
294 gchar **name,
295 gchar **mime,
296 GList *profiles)
253297 {
254298 GList *i;
255299 GUPnPDLNAProfile *profile;
256 const GstEncodingProfile *enc_profile;
300 GstEncodingProfile *enc_profile;
257301
258302 for (i = profiles; i; i = i->next) {
259303 profile = (GUPnPDLNAProfile *)(i->data);
260304 enc_profile = gupnp_dlna_profile_get_encoding_profile (profile);
261305
262306 gupnp_dlna_debug ("Checking DLNA profile %s",
263 gupnp_dlna_profile_get_name (profile));
264 if (!check_audio_profile (enc_profile, info))
307 gupnp_dlna_profile_get_name (profile));
308
309 if (!check_audio_profile (info, enc_profile))
265310 gupnp_dlna_debug (" Audio did not match");
266311 else if (!check_container (info, enc_profile))
267312 gupnp_dlna_debug (" Container did not match");
268313 else {
269 *name = g_strdup (
270 gupnp_dlna_profile_get_name (profile));
271 *mime = g_strdup (
272 gupnp_dlna_profile_get_mime (profile));
314 *name = g_strdup
315 (gupnp_dlna_profile_get_name (profile));
316 *mime = g_strdup
317 (gupnp_dlna_profile_get_mime (profile));
273318 break;
274319 }
275320 }
276321 }
277322
278323 static GstCaps *
279 caps_from_video_stream_info (GstStreamVideoInformation *video)
280 {
281 GstStreamInformation *stream = GST_STREAM_INFORMATION (video);
282 GstCaps *caps = gst_caps_copy (stream->caps);
283 int n, d;
284
285 if (video->height)
286 gst_caps_set_simple (caps, "height", G_TYPE_INT,
287 video->height, NULL);
288 if (video->width)
289 gst_caps_set_simple (caps, "width", G_TYPE_INT,
290 video->width, NULL);
291 if (video->depth)
292 gst_caps_set_simple (caps, "depth", G_TYPE_INT,
293 video->depth, NULL);
294 if (GST_VALUE_HOLDS_FRACTION (&video->frame_rate)) {
295 n = gst_value_get_fraction_numerator (&video->frame_rate);
296 d = gst_value_get_fraction_denominator (&video->frame_rate);
297 gst_caps_set_simple (caps, "framerate", GST_TYPE_FRACTION,
298 n, d, NULL);
299 }
300 if (GST_VALUE_HOLDS_FRACTION (&video->pixel_aspect_ratio)) {
301 n = gst_value_get_fraction_numerator (
302 &video->pixel_aspect_ratio);
303 d = gst_value_get_fraction_denominator (
304 &video->pixel_aspect_ratio);
305 gst_caps_set_simple (caps, "pixel-aspect-ratio",
306 GST_TYPE_FRACTION, n, d, NULL);
307 }
308 if (video->interlaced)
309 gst_caps_set_simple (caps, "interlaced", G_TYPE_BOOLEAN,
310 video->interlaced, NULL);
311 if (video->format != GST_VIDEO_FORMAT_UNKNOWN)
312 gst_caps_set_simple (caps, "format", GST_TYPE_FOURCC,
313 gst_video_format_to_fourcc (video->format),
314 NULL);
315 if (stream->tags) {
324 caps_from_video_stream_info (GstDiscovererStreamInfo *info)
325 {
326 GstCaps *temp = gst_discoverer_stream_info_get_caps (info);
327 GstCaps *caps = gst_caps_copy (temp);
328 const GstDiscovererVideoInfo *video_info =
329 GST_DISCOVERER_VIDEO_INFO (info);
330 const GstTagList *stream_tag_list;
331 guint n, d, data;
332 gboolean value;
333
334 gst_caps_unref (temp);
335
336 data = gst_discoverer_video_info_get_height (video_info);
337 if (data)
338 gst_caps_set_simple (caps, "height", G_TYPE_INT, data, NULL);
339
340 data = gst_discoverer_video_info_get_width (video_info);
341 if (data)
342 gst_caps_set_simple (caps, "width", G_TYPE_INT, data, NULL);
343
344 data = gst_discoverer_video_info_get_depth (video_info);
345 if (data)
346 gst_caps_set_simple (caps, "depth", G_TYPE_INT, data, NULL);
347
348 n = gst_discoverer_video_info_get_framerate_num (video_info);
349 d = gst_discoverer_video_info_get_framerate_denom (video_info);
350 if (n && d)
351 gst_caps_set_simple (caps,
352 "framerate",
353 GST_TYPE_FRACTION, n, d,
354 NULL);
355
356 n = gst_discoverer_video_info_get_par_num (video_info);
357 d = gst_discoverer_video_info_get_par_denom (video_info);
358 if (n && d)
359 gst_caps_set_simple (caps,
360 "pixel-aspect-ratio",
361 GST_TYPE_FRACTION, n, d,
362 NULL);
363
364 value = gst_discoverer_video_info_is_interlaced (video_info);
365 if (value)
366 gst_caps_set_simple
367 (caps, "interlaced", G_TYPE_BOOLEAN, value, NULL);
368
369 stream_tag_list = gst_discoverer_stream_info_get_tags (info);
370 if (stream_tag_list) {
316371 guint bitrate;
317 if (gst_tag_list_get_uint (stream->tags, "bitrate", &bitrate))
318 gst_caps_set_simple (caps, "bitrate", G_TYPE_INT,
319 (int) bitrate, NULL);
320 if (gst_tag_list_get_uint (stream->tags, "maximum-bitrate",
321 &bitrate))
322 gst_caps_set_simple (caps, "maximum-bitrate",
323 G_TYPE_INT, (int) bitrate, NULL);
372 if (gst_tag_list_get_uint (stream_tag_list, "bitrate", &bitrate))
373 gst_caps_set_simple
374 (caps, "bitrate", G_TYPE_INT, (int) bitrate, NULL);
375
376 if (gst_tag_list_get_uint (stream_tag_list,
377 "maximum-bitrate",
378 &bitrate))
379 gst_caps_set_simple (caps,
380 "maximum-bitrate",
381 G_TYPE_INT,
382 (int) bitrate,
383 NULL);
324384 }
325385
326386 return caps;
327387 }
328388
329389 static gboolean
330 check_video_profile (const GstEncodingProfile *profile,
331 GstDiscovererInformation *info)
332 {
333 GList *i;
390 check_video_profile (GstDiscovererInfo *info,
391 GstEncodingProfile *profile)
392 {
393 GList *i, *stream_list;
334394 gboolean found_video = FALSE, found_audio = FALSE;;
335395
396 stream_list = gst_discoverer_info_get_stream_list (info);
397
336398 /* Check video and audio restrictions */
337 for (i = info->stream_list;
399 for (i = stream_list;
338400 i && !(found_video && found_audio);
339401 i = i->next) {
340 GstStreamInformation *stream;
402 GstDiscovererStreamInfo *stream;
403 GType stream_type;
341404 GstCaps *caps = NULL;
342405
343 stream = (GstStreamInformation *) i->data;
406 stream = GST_DISCOVERER_STREAM_INFO(i->data);
407 stream_type = G_TYPE_FROM_INSTANCE (stream);
344408
345409 if (!found_video &&
346 stream->streamtype == GST_STREAM_VIDEO) {
347 caps = caps_from_video_stream_info (
348 GST_STREAM_VIDEO_INFORMATION (stream));
410 stream_type == GST_TYPE_DISCOVERER_VIDEO_INFO) {
411 caps = caps_from_video_stream_info (stream);
349412 if (match_profile (profile,
350413 caps,
351 GST_ENCODING_PROFILE_VIDEO))
414 GST_TYPE_ENCODING_VIDEO_PROFILE))
352415 found_video = TRUE;
353416 else
354417 gupnp_dlna_debug (" Video did not match");
355418 } else if (!found_audio &&
356 stream->streamtype == GST_STREAM_AUDIO) {
357 caps = caps_from_audio_stream_info (
358 GST_STREAM_AUDIO_INFORMATION (stream));
419 stream_type == GST_TYPE_DISCOVERER_AUDIO_INFO) {
420 caps = caps_from_audio_stream_info (stream);
359421 if (match_profile (profile,
360422 caps,
361 GST_ENCODING_PROFILE_AUDIO))
423 GST_TYPE_ENCODING_AUDIO_PROFILE))
362424 found_audio = TRUE;
363425 else
364426 gupnp_dlna_debug (" Audio did not match");
368430 gst_caps_unref (caps);
369431 }
370432
433 gst_discoverer_stream_info_list_free (stream_list);
434
371435 if (!found_video || !found_audio)
372436 return FALSE;
373437
381445 }
382446
383447 static void
384 guess_video_profile (GstDiscovererInformation *info,
385 gchar **name,
386 gchar **mime,
387 GList *profiles)
448 guess_video_profile (GstDiscovererInfo *info,
449 gchar **name,
450 gchar **mime,
451 GList *profiles)
388452 {
389453 GUPnPDLNAProfile *profile = NULL;
390 const GstEncodingProfile *enc_profile;
454 GstEncodingProfile *enc_profile;
391455 GList *i;
392456
393457 for (i = profiles; i; i = i->next) {
395459 enc_profile = gupnp_dlna_profile_get_encoding_profile (profile);
396460
397461 gupnp_dlna_debug ("Checking DLNA profile %s",
398 gupnp_dlna_profile_get_name (profile));
399 if (check_video_profile (enc_profile, info)) {
400 *name = g_strdup (
401 gupnp_dlna_profile_get_name (profile));
402 *mime = g_strdup (
403 gupnp_dlna_profile_get_mime (profile));
462 gupnp_dlna_profile_get_name (profile));
463 if (check_video_profile (info, enc_profile)) {
464 *name = g_strdup (gupnp_dlna_profile_get_name (profile));
465 *mime = g_strdup (gupnp_dlna_profile_get_mime (profile));
404466 break;
405467 }
406468 }
407469 }
408470
409471 static void
410 guess_image_profile (GstStreamInformation *info,
411 gchar **name,
412 gchar **mime,
413 GList *profiles)
414 {
415 GstStreamVideoInformation *video = GST_STREAM_VIDEO_INFORMATION (info);
472 guess_image_profile (GstDiscovererStreamInfo *info,
473 gchar **name,
474 gchar **mime,
475 GList *profiles)
476 {
416477 GstCaps *caps;
417478 GList *i;
418479 gboolean found = FALSE;
419480 GUPnPDLNAProfile *profile;
420 const GstEncodingProfile *enc_profile;
421
422 if (!info || info->streamtype != GST_STREAM_IMAGE)
481 GstEncodingProfile *enc_profile;
482 const GstDiscovererVideoInfo *video_info =
483 GST_DISCOVERER_VIDEO_INFO (info);
484
485 if (!info || !gst_discoverer_video_info_is_image (video_info))
423486 return;
424487
425 caps = caps_from_video_stream_info (video);
488 caps = caps_from_video_stream_info (info);
426489
427490 for (i = profiles; !found && i; i = i->next) {
428491 profile = (GUPnPDLNAProfile *)(i->data);
429492 enc_profile = gupnp_dlna_profile_get_encoding_profile (profile);
430493
431494 /* Optimisation TODO: this can be pre-computed */
432 if (is_video_profile (enc_profile))
495 if (!is_video_profile (enc_profile))
433496 continue;
434497
435498 if (match_profile (enc_profile,
436499 caps,
437 GST_ENCODING_PROFILE_IMAGE)) {
500 GST_TYPE_ENCODING_VIDEO_PROFILE)) {
438501 /* Found a match */
439 *name = g_strdup (
440 gupnp_dlna_profile_get_name (profile));
441 *mime = g_strdup (
442 gupnp_dlna_profile_get_mime (profile));
502 *name = g_strdup (gupnp_dlna_profile_get_name (profile));
503 *mime = g_strdup (gupnp_dlna_profile_get_mime (profile));
443504 break;
444505 }
445506 }
448509 }
449510
450511 GUPnPDLNAInformation *
451 gupnp_dlna_information_new_from_discoverer_info (GstDiscovererInformation *info,
452 GList *profiles)
512 gupnp_dlna_information_new_from_discoverer_info (GstDiscovererInfo *info,
513 GList *profiles)
453514 {
454515 GUPnPDLNAInformation *dlna;
455 GstStreamType type = GST_STREAM_UNKNOWN;
456 GList *tmp = info->stream_list;
516 GList *video_list, *audio_list;
457517 gchar *name = NULL, *mime = NULL;
458518
459 while (tmp) {
460 GstStreamInformation *stream_info =
461 (GstStreamInformation *) tmp->data;
462
463 if (stream_info->streamtype == GST_STREAM_VIDEO)
464 type = GST_STREAM_VIDEO;
465 else if (stream_info->streamtype == GST_STREAM_IMAGE)
466 type = GST_STREAM_IMAGE;
467 else if (stream_info->streamtype == GST_STREAM_AUDIO &&
468 type != GST_STREAM_VIDEO)
469 type = GST_STREAM_AUDIO;
470
471 tmp = tmp->next;
472 }
473
474 if (type == GST_STREAM_AUDIO)
519 video_list = gst_discoverer_info_get_video_streams (info);
520 audio_list = gst_discoverer_info_get_audio_streams (info);
521 if (video_list) {
522 if ((g_list_length (video_list) ==1 ) &&
523 gst_discoverer_video_info_is_image
524 (GST_DISCOVERER_VIDEO_INFO
525 (video_list->data))) {
526 GstDiscovererStreamInfo *stream;
527 stream = (GstDiscovererStreamInfo *) video_list->data;
528 guess_image_profile (stream, &name, &mime, profiles);
529 } else
530 guess_video_profile (info, &name, &mime, profiles);
531 } else if (audio_list)
475532 guess_audio_profile (info, &name, &mime, profiles);
476 else if (type == GST_STREAM_VIDEO)
477 guess_video_profile (info, &name, &mime, profiles);
478 else if (type == GST_STREAM_IMAGE)
479 /* There will be only one GstStreamInformation for images */
480 guess_image_profile (info->stream_info, &name, &mime, profiles);
533
534 gst_discoverer_stream_info_list_free (audio_list);
535 gst_discoverer_stream_info_list_free (video_list);
481536
482537 dlna = gupnp_dlna_information_new (name, mime, info);
538
483539
484540 g_free (name);
485541 g_free (mime);
542
486543 return dlna;
487544 }
0 /*
1 * Copyright (C) 2010 Nokia Corporation.
2 *
3 * Authors: Arun Raghavan <arun.raghavan@collabora.co.uk>
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This library 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 GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the
17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 * Boston, MA 02111-1307, USA.
19 */
20
21 #include <glib.h>
22 #include <glib/gstdio.h>
23 #include <glib-object.h>
24 #include <libxml/xmlreader.h>
25 #include <libxml/relaxng.h>
26 #include <gst/pbutils/pbutils.h>
27 #include "profile-loading.h"
28 #include "gupnp-dlna-profile.h"
29 #include "gupnp-dlna-profile-private.h"
30
31 #define GST_CAPS_NULL_NAME "NULL"
32 #define DLNA_DATA_DIR DATA_DIR \
33 G_DIR_SEPARATOR_S "dlna-profiles" G_DIR_SEPARATOR_S
34
35 static gboolean
36 copy_func (GQuark field_id, const GValue *value, gpointer data)
37 {
38 GstStructure *st2 = (GstStructure *)data;
39
40 if (!gst_structure_has_field (st2, g_quark_to_string (field_id)))
41 gst_structure_id_set_value (st2, field_id, value);
42
43 return TRUE;
44 }
45
46 /* Note: It is assumed that caps1 and caps2 have only 1 structure each */
47 static GstCaps *
48 merge_caps (GstCaps *caps1, GstCaps *caps2)
49 {
50 GstStructure *st1, *st2;
51 GstCaps *ret;
52 gboolean any = FALSE;
53
54 /* If one of the caps GST_CAPS_ANY, gst_caps_merge will result in a
55 * GST_CAPS_ANY, which might not be correct for us */
56 if (!gst_caps_is_any (caps1) && !gst_caps_is_any (caps2)) {
57 any = TRUE;
58 gst_caps_merge (caps1, gst_caps_copy (caps2));
59 gst_caps_do_simplify (caps1);
60 }
61
62 ret = gst_caps_make_writable (caps1);
63 st1 = gst_caps_get_structure (ret, 0);
64 if (gst_caps_get_size (caps1) == 2)
65 /* Non-merged fields were copied to a second structure in caps
66 * at gst_merge_caps() time */
67 st2 = gst_caps_get_structure (ret, 1);
68 else
69 /* Either one of the caps was GST_CAPS_ANY, or there were no
70 * unmerged fields */
71 st2 = gst_caps_get_structure (caps2, 0);
72
73 /* If caps1 has a name, we retain it. If not, and caps2 does, caps1
74 * gets caps2's name. */
75 if ((g_strcmp0 (GST_CAPS_NULL_NAME,
76 gst_structure_get_name (st1)) == 0) &&
77 (g_strcmp0 (GST_CAPS_NULL_NAME,
78 gst_structure_get_name (st2)) != 0)) {
79 gst_structure_set_name (st1, gst_structure_get_name (st2));
80 }
81
82 /* We now walk over the structures and append any fields that are in
83 * caps2 but not in caps1. */
84 if (any || gst_caps_get_size (caps1) == 2)
85 gst_structure_foreach (st2, copy_func, st1);
86
87 if (gst_caps_get_size (caps1) == 2)
88 gst_caps_remove_structure (ret, 1);
89
90 return ret;
91 }
92
93 static xmlChar *
94 get_value (xmlTextReaderPtr reader)
95 {
96 xmlChar *value = NULL, *curr;
97 int ret = 1;
98
99 curr = xmlTextReaderName (reader);
100
101 /* This function may be called with reader pointing to a <field> or
102 * the element just below a <field>. In the former case, we move the
103 * cursor forward and then continue processing. */
104 if (xmlStrEqual (curr, BAD_CAST ("field")))
105 ret = xmlTextReaderRead (reader);
106 xmlFree (curr);
107
108 while (ret == 1) {
109 xmlChar *tag;
110
111 tag = xmlTextReaderName (reader);
112
113 if (xmlTextReaderNodeType (reader) == 1 &&
114 xmlStrEqual (tag, BAD_CAST ("value"))) {
115 /* <value> */
116
117 /* Note: This assumes you won't have a comment in the
118 * middle of your text */
119 do {
120 ret = xmlTextReaderRead (reader);
121 } while (ret == 1 &&
122 xmlTextReaderNodeType (reader) != 3 &&
123 xmlTextReaderNodeType (reader) != 15);
124
125 /* We're now at the real text between a <value> and a
126 * </value> */
127
128 if (xmlTextReaderNodeType (reader) == 3)
129 value = xmlTextReaderValue (reader);
130 }
131
132 if (xmlTextReaderNodeType (reader) == 15 &&
133 xmlStrEqual (tag, BAD_CAST ("value"))) {
134 /* </value> */
135 xmlFree (tag);
136
137 break;
138 }
139
140 xmlFree (tag);
141 ret = xmlTextReaderRead (reader);
142 }
143
144 if (!value)
145 g_warning ("Empty <value>s are illegal");
146
147 return value;
148 }
149
150 static void
151 xml_str_free (xmlChar *str, gpointer unused)
152 {
153 xmlFree (str);
154 }
155
156 static void
157 free_restrictions_struct (gpointer data, gpointer user_data)
158 {
159 GUPnPDLNARestrictions *restr = (GUPnPDLNARestrictions *)data;
160 if (restr) {
161 if (restr->caps)
162 gst_caps_unref (restr->caps);
163
164 g_free (restr);
165 }
166 }
167
168 static void
169 process_range (xmlTextReaderPtr reader, GString *caps_str)
170 {
171 xmlChar *min, *max;
172
173 min = xmlTextReaderGetAttribute (reader, BAD_CAST ("min"));
174 max = xmlTextReaderGetAttribute (reader, BAD_CAST ("max"));
175
176 g_string_append_printf (caps_str, "[ %s, %s ]", min, max);
177
178 xmlFree (min);
179 xmlFree (max);
180 }
181
182 static int
183 process_field (xmlTextReaderPtr reader,
184 GString *caps_str,
185 gboolean relaxed_mode,
186 gboolean extended_mode)
187 {
188 int ret;
189 xmlChar *name;
190 xmlChar *type;
191 xmlChar *used;
192 GList *values = NULL;
193 gboolean done = FALSE, skip = FALSE;
194
195 /*
196 * Parse the 'used' attribute and figure out the mode we
197 * need to follow.
198 */
199 used = xmlTextReaderGetAttribute (reader, BAD_CAST ("used"));
200 if (used) {
201 if ((relaxed_mode == FALSE) &&
202 xmlStrEqual (used, BAD_CAST ("in-relaxed"))) {
203 skip = TRUE;
204 } else if ((relaxed_mode == TRUE) &&
205 (xmlStrEqual (used, BAD_CAST ("in-strict")))) {
206 skip = TRUE;
207 }
208
209 xmlFree (used);
210 }
211
212 name = xmlTextReaderGetAttribute (reader, BAD_CAST ("name"));
213 type = xmlTextReaderGetAttribute (reader, BAD_CAST ("type"));
214
215 /*
216 * This function reads a <field> and appends it to caps_str in the
217 * GstCaps-as-a-string format:
218 *
219 * Single value: field = (type) value
220 * Multiple values: field = (type) { value1, value2, value3 }
221 * Range: field = (type) [ min, max ]
222 */
223
224 /* Fields are comma-separeted. The leading comma is okay for the first
225 * field - we will be prepending the restriction name to this string */
226 if (!skip)
227 g_string_append_printf (caps_str, ", %s = (%s) ", name, type);
228
229 xmlFree (name);
230 xmlFree (type);
231
232 ret = xmlTextReaderRead (reader);
233 while (ret == 1 && !done) {
234 xmlChar *tag;
235
236 tag = xmlTextReaderName (reader);
237
238 switch (xmlTextReaderNodeType (reader)) {
239 case 1:
240 if (skip)
241 break;
242
243 if (xmlStrEqual (tag, BAD_CAST ("range"))) {
244 /* <range> */
245 process_range (reader, caps_str);
246 } else if (xmlStrEqual (tag, BAD_CAST ("value"))) {
247 /* <value> */
248 xmlChar *value;
249
250 value = get_value (reader);
251
252 if (value)
253 values = g_list_append (values, value);
254 }
255
256 break;
257
258 case 15:
259 if (xmlStrEqual (tag, BAD_CAST ("field")))
260 /* </field> */
261 done = TRUE;
262
263 break;
264
265 default:
266 break;
267 }
268
269 xmlFree (tag);
270 ret = xmlTextReaderRead (reader);
271 }
272
273 if (skip)
274 return ret;
275
276 if (g_list_length (values) == 1)
277 /* Single value */
278 g_string_append_printf (caps_str,
279 "%s",
280 (xmlChar *) values->data);
281 else if (g_list_length (values) > 1) {
282 /* Multiple values */
283 GList *tmp = values->next;
284 g_string_append_printf (caps_str,
285 "{ %s",
286 (xmlChar *) values->data);
287
288 do {
289 g_string_append_printf (caps_str,
290 ", %s",
291 (xmlChar *) tmp->data);
292 } while ((tmp = tmp->next) != NULL);
293
294 g_string_append_printf (caps_str, " }");
295 }
296
297 if (values) {
298 g_list_foreach (values, (GFunc) xml_str_free, NULL);
299 g_list_free (values);
300 }
301
302 return ret;
303 }
304
305 static GUPnPDLNARestrictions *
306 process_parent (xmlTextReaderPtr reader, GUPnPDLNALoadState *data)
307 {
308 xmlChar *parent;
309 xmlChar *used;
310 GUPnPDLNARestrictions *restr = NULL;
311
312 /*
313 * Check to see if we need to follow any relaxed/strict mode
314 * restrictions.
315 */
316 used = xmlTextReaderGetAttribute (reader, BAD_CAST ("used"));
317 if (used) {
318 if ((data->relaxed_mode == FALSE) &&
319 xmlStrEqual (used, BAD_CAST ("in-relaxed"))) {
320 xmlFree (used);
321 return NULL;
322 } else if ((data->relaxed_mode == TRUE) &&
323 (xmlStrEqual (used, BAD_CAST ("in-strict")))) {
324 xmlFree (used);
325 return NULL;
326 }
327 }
328
329 parent = xmlTextReaderGetAttribute (reader, BAD_CAST ("name"));
330 restr = g_hash_table_lookup (data->restrictions, parent);
331
332 if (!restr) {
333 g_warning ("Could not find parent restriction: %s", parent);
334 return NULL;
335 }
336
337 xmlFree (parent);
338 xmlFree (used);
339
340 return restr;
341 }
342
343 static GUPnPDLNARestrictions *
344 process_restriction (xmlTextReaderPtr reader, GUPnPDLNALoadState *data)
345 {
346 GUPnPDLNARestrictions *restr = NULL;
347 GType type;
348 GstCaps *caps = NULL;
349 GString *caps_str = g_string_sized_new (100);
350 GList *parents = NULL, *tmp;
351 xmlChar *id, *name = NULL, *restr_type, *used;
352 int ret;
353 gboolean done = FALSE, skip = FALSE;
354
355 /*
356 * First we parse the 'used' attribute and figure out
357 * the mode we need to comply to.
358 */
359 used = xmlTextReaderGetAttribute (reader, BAD_CAST ("used"));
360 if (used) {
361 if ((data->relaxed_mode == FALSE) &&
362 xmlStrEqual (used, BAD_CAST ("in-relaxed"))) {
363 skip = TRUE;
364 } else if ((data->relaxed_mode == TRUE) &&
365 (xmlStrEqual (used, BAD_CAST ("in-strict")))) {
366 skip = TRUE;
367 }
368 }
369
370 /* We then walk through the fields in this restriction, and make a
371 * string that can be parsed by gst_caps_from_string (). We then make
372 * a GstCaps from this string */
373
374 id = xmlTextReaderGetAttribute (reader, BAD_CAST ("id"));
375 restr_type = xmlTextReaderGetAttribute (reader, BAD_CAST ("type"));
376
377 ret = xmlTextReaderRead (reader);
378 while (ret == 1 && !done) {
379 xmlChar *tag;
380
381 tag = xmlTextReaderName (reader);
382
383 switch (xmlTextReaderNodeType (reader)) {
384 case 1:
385 if (skip)
386 break;
387
388 if (xmlStrEqual (tag, BAD_CAST ("field"))) {
389 /* <field> */
390 xmlChar *field;
391
392 field = xmlTextReaderGetAttribute
393 (reader, BAD_CAST ("name"));
394
395 /* We handle the "name" field specially - if
396 * present, it is the caps name */
397 if (xmlStrEqual (field, BAD_CAST ("name")))
398 name = get_value (reader);
399 else
400 process_field (reader,
401 caps_str,
402 data->relaxed_mode,
403 data->extended_mode);
404
405 xmlFree (field);
406 } else if (xmlStrEqual (tag, BAD_CAST ("parent"))) {
407 /* <parent> */
408 GUPnPDLNARestrictions *restr =
409 process_parent (reader, data);
410
411 if (restr && restr->caps)
412 /* Collect parents in a list - we'll
413 * coalesce them later */
414 parents = g_list_append (parents,
415 gst_caps_copy
416 (restr->caps));
417 }
418
419 break;
420
421 case 15:
422 if (xmlStrEqual (tag, BAD_CAST ("restriction")))
423 /* </restriction> */
424 done = TRUE;
425
426 break;
427
428 default:
429 break;
430 }
431
432 xmlFree (tag);
433 ret = xmlTextReaderRead (reader);
434 }
435
436 if (skip)
437 goto out;
438
439 /* If the restriction doesn't have a name, we make it up */
440 if (!name)
441 name = BAD_CAST (g_strdup (GST_CAPS_NULL_NAME));
442 g_string_prepend (caps_str, (gchar *) name);
443 xmlFree (name);
444
445 if (xmlStrEqual (restr_type, BAD_CAST ("container")))
446 type = GST_TYPE_ENCODING_CONTAINER_PROFILE;
447 else if (xmlStrEqual (restr_type, BAD_CAST ("audio")))
448 type = GST_TYPE_ENCODING_AUDIO_PROFILE;
449 else if (xmlStrEqual (restr_type, BAD_CAST ("video")))
450 type = GST_TYPE_ENCODING_VIDEO_PROFILE;
451 else if (xmlStrEqual (restr_type, BAD_CAST ("image")))
452 type = GST_TYPE_ENCODING_VIDEO_PROFILE;
453 else {
454 g_warning ("Support for '%s' restrictions not yet implemented",
455 restr_type);
456 goto out;
457 }
458
459 caps = gst_caps_from_string (caps_str->str);
460 g_string_free (caps_str, TRUE);
461 g_return_val_if_fail (caps != NULL, NULL);
462
463 tmp = parents;
464 while (tmp) {
465 /* Merge all the parent caps. The child overrides parent
466 * attributes */
467 GstCaps *tmp_caps = (GstCaps *)tmp->data;
468 caps = merge_caps (caps, tmp_caps);
469 gst_caps_unref (tmp_caps);
470 tmp = tmp->next;
471 }
472
473 restr = g_new0 (GUPnPDLNARestrictions, 1);
474
475 restr->caps = gst_caps_copy (caps);
476 restr->type = type;
477
478 if (id)
479 g_hash_table_insert (data->restrictions, id, restr);
480
481 out:
482 xmlFree (restr_type);
483 if (used)
484 xmlFree (used);
485 if (caps)
486 gst_caps_unref (caps);
487 if (parents)
488 g_list_free (parents);
489
490 return restr;
491 }
492
493 static void
494 process_restrictions (xmlTextReaderPtr reader, GUPnPDLNALoadState *data)
495 {
496 int ret = xmlTextReaderRead (reader);
497
498 while (ret == 1) {
499 xmlChar *tag;
500
501 tag = xmlTextReaderName (reader);
502
503 switch (xmlTextReaderNodeType (reader)) {
504 case 1:
505 if (xmlStrEqual (tag, BAD_CAST ("restriction"))) {
506 /* <restriction> */
507 process_restriction (reader, data);
508 }
509
510 break;
511
512 case 15:
513 if (xmlStrEqual (tag, BAD_CAST ("restrictions"))) {
514 /* </restrictions> */
515 xmlFree (tag);
516 return;
517 }
518
519 default:
520 break;
521 }
522
523 xmlFree (tag);
524 ret = xmlTextReaderRead (reader);
525 }
526 }
527
528 static int
529 process_dlna_profile (xmlTextReaderPtr reader,
530 GList **profiles,
531 GUPnPDLNALoadState *data)
532 {
533 guint ret;
534 GUPnPDLNAProfile *profile = NULL;
535 GUPnPDLNAProfile *base = NULL;
536 GUPnPDLNARestrictions *restr = NULL;
537 GstCaps *temp_audio = NULL, *temp_video = NULL, *temp_container = NULL;
538 xmlChar *name, *mime, *id, *base_profile, *extended;
539 gboolean done = FALSE, is_extended = FALSE;
540
541 name = xmlTextReaderGetAttribute (reader, BAD_CAST ("name"));
542 mime = xmlTextReaderGetAttribute (reader, BAD_CAST ("mime"));
543 extended = xmlTextReaderGetAttribute (reader, BAD_CAST ("extended"));
544 id = xmlTextReaderGetAttribute (reader, BAD_CAST ("id"));
545 base_profile = xmlTextReaderGetAttribute (reader,
546 BAD_CAST ("base-profile"));
547
548 /* Create temporary place-holders for caps */
549 temp_container = gst_caps_new_empty ();
550 temp_video = gst_caps_new_empty ();
551 temp_audio = gst_caps_new_empty ();
552
553 if (!name) {
554 g_assert (mime == NULL);
555
556 /* We need a non-NULL string to not trigger asserts in the
557 * places these are used. Profiles without names are used
558 * only for inheritance, not for actual matching. */
559 name = xmlStrdup (BAD_CAST (""));
560 mime = xmlStrdup (BAD_CAST (""));
561 }
562
563 if (extended && xmlStrEqual (extended, BAD_CAST ("true"))) {
564 /* If we're not in extended mode, skip this profile */
565 if (!data->extended_mode)
566 goto out;
567
568 is_extended = TRUE;
569 }
570
571 ret = xmlTextReaderRead (reader);
572 while (ret == 1 && !done) {
573 xmlChar *tag;
574
575 tag = xmlTextReaderName (reader);
576
577 switch (xmlTextReaderNodeType (reader)) {
578 case 1:
579 if (xmlStrEqual (tag, BAD_CAST ("restriction")))
580 restr = process_restriction (reader, data);
581 else if (xmlStrEqual (tag, BAD_CAST ("parent")))
582 restr = process_parent (reader, data);
583
584 if (!restr)
585 break;
586
587 if (restr->type == GST_TYPE_ENCODING_CONTAINER_PROFILE)
588 gst_caps_merge (temp_container,
589 gst_caps_copy (restr->caps));
590 else if (restr->type == GST_TYPE_ENCODING_VIDEO_PROFILE)
591 gst_caps_merge (temp_video,
592 gst_caps_copy (restr->caps));
593 else if (restr->type == GST_TYPE_ENCODING_AUDIO_PROFILE)
594 gst_caps_merge (temp_audio,
595 gst_caps_copy (restr->caps));
596 else
597 g_assert_not_reached ();
598
599 break;
600
601 case 15:
602 if (xmlStrEqual (tag, BAD_CAST ("dlna-profile")))
603 done = TRUE;
604
605 default:
606 break;
607 }
608
609 xmlFree (tag);
610 ret = xmlTextReaderRead (reader);
611 }
612
613 if (base_profile) {
614 base = g_hash_table_lookup (data->profile_ids, base_profile);
615 if (!base)
616 g_warning ("Invalid base-profile reference");
617 }
618
619
620 /* create a new GUPnPDLNAProfile */
621 profile = gupnp_dlna_profile_new ((gchar *)name,
622 (gchar *)mime,
623 GST_CAPS_NONE,
624 GST_CAPS_NONE,
625 GST_CAPS_NONE,
626 is_extended);
627
628 /* Inherit from base profile, if it exists*/
629 if (base) {
630 const GstCaps *video_caps =
631 gupnp_dlna_profile_get_video_caps (base);
632 const GstCaps *audio_caps =
633 gupnp_dlna_profile_get_audio_caps (base);
634 const GstCaps *container_caps =
635 gupnp_dlna_profile_get_container_caps (base);
636
637 if (GST_IS_CAPS (video_caps))
638 gst_caps_merge (temp_video,
639 gst_caps_copy (video_caps));
640 if (GST_IS_CAPS (audio_caps))
641 gst_caps_merge (temp_audio,
642 gst_caps_copy (audio_caps));
643 if (GST_IS_CAPS (container_caps))
644 gst_caps_merge (temp_container,
645 gst_caps_copy (container_caps));
646
647 }
648
649
650 /* The merged caps will be our new GUPnPDLNAProfile */
651
652 if (GST_IS_CAPS (temp_container) && !gst_caps_is_empty (temp_container))
653 gupnp_dlna_profile_set_container_caps (profile, temp_container);
654 if (GST_IS_CAPS (temp_video) && !gst_caps_is_empty (temp_video))
655 gupnp_dlna_profile_set_video_caps (profile, temp_video);
656 if (GST_IS_CAPS (temp_audio) && !gst_caps_is_empty (temp_audio))
657 gupnp_dlna_profile_set_audio_caps (profile, temp_audio);
658
659 *profiles = g_list_append (*profiles, profile);
660
661 if (id) {
662 /* id is freed when the hash table is destroyed */
663 g_object_ref (profile);
664 g_hash_table_insert (data->profile_ids, id, profile);
665 }
666
667 out:
668
669 if (temp_container)
670 gst_caps_unref (temp_container);
671 if (temp_audio)
672 gst_caps_unref (temp_audio);
673 if (temp_video)
674 gst_caps_unref (temp_video);
675
676 xmlFree (mime);
677 xmlFree (name);
678 if (extended)
679 xmlFree (extended);
680 if (base_profile)
681 xmlFree (base_profile);
682
683 return ret;
684 }
685
686 static GList *
687 process_include (xmlTextReaderPtr reader, GUPnPDLNALoadState *data)
688 {
689 xmlChar *path;
690 GList *ret;
691
692 path = xmlTextReaderGetAttribute (reader, BAD_CAST ("ref"));
693
694 if (!g_path_is_absolute ((gchar *) path)) {
695 gchar *tmp = g_strconcat (DLNA_DATA_DIR,
696 G_DIR_SEPARATOR_S,
697 path,
698 NULL);
699 xmlFree (path);
700 path = BAD_CAST (tmp);
701 }
702
703 ret = gupnp_dlna_load_profiles_from_file ((gchar *) path,
704 data);
705 xmlFree (path);
706
707 return ret;
708 }
709
710 /* This can go away once we have a glib function to canonicalize paths (see
711 * https://bugzilla.gnome.org/show_bug.cgi?id=111848
712 *
713 * The implementationis not generic enough, but sufficient for our use. The
714 * idea is taken from Tristan Van Berkom's comment in the bug mentioned above:
715 *
716 * 1. cd dirname(path)
717 * 2. absdir = $CWD
718 * 3. cd $OLDPWD
719 * 4. abspath = absdir + basename(path)
720 */
721 static gchar *
722 canonicalize_path_name (const char *path)
723 {
724 gchar *dir_name = NULL, *file_name = NULL, *abs_dir = NULL,
725 *old_dir = NULL, *ret = NULL;
726
727 if (g_path_is_absolute (path))
728 return g_strdup (path);
729
730 old_dir = g_get_current_dir ();
731 dir_name = g_path_get_dirname (path);
732
733 if (g_chdir (dir_name) < 0) {
734 ret = g_strdup (path);
735 goto out;
736 }
737
738 abs_dir = g_get_current_dir ();
739 g_chdir (old_dir);
740
741 file_name = g_path_get_basename (path);
742 ret = g_build_filename (abs_dir, file_name, NULL);
743
744 out:
745 g_free (dir_name);
746 g_free (file_name);
747 g_free (abs_dir);
748 g_free (old_dir);
749
750 return ret;
751 }
752
753 GList *
754 gupnp_dlna_load_profiles_from_file (const char *file_name,
755 GUPnPDLNALoadState *data)
756 {
757 GList *profiles = NULL;
758 gchar *path = NULL;
759 xmlTextReaderPtr reader;
760 xmlRelaxNGParserCtxtPtr rngp;
761 xmlRelaxNGPtr rngs;
762 int ret;
763
764 path = canonicalize_path_name (file_name);
765 if (g_hash_table_lookup_extended (data->files_hash, path, NULL, NULL))
766 goto out;
767 else
768 g_hash_table_insert (data->files_hash, g_strdup (path), NULL);
769
770 reader = xmlNewTextReaderFilename (path);
771 if (!reader)
772 goto out;
773
774 /* Load the schema for validation */
775 rngp = xmlRelaxNGNewParserCtxt (DLNA_DATA_DIR "dlna-profiles.rng");
776 rngs = xmlRelaxNGParse (rngp);
777 xmlTextReaderRelaxNGSetSchema (reader, rngs);
778
779 ret = xmlTextReaderRead (reader);
780 while (ret == 1) {
781 xmlChar *tag;
782
783 tag = xmlTextReaderName (reader);
784
785 switch (xmlTextReaderNodeType (reader)) {
786 /* Start tag */
787 case 1:
788 if (xmlStrEqual (tag, BAD_CAST ("include"))) {
789 /* <include> */
790 GList *include =
791 process_include (reader,
792 data);
793 profiles = g_list_concat (profiles,
794 include);
795 } else if (xmlStrEqual (tag,
796 BAD_CAST ("restrictions"))) {
797 /* <restrictions> */
798 process_restrictions (reader,
799 data);
800 } else if (xmlStrEqual (tag,
801 BAD_CAST ("dlna-profile"))) {
802 /* <dlna-profile> */
803 process_dlna_profile (reader,
804 &profiles,
805 data);
806
807 }
808
809 break;
810
811 default:
812 break;
813 }
814
815 xmlFree (tag);
816 ret = xmlTextReaderRead (reader);
817 }
818
819 xmlFreeTextReader (reader);
820 xmlRelaxNGFree (rngs);
821 xmlRelaxNGFreeParserCtxt (rngp);
822
823 out:
824 g_free (path);
825
826 return profiles;
827 }
828
829 GList *
830 gupnp_dlna_load_profiles_from_dir (gchar *profile_dir, GUPnPDLNALoadState *data)
831 {
832 GDir *dir;
833
834 data->restrictions =
835 g_hash_table_new_full (g_str_hash,
836 g_str_equal,
837 (GDestroyNotify) xmlFree,
838 (GDestroyNotify)
839 free_restrictions_struct);
840 data->profile_ids =
841 g_hash_table_new_full (g_str_hash,
842 g_str_equal,
843 (GDestroyNotify) xmlFree,
844 (GDestroyNotify)
845 g_object_unref);
846
847 GList *profiles = NULL;
848
849 if ((dir = g_dir_open (profile_dir, 0, NULL))) {
850 const gchar *entry;
851
852 while ((entry = g_dir_read_name (dir))) {
853 gchar *path = g_strconcat (profile_dir,
854 G_DIR_SEPARATOR_S,
855 entry,
856 NULL);
857
858 if (g_str_has_suffix (entry, ".xml") &&
859 g_file_test (path, G_FILE_TEST_IS_REGULAR)) {
860 profiles = g_list_concat (profiles,
861 gupnp_dlna_load_profiles_from_file (
862 path,
863 data));
864 }
865
866 g_free (path);
867 }
868
869 g_dir_close (dir);
870 }
871
872 g_hash_table_unref (data->restrictions);
873 g_hash_table_unref (data->profile_ids);
874
875 return profiles;
876 }
877
878 GList *
879 gupnp_dlna_load_profiles_from_disk (gboolean relaxed_mode,
880 gboolean extended_mode)
881 {
882 GUPnPDLNALoadState *load_data;
883 GList *ret, *i;
884
885 load_data = g_new0 (GUPnPDLNALoadState, 1);
886
887 if (load_data) {
888 load_data->files_hash = g_hash_table_new_full (g_str_hash,
889 g_str_equal,
890 g_free,
891 NULL);
892 load_data->relaxed_mode = relaxed_mode;
893 load_data->extended_mode = extended_mode;
894 }
895
896 ret = gupnp_dlna_load_profiles_from_dir (DLNA_DATA_DIR,
897 load_data);
898
899 /* Now that we're done loading profiles, remove all profiles with no
900 * name which are only used for inheritance and not matching. */
901 i = ret;
902 while (i) {
903 const gchar *name;
904 GUPnPDLNAProfile *profile = i->data;
905 GstEncodingProfile *enc_profile =
906 gupnp_dlna_profile_get_encoding_profile
907 (profile);
908 GList *tmp = g_list_next (i);
909
910 name = gst_encoding_profile_get_name (enc_profile);
911 if (name[0] == '\0') {
912 ret = g_list_delete_link (ret, i);
913 g_object_unref (profile);
914 }
915
916 i = tmp;
917 }
918
919 g_hash_table_unref (load_data->files_hash);
920 g_free (load_data);
921 load_data = NULL;
922
923 return ret;
924 }
0 /*
1 * Copyright (C) 2009 Nokia Corporation.
2 *
3 * Authors: Zeeshan Ali <zeeshanak@gnome.org>
4 * <zeeshan.ali@nokia.com>
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This library 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 GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 02111-1307, USA.
20 */
21
22 #ifndef __GUPNP_DLNA_LOAD_H__
23 #define __GUPNP_DLNA_LOAD_H__
24
25 #include <glib.h>
26
27 G_BEGIN_DECLS
28
29 typedef struct {
30 GHashTable *restrictions;
31 GHashTable *profile_ids;
32 GHashTable *files_hash;
33 gboolean relaxed_mode;
34 gboolean extended_mode;
35 } GUPnPDLNALoadState;
36
37 typedef struct {
38 GstCaps *caps;
39 GType type;
40 } GUPnPDLNARestrictions;
41
42 GList *
43 gupnp_dlna_load_profiles_from_file (const gchar *file_name,
44 GUPnPDLNALoadState *data);
45 GList *
46 gupnp_dlna_load_profiles_from_dir (gchar *profile_dir,
47 GUPnPDLNALoadState *data);
48
49 GList *
50 gupnp_dlna_load_profiles_from_disk (gboolean relaxed_mode,
51 gboolean extended_mode);
52
53 G_END_DECLS
54
55 #endif /* __GUPNP_DLNA_LOAD_H__ */
+869
-1201
ltmain.sh less more
00 # Generated from ltmain.m4sh.
11
2 # libtool (GNU libtool) 2.2.10
2 # ltmain.sh (GNU libtool) 2.2.6b
33 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
44
5 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
6 # 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc.
76 # This is free software; see the source for copying conditions. There is NO
87 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
98
3231 #
3332 # Provide generalized library-building support services.
3433 #
35 # --config show all configuration variables
36 # --debug enable verbose shell tracing
37 # -n, --dry-run display commands without modifying any files
38 # --features display basic configuration information and exit
39 # --mode=MODE use operation mode MODE
40 # --preserve-dup-deps don't remove duplicate dependency libraries
41 # --quiet, --silent don't print informational messages
42 # --no-quiet, --no-silent
43 # print informational messages (default)
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
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 # --tag=TAG use configuration variables from tag TAG
42 # -v, --verbose print informational messages (default)
43 # --version print version information
44 # -h, --help print short or long help message
4945 #
5046 # MODE must be one of the following:
5147 #
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
48 # clean remove files from the build directory
49 # compile compile a source file into a libtool object
50 # execute automatically set library path, then run a program
51 # finish complete the installation of libtool libraries
52 # install install libraries or executables
53 # link create a library or an executable
54 # uninstall remove libraries from an installed directory
5955 #
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.
56 # MODE-ARGS vary depending on the MODE.
6257 # Try `$progname --help --mode=MODE' for a more detailed description of MODE.
6358 #
6459 # When reporting a bug, please describe a test case to reproduce it and
6560 # include the following information:
6661 #
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.2.10
73 # automake: $automake_version
74 # autoconf: $autoconf_version
62 # host-triplet: $host
63 # shell: $SHELL
64 # compiler: $LTCC
65 # compiler flags: $LTCFLAGS
66 # linker: $LD (gnu? $with_gnu_ld)
67 # $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
68 # automake: $automake_version
69 # autoconf: $autoconf_version
7570 #
7671 # Report bugs to <bug-libtool@gnu.org>.
7772
78 PROGRAM=libtool
73 PROGRAM=ltmain.sh
7974 PACKAGE=libtool
80 VERSION=2.2.10
75 VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"
8176 TIMESTAMP=""
82 package_revision=1.3175
77 package_revision=1.3017
8378
8479 # Be Bourne compatible
8580 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
9590 BIN_SH=xpg4; export BIN_SH # for Tru64
9691 DUALCASE=1; export DUALCASE # for MKS sh
9792
98 # A function that is used when there is no print builtin or printf.
99 func_fallback_echo ()
100 {
101 eval 'cat <<_LTECHO_EOF
102 $1
103 _LTECHO_EOF'
104 }
105
10693 # NLS nuisances: We save the old values to restore during execute mode.
94 # Only set LANG and LC_ALL to C if already set.
95 # These must not be set unconditionally because not all systems understand
96 # e.g. LANG=C (notably SCO).
10797 lt_user_locale=
10898 lt_safe_locale=
10999 for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
116106 lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
117107 fi"
118108 done
119 LC_ALL=C
120 LANGUAGE=C
121 export LANGUAGE LC_ALL
122109
123110 $lt_unset CDPATH
124111
125112
126 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
127 # is ksh but when the shell is invoked as "sh" and the current value of
128 # the _XPG environment variable is not equal to 1 (one), the special
129 # positional parameter $0, within a function call, is the name of the
130 # function.
131 progpath="$0"
132113
133114
134115
135116 : ${CP="cp -f"}
136 test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
137 : ${EGREP="grep -E"}
138 : ${FGREP="grep -F"}
139 : ${GREP="grep"}
117 : ${ECHO="echo"}
118 : ${EGREP="/bin/grep -E"}
119 : ${FGREP="/bin/grep -F"}
120 : ${GREP="/bin/grep"}
140121 : ${LN_S="ln -s"}
141122 : ${MAKE="make"}
142123 : ${MKDIR="mkdir"}
143124 : ${MV="mv -f"}
144125 : ${RM="rm -f"}
145 : ${SED="sed"}
126 : ${SED="/bin/sed"}
146127 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
147128 : ${Xsed="$SED -e 1s/^X//"}
148129
177158 func_dirname_and_basename ()
178159 {
179160 # Extract subdirectory from the argument.
180 func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
161 func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
181162 if test "X$func_dirname_result" = "X${1}"; then
182163 func_dirname_result="${3}"
183164 else
184165 func_dirname_result="$func_dirname_result${2}"
185166 fi
186 func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
167 func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
187168 }
188169
189170 # Generated shell functions inserted here.
190171
191 # These SED scripts presuppose an absolute path with a trailing slash.
192 pathcar='s,^/\([^/]*\).*$,\1,'
193 pathcdr='s,^/[^/]*,,'
194 removedotparts=':dotsl
195 s@/\./@/@g
196 t dotsl
197 s,/\.$,/,'
198 collapseslashes='s@/\{1,\}@/@g'
199 finalslash='s,/*$,/,'
200
201 # func_normal_abspath PATH
202 # Remove doubled-up and trailing slashes, "." path components,
203 # and cancel out any ".." path components in PATH after making
204 # it an absolute path.
205 # value returned in "$func_normal_abspath_result"
206 func_normal_abspath ()
207 {
208 # Start from root dir and reassemble the path.
209 func_normal_abspath_result=
210 func_normal_abspath_tpath=$1
211 func_normal_abspath_altnamespace=
212 case $func_normal_abspath_tpath in
213 "")
214 # Empty path, that just means $cwd.
215 func_stripname '' '/' "`pwd`"
216 func_normal_abspath_result=$func_stripname_result
217 return
218 ;;
219 # The next three entries are used to spot a run of precisely
220 # two leading slashes without using negated character classes;
221 # we take advantage of case's first-match behaviour.
222 ///*)
223 # Unusual form of absolute path, do nothing.
224 ;;
225 //*)
226 # Not necessarily an ordinary path; POSIX reserves leading '//'
227 # and for example Cygwin uses it to access remote file shares
228 # over CIFS/SMB, so we conserve a leading double slash if found.
229 func_normal_abspath_altnamespace=/
230 ;;
231 /*)
232 # Absolute path, do nothing.
233 ;;
234 *)
235 # Relative path, prepend $cwd.
236 func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
237 ;;
238 esac
239 # Cancel out all the simple stuff to save iterations. We also want
240 # the path to end with a slash for ease of parsing, so make sure
241 # there is one (and only one) here.
242 func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
243 -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
244 while :; do
245 # Processed it all yet?
246 if test "$func_normal_abspath_tpath" = / ; then
247 # If we ascended to the root using ".." the result may be empty now.
248 if test -z "$func_normal_abspath_result" ; then
249 func_normal_abspath_result=/
250 fi
251 break
252 fi
253 func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
254 -e "$pathcar"`
255 func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
256 -e "$pathcdr"`
257 # Figure out what to do with it
258 case $func_normal_abspath_tcomponent in
259 "")
260 # Trailing empty path component, ignore it.
261 ;;
262 ..)
263 # Parent dir; strip last assembled component from result.
264 func_dirname "$func_normal_abspath_result"
265 func_normal_abspath_result=$func_dirname_result
266 ;;
267 *)
268 # Actual path component, append it.
269 func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
270 ;;
271 esac
272 done
273 # Restore leading double-slash if one was found on entry.
274 func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
275 }
276
277 # func_relative_path SRCDIR DSTDIR
278 # generates a relative path from SRCDIR to DSTDIR, with a trailing
279 # slash if non-empty, suitable for immediately appending a filename
280 # without needing to append a separator.
281 # value returned in "$func_relative_path_result"
282 func_relative_path ()
283 {
284 func_relative_path_result=
285 func_normal_abspath "$1"
286 func_relative_path_tlibdir=$func_normal_abspath_result
287 func_normal_abspath "$2"
288 func_relative_path_tbindir=$func_normal_abspath_result
289
290 # Ascend the tree starting from libdir
291 while :; do
292 # check if we have found a prefix of bindir
293 case $func_relative_path_tbindir in
294 $func_relative_path_tlibdir)
295 # found an exact match
296 func_relative_path_tcancelled=
297 break
298 ;;
299 $func_relative_path_tlibdir*)
300 # found a matching prefix
301 func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
302 func_relative_path_tcancelled=$func_stripname_result
303 if test -z "$func_relative_path_result"; then
304 func_relative_path_result=.
305 fi
306 break
307 ;;
308 *)
309 func_dirname $func_relative_path_tlibdir
310 func_relative_path_tlibdir=${func_dirname_result}
311 if test "x$func_relative_path_tlibdir" = x ; then
312 # Have to descend all the way to the root!
313 func_relative_path_result=../$func_relative_path_result
314 func_relative_path_tcancelled=$func_relative_path_tbindir
315 break
316 fi
317 func_relative_path_result=../$func_relative_path_result
318 ;;
319 esac
320 done
321
322 # Now calculate path; take care to avoid doubling-up slashes.
323 func_stripname '' '/' "$func_relative_path_result"
324 func_relative_path_result=$func_stripname_result
325 func_stripname '/' '/' "$func_relative_path_tcancelled"
326 if test "x$func_stripname_result" != x ; then
327 func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
328 fi
329
330 # Normalisation. If bindir is libdir, return empty string,
331 # else relative path ending with a slash; either way, target
332 # file name can be directly appended.
333 if test ! -z "$func_relative_path_result"; then
334 func_stripname './' '' "$func_relative_path_result/"
335 func_relative_path_result=$func_stripname_result
336 fi
337 }
172 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
173 # is ksh but when the shell is invoked as "sh" and the current value of
174 # the _XPG environment variable is not equal to 1 (one), the special
175 # positional parameter $0, within a function call, is the name of the
176 # function.
177 progpath="$0"
338178
339179 # The name of this program:
180 # In the unlikely event $progname began with a '-', it would play havoc with
181 # func_echo (imagine progname=-n), so we prepend ./ in that case:
340182 func_dirname_and_basename "$progpath"
341183 progname=$func_basename_result
184 case $progname in
185 -*) progname=./$progname ;;
186 esac
342187
343188 # Make sure we have an absolute path for reexecution:
344189 case $progpath in
412257 :
413258 }
414259
415 # func_echo_all arg...
416 # Invoke $ECHO with all args, space-separated.
417 func_echo_all ()
418 {
419 $ECHO "$*"
420 }
421
422260 # func_error arg...
423261 # Echo program name prefixed message to standard error.
424262 func_error ()
487325 case $my_directory_path in */*) ;; *) break ;; esac
488326
489327 # ...otherwise throw away the child directory and loop
490 my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
328 my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
491329 done
492 my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
330 my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
493331
494332 save_mkdir_p_IFS="$IFS"; IFS=':'
495333 for my_dir in $my_dir_list; do
539377 func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
540378 fi
541379
542 $ECHO "$my_tmpdir"
380 $ECHO "X$my_tmpdir" | $Xsed
543381 }
544382
545383
553391 {
554392 case $1 in
555393 *[\\\`\"\$]*)
556 func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
394 func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
557395 *)
558396 func_quote_for_eval_unquoted_result="$1" ;;
559397 esac
580418 {
581419 case $1 in
582420 *[\\\`\"]*)
583 my_arg=`$ECHO "$1" | $SED \
421 my_arg=`$ECHO "X$1" | $Xsed \
584422 -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
585423 *)
586424 my_arg="$1" ;;
650488 }
651489
652490
491
492
493
653494 # func_version
654495 # Echo version message to standard output and exit.
655496 func_version ()
656497 {
657 $SED -n '/(C)/!b go
658 :more
659 /\./!{
660 N
661 s/\n# / /
662 b more
663 }
664 :go
665 /^# '$PROGRAM' (GNU /,/# warranty; / {
498 $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
666499 s/^# //
667500 s/^# *$//
668501 s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
675508 # Echo short help message to standard output and exit.
676509 func_usage ()
677510 {
678 $SED -n '/^# Usage:/,/^# *.*--help/ {
511 $SED -n '/^# Usage:/,/# -h/ {
679512 s/^# //
680513 s/^# *$//
681514 s/\$progname/'$progname'/
682515 p
683516 }' < "$progpath"
684 echo
517 $ECHO
685518 $ECHO "run \`$progname --help | more' for full usage"
686519 exit $?
687520 }
688521
689 # func_help [NOEXIT]
690 # Echo long help message to standard output and exit,
691 # unless 'noexit' is passed as argument.
522 # func_help
523 # Echo long help message to standard output and exit.
692524 func_help ()
693525 {
694526 $SED -n '/^# Usage:/,/# Report bugs to/ {
705537 s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
706538 p
707539 }' < "$progpath"
708 ret=$?
709 if test -z "$1"; then
710 exit $ret
711 fi
540 exit $?
712541 }
713542
714543 # func_missing_arg argname
716545 # exit_cmd.
717546 func_missing_arg ()
718547 {
719 func_error "missing argument for $1."
548 func_error "missing argument for $1"
720549 exit_cmd=exit
721550 }
722551
726555
727556
728557
558 # Check that we have a working $ECHO.
559 if test "X$1" = X--no-reexec; then
560 # Discard the --no-reexec flag, and continue.
561 shift
562 elif test "X$1" = X--fallback-echo; then
563 # Avoid inline document here, it may be left over
564 :
565 elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
566 # Yippee, $ECHO works!
567 :
568 else
569 # Restart under the correct shell, and then maybe $ECHO will work.
570 exec $SHELL "$progpath" --no-reexec ${1+"$@"}
571 fi
572
573 if test "X$1" = X--fallback-echo; then
574 # used as fallback echo
575 shift
576 cat <<EOF
577 $*
578 EOF
579 exit $EXIT_SUCCESS
580 fi
729581
730582 magic="%%%MAGIC variable%%%"
731583 magic_exe="%%%MAGIC EXE variable%%%"
783635 # Display the features supported by this script.
784636 func_features ()
785637 {
786 echo "host: $host"
638 $ECHO "host: $host"
787639 if test "$build_libtool_libs" = yes; then
788 echo "enable shared libraries"
640 $ECHO "enable shared libraries"
789641 else
790 echo "disable shared libraries"
642 $ECHO "disable shared libraries"
791643 fi
792644 if test "$build_old_libs" = yes; then
793 echo "enable static libraries"
645 $ECHO "enable static libraries"
794646 else
795 echo "disable static libraries"
647 $ECHO "disable static libraries"
796648 fi
797649
798650 exit $?
919771
920772 --quiet|--silent) preserve_args="$preserve_args $opt"
921773 opt_silent=:
922 opt_verbose=false
923 ;;
924
925 --no-quiet|--no-silent)
926 preserve_args="$preserve_args $opt"
927 opt_silent=false
928774 ;;
929775
930776 --verbose| -v) preserve_args="$preserve_args $opt"
931777 opt_silent=false
932 opt_verbose=:
933 ;;
934
935 --no-verbose) preserve_args="$preserve_args $opt"
936 opt_verbose=false
937778 ;;
938779
939780 --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break
951792
952793 -\?|-h) func_usage ;;
953794 --help) opt_help=: ;;
954 --help-all) opt_help=': help-all' ;;
955795 --version) func_version ;;
956796
957797 -*) func_fatal_help "unrecognized option \`$opt'" ;;
11751015 func_quote_for_eval "$arg"
11761016 CC_quoted="$CC_quoted $func_quote_for_eval_result"
11771017 done
1178 CC_expanded=`func_echo_all $CC`
1179 CC_quoted_expanded=`func_echo_all $CC_quoted`
11801018 case $@ in
11811019 # Blanks in the command may have been stripped by the calling shell,
11821020 # but not from the CC environment variable when configure was run.
1183 " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
1184 " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
1021 " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
11851022 # Blanks at the start of $base_compile will cause this to fail
11861023 # if we don't check for them as well.
11871024 *)
11951032 func_quote_for_eval "$arg"
11961033 CC_quoted="$CC_quoted $func_quote_for_eval_result"
11971034 done
1198 CC_expanded=`func_echo_all $CC`
1199 CC_quoted_expanded=`func_echo_all $CC_quoted`
12001035 case "$@ " in
1201 " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
1202 " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
1036 " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
12031037 # The compiler in the base compile command matches
12041038 # the one in the tagged configuration.
12051039 # Assume this is the tagged configuration we want.
13781212 *.[cCFSifmso] | \
13791213 *.ada | *.adb | *.ads | *.asm | \
13801214 *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
1381 *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup)
1215 *.[fF][09]? | *.for | *.java | *.obj | *.sx)
13821216 func_xform "$libobj"
13831217 libobj=$func_xform_result
13841218 ;;
14531287 # Calculate the filename of the output object if compiler does
14541288 # not support -o with -c
14551289 if test "$compiler_c_o" = no; then
1456 output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
1290 output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
14571291 lockfile="$output_obj.lock"
14581292 else
14591293 output_obj=
16101444 }
16111445
16121446 $opt_help || {
1613 test "$mode" = compile && func_mode_compile ${1+"$@"}
1447 test "$mode" = compile && func_mode_compile ${1+"$@"}
16141448 }
16151449
16161450 func_mode_help ()
16471481
16481482 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
16491483 -no-suppress do not suppress compiler output for multiple passes
1650 -prefer-pic try to build PIC objects only
1651 -prefer-non-pic try to build non-PIC objects only
1484 -prefer-pic try to building PIC objects only
1485 -prefer-non-pic try to building non-PIC objects only
16521486 -shared do not build a \`.o' file suitable for static linking
16531487 -static only build a \`.o' file suitable for static linking
1654 -Wc,FLAG pass FLAG directly to the compiler
16551488
16561489 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
16571490 from the given SOURCEFILE.
17041537
17051538 The following components of INSTALL-COMMAND are treated specially:
17061539
1707 -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation
1540 -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation
17081541
17091542 The rest of the components are interpreted as arguments to that command (only
17101543 BSD-compatible install options are recognized)."
17241557
17251558 -all-static do not do any dynamic linking at all
17261559 -avoid-version do not add a version suffix if possible
1727 -bindir BINDIR specify path to binaries directory (for systems where
1728 libraries must be found in the PATH setting at runtime)
17291560 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
17301561 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
17311562 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
17541585 -version-info CURRENT[:REVISION[:AGE]]
17551586 specify library version info [each variable defaults to 0]
17561587 -weak LIBNAME declare that the target provides the LIBNAME interface
1757 -Wc,FLAG
1758 -Xcompiler FLAG pass linker-specific FLAG directly to the compiler
1759 -Wl,FLAG
1760 -Xlinker FLAG pass linker-specific FLAG directly to the linker
1761 -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC)
17621588
17631589 All other options (arguments beginning with \`-') are ignored.
17641590
17961622 ;;
17971623 esac
17981624
1799 echo
1625 $ECHO
18001626 $ECHO "Try \`$progname --help' for more information about other modes."
1627
1628 exit $?
18011629 }
18021630
1803 # Now that we've collected a possible --mode arg, show help if necessary
1804 if $opt_help; then
1805 if test "$opt_help" = :; then
1806 func_mode_help
1807 else
1808 {
1809 func_help noexit
1810 for mode in compile link execute install finish uninstall clean; do
1811 func_mode_help
1812 done
1813 } | sed -n '1p; 2,$s/^Usage:/ or: /p'
1814 {
1815 func_help noexit
1816 for mode in compile link execute install finish uninstall clean; do
1817 echo
1818 func_mode_help
1819 done
1820 } |
1821 sed '1d
1822 /^When reporting/,/^Report/{
1823 H
1824 d
1825 }
1826 $x
1827 /information about other modes/d
1828 /more detailed .*MODE/d
1829 s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
1830 fi
1831 exit $?
1832 fi
1631 # Now that we've collected a possible --mode arg, show help if necessary
1632 $opt_help && func_mode_help
18331633
18341634
18351635 # func_mode_execute arg...
19111711 for file
19121712 do
19131713 case $file in
1914 -* | *.la | *.lo ) ;;
1714 -*) ;;
19151715 *)
19161716 # Do a test to see if this is really a libtool program.
19171717 if func_ltwrapper_script_p "$file"; then
19531753 # Display what would be done.
19541754 if test -n "$shlibpath_var"; then
19551755 eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
1956 echo "export $shlibpath_var"
1756 $ECHO "export $shlibpath_var"
19571757 fi
19581758 $ECHO "$cmd$args"
19591759 exit $EXIT_SUCCESS
19941794 # Exit here if they wanted silent mode.
19951795 $opt_silent && exit $EXIT_SUCCESS
19961796
1997 echo "----------------------------------------------------------------------"
1998 echo "Libraries have been installed in:"
1797 $ECHO "X----------------------------------------------------------------------" | $Xsed
1798 $ECHO "Libraries have been installed in:"
19991799 for libdir in $libdirs; do
20001800 $ECHO " $libdir"
20011801 done
2002 echo
2003 echo "If you ever happen to want to link against installed libraries"
2004 echo "in a given directory, LIBDIR, you must either use libtool, and"
2005 echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
2006 echo "flag during linking and do at least one of the following:"
1802 $ECHO
1803 $ECHO "If you ever happen to want to link against installed libraries"
1804 $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
1805 $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
1806 $ECHO "flag during linking and do at least one of the following:"
20071807 if test -n "$shlibpath_var"; then
2008 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
2009 echo " during execution"
1808 $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable"
1809 $ECHO " during execution"
20101810 fi
20111811 if test -n "$runpath_var"; then
2012 echo " - add LIBDIR to the \`$runpath_var' environment variable"
2013 echo " during linking"
1812 $ECHO " - add LIBDIR to the \`$runpath_var' environment variable"
1813 $ECHO " during linking"
20141814 fi
20151815 if test -n "$hardcode_libdir_flag_spec"; then
20161816 libdir=LIBDIR
20221822 $ECHO " - have your system administrator run these commands:$admincmds"
20231823 fi
20241824 if test -f /etc/ld.so.conf; then
2025 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
1825 $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
20261826 fi
2027 echo
2028
2029 echo "See any operating system documentation about shared libraries for"
1827 $ECHO
1828
1829 $ECHO "See any operating system documentation about shared libraries for"
20301830 case $host in
20311831 solaris2.[6789]|solaris2.1[0-9])
2032 echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
2033 echo "pages."
1832 $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
1833 $ECHO "pages."
20341834 ;;
20351835 *)
2036 echo "more information, such as the ld(1) and ld.so(8) manual pages."
1836 $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
20371837 ;;
20381838 esac
2039 echo "----------------------------------------------------------------------"
1839 $ECHO "X----------------------------------------------------------------------" | $Xsed
20401840 exit $EXIT_SUCCESS
20411841 }
20421842
20511851 # install_prog (especially on Windows NT).
20521852 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
20531853 # Allow the use of GNU shtool's install command.
2054 case $nonopt in *shtool*) :;; *) false;; esac; then
1854 $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
20551855 # Aesthetically quote it.
20561856 func_quote_for_eval "$nonopt"
20571857 install_prog="$func_quote_for_eval_result "
20661866 # Aesthetically quote it.
20671867 func_quote_for_eval "$arg"
20681868 install_prog="$install_prog$func_quote_for_eval_result"
2069 install_shared_prog=$install_prog
2070 case " $install_prog " in
2071 *[\\\ /]cp\ *) install_cp=: ;;
2072 *) install_cp=false ;;
2073 esac
20741869
20751870 # We need to accept at least all the BSD install flags.
20761871 dest=
20801875 install_type=
20811876 isdir=no
20821877 stripme=
2083 no_mode=:
20841878 for arg
20851879 do
2086 arg2=
20871880 if test -n "$dest"; then
20881881 files="$files $dest"
20891882 dest=$arg
20931886 case $arg in
20941887 -d) isdir=yes ;;
20951888 -f)
2096 if $install_cp; then :; else
2097 prev=$arg
2098 fi
1889 case " $install_prog " in
1890 *[\\\ /]cp\ *) ;;
1891 *) prev=$arg ;;
1892 esac
20991893 ;;
21001894 -g | -m | -o)
21011895 prev=$arg
21091903 *)
21101904 # If the previous option needed an argument, then skip it.
21111905 if test -n "$prev"; then
2112 if test "x$prev" = x-m && test -n "$install_override_mode"; then
2113 arg2=$install_override_mode
2114 no_mode=false
2115 fi
21161906 prev=
21171907 else
21181908 dest=$arg
21241914 # Aesthetically quote the argument.
21251915 func_quote_for_eval "$arg"
21261916 install_prog="$install_prog $func_quote_for_eval_result"
2127 if test -n "$arg2"; then
2128 func_quote_for_eval "$arg2"
2129 fi
2130 install_shared_prog="$install_shared_prog $func_quote_for_eval_result"
21311917 done
21321918
21331919 test -z "$install_prog" && \
21351921
21361922 test -n "$prev" && \
21371923 func_fatal_help "the \`$prev' option requires an argument"
2138
2139 if test -n "$install_override_mode" && $no_mode; then
2140 if $install_cp; then :; else
2141 func_quote_for_eval "$install_override_mode"
2142 install_shared_prog="$install_shared_prog -m $func_quote_for_eval_result"
2143 fi
2144 fi
21451924
21461925 if test -z "$files"; then
21471926 if test -z "$dest"; then
22302009
22312010 if test -n "$relink_command"; then
22322011 # Determine the prefix the user has applied to our future dir.
2233 inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
2012 inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
22342013
22352014 # Don't allow the user to place us outside of our expected
22362015 # location b/c this prevents finding dependent libraries that
22432022
22442023 if test -n "$inst_prefix_dir"; then
22452024 # Stick the inst_prefix_dir data into the link command.
2246 relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
2025 relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
22472026 else
2248 relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
2027 relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
22492028 fi
22502029
22512030 func_warning "relinking \`$file'"
22632042 test -n "$relink_command" && srcname="$realname"T
22642043
22652044 # Install the shared library and build the symlinks.
2266 func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
2045 func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
22672046 'exit $?'
22682047 tstripme="$stripme"
22692048 case $host_os in
24032182 if test -f "$lib"; then
24042183 func_source "$lib"
24052184 fi
2406 libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
2185 libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
24072186 if test -n "$libdir" && test ! -f "$libfile"; then
24082187 func_warning "\`$lib' has not been installed in \`$libdir'"
24092188 finalize=no
24222201 file="$func_basename_result"
24232202 outputname="$tmpdir/$file"
24242203 # Replace the output file specification.
2425 relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
2204 relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
24262205
24272206 $opt_silent || {
24282207 func_quote_for_expand "$relink_command"
24412220 }
24422221 else
24432222 # Install the binary that we compiled earlier.
2444 file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
2223 file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
24452224 fi
24462225 fi
24472226
25432322 extern \"C\" {
25442323 #endif
25452324
2546 #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
2547 #pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
2548 #endif
2549
25502325 /* External symbol declarations for the compiler. */\
25512326 "
25522327
25562331 $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
25572332
25582333 # Add our own program objects to the symbol list.
2559 progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
2334 progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
25602335 for progfile in $progfiles; do
25612336 func_verbose "extracting global C symbols from \`$progfile'"
25622337 $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
25952370 eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
25962371 eval '$MV "$nlist"T "$nlist"'
25972372 case $host in
2598 *cygwin* | *mingw* | *cegcc* )
2373 *cygwin | *mingw* | *cegcc* )
25992374 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
26002375 eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
26012376 ;;
26392414 if test -f "$nlist"S; then
26402415 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
26412416 else
2642 echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
2417 $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
26432418 fi
26442419
2645 echo >> "$output_objdir/$my_dlsyms" "\
2420 $ECHO >> "$output_objdir/$my_dlsyms" "\
26462421
26472422 /* The mapping between symbol names and symbols. */
26482423 typedef struct {
26522427 "
26532428 case $host in
26542429 *cygwin* | *mingw* | *cegcc* )
2655 echo >> "$output_objdir/$my_dlsyms" "\
2430 $ECHO >> "$output_objdir/$my_dlsyms" "\
26562431 /* DATA imports from DLLs on WIN32 con't be const, because
26572432 runtime relocations are performed -- see ld's documentation
26582433 on pseudo-relocs. */"
26652440 lt_dlsym_const=const ;;
26662441 esac
26672442
2668 echo >> "$output_objdir/$my_dlsyms" "\
2443 $ECHO >> "$output_objdir/$my_dlsyms" "\
26692444 extern $lt_dlsym_const lt_dlsymlist
26702445 lt_${my_prefix}_LTX_preloaded_symbols[];
26712446 $lt_dlsym_const lt_dlsymlist
26812456 eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
26822457 ;;
26832458 esac
2684 echo >> "$output_objdir/$my_dlsyms" "\
2459 $ECHO >> "$output_objdir/$my_dlsyms" "\
26852460 {0, (void *) 0}
26862461 };
26872462
27392514 case $host in
27402515 *cygwin* | *mingw* | *cegcc* )
27412516 if test -f "$output_objdir/$my_outputname.def"; then
2742 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
2743 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
2517 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
2518 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
27442519 else
2745 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
2746 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
2520 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
2521 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
27472522 fi
27482523 ;;
27492524 *)
2750 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
2751 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
2525 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
2526 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
27522527 ;;
27532528 esac
27542529 ;;
27622537 # really was required.
27632538
27642539 # Nullify the symbol file.
2765 compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
2766 finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
2540 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
2541 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
27672542 fi
27682543 }
27692544
27732548 # Need a lot of goo to handle *both* DLLs and import libs
27742549 # Has to be a shell function in order to 'eat' the argument
27752550 # that is supplied when $file_magic_command is called.
2776 # Despite the name, also deal with 64 bit binaries.
27772551 func_win32_libid ()
27782552 {
27792553 $opt_debug
27842558 win32_libid_type="x86 archive import"
27852559 ;;
27862560 *ar\ archive*) # could be an import, or static
2787 # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
27882561 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
2789 $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
2562 $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
27902563 win32_nmres=`eval $NM -f posix -A $1 |
27912564 $SED -n -e '
27922565 1,100{
28242597 $opt_debug
28252598 f_ex_an_ar_dir="$1"; shift
28262599 f_ex_an_ar_oldlib="$1"
2827 if test "$lock_old_archive_extraction" = yes; then
2828 lockfile=$f_ex_an_ar_oldlib.lock
2829 until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
2830 func_echo "Waiting for $lockfile to be removed"
2831 sleep 2
2832 done
2833 fi
2834 func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
2835 'stat=$?; rm -f "$lockfile"; exit $stat'
2836 if test "$lock_old_archive_extraction" = yes; then
2837 $opt_dry_run || rm -f "$lockfile"
2838 fi
2600 func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?'
28392601 if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
28402602 :
28412603 else
29062668 darwin_file=
29072669 darwin_files=
29082670 for darwin_file in $darwin_filelist; do
2909 darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
2671 darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
29102672 $LIPO -create -output "$darwin_file" $darwin_files
29112673 done # $darwin_filelist
29122674 $RM -rf unfat-$$
29212683 func_extract_an_archive "$my_xdir" "$my_xabs"
29222684 ;;
29232685 esac
2924 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
2686 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
29252687 done
29262688
29272689 func_extract_archives_result="$my_oldobjs"
29282690 }
2691
2692
2693
2694 # func_emit_wrapper_part1 [arg=no]
2695 #
2696 # Emit the first part of a libtool wrapper script on stdout.
2697 # For more information, see the description associated with
2698 # func_emit_wrapper(), below.
2699 func_emit_wrapper_part1 ()
2700 {
2701 func_emit_wrapper_part1_arg1=no
2702 if test -n "$1" ; then
2703 func_emit_wrapper_part1_arg1=$1
2704 fi
2705
2706 $ECHO "\
2707 #! $SHELL
2708
2709 # $output - temporary wrapper script for $objdir/$outputname
2710 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
2711 #
2712 # The $output program cannot be directly executed until all the libtool
2713 # libraries that it depends on are installed.
2714 #
2715 # This wrapper script should never be moved out of the build directory.
2716 # If it is, it will not operate correctly.
2717
2718 # Sed substitution that helps us do robust quoting. It backslashifies
2719 # metacharacters that are still active within double-quoted strings.
2720 Xsed='${SED} -e 1s/^X//'
2721 sed_quote_subst='$sed_quote_subst'
2722
2723 # Be Bourne compatible
2724 if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
2725 emulate sh
2726 NULLCMD=:
2727 # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
2728 # is contrary to our usage. Disable this feature.
2729 alias -g '\${1+\"\$@\"}'='\"\$@\"'
2730 setopt NO_GLOB_SUBST
2731 else
2732 case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
2733 fi
2734 BIN_SH=xpg4; export BIN_SH # for Tru64
2735 DUALCASE=1; export DUALCASE # for MKS sh
2736
2737 # The HP-UX ksh and POSIX shell print the target directory to stdout
2738 # if CDPATH is set.
2739 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
2740
2741 relink_command=\"$relink_command\"
2742
2743 # This environment variable determines our operation mode.
2744 if test \"\$libtool_install_magic\" = \"$magic\"; then
2745 # install mode needs the following variables:
2746 generated_by_libtool_version='$macro_version'
2747 notinst_deplibs='$notinst_deplibs'
2748 else
2749 # When we are sourced in execute mode, \$file and \$ECHO are already set.
2750 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2751 ECHO=\"$qecho\"
2752 file=\"\$0\"
2753 # Make sure echo works.
2754 if test \"X\$1\" = X--no-reexec; then
2755 # Discard the --no-reexec flag, and continue.
2756 shift
2757 elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
2758 # Yippee, \$ECHO works!
2759 :
2760 else
2761 # Restart under the correct shell, and then maybe \$ECHO will work.
2762 exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
2763 fi
2764 fi\
2765 "
2766 $ECHO "\
2767
2768 # Find the directory that this script lives in.
2769 thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
2770 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
2771
2772 # Follow symbolic links until we get to the real thisdir.
2773 file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
2774 while test -n \"\$file\"; do
2775 destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
2776
2777 # If there was a directory component, then change thisdir.
2778 if test \"x\$destdir\" != \"x\$file\"; then
2779 case \"\$destdir\" in
2780 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
2781 *) thisdir=\"\$thisdir/\$destdir\" ;;
2782 esac
2783 fi
2784
2785 file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
2786 file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
2787 done
2788 "
2789 }
2790 # end: func_emit_wrapper_part1
2791
2792 # func_emit_wrapper_part2 [arg=no]
2793 #
2794 # Emit the second part of a libtool wrapper script on stdout.
2795 # For more information, see the description associated with
2796 # func_emit_wrapper(), below.
2797 func_emit_wrapper_part2 ()
2798 {
2799 func_emit_wrapper_part2_arg1=no
2800 if test -n "$1" ; then
2801 func_emit_wrapper_part2_arg1=$1
2802 fi
2803
2804 $ECHO "\
2805
2806 # Usually 'no', except on cygwin/mingw when embedded into
2807 # the cwrapper.
2808 WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1
2809 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
2810 # special case for '.'
2811 if test \"\$thisdir\" = \".\"; then
2812 thisdir=\`pwd\`
2813 fi
2814 # remove .libs from thisdir
2815 case \"\$thisdir\" in
2816 *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
2817 $objdir ) thisdir=. ;;
2818 esac
2819 fi
2820
2821 # Try to get the absolute directory name.
2822 absdir=\`cd \"\$thisdir\" && pwd\`
2823 test -n \"\$absdir\" && thisdir=\"\$absdir\"
2824 "
2825
2826 if test "$fast_install" = yes; then
2827 $ECHO "\
2828 program=lt-'$outputname'$exeext
2829 progdir=\"\$thisdir/$objdir\"
2830
2831 if test ! -f \"\$progdir/\$program\" ||
2832 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
2833 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
2834
2835 file=\"\$\$-\$program\"
2836
2837 if test ! -d \"\$progdir\"; then
2838 $MKDIR \"\$progdir\"
2839 else
2840 $RM \"\$progdir/\$file\"
2841 fi"
2842
2843 $ECHO "\
2844
2845 # relink executable if necessary
2846 if test -n \"\$relink_command\"; then
2847 if relink_command_output=\`eval \$relink_command 2>&1\`; then :
2848 else
2849 $ECHO \"\$relink_command_output\" >&2
2850 $RM \"\$progdir/\$file\"
2851 exit 1
2852 fi
2853 fi
2854
2855 $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
2856 { $RM \"\$progdir/\$program\";
2857 $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
2858 $RM \"\$progdir/\$file\"
2859 fi"
2860 else
2861 $ECHO "\
2862 program='$outputname'
2863 progdir=\"\$thisdir/$objdir\"
2864 "
2865 fi
2866
2867 $ECHO "\
2868
2869 if test -f \"\$progdir/\$program\"; then"
2870
2871 # Export our shlibpath_var if we have one.
2872 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
2873 $ECHO "\
2874 # Add our own library path to $shlibpath_var
2875 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
2876
2877 # Some systems cannot cope with colon-terminated $shlibpath_var
2878 # The second colon is a workaround for a bug in BeOS R4 sed
2879 $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
2880
2881 export $shlibpath_var
2882 "
2883 fi
2884
2885 # fixup the dll searchpath if we need to.
2886 if test -n "$dllsearchpath"; then
2887 $ECHO "\
2888 # Add the dll search path components to the executable PATH
2889 PATH=$dllsearchpath:\$PATH
2890 "
2891 fi
2892
2893 $ECHO "\
2894 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2895 # Run the actual program with our arguments.
2896 "
2897 case $host in
2898 # Backslashes separate directories on plain windows
2899 *-*-mingw | *-*-os2* | *-cegcc*)
2900 $ECHO "\
2901 exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
2902 "
2903 ;;
2904
2905 *)
2906 $ECHO "\
2907 exec \"\$progdir/\$program\" \${1+\"\$@\"}
2908 "
2909 ;;
2910 esac
2911 $ECHO "\
2912 \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
2913 exit 1
2914 fi
2915 else
2916 # The program doesn't exist.
2917 \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
2918 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
2919 $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
2920 exit 1
2921 fi
2922 fi\
2923 "
2924 }
2925 # end: func_emit_wrapper_part2
29292926
29302927
29312928 # func_emit_wrapper [arg=no]
29442941 # behavior.
29452942 func_emit_wrapper ()
29462943 {
2947 func_emit_wrapper_arg1=${1-no}
2948
2949 $ECHO "\
2950 #! $SHELL
2951
2952 # $output - temporary wrapper script for $objdir/$outputname
2953 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
2954 #
2955 # The $output program cannot be directly executed until all the libtool
2956 # libraries that it depends on are installed.
2957 #
2958 # This wrapper script should never be moved out of the build directory.
2959 # If it is, it will not operate correctly.
2960
2961 # Sed substitution that helps us do robust quoting. It backslashifies
2962 # metacharacters that are still active within double-quoted strings.
2963 sed_quote_subst='$sed_quote_subst'
2964
2965 # Be Bourne compatible
2966 if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
2967 emulate sh
2968 NULLCMD=:
2969 # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
2970 # is contrary to our usage. Disable this feature.
2971 alias -g '\${1+\"\$@\"}'='\"\$@\"'
2972 setopt NO_GLOB_SUBST
2973 else
2974 case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
2975 fi
2976 BIN_SH=xpg4; export BIN_SH # for Tru64
2977 DUALCASE=1; export DUALCASE # for MKS sh
2978
2979 # The HP-UX ksh and POSIX shell print the target directory to stdout
2980 # if CDPATH is set.
2981 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
2982
2983 relink_command=\"$relink_command\"
2984
2985 # This environment variable determines our operation mode.
2986 if test \"\$libtool_install_magic\" = \"$magic\"; then
2987 # install mode needs the following variables:
2988 generated_by_libtool_version='$macro_version'
2989 notinst_deplibs='$notinst_deplibs'
2990 else
2991 # When we are sourced in execute mode, \$file and \$ECHO are already set.
2992 if test \"\$libtool_execute_magic\" != \"$magic\"; then
2993 file=\"\$0\""
2994
2995 qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
2996 $ECHO "\
2997
2998 # A function that is used when there is no print builtin or printf.
2999 func_fallback_echo ()
3000 {
3001 eval 'cat <<_LTECHO_EOF
3002 \$1
3003 _LTECHO_EOF'
3004 }
3005 ECHO=\"$qECHO\"
3006 fi
3007
3008 # Very basic option parsing. These options are (a) specific to
3009 # the libtool wrapper, (b) are identical between the wrapper
3010 # /script/ and the wrapper /executable/ which is used only on
3011 # windows platforms, and (c) all begin with the string "--lt-"
3012 # (application programs are unlikely to have options which match
3013 # this pattern).
3014 #
3015 # There are only two supported options: --lt-debug and
3016 # --lt-dump-script. There is, deliberately, no --lt-help.
3017 #
3018 # The first argument to this parsing function should be the
3019 # script's $0 value, followed by "$@".
3020 lt_option_debug=
3021 func_parse_lt_options ()
3022 {
3023 lt_script_arg0=\$0
3024 shift
3025 for lt_opt
3026 do
3027 case \"\$lt_opt\" in
3028 --lt-debug) lt_option_debug=1 ;;
3029 --lt-dump-script)
3030 lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
3031 test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
3032 lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
3033 cat \"\$lt_dump_D/\$lt_dump_F\"
3034 exit 0
3035 ;;
3036 --lt-*)
3037 \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
3038 exit 1
3039 ;;
3040 esac
3041 done
3042
3043 # Print the debug banner immediately:
3044 if test -n \"\$lt_option_debug\"; then
3045 echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
3046 fi
3047 }
3048
3049 # Used when --lt-debug. Prints its arguments to stdout
3050 # (redirection is the responsibility of the caller)
3051 func_lt_dump_args ()
3052 {
3053 lt_dump_args_N=1;
3054 for lt_arg
3055 do
3056 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
3057 lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
3058 done
3059 }
3060
3061 # Core function for launching the target application
3062 func_exec_program_core ()
3063 {
3064 "
3065 case $host in
3066 # Backslashes separate directories on plain windows
3067 *-*-mingw | *-*-os2* | *-cegcc*)
3068 $ECHO "\
3069 if test -n \"\$lt_option_debug\"; then
3070 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
3071 func_lt_dump_args \${1+\"\$@\"} 1>&2
3072 fi
3073 exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
3074 "
3075 ;;
3076
3077 *)
3078 $ECHO "\
3079 if test -n \"\$lt_option_debug\"; then
3080 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
3081 func_lt_dump_args \${1+\"\$@\"} 1>&2
3082 fi
3083 exec \"\$progdir/\$program\" \${1+\"\$@\"}
3084 "
3085 ;;
3086 esac
3087 $ECHO "\
3088 \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
3089 exit 1
3090 }
3091
3092 # A function to encapsulate launching the target application
3093 # Strips options in the --lt-* namespace from \$@ and
3094 # launches target application with the remaining arguments.
3095 func_exec_program ()
3096 {
3097 for lt_wr_arg
3098 do
3099 case \$lt_wr_arg in
3100 --lt-*) ;;
3101 *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
3102 esac
3103 shift
3104 done
3105 func_exec_program_core \${1+\"\$@\"}
3106 }
3107
3108 # Parse options
3109 func_parse_lt_options \"\$0\" \${1+\"\$@\"}
3110
3111 # Find the directory that this script lives in.
3112 thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
3113 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
3114
3115 # Follow symbolic links until we get to the real thisdir.
3116 file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
3117 while test -n \"\$file\"; do
3118 destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
3119
3120 # If there was a directory component, then change thisdir.
3121 if test \"x\$destdir\" != \"x\$file\"; then
3122 case \"\$destdir\" in
3123 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
3124 *) thisdir=\"\$thisdir/\$destdir\" ;;
3125 esac
3126 fi
3127
3128 file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
3129 file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
3130 done
3131
3132 # Usually 'no', except on cygwin/mingw when embedded into
3133 # the cwrapper.
3134 WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
3135 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
3136 # special case for '.'
3137 if test \"\$thisdir\" = \".\"; then
3138 thisdir=\`pwd\`
3139 fi
3140 # remove .libs from thisdir
3141 case \"\$thisdir\" in
3142 *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
3143 $objdir ) thisdir=. ;;
3144 esac
3145 fi
3146
3147 # Try to get the absolute directory name.
3148 absdir=\`cd \"\$thisdir\" && pwd\`
3149 test -n \"\$absdir\" && thisdir=\"\$absdir\"
3150 "
3151
3152 if test "$fast_install" = yes; then
3153 $ECHO "\
3154 program=lt-'$outputname'$exeext
3155 progdir=\"\$thisdir/$objdir\"
3156
3157 if test ! -f \"\$progdir/\$program\" ||
3158 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
3159 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
3160
3161 file=\"\$\$-\$program\"
3162
3163 if test ! -d \"\$progdir\"; then
3164 $MKDIR \"\$progdir\"
3165 else
3166 $RM \"\$progdir/\$file\"
3167 fi"
3168
3169 $ECHO "\
3170
3171 # relink executable if necessary
3172 if test -n \"\$relink_command\"; then
3173 if relink_command_output=\`eval \$relink_command 2>&1\`; then :
3174 else
3175 $ECHO \"\$relink_command_output\" >&2
3176 $RM \"\$progdir/\$file\"
3177 exit 1
3178 fi
3179 fi
3180
3181 $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
3182 { $RM \"\$progdir/\$program\";
3183 $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
3184 $RM \"\$progdir/\$file\"
3185 fi"
3186 else
3187 $ECHO "\
3188 program='$outputname'
3189 progdir=\"\$thisdir/$objdir\"
3190 "
2944 func_emit_wrapper_arg1=no
2945 if test -n "$1" ; then
2946 func_emit_wrapper_arg1=$1
31912947 fi
31922948
3193 $ECHO "\
3194
3195 if test -f \"\$progdir/\$program\"; then"
3196
3197 # Export our shlibpath_var if we have one.
3198 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
3199 $ECHO "\
3200 # Add our own library path to $shlibpath_var
3201 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
3202
3203 # Some systems cannot cope with colon-terminated $shlibpath_var
3204 # The second colon is a workaround for a bug in BeOS R4 sed
3205 $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
3206
3207 export $shlibpath_var
3208 "
3209 fi
3210
3211 # fixup the dll searchpath if we need to.
3212 if test -n "$dllsearchpath"; then
3213 $ECHO "\
3214 # Add the dll search path components to the executable PATH
3215 PATH=$dllsearchpath:\$PATH
3216 "
3217 fi
3218
3219 $ECHO "\
3220 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3221 # Run the actual program with our arguments.
3222 func_exec_program \${1+\"\$@\"}
3223 fi
3224 else
3225 # The program doesn't exist.
3226 \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
3227 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
3228 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
3229 exit 1
3230 fi
3231 fi\
3232 "
2949 # split this up so that func_emit_cwrapperexe_src
2950 # can call each part independently.
2951 func_emit_wrapper_part1 "${func_emit_wrapper_arg1}"
2952 func_emit_wrapper_part2 "${func_emit_wrapper_arg1}"
32332953 }
32342954
32352955
32572977 func_to_host_path ()
32582978 {
32592979 func_to_host_path_result="$1"
3260 if test -n "$1"; then
2980 if test -n "$1" ; then
32612981 case $host in
32622982 *mingw* )
32632983 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
32642984 case $build in
32652985 *mingw* ) # actually, msys
32662986 # awkward: cmd appends spaces to result
3267 func_to_host_path_result=`( cmd //c echo "$1" ) 2>/dev/null |
3268 $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
2987 lt_sed_strip_trailing_spaces="s/[ ]*\$//"
2988 func_to_host_path_tmp1=`( cmd //c echo "$1" |\
2989 $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
2990 func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
2991 $SED -e "$lt_sed_naive_backslashify"`
32692992 ;;
32702993 *cygwin* )
3271 func_to_host_path_result=`cygpath -w "$1" |
3272 $SED -e "$lt_sed_naive_backslashify"`
2994 func_to_host_path_tmp1=`cygpath -w "$1"`
2995 func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
2996 $SED -e "$lt_sed_naive_backslashify"`
32732997 ;;
32742998 * )
32752999 # Unfortunately, winepath does not exit with a non-zero
32813005 # the odd construction:
32823006 func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
32833007 if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
3284 func_to_host_path_result=`$ECHO "$func_to_host_path_tmp1" |
3008 func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
32853009 $SED -e "$lt_sed_naive_backslashify"`
32863010 else
32873011 # Allow warning below.
3288 func_to_host_path_result=
3012 func_to_host_path_result=""
32893013 fi
32903014 ;;
32913015 esac
32923016 if test -z "$func_to_host_path_result" ; then
32933017 func_error "Could not determine host path corresponding to"
3294 func_error " \`$1'"
3018 func_error " '$1'"
32953019 func_error "Continuing, but uninstalled executables may not work."
32963020 # Fallback:
32973021 func_to_host_path_result="$1"
33243048 func_to_host_pathlist ()
33253049 {
33263050 func_to_host_pathlist_result="$1"
3327 if test -n "$1"; then
3051 if test -n "$1" ; then
33283052 case $host in
33293053 *mingw* )
33303054 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
33313055 # Remove leading and trailing path separator characters from
33323056 # ARG. msys behavior is inconsistent here, cygpath turns them
33333057 # into '.;' and ';.', and winepath ignores them completely.
3334 func_stripname : : "$1"
3335 func_to_host_pathlist_tmp1=$func_stripname_result
3058 func_to_host_pathlist_tmp2="$1"
3059 # Once set for this call, this variable should not be
3060 # reassigned. It is used in tha fallback case.
3061 func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\
3062 $SED -e 's|^:*||' -e 's|:*$||'`
33363063 case $build in
33373064 *mingw* ) # Actually, msys.
33383065 # Awkward: cmd appends spaces to result.
3339 func_to_host_pathlist_result=`
3340 ( cmd //c echo "$func_to_host_pathlist_tmp1" ) 2>/dev/null |
3341 $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
3066 lt_sed_strip_trailing_spaces="s/[ ]*\$//"
3067 func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
3068 $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
3069 func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
3070 $SED -e "$lt_sed_naive_backslashify"`
33423071 ;;
33433072 *cygwin* )
3344 func_to_host_pathlist_result=`cygpath -w -p "$func_to_host_pathlist_tmp1" |
3073 func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
3074 func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
33453075 $SED -e "$lt_sed_naive_backslashify"`
33463076 ;;
33473077 * )
33573087 if test -z "$func_to_host_pathlist_result" ; then
33583088 func_to_host_pathlist_result="$func_to_host_path_result"
33593089 else
3360 func_append func_to_host_pathlist_result ";$func_to_host_path_result"
3090 func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"
33613091 fi
33623092 fi
33633093 fi
3094 IFS=:
33643095 done
33653096 IFS=$func_to_host_pathlist_oldIFS
33663097 ;;
33673098 esac
3368 if test -z "$func_to_host_pathlist_result"; then
3099 if test -z "$func_to_host_pathlist_result" ; then
33693100 func_error "Could not determine the host path(s) corresponding to"
3370 func_error " \`$1'"
3101 func_error " '$1'"
33713102 func_error "Continuing, but uninstalled executables may not work."
33723103 # Fallback. This may break if $1 contains DOS-style drive
33733104 # specifications. The fix is not to complicate the expression
33843115 ;;
33853116 esac
33863117 case "$1" in
3387 *: ) func_append func_to_host_pathlist_result ";"
3118 *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"
33883119 ;;
33893120 esac
33903121 ;;
34093140
34103141 This wrapper executable should never be moved out of the build directory.
34113142 If it is, it will not operate correctly.
3143
3144 Currently, it simply execs the wrapper *script* "$SHELL $output",
3145 but could eventually absorb all of the scripts functionality and
3146 exec $objdir/$outputname directly.
34123147 */
34133148 EOF
34143149 cat <<"EOF"
3415 #ifdef _MSC_VER
3416 # define _CRT_SECURE_NO_DEPRECATE 1
3417 #endif
34183150 #include <stdio.h>
34193151 #include <stdlib.h>
34203152 #ifdef _MSC_VER
34213153 # include <direct.h>
34223154 # include <process.h>
34233155 # include <io.h>
3156 # define setmode _setmode
34243157 #else
34253158 # include <unistd.h>
34263159 # include <stdint.h>
34273160 # ifdef __CYGWIN__
34283161 # include <io.h>
3162 # define HAVE_SETENV
3163 # ifdef __STRICT_ANSI__
3164 char *realpath (const char *, char *);
3165 int putenv (char *);
3166 int setenv (const char *, const char *, int);
3167 # endif
34293168 # endif
34303169 #endif
34313170 #include <malloc.h>
34373176 #include <fcntl.h>
34383177 #include <sys/stat.h>
34393178
3440 /* declarations of non-ANSI functions */
3441 #if defined(__MINGW32__)
3442 # ifdef __STRICT_ANSI__
3443 int _putenv (const char *);
3444 # endif
3445 #elif defined(__CYGWIN__)
3446 # ifdef __STRICT_ANSI__
3447 char *realpath (const char *, char *);
3448 int putenv (char *);
3449 int setenv (const char *, const char *, int);
3450 # endif
3451 /* #elif defined (other platforms) ... */
3452 #endif
3453
3454 /* portability defines, excluding path handling macros */
3455 #if defined(_MSC_VER)
3456 # define setmode _setmode
3457 # define stat _stat
3458 # define chmod _chmod
3459 # define getcwd _getcwd
3460 # define putenv _putenv
3461 # define S_IXUSR _S_IEXEC
3462 # ifndef _INTPTR_T_DEFINED
3463 # define _INTPTR_T_DEFINED
3464 # define intptr_t int
3465 # endif
3466 #elif defined(__MINGW32__)
3467 # define setmode _setmode
3468 # define stat _stat
3469 # define chmod _chmod
3470 # define getcwd _getcwd
3471 # define putenv _putenv
3472 #elif defined(__CYGWIN__)
3473 # define HAVE_SETENV
3474 # define FOPEN_WB "wb"
3475 /* #elif defined (other platforms) ... */
3476 #endif
3477
34783179 #if defined(PATH_MAX)
34793180 # define LT_PATHMAX PATH_MAX
34803181 #elif defined(MAXPATHLEN)
34903191 # define S_IXGRP 0
34913192 #endif
34923193
3493 /* path handling portability macros */
3194 #ifdef _MSC_VER
3195 # define S_IXUSR _S_IEXEC
3196 # define stat _stat
3197 # ifndef _INTPTR_T_DEFINED
3198 # define intptr_t int
3199 # endif
3200 #endif
3201
34943202 #ifndef DIR_SEPARATOR
34953203 # define DIR_SEPARATOR '/'
34963204 # define PATH_SEPARATOR ':'
35213229 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
35223230 #endif /* PATH_SEPARATOR_2 */
35233231
3232 #ifdef __CYGWIN__
3233 # define FOPEN_WB "wb"
3234 #endif
3235
35243236 #ifndef FOPEN_WB
35253237 # define FOPEN_WB "w"
35263238 #endif
35333245 if (stale) { free ((void *) stale); stale = 0; } \
35343246 } while (0)
35353247
3536 #if defined(LT_DEBUGWRAPPER)
3537 static int lt_debug = 1;
3248 #undef LTWRAPPER_DEBUGPRINTF
3249 #if defined DEBUGWRAPPER
3250 # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
3251 static void
3252 ltwrapper_debugprintf (const char *fmt, ...)
3253 {
3254 va_list args;
3255 va_start (args, fmt);
3256 (void) vfprintf (stderr, fmt, args);
3257 va_end (args);
3258 }
35383259 #else
3539 static int lt_debug = 0;
3260 # define LTWRAPPER_DEBUGPRINTF(args)
35403261 #endif
35413262
3542 const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
3263 const char *program_name = NULL;
35433264
35443265 void *xmalloc (size_t num);
35453266 char *xstrdup (const char *string);
35493270 int make_executable (const char *path);
35503271 int check_executable (const char *path);
35513272 char *strendzap (char *str, const char *pat);
3552 void lt_debugprintf (const char *file, int line, const char *fmt, ...);
3553 void lt_fatal (const char *file, int line, const char *message, ...);
3554 static const char *nonnull (const char *s);
3555 static const char *nonempty (const char *s);
3273 void lt_fatal (const char *message, ...);
35563274 void lt_setenv (const char *name, const char *value);
35573275 char *lt_extend_str (const char *orig_value, const char *add, int to_end);
3276 void lt_opt_process_env_set (const char *arg);
3277 void lt_opt_process_env_prepend (const char *arg);
3278 void lt_opt_process_env_append (const char *arg);
3279 int lt_split_name_value (const char *arg, char** name, char** value);
35583280 void lt_update_exe_path (const char *name, const char *value);
35593281 void lt_update_lib_path (const char *name, const char *value);
3560 char **prepare_spawn (char **argv);
3561 void lt_dump_script (FILE *f);
3282
3283 static const char *script_text_part1 =
35623284 EOF
3285
3286 func_emit_wrapper_part1 yes |
3287 $SED -e 's/\([\\"]\)/\\\1/g' \
3288 -e 's/^/ "/' -e 's/$/\\n"/'
3289 echo ";"
3290 cat <<EOF
3291
3292 static const char *script_text_part2 =
3293 EOF
3294 func_emit_wrapper_part2 yes |
3295 $SED -e 's/\([\\"]\)/\\\1/g' \
3296 -e 's/^/ "/' -e 's/$/\\n"/'
3297 echo ";"
35633298
35643299 cat <<EOF
35653300 const char * MAGIC_EXE = "$magic_exe";
36043339 cat <<"EOF"
36053340
36063341 #define LTWRAPPER_OPTION_PREFIX "--lt-"
3607
3342 #define LTWRAPPER_OPTION_PREFIX_LENGTH 5
3343
3344 static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH;
36083345 static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
3346
36093347 static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
3610 static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug";
3348
3349 static const size_t env_set_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
3350 static const char *env_set_opt = LTWRAPPER_OPTION_PREFIX "env-set";
3351 /* argument is putenv-style "foo=bar", value of foo is set to bar */
3352
3353 static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
3354 static const char *env_prepend_opt = LTWRAPPER_OPTION_PREFIX "env-prepend";
3355 /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */
3356
3357 static const size_t env_append_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
3358 static const char *env_append_opt = LTWRAPPER_OPTION_PREFIX "env-append";
3359 /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */
36113360
36123361 int
36133362 main (int argc, char *argv[])
36243373 int i;
36253374
36263375 program_name = (char *) xstrdup (base_name (argv[0]));
3627 newargz = XMALLOC (char *, argc + 1);
3628
3629 /* very simple arg parsing; don't want to rely on getopt
3630 * also, copy all non cwrapper options to newargz, except
3631 * argz[0], which is handled differently
3632 */
3633 newargc=0;
3376 LTWRAPPER_DEBUGPRINTF (("(main) argv[0] : %s\n", argv[0]));
3377 LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
3378
3379 /* very simple arg parsing; don't want to rely on getopt */
36343380 for (i = 1; i < argc; i++)
36353381 {
36363382 if (strcmp (argv[i], dumpscript_opt) == 0)
36443390 esac
36453391
36463392 cat <<"EOF"
3647 lt_dump_script (stdout);
3393 printf ("%s", script_text_part1);
3394 printf ("%s", script_text_part2);
36483395 return 0;
36493396 }
3650 if (strcmp (argv[i], debug_opt) == 0)
3651 {
3652 lt_debug = 1;
3653 continue;
3654 }
3655 if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
3656 {
3657 /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
3658 namespace, but it is not one of the ones we know about and
3659 have already dealt with, above (inluding dump-script), then
3660 report an error. Otherwise, targets might begin to believe
3661 they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
3662 namespace. The first time any user complains about this, we'll
3663 need to make LTWRAPPER_OPTION_PREFIX a configure-time option
3664 or a configure.ac-settable value.
3665 */
3666 lt_fatal (__FILE__, __LINE__,
3667 "unrecognized %s option: '%s'",
3668 ltwrapper_option_prefix, argv[i]);
3669 }
3670 /* otherwise ... */
3671 newargz[++newargc] = xstrdup (argv[i]);
36723397 }
3673 newargz[++newargc] = NULL;
3674
3675 EOF
3676 cat <<EOF
3677 /* The GNU banner must be the first non-error debug message */
3678 lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
3679 EOF
3680 cat <<"EOF"
3681 lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
3682 lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
3683
3398
3399 newargz = XMALLOC (char *, argc + 1);
36843400 tmp_pathspec = find_executable (argv[0]);
36853401 if (tmp_pathspec == NULL)
3686 lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
3687 lt_debugprintf (__FILE__, __LINE__,
3688 "(main) found exe (before symlink chase) at: %s\n",
3689 tmp_pathspec);
3402 lt_fatal ("Couldn't find %s", argv[0]);
3403 LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
3404 tmp_pathspec));
36903405
36913406 actual_cwrapper_path = chase_symlinks (tmp_pathspec);
3692 lt_debugprintf (__FILE__, __LINE__,
3693 "(main) found exe (after symlink chase) at: %s\n",
3694 actual_cwrapper_path);
3407 LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
3408 actual_cwrapper_path));
36953409 XFREE (tmp_pathspec);
36963410
3697 actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
3411 actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
36983412 strendzap (actual_cwrapper_path, actual_cwrapper_name);
36993413
37003414 /* wrapper name transforms */
37123426 target_name = tmp_pathspec;
37133427 tmp_pathspec = 0;
37143428
3715 lt_debugprintf (__FILE__, __LINE__,
3716 "(main) libtool target name: %s\n",
3717 target_name);
3429 LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
3430 target_name));
37183431 EOF
37193432
37203433 cat <<EOF
37673480 lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
37683481 lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
37693482
3770 lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
3771 nonnull (lt_argv_zero));
3483 newargc=0;
3484 for (i = 1; i < argc; i++)
3485 {
3486 if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)
3487 {
3488 if (argv[i][env_set_opt_len] == '=')
3489 {
3490 const char *p = argv[i] + env_set_opt_len + 1;
3491 lt_opt_process_env_set (p);
3492 }
3493 else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc)
3494 {
3495 lt_opt_process_env_set (argv[++i]); /* don't copy */
3496 }
3497 else
3498 lt_fatal ("%s missing required argument", env_set_opt);
3499 continue;
3500 }
3501 if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)
3502 {
3503 if (argv[i][env_prepend_opt_len] == '=')
3504 {
3505 const char *p = argv[i] + env_prepend_opt_len + 1;
3506 lt_opt_process_env_prepend (p);
3507 }
3508 else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc)
3509 {
3510 lt_opt_process_env_prepend (argv[++i]); /* don't copy */
3511 }
3512 else
3513 lt_fatal ("%s missing required argument", env_prepend_opt);
3514 continue;
3515 }
3516 if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)
3517 {
3518 if (argv[i][env_append_opt_len] == '=')
3519 {
3520 const char *p = argv[i] + env_append_opt_len + 1;
3521 lt_opt_process_env_append (p);
3522 }
3523 else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc)
3524 {
3525 lt_opt_process_env_append (argv[++i]); /* don't copy */
3526 }
3527 else
3528 lt_fatal ("%s missing required argument", env_append_opt);
3529 continue;
3530 }
3531 if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
3532 {
3533 /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
3534 namespace, but it is not one of the ones we know about and
3535 have already dealt with, above (inluding dump-script), then
3536 report an error. Otherwise, targets might begin to believe
3537 they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
3538 namespace. The first time any user complains about this, we'll
3539 need to make LTWRAPPER_OPTION_PREFIX a configure-time option
3540 or a configure.ac-settable value.
3541 */
3542 lt_fatal ("Unrecognized option in %s namespace: '%s'",
3543 ltwrapper_option_prefix, argv[i]);
3544 }
3545 /* otherwise ... */
3546 newargz[++newargc] = xstrdup (argv[i]);
3547 }
3548 newargz[++newargc] = NULL;
3549
3550 LTWRAPPER_DEBUGPRINTF (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
37723551 for (i = 0; i < newargc; i++)
37733552 {
3774 lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
3775 i, nonnull (newargz[i]));
3553 LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
37763554 }
37773555
37783556 EOF
37813559 mingw*)
37823560 cat <<"EOF"
37833561 /* execv doesn't actually work on mingw as expected on unix */
3784 newargz = prepare_spawn (newargz);
37853562 rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
37863563 if (rval == -1)
37873564 {
37883565 /* failed to start process */
3789 lt_debugprintf (__FILE__, __LINE__,
3790 "(main) failed to launch target \"%s\": %s\n",
3791 lt_argv_zero, nonnull (strerror (errno)));
3566 LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
37923567 return 127;
37933568 }
37943569 return rval;
38103585 {
38113586 void *p = (void *) malloc (num);
38123587 if (!p)
3813 lt_fatal (__FILE__, __LINE__, "memory exhausted");
3588 lt_fatal ("Memory exhausted");
38143589
38153590 return p;
38163591 }
38443619 {
38453620 struct stat st;
38463621
3847 lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
3848 nonempty (path));
3622 LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n",
3623 path ? (*path ? path : "EMPTY!") : "NULL!"));
38493624 if ((!path) || (!*path))
38503625 return 0;
38513626
38623637 int rval = 0;
38633638 struct stat st;
38643639
3865 lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
3866 nonempty (path));
3640 LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n",
3641 path ? (*path ? path : "EMPTY!") : "NULL!"));
38673642 if ((!path) || (!*path))
38683643 return 0;
38693644
38893664 int tmp_len;
38903665 char *concat_name;
38913666
3892 lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
3893 nonempty (wrapper));
3667 LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n",
3668 wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
38943669
38953670 if ((wrapper == NULL) || (*wrapper == '\0'))
38963671 return NULL;
39433718 {
39443719 /* empty path: current directory */
39453720 if (getcwd (tmp, LT_PATHMAX) == NULL)
3946 lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
3947 nonnull (strerror (errno)));
3721 lt_fatal ("getcwd failed");
39483722 tmp_len = strlen (tmp);
39493723 concat_name =
39503724 XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
39693743 }
39703744 /* Relative path | not found in path: prepend cwd */
39713745 if (getcwd (tmp, LT_PATHMAX) == NULL)
3972 lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
3973 nonnull (strerror (errno)));
3746 lt_fatal ("getcwd failed");
39743747 tmp_len = strlen (tmp);
39753748 concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
39763749 memcpy (concat_name, tmp, tmp_len);
39963769 int has_symlinks = 0;
39973770 while (strlen (tmp_pathspec) && !has_symlinks)
39983771 {
3999 lt_debugprintf (__FILE__, __LINE__,
4000 "checking path component for symlinks: %s\n",
4001 tmp_pathspec);
3772 LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
3773 tmp_pathspec));
40023774 if (lstat (tmp_pathspec, &s) == 0)
40033775 {
40043776 if (S_ISLNK (s.st_mode) != 0)
40203792 }
40213793 else
40223794 {
4023 lt_fatal (__FILE__, __LINE__,
4024 "error accessing file \"%s\": %s",
4025 tmp_pathspec, nonnull (strerror (errno)));
3795 char *errstr = strerror (errno);
3796 lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
40263797 }
40273798 }
40283799 XFREE (tmp_pathspec);
40353806 tmp_pathspec = realpath (pathspec, buf);
40363807 if (tmp_pathspec == 0)
40373808 {
4038 lt_fatal (__FILE__, __LINE__,
4039 "could not follow symlinks for %s", pathspec);
3809 lt_fatal ("Could not follow symlinks for %s", pathspec);
40403810 }
40413811 return xstrdup (tmp_pathspec);
40423812 #endif
40623832 return str;
40633833 }
40643834
4065 void
4066 lt_debugprintf (const char *file, int line, const char *fmt, ...)
4067 {
4068 va_list args;
4069 if (lt_debug)
4070 {
4071 (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
4072 va_start (args, fmt);
4073 (void) vfprintf (stderr, fmt, args);
4074 va_end (args);
4075 }
4076 }
4077
40783835 static void
4079 lt_error_core (int exit_status, const char *file,
4080 int line, const char *mode,
3836 lt_error_core (int exit_status, const char *mode,
40813837 const char *message, va_list ap)
40823838 {
4083 fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
3839 fprintf (stderr, "%s: %s: ", program_name, mode);
40843840 vfprintf (stderr, message, ap);
40853841 fprintf (stderr, ".\n");
40863842
40893845 }
40903846
40913847 void
4092 lt_fatal (const char *file, int line, const char *message, ...)
3848 lt_fatal (const char *message, ...)
40933849 {
40943850 va_list ap;
40953851 va_start (ap, message);
4096 lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
3852 lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
40973853 va_end (ap);
4098 }
4099
4100 static const char *
4101 nonnull (const char *s)
4102 {
4103 return s ? s : "(null)";
4104 }
4105
4106 static const char *
4107 nonempty (const char *s)
4108 {
4109 return (s && !*s) ? "(empty)" : nonnull (s);
41103854 }
41113855
41123856 void
41133857 lt_setenv (const char *name, const char *value)
41143858 {
4115 lt_debugprintf (__FILE__, __LINE__,
4116 "(lt_setenv) setting '%s' to '%s'\n",
4117 nonnull (name), nonnull (value));
3859 LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
3860 (name ? name : "<NULL>"),
3861 (value ? value : "<NULL>")));
41183862 {
41193863 #ifdef HAVE_SETENV
41203864 /* always make a copy, for consistency with !HAVE_SETENV */
41593903 return new_value;
41603904 }
41613905
3906 int
3907 lt_split_name_value (const char *arg, char** name, char** value)
3908 {
3909 const char *p;
3910 int len;
3911 if (!arg || !*arg)
3912 return 1;
3913
3914 p = strchr (arg, (int)'=');
3915
3916 if (!p)
3917 return 1;
3918
3919 *value = xstrdup (++p);
3920
3921 len = strlen (arg) - strlen (*value);
3922 *name = XMALLOC (char, len);
3923 strncpy (*name, arg, len-1);
3924 (*name)[len - 1] = '\0';
3925
3926 return 0;
3927 }
3928
3929 void
3930 lt_opt_process_env_set (const char *arg)
3931 {
3932 char *name = NULL;
3933 char *value = NULL;
3934
3935 if (lt_split_name_value (arg, &name, &value) != 0)
3936 {
3937 XFREE (name);
3938 XFREE (value);
3939 lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg);
3940 }
3941
3942 lt_setenv (name, value);
3943 XFREE (name);
3944 XFREE (value);
3945 }
3946
3947 void
3948 lt_opt_process_env_prepend (const char *arg)
3949 {
3950 char *name = NULL;
3951 char *value = NULL;
3952 char *new_value = NULL;
3953
3954 if (lt_split_name_value (arg, &name, &value) != 0)
3955 {
3956 XFREE (name);
3957 XFREE (value);
3958 lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg);
3959 }
3960
3961 new_value = lt_extend_str (getenv (name), value, 0);
3962 lt_setenv (name, new_value);
3963 XFREE (new_value);
3964 XFREE (name);
3965 XFREE (value);
3966 }
3967
3968 void
3969 lt_opt_process_env_append (const char *arg)
3970 {
3971 char *name = NULL;
3972 char *value = NULL;
3973 char *new_value = NULL;
3974
3975 if (lt_split_name_value (arg, &name, &value) != 0)
3976 {
3977 XFREE (name);
3978 XFREE (value);
3979 lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg);
3980 }
3981
3982 new_value = lt_extend_str (getenv (name), value, 1);
3983 lt_setenv (name, new_value);
3984 XFREE (new_value);
3985 XFREE (name);
3986 XFREE (value);
3987 }
3988
41623989 void
41633990 lt_update_exe_path (const char *name, const char *value)
41643991 {
4165 lt_debugprintf (__FILE__, __LINE__,
4166 "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
4167 nonnull (name), nonnull (value));
3992 LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
3993 (name ? name : "<NULL>"),
3994 (value ? value : "<NULL>")));
41683995
41693996 if (name && *name && value && *value)
41703997 {
41834010 void
41844011 lt_update_lib_path (const char *name, const char *value)
41854012 {
4186 lt_debugprintf (__FILE__, __LINE__,
4187 "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
4188 nonnull (name), nonnull (value));
4013 LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
4014 (name ? name : "<NULL>"),
4015 (value ? value : "<NULL>")));
41894016
41904017 if (name && *name && value && *value)
41914018 {
41954022 }
41964023 }
41974024
4198 EOF
4199 case $host_os in
4200 mingw*)
4201 cat <<"EOF"
4202
4203 /* Prepares an argument vector before calling spawn().
4204 Note that spawn() does not by itself call the command interpreter
4205 (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
4206 ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
4207 GetVersionEx(&v);
4208 v.dwPlatformId == VER_PLATFORM_WIN32_NT;
4209 }) ? "cmd.exe" : "command.com").
4210 Instead it simply concatenates the arguments, separated by ' ', and calls
4211 CreateProcess(). We must quote the arguments since Win32 CreateProcess()
4212 interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
4213 special way:
4214 - Space and tab are interpreted as delimiters. They are not treated as
4215 delimiters if they are surrounded by double quotes: "...".
4216 - Unescaped double quotes are removed from the input. Their only effect is
4217 that within double quotes, space and tab are treated like normal
4218 characters.
4219 - Backslashes not followed by double quotes are not special.
4220 - But 2*n+1 backslashes followed by a double quote become
4221 n backslashes followed by a double quote (n >= 0):
4222 \" -> "
4223 \\\" -> \"
4224 \\\\\" -> \\"
4225 */
4226 #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"
4227 #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"
4228 char **
4229 prepare_spawn (char **argv)
4230 {
4231 size_t argc;
4232 char **new_argv;
4233 size_t i;
4234
4235 /* Count number of arguments. */
4236 for (argc = 0; argv[argc] != NULL; argc++)
4237 ;
4238
4239 /* Allocate new argument vector. */
4240 new_argv = XMALLOC (char *, argc + 1);
4241
4242 /* Put quoted arguments into the new argument vector. */
4243 for (i = 0; i < argc; i++)
4244 {
4245 const char *string = argv[i];
4246
4247 if (string[0] == '\0')
4248 new_argv[i] = xstrdup ("\"\"");
4249 else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
4250 {
4251 int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
4252 size_t length;
4253 unsigned int backslashes;
4254 const char *s;
4255 char *quoted_string;
4256 char *p;
4257
4258 length = 0;
4259 backslashes = 0;
4260 if (quote_around)
4261 length++;
4262 for (s = string; *s != '\0'; s++)
4263 {
4264 char c = *s;
4265 if (c == '"')
4266 length += backslashes + 1;
4267 length++;
4268 if (c == '\\')
4269 backslashes++;
4270 else
4271 backslashes = 0;
4272 }
4273 if (quote_around)
4274 length += backslashes + 1;
4275
4276 quoted_string = XMALLOC (char, length + 1);
4277
4278 p = quoted_string;
4279 backslashes = 0;
4280 if (quote_around)
4281 *p++ = '"';
4282 for (s = string; *s != '\0'; s++)
4283 {
4284 char c = *s;
4285 if (c == '"')
4286 {
4287 unsigned int j;
4288 for (j = backslashes + 1; j > 0; j--)
4289 *p++ = '\\';
4290 }
4291 *p++ = c;
4292 if (c == '\\')
4293 backslashes++;
4294 else
4295 backslashes = 0;
4296 }
4297 if (quote_around)
4298 {
4299 unsigned int j;
4300 for (j = backslashes; j > 0; j--)
4301 *p++ = '\\';
4302 *p++ = '"';
4303 }
4304 *p = '\0';
4305
4306 new_argv[i] = quoted_string;
4307 }
4308 else
4309 new_argv[i] = (char *) string;
4310 }
4311 new_argv[argc] = NULL;
4312
4313 return new_argv;
4314 }
4315 EOF
4316 ;;
4317 esac
4318
4319 cat <<"EOF"
4320 void lt_dump_script (FILE* f)
4321 {
4322 EOF
4323 func_emit_wrapper yes |
4324 $SED -e 's/\([\\"]\)/\\\1/g' \
4325 -e 's/^/ fputs ("/' -e 's/$/\\n", f);/'
4326
4327 cat <<"EOF"
4328 }
4025
43294026 EOF
43304027 }
43314028 # end: func_emit_cwrapperexe_src
4332
4333 # func_win32_import_lib_p ARG
4334 # True if ARG is an import lib, as indicated by $file_magic_cmd
4335 func_win32_import_lib_p ()
4336 {
4337 $opt_debug
4338 case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
4339 *import*) : ;;
4340 *) false ;;
4341 esac
4342 }
43434029
43444030 # func_mode_link arg...
43454031 func_mode_link ()
43854071 new_inherited_linker_flags=
43864072
43874073 avoid_version=no
4388 bindir=
43894074 dlfiles=
43904075 dlprefiles=
43914076 dlself=no
44784163 esac
44794164
44804165 case $prev in
4481 bindir)
4482 bindir="$arg"
4483 prev=
4484 continue
4485 ;;
44864166 dlfiles|dlprefiles)
44874167 if test "$preload" = no; then
44884168 # Add the symbol object into the linking commands.
47444424 continue
47454425 ;;
47464426
4747 -bindir)
4748 prev=bindir
4749 continue
4750 ;;
4751
47524427 -dlopen)
47534428 prev=dlfiles
47544429 continue
48274502 esac
48284503 case $host in
48294504 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
4830 testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
4505 testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
48314506 case :$dllsearchpath: in
48324507 *":$dir:"*) ;;
48334508 ::) dllsearchpath=$dir;;
48464521 -l*)
48474522 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
48484523 case $host in
4849 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
4524 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*)
48504525 # These systems don't actually have a C or math library (as such)
48514526 continue
48524527 ;;
50324707 for flag in $args; do
50334708 IFS="$save_ifs"
50344709 func_quote_for_eval "$flag"
5035 arg="$arg $func_quote_for_eval_result"
4710 arg="$arg $wl$func_quote_for_eval_result"
50364711 compiler_flags="$compiler_flags $func_quote_for_eval_result"
50374712 done
50384713 IFS="$save_ifs"
50784753 arg="$func_quote_for_eval_result"
50794754 ;;
50804755
5081 # Flags to be passed through unchanged, with rationale:
5082 # -64, -mips[0-9] enable 64-bit mode for the SGI compiler
5083 # -r[0-9][0-9]* specify processor for the SGI compiler
5084 # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
5085 # +DA*, +DD* enable 64-bit mode for the HP compiler
5086 # -q* compiler args for the IBM compiler
5087 # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
5088 # -F/path path to uninstalled frameworks, gcc on darwin
5089 # -p, -pg, --coverage, -fprofile-* profiling flags for GCC
5090 # @file GCC response files
5091 # -tp=* Portland pgcc target processor selection
4756 # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
4757 # -r[0-9][0-9]* specifies the processor on the SGI compiler
4758 # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
4759 # +DA*, +DD* enable 64-bit mode on the HP compiler
4760 # -q* pass through compiler args for the IBM compiler
4761 # -m*, -t[45]*, -txscale* pass through architecture-specific
4762 # compiler args for GCC
4763 # -F/path gives path to uninstalled frameworks, gcc on darwin
4764 # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
4765 # @file GCC response files
50924766 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
5093 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*)
4767 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
50944768 func_quote_for_eval "$arg"
50954769 arg="$func_quote_for_eval_result"
50964770 func_append compile_command " $arg"
52504924
52514925 if test -n "$shlibpath_var"; then
52524926 # get the directories listed in $shlibpath_var
5253 eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
4927 eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
52544928 else
52554929 shlib_search_path=
52564930 fi
53585032 case $pass in
53595033 dlopen) libs="$dlfiles" ;;
53605034 dlpreopen) libs="$dlprefiles" ;;
5361 link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
5035 link)
5036 libs="$deplibs %DEPLIBS%"
5037 test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
5038 ;;
53625039 esac
53635040 fi
53645041 if test "$linkmode,$pass" = "lib,dlpreopen"; then
53735050 # Collect preopened libtool deplibs, except any this library
53745051 # has declared as weak libs
53755052 for deplib in $dependency_libs; do
5376 func_basename "$deplib"
5377 deplib_base=$func_basename_result
5053 deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
53785054 case " $weak_libs " in
53795055 *" $deplib_base "*) ;;
53805056 *) deplibs="$deplibs $deplib" ;;
55535229 match_pattern*)
55545230 set dummy $deplibs_check_method; shift
55555231 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
5556 if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
5232 if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
55575233 | $EGREP "$match_pattern_regex" > /dev/null; then
55585234 valid_a_lib=yes
55595235 fi
55635239 ;;
55645240 esac
55655241 if test "$valid_a_lib" != yes; then
5566 echo
5242 $ECHO
55675243 $ECHO "*** Warning: Trying to link with static lib archive $deplib."
5568 echo "*** I have the capability to make that library automatically link in when"
5569 echo "*** you link to this library. But I can only do this if you have a"
5570 echo "*** shared version of the library, which you do not appear to have"
5571 echo "*** because the file extensions .$libext of this argument makes me believe"
5572 echo "*** that it is just a static archive that I should not use here."
5244 $ECHO "*** I have the capability to make that library automatically link in when"
5245 $ECHO "*** you link to this library. But I can only do this if you have a"
5246 $ECHO "*** shared version of the library, which you do not appear to have"
5247 $ECHO "*** because the file extensions .$libext of this argument makes me believe"
5248 $ECHO "*** that it is just a static archive that I should not use here."
55735249 else
5574 echo
5250 $ECHO
55755251 $ECHO "*** Warning: Linking the shared library $output against the"
55765252 $ECHO "*** static library $deplib is not portable!"
55775253 deplibs="$deplib $deplibs"
56445320
56455321 # Convert "-framework foo" to "foo.ltframework"
56465322 if test -n "$inherited_linker_flags"; then
5647 tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
5323 tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
56485324 for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
56495325 case " $new_inherited_linker_flags " in
56505326 *" $tmp_inherited_linker_flag "*) ;;
56525328 esac
56535329 done
56545330 fi
5655 dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
5331 dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
56565332 if test "$linkmode,$pass" = "lib,link" ||
56575333 test "$linkmode,$pass" = "prog,scan" ||
56585334 { test "$linkmode" != prog && test "$linkmode" != lib; }; then
56705346 # It is a libtool convenience library, so add in its objects.
56715347 convenience="$convenience $ladir/$objdir/$old_library"
56725348 old_convenience="$old_convenience $ladir/$objdir/$old_library"
5349 tmp_libs=
5350 for deplib in $dependency_libs; do
5351 deplibs="$deplib $deplibs"
5352 if $opt_duplicate_deps ; then
5353 case "$tmp_libs " in
5354 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
5355 esac
5356 fi
5357 tmp_libs="$tmp_libs $deplib"
5358 done
56735359 elif test "$linkmode" != prog && test "$linkmode" != lib; then
56745360 func_fatal_error "\`$lib' is not a convenience library"
56755361 fi
5676 tmp_libs=
5677 for deplib in $dependency_libs; do
5678 deplibs="$deplib $deplibs"
5679 if $opt_duplicate_deps ; then
5680 case "$tmp_libs " in
5681 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
5682 esac
5683 fi
5684 tmp_libs="$tmp_libs $deplib"
5685 done
56865362 continue
56875363 fi # $pass = conv
56885364
59065582 fi
59075583 done
59085584 if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
5909 echo
5585 $ECHO
59105586 if test "$linkmode" = prog; then
59115587 $ECHO "*** Warning: Linking the executable $output against the loadable module"
59125588 else
60095685 if test "X$dlopenmodule" != "X$lib"; then
60105686 $ECHO "*** Warning: lib $linklib is a module, not a shared library"
60115687 if test -z "$old_library" ; then
6012 echo
6013 echo "*** And there doesn't seem to be a static archive available"
6014 echo "*** The link will probably fail, sorry"
5688 $ECHO
5689 $ECHO "*** And there doesn't seem to be a static archive available"
5690 $ECHO "*** The link will probably fail, sorry"
60155691 else
60165692 add="$dir/$old_library"
60175693 fi
61515827
61525828 # Just print a warning and add the library to dependency_libs so
61535829 # that the program can be linked against the static library.
6154 echo
5830 $ECHO
61555831 $ECHO "*** Warning: This system can not link to static lib archive $lib."
6156 echo "*** I have the capability to make that library automatically link in when"
6157 echo "*** you link to this library. But I can only do this if you have a"
6158 echo "*** shared version of the library, which you do not appear to have."
5832 $ECHO "*** I have the capability to make that library automatically link in when"
5833 $ECHO "*** you link to this library. But I can only do this if you have a"
5834 $ECHO "*** shared version of the library, which you do not appear to have."
61595835 if test "$module" = yes; then
6160 echo "*** But as you try to build a module library, libtool will still create "
6161 echo "*** a static module, that should work as long as the dlopening application"
6162 echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
5836 $ECHO "*** But as you try to build a module library, libtool will still create "
5837 $ECHO "*** a static module, that should work as long as the dlopening application"
5838 $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
61635839 if test -z "$global_symbol_pipe"; then
6164 echo
6165 echo "*** However, this would only work if libtool was able to extract symbol"
6166 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
6167 echo "*** not find such a program. So, this module is probably useless."
6168 echo "*** \`nm' from GNU binutils and a full rebuild may help."
5840 $ECHO
5841 $ECHO "*** However, this would only work if libtool was able to extract symbol"
5842 $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
5843 $ECHO "*** not find such a program. So, this module is probably useless."
5844 $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
61695845 fi
61705846 if test "$build_old_libs" = no; then
61715847 build_libtool_libs=module
62855961 compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
62865962 finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
62875963 else
6288 compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
5964 compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
62895965 fi
62905966 fi
62915967 dependency_libs="$newdependency_libs"
64536129 if test "$deplibs_check_method" != pass_all; then
64546130 func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
64556131 else
6456 echo
6132 $ECHO
64576133 $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
64586134 $ECHO "*** objects $objs is not portable!"
64596135 libobjs="$libobjs $objs"
65216197 age="$number_minor"
65226198 revision="$number_revision"
65236199 ;;
6524 freebsd-aout|freebsd-elf|qnx|sunos)
6200 freebsd-aout|freebsd-elf|sunos)
65256201 current="$number_major"
65266202 revision="$number_minor"
65276203 age="0"
65326208 age="$number_minor"
65336209 revision="$number_minor"
65346210 lt_irix_increment=no
6211 ;;
6212 *)
6213 func_fatal_configuration "$modename: unknown library version type \`$version_type'"
65356214 ;;
65366215 esac
65376216 ;;
67556434 oldlibs="$oldlibs $output_objdir/$libname.$libext"
67566435
67576436 # Transform .lo files to .o files.
6758 oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
6437 oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
67596438 fi
67606439
67616440 # Eliminate all temporary directories.
67626441 #for path in $notinst_path; do
6763 # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
6764 # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
6765 # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
6442 # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
6443 # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
6444 # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
67666445 #done
67676446
67686447 if test -n "$xrpath"; then
68036482 if test "$build_libtool_libs" = yes; then
68046483 if test -n "$rpath"; then
68056484 case $host in
6806 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
6485 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)
68076486 # these systems don't actually have a c library (as such)!
68086487 ;;
68096488 *-*-rhapsody* | *-*-darwin1.[012])
68886567 newdeplibs="$newdeplibs $i"
68896568 else
68906569 droppeddeps=yes
6891 echo
6570 $ECHO
68926571 $ECHO "*** Warning: dynamic linker does not accept needed library $i."
6893 echo "*** I have the capability to make that library automatically link in when"
6894 echo "*** you link to this library. But I can only do this if you have a"
6895 echo "*** shared version of the library, which I believe you do not have"
6896 echo "*** because a test_compile did reveal that the linker did not use it for"
6897 echo "*** its dynamic dependency list that programs get resolved with at runtime."
6572 $ECHO "*** I have the capability to make that library automatically link in when"
6573 $ECHO "*** you link to this library. But I can only do this if you have a"
6574 $ECHO "*** shared version of the library, which I believe you do not have"
6575 $ECHO "*** because a test_compile did reveal that the linker did not use it for"
6576 $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
68986577 fi
68996578 fi
69006579 ;;
69316610 newdeplibs="$newdeplibs $i"
69326611 else
69336612 droppeddeps=yes
6934 echo
6613 $ECHO
69356614 $ECHO "*** Warning: dynamic linker does not accept needed library $i."
6936 echo "*** I have the capability to make that library automatically link in when"
6937 echo "*** you link to this library. But I can only do this if you have a"
6938 echo "*** shared version of the library, which you do not appear to have"
6939 echo "*** because a test_compile did reveal that the linker did not use this one"
6940 echo "*** as a dynamic dependency that programs can get resolved with at runtime."
6615 $ECHO "*** I have the capability to make that library automatically link in when"
6616 $ECHO "*** you link to this library. But I can only do this if you have a"
6617 $ECHO "*** shared version of the library, which you do not appear to have"
6618 $ECHO "*** because a test_compile did reveal that the linker did not use this one"
6619 $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
69416620 fi
69426621 fi
69436622 else
69446623 droppeddeps=yes
6945 echo
6624 $ECHO
69466625 $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
6947 echo "*** make it link in! You will probably need to install it or some"
6948 echo "*** library that it depends on before this library will be fully"
6949 echo "*** functional. Installing it before continuing would be even better."
6626 $ECHO "*** make it link in! You will probably need to install it or some"
6627 $ECHO "*** library that it depends on before this library will be fully"
6628 $ECHO "*** functional. Installing it before continuing would be even better."
69506629 fi
69516630 ;;
69526631 *)
69926671 potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
69936672 case $potliblink in
69946673 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
6995 *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
6674 *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
69966675 esac
69976676 done
69986677 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
70076686 fi
70086687 if test -n "$a_deplib" ; then
70096688 droppeddeps=yes
7010 echo
6689 $ECHO
70116690 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
7012 echo "*** I have the capability to make that library automatically link in when"
7013 echo "*** you link to this library. But I can only do this if you have a"
7014 echo "*** shared version of the library, which you do not appear to have"
7015 echo "*** because I did check the linker path looking for a file starting"
6691 $ECHO "*** I have the capability to make that library automatically link in when"
6692 $ECHO "*** you link to this library. But I can only do this if you have a"
6693 $ECHO "*** shared version of the library, which you do not appear to have"
6694 $ECHO "*** because I did check the linker path looking for a file starting"
70166695 if test -z "$potlib" ; then
70176696 $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
70186697 else
70506729 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
70516730 for potent_lib in $potential_libs; do
70526731 potlib="$potent_lib" # see symlink-check above in file_magic test
7053 if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
6732 if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
70546733 $EGREP "$match_pattern_regex" > /dev/null; then
70556734 newdeplibs="$newdeplibs $a_deplib"
70566735 a_deplib=""
70616740 fi
70626741 if test -n "$a_deplib" ; then
70636742 droppeddeps=yes
7064 echo
6743 $ECHO
70656744 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
7066 echo "*** I have the capability to make that library automatically link in when"
7067 echo "*** you link to this library. But I can only do this if you have a"
7068 echo "*** shared version of the library, which you do not appear to have"
7069 echo "*** because I did check the linker path looking for a file starting"
6745 $ECHO "*** I have the capability to make that library automatically link in when"
6746 $ECHO "*** you link to this library. But I can only do this if you have a"
6747 $ECHO "*** shared version of the library, which you do not appear to have"
6748 $ECHO "*** because I did check the linker path looking for a file starting"
70706749 if test -z "$potlib" ; then
70716750 $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
70726751 else
70846763 ;;
70856764 none | unknown | *)
70866765 newdeplibs=""
7087 tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
6766 tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
6767 -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
70886768 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
70896769 for i in $predeps $postdeps ; do
70906770 # can't use Xsed below, because $i might contain '/'
7091 tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
6771 tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
70926772 done
70936773 fi
7094 case $tmp_deplibs in
7095 *[!\ \ ]*)
7096 echo
6774 if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' |
6775 $GREP . >/dev/null; then
6776 $ECHO
70976777 if test "X$deplibs_check_method" = "Xnone"; then
7098 echo "*** Warning: inter-library dependencies are not supported in this platform."
6778 $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
70996779 else
7100 echo "*** Warning: inter-library dependencies are not known to be supported."
6780 $ECHO "*** Warning: inter-library dependencies are not known to be supported."
71016781 fi
7102 echo "*** All declared inter-library dependencies are being dropped."
6782 $ECHO "*** All declared inter-library dependencies are being dropped."
71036783 droppeddeps=yes
7104 ;;
7105 esac
6784 fi
71066785 ;;
71076786 esac
71086787 versuffix=$versuffix_save
71146793 case $host in
71156794 *-*-rhapsody* | *-*-darwin1.[012])
71166795 # On Rhapsody replace the C library with the System framework
7117 newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
6796 newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
71186797 ;;
71196798 esac
71206799
71216800 if test "$droppeddeps" = yes; then
71226801 if test "$module" = yes; then
7123 echo
7124 echo "*** Warning: libtool could not satisfy all declared inter-library"
6802 $ECHO
6803 $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
71256804 $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
7126 echo "*** a static module, that should work as long as the dlopening"
7127 echo "*** application is linked with the -dlopen flag."
6805 $ECHO "*** a static module, that should work as long as the dlopening"
6806 $ECHO "*** application is linked with the -dlopen flag."
71286807 if test -z "$global_symbol_pipe"; then
7129 echo
7130 echo "*** However, this would only work if libtool was able to extract symbol"
7131 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
7132 echo "*** not find such a program. So, this module is probably useless."
7133 echo "*** \`nm' from GNU binutils and a full rebuild may help."
6808 $ECHO
6809 $ECHO "*** However, this would only work if libtool was able to extract symbol"
6810 $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
6811 $ECHO "*** not find such a program. So, this module is probably useless."
6812 $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
71346813 fi
71356814 if test "$build_old_libs" = no; then
71366815 oldlibs="$output_objdir/$libname.$libext"
71406819 build_libtool_libs=no
71416820 fi
71426821 else
7143 echo "*** The inter-library dependencies that have been dropped here will be"
7144 echo "*** automatically added whenever a program is linked with this library"
7145 echo "*** or is declared to -dlopen it."
6822 $ECHO "*** The inter-library dependencies that have been dropped here will be"
6823 $ECHO "*** automatically added whenever a program is linked with this library"
6824 $ECHO "*** or is declared to -dlopen it."
71466825
71476826 if test "$allow_undefined" = no; then
7148 echo
7149 echo "*** Since this library must not contain undefined symbols,"
7150 echo "*** because either the platform does not support them or"
7151 echo "*** it was explicitly requested with -no-undefined,"
7152 echo "*** libtool will only create a static version of it."
6827 $ECHO
6828 $ECHO "*** Since this library must not contain undefined symbols,"
6829 $ECHO "*** because either the platform does not support them or"
6830 $ECHO "*** it was explicitly requested with -no-undefined,"
6831 $ECHO "*** libtool will only create a static version of it."
71536832 if test "$build_old_libs" = no; then
71546833 oldlibs="$output_objdir/$libname.$libext"
71556834 build_libtool_libs=module
71666845 # Time to change all our "foo.ltframework" stuff back to "-framework foo"
71676846 case $host in
71686847 *-*-darwin*)
7169 newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7170 new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7171 deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
6848 newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
6849 new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
6850 deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
71726851 ;;
71736852 esac
71746853
72906969 done
72916970
72926971 # Use standard objects if they are pic
7293 test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
6972 test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
72946973 test "X$libobjs" = "X " && libobjs=
72956974
72966975 delfiles=
73567035 if test -n "$export_symbols" && test -n "$include_expsyms"; then
73577036 tmp_export_symbols="$export_symbols"
73587037 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
7359 $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
7038 $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
73607039 fi
73617040
73627041 if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
74577136 save_libobjs=$libobjs
74587137 fi
74597138 save_output=$output
7460 func_basename "$output"
7461 output_la=$func_basename_result
7139 output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
74627140
74637141 # Clear the reloadable object creation command queue and
74647142 # initialize k to one.
74717149 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
74727150 output=${output_objdir}/${output_la}.lnkscript
74737151 func_verbose "creating GNU ld script: $output"
7474 echo 'INPUT (' > $output
7152 $ECHO 'INPUT (' > $output
74757153 for obj in $save_libobjs
74767154 do
74777155 $ECHO "$obj" >> $output
74787156 done
7479 echo ')' >> $output
7157 $ECHO ')' >> $output
74807158 delfiles="$delfiles $output"
74817159 elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
74827160 output=${output_objdir}/${output_la}.lnk
75187196 # command to the queue.
75197197 if test "$k" -eq 1 ; then
75207198 # The first file doesn't have a previous command to add.
7521 reload_objs=$objlist
7522 eval concat_cmds=\"$reload_cmds\"
7199 eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
75237200 else
75247201 # All subsequent reloadable object files will link in
75257202 # the last one created.
7526 reload_objs="$objlist $last_robj"
7527 eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
7203 eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
75287204 fi
75297205 last_robj=$output_objdir/$output_la-${k}.$objext
75307206 func_arith $k + 1
75317207 k=$func_arith_result
75327208 output=$output_objdir/$output_la-${k}.$objext
7533 objlist=" $obj"
7209 objlist=$obj
75347210 func_len " $last_robj"
75357211 func_arith $len0 + $func_len_result
75367212 len=$func_arith_result
75407216 # reloadable object file. All subsequent reloadable object
75417217 # files will link in the last one created.
75427218 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
7543 reload_objs="$objlist $last_robj"
7544 eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
7219 eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
75457220 if test -n "$last_robj"; then
75467221 eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
75477222 fi
76007275 if test -n "$export_symbols" && test -n "$include_expsyms"; then
76017276 tmp_export_symbols="$export_symbols"
76027277 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
7603 $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
7278 $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
76047279 fi
76057280
76067281 if test -n "$orig_export_symbols"; then
77657440 if test -n "$convenience"; then
77667441 if test -n "$whole_archive_flag_spec"; then
77677442 eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
7768 reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
7443 reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
77697444 else
77707445 gentop="$output_objdir/${obj}x"
77717446 generated="$generated $gentop"
77767451 fi
77777452
77787453 # Create the old-style object.
7779 reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
7454 reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
77807455
77817456 output="$obj"
77827457 func_execute_cmds "$reload_cmds" 'exit $?'
78367511 case $host in
78377512 *-*-rhapsody* | *-*-darwin1.[012])
78387513 # On Rhapsody replace the C library is the System framework
7839 compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
7840 finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
7514 compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
7515 finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
78417516 ;;
78427517 esac
78437518
78547529 esac
78557530 fi
78567531 # Time to change all our "foo.ltframework" stuff back to "-framework foo"
7857 compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7858 finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
7532 compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
7533 finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
78597534 ;;
78607535 esac
78617536
79927667
79937668 if test -n "$libobjs" && test "$build_old_libs" = yes; then
79947669 # Transform all the library objects into standard objects.
7995 compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
7996 finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
7670 compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
7671 finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
79977672 fi
79987673
79997674 func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
80057680
80067681 wrappers_required=yes
80077682 case $host in
8008 *cegcc* | *mingw32ce*)
8009 # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
8010 wrappers_required=no
8011 ;;
80127683 *cygwin* | *mingw* )
80137684 if test "$build_libtool_libs" != yes; then
80147685 wrappers_required=no
80157686 fi
7687 ;;
7688 *cegcc)
7689 # Disable wrappers for cegcc, we are cross compiling anyway.
7690 wrappers_required=no
80167691 ;;
80177692 *)
80187693 if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
80227697 esac
80237698 if test "$wrappers_required" = no; then
80247699 # Replace the output file specification.
8025 compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
7700 compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
80267701 link_command="$compile_command$compile_rpath"
80277702
80287703 # We have no uninstalled library dependencies, so finalize right now.
80697744 # We don't need to create a wrapper script.
80707745 link_command="$compile_var$compile_command$compile_rpath"
80717746 # Replace the output file specification.
8072 link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
7747 link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
80737748 # Delete the old output file.
80747749 $opt_dry_run || $RM $output
80757750 # Link the executable and exit
80887763 if test "$fast_install" != no; then
80897764 link_command="$finalize_var$compile_command$finalize_rpath"
80907765 if test "$fast_install" = yes; then
8091 relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
7766 relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
80927767 else
80937768 # fast_install is set to needless
80947769 relink_command=
81007775 fi
81017776
81027777 # Replace the output file specification.
8103 link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
7778 link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
81047779
81057780 # Delete the old output files.
81067781 $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
81247799 fi
81257800 done
81267801 relink_command="(cd `pwd`; $relink_command)"
8127 relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
7802 relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
7803 fi
7804
7805 # Quote $ECHO for shipping.
7806 if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
7807 case $progpath in
7808 [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
7809 *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
7810 esac
7811 qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
7812 else
7813 qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
81287814 fi
81297815
81307816 # Only actually do things if not in dry run mode.
82457931 done | sort | sort -uc >/dev/null 2>&1); then
82467932 :
82477933 else
8248 echo "copying selected object files to avoid basename conflicts..."
7934 $ECHO "copying selected object files to avoid basename conflicts..."
82497935 gentop="$output_objdir/${outputname}x"
82507936 generated="$generated $gentop"
82517937 func_mkdir_p "$gentop"
83568042 done
83578043 # Quote the link command for shipping.
83588044 relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
8359 relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
8045 relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
83608046 if test "$hardcode_automatic" = yes ; then
83618047 relink_command=
83628048 fi
84418127 fi
84428128 $RM $output
84438129 # place dlname in correct position for cygwin
8444 # In fact, it would be nice if we could use this code for all target
8445 # systems that can't hard-code library paths into their executables
8446 # and that have no shared library path variable independent of PATH,
8447 # but it turns out we can't easily determine that from inspecting
8448 # libtool variables, so we have to hard-code the OSs to which it
8449 # applies here; at the moment, that means platforms that use the PE
8450 # object format with DLL files. See the long comment at the top of
8451 # tests/bindir.at for full details.
84528130 tdlname=$dlname
84538131 case $host,$output,$installed,$module,$dlname in
8454 *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
8455 # If a -bindir argument was supplied, place the dll there.
8456 if test "x$bindir" != x ;
8457 then
8458 func_relative_path "$install_libdir" "$bindir"
8459 tdlname=$func_relative_path_result$dlname
8460 else
8461 # Otherwise fall back on heuristic.
8462 tdlname=../bin/$dlname
8463 fi
8464 ;;
8132 *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
84658133 esac
84668134 $ECHO > $output "\
84678135 # $outputname - a libtool library file
0 #! /bin/sh
1 # mkinstalldirs --- make directory hierarchy
2
3 scriptversion=2009-04-28.21; # UTC
4
5 # Original author: Noah Friedman <friedman@prep.ai.mit.edu>
6 # Created: 1993-05-16
7 # Public domain.
8 #
9 # This file is maintained in Automake, please report
10 # bugs to <bug-automake@gnu.org> or send patches to
11 # <automake-patches@gnu.org>.
12
13 nl='
14 '
15 IFS=" "" $nl"
16 errstatus=0
17 dirmode=
18
19 usage="\
20 Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
21
22 Create each directory DIR (with mode MODE, if specified), including all
23 leading file name components.
24
25 Report bugs to <bug-automake@gnu.org>."
26
27 # process command line arguments
28 while test $# -gt 0 ; do
29 case $1 in
30 -h | --help | --h*) # -h for help
31 echo "$usage"
32 exit $?
33 ;;
34 -m) # -m PERM arg
35 shift
36 test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
37 dirmode=$1
38 shift
39 ;;
40 --version)
41 echo "$0 $scriptversion"
42 exit $?
43 ;;
44 --) # stop option processing
45 shift
46 break
47 ;;
48 -*) # unknown option
49 echo "$usage" 1>&2
50 exit 1
51 ;;
52 *) # first non-opt arg
53 break
54 ;;
55 esac
56 done
57
58 for file
59 do
60 if test -d "$file"; then
61 shift
62 else
63 break
64 fi
65 done
66
67 case $# in
68 0) exit 0 ;;
69 esac
70
71 # Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
72 # mkdir -p a/c at the same time, both will detect that a is missing,
73 # one will create a, then the other will try to create a and die with
74 # a "File exists" error. This is a problem when calling mkinstalldirs
75 # from a parallel make. We use --version in the probe to restrict
76 # ourselves to GNU mkdir, which is thread-safe.
77 case $dirmode in
78 '')
79 if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
80 echo "mkdir -p -- $*"
81 exec mkdir -p -- "$@"
82 else
83 # On NextStep and OpenStep, the `mkdir' command does not
84 # recognize any option. It will interpret all options as
85 # directories to create, and then abort because `.' already
86 # exists.
87 test -d ./-p && rmdir ./-p
88 test -d ./--version && rmdir ./--version
89 fi
90 ;;
91 *)
92 if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
93 test ! -d ./--version; then
94 echo "mkdir -m $dirmode -p -- $*"
95 exec mkdir -m "$dirmode" -p -- "$@"
96 else
97 # Clean up after NextStep and OpenStep mkdir.
98 for d in ./-m ./-p ./--version "./$dirmode";
99 do
100 test -d $d && rmdir $d
101 done
102 fi
103 ;;
104 esac
105
106 for file
107 do
108 case $file in
109 /*) pathcomp=/ ;;
110 *) pathcomp= ;;
111 esac
112 oIFS=$IFS
113 IFS=/
114 set fnord $file
115 shift
116 IFS=$oIFS
117
118 for d
119 do
120 test "x$d" = x && continue
121
122 pathcomp=$pathcomp$d
123 case $pathcomp in
124 -*) pathcomp=./$pathcomp ;;
125 esac
126
127 if test ! -d "$pathcomp"; then
128 echo "mkdir $pathcomp"
129
130 mkdir "$pathcomp" || lasterr=$?
131
132 if test ! -d "$pathcomp"; then
133 errstatus=$lasterr
134 else
135 if test ! -z "$dirmode"; then
136 echo "chmod $dirmode $pathcomp"
137 lasterr=
138 chmod "$dirmode" "$pathcomp" || lasterr=$?
139
140 if test ! -z "$lasterr"; then
141 errstatus=$lasterr
142 fi
143 fi
144 fi
145 fi
146
147 pathcomp=$pathcomp/
148 done
149 done
150
151 exit $errstatus
152
153 # Local Variables:
154 # mode: shell-script
155 # sh-indentation: 2
156 # eval: (add-hook 'write-file-hooks 'time-stamp)
157 # time-stamp-start: "scriptversion="
158 # time-stamp-format: "%:y-%02m-%02d.%02H"
159 # time-stamp-time-zone: "UTC"
160 # time-stamp-end: "; # UTC"
161 # End:
00 noinst_PROGRAMS = dlna-profile-parser dlna-encoding
11
2 AM_CFLAGS = -I$(top_srcdir) -I$(top_srcdir)/gst-convenience/gst-libs $(GST_CFLAGS)
2 AM_CFLAGS = -I$(top_srcdir) $(GST_CFLAGS) $(GST_PBU_CFLAGS) $(LIBXML_CFLAGS)
33 LIBS = $(GST_LIBS) \
4 $(top_builddir)/gst-convenience/gst-libs/gst/profile/.libs/libgstprofile-gupnp-dlna-@GST_MAJORMINOR@.la \
4 $(LIBXML_LIBS) \
5 $(GST_PBU_LIBS) \
56 $(top_builddir)/libgupnp-dlna/libgupnp-dlna-1.0.la
6
7 dlna_encoding_LDADD = \
8 $(top_builddir)/gst-convenience/gst-libs/gst/discoverer/.libs/libgstdiscoverer-gupnp-dlna-@GST_MAJORMINOR@.la
97
108 dlna_profile_parser_SOURCES = dlna-profile-parser.c
119 dlna_encoding_SOURCES = dlna-encoding.c
4141 am__aclocal_m4_deps = $(top_srcdir)/configure.ac
4242 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
4343 $(ACLOCAL_M4)
44 mkinstalldirs = $(install_sh) -d
44 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
4545 CONFIG_HEADER = $(top_builddir)/config.h
4646 CONFIG_CLEAN_FILES = test-discoverer.sh
4747 CONFIG_CLEAN_VPATH_FILES =
4848 PROGRAMS = $(noinst_PROGRAMS)
4949 am_dlna_encoding_OBJECTS = dlna-encoding.$(OBJEXT)
5050 dlna_encoding_OBJECTS = $(am_dlna_encoding_OBJECTS)
51 dlna_encoding_DEPENDENCIES = $(top_builddir)/gst-convenience/gst-libs/gst/discoverer/.libs/libgstdiscoverer-gupnp-dlna-@GST_MAJORMINOR@.la
51 dlna_encoding_LDADD = $(LDADD)
5252 AM_V_lt = $(am__v_lt_$(V))
5353 am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
5454 am__v_lt_0 = --silent
116116 FGREP = @FGREP@
117117 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
118118 GREP = @GREP@
119 GST_BASE_CFLAGS = @GST_BASE_CFLAGS@
120 GST_BASE_LIBS = @GST_BASE_LIBS@
121119 GST_CFLAGS = @GST_CFLAGS@
122120 GST_LIBS = @GST_LIBS@
123121 GST_MAJORMINOR = @GST_MAJORMINOR@
124 GST_VIDEO_CFLAGS = @GST_VIDEO_CFLAGS@
125 GST_VIDEO_LIBS = @GST_VIDEO_LIBS@
122 GST_PBU_CFLAGS = @GST_PBU_CFLAGS@
123 GST_PBU_LIBS = @GST_PBU_LIBS@
126124 GTKDOC_CHECK = @GTKDOC_CHECK@
127125 GTKDOC_MKPDF = @GTKDOC_MKPDF@
128126 GTKDOC_REBASE = @GTKDOC_REBASE@
137135 LDFLAGS = @LDFLAGS@
138136 LIBOBJS = @LIBOBJS@
139137 LIBS = $(GST_LIBS) \
140 $(top_builddir)/gst-convenience/gst-libs/gst/profile/.libs/libgstprofile-gupnp-dlna-@GST_MAJORMINOR@.la \
138 $(LIBXML_LIBS) \
139 $(GST_PBU_LIBS) \
141140 $(top_builddir)/libgupnp-dlna/libgupnp-dlna-1.0.la
142141
143142 LIBTOOL = @LIBTOOL@
163162 PACKAGE_VERSION = @PACKAGE_VERSION@
164163 PATH_SEPARATOR = @PATH_SEPARATOR@
165164 PKG_CONFIG = @PKG_CONFIG@
166 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
167 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
168165 RANLIB = @RANLIB@
169166 SED = @SED@
170167 SET_MAKE = @SET_MAKE@
207204 libexecdir = @libexecdir@
208205 localedir = @localedir@
209206 localstatedir = @localstatedir@
207 lt_ECHO = @lt_ECHO@
210208 mandir = @mandir@
211209 mkdir_p = @mkdir_p@
212210 oldincludedir = @oldincludedir@
222220 top_build_prefix = @top_build_prefix@
223221 top_builddir = @top_builddir@
224222 top_srcdir = @top_srcdir@
225 AM_CFLAGS = -I$(top_srcdir) -I$(top_srcdir)/gst-convenience/gst-libs $(GST_CFLAGS)
226 dlna_encoding_LDADD = \
227 $(top_builddir)/gst-convenience/gst-libs/gst/discoverer/.libs/libgstdiscoverer-gupnp-dlna-@GST_MAJORMINOR@.la
228
223 AM_CFLAGS = -I$(top_srcdir) $(GST_CFLAGS) $(GST_PBU_CFLAGS) $(LIBXML_CFLAGS)
229224 dlna_profile_parser_SOURCES = dlna-profile-parser.c
230225 dlna_encoding_SOURCES = dlna-encoding.c
231226 TESTS_ENVIRONMENT = MEDIA_DIR="$(srcdir)/media" FILE_LIST="$(srcdir)/media/media-list.txt" ${SHELL}
2323 #include <stdlib.h>
2424 #include <glib.h>
2525 #include <gst/gst.h>
26 #include <gst/profile/gstprofile.h>
26 #include <gst/pbutils/pbutils.h>
27 #include <gst/pbutils/encoding-profile.h>
2728 #include <libgupnp-dlna/gupnp-dlna-discoverer.h>
2829
2930 static gboolean silent = FALSE;
8990 }
9091
9192 static void
92 transcode_file (gchar * uri, gchar * outputuri, const GstEncodingProfile * prof)
93 transcode_file (gchar * uri, gchar * outputuri, GstEncodingProfile * prof)
9394 {
9495 GstElement *pipeline;
9596 GstElement *src;
117118 /* Figure out the streams that can be passed as-is to encodebin */
118119 g_object_get (src, "caps", &rescaps, NULL);
119120 rescaps = gst_caps_copy (rescaps);
120 profilecaps = gst_encoding_profile_get_codec_caps ((GstEncodingProfile *) prof);
121 profilecaps = gst_encoding_profile_get_input_caps (prof);
121122 gst_caps_append (rescaps, profilecaps);
122123
123124 /* Set properties */
151152 g_main_loop_run (mainloop);
152153
153154 gst_element_set_state (pipeline, GST_STATE_NULL);
155 gst_object_unref (pipeline);
154156 }
155157
156158 static gchar *
1818 * Boston, MA 02111-1307, USA.
1919 */
2020
21 #include <libgupnp-dlna/gupnp-dlna-load.h>
21 #include <gst/gst.h>
22 #include <libgupnp-dlna/profile-loading.h>
2223 #include <libgupnp-dlna/gupnp-dlna-profile.h>
23 #include <gst/profile/gstprofile.h>
24 #include <gst/pbutils/pbutils.h>
25 #include <libxml/xmlmemory.h>
2426 #include <stdlib.h>
2527
2628 static void usage (void)
2830 g_print ("Usage: dlna-profile-parser file1 file2 ... dir1 dir2 ...\n");
2931 }
3032
31 static void print_caps (GstCaps *caps)
33 static void print_caps (const GstCaps *caps)
3234 {
3335 int i;
3436
4446
4547 static void print_profile (GUPnPDLNAProfile *profile, gpointer unused)
4648 {
47 const GstEncodingProfile *enc_profile;
48 GList *tmp;
49 GstEncodingProfile *enc_profile;
50 const GList *tmp;
4951 gchar *caps_str;
5052
5153 enc_profile = gupnp_dlna_profile_get_encoding_profile (profile);
52 tmp = enc_profile->encodingprofiles;
53 caps_str = gst_caps_to_string (enc_profile->format);
54 tmp = gst_encoding_container_profile_get_profiles (GST_ENCODING_CONTAINER_PROFILE (enc_profile));
55 caps_str = gst_caps_to_string ((GstCaps *)gst_encoding_profile_get_format (enc_profile));
5456
5557 g_print ("Loaded DLNA Profile: %s, %s - format %s\n",
5658 gupnp_dlna_profile_get_name (profile),
5860 caps_str);
5961
6062 while (tmp) {
61 print_caps (((GstStreamEncodingProfile *) tmp->data)->format);
63 print_caps (gst_encoding_profile_get_format
64 (GST_ENCODING_PROFILE(tmp->data)));
6265 tmp = tmp->next;
6366 }
6467
6568 g_print ("\n");
6669 g_free (caps_str);
70 gst_encoding_profile_unref (enc_profile);
71 }
72
73 static void
74 free_restrictions_struct (gpointer data, gpointer user_data)
75 {
76 GUPnPDLNARestrictions *restr = (GUPnPDLNARestrictions *)data;
77 if (restr) {
78 if (restr->caps)
79 gst_caps_unref (restr->caps);
80
81 g_free (restr);
82 }
6783 }
6884
6985 int
86102
87103 GOptionContext *ctx;
88104
89 g_thread_init (NULL);
105 if (!g_thread_supported ())
106 g_thread_init (NULL);
90107
91108 ctx = g_option_context_new (" - test to parse dlna profiles");
92109 g_option_context_add_main_entries (ctx, options, NULL);
113130 g_str_equal,
114131 (GDestroyNotify) xmlFree,
115132 (GDestroyNotify)
116 gst_stream_encoding_profile_free);
133 free_restrictions_struct);
117134 data->profile_ids = g_hash_table_new_full (g_str_hash,
118135 g_str_equal,
119136 (GDestroyNotify) xmlFree,
120137 (GDestroyNotify)
121 gst_encoding_profile_free);
138 g_object_unref);
122139 data->files_hash = g_hash_table_new_full (g_str_hash,
123140 g_str_equal,
124141 g_free,
1717 # environment variable as well (but you must either pass both as env vars or
1818 # both on the command line).
1919 #
20
21 # This test is trialled when executing 'make check'. In that case the
22 # $MEDIA_DIR is ./tests/media (where . is gupnp-dlna's source code
23 # directory).
24 # You can get the default test media collection using the following command:
25 # git clone git://gitorious.org/gupnp/gupnp-dlna-media.git tests/media
2026
2127 if [[ "x${GUPNP_DLNA_INFO}" = "x" ]]; then
2228 GUPNP_DLNA_INFO=@abs_top_builddir@/tools/gupnp-dlna-info
6672 echo -n " Testing ${path} ... "
6773 if [[ "x${profile}" != "x${out_profile}" || "x${mime}" != "x${out_mime}" ]]; then
6874 ret=1
69 echo "FAIL: ${path},${out_profile},${out_mime}"
75 echo -e "\e[01;31mFAIL: ${path},${out_profile},${out_mime}\e[0m"
7076 else
7177 echo "PASS"
7278 fi
00 bin_PROGRAMS = gupnp-dlna-info gupnp-dlna-ls-profiles
11
2 AM_CFLAGS = -I$(top_srcdir) -I$(top_srcdir)/gst-convenience/gst-libs $(GST_CFLAGS)
2 AM_CFLAGS = -I$(top_srcdir) $(GST_CFLAGS) $(GST_PBU_CFLAGS)
33 LIBS = $(GST_LIBS) \
4 $(GST_PBU_LIBS) \
45 $(top_builddir)/libgupnp-dlna/libgupnp-dlna-1.0.la
5
6 gupnp_dlna_info_LDADD = $(top_builddir)/gst-convenience/gst-libs/gst/discoverer/.libs/libgstdiscoverer-gupnp-dlna-@GST_MAJORMINOR@.la
7
8 gupnp_dlna_ls_profiles_LDADD = \
9 $(top_builddir)/gst-convenience/gst-libs/gst/profile/.libs/libgstprofile-gupnp-dlna-@GST_MAJORMINOR@.la
4141 am__aclocal_m4_deps = $(top_srcdir)/configure.ac
4242 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
4343 $(ACLOCAL_M4)
44 mkinstalldirs = $(install_sh) -d
44 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
4545 CONFIG_HEADER = $(top_builddir)/config.h
4646 CONFIG_CLEAN_FILES =
4747 CONFIG_CLEAN_VPATH_FILES =
4949 PROGRAMS = $(bin_PROGRAMS)
5050 gupnp_dlna_info_SOURCES = gupnp-dlna-info.c
5151 gupnp_dlna_info_OBJECTS = gupnp-dlna-info.$(OBJEXT)
52 gupnp_dlna_info_DEPENDENCIES = $(top_builddir)/gst-convenience/gst-libs/gst/discoverer/.libs/libgstdiscoverer-gupnp-dlna-@GST_MAJORMINOR@.la
52 gupnp_dlna_info_LDADD = $(LDADD)
5353 AM_V_lt = $(am__v_lt_$(V))
5454 am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
5555 am__v_lt_0 = --silent
5656 gupnp_dlna_ls_profiles_SOURCES = gupnp-dlna-ls-profiles.c
5757 gupnp_dlna_ls_profiles_OBJECTS = gupnp-dlna-ls-profiles.$(OBJEXT)
58 gupnp_dlna_ls_profiles_DEPENDENCIES = $(top_builddir)/gst-convenience/gst-libs/gst/profile/.libs/libgstprofile-gupnp-dlna-@GST_MAJORMINOR@.la
58 gupnp_dlna_ls_profiles_LDADD = $(LDADD)
5959 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
6060 depcomp = $(SHELL) $(top_srcdir)/depcomp
6161 am__depfiles_maybe = depfiles
115115 FGREP = @FGREP@
116116 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
117117 GREP = @GREP@
118 GST_BASE_CFLAGS = @GST_BASE_CFLAGS@
119 GST_BASE_LIBS = @GST_BASE_LIBS@
120118 GST_CFLAGS = @GST_CFLAGS@
121119 GST_LIBS = @GST_LIBS@
122120 GST_MAJORMINOR = @GST_MAJORMINOR@
123 GST_VIDEO_CFLAGS = @GST_VIDEO_CFLAGS@
124 GST_VIDEO_LIBS = @GST_VIDEO_LIBS@
121 GST_PBU_CFLAGS = @GST_PBU_CFLAGS@
122 GST_PBU_LIBS = @GST_PBU_LIBS@
125123 GTKDOC_CHECK = @GTKDOC_CHECK@
126124 GTKDOC_MKPDF = @GTKDOC_MKPDF@
127125 GTKDOC_REBASE = @GTKDOC_REBASE@
136134 LDFLAGS = @LDFLAGS@
137135 LIBOBJS = @LIBOBJS@
138136 LIBS = $(GST_LIBS) \
137 $(GST_PBU_LIBS) \
139138 $(top_builddir)/libgupnp-dlna/libgupnp-dlna-1.0.la
140139
141140 LIBTOOL = @LIBTOOL@
161160 PACKAGE_VERSION = @PACKAGE_VERSION@
162161 PATH_SEPARATOR = @PATH_SEPARATOR@
163162 PKG_CONFIG = @PKG_CONFIG@
164 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
165 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
166163 RANLIB = @RANLIB@
167164 SED = @SED@
168165 SET_MAKE = @SET_MAKE@
205202 libexecdir = @libexecdir@
206203 localedir = @localedir@
207204 localstatedir = @localstatedir@
205 lt_ECHO = @lt_ECHO@
208206 mandir = @mandir@
209207 mkdir_p = @mkdir_p@
210208 oldincludedir = @oldincludedir@
220218 top_build_prefix = @top_build_prefix@
221219 top_builddir = @top_builddir@
222220 top_srcdir = @top_srcdir@
223 AM_CFLAGS = -I$(top_srcdir) -I$(top_srcdir)/gst-convenience/gst-libs $(GST_CFLAGS)
224 gupnp_dlna_info_LDADD = $(top_builddir)/gst-convenience/gst-libs/gst/discoverer/.libs/libgstdiscoverer-gupnp-dlna-@GST_MAJORMINOR@.la
225 gupnp_dlna_ls_profiles_LDADD = \
226 $(top_builddir)/gst-convenience/gst-libs/gst/profile/.libs/libgstprofile-gupnp-dlna-@GST_MAJORMINOR@.la
227
221 AM_CFLAGS = -I$(top_srcdir) $(GST_CFLAGS) $(GST_PBU_CFLAGS)
228222 all: all-am
229223
230224 .SUFFIXES:
2828 #include "config.h"
2929 #endif
3030
31 #include <stdio.h>
3132 #include <stdlib.h>
3233 #include <string.h>
3334
3637 #include <gio/gio.h>
3738
3839 #include <gst/gst.h>
39 #include <gst/profile/gstprofile.h>
40 #include <gst/discoverer/gstdiscoverer.h>
41
42 #include <libgupnp-dlna/gupnp-dlna-load.h>
40 #include <gst/pbutils/pbutils.h>
41
42 #include <libgupnp-dlna/profile-loading.h>
4343 #include <libgupnp-dlna/gupnp-dlna-profile.h>
4444 #include <libgupnp-dlna/gupnp-dlna-discoverer.h>
4545 #include <libgupnp-dlna/gupnp-dlna-information.h>
4848 static gboolean async = FALSE;
4949 static gboolean verbose = FALSE;
5050 static gint timeout = 10;
51
52 static const gchar *_gst_stream_type_to_string[] = {
53 "CONTAINER",
54 "AUDIO",
55 "VIDEO",
56 "IMAGE",
57 "UNKNOWN",
58 };
5951
6052
6153 typedef struct
7264 g_string_append_printf (str, "%*s" format, 2*depth, " ", ##__VA_ARGS__)
7365
7466 static gchar *
75 gst_stream_audio_information_to_string (GstStreamAudioInformation * info,
67 gst_stream_audio_information_to_string (GstDiscovererStreamInfo * info,
7668 gint depth)
7769 {
7870 GString *s;
7971 gchar *tmp;
72 GstCaps *caps;
73 const GstStructure *misc;
74 const GstTagList *taglist;
75 const GstDiscovererAudioInfo *audio_info;
8076 int len = 400;
8177
8278 g_return_val_if_fail (info != NULL, NULL);
8379
80 audio_info = GST_DISCOVERER_AUDIO_INFO (info);
8481 s = g_string_sized_new (len);
8582
8683 my_g_string_append_printf (s, "Codec:\n");
87 tmp = gst_caps_to_string (info->parent.caps);
84 caps = gst_discoverer_stream_info_get_caps (info);
85 tmp = gst_caps_to_string (caps);
8886 my_g_string_append_printf (s, " %s\n", tmp);
87 gst_caps_unref (caps);
8988 g_free (tmp);
9089
9190 my_g_string_append_printf (s, "Additional info:\n");
92 if (info->parent.misc) {
93 tmp = gst_structure_to_string (info->parent.misc);
91 misc = gst_discoverer_stream_info_get_misc (info);
92 if (misc) {
93 tmp = gst_structure_to_string (misc);
9494 my_g_string_append_printf (s, " %s\n", tmp);
9595 g_free (tmp);
9696 } else {
9797 my_g_string_append_printf (s, " None\n");
9898 }
9999
100 my_g_string_append_printf (s, "Channels: %u\n", info->channels);
101 my_g_string_append_printf (s, "Sample rate: %u\n", info->sample_rate);
102 my_g_string_append_printf (s, "Depth: %u\n", info->depth);
103
104 my_g_string_append_printf (s, "Bitrate: %u\n", info->bitrate);
105 my_g_string_append_printf (s, "Max bitrate: %u\n", info->max_bitrate);
106 my_g_string_append_printf (s, "VBR: %s\n",
107 info->is_vbr ? "true" : "false");
100 my_g_string_append_printf (s, "Channels: %u\n",
101 gst_discoverer_audio_info_get_channels (audio_info));
102 my_g_string_append_printf (s, "Sample rate: %u\n",
103 gst_discoverer_audio_info_get_sample_rate (audio_info));
104 my_g_string_append_printf (s, "Depth: %u\n",
105 gst_discoverer_audio_info_get_depth (audio_info));
106
107 my_g_string_append_printf (s, "Bitrate: %u\n",
108 gst_discoverer_audio_info_get_bitrate (audio_info));
109 my_g_string_append_printf (s, "Max bitrate: %u\n",
110 gst_discoverer_audio_info_get_max_bitrate (audio_info));
108111
109112 my_g_string_append_printf (s, "Tags:\n");
110 if (info->parent.tags) {
111 tmp = gst_structure_to_string ((GstStructure *) info->parent.tags);
113 taglist = gst_discoverer_stream_info_get_tags (info);
114 if (taglist) {
115 tmp = gst_structure_to_string ((GstStructure *) taglist);
112116 my_g_string_append_printf (s, " %s\n", tmp);
113117 g_free (tmp);
114118 } else {
118122 return g_string_free (s, FALSE);
119123 }
120124
121 static const gchar *_gst_video_format_to_string[] = {
122 "UNKNOWN",
123 "I420",
124 "YV12",
125 "YUY2",
126 "UYVY",
127 "AYUV",
128 "RGBx",
129 "BGRx",
130 "xRGB",
131 "xBGR",
132 "RGBA",
133 "BGRA",
134 "ARGB",
135 "ABGR",
136 "RGB",
137 "BGR",
138 "Y41B",
139 "Y42B",
140 "YVYU",
141 "Y444",
142 "v210",
143 "v216"
144 };
145
146125 static gchar *
147 gst_stream_video_information_to_string (GstStreamVideoInformation * info,
126 gst_stream_video_information_to_string (GstDiscovererStreamInfo * info,
148127 gint depth)
149128 {
150129 GString *s;
151130 gchar *tmp;
152 int len = 500, n, d;
131 const GstStructure *misc;
132 const GstTagList *taglist;
133 const GstDiscovererVideoInfo *video_info;
134 GstCaps *caps;
135 int len = 500;
153136
154137 g_return_val_if_fail (info != NULL, NULL);
155138
139 video_info = GST_DISCOVERER_VIDEO_INFO (info);
140
156141 s = g_string_sized_new (len);
157142
158143 my_g_string_append_printf (s, "Codec:\n");
159 tmp = gst_caps_to_string (info->parent.caps);
144 caps = gst_discoverer_stream_info_get_caps (info);
145 tmp = gst_caps_to_string (caps);
160146 my_g_string_append_printf (s, " %s\n", tmp);
147 gst_caps_unref (caps);
161148 g_free (tmp);
162149
163150 my_g_string_append_printf (s, "Additional info:\n");
164 if (info->parent.misc) {
165 tmp = gst_structure_to_string (info->parent.misc);
151 misc = gst_discoverer_stream_info_get_misc (info);
152 if (misc) {
153 tmp = gst_structure_to_string (misc);
166154 my_g_string_append_printf (s, " %s\n", tmp);
167155 g_free (tmp);
168156 } else {
169157 my_g_string_append_printf (s, " None\n");
170158 }
171159
172 my_g_string_append_printf (s, "Width: %u\n", info->width);
173 my_g_string_append_printf (s, "Height: %u\n", info->height);
174 my_g_string_append_printf (s, "Depth: %u\n", info->depth);
175
176 n = gst_value_get_fraction_numerator (&info->frame_rate);
177 d = gst_value_get_fraction_denominator (&info->frame_rate);
178 my_g_string_append_printf (s, "Frame rate: %u/%u\n", n, d);
179
180 n = gst_value_get_fraction_numerator (&info->pixel_aspect_ratio);
181 d = gst_value_get_fraction_denominator (&info->pixel_aspect_ratio);
182 my_g_string_append_printf (s, "Pixel aspect ratio: %u/%u\n", n, d);
183
184 my_g_string_append_printf (s, "Format: %s\n",
185 _gst_video_format_to_string[info->format]);
160 my_g_string_append_printf (s, "Width: %u\n",
161 gst_discoverer_video_info_get_width (video_info));
162 my_g_string_append_printf (s, "Height: %u\n",
163 gst_discoverer_video_info_get_height (video_info));
164 my_g_string_append_printf (s, "Depth: %u\n",
165 gst_discoverer_video_info_get_depth (video_info));
166
167 my_g_string_append_printf (s, "Frame rate: %u/%u\n",
168 gst_discoverer_video_info_get_framerate_num (video_info),
169 gst_discoverer_video_info_get_framerate_denom (video_info));
170
171 my_g_string_append_printf (s, "Pixel aspect ratio: %u/%u\n",
172 gst_discoverer_video_info_get_par_num (video_info),
173 gst_discoverer_video_info_get_par_denom (video_info));
186174
187175 my_g_string_append_printf (s, "Interlaced: %s\n",
188 info->interlaced ? "true" : "false");
176 gst_discoverer_video_info_is_interlaced (video_info) ? "true" : "false");
177
178 my_g_string_append_printf (s, "Bitrate: %u\n",
179 gst_discoverer_video_info_get_bitrate (video_info));
180
181 my_g_string_append_printf (s, "Max bitrate: %u\n",
182 gst_discoverer_video_info_get_max_bitrate (video_info));
189183
190184 my_g_string_append_printf (s, "Tags:\n");
191 if (info->parent.tags) {
192 tmp = gst_structure_to_string ((GstStructure *) info->parent.tags);
185 taglist = gst_discoverer_stream_info_get_tags (info);
186 if (taglist) {
187 tmp = gst_structure_to_string ((GstStructure *) taglist);
193188 my_g_string_append_printf (s, " %s\n", tmp);
194189 g_free (tmp);
195190 } else {
201196 }
202197
203198 static void
204 print_stream_info (GstStreamInformation * info, void *depth)
199 print_stream_info (GstDiscovererStreamInfo * info, void *depth)
205200 {
206201 gchar *desc = NULL;
207
208 if (info->caps) {
209 desc = gst_caps_to_string (info->caps);
202 GstCaps *caps;
203
204 caps = gst_discoverer_stream_info_get_caps (info);
205 if (caps) {
206 desc = gst_caps_to_string (caps);
210207 }
211208
212209 g_print ("%*s%s: %s\n", 2 * GPOINTER_TO_INT (depth), " ",
213 _gst_stream_type_to_string[info->streamtype], desc);
210 gst_discoverer_stream_info_get_stream_type_nick (info),
211 desc);
214212
215213 if (desc) {
216214 g_free (desc);
217215 desc = NULL;
218216 }
219217
220 switch (info->streamtype) {
221 case GST_STREAM_AUDIO:
218 if (GST_IS_DISCOVERER_AUDIO_INFO (info))
222219 desc = gst_stream_audio_information_to_string (
223 (GstStreamAudioInformation *) info,
220 info,
224221 GPOINTER_TO_INT (depth) + 1);
225 break;
226
227 case GST_STREAM_VIDEO:
228 case GST_STREAM_IMAGE:
222 else if (GST_IS_DISCOVERER_VIDEO_INFO (info))
229223 desc = gst_stream_video_information_to_string (
230 (GstStreamVideoInformation *) info,
224 info,
231225 GPOINTER_TO_INT (depth) + 1);
232 break;
233
234 default:
235 break;
236 }
237226
238227 if (desc) {
239228 g_print ("%s", desc);
242231 }
243232
244233 static void
245 print_topology (GstStreamInformation * info, gint depth)
246 {
234 print_topology (GstDiscovererStreamInfo * info, gint depth)
235 {
236 GstDiscovererStreamInfo *next;
247237 if (!info)
248238 return;
249239
250240 print_stream_info (info, GINT_TO_POINTER (depth));
251241
252 if (info->next)
253 print_topology (info->next, depth + 1);
254 else if (info->streamtype == GST_STREAM_CONTAINER) {
255 GstStreamContainerInformation *cont =
256 (GstStreamContainerInformation *) info;
257 GList *tmp;
258
259 for (tmp = cont->streams; tmp; tmp = tmp->next) {
260 GstStreamInformation *tmpinf =
261 (GstStreamInformation *) tmp->data;
242 next = gst_discoverer_stream_info_get_next (info);
243 if (next) {
244 print_topology (next, depth + 1);
245 gst_discoverer_stream_info_unref (next);
246 } else if (GST_IS_DISCOVERER_CONTAINER_INFO (info)) {
247 GList *tmp, *streams;
248 GstDiscovererContainerInfo *container =
249 GST_DISCOVERER_CONTAINER_INFO (info);
250
251 streams = gst_discoverer_container_info_get_streams (container);
252 for (tmp = streams; tmp; tmp = tmp->next) {
253 GstDiscovererStreamInfo *tmpinf =
254 GST_DISCOVERER_STREAM_INFO (tmp->data);
262255 print_topology (tmpinf, depth + 1);
263256 }
264257 }
265258 }
266259
267260 static void
268 print_duration (const GstDiscovererInformation * info, gint tab)
261 print_duration (GstDiscovererInfo * info, gint tab)
269262 {
270263 g_print ("%*s%" GST_TIME_FORMAT "\n", tab + 1, " ",
271 GST_TIME_ARGS (info->duration));
272 }
273
274 static void
275 print_gst_info (const GstDiscovererInformation *info, GError *err)
276 {
277 /* Get done with the error parsing first */
278 if (info->result & GST_DISCOVERER_URI_INVALID)
264 GST_TIME_ARGS (gst_discoverer_info_get_duration (info)));
265 }
266
267 static void
268 print_gst_info (GstDiscovererInfo *info, GError *err)
269 {
270 GstDiscovererResult result = gst_discoverer_info_get_result (info);
271 GstDiscovererStreamInfo *sinfo;
272
273 switch (result) {
274 case GST_DISCOVERER_OK:
275 break;
276 case GST_DISCOVERER_URI_INVALID:
279277 g_print ("URI is not valid\n");
280 else if (info->result & GST_DISCOVERER_TIMEOUT)
281 g_print ("Timeout !\n");
282 if (info->result & GST_DISCOVERER_ERROR) {
283 g_print ("An error while discovering the file\n");
278 break;
279 case GST_DISCOVERER_ERROR:
280 g_print ("An error was encountered while discovering the file\n");
284281 g_print (" %s\n", err->message);
285 if (info->result & GST_DISCOVERER_MISSING_PLUGINS) {
286 gchar *tmp = gst_structure_to_string (info->misc);
282 break;
283 case GST_DISCOVERER_TIMEOUT:
284 g_print ("Analyzing URI timed out\n");
285 break;
286 case GST_DISCOVERER_BUSY:
287 g_print ("Discoverer was busy\n");
288 break;
289 case GST_DISCOVERER_MISSING_PLUGINS:
290 g_print ("Missing plugins\n");
291 if (verbose) {
292 gchar *tmp =
293 gst_structure_to_string (gst_discoverer_info_get_misc (info));
287294 g_print (" (%s)\n", tmp);
288295 g_free (tmp);
289296 }
290
291 return;
292 }
293
294 /* Print Useful information */
297 break;
298 }
299
295300 if (verbose) {
296 if (!(info->result &
297 (GST_DISCOVERER_ERROR | GST_DISCOVERER_TIMEOUT))) {
301 if ((sinfo = gst_discoverer_info_get_stream_info (info))) {
298302 g_print ("\nTopology:\n");
299 print_topology (info->stream_info, 1);
303 print_topology (sinfo, 1);
300304 g_print ("\nDuration:\n");
301305 print_duration (info, 1);
302 }
303 }
306 gst_discoverer_stream_info_unref (sinfo);
307 }
308 }
309
310 g_print ("\n");
304311 }
305312
306313 static void
307314 print_dlna_info (GUPnPDLNAInformation *dlna, GError *err)
308315 {
309 g_print ("\nURI: %s\n", gupnp_dlna_information_get_info (dlna)->uri);
316 GstDiscovererInfo *info;
317
318 info = (GstDiscovererInfo *)gupnp_dlna_information_get_info (dlna);
319
320 g_print ("\nURI: %s\n", gst_discoverer_info_get_uri (info));
310321 g_print ("Profile Name: %s\n", gupnp_dlna_information_get_name (dlna));
311322 g_print ("Profile MIME: %s\n", gupnp_dlna_information_get_mime (dlna));
312323
313 print_gst_info (gupnp_dlna_information_get_info(dlna), err);
324 print_gst_info ((GstDiscovererInfo *)info, err);
314325
315326 g_print ("\n");
316327 return;
403414 g_free (uri);
404415 }
405416
406
407417 static gboolean
408418 async_idle_loop (PrivStruct * ps)
409419 {
441451
442452 GOptionContext *ctx;
443453
444
445 g_thread_init(NULL);
454 if (!g_thread_supported ())
455 g_thread_init(NULL);
446456
447457 ctx = g_option_context_new (" - program to extract DLNA and related metadata");
448458 g_option_context_add_main_entries (ctx, options, NULL);
462472 }
463473
464474 gst_init(&argc, &argv);
465
466475
467476 discover = gupnp_dlna_discoverer_new ((GstClockTime)
468477 (timeout * GST_SECOND),
470479 extended_mode);
471480
472481 if (async == FALSE) {
473 for ( i = 1 ; i < argc ; i++ ) {
482 for ( i = 1 ; i < argc ; i++ )
474483 process_file (discover, argv[i]);
475 }
476484 } else {
477485 PrivStruct *ps = g_new0 (PrivStruct, 1);
478486 GMainLoop *ml = g_main_loop_new (NULL, FALSE);
485493
486494 g_signal_connect (discover, "done",
487495 (GCallback) discoverer_done, 0);
488 g_signal_connect (discover, "ready",
496 g_signal_connect (discover, "finished",
489497 (GCallback) discoverer_ready, ml);
490498
491499 gupnp_dlna_discoverer_start (discover);
3434 #include <libgupnp-dlna/gupnp-dlna-profile.h>
3535 #include <libgupnp-dlna/gupnp-dlna-discoverer.h>
3636
37 #include <gst/profile/gstprofile.h>
37 #include <gst/pbutils/pbutils.h>
3838
3939 static gboolean verbose = FALSE, relaxed = FALSE;
4040
41 static void print_caps (GstCaps *caps)
41 static void print_caps (const GstCaps *caps)
4242 {
4343 int i;
4444
5555 static void
5656 print_profile (GUPnPDLNAProfile *profile, gpointer unused)
5757 {
58 const GstEncodingProfile *enc_profile;
59 GList *tmp;
58 GstEncodingProfile *enc_profile;
59 const GList *tmp;
6060 gchar *caps_str;
6161
6262 enc_profile = gupnp_dlna_profile_get_encoding_profile (profile);
63 tmp = enc_profile->encodingprofiles;
63 tmp = gst_encoding_container_profile_get_profiles
64 (GST_ENCODING_CONTAINER_PROFILE (enc_profile));
6465
6566 g_print ("%s %-30s%-35s",
6667 gupnp_dlna_profile_get_extended (profile) ? "*" : " ",
6869 gupnp_dlna_profile_get_mime (profile));
6970
7071 if (verbose) {
71 caps_str = gst_caps_to_string (enc_profile->format);
72 caps_str = gst_caps_to_string
73 (gst_encoding_profile_get_format (enc_profile));
7274 g_print ("\n`- container: %s\n", caps_str);
7375 g_free (caps_str);
7476
7577 while (tmp) {
76 print_caps (((GstStreamEncodingProfile *) tmp->data)->format);
78 print_caps (gst_encoding_profile_get_format
79 (GST_ENCODING_PROFILE (tmp->data)));
7780 tmp = tmp->next;
7881 }
7982 }
8083
8184 g_print ("\n");
85 gst_encoding_profile_unref (enc_profile);
8286 }
8387
8488 int
98102
99103 GOptionContext *ctx;
100104
101 g_thread_init(NULL);
105 if (!g_thread_supported ())
106 g_thread_init(NULL);
102107
103108 ctx = g_option_context_new (" - program to list all the DLNA profiles supported by gupnp-dlna");
104109 g_option_context_add_main_entries (ctx, options, NULL);