Codebase list flickcurl / d08726a
Import upstream/1.22 Kumar Appaiah 12 years ago
126 changed file(s) with 12557 addition(s) and 5510 deletion(s). Raw diff Collapse all Expand all
0 2011-11-11 Dave Beckett <dave@dajobe.org>
1
2 * Snapshotted flickcurl_1_22 for 1.22 release (GIT
3 6698387f4240cec82b0e115adf8a863657dd7066)
4
5 * utils/oauth-test.c:
6 Update flickcurl_oauth_prepare_common call
7
8 * NEWS.html, src/common.c, src/flickcurl_internal.h: Disable
9 mtwist unless building experimental OAuth
10
11 * src/Makefile.am: Do not use libmtwist without oauth
12
13 * configure.ac, src/Makefile.am, src/common.c,
14 src/flickcurl_internal.h, utils/Makefile.am: Add --enable-oauth
15 default disabled
16
17 * src/common.c:
18 (flickcurl_free): Free OAuth urls
19
20 * src/oauth.c:
21 (test_signature_calc): Test free
22
23 * src/oauth.c: Make oauth test work again
24
25 * src/flickcurl_internal.h, src/oauth.c: Remove is_request arg -
26 just use od->callback
27
28 * src/common.c, src/flickcurl_internal.h, src/oauth.c,
29 utils/oauth-test.c: Move flickcurl_oauth_data into flickcurl
30 struct
31
32 * docs/flickcurl-docs.xml, docs/tmpl/section-config.sgml: Add
33 config section to docs
34
35 * autogen.sh, docs/tmpl/section-auth.sgml,
36 docs/tmpl/section-core.sgml, docs/tmpl/section-misc.sgml,
37 docs/tmpl/section-unused.sgml, docs/tmpl/section-upload.sgml,
38 libmtwist: Fix submodule checkouts
39
40 * autogen.sh: Init and update any git submodules
41
42 2011-11-09 Dave Beckett <dave@dajobe.org>
43
44 * src/flickcurl_internal.h, src/oauth.c:
45 Reduce visibility of oauth
46 internal functions These are internal to the library now because the
47 flickcurl_oauth_data is an internal structure.
48
49 2011-11-01 Dave Beckett <dave@dajobe.org>
50
51 * src/common.c: Return method details with curl errors
52
53 * src/Makefile.am: Clean tests
54
55 2011-10-30 Dave Beckett <dave@dajobe.org>
56
57 * utils/oauth-test.c: code style
58
59 * utils/oauth-test.c: casts
60
61 * src/oauth.c: docs
62
63 * src/oauth.c: consts
64
65 * docs/flickcurl-sections.txt: add oauth urls
66
67 * src/flickcurl_internal.h, src/oauth.c: fix const char keys
68
69 * src/oauth.c: docs
70
71 * src/oauth.c:
72 (flickcurl_oauth_access_token): Delete request token after success.
73
74 * src/oauth.c:
75 (flickcurl_oauth_build_key): Build sign key from request OR access
76 token
77
78 * utils/oauth-test.c: docs
79
80 * src/Makefile.am, src/oauth.c, utils/oauth-test.c: Add oauth
81 checksum test
82
83 * src/.gitignore: ignore *_test
84
85 2011-10-29 Dave Beckett <dave@dajobe.org>
86
87 * utils/oauth-test.c: Report request token
88
89 * src/oauth.c:
90 (flickcurl_oauth_prepare_common): docs and send all oauth params
91 except callback to requests
92
93 * src/flickcurl_internal.h, src/oauth.c, utils/oauth-test.c:
94 (flickcurl_oauth_access_token): Pass in verifier
95
96 * src/flickcurl_internal.h, src/oauth.c: request_token* fields
97 renamed from tmp_token*
98
99 * docs/flickcurl-sections.txt, src/auth-api.c, src/flickcurl.h:
100 Added flickr.auth.oauth.getAccessToken partial support
101
102 (flickcurl_auth_oauth_getAccessToken): Added for
103 flickr.auth.oauth.getAccessToken - right now it exchanges the old
104 tokens for OAuth ones and drops them both.
105
106 * src/flickcurl_internal.h, utils/oauth-test.c: oauth field
107 client_key_len renamed from client_len
108
109 * utils/oauth-test.c: FLICKCURL_MAX_OAUTH_PARAM_COUNT
110
111 * src/oauth.c: is_oauth_method fix
112
113 * src/flickcurl_internal.h, src/oauth.c:
114 FLICKCURL_MAX_OAUTH_PARAM_COUNT
115
116 * src/flickcurl.h, src/flickcurl_internal.h, src/oauth.c,
117 utils/oauth-test.c: Compute authorize URI after getting back oauth
118 request token (flickcurl_oauth_get_authorize_uri): Added.
119
120 * src/common.c, src/flickcurl_internal.h, src/oauth.c: Add utility
121 functions for oauth responses as HTTP forms
122
123 (flickcurl_invoke_get_form_content): Added to get content as k/v
124 array of strings.
125
126 (flickcurl_free_form): Added to free the above.
127
128 (flickcurl_oauth_request_token), flickcurl_oauth_access_token):
129 Use above.
130
131 * src/common.c, src/flickcurl_internal.h, src/oauth.c,
132 utils/Makefile.am, utils/oauth-test.c: Move OAuth test code into
133 oauth.c and refactor a little
134
135 * src/oauth.c:
136 (flickcurl_oauth_prepare_common): Do not use oath method name in
137 params
138
139 * libmtwist: Update to libmtwist head
140
141 * utils/oauth-test.c: Pass in (fake) flickr method for
142 flickcurl_oauth_prepare_common()
143
144 * src/oauth.c:
145 (flickcurl_oauth_prepare_common): Use http method not flickr method
146
147 * utils/oauth-test.c: remove unused srand()
148
149 * src/common.c, src/flickcurl_internal.h, src/oauth.c,
150 utils/oauth-test.c: Use libmtwist for PRNG for nonce
151
152 * libmtwist: Update to libmtwist head
153
154 * docs/flickcurl-sections.txt: Add symbols
155
156 * src/Makefile.am:
157 Add mtwist_config.h
158
159 * NEWS.html, docs/flickcurl-sections.txt:
160 flickcurl_get_hidden_from_string
161
162 * README.html: libmtwist submodule
163
164 2011-10-28 Dave Beckett <dave@dajobe.org>
165
166 * .gitmodules, configure.ac, libmtwist, src/Makefile.am,
167 src/mtwist_config.h: Add libmtwist as a git submodule
168
169 2011-10-16 Dave Beckett <dave@dajobe.org>
170
171 * src/oauth.c:
172 (flickcurl_oauth_compute_signature): Simplify greatly.
173
174 * src/config.c, src/flickcurl.h, utils/flickcurl.c:
175 (flickcurl_config_write_ini): Now writes to a filename
176
177 * utils/codegen.c, utils/flickcurl.c, utils/flickrdf.c,
178 utils/list-methods.c, utils/oauth-test.c: Update the utilities to
179 use flickcurl_config_ functions
180
181 * docs/flickcurl-sections.txt, src/common.c, src/config.c,
182 src/flickcurl.h: Update flickcurl config file reading and writing
183 support Move ini reading and writing into the library.
184
185 (flickcurl_config_read_ini): Added, deprecating read_ini_config()
186 and adding a flickcurl* param. Reads in library configuration.
187
188 (flickcurl_config_var_handler): Added as standard handler for
189 above.
190
191 (flickcurl_config_write_ini): Added to write an ini file for
192 library configuration.
193
194 * src/oauth.c:
195 (flickcurl_oauth_compute_signature): Docs and error path.
196
197 * configure.ac: Fix libcurl version check to actually check curl
198 not libxml twice
199
200 * configure.ac: Remove unused libcurl_min_vernum
201
202 * NEWS.html: Tim Harder is 'radhermit' on GitHub.
203
204 2011-10-15 Dave Beckett <dave@dajobe.org>
205
206 * NEWS.html: 1.22
207
208 * utils/flickcurl.c: Tidy help output; describe all upload params
209 defaults
210
211 * docs/flickcurl-sections.txt: Add flickcurl_get_hidden_label,
212 flickcurl_get_hidden_level_from_string
213
214 * src/common.c, src/flickcurl.h, src/upload-api.c,
215 utils/flickcurl.c: Add support for upload field 'hidden'
216
217 flickcurl_upload_params gains int param hidden with values 1 for
218 global and 2 for hidden.
219
220 (flickcurl_get_hidden_label, flickcurl_get_hidden_from_string):
221 Added utility functions to turn the int to a label and vice versa
222
223 * utils/flickcurl.c: Document upload params safety_level and
224 content_type
225
226 * docs/Makefile.am, docs/tmpl/section-favorite.sgml: Update tmpls
227
228 * docs/flickcurl-sections.txt:
229 Add flickcurl_favorites_getContext
230
231 * src/favorites-api.c, src/flickcurl.h, utils/flickcurl.c:
232 Implement API favorites.getContext
233
234 (flickcurl_favorites_getContext): Added returning an array of two
235 photo lists for previous and next photos. flickcurl utility adds
236 new command favorites.getContext to call above.
237
238 * src/flickcurl_internal.h, src/photo.c:
239 (flickcurl_new_photos_list): Added to construct a photos list
240
241 * configure.ac, src/common.c, utils/flickrdf.c: Support Raptor V2
242 only. Raptor V1 was last supported in January 2010
243
244 * src/panda-api.c: extras docs
245
246 2011-09-02 Dave Beckett <dajobe@digg.com>
247
248 * utils/oauth-test.c: access token testing
249
250 * src/flickcurl_internal.h: Add verifier field
251
252 2011-08-15 Dave Beckett <dave@dajobe.org>
253
254 * Merge pull request #13 from kumanna/help-without-auth (below)
255 Help without authentication
256
257 2011-08-14 Kumar Appaiah <a.kumar@alumni.iitm.ac.in>
258
259 * utils/flickcurl.c: Use stdout for non-error user output
260
261 Since users usually expect any non-error output to come to stdout,
262 this commit changes all output except error reports to be directed
263 to stdout.
264
265 * utils/flickcurl.c: Fix indentation
266
267 * utils/flickcurl.c: Provision for help message even when not
268 authenticated.
269
270 Even when not authenticated, the user might desire to see the list
271 of API calls available. This commit facilitates the display of
272 that message.
273
274 * utils/flickcurl.c: Move printing help details to a function.
275
276 This commit moves printing the help message to a function, viz.
277 print_help_string, so that it can be called from multiple places
278 without having to duplicate code. In addition, displays an extra
279 newline at the end for neater output.
280
281 2011-08-14 Dave Beckett <dave@dajobe.org>
282
283 * Merge pull request #12 from kumanna/kumar (below)
284 Fix man page and documentation quirks reported at Debian.
285
286 Debian bug http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=635892
287
288 2011-08-14 Kumar Appaiah <a.kumar@alumni.iitm.ac.in>
289
290 * utils/flickcurl.c: Fix grammatical error in description of
291 galleries.create
292
293 * docs/flickrdf.1: Fix incorrect spacing in flickrdf man page
294 Fixes an incorrect space in the reference to the flickcurl man
295 page.
296
297 * docs/flickrdf.1: Remove reference to missing README for flickrdf
298 This removes the reference to a missing README file for flickrdf.
299 This fixes Debian bug 637196 in flickcurl.
300
301 2011-07-28 Dave Beckett <dave@dajobe.org>
302
303 * Merge pull request #10 from radhermit/curl-headers (below)
304 Remove old curl header include
305
306 2011-06-25 Dave Beckett <dave@dajobe.org>
307
308 * src/flickcurl_internal.h, src/oauth.c, utils/oauth-test.c: Test
309 code calls Flickr OAuth endpoint with correctly signed call
310
311 2011-06-23 Dave Beckett <dave@dajobe.org>
312
313 * src/flickcurl_internal.h: ws
314
315 * src/flickcurl_internal.h, src/oauth.c, utils/oauth-test.c:
316 (flickcurl_oauth_build_key_data): Added internal call with API
317 that will change
318
319 * utils/oauth-test.c:
320 (oauth_build_key_data): Added
321
322 * utils/oauth-test.c:
323 Add a structure oauth_data
324
325 * utils/oauth-test.c:
326 Do URI encoding and concatenating
327
328 * src/Makefile.am, src/flickcurl_internal.h, src/oauth.c,
329 src/sha1.c, utils/.gitignore, utils/Makefile.am, utils/oauth-test.c:
330 OAuth test code
331
332 2011-05-08 Dave Beckett <dave@dajobe.org>
333
334 * src/galleries-api.c, src/method.c, src/photosets-api.c,
335 src/prefs-api.c, src/test-api.c, src/upload-api.c: code style
336
337 * src/person.c:
338 (flickcurl_build_persons): Do not zap any existing data if a field
339 is not found.
340
341 2011-03-31 Dave Beckett <dave@dajobe.org>
342
343 * NEWS.html: 1.22
344
345 2011-03-31 Dave Beckett <dave@dajobe.org>
346
347 * utils/Makefile.am: Add raptor_fake.h to sources and
348 distribution.
349
350 2011-03-30 Dave Beckett <dave@dajobe.org>
351
352 * NEWS.html, configure.ac:
353 Bumped version to 1.22
354
355 * docs/tmpl/section-tag.sgml:
356 Added flickcurl_free_tags to doc tmpls
357
358 * docs/flickcurl-sections.txt:
359 (flickcurl_free_tags): Added
360
361 2011-03-30 Naruto TAKAHASHI <tnaruto@gmail.com>
362
363 * src/flickcurl.h, src/photo.c, src/tags.c: add
364 flickcurl_free_tags
365
366 * docs/tmpl/section-photoset.sgml, src/flickcurl.h,
367 src/photoset.c: move owner filed to the end of the structure.
368
369 2011-03-29 Naruto TAKAHASHI <tnaruto@gmail.com>
370
371 * docs/tmpl/section-photoset.sgml, src/flickcurl.h,
372 src/photoset.c: add owner to flickcurl_photoset
373
0374 2011-03-26 Dave Beckett <dave@dajobe.org>
1375
2376 * Snapshotted flickcurl_1_21 for 1.21 release (GIT
174174 CYGPATH_W = @CYGPATH_W@
175175 DEFS = @DEFS@
176176 DEPDIR = @DEPDIR@
177 DLLTOOL = @DLLTOOL@
177178 DSYMUTIL = @DSYMUTIL@
178179 DUMPBIN = @DUMPBIN@
179180 ECHO = @ECHO@
186187 FLICKCURL_VERSION_DECIMAL = @FLICKCURL_VERSION_DECIMAL@
187188 GREP = @GREP@
188189 GTKDOC_CHECK = @GTKDOC_CHECK@
190 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
191 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
189192 GTKDOC_MKPDF = @GTKDOC_MKPDF@
190193 GTKDOC_REBASE = @GTKDOC_REBASE@
191194 HTML_DIR = @HTML_DIR@
207210 LTLIBOBJS = @LTLIBOBJS@
208211 MAINT = @MAINT@
209212 MAKEINFO = @MAKEINFO@
213 MANIFEST_TOOL = @MANIFEST_TOOL@
210214 MKDIR_P = @MKDIR_P@
211215 NM = @NM@
212216 NMEDIT = @NMEDIT@
240244 abs_srcdir = @abs_srcdir@
241245 abs_top_builddir = @abs_top_builddir@
242246 abs_top_srcdir = @abs_top_srcdir@
247 ac_ct_AR = @ac_ct_AR@
243248 ac_ct_CC = @ac_ct_CC@
244249 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
245250 am__include = @am__include@
272277 libexecdir = @libexecdir@
273278 localedir = @localedir@
274279 localstatedir = @localstatedir@
275 lt_ECHO = @lt_ECHO@
276280 mandir = @mandir@
277281 mkdir_p = @mkdir_p@
278282 oldincludedir = @oldincludedir@
+245
-195
NEWS less more
00 Flickcurl News
11
22 [1]Dave Beckett
3
4 2011-12-28 Flickcurl Version 1.22 Released
5
6 Add support for the upload field 'hidden' to set if a photo is visible
7 in global search.. The flickcurl_upload_params structure gains an int
8 param hidden with values 1 for global and 2 for hidden.
9
10 Added helper functions flickcurl_get_hidden_label() and
11 flickcurl_get_hidden_from_string() to help converting between the int
12 values and readable labels:
13 const char* flickcurl_get_hidden_label(int hidden);
14
15 int flickcurl_get_hidden_from_string(const char* hidden_string);
16
17 Note: This is an API addition so code should test that the Flickcurl
18 version is 1.22 or newer to use this field and the helper functions.
19
20 Added flickcurl_favorites_getContext() for new API call
21 [2]flickr.favorites.getContext, to get previous and next photos around
22 a favo(u)rite:
23 flickcurl_photos_list** flickcurl_favorites_getContext(flickcurl* fc,
24 const char* photo_id, const char* user_id,
25 int num_prev, int num_next, const char* extras);
26
27 Now supports only Raptor V2 for optional serializing of triples.
28
29 Fix flickcurl(1) utility output and help messages. Patch from Kumar
30 Appaiah - thanks.
31
32 Fix several man page and documentation issues. Patch from Kumar Appaiah
33 - thanks.
34
35 Remove old curl header include. Patch from Tim Harder - thanks.
36
37 Do not delete any existing data in flickcurl_build_persons() if a field
38 is not found.
39
40 Added raptor_fake.h to distribution so that flickrdf(1) utility can
41 work without raptor installed. Noticed by Naruto TAKAHASHI - thanks.
42
43 Added flickcurl_free_tags() to API. Patch from Naruto TAKAHASHI -
44 thanks.
45
46 flickcurl_photoset structure gains an owner NSID field filled in when
47 present. Patch from Naruto TAKAHASHI - thanks!
48
49 Add experimental OAuth code, not compiled in by default and built with
50 --enable-oauth.
351
452 2011-03-26 Flickcurl 1.21
553
1058 Patch from Henning Spruth - thanks.
1159 * flickcurl_photosets_getPhotos_params() now works again.
1260
13 Made the flickcurl(1) utility handle Raptor V1, V2 or none. The
61 Made the flickrdf(1) utility handle Raptor V1, V2 or none. The
1462 configure argument --with-raptor now takes values '1', '2', 'yes' or
1563 'no'. 'yes' selects Raptor V1 as before.
1664
58106 Added flickcurl_photosets_removePhotos(),
59107 flickcurl_photosets_reorderPhotos() and
60108 flickcurl_photosets_setPrimaryPhoto() for new API calls
61 [2]flickr.photosets.removePhotos, [3]flickr.photosets.reorderPhotos and
62 [4]flickr.photosets.setPrimaryPhoto:
109 [3]flickr.photosets.removePhotos, [4]flickr.photosets.reorderPhotos and
110 [5]flickr.photosets.setPrimaryPhoto:
63111 int flickcurl_photosets_removePhotos(flickcurl* fc,
64112 const char* photoset_id, const char** photo_ids_array);
65113
77125 Added flickcurl_stats_getCSVFiles but it always does nothing since it
78126 expired at 2010-06-01.
79127
80 Fixed portability operator typo '> =' and '+ =' lose spaces. [5]Issue
128 Fixed portability operator typo '> =' and '+ =' lose spaces. [6]Issue
81129 #4.
82130
83131 2010-04-26 Flickcurl 1.18
84132
85 Added (rest of) Galleries API calls as [6]announced 2010-04-08:
133 Added (rest of) Galleries API calls as [7]announced 2010-04-08:
86134 char* flickcurl_galleries_create(flickcurl* fc, const char* title,
87135 const char* description, const char* primary_photo_id,
88136 char** gallery_url_p);
115163 field for representing a photo's comments in a gallery context.
116164
117165 Added function for new people API call (not announced):
118 [7]flickr.people.getPhotos:
166 [8]flickr.people.getPhotos:
119167
120168 flickcurl_photos_list* flickcurl_people_getPhotos_params(flickcurl* fc,
121169 const char* user_id, int safe_search,
154202
155203 2010-03-05 Flickcurl 1.17
156204
157 Added functions for new stats API calls [8]announced 2010-03-03:
158 [9]flickr.stats.getCollectionDomains,
159 [10]flickr.stats.getCollectionReferrers,
160 [11]flickr.stats.getCollectionStats, [12]flickr.stats.getPhotoDomains,
161 [13]flickr.stats.getPhotoReferrers,
162 [14]flickr.stats.getPhotosetDomains,
163 [15]flickr.stats.getPhotosetReferrers,
164 [16]flickr.stats.getPhotosetStats, [17]flickr.stats.getPhotoStats,
165 [18]flickr.stats.getPhotostreamDomains,
166 [19]flickr.stats.getPhotostreamReferrers,
167 [20]flickr.stats.getPhotostreamStats, [21]flickr.stats.getPopularPhotos
168 and [22]flickr.stats.getTotalViews including new flickcurl_stats and
205 Added functions for new stats API calls [9]announced 2010-03-03:
206 [10]flickr.stats.getCollectionDomains,
207 [11]flickr.stats.getCollectionReferrers,
208 [12]flickr.stats.getCollectionStats, [13]flickr.stats.getPhotoDomains,
209 [14]flickr.stats.getPhotoReferrers,
210 [15]flickr.stats.getPhotosetDomains,
211 [16]flickr.stats.getPhotosetReferrers,
212 [17]flickr.stats.getPhotosetStats, [18]flickr.stats.getPhotoStats,
213 [19]flickr.stats.getPhotostreamDomains,
214 [20]flickr.stats.getPhotostreamReferrers,
215 [21]flickr.stats.getPhotostreamStats, [22]flickr.stats.getPopularPhotos
216 and [23]flickr.stats.getTotalViews including new flickcurl_stats and
169217 flickcurl_view_stats datatypes:
170218 flickcurl_stat** flickcurl_stats_getCollectionDomains(flickcurl* fc,
171219 const char* date, const char* collection_id, int per_page, int page);
224272 flickcurl_stats_getPopularPhotos() call. (View count field is already
225273 present).
226274
227 Added functions for 5 new people API calls [23]announced 2010-01-21
228 [24]flickr.photos.people.add, [25]flickr.photos.people.delete,
229 [26]flickr.photos.people.deleteCoords,
230 [27]flickr.photos.people.editCoords and
231 [28]flickr.photos.people.getList:
275 Added functions for 5 new people API calls [24]announced 2010-01-21
276 [25]flickr.photos.people.add, [26]flickr.photos.people.delete,
277 [27]flickr.photos.people.deleteCoords,
278 [28]flickr.photos.people.editCoords and
279 [29]flickr.photos.people.getList:
232280 int flickcurl_photos_people_add(flickcurl* fc, const char* photo_id,
233281 const char* user_id, int person_x, int person_y, int person_w, int person_h)
234282 ;
246294 flickcurl_person** flickcurl_photos_people_getList(flickcurl* fc,
247295 const char* photo_id);
248296
249 Added functions for 1 new "photos of" people API calls [29]announced
250 2010-01-21 [30]flickr.people.getPhotosOf:
297 Added functions for 1 new "photos of" people API calls [30]announced
298 2010-01-21 [31]flickr.people.getPhotosOf:
251299 flickcurl_photos_list* flickcurl_people_getPhotosOf_params(flickcurl* fc,
252300 const char* user_id, flickcurl_photos_list_params* list_params);
253301
256304
257305 Added functions for 3 new gallery API calls - not yet announced and
258306 seems a little incomplete e.g. you cannot list the photos in a gallery:
259 [31]flickr.galleries.addPhoto, [32]flickr.galleries.getList and
260 [33]flickr.galleries.getListForPhoto including new type
307 [32]flickr.galleries.addPhoto, [33]flickr.galleries.getList and
308 [34]flickr.galleries.getListForPhoto including new type
261309 flickcurl_gallery:
262310 int flickcurl_galleries_addPhoto(flickcurl* fc, const char* gallery_id,
263311 const char* photo_id, const char* comment_text);
285333 2010-01-02 Flickcurl 1.15
286334
287335 The flickcurl_search_params gains an in_gallery boolean field which was
288 added to the photos search API [34]as announced 2009-12-17.
336 added to the photos search API [35]as announced 2009-12-17.
289337
290338 The flickcurl(1) utility photos.search commands gains geo-context
291339 taking an integer arg for inside/outside, is-commons boolean flag and
314362 flickr.photos.geo.setLocation API call.
315363
316364 The flickcurl_extras_format_info gains new API 'extras': path_alias,
317 url_m, url_o, url_s, url_sq, url_t as [35]announced 2009-06-29.
365 url_m, url_o, url_s, url_sq, url_t as [36]announced 2009-06-29.
318366 path_alias returns the user's Flickr URL as in /photos/user and the
319367 others provide various computed URLs and dimensions for the photos of a
320368 given size so that flickcurl_photos_getSizes() calls can be avoided
357405 2009-07-04 Flickcurl 1.12
358406
359407 Added function flickcurl_places_getTopPlacesList() for new API call
360 [36]flickr.places.getTopPlacesList.
408 [37]flickr.places.getTopPlacesList.
361409 flickcurl_place** flickcurl_places_getTopPlacesList(flickcurl* fc,
362410 flickcurl_place_type place_type, const char* date, int woe_id,
363411 const char* place_id);
364412
365413 Added function flickcurl_blogs_getServices() and new
366414 flickcurl_blog_service structure for describing a blog service. for new
367 API call [37]flickr.blogs.getServices. Added function
415 API call [38]flickr.blogs.getServices. Added function
368416 flickcurl_free_blog_services() to free blog services array.
369417 flickcurl_blog_service** flickcurl_blogs_getServices(flickcurl* fc);
370418
372420 t);
373421
374422 Added function flickcurl_photos_comments_getRecentForContacts_params()
375 for new API call [38]flickr.photos.comments.getRecentForContacts
423 for new API call [39]flickr.photos.comments.getRecentForContacts
376424
377425 Added function flickcurl_machinetags_getRecentValues() for new API call
378 [39]flickr.machinetags.getRecentValues
426 [40]flickr.machinetags.getRecentValues
379427
380428 Added flickr collections API including new flickcurl_collection
381429 datatype:
405453 from attribute value. In the Flickr API, there is always more than one
406454 way to get a field ;)
407455
408 Switched from Subversion to GIT source control hosted by [40]GitHub.
409 The [41]GitHub flickcurl project page. previously was in Subversion at
410 [42]svn.dajobe.org and it moved as of SVN r1021 on 2006-06-02 after the
456 Switched from Subversion to GIT source control hosted by [41]GitHub.
457 The [42]GitHub flickcurl project page. previously was in Subversion at
458 [43]svn.dajobe.org and it moved as of SVN r1021 on 2006-06-02 after the
411459 1.11 release tagged flickcurl_1_11.
412460
413461 Update SHAVE from master GIT 2134bb1207e06d1650918a56f6b142e9a840219d
436484 PHOTO_FIELD_owner_iconfarm, PHOTO_FIELD_owner_iconserver and
437485 PHOTO_FIELD_views
438486
439 Added donuthole support to shapes as [43]announced 2009-05-06. The
487 Added donuthole support to shapes as [44]announced 2009-05-06. The
440488 flicckurl_shapedata structure now has is_donuthole and has_donuthole
441489 boolean flag fields.
442490
472520 versions, cflags and libs rather than the (deprecated) raptor-config
473521 program output.
474522
475 Added configure [44]SHAVE support (git clone
523 Added configure [45]SHAVE support (git clone
476524 git://git.lespiau.name/shave ) to "make autotools output sane" which
477525 amounts to much less verbose messages when compiling. It is now enabled
478526 by default.
497545
498546 2009-04-04 Flickcurl 1.9
499547
500 Added functions for 2 new API calls [45]flickr.panda.getList
501 [46]flickr.panda.getPhotos as [47]announced on 2009-03-03 used in the
502 vomiting [48]Flickr Panda.
548 Added functions for 2 new API calls [46]flickr.panda.getList
549 [47]flickr.panda.getPhotos as [48]announced on 2009-03-03 used in the
550 vomiting [49]Flickr Panda.
503551 char** flickcurl_panda_getList(flickcurl* fc);
504552
505553 flickcurl_photo** flickcurl_panda_getPhotos(flickcurl *fc,
506554 const char *panda_name);
507555
508 Added function for 1 new API call [49]flickr.groups.members.getList as
509 [50]announced as experimental on 2009-02-24.
556 Added function for 1 new API call [50]flickr.groups.members.getList as
557 [51]announced as experimental on 2009-02-24.
510558 flickcurl_member** flickcurl_groups_members_getList(flickcurl* fc,
511559 const char* group_id, const char* membertypes, int per_page, int page);
512560
529577 structure class.
530578
531579 Added functions for 12 new API calls
532 [51]flickr.commons.getInstitutions,
533 [52]flickr.contacts.getListRecentlyUploaded,
534 [53]flickr.photos.geo.batchCorrectLocation,
535 [54]flickr.photos.geo.correctLocation,
536 [55]flickr.photos.geo.photosForLocation,
537 [56]flickr.photos.geo.setContext, [57]flickr.places.getPlaceTypes,
538 [58]flickr.places.getShapeHistory,
539 [59]flickr.places.placesForBoundingBox,
540 [60]flickr.places.placesForContacts, [61]flickr.places.placesForTags
541 and [62]flickr.places.tagsForPlace as announced [63]2009-01-12
542 (flickr.places.getShapeHistory), [64]2009-01-14
543 (flickr.contacts.getListRecentlyUploaded) and [65]2009-01-29 (Commons
580 [52]flickr.commons.getInstitutions,
581 [53]flickr.contacts.getListRecentlyUploaded,
582 [54]flickr.photos.geo.batchCorrectLocation,
583 [55]flickr.photos.geo.correctLocation,
584 [56]flickr.photos.geo.photosForLocation,
585 [57]flickr.photos.geo.setContext, [58]flickr.places.getPlaceTypes,
586 [59]flickr.places.getShapeHistory,
587 [60]flickr.places.placesForBoundingBox,
588 [61]flickr.places.placesForContacts, [62]flickr.places.placesForTags
589 and [63]flickr.places.tagsForPlace as announced [64]2009-01-12
590 (flickr.places.getShapeHistory), [65]2009-01-14
591 (flickr.contacts.getListRecentlyUploaded) and [66]2009-01-29 (Commons
544592 API):
545593 flickcurl_institution** flickcurl_commons_getInstitutions(flickcurl* fc);
546594
618666
619667 2008-11-30 Flickcurl 1.7
620668
621 Added support for the new Machine Tags API as [66]announced 2008-11-18.
669 Added support for the new Machine Tags API as [67]announced 2008-11-18.
622670 Added representations for machine tag namespaces
623671 flickcurl_tag_namespace and machine tag predicate/value pairs
624672 flickcurl_tag_predicate_value.
625673
626674 Added functions for the new API calls
627 [67]flickr.machinetags.getNamespaces, [68]flickr.machinetags.getPairs,
628 [69]flickr.machinetags.getPredicates and
629 [70]flickr.machinetags.getValues:
675 [68]flickr.machinetags.getNamespaces, [69]flickr.machinetags.getPairs,
676 [70]flickr.machinetags.getPredicates and
677 [71]flickr.machinetags.getValues:
630678 flickcurl_tag_namespace** flickcurl_machinetags_getNamespaces(flickcurl* fc,
631679 const char* predicate, int per_page, int page);
632680
650698 vs);
651699
652700 Added flickcurl_tags_getClusterPhotos() function for new API call
653 [71]flickr.tags.getClusterPhotos to get a set of photos around a
701 [72]flickr.tags.getClusterPhotos to get a set of photos around a
654702 cluster (of 3 tags). This was added to the web service API but not
655703 announced some time between 2008-09-04 ad 2008-09-19.
656704 flickcurl_photos_list* flickcurl_tags_getClusterPhotos(flickcurl* fc,
657705 const char* tag, const char* cluster_id,
658706 flickcurl_photos_list_params* list_params);
659707
660 Updated Places API for changes as [72]announced 2008-11-05 and in
661 [73]The Shape of Alpha to support querying for places via place IDs or
662 [74]Where on Earth (WOE) Ids. The places APIs may now return ESRI shape
708 Updated Places API for changes as [73]announced 2008-11-05 and in
709 [74]The Shape of Alpha to support querying for places via place IDs or
710 [75]Where on Earth (WOE) Ids. The places APIs may now return ESRI shape
663711 information and flickcurl_place now stores any XML <shapedata> and ESRI
664712 shapefile URLs returned in a lookup call e.g:
665713 $ ./flickcurl places.getInfo 4hLQygSaBJ92
683731 5) place country: name 'Canada' id EESRy8qbApgaeIkbsA woeid 23424775 url '/Can
684732 ada'
685733
686 Added flickcurl_places_getInfo() for [75]flickr.places.getInfo,
687 flickcurl_places_getInfoByUrl() for [76]flickr.places.getInfoByUrl and
734 Added flickcurl_places_getInfo() for [76]flickr.places.getInfo,
735 flickcurl_places_getInfoByUrl() for [77]flickr.places.getInfoByUrl and
688736 flickcurl_places_getChildrenWithPhotosPublic() for
689 [77]flickr.places.getChildrenWithPhotosPublic:
737 [78]flickr.places.getChildrenWithPhotosPublic:
690738 flickcurl_place** flickcurl_places_getChildrenWithPhotosPublic(flickcurl* fc,
691739 const char* place_id, const char* woe_id);
692740
697745 const char* url);
698746
699747 Added flickcurl_places_placesForUser() function to match API name
700 correctly for API call [78]flickr.places.placesForUser deprecating
748 correctly for API call [79]flickr.places.placesForUser deprecating
701749 wrong name flickcurl_places_forUser().
702750 flickcurl_place** flickcurl_places_placesForUser(flickcurl* fc,
703751 flickcurl_place_type place_type, int woe_id, const char* place_id,
713761
714762 2008-09-04 Flickcurl 1.6
715763
716 [79]"It's a beautiful day in the neighborhood" and also "Everybody
717 needs good [80]Neighbours".
764 [80]"It's a beautiful day in the neighborhood" and also "Everybody
765 needs good [81]Neighbours".
718766 Added PHOTO_FIELD_location_neighbourhood,
719767 PHOTO_FIELD_neighbourhood_placeid, PHOTO_FIELD_neighbourhood_woeid,
720768 PHOTO_FIELD_location_neighbourhood and FLICKCURL_PLACE_NEIGHBOURHOOD
721769 enum values making the American English spelling versions aliases for
722770 the British / Commonwealth English. Adjusted the XPaths to accept both
723771 spellings just in case Flickr changes this. The neighbourhood /
724 neighborhood feature was [81]announced 2008-08-19.
772 neighborhood feature was [82]announced 2008-08-19.
725773
726774 Added flickcurl_places_forUser() function for new API call
727 [82]flickr.places.placesForUser to get the cluster of places for a user
728 as [83]announced 2008-09-04.
775 [83]flickr.places.placesForUser to get the cluster of places for a user
776 as [84]announced 2008-09-04.
729777 flickcurl_place** flickcurl_places_forUser(flickcurl* fc,
730778 flickcurl_place_type place_type, int woe_id, const char* place_id,
731779 int threshold);
737785 the standard photos response and flickcurl_photos_list_params for the
738786 parameters. This allows for existing result parameters (page, per_page,
739787 extras) as well as the new new format parameter to be given optionally.
740 The standard photos response format was [84]described 2008-08-19 and
741 the experimental feeds format feature was [85]announced 2008-08-25.
788 The standard photos response format was [85]described 2008-08-19 and
789 the experimental feeds format feature was [86]announced 2008-08-25.
742790
743791 Added functions to return lists of photos with list results parameters
744792 based on existing functions without the _params suffix. The functions
883931 2008-08-17 Flickcurl 1.5
884932
885933 Added flickcurl_tags_getClusters() function for new API call
886 [86]flickr.tags.getClusters as [87]announced 2008-07-17
934 [87]flickr.tags.getClusters as [88]announced 2008-07-17
887935
888936 Added Tag Clusters API support including new typedefs
889937 flickcurl_tag_cluster and flickcurl_tag_clusters and destructor
898946
899947 Updated flickcurl_photos_search() to add support for new photos.search
900948 contacts, has_geo, lat, lon, radius and radius_units parameters. The
901 lat, lon, radius and radius_units parameters were [88]announced
949 lat, lon, radius and radius_units parameters were [89]announced
902950 2008-06-27
903951
904952 Updated flickrdf utility to make it build without raptor available.
931979 Updated all the namespaces used by the RDF serializer to use a
932980 different use of machinetags.org as follows:
933981 1. Public namespaces (existing schemas):
934 + [89]Dublin Core: Prefix: dc URI:
982 + [90]Dublin Core: Prefix: dc URI:
935983 http://purl.org/dc/elements/1.1/
936984 legacy namespace
937 + [90]Dublin Core Terms: Prefix: dcterms URI:
985 + [91]Dublin Core Terms: Prefix: dcterms URI:
938986 http://purl.org/dc/terms/
939987 new namespace with predicates dc:creator dc:dateSubmitted
940988 dc:rights dc:modified dc:issued dc:created dc:description
941989 dc:title
942 + [91]FOAF: Prefix: foaf URI: http://xmlns.com/foaf/0.1/
990 + [92]FOAF: Prefix: foaf URI: http://xmlns.com/foaf/0.1/
943991 with predicates foaf:maker foaf:name foaf:nick and classes
944992 foaf:Person foaf:Image
945 + [92]Geo by W3C SWIG: Prefix: geo URI:
993 + [93]Geo by W3C SWIG: Prefix: geo URI:
946994 http://www.w3.org/2003/01/geo/wgs84_pos#
947995 with predicates geo:lat geo:long
948 + [93]RDF Schema: Prefix: rdfs URI:
996 + [94]RDF Schema: Prefix: rdfs URI:
949997 http://www.w3.org/2000/01/rdf-schema#
950998 with predicates rdfs:label
951 + [94]RDF: Prefix: rdf URI:
999 + [95]RDF: Prefix: rdf URI:
9521000 http://www.w3.org/1999/02/22-rdf-syntax-ns#
9531001 with predicates rdf:type
954 + [95]XML Schema Datatypes: Prefix: xsd URI:
1002 + [96]XML Schema Datatypes: Prefix: xsd URI:
9551003 http://www.w3.org/2001/XMLSchema#
9561004 with XSD datatypes xsd:boolean xsd:dateTime xsd:double
9571005 xsd:integer
9581006 2. Flickr terminology namespaces (no schema yet):
959 + [96]Flickr API initially for video terms: Prefix: flickr URI:
1007 + [97]Flickr API initially for video terms: Prefix: flickr URI:
9601008 http://machinetags.org/ns/Flickr#
9611009 with predicates flickr:image flickr:video flickr:width
9621010 flickr:height and classes flickr:Video
963 + [97]Places API: Prefix: places URI:
1011 + [98]Places API: Prefix: places URI:
9641012 http://machinetags.org/ns/Places#
9651013 with predicates places:place places:type places:name places:id
9661014 places:placeid places:url and class places:Place
9681016 machine tag prefix):
9691017 + Bluetagging: Prefix: blue URI: http://machinetags.org/ns/Blue#
9701018 + Celltagging: Prefix: cell URI: http://machinetags.org/ns/Cell#
971 + [98]Dopplr: Prefix: dopplr URI:
1019 + [99]Dopplr: Prefix: dopplr URI:
9721020 http://machinetags.org/ns/Dopplr#
973 + [99]Filtr: Prefix: filtr URI: http://machinetags.org/ns/Filtr#
974 + [100]Geonames: Prefix: geonames URI:
1021 + [100]Filtr: Prefix: filtr URI:
1022 http://machinetags.org/ns/Filtr#
1023 + [101]Geonames: Prefix: geonames URI:
9751024 http://machinetags.org/ns/Geonames#
9761025 + Ph: Prefix: ph URI: http://machinetags.org/ns/Ph#
977 + [101]Upcoming: Prefix: upcoming URI:
1026 + [102]Upcoming: Prefix: upcoming URI:
9781027 http://machinetags.org/ns/Upcoming#
9791028
9801029 Updated flickrdf(1) to use new serialization API and to have less
10031052 Protect destructors from NULL args. In maintainer mode, a warning
10041053 message and an abort happen.
10051054
1006 Note that the woeids can be used with the new [102]Yahoo! Geo API
1055 Note that the woeids can be used with the new [103]Yahoo! Geo API
10071056
10081057 2008-03-08 Flickcurl 1.3
10091058
15371586 announced and then removed.
15381587
15391588 Renamed the "Flickr to RDF app" to be called flickrdf since I used
1540 [103]Triplr for something else as it was such a good name.
1589 [104]Triplr for something else as it was such a good name.
15411590
15421591 2007-02-25 Flickcurl 0.9
15431592
17271776
17281777 2007-02-04 Flickcurl 0.5
17291778
1730 Added optional support for using [104]Raptor for more accurate and
1779 Added optional support for using [105]Raptor for more accurate and
17311780 prettier serializing triples in flickrdf
17321781
17331782 Released to the world!
17731822 0% of API
17741823 __________________________________________________________________
17751824
1776 Copyright (C) 2007-2011 [105]Dave Beckett
1825 Copyright (C) 2007-2011 [106]Dave Beckett
17771826
17781827 References
17791828
17801829 1. http://www.dajobe.org/
1781 2. http://www.flickr.com/services/api/flickr.photosets.removePhotos.html
1782 3. http://www.flickr.com/services/api/flickr.photosets.reorderPhotos.html
1783 4. http://www.flickr.com/services/api/flickr.photosets.setPrimaryPhoto.html
1784 5. http://github.com/dajobe/flickcurl/issues/#issue/4
1785 6. http://code.flickr.com/blog/2010/04/08/galleries-apis/
1786 7. http://www.flickr.com/services/api/flickr.people.getPhotos.html
1787 8. http://code.flickr.com/blog/2010/03/03/flickr-stats-api/
1788 9. http://www.flickr.com/services/api/flickr.stats.getCollectionDomains.html
1789 10. http://www.flickr.com/services/api/flickr.stats.getCollectionReferrers.html
1790 11. http://www.flickr.com/services/api/flickr.stats.getCollectionStats.html
1791 12. http://www.flickr.com/services/api/flickr.stats.getPhotoDomains.html
1792 13. http://www.flickr.com/services/api/flickr.stats.getPhotoReferrers.html
1793 14. http://www.flickr.com/services/api/flickr.stats.getPhotosetDomains.html
1794 15. http://www.flickr.com/services/api/flickr.stats.getPhotosetReferrers.html
1795 16. http://www.flickr.com/services/api/flickr.stats.getPhotosetStats.html
1796 17. http://www.flickr.com/services/api/flickr.stats.getPhotoStats.html
1797 18. http://www.flickr.com/services/api/flickr.stats.getPhotostreamDomains.html
1798 19. http://www.flickr.com/services/api/flickr.stats.getPhotostreamReferrers.html
1799 20. http://www.flickr.com/services/api/flickr.stats.getPhotostreamStats.html
1800 21. http://www.flickr.com/services/api/flickr.stats.getPopularPhotos.html
1801 22. http://www.flickr.com/services/api/flickr.stats.getTotalViews.html
1802 23. http://code.flickr.com/blog/2010/01/21/people-in-photos-the-api-methods/
1803 24. http://www.flickr.com/services/api/flickr.photos.people.add.html
1804 25. http://www.flickr.com/services/api/flickr.photos.people.delete.html
1805 26. http://www.flickr.com/services/api/flickr.photos.people.deleteCoords.html
1806 27. http://www.flickr.com/services/api/flickr.photos.people.editCoords.html
1807 28. http://www.flickr.com/services/api/flickr.photos.people.getList.html
1808 29. http://code.flickr.com/blog/2010/01/21/people-in-photos-the-api-methods/
1809 30. http://www.flickr.com/services/api/flickr.people.getPhotosOf.html
1810 31. http://www.flickr.com/services/api/flickr.galleries.addPhoto.html
1811 32. http://www.flickr.com/services/api/flickr.galleries.getList.html
1812 33. http://www.flickr.com/services/api/flickr.galleries.getListForPhoto.html
1813 34. http://www.flickr.com/groups/api/discuss/72157622404753248/#comment72157622896186411
1814 35. http://tech.groups.yahoo.com/group/yws-flickr/message/5053
1815 36. http://www.flickr.com/services/api/flickr.places.getTopPlacesList.html
1816 37. http://www.flickr.com/services/api/flickr.blogs.getServices.html
1817 38. http://www.flickr.com/services/api/flickr.photos.comments.getRecentForContacts.html
1818 39. http://www.flickr.com/services/api/flickr.machinetags.getRecentValues.html
1819 40. http://github.com/
1820 41. http://github.com/dajobe/flickcurl/tree/master
1821 42. http://svn.dajobe.org/view/
1822 43. http://code.flickr.com/blog/2009/05/06/the-absence-and-the-anchor/
1823 44. http://git.lespiau.name/cgit/shave/
1824 45. http://www.flickr.com/services/api/flickr.panda.getList.html
1825 46. http://www.flickr.com/services/api/flickr.panda.getPhotos.html
1826 47. http://code.flickr.com/blog/2009/03/03/panda-tuesday-the-history-of-the-panda-new-apis-explore-and-you/
1827 48. http://www.flickr.com/explore/panda
1828 49. http://www.flickr.com/services/api/flickr.groups.members.getList.html
1829 50. http://tech.groups.yahoo.com/group/yws-flickr/message/4749
1830 51. http://www.flickr.com/services/api/flickr.commons.getInstitutions.html
1831 52. http://www.flickr.com/services/api/flickr.contacts.getListRecentlyUploaded.html
1832 53. http://www.flickr.com/services/api/flickr.photos.geo.batchCorrectLocation.html
1833 54. http://www.flickr.com/services/api/flickr.photos.geo.correctLocation.html
1834 55. http://www.flickr.com/services/api/flickr.photos.geo.photosForLocation.html
1835 56. http://www.flickr.com/services/api/flickr.photos.geo.setContext.html
1836 57. http://www.flickr.com/services/api/flickr.places.getPlaceTypes.html
1837 58. http://www.flickr.com/services/api/flickr.places.getShapeHistory.html
1838 59. http://www.flickr.com/services/api/flickr.places.placesForBoundingBox.html
1839 60. http://www.flickr.com/services/api/flickr.places.placesForContacts.html
1840 61. http://www.flickr.com/services/api/flickr.places.placesForTags.html
1841 62. http://www.flickr.com/services/api/flickr.places.tagsForPlace.html
1842 63. http://tech.groups.yahoo.com/group/yws-flickr/message/4669
1843 64. http://tech.groups.yahoo.com/group/yws-flickr/message/4668
1844 65. http://flickr.com/groups/api/discuss/72157613093793775/
1845 66. http://tech.groups.yahoo.com/group/yws-flickr/message/4545
1846 67. http://www.flickr.com/services/api/flickr.machinetags.getNamespaces.html
1847 68. http://www.flickr.com/services/api/flickr.machinetags.getPairs.html
1848 69. http://www.flickr.com/services/api/flickr.machinetags.getPredicates.html
1849 70. http://www.flickr.com/services/api/flickr.machinetags.getValues.html
1850 71. http://www.flickr.com/services/api/flickr.tags.getClusterPhotos.html
1851 72. http://tech.groups.yahoo.com/group/yws-flickr/message/4510
1852 73. http://code.flickr.com/blog/2008/10/30/the-shape-of-alpha/
1853 74. http://developer.yahoo.com/geo/
1854 75. http://www.flickr.com/services/api/flickr.places.getInfo.html
1855 76. http://www.flickr.com/services/api/flickr.places.getInfoByUrl.html
1856 77. http://www.flickr.com/services/api/flickr.places.getChildrenWithPhotosPublic.html
1857 78. http://www.flickr.com/services/api/flickr.places.placesForUser.html
1858 79. http://en.wikipedia.org/wiki/Mister_Rogers%27_Neighborhood
1859 80. http://en.wikipedia.org/wiki/Neighbours
1860 81. http://geobloggers.com/2008/08/19/correcting-location-data-the-flickr-way/
1861 82. http://www.flickr.com/services/api/flickr.places.placesForUser.html
1862 83. http://code.flickr.com/blog/2008/09/04/whos-on-first/
1863 84. http://code.flickr.com/blog/2008/08/19/standard-photos-response-apis-for-civilized-age/
1864 85. http://code.flickr.com/blog/2008/08/25/api-responses-as-feeds/
1865 86. http://www.flickr.com/services/api/flickr.tags.getClusters.html
1866 87. http://tech.groups.yahoo.com/group/yws-flickr/message/4218
1867 88. http://tech.groups.yahoo.com/group/yws-flickr/message/4146
1868 89. http://dublincore.org/
1830 2. http://www.flickr.com/services/api/flickr.favorites.getContext.html
1831 3. http://www.flickr.com/services/api/flickr.photosets.removePhotos.html
1832 4. http://www.flickr.com/services/api/flickr.photosets.reorderPhotos.html
1833 5. http://www.flickr.com/services/api/flickr.photosets.setPrimaryPhoto.html
1834 6. http://github.com/dajobe/flickcurl/issues/#issue/4
1835 7. http://code.flickr.com/blog/2010/04/08/galleries-apis/
1836 8. http://www.flickr.com/services/api/flickr.people.getPhotos.html
1837 9. http://code.flickr.com/blog/2010/03/03/flickr-stats-api/
1838 10. http://www.flickr.com/services/api/flickr.stats.getCollectionDomains.html
1839 11. http://www.flickr.com/services/api/flickr.stats.getCollectionReferrers.html
1840 12. http://www.flickr.com/services/api/flickr.stats.getCollectionStats.html
1841 13. http://www.flickr.com/services/api/flickr.stats.getPhotoDomains.html
1842 14. http://www.flickr.com/services/api/flickr.stats.getPhotoReferrers.html
1843 15. http://www.flickr.com/services/api/flickr.stats.getPhotosetDomains.html
1844 16. http://www.flickr.com/services/api/flickr.stats.getPhotosetReferrers.html
1845 17. http://www.flickr.com/services/api/flickr.stats.getPhotosetStats.html
1846 18. http://www.flickr.com/services/api/flickr.stats.getPhotoStats.html
1847 19. http://www.flickr.com/services/api/flickr.stats.getPhotostreamDomains.html
1848 20. http://www.flickr.com/services/api/flickr.stats.getPhotostreamReferrers.html
1849 21. http://www.flickr.com/services/api/flickr.stats.getPhotostreamStats.html
1850 22. http://www.flickr.com/services/api/flickr.stats.getPopularPhotos.html
1851 23. http://www.flickr.com/services/api/flickr.stats.getTotalViews.html
1852 24. http://code.flickr.com/blog/2010/01/21/people-in-photos-the-api-methods/
1853 25. http://www.flickr.com/services/api/flickr.photos.people.add.html
1854 26. http://www.flickr.com/services/api/flickr.photos.people.delete.html
1855 27. http://www.flickr.com/services/api/flickr.photos.people.deleteCoords.html
1856 28. http://www.flickr.com/services/api/flickr.photos.people.editCoords.html
1857 29. http://www.flickr.com/services/api/flickr.photos.people.getList.html
1858 30. http://code.flickr.com/blog/2010/01/21/people-in-photos-the-api-methods/
1859 31. http://www.flickr.com/services/api/flickr.people.getPhotosOf.html
1860 32. http://www.flickr.com/services/api/flickr.galleries.addPhoto.html
1861 33. http://www.flickr.com/services/api/flickr.galleries.getList.html
1862 34. http://www.flickr.com/services/api/flickr.galleries.getListForPhoto.html
1863 35. http://www.flickr.com/groups/api/discuss/72157622404753248/#comment72157622896186411
1864 36. http://tech.groups.yahoo.com/group/yws-flickr/message/5053
1865 37. http://www.flickr.com/services/api/flickr.places.getTopPlacesList.html
1866 38. http://www.flickr.com/services/api/flickr.blogs.getServices.html
1867 39. http://www.flickr.com/services/api/flickr.photos.comments.getRecentForContacts.html
1868 40. http://www.flickr.com/services/api/flickr.machinetags.getRecentValues.html
1869 41. http://github.com/
1870 42. http://github.com/dajobe/flickcurl/tree/master
1871 43. http://svn.dajobe.org/view/
1872 44. http://code.flickr.com/blog/2009/05/06/the-absence-and-the-anchor/
1873 45. http://git.lespiau.name/cgit/shave/
1874 46. http://www.flickr.com/services/api/flickr.panda.getList.html
1875 47. http://www.flickr.com/services/api/flickr.panda.getPhotos.html
1876 48. http://code.flickr.com/blog/2009/03/03/panda-tuesday-the-history-of-the-panda-new-apis-explore-and-you/
1877 49. http://www.flickr.com/explore/panda
1878 50. http://www.flickr.com/services/api/flickr.groups.members.getList.html
1879 51. http://tech.groups.yahoo.com/group/yws-flickr/message/4749
1880 52. http://www.flickr.com/services/api/flickr.commons.getInstitutions.html
1881 53. http://www.flickr.com/services/api/flickr.contacts.getListRecentlyUploaded.html
1882 54. http://www.flickr.com/services/api/flickr.photos.geo.batchCorrectLocation.html
1883 55. http://www.flickr.com/services/api/flickr.photos.geo.correctLocation.html
1884 56. http://www.flickr.com/services/api/flickr.photos.geo.photosForLocation.html
1885 57. http://www.flickr.com/services/api/flickr.photos.geo.setContext.html
1886 58. http://www.flickr.com/services/api/flickr.places.getPlaceTypes.html
1887 59. http://www.flickr.com/services/api/flickr.places.getShapeHistory.html
1888 60. http://www.flickr.com/services/api/flickr.places.placesForBoundingBox.html
1889 61. http://www.flickr.com/services/api/flickr.places.placesForContacts.html
1890 62. http://www.flickr.com/services/api/flickr.places.placesForTags.html
1891 63. http://www.flickr.com/services/api/flickr.places.tagsForPlace.html
1892 64. http://tech.groups.yahoo.com/group/yws-flickr/message/4669
1893 65. http://tech.groups.yahoo.com/group/yws-flickr/message/4668
1894 66. http://flickr.com/groups/api/discuss/72157613093793775/
1895 67. http://tech.groups.yahoo.com/group/yws-flickr/message/4545
1896 68. http://www.flickr.com/services/api/flickr.machinetags.getNamespaces.html
1897 69. http://www.flickr.com/services/api/flickr.machinetags.getPairs.html
1898 70. http://www.flickr.com/services/api/flickr.machinetags.getPredicates.html
1899 71. http://www.flickr.com/services/api/flickr.machinetags.getValues.html
1900 72. http://www.flickr.com/services/api/flickr.tags.getClusterPhotos.html
1901 73. http://tech.groups.yahoo.com/group/yws-flickr/message/4510
1902 74. http://code.flickr.com/blog/2008/10/30/the-shape-of-alpha/
1903 75. http://developer.yahoo.com/geo/
1904 76. http://www.flickr.com/services/api/flickr.places.getInfo.html
1905 77. http://www.flickr.com/services/api/flickr.places.getInfoByUrl.html
1906 78. http://www.flickr.com/services/api/flickr.places.getChildrenWithPhotosPublic.html
1907 79. http://www.flickr.com/services/api/flickr.places.placesForUser.html
1908 80. http://en.wikipedia.org/wiki/Mister_Rogers%27_Neighborhood
1909 81. http://en.wikipedia.org/wiki/Neighbours
1910 82. http://geobloggers.com/2008/08/19/correcting-location-data-the-flickr-way/
1911 83. http://www.flickr.com/services/api/flickr.places.placesForUser.html
1912 84. http://code.flickr.com/blog/2008/09/04/whos-on-first/
1913 85. http://code.flickr.com/blog/2008/08/19/standard-photos-response-apis-for-civilized-age/
1914 86. http://code.flickr.com/blog/2008/08/25/api-responses-as-feeds/
1915 87. http://www.flickr.com/services/api/flickr.tags.getClusters.html
1916 88. http://tech.groups.yahoo.com/group/yws-flickr/message/4218
1917 89. http://tech.groups.yahoo.com/group/yws-flickr/message/4146
18691918 90. http://dublincore.org/
1870 91. http://www.foaf-project.org/
1871 92. http://www.w3.org/2003/01/geo/
1872 93. http://www.w3.org/TR/rdf-schema/
1873 94. http://www.w3.org/TR/rdf-concepts/
1874 95. http://www.w3.org/TR/xmlschema-1/
1875 96. http://www.flickr.com/services/api/
1919 91. http://dublincore.org/
1920 92. http://www.foaf-project.org/
1921 93. http://www.w3.org/2003/01/geo/
1922 94. http://www.w3.org/TR/rdf-schema/
1923 95. http://www.w3.org/TR/rdf-concepts/
1924 96. http://www.w3.org/TR/xmlschema-1/
18761925 97. http://www.flickr.com/services/api/
1877 98. http://www.dopplr.com/
1878 99. http://www.aaronland.info/bin/filtr/
1879 100. http://www.geonames.org/
1880 101. http://upcoming.yahoo.com/
1881 102. http://developer.yahoo.com/geo/
1882 103. http://triplr.org/
1883 104. http://librdf.org/raptor
1884 105. http://www.dajobe.org/
1926 98. http://www.flickr.com/services/api/
1927 99. http://www.dopplr.com/
1928 100. http://www.aaronland.info/bin/filtr/
1929 101. http://www.geonames.org/
1930 102. http://upcoming.yahoo.com/
1931 103. http://developer.yahoo.com/geo/
1932 104. http://triplr.org/
1933 105. http://librdf.org/raptor
1934 106. http://www.dajobe.org/
1111 <h2 style="text-align:center"><a href="http://www.dajobe.org/">Dave Beckett</a></h2>
1212
1313
14 <h2 id="D2011-12-28-V1.22">2011-12-28 Flickcurl Version 1.22 Released</h2>
15
16 <p>Add support for the upload field 'hidden' to set if a photo is
17 visible in global search.. The <code>flickcurl_upload_params</code>
18 structure gains an int param <code>hidden</code> with values 1 for
19 global and 2 for hidden.</p>
20
21 <p>Added helper functions <code>flickcurl_get_hidden_label()</code>
22 and <code>flickcurl_get_hidden_from_string()</code> to help
23 converting between the int values and readable labels:</p>
24 <pre>
25 const char* flickcurl_get_hidden_label(int hidden);
26
27 int flickcurl_get_hidden_from_string(const char* hidden_string);
28 </pre>
29 <p>Note: This is an API addition so code should test that the
30 Flickcurl version is 1.22 or newer to use this field and the helper
31 functions.</p>
32
33 <p>Added
34 <code>flickcurl_favorites_getContext()</code>
35 for new API call
36 <a href="http://www.flickr.com/services/api/flickr.favorites.getContext.html">flickr.favorites.getContext</a>,
37 to get previous and next photos around a favo(u)rite:
38 </p>
39 <pre>
40 flickcurl_photos_list** flickcurl_favorites_getContext(flickcurl* fc,
41 const char* photo_id, const char* user_id,
42 int num_prev, int num_next, const char* extras);
43 </pre>
44
45 <p>Now supports only Raptor V2 for optional serializing of triples.</p>
46
47 <p>Fix <code>flickcurl(1)</code> utility output and help messages.
48 Patch from Kumar Appaiah - thanks.</p>
49
50 <p>Fix several man page and documentation issues. Patch from Kumar
51 Appaiah - thanks.</p>
52
53 <p>Remove old curl header include. Patch from Tim Harder -
54 thanks.</p>
55
56 <p>Do not delete any existing data
57 in <code>flickcurl_build_persons()</code> if a field is not found.
58 </p>
59
60 <p>Added <code>raptor_fake.h</code> to distribution so
61 that <code>flickrdf(1)</code> utility can work without raptor
62 installed. Noticed by Naruto TAKAHASHI - thanks.
63 </p>
64
65 <p>Added <code>flickcurl_free_tags()</code> to API. Patch from
66 Naruto TAKAHASHI - thanks.
67 </p>
68
69 <p><code>flickcurl_photoset</code> structure gains an owner NSID
70 field filled in when present. Patch from Naruto TAKAHASHI - thanks!
71 </p>
72
73 <p>Add experimental OAuth code, not compiled in by default and built
74 with <code>--enable-oauth</code>.
75 </p>
76
77
1478 <h2 id="D2011-03-26">2011-03-26 Flickcurl 1.21</h2>
1579
1680 <p>Minor bug fixes:</p>
2286 <li><code>flickcurl_photosets_getPhotos_params()</code> now works again.</li>
2387 </ul>
2488
25 <p>Made the <code>flickcurl(1)</code> utility handle Raptor V1, V2 or
89 <p>Made the <code>flickrdf(1)</code> utility handle Raptor V1, V2 or
2690 none. The <code>configure</code> argument <code>--with-raptor</code>
2791 now takes values '1', '2', 'yes' or 'no'. 'yes' selects Raptor V1 as
2892 before.
3434
3535 Checkout with:
3636 git clone git://github.com/dajobe/flickcurl.git
37
38 # After 2011-10-29 you need to get the libmtwist submodule and
39 # fetch its content with:
40
41 git submodule update --init
3742
3843 Flickr API Configuration
3944
5656
5757 <p>Checkout with:</p>
5858 <pre>
59 git clone git://github.com/dajobe/flickcurl.git
59 git clone git://github.com/dajobe/flickcurl.git
60
61 # After 2011-10-29 you need to get the libmtwist submodule and
62 # fetch its content with:
63
64 git submodule update --init
6065 </pre>
6166
6267
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.67],,
16 [m4_warning([this file was generated for autoconf 2.67.
15 m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
16 [m4_warning([this file was generated for autoconf 2.68.
1717 You have another version of autoconf. It may work, but is not guaranteed to.
1818 If you have problems, you may need to regenerate the build system entirely.
1919 To do so, use the procedure documented by the package, typically `autoreconf'.])])
4646 # ----------------------------------
4747 AC_DEFUN([PKG_PROG_PKG_CONFIG],
4848 [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
49 m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
49 m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
50 m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
5051 AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
5152 AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
5253 AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
9293 pkg_cv_[]$1="$$1"
9394 elif test -n "$PKG_CONFIG"; then
9495 PKG_CHECK_EXISTS([$3],
95 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
96 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
97 test "x$?" != "x0" && pkg_failed=yes ],
9698 [pkg_failed=yes])
9799 else
98100 pkg_failed=untried
140142 AC_MSG_RESULT([no])
141143 _PKG_SHORT_ERRORS_SUPPORTED
142144 if test $_pkg_short_errors_supported = yes; then
143 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
145 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
144146 else
145 $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
147 $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
146148 fi
147149 # Put the nasty error message in config.log where it belongs
148150 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
3838
3939 # Where the GNU config.sub, config.guess might be found
4040 CONFIG_DIR=${CONFIG_DIR-../config}
41
42 # GIT sub modules file
43 GITMODULES='.gitmodules'
4144
4245 # The programs required for configuring which will be searched for
4346 # in the current PATH.
275278 fi
276279
277280
281 # Initialise and/or update GIT submodules
282 if test -f $GITMODULES ; then
283 echo " "
284 modules=`sed -n -e 's/^.*path = \(.*\)/\1/p' $GITMODULES`
285 for module in $modules; do
286 if test `ls -1 $module | wc -l` -eq 0; then
287 echo "$program: Initializing git submodule in $module"
288 $DRYRUN git submodule init $module
289 fi
290 done
291 echo "$program: Updating git submodules: $modules"
292 $DRYRUN git submodule update
293 fi
294
295
278296 for coin in `find $SRCDIR -name configure.ac -print | grep -v /releases/`
279297 do
280298 dir=`dirname $coin`
00 #! /bin/sh
11 # Attempt to guess a canonical system name.
22 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
3 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4 # Free Software Foundation, Inc.
5
6 timestamp='2009-12-30'
3 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
4 # 2011 Free Software Foundation, Inc.
5
6 timestamp='2011-05-11'
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
5656
5757 Originally written by Per Bothner.
5858 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
59 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
59 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
6060 Software Foundation, Inc.
6161
6262 This is free software; see the source for copying conditions. There is NO
180180 fi
181181 ;;
182182 *)
183 os=netbsd
183 os=netbsd
184184 ;;
185185 esac
186186 # The OS release
223223 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
224224 ;;
225225 *5.*)
226 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
226 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
227227 ;;
228228 esac
229229 # According to Compaq, /usr/sbin/psrinfo has been available on
269269 # A Xn.n version is an unreleased experimental baselevel.
270270 # 1.2 uses "1.2" for uname -r.
271271 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
272 exit ;;
272 # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
273 exitcode=$?
274 trap '' 0
275 exit $exitcode ;;
273276 Alpha\ *:Windows_NT*:*)
274277 # How do we know it's Interix rather than the generic POSIX subsystem?
275278 # Should we change UNAME_MACHINE based on the output of uname instead
295298 echo s390-ibm-zvmoe
296299 exit ;;
297300 *:OS400:*:*)
298 echo powerpc-ibm-os400
301 echo powerpc-ibm-os400
299302 exit ;;
300303 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
301304 echo arm-acorn-riscix${UNAME_RELEASE}
394397 # MiNT. But MiNT is downward compatible to TOS, so this should
395398 # be no problem.
396399 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
397 echo m68k-atari-mint${UNAME_RELEASE}
400 echo m68k-atari-mint${UNAME_RELEASE}
398401 exit ;;
399402 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
400403 echo m68k-atari-mint${UNAME_RELEASE}
401 exit ;;
404 exit ;;
402405 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
403 echo m68k-atari-mint${UNAME_RELEASE}
406 echo m68k-atari-mint${UNAME_RELEASE}
404407 exit ;;
405408 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
406 echo m68k-milan-mint${UNAME_RELEASE}
407 exit ;;
409 echo m68k-milan-mint${UNAME_RELEASE}
410 exit ;;
408411 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
409 echo m68k-hades-mint${UNAME_RELEASE}
410 exit ;;
412 echo m68k-hades-mint${UNAME_RELEASE}
413 exit ;;
411414 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
412 echo m68k-unknown-mint${UNAME_RELEASE}
413 exit ;;
415 echo m68k-unknown-mint${UNAME_RELEASE}
416 exit ;;
414417 m68k:machten:*:*)
415418 echo m68k-apple-machten${UNAME_RELEASE}
416419 exit ;;
480483 echo m88k-motorola-sysv3
481484 exit ;;
482485 AViiON:dgux:*:*)
483 # DG/UX returns AViiON for all architectures
484 UNAME_PROCESSOR=`/usr/bin/uname -p`
486 # DG/UX returns AViiON for all architectures
487 UNAME_PROCESSOR=`/usr/bin/uname -p`
485488 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
486489 then
487490 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
494497 else
495498 echo i586-dg-dgux${UNAME_RELEASE}
496499 fi
497 exit ;;
500 exit ;;
498501 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
499502 echo m88k-dolphin-sysv3
500503 exit ;;
551554 echo rs6000-ibm-aix3.2
552555 fi
553556 exit ;;
554 *:AIX:*:[456])
557 *:AIX:*:[4567])
555558 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
556559 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
557560 IBM_ARCH=rs6000
594597 9000/[678][0-9][0-9])
595598 if [ -x /usr/bin/getconf ]; then
596599 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
597 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
598 case "${sc_cpu_version}" in
599 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
600 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
601 532) # CPU_PA_RISC2_0
602 case "${sc_kernel_bits}" in
603 32) HP_ARCH="hppa2.0n" ;;
604 64) HP_ARCH="hppa2.0w" ;;
600 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
601 case "${sc_cpu_version}" in
602 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
603 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
604 532) # CPU_PA_RISC2_0
605 case "${sc_kernel_bits}" in
606 32) HP_ARCH="hppa2.0n" ;;
607 64) HP_ARCH="hppa2.0w" ;;
605608 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
606 esac ;;
607 esac
609 esac ;;
610 esac
608611 fi
609612 if [ "${HP_ARCH}" = "" ]; then
610613 eval $set_cc_for_build
611 sed 's/^ //' << EOF >$dummy.c
612
613 #define _HPUX_SOURCE
614 #include <stdlib.h>
615 #include <unistd.h>
616
617 int main ()
618 {
619 #if defined(_SC_KERNEL_BITS)
620 long bits = sysconf(_SC_KERNEL_BITS);
621 #endif
622 long cpu = sysconf (_SC_CPU_VERSION);
623
624 switch (cpu)
625 {
626 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
627 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
628 case CPU_PA_RISC2_0:
629 #if defined(_SC_KERNEL_BITS)
630 switch (bits)
631 {
632 case 64: puts ("hppa2.0w"); break;
633 case 32: puts ("hppa2.0n"); break;
634 default: puts ("hppa2.0"); break;
635 } break;
636 #else /* !defined(_SC_KERNEL_BITS) */
637 puts ("hppa2.0"); break;
638 #endif
639 default: puts ("hppa1.0"); break;
640 }
641 exit (0);
642 }
614 sed 's/^ //' << EOF >$dummy.c
615
616 #define _HPUX_SOURCE
617 #include <stdlib.h>
618 #include <unistd.h>
619
620 int main ()
621 {
622 #if defined(_SC_KERNEL_BITS)
623 long bits = sysconf(_SC_KERNEL_BITS);
624 #endif
625 long cpu = sysconf (_SC_CPU_VERSION);
626
627 switch (cpu)
628 {
629 case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
630 case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
631 case CPU_PA_RISC2_0:
632 #if defined(_SC_KERNEL_BITS)
633 switch (bits)
634 {
635 case 64: puts ("hppa2.0w"); break;
636 case 32: puts ("hppa2.0n"); break;
637 default: puts ("hppa2.0"); break;
638 } break;
639 #else /* !defined(_SC_KERNEL_BITS) */
640 puts ("hppa2.0"); break;
641 #endif
642 default: puts ("hppa1.0"); break;
643 }
644 exit (0);
645 }
643646 EOF
644647 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
645648 test -z "$HP_ARCH" && HP_ARCH=hppa
730733 exit ;;
731734 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
732735 echo c1-convex-bsd
733 exit ;;
736 exit ;;
734737 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
735738 if getsysinfo -f scalar_acc
736739 then echo c32-convex-bsd
737740 else echo c2-convex-bsd
738741 fi
739 exit ;;
742 exit ;;
740743 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
741744 echo c34-convex-bsd
742 exit ;;
745 exit ;;
743746 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
744747 echo c38-convex-bsd
745 exit ;;
748 exit ;;
746749 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
747750 echo c4-convex-bsd
748 exit ;;
751 exit ;;
749752 CRAY*Y-MP:*:*:*)
750753 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
751754 exit ;;
769772 exit ;;
770773 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
771774 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
772 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
773 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
774 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
775 exit ;;
775 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
776 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
777 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
778 exit ;;
776779 5000:UNIX_System_V:4.*:*)
777 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
778 FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
779 echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
780 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
781 FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
782 echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
780783 exit ;;
781784 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
782785 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
804807 echo ${UNAME_MACHINE}-pc-mingw32
805808 exit ;;
806809 i*:windows32*:*)
807 # uname -m includes "-pc" on this system.
808 echo ${UNAME_MACHINE}-mingw32
810 # uname -m includes "-pc" on this system.
811 echo ${UNAME_MACHINE}-mingw32
809812 exit ;;
810813 i*:PW*:*)
811814 echo ${UNAME_MACHINE}-pc-pw32
812815 exit ;;
813816 *:Interix*:*)
814 case ${UNAME_MACHINE} in
817 case ${UNAME_MACHINE} in
815818 x86)
816819 echo i586-pc-interix${UNAME_RELEASE}
817820 exit ;;
866869 EV6) UNAME_MACHINE=alphaev6 ;;
867870 EV67) UNAME_MACHINE=alphaev67 ;;
868871 EV68*) UNAME_MACHINE=alphaev68 ;;
869 esac
872 esac
870873 objdump --private-headers /bin/sh | grep -q ld.so.1
871874 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
872875 echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
878881 then
879882 echo ${UNAME_MACHINE}-unknown-linux-gnu
880883 else
881 echo ${UNAME_MACHINE}-unknown-linux-gnueabi
884 if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
885 | grep -q __ARM_PCS_VFP
886 then
887 echo ${UNAME_MACHINE}-unknown-linux-gnueabi
888 else
889 echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
890 fi
882891 fi
883892 exit ;;
884893 avr32*:Linux:*:*)
891900 echo crisv32-axis-linux-gnu
892901 exit ;;
893902 frv:Linux:*:*)
894 echo frv-unknown-linux-gnu
903 echo frv-unknown-linux-gnu
895904 exit ;;
896905 i*86:Linux:*:*)
897906 LIBC=gnu
959968 echo ${UNAME_MACHINE}-ibm-linux
960969 exit ;;
961970 sh64*:Linux:*:*)
962 echo ${UNAME_MACHINE}-unknown-linux-gnu
971 echo ${UNAME_MACHINE}-unknown-linux-gnu
963972 exit ;;
964973 sh*:Linux:*:*)
965974 echo ${UNAME_MACHINE}-unknown-linux-gnu
967976 sparc:Linux:*:* | sparc64:Linux:*:*)
968977 echo ${UNAME_MACHINE}-unknown-linux-gnu
969978 exit ;;
979 tile*:Linux:*:*)
980 echo ${UNAME_MACHINE}-tilera-linux-gnu
981 exit ;;
970982 vax:Linux:*:*)
971983 echo ${UNAME_MACHINE}-dec-linux-gnu
972984 exit ;;
974986 echo x86_64-unknown-linux-gnu
975987 exit ;;
976988 xtensa*:Linux:*:*)
977 echo ${UNAME_MACHINE}-unknown-linux-gnu
989 echo ${UNAME_MACHINE}-unknown-linux-gnu
978990 exit ;;
979991 i*86:DYNIX/ptx:4*:*)
980992 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
983995 echo i386-sequent-sysv4
984996 exit ;;
985997 i*86:UNIX_SV:4.2MP:2.*)
986 # Unixware is an offshoot of SVR4, but it has its own version
987 # number series starting with 2...
988 # I am not positive that other SVR4 systems won't match this,
998 # Unixware is an offshoot of SVR4, but it has its own version
999 # number series starting with 2...
1000 # I am not positive that other SVR4 systems won't match this,
9891001 # I just have to hope. -- rms.
990 # Use sysv4.2uw... so that sysv4* matches it.
1002 # Use sysv4.2uw... so that sysv4* matches it.
9911003 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
9921004 exit ;;
9931005 i*86:OS/2:*:*)
10191031 fi
10201032 exit ;;
10211033 i*86:*:5:[678]*)
1022 # UnixWare 7.x, OpenUNIX and OpenServer 6.
1034 # UnixWare 7.x, OpenUNIX and OpenServer 6.
10231035 case `/bin/uname -X | grep "^Machine"` in
10241036 *486*) UNAME_MACHINE=i486 ;;
10251037 *Pentium) UNAME_MACHINE=i586 ;;
10471059 exit ;;
10481060 pc:*:*:*)
10491061 # Left here for compatibility:
1050 # uname -m prints for DJGPP always 'pc', but it prints nothing about
1051 # the processor, so we play safe by assuming i586.
1062 # uname -m prints for DJGPP always 'pc', but it prints nothing about
1063 # the processor, so we play safe by assuming i586.
10521064 # Note: whatever this is, it MUST be the same as what config.sub
10531065 # prints for the "djgpp" host, or else GDB configury will decide that
10541066 # this is a cross-build.
10551067 echo i586-pc-msdosdjgpp
1056 exit ;;
1068 exit ;;
10571069 Intel:Mach:3*:*)
10581070 echo i386-pc-mach3
10591071 exit ;;
10881100 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
10891101 && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
10901102 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1091 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1092 && { echo i486-ncr-sysv4; exit; } ;;
1103 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1104 && { echo i486-ncr-sysv4; exit; } ;;
10931105 NCR*:*:4.2:* | MPRAS*:*:4.2:*)
10941106 OS_REL='.3'
10951107 test -r /etc/.relid \
11321144 echo ns32k-sni-sysv
11331145 fi
11341146 exit ;;
1135 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1136 # says <Richard.M.Bartel@ccMail.Census.GOV>
1137 echo i586-unisys-sysv4
1138 exit ;;
1147 PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1148 # says <Richard.M.Bartel@ccMail.Census.GOV>
1149 echo i586-unisys-sysv4
1150 exit ;;
11391151 *:UNIX_System_V:4*:FTX*)
11401152 # From Gerald Hewes <hewes@openmarket.com>.
11411153 # How about differentiating between stratus architectures? -djm
11611173 exit ;;
11621174 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
11631175 if [ -d /usr/nec ]; then
1164 echo mips-nec-sysv${UNAME_RELEASE}
1176 echo mips-nec-sysv${UNAME_RELEASE}
11651177 else
1166 echo mips-unknown-sysv${UNAME_RELEASE}
1167 fi
1168 exit ;;
1178 echo mips-unknown-sysv${UNAME_RELEASE}
1179 fi
1180 exit ;;
11691181 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
11701182 echo powerpc-be-beos
11711183 exit ;;
12301242 *:QNX:*:4*)
12311243 echo i386-pc-qnx
12321244 exit ;;
1245 NEO-?:NONSTOP_KERNEL:*:*)
1246 echo neo-tandem-nsk${UNAME_RELEASE}
1247 exit ;;
12331248 NSE-?:NONSTOP_KERNEL:*:*)
12341249 echo nse-tandem-nsk${UNAME_RELEASE}
12351250 exit ;;
12751290 echo pdp10-unknown-its
12761291 exit ;;
12771292 SEI:*:*:SEIUX)
1278 echo mips-sei-seiux${UNAME_RELEASE}
1293 echo mips-sei-seiux${UNAME_RELEASE}
12791294 exit ;;
12801295 *:DragonFly:*:*)
12811296 echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
12821297 exit ;;
12831298 *:*VMS:*:*)
1284 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1299 UNAME_MACHINE=`(uname -p) 2>/dev/null`
12851300 case "${UNAME_MACHINE}" in
12861301 A*) echo alpha-dec-vms ; exit ;;
12871302 I*) echo ia64-dec-vms ; exit ;;
13211336 #include <sys/param.h>
13221337 printf ("m68k-sony-newsos%s\n",
13231338 #ifdef NEWSOS4
1324 "4"
1339 "4"
13251340 #else
1326 ""
1327 #endif
1328 ); exit (0);
1341 ""
1342 #endif
1343 ); exit (0);
13291344 #endif
13301345 #endif
13311346
00 #! /bin/sh
11 # Configuration validation subroutine script.
22 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
3 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4 # Free Software Foundation, Inc.
5
6 timestamp='2010-01-22'
3 # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
4 # 2011 Free Software Foundation, Inc.
5
6 timestamp='2011-03-23'
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
7575 GNU config.sub ($timestamp)
7676
7777 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
78 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
78 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
7979 Software Foundation, Inc.
8080
8181 This is free software; see the source for copying conditions. There is NO
123123 # Here we must recognize all the valid KERNEL-OS combinations.
124124 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
125125 case $maybe_os in
126 nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
127 uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
126 nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
127 linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
128 knetbsd*-gnu* | netbsd*-gnu* | \
128129 kopensolaris*-gnu* | \
129130 storm-chaos* | os2-emx* | rtmk-nova*)
130131 os=-$maybe_os
156157 os=
157158 basic_machine=$1
158159 ;;
159 -bluegene*)
160 os=-cnk
160 -bluegene*)
161 os=-cnk
161162 ;;
162163 -sim | -cisco | -oki | -wec | -winbond)
163164 os=
173174 os=-chorusos
174175 basic_machine=$1
175176 ;;
176 -chorusrdb)
177 os=-chorusrdb
177 -chorusrdb)
178 os=-chorusrdb
178179 basic_machine=$1
179 ;;
180 ;;
180181 -hiux*)
181182 os=-hiuxwe2
182183 ;;
281282 | moxie \
282283 | mt \
283284 | msp430 \
285 | nds32 | nds32le | nds32be \
284286 | nios | nios2 \
285287 | ns16k | ns32k \
288 | open8 \
286289 | or32 \
287290 | pdp10 | pdp11 | pj | pjl \
288 | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
291 | powerpc | powerpc64 | powerpc64le | powerpcle \
289292 | pyramid \
290293 | rx \
291294 | score \
293296 | sh64 | sh64le \
294297 | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
295298 | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
296 | spu | strongarm \
297 | tahoe | thumb | tic4x | tic80 | tron \
299 | spu \
300 | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
298301 | ubicom32 \
299302 | v850 | v850e \
300303 | we32k \
301 | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
304 | x86 | xc16x | xstormy16 | xtensa \
302305 | z8k | z80)
303306 basic_machine=$basic_machine-unknown
307 ;;
308 c54x)
309 basic_machine=tic54x-unknown
310 ;;
311 c55x)
312 basic_machine=tic55x-unknown
313 ;;
314 c6x)
315 basic_machine=tic6x-unknown
304316 ;;
305317 m6811 | m68hc11 | m6812 | m68hc12 | picochip)
306318 # Motorola 68HC11/12.
311323 ;;
312324 ms1)
313325 basic_machine=mt-unknown
326 ;;
327
328 strongarm | thumb | xscale)
329 basic_machine=arm-unknown
330 ;;
331
332 xscaleeb)
333 basic_machine=armeb-unknown
334 ;;
335
336 xscaleel)
337 basic_machine=armel-unknown
314338 ;;
315339
316340 # We use `pc' rather than `unknown'
333357 | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
334358 | avr-* | avr32-* \
335359 | bfin-* | bs2000-* \
336 | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
360 | c[123]* | c30-* | [cjt]90-* | c4x-* \
337361 | clipper-* | craynv-* | cydra-* \
338362 | d10v-* | d30v-* | dlx-* \
339363 | elxsi-* \
367391 | mmix-* \
368392 | mt-* \
369393 | msp430-* \
394 | nds32-* | nds32le-* | nds32be-* \
370395 | nios-* | nios2-* \
371396 | none-* | np1-* | ns16k-* | ns32k-* \
397 | open8-* \
372398 | orion-* \
373399 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
374 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
400 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
375401 | pyramid-* \
376402 | romp-* | rs6000-* | rx-* \
377403 | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
378404 | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
379405 | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
380406 | sparclite-* \
381 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
382 | tahoe-* | thumb-* \
407 | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
408 | tahoe-* \
383409 | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
384410 | tile-* | tilegx-* \
385411 | tron-* \
386412 | ubicom32-* \
387413 | v850-* | v850e-* | vax-* \
388414 | we32k-* \
389 | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
415 | x86-* | x86_64-* | xc16x-* | xps100-* \
390416 | xstormy16-* | xtensa*-* \
391417 | ymp-* \
392418 | z8k-* | z80-*)
411437 basic_machine=a29k-amd
412438 os=-udi
413439 ;;
414 abacus)
440 abacus)
415441 basic_machine=abacus-unknown
416442 ;;
417443 adobe68k)
481507 basic_machine=powerpc-ibm
482508 os=-cnk
483509 ;;
510 c54x-*)
511 basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
512 ;;
513 c55x-*)
514 basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
515 ;;
516 c6x-*)
517 basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
518 ;;
484519 c90)
485520 basic_machine=c90-cray
486521 os=-unicos
487522 ;;
488 cegcc)
523 cegcc)
489524 basic_machine=arm-unknown
490525 os=-cegcc
491526 ;;
517552 basic_machine=craynv-cray
518553 os=-unicosmp
519554 ;;
520 cr16)
555 cr16 | cr16-*)
521556 basic_machine=cr16-unknown
522557 os=-elf
523558 ;;
733768 basic_machine=ns32k-utek
734769 os=-sysv
735770 ;;
736 microblaze)
771 microblaze)
737772 basic_machine=microblaze-xilinx
738773 ;;
739774 mingw32)
840875 np1)
841876 basic_machine=np1-gould
842877 ;;
878 neo-tandem)
879 basic_machine=neo-tandem
880 ;;
881 nse-tandem)
882 basic_machine=nse-tandem
883 ;;
843884 nsr-tandem)
844885 basic_machine=nsr-tandem
845886 ;;
922963 ;;
923964 power) basic_machine=power-ibm
924965 ;;
925 ppc) basic_machine=powerpc-unknown
926 ;;
927 ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
966 ppc | ppcbe) basic_machine=powerpc-unknown
967 ;;
968 ppc-* | ppcbe-*)
969 basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
928970 ;;
929971 ppcle | powerpclittle | ppc-le | powerpc-little)
930972 basic_machine=powerpcle-unknown
10181060 basic_machine=i860-stratus
10191061 os=-sysv4
10201062 ;;
1063 strongarm-* | thumb-*)
1064 basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
1065 ;;
10211066 sun2)
10221067 basic_machine=m68000-sun
10231068 ;;
10741119 basic_machine=t90-cray
10751120 os=-unicos
10761121 ;;
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
1088 ;;
1089 # This must be matched before tile*.
1090 tilegx*)
1122 # This must be matched before tile*.
1123 tilegx*)
10911124 basic_machine=tilegx-unknown
10921125 os=-linux-gnu
10931126 ;;
11611194 ;;
11621195 xps | xps100)
11631196 basic_machine=xps100-honeywell
1197 ;;
1198 xscale-* | xscalee[bl]-*)
1199 basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
11641200 ;;
11651201 ymp)
11661202 basic_machine=ymp-cray
12591295 if [ x"$os" != x"" ]
12601296 then
12611297 case $os in
1262 # First match some system type aliases
1263 # that might get confused with valid system types.
1298 # First match some system type aliases
1299 # that might get confused with valid system types.
12641300 # -solaris* is a basic system type, with this one exception.
1265 -auroraux)
1266 os=-auroraux
1301 -auroraux)
1302 os=-auroraux
12671303 ;;
12681304 -solaris1 | -solaris1.*)
12691305 os=`echo $os | sed -e 's|solaris1|sunos4|'`
13001336 | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
13011337 | -chorusos* | -chorusrdb* | -cegcc* \
13021338 | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1303 | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
1339 | -mingw32* | -linux-gnu* | -linux-android* \
1340 | -linux-newlib* | -linux-uclibc* \
13041341 | -uxpv* | -beos* | -mpeix* | -udk* \
13051342 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
13061343 | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
13471384 -opened*)
13481385 os=-openedition
13491386 ;;
1350 -os400*)
1387 -os400*)
13511388 os=-os400
13521389 ;;
13531390 -wince*)
13961433 -sinix*)
13971434 os=-sysv4
13981435 ;;
1399 -tpf*)
1436 -tpf*)
14001437 os=-tpf
14011438 ;;
14021439 -triton*)
14411478 -dicos*)
14421479 os=-dicos
14431480 ;;
1444 -nacl*)
1445 ;;
1481 -nacl*)
1482 ;;
14461483 -none)
14471484 ;;
14481485 *)
14651502 # system, and we'll never get to this point.
14661503
14671504 case $basic_machine in
1468 score-*)
1505 score-*)
14691506 os=-elf
14701507 ;;
1471 spu-*)
1508 spu-*)
14721509 os=-elf
14731510 ;;
14741511 *-acorn)
14801517 arm*-semi)
14811518 os=-aout
14821519 ;;
1483 c4x-* | tic4x-*)
1484 os=-coff
1520 c4x-* | tic4x-*)
1521 os=-coff
1522 ;;
1523 tic54x-*)
1524 os=-coff
1525 ;;
1526 tic55x-*)
1527 os=-coff
1528 ;;
1529 tic6x-*)
1530 os=-coff
14851531 ;;
14861532 # This must come before the *-dec entry.
14871533 pdp10-*)
15081554 m68*-cisco)
15091555 os=-aout
15101556 ;;
1511 mep-*)
1557 mep-*)
15121558 os=-elf
15131559 ;;
15141560 mips*-cisco)
15351581 *-ibm)
15361582 os=-aix
15371583 ;;
1538 *-knuth)
1584 *-knuth)
15391585 os=-mmixware
15401586 ;;
15411587 *-wec)
55 dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
66 AC_DEFUN([GTK_DOC_CHECK],
77 [
8 AC_REQUIRE([PKG_PROG_PKG_CONFIG])
89 AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
910 AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
1011
3233 AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
3334 [PKG_CHECK_EXISTS([gtk-doc >= $1],,
3435 AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))])
36 dnl don't check for glib if we build glib
37 if test "x$PACKAGE_NAME" != "xglib"; then
38 dnl don't fail if someone does not have glib
39 PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0,,)
40 fi
3541 fi
3642
3743 AC_MSG_CHECKING([whether to build gtk-doc documentation])
00 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
11 #
22 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
3 # 2006, 2007, 2008 Free Software Foundation, Inc.
3 # 2006, 2007, 2008, 2009, 2010, 2011 Free Software
4 # Foundation, Inc.
45 # Written by Gordon Matzigkeit, 1996
56 #
67 # This file is free software; the Free Software Foundation gives
910
1011 m4_define([_LT_COPYING], [dnl
1112 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
12 # 2006, 2007, 2008 Free Software Foundation, Inc.
13 # 2006, 2007, 2008, 2009, 2010, 2011 Free Software
14 # Foundation, Inc.
1315 # Written by Gordon Matzigkeit, 1996
1416 #
1517 # This file is part of GNU Libtool.
3638 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
3739 ])
3840
39 # serial 56 LT_INIT
41 # serial 57 LT_INIT
4042
4143
4244 # LT_PREREQ(VERSION)
6567 # ------------------
6668 AC_DEFUN([LT_INIT],
6769 [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
70 AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
6871 AC_BEFORE([$0], [LT_LANG])dnl
6972 AC_BEFORE([$0], [LT_OUTPUT])dnl
7073 AC_BEFORE([$0], [LTDL_INIT])dnl
8083 AC_REQUIRE([LTVERSION_VERSION])dnl
8184 AC_REQUIRE([LTOBSOLETE_VERSION])dnl
8285 m4_require([_LT_PROG_LTMAIN])dnl
86
87 _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
8388
8489 dnl Parse OPTIONS
8590 _LT_SET_OPTIONS([$0], [$1])
117122 *) break;;
118123 esac
119124 done
120 cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
125 cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
121126 ])
122127
123128
137142 m4_defun([_LT_SETUP],
138143 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
139144 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
145 AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
146 AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
147
148 _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
149 dnl
140150 _LT_DECL([], [host_alias], [0], [The host system])dnl
141151 _LT_DECL([], [host], [0])dnl
142152 _LT_DECL([], [host_os], [0])dnl
159169 dnl
160170 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
161171 m4_require([_LT_CHECK_SHELL_FEATURES])dnl
172 m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
162173 m4_require([_LT_CMD_RELOAD])dnl
163174 m4_require([_LT_CHECK_MAGIC_METHOD])dnl
175 m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
164176 m4_require([_LT_CMD_OLD_ARCHIVE])dnl
165177 m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
178 m4_require([_LT_WITH_SYSROOT])dnl
166179
167180 _LT_CONFIG_LIBTOOL_INIT([
168181 # See if we are running on zsh, and set the options which allow our
178191 _LT_CHECK_OBJDIR
179192
180193 m4_require([_LT_TAG_COMPILER])dnl
181 _LT_PROG_ECHO_BACKSLASH
182194
183195 case $host_os in
184196 aix3*)
192204 ;;
193205 esac
194206
195 # Sed substitution that helps us do robust quoting. It backslashifies
196 # metacharacters that are still active within double-quoted strings.
197 sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
198
199 # Same as above, but do not quote variable references.
200 double_quote_subst='s/\([["`\\]]\)/\\\1/g'
201
202 # Sed substitution to delay expansion of an escaped shell variable in a
203 # double_quote_subst'ed string.
204 delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
205
206 # Sed substitution to delay expansion of an escaped single quote.
207 delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
208
209 # Sed substitution to avoid accidental globbing in evaled expressions
210 no_glob_subst='s/\*/\\\*/g'
211
212207 # Global variables:
213208 ofile=libtool
214209 can_build_shared=yes
248243 _LT_CONFIG_COMMANDS
249244 ])# _LT_SETUP
250245
246
247 # _LT_PREPARE_SED_QUOTE_VARS
248 # --------------------------
249 # Define a few sed substitution that help us do robust quoting.
250 m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
251 [# Backslashify metacharacters that are still active within
252 # double-quoted strings.
253 sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
254
255 # Same as above, but do not quote variable references.
256 double_quote_subst='s/\([["`\\]]\)/\\\1/g'
257
258 # Sed substitution to delay expansion of an escaped shell variable in a
259 # double_quote_subst'ed string.
260 delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
261
262 # Sed substitution to delay expansion of an escaped single quote.
263 delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
264
265 # Sed substitution to avoid accidental globbing in evaled expressions
266 no_glob_subst='s/\*/\\\*/g'
267 ])
251268
252269 # _LT_PROG_LTMAIN
253270 # ---------------
407424 # declaration there will have the same value as in `configure'. VARNAME
408425 # must have a single quote delimited value for this to work.
409426 m4_define([_LT_CONFIG_STATUS_DECLARE],
410 [$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`'])
427 [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
411428
412429
413430 # _LT_CONFIG_STATUS_DECLARATIONS
417434 # embedded single quotes properly. In configure, this macro expands
418435 # each variable declared with _LT_DECL (and _LT_TAGDECL) into:
419436 #
420 # <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`'
437 # <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
421438 m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
422439 [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
423440 [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
516533 LTCFLAGS='$LTCFLAGS'
517534 compiler='$compiler_DEFAULT'
518535
536 # A function that is used when there is no print builtin or printf.
537 func_fallback_echo ()
538 {
539 eval 'cat <<_LTECHO_EOF
540 \$[]1
541 _LTECHO_EOF'
542 }
543
519544 # Quote evaled strings.
520545 for var in lt_decl_all_varnames([[ \
521546 ]], lt_decl_quote_varnames); do
522 case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
547 case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
523548 *[[\\\\\\\`\\"\\\$]]*)
524 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
549 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
525550 ;;
526551 *)
527552 eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
532557 # Double-quote double-evaled strings.
533558 for var in lt_decl_all_varnames([[ \
534559 ]], lt_decl_dquote_varnames); do
535 case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
560 case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
536561 *[[\\\\\\\`\\"\\\$]]*)
537 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
562 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
538563 ;;
539564 *)
540565 eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
542567 esac
543568 done
544569
545 # Fix-up fallback echo if it was mangled by the above quoting rules.
546 case \$lt_ECHO in
547 *'\\\[$]0 --fallback-echo"')dnl "
548 lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\`
549 ;;
550 esac
551
552570 _LT_OUTPUT_LIBTOOL_INIT
553571 ])
554572
573 # _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
574 # ------------------------------------
575 # Generate a child script FILE with all initialization necessary to
576 # reuse the environment learned by the parent script, and make the
577 # file executable. If COMMENT is supplied, it is inserted after the
578 # `#!' sequence but before initialization text begins. After this
579 # macro, additional text can be appended to FILE to form the body of
580 # the child script. The macro ends with non-zero status if the
581 # file could not be fully written (such as if the disk is full).
582 m4_ifdef([AS_INIT_GENERATED],
583 [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
584 [m4_defun([_LT_GENERATED_FILE_INIT],
585 [m4_require([AS_PREPARE])]dnl
586 [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
587 [lt_write_fail=0
588 cat >$1 <<_ASEOF || lt_write_fail=1
589 #! $SHELL
590 # Generated by $as_me.
591 $2
592 SHELL=\${CONFIG_SHELL-$SHELL}
593 export SHELL
594 _ASEOF
595 cat >>$1 <<\_ASEOF || lt_write_fail=1
596 AS_SHELL_SANITIZE
597 _AS_PREPARE
598 exec AS_MESSAGE_FD>&1
599 _ASEOF
600 test $lt_write_fail = 0 && chmod +x $1[]dnl
601 m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
555602
556603 # LT_OUTPUT
557604 # ---------
561608 AC_DEFUN([LT_OUTPUT],
562609 [: ${CONFIG_LT=./config.lt}
563610 AC_MSG_NOTICE([creating $CONFIG_LT])
564 cat >"$CONFIG_LT" <<_LTEOF
565 #! $SHELL
566 # Generated by $as_me.
567 # Run this file to recreate a libtool stub with the current configuration.
568
611 _LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
612 [# Run this file to recreate a libtool stub with the current configuration.])
613
614 cat >>"$CONFIG_LT" <<\_LTEOF
569615 lt_cl_silent=false
570 SHELL=\${CONFIG_SHELL-$SHELL}
571 _LTEOF
572
573 cat >>"$CONFIG_LT" <<\_LTEOF
574 AS_SHELL_SANITIZE
575 _AS_PREPARE
576
577 exec AS_MESSAGE_FD>&1
578616 exec AS_MESSAGE_LOG_FD>>config.log
579617 {
580618 echo
600638 m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
601639 configured by $[0], generated by m4_PACKAGE_STRING.
602640
603 Copyright (C) 2008 Free Software Foundation, Inc.
641 Copyright (C) 2011 Free Software Foundation, Inc.
604642 This config.lt script is free software; the Free Software Foundation
605643 gives unlimited permision to copy, distribute and modify it."
606644
645683 # appending to config.log, which fails on DOS, as config.log is still kept
646684 # open by configure. Here we exec the FD to /dev/null, effectively closing
647685 # config.log, so it can be properly (re)opened and appended to by config.lt.
648 if test "$no_create" != yes; then
649 lt_cl_success=:
650 test "$silent" = yes &&
651 lt_config_lt_args="$lt_config_lt_args --quiet"
652 exec AS_MESSAGE_LOG_FD>/dev/null
653 $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
654 exec AS_MESSAGE_LOG_FD>>config.log
655 $lt_cl_success || AS_EXIT(1)
656 fi
686 lt_cl_success=:
687 test "$silent" = yes &&
688 lt_config_lt_args="$lt_config_lt_args --quiet"
689 exec AS_MESSAGE_LOG_FD>/dev/null
690 $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
691 exec AS_MESSAGE_LOG_FD>>config.log
692 $lt_cl_success || AS_EXIT(1)
657693 ])# LT_OUTPUT
658694
659695
716752 # if finds mixed CR/LF and LF-only lines. Since sed operates in
717753 # text mode, it properly converts lines to CR/LF. This bash problem
718754 # is reportedly fixed, but why not run on old versions too?
719 sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
720 || (rm -f "$cfgfile"; exit 1)
721
722 _LT_PROG_XSI_SHELLFNS
723
724 sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
725 || (rm -f "$cfgfile"; exit 1)
726
727 mv -f "$cfgfile" "$ofile" ||
755 sed '$q' "$ltmain" >> "$cfgfile" \
756 || (rm -f "$cfgfile"; exit 1)
757
758 _LT_PROG_REPLACE_SHELLFNS
759
760 mv -f "$cfgfile" "$ofile" ||
728761 (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
729762 chmod +x "$ofile"
730763 ],
769802 m4_case([$1],
770803 [C], [_LT_LANG(C)],
771804 [C++], [_LT_LANG(CXX)],
805 [Go], [_LT_LANG(GO)],
772806 [Java], [_LT_LANG(GCJ)],
773807 [Fortran 77], [_LT_LANG(F77)],
774808 [Fortran], [_LT_LANG(FC)],
788822 m4_define([_LT_LANG_]$1[_enabled], [])dnl
789823 _LT_LANG_$1_CONFIG($1)])dnl
790824 ])# _LT_LANG
825
826
827 m4_ifndef([AC_PROG_GO], [
828 ############################################################
829 # NOTE: This macro has been submitted for inclusion into #
830 # GNU Autoconf as AC_PROG_GO. When it is available in #
831 # a released version of Autoconf we should remove this #
832 # macro and use it instead. #
833 ############################################################
834 m4_defun([AC_PROG_GO],
835 [AC_LANG_PUSH(Go)dnl
836 AC_ARG_VAR([GOC], [Go compiler command])dnl
837 AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
838 _AC_ARG_VAR_LDFLAGS()dnl
839 AC_CHECK_TOOL(GOC, gccgo)
840 if test -z "$GOC"; then
841 if test -n "$ac_tool_prefix"; then
842 AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
843 fi
844 fi
845 if test -z "$GOC"; then
846 AC_CHECK_PROG(GOC, gccgo, gccgo, false)
847 fi
848 ])#m4_defun
849 ])#m4_ifndef
791850
792851
793852 # _LT_LANG_DEFAULT_CONFIG
820879 m4_ifdef([LT_PROG_GCJ],
821880 [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
822881
882 AC_PROVIDE_IFELSE([AC_PROG_GO],
883 [LT_LANG(GO)],
884 [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
885
823886 AC_PROVIDE_IFELSE([LT_PROG_RC],
824887 [LT_LANG(RC)],
825888 [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
830893 AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
831894 AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
832895 AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
896 AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
833897 dnl aclocal-1.4 backwards compatibility:
834898 dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
835899 dnl AC_DEFUN([AC_LIBTOOL_F77], [])
836900 dnl AC_DEFUN([AC_LIBTOOL_FC], [])
837901 dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
902 dnl AC_DEFUN([AC_LIBTOOL_RC], [])
838903
839904
840905 # _LT_TAG_COMPILER
920985 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
921986 -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
922987 _lt_result=$?
923 if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
988 # If there is a non-empty error log, and "single_module"
989 # appears in it, assume the flag caused a linker warning
990 if test -s conftest.err && $GREP single_module conftest.err; then
991 cat conftest.err >&AS_MESSAGE_LOG_FD
992 # Otherwise, if the output was created with a 0 exit code from
993 # the compiler, it worked.
994 elif test -f libconftest.dylib && test $_lt_result -eq 0; then
924995 lt_cv_apple_cc_single_mod=yes
925996 else
926997 cat conftest.err >&AS_MESSAGE_LOG_FD
928999 rm -rf libconftest.dylib*
9291000 rm -f conftest.*
9301001 fi])
1002
9311003 AC_CACHE_CHECK([for -exported_symbols_list linker flag],
9321004 [lt_cv_ld_exported_symbols_list],
9331005 [lt_cv_ld_exported_symbols_list=no
9381010 [lt_cv_ld_exported_symbols_list=yes],
9391011 [lt_cv_ld_exported_symbols_list=no])
9401012 LDFLAGS="$save_LDFLAGS"
1013 ])
1014
1015 AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
1016 [lt_cv_ld_force_load=no
1017 cat > conftest.c << _LT_EOF
1018 int forced_loaded() { return 2;}
1019 _LT_EOF
1020 echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
1021 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
1022 echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
1023 $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
1024 echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
1025 $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
1026 cat > conftest.c << _LT_EOF
1027 int main() { return 0;}
1028 _LT_EOF
1029 echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
1030 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
1031 _lt_result=$?
1032 if test -s conftest.err && $GREP force_load conftest.err; then
1033 cat conftest.err >&AS_MESSAGE_LOG_FD
1034 elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
1035 lt_cv_ld_force_load=yes
1036 else
1037 cat conftest.err >&AS_MESSAGE_LOG_FD
1038 fi
1039 rm -f conftest.err libconftest.a conftest conftest.c
1040 rm -rf conftest.dSYM
9411041 ])
9421042 case $host_os in
9431043 rhapsody* | darwin1.[[012]])
9661066 else
9671067 _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
9681068 fi
969 if test "$DSYMUTIL" != ":"; then
1069 if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
9701070 _lt_dsymutil='~$DSYMUTIL $lib || :'
9711071 else
9721072 _lt_dsymutil=
9761076 ])
9771077
9781078
979 # _LT_DARWIN_LINKER_FEATURES
980 # --------------------------
1079 # _LT_DARWIN_LINKER_FEATURES([TAG])
1080 # ---------------------------------
9811081 # Checks for linker and compiler features on darwin
9821082 m4_defun([_LT_DARWIN_LINKER_FEATURES],
9831083 [
9861086 _LT_TAGVAR(hardcode_direct, $1)=no
9871087 _LT_TAGVAR(hardcode_automatic, $1)=yes
9881088 _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
989 _LT_TAGVAR(whole_archive_flag_spec, $1)=''
1089 if test "$lt_cv_ld_force_load" = "yes"; then
1090 _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
1091 m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
1092 [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes])
1093 else
1094 _LT_TAGVAR(whole_archive_flag_spec, $1)=''
1095 fi
9901096 _LT_TAGVAR(link_all_deplibs, $1)=yes
9911097 _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
9921098 case $cc_basename in
9941100 *) _lt_dar_can_shared=$GCC ;;
9951101 esac
9961102 if test "$_lt_dar_can_shared" = "yes"; then
997 output_verbose_link_cmd=echo
1103 output_verbose_link_cmd=func_echo_all
9981104 _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}"
9991105 _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
10001106 _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}"
10101116 fi
10111117 ])
10121118
1013 # _LT_SYS_MODULE_PATH_AIX
1014 # -----------------------
1119 # _LT_SYS_MODULE_PATH_AIX([TAGNAME])
1120 # ----------------------------------
10151121 # Links a minimal program and checks the executable
10161122 # for the system default hardcoded library path. In most cases,
10171123 # this is /usr/lib:/lib, but when the MPI compilers are used
10181124 # the location of the communication and MPI libs are included too.
10191125 # If we don't find anything, use the default library path according
10201126 # to the aix ld manual.
1127 # Store the results from the different compilers for each TAGNAME.
1128 # Allow to override them for all tags through lt_cv_aix_libpath.
10211129 m4_defun([_LT_SYS_MODULE_PATH_AIX],
10221130 [m4_require([_LT_DECL_SED])dnl
1023 AC_LINK_IFELSE(AC_LANG_PROGRAM,[
1024 lt_aix_libpath_sed='
1025 /Import File Strings/,/^$/ {
1026 /^0/ {
1027 s/^0 *\(.*\)$/\1/
1028 p
1029 }
1030 }'
1031 aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
1032 # Check for a 64-bit object if we didn't find anything.
1033 if test -z "$aix_libpath"; then
1034 aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
1035 fi],[])
1036 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
1131 if test "${lt_cv_aix_libpath+set}" = set; then
1132 aix_libpath=$lt_cv_aix_libpath
1133 else
1134 AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
1135 [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
1136 lt_aix_libpath_sed='[
1137 /Import File Strings/,/^$/ {
1138 /^0/ {
1139 s/^0 *\([^ ]*\) *$/\1/
1140 p
1141 }
1142 }]'
1143 _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
1144 # Check for a 64-bit object if we didn't find anything.
1145 if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
1146 _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
1147 fi],[])
1148 if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
1149 _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
1150 fi
1151 ])
1152 aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
1153 fi
10371154 ])# _LT_SYS_MODULE_PATH_AIX
10381155
10391156
10401157 # _LT_SHELL_INIT(ARG)
10411158 # -------------------
10421159 m4_define([_LT_SHELL_INIT],
1043 [ifdef([AC_DIVERSION_NOTICE],
1044 [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
1045 [AC_DIVERT_PUSH(NOTICE)])
1046 $1
1047 AC_DIVERT_POP
1048 ])# _LT_SHELL_INIT
1160 [m4_divert_text([M4SH-INIT], [$1
1161 ])])# _LT_SHELL_INIT
1162
10491163
10501164
10511165 # _LT_PROG_ECHO_BACKSLASH
10521166 # -----------------------
1053 # Add some code to the start of the generated configure script which
1054 # will find an echo command which doesn't interpret backslashes.
1167 # Find how we can fake an echo command that does not interpret backslash.
1168 # In particular, with Autoconf 2.60 or later we add some code to the start
1169 # of the generated configure script which will find a shell with a builtin
1170 # printf (which we can use as an echo command).
10551171 m4_defun([_LT_PROG_ECHO_BACKSLASH],
1056 [_LT_SHELL_INIT([
1057 # Check that we are running under the correct shell.
1058 SHELL=${CONFIG_SHELL-/bin/sh}
1059
1060 case X$lt_ECHO in
1061 X*--fallback-echo)
1062 # Remove one level of quotation (which was required for Make).
1063 ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
1064 ;;
1172 [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
1173 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
1174 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
1175
1176 AC_MSG_CHECKING([how to print strings])
1177 # Test print first, because it will be a builtin if present.
1178 if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
1179 test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
1180 ECHO='print -r --'
1181 elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
1182 ECHO='printf %s\n'
1183 else
1184 # Use this function as a fallback that always works.
1185 func_fallback_echo ()
1186 {
1187 eval 'cat <<_LTECHO_EOF
1188 $[]1
1189 _LTECHO_EOF'
1190 }
1191 ECHO='func_fallback_echo'
1192 fi
1193
1194 # func_echo_all arg...
1195 # Invoke $ECHO with all args, space-separated.
1196 func_echo_all ()
1197 {
1198 $ECHO "$*"
1199 }
1200
1201 case "$ECHO" in
1202 printf*) AC_MSG_RESULT([printf]) ;;
1203 print*) AC_MSG_RESULT([print -r]) ;;
1204 *) AC_MSG_RESULT([cat]) ;;
10651205 esac
10661206
1067 ECHO=${lt_ECHO-echo}
1068 if test "X[$]1" = X--no-reexec; then
1069 # Discard the --no-reexec flag, and continue.
1070 shift
1071 elif test "X[$]1" = X--fallback-echo; then
1072 # Avoid inline document here, it may be left over
1073 :
1074 elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
1075 # Yippee, $ECHO works!
1076 :
1077 else
1078 # Restart under the correct shell.
1079 exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
1080 fi
1081
1082 if test "X[$]1" = X--fallback-echo; then
1083 # used as fallback echo
1084 shift
1085 cat <<_LT_EOF
1086 [$]*
1087 _LT_EOF
1088 exit 0
1089 fi
1090
1091 # The HP-UX ksh and POSIX shell print the target directory to stdout
1092 # if CDPATH is set.
1093 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
1094
1095 if test -z "$lt_ECHO"; then
1096 if test "X${echo_test_string+set}" != Xset; then
1097 # find a string as large as possible, as long as the shell can cope with it
1098 for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
1099 # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
1100 if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
1101 { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
1102 then
1103 break
1104 fi
1105 done
1106 fi
1107
1108 if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
1109 echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
1110 test "X$echo_testing_string" = "X$echo_test_string"; then
1111 :
1112 else
1113 # The Solaris, AIX, and Digital Unix default echo programs unquote
1114 # backslashes. This makes it impossible to quote backslashes using
1115 # echo "$something" | sed 's/\\/\\\\/g'
1116 #
1117 # So, first we look for a working echo in the user's PATH.
1118
1119 lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
1120 for dir in $PATH /usr/ucb; do
1121 IFS="$lt_save_ifs"
1122 if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
1123 test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
1124 echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
1125 test "X$echo_testing_string" = "X$echo_test_string"; then
1126 ECHO="$dir/echo"
1127 break
1128 fi
1129 done
1130 IFS="$lt_save_ifs"
1131
1132 if test "X$ECHO" = Xecho; then
1133 # We didn't find a better echo, so look for alternatives.
1134 if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
1135 echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
1136 test "X$echo_testing_string" = "X$echo_test_string"; then
1137 # This shell has a builtin print -r that does the trick.
1138 ECHO='print -r'
1139 elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
1140 test "X$CONFIG_SHELL" != X/bin/ksh; then
1141 # If we have ksh, try running configure again with it.
1142 ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
1143 export ORIGINAL_CONFIG_SHELL
1144 CONFIG_SHELL=/bin/ksh
1145 export CONFIG_SHELL
1146 exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
1147 else
1148 # Try using printf.
1149 ECHO='printf %s\n'
1150 if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
1151 echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
1152 test "X$echo_testing_string" = "X$echo_test_string"; then
1153 # Cool, printf works
1154 :
1155 elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
1156 test "X$echo_testing_string" = 'X\t' &&
1157 echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
1158 test "X$echo_testing_string" = "X$echo_test_string"; then
1159 CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
1160 export CONFIG_SHELL
1161 SHELL="$CONFIG_SHELL"
1162 export SHELL
1163 ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
1164 elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
1165 test "X$echo_testing_string" = 'X\t' &&
1166 echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
1167 test "X$echo_testing_string" = "X$echo_test_string"; then
1168 ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
1169 else
1170 # maybe with a smaller string...
1171 prev=:
1172
1173 for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
1174 if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
1175 then
1176 break
1177 fi
1178 prev="$cmd"
1179 done
1180
1181 if test "$prev" != 'sed 50q "[$]0"'; then
1182 echo_test_string=`eval $prev`
1183 export echo_test_string
1184 exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
1185 else
1186 # Oops. We lost completely, so just stick with echo.
1187 ECHO=echo
1188 fi
1189 fi
1190 fi
1191 fi
1192 fi
1193 fi
1194
1195 # Copy echo and quote the copy suitably for passing to libtool from
1196 # the Makefile, instead of quoting the original, which is used later.
1197 lt_ECHO=$ECHO
1198 if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
1199 lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
1200 fi
1201
1202 AC_SUBST(lt_ECHO)
1203 ])
1207 m4_ifdef([_AS_DETECT_SUGGESTED],
1208 [_AS_DETECT_SUGGESTED([
1209 test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
1210 ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
1211 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
1212 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
1213 PATH=/empty FPATH=/empty; export PATH FPATH
1214 test "X`printf %s $ECHO`" = "X$ECHO" \
1215 || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
1216
12041217 _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
1205 _LT_DECL([], [ECHO], [1],
1206 [An echo program that does not interpret backslashes])
1218 _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
12071219 ])# _LT_PROG_ECHO_BACKSLASH
12081220
1221
1222 # _LT_WITH_SYSROOT
1223 # ----------------
1224 AC_DEFUN([_LT_WITH_SYSROOT],
1225 [AC_MSG_CHECKING([for sysroot])
1226 AC_ARG_WITH([sysroot],
1227 [ --with-sysroot[=DIR] Search for dependent libraries within DIR
1228 (or the compiler's sysroot if not specified).],
1229 [], [with_sysroot=no])
1230
1231 dnl lt_sysroot will always be passed unquoted. We quote it here
1232 dnl in case the user passed a directory name.
1233 lt_sysroot=
1234 case ${with_sysroot} in #(
1235 yes)
1236 if test "$GCC" = yes; then
1237 lt_sysroot=`$CC --print-sysroot 2>/dev/null`
1238 fi
1239 ;; #(
1240 /*)
1241 lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
1242 ;; #(
1243 no|'')
1244 ;; #(
1245 *)
1246 AC_MSG_RESULT([${with_sysroot}])
1247 AC_MSG_ERROR([The sysroot must be an absolute path.])
1248 ;;
1249 esac
1250
1251 AC_MSG_RESULT([${lt_sysroot:-no}])
1252 _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
1253 [dependent libraries, and in which our libraries should be installed.])])
12091254
12101255 # _LT_ENABLE_LOCK
12111256 # ---------------
12351280 ;;
12361281 *-*-irix6*)
12371282 # Find out which ABI we are using.
1238 echo '[#]line __oline__ "configure"' > conftest.$ac_ext
1283 echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
12391284 if AC_TRY_EVAL(ac_compile); then
12401285 if test "$lt_cv_prog_gnu_ld" = yes; then
12411286 case `/usr/bin/file conftest.$ac_objext` in
13281373 CFLAGS="$SAVE_CFLAGS"
13291374 fi
13301375 ;;
1331 sparc*-*solaris*)
1376 *-*solaris*)
13321377 # Find out which ABI we are using.
13331378 echo 'int i;' > conftest.$ac_ext
13341379 if AC_TRY_EVAL(ac_compile); then
13351380 case `/usr/bin/file conftest.o` in
13361381 *64-bit*)
13371382 case $lt_cv_prog_gnu_ld in
1338 yes*) LD="${LD-ld} -m elf64_sparc" ;;
1383 yes*)
1384 case $host in
1385 i?86-*-solaris*)
1386 LD="${LD-ld} -m elf_x86_64"
1387 ;;
1388 sparc*-*-solaris*)
1389 LD="${LD-ld} -m elf64_sparc"
1390 ;;
1391 esac
1392 # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
1393 if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
1394 LD="${LD-ld}_sol2"
1395 fi
1396 ;;
13391397 *)
13401398 if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
13411399 LD="${LD-ld} -64"
13531411 ])# _LT_ENABLE_LOCK
13541412
13551413
1414 # _LT_PROG_AR
1415 # -----------
1416 m4_defun([_LT_PROG_AR],
1417 [AC_CHECK_TOOLS(AR, [ar], false)
1418 : ${AR=ar}
1419 : ${AR_FLAGS=cru}
1420 _LT_DECL([], [AR], [1], [The archiver])
1421 _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
1422
1423 AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
1424 [lt_cv_ar_at_file=no
1425 AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
1426 [echo conftest.$ac_objext > conftest.lst
1427 lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
1428 AC_TRY_EVAL([lt_ar_try])
1429 if test "$ac_status" -eq 0; then
1430 # Ensure the archiver fails upon bogus file names.
1431 rm -f conftest.$ac_objext libconftest.a
1432 AC_TRY_EVAL([lt_ar_try])
1433 if test "$ac_status" -ne 0; then
1434 lt_cv_ar_at_file=@
1435 fi
1436 fi
1437 rm -f conftest.* libconftest.a
1438 ])
1439 ])
1440
1441 if test "x$lt_cv_ar_at_file" = xno; then
1442 archiver_list_spec=
1443 else
1444 archiver_list_spec=$lt_cv_ar_at_file
1445 fi
1446 _LT_DECL([], [archiver_list_spec], [1],
1447 [How to feed a file listing to the archiver])
1448 ])# _LT_PROG_AR
1449
1450
13561451 # _LT_CMD_OLD_ARCHIVE
13571452 # -------------------
13581453 m4_defun([_LT_CMD_OLD_ARCHIVE],
1359 [AC_CHECK_TOOL(AR, ar, false)
1360 test -z "$AR" && AR=ar
1361 test -z "$AR_FLAGS" && AR_FLAGS=cru
1362 _LT_DECL([], [AR], [1], [The archiver])
1363 _LT_DECL([], [AR_FLAGS], [1])
1454 [_LT_PROG_AR
13641455
13651456 AC_CHECK_TOOL(STRIP, strip, :)
13661457 test -z "$STRIP" && STRIP=:
13791470 if test -n "$RANLIB"; then
13801471 case $host_os in
13811472 openbsd*)
1382 old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
1473 old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
13831474 ;;
13841475 *)
1385 old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
1476 old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
13861477 ;;
13871478 esac
1388 old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
1479 old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
13891480 fi
1481
1482 case $host_os in
1483 darwin*)
1484 lock_old_archive_extraction=yes ;;
1485 *)
1486 lock_old_archive_extraction=no ;;
1487 esac
13901488 _LT_DECL([], [old_postinstall_cmds], [2])
13911489 _LT_DECL([], [old_postuninstall_cmds], [2])
13921490 _LT_TAGDECL([], [old_archive_cmds], [2],
13931491 [Commands used to build an old-style archive])
1492 _LT_DECL([], [lock_old_archive_extraction], [0],
1493 [Whether to use a lock for old archive extraction])
13941494 ])# _LT_CMD_OLD_ARCHIVE
13951495
13961496
14151515 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
14161516 -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
14171517 -e 's:$: $lt_compiler_flag:'`
1418 (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
1518 (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
14191519 (eval "$lt_compile" 2>conftest.err)
14201520 ac_status=$?
14211521 cat conftest.err >&AS_MESSAGE_LOG_FD
1422 echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
1522 echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
14231523 if (exit $ac_status) && test -s "$ac_outfile"; then
14241524 # The compiler can only warn and ignore the option if not recognized
14251525 # So say no if there are warnings other than the usual output.
1426 $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
1526 $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
14271527 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
14281528 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
14291529 $2=yes
14631563 if test -s conftest.err; then
14641564 # Append any errors to the config.log.
14651565 cat conftest.err 1>&AS_MESSAGE_LOG_FD
1466 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
1566 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
14671567 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
14681568 if diff conftest.exp conftest.er2 >/dev/null; then
14691569 $2=yes
15231623 # the test eventually succeeds (with a max line length of 256k).
15241624 # Instead, let's just punt: use the minimum linelength reported by
15251625 # all of the supported platforms: 8192 (on NT/2K/XP).
1626 lt_cv_sys_max_cmd_len=8192;
1627 ;;
1628
1629 mint*)
1630 # On MiNT this can take a long time and run out of memory.
15261631 lt_cv_sys_max_cmd_len=8192;
15271632 ;;
15281633
15491654 interix*)
15501655 # We know the value 262144 and hardcode it with a safety zone (like BSD)
15511656 lt_cv_sys_max_cmd_len=196608
1657 ;;
1658
1659 os2*)
1660 # The test takes a long time on OS/2.
1661 lt_cv_sys_max_cmd_len=8192
15521662 ;;
15531663
15541664 osf*)
15901700 # If test is not a shell built-in, we'll probably end up computing a
15911701 # maximum length that is only half of the actual maximum length, but
15921702 # we can't tell.
1593 while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
1594 = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
1703 while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
1704 = "X$teststring$teststring"; } >/dev/null 2>&1 &&
15951705 test $i != 17 # 1/2 MB should be enough
15961706 do
15971707 i=`expr $i + 1`
16421752 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
16431753 lt_status=$lt_dlunknown
16441754 cat > conftest.$ac_ext <<_LT_EOF
1645 [#line __oline__ "configure"
1755 [#line $LINENO "configure"
16461756 #include "confdefs.h"
16471757
16481758 #if HAVE_DLFCN_H
16831793 # endif
16841794 #endif
16851795
1686 void fnord() { int i=42;}
1796 /* When -fvisbility=hidden is used, assume the code has been annotated
1797 correspondingly for the symbols needed. */
1798 #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
1799 int fnord () __attribute__((visibility("default")));
1800 #endif
1801
1802 int fnord () { return 42; }
16871803 int main ()
16881804 {
16891805 void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
16921808 if (self)
16931809 {
16941810 if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
1695 else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
1811 else
1812 {
1813 if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
1814 else puts (dlerror ());
1815 }
16961816 /* dlclose (self); */
16971817 }
16981818 else
18681988 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
18691989 -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
18701990 -e 's:$: $lt_compiler_flag:'`
1871 (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
1991 (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
18721992 (eval "$lt_compile" 2>out/conftest.err)
18731993 ac_status=$?
18741994 cat out/conftest.err >&AS_MESSAGE_LOG_FD
1875 echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
1995 echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
18761996 if (exit $ac_status) && test -s out/conftest2.$ac_objext
18771997 then
18781998 # The compiler can only warn and ignore the option if not recognized
18791999 # So say no if there are warnings
1880 $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
2000 $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
18812001 $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
18822002 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
18832003 _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
20362156 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
20372157 m4_require([_LT_DECL_OBJDUMP])dnl
20382158 m4_require([_LT_DECL_SED])dnl
2159 m4_require([_LT_CHECK_SHELL_FEATURES])dnl
20392160 AC_MSG_CHECKING([dynamic linker characteristics])
20402161 m4_if([$1],
20412162 [], [
20442165 darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
20452166 *) lt_awk_arg="/^libraries:/" ;;
20462167 esac
2047 lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
2048 if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
2168 case $host_os in
2169 mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
2170 *) lt_sed_strip_eq="s,=/,/,g" ;;
2171 esac
2172 lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
2173 case $lt_search_path_spec in
2174 *\;*)
20492175 # if the path contains ";" then we assume it to be the separator
20502176 # otherwise default to the standard path separator (i.e. ":") - it is
20512177 # assumed that no part of a normal pathname contains ";" but that should
20522178 # okay in the real world where ";" in dirpaths is itself problematic.
2053 lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
2054 else
2055 lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
2056 fi
2179 lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
2180 ;;
2181 *)
2182 lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
2183 ;;
2184 esac
20572185 # Ok, now we have the path, separated by spaces, we can step through it
20582186 # and add multilib dir if necessary.
20592187 lt_tmp_lt_search_path_spec=
20662194 lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
20672195 fi
20682196 done
2069 lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
2197 lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
20702198 BEGIN {RS=" "; FS="/|\n";} {
20712199 lt_foo="";
20722200 lt_count=0;
20862214 if (lt_foo != "") { lt_freq[[lt_foo]]++; }
20872215 if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
20882216 }'`
2089 sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
2217 # AWK program above erroneously prepends '/' to C:/dos/paths
2218 # for these hosts.
2219 case $host_os in
2220 mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
2221 $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
2222 esac
2223 sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
20902224 else
20912225 sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
20922226 fi])
21122246
21132247 case $host_os in
21142248 aix3*)
2115 version_type=linux
2249 version_type=linux # correct to gnu/linux during the next big refactor
21162250 library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
21172251 shlibpath_var=LIBPATH
21182252
21212255 ;;
21222256
21232257 aix[[4-9]]*)
2124 version_type=linux
2258 version_type=linux # correct to gnu/linux during the next big refactor
21252259 need_lib_prefix=no
21262260 need_version=no
21272261 hardcode_into_libs=yes
21742308 m68k)
21752309 library_names_spec='$libname.ixlibrary $libname.a'
21762310 # Create ${libname}_ixlibrary.a entries in /sys/libs.
2177 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'
2311 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'
21782312 ;;
21792313 esac
21802314 ;;
21862320 ;;
21872321
21882322 bsdi[[45]]*)
2189 version_type=linux
2323 version_type=linux # correct to gnu/linux during the next big refactor
21902324 need_version=no
21912325 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
21922326 soname_spec='${libname}${release}${shared_ext}$major'
22052339 need_version=no
22062340 need_lib_prefix=no
22072341
2208 case $GCC,$host_os in
2209 yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
2342 case $GCC,$cc_basename in
2343 yes,*)
2344 # gcc
22102345 library_names_spec='$libname.dll.a'
22112346 # DLL is installed to $(libdir)/../bin by postinstall_cmds
22122347 postinstall_cmds='base_file=`basename \${file}`~
22272362 cygwin*)
22282363 # Cygwin DLLs use 'cyg' prefix rather than 'lib'
22292364 soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
2230 sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
2365 m4_if([$1], [],[
2366 sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
22312367 ;;
22322368 mingw* | cegcc*)
22332369 # MinGW DLLs use traditional 'lib' prefix
22342370 soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
2235 sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
2236 if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
2237 # It is most probably a Windows format PATH printed by
2238 # mingw gcc, but we are running on Cygwin. Gcc prints its search
2239 # path with ; separators, and with drive letters. We can handle the
2240 # drive letters (cygwin fileutils understands them), so leave them,
2241 # especially as we might pass files found there to a mingw objdump,
2242 # which wouldn't understand a cygwinified path. Ahh.
2243 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
2244 else
2245 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
2246 fi
22472371 ;;
22482372 pw32*)
22492373 # pw32 DLLs use 'pw' prefix rather than 'lib'
22502374 library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
22512375 ;;
22522376 esac
2377 dynamic_linker='Win32 ld.exe'
22532378 ;;
22542379
2380 *,cl*)
2381 # Native MSVC
2382 libname_spec='$name'
2383 soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
2384 library_names_spec='${libname}.dll.lib'
2385
2386 case $build_os in
2387 mingw*)
2388 sys_lib_search_path_spec=
2389 lt_save_ifs=$IFS
2390 IFS=';'
2391 for lt_path in $LIB
2392 do
2393 IFS=$lt_save_ifs
2394 # Let DOS variable expansion print the short 8.3 style file name.
2395 lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
2396 sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
2397 done
2398 IFS=$lt_save_ifs
2399 # Convert to MSYS style.
2400 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
2401 ;;
2402 cygwin*)
2403 # Convert to unix form, then to dos form, then back to unix form
2404 # but this time dos style (no spaces!) so that the unix form looks
2405 # like /cygdrive/c/PROGRA~1:/cygdr...
2406 sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
2407 sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
2408 sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
2409 ;;
2410 *)
2411 sys_lib_search_path_spec="$LIB"
2412 if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
2413 # It is most probably a Windows format PATH.
2414 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
2415 else
2416 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
2417 fi
2418 # FIXME: find the short name or the path components, as spaces are
2419 # common. (e.g. "Program Files" -> "PROGRA~1")
2420 ;;
2421 esac
2422
2423 # DLL is installed to $(libdir)/../bin by postinstall_cmds
2424 postinstall_cmds='base_file=`basename \${file}`~
2425 dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
2426 dldir=$destdir/`dirname \$dlpath`~
2427 test -d \$dldir || mkdir -p \$dldir~
2428 $install_prog $dir/$dlname \$dldir/$dlname'
2429 postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
2430 dlpath=$dir/\$dldll~
2431 $RM \$dlpath'
2432 shlibpath_overrides_runpath=yes
2433 dynamic_linker='Win32 link.exe'
2434 ;;
2435
22552436 *)
2437 # Assume MSVC wrapper
22562438 library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
2439 dynamic_linker='Win32 ld.exe'
22572440 ;;
22582441 esac
2259 dynamic_linker='Win32 ld.exe'
22602442 # FIXME: first we should search . and the directory the executable is in
22612443 shlibpath_var=PATH
22622444 ;;
22772459 ;;
22782460
22792461 dgux*)
2280 version_type=linux
2462 version_type=linux # correct to gnu/linux during the next big refactor
22812463 need_lib_prefix=no
22822464 need_version=no
22832465 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
22842466 soname_spec='${libname}${release}${shared_ext}$major'
22852467 shlibpath_var=LD_LIBRARY_PATH
2286 ;;
2287
2288 freebsd1*)
2289 dynamic_linker=no
22902468 ;;
22912469
22922470 freebsd* | dragonfly*)
22962474 objformat=`/usr/bin/objformat`
22972475 else
22982476 case $host_os in
2299 freebsd[[123]]*) objformat=aout ;;
2477 freebsd[[23]].*) objformat=aout ;;
23002478 *) objformat=elf ;;
23012479 esac
23022480 fi
23142492 esac
23152493 shlibpath_var=LD_LIBRARY_PATH
23162494 case $host_os in
2317 freebsd2*)
2495 freebsd2.*)
23182496 shlibpath_overrides_runpath=yes
23192497 ;;
23202498 freebsd3.[[01]]* | freebsdelf3.[[01]]*)
23342512 ;;
23352513
23362514 gnu*)
2337 version_type=linux
2515 version_type=linux # correct to gnu/linux during the next big refactor
23382516 need_lib_prefix=no
23392517 need_version=no
23402518 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
23412519 soname_spec='${libname}${release}${shared_ext}$major'
23422520 shlibpath_var=LD_LIBRARY_PATH
2521 shlibpath_overrides_runpath=no
2522 hardcode_into_libs=yes
2523 ;;
2524
2525 haiku*)
2526 version_type=linux # correct to gnu/linux during the next big refactor
2527 need_lib_prefix=no
2528 need_version=no
2529 dynamic_linker="$host_os runtime_loader"
2530 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
2531 soname_spec='${libname}${release}${shared_ext}$major'
2532 shlibpath_var=LIBRARY_PATH
2533 shlibpath_overrides_runpath=yes
2534 sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
23432535 hardcode_into_libs=yes
23442536 ;;
23452537
23852577 soname_spec='${libname}${release}${shared_ext}$major'
23862578 ;;
23872579 esac
2388 # HP-UX runs *really* slowly unless shared libraries are mode 555.
2580 # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
23892581 postinstall_cmds='chmod 555 $lib'
2582 # or fails outright, so override atomically:
2583 install_override_mode=555
23902584 ;;
23912585
23922586 interix[[3-9]]*)
2393 version_type=linux
2587 version_type=linux # correct to gnu/linux during the next big refactor
23942588 need_lib_prefix=no
23952589 need_version=no
23962590 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
24062600 nonstopux*) version_type=nonstopux ;;
24072601 *)
24082602 if test "$lt_cv_prog_gnu_ld" = yes; then
2409 version_type=linux
2603 version_type=linux # correct to gnu/linux during the next big refactor
24102604 else
24112605 version_type=irix
24122606 fi ;;
24432637 dynamic_linker=no
24442638 ;;
24452639
2446 # This must be Linux ELF.
2640 # This must be glibc/ELF.
24472641 linux* | k*bsd*-gnu | kopensolaris*-gnu)
2448 version_type=linux
2642 version_type=linux # correct to gnu/linux during the next big refactor
24492643 need_lib_prefix=no
24502644 need_version=no
24512645 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
24532647 finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
24542648 shlibpath_var=LD_LIBRARY_PATH
24552649 shlibpath_overrides_runpath=no
2650
24562651 # Some binutils ld are patched to set DT_RUNPATH
2457 save_LDFLAGS=$LDFLAGS
2458 save_libdir=$libdir
2459 eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
2460 LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
2461 AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
2462 [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
2463 [shlibpath_overrides_runpath=yes])])
2464 LDFLAGS=$save_LDFLAGS
2465 libdir=$save_libdir
2652 AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
2653 [lt_cv_shlibpath_overrides_runpath=no
2654 save_LDFLAGS=$LDFLAGS
2655 save_libdir=$libdir
2656 eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
2657 LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
2658 AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
2659 [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
2660 [lt_cv_shlibpath_overrides_runpath=yes])])
2661 LDFLAGS=$save_LDFLAGS
2662 libdir=$save_libdir
2663 ])
2664 shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
24662665
24672666 # This implies no fast_install, which is unacceptable.
24682667 # Some rework will be needed to allow for fast_install
24712670
24722671 # Append ld.so.conf contents to the search path
24732672 if test -f /etc/ld.so.conf; then
2474 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' ' '`
2673 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' ' '`
24752674 sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
24762675 fi
24772676
25152714 ;;
25162715
25172716 newsos6)
2518 version_type=linux
2717 version_type=linux # correct to gnu/linux during the next big refactor
25192718 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
25202719 shlibpath_var=LD_LIBRARY_PATH
25212720 shlibpath_overrides_runpath=yes
25842783 ;;
25852784
25862785 solaris*)
2587 version_type=linux
2786 version_type=linux # correct to gnu/linux during the next big refactor
25882787 need_lib_prefix=no
25892788 need_version=no
25902789 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
26092808 ;;
26102809
26112810 sysv4 | sysv4.3*)
2612 version_type=linux
2811 version_type=linux # correct to gnu/linux during the next big refactor
26132812 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
26142813 soname_spec='${libname}${release}${shared_ext}$major'
26152814 shlibpath_var=LD_LIBRARY_PATH
26332832
26342833 sysv4*MP*)
26352834 if test -d /usr/nec ;then
2636 version_type=linux
2835 version_type=linux # correct to gnu/linux during the next big refactor
26372836 library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
26382837 soname_spec='$libname${shared_ext}.$major'
26392838 shlibpath_var=LD_LIBRARY_PATH
26642863
26652864 tpf*)
26662865 # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
2667 version_type=linux
2866 version_type=linux # correct to gnu/linux during the next big refactor
26682867 need_lib_prefix=no
26692868 need_version=no
26702869 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
26742873 ;;
26752874
26762875 uts4*)
2677 version_type=linux
2876 version_type=linux # correct to gnu/linux during the next big refactor
26782877 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
26792878 soname_spec='${libname}${release}${shared_ext}$major'
26802879 shlibpath_var=LD_LIBRARY_PATH
27162915 The last name is the one that the linker finds with -lNAME]])
27172916 _LT_DECL([], [soname_spec], [1],
27182917 [[The coded name of the library, if different from the real name]])
2918 _LT_DECL([], [install_override_mode], [1],
2919 [Permission mode override for installation of shared libraries])
27192920 _LT_DECL([], [postinstall_cmds], [2],
27202921 [Command to use after installation of a shared archive])
27212922 _LT_DECL([], [postuninstall_cmds], [2],
28283029 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
28293030 m4_require([_LT_DECL_SED])dnl
28303031 m4_require([_LT_DECL_EGREP])dnl
3032 m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
28313033
28323034 AC_ARG_WITH([gnu-ld],
28333035 [AS_HELP_STRING([--with-gnu-ld],
29493151 esac
29503152 reload_cmds='$LD$reload_flag -o $output$reload_objs'
29513153 case $host_os in
3154 cygwin* | mingw* | pw32* | cegcc*)
3155 if test "$GCC" != yes; then
3156 reload_cmds=false
3157 fi
3158 ;;
29523159 darwin*)
29533160 if test "$GCC" = yes; then
29543161 reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
29573164 fi
29583165 ;;
29593166 esac
2960 _LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl
2961 _LT_DECL([], [reload_cmds], [2])dnl
3167 _LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
3168 _LT_TAGDECL([], [reload_cmds], [2])dnl
29623169 ])# _LT_CMD_RELOAD
29633170
29643171
30103217 # Base MSYS/MinGW do not provide the 'file' command needed by
30113218 # func_win32_libid shell function, so use a weaker test based on 'objdump',
30123219 # unless we find 'file', for example because we are cross-compiling.
3013 if ( file / ) >/dev/null 2>&1; then
3220 # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
3221 if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
30143222 lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
30153223 lt_cv_file_magic_cmd='func_win32_libid'
30163224 else
3017 lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
3225 # Keep this pattern in sync with the one in func_win32_libid.
3226 lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
30183227 lt_cv_file_magic_cmd='$OBJDUMP -f'
30193228 fi
30203229 ;;
30213230
3022 cegcc)
3231 cegcc*)
30233232 # use the weaker test based on 'objdump'. See mingw*.
30243233 lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
30253234 lt_cv_file_magic_cmd='$OBJDUMP -f'
30493258 lt_cv_deplibs_check_method=pass_all
30503259 ;;
30513260
3261 haiku*)
3262 lt_cv_deplibs_check_method=pass_all
3263 ;;
3264
30523265 hpux10.20* | hpux11*)
30533266 lt_cv_file_magic_cmd=/usr/bin/file
30543267 case $host_cpu in
30573270 lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
30583271 ;;
30593272 hppa*64*)
3060 [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]']
3273 [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]']
30613274 lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
30623275 ;;
30633276 *)
3064 lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
3277 lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
30653278 lt_cv_file_magic_test_file=/usr/lib/libc.sl
30663279 ;;
30673280 esac
30823295 lt_cv_deplibs_check_method=pass_all
30833296 ;;
30843297
3085 # This must be Linux ELF.
3298 # This must be glibc/ELF.
30863299 linux* | k*bsd*-gnu | kopensolaris*-gnu)
30873300 lt_cv_deplibs_check_method=pass_all
30883301 ;;
31613374 ;;
31623375 esac
31633376 ])
3377
3378 file_magic_glob=
3379 want_nocaseglob=no
3380 if test "$build" = "$host"; then
3381 case $host_os in
3382 mingw* | pw32*)
3383 if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
3384 want_nocaseglob=yes
3385 else
3386 file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
3387 fi
3388 ;;
3389 esac
3390 fi
3391
31643392 file_magic_cmd=$lt_cv_file_magic_cmd
31653393 deplibs_check_method=$lt_cv_deplibs_check_method
31663394 test -z "$deplibs_check_method" && deplibs_check_method=unknown
31683396 _LT_DECL([], [deplibs_check_method], [1],
31693397 [Method to check whether dependent libraries are shared objects])
31703398 _LT_DECL([], [file_magic_cmd], [1],
3171 [Command to use when deplibs_check_method == "file_magic"])
3399 [Command to use when deplibs_check_method = "file_magic"])
3400 _LT_DECL([], [file_magic_glob], [1],
3401 [How to find potential files when deplibs_check_method = "file_magic"])
3402 _LT_DECL([], [want_nocaseglob], [1],
3403 [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
31723404 ])# _LT_CHECK_MAGIC_METHOD
31733405
31743406
32253457 NM="$lt_cv_path_NM"
32263458 else
32273459 # Didn't find any BSD compatible name lister, look for dumpbin.
3228 AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :)
3460 if test -n "$DUMPBIN"; then :
3461 # Let the user override the test.
3462 else
3463 AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
3464 case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
3465 *COFF*)
3466 DUMPBIN="$DUMPBIN -symbols"
3467 ;;
3468 *)
3469 DUMPBIN=:
3470 ;;
3471 esac
3472 fi
32293473 AC_SUBST([DUMPBIN])
32303474 if test "$DUMPBIN" != ":"; then
32313475 NM="$DUMPBIN"
32383482 AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
32393483 [lt_cv_nm_interface="BSD nm"
32403484 echo "int some_variable = 0;" > conftest.$ac_ext
3241 (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
3485 (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
32423486 (eval "$ac_compile" 2>conftest.err)
32433487 cat conftest.err >&AS_MESSAGE_LOG_FD
3244 (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
3488 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
32453489 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
32463490 cat conftest.err >&AS_MESSAGE_LOG_FD
3247 (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD)
3491 (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
32483492 cat conftest.out >&AS_MESSAGE_LOG_FD
32493493 if $GREP 'External.*some_variable' conftest.out > /dev/null; then
32503494 lt_cv_nm_interface="MS dumpbin"
32583502 dnl aclocal-1.4 backwards compatibility:
32593503 dnl AC_DEFUN([AM_PROG_NM], [])
32603504 dnl AC_DEFUN([AC_PROG_NM], [])
3505
3506 # _LT_CHECK_SHAREDLIB_FROM_LINKLIB
3507 # --------------------------------
3508 # how to determine the name of the shared library
3509 # associated with a specific link library.
3510 # -- PORTME fill in with the dynamic library characteristics
3511 m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
3512 [m4_require([_LT_DECL_EGREP])
3513 m4_require([_LT_DECL_OBJDUMP])
3514 m4_require([_LT_DECL_DLLTOOL])
3515 AC_CACHE_CHECK([how to associate runtime and link libraries],
3516 lt_cv_sharedlib_from_linklib_cmd,
3517 [lt_cv_sharedlib_from_linklib_cmd='unknown'
3518
3519 case $host_os in
3520 cygwin* | mingw* | pw32* | cegcc*)
3521 # two different shell functions defined in ltmain.sh
3522 # decide which to use based on capabilities of $DLLTOOL
3523 case `$DLLTOOL --help 2>&1` in
3524 *--identify-strict*)
3525 lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
3526 ;;
3527 *)
3528 lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
3529 ;;
3530 esac
3531 ;;
3532 *)
3533 # fallback: assume linklib IS sharedlib
3534 lt_cv_sharedlib_from_linklib_cmd="$ECHO"
3535 ;;
3536 esac
3537 ])
3538 sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
3539 test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
3540
3541 _LT_DECL([], [sharedlib_from_linklib_cmd], [1],
3542 [Command to associate shared and link libraries])
3543 ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
3544
3545
3546 # _LT_PATH_MANIFEST_TOOL
3547 # ----------------------
3548 # locate the manifest tool
3549 m4_defun([_LT_PATH_MANIFEST_TOOL],
3550 [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
3551 test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
3552 AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
3553 [lt_cv_path_mainfest_tool=no
3554 echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
3555 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
3556 cat conftest.err >&AS_MESSAGE_LOG_FD
3557 if $GREP 'Manifest Tool' conftest.out > /dev/null; then
3558 lt_cv_path_mainfest_tool=yes
3559 fi
3560 rm -f conftest*])
3561 if test "x$lt_cv_path_mainfest_tool" != xyes; then
3562 MANIFEST_TOOL=:
3563 fi
3564 _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
3565 ])# _LT_PATH_MANIFEST_TOOL
32613566
32623567
32633568 # LT_LIB_M
32673572 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
32683573 LIBM=
32693574 case $host in
3270 *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
3575 *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
32713576 # These system don't have libm, or don't need it
32723577 ;;
32733578 *-ncr-sysv4.3*)
32953600 _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
32963601
32973602 if test "$GCC" = yes; then
3298 _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
3603 case $cc_basename in
3604 nvcc*)
3605 _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
3606 *)
3607 _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
3608 esac
32993609
33003610 _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
33013611 lt_cv_prog_compiler_rtti_exceptions,
33123622 m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
33133623 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
33143624 AC_REQUIRE([AC_PROG_CC])dnl
3625 AC_REQUIRE([AC_PROG_AWK])dnl
33153626 AC_REQUIRE([LT_PATH_NM])dnl
33163627 AC_REQUIRE([LT_PATH_LD])dnl
33173628 m4_require([_LT_DECL_SED])dnl
33793690 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
33803691
33813692 # Transform an extracted symbol line into symbol name and symbol address
3382 lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'"
3383 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
3693 lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'"
3694 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
33843695
33853696 # Handle CRLF in mingw tool chain
33863697 opt_cr=
34043715 # which start with @ or ?.
34053716 lt_cv_sys_global_symbol_pipe="$AWK ['"\
34063717 " {last_section=section; section=\$ 3};"\
3718 " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
34073719 " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
34083720 " \$ 0!~/External *\|/{next};"\
34093721 " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
34163728 else
34173729 lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
34183730 fi
3731 lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
34193732
34203733 # Check to see that the pipe works correctly.
34213734 pipe_works=no
34373750 if AC_TRY_EVAL(ac_compile); then
34383751 # Now try to grab the symbols.
34393752 nlist=conftest.nm
3440 if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
3753 if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
34413754 # Try sorting and uniquifying the output.
34423755 if sort "$nlist" | uniq > "$nlist"T; then
34433756 mv -f "$nlist"T "$nlist"
34493762 if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
34503763 if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
34513764 cat <<_LT_EOF > conftest.$ac_ext
3765 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
3766 #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
3767 /* DATA imports from DLLs on WIN32 con't be const, because runtime
3768 relocations are performed -- see ld's documentation on pseudo-relocs. */
3769 # define LT@&t@_DLSYM_CONST
3770 #elif defined(__osf__)
3771 /* This system does not cope well with relocations in const data. */
3772 # define LT@&t@_DLSYM_CONST
3773 #else
3774 # define LT@&t@_DLSYM_CONST const
3775 #endif
3776
34523777 #ifdef __cplusplus
34533778 extern "C" {
34543779 #endif
34603785 cat <<_LT_EOF >> conftest.$ac_ext
34613786
34623787 /* The mapping between symbol names and symbols. */
3463 const struct {
3788 LT@&t@_DLSYM_CONST struct {
34643789 const char *name;
34653790 void *address;
34663791 }
34863811 _LT_EOF
34873812 # Now try linking the two files.
34883813 mv conftest.$ac_objext conftstm.$ac_objext
3489 lt_save_LIBS="$LIBS"
3490 lt_save_CFLAGS="$CFLAGS"
3814 lt_globsym_save_LIBS=$LIBS
3815 lt_globsym_save_CFLAGS=$CFLAGS
34913816 LIBS="conftstm.$ac_objext"
34923817 CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
34933818 if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
34943819 pipe_works=yes
34953820 fi
3496 LIBS="$lt_save_LIBS"
3497 CFLAGS="$lt_save_CFLAGS"
3821 LIBS=$lt_globsym_save_LIBS
3822 CFLAGS=$lt_globsym_save_CFLAGS
34983823 else
34993824 echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
35003825 fi
35273852 AC_MSG_RESULT(ok)
35283853 fi
35293854
3855 # Response file support.
3856 if test "$lt_cv_nm_interface" = "MS dumpbin"; then
3857 nm_file_list_spec='@'
3858 elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
3859 nm_file_list_spec='@'
3860 fi
3861
35303862 _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
35313863 [Take the output of nm and produce a listing of raw symbols and C names])
35323864 _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
35373869 _LT_DECL([global_symbol_to_c_name_address_lib_prefix],
35383870 [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
35393871 [Transform the output of nm in a C name address pair when lib prefix is needed])
3872 _LT_DECL([], [nm_file_list_spec], [1],
3873 [Specify filename containing input files for $NM])
35403874 ]) # _LT_CMD_GLOBAL_SYMBOLS
35413875
35423876
35483882 _LT_TAGVAR(lt_prog_compiler_pic, $1)=
35493883 _LT_TAGVAR(lt_prog_compiler_static, $1)=
35503884
3551 AC_MSG_CHECKING([for $compiler option to produce PIC])
35523885 m4_if([$1], [CXX], [
35533886 # C++ specific cases for pic, static, wl, etc.
35543887 if test "$GXX" = yes; then
35983931 *djgpp*)
35993932 # DJGPP does not support shared libraries at all
36003933 _LT_TAGVAR(lt_prog_compiler_pic, $1)=
3934 ;;
3935 haiku*)
3936 # PIC is the default for Haiku.
3937 # The "-static" flag exists, but is broken.
3938 _LT_TAGVAR(lt_prog_compiler_static, $1)=
36013939 ;;
36023940 interix[[3-9]]*)
36033941 # Interix 3.x gcc -fpic/-fPIC options generate broken code.
36473985 # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
36483986 ;;
36493987 esac
3988 ;;
3989 mingw* | cygwin* | os2* | pw32* | cegcc*)
3990 # This hack is so that the source file can tell whether it is being
3991 # built for inclusion in a dll (and should export symbols for example).
3992 m4_if([$1], [GCJ], [],
3993 [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
36503994 ;;
36513995 dgux*)
36523996 case $cc_basename in
37374081 _LT_TAGVAR(lt_prog_compiler_pic, $1)=
37384082 _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
37394083 ;;
3740 xlc* | xlC*)
3741 # IBM XL 8.0 on PPC
4084 xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
4085 # IBM XL 8.0, 9.0 on PPC and BlueGene
37424086 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
37434087 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
37444088 _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
38004144 ;;
38014145 solaris*)
38024146 case $cc_basename in
3803 CC*)
4147 CC* | sunCC*)
38044148 # Sun C++ 4.2, 5.x and Centerline C++
38054149 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
38064150 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
39044248 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
39054249 ;;
39064250
4251 haiku*)
4252 # PIC is the default for Haiku.
4253 # The "-static" flag exists, but is broken.
4254 _LT_TAGVAR(lt_prog_compiler_static, $1)=
4255 ;;
4256
39074257 hpux*)
39084258 # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
39094259 # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
39444294
39454295 *)
39464296 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4297 ;;
4298 esac
4299
4300 case $cc_basename in
4301 nvcc*) # Cuda Compiler Driver 2.2
4302 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
4303 if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
4304 _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
4305 fi
39474306 ;;
39484307 esac
39494308 else
40094368 _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
40104369 _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
40114370 ;;
4012 pgcc* | pgf77* | pgf90* | pgf95*)
4371 nagfor*)
4372 # NAG Fortran compiler
4373 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
4374 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
4375 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4376 ;;
4377 pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
40134378 # Portland Group compilers (*not* the Pentium gcc compiler,
40144379 # which looks to be a dead project)
40154380 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
40214386 # All Alpha code is PIC.
40224387 _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
40234388 ;;
4024 xl*)
4025 # IBM XL C 8.0/Fortran 10.1 on PPC
4389 xl* | bgxl* | bgf* | mpixl*)
4390 # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
40264391 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
40274392 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
40284393 _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
40294394 ;;
40304395 *)
40314396 case `$CC -V 2>&1 | sed 5q` in
4397 *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
4398 # Sun Fortran 8.3 passes all unrecognized flags to the linker
4399 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4400 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4401 _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
4402 ;;
4403 *Sun\ F* | *Sun*Fortran*)
4404 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4405 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4406 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
4407 ;;
40324408 *Sun\ C*)
40334409 # Sun C 5.9
40344410 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
40354411 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
40364412 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
40374413 ;;
4038 *Sun\ F*)
4039 # Sun Fortran 8.3 passes all unrecognized flags to the linker
4040 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
4414 *Intel*\ [[CF]]*Compiler*)
4415 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4416 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
4417 _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
4418 ;;
4419 *Portland\ Group*)
4420 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
4421 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
40414422 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4042 _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
40434423 ;;
40444424 esac
40454425 ;;
40714451 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
40724452 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
40734453 case $cc_basename in
4074 f77* | f90* | f95*)
4454 f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
40754455 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
40764456 *)
40774457 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
41284508 _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
41294509 ;;
41304510 esac
4131 AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
4132 _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
4133 [How to pass a linker flag through the compiler])
4511
4512 AC_CACHE_CHECK([for $compiler option to produce PIC],
4513 [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
4514 [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
4515 _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
41344516
41354517 #
41364518 # Check to make sure the PIC flag actually works.
41494531 _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
41504532 [Additional compiler flags for building library objects])
41514533
4534 _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
4535 [How to pass a linker flag through the compiler])
41524536 #
41534537 # Check to make sure the static flag actually works.
41544538 #
41694553 m4_defun([_LT_LINKER_SHLIBS],
41704554 [AC_REQUIRE([LT_PATH_LD])dnl
41714555 AC_REQUIRE([LT_PATH_NM])dnl
4556 m4_require([_LT_PATH_MANIFEST_TOOL])dnl
41724557 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
41734558 m4_require([_LT_DECL_EGREP])dnl
41744559 m4_require([_LT_DECL_SED])dnl
41774562 AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
41784563 m4_if([$1], [CXX], [
41794564 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
4565 _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
41804566 case $host_os in
41814567 aix[[4-9]]*)
41824568 # If we're using GNU nm, then we don't want the "-C" option.
41834569 # -C means demangle to AIX nm, but means don't demangle with GNU nm
4570 # Also, AIX nm treats weak defined symbols like other global defined
4571 # symbols, whereas GNU nm marks them as "W".
41844572 if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
4185 _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'
4573 _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'
41864574 else
41874575 _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'
41884576 fi
41894577 ;;
41904578 pw32*)
41914579 _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
4192 ;;
4580 ;;
41934581 cygwin* | mingw* | cegcc*)
4194 _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'
4195 ;;
4196 linux* | k*bsd*-gnu)
4582 case $cc_basename in
4583 cl*)
4584 _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
4585 ;;
4586 *)
4587 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
4588 _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
4589 ;;
4590 esac
4591 ;;
4592 linux* | k*bsd*-gnu | gnu*)
41974593 _LT_TAGVAR(link_all_deplibs, $1)=no
4198 ;;
4594 ;;
41994595 *)
42004596 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
4201 ;;
4597 ;;
42024598 esac
4203 _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
42044599 ], [
42054600 runpath_var=
42064601 _LT_TAGVAR(allow_undefined_flag, $1)=
42154610 _LT_TAGVAR(hardcode_direct, $1)=no
42164611 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
42174612 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
4218 _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
42194613 _LT_TAGVAR(hardcode_libdir_separator, $1)=
42204614 _LT_TAGVAR(hardcode_minus_L, $1)=no
42214615 _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
42604654 openbsd*)
42614655 with_gnu_ld=no
42624656 ;;
4263 linux* | k*bsd*-gnu)
4657 linux* | k*bsd*-gnu | gnu*)
42644658 _LT_TAGVAR(link_all_deplibs, $1)=no
42654659 ;;
42664660 esac
42674661
42684662 _LT_TAGVAR(ld_shlibs, $1)=yes
4663
4664 # On some targets, GNU ld is compatible enough with the native linker
4665 # that we're better off using the native interface for both.
4666 lt_use_gnu_ld_interface=no
42694667 if test "$with_gnu_ld" = yes; then
4668 case $host_os in
4669 aix*)
4670 # The AIX port of GNU ld has always aspired to compatibility
4671 # with the native linker. However, as the warning in the GNU ld
4672 # block says, versions before 2.19.5* couldn't really create working
4673 # shared libraries, regardless of the interface used.
4674 case `$LD -v 2>&1` in
4675 *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
4676 *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
4677 *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
4678 *)
4679 lt_use_gnu_ld_interface=yes
4680 ;;
4681 esac
4682 ;;
4683 *)
4684 lt_use_gnu_ld_interface=yes
4685 ;;
4686 esac
4687 fi
4688
4689 if test "$lt_use_gnu_ld_interface" = yes; then
42704690 # If archive_cmds runs LD, not CC, wlarc should be empty
42714691 wlarc='${wl}'
42724692
43004720 _LT_TAGVAR(ld_shlibs, $1)=no
43014721 cat <<_LT_EOF 1>&2
43024722
4303 *** Warning: the GNU linker, at least up to release 2.9.1, is reported
4723 *** Warning: the GNU linker, at least up to release 2.19, is reported
43044724 *** to be unable to reliably create shared libraries on AIX.
43054725 *** Therefore, libtool is disabling shared libraries support. If you
4306 *** really care for shared libraries, you may want to modify your PATH
4307 *** so that a non-GNU linker is found, and then restart.
4726 *** really care for shared libraries, you may want to install binutils
4727 *** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
4728 *** You will then need to restart the configuration process.
43084729
43094730 _LT_EOF
43104731 fi
43404761 # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
43414762 # as there is no search path for DLLs.
43424763 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
4764 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
43434765 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
43444766 _LT_TAGVAR(always_export_symbols, $1)=no
43454767 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
4346 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
4768 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
4769 _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
43474770
43484771 if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
43494772 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
43614784 fi
43624785 ;;
43634786
4787 haiku*)
4788 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4789 _LT_TAGVAR(link_all_deplibs, $1)=yes
4790 ;;
4791
43644792 interix[[3-9]]*)
43654793 _LT_TAGVAR(hardcode_direct, $1)=no
43664794 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
43864814 if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
43874815 && test "$tmp_diet" = no
43884816 then
4389 tmp_addflag=
4817 tmp_addflag=' $pic_flag'
43904818 tmp_sharedflag='-shared'
43914819 case $cc_basename,$host_cpu in
43924820 pgcc*) # Portland Group C compiler
4393 _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'
4821 _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'
43944822 tmp_addflag=' $pic_flag'
43954823 ;;
4396 pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers
4397 _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'
4824 pgf77* | pgf90* | pgf95* | pgfortran*)
4825 # Portland Group f77 and f90 compilers
4826 _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'
43984827 tmp_addflag=' $pic_flag -Mnomain' ;;
43994828 ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
44004829 tmp_addflag=' -i_dynamic' ;;
44054834 lf95*) # Lahey Fortran 8.1
44064835 _LT_TAGVAR(whole_archive_flag_spec, $1)=
44074836 tmp_sharedflag='--shared' ;;
4408 xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
4837 xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
44094838 tmp_sharedflag='-qmkshrobj'
44104839 tmp_addflag= ;;
4840 nvcc*) # Cuda Compiler Driver 2.2
4841 _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'
4842 _LT_TAGVAR(compiler_needs_object, $1)=yes
4843 ;;
44114844 esac
44124845 case `$CC -V 2>&1 | sed 5q` in
44134846 *Sun\ C*) # Sun C 5.9
4414 _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'
4847 _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'
44154848 _LT_TAGVAR(compiler_needs_object, $1)=yes
44164849 tmp_sharedflag='-G' ;;
44174850 *Sun\ F*) # Sun Fortran 8.3
44274860 fi
44284861
44294862 case $cc_basename in
4430 xlf*)
4863 xlf* | bgf* | bgxlf* | mpixlf*)
44314864 # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
44324865 _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
4433 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
4434 _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
4435 _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
4866 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
4867 _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
44364868 if test "x$supports_anon_versioning" = xyes; then
44374869 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
44384870 cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
44394871 echo "local: *; };" >> $output_objdir/$libname.ver~
4440 $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
4872 $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
44414873 fi
44424874 ;;
44434875 esac
44514883 _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
44524884 wlarc=
44534885 else
4454 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4455 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
4886 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4887 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
44564888 fi
44574889 ;;
44584890
44704902
44714903 _LT_EOF
44724904 elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
4473 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4474 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
4905 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4906 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
44754907 else
44764908 _LT_TAGVAR(ld_shlibs, $1)=no
44774909 fi
45174949
45184950 *)
45194951 if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
4520 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4521 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
4952 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4953 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
45224954 else
45234955 _LT_TAGVAR(ld_shlibs, $1)=no
45244956 fi
45584990 else
45594991 # If we're using GNU nm, then we don't want the "-C" option.
45604992 # -C means demangle to AIX nm, but means don't demangle with GNU nm
4993 # Also, AIX nm treats weak defined symbols like other global
4994 # defined symbols, whereas GNU nm marks them as "W".
45614995 if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
4562 _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'
4996 _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'
45634997 else
45644998 _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'
45654999 fi
46475081 _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
46485082 # Determine the default libpath from the value encoded in an
46495083 # empty executable.
4650 _LT_SYS_MODULE_PATH_AIX
5084 _LT_SYS_MODULE_PATH_AIX([$1])
46515085 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
4652 _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"
5086 _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"
46535087 else
46545088 if test "$host_cpu" = ia64; then
46555089 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
46585092 else
46595093 # Determine the default libpath from the value encoded in an
46605094 # empty executable.
4661 _LT_SYS_MODULE_PATH_AIX
5095 _LT_SYS_MODULE_PATH_AIX([$1])
46625096 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
46635097 # Warning - without using the other run time loading flags,
46645098 # -berok will link without error, but may produce a broken library.
46655099 _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
46665100 _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
4667 # Exported symbols can be pulled into shared objects from archives
4668 _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
5101 if test "$with_gnu_ld" = yes; then
5102 # We only use this code for GNU lds that support --whole-archive.
5103 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
5104 else
5105 # Exported symbols can be pulled into shared objects from archives
5106 _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
5107 fi
46695108 _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
46705109 # This is similar to how AIX traditionally builds its shared libraries.
46715110 _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'
46975136 # Microsoft Visual C++.
46985137 # hardcode_libdir_flag_spec is actually meaningless, as there is
46995138 # no search path for DLLs.
4700 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
4701 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
4702 # Tell ltmain to make .lib files, not .a files.
4703 libext=lib
4704 # Tell ltmain to make .dll files, not .so files.
4705 shrext_cmds=".dll"
4706 # FIXME: Setting linknames here is a bad hack.
4707 _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
4708 # The linker will automatically build a .lib file if we build a DLL.
4709 _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
4710 # FIXME: Should let the user specify the lib program.
4711 _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
4712 _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
4713 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
5139 case $cc_basename in
5140 cl*)
5141 # Native MSVC
5142 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
5143 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
5144 _LT_TAGVAR(always_export_symbols, $1)=yes
5145 _LT_TAGVAR(file_list_spec, $1)='@'
5146 # Tell ltmain to make .lib files, not .a files.
5147 libext=lib
5148 # Tell ltmain to make .dll files, not .so files.
5149 shrext_cmds=".dll"
5150 # FIXME: Setting linknames here is a bad hack.
5151 _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
5152 _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
5153 sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
5154 else
5155 sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
5156 fi~
5157 $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
5158 linknames='
5159 # The linker will not automatically build a static lib if we build a DLL.
5160 # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
5161 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
5162 _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
5163 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
5164 # Don't use ranlib
5165 _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
5166 _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
5167 lt_tool_outputfile="@TOOL_OUTPUT@"~
5168 case $lt_outputfile in
5169 *.exe|*.EXE) ;;
5170 *)
5171 lt_outputfile="$lt_outputfile.exe"
5172 lt_tool_outputfile="$lt_tool_outputfile.exe"
5173 ;;
5174 esac~
5175 if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
5176 $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
5177 $RM "$lt_outputfile.manifest";
5178 fi'
5179 ;;
5180 *)
5181 # Assume MSVC wrapper
5182 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
5183 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
5184 # Tell ltmain to make .lib files, not .a files.
5185 libext=lib
5186 # Tell ltmain to make .dll files, not .so files.
5187 shrext_cmds=".dll"
5188 # FIXME: Setting linknames here is a bad hack.
5189 _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
5190 # The linker will automatically build a .lib file if we build a DLL.
5191 _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
5192 # FIXME: Should let the user specify the lib program.
5193 _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
5194 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
5195 ;;
5196 esac
47145197 ;;
47155198
47165199 darwin* | rhapsody*)
47215204 _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
47225205 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
47235206 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
4724 ;;
4725
4726 freebsd1*)
4727 _LT_TAGVAR(ld_shlibs, $1)=no
47285207 ;;
47295208
47305209 # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
47395218 ;;
47405219
47415220 # Unfortunately, older versions of FreeBSD 2 do not have this feature.
4742 freebsd2*)
5221 freebsd2.*)
47435222 _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
47445223 _LT_TAGVAR(hardcode_direct, $1)=yes
47455224 _LT_TAGVAR(hardcode_minus_L, $1)=yes
47485227
47495228 # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
47505229 freebsd* | dragonfly*)
4751 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
5230 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
47525231 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
47535232 _LT_TAGVAR(hardcode_direct, $1)=yes
47545233 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
47565235
47575236 hpux9*)
47585237 if test "$GCC" = yes; then
4759 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
5238 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
47605239 else
47615240 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
47625241 fi
47715250 ;;
47725251
47735252 hpux10*)
4774 if test "$GCC" = yes -a "$with_gnu_ld" = no; then
4775 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
5253 if test "$GCC" = yes && test "$with_gnu_ld" = no; then
5254 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
47765255 else
47775256 _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
47785257 fi
47795258 if test "$with_gnu_ld" = no; then
47805259 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
4781 _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
47825260 _LT_TAGVAR(hardcode_libdir_separator, $1)=:
47835261 _LT_TAGVAR(hardcode_direct, $1)=yes
47845262 _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
47905268 ;;
47915269
47925270 hpux11*)
4793 if test "$GCC" = yes -a "$with_gnu_ld" = no; then
5271 if test "$GCC" = yes && test "$with_gnu_ld" = no; then
47945272 case $host_cpu in
47955273 hppa*64*)
47965274 _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
47975275 ;;
47985276 ia64*)
4799 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
5277 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
48005278 ;;
48015279 *)
4802 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
5280 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
48035281 ;;
48045282 esac
48055283 else
48115289 _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
48125290 ;;
48135291 *)
4814 _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
5292 m4_if($1, [], [
5293 # Older versions of the 11.00 compiler do not understand -b yet
5294 # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
5295 _LT_LINKER_OPTION([if $CC understands -b],
5296 _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
5297 [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
5298 [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
5299 [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
48155300 ;;
48165301 esac
48175302 fi
48395324
48405325 irix5* | irix6* | nonstopux*)
48415326 if test "$GCC" = yes; then
4842 _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'
5327 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_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'
48435328 # Try to use the -exported_symbol ld option, if it does not
48445329 # work, assume that -exports_file does not work either and
48455330 # implicitly export all symbols.
4846 save_LDFLAGS="$LDFLAGS"
4847 LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
4848 AC_LINK_IFELSE(int foo(void) {},
4849 _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'
4850 )
4851 LDFLAGS="$save_LDFLAGS"
5331 # This should be the same for all languages, so no per-tag cache variable.
5332 AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
5333 [lt_cv_irix_exported_symbol],
5334 [save_LDFLAGS="$LDFLAGS"
5335 LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
5336 AC_LINK_IFELSE(
5337 [AC_LANG_SOURCE(
5338 [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
5339 [C++], [[int foo (void) { return 0; }]],
5340 [Fortran 77], [[
5341 subroutine foo
5342 end]],
5343 [Fortran], [[
5344 subroutine foo
5345 end]])])],
5346 [lt_cv_irix_exported_symbol=yes],
5347 [lt_cv_irix_exported_symbol=no])
5348 LDFLAGS="$save_LDFLAGS"])
5349 if test "$lt_cv_irix_exported_symbol" = yes; then
5350 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_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 ${wl}-exports_file ${wl}$export_symbols -o $lib'
5351 fi
48525352 else
4853 _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'
4854 _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'
5353 _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'
5354 _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'
48555355 fi
48565356 _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
48575357 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
49135413 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
49145414 _LT_TAGVAR(hardcode_minus_L, $1)=yes
49155415 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
4916 _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'
5416 _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'
49175417 _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
49185418 ;;
49195419
49205420 osf3*)
49215421 if test "$GCC" = yes; then
49225422 _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
4923 _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'
5423 _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'
49245424 else
49255425 _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
4926 _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'
5426 _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'
49275427 fi
49285428 _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
49295429 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
49335433 osf4* | osf5*) # as osf3* with the addition of -msym flag
49345434 if test "$GCC" = yes; then
49355435 _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
4936 _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'
5436 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_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'
49375437 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
49385438 else
49395439 _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
4940 _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'
5440 _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'
49415441 _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~
4942 $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'
5442 $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'
49435443
49445444 # Both c and cxx compiler support -rpath directly
49455445 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
49525452 _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
49535453 if test "$GCC" = yes; then
49545454 wlarc='${wl}'
4955 _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
5455 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
49565456 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
4957 $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
5457 $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
49585458 else
49595459 case `$CC -V 2>&1` in
49605460 *"Compilers 5.0"*)
51305630 # Test whether the compiler implicitly links with -lc since on some
51315631 # systems, -lgcc has to come before -lc. If gcc already passes -lc
51325632 # to ld, don't add -lc before -lgcc.
5133 AC_MSG_CHECKING([whether -lc should be explicitly linked in])
5134 $RM conftest*
5135 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
5136
5137 if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
5138 soname=conftest
5139 lib=conftest
5140 libobjs=conftest.$ac_objext
5141 deplibs=
5142 wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
5143 pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
5144 compiler_flags=-v
5145 linker_flags=-v
5146 verstring=
5147 output_objdir=.
5148 libname=conftest
5149 lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
5150 _LT_TAGVAR(allow_undefined_flag, $1)=
5151 if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
5152 then
5153 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
5154 else
5155 _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
5156 fi
5157 _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
5158 else
5159 cat conftest.err 1>&5
5160 fi
5161 $RM conftest*
5162 AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)])
5633 AC_CACHE_CHECK([whether -lc should be explicitly linked in],
5634 [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
5635 [$RM conftest*
5636 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
5637
5638 if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
5639 soname=conftest
5640 lib=conftest
5641 libobjs=conftest.$ac_objext
5642 deplibs=
5643 wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
5644 pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
5645 compiler_flags=-v
5646 linker_flags=-v
5647 verstring=
5648 output_objdir=.
5649 libname=conftest
5650 lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
5651 _LT_TAGVAR(allow_undefined_flag, $1)=
5652 if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
5653 then
5654 lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
5655 else
5656 lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
5657 fi
5658 _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
5659 else
5660 cat conftest.err 1>&5
5661 fi
5662 $RM conftest*
5663 ])
5664 _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
51635665 ;;
51645666 esac
51655667 fi
51965698 _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
51975699 [Flag to hardcode $libdir into a binary during linking.
51985700 This must work even if $libdir does not exist])
5199 _LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
5200 [[If ld is used when linking, flag to hardcode $libdir into a binary
5201 during linking. This must work even if $libdir does not exist]])
52025701 _LT_TAGDECL([], [hardcode_libdir_separator], [1],
52035702 [Whether we need a single "-rpath" flag with a separated argument])
52045703 _LT_TAGDECL([], [hardcode_direct], [0],
52245723 to runtime path list])
52255724 _LT_TAGDECL([], [link_all_deplibs], [0],
52265725 [Whether libtool must link a program against all its dependency libraries])
5227 _LT_TAGDECL([], [fix_srcfile_path], [1],
5228 [Fix the shell variable $srcfile for the compiler])
52295726 _LT_TAGDECL([], [always_export_symbols], [0],
52305727 [Set to "yes" if exported symbols are required])
52315728 _LT_TAGDECL([], [export_symbols_cmds], [2],
52365733 [Symbols that must always be exported])
52375734 _LT_TAGDECL([], [prelink_cmds], [2],
52385735 [Commands necessary for linking programs (against libraries) with templates])
5736 _LT_TAGDECL([], [postlink_cmds], [2],
5737 [Commands necessary for finishing linking programs])
52395738 _LT_TAGDECL([], [file_list_spec], [1],
52405739 [Specify filename containing input files])
52415740 dnl FIXME: Not yet implemented
53295828 ])# _LT_LANG_C_CONFIG
53305829
53315830
5332 # _LT_PROG_CXX
5333 # ------------
5334 # Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++
5335 # compiler, we have our own version here.
5336 m4_defun([_LT_PROG_CXX],
5337 [
5338 pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes])
5339 AC_PROG_CXX
5831 # _LT_LANG_CXX_CONFIG([TAG])
5832 # --------------------------
5833 # Ensure that the configuration variables for a C++ compiler are suitably
5834 # defined. These variables are subsequently used by _LT_CONFIG to write
5835 # the compiler configuration to `libtool'.
5836 m4_defun([_LT_LANG_CXX_CONFIG],
5837 [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
5838 m4_require([_LT_DECL_EGREP])dnl
5839 m4_require([_LT_PATH_MANIFEST_TOOL])dnl
53405840 if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
53415841 ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
53425842 (test "X$CXX" != "Xg++"))) ; then
53445844 else
53455845 _lt_caught_CXX_error=yes
53465846 fi
5347 popdef([AC_MSG_ERROR])
5348 ])# _LT_PROG_CXX
5349
5350 dnl aclocal-1.4 backwards compatibility:
5351 dnl AC_DEFUN([_LT_PROG_CXX], [])
5352
5353
5354 # _LT_LANG_CXX_CONFIG([TAG])
5355 # --------------------------
5356 # Ensure that the configuration variables for a C++ compiler are suitably
5357 # defined. These variables are subsequently used by _LT_CONFIG to write
5358 # the compiler configuration to `libtool'.
5359 m4_defun([_LT_LANG_CXX_CONFIG],
5360 [AC_REQUIRE([_LT_PROG_CXX])dnl
5361 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
5362 m4_require([_LT_DECL_EGREP])dnl
53635847
53645848 AC_LANG_PUSH(C++)
53655849 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
53715855 _LT_TAGVAR(hardcode_direct, $1)=no
53725856 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
53735857 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
5374 _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
53755858 _LT_TAGVAR(hardcode_libdir_separator, $1)=
53765859 _LT_TAGVAR(hardcode_minus_L, $1)=no
53775860 _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
53815864 _LT_TAGVAR(module_expsym_cmds, $1)=
53825865 _LT_TAGVAR(link_all_deplibs, $1)=unknown
53835866 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
5867 _LT_TAGVAR(reload_flag, $1)=$reload_flag
5868 _LT_TAGVAR(reload_cmds, $1)=$reload_cmds
53845869 _LT_TAGVAR(no_undefined_flag, $1)=
53855870 _LT_TAGVAR(whole_archive_flag_spec, $1)=
53865871 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
54125897
54135898 # Allow CC to be a program name with arguments.
54145899 lt_save_CC=$CC
5900 lt_save_CFLAGS=$CFLAGS
54155901 lt_save_LD=$LD
54165902 lt_save_GCC=$GCC
54175903 GCC=$GXX
54295915 fi
54305916 test -z "${LDCXX+set}" || LD=$LDCXX
54315917 CC=${CXX-"c++"}
5918 CFLAGS=$CXXFLAGS
54325919 compiler=$CC
54335920 _LT_TAGVAR(compiler, $1)=$CC
54345921 _LT_CC_BASENAME([$compiler])
54505937 # Check if GNU C++ uses GNU ld as the underlying linker, since the
54515938 # archiving commands below assume that GNU ld is being used.
54525939 if test "$with_gnu_ld" = yes; then
5453 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
5454 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
5940 _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
5941 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
54555942
54565943 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
54575944 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
54835970 # Commands to make compiler produce verbose output that lists
54845971 # what "hidden" libraries, object files and flags are used when
54855972 # linking a shared library.
5486 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
5973 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
54875974
54885975 else
54895976 GXX=no
55926079 _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
55936080 # Determine the default libpath from the value encoded in an empty
55946081 # executable.
5595 _LT_SYS_MODULE_PATH_AIX
6082 _LT_SYS_MODULE_PATH_AIX([$1])
55966083 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
55976084
5598 _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"
6085 _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"
55996086 else
56006087 if test "$host_cpu" = ia64; then
56016088 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
56046091 else
56056092 # Determine the default libpath from the value encoded in an
56066093 # empty executable.
5607 _LT_SYS_MODULE_PATH_AIX
6094 _LT_SYS_MODULE_PATH_AIX([$1])
56086095 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
56096096 # Warning - without using the other run time loading flags,
56106097 # -berok will link without error, but may produce a broken library.
56116098 _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
56126099 _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
5613 # Exported symbols can be pulled into shared objects from archives
5614 _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
6100 if test "$with_gnu_ld" = yes; then
6101 # We only use this code for GNU lds that support --whole-archive.
6102 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
6103 else
6104 # Exported symbols can be pulled into shared objects from archives
6105 _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
6106 fi
56156107 _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
56166108 # This is similar to how AIX traditionally builds its shared
56176109 # libraries.
56416133 ;;
56426134
56436135 cygwin* | mingw* | pw32* | cegcc*)
5644 # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
5645 # as there is no search path for DLLs.
5646 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
5647 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
5648 _LT_TAGVAR(always_export_symbols, $1)=no
5649 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
5650
5651 if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
5652 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
5653 # If the export-symbols file already is a .def file (1st line
5654 # is EXPORTS), use it as is; otherwise, prepend...
5655 _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
5656 cp $export_symbols $output_objdir/$soname.def;
5657 else
5658 echo EXPORTS > $output_objdir/$soname.def;
5659 cat $export_symbols >> $output_objdir/$soname.def;
5660 fi~
5661 $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
5662 else
5663 _LT_TAGVAR(ld_shlibs, $1)=no
5664 fi
5665 ;;
6136 case $GXX,$cc_basename in
6137 ,cl* | no,cl*)
6138 # Native MSVC
6139 # hardcode_libdir_flag_spec is actually meaningless, as there is
6140 # no search path for DLLs.
6141 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
6142 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
6143 _LT_TAGVAR(always_export_symbols, $1)=yes
6144 _LT_TAGVAR(file_list_spec, $1)='@'
6145 # Tell ltmain to make .lib files, not .a files.
6146 libext=lib
6147 # Tell ltmain to make .dll files, not .so files.
6148 shrext_cmds=".dll"
6149 # FIXME: Setting linknames here is a bad hack.
6150 _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
6151 _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
6152 $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
6153 else
6154 $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
6155 fi~
6156 $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
6157 linknames='
6158 # The linker will not automatically build a static lib if we build a DLL.
6159 # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
6160 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
6161 # Don't use ranlib
6162 _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
6163 _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
6164 lt_tool_outputfile="@TOOL_OUTPUT@"~
6165 case $lt_outputfile in
6166 *.exe|*.EXE) ;;
6167 *)
6168 lt_outputfile="$lt_outputfile.exe"
6169 lt_tool_outputfile="$lt_tool_outputfile.exe"
6170 ;;
6171 esac~
6172 func_to_tool_file "$lt_outputfile"~
6173 if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
6174 $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
6175 $RM "$lt_outputfile.manifest";
6176 fi'
6177 ;;
6178 *)
6179 # g++
6180 # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
6181 # as there is no search path for DLLs.
6182 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
6183 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
6184 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
6185 _LT_TAGVAR(always_export_symbols, $1)=no
6186 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
6187
6188 if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
6189 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
6190 # If the export-symbols file already is a .def file (1st line
6191 # is EXPORTS), use it as is; otherwise, prepend...
6192 _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
6193 cp $export_symbols $output_objdir/$soname.def;
6194 else
6195 echo EXPORTS > $output_objdir/$soname.def;
6196 cat $export_symbols >> $output_objdir/$soname.def;
6197 fi~
6198 $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
6199 else
6200 _LT_TAGVAR(ld_shlibs, $1)=no
6201 fi
6202 ;;
6203 esac
6204 ;;
56666205 darwin* | rhapsody*)
56676206 _LT_DARWIN_LINKER_FEATURES($1)
56686207 ;;
56856224 esac
56866225 ;;
56876226
5688 freebsd[[12]]*)
6227 freebsd2.*)
56896228 # C++ shared libraries reported to be fairly broken before
56906229 # switch to ELF
56916230 _LT_TAGVAR(ld_shlibs, $1)=no
57026241 ;;
57036242
57046243 gnu*)
6244 ;;
6245
6246 haiku*)
6247 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
6248 _LT_TAGVAR(link_all_deplibs, $1)=yes
57056249 ;;
57066250
57076251 hpux9*)
57286272 # explicitly linking system object files so we need to strip them
57296273 # from the output so that they don't get included in the library
57306274 # dependencies.
5731 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'
6275 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"'
57326276 ;;
57336277 *)
57346278 if test "$GXX" = yes; then
5735 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
6279 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
57366280 else
57376281 # FIXME: insert proper C++ library support
57386282 _LT_TAGVAR(ld_shlibs, $1)=no
57936337 # explicitly linking system object files so we need to strip them
57946338 # from the output so that they don't get included in the library
57956339 # dependencies.
5796 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'
6340 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"'
57976341 ;;
57986342 *)
57996343 if test "$GXX" = yes; then
58036347 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
58046348 ;;
58056349 ia64*)
5806 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
6350 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
58076351 ;;
58086352 *)
5809 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
6353 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
58106354 ;;
58116355 esac
58126356 fi
58366380 case $cc_basename in
58376381 CC*)
58386382 # SGI C++
5839 _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'
6383 _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'
58406384
58416385 # Archives containing C++ object files must be created using
58426386 # "CC -ar", where "CC" is the IRIX C++ compiler. This is
58476391 *)
58486392 if test "$GXX" = yes; then
58496393 if test "$with_gnu_ld" = no; then
5850 _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'
6394 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -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'
58516395 else
5852 _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'
6396 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -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'
58536397 fi
58546398 fi
58556399 _LT_TAGVAR(link_all_deplibs, $1)=yes
58786422 # explicitly linking system object files so we need to strip them
58796423 # from the output so that they don't get included in the library
58806424 # dependencies.
5881 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'
6425 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"'
58826426
58836427 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
58846428 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
59156459 pgCC* | pgcpp*)
59166460 # Portland Group C++ compiler
59176461 case `$CC -V` in
5918 *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*)
6462 *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
59196463 _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
59206464 rm -rf $tpldir~
59216465 $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
5922 compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
6466 compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
59236467 _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
59246468 rm -rf $tpldir~
59256469 $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
5926 $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
6470 $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
59276471 $RANLIB $oldlib'
59286472 _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
59296473 rm -rf $tpldir~
59306474 $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
5931 $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
6475 $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
59326476 _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
59336477 rm -rf $tpldir~
59346478 $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
5935 $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'
6479 $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'
59366480 ;;
5937 *) # Version 6 will use weak symbols
6481 *) # Version 6 and above use weak symbols
59386482 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
59396483 _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'
59406484 ;;
59426486
59436487 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
59446488 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
5945 _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'
6489 _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'
59466490 ;;
59476491 cxx*)
59486492 # Compaq C++
59616505 # explicitly linking system object files so we need to strip them
59626506 # from the output so that they don't get included in the library
59636507 # dependencies.
5964 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'
6508 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'
59656509 ;;
5966 xl*)
6510 xl* | mpixl* | bgxl*)
59676511 # IBM XL 8.0 on PPC, with GNU ld
59686512 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
59696513 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
59836527 _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
59846528 _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'
59856529 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
5986 _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'
6530 _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'
59876531 _LT_TAGVAR(compiler_needs_object, $1)=yes
59886532
59896533 # Not sure whether something based on
59906534 # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
59916535 # would be better.
5992 output_verbose_link_cmd='echo'
6536 output_verbose_link_cmd='func_echo_all'
59936537
59946538 # Archives containing C++ object files must be created using
59956539 # "CC -xar", where "CC" is the Sun C++ compiler. This is
60586602 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
60596603 _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
60606604 fi
6061 output_verbose_link_cmd=echo
6605 output_verbose_link_cmd=func_echo_all
60626606 else
60636607 _LT_TAGVAR(ld_shlibs, $1)=no
60646608 fi
60936637 case $host in
60946638 osf3*)
60956639 _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
6096 _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'
6640 _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'
60976641 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
60986642 ;;
60996643 *)
61006644 _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
6101 _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'
6645 _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'
61026646 _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
61036647 echo "-hidden">> $lib.exp~
6104 $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~
6648 $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~
61056649 $RM $lib.exp'
61066650 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
61076651 ;;
61176661 # explicitly linking system object files so we need to strip them
61186662 # from the output so that they don't get included in the library
61196663 # dependencies.
6120 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'
6664 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"'
61216665 ;;
61226666 *)
61236667 if test "$GXX" = yes && test "$with_gnu_ld" = no; then
61246668 _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
61256669 case $host in
61266670 osf3*)
6127 _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'
6671 _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'
61286672 ;;
61296673 *)
6130 _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'
6674 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -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'
61316675 ;;
61326676 esac
61336677
61376681 # Commands to make compiler produce verbose output that lists
61386682 # what "hidden" libraries, object files and flags are used when
61396683 # linking a shared library.
6140 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
6684 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
61416685
61426686 else
61436687 # FIXME: insert proper C++ library support
61736717
61746718 solaris*)
61756719 case $cc_basename in
6176 CC*)
6720 CC* | sunCC*)
61776721 # Sun C++ 4.2, 5.x and Centerline C++
61786722 _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
61796723 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
61946738 esac
61956739 _LT_TAGVAR(link_all_deplibs, $1)=yes
61966740
6197 output_verbose_link_cmd='echo'
6741 output_verbose_link_cmd='func_echo_all'
61986742
61996743 # Archives containing C++ object files must be created using
62006744 # "CC -xar", where "CC" is the Sun C++ compiler. This is
62146758 if test "$GXX" = yes && test "$with_gnu_ld" = no; then
62156759 _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
62166760 if $CC --version | $GREP -v '^2\.7' > /dev/null; then
6217 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
6761 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
62186762 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
6219 $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
6763 $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
62206764
62216765 # Commands to make compiler produce verbose output that lists
62226766 # what "hidden" libraries, object files and flags are used when
62236767 # linking a shared library.
6224 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
6768 output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
62256769 else
62266770 # g++ 2.7 appears to require `-G' NOT `-shared' on this
62276771 # platform.
62326776 # Commands to make compiler produce verbose output that lists
62336777 # what "hidden" libraries, object files and flags are used when
62346778 # linking a shared library.
6235 output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"'
6779 output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
62366780 fi
62376781
62386782 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
62866830 CC*)
62876831 _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
62886832 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
6833 _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
6834 '"$_LT_TAGVAR(old_archive_cmds, $1)"
6835 _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
6836 '"$_LT_TAGVAR(reload_cmds, $1)"
62896837 ;;
62906838 *)
62916839 _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
63416889 fi # test -n "$compiler"
63426890
63436891 CC=$lt_save_CC
6892 CFLAGS=$lt_save_CFLAGS
63446893 LDCXX=$LD
63456894 LD=$lt_save_LD
63466895 GCC=$lt_save_GCC
63556904 ])# _LT_LANG_CXX_CONFIG
63566905
63576906
6907 # _LT_FUNC_STRIPNAME_CNF
6908 # ----------------------
6909 # func_stripname_cnf prefix suffix name
6910 # strip PREFIX and SUFFIX off of NAME.
6911 # PREFIX and SUFFIX must not contain globbing or regex special
6912 # characters, hashes, percent signs, but SUFFIX may contain a leading
6913 # dot (in which case that matches only a dot).
6914 #
6915 # This function is identical to the (non-XSI) version of func_stripname,
6916 # except this one can be used by m4 code that may be executed by configure,
6917 # rather than the libtool script.
6918 m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
6919 AC_REQUIRE([_LT_DECL_SED])
6920 AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
6921 func_stripname_cnf ()
6922 {
6923 case ${2} in
6924 .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
6925 *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
6926 esac
6927 } # func_stripname_cnf
6928 ])# _LT_FUNC_STRIPNAME_CNF
6929
63586930 # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
63596931 # ---------------------------------
63606932 # Figure out "hidden" library dependencies from verbose
63636935 # objects, libraries and library flags.
63646936 m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
63656937 [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
6938 AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
63666939 # Dependencies to place before and after the object being linked:
63676940 _LT_TAGVAR(predep_objects, $1)=
63686941 _LT_TAGVAR(postdep_objects, $1)=
64126985 }
64136986 };
64146987 _LT_EOF
6988 ], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
6989 package foo
6990 func foo() {
6991 }
6992 _LT_EOF
64156993 ])
6994
6995 _lt_libdeps_save_CFLAGS=$CFLAGS
6996 case "$CC $CFLAGS " in #(
6997 *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
6998 *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
6999 *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
7000 esac
7001
64167002 dnl Parse the compiler output and extract the necessary
64177003 dnl objects, libraries and library flags.
64187004 if AC_TRY_EVAL(ac_compile); then
64247010 pre_test_object_deps_done=no
64257011
64267012 for p in `eval "$output_verbose_link_cmd"`; do
6427 case $p in
7013 case ${prev}${p} in
64287014
64297015 -L* | -R* | -l*)
64307016 # Some compilers place space between "-{L,R}" and the path.
64337019 test $p = "-R"; then
64347020 prev=$p
64357021 continue
6436 else
6437 prev=
64387022 fi
64397023
7024 # Expand the sysroot to ease extracting the directories later.
7025 if test -z "$prev"; then
7026 case $p in
7027 -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
7028 -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
7029 -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
7030 esac
7031 fi
7032 case $p in
7033 =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
7034 esac
64407035 if test "$pre_test_object_deps_done" = no; then
6441 case $p in
6442 -L* | -R*)
7036 case ${prev} in
7037 -L | -R)
64437038 # Internal compiler library paths should come after those
64447039 # provided the user. The postdeps already come after the
64457040 # user supplied libs so there is no need to process them.
64597054 _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
64607055 fi
64617056 fi
7057 prev=
64627058 ;;
64637059
7060 *.lto.$objext) ;; # Ignore GCC LTO objects
64647061 *.$objext)
64657062 # This assumes that the test object file only shows up
64667063 # once in the compiler output.
64967093 fi
64977094
64987095 $RM -f confest.$objext
7096 CFLAGS=$_lt_libdeps_save_CFLAGS
64997097
65007098 # PORTME: override above test on systems where it is broken
65017099 m4_if([$1], [CXX],
65327130
65337131 solaris*)
65347132 case $cc_basename in
6535 CC*)
7133 CC* | sunCC*)
65367134 # The more standards-conforming stlport4 library is
65377135 # incompatible with the Cstd library. Avoid specifying
65387136 # it if it's in CXXFLAGS. Ignore libCrun as
65767174 ])# _LT_SYS_HIDDEN_LIBDEPS
65777175
65787176
6579 # _LT_PROG_F77
6580 # ------------
6581 # Since AC_PROG_F77 is broken, in that it returns the empty string
6582 # if there is no fortran compiler, we have our own version here.
6583 m4_defun([_LT_PROG_F77],
6584 [
6585 pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes])
6586 AC_PROG_F77
6587 if test -z "$F77" || test "X$F77" = "Xno"; then
6588 _lt_disable_F77=yes
6589 fi
6590 popdef([AC_MSG_ERROR])
6591 ])# _LT_PROG_F77
6592
6593 dnl aclocal-1.4 backwards compatibility:
6594 dnl AC_DEFUN([_LT_PROG_F77], [])
6595
6596
65977177 # _LT_LANG_F77_CONFIG([TAG])
65987178 # --------------------------
65997179 # Ensure that the configuration variables for a Fortran 77 compiler are
66007180 # suitably defined. These variables are subsequently used by _LT_CONFIG
66017181 # to write the compiler configuration to `libtool'.
66027182 m4_defun([_LT_LANG_F77_CONFIG],
6603 [AC_REQUIRE([_LT_PROG_F77])dnl
6604 AC_LANG_PUSH(Fortran 77)
7183 [AC_LANG_PUSH(Fortran 77)
7184 if test -z "$F77" || test "X$F77" = "Xno"; then
7185 _lt_disable_F77=yes
7186 fi
66057187
66067188 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
66077189 _LT_TAGVAR(allow_undefined_flag, $1)=
66117193 _LT_TAGVAR(hardcode_direct, $1)=no
66127194 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
66137195 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
6614 _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
66157196 _LT_TAGVAR(hardcode_libdir_separator, $1)=
66167197 _LT_TAGVAR(hardcode_minus_L, $1)=no
66177198 _LT_TAGVAR(hardcode_automatic, $1)=no
66207201 _LT_TAGVAR(module_expsym_cmds, $1)=
66217202 _LT_TAGVAR(link_all_deplibs, $1)=unknown
66227203 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
7204 _LT_TAGVAR(reload_flag, $1)=$reload_flag
7205 _LT_TAGVAR(reload_cmds, $1)=$reload_cmds
66237206 _LT_TAGVAR(no_undefined_flag, $1)=
66247207 _LT_TAGVAR(whole_archive_flag_spec, $1)=
66257208 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
66597242 # Allow CC to be a program name with arguments.
66607243 lt_save_CC="$CC"
66617244 lt_save_GCC=$GCC
7245 lt_save_CFLAGS=$CFLAGS
66627246 CC=${F77-"f77"}
7247 CFLAGS=$FFLAGS
66637248 compiler=$CC
66647249 _LT_TAGVAR(compiler, $1)=$CC
66657250 _LT_CC_BASENAME([$compiler])
67137298
67147299 GCC=$lt_save_GCC
67157300 CC="$lt_save_CC"
7301 CFLAGS="$lt_save_CFLAGS"
67167302 fi # test "$_lt_disable_F77" != yes
67177303
67187304 AC_LANG_POP
67197305 ])# _LT_LANG_F77_CONFIG
6720
6721
6722 # _LT_PROG_FC
6723 # -----------
6724 # Since AC_PROG_FC is broken, in that it returns the empty string
6725 # if there is no fortran compiler, we have our own version here.
6726 m4_defun([_LT_PROG_FC],
6727 [
6728 pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes])
6729 AC_PROG_FC
6730 if test -z "$FC" || test "X$FC" = "Xno"; then
6731 _lt_disable_FC=yes
6732 fi
6733 popdef([AC_MSG_ERROR])
6734 ])# _LT_PROG_FC
6735
6736 dnl aclocal-1.4 backwards compatibility:
6737 dnl AC_DEFUN([_LT_PROG_FC], [])
67387306
67397307
67407308 # _LT_LANG_FC_CONFIG([TAG])
67437311 # suitably defined. These variables are subsequently used by _LT_CONFIG
67447312 # to write the compiler configuration to `libtool'.
67457313 m4_defun([_LT_LANG_FC_CONFIG],
6746 [AC_REQUIRE([_LT_PROG_FC])dnl
6747 AC_LANG_PUSH(Fortran)
7314 [AC_LANG_PUSH(Fortran)
7315
7316 if test -z "$FC" || test "X$FC" = "Xno"; then
7317 _lt_disable_FC=yes
7318 fi
67487319
67497320 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
67507321 _LT_TAGVAR(allow_undefined_flag, $1)=
67547325 _LT_TAGVAR(hardcode_direct, $1)=no
67557326 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
67567327 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
6757 _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
67587328 _LT_TAGVAR(hardcode_libdir_separator, $1)=
67597329 _LT_TAGVAR(hardcode_minus_L, $1)=no
67607330 _LT_TAGVAR(hardcode_automatic, $1)=no
67637333 _LT_TAGVAR(module_expsym_cmds, $1)=
67647334 _LT_TAGVAR(link_all_deplibs, $1)=unknown
67657335 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
7336 _LT_TAGVAR(reload_flag, $1)=$reload_flag
7337 _LT_TAGVAR(reload_cmds, $1)=$reload_cmds
67667338 _LT_TAGVAR(no_undefined_flag, $1)=
67677339 _LT_TAGVAR(whole_archive_flag_spec, $1)=
67687340 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
68027374 # Allow CC to be a program name with arguments.
68037375 lt_save_CC="$CC"
68047376 lt_save_GCC=$GCC
7377 lt_save_CFLAGS=$CFLAGS
68057378 CC=${FC-"f95"}
7379 CFLAGS=$FCFLAGS
68067380 compiler=$CC
68077381 GCC=$ac_cv_fc_compiler_gnu
68087382
68587432 fi # test -n "$compiler"
68597433
68607434 GCC=$lt_save_GCC
6861 CC="$lt_save_CC"
7435 CC=$lt_save_CC
7436 CFLAGS=$lt_save_CFLAGS
68627437 fi # test "$_lt_disable_FC" != yes
68637438
68647439 AC_LANG_POP
68957470 _LT_LINKER_BOILERPLATE
68967471
68977472 # Allow CC to be a program name with arguments.
6898 lt_save_CC="$CC"
7473 lt_save_CC=$CC
7474 lt_save_CFLAGS=$CFLAGS
68997475 lt_save_GCC=$GCC
69007476 GCC=yes
69017477 CC=${GCJ-"gcj"}
7478 CFLAGS=$GCJFLAGS
69027479 compiler=$CC
69037480 _LT_TAGVAR(compiler, $1)=$CC
69047481 _LT_TAGVAR(LD, $1)="$LD"
69087485 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
69097486
69107487 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
7488 _LT_TAGVAR(reload_flag, $1)=$reload_flag
7489 _LT_TAGVAR(reload_cmds, $1)=$reload_cmds
69117490
69127491 ## CAVEAT EMPTOR:
69137492 ## There is no encapsulation within the following macros, do not change
69277506 AC_LANG_RESTORE
69287507
69297508 GCC=$lt_save_GCC
6930 CC="$lt_save_CC"
7509 CC=$lt_save_CC
7510 CFLAGS=$lt_save_CFLAGS
69317511 ])# _LT_LANG_GCJ_CONFIG
7512
7513
7514 # _LT_LANG_GO_CONFIG([TAG])
7515 # --------------------------
7516 # Ensure that the configuration variables for the GNU Go compiler
7517 # are suitably defined. These variables are subsequently used by _LT_CONFIG
7518 # to write the compiler configuration to `libtool'.
7519 m4_defun([_LT_LANG_GO_CONFIG],
7520 [AC_REQUIRE([LT_PROG_GO])dnl
7521 AC_LANG_SAVE
7522
7523 # Source file extension for Go test sources.
7524 ac_ext=go
7525
7526 # Object file extension for compiled Go test sources.
7527 objext=o
7528 _LT_TAGVAR(objext, $1)=$objext
7529
7530 # Code to be used in simple compile tests
7531 lt_simple_compile_test_code="package main; func main() { }"
7532
7533 # Code to be used in simple link tests
7534 lt_simple_link_test_code='package main; func main() { }'
7535
7536 # ltmain only uses $CC for tagged configurations so make sure $CC is set.
7537 _LT_TAG_COMPILER
7538
7539 # save warnings/boilerplate of simple test code
7540 _LT_COMPILER_BOILERPLATE
7541 _LT_LINKER_BOILERPLATE
7542
7543 # Allow CC to be a program name with arguments.
7544 lt_save_CC=$CC
7545 lt_save_CFLAGS=$CFLAGS
7546 lt_save_GCC=$GCC
7547 GCC=yes
7548 CC=${GOC-"gccgo"}
7549 CFLAGS=$GOFLAGS
7550 compiler=$CC
7551 _LT_TAGVAR(compiler, $1)=$CC
7552 _LT_TAGVAR(LD, $1)="$LD"
7553 _LT_CC_BASENAME([$compiler])
7554
7555 # Go did not exist at the time GCC didn't implicitly link libc in.
7556 _LT_TAGVAR(archive_cmds_need_lc, $1)=no
7557
7558 _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
7559 _LT_TAGVAR(reload_flag, $1)=$reload_flag
7560 _LT_TAGVAR(reload_cmds, $1)=$reload_cmds
7561
7562 ## CAVEAT EMPTOR:
7563 ## There is no encapsulation within the following macros, do not change
7564 ## the running order or otherwise move them around unless you know exactly
7565 ## what you are doing...
7566 if test -n "$compiler"; then
7567 _LT_COMPILER_NO_RTTI($1)
7568 _LT_COMPILER_PIC($1)
7569 _LT_COMPILER_C_O($1)
7570 _LT_COMPILER_FILE_LOCKS($1)
7571 _LT_LINKER_SHLIBS($1)
7572 _LT_LINKER_HARDCODE_LIBPATH($1)
7573
7574 _LT_CONFIG($1)
7575 fi
7576
7577 AC_LANG_RESTORE
7578
7579 GCC=$lt_save_GCC
7580 CC=$lt_save_CC
7581 CFLAGS=$lt_save_CFLAGS
7582 ])# _LT_LANG_GO_CONFIG
69327583
69337584
69347585 # _LT_LANG_RC_CONFIG([TAG])
69627613
69637614 # Allow CC to be a program name with arguments.
69647615 lt_save_CC="$CC"
7616 lt_save_CFLAGS=$CFLAGS
69657617 lt_save_GCC=$GCC
69667618 GCC=
69677619 CC=${RC-"windres"}
7620 CFLAGS=
69687621 compiler=$CC
69697622 _LT_TAGVAR(compiler, $1)=$CC
69707623 _LT_CC_BASENAME([$compiler])
69777630
69787631 GCC=$lt_save_GCC
69797632 AC_LANG_RESTORE
6980 CC="$lt_save_CC"
7633 CC=$lt_save_CC
7634 CFLAGS=$lt_save_CFLAGS
69817635 ])# _LT_LANG_RC_CONFIG
69827636
69837637
69957649 AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
69967650 dnl aclocal-1.4 backwards compatibility:
69977651 dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
7652
7653
7654 # LT_PROG_GO
7655 # ----------
7656 AC_DEFUN([LT_PROG_GO],
7657 [AC_CHECK_TOOL(GOC, gccgo,)
7658 ])
69987659
69997660
70007661 # LT_PROG_RC
70367697 AC_SUBST([OBJDUMP])
70377698 ])
70387699
7700 # _LT_DECL_DLLTOOL
7701 # ----------------
7702 # Ensure DLLTOOL variable is set.
7703 m4_defun([_LT_DECL_DLLTOOL],
7704 [AC_CHECK_TOOL(DLLTOOL, dlltool, false)
7705 test -z "$DLLTOOL" && DLLTOOL=dlltool
7706 _LT_DECL([], [DLLTOOL], [1], [DLL creation program])
7707 AC_SUBST([DLLTOOL])
7708 ])
70397709
70407710 # _LT_DECL_SED
70417711 # ------------
71297799 # Try some XSI features
71307800 xsi_shell=no
71317801 ( _lt_dummy="a/b/c"
7132 test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
7133 = c,a/b,, \
7802 test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
7803 = c,a/b,b/c, \
71347804 && eval 'test $(( 1 + 1 )) -eq 2 \
71357805 && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
71367806 && xsi_shell=yes
71697839 ])# _LT_CHECK_SHELL_FEATURES
71707840
71717841
7172 # _LT_PROG_XSI_SHELLFNS
7173 # ---------------------
7174 # Bourne and XSI compatible variants of some useful shell functions.
7175 m4_defun([_LT_PROG_XSI_SHELLFNS],
7176 [case $xsi_shell in
7177 yes)
7178 cat << \_LT_EOF >> "$cfgfile"
7179
7180 # func_dirname file append nondir_replacement
7181 # Compute the dirname of FILE. If nonempty, add APPEND to the result,
7182 # otherwise set result to NONDIR_REPLACEMENT.
7183 func_dirname ()
7184 {
7185 case ${1} in
7186 */*) func_dirname_result="${1%/*}${2}" ;;
7187 * ) func_dirname_result="${3}" ;;
7188 esac
7189 }
7190
7191 # func_basename file
7192 func_basename ()
7193 {
7194 func_basename_result="${1##*/}"
7195 }
7196
7197 # func_dirname_and_basename file append nondir_replacement
7198 # perform func_basename and func_dirname in a single function
7199 # call:
7200 # dirname: Compute the dirname of FILE. If nonempty,
7201 # add APPEND to the result, otherwise set result
7202 # to NONDIR_REPLACEMENT.
7203 # value returned in "$func_dirname_result"
7204 # basename: Compute filename of FILE.
7205 # value retuned in "$func_basename_result"
7206 # Implementation must be kept synchronized with func_dirname
7207 # and func_basename. For efficiency, we do not delegate to
7208 # those functions but instead duplicate the functionality here.
7209 func_dirname_and_basename ()
7210 {
7211 case ${1} in
7212 */*) func_dirname_result="${1%/*}${2}" ;;
7213 * ) func_dirname_result="${3}" ;;
7214 esac
7215 func_basename_result="${1##*/}"
7216 }
7217
7218 # func_stripname prefix suffix name
7219 # strip PREFIX and SUFFIX off of NAME.
7220 # PREFIX and SUFFIX must not contain globbing or regex special
7221 # characters, hashes, percent signs, but SUFFIX may contain a leading
7222 # dot (in which case that matches only a dot).
7223 func_stripname ()
7224 {
7225 # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
7226 # positional parameters, so assign one to ordinary parameter first.
7227 func_stripname_result=${3}
7228 func_stripname_result=${func_stripname_result#"${1}"}
7229 func_stripname_result=${func_stripname_result%"${2}"}
7230 }
7231
7232 # func_opt_split
7233 func_opt_split ()
7234 {
7235 func_opt_split_opt=${1%%=*}
7236 func_opt_split_arg=${1#*=}
7237 }
7238
7239 # func_lo2o object
7240 func_lo2o ()
7241 {
7242 case ${1} in
7243 *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
7244 *) func_lo2o_result=${1} ;;
7245 esac
7246 }
7247
7248 # func_xform libobj-or-source
7249 func_xform ()
7250 {
7251 func_xform_result=${1%.*}.lo
7252 }
7253
7254 # func_arith arithmetic-term...
7255 func_arith ()
7256 {
7257 func_arith_result=$(( $[*] ))
7258 }
7259
7260 # func_len string
7261 # STRING may not start with a hyphen.
7262 func_len ()
7263 {
7264 func_len_result=${#1}
7265 }
7266
7267 _LT_EOF
7842 # _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
7843 # ------------------------------------------------------
7844 # In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
7845 # '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
7846 m4_defun([_LT_PROG_FUNCTION_REPLACE],
7847 [dnl {
7848 sed -e '/^$1 ()$/,/^} # $1 /c\
7849 $1 ()\
7850 {\
7851 m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1])
7852 } # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
7853 && mv -f "$cfgfile.tmp" "$cfgfile" \
7854 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
7855 test 0 -eq $? || _lt_function_replace_fail=:
7856 ])
7857
7858
7859 # _LT_PROG_REPLACE_SHELLFNS
7860 # -------------------------
7861 # Replace existing portable implementations of several shell functions with
7862 # equivalent extended shell implementations where those features are available..
7863 m4_defun([_LT_PROG_REPLACE_SHELLFNS],
7864 [if test x"$xsi_shell" = xyes; then
7865 _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
7866 case ${1} in
7867 */*) func_dirname_result="${1%/*}${2}" ;;
7868 * ) func_dirname_result="${3}" ;;
7869 esac])
7870
7871 _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
7872 func_basename_result="${1##*/}"])
7873
7874 _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
7875 case ${1} in
7876 */*) func_dirname_result="${1%/*}${2}" ;;
7877 * ) func_dirname_result="${3}" ;;
7878 esac
7879 func_basename_result="${1##*/}"])
7880
7881 _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
7882 # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
7883 # positional parameters, so assign one to ordinary parameter first.
7884 func_stripname_result=${3}
7885 func_stripname_result=${func_stripname_result#"${1}"}
7886 func_stripname_result=${func_stripname_result%"${2}"}])
7887
7888 _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
7889 func_split_long_opt_name=${1%%=*}
7890 func_split_long_opt_arg=${1#*=}])
7891
7892 _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
7893 func_split_short_opt_arg=${1#??}
7894 func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
7895
7896 _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
7897 case ${1} in
7898 *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
7899 *) func_lo2o_result=${1} ;;
7900 esac])
7901
7902 _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo])
7903
7904 _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))])
7905
7906 _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}])
7907 fi
7908
7909 if test x"$lt_shell_append" = xyes; then
7910 _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"])
7911
7912 _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
7913 func_quote_for_eval "${2}"
7914 dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
7915 eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
7916
7917 # Save a `func_append' function call where possible by direct use of '+='
7918 sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
7919 && mv -f "$cfgfile.tmp" "$cfgfile" \
7920 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
7921 test 0 -eq $? || _lt_function_replace_fail=:
7922 else
7923 # Save a `func_append' function call even when '+=' is not available
7924 sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
7925 && mv -f "$cfgfile.tmp" "$cfgfile" \
7926 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
7927 test 0 -eq $? || _lt_function_replace_fail=:
7928 fi
7929
7930 if test x"$_lt_function_replace_fail" = x":"; then
7931 AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
7932 fi
7933 ])
7934
7935 # _LT_PATH_CONVERSION_FUNCTIONS
7936 # -----------------------------
7937 # Determine which file name conversion functions should be used by
7938 # func_to_host_file (and, implicitly, by func_to_host_path). These are needed
7939 # for certain cross-compile configurations and native mingw.
7940 m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
7941 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
7942 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
7943 AC_MSG_CHECKING([how to convert $build file names to $host format])
7944 AC_CACHE_VAL(lt_cv_to_host_file_cmd,
7945 [case $host in
7946 *-*-mingw* )
7947 case $build in
7948 *-*-mingw* ) # actually msys
7949 lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
7950 ;;
7951 *-*-cygwin* )
7952 lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
7953 ;;
7954 * ) # otherwise, assume *nix
7955 lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
7956 ;;
7957 esac
72687958 ;;
7269 *) # Bourne compatible functions.
7270 cat << \_LT_EOF >> "$cfgfile"
7271
7272 # func_dirname file append nondir_replacement
7273 # Compute the dirname of FILE. If nonempty, add APPEND to the result,
7274 # otherwise set result to NONDIR_REPLACEMENT.
7275 func_dirname ()
7276 {
7277 # Extract subdirectory from the argument.
7278 func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
7279 if test "X$func_dirname_result" = "X${1}"; then
7280 func_dirname_result="${3}"
7281 else
7282 func_dirname_result="$func_dirname_result${2}"
7283 fi
7284 }
7285
7286 # func_basename file
7287 func_basename ()
7288 {
7289 func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
7290 }
7291
7292 dnl func_dirname_and_basename
7293 dnl A portable version of this function is already defined in general.m4sh
7294 dnl so there is no need for it here.
7295
7296 # func_stripname prefix suffix name
7297 # strip PREFIX and SUFFIX off of NAME.
7298 # PREFIX and SUFFIX must not contain globbing or regex special
7299 # characters, hashes, percent signs, but SUFFIX may contain a leading
7300 # dot (in which case that matches only a dot).
7301 # func_strip_suffix prefix name
7302 func_stripname ()
7303 {
7304 case ${2} in
7305 .*) func_stripname_result=`$ECHO "X${3}" \
7306 | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
7307 *) func_stripname_result=`$ECHO "X${3}" \
7308 | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
7309 esac
7310 }
7311
7312 # sed scripts:
7313 my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q'
7314 my_sed_long_arg='1s/^-[[^=]]*=//'
7315
7316 # func_opt_split
7317 func_opt_split ()
7318 {
7319 func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
7320 func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
7321 }
7322
7323 # func_lo2o object
7324 func_lo2o ()
7325 {
7326 func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
7327 }
7328
7329 # func_xform libobj-or-source
7330 func_xform ()
7331 {
7332 func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'`
7333 }
7334
7335 # func_arith arithmetic-term...
7336 func_arith ()
7337 {
7338 func_arith_result=`expr "$[@]"`
7339 }
7340
7341 # func_len string
7342 # STRING may not start with a hyphen.
7343 func_len ()
7344 {
7345 func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
7346 }
7347
7348 _LT_EOF
7959 *-*-cygwin* )
7960 case $build in
7961 *-*-mingw* ) # actually msys
7962 lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
7963 ;;
7964 *-*-cygwin* )
7965 lt_cv_to_host_file_cmd=func_convert_file_noop
7966 ;;
7967 * ) # otherwise, assume *nix
7968 lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
7969 ;;
7970 esac
7971 ;;
7972 * ) # unhandled hosts (and "normal" native builds)
7973 lt_cv_to_host_file_cmd=func_convert_file_noop
7974 ;;
73497975 esac
7350
7351 case $lt_shell_append in
7352 yes)
7353 cat << \_LT_EOF >> "$cfgfile"
7354
7355 # func_append var value
7356 # Append VALUE to the end of shell variable VAR.
7357 func_append ()
7358 {
7359 eval "$[1]+=\$[2]"
7360 }
7361 _LT_EOF
7976 ])
7977 to_host_file_cmd=$lt_cv_to_host_file_cmd
7978 AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
7979 _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
7980 [0], [convert $build file names to $host format])dnl
7981
7982 AC_MSG_CHECKING([how to convert $build file names to toolchain format])
7983 AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
7984 [#assume ordinary cross tools, or native build.
7985 lt_cv_to_tool_file_cmd=func_convert_file_noop
7986 case $host in
7987 *-*-mingw* )
7988 case $build in
7989 *-*-mingw* ) # actually msys
7990 lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
7991 ;;
7992 esac
73627993 ;;
7363 *)
7364 cat << \_LT_EOF >> "$cfgfile"
7365
7366 # func_append var value
7367 # Append VALUE to the end of shell variable VAR.
7368 func_append ()
7369 {
7370 eval "$[1]=\$$[1]\$[2]"
7371 }
7372
7373 _LT_EOF
7374 ;;
7375 esac
7994 esac
73767995 ])
7996 to_tool_file_cmd=$lt_cv_to_tool_file_cmd
7997 AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
7998 _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
7999 [0], [convert $build files to toolchain format])dnl
8000 ])# _LT_PATH_CONVERSION_FUNCTIONS
0 # Generated from ltmain.m4sh.
1
2 # ltmain.sh (GNU libtool) 2.2.6b
0
1 # libtool (GNU libtool) 2.4.2
32 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
43
5 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc.
4 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
5 # 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
66 # This is free software; see the source for copying conditions. There is NO
77 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
88
3131 #
3232 # Provide generalized library-building support services.
3333 #
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
34 # --config show all configuration variables
35 # --debug enable verbose shell tracing
36 # -n, --dry-run display commands without modifying any files
37 # --features display basic configuration information and exit
38 # --mode=MODE use operation mode MODE
39 # --preserve-dup-deps don't remove duplicate dependency libraries
40 # --quiet, --silent don't print informational messages
41 # --no-quiet, --no-silent
42 # print informational messages (default)
43 # --no-warn don't display warning messages
44 # --tag=TAG use configuration variables from tag TAG
45 # -v, --verbose print more informational messages than default
46 # --no-verbose don't print the extra informational messages
47 # --version print version information
48 # -h, --help, --help-all print short, long, or detailed help message
4549 #
4650 # MODE must be one of the following:
4751 #
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
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
5559 #
56 # MODE-ARGS vary depending on the MODE.
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.
5762 # Try `$progname --help --mode=MODE' for a more detailed description of MODE.
5863 #
5964 # When reporting a bug, please describe a test case to reproduce it and
6065 # include the following information:
6166 #
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-2
68 # automake: $automake_version
69 # autoconf: $autoconf_version
67 # host-triplet: $host
68 # shell: $SHELL
69 # compiler: $LTCC
70 # compiler flags: $LTCFLAGS
71 # linker: $LD (gnu? $with_gnu_ld)
72 # $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1
73 # automake: $automake_version
74 # autoconf: $autoconf_version
7075 #
7176 # Report bugs to <bug-libtool@gnu.org>.
72
73 PROGRAM=ltmain.sh
77 # GNU libtool home page: <http://www.gnu.org/software/libtool/>.
78 # General help using GNU software: <http://www.gnu.org/gethelp/>.
79
80 PROGRAM=libtool
7481 PACKAGE=libtool
75 VERSION="2.2.6b Debian-2.2.6b-2"
82 VERSION="2.4.2 Debian-2.4.2-1"
7683 TIMESTAMP=""
77 package_revision=1.3017
84 package_revision=1.3337
7885
7986 # Be Bourne compatible
8087 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
9097 BIN_SH=xpg4; export BIN_SH # for Tru64
9198 DUALCASE=1; export DUALCASE # for MKS sh
9299
100 # A function that is used when there is no print builtin or printf.
101 func_fallback_echo ()
102 {
103 eval 'cat <<_LTECHO_EOF
104 $1
105 _LTECHO_EOF'
106 }
107
93108 # 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).
97109 lt_user_locale=
98110 lt_safe_locale=
99111 for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
106118 lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
107119 fi"
108120 done
121 LC_ALL=C
122 LANGUAGE=C
123 export LANGUAGE LC_ALL
109124
110125 $lt_unset CDPATH
111126
112127
128 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
129 # is ksh but when the shell is invoked as "sh" and the current value of
130 # the _XPG environment variable is not equal to 1 (one), the special
131 # positional parameter $0, within a function call, is the name of the
132 # function.
133 progpath="$0"
113134
114135
115136
116137 : ${CP="cp -f"}
117 : ${ECHO="echo"}
118 : ${EGREP="/bin/grep -E"}
119 : ${FGREP="/bin/grep -F"}
120 : ${GREP="/bin/grep"}
121 : ${LN_S="ln -s"}
138 test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
122139 : ${MAKE="make"}
123140 : ${MKDIR="mkdir"}
124141 : ${MV="mv -f"}
125142 : ${RM="rm -f"}
126 : ${SED="/bin/sed"}
127143 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
128144 : ${Xsed="$SED -e 1s/^X//"}
129145
142158
143159 dirname="s,/[^/]*$,,"
144160 basename="s,^.*/,,"
161
162 # func_dirname file append nondir_replacement
163 # Compute the dirname of FILE. If nonempty, add APPEND to the result,
164 # otherwise set result to NONDIR_REPLACEMENT.
165 func_dirname ()
166 {
167 func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
168 if test "X$func_dirname_result" = "X${1}"; then
169 func_dirname_result="${3}"
170 else
171 func_dirname_result="$func_dirname_result${2}"
172 fi
173 } # func_dirname may be replaced by extended shell implementation
174
175
176 # func_basename file
177 func_basename ()
178 {
179 func_basename_result=`$ECHO "${1}" | $SED "$basename"`
180 } # func_basename may be replaced by extended shell implementation
181
145182
146183 # func_dirname_and_basename file append nondir_replacement
147184 # perform func_basename and func_dirname in a single function
157194 # those functions but instead duplicate the functionality here.
158195 func_dirname_and_basename ()
159196 {
160 # Extract subdirectory from the argument.
161 func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
162 if test "X$func_dirname_result" = "X${1}"; then
163 func_dirname_result="${3}"
164 else
165 func_dirname_result="$func_dirname_result${2}"
197 # Extract subdirectory from the argument.
198 func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
199 if test "X$func_dirname_result" = "X${1}"; then
200 func_dirname_result="${3}"
201 else
202 func_dirname_result="$func_dirname_result${2}"
203 fi
204 func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
205 } # func_dirname_and_basename may be replaced by extended shell implementation
206
207
208 # func_stripname prefix suffix name
209 # strip PREFIX and SUFFIX off of NAME.
210 # PREFIX and SUFFIX must not contain globbing or regex special
211 # characters, hashes, percent signs, but SUFFIX may contain a leading
212 # dot (in which case that matches only a dot).
213 # func_strip_suffix prefix name
214 func_stripname ()
215 {
216 case ${2} in
217 .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
218 *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
219 esac
220 } # func_stripname may be replaced by extended shell implementation
221
222
223 # These SED scripts presuppose an absolute path with a trailing slash.
224 pathcar='s,^/\([^/]*\).*$,\1,'
225 pathcdr='s,^/[^/]*,,'
226 removedotparts=':dotsl
227 s@/\./@/@g
228 t dotsl
229 s,/\.$,/,'
230 collapseslashes='s@/\{1,\}@/@g'
231 finalslash='s,/*$,/,'
232
233 # func_normal_abspath PATH
234 # Remove doubled-up and trailing slashes, "." path components,
235 # and cancel out any ".." path components in PATH after making
236 # it an absolute path.
237 # value returned in "$func_normal_abspath_result"
238 func_normal_abspath ()
239 {
240 # Start from root dir and reassemble the path.
241 func_normal_abspath_result=
242 func_normal_abspath_tpath=$1
243 func_normal_abspath_altnamespace=
244 case $func_normal_abspath_tpath in
245 "")
246 # Empty path, that just means $cwd.
247 func_stripname '' '/' "`pwd`"
248 func_normal_abspath_result=$func_stripname_result
249 return
250 ;;
251 # The next three entries are used to spot a run of precisely
252 # two leading slashes without using negated character classes;
253 # we take advantage of case's first-match behaviour.
254 ///*)
255 # Unusual form of absolute path, do nothing.
256 ;;
257 //*)
258 # Not necessarily an ordinary path; POSIX reserves leading '//'
259 # and for example Cygwin uses it to access remote file shares
260 # over CIFS/SMB, so we conserve a leading double slash if found.
261 func_normal_abspath_altnamespace=/
262 ;;
263 /*)
264 # Absolute path, do nothing.
265 ;;
266 *)
267 # Relative path, prepend $cwd.
268 func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
269 ;;
270 esac
271 # Cancel out all the simple stuff to save iterations. We also want
272 # the path to end with a slash for ease of parsing, so make sure
273 # there is one (and only one) here.
274 func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
275 -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
276 while :; do
277 # Processed it all yet?
278 if test "$func_normal_abspath_tpath" = / ; then
279 # If we ascended to the root using ".." the result may be empty now.
280 if test -z "$func_normal_abspath_result" ; then
281 func_normal_abspath_result=/
282 fi
283 break
284 fi
285 func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
286 -e "$pathcar"`
287 func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
288 -e "$pathcdr"`
289 # Figure out what to do with it
290 case $func_normal_abspath_tcomponent in
291 "")
292 # Trailing empty path component, ignore it.
293 ;;
294 ..)
295 # Parent dir; strip last assembled component from result.
296 func_dirname "$func_normal_abspath_result"
297 func_normal_abspath_result=$func_dirname_result
298 ;;
299 *)
300 # Actual path component, append it.
301 func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
302 ;;
303 esac
304 done
305 # Restore leading double-slash if one was found on entry.
306 func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
307 }
308
309 # func_relative_path SRCDIR DSTDIR
310 # generates a relative path from SRCDIR to DSTDIR, with a trailing
311 # slash if non-empty, suitable for immediately appending a filename
312 # without needing to append a separator.
313 # value returned in "$func_relative_path_result"
314 func_relative_path ()
315 {
316 func_relative_path_result=
317 func_normal_abspath "$1"
318 func_relative_path_tlibdir=$func_normal_abspath_result
319 func_normal_abspath "$2"
320 func_relative_path_tbindir=$func_normal_abspath_result
321
322 # Ascend the tree starting from libdir
323 while :; do
324 # check if we have found a prefix of bindir
325 case $func_relative_path_tbindir in
326 $func_relative_path_tlibdir)
327 # found an exact match
328 func_relative_path_tcancelled=
329 break
330 ;;
331 $func_relative_path_tlibdir*)
332 # found a matching prefix
333 func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
334 func_relative_path_tcancelled=$func_stripname_result
335 if test -z "$func_relative_path_result"; then
336 func_relative_path_result=.
337 fi
338 break
339 ;;
340 *)
341 func_dirname $func_relative_path_tlibdir
342 func_relative_path_tlibdir=${func_dirname_result}
343 if test "x$func_relative_path_tlibdir" = x ; then
344 # Have to descend all the way to the root!
345 func_relative_path_result=../$func_relative_path_result
346 func_relative_path_tcancelled=$func_relative_path_tbindir
347 break
348 fi
349 func_relative_path_result=../$func_relative_path_result
350 ;;
351 esac
352 done
353
354 # Now calculate path; take care to avoid doubling-up slashes.
355 func_stripname '' '/' "$func_relative_path_result"
356 func_relative_path_result=$func_stripname_result
357 func_stripname '/' '/' "$func_relative_path_tcancelled"
358 if test "x$func_stripname_result" != x ; then
359 func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
166360 fi
167 func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
168 }
169
170 # Generated shell functions inserted here.
171
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"
361
362 # Normalisation. If bindir is libdir, return empty string,
363 # else relative path ending with a slash; either way, target
364 # file name can be directly appended.
365 if test ! -z "$func_relative_path_result"; then
366 func_stripname './' '' "$func_relative_path_result/"
367 func_relative_path_result=$func_stripname_result
368 fi
369 }
178370
179371 # 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:
182372 func_dirname_and_basename "$progpath"
183373 progname=$func_basename_result
184 case $progname in
185 -*) progname=./$progname ;;
186 esac
187374
188375 # Make sure we have an absolute path for reexecution:
189376 case $progpath in
195382 ;;
196383 *)
197384 save_IFS="$IFS"
198 IFS=:
385 IFS=${PATH_SEPARATOR-:}
199386 for progdir in $PATH; do
200387 IFS="$save_IFS"
201388 test -x "$progdir/$progname" && break
213400
214401 # Same as above, but do not quote variable references.
215402 double_quote_subst='s/\(["`\\]\)/\\\1/g'
403
404 # Sed substitution that turns a string into a regex matching for the
405 # string literally.
406 sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
407
408 # Sed substitution that converts a w32 file name or path
409 # which contains forward slashes, into one that contains
410 # (escaped) backslashes. A very naive implementation.
411 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
216412
217413 # Re-`\' parameter expansions in output of double_quote_subst that were
218414 # `\'-ed in input to the same. If an odd number of `\' preceded a '$'
242438 # name if it has been set yet.
243439 func_echo ()
244440 {
245 $ECHO "$progname${mode+: }$mode: $*"
441 $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
246442 }
247443
248444 # func_verbose arg...
257453 :
258454 }
259455
456 # func_echo_all arg...
457 # Invoke $ECHO with all args, space-separated.
458 func_echo_all ()
459 {
460 $ECHO "$*"
461 }
462
260463 # func_error arg...
261464 # Echo program name prefixed message to standard error.
262465 func_error ()
263466 {
264 $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
467 $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
265468 }
266469
267470 # func_warning arg...
268471 # Echo program name prefixed warning message to standard error.
269472 func_warning ()
270473 {
271 $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
474 $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
272475
273476 # bash bug again:
274477 :
325528 case $my_directory_path in */*) ;; *) break ;; esac
326529
327530 # ...otherwise throw away the child directory and loop
328 my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
531 my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
329532 done
330 my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
533 my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
331534
332535 save_mkdir_p_IFS="$IFS"; IFS=':'
333536 for my_dir in $my_dir_list; do
377580 func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
378581 fi
379582
380 $ECHO "X$my_tmpdir" | $Xsed
583 $ECHO "$my_tmpdir"
381584 }
382585
383586
391594 {
392595 case $1 in
393596 *[\\\`\"\$]*)
394 func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
597 func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
395598 *)
396599 func_quote_for_eval_unquoted_result="$1" ;;
397600 esac
418621 {
419622 case $1 in
420623 *[\\\`\"]*)
421 my_arg=`$ECHO "X$1" | $Xsed \
624 my_arg=`$ECHO "$1" | $SED \
422625 -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
423626 *)
424627 my_arg="$1" ;;
487690 fi
488691 }
489692
490
491
693 # func_tr_sh
694 # Turn $1 into a string suitable for a shell variable name.
695 # Result is stored in $func_tr_sh_result. All characters
696 # not in the set a-zA-Z0-9_ are replaced with '_'. Further,
697 # if $1 begins with a digit, a '_' is prepended as well.
698 func_tr_sh ()
699 {
700 case $1 in
701 [0-9]* | *[!a-zA-Z0-9_]*)
702 func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
703 ;;
704 * )
705 func_tr_sh_result=$1
706 ;;
707 esac
708 }
492709
493710
494711 # func_version
495712 # Echo version message to standard output and exit.
496713 func_version ()
497714 {
498 $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
715 $opt_debug
716
717 $SED -n '/(C)/!b go
718 :more
719 /\./!{
720 N
721 s/\n# / /
722 b more
723 }
724 :go
725 /^# '$PROGRAM' (GNU /,/# warranty; / {
499726 s/^# //
500727 s/^# *$//
501728 s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
508735 # Echo short help message to standard output and exit.
509736 func_usage ()
510737 {
511 $SED -n '/^# Usage:/,/# -h/ {
738 $opt_debug
739
740 $SED -n '/^# Usage:/,/^# *.*--help/ {
512741 s/^# //
513742 s/^# *$//
514743 s/\$progname/'$progname'/
515744 p
516745 }' < "$progpath"
517 $ECHO
746 echo
518747 $ECHO "run \`$progname --help | more' for full usage"
519748 exit $?
520749 }
521750
522 # func_help
523 # Echo long help message to standard output and exit.
751 # func_help [NOEXIT]
752 # Echo long help message to standard output and exit,
753 # unless 'noexit' is passed as argument.
524754 func_help ()
525755 {
756 $opt_debug
757
526758 $SED -n '/^# Usage:/,/# Report bugs to/ {
759 :print
527760 s/^# //
528761 s/^# *$//
529762 s*\$progname*'$progname'*
533766 s*\$LTCFLAGS*'"$LTCFLAGS"'*
534767 s*\$LD*'"$LD"'*
535768 s/\$with_gnu_ld/'"$with_gnu_ld"'/
536 s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
537 s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
769 s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
770 s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
538771 p
539 }' < "$progpath"
540 exit $?
772 d
773 }
774 /^# .* home page:/b print
775 /^# General help using/b print
776 ' < "$progpath"
777 ret=$?
778 if test -z "$1"; then
779 exit $ret
780 fi
541781 }
542782
543783 # func_missing_arg argname
545785 # exit_cmd.
546786 func_missing_arg ()
547787 {
548 func_error "missing argument for $1"
788 $opt_debug
789
790 func_error "missing argument for $1."
549791 exit_cmd=exit
550792 }
551793
794
795 # func_split_short_opt shortopt
796 # Set func_split_short_opt_name and func_split_short_opt_arg shell
797 # variables after splitting SHORTOPT after the 2nd character.
798 func_split_short_opt ()
799 {
800 my_sed_short_opt='1s/^\(..\).*$/\1/;q'
801 my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
802
803 func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
804 func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
805 } # func_split_short_opt may be replaced by extended shell implementation
806
807
808 # func_split_long_opt longopt
809 # Set func_split_long_opt_name and func_split_long_opt_arg shell
810 # variables after splitting LONGOPT at the `=' sign.
811 func_split_long_opt ()
812 {
813 my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
814 my_sed_long_arg='1s/^--[^=]*=//'
815
816 func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
817 func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
818 } # func_split_long_opt may be replaced by extended shell implementation
819
552820 exit_cmd=:
553821
554822
555823
556824
557
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
581825
582826 magic="%%%MAGIC variable%%%"
583827 magic_exe="%%%MAGIC EXE variable%%%"
584828
585829 # Global variables.
586 # $mode is unset
587830 nonopt=
588 execute_dlfiles=
589831 preserve_args=
590832 lo2o="s/\\.lo\$/.${objext}/"
591833 o2lo="s/\\.${objext}\$/.lo/"
592834 extracted_archives=
593835 extracted_serial=0
594836
595 opt_dry_run=false
596 opt_duplicate_deps=false
597 opt_silent=false
598 opt_debug=:
599
600837 # If this variable is set in any of the actions, the command in it
601838 # will be execed at the end. This prevents here-documents from being
602839 # left over by shells.
603840 exec_cmd=
604841
842 # func_append var value
843 # Append VALUE to the end of shell variable VAR.
844 func_append ()
845 {
846 eval "${1}=\$${1}\${2}"
847 } # func_append may be replaced by extended shell implementation
848
849 # func_append_quoted var value
850 # Quote VALUE and append to the end of shell variable VAR, separated
851 # by a space.
852 func_append_quoted ()
853 {
854 func_quote_for_eval "${2}"
855 eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
856 } # func_append_quoted may be replaced by extended shell implementation
857
858
859 # func_arith arithmetic-term...
860 func_arith ()
861 {
862 func_arith_result=`expr "${@}"`
863 } # func_arith may be replaced by extended shell implementation
864
865
866 # func_len string
867 # STRING may not start with a hyphen.
868 func_len ()
869 {
870 func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
871 } # func_len may be replaced by extended shell implementation
872
873
874 # func_lo2o object
875 func_lo2o ()
876 {
877 func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
878 } # func_lo2o may be replaced by extended shell implementation
879
880
881 # func_xform libobj-or-source
882 func_xform ()
883 {
884 func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
885 } # func_xform may be replaced by extended shell implementation
886
887
605888 # func_fatal_configuration arg...
606889 # Echo program name prefixed message to standard error, followed by
607890 # a configuration failure hint, and exit.
635918 # Display the features supported by this script.
636919 func_features ()
637920 {
638 $ECHO "host: $host"
921 echo "host: $host"
639922 if test "$build_libtool_libs" = yes; then
640 $ECHO "enable shared libraries"
923 echo "enable shared libraries"
641924 else
642 $ECHO "disable shared libraries"
925 echo "disable shared libraries"
643926 fi
644927 if test "$build_old_libs" = yes; then
645 $ECHO "enable static libraries"
928 echo "enable static libraries"
646929 else
647 $ECHO "disable static libraries"
930 echo "disable static libraries"
648931 fi
649932
650933 exit $?
689972 fi
690973 ;;
691974 esac
692 }
693
694 # Parse options once, thoroughly. This comes as soon as possible in
695 # the script to make things like `libtool --version' happen quickly.
696 {
697
698 # Shorthand for --mode=foo, only valid as the first argument
699 case $1 in
700 clean|clea|cle|cl)
701 shift; set dummy --mode clean ${1+"$@"}; shift
702 ;;
703 compile|compil|compi|comp|com|co|c)
704 shift; set dummy --mode compile ${1+"$@"}; shift
705 ;;
706 execute|execut|execu|exec|exe|ex|e)
707 shift; set dummy --mode execute ${1+"$@"}; shift
708 ;;
709 finish|finis|fini|fin|fi|f)
710 shift; set dummy --mode finish ${1+"$@"}; shift
711 ;;
712 install|instal|insta|inst|ins|in|i)
713 shift; set dummy --mode install ${1+"$@"}; shift
714 ;;
715 link|lin|li|l)
716 shift; set dummy --mode link ${1+"$@"}; shift
717 ;;
718 uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
719 shift; set dummy --mode uninstall ${1+"$@"}; shift
720 ;;
721 esac
722
723 # Parse non-mode specific arguments:
724 while test "$#" -gt 0; do
725 opt="$1"
726 shift
727
728 case $opt in
729 --config) func_config ;;
730
731 --debug) preserve_args="$preserve_args $opt"
732 func_echo "enabling shell trace mode"
733 opt_debug='set -x'
734 $opt_debug
735 ;;
736
737 -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break
738 execute_dlfiles="$execute_dlfiles $1"
739 shift
740 ;;
741
742 --dry-run | -n) opt_dry_run=: ;;
743 --features) func_features ;;
744 --finish) mode="finish" ;;
745
746 --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break
747 case $1 in
748 # Valid mode arguments:
749 clean) ;;
750 compile) ;;
751 execute) ;;
752 finish) ;;
753 install) ;;
754 link) ;;
755 relink) ;;
756 uninstall) ;;
757
758 # Catch anything else as an error
759 *) func_error "invalid argument for $opt"
760 exit_cmd=exit
761 break
762 ;;
763 esac
764
765 mode="$1"
766 shift
767 ;;
768
769 --preserve-dup-deps)
770 opt_duplicate_deps=: ;;
771
772 --quiet|--silent) preserve_args="$preserve_args $opt"
773 opt_silent=:
774 ;;
775
776 --verbose| -v) preserve_args="$preserve_args $opt"
777 opt_silent=false
778 ;;
779
780 --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break
781 preserve_args="$preserve_args $opt $1"
782 func_enable_tag "$1" # tagname is set here
783 shift
784 ;;
785
786 # Separate optargs to long options:
787 -dlopen=*|--mode=*|--tag=*)
788 func_opt_split "$opt"
789 set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
790 shift
791 ;;
792
793 -\?|-h) func_usage ;;
794 --help) opt_help=: ;;
795 --version) func_version ;;
796
797 -*) func_fatal_help "unrecognized option \`$opt'" ;;
798
799 *) nonopt="$opt"
800 break
801 ;;
802 esac
803 done
804
805
806 case $host in
807 *cygwin* | *mingw* | *pw32* | *cegcc*)
808 # don't eliminate duplications in $postdeps and $predeps
809 opt_duplicate_compiler_generated_deps=:
810 ;;
811 *)
812 opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
813 ;;
814 esac
815
816 # Having warned about all mis-specified options, bail out if
817 # anything was wrong.
818 $exit_cmd $EXIT_FAILURE
819975 }
820976
821977 # func_check_version_match
8541010 }
8551011
8561012
1013 # Shorthand for --mode=foo, only valid as the first argument
1014 case $1 in
1015 clean|clea|cle|cl)
1016 shift; set dummy --mode clean ${1+"$@"}; shift
1017 ;;
1018 compile|compil|compi|comp|com|co|c)
1019 shift; set dummy --mode compile ${1+"$@"}; shift
1020 ;;
1021 execute|execut|execu|exec|exe|ex|e)
1022 shift; set dummy --mode execute ${1+"$@"}; shift
1023 ;;
1024 finish|finis|fini|fin|fi|f)
1025 shift; set dummy --mode finish ${1+"$@"}; shift
1026 ;;
1027 install|instal|insta|inst|ins|in|i)
1028 shift; set dummy --mode install ${1+"$@"}; shift
1029 ;;
1030 link|lin|li|l)
1031 shift; set dummy --mode link ${1+"$@"}; shift
1032 ;;
1033 uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
1034 shift; set dummy --mode uninstall ${1+"$@"}; shift
1035 ;;
1036 esac
1037
1038
1039
1040 # Option defaults:
1041 opt_debug=:
1042 opt_dry_run=false
1043 opt_config=false
1044 opt_preserve_dup_deps=false
1045 opt_features=false
1046 opt_finish=false
1047 opt_help=false
1048 opt_help_all=false
1049 opt_silent=:
1050 opt_warning=:
1051 opt_verbose=:
1052 opt_silent=false
1053 opt_verbose=false
1054
1055
1056 # Parse options once, thoroughly. This comes as soon as possible in the
1057 # script to make things like `--version' happen as quickly as we can.
1058 {
1059 # this just eases exit handling
1060 while test $# -gt 0; do
1061 opt="$1"
1062 shift
1063 case $opt in
1064 --debug|-x) opt_debug='set -x'
1065 func_echo "enabling shell trace mode"
1066 $opt_debug
1067 ;;
1068 --dry-run|--dryrun|-n)
1069 opt_dry_run=:
1070 ;;
1071 --config)
1072 opt_config=:
1073 func_config
1074 ;;
1075 --dlopen|-dlopen)
1076 optarg="$1"
1077 opt_dlopen="${opt_dlopen+$opt_dlopen
1078 }$optarg"
1079 shift
1080 ;;
1081 --preserve-dup-deps)
1082 opt_preserve_dup_deps=:
1083 ;;
1084 --features)
1085 opt_features=:
1086 func_features
1087 ;;
1088 --finish)
1089 opt_finish=:
1090 set dummy --mode finish ${1+"$@"}; shift
1091 ;;
1092 --help)
1093 opt_help=:
1094 ;;
1095 --help-all)
1096 opt_help_all=:
1097 opt_help=': help-all'
1098 ;;
1099 --mode)
1100 test $# = 0 && func_missing_arg $opt && break
1101 optarg="$1"
1102 opt_mode="$optarg"
1103 case $optarg in
1104 # Valid mode arguments:
1105 clean|compile|execute|finish|install|link|relink|uninstall) ;;
1106
1107 # Catch anything else as an error
1108 *) func_error "invalid argument for $opt"
1109 exit_cmd=exit
1110 break
1111 ;;
1112 esac
1113 shift
1114 ;;
1115 --no-silent|--no-quiet)
1116 opt_silent=false
1117 func_append preserve_args " $opt"
1118 ;;
1119 --no-warning|--no-warn)
1120 opt_warning=false
1121 func_append preserve_args " $opt"
1122 ;;
1123 --no-verbose)
1124 opt_verbose=false
1125 func_append preserve_args " $opt"
1126 ;;
1127 --silent|--quiet)
1128 opt_silent=:
1129 func_append preserve_args " $opt"
1130 opt_verbose=false
1131 ;;
1132 --verbose|-v)
1133 opt_verbose=:
1134 func_append preserve_args " $opt"
1135 opt_silent=false
1136 ;;
1137 --tag)
1138 test $# = 0 && func_missing_arg $opt && break
1139 optarg="$1"
1140 opt_tag="$optarg"
1141 func_append preserve_args " $opt $optarg"
1142 func_enable_tag "$optarg"
1143 shift
1144 ;;
1145
1146 -\?|-h) func_usage ;;
1147 --help) func_help ;;
1148 --version) func_version ;;
1149
1150 # Separate optargs to long options:
1151 --*=*)
1152 func_split_long_opt "$opt"
1153 set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
1154 shift
1155 ;;
1156
1157 # Separate non-argument short options:
1158 -\?*|-h*|-n*|-v*)
1159 func_split_short_opt "$opt"
1160 set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
1161 shift
1162 ;;
1163
1164 --) break ;;
1165 -*) func_fatal_help "unrecognized option \`$opt'" ;;
1166 *) set dummy "$opt" ${1+"$@"}; shift; break ;;
1167 esac
1168 done
1169
1170 # Validate options:
1171
1172 # save first non-option argument
1173 if test "$#" -gt 0; then
1174 nonopt="$opt"
1175 shift
1176 fi
1177
1178 # preserve --debug
1179 test "$opt_debug" = : || func_append preserve_args " --debug"
1180
1181 case $host in
1182 *cygwin* | *mingw* | *pw32* | *cegcc*)
1183 # don't eliminate duplications in $postdeps and $predeps
1184 opt_duplicate_compiler_generated_deps=:
1185 ;;
1186 *)
1187 opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
1188 ;;
1189 esac
1190
1191 $opt_help || {
1192 # Sanity checks first:
1193 func_check_version_match
1194
1195 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
1196 func_fatal_configuration "not configured to build any kind of library"
1197 fi
1198
1199 # Darwin sucks
1200 eval std_shrext=\"$shrext_cmds\"
1201
1202 # Only execute mode is allowed to have -dlopen flags.
1203 if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
1204 func_error "unrecognized option \`-dlopen'"
1205 $ECHO "$help" 1>&2
1206 exit $EXIT_FAILURE
1207 fi
1208
1209 # Change the help message to a mode-specific one.
1210 generic_help="$help"
1211 help="Try \`$progname --help --mode=$opt_mode' for more information."
1212 }
1213
1214
1215 # Bail if the options were screwed
1216 $exit_cmd $EXIT_FAILURE
1217 }
1218
1219
1220
1221
8571222 ## ----------- ##
8581223 ## Main. ##
8591224 ## ----------- ##
860
861 $opt_help || {
862 # Sanity checks first:
863 func_check_version_match
864
865 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
866 func_fatal_configuration "not configured to build any kind of library"
867 fi
868
869 test -z "$mode" && func_fatal_error "error: you must specify a MODE."
870
871
872 # Darwin sucks
873 eval std_shrext=\"$shrext_cmds\"
874
875
876 # Only execute mode is allowed to have -dlopen flags.
877 if test -n "$execute_dlfiles" && test "$mode" != execute; then
878 func_error "unrecognized option \`-dlopen'"
879 $ECHO "$help" 1>&2
880 exit $EXIT_FAILURE
881 fi
882
883 # Change the help message to a mode-specific one.
884 generic_help="$help"
885 help="Try \`$progname --help --mode=$mode' for more information."
886 }
887
8881225
8891226 # func_lalib_p file
8901227 # True iff FILE is a libtool `.la' library or `.lo' object file.
9491286 # temporary ltwrapper_script.
9501287 func_ltwrapper_scriptname ()
9511288 {
952 func_ltwrapper_scriptname_result=""
953 if func_ltwrapper_executable_p "$1"; then
954 func_dirname_and_basename "$1" "" "."
955 func_stripname '' '.exe' "$func_basename_result"
956 func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
957 fi
1289 func_dirname_and_basename "$1" "" "."
1290 func_stripname '' '.exe' "$func_basename_result"
1291 func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
9581292 }
9591293
9601294 # func_ltwrapper_p file
10001334 }
10011335
10021336
1337 # func_resolve_sysroot PATH
1338 # Replace a leading = in PATH with a sysroot. Store the result into
1339 # func_resolve_sysroot_result
1340 func_resolve_sysroot ()
1341 {
1342 func_resolve_sysroot_result=$1
1343 case $func_resolve_sysroot_result in
1344 =*)
1345 func_stripname '=' '' "$func_resolve_sysroot_result"
1346 func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
1347 ;;
1348 esac
1349 }
1350
1351 # func_replace_sysroot PATH
1352 # If PATH begins with the sysroot, replace it with = and
1353 # store the result into func_replace_sysroot_result.
1354 func_replace_sysroot ()
1355 {
1356 case "$lt_sysroot:$1" in
1357 ?*:"$lt_sysroot"*)
1358 func_stripname "$lt_sysroot" '' "$1"
1359 func_replace_sysroot_result="=$func_stripname_result"
1360 ;;
1361 *)
1362 # Including no sysroot.
1363 func_replace_sysroot_result=$1
1364 ;;
1365 esac
1366 }
1367
10031368 # func_infer_tag arg
10041369 # Infer tagged configuration to use if any are available and
10051370 # if one wasn't chosen via the "--tag" command line option.
10121377 if test -n "$available_tags" && test -z "$tagname"; then
10131378 CC_quoted=
10141379 for arg in $CC; do
1015 func_quote_for_eval "$arg"
1016 CC_quoted="$CC_quoted $func_quote_for_eval_result"
1380 func_append_quoted CC_quoted "$arg"
10171381 done
1382 CC_expanded=`func_echo_all $CC`
1383 CC_quoted_expanded=`func_echo_all $CC_quoted`
10181384 case $@ in
10191385 # Blanks in the command may have been stripped by the calling shell,
10201386 # but not from the CC environment variable when configure was run.
1021 " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
1387 " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
1388 " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
10221389 # Blanks at the start of $base_compile will cause this to fail
10231390 # if we don't check for them as well.
10241391 *)
10291396 CC_quoted=
10301397 for arg in $CC; do
10311398 # Double-quote args containing other shell metacharacters.
1032 func_quote_for_eval "$arg"
1033 CC_quoted="$CC_quoted $func_quote_for_eval_result"
1399 func_append_quoted CC_quoted "$arg"
10341400 done
1401 CC_expanded=`func_echo_all $CC`
1402 CC_quoted_expanded=`func_echo_all $CC_quoted`
10351403 case "$@ " in
1036 " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
1404 " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
1405 " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
10371406 # The compiler in the base compile command matches
10381407 # the one in the tagged configuration.
10391408 # Assume this is the tagged configuration we want.
10961465 }
10971466 }
10981467
1468
1469 ##################################################
1470 # FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
1471 ##################################################
1472
1473 # func_convert_core_file_wine_to_w32 ARG
1474 # Helper function used by file name conversion functions when $build is *nix,
1475 # and $host is mingw, cygwin, or some other w32 environment. Relies on a
1476 # correctly configured wine environment available, with the winepath program
1477 # in $build's $PATH.
1478 #
1479 # ARG is the $build file name to be converted to w32 format.
1480 # Result is available in $func_convert_core_file_wine_to_w32_result, and will
1481 # be empty on error (or when ARG is empty)
1482 func_convert_core_file_wine_to_w32 ()
1483 {
1484 $opt_debug
1485 func_convert_core_file_wine_to_w32_result="$1"
1486 if test -n "$1"; then
1487 # Unfortunately, winepath does not exit with a non-zero error code, so we
1488 # are forced to check the contents of stdout. On the other hand, if the
1489 # command is not found, the shell will set an exit code of 127 and print
1490 # *an error message* to stdout. So we must check for both error code of
1491 # zero AND non-empty stdout, which explains the odd construction:
1492 func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
1493 if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
1494 func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
1495 $SED -e "$lt_sed_naive_backslashify"`
1496 else
1497 func_convert_core_file_wine_to_w32_result=
1498 fi
1499 fi
1500 }
1501 # end: func_convert_core_file_wine_to_w32
1502
1503
1504 # func_convert_core_path_wine_to_w32 ARG
1505 # Helper function used by path conversion functions when $build is *nix, and
1506 # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
1507 # configured wine environment available, with the winepath program in $build's
1508 # $PATH. Assumes ARG has no leading or trailing path separator characters.
1509 #
1510 # ARG is path to be converted from $build format to win32.
1511 # Result is available in $func_convert_core_path_wine_to_w32_result.
1512 # Unconvertible file (directory) names in ARG are skipped; if no directory names
1513 # are convertible, then the result may be empty.
1514 func_convert_core_path_wine_to_w32 ()
1515 {
1516 $opt_debug
1517 # unfortunately, winepath doesn't convert paths, only file names
1518 func_convert_core_path_wine_to_w32_result=""
1519 if test -n "$1"; then
1520 oldIFS=$IFS
1521 IFS=:
1522 for func_convert_core_path_wine_to_w32_f in $1; do
1523 IFS=$oldIFS
1524 func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
1525 if test -n "$func_convert_core_file_wine_to_w32_result" ; then
1526 if test -z "$func_convert_core_path_wine_to_w32_result"; then
1527 func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
1528 else
1529 func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
1530 fi
1531 fi
1532 done
1533 IFS=$oldIFS
1534 fi
1535 }
1536 # end: func_convert_core_path_wine_to_w32
1537
1538
1539 # func_cygpath ARGS...
1540 # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
1541 # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
1542 # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
1543 # (2), returns the Cygwin file name or path in func_cygpath_result (input
1544 # file name or path is assumed to be in w32 format, as previously converted
1545 # from $build's *nix or MSYS format). In case (3), returns the w32 file name
1546 # or path in func_cygpath_result (input file name or path is assumed to be in
1547 # Cygwin format). Returns an empty string on error.
1548 #
1549 # ARGS are passed to cygpath, with the last one being the file name or path to
1550 # be converted.
1551 #
1552 # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
1553 # environment variable; do not put it in $PATH.
1554 func_cygpath ()
1555 {
1556 $opt_debug
1557 if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
1558 func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
1559 if test "$?" -ne 0; then
1560 # on failure, ensure result is empty
1561 func_cygpath_result=
1562 fi
1563 else
1564 func_cygpath_result=
1565 func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
1566 fi
1567 }
1568 #end: func_cygpath
1569
1570
1571 # func_convert_core_msys_to_w32 ARG
1572 # Convert file name or path ARG from MSYS format to w32 format. Return
1573 # result in func_convert_core_msys_to_w32_result.
1574 func_convert_core_msys_to_w32 ()
1575 {
1576 $opt_debug
1577 # awkward: cmd appends spaces to result
1578 func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
1579 $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
1580 }
1581 #end: func_convert_core_msys_to_w32
1582
1583
1584 # func_convert_file_check ARG1 ARG2
1585 # Verify that ARG1 (a file name in $build format) was converted to $host
1586 # format in ARG2. Otherwise, emit an error message, but continue (resetting
1587 # func_to_host_file_result to ARG1).
1588 func_convert_file_check ()
1589 {
1590 $opt_debug
1591 if test -z "$2" && test -n "$1" ; then
1592 func_error "Could not determine host file name corresponding to"
1593 func_error " \`$1'"
1594 func_error "Continuing, but uninstalled executables may not work."
1595 # Fallback:
1596 func_to_host_file_result="$1"
1597 fi
1598 }
1599 # end func_convert_file_check
1600
1601
1602 # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
1603 # Verify that FROM_PATH (a path in $build format) was converted to $host
1604 # format in TO_PATH. Otherwise, emit an error message, but continue, resetting
1605 # func_to_host_file_result to a simplistic fallback value (see below).
1606 func_convert_path_check ()
1607 {
1608 $opt_debug
1609 if test -z "$4" && test -n "$3"; then
1610 func_error "Could not determine the host path corresponding to"
1611 func_error " \`$3'"
1612 func_error "Continuing, but uninstalled executables may not work."
1613 # Fallback. This is a deliberately simplistic "conversion" and
1614 # should not be "improved". See libtool.info.
1615 if test "x$1" != "x$2"; then
1616 lt_replace_pathsep_chars="s|$1|$2|g"
1617 func_to_host_path_result=`echo "$3" |
1618 $SED -e "$lt_replace_pathsep_chars"`
1619 else
1620 func_to_host_path_result="$3"
1621 fi
1622 fi
1623 }
1624 # end func_convert_path_check
1625
1626
1627 # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
1628 # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
1629 # and appending REPL if ORIG matches BACKPAT.
1630 func_convert_path_front_back_pathsep ()
1631 {
1632 $opt_debug
1633 case $4 in
1634 $1 ) func_to_host_path_result="$3$func_to_host_path_result"
1635 ;;
1636 esac
1637 case $4 in
1638 $2 ) func_append func_to_host_path_result "$3"
1639 ;;
1640 esac
1641 }
1642 # end func_convert_path_front_back_pathsep
1643
1644
1645 ##################################################
1646 # $build to $host FILE NAME CONVERSION FUNCTIONS #
1647 ##################################################
1648 # invoked via `$to_host_file_cmd ARG'
1649 #
1650 # In each case, ARG is the path to be converted from $build to $host format.
1651 # Result will be available in $func_to_host_file_result.
1652
1653
1654 # func_to_host_file ARG
1655 # Converts the file name ARG from $build format to $host format. Return result
1656 # in func_to_host_file_result.
1657 func_to_host_file ()
1658 {
1659 $opt_debug
1660 $to_host_file_cmd "$1"
1661 }
1662 # end func_to_host_file
1663
1664
1665 # func_to_tool_file ARG LAZY
1666 # converts the file name ARG from $build format to toolchain format. Return
1667 # result in func_to_tool_file_result. If the conversion in use is listed
1668 # in (the comma separated) LAZY, no conversion takes place.
1669 func_to_tool_file ()
1670 {
1671 $opt_debug
1672 case ,$2, in
1673 *,"$to_tool_file_cmd",*)
1674 func_to_tool_file_result=$1
1675 ;;
1676 *)
1677 $to_tool_file_cmd "$1"
1678 func_to_tool_file_result=$func_to_host_file_result
1679 ;;
1680 esac
1681 }
1682 # end func_to_tool_file
1683
1684
1685 # func_convert_file_noop ARG
1686 # Copy ARG to func_to_host_file_result.
1687 func_convert_file_noop ()
1688 {
1689 func_to_host_file_result="$1"
1690 }
1691 # end func_convert_file_noop
1692
1693
1694 # func_convert_file_msys_to_w32 ARG
1695 # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
1696 # conversion to w32 is not available inside the cwrapper. Returns result in
1697 # func_to_host_file_result.
1698 func_convert_file_msys_to_w32 ()
1699 {
1700 $opt_debug
1701 func_to_host_file_result="$1"
1702 if test -n "$1"; then
1703 func_convert_core_msys_to_w32 "$1"
1704 func_to_host_file_result="$func_convert_core_msys_to_w32_result"
1705 fi
1706 func_convert_file_check "$1" "$func_to_host_file_result"
1707 }
1708 # end func_convert_file_msys_to_w32
1709
1710
1711 # func_convert_file_cygwin_to_w32 ARG
1712 # Convert file name ARG from Cygwin to w32 format. Returns result in
1713 # func_to_host_file_result.
1714 func_convert_file_cygwin_to_w32 ()
1715 {
1716 $opt_debug
1717 func_to_host_file_result="$1"
1718 if test -n "$1"; then
1719 # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
1720 # LT_CYGPATH in this case.
1721 func_to_host_file_result=`cygpath -m "$1"`
1722 fi
1723 func_convert_file_check "$1" "$func_to_host_file_result"
1724 }
1725 # end func_convert_file_cygwin_to_w32
1726
1727
1728 # func_convert_file_nix_to_w32 ARG
1729 # Convert file name ARG from *nix to w32 format. Requires a wine environment
1730 # and a working winepath. Returns result in func_to_host_file_result.
1731 func_convert_file_nix_to_w32 ()
1732 {
1733 $opt_debug
1734 func_to_host_file_result="$1"
1735 if test -n "$1"; then
1736 func_convert_core_file_wine_to_w32 "$1"
1737 func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
1738 fi
1739 func_convert_file_check "$1" "$func_to_host_file_result"
1740 }
1741 # end func_convert_file_nix_to_w32
1742
1743
1744 # func_convert_file_msys_to_cygwin ARG
1745 # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
1746 # Returns result in func_to_host_file_result.
1747 func_convert_file_msys_to_cygwin ()
1748 {
1749 $opt_debug
1750 func_to_host_file_result="$1"
1751 if test -n "$1"; then
1752 func_convert_core_msys_to_w32 "$1"
1753 func_cygpath -u "$func_convert_core_msys_to_w32_result"
1754 func_to_host_file_result="$func_cygpath_result"
1755 fi
1756 func_convert_file_check "$1" "$func_to_host_file_result"
1757 }
1758 # end func_convert_file_msys_to_cygwin
1759
1760
1761 # func_convert_file_nix_to_cygwin ARG
1762 # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed
1763 # in a wine environment, working winepath, and LT_CYGPATH set. Returns result
1764 # in func_to_host_file_result.
1765 func_convert_file_nix_to_cygwin ()
1766 {
1767 $opt_debug
1768 func_to_host_file_result="$1"
1769 if test -n "$1"; then
1770 # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
1771 func_convert_core_file_wine_to_w32 "$1"
1772 func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
1773 func_to_host_file_result="$func_cygpath_result"
1774 fi
1775 func_convert_file_check "$1" "$func_to_host_file_result"
1776 }
1777 # end func_convert_file_nix_to_cygwin
1778
1779
1780 #############################################
1781 # $build to $host PATH CONVERSION FUNCTIONS #
1782 #############################################
1783 # invoked via `$to_host_path_cmd ARG'
1784 #
1785 # In each case, ARG is the path to be converted from $build to $host format.
1786 # The result will be available in $func_to_host_path_result.
1787 #
1788 # Path separators are also converted from $build format to $host format. If
1789 # ARG begins or ends with a path separator character, it is preserved (but
1790 # converted to $host format) on output.
1791 #
1792 # All path conversion functions are named using the following convention:
1793 # file name conversion function : func_convert_file_X_to_Y ()
1794 # path conversion function : func_convert_path_X_to_Y ()
1795 # where, for any given $build/$host combination the 'X_to_Y' value is the
1796 # same. If conversion functions are added for new $build/$host combinations,
1797 # the two new functions must follow this pattern, or func_init_to_host_path_cmd
1798 # will break.
1799
1800
1801 # func_init_to_host_path_cmd
1802 # Ensures that function "pointer" variable $to_host_path_cmd is set to the
1803 # appropriate value, based on the value of $to_host_file_cmd.
1804 to_host_path_cmd=
1805 func_init_to_host_path_cmd ()
1806 {
1807 $opt_debug
1808 if test -z "$to_host_path_cmd"; then
1809 func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
1810 to_host_path_cmd="func_convert_path_${func_stripname_result}"
1811 fi
1812 }
1813
1814
1815 # func_to_host_path ARG
1816 # Converts the path ARG from $build format to $host format. Return result
1817 # in func_to_host_path_result.
1818 func_to_host_path ()
1819 {
1820 $opt_debug
1821 func_init_to_host_path_cmd
1822 $to_host_path_cmd "$1"
1823 }
1824 # end func_to_host_path
1825
1826
1827 # func_convert_path_noop ARG
1828 # Copy ARG to func_to_host_path_result.
1829 func_convert_path_noop ()
1830 {
1831 func_to_host_path_result="$1"
1832 }
1833 # end func_convert_path_noop
1834
1835
1836 # func_convert_path_msys_to_w32 ARG
1837 # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
1838 # conversion to w32 is not available inside the cwrapper. Returns result in
1839 # func_to_host_path_result.
1840 func_convert_path_msys_to_w32 ()
1841 {
1842 $opt_debug
1843 func_to_host_path_result="$1"
1844 if test -n "$1"; then
1845 # Remove leading and trailing path separator characters from ARG. MSYS
1846 # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
1847 # and winepath ignores them completely.
1848 func_stripname : : "$1"
1849 func_to_host_path_tmp1=$func_stripname_result
1850 func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
1851 func_to_host_path_result="$func_convert_core_msys_to_w32_result"
1852 func_convert_path_check : ";" \
1853 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1854 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
1855 fi
1856 }
1857 # end func_convert_path_msys_to_w32
1858
1859
1860 # func_convert_path_cygwin_to_w32 ARG
1861 # Convert path ARG from Cygwin to w32 format. Returns result in
1862 # func_to_host_file_result.
1863 func_convert_path_cygwin_to_w32 ()
1864 {
1865 $opt_debug
1866 func_to_host_path_result="$1"
1867 if test -n "$1"; then
1868 # See func_convert_path_msys_to_w32:
1869 func_stripname : : "$1"
1870 func_to_host_path_tmp1=$func_stripname_result
1871 func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
1872 func_convert_path_check : ";" \
1873 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1874 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
1875 fi
1876 }
1877 # end func_convert_path_cygwin_to_w32
1878
1879
1880 # func_convert_path_nix_to_w32 ARG
1881 # Convert path ARG from *nix to w32 format. Requires a wine environment and
1882 # a working winepath. Returns result in func_to_host_file_result.
1883 func_convert_path_nix_to_w32 ()
1884 {
1885 $opt_debug
1886 func_to_host_path_result="$1"
1887 if test -n "$1"; then
1888 # See func_convert_path_msys_to_w32:
1889 func_stripname : : "$1"
1890 func_to_host_path_tmp1=$func_stripname_result
1891 func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
1892 func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
1893 func_convert_path_check : ";" \
1894 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1895 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
1896 fi
1897 }
1898 # end func_convert_path_nix_to_w32
1899
1900
1901 # func_convert_path_msys_to_cygwin ARG
1902 # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
1903 # Returns result in func_to_host_file_result.
1904 func_convert_path_msys_to_cygwin ()
1905 {
1906 $opt_debug
1907 func_to_host_path_result="$1"
1908 if test -n "$1"; then
1909 # See func_convert_path_msys_to_w32:
1910 func_stripname : : "$1"
1911 func_to_host_path_tmp1=$func_stripname_result
1912 func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
1913 func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
1914 func_to_host_path_result="$func_cygpath_result"
1915 func_convert_path_check : : \
1916 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1917 func_convert_path_front_back_pathsep ":*" "*:" : "$1"
1918 fi
1919 }
1920 # end func_convert_path_msys_to_cygwin
1921
1922
1923 # func_convert_path_nix_to_cygwin ARG
1924 # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a
1925 # a wine environment, working winepath, and LT_CYGPATH set. Returns result in
1926 # func_to_host_file_result.
1927 func_convert_path_nix_to_cygwin ()
1928 {
1929 $opt_debug
1930 func_to_host_path_result="$1"
1931 if test -n "$1"; then
1932 # Remove leading and trailing path separator characters from
1933 # ARG. msys behavior is inconsistent here, cygpath turns them
1934 # into '.;' and ';.', and winepath ignores them completely.
1935 func_stripname : : "$1"
1936 func_to_host_path_tmp1=$func_stripname_result
1937 func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
1938 func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
1939 func_to_host_path_result="$func_cygpath_result"
1940 func_convert_path_check : : \
1941 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1942 func_convert_path_front_back_pathsep ":*" "*:" : "$1"
1943 fi
1944 }
1945 # end func_convert_path_nix_to_cygwin
1946
1947
10991948 # func_mode_compile arg...
11001949 func_mode_compile ()
11011950 {
11361985 ;;
11371986
11381987 -pie | -fpie | -fPIE)
1139 pie_flag="$pie_flag $arg"
1988 func_append pie_flag " $arg"
11401989 continue
11411990 ;;
11421991
11431992 -shared | -static | -prefer-pic | -prefer-non-pic)
1144 later="$later $arg"
1993 func_append later " $arg"
11451994 continue
11461995 ;;
11471996
11622011 save_ifs="$IFS"; IFS=','
11632012 for arg in $args; do
11642013 IFS="$save_ifs"
1165 func_quote_for_eval "$arg"
1166 lastarg="$lastarg $func_quote_for_eval_result"
2014 func_append_quoted lastarg "$arg"
11672015 done
11682016 IFS="$save_ifs"
11692017 func_stripname ' ' '' "$lastarg"
11702018 lastarg=$func_stripname_result
11712019
11722020 # Add the arguments to base_compile.
1173 base_compile="$base_compile $lastarg"
2021 func_append base_compile " $lastarg"
11742022 continue
11752023 ;;
11762024
11862034 esac # case $arg_mode
11872035
11882036 # Aesthetically quote the previous argument.
1189 func_quote_for_eval "$lastarg"
1190 base_compile="$base_compile $func_quote_for_eval_result"
2037 func_append_quoted base_compile "$lastarg"
11912038 done # for arg
11922039
11932040 case $arg_mode in
12122059 *.[cCFSifmso] | \
12132060 *.ada | *.adb | *.ads | *.asm | \
12142061 *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
1215 *.[fF][09]? | *.for | *.java | *.obj | *.sx)
2062 *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
12162063 func_xform "$libobj"
12172064 libobj=$func_xform_result
12182065 ;;
12872134 # Calculate the filename of the output object if compiler does
12882135 # not support -o with -c
12892136 if test "$compiler_c_o" = no; then
1290 output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
2137 output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
12912138 lockfile="$output_obj.lock"
12922139 else
12932140 output_obj=
13182165 $opt_dry_run || $RM $removelist
13192166 exit $EXIT_FAILURE
13202167 fi
1321 removelist="$removelist $output_obj"
2168 func_append removelist " $output_obj"
13222169 $ECHO "$srcfile" > "$lockfile"
13232170 fi
13242171
13252172 $opt_dry_run || $RM $removelist
1326 removelist="$removelist $lockfile"
2173 func_append removelist " $lockfile"
13272174 trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
13282175
1329 if test -n "$fix_srcfile_path"; then
1330 eval srcfile=\"$fix_srcfile_path\"
1331 fi
2176 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
2177 srcfile=$func_to_tool_file_result
13322178 func_quote_for_eval "$srcfile"
13332179 qsrcfile=$func_quote_for_eval_result
13342180
13482194
13492195 if test -z "$output_obj"; then
13502196 # Place PIC objects in $objdir
1351 command="$command -o $lobj"
2197 func_append command " -o $lobj"
13522198 fi
13532199
13542200 func_show_eval_locale "$command" \
13952241 command="$base_compile $qsrcfile $pic_flag"
13962242 fi
13972243 if test "$compiler_c_o" = yes; then
1398 command="$command -o $obj"
2244 func_append command " -o $obj"
13992245 fi
14002246
14012247 # Suppress compiler output if we already did a PIC compilation.
1402 command="$command$suppress_output"
2248 func_append command "$suppress_output"
14032249 func_show_eval_locale "$command" \
14042250 '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
14052251
14442290 }
14452291
14462292 $opt_help || {
1447 test "$mode" = compile && func_mode_compile ${1+"$@"}
2293 test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
14482294 }
14492295
14502296 func_mode_help ()
14512297 {
14522298 # We need to display help for each of the modes.
1453 case $mode in
2299 case $opt_mode in
14542300 "")
14552301 # Generic help is extracted from the usage comments
14562302 # at the start of this file.
14812327
14822328 -o OUTPUT-FILE set the output file name to OUTPUT-FILE
14832329 -no-suppress do not suppress compiler output for multiple passes
1484 -prefer-pic try to building PIC objects only
1485 -prefer-non-pic try to building non-PIC objects only
2330 -prefer-pic try to build PIC objects only
2331 -prefer-non-pic try to build non-PIC objects only
14862332 -shared do not build a \`.o' file suitable for static linking
14872333 -static only build a \`.o' file suitable for static linking
2334 -Wc,FLAG pass FLAG directly to the compiler
14882335
14892336 COMPILE-COMMAND is a command to be used in creating a \`standard' object file
14902337 from the given SOURCEFILE.
15372384
15382385 The following components of INSTALL-COMMAND are treated specially:
15392386
1540 -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation
2387 -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation
15412388
15422389 The rest of the components are interpreted as arguments to that command (only
15432390 BSD-compatible install options are recognized)."
15572404
15582405 -all-static do not do any dynamic linking at all
15592406 -avoid-version do not add a version suffix if possible
2407 -bindir BINDIR specify path to binaries directory (for systems where
2408 libraries must be found in the PATH setting at runtime)
15602409 -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
15612410 -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
15622411 -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
15852434 -version-info CURRENT[:REVISION[:AGE]]
15862435 specify library version info [each variable defaults to 0]
15872436 -weak LIBNAME declare that the target provides the LIBNAME interface
2437 -Wc,FLAG
2438 -Xcompiler FLAG pass linker-specific FLAG directly to the compiler
2439 -Wl,FLAG
2440 -Xlinker FLAG pass linker-specific FLAG directly to the linker
2441 -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC)
15882442
15892443 All other options (arguments beginning with \`-') are ignored.
15902444
16182472 ;;
16192473
16202474 *)
1621 func_fatal_help "invalid operation mode \`$mode'"
2475 func_fatal_help "invalid operation mode \`$opt_mode'"
16222476 ;;
16232477 esac
16242478
1625 $ECHO
2479 echo
16262480 $ECHO "Try \`$progname --help' for more information about other modes."
1627
1628 exit $?
1629 }
1630
1631 # Now that we've collected a possible --mode arg, show help if necessary
1632 $opt_help && func_mode_help
2481 }
2482
2483 # Now that we've collected a possible --mode arg, show help if necessary
2484 if $opt_help; then
2485 if test "$opt_help" = :; then
2486 func_mode_help
2487 else
2488 {
2489 func_help noexit
2490 for opt_mode in compile link execute install finish uninstall clean; do
2491 func_mode_help
2492 done
2493 } | sed -n '1p; 2,$s/^Usage:/ or: /p'
2494 {
2495 func_help noexit
2496 for opt_mode in compile link execute install finish uninstall clean; do
2497 echo
2498 func_mode_help
2499 done
2500 } |
2501 sed '1d
2502 /^When reporting/,/^Report/{
2503 H
2504 d
2505 }
2506 $x
2507 /information about other modes/d
2508 /more detailed .*MODE/d
2509 s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
2510 fi
2511 exit $?
2512 fi
16332513
16342514
16352515 # func_mode_execute arg...
16422522 func_fatal_help "you must specify a COMMAND"
16432523
16442524 # Handle -dlopen flags immediately.
1645 for file in $execute_dlfiles; do
2525 for file in $opt_dlopen; do
16462526 test -f "$file" \
16472527 || func_fatal_help "\`$file' is not a file"
16482528
16492529 dir=
16502530 case $file in
16512531 *.la)
2532 func_resolve_sysroot "$file"
2533 file=$func_resolve_sysroot_result
2534
16522535 # Check to see that this really is a libtool archive.
16532536 func_lalib_unsafe_p "$file" \
16542537 || func_fatal_help "\`$lib' is not a valid libtool archive"
16702553 dir="$func_dirname_result"
16712554
16722555 if test -f "$dir/$objdir/$dlname"; then
1673 dir="$dir/$objdir"
2556 func_append dir "/$objdir"
16742557 else
16752558 if test ! -f "$dir/$dlname"; then
16762559 func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
17112594 for file
17122595 do
17132596 case $file in
1714 -*) ;;
2597 -* | *.la | *.lo ) ;;
17152598 *)
17162599 # Do a test to see if this is really a libtool program.
17172600 if func_ltwrapper_script_p "$file"; then
17272610 ;;
17282611 esac
17292612 # Quote arguments (to preserve shell metacharacters).
1730 func_quote_for_eval "$file"
1731 args="$args $func_quote_for_eval_result"
2613 func_append_quoted args "$file"
17322614 done
17332615
17342616 if test "X$opt_dry_run" = Xfalse; then
17532635 # Display what would be done.
17542636 if test -n "$shlibpath_var"; then
17552637 eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
1756 $ECHO "export $shlibpath_var"
2638 echo "export $shlibpath_var"
17572639 fi
17582640 $ECHO "$cmd$args"
17592641 exit $EXIT_SUCCESS
17602642 fi
17612643 }
17622644
1763 test "$mode" = execute && func_mode_execute ${1+"$@"}
2645 test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
17642646
17652647
17662648 # func_mode_finish arg...
17672649 func_mode_finish ()
17682650 {
17692651 $opt_debug
1770 libdirs="$nonopt"
2652 libs=
2653 libdirs=
17712654 admincmds=
17722655
2656 for opt in "$nonopt" ${1+"$@"}
2657 do
2658 if test -d "$opt"; then
2659 func_append libdirs " $opt"
2660
2661 elif test -f "$opt"; then
2662 if func_lalib_unsafe_p "$opt"; then
2663 func_append libs " $opt"
2664 else
2665 func_warning "\`$opt' is not a valid libtool archive"
2666 fi
2667
2668 else
2669 func_fatal_error "invalid argument \`$opt'"
2670 fi
2671 done
2672
2673 if test -n "$libs"; then
2674 if test -n "$lt_sysroot"; then
2675 sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
2676 sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
2677 else
2678 sysroot_cmd=
2679 fi
2680
2681 # Remove sysroot references
2682 if $opt_dry_run; then
2683 for lib in $libs; do
2684 echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
2685 done
2686 else
2687 tmpdir=`func_mktempdir`
2688 for lib in $libs; do
2689 sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
2690 > $tmpdir/tmp-la
2691 mv -f $tmpdir/tmp-la $lib
2692 done
2693 ${RM}r "$tmpdir"
2694 fi
2695 fi
2696
17732697 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
1774 for dir
1775 do
1776 libdirs="$libdirs $dir"
1777 done
1778
17792698 for libdir in $libdirs; do
17802699 if test -n "$finish_cmds"; then
17812700 # Do each command in the finish commands.
17852704 if test -n "$finish_eval"; then
17862705 # Do the single finish_eval.
17872706 eval cmds=\"$finish_eval\"
1788 $opt_dry_run || eval "$cmds" || admincmds="$admincmds
2707 $opt_dry_run || eval "$cmds" || func_append admincmds "
17892708 $cmds"
17902709 fi
17912710 done
17942713 # Exit here if they wanted silent mode.
17952714 $opt_silent && exit $EXIT_SUCCESS
17962715
1797 $ECHO "X----------------------------------------------------------------------" | $Xsed
1798 $ECHO "Libraries have been installed in:"
1799 for libdir in $libdirs; do
1800 $ECHO " $libdir"
1801 done
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:"
1807 if test -n "$shlibpath_var"; then
1808 $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable"
1809 $ECHO " during execution"
2716 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
2717 echo "----------------------------------------------------------------------"
2718 echo "Libraries have been installed in:"
2719 for libdir in $libdirs; do
2720 $ECHO " $libdir"
2721 done
2722 echo
2723 echo "If you ever happen to want to link against installed libraries"
2724 echo "in a given directory, LIBDIR, you must either use libtool, and"
2725 echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
2726 echo "flag during linking and do at least one of the following:"
2727 if test -n "$shlibpath_var"; then
2728 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
2729 echo " during execution"
2730 fi
2731 if test -n "$runpath_var"; then
2732 echo " - add LIBDIR to the \`$runpath_var' environment variable"
2733 echo " during linking"
2734 fi
2735 if test -n "$hardcode_libdir_flag_spec"; then
2736 libdir=LIBDIR
2737 eval flag=\"$hardcode_libdir_flag_spec\"
2738
2739 $ECHO " - use the \`$flag' linker flag"
2740 fi
2741 if test -n "$admincmds"; then
2742 $ECHO " - have your system administrator run these commands:$admincmds"
2743 fi
2744 if test -f /etc/ld.so.conf; then
2745 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
2746 fi
2747 echo
2748
2749 echo "See any operating system documentation about shared libraries for"
2750 case $host in
2751 solaris2.[6789]|solaris2.1[0-9])
2752 echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
2753 echo "pages."
2754 ;;
2755 *)
2756 echo "more information, such as the ld(1) and ld.so(8) manual pages."
2757 ;;
2758 esac
2759 echo "----------------------------------------------------------------------"
18102760 fi
1811 if test -n "$runpath_var"; then
1812 $ECHO " - add LIBDIR to the \`$runpath_var' environment variable"
1813 $ECHO " during linking"
1814 fi
1815 if test -n "$hardcode_libdir_flag_spec"; then
1816 libdir=LIBDIR
1817 eval flag=\"$hardcode_libdir_flag_spec\"
1818
1819 $ECHO " - use the \`$flag' linker flag"
1820 fi
1821 if test -n "$admincmds"; then
1822 $ECHO " - have your system administrator run these commands:$admincmds"
1823 fi
1824 if test -f /etc/ld.so.conf; then
1825 $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
1826 fi
1827 $ECHO
1828
1829 $ECHO "See any operating system documentation about shared libraries for"
1830 case $host in
1831 solaris2.[6789]|solaris2.1[0-9])
1832 $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
1833 $ECHO "pages."
1834 ;;
1835 *)
1836 $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
1837 ;;
1838 esac
1839 $ECHO "X----------------------------------------------------------------------" | $Xsed
18402761 exit $EXIT_SUCCESS
18412762 }
18422763
1843 test "$mode" = finish && func_mode_finish ${1+"$@"}
2764 test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
18442765
18452766
18462767 # func_mode_install arg...
18512772 # install_prog (especially on Windows NT).
18522773 if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
18532774 # Allow the use of GNU shtool's install command.
1854 $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
2775 case $nonopt in *shtool*) :;; *) false;; esac; then
18552776 # Aesthetically quote it.
18562777 func_quote_for_eval "$nonopt"
18572778 install_prog="$func_quote_for_eval_result "
18652786 # The real first argument should be the name of the installation program.
18662787 # Aesthetically quote it.
18672788 func_quote_for_eval "$arg"
1868 install_prog="$install_prog$func_quote_for_eval_result"
2789 func_append install_prog "$func_quote_for_eval_result"
2790 install_shared_prog=$install_prog
2791 case " $install_prog " in
2792 *[\\\ /]cp\ *) install_cp=: ;;
2793 *) install_cp=false ;;
2794 esac
18692795
18702796 # We need to accept at least all the BSD install flags.
18712797 dest=
18752801 install_type=
18762802 isdir=no
18772803 stripme=
2804 no_mode=:
18782805 for arg
18792806 do
2807 arg2=
18802808 if test -n "$dest"; then
1881 files="$files $dest"
2809 func_append files " $dest"
18822810 dest=$arg
18832811 continue
18842812 fi
18862814 case $arg in
18872815 -d) isdir=yes ;;
18882816 -f)
1889 case " $install_prog " in
1890 *[\\\ /]cp\ *) ;;
1891 *) prev=$arg ;;
1892 esac
2817 if $install_cp; then :; else
2818 prev=$arg
2819 fi
18932820 ;;
18942821 -g | -m | -o)
18952822 prev=$arg
19032830 *)
19042831 # If the previous option needed an argument, then skip it.
19052832 if test -n "$prev"; then
2833 if test "x$prev" = x-m && test -n "$install_override_mode"; then
2834 arg2=$install_override_mode
2835 no_mode=false
2836 fi
19062837 prev=
19072838 else
19082839 dest=$arg
19132844
19142845 # Aesthetically quote the argument.
19152846 func_quote_for_eval "$arg"
1916 install_prog="$install_prog $func_quote_for_eval_result"
2847 func_append install_prog " $func_quote_for_eval_result"
2848 if test -n "$arg2"; then
2849 func_quote_for_eval "$arg2"
2850 fi
2851 func_append install_shared_prog " $func_quote_for_eval_result"
19172852 done
19182853
19192854 test -z "$install_prog" && \
19212856
19222857 test -n "$prev" && \
19232858 func_fatal_help "the \`$prev' option requires an argument"
2859
2860 if test -n "$install_override_mode" && $no_mode; then
2861 if $install_cp; then :; else
2862 func_quote_for_eval "$install_override_mode"
2863 func_append install_shared_prog " -m $func_quote_for_eval_result"
2864 fi
2865 fi
19242866
19252867 if test -z "$files"; then
19262868 if test -z "$dest"; then
19762918 case $file in
19772919 *.$libext)
19782920 # Do the static libraries later.
1979 staticlibs="$staticlibs $file"
2921 func_append staticlibs " $file"
19802922 ;;
19812923
19822924 *.la)
2925 func_resolve_sysroot "$file"
2926 file=$func_resolve_sysroot_result
2927
19832928 # Check to see that this really is a libtool archive.
19842929 func_lalib_unsafe_p "$file" \
19852930 || func_fatal_help "\`$file' is not a valid libtool archive"
19932938 if test "X$destdir" = "X$libdir"; then
19942939 case "$current_libdirs " in
19952940 *" $libdir "*) ;;
1996 *) current_libdirs="$current_libdirs $libdir" ;;
2941 *) func_append current_libdirs " $libdir" ;;
19972942 esac
19982943 else
19992944 # Note the libdir as a future libdir.
20002945 case "$future_libdirs " in
20012946 *" $libdir "*) ;;
2002 *) future_libdirs="$future_libdirs $libdir" ;;
2947 *) func_append future_libdirs " $libdir" ;;
20032948 esac
20042949 fi
20052950
20062951 func_dirname "$file" "/" ""
20072952 dir="$func_dirname_result"
2008 dir="$dir$objdir"
2953 func_append dir "$objdir"
20092954
20102955 if test -n "$relink_command"; then
20112956 # Determine the prefix the user has applied to our future dir.
2012 inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
2957 inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
20132958
20142959 # Don't allow the user to place us outside of our expected
20152960 # location b/c this prevents finding dependent libraries that
20222967
20232968 if test -n "$inst_prefix_dir"; then
20242969 # Stick the inst_prefix_dir data into the link command.
2025 relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
2970 relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
20262971 else
2027 relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
2972 relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
20282973 fi
20292974
20302975 func_warning "relinking \`$file'"
20422987 test -n "$relink_command" && srcname="$realname"T
20432988
20442989 # Install the shared library and build the symlinks.
2045 func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
2990 func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
20462991 'exit $?'
20472992 tstripme="$stripme"
20482993 case $host_os in
20823027 func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
20833028
20843029 # Maybe install the static library, too.
2085 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
3030 test -n "$old_library" && func_append staticlibs " $dir/$old_library"
20863031 ;;
20873032
20883033 *.lo)
21823127 if test -f "$lib"; then
21833128 func_source "$lib"
21843129 fi
2185 libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
3130 libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
21863131 if test -n "$libdir" && test ! -f "$libfile"; then
21873132 func_warning "\`$lib' has not been installed in \`$libdir'"
21883133 finalize=no
22013146 file="$func_basename_result"
22023147 outputname="$tmpdir/$file"
22033148 # Replace the output file specification.
2204 relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
3149 relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
22053150
22063151 $opt_silent || {
22073152 func_quote_for_expand "$relink_command"
22203165 }
22213166 else
22223167 # Install the binary that we compiled earlier.
2223 file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
3168 file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
22243169 fi
22253170 fi
22263171
22563201
22573202 # Set up the ranlib parameters.
22583203 oldlib="$destdir/$name"
3204 func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
3205 tool_oldlib=$func_to_tool_file_result
22593206
22603207 func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
22613208
22623209 if test -n "$stripme" && test -n "$old_striplib"; then
2263 func_show_eval "$old_striplib $oldlib" 'exit $?'
3210 func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
22643211 fi
22653212
22663213 # Do each command in the postinstall commands.
22793226 fi
22803227 }
22813228
2282 test "$mode" = install && func_mode_install ${1+"$@"}
3229 test "$opt_mode" = install && func_mode_install ${1+"$@"}
22833230
22843231
22853232 # func_generate_dlsyms outputname originator pic_p
23223269 extern \"C\" {
23233270 #endif
23243271
3272 #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
3273 #pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
3274 #endif
3275
3276 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
3277 #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
3278 /* DATA imports from DLLs on WIN32 con't be const, because runtime
3279 relocations are performed -- see ld's documentation on pseudo-relocs. */
3280 # define LT_DLSYM_CONST
3281 #elif defined(__osf__)
3282 /* This system does not cope well with relocations in const data. */
3283 # define LT_DLSYM_CONST
3284 #else
3285 # define LT_DLSYM_CONST const
3286 #endif
3287
23253288 /* External symbol declarations for the compiler. */\
23263289 "
23273290
23313294 $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
23323295
23333296 # Add our own program objects to the symbol list.
2334 progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3297 progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
23353298 for progfile in $progfiles; do
2336 func_verbose "extracting global C symbols from \`$progfile'"
2337 $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
3299 func_to_tool_file "$progfile" func_convert_file_msys_to_w32
3300 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
3301 $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
23383302 done
23393303
23403304 if test -n "$exclude_expsyms"; then
23703334 eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
23713335 eval '$MV "$nlist"T "$nlist"'
23723336 case $host in
2373 *cygwin | *mingw* | *cegcc* )
3337 *cygwin* | *mingw* | *cegcc* )
23743338 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
23753339 eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
23763340 ;;
23833347 func_verbose "extracting global C symbols from \`$dlprefile'"
23843348 func_basename "$dlprefile"
23853349 name="$func_basename_result"
2386 $opt_dry_run || {
2387 eval '$ECHO ": $name " >> "$nlist"'
2388 eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
2389 }
3350 case $host in
3351 *cygwin* | *mingw* | *cegcc* )
3352 # if an import library, we need to obtain dlname
3353 if func_win32_import_lib_p "$dlprefile"; then
3354 func_tr_sh "$dlprefile"
3355 eval "curr_lafile=\$libfile_$func_tr_sh_result"
3356 dlprefile_dlbasename=""
3357 if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
3358 # Use subshell, to avoid clobbering current variable values
3359 dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
3360 if test -n "$dlprefile_dlname" ; then
3361 func_basename "$dlprefile_dlname"
3362 dlprefile_dlbasename="$func_basename_result"
3363 else
3364 # no lafile. user explicitly requested -dlpreopen <import library>.
3365 $sharedlib_from_linklib_cmd "$dlprefile"
3366 dlprefile_dlbasename=$sharedlib_from_linklib_result
3367 fi
3368 fi
3369 $opt_dry_run || {
3370 if test -n "$dlprefile_dlbasename" ; then
3371 eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
3372 else
3373 func_warning "Could not compute DLL name from $name"
3374 eval '$ECHO ": $name " >> "$nlist"'
3375 fi
3376 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
3377 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
3378 $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
3379 }
3380 else # not an import lib
3381 $opt_dry_run || {
3382 eval '$ECHO ": $name " >> "$nlist"'
3383 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
3384 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
3385 }
3386 fi
3387 ;;
3388 *)
3389 $opt_dry_run || {
3390 eval '$ECHO ": $name " >> "$nlist"'
3391 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
3392 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
3393 }
3394 ;;
3395 esac
23903396 done
23913397
23923398 $opt_dry_run || {
24143420 if test -f "$nlist"S; then
24153421 eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
24163422 else
2417 $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
3423 echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
24183424 fi
24193425
2420 $ECHO >> "$output_objdir/$my_dlsyms" "\
3426 echo >> "$output_objdir/$my_dlsyms" "\
24213427
24223428 /* The mapping between symbol names and symbols. */
24233429 typedef struct {
24243430 const char *name;
24253431 void *address;
24263432 } lt_dlsymlist;
2427 "
2428 case $host in
2429 *cygwin* | *mingw* | *cegcc* )
2430 $ECHO >> "$output_objdir/$my_dlsyms" "\
2431 /* DATA imports from DLLs on WIN32 con't be const, because
2432 runtime relocations are performed -- see ld's documentation
2433 on pseudo-relocs. */"
2434 lt_dlsym_const= ;;
2435 *osf5*)
2436 echo >> "$output_objdir/$my_dlsyms" "\
2437 /* This system does not cope well with relocations in const data */"
2438 lt_dlsym_const= ;;
2439 *)
2440 lt_dlsym_const=const ;;
2441 esac
2442
2443 $ECHO >> "$output_objdir/$my_dlsyms" "\
2444 extern $lt_dlsym_const lt_dlsymlist
3433 extern LT_DLSYM_CONST lt_dlsymlist
24453434 lt_${my_prefix}_LTX_preloaded_symbols[];
2446 $lt_dlsym_const lt_dlsymlist
3435 LT_DLSYM_CONST lt_dlsymlist
24473436 lt_${my_prefix}_LTX_preloaded_symbols[] =
24483437 {\
24493438 { \"$my_originator\", (void *) 0 },"
24563445 eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
24573446 ;;
24583447 esac
2459 $ECHO >> "$output_objdir/$my_dlsyms" "\
3448 echo >> "$output_objdir/$my_dlsyms" "\
24603449 {0, (void *) 0}
24613450 };
24623451
24833472 # linked before any other PIC object. But we must not use
24843473 # pic_flag when linking with -static. The problem exists in
24853474 # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
2486 *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
3475 *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
24873476 pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
24883477 *-*-hpux*)
24893478 pic_flag_for_symtable=" $pic_flag" ;;
24993488 for arg in $LTCFLAGS; do
25003489 case $arg in
25013490 -pie | -fpie | -fPIE) ;;
2502 *) symtab_cflags="$symtab_cflags $arg" ;;
3491 *) func_append symtab_cflags " $arg" ;;
25033492 esac
25043493 done
25053494
25143503 case $host in
25153504 *cygwin* | *mingw* | *cegcc* )
25163505 if test -f "$output_objdir/$my_outputname.def"; then
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%"`
3506 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
3507 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
25193508 else
2520 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
2521 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
3509 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
3510 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
25223511 fi
25233512 ;;
25243513 *)
2525 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
2526 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
3514 compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
3515 finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
25273516 ;;
25283517 esac
25293518 ;;
25373526 # really was required.
25383527
25393528 # Nullify the symbol file.
2540 compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
2541 finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
3529 compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
3530 finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
25423531 fi
25433532 }
25443533
25483537 # Need a lot of goo to handle *both* DLLs and import libs
25493538 # Has to be a shell function in order to 'eat' the argument
25503539 # that is supplied when $file_magic_command is called.
3540 # Despite the name, also deal with 64 bit binaries.
25513541 func_win32_libid ()
25523542 {
25533543 $opt_debug
25583548 win32_libid_type="x86 archive import"
25593549 ;;
25603550 *ar\ archive*) # could be an import, or static
3551 # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
25613552 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
2562 $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
2563 win32_nmres=`eval $NM -f posix -A $1 |
3553 $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
3554 func_to_tool_file "$1" func_convert_file_msys_to_w32
3555 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
25643556 $SED -n -e '
25653557 1,100{
25663558 / I /{
25893581 $ECHO "$win32_libid_type"
25903582 }
25913583
3584 # func_cygming_dll_for_implib ARG
3585 #
3586 # Platform-specific function to extract the
3587 # name of the DLL associated with the specified
3588 # import library ARG.
3589 # Invoked by eval'ing the libtool variable
3590 # $sharedlib_from_linklib_cmd
3591 # Result is available in the variable
3592 # $sharedlib_from_linklib_result
3593 func_cygming_dll_for_implib ()
3594 {
3595 $opt_debug
3596 sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
3597 }
3598
3599 # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
3600 #
3601 # The is the core of a fallback implementation of a
3602 # platform-specific function to extract the name of the
3603 # DLL associated with the specified import library LIBNAME.
3604 #
3605 # SECTION_NAME is either .idata$6 or .idata$7, depending
3606 # on the platform and compiler that created the implib.
3607 #
3608 # Echos the name of the DLL associated with the
3609 # specified import library.
3610 func_cygming_dll_for_implib_fallback_core ()
3611 {
3612 $opt_debug
3613 match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
3614 $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
3615 $SED '/^Contents of section '"$match_literal"':/{
3616 # Place marker at beginning of archive member dllname section
3617 s/.*/====MARK====/
3618 p
3619 d
3620 }
3621 # These lines can sometimes be longer than 43 characters, but
3622 # are always uninteresting
3623 /:[ ]*file format pe[i]\{,1\}-/d
3624 /^In archive [^:]*:/d
3625 # Ensure marker is printed
3626 /^====MARK====/p
3627 # Remove all lines with less than 43 characters
3628 /^.\{43\}/!d
3629 # From remaining lines, remove first 43 characters
3630 s/^.\{43\}//' |
3631 $SED -n '
3632 # Join marker and all lines until next marker into a single line
3633 /^====MARK====/ b para
3634 H
3635 $ b para
3636 b
3637 :para
3638 x
3639 s/\n//g
3640 # Remove the marker
3641 s/^====MARK====//
3642 # Remove trailing dots and whitespace
3643 s/[\. \t]*$//
3644 # Print
3645 /./p' |
3646 # we now have a list, one entry per line, of the stringified
3647 # contents of the appropriate section of all members of the
3648 # archive which possess that section. Heuristic: eliminate
3649 # all those which have a first or second character that is
3650 # a '.' (that is, objdump's representation of an unprintable
3651 # character.) This should work for all archives with less than
3652 # 0x302f exports -- but will fail for DLLs whose name actually
3653 # begins with a literal '.' or a single character followed by
3654 # a '.'.
3655 #
3656 # Of those that remain, print the first one.
3657 $SED -e '/^\./d;/^.\./d;q'
3658 }
3659
3660 # func_cygming_gnu_implib_p ARG
3661 # This predicate returns with zero status (TRUE) if
3662 # ARG is a GNU/binutils-style import library. Returns
3663 # with nonzero status (FALSE) otherwise.
3664 func_cygming_gnu_implib_p ()
3665 {
3666 $opt_debug
3667 func_to_tool_file "$1" func_convert_file_msys_to_w32
3668 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
3669 test -n "$func_cygming_gnu_implib_tmp"
3670 }
3671
3672 # func_cygming_ms_implib_p ARG
3673 # This predicate returns with zero status (TRUE) if
3674 # ARG is an MS-style import library. Returns
3675 # with nonzero status (FALSE) otherwise.
3676 func_cygming_ms_implib_p ()
3677 {
3678 $opt_debug
3679 func_to_tool_file "$1" func_convert_file_msys_to_w32
3680 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
3681 test -n "$func_cygming_ms_implib_tmp"
3682 }
3683
3684 # func_cygming_dll_for_implib_fallback ARG
3685 # Platform-specific function to extract the
3686 # name of the DLL associated with the specified
3687 # import library ARG.
3688 #
3689 # This fallback implementation is for use when $DLLTOOL
3690 # does not support the --identify-strict option.
3691 # Invoked by eval'ing the libtool variable
3692 # $sharedlib_from_linklib_cmd
3693 # Result is available in the variable
3694 # $sharedlib_from_linklib_result
3695 func_cygming_dll_for_implib_fallback ()
3696 {
3697 $opt_debug
3698 if func_cygming_gnu_implib_p "$1" ; then
3699 # binutils import library
3700 sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
3701 elif func_cygming_ms_implib_p "$1" ; then
3702 # ms-generated import library
3703 sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
3704 else
3705 # unknown
3706 sharedlib_from_linklib_result=""
3707 fi
3708 }
25923709
25933710
25943711 # func_extract_an_archive dir oldlib
25973714 $opt_debug
25983715 f_ex_an_ar_dir="$1"; shift
25993716 f_ex_an_ar_oldlib="$1"
2600 func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?'
3717 if test "$lock_old_archive_extraction" = yes; then
3718 lockfile=$f_ex_an_ar_oldlib.lock
3719 until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
3720 func_echo "Waiting for $lockfile to be removed"
3721 sleep 2
3722 done
3723 fi
3724 func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
3725 'stat=$?; rm -f "$lockfile"; exit $stat'
3726 if test "$lock_old_archive_extraction" = yes; then
3727 $opt_dry_run || rm -f "$lockfile"
3728 fi
26013729 if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
26023730 :
26033731 else
26683796 darwin_file=
26693797 darwin_files=
26703798 for darwin_file in $darwin_filelist; do
2671 darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
3799 darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
26723800 $LIPO -create -output "$darwin_file" $darwin_files
26733801 done # $darwin_filelist
26743802 $RM -rf unfat-$$
26833811 func_extract_an_archive "$my_xdir" "$my_xabs"
26843812 ;;
26853813 esac
2686 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
3814 my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
26873815 done
26883816
26893817 func_extract_archives_result="$my_oldobjs"
26903818 }
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
29263819
29273820
29283821 # func_emit_wrapper [arg=no]
29413834 # behavior.
29423835 func_emit_wrapper ()
29433836 {
2944 func_emit_wrapper_arg1=no
2945 if test -n "$1" ; then
2946 func_emit_wrapper_arg1=$1
2947 fi
2948
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}"
2953 }
2954
2955
2956 # func_to_host_path arg
3837 func_emit_wrapper_arg1=${1-no}
3838
3839 $ECHO "\
3840 #! $SHELL
3841
3842 # $output - temporary wrapper script for $objdir/$outputname
3843 # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
29573844 #
2958 # Convert paths to host format when used with build tools.
2959 # Intended for use with "native" mingw (where libtool itself
2960 # is running under the msys shell), or in the following cross-
2961 # build environments:
2962 # $build $host
2963 # mingw (msys) mingw [e.g. native]
2964 # cygwin mingw
2965 # *nix + wine mingw
2966 # where wine is equipped with the `winepath' executable.
2967 # In the native mingw case, the (msys) shell automatically
2968 # converts paths for any non-msys applications it launches,
2969 # but that facility isn't available from inside the cwrapper.
2970 # Similar accommodations are necessary for $host mingw and
2971 # $build cygwin. Calling this function does no harm for other
2972 # $host/$build combinations not listed above.
3845 # The $output program cannot be directly executed until all the libtool
3846 # libraries that it depends on are installed.
29733847 #
2974 # ARG is the path (on $build) that should be converted to
2975 # the proper representation for $host. The result is stored
2976 # in $func_to_host_path_result.
2977 func_to_host_path ()
2978 {
2979 func_to_host_path_result="$1"
2980 if test -n "$1" ; then
2981 case $host in
2982 *mingw* )
2983 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
2984 case $build in
2985 *mingw* ) # actually, msys
2986 # awkward: cmd appends spaces to result
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"`
2992 ;;
2993 *cygwin* )
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"`
2997 ;;
2998 * )
2999 # Unfortunately, winepath does not exit with a non-zero
3000 # error code, so we are forced to check the contents of
3001 # stdout. On the other hand, if the command is not
3002 # found, the shell will set an exit code of 127 and print
3003 # *an error message* to stdout. So we must check for both
3004 # error code of zero AND non-empty stdout, which explains
3005 # the odd construction:
3006 func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
3007 if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
3008 func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
3009 $SED -e "$lt_sed_naive_backslashify"`
3010 else
3011 # Allow warning below.
3012 func_to_host_path_result=""
3013 fi
3014 ;;
3015 esac
3016 if test -z "$func_to_host_path_result" ; then
3017 func_error "Could not determine host path corresponding to"
3018 func_error " '$1'"
3019 func_error "Continuing, but uninstalled executables may not work."
3020 # Fallback:
3021 func_to_host_path_result="$1"
3022 fi
3023 ;;
3848 # This wrapper script should never be moved out of the build directory.
3849 # If it is, it will not operate correctly.
3850
3851 # Sed substitution that helps us do robust quoting. It backslashifies
3852 # metacharacters that are still active within double-quoted strings.
3853 sed_quote_subst='$sed_quote_subst'
3854
3855 # Be Bourne compatible
3856 if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
3857 emulate sh
3858 NULLCMD=:
3859 # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
3860 # is contrary to our usage. Disable this feature.
3861 alias -g '\${1+\"\$@\"}'='\"\$@\"'
3862 setopt NO_GLOB_SUBST
3863 else
3864 case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
3865 fi
3866 BIN_SH=xpg4; export BIN_SH # for Tru64
3867 DUALCASE=1; export DUALCASE # for MKS sh
3868
3869 # The HP-UX ksh and POSIX shell print the target directory to stdout
3870 # if CDPATH is set.
3871 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
3872
3873 relink_command=\"$relink_command\"
3874
3875 # This environment variable determines our operation mode.
3876 if test \"\$libtool_install_magic\" = \"$magic\"; then
3877 # install mode needs the following variables:
3878 generated_by_libtool_version='$macro_version'
3879 notinst_deplibs='$notinst_deplibs'
3880 else
3881 # When we are sourced in execute mode, \$file and \$ECHO are already set.
3882 if test \"\$libtool_execute_magic\" != \"$magic\"; then
3883 file=\"\$0\""
3884
3885 qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
3886 $ECHO "\
3887
3888 # A function that is used when there is no print builtin or printf.
3889 func_fallback_echo ()
3890 {
3891 eval 'cat <<_LTECHO_EOF
3892 \$1
3893 _LTECHO_EOF'
3894 }
3895 ECHO=\"$qECHO\"
3896 fi
3897
3898 # Very basic option parsing. These options are (a) specific to
3899 # the libtool wrapper, (b) are identical between the wrapper
3900 # /script/ and the wrapper /executable/ which is used only on
3901 # windows platforms, and (c) all begin with the string "--lt-"
3902 # (application programs are unlikely to have options which match
3903 # this pattern).
3904 #
3905 # There are only two supported options: --lt-debug and
3906 # --lt-dump-script. There is, deliberately, no --lt-help.
3907 #
3908 # The first argument to this parsing function should be the
3909 # script's $0 value, followed by "$@".
3910 lt_option_debug=
3911 func_parse_lt_options ()
3912 {
3913 lt_script_arg0=\$0
3914 shift
3915 for lt_opt
3916 do
3917 case \"\$lt_opt\" in
3918 --lt-debug) lt_option_debug=1 ;;
3919 --lt-dump-script)
3920 lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
3921 test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
3922 lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
3923 cat \"\$lt_dump_D/\$lt_dump_F\"
3924 exit 0
3925 ;;
3926 --lt-*)
3927 \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
3928 exit 1
3929 ;;
3930 esac
3931 done
3932
3933 # Print the debug banner immediately:
3934 if test -n \"\$lt_option_debug\"; then
3935 echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
3936 fi
3937 }
3938
3939 # Used when --lt-debug. Prints its arguments to stdout
3940 # (redirection is the responsibility of the caller)
3941 func_lt_dump_args ()
3942 {
3943 lt_dump_args_N=1;
3944 for lt_arg
3945 do
3946 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
3947 lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
3948 done
3949 }
3950
3951 # Core function for launching the target application
3952 func_exec_program_core ()
3953 {
3954 "
3955 case $host in
3956 # Backslashes separate directories on plain windows
3957 *-*-mingw | *-*-os2* | *-cegcc*)
3958 $ECHO "\
3959 if test -n \"\$lt_option_debug\"; then
3960 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
3961 func_lt_dump_args \${1+\"\$@\"} 1>&2
3962 fi
3963 exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
3964 "
3965 ;;
3966
3967 *)
3968 $ECHO "\
3969 if test -n \"\$lt_option_debug\"; then
3970 \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
3971 func_lt_dump_args \${1+\"\$@\"} 1>&2
3972 fi
3973 exec \"\$progdir/\$program\" \${1+\"\$@\"}
3974 "
3975 ;;
3976 esac
3977 $ECHO "\
3978 \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
3979 exit 1
3980 }
3981
3982 # A function to encapsulate launching the target application
3983 # Strips options in the --lt-* namespace from \$@ and
3984 # launches target application with the remaining arguments.
3985 func_exec_program ()
3986 {
3987 case \" \$* \" in
3988 *\\ --lt-*)
3989 for lt_wr_arg
3990 do
3991 case \$lt_wr_arg in
3992 --lt-*) ;;
3993 *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
3994 esac
3995 shift
3996 done ;;
3997 esac
3998 func_exec_program_core \${1+\"\$@\"}
3999 }
4000
4001 # Parse options
4002 func_parse_lt_options \"\$0\" \${1+\"\$@\"}
4003
4004 # Find the directory that this script lives in.
4005 thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
4006 test \"x\$thisdir\" = \"x\$file\" && thisdir=.
4007
4008 # Follow symbolic links until we get to the real thisdir.
4009 file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
4010 while test -n \"\$file\"; do
4011 destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
4012
4013 # If there was a directory component, then change thisdir.
4014 if test \"x\$destdir\" != \"x\$file\"; then
4015 case \"\$destdir\" in
4016 [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
4017 *) thisdir=\"\$thisdir/\$destdir\" ;;
4018 esac
4019 fi
4020
4021 file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
4022 file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
4023 done
4024
4025 # Usually 'no', except on cygwin/mingw when embedded into
4026 # the cwrapper.
4027 WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
4028 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
4029 # special case for '.'
4030 if test \"\$thisdir\" = \".\"; then
4031 thisdir=\`pwd\`
4032 fi
4033 # remove .libs from thisdir
4034 case \"\$thisdir\" in
4035 *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
4036 $objdir ) thisdir=. ;;
30244037 esac
30254038 fi
3026 }
3027 # end: func_to_host_path
3028
3029 # func_to_host_pathlist arg
3030 #
3031 # Convert pathlists to host format when used with build tools.
3032 # See func_to_host_path(), above. This function supports the
3033 # following $build/$host combinations (but does no harm for
3034 # combinations not listed here):
3035 # $build $host
3036 # mingw (msys) mingw [e.g. native]
3037 # cygwin mingw
3038 # *nix + wine mingw
3039 #
3040 # Path separators are also converted from $build format to
3041 # $host format. If ARG begins or ends with a path separator
3042 # character, it is preserved (but converted to $host format)
3043 # on output.
3044 #
3045 # ARG is a pathlist (on $build) that should be converted to
3046 # the proper representation on $host. The result is stored
3047 # in $func_to_host_pathlist_result.
3048 func_to_host_pathlist ()
3049 {
3050 func_to_host_pathlist_result="$1"
3051 if test -n "$1" ; then
3052 case $host in
3053 *mingw* )
3054 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
3055 # Remove leading and trailing path separator characters from
3056 # ARG. msys behavior is inconsistent here, cygpath turns them
3057 # into '.;' and ';.', and winepath ignores them completely.
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|:*$||'`
3063 case $build in
3064 *mingw* ) # Actually, msys.
3065 # Awkward: cmd appends spaces to result.
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"`
3071 ;;
3072 *cygwin* )
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" |\
3075 $SED -e "$lt_sed_naive_backslashify"`
3076 ;;
3077 * )
3078 # unfortunately, winepath doesn't convert pathlists
3079 func_to_host_pathlist_result=""
3080 func_to_host_pathlist_oldIFS=$IFS
3081 IFS=:
3082 for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
3083 IFS=$func_to_host_pathlist_oldIFS
3084 if test -n "$func_to_host_pathlist_f" ; then
3085 func_to_host_path "$func_to_host_pathlist_f"
3086 if test -n "$func_to_host_path_result" ; then
3087 if test -z "$func_to_host_pathlist_result" ; then
3088 func_to_host_pathlist_result="$func_to_host_path_result"
3089 else
3090 func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"
3091 fi
3092 fi
3093 fi
3094 IFS=:
3095 done
3096 IFS=$func_to_host_pathlist_oldIFS
3097 ;;
3098 esac
3099 if test -z "$func_to_host_pathlist_result" ; then
3100 func_error "Could not determine the host path(s) corresponding to"
3101 func_error " '$1'"
3102 func_error "Continuing, but uninstalled executables may not work."
3103 # Fallback. This may break if $1 contains DOS-style drive
3104 # specifications. The fix is not to complicate the expression
3105 # below, but for the user to provide a working wine installation
3106 # with winepath so that path translation in the cross-to-mingw
3107 # case works properly.
3108 lt_replace_pathsep_nix_to_dos="s|:|;|g"
3109 func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
3110 $SED -e "$lt_replace_pathsep_nix_to_dos"`
3111 fi
3112 # Now, add the leading and trailing path separators back
3113 case "$1" in
3114 :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
3115 ;;
3116 esac
3117 case "$1" in
3118 *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"
3119 ;;
3120 esac
3121 ;;
3122 esac
4039
4040 # Try to get the absolute directory name.
4041 absdir=\`cd \"\$thisdir\" && pwd\`
4042 test -n \"\$absdir\" && thisdir=\"\$absdir\"
4043 "
4044
4045 if test "$fast_install" = yes; then
4046 $ECHO "\
4047 program=lt-'$outputname'$exeext
4048 progdir=\"\$thisdir/$objdir\"
4049
4050 if test ! -f \"\$progdir/\$program\" ||
4051 { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
4052 test \"X\$file\" != \"X\$progdir/\$program\"; }; then
4053
4054 file=\"\$\$-\$program\"
4055
4056 if test ! -d \"\$progdir\"; then
4057 $MKDIR \"\$progdir\"
4058 else
4059 $RM \"\$progdir/\$file\"
4060 fi"
4061
4062 $ECHO "\
4063
4064 # relink executable if necessary
4065 if test -n \"\$relink_command\"; then
4066 if relink_command_output=\`eval \$relink_command 2>&1\`; then :
4067 else
4068 $ECHO \"\$relink_command_output\" >&2
4069 $RM \"\$progdir/\$file\"
4070 exit 1
4071 fi
4072 fi
4073
4074 $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
4075 { $RM \"\$progdir/\$program\";
4076 $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
4077 $RM \"\$progdir/\$file\"
4078 fi"
4079 else
4080 $ECHO "\
4081 program='$outputname'
4082 progdir=\"\$thisdir/$objdir\"
4083 "
4084 fi
4085
4086 $ECHO "\
4087
4088 if test -f \"\$progdir/\$program\"; then"
4089
4090 # fixup the dll searchpath if we need to.
4091 #
4092 # Fix the DLL searchpath if we need to. Do this before prepending
4093 # to shlibpath, because on Windows, both are PATH and uninstalled
4094 # libraries must come first.
4095 if test -n "$dllsearchpath"; then
4096 $ECHO "\
4097 # Add the dll search path components to the executable PATH
4098 PATH=$dllsearchpath:\$PATH
4099 "
4100 fi
4101
4102 # Export our shlibpath_var if we have one.
4103 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
4104 $ECHO "\
4105 # Add our own library path to $shlibpath_var
4106 $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
4107
4108 # Some systems cannot cope with colon-terminated $shlibpath_var
4109 # The second colon is a workaround for a bug in BeOS R4 sed
4110 $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
4111
4112 export $shlibpath_var
4113 "
4114 fi
4115
4116 $ECHO "\
4117 if test \"\$libtool_execute_magic\" != \"$magic\"; then
4118 # Run the actual program with our arguments.
4119 func_exec_program \${1+\"\$@\"}
4120 fi
4121 else
4122 # The program doesn't exist.
4123 \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
4124 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
4125 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
4126 exit 1
31234127 fi
3124 }
3125 # end: func_to_host_pathlist
4128 fi\
4129 "
4130 }
4131
31264132
31274133 # func_emit_cwrapperexe_src
31284134 # emit the source code for a wrapper executable on stdout
31404146
31414147 This wrapper executable should never be moved out of the build directory.
31424148 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.
31474149 */
31484150 EOF
31494151 cat <<"EOF"
4152 #ifdef _MSC_VER
4153 # define _CRT_SECURE_NO_DEPRECATE 1
4154 #endif
31504155 #include <stdio.h>
31514156 #include <stdlib.h>
31524157 #ifdef _MSC_VER
31534158 # include <direct.h>
31544159 # include <process.h>
31554160 # include <io.h>
3156 # define setmode _setmode
31574161 #else
31584162 # include <unistd.h>
31594163 # include <stdint.h>
31604164 # ifdef __CYGWIN__
31614165 # 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
31684166 # endif
31694167 #endif
31704168 #include <malloc.h>
31764174 #include <fcntl.h>
31774175 #include <sys/stat.h>
31784176
4177 /* declarations of non-ANSI functions */
4178 #if defined(__MINGW32__)
4179 # ifdef __STRICT_ANSI__
4180 int _putenv (const char *);
4181 # endif
4182 #elif defined(__CYGWIN__)
4183 # ifdef __STRICT_ANSI__
4184 char *realpath (const char *, char *);
4185 int putenv (char *);
4186 int setenv (const char *, const char *, int);
4187 # endif
4188 /* #elif defined (other platforms) ... */
4189 #endif
4190
4191 /* portability defines, excluding path handling macros */
4192 #if defined(_MSC_VER)
4193 # define setmode _setmode
4194 # define stat _stat
4195 # define chmod _chmod
4196 # define getcwd _getcwd
4197 # define putenv _putenv
4198 # define S_IXUSR _S_IEXEC
4199 # ifndef _INTPTR_T_DEFINED
4200 # define _INTPTR_T_DEFINED
4201 # define intptr_t int
4202 # endif
4203 #elif defined(__MINGW32__)
4204 # define setmode _setmode
4205 # define stat _stat
4206 # define chmod _chmod
4207 # define getcwd _getcwd
4208 # define putenv _putenv
4209 #elif defined(__CYGWIN__)
4210 # define HAVE_SETENV
4211 # define FOPEN_WB "wb"
4212 /* #elif defined (other platforms) ... */
4213 #endif
4214
31794215 #if defined(PATH_MAX)
31804216 # define LT_PATHMAX PATH_MAX
31814217 #elif defined(MAXPATHLEN)
31914227 # define S_IXGRP 0
31924228 #endif
31934229
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
4230 /* path handling portability macros */
32024231 #ifndef DIR_SEPARATOR
32034232 # define DIR_SEPARATOR '/'
32044233 # define PATH_SEPARATOR ':'
32294258 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
32304259 #endif /* PATH_SEPARATOR_2 */
32314260
3232 #ifdef __CYGWIN__
3233 # define FOPEN_WB "wb"
3234 #endif
3235
32364261 #ifndef FOPEN_WB
32374262 # define FOPEN_WB "w"
32384263 #endif
32454270 if (stale) { free ((void *) stale); stale = 0; } \
32464271 } while (0)
32474272
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 }
4273 #if defined(LT_DEBUGWRAPPER)
4274 static int lt_debug = 1;
32594275 #else
3260 # define LTWRAPPER_DEBUGPRINTF(args)
4276 static int lt_debug = 0;
32614277 #endif
32624278
3263 const char *program_name = NULL;
4279 const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
32644280
32654281 void *xmalloc (size_t num);
32664282 char *xstrdup (const char *string);
32704286 int make_executable (const char *path);
32714287 int check_executable (const char *path);
32724288 char *strendzap (char *str, const char *pat);
3273 void lt_fatal (const char *message, ...);
4289 void lt_debugprintf (const char *file, int line, const char *fmt, ...);
4290 void lt_fatal (const char *file, int line, const char *message, ...);
4291 static const char *nonnull (const char *s);
4292 static const char *nonempty (const char *s);
32744293 void lt_setenv (const char *name, const char *value);
32754294 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);
32804295 void lt_update_exe_path (const char *name, const char *value);
32814296 void lt_update_lib_path (const char *name, const char *value);
3282
3283 static const char *script_text_part1 =
4297 char **prepare_spawn (char **argv);
4298 void lt_dump_script (FILE *f);
32844299 EOF
32854300
3286 func_emit_wrapper_part1 yes |
3287 $SED -e 's/\([\\"]\)/\\\1/g' \
3288 -e 's/^/ "/' -e 's/$/\\n"/'
3289 echo ";"
32904301 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 ";"
3298
3299 cat <<EOF
3300 const char * MAGIC_EXE = "$magic_exe";
4302 volatile const char * MAGIC_EXE = "$magic_exe";
33014303 const char * LIB_PATH_VARNAME = "$shlibpath_var";
33024304 EOF
33034305
33044306 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
3305 func_to_host_pathlist "$temp_rpath"
4307 func_to_host_path "$temp_rpath"
33064308 cat <<EOF
3307 const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result";
4309 const char * LIB_PATH_VALUE = "$func_to_host_path_result";
33084310 EOF
33094311 else
33104312 cat <<"EOF"
33134315 fi
33144316
33154317 if test -n "$dllsearchpath"; then
3316 func_to_host_pathlist "$dllsearchpath:"
4318 func_to_host_path "$dllsearchpath:"
33174319 cat <<EOF
33184320 const char * EXE_PATH_VARNAME = "PATH";
3319 const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result";
4321 const char * EXE_PATH_VALUE = "$func_to_host_path_result";
33204322 EOF
33214323 else
33224324 cat <<"EOF"
33394341 cat <<"EOF"
33404342
33414343 #define LTWRAPPER_OPTION_PREFIX "--lt-"
3342 #define LTWRAPPER_OPTION_PREFIX_LENGTH 5
3343
3344 static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH;
4344
33454345 static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
3346
33474346 static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
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 */
4347 static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug";
33604348
33614349 int
33624350 main (int argc, char *argv[])
33734361 int i;
33744362
33754363 program_name = (char *) xstrdup (base_name (argv[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 */
4364 newargz = XMALLOC (char *, argc + 1);
4365
4366 /* very simple arg parsing; don't want to rely on getopt
4367 * also, copy all non cwrapper options to newargz, except
4368 * argz[0], which is handled differently
4369 */
4370 newargc=0;
33804371 for (i = 1; i < argc; i++)
33814372 {
33824373 if (strcmp (argv[i], dumpscript_opt) == 0)
33904381 esac
33914382
33924383 cat <<"EOF"
3393 printf ("%s", script_text_part1);
3394 printf ("%s", script_text_part2);
4384 lt_dump_script (stdout);
33954385 return 0;
33964386 }
4387 if (strcmp (argv[i], debug_opt) == 0)
4388 {
4389 lt_debug = 1;
4390 continue;
4391 }
4392 if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
4393 {
4394 /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
4395 namespace, but it is not one of the ones we know about and
4396 have already dealt with, above (inluding dump-script), then
4397 report an error. Otherwise, targets might begin to believe
4398 they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
4399 namespace. The first time any user complains about this, we'll
4400 need to make LTWRAPPER_OPTION_PREFIX a configure-time option
4401 or a configure.ac-settable value.
4402 */
4403 lt_fatal (__FILE__, __LINE__,
4404 "unrecognized %s option: '%s'",
4405 ltwrapper_option_prefix, argv[i]);
4406 }
4407 /* otherwise ... */
4408 newargz[++newargc] = xstrdup (argv[i]);
33974409 }
3398
3399 newargz = XMALLOC (char *, argc + 1);
4410 newargz[++newargc] = NULL;
4411
4412 EOF
4413 cat <<EOF
4414 /* The GNU banner must be the first non-error debug message */
4415 lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
4416 EOF
4417 cat <<"EOF"
4418 lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
4419 lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
4420
34004421 tmp_pathspec = find_executable (argv[0]);
34014422 if (tmp_pathspec == NULL)
3402 lt_fatal ("Couldn't find %s", argv[0]);
3403 LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
3404 tmp_pathspec));
4423 lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
4424 lt_debugprintf (__FILE__, __LINE__,
4425 "(main) found exe (before symlink chase) at: %s\n",
4426 tmp_pathspec);
34054427
34064428 actual_cwrapper_path = chase_symlinks (tmp_pathspec);
3407 LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
3408 actual_cwrapper_path));
4429 lt_debugprintf (__FILE__, __LINE__,
4430 "(main) found exe (after symlink chase) at: %s\n",
4431 actual_cwrapper_path);
34094432 XFREE (tmp_pathspec);
34104433
3411 actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
4434 actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
34124435 strendzap (actual_cwrapper_path, actual_cwrapper_name);
34134436
34144437 /* wrapper name transforms */
34264449 target_name = tmp_pathspec;
34274450 tmp_pathspec = 0;
34284451
3429 LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
3430 target_name));
4452 lt_debugprintf (__FILE__, __LINE__,
4453 "(main) libtool target name: %s\n",
4454 target_name);
34314455 EOF
34324456
34334457 cat <<EOF
34774501
34784502 lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
34794503 lt_setenv ("DUALCASE", "1"); /* for MSK sh */
4504 /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must
4505 be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
4506 because on Windows, both *_VARNAMEs are PATH but uninstalled
4507 libraries must come first. */
4508 lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
34804509 lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
3481 lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
3482
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>")));
4510
4511 lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
4512 nonnull (lt_argv_zero));
35514513 for (i = 0; i < newargc; i++)
35524514 {
3553 LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
4515 lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
4516 i, nonnull (newargz[i]));
35544517 }
35554518
35564519 EOF
35594522 mingw*)
35604523 cat <<"EOF"
35614524 /* execv doesn't actually work on mingw as expected on unix */
4525 newargz = prepare_spawn (newargz);
35624526 rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
35634527 if (rval == -1)
35644528 {
35654529 /* failed to start process */
3566 LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
4530 lt_debugprintf (__FILE__, __LINE__,
4531 "(main) failed to launch target \"%s\": %s\n",
4532 lt_argv_zero, nonnull (strerror (errno)));
35674533 return 127;
35684534 }
35694535 return rval;
35854551 {
35864552 void *p = (void *) malloc (num);
35874553 if (!p)
3588 lt_fatal ("Memory exhausted");
4554 lt_fatal (__FILE__, __LINE__, "memory exhausted");
35894555
35904556 return p;
35914557 }
36194585 {
36204586 struct stat st;
36214587
3622 LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n",
3623 path ? (*path ? path : "EMPTY!") : "NULL!"));
4588 lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
4589 nonempty (path));
36244590 if ((!path) || (!*path))
36254591 return 0;
36264592
36374603 int rval = 0;
36384604 struct stat st;
36394605
3640 LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n",
3641 path ? (*path ? path : "EMPTY!") : "NULL!"));
4606 lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
4607 nonempty (path));
36424608 if ((!path) || (!*path))
36434609 return 0;
36444610
36644630 int tmp_len;
36654631 char *concat_name;
36664632
3667 LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n",
3668 wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
4633 lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
4634 nonempty (wrapper));
36694635
36704636 if ((wrapper == NULL) || (*wrapper == '\0'))
36714637 return NULL;
37184684 {
37194685 /* empty path: current directory */
37204686 if (getcwd (tmp, LT_PATHMAX) == NULL)
3721 lt_fatal ("getcwd failed");
4687 lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
4688 nonnull (strerror (errno)));
37224689 tmp_len = strlen (tmp);
37234690 concat_name =
37244691 XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
37434710 }
37444711 /* Relative path | not found in path: prepend cwd */
37454712 if (getcwd (tmp, LT_PATHMAX) == NULL)
3746 lt_fatal ("getcwd failed");
4713 lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
4714 nonnull (strerror (errno)));
37474715 tmp_len = strlen (tmp);
37484716 concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
37494717 memcpy (concat_name, tmp, tmp_len);
37694737 int has_symlinks = 0;
37704738 while (strlen (tmp_pathspec) && !has_symlinks)
37714739 {
3772 LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
3773 tmp_pathspec));
4740 lt_debugprintf (__FILE__, __LINE__,
4741 "checking path component for symlinks: %s\n",
4742 tmp_pathspec);
37744743 if (lstat (tmp_pathspec, &s) == 0)
37754744 {
37764745 if (S_ISLNK (s.st_mode) != 0)
37924761 }
37934762 else
37944763 {
3795 char *errstr = strerror (errno);
3796 lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
4764 lt_fatal (__FILE__, __LINE__,
4765 "error accessing file \"%s\": %s",
4766 tmp_pathspec, nonnull (strerror (errno)));
37974767 }
37984768 }
37994769 XFREE (tmp_pathspec);
38064776 tmp_pathspec = realpath (pathspec, buf);
38074777 if (tmp_pathspec == 0)
38084778 {
3809 lt_fatal ("Could not follow symlinks for %s", pathspec);
4779 lt_fatal (__FILE__, __LINE__,
4780 "could not follow symlinks for %s", pathspec);
38104781 }
38114782 return xstrdup (tmp_pathspec);
38124783 #endif
38324803 return str;
38334804 }
38344805
4806 void
4807 lt_debugprintf (const char *file, int line, const char *fmt, ...)
4808 {
4809 va_list args;
4810 if (lt_debug)
4811 {
4812 (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
4813 va_start (args, fmt);
4814 (void) vfprintf (stderr, fmt, args);
4815 va_end (args);
4816 }
4817 }
4818
38354819 static void
3836 lt_error_core (int exit_status, const char *mode,
4820 lt_error_core (int exit_status, const char *file,
4821 int line, const char *mode,
38374822 const char *message, va_list ap)
38384823 {
3839 fprintf (stderr, "%s: %s: ", program_name, mode);
4824 fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
38404825 vfprintf (stderr, message, ap);
38414826 fprintf (stderr, ".\n");
38424827
38454830 }
38464831
38474832 void
3848 lt_fatal (const char *message, ...)
4833 lt_fatal (const char *file, int line, const char *message, ...)
38494834 {
38504835 va_list ap;
38514836 va_start (ap, message);
3852 lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
4837 lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
38534838 va_end (ap);
4839 }
4840
4841 static const char *
4842 nonnull (const char *s)
4843 {
4844 return s ? s : "(null)";
4845 }
4846
4847 static const char *
4848 nonempty (const char *s)
4849 {
4850 return (s && !*s) ? "(empty)" : nonnull (s);
38544851 }
38554852
38564853 void
38574854 lt_setenv (const char *name, const char *value)
38584855 {
3859 LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
3860 (name ? name : "<NULL>"),
3861 (value ? value : "<NULL>")));
4856 lt_debugprintf (__FILE__, __LINE__,
4857 "(lt_setenv) setting '%s' to '%s'\n",
4858 nonnull (name), nonnull (value));
38624859 {
38634860 #ifdef HAVE_SETENV
38644861 /* always make a copy, for consistency with !HAVE_SETENV */
39034900 return new_value;
39044901 }
39054902
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
39894903 void
39904904 lt_update_exe_path (const char *name, const char *value)
39914905 {
3992 LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
3993 (name ? name : "<NULL>"),
3994 (value ? value : "<NULL>")));
4906 lt_debugprintf (__FILE__, __LINE__,
4907 "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
4908 nonnull (name), nonnull (value));
39954909
39964910 if (name && *name && value && *value)
39974911 {
40104924 void
40114925 lt_update_lib_path (const char *name, const char *value)
40124926 {
4013 LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
4014 (name ? name : "<NULL>"),
4015 (value ? value : "<NULL>")));
4927 lt_debugprintf (__FILE__, __LINE__,
4928 "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
4929 nonnull (name), nonnull (value));
40164930
40174931 if (name && *name && value && *value)
40184932 {
40224936 }
40234937 }
40244938
4025
40264939 EOF
4940 case $host_os in
4941 mingw*)
4942 cat <<"EOF"
4943
4944 /* Prepares an argument vector before calling spawn().
4945 Note that spawn() does not by itself call the command interpreter
4946 (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
4947 ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
4948 GetVersionEx(&v);
4949 v.dwPlatformId == VER_PLATFORM_WIN32_NT;
4950 }) ? "cmd.exe" : "command.com").
4951 Instead it simply concatenates the arguments, separated by ' ', and calls
4952 CreateProcess(). We must quote the arguments since Win32 CreateProcess()
4953 interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
4954 special way:
4955 - Space and tab are interpreted as delimiters. They are not treated as
4956 delimiters if they are surrounded by double quotes: "...".
4957 - Unescaped double quotes are removed from the input. Their only effect is
4958 that within double quotes, space and tab are treated like normal
4959 characters.
4960 - Backslashes not followed by double quotes are not special.
4961 - But 2*n+1 backslashes followed by a double quote become
4962 n backslashes followed by a double quote (n >= 0):
4963 \" -> "
4964 \\\" -> \"
4965 \\\\\" -> \\"
4966 */
4967 #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
4968 #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
4969 char **
4970 prepare_spawn (char **argv)
4971 {
4972 size_t argc;
4973 char **new_argv;
4974 size_t i;
4975
4976 /* Count number of arguments. */
4977 for (argc = 0; argv[argc] != NULL; argc++)
4978 ;
4979
4980 /* Allocate new argument vector. */
4981 new_argv = XMALLOC (char *, argc + 1);
4982
4983 /* Put quoted arguments into the new argument vector. */
4984 for (i = 0; i < argc; i++)
4985 {
4986 const char *string = argv[i];
4987
4988 if (string[0] == '\0')
4989 new_argv[i] = xstrdup ("\"\"");
4990 else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
4991 {
4992 int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
4993 size_t length;
4994 unsigned int backslashes;
4995 const char *s;
4996 char *quoted_string;
4997 char *p;
4998
4999 length = 0;
5000 backslashes = 0;
5001 if (quote_around)
5002 length++;
5003 for (s = string; *s != '\0'; s++)
5004 {
5005 char c = *s;
5006 if (c == '"')
5007 length += backslashes + 1;
5008 length++;
5009 if (c == '\\')
5010 backslashes++;
5011 else
5012 backslashes = 0;
5013 }
5014 if (quote_around)
5015 length += backslashes + 1;
5016
5017 quoted_string = XMALLOC (char, length + 1);
5018
5019 p = quoted_string;
5020 backslashes = 0;
5021 if (quote_around)
5022 *p++ = '"';
5023 for (s = string; *s != '\0'; s++)
5024 {
5025 char c = *s;
5026 if (c == '"')
5027 {
5028 unsigned int j;
5029 for (j = backslashes + 1; j > 0; j--)
5030 *p++ = '\\';
5031 }
5032 *p++ = c;
5033 if (c == '\\')
5034 backslashes++;
5035 else
5036 backslashes = 0;
5037 }
5038 if (quote_around)
5039 {
5040 unsigned int j;
5041 for (j = backslashes; j > 0; j--)
5042 *p++ = '\\';
5043 *p++ = '"';
5044 }
5045 *p = '\0';
5046
5047 new_argv[i] = quoted_string;
5048 }
5049 else
5050 new_argv[i] = (char *) string;
5051 }
5052 new_argv[argc] = NULL;
5053
5054 return new_argv;
5055 }
5056 EOF
5057 ;;
5058 esac
5059
5060 cat <<"EOF"
5061 void lt_dump_script (FILE* f)
5062 {
5063 EOF
5064 func_emit_wrapper yes |
5065 $SED -n -e '
5066 s/^\(.\{79\}\)\(..*\)/\1\
5067 \2/
5068 h
5069 s/\([\\"]\)/\\\1/g
5070 s/$/\\n/
5071 s/\([^\n]*\).*/ fputs ("\1", f);/p
5072 g
5073 D'
5074 cat <<"EOF"
5075 }
5076 EOF
40275077 }
40285078 # end: func_emit_cwrapperexe_src
5079
5080 # func_win32_import_lib_p ARG
5081 # True if ARG is an import lib, as indicated by $file_magic_cmd
5082 func_win32_import_lib_p ()
5083 {
5084 $opt_debug
5085 case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
5086 *import*) : ;;
5087 *) false ;;
5088 esac
5089 }
40295090
40305091 # func_mode_link arg...
40315092 func_mode_link ()
40715132 new_inherited_linker_flags=
40725133
40735134 avoid_version=no
5135 bindir=
40745136 dlfiles=
40755137 dlprefiles=
40765138 dlself=no
41635225 esac
41645226
41655227 case $prev in
5228 bindir)
5229 bindir="$arg"
5230 prev=
5231 continue
5232 ;;
41665233 dlfiles|dlprefiles)
41675234 if test "$preload" = no; then
41685235 # Add the symbol object into the linking commands.
41945261 ;;
41955262 *)
41965263 if test "$prev" = dlfiles; then
4197 dlfiles="$dlfiles $arg"
5264 func_append dlfiles " $arg"
41985265 else
4199 dlprefiles="$dlprefiles $arg"
5266 func_append dlprefiles " $arg"
42005267 fi
42015268 prev=
42025269 continue
42205287 *-*-darwin*)
42215288 case "$deplibs " in
42225289 *" $qarg.ltframework "*) ;;
4223 *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
5290 *) func_append deplibs " $qarg.ltframework" # this is fixed later
42245291 ;;
42255292 esac
42265293 ;;
42395306 moreargs=
42405307 for fil in `cat "$save_arg"`
42415308 do
4242 # moreargs="$moreargs $fil"
5309 # func_append moreargs " $fil"
42435310 arg=$fil
42445311 # A libtool-controlled object.
42455312
42685335
42695336 if test "$prev" = dlfiles; then
42705337 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
4271 dlfiles="$dlfiles $pic_object"
5338 func_append dlfiles " $pic_object"
42725339 prev=
42735340 continue
42745341 else
42805347 # CHECK ME: I think I busted this. -Ossama
42815348 if test "$prev" = dlprefiles; then
42825349 # Preload the old-style object.
4283 dlprefiles="$dlprefiles $pic_object"
5350 func_append dlprefiles " $pic_object"
42845351 prev=
42855352 fi
42865353
43505417 if test "$prev" = rpath; then
43515418 case "$rpath " in
43525419 *" $arg "*) ;;
4353 *) rpath="$rpath $arg" ;;
5420 *) func_append rpath " $arg" ;;
43545421 esac
43555422 else
43565423 case "$xrpath " in
43575424 *" $arg "*) ;;
4358 *) xrpath="$xrpath $arg" ;;
5425 *) func_append xrpath " $arg" ;;
43595426 esac
43605427 fi
43615428 prev=
43675434 continue
43685435 ;;
43695436 weak)
4370 weak_libs="$weak_libs $arg"
5437 func_append weak_libs " $arg"
43715438 prev=
43725439 continue
43735440 ;;
43745441 xcclinker)
4375 linker_flags="$linker_flags $qarg"
4376 compiler_flags="$compiler_flags $qarg"
5442 func_append linker_flags " $qarg"
5443 func_append compiler_flags " $qarg"
43775444 prev=
43785445 func_append compile_command " $qarg"
43795446 func_append finalize_command " $qarg"
43805447 continue
43815448 ;;
43825449 xcompiler)
4383 compiler_flags="$compiler_flags $qarg"
5450 func_append compiler_flags " $qarg"
43845451 prev=
43855452 func_append compile_command " $qarg"
43865453 func_append finalize_command " $qarg"
43875454 continue
43885455 ;;
43895456 xlinker)
4390 linker_flags="$linker_flags $qarg"
4391 compiler_flags="$compiler_flags $wl$qarg"
5457 func_append linker_flags " $qarg"
5458 func_append compiler_flags " $wl$qarg"
43925459 prev=
43935460 func_append compile_command " $wl$qarg"
43945461 func_append finalize_command " $wl$qarg"
44245491 continue
44255492 ;;
44265493
5494 -bindir)
5495 prev=bindir
5496 continue
5497 ;;
5498
44275499 -dlopen)
44285500 prev=dlfiles
44295501 continue
44745546 ;;
44755547
44765548 -L*)
4477 func_stripname '-L' '' "$arg"
4478 dir=$func_stripname_result
4479 if test -z "$dir"; then
5549 func_stripname "-L" '' "$arg"
5550 if test -z "$func_stripname_result"; then
44805551 if test "$#" -gt 0; then
44815552 func_fatal_error "require no space between \`-L' and \`$1'"
44825553 else
44835554 func_fatal_error "need path for \`-L' option"
44845555 fi
44855556 fi
5557 func_resolve_sysroot "$func_stripname_result"
5558 dir=$func_resolve_sysroot_result
44865559 # We need an absolute path.
44875560 case $dir in
44885561 [\\/]* | [A-Za-z]:[\\/]*) ;;
44945567 ;;
44955568 esac
44965569 case "$deplibs " in
4497 *" -L$dir "*) ;;
5570 *" -L$dir "* | *" $arg "*)
5571 # Will only happen for absolute or sysroot arguments
5572 ;;
44985573 *)
4499 deplibs="$deplibs -L$dir"
4500 lib_search_path="$lib_search_path $dir"
5574 # Preserve sysroot, but never include relative directories
5575 case $dir in
5576 [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
5577 *) func_append deplibs " -L$dir" ;;
5578 esac
5579 func_append lib_search_path " $dir"
45015580 ;;
45025581 esac
45035582 case $host in
45045583 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
4505 testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
5584 testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
45065585 case :$dllsearchpath: in
45075586 *":$dir:"*) ;;
45085587 ::) dllsearchpath=$dir;;
4509 *) dllsearchpath="$dllsearchpath:$dir";;
5588 *) func_append dllsearchpath ":$dir";;
45105589 esac
45115590 case :$dllsearchpath: in
45125591 *":$testbindir:"*) ;;
45135592 ::) dllsearchpath=$testbindir;;
4514 *) dllsearchpath="$dllsearchpath:$testbindir";;
5593 *) func_append dllsearchpath ":$testbindir";;
45155594 esac
45165595 ;;
45175596 esac
45215600 -l*)
45225601 if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
45235602 case $host in
4524 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*)
5603 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
45255604 # These systems don't actually have a C or math library (as such)
45265605 continue
45275606 ;;
45355614 ;;
45365615 *-*-rhapsody* | *-*-darwin1.[012])
45375616 # Rhapsody C and math libraries are in the System framework
4538 deplibs="$deplibs System.ltframework"
5617 func_append deplibs " System.ltframework"
45395618 continue
45405619 ;;
45415620 *-*-sco3.2v5* | *-*-sco5v6*)
45555634 ;;
45565635 esac
45575636 fi
4558 deplibs="$deplibs $arg"
5637 func_append deplibs " $arg"
45595638 continue
45605639 ;;
45615640
45675646 # Tru64 UNIX uses -model [arg] to determine the layout of C++
45685647 # classes, name mangling, and exception handling.
45695648 # Darwin uses the -arch flag to determine output architecture.
4570 -model|-arch|-isysroot)
4571 compiler_flags="$compiler_flags $arg"
5649 -model|-arch|-isysroot|--sysroot)
5650 func_append compiler_flags " $arg"
45725651 func_append compile_command " $arg"
45735652 func_append finalize_command " $arg"
45745653 prev=xcompiler
45755654 continue
45765655 ;;
45775656
4578 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
4579 compiler_flags="$compiler_flags $arg"
5657 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
5658 |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
5659 func_append compiler_flags " $arg"
45805660 func_append compile_command " $arg"
45815661 func_append finalize_command " $arg"
45825662 case "$new_inherited_linker_flags " in
45835663 *" $arg "*) ;;
4584 * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
5664 * ) func_append new_inherited_linker_flags " $arg" ;;
45855665 esac
45865666 continue
45875667 ;;
46485728 # We need an absolute path.
46495729 case $dir in
46505730 [\\/]* | [A-Za-z]:[\\/]*) ;;
5731 =*)
5732 func_stripname '=' '' "$dir"
5733 dir=$lt_sysroot$func_stripname_result
5734 ;;
46515735 *)
46525736 func_fatal_error "only absolute run-paths are allowed"
46535737 ;;
46545738 esac
46555739 case "$xrpath " in
46565740 *" $dir "*) ;;
4657 *) xrpath="$xrpath $dir" ;;
5741 *) func_append xrpath " $dir" ;;
46585742 esac
46595743 continue
46605744 ;;
47075791 for flag in $args; do
47085792 IFS="$save_ifs"
47095793 func_quote_for_eval "$flag"
4710 arg="$arg $wl$func_quote_for_eval_result"
4711 compiler_flags="$compiler_flags $func_quote_for_eval_result"
5794 func_append arg " $func_quote_for_eval_result"
5795 func_append compiler_flags " $func_quote_for_eval_result"
47125796 done
47135797 IFS="$save_ifs"
47145798 func_stripname ' ' '' "$arg"
47235807 for flag in $args; do
47245808 IFS="$save_ifs"
47255809 func_quote_for_eval "$flag"
4726 arg="$arg $wl$func_quote_for_eval_result"
4727 compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
4728 linker_flags="$linker_flags $func_quote_for_eval_result"
5810 func_append arg " $wl$func_quote_for_eval_result"
5811 func_append compiler_flags " $wl$func_quote_for_eval_result"
5812 func_append linker_flags " $func_quote_for_eval_result"
47295813 done
47305814 IFS="$save_ifs"
47315815 func_stripname ' ' '' "$arg"
47535837 arg="$func_quote_for_eval_result"
47545838 ;;
47555839
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
5840 # Flags to be passed through unchanged, with rationale:
5841 # -64, -mips[0-9] enable 64-bit mode for the SGI compiler
5842 # -r[0-9][0-9]* specify processor for the SGI compiler
5843 # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
5844 # +DA*, +DD* enable 64-bit mode for the HP compiler
5845 # -q* compiler args for the IBM compiler
5846 # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
5847 # -F/path path to uninstalled frameworks, gcc on darwin
5848 # -p, -pg, --coverage, -fprofile-* profiling flags for GCC
5849 # @file GCC response files
5850 # -tp=* Portland pgcc target processor selection
5851 # --sysroot=* for sysroot support
5852 # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
47665853 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
4767 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
5854 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
5855 -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
47685856 func_quote_for_eval "$arg"
47695857 arg="$func_quote_for_eval_result"
47705858 func_append compile_command " $arg"
47715859 func_append finalize_command " $arg"
4772 compiler_flags="$compiler_flags $arg"
5860 func_append compiler_flags " $arg"
47735861 continue
47745862 ;;
47755863
47815869
47825870 *.$objext)
47835871 # A standard object.
4784 objs="$objs $arg"
5872 func_append objs " $arg"
47855873 ;;
47865874
47875875 *.lo)
48125900
48135901 if test "$prev" = dlfiles; then
48145902 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
4815 dlfiles="$dlfiles $pic_object"
5903 func_append dlfiles " $pic_object"
48165904 prev=
48175905 continue
48185906 else
48245912 # CHECK ME: I think I busted this. -Ossama
48255913 if test "$prev" = dlprefiles; then
48265914 # Preload the old-style object.
4827 dlprefiles="$dlprefiles $pic_object"
5915 func_append dlprefiles " $pic_object"
48285916 prev=
48295917 fi
48305918
48695957
48705958 *.$libext)
48715959 # An archive.
4872 deplibs="$deplibs $arg"
4873 old_deplibs="$old_deplibs $arg"
5960 func_append deplibs " $arg"
5961 func_append old_deplibs " $arg"
48745962 continue
48755963 ;;
48765964
48775965 *.la)
48785966 # A libtool-controlled library.
48795967
5968 func_resolve_sysroot "$arg"
48805969 if test "$prev" = dlfiles; then
48815970 # This library was specified with -dlopen.
4882 dlfiles="$dlfiles $arg"
5971 func_append dlfiles " $func_resolve_sysroot_result"
48835972 prev=
48845973 elif test "$prev" = dlprefiles; then
48855974 # The library was specified with -dlpreopen.
4886 dlprefiles="$dlprefiles $arg"
5975 func_append dlprefiles " $func_resolve_sysroot_result"
48875976 prev=
48885977 else
4889 deplibs="$deplibs $arg"
5978 func_append deplibs " $func_resolve_sysroot_result"
48905979 fi
48915980 continue
48925981 ;;
49246013
49256014 if test -n "$shlibpath_var"; then
49266015 # get the directories listed in $shlibpath_var
4927 eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
6016 eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
49286017 else
49296018 shlib_search_path=
49306019 fi
49336022
49346023 func_dirname "$output" "/" ""
49356024 output_objdir="$func_dirname_result$objdir"
6025 func_to_tool_file "$output_objdir/"
6026 tool_output_objdir=$func_to_tool_file_result
49366027 # Create the object directory.
49376028 func_mkdir_p "$output_objdir"
49386029
49536044 # Find all interdependent deplibs by searching for libraries
49546045 # that are linked more than once (e.g. -la -lb -la)
49556046 for deplib in $deplibs; do
4956 if $opt_duplicate_deps ; then
6047 if $opt_preserve_dup_deps ; then
49576048 case "$libs " in
4958 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
6049 *" $deplib "*) func_append specialdeplibs " $deplib" ;;
49596050 esac
49606051 fi
4961 libs="$libs $deplib"
6052 func_append libs " $deplib"
49626053 done
49636054
49646055 if test "$linkmode" = lib; then
49716062 if $opt_duplicate_compiler_generated_deps; then
49726063 for pre_post_dep in $predeps $postdeps; do
49736064 case "$pre_post_deps " in
4974 *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
6065 *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
49756066 esac
4976 pre_post_deps="$pre_post_deps $pre_post_dep"
6067 func_append pre_post_deps " $pre_post_dep"
49776068 done
49786069 fi
49796070 pre_post_deps=
50436134 for lib in $dlprefiles; do
50446135 # Ignore non-libtool-libs
50456136 dependency_libs=
6137 func_resolve_sysroot "$lib"
50466138 case $lib in
5047 *.la) func_source "$lib" ;;
6139 *.la) func_source "$func_resolve_sysroot_result" ;;
50486140 esac
50496141
50506142 # Collect preopened libtool deplibs, except any this library
50516143 # has declared as weak libs
50526144 for deplib in $dependency_libs; do
5053 deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
6145 func_basename "$deplib"
6146 deplib_base=$func_basename_result
50546147 case " $weak_libs " in
50556148 *" $deplib_base "*) ;;
5056 *) deplibs="$deplibs $deplib" ;;
6149 *) func_append deplibs " $deplib" ;;
50576150 esac
50586151 done
50596152 done
50696162 lib=
50706163 found=no
50716164 case $deplib in
5072 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
6165 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
6166 |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
50736167 if test "$linkmode,$pass" = "prog,link"; then
50746168 compile_deplibs="$deplib $compile_deplibs"
50756169 finalize_deplibs="$deplib $finalize_deplibs"
50766170 else
5077 compiler_flags="$compiler_flags $deplib"
6171 func_append compiler_flags " $deplib"
50786172 if test "$linkmode" = lib ; then
50796173 case "$new_inherited_linker_flags " in
50806174 *" $deplib "*) ;;
5081 * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
6175 * ) func_append new_inherited_linker_flags " $deplib" ;;
50826176 esac
50836177 fi
50846178 fi
51636257 if test "$linkmode" = lib ; then
51646258 case "$new_inherited_linker_flags " in
51656259 *" $deplib "*) ;;
5166 * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
6260 * ) func_append new_inherited_linker_flags " $deplib" ;;
51676261 esac
51686262 fi
51696263 fi
51766270 test "$pass" = conv && continue
51776271 newdependency_libs="$deplib $newdependency_libs"
51786272 func_stripname '-L' '' "$deplib"
5179 newlib_search_path="$newlib_search_path $func_stripname_result"
6273 func_resolve_sysroot "$func_stripname_result"
6274 func_append newlib_search_path " $func_resolve_sysroot_result"
51806275 ;;
51816276 prog)
51826277 if test "$pass" = conv; then
51906285 finalize_deplibs="$deplib $finalize_deplibs"
51916286 fi
51926287 func_stripname '-L' '' "$deplib"
5193 newlib_search_path="$newlib_search_path $func_stripname_result"
6288 func_resolve_sysroot "$func_stripname_result"
6289 func_append newlib_search_path " $func_resolve_sysroot_result"
51946290 ;;
51956291 *)
51966292 func_warning "\`-L' is ignored for archives/objects"
52016297 -R*)
52026298 if test "$pass" = link; then
52036299 func_stripname '-R' '' "$deplib"
5204 dir=$func_stripname_result
6300 func_resolve_sysroot "$func_stripname_result"
6301 dir=$func_resolve_sysroot_result
52056302 # Make sure the xrpath contains only unique directories.
52066303 case "$xrpath " in
52076304 *" $dir "*) ;;
5208 *) xrpath="$xrpath $dir" ;;
6305 *) func_append xrpath " $dir" ;;
52096306 esac
52106307 fi
52116308 deplibs="$deplib $deplibs"
52126309 continue
52136310 ;;
5214 *.la) lib="$deplib" ;;
6311 *.la)
6312 func_resolve_sysroot "$deplib"
6313 lib=$func_resolve_sysroot_result
6314 ;;
52156315 *.$libext)
52166316 if test "$pass" = conv; then
52176317 deplibs="$deplib $deplibs"
52296329 match_pattern*)
52306330 set dummy $deplibs_check_method; shift
52316331 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
5232 if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
6332 if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
52336333 | $EGREP "$match_pattern_regex" > /dev/null; then
52346334 valid_a_lib=yes
52356335 fi
52396339 ;;
52406340 esac
52416341 if test "$valid_a_lib" != yes; then
5242 $ECHO
6342 echo
52436343 $ECHO "*** Warning: Trying to link with static lib archive $deplib."
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."
6344 echo "*** I have the capability to make that library automatically link in when"
6345 echo "*** you link to this library. But I can only do this if you have a"
6346 echo "*** shared version of the library, which you do not appear to have"
6347 echo "*** because the file extensions .$libext of this argument makes me believe"
6348 echo "*** that it is just a static archive that I should not use here."
52496349 else
5250 $ECHO
6350 echo
52516351 $ECHO "*** Warning: Linking the shared library $output against the"
52526352 $ECHO "*** static library $deplib is not portable!"
52536353 deplibs="$deplib $deplibs"
52746374 if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
52756375 # If there is no dlopen support or we're linking statically,
52766376 # we need to preload.
5277 newdlprefiles="$newdlprefiles $deplib"
6377 func_append newdlprefiles " $deplib"
52786378 compile_deplibs="$deplib $compile_deplibs"
52796379 finalize_deplibs="$deplib $finalize_deplibs"
52806380 else
5281 newdlfiles="$newdlfiles $deplib"
6381 func_append newdlfiles " $deplib"
52826382 fi
52836383 fi
52846384 continue
53206420
53216421 # Convert "-framework foo" to "foo.ltframework"
53226422 if test -n "$inherited_linker_flags"; then
5323 tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
6423 tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
53246424 for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
53256425 case " $new_inherited_linker_flags " in
53266426 *" $tmp_inherited_linker_flag "*) ;;
5327 *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
6427 *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
53286428 esac
53296429 done
53306430 fi
5331 dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
6431 dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
53326432 if test "$linkmode,$pass" = "lib,link" ||
53336433 test "$linkmode,$pass" = "prog,scan" ||
53346434 { test "$linkmode" != prog && test "$linkmode" != lib; }; then
5335 test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
5336 test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
6435 test -n "$dlopen" && func_append dlfiles " $dlopen"
6436 test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
53376437 fi
53386438
53396439 if test "$pass" = conv; then
53446444 func_fatal_error "cannot find name of link library for \`$lib'"
53456445 fi
53466446 # It is a libtool convenience library, so add in its objects.
5347 convenience="$convenience $ladir/$objdir/$old_library"
5348 old_convenience="$old_convenience $ladir/$objdir/$old_library"
6447 func_append convenience " $ladir/$objdir/$old_library"
6448 func_append old_convenience " $ladir/$objdir/$old_library"
53496449 tmp_libs=
53506450 for deplib in $dependency_libs; do
53516451 deplibs="$deplib $deplibs"
5352 if $opt_duplicate_deps ; then
6452 if $opt_preserve_dup_deps ; then
53536453 case "$tmp_libs " in
5354 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
6454 *" $deplib "*) func_append specialdeplibs " $deplib" ;;
53556455 esac
53566456 fi
5357 tmp_libs="$tmp_libs $deplib"
6457 func_append tmp_libs " $deplib"
53586458 done
53596459 elif test "$linkmode" != prog && test "$linkmode" != lib; then
53606460 func_fatal_error "\`$lib' is not a convenience library"
53656465
53666466 # Get the name of the library we link against.
53676467 linklib=
5368 for l in $old_library $library_names; do
5369 linklib="$l"
5370 done
6468 if test -n "$old_library" &&
6469 { test "$prefer_static_libs" = yes ||
6470 test "$prefer_static_libs,$installed" = "built,no"; }; then
6471 linklib=$old_library
6472 else
6473 for l in $old_library $library_names; do
6474 linklib="$l"
6475 done
6476 fi
53716477 if test -z "$linklib"; then
53726478 func_fatal_error "cannot find name of link library for \`$lib'"
53736479 fi
53846490 # statically, we need to preload. We also need to preload any
53856491 # dependent libraries so libltdl's deplib preloader doesn't
53866492 # bomb out in the load deplibs phase.
5387 dlprefiles="$dlprefiles $lib $dependency_libs"
6493 func_append dlprefiles " $lib $dependency_libs"
53886494 else
5389 newdlfiles="$newdlfiles $lib"
6495 func_append newdlfiles " $lib"
53906496 fi
53916497 continue
53926498 fi # $pass = dlopen
54086514
54096515 # Find the relevant object directory and library name.
54106516 if test "X$installed" = Xyes; then
5411 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
6517 if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
54126518 func_warning "library \`$lib' was moved."
54136519 dir="$ladir"
54146520 absdir="$abs_ladir"
54156521 libdir="$abs_ladir"
54166522 else
5417 dir="$libdir"
5418 absdir="$libdir"
6523 dir="$lt_sysroot$libdir"
6524 absdir="$lt_sysroot$libdir"
54196525 fi
54206526 test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
54216527 else
54236529 dir="$ladir"
54246530 absdir="$abs_ladir"
54256531 # Remove this search path later
5426 notinst_path="$notinst_path $abs_ladir"
6532 func_append notinst_path " $abs_ladir"
54276533 else
54286534 dir="$ladir/$objdir"
54296535 absdir="$abs_ladir/$objdir"
54306536 # Remove this search path later
5431 notinst_path="$notinst_path $abs_ladir"
6537 func_append notinst_path " $abs_ladir"
54326538 fi
54336539 fi # $installed = yes
54346540 func_stripname 'lib' '.la' "$laname"
54396545 if test -z "$libdir" && test "$linkmode" = prog; then
54406546 func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
54416547 fi
5442 # Prefer using a static library (so that no silly _DYNAMIC symbols
5443 # are required to link).
5444 if test -n "$old_library"; then
5445 newdlprefiles="$newdlprefiles $dir/$old_library"
5446 # Keep a list of preopened convenience libraries to check
5447 # that they are being used correctly in the link pass.
5448 test -z "$libdir" && \
5449 dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
5450 # Otherwise, use the dlname, so that lt_dlopen finds it.
5451 elif test -n "$dlname"; then
5452 newdlprefiles="$newdlprefiles $dir/$dlname"
5453 else
5454 newdlprefiles="$newdlprefiles $dir/$linklib"
5455 fi
6548 case "$host" in
6549 # special handling for platforms with PE-DLLs.
6550 *cygwin* | *mingw* | *cegcc* )
6551 # Linker will automatically link against shared library if both
6552 # static and shared are present. Therefore, ensure we extract
6553 # symbols from the import library if a shared library is present
6554 # (otherwise, the dlopen module name will be incorrect). We do
6555 # this by putting the import library name into $newdlprefiles.
6556 # We recover the dlopen module name by 'saving' the la file
6557 # name in a special purpose variable, and (later) extracting the
6558 # dlname from the la file.
6559 if test -n "$dlname"; then
6560 func_tr_sh "$dir/$linklib"
6561 eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
6562 func_append newdlprefiles " $dir/$linklib"
6563 else
6564 func_append newdlprefiles " $dir/$old_library"
6565 # Keep a list of preopened convenience libraries to check
6566 # that they are being used correctly in the link pass.
6567 test -z "$libdir" && \
6568 func_append dlpreconveniencelibs " $dir/$old_library"
6569 fi
6570 ;;
6571 * )
6572 # Prefer using a static library (so that no silly _DYNAMIC symbols
6573 # are required to link).
6574 if test -n "$old_library"; then
6575 func_append newdlprefiles " $dir/$old_library"
6576 # Keep a list of preopened convenience libraries to check
6577 # that they are being used correctly in the link pass.
6578 test -z "$libdir" && \
6579 func_append dlpreconveniencelibs " $dir/$old_library"
6580 # Otherwise, use the dlname, so that lt_dlopen finds it.
6581 elif test -n "$dlname"; then
6582 func_append newdlprefiles " $dir/$dlname"
6583 else
6584 func_append newdlprefiles " $dir/$linklib"
6585 fi
6586 ;;
6587 esac
54566588 fi # $pass = dlpreopen
54576589
54586590 if test -z "$libdir"; then
54706602
54716603
54726604 if test "$linkmode" = prog && test "$pass" != link; then
5473 newlib_search_path="$newlib_search_path $ladir"
6605 func_append newlib_search_path " $ladir"
54746606 deplibs="$lib $deplibs"
54756607
54766608 linkalldeplibs=no
54836615 for deplib in $dependency_libs; do
54846616 case $deplib in
54856617 -L*) func_stripname '-L' '' "$deplib"
5486 newlib_search_path="$newlib_search_path $func_stripname_result"
6618 func_resolve_sysroot "$func_stripname_result"
6619 func_append newlib_search_path " $func_resolve_sysroot_result"
54876620 ;;
54886621 esac
54896622 # Need to link against all dependency_libs?
54946627 # or/and link against static libraries
54956628 newdependency_libs="$deplib $newdependency_libs"
54966629 fi
5497 if $opt_duplicate_deps ; then
6630 if $opt_preserve_dup_deps ; then
54986631 case "$tmp_libs " in
5499 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
6632 *" $deplib "*) func_append specialdeplibs " $deplib" ;;
55006633 esac
55016634 fi
5502 tmp_libs="$tmp_libs $deplib"
6635 func_append tmp_libs " $deplib"
55036636 done # for deplib
55046637 continue
55056638 fi # $linkmode = prog...
55146647 # Make sure the rpath contains only unique directories.
55156648 case "$temp_rpath:" in
55166649 *"$absdir:"*) ;;
5517 *) temp_rpath="$temp_rpath$absdir:" ;;
6650 *) func_append temp_rpath "$absdir:" ;;
55186651 esac
55196652 fi
55206653
55266659 *)
55276660 case "$compile_rpath " in
55286661 *" $absdir "*) ;;
5529 *) compile_rpath="$compile_rpath $absdir"
6662 *) func_append compile_rpath " $absdir" ;;
55306663 esac
55316664 ;;
55326665 esac
55356668 *)
55366669 case "$finalize_rpath " in
55376670 *" $libdir "*) ;;
5538 *) finalize_rpath="$finalize_rpath $libdir"
6671 *) func_append finalize_rpath " $libdir" ;;
55396672 esac
55406673 ;;
55416674 esac
55606693 case $host in
55616694 *cygwin* | *mingw* | *cegcc*)
55626695 # No point in relinking DLLs because paths are not encoded
5563 notinst_deplibs="$notinst_deplibs $lib"
6696 func_append notinst_deplibs " $lib"
55646697 need_relink=no
55656698 ;;
55666699 *)
55676700 if test "$installed" = no; then
5568 notinst_deplibs="$notinst_deplibs $lib"
6701 func_append notinst_deplibs " $lib"
55696702 need_relink=yes
55706703 fi
55716704 ;;
55826715 fi
55836716 done
55846717 if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
5585 $ECHO
6718 echo
55866719 if test "$linkmode" = prog; then
55876720 $ECHO "*** Warning: Linking the executable $output against the loadable module"
55886721 else
56006733 *)
56016734 case "$compile_rpath " in
56026735 *" $absdir "*) ;;
5603 *) compile_rpath="$compile_rpath $absdir"
6736 *) func_append compile_rpath " $absdir" ;;
56046737 esac
56056738 ;;
56066739 esac
56096742 *)
56106743 case "$finalize_rpath " in
56116744 *" $libdir "*) ;;
5612 *) finalize_rpath="$finalize_rpath $libdir"
6745 *) func_append finalize_rpath " $libdir" ;;
56136746 esac
56146747 ;;
56156748 esac
56636796 linklib=$newlib
56646797 fi # test -n "$old_archive_from_expsyms_cmds"
56656798
5666 if test "$linkmode" = prog || test "$mode" != relink; then
6799 if test "$linkmode" = prog || test "$opt_mode" != relink; then
56676800 add_shlibpath=
56686801 add_dir=
56696802 add=
56856818 if test "X$dlopenmodule" != "X$lib"; then
56866819 $ECHO "*** Warning: lib $linklib is a module, not a shared library"
56876820 if test -z "$old_library" ; then
5688 $ECHO
5689 $ECHO "*** And there doesn't seem to be a static archive available"
5690 $ECHO "*** The link will probably fail, sorry"
6821 echo
6822 echo "*** And there doesn't seem to be a static archive available"
6823 echo "*** The link will probably fail, sorry"
56916824 else
56926825 add="$dir/$old_library"
56936826 fi
57146847 test "$hardcode_direct_absolute" = no; then
57156848 add="$dir/$linklib"
57166849 elif test "$hardcode_minus_L" = yes; then
5717 add_dir="-L$dir"
6850 add_dir="-L$absdir"
57186851 # Try looking first in the location we're being installed to.
57196852 if test -n "$inst_prefix_dir"; then
57206853 case $libdir in
57216854 [\\/]*)
5722 add_dir="$add_dir -L$inst_prefix_dir$libdir"
6855 func_append add_dir " -L$inst_prefix_dir$libdir"
57236856 ;;
57246857 esac
57256858 fi
57416874 if test -n "$add_shlibpath"; then
57426875 case :$compile_shlibpath: in
57436876 *":$add_shlibpath:"*) ;;
5744 *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
6877 *) func_append compile_shlibpath "$add_shlibpath:" ;;
57456878 esac
57466879 fi
57476880 if test "$linkmode" = prog; then
57556888 test "$hardcode_shlibpath_var" = yes; then
57566889 case :$finalize_shlibpath: in
57576890 *":$libdir:"*) ;;
5758 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
6891 *) func_append finalize_shlibpath "$libdir:" ;;
57596892 esac
57606893 fi
57616894 fi
57626895 fi
57636896
5764 if test "$linkmode" = prog || test "$mode" = relink; then
6897 if test "$linkmode" = prog || test "$opt_mode" = relink; then
57656898 add_shlibpath=
57666899 add_dir=
57676900 add=
57756908 elif test "$hardcode_shlibpath_var" = yes; then
57766909 case :$finalize_shlibpath: in
57776910 *":$libdir:"*) ;;
5778 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
6911 *) func_append finalize_shlibpath "$libdir:" ;;
57796912 esac
57806913 add="-l$name"
57816914 elif test "$hardcode_automatic" = yes; then
57926925 if test -n "$inst_prefix_dir"; then
57936926 case $libdir in
57946927 [\\/]*)
5795 add_dir="$add_dir -L$inst_prefix_dir$libdir"
6928 func_append add_dir " -L$inst_prefix_dir$libdir"
57966929 ;;
57976930 esac
57986931 fi
58276960
58286961 # Just print a warning and add the library to dependency_libs so
58296962 # that the program can be linked against the static library.
5830 $ECHO
6963 echo
58316964 $ECHO "*** Warning: This system can not link to static lib archive $lib."
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."
6965 echo "*** I have the capability to make that library automatically link in when"
6966 echo "*** you link to this library. But I can only do this if you have a"
6967 echo "*** shared version of the library, which you do not appear to have."
58356968 if test "$module" = yes; then
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."
6969 echo "*** But as you try to build a module library, libtool will still create "
6970 echo "*** a static module, that should work as long as the dlopening application"
6971 echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
58396972 if test -z "$global_symbol_pipe"; then
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."
6973 echo
6974 echo "*** However, this would only work if libtool was able to extract symbol"
6975 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
6976 echo "*** not find such a program. So, this module is probably useless."
6977 echo "*** \`nm' from GNU binutils and a full rebuild may help."
58456978 fi
58466979 if test "$build_old_libs" = no; then
58476980 build_libtool_libs=module
58697002 temp_xrpath=$func_stripname_result
58707003 case " $xrpath " in
58717004 *" $temp_xrpath "*) ;;
5872 *) xrpath="$xrpath $temp_xrpath";;
7005 *) func_append xrpath " $temp_xrpath";;
58737006 esac;;
5874 *) temp_deplibs="$temp_deplibs $libdir";;
7007 *) func_append temp_deplibs " $libdir";;
58757008 esac
58767009 done
58777010 dependency_libs="$temp_deplibs"
58787011 fi
58797012
5880 newlib_search_path="$newlib_search_path $absdir"
7013 func_append newlib_search_path " $absdir"
58817014 # Link against this library
58827015 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
58837016 # ... and its dependency_libs
58847017 tmp_libs=
58857018 for deplib in $dependency_libs; do
58867019 newdependency_libs="$deplib $newdependency_libs"
5887 if $opt_duplicate_deps ; then
7020 case $deplib in
7021 -L*) func_stripname '-L' '' "$deplib"
7022 func_resolve_sysroot "$func_stripname_result";;
7023 *) func_resolve_sysroot "$deplib" ;;
7024 esac
7025 if $opt_preserve_dup_deps ; then
58887026 case "$tmp_libs " in
5889 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
7027 *" $func_resolve_sysroot_result "*)
7028 func_append specialdeplibs " $func_resolve_sysroot_result" ;;
58907029 esac
58917030 fi
5892 tmp_libs="$tmp_libs $deplib"
7031 func_append tmp_libs " $func_resolve_sysroot_result"
58937032 done
58947033
58957034 if test "$link_all_deplibs" != no; then
58997038 case $deplib in
59007039 -L*) path="$deplib" ;;
59017040 *.la)
7041 func_resolve_sysroot "$deplib"
7042 deplib=$func_resolve_sysroot_result
59027043 func_dirname "$deplib" "" "."
5903 dir="$func_dirname_result"
7044 dir=$func_dirname_result
59047045 # We need an absolute path.
59057046 case $dir in
59067047 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
59277068 if test -z "$darwin_install_name"; then
59287069 darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
59297070 fi
5930 compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
5931 linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
7071 func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
7072 func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
59327073 path=
59337074 fi
59347075 fi
59617102 compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
59627103 finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
59637104 else
5964 compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
7105 compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
59657106 fi
59667107 fi
59677108 dependency_libs="$newdependency_libs"
59787119 for dir in $newlib_search_path; do
59797120 case "$lib_search_path " in
59807121 *" $dir "*) ;;
5981 *) lib_search_path="$lib_search_path $dir" ;;
7122 *) func_append lib_search_path " $dir" ;;
59827123 esac
59837124 done
59847125 newlib_search_path=
60367177 -L*)
60377178 case " $tmp_libs " in
60387179 *" $deplib "*) ;;
6039 *) tmp_libs="$tmp_libs $deplib" ;;
7180 *) func_append tmp_libs " $deplib" ;;
60407181 esac
60417182 ;;
6042 *) tmp_libs="$tmp_libs $deplib" ;;
7183 *) func_append tmp_libs " $deplib" ;;
60437184 esac
60447185 done
60457186 eval $var=\"$tmp_libs\"
60557196 ;;
60567197 esac
60577198 if test -n "$i" ; then
6058 tmp_libs="$tmp_libs $i"
7199 func_append tmp_libs " $i"
60597200 fi
60607201 done
60617202 dependency_libs=$tmp_libs
60967237 # Now set the variables for building old libraries.
60977238 build_libtool_libs=no
60987239 oldlibs="$output"
6099 objs="$objs$old_deplibs"
7240 func_append objs "$old_deplibs"
61007241 ;;
61017242
61027243 lib)
61297270 if test "$deplibs_check_method" != pass_all; then
61307271 func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
61317272 else
6132 $ECHO
7273 echo
61337274 $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
61347275 $ECHO "*** objects $objs is not portable!"
6135 libobjs="$libobjs $objs"
7276 func_append libobjs " $objs"
61367277 fi
61377278 fi
61387279
61917332 # which has an extra 1 added just for fun
61927333 #
61937334 case $version_type in
7335 # correct linux to gnu/linux during the next big refactor
61947336 darwin|linux|osf|windows|none)
61957337 func_arith $number_major + $number_minor
61967338 current=$func_arith_result
61977339 age="$number_minor"
61987340 revision="$number_revision"
61997341 ;;
6200 freebsd-aout|freebsd-elf|sunos)
7342 freebsd-aout|freebsd-elf|qnx|sunos)
62017343 current="$number_major"
62027344 revision="$number_minor"
62037345 age="0"
63107452 versuffix="$major.$revision"
63117453 ;;
63127454
6313 linux)
7455 linux) # correct to gnu/linux during the next big refactor
63147456 func_arith $current - $age
63157457 major=.$func_arith_result
63167458 versuffix="$major.$age.$revision"
63337475 done
63347476
63357477 # Make executables depend on our current version.
6336 verstring="$verstring:${current}.0"
7478 func_append verstring ":${current}.0"
63377479 ;;
63387480
63397481 qnx)
64017543 fi
64027544
64037545 func_generate_dlsyms "$libname" "$libname" "yes"
6404 libobjs="$libobjs $symfileobj"
7546 func_append libobjs " $symfileobj"
64057547 test "X$libobjs" = "X " && libobjs=
64067548
6407 if test "$mode" != relink; then
7549 if test "$opt_mode" != relink; then
64087550 # Remove our outputs, but don't remove object files since they
64097551 # may have been created when compiling PIC objects.
64107552 removelist=
64207562 continue
64217563 fi
64227564 fi
6423 removelist="$removelist $p"
7565 func_append removelist " $p"
64247566 ;;
64257567 *) ;;
64267568 esac
64317573
64327574 # Now set the variables for building old libraries.
64337575 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
6434 oldlibs="$oldlibs $output_objdir/$libname.$libext"
7576 func_append oldlibs " $output_objdir/$libname.$libext"
64357577
64367578 # Transform .lo files to .o files.
6437 oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
7579 oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
64387580 fi
64397581
64407582 # Eliminate all temporary directories.
64417583 #for path in $notinst_path; do
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"`
7584 # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
7585 # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
7586 # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
64457587 #done
64467588
64477589 if test -n "$xrpath"; then
64487590 # If the user specified any rpath flags, then add them.
64497591 temp_xrpath=
64507592 for libdir in $xrpath; do
6451 temp_xrpath="$temp_xrpath -R$libdir"
7593 func_replace_sysroot "$libdir"
7594 func_append temp_xrpath " -R$func_replace_sysroot_result"
64527595 case "$finalize_rpath " in
64537596 *" $libdir "*) ;;
6454 *) finalize_rpath="$finalize_rpath $libdir" ;;
7597 *) func_append finalize_rpath " $libdir" ;;
64557598 esac
64567599 done
64577600 if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
64657608 for lib in $old_dlfiles; do
64667609 case " $dlprefiles $dlfiles " in
64677610 *" $lib "*) ;;
6468 *) dlfiles="$dlfiles $lib" ;;
7611 *) func_append dlfiles " $lib" ;;
64697612 esac
64707613 done
64717614
64757618 for lib in $old_dlprefiles; do
64767619 case "$dlprefiles " in
64777620 *" $lib "*) ;;
6478 *) dlprefiles="$dlprefiles $lib" ;;
7621 *) func_append dlprefiles " $lib" ;;
64797622 esac
64807623 done
64817624
64827625 if test "$build_libtool_libs" = yes; then
64837626 if test -n "$rpath"; then
64847627 case $host in
6485 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)
7628 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
64867629 # these systems don't actually have a c library (as such)!
64877630 ;;
64887631 *-*-rhapsody* | *-*-darwin1.[012])
64897632 # Rhapsody C library is in the System framework
6490 deplibs="$deplibs System.ltframework"
7633 func_append deplibs " System.ltframework"
64917634 ;;
64927635 *-*-netbsd*)
64937636 # Don't link with libc until the a.out ld.so is fixed.
65047647 *)
65057648 # Add libc to deplibs on all other systems if necessary.
65067649 if test "$build_libtool_need_lc" = "yes"; then
6507 deplibs="$deplibs -lc"
7650 func_append deplibs " -lc"
65087651 fi
65097652 ;;
65107653 esac
65537696 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
65547697 case " $predeps $postdeps " in
65557698 *" $i "*)
6556 newdeplibs="$newdeplibs $i"
7699 func_append newdeplibs " $i"
65577700 i=""
65587701 ;;
65597702 esac
65647707 set dummy $deplib_matches; shift
65657708 deplib_match=$1
65667709 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
6567 newdeplibs="$newdeplibs $i"
7710 func_append newdeplibs " $i"
65687711 else
65697712 droppeddeps=yes
6570 $ECHO
7713 echo
65717714 $ECHO "*** Warning: dynamic linker does not accept needed library $i."
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."
7715 echo "*** I have the capability to make that library automatically link in when"
7716 echo "*** you link to this library. But I can only do this if you have a"
7717 echo "*** shared version of the library, which I believe you do not have"
7718 echo "*** because a test_compile did reveal that the linker did not use it for"
7719 echo "*** its dynamic dependency list that programs get resolved with at runtime."
65777720 fi
65787721 fi
65797722 ;;
65807723 *)
6581 newdeplibs="$newdeplibs $i"
7724 func_append newdeplibs " $i"
65827725 ;;
65837726 esac
65847727 done
65967739 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
65977740 case " $predeps $postdeps " in
65987741 *" $i "*)
6599 newdeplibs="$newdeplibs $i"
7742 func_append newdeplibs " $i"
66007743 i=""
66017744 ;;
66027745 esac
66077750 set dummy $deplib_matches; shift
66087751 deplib_match=$1
66097752 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
6610 newdeplibs="$newdeplibs $i"
7753 func_append newdeplibs " $i"
66117754 else
66127755 droppeddeps=yes
6613 $ECHO
7756 echo
66147757 $ECHO "*** Warning: dynamic linker does not accept needed library $i."
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."
7758 echo "*** I have the capability to make that library automatically link in when"
7759 echo "*** you link to this library. But I can only do this if you have a"
7760 echo "*** shared version of the library, which you do not appear to have"
7761 echo "*** because a test_compile did reveal that the linker did not use this one"
7762 echo "*** as a dynamic dependency that programs can get resolved with at runtime."
66207763 fi
66217764 fi
66227765 else
66237766 droppeddeps=yes
6624 $ECHO
7767 echo
66257768 $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
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."
7769 echo "*** make it link in! You will probably need to install it or some"
7770 echo "*** library that it depends on before this library will be fully"
7771 echo "*** functional. Installing it before continuing would be even better."
66297772 fi
66307773 ;;
66317774 *)
6632 newdeplibs="$newdeplibs $i"
7775 func_append newdeplibs " $i"
66337776 ;;
66347777 esac
66357778 done
66467789 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
66477790 case " $predeps $postdeps " in
66487791 *" $a_deplib "*)
6649 newdeplibs="$newdeplibs $a_deplib"
7792 func_append newdeplibs " $a_deplib"
66507793 a_deplib=""
66517794 ;;
66527795 esac
66537796 fi
66547797 if test -n "$a_deplib" ; then
66557798 libname=`eval "\\$ECHO \"$libname_spec\""`
7799 if test -n "$file_magic_glob"; then
7800 libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
7801 else
7802 libnameglob=$libname
7803 fi
7804 test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
66567805 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
6657 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
7806 if test "$want_nocaseglob" = yes; then
7807 shopt -s nocaseglob
7808 potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
7809 $nocaseglob
7810 else
7811 potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
7812 fi
66587813 for potent_lib in $potential_libs; do
66597814 # Follow soft links.
66607815 if ls -lLd "$potent_lib" 2>/dev/null |
66717826 potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
66727827 case $potliblink in
66737828 [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
6674 *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
7829 *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
66757830 esac
66767831 done
66777832 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
66787833 $SED -e 10q |
66797834 $EGREP "$file_magic_regex" > /dev/null; then
6680 newdeplibs="$newdeplibs $a_deplib"
7835 func_append newdeplibs " $a_deplib"
66817836 a_deplib=""
66827837 break 2
66837838 fi
66867841 fi
66877842 if test -n "$a_deplib" ; then
66887843 droppeddeps=yes
6689 $ECHO
7844 echo
66907845 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
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"
7846 echo "*** I have the capability to make that library automatically link in when"
7847 echo "*** you link to this library. But I can only do this if you have a"
7848 echo "*** shared version of the library, which you do not appear to have"
7849 echo "*** because I did check the linker path looking for a file starting"
66957850 if test -z "$potlib" ; then
66967851 $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
66977852 else
67027857 ;;
67037858 *)
67047859 # Add a -L argument.
6705 newdeplibs="$newdeplibs $a_deplib"
7860 func_append newdeplibs " $a_deplib"
67067861 ;;
67077862 esac
67087863 done # Gone through all deplibs.
67187873 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
67197874 case " $predeps $postdeps " in
67207875 *" $a_deplib "*)
6721 newdeplibs="$newdeplibs $a_deplib"
7876 func_append newdeplibs " $a_deplib"
67227877 a_deplib=""
67237878 ;;
67247879 esac
67297884 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
67307885 for potent_lib in $potential_libs; do
67317886 potlib="$potent_lib" # see symlink-check above in file_magic test
6732 if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
7887 if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
67337888 $EGREP "$match_pattern_regex" > /dev/null; then
6734 newdeplibs="$newdeplibs $a_deplib"
7889 func_append newdeplibs " $a_deplib"
67357890 a_deplib=""
67367891 break 2
67377892 fi
67407895 fi
67417896 if test -n "$a_deplib" ; then
67427897 droppeddeps=yes
6743 $ECHO
7898 echo
67447899 $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
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"
7900 echo "*** I have the capability to make that library automatically link in when"
7901 echo "*** you link to this library. But I can only do this if you have a"
7902 echo "*** shared version of the library, which you do not appear to have"
7903 echo "*** because I did check the linker path looking for a file starting"
67497904 if test -z "$potlib" ; then
67507905 $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
67517906 else
67567911 ;;
67577912 *)
67587913 # Add a -L argument.
6759 newdeplibs="$newdeplibs $a_deplib"
7914 func_append newdeplibs " $a_deplib"
67607915 ;;
67617916 esac
67627917 done # Gone through all deplibs.
67637918 ;;
67647919 none | unknown | *)
67657920 newdeplibs=""
6766 tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
6767 -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
7921 tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
67687922 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
67697923 for i in $predeps $postdeps ; do
67707924 # can't use Xsed below, because $i might contain '/'
6771 tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
7925 tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
67727926 done
67737927 fi
6774 if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' |
6775 $GREP . >/dev/null; then
6776 $ECHO
7928 case $tmp_deplibs in
7929 *[!\ \ ]*)
7930 echo
67777931 if test "X$deplibs_check_method" = "Xnone"; then
6778 $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
7932 echo "*** Warning: inter-library dependencies are not supported in this platform."
67797933 else
6780 $ECHO "*** Warning: inter-library dependencies are not known to be supported."
7934 echo "*** Warning: inter-library dependencies are not known to be supported."
67817935 fi
6782 $ECHO "*** All declared inter-library dependencies are being dropped."
7936 echo "*** All declared inter-library dependencies are being dropped."
67837937 droppeddeps=yes
6784 fi
7938 ;;
7939 esac
67857940 ;;
67867941 esac
67877942 versuffix=$versuffix_save
67937948 case $host in
67947949 *-*-rhapsody* | *-*-darwin1.[012])
67957950 # On Rhapsody replace the C library with the System framework
6796 newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
7951 newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
67977952 ;;
67987953 esac
67997954
68007955 if test "$droppeddeps" = yes; then
68017956 if test "$module" = yes; then
6802 $ECHO
6803 $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
7957 echo
7958 echo "*** Warning: libtool could not satisfy all declared inter-library"
68047959 $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
6805 $ECHO "*** a static module, that should work as long as the dlopening"
6806 $ECHO "*** application is linked with the -dlopen flag."
7960 echo "*** a static module, that should work as long as the dlopening"
7961 echo "*** application is linked with the -dlopen flag."
68077962 if test -z "$global_symbol_pipe"; then
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."
7963 echo
7964 echo "*** However, this would only work if libtool was able to extract symbol"
7965 echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
7966 echo "*** not find such a program. So, this module is probably useless."
7967 echo "*** \`nm' from GNU binutils and a full rebuild may help."
68137968 fi
68147969 if test "$build_old_libs" = no; then
68157970 oldlibs="$output_objdir/$libname.$libext"
68197974 build_libtool_libs=no
68207975 fi
68217976 else
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."
7977 echo "*** The inter-library dependencies that have been dropped here will be"
7978 echo "*** automatically added whenever a program is linked with this library"
7979 echo "*** or is declared to -dlopen it."
68257980
68267981 if test "$allow_undefined" = no; then
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."
7982 echo
7983 echo "*** Since this library must not contain undefined symbols,"
7984 echo "*** because either the platform does not support them or"
7985 echo "*** it was explicitly requested with -no-undefined,"
7986 echo "*** libtool will only create a static version of it."
68327987 if test "$build_old_libs" = no; then
68337988 oldlibs="$output_objdir/$libname.$libext"
68347989 build_libtool_libs=module
68458000 # Time to change all our "foo.ltframework" stuff back to "-framework foo"
68468001 case $host in
68478002 *-*-darwin*)
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'`
8003 newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
8004 new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
8005 deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
68518006 ;;
68528007 esac
68538008
68608015 *)
68618016 case " $deplibs " in
68628017 *" -L$path/$objdir "*)
6863 new_libs="$new_libs -L$path/$objdir" ;;
8018 func_append new_libs " -L$path/$objdir" ;;
68648019 esac
68658020 ;;
68668021 esac
68708025 -L*)
68718026 case " $new_libs " in
68728027 *" $deplib "*) ;;
6873 *) new_libs="$new_libs $deplib" ;;
8028 *) func_append new_libs " $deplib" ;;
68748029 esac
68758030 ;;
6876 *) new_libs="$new_libs $deplib" ;;
8031 *) func_append new_libs " $deplib" ;;
68778032 esac
68788033 done
68798034 deplibs="$new_libs"
68858040
68868041 # Test again, we may have decided not to build it any more
68878042 if test "$build_libtool_libs" = yes; then
8043 # Remove ${wl} instances when linking with ld.
8044 # FIXME: should test the right _cmds variable.
8045 case $archive_cmds in
8046 *\$LD\ *) wl= ;;
8047 esac
68888048 if test "$hardcode_into_libs" = yes; then
68898049 # Hardcode the library paths
68908050 hardcode_libdirs=
68918051 dep_rpath=
68928052 rpath="$finalize_rpath"
6893 test "$mode" != relink && rpath="$compile_rpath$rpath"
8053 test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
68948054 for libdir in $rpath; do
68958055 if test -n "$hardcode_libdir_flag_spec"; then
68968056 if test -n "$hardcode_libdir_separator"; then
8057 func_replace_sysroot "$libdir"
8058 libdir=$func_replace_sysroot_result
68978059 if test -z "$hardcode_libdirs"; then
68988060 hardcode_libdirs="$libdir"
68998061 else
69028064 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
69038065 ;;
69048066 *)
6905 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
8067 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
69068068 ;;
69078069 esac
69088070 fi
69098071 else
69108072 eval flag=\"$hardcode_libdir_flag_spec\"
6911 dep_rpath="$dep_rpath $flag"
8073 func_append dep_rpath " $flag"
69128074 fi
69138075 elif test -n "$runpath_var"; then
69148076 case "$perm_rpath " in
69158077 *" $libdir "*) ;;
6916 *) perm_rpath="$perm_rpath $libdir" ;;
8078 *) func_append perm_rpath " $libdir" ;;
69178079 esac
69188080 fi
69198081 done
69218083 if test -n "$hardcode_libdir_separator" &&
69228084 test -n "$hardcode_libdirs"; then
69238085 libdir="$hardcode_libdirs"
6924 if test -n "$hardcode_libdir_flag_spec_ld"; then
6925 eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
6926 else
6927 eval dep_rpath=\"$hardcode_libdir_flag_spec\"
6928 fi
8086 eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
69298087 fi
69308088 if test -n "$runpath_var" && test -n "$perm_rpath"; then
69318089 # We should set the runpath_var.
69328090 rpath=
69338091 for dir in $perm_rpath; do
6934 rpath="$rpath$dir:"
8092 func_append rpath "$dir:"
69358093 done
69368094 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
69378095 fi
69398097 fi
69408098
69418099 shlibpath="$finalize_shlibpath"
6942 test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
8100 test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
69438101 if test -n "$shlibpath"; then
69448102 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
69458103 fi
69658123 linknames=
69668124 for link
69678125 do
6968 linknames="$linknames $link"
8126 func_append linknames " $link"
69698127 done
69708128
69718129 # Use standard objects if they are pic
6972 test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
8130 test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
69738131 test "X$libobjs" = "X " && libobjs=
69748132
69758133 delfiles=
69768134 if test -n "$export_symbols" && test -n "$include_expsyms"; then
69778135 $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
69788136 export_symbols="$output_objdir/$libname.uexp"
6979 delfiles="$delfiles $export_symbols"
8137 func_append delfiles " $export_symbols"
69808138 fi
69818139
69828140 orig_export_symbols=
70078165 $opt_dry_run || $RM $export_symbols
70088166 cmds=$export_symbols_cmds
70098167 save_ifs="$IFS"; IFS='~'
7010 for cmd in $cmds; do
8168 for cmd1 in $cmds; do
70118169 IFS="$save_ifs"
7012 eval cmd=\"$cmd\"
7013 func_len " $cmd"
7014 len=$func_len_result
7015 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
8170 # Take the normal branch if the nm_file_list_spec branch
8171 # doesn't work or if tool conversion is not needed.
8172 case $nm_file_list_spec~$to_tool_file_cmd in
8173 *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
8174 try_normal_branch=yes
8175 eval cmd=\"$cmd1\"
8176 func_len " $cmd"
8177 len=$func_len_result
8178 ;;
8179 *)
8180 try_normal_branch=no
8181 ;;
8182 esac
8183 if test "$try_normal_branch" = yes \
8184 && { test "$len" -lt "$max_cmd_len" \
8185 || test "$max_cmd_len" -le -1; }
8186 then
70168187 func_show_eval "$cmd" 'exit $?'
8188 skipped_export=false
8189 elif test -n "$nm_file_list_spec"; then
8190 func_basename "$output"
8191 output_la=$func_basename_result
8192 save_libobjs=$libobjs
8193 save_output=$output
8194 output=${output_objdir}/${output_la}.nm
8195 func_to_tool_file "$output"
8196 libobjs=$nm_file_list_spec$func_to_tool_file_result
8197 func_append delfiles " $output"
8198 func_verbose "creating $NM input file list: $output"
8199 for obj in $save_libobjs; do
8200 func_to_tool_file "$obj"
8201 $ECHO "$func_to_tool_file_result"
8202 done > "$output"
8203 eval cmd=\"$cmd1\"
8204 func_show_eval "$cmd" 'exit $?'
8205 output=$save_output
8206 libobjs=$save_libobjs
70178207 skipped_export=false
70188208 else
70198209 # The command line is too long to execute in one step.
70358225 if test -n "$export_symbols" && test -n "$include_expsyms"; then
70368226 tmp_export_symbols="$export_symbols"
70378227 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
7038 $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
8228 $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
70398229 fi
70408230
70418231 if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
70478237 # global variables. join(1) would be nice here, but unfortunately
70488238 # isn't a blessed tool.
70498239 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
7050 delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
8240 func_append delfiles " $export_symbols $output_objdir/$libname.filter"
70518241 export_symbols=$output_objdir/$libname.def
70528242 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
70538243 fi
70578247 case " $convenience " in
70588248 *" $test_deplib "*) ;;
70598249 *)
7060 tmp_deplibs="$tmp_deplibs $test_deplib"
8250 func_append tmp_deplibs " $test_deplib"
70618251 ;;
70628252 esac
70638253 done
70778267 test "X$libobjs" = "X " && libobjs=
70788268 else
70798269 gentop="$output_objdir/${outputname}x"
7080 generated="$generated $gentop"
8270 func_append generated " $gentop"
70818271
70828272 func_extract_archives $gentop $convenience
7083 libobjs="$libobjs $func_extract_archives_result"
8273 func_append libobjs " $func_extract_archives_result"
70848274 test "X$libobjs" = "X " && libobjs=
70858275 fi
70868276 fi
70878277
70888278 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
70898279 eval flag=\"$thread_safe_flag_spec\"
7090 linker_flags="$linker_flags $flag"
8280 func_append linker_flags " $flag"
70918281 fi
70928282
70938283 # Make a backup of the uninstalled library when relinking
7094 if test "$mode" = relink; then
8284 if test "$opt_mode" = relink; then
70958285 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
70968286 fi
70978287
71368326 save_libobjs=$libobjs
71378327 fi
71388328 save_output=$output
7139 output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
8329 func_basename "$output"
8330 output_la=$func_basename_result
71408331
71418332 # Clear the reloadable object creation command queue and
71428333 # initialize k to one.
71498340 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
71508341 output=${output_objdir}/${output_la}.lnkscript
71518342 func_verbose "creating GNU ld script: $output"
7152 $ECHO 'INPUT (' > $output
8343 echo 'INPUT (' > $output
71538344 for obj in $save_libobjs
71548345 do
7155 $ECHO "$obj" >> $output
8346 func_to_tool_file "$obj"
8347 $ECHO "$func_to_tool_file_result" >> $output
71568348 done
7157 $ECHO ')' >> $output
7158 delfiles="$delfiles $output"
8349 echo ')' >> $output
8350 func_append delfiles " $output"
8351 func_to_tool_file "$output"
8352 output=$func_to_tool_file_result
71598353 elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
71608354 output=${output_objdir}/${output_la}.lnk
71618355 func_verbose "creating linker input file list: $output"
71698363 fi
71708364 for obj
71718365 do
7172 $ECHO "$obj" >> $output
8366 func_to_tool_file "$obj"
8367 $ECHO "$func_to_tool_file_result" >> $output
71738368 done
7174 delfiles="$delfiles $output"
7175 output=$firstobj\"$file_list_spec$output\"
8369 func_append delfiles " $output"
8370 func_to_tool_file "$output"
8371 output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
71768372 else
71778373 if test -n "$save_libobjs"; then
71788374 func_verbose "creating reloadable object files..."
71968392 # command to the queue.
71978393 if test "$k" -eq 1 ; then
71988394 # The first file doesn't have a previous command to add.
7199 eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
8395 reload_objs=$objlist
8396 eval concat_cmds=\"$reload_cmds\"
72008397 else
72018398 # All subsequent reloadable object files will link in
72028399 # the last one created.
7203 eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
8400 reload_objs="$objlist $last_robj"
8401 eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
72048402 fi
72058403 last_robj=$output_objdir/$output_la-${k}.$objext
72068404 func_arith $k + 1
72078405 k=$func_arith_result
72088406 output=$output_objdir/$output_la-${k}.$objext
7209 objlist=$obj
8407 objlist=" $obj"
72108408 func_len " $last_robj"
72118409 func_arith $len0 + $func_len_result
72128410 len=$func_arith_result
72168414 # reloadable object file. All subsequent reloadable object
72178415 # files will link in the last one created.
72188416 test -z "$concat_cmds" || concat_cmds=$concat_cmds~
7219 eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
8417 reload_objs="$objlist $last_robj"
8418 eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
72208419 if test -n "$last_robj"; then
72218420 eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
72228421 fi
7223 delfiles="$delfiles $output"
8422 func_append delfiles " $output"
72248423
72258424 else
72268425 output=
72548453 lt_exit=$?
72558454
72568455 # Restore the uninstalled library and exit
7257 if test "$mode" = relink; then
8456 if test "$opt_mode" = relink; then
72588457 ( cd "$output_objdir" && \
72598458 $RM "${realname}T" && \
72608459 $MV "${realname}U" "$realname" )
72758474 if test -n "$export_symbols" && test -n "$include_expsyms"; then
72768475 tmp_export_symbols="$export_symbols"
72778476 test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
7278 $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
8477 $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
72798478 fi
72808479
72818480 if test -n "$orig_export_symbols"; then
72878486 # global variables. join(1) would be nice here, but unfortunately
72888487 # isn't a blessed tool.
72898488 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
7290 delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
8489 func_append delfiles " $export_symbols $output_objdir/$libname.filter"
72918490 export_symbols=$output_objdir/$libname.def
72928491 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
72938492 fi
73288527 # Add any objects from preloaded convenience libraries
73298528 if test -n "$dlprefiles"; then
73308529 gentop="$output_objdir/${outputname}x"
7331 generated="$generated $gentop"
8530 func_append generated " $gentop"
73328531
73338532 func_extract_archives $gentop $dlprefiles
7334 libobjs="$libobjs $func_extract_archives_result"
8533 func_append libobjs " $func_extract_archives_result"
73358534 test "X$libobjs" = "X " && libobjs=
73368535 fi
73378536
73478546 lt_exit=$?
73488547
73498548 # Restore the uninstalled library and exit
7350 if test "$mode" = relink; then
8549 if test "$opt_mode" = relink; then
73518550 ( cd "$output_objdir" && \
73528551 $RM "${realname}T" && \
73538552 $MV "${realname}U" "$realname" )
73598558 IFS="$save_ifs"
73608559
73618560 # Restore the uninstalled library and exit
7362 if test "$mode" = relink; then
8561 if test "$opt_mode" = relink; then
73638562 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
73648563
73658564 if test -n "$convenience"; then
74408639 if test -n "$convenience"; then
74418640 if test -n "$whole_archive_flag_spec"; then
74428641 eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
7443 reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
8642 reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
74448643 else
74458644 gentop="$output_objdir/${obj}x"
7446 generated="$generated $gentop"
8645 func_append generated " $gentop"
74478646
74488647 func_extract_archives $gentop $convenience
74498648 reload_conv_objs="$reload_objs $func_extract_archives_result"
74508649 fi
74518650 fi
74528651
8652 # If we're not building shared, we need to use non_pic_objs
8653 test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
8654
74538655 # Create the old-style object.
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
8656 reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
74558657
74568658 output="$obj"
74578659 func_execute_cmds "$reload_cmds" 'exit $?'
75118713 case $host in
75128714 *-*-rhapsody* | *-*-darwin1.[012])
75138715 # On Rhapsody replace the C library is the System framework
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 /'`
8716 compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
8717 finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
75168718 ;;
75178719 esac
75188720
75238725 if test "$tagname" = CXX ; then
75248726 case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
75258727 10.[0123])
7526 compile_command="$compile_command ${wl}-bind_at_load"
7527 finalize_command="$finalize_command ${wl}-bind_at_load"
8728 func_append compile_command " ${wl}-bind_at_load"
8729 func_append finalize_command " ${wl}-bind_at_load"
75288730 ;;
75298731 esac
75308732 fi
75318733 # Time to change all our "foo.ltframework" stuff back to "-framework foo"
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'`
8734 compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
8735 finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
75348736 ;;
75358737 esac
75368738
75448746 *)
75458747 case " $compile_deplibs " in
75468748 *" -L$path/$objdir "*)
7547 new_libs="$new_libs -L$path/$objdir" ;;
8749 func_append new_libs " -L$path/$objdir" ;;
75488750 esac
75498751 ;;
75508752 esac
75548756 -L*)
75558757 case " $new_libs " in
75568758 *" $deplib "*) ;;
7557 *) new_libs="$new_libs $deplib" ;;
8759 *) func_append new_libs " $deplib" ;;
75588760 esac
75598761 ;;
7560 *) new_libs="$new_libs $deplib" ;;
8762 *) func_append new_libs " $deplib" ;;
75618763 esac
75628764 done
75638765 compile_deplibs="$new_libs"
75648766
75658767
7566 compile_command="$compile_command $compile_deplibs"
7567 finalize_command="$finalize_command $finalize_deplibs"
8768 func_append compile_command " $compile_deplibs"
8769 func_append finalize_command " $finalize_deplibs"
75688770
75698771 if test -n "$rpath$xrpath"; then
75708772 # If the user specified any rpath flags, then add them.
75728774 # This is the magic to use -rpath.
75738775 case "$finalize_rpath " in
75748776 *" $libdir "*) ;;
7575 *) finalize_rpath="$finalize_rpath $libdir" ;;
8777 *) func_append finalize_rpath " $libdir" ;;
75768778 esac
75778779 done
75788780 fi
75918793 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
75928794 ;;
75938795 *)
7594 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
8796 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
75958797 ;;
75968798 esac
75978799 fi
75988800 else
75998801 eval flag=\"$hardcode_libdir_flag_spec\"
7600 rpath="$rpath $flag"
8802 func_append rpath " $flag"
76018803 fi
76028804 elif test -n "$runpath_var"; then
76038805 case "$perm_rpath " in
76048806 *" $libdir "*) ;;
7605 *) perm_rpath="$perm_rpath $libdir" ;;
8807 *) func_append perm_rpath " $libdir" ;;
76068808 esac
76078809 fi
76088810 case $host in
76118813 case :$dllsearchpath: in
76128814 *":$libdir:"*) ;;
76138815 ::) dllsearchpath=$libdir;;
7614 *) dllsearchpath="$dllsearchpath:$libdir";;
8816 *) func_append dllsearchpath ":$libdir";;
76158817 esac
76168818 case :$dllsearchpath: in
76178819 *":$testbindir:"*) ;;
76188820 ::) dllsearchpath=$testbindir;;
7619 *) dllsearchpath="$dllsearchpath:$testbindir";;
8821 *) func_append dllsearchpath ":$testbindir";;
76208822 esac
76218823 ;;
76228824 esac
76428844 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
76438845 ;;
76448846 *)
7645 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
8847 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
76468848 ;;
76478849 esac
76488850 fi
76498851 else
76508852 eval flag=\"$hardcode_libdir_flag_spec\"
7651 rpath="$rpath $flag"
8853 func_append rpath " $flag"
76528854 fi
76538855 elif test -n "$runpath_var"; then
76548856 case "$finalize_perm_rpath " in
76558857 *" $libdir "*) ;;
7656 *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
8858 *) func_append finalize_perm_rpath " $libdir" ;;
76578859 esac
76588860 fi
76598861 done
76678869
76688870 if test -n "$libobjs" && test "$build_old_libs" = yes; then
76698871 # Transform all the library objects into standard objects.
7670 compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
7671 finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
8872 compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
8873 finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
76728874 fi
76738875
76748876 func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
76808882
76818883 wrappers_required=yes
76828884 case $host in
8885 *cegcc* | *mingw32ce*)
8886 # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
8887 wrappers_required=no
8888 ;;
76838889 *cygwin* | *mingw* )
76848890 if test "$build_libtool_libs" != yes; then
76858891 wrappers_required=no
76868892 fi
7687 ;;
7688 *cegcc)
7689 # Disable wrappers for cegcc, we are cross compiling anyway.
7690 wrappers_required=no
76918893 ;;
76928894 *)
76938895 if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
76978899 esac
76988900 if test "$wrappers_required" = no; then
76998901 # Replace the output file specification.
7700 compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
8902 compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
77018903 link_command="$compile_command$compile_rpath"
77028904
77038905 # We have no uninstalled library dependencies, so finalize right now.
77048906 exit_status=0
77058907 func_show_eval "$link_command" 'exit_status=$?'
8908
8909 if test -n "$postlink_cmds"; then
8910 func_to_tool_file "$output"
8911 postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
8912 func_execute_cmds "$postlink_cmds" 'exit $?'
8913 fi
77068914
77078915 # Delete the generated files.
77088916 if test -f "$output_objdir/${outputname}S.${objext}"; then
77268934 # We should set the runpath_var.
77278935 rpath=
77288936 for dir in $perm_rpath; do
7729 rpath="$rpath$dir:"
8937 func_append rpath "$dir:"
77308938 done
77318939 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
77328940 fi
77348942 # We should set the runpath_var.
77358943 rpath=
77368944 for dir in $finalize_perm_rpath; do
7737 rpath="$rpath$dir:"
8945 func_append rpath "$dir:"
77388946 done
77398947 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
77408948 fi
77448952 # We don't need to create a wrapper script.
77458953 link_command="$compile_var$compile_command$compile_rpath"
77468954 # Replace the output file specification.
7747 link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
8955 link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
77488956 # Delete the old output file.
77498957 $opt_dry_run || $RM $output
77508958 # Link the executable and exit
77518959 func_show_eval "$link_command" 'exit $?'
8960
8961 if test -n "$postlink_cmds"; then
8962 func_to_tool_file "$output"
8963 postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
8964 func_execute_cmds "$postlink_cmds" 'exit $?'
8965 fi
8966
77528967 exit $EXIT_SUCCESS
77538968 fi
77548969
77638978 if test "$fast_install" != no; then
77648979 link_command="$finalize_var$compile_command$finalize_rpath"
77658980 if test "$fast_install" = yes; then
7766 relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
8981 relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
77678982 else
77688983 # fast_install is set to needless
77698984 relink_command=
77758990 fi
77768991
77778992 # Replace the output file specification.
7778 link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
8993 link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
77798994
77808995 # Delete the old output files.
77818996 $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
77828997
77838998 func_show_eval "$link_command" 'exit $?'
8999
9000 if test -n "$postlink_cmds"; then
9001 func_to_tool_file "$output_objdir/$outputname"
9002 postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
9003 func_execute_cmds "$postlink_cmds" 'exit $?'
9004 fi
77849005
77859006 # Now create the wrapper script.
77869007 func_verbose "creating $output"
77999020 fi
78009021 done
78019022 relink_command="(cd `pwd`; $relink_command)"
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"`
9023 relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
78149024 fi
78159025
78169026 # Only actually do things if not in dry run mode.
78909100 else
78919101 oldobjs="$old_deplibs $non_pic_objects"
78929102 if test "$preload" = yes && test -f "$symfileobj"; then
7893 oldobjs="$oldobjs $symfileobj"
9103 func_append oldobjs " $symfileobj"
78949104 fi
78959105 fi
78969106 addlibs="$old_convenience"
78989108
78999109 if test -n "$addlibs"; then
79009110 gentop="$output_objdir/${outputname}x"
7901 generated="$generated $gentop"
9111 func_append generated " $gentop"
79029112
79039113 func_extract_archives $gentop $addlibs
7904 oldobjs="$oldobjs $func_extract_archives_result"
9114 func_append oldobjs " $func_extract_archives_result"
79059115 fi
79069116
79079117 # Do each command in the archive commands.
79129122 # Add any objects from preloaded convenience libraries
79139123 if test -n "$dlprefiles"; then
79149124 gentop="$output_objdir/${outputname}x"
7915 generated="$generated $gentop"
9125 func_append generated " $gentop"
79169126
79179127 func_extract_archives $gentop $dlprefiles
7918 oldobjs="$oldobjs $func_extract_archives_result"
9128 func_append oldobjs " $func_extract_archives_result"
79199129 fi
79209130
79219131 # POSIX demands no paths to be encoded in archives. We have
79319141 done | sort | sort -uc >/dev/null 2>&1); then
79329142 :
79339143 else
7934 $ECHO "copying selected object files to avoid basename conflicts..."
9144 echo "copying selected object files to avoid basename conflicts..."
79359145 gentop="$output_objdir/${outputname}x"
7936 generated="$generated $gentop"
9146 func_append generated " $gentop"
79379147 func_mkdir_p "$gentop"
79389148 save_oldobjs=$oldobjs
79399149 oldobjs=
79579167 esac
79589168 done
79599169 func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
7960 oldobjs="$oldobjs $gentop/$newobj"
9170 func_append oldobjs " $gentop/$newobj"
79619171 ;;
7962 *) oldobjs="$oldobjs $obj" ;;
9172 *) func_append oldobjs " $obj" ;;
79639173 esac
79649174 done
79659175 fi
9176 func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
9177 tool_oldlib=$func_to_tool_file_result
79669178 eval cmds=\"$old_archive_cmds\"
79679179
79689180 func_len " $cmds"
79699181 len=$func_len_result
79709182 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
9183 cmds=$old_archive_cmds
9184 elif test -n "$archiver_list_spec"; then
9185 func_verbose "using command file archive linking..."
9186 for obj in $oldobjs
9187 do
9188 func_to_tool_file "$obj"
9189 $ECHO "$func_to_tool_file_result"
9190 done > $output_objdir/$libname.libcmd
9191 func_to_tool_file "$output_objdir/$libname.libcmd"
9192 oldobjs=" $archiver_list_spec$func_to_tool_file_result"
79719193 cmds=$old_archive_cmds
79729194 else
79739195 # the command line is too long to link in one step, link in parts
80429264 done
80439265 # Quote the link command for shipping.
80449266 relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
8045 relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
9267 relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
80469268 if test "$hardcode_automatic" = yes ; then
80479269 relink_command=
80489270 fi
80629284 *.la)
80639285 func_basename "$deplib"
80649286 name="$func_basename_result"
8065 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
9287 func_resolve_sysroot "$deplib"
9288 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
80669289 test -z "$libdir" && \
80679290 func_fatal_error "\`$deplib' is not a valid libtool archive"
8068 newdependency_libs="$newdependency_libs $libdir/$name"
9291 func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
80699292 ;;
8070 *) newdependency_libs="$newdependency_libs $deplib" ;;
9293 -L*)
9294 func_stripname -L '' "$deplib"
9295 func_replace_sysroot "$func_stripname_result"
9296 func_append newdependency_libs " -L$func_replace_sysroot_result"
9297 ;;
9298 -R*)
9299 func_stripname -R '' "$deplib"
9300 func_replace_sysroot "$func_stripname_result"
9301 func_append newdependency_libs " -R$func_replace_sysroot_result"
9302 ;;
9303 *) func_append newdependency_libs " $deplib" ;;
80719304 esac
80729305 done
80739306 dependency_libs="$newdependency_libs"
80819314 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
80829315 test -z "$libdir" && \
80839316 func_fatal_error "\`$lib' is not a valid libtool archive"
8084 newdlfiles="$newdlfiles $libdir/$name"
9317 func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
80859318 ;;
8086 *) newdlfiles="$newdlfiles $lib" ;;
9319 *) func_append newdlfiles " $lib" ;;
80879320 esac
80889321 done
80899322 dlfiles="$newdlfiles"
81009333 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
81019334 test -z "$libdir" && \
81029335 func_fatal_error "\`$lib' is not a valid libtool archive"
8103 newdlprefiles="$newdlprefiles $libdir/$name"
9336 func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
81049337 ;;
81059338 esac
81069339 done
81129345 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
81139346 *) abs=`pwd`"/$lib" ;;
81149347 esac
8115 newdlfiles="$newdlfiles $abs"
9348 func_append newdlfiles " $abs"
81169349 done
81179350 dlfiles="$newdlfiles"
81189351 newdlprefiles=
81219354 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
81229355 *) abs=`pwd`"/$lib" ;;
81239356 esac
8124 newdlprefiles="$newdlprefiles $abs"
9357 func_append newdlprefiles " $abs"
81259358 done
81269359 dlprefiles="$newdlprefiles"
81279360 fi
81289361 $RM $output
81299362 # place dlname in correct position for cygwin
9363 # In fact, it would be nice if we could use this code for all target
9364 # systems that can't hard-code library paths into their executables
9365 # and that have no shared library path variable independent of PATH,
9366 # but it turns out we can't easily determine that from inspecting
9367 # libtool variables, so we have to hard-code the OSs to which it
9368 # applies here; at the moment, that means platforms that use the PE
9369 # object format with DLL files. See the long comment at the top of
9370 # tests/bindir.at for full details.
81309371 tdlname=$dlname
81319372 case $host,$output,$installed,$module,$dlname in
8132 *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
9373 *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
9374 # If a -bindir argument was supplied, place the dll there.
9375 if test "x$bindir" != x ;
9376 then
9377 func_relative_path "$install_libdir" "$bindir"
9378 tdlname=$func_relative_path_result$dlname
9379 else
9380 # Otherwise fall back on heuristic.
9381 tdlname=../bin/$dlname
9382 fi
9383 ;;
81339384 esac
81349385 $ECHO > $output "\
81359386 # $outputname - a libtool library file
81889439 exit $EXIT_SUCCESS
81899440 }
81909441
8191 { test "$mode" = link || test "$mode" = relink; } &&
9442 { test "$opt_mode" = link || test "$opt_mode" = relink; } &&
81929443 func_mode_link ${1+"$@"}
81939444
81949445
82089459 for arg
82099460 do
82109461 case $arg in
8211 -f) RM="$RM $arg"; rmforce=yes ;;
8212 -*) RM="$RM $arg" ;;
8213 *) files="$files $arg" ;;
9462 -f) func_append RM " $arg"; rmforce=yes ;;
9463 -*) func_append RM " $arg" ;;
9464 *) func_append files " $arg" ;;
82149465 esac
82159466 done
82169467
82199470
82209471 rmdirs=
82219472
8222 origobjdir="$objdir"
82239473 for file in $files; do
82249474 func_dirname "$file" "" "."
82259475 dir="$func_dirname_result"
82269476 if test "X$dir" = X.; then
8227 objdir="$origobjdir"
9477 odir="$objdir"
82289478 else
8229 objdir="$dir/$origobjdir"
9479 odir="$dir/$objdir"
82309480 fi
82319481 func_basename "$file"
82329482 name="$func_basename_result"
8233 test "$mode" = uninstall && objdir="$dir"
8234
8235 # Remember objdir for removal later, being careful to avoid duplicates
8236 if test "$mode" = clean; then
9483 test "$opt_mode" = uninstall && odir="$dir"
9484
9485 # Remember odir for removal later, being careful to avoid duplicates
9486 if test "$opt_mode" = clean; then
82379487 case " $rmdirs " in
8238 *" $objdir "*) ;;
8239 *) rmdirs="$rmdirs $objdir" ;;
9488 *" $odir "*) ;;
9489 *) func_append rmdirs " $odir" ;;
82409490 esac
82419491 fi
82429492
82629512
82639513 # Delete the libtool libraries and symlinks.
82649514 for n in $library_names; do
8265 rmfiles="$rmfiles $objdir/$n"
9515 func_append rmfiles " $odir/$n"
82669516 done
8267 test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
8268
8269 case "$mode" in
9517 test -n "$old_library" && func_append rmfiles " $odir/$old_library"
9518
9519 case "$opt_mode" in
82709520 clean)
8271 case " $library_names " in
8272 # " " in the beginning catches empty $dlname
9521 case " $library_names " in
82739522 *" $dlname "*) ;;
8274 *) rmfiles="$rmfiles $objdir/$dlname" ;;
9523 *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
82759524 esac
8276 test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
9525 test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
82779526 ;;
82789527 uninstall)
82799528 if test -n "$library_names"; then
83019550 # Add PIC object to the list of files to remove.
83029551 if test -n "$pic_object" &&
83039552 test "$pic_object" != none; then
8304 rmfiles="$rmfiles $dir/$pic_object"
9553 func_append rmfiles " $dir/$pic_object"
83059554 fi
83069555
83079556 # Add non-PIC object to the list of files to remove.
83089557 if test -n "$non_pic_object" &&
83099558 test "$non_pic_object" != none; then
8310 rmfiles="$rmfiles $dir/$non_pic_object"
9559 func_append rmfiles " $dir/$non_pic_object"
83119560 fi
83129561 fi
83139562 ;;
83149563
83159564 *)
8316 if test "$mode" = clean ; then
9565 if test "$opt_mode" = clean ; then
83179566 noexename=$name
83189567 case $file in
83199568 *.exe)
83239572 noexename=$func_stripname_result
83249573 # $file with .exe has already been added to rmfiles,
83259574 # add $file without .exe
8326 rmfiles="$rmfiles $file"
9575 func_append rmfiles " $file"
83279576 ;;
83289577 esac
83299578 # Do a test to see if this is a libtool program.
83329581 func_ltwrapper_scriptname "$file"
83339582 relink_command=
83349583 func_source $func_ltwrapper_scriptname_result
8335 rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
9584 func_append rmfiles " $func_ltwrapper_scriptname_result"
83369585 else
83379586 relink_command=
83389587 func_source $dir/$noexename
83409589
83419590 # note $name still contains .exe if it was in $file originally
83429591 # as does the version of $file that was added into $rmfiles
8343 rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
9592 func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
83449593 if test "$fast_install" = yes && test -n "$relink_command"; then
8345 rmfiles="$rmfiles $objdir/lt-$name"
9594 func_append rmfiles " $odir/lt-$name"
83469595 fi
83479596 if test "X$noexename" != "X$name" ; then
8348 rmfiles="$rmfiles $objdir/lt-${noexename}.c"
9597 func_append rmfiles " $odir/lt-${noexename}.c"
83499598 fi
83509599 fi
83519600 fi
83539602 esac
83549603 func_show_eval "$RM $rmfiles" 'exit_status=1'
83559604 done
8356 objdir="$origobjdir"
83579605
83589606 # Try to remove the ${objdir}s in the directories where we deleted files
83599607 for dir in $rmdirs; do
83659613 exit $exit_status
83669614 }
83679615
8368 { test "$mode" = uninstall || test "$mode" = clean; } &&
9616 { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
83699617 func_mode_uninstall ${1+"$@"}
83709618
8371 test -z "$mode" && {
9619 test -z "$opt_mode" && {
83729620 help="$generic_help"
83739621 func_fatal_help "you must specify a MODE"
83749622 }
83759623
83769624 test -z "$exec_cmd" && \
8377 func_fatal_help "invalid operation mode \`$mode'"
9625 func_fatal_help "invalid operation mode \`$opt_mode'"
83789626
83799627 if test -n "$exec_cmd"; then
83809628 eval exec "$exec_cmd"
00 # Helper functions for option handling. -*- Autoconf -*-
11 #
2 # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
2 # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
3 # Inc.
34 # Written by Gary V. Vaughan, 2004
45 #
56 # This file is free software; the Free Software Foundation gives
67 # unlimited permission to copy and/or distribute it, with or without
78 # modifications, as long as this notice is preserved.
89
9 # serial 6 ltoptions.m4
10 # serial 7 ltoptions.m4
1011
1112 # This is to help aclocal find these macros, as it can't see m4_define.
1213 AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
124125 [enable_win32_dll=yes
125126
126127 case $host in
127 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
128 *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
128129 AC_CHECK_TOOL(AS, as, false)
129130 AC_CHECK_TOOL(DLLTOOL, dlltool, false)
130131 AC_CHECK_TOOL(OBJDUMP, objdump, false)
132133 esac
133134
134135 test -z "$AS" && AS=as
135 _LT_DECL([], [AS], [0], [Assembler program])dnl
136 _LT_DECL([], [AS], [1], [Assembler program])dnl
136137
137138 test -z "$DLLTOOL" && DLLTOOL=dlltool
138 _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl
139 _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
139140
140141 test -z "$OBJDUMP" && OBJDUMP=objdump
141 _LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl
142 _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
142143 ])# win32-dll
143144
144145 AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
324325 # MODE is either `yes' or `no'. If omitted, it defaults to `both'.
325326 m4_define([_LT_WITH_PIC],
326327 [AC_ARG_WITH([pic],
327 [AS_HELP_STRING([--with-pic],
328 [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
328329 [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
329 [pic_mode="$withval"],
330 [lt_p=${PACKAGE-default}
331 case $withval in
332 yes|no) pic_mode=$withval ;;
333 *)
334 pic_mode=default
335 # Look at the argument we got. We use all the common list separators.
336 lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
337 for lt_pkg in $withval; do
338 IFS="$lt_save_ifs"
339 if test "X$lt_pkg" = "X$lt_p"; then
340 pic_mode=yes
341 fi
342 done
343 IFS="$lt_save_ifs"
344 ;;
345 esac],
330346 [pic_mode=default])
331347
332348 test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
66 # unlimited permission to copy and/or distribute it, with or without
77 # modifications, as long as this notice is preserved.
88
9 # Generated from ltversion.in.
9 # @configure_input@
1010
11 # serial 3017 ltversion.m4
11 # serial 3337 ltversion.m4
1212 # This file is part of GNU Libtool
1313
14 m4_define([LT_PACKAGE_VERSION], [2.2.6b])
15 m4_define([LT_PACKAGE_REVISION], [1.3017])
14 m4_define([LT_PACKAGE_VERSION], [2.4.2])
15 m4_define([LT_PACKAGE_REVISION], [1.3337])
1616
1717 AC_DEFUN([LTVERSION_VERSION],
18 [macro_version='2.2.6b'
19 macro_revision='1.3017'
18 [macro_version='2.4.2'
19 macro_revision='1.3337'
2020 _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
2121 _LT_DECL(, macro_revision, 0)
2222 ])
00 # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
11 #
2 # Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
2 # Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
33 # Written by Scott James Remnant, 2004.
44 #
55 # This file is free software; the Free Software Foundation gives
66 # unlimited permission to copy and/or distribute it, with or without
77 # modifications, as long as this notice is preserved.
88
9 # serial 4 lt~obsolete.m4
9 # serial 5 lt~obsolete.m4
1010
1111 # These exist entirely to fool aclocal when bootstrapping libtool.
1212 #
7676 m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
7777 m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
7878 m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
79 m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])])
8079 m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
8180 m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
8281 m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
8988 m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
9089 m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
9190 m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
91 m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
92 m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
93 m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
94 m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
95 m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
96 m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
97 m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
+2074
-1079
configure less more
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.67 for Flickcurl 1.21.
2 # Generated by GNU Autoconf 2.68 for Flickcurl 1.22.
33 #
44 # Report bugs to <http://bugs.librdf.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=
9394 case $0 in #((
9495 *[\\/]* ) as_myself=$0 ;;
9596 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
172173 as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
173174 eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
174175 test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
176
177 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
178 ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
179 ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
180 ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
181 PATH=/empty FPATH=/empty; export PATH FPATH
182 test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
183 || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
175184 test \$(( 1 + 1 )) = 2 || exit 1"
176185 if (eval "$as_required") 2>/dev/null; then :
177186 as_have_required=yes
215224 # We cannot yet assume a decent shell, so we have to provide a
216225 # neutralization value for shells without unset; and this also
217226 # works around shells that cannot unset nonexistent variables.
227 # Preserve -v and -x to the replacement shell.
218228 BASH_ENV=/dev/null
219229 ENV=/dev/null
220230 (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
221231 export CONFIG_SHELL
222 exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
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+"$@"}
223239 fi
224240
225241 if test x$as_have_required = xno; then :
527543 # Sed expression to map a string onto a valid variable name.
528544 as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
529545
530
531
532 # Check that we are running under the correct shell.
533546 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
678547
679548
680549 test -n "$DJDIR" || exec 7<&0 </dev/null
700569 # Identity of this package.
701570 PACKAGE_NAME='Flickcurl'
702571 PACKAGE_TARNAME='flickcurl'
703 PACKAGE_VERSION='1.21'
704 PACKAGE_STRING='Flickcurl 1.21'
572 PACKAGE_VERSION='1.22'
573 PACKAGE_STRING='Flickcurl 1.22'
705574 PACKAGE_BUGREPORT='http://bugs.librdf.org/'
706575 PACKAGE_URL=''
707576
755624 GTK_DOC_BUILD_HTML_TRUE
756625 ENABLE_GTK_DOC_FALSE
757626 ENABLE_GTK_DOC_TRUE
758 PKG_CONFIG_LIBDIR
759 PKG_CONFIG_PATH
627 GTKDOC_DEPS_LIBS
628 GTKDOC_DEPS_CFLAGS
760629 HTML_DIR
761630 GTKDOC_MKPDF
762631 GTKDOC_REBASE
763632 GTKDOC_CHECK
633 PKG_CONFIG_LIBDIR
634 PKG_CONFIG_PATH
764635 AM_BACKSLASH
765636 AM_DEFAULT_VERBOSITY
766637 ECHO
767638 PKG_CONFIG_REQUIRES
768639 STANDARD_CFLAGS
640 FLICKCURL_OAUTH_FALSE
641 FLICKCURL_OAUTH_TRUE
769642 OFFLINE_FALSE
770643 OFFLINE_TRUE
771644 RAPTOR_CFLAGS
785658 LIPO
786659 NMEDIT
787660 DSYMUTIL
788 lt_ECHO
661 MANIFEST_TOOL
789662 RANLIB
663 ac_ct_AR
790664 AR
665 DLLTOOL
791666 OBJDUMP
792667 LN_S
793668 NM
899774 with_pic
900775 enable_fast_install
901776 with_gnu_ld
777 with_sysroot
902778 enable_libtool_lock
903779 with_xml2_config
904780 with_curl_config
905781 with_raptor
906782 enable_offline
907783 enable_capture
784 enable_oauth
908785 enable_silent_rules
909786 with_html_dir
910787 enable_gtk_doc
922799 CPP
923800 PKG_CONFIG
924801 PKG_CONFIG_PATH
925 PKG_CONFIG_LIBDIR'
802 PKG_CONFIG_LIBDIR
803 GTKDOC_DEPS_CFLAGS
804 GTKDOC_DEPS_LIBS'
926805
927806
928807 # Initialize some variables set by options.
13271206 $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
13281207 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
13291208 $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
1330 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
1209 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
13311210 ;;
13321211
13331212 esac
14651344 # Omit some internal or obsolete options to make the list less imposing.
14661345 # This message is too long to be a string in the A/UX 3.1 sh.
14671346 cat <<_ACEOF
1468 \`configure' configures Flickcurl 1.21 to adapt to many kinds of systems.
1347 \`configure' configures Flickcurl 1.22 to adapt to many kinds of systems.
14691348
14701349 Usage: $0 [OPTION]... [VAR=VALUE]...
14711350
15351414
15361415 if test -n "$ac_init_help"; then
15371416 case $ac_init_help in
1538 short | recursive ) echo "Configuration of Flickcurl 1.21:";;
1417 short | recursive ) echo "Configuration of Flickcurl 1.22:";;
15391418 esac
15401419 cat <<\_ACEOF
15411420
15541433 --disable-libtool-lock avoid locking (might break parallel builds)
15551434 --enable-offline Turn on offline use of captured XML web service responses (default disabled).
15561435 --enable-capture Turn on capturing web service responses (default disabled).
1436 --enable-oauth Compile experimental OAuth code (default disabled).
15571437 --enable-silent-rules less verbose build output (undo: `make V=1')
15581438 --disable-silent-rules verbose build output (undo: `make V=0')
15591439 --enable-gtk-doc use gtk-doc to build documentation [[default=no]]
15631443 Optional Packages:
15641444 --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
15651445 --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
1566 --with-pic try to use only PIC/non-PIC objects [default=use
1446 --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
15671447 both]
15681448 --with-gnu-ld assume the C compiler uses GNU ld [default=no]
1449 --with-sysroot=DIR Search for dependent libraries within DIR
1450 (or the compiler's sysroot if not specified).
15691451 --with-xml2-config=PATH Location of libxml xml2-config
15701452 --with-curl-config=PATH Location of libcurl curl-config
1571 --with-raptor=2|1 Use raptor V2 or V1 to serialize (default=auto)
1453 --with-raptor=yes|no|2 Use Raptor to serialize to triples (default=auto)
15721454 --with-html-dir=PATH path to installed docs
15731455
15741456 Some influential environment variables:
15851467 directories to add to pkg-config's search path
15861468 PKG_CONFIG_LIBDIR
15871469 path overriding pkg-config's built-in search path
1470 GTKDOC_DEPS_CFLAGS
1471 C compiler flags for GTKDOC_DEPS, overriding pkg-config
1472 GTKDOC_DEPS_LIBS
1473 linker flags for GTKDOC_DEPS, overriding pkg-config
15881474
15891475 Use these variables to override the choices made by `configure' or to help
15901476 it to find libraries and programs with nonstandard names/locations.
16521538 test -n "$ac_init_help" && exit $ac_status
16531539 if $ac_init_version; then
16541540 cat <<\_ACEOF
1655 Flickcurl configure 1.21
1656 generated by GNU Autoconf 2.67
1541 Flickcurl configure 1.22
1542 generated by GNU Autoconf 2.68
16571543
16581544 Copyright (C) 2010 Free Software Foundation, Inc.
16591545 This configure script is free software; the Free Software Foundation
16991585
17001586 ac_retval=1
17011587 fi
1702 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1588 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
17031589 as_fn_set_status $ac_retval
17041590
17051591 } # ac_fn_c_try_compile
17451631 # interfere with the next link command; also delete a directory that is
17461632 # left behind by Apple's compiler. We do this before executing the actions.
17471633 rm -rf conftest.dSYM conftest_ipa8_conftest.oo
1748 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1634 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
17491635 as_fn_set_status $ac_retval
17501636
17511637 } # ac_fn_c_try_link
17591645 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
17601646 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
17611647 $as_echo_n "checking for $2... " >&6; }
1762 if eval "test \"\${$3+set}\"" = set; then :
1648 if eval \${$3+:} false; then :
17631649 $as_echo_n "(cached) " >&6
17641650 else
17651651 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17771663 eval ac_res=\$$3
17781664 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
17791665 $as_echo "$ac_res" >&6; }
1780 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1666 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
17811667
17821668 } # ac_fn_c_check_header_compile
17831669
18131699
18141700 ac_retval=1
18151701 fi
1816 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1702 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
18171703 as_fn_set_status $ac_retval
18181704
18191705 } # ac_fn_c_try_cpp
18551741 ac_retval=$ac_status
18561742 fi
18571743 rm -rf conftest.dSYM conftest_ipa8_conftest.oo
1858 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1744 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
18591745 as_fn_set_status $ac_retval
18601746
18611747 } # ac_fn_c_try_run
18681754 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
18691755 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
18701756 $as_echo_n "checking for $2... " >&6; }
1871 if eval "test \"\${$3+set}\"" = set; then :
1757 if eval \${$3+:} false; then :
18721758 $as_echo_n "(cached) " >&6
18731759 else
18741760 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
19231809 eval ac_res=\$$3
19241810 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
19251811 $as_echo "$ac_res" >&6; }
1926 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1812 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
19271813
19281814 } # ac_fn_c_check_func
19291815
19351821 ac_fn_c_check_header_mongrel ()
19361822 {
19371823 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1938 if eval "test \"\${$3+set}\"" = set; then :
1824 if eval \${$3+:} false; then :
19391825 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
19401826 $as_echo_n "checking for $2... " >&6; }
1941 if eval "test \"\${$3+set}\"" = set; then :
1827 if eval \${$3+:} false; then :
19421828 $as_echo_n "(cached) " >&6
19431829 fi
19441830 eval ac_res=\$$3
20051891 esac
20061892 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
20071893 $as_echo_n "checking for $2... " >&6; }
2008 if eval "test \"\${$3+set}\"" = set; then :
1894 if eval \${$3+:} false; then :
20091895 $as_echo_n "(cached) " >&6
20101896 else
20111897 eval "$3=\$ac_header_compiler"
20141900 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
20151901 $as_echo "$ac_res" >&6; }
20161902 fi
2017 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1903 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
20181904
20191905 } # ac_fn_c_check_header_mongrel
20201906
20271913 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
20281914 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
20291915 $as_echo_n "checking for $2... " >&6; }
2030 if eval "test \"\${$3+set}\"" = set; then :
1916 if eval \${$3+:} false; then :
20311917 $as_echo_n "(cached) " >&6
20321918 else
20331919 eval "$3=no"
20681954 eval ac_res=\$$3
20691955 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
20701956 $as_echo "$ac_res" >&6; }
2071 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1957 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
20721958
20731959 } # ac_fn_c_check_type
20741960
22452131 rm -f conftest.val
22462132
22472133 fi
2248 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
2134 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
22492135 as_fn_set_status $ac_retval
22502136
22512137 } # ac_fn_c_compute_int
22532139 This file contains any messages produced by compilers while
22542140 running configure, to aid debugging if configure makes a mistake.
22552141
2256 It was created by Flickcurl $as_me 1.21, which was
2257 generated by GNU Autoconf 2.67. Invocation command line was
2142 It was created by Flickcurl $as_me 1.22, which was
2143 generated by GNU Autoconf 2.68. Invocation command line was
22582144
22592145 $ $0 $@
22602146
25122398 || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
25132399 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
25142400 as_fn_error $? "failed to load site script $ac_site_file
2515 See \`config.log' for more details" "$LINENO" 5 ; }
2401 See \`config.log' for more details" "$LINENO" 5; }
25162402 fi
25172403 done
25182404
26532539 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
26542540 $as_echo_n "checking for a BSD-compatible install... " >&6; }
26552541 if test -z "$INSTALL"; then
2656 if test "${ac_cv_path_install+set}" = set; then :
2542 if ${ac_cv_path_install+:} false; then :
26572543 $as_echo_n "(cached) " >&6
26582544 else
26592545 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
27402626 '
27412627 case `pwd` in
27422628 *[\\\"\#\$\&\'\`$am_lf]*)
2743 as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;;
2629 as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
27442630 esac
27452631 case $srcdir in
27462632 *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
2747 as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;;
2633 as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
27482634 esac
27492635
27502636 # Do `set' in a subshell so we don't clobber the current shell's
28302716 set dummy ${ac_tool_prefix}strip; ac_word=$2
28312717 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
28322718 $as_echo_n "checking for $ac_word... " >&6; }
2833 if test "${ac_cv_prog_STRIP+set}" = set; then :
2719 if ${ac_cv_prog_STRIP+:} false; then :
28342720 $as_echo_n "(cached) " >&6
28352721 else
28362722 if test -n "$STRIP"; then
28702756 set dummy strip; ac_word=$2
28712757 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
28722758 $as_echo_n "checking for $ac_word... " >&6; }
2873 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
2759 if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
28742760 $as_echo_n "(cached) " >&6
28752761 else
28762762 if test -n "$ac_ct_STRIP"; then
29232809 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
29242810 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
29252811 if test -z "$MKDIR_P"; then
2926 if test "${ac_cv_path_mkdir+set}" = set; then :
2812 if ${ac_cv_path_mkdir+:} false; then :
29272813 $as_echo_n "(cached) " >&6
29282814 else
29292815 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
29742860 set dummy $ac_prog; ac_word=$2
29752861 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
29762862 $as_echo_n "checking for $ac_word... " >&6; }
2977 if test "${ac_cv_prog_AWK+set}" = set; then :
2863 if ${ac_cv_prog_AWK+:} false; then :
29782864 $as_echo_n "(cached) " >&6
29792865 else
29802866 if test -n "$AWK"; then
30142900 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
30152901 set x ${MAKE-make}
30162902 ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
3017 if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
2903 if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
30182904 $as_echo_n "(cached) " >&6
30192905 else
30202906 cat >conftest.make <<\_ACEOF
30722958
30732959 # Define the identity of the package.
30742960 PACKAGE='flickcurl'
3075 VERSION='1.21'
2961 VERSION='1.22'
30762962
30772963
30782964 cat >>confdefs.h <<_ACEOF
32723158 set dummy ${ac_tool_prefix}gcc; ac_word=$2
32733159 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
32743160 $as_echo_n "checking for $ac_word... " >&6; }
3275 if test "${ac_cv_prog_CC+set}" = set; then :
3161 if ${ac_cv_prog_CC+:} false; then :
32763162 $as_echo_n "(cached) " >&6
32773163 else
32783164 if test -n "$CC"; then
33123198 set dummy gcc; ac_word=$2
33133199 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
33143200 $as_echo_n "checking for $ac_word... " >&6; }
3315 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
3201 if ${ac_cv_prog_ac_ct_CC+:} false; then :
33163202 $as_echo_n "(cached) " >&6
33173203 else
33183204 if test -n "$ac_ct_CC"; then
33653251 set dummy ${ac_tool_prefix}cc; ac_word=$2
33663252 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
33673253 $as_echo_n "checking for $ac_word... " >&6; }
3368 if test "${ac_cv_prog_CC+set}" = set; then :
3254 if ${ac_cv_prog_CC+:} false; then :
33693255 $as_echo_n "(cached) " >&6
33703256 else
33713257 if test -n "$CC"; then
34053291 set dummy cc; ac_word=$2
34063292 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
34073293 $as_echo_n "checking for $ac_word... " >&6; }
3408 if test "${ac_cv_prog_CC+set}" = set; then :
3294 if ${ac_cv_prog_CC+:} false; then :
34093295 $as_echo_n "(cached) " >&6
34103296 else
34113297 if test -n "$CC"; then
34643350 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
34653351 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
34663352 $as_echo_n "checking for $ac_word... " >&6; }
3467 if test "${ac_cv_prog_CC+set}" = set; then :
3353 if ${ac_cv_prog_CC+:} false; then :
34683354 $as_echo_n "(cached) " >&6
34693355 else
34703356 if test -n "$CC"; then
35083394 set dummy $ac_prog; ac_word=$2
35093395 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
35103396 $as_echo_n "checking for $ac_word... " >&6; }
3511 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
3397 if ${ac_cv_prog_ac_ct_CC+:} false; then :
35123398 $as_echo_n "(cached) " >&6
35133399 else
35143400 if test -n "$ac_ct_CC"; then
35633449 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
35643450 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
35653451 as_fn_error $? "no acceptable C compiler found in \$PATH
3566 See \`config.log' for more details" "$LINENO" 5 ; }
3452 See \`config.log' for more details" "$LINENO" 5; }
35673453
35683454 # Provide some information about the compiler.
35693455 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
36783564 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
36793565 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
36803566 as_fn_error 77 "C compiler cannot create executables
3681 See \`config.log' for more details" "$LINENO" 5 ; }
3567 See \`config.log' for more details" "$LINENO" 5; }
36823568 else
36833569 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
36843570 $as_echo "yes" >&6; }
37213607 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
37223608 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
37233609 as_fn_error $? "cannot compute suffix of executables: cannot compile and link
3724 See \`config.log' for more details" "$LINENO" 5 ; }
3610 See \`config.log' for more details" "$LINENO" 5; }
37253611 fi
37263612 rm -f conftest conftest$ac_cv_exeext
37273613 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
37803666 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
37813667 as_fn_error $? "cannot run C compiled programs.
37823668 If you meant to cross compile, use \`--host'.
3783 See \`config.log' for more details" "$LINENO" 5 ; }
3669 See \`config.log' for more details" "$LINENO" 5; }
37843670 fi
37853671 fi
37863672 fi
37913677 ac_clean_files=$ac_clean_files_save
37923678 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
37933679 $as_echo_n "checking for suffix of object files... " >&6; }
3794 if test "${ac_cv_objext+set}" = set; then :
3680 if ${ac_cv_objext+:} false; then :
37953681 $as_echo_n "(cached) " >&6
37963682 else
37973683 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
38323718 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
38333719 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
38343720 as_fn_error $? "cannot compute suffix of object files: cannot compile
3835 See \`config.log' for more details" "$LINENO" 5 ; }
3721 See \`config.log' for more details" "$LINENO" 5; }
38363722 fi
38373723 rm -f conftest.$ac_cv_objext conftest.$ac_ext
38383724 fi
38423728 ac_objext=$OBJEXT
38433729 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
38443730 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
3845 if test "${ac_cv_c_compiler_gnu+set}" = set; then :
3731 if ${ac_cv_c_compiler_gnu+:} false; then :
38463732 $as_echo_n "(cached) " >&6
38473733 else
38483734 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
38793765 ac_save_CFLAGS=$CFLAGS
38803766 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
38813767 $as_echo_n "checking whether $CC accepts -g... " >&6; }
3882 if test "${ac_cv_prog_cc_g+set}" = set; then :
3768 if ${ac_cv_prog_cc_g+:} false; then :
38833769 $as_echo_n "(cached) " >&6
38843770 else
38853771 ac_save_c_werror_flag=$ac_c_werror_flag
39573843 fi
39583844 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
39593845 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
3960 if test "${ac_cv_prog_cc_c89+set}" = set; then :
3846 if ${ac_cv_prog_cc_c89+:} false; then :
39613847 $as_echo_n "(cached) " >&6
39623848 else
39633849 ac_cv_prog_cc_c89=no
40563942
40573943 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
40583944 $as_echo_n "checking dependency style of $depcc... " >&6; }
4059 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
3945 if ${am_cv_CC_dependencies_compiler_type+:} false; then :
40603946 $as_echo_n "(cached) " >&6
40613947 else
40623948 if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
41884074 fi
41894075 set dummy $CC; ac_cc=`$as_echo "$2" |
41904076 sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
4191 if eval "test \"\${ac_cv_prog_cc_${ac_cc}_c_o+set}\"" = set; then :
4077 if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
41924078 $as_echo_n "(cached) " >&6
41934079 else
41944080 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
43184204
43194205
43204206
4321 macro_version='2.2.6b'
4322 macro_revision='1.3017'
4207 macro_version='2.4.2'
4208 macro_revision='1.3337'
43234209
43244210
43254211
43414227
43424228 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
43434229 $as_echo_n "checking build system type... " >&6; }
4344 if test "${ac_cv_build+set}" = set; then :
4230 if ${ac_cv_build+:} false; then :
43454231 $as_echo_n "(cached) " >&6
43464232 else
43474233 ac_build_alias=$build_alias
43574243 $as_echo "$ac_cv_build" >&6; }
43584244 case $ac_cv_build in
43594245 *-*-*) ;;
4360 *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;;
4246 *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
43614247 esac
43624248 build=$ac_cv_build
43634249 ac_save_IFS=$IFS; IFS='-'
43754261
43764262 { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
43774263 $as_echo_n "checking host system type... " >&6; }
4378 if test "${ac_cv_host+set}" = set; then :
4264 if ${ac_cv_host+:} false; then :
43794265 $as_echo_n "(cached) " >&6
43804266 else
43814267 if test "x$host_alias" = x; then
43904276 $as_echo "$ac_cv_host" >&6; }
43914277 case $ac_cv_host in
43924278 *-*-*) ;;
4393 *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;;
4279 *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
43944280 esac
43954281 host=$ac_cv_host
43964282 ac_save_IFS=$IFS; IFS='-'
44064292 case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
44074293
44084294
4295 # Backslashify metacharacters that are still active within
4296 # double-quoted strings.
4297 sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
4298
4299 # Same as above, but do not quote variable references.
4300 double_quote_subst='s/\(["`\\]\)/\\\1/g'
4301
4302 # Sed substitution to delay expansion of an escaped shell variable in a
4303 # double_quote_subst'ed string.
4304 delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
4305
4306 # Sed substitution to delay expansion of an escaped single quote.
4307 delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
4308
4309 # Sed substitution to avoid accidental globbing in evaled expressions
4310 no_glob_subst='s/\*/\\\*/g'
4311
4312 ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
4313 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
4314 ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
4315
4316 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
4317 $as_echo_n "checking how to print strings... " >&6; }
4318 # Test print first, because it will be a builtin if present.
4319 if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
4320 test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
4321 ECHO='print -r --'
4322 elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
4323 ECHO='printf %s\n'
4324 else
4325 # Use this function as a fallback that always works.
4326 func_fallback_echo ()
4327 {
4328 eval 'cat <<_LTECHO_EOF
4329 $1
4330 _LTECHO_EOF'
4331 }
4332 ECHO='func_fallback_echo'
4333 fi
4334
4335 # func_echo_all arg...
4336 # Invoke $ECHO with all args, space-separated.
4337 func_echo_all ()
4338 {
4339 $ECHO ""
4340 }
4341
4342 case "$ECHO" in
4343 printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
4344 $as_echo "printf" >&6; } ;;
4345 print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
4346 $as_echo "print -r" >&6; } ;;
4347 *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
4348 $as_echo "cat" >&6; } ;;
4349 esac
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
44094364 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
44104365 $as_echo_n "checking for a sed that does not truncate output... " >&6; }
4411 if test "${ac_cv_path_SED+set}" = set; then :
4366 if ${ac_cv_path_SED+:} false; then :
44124367 $as_echo_n "(cached) " >&6
44134368 else
44144369 ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
44904445
44914446 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
44924447 $as_echo_n "checking for grep that handles long lines and -e... " >&6; }
4493 if test "${ac_cv_path_GREP+set}" = set; then :
4448 if ${ac_cv_path_GREP+:} false; then :
44944449 $as_echo_n "(cached) " >&6
44954450 else
44964451 if test -z "$GREP"; then
45534508
45544509 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
45554510 $as_echo_n "checking for egrep... " >&6; }
4556 if test "${ac_cv_path_EGREP+set}" = set; then :
4511 if ${ac_cv_path_EGREP+:} false; then :
45574512 $as_echo_n "(cached) " >&6
45584513 else
45594514 if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
46204575
46214576 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
46224577 $as_echo_n "checking for fgrep... " >&6; }
4623 if test "${ac_cv_path_FGREP+set}" = set; then :
4578 if ${ac_cv_path_FGREP+:} false; then :
46244579 $as_echo_n "(cached) " >&6
46254580 else
46264581 if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
47514706 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
47524707 $as_echo_n "checking for non-GNU ld... " >&6; }
47534708 fi
4754 if test "${lt_cv_path_LD+set}" = set; then :
4709 if ${lt_cv_path_LD+:} false; then :
47554710 $as_echo_n "(cached) " >&6
47564711 else
47574712 if test -z "$LD"; then
47914746 test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
47924747 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
47934748 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
4794 if test "${lt_cv_prog_gnu_ld+set}" = set; then :
4749 if ${lt_cv_prog_gnu_ld+:} false; then :
47954750 $as_echo_n "(cached) " >&6
47964751 else
47974752 # I'd rather use --version here, but apparently some GNU lds only accept -v.
48184773
48194774 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
48204775 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
4821 if test "${lt_cv_path_NM+set}" = set; then :
4776 if ${lt_cv_path_NM+:} false; then :
48224777 $as_echo_n "(cached) " >&6
48234778 else
48244779 if test -n "$NM"; then
48714826 NM="$lt_cv_path_NM"
48724827 else
48734828 # Didn't find any BSD compatible name lister, look for dumpbin.
4874 if test -n "$ac_tool_prefix"; then
4875 for ac_prog in "dumpbin -symbols" "link -dump -symbols"
4829 if test -n "$DUMPBIN"; then :
4830 # Let the user override the test.
4831 else
4832 if test -n "$ac_tool_prefix"; then
4833 for ac_prog in dumpbin "link -dump"
48764834 do
48774835 # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
48784836 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
48794837 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
48804838 $as_echo_n "checking for $ac_word... " >&6; }
4881 if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
4839 if ${ac_cv_prog_DUMPBIN+:} false; then :
48824840 $as_echo_n "(cached) " >&6
48834841 else
48844842 if test -n "$DUMPBIN"; then
49164874 fi
49174875 if test -z "$DUMPBIN"; then
49184876 ac_ct_DUMPBIN=$DUMPBIN
4919 for ac_prog in "dumpbin -symbols" "link -dump -symbols"
4877 for ac_prog in dumpbin "link -dump"
49204878 do
49214879 # Extract the first word of "$ac_prog", so it can be a program name with args.
49224880 set dummy $ac_prog; ac_word=$2
49234881 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
49244882 $as_echo_n "checking for $ac_word... " >&6; }
4925 if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then :
4883 if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
49264884 $as_echo_n "(cached) " >&6
49274885 else
49284886 if test -n "$ac_ct_DUMPBIN"; then
49714929 fi
49724930 fi
49734931
4932 case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
4933 *COFF*)
4934 DUMPBIN="$DUMPBIN -symbols"
4935 ;;
4936 *)
4937 DUMPBIN=:
4938 ;;
4939 esac
4940 fi
49744941
49754942 if test "$DUMPBIN" != ":"; then
49764943 NM="$DUMPBIN"
49854952
49864953 { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
49874954 $as_echo_n "checking the name lister ($NM) interface... " >&6; }
4988 if test "${lt_cv_nm_interface+set}" = set; then :
4955 if ${lt_cv_nm_interface+:} false; then :
49894956 $as_echo_n "(cached) " >&6
49904957 else
49914958 lt_cv_nm_interface="BSD nm"
49924959 echo "int some_variable = 0;" > conftest.$ac_ext
4993 (eval echo "\"\$as_me:4994: $ac_compile\"" >&5)
4960 (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
49944961 (eval "$ac_compile" 2>conftest.err)
49954962 cat conftest.err >&5
4996 (eval echo "\"\$as_me:4997: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
4963 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
49974964 (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
49984965 cat conftest.err >&5
4999 (eval echo "\"\$as_me:5000: output\"" >&5)
4966 (eval echo "\"\$as_me:$LINENO: output\"" >&5)
50004967 cat conftest.out >&5
50014968 if $GREP 'External.*some_variable' conftest.out > /dev/null; then
50024969 lt_cv_nm_interface="MS dumpbin"
50204987 # find the maximum length of command line arguments
50214988 { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
50224989 $as_echo_n "checking the maximum length of command line arguments... " >&6; }
5023 if test "${lt_cv_sys_max_cmd_len+set}" = set; then :
4990 if ${lt_cv_sys_max_cmd_len+:} false; then :
50244991 $as_echo_n "(cached) " >&6
50254992 else
50264993 i=0
50505017 # the test eventually succeeds (with a max line length of 256k).
50515018 # Instead, let's just punt: use the minimum linelength reported by
50525019 # all of the supported platforms: 8192 (on NT/2K/XP).
5020 lt_cv_sys_max_cmd_len=8192;
5021 ;;
5022
5023 mint*)
5024 # On MiNT this can take a long time and run out of memory.
50535025 lt_cv_sys_max_cmd_len=8192;
50545026 ;;
50555027
50765048 interix*)
50775049 # We know the value 262144 and hardcode it with a safety zone (like BSD)
50785050 lt_cv_sys_max_cmd_len=196608
5051 ;;
5052
5053 os2*)
5054 # The test takes a long time on OS/2.
5055 lt_cv_sys_max_cmd_len=8192
50795056 ;;
50805057
50815058 osf*)
51175094 # If test is not a shell built-in, we'll probably end up computing a
51185095 # maximum length that is only half of the actual maximum length, but
51195096 # we can't tell.
5120 while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
5121 = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
5097 while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
5098 = "X$teststring$teststring"; } >/dev/null 2>&1 &&
51225099 test $i != 17 # 1/2 MB should be enough
51235100 do
51245101 i=`expr $i + 1`
51605137 # Try some XSI features
51615138 xsi_shell=no
51625139 ( _lt_dummy="a/b/c"
5163 test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
5164 = c,a/b,, \
5140 test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
5141 = c,a/b,b/c, \
51655142 && eval 'test $(( 1 + 1 )) -eq 2 \
51665143 && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
51675144 && xsi_shell=yes
52105187
52115188
52125189
5190 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
5191 $as_echo_n "checking how to convert $build file names to $host format... " >&6; }
5192 if ${lt_cv_to_host_file_cmd+:} false; then :
5193 $as_echo_n "(cached) " >&6
5194 else
5195 case $host in
5196 *-*-mingw* )
5197 case $build in
5198 *-*-mingw* ) # actually msys
5199 lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
5200 ;;
5201 *-*-cygwin* )
5202 lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
5203 ;;
5204 * ) # otherwise, assume *nix
5205 lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
5206 ;;
5207 esac
5208 ;;
5209 *-*-cygwin* )
5210 case $build in
5211 *-*-mingw* ) # actually msys
5212 lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
5213 ;;
5214 *-*-cygwin* )
5215 lt_cv_to_host_file_cmd=func_convert_file_noop
5216 ;;
5217 * ) # otherwise, assume *nix
5218 lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
5219 ;;
5220 esac
5221 ;;
5222 * ) # unhandled hosts (and "normal" native builds)
5223 lt_cv_to_host_file_cmd=func_convert_file_noop
5224 ;;
5225 esac
5226
5227 fi
5228
5229 to_host_file_cmd=$lt_cv_to_host_file_cmd
5230 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
5231 $as_echo "$lt_cv_to_host_file_cmd" >&6; }
5232
5233
5234
5235
5236
5237 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
5238 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
5239 if ${lt_cv_to_tool_file_cmd+:} false; then :
5240 $as_echo_n "(cached) " >&6
5241 else
5242 #assume ordinary cross tools, or native build.
5243 lt_cv_to_tool_file_cmd=func_convert_file_noop
5244 case $host in
5245 *-*-mingw* )
5246 case $build in
5247 *-*-mingw* ) # actually msys
5248 lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
5249 ;;
5250 esac
5251 ;;
5252 esac
5253
5254 fi
5255
5256 to_tool_file_cmd=$lt_cv_to_tool_file_cmd
5257 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
5258 $as_echo "$lt_cv_to_tool_file_cmd" >&6; }
5259
5260
5261
5262
5263
52135264 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
52145265 $as_echo_n "checking for $LD option to reload object files... " >&6; }
5215 if test "${lt_cv_ld_reload_flag+set}" = set; then :
5266 if ${lt_cv_ld_reload_flag+:} false; then :
52165267 $as_echo_n "(cached) " >&6
52175268 else
52185269 lt_cv_ld_reload_flag='-r'
52265277 esac
52275278 reload_cmds='$LD$reload_flag -o $output$reload_objs'
52285279 case $host_os in
5280 cygwin* | mingw* | pw32* | cegcc*)
5281 if test "$GCC" != yes; then
5282 reload_cmds=false
5283 fi
5284 ;;
52295285 darwin*)
52305286 if test "$GCC" = yes; then
52315287 reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
52485304 set dummy ${ac_tool_prefix}objdump; ac_word=$2
52495305 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
52505306 $as_echo_n "checking for $ac_word... " >&6; }
5251 if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
5307 if ${ac_cv_prog_OBJDUMP+:} false; then :
52525308 $as_echo_n "(cached) " >&6
52535309 else
52545310 if test -n "$OBJDUMP"; then
52885344 set dummy objdump; ac_word=$2
52895345 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
52905346 $as_echo_n "checking for $ac_word... " >&6; }
5291 if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
5347 if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
52925348 $as_echo_n "(cached) " >&6
52935349 else
52945350 if test -n "$ac_ct_OBJDUMP"; then
53475403
53485404 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
53495405 $as_echo_n "checking how to recognize dependent libraries... " >&6; }
5350 if test "${lt_cv_deplibs_check_method+set}" = set; then :
5406 if ${lt_cv_deplibs_check_method+:} false; then :
53515407 $as_echo_n "(cached) " >&6
53525408 else
53535409 lt_cv_file_magic_cmd='$MAGIC_CMD'
53895445 # Base MSYS/MinGW do not provide the 'file' command needed by
53905446 # func_win32_libid shell function, so use a weaker test based on 'objdump',
53915447 # unless we find 'file', for example because we are cross-compiling.
5392 if ( file / ) >/dev/null 2>&1; then
5448 # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
5449 if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
53935450 lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
53945451 lt_cv_file_magic_cmd='func_win32_libid'
53955452 else
5396 lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
5453 # Keep this pattern in sync with the one in func_win32_libid.
5454 lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
53975455 lt_cv_file_magic_cmd='$OBJDUMP -f'
53985456 fi
53995457 ;;
54005458
5401 cegcc)
5459 cegcc*)
54025460 # use the weaker test based on 'objdump'. See mingw*.
54035461 lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
54045462 lt_cv_file_magic_cmd='$OBJDUMP -f'
54285486 lt_cv_deplibs_check_method=pass_all
54295487 ;;
54305488
5489 haiku*)
5490 lt_cv_deplibs_check_method=pass_all
5491 ;;
5492
54315493 hpux10.20* | hpux11*)
54325494 lt_cv_file_magic_cmd=/usr/bin/file
54335495 case $host_cpu in
54365498 lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
54375499 ;;
54385500 hppa*64*)
5439 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]'
5501 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]'
54405502 lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
54415503 ;;
54425504 *)
5443 lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
5505 lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
54445506 lt_cv_file_magic_test_file=/usr/lib/libc.sl
54455507 ;;
54465508 esac
54615523 lt_cv_deplibs_check_method=pass_all
54625524 ;;
54635525
5464 # This must be Linux ELF.
5526 # This must be glibc/ELF.
54655527 linux* | k*bsd*-gnu | kopensolaris*-gnu)
54665528 lt_cv_deplibs_check_method=pass_all
54675529 ;;
55435605 fi
55445606 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
55455607 $as_echo "$lt_cv_deplibs_check_method" >&6; }
5608
5609 file_magic_glob=
5610 want_nocaseglob=no
5611 if test "$build" = "$host"; then
5612 case $host_os in
5613 mingw* | pw32*)
5614 if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
5615 want_nocaseglob=yes
5616 else
5617 file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
5618 fi
5619 ;;
5620 esac
5621 fi
5622
55465623 file_magic_cmd=$lt_cv_file_magic_cmd
55475624 deplibs_check_method=$lt_cv_deplibs_check_method
55485625 test -z "$deplibs_check_method" && deplibs_check_method=unknown
55585635
55595636
55605637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
55615648 if test -n "$ac_tool_prefix"; then
5562 # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
5563 set dummy ${ac_tool_prefix}ar; ac_word=$2
5649 # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
5650 set dummy ${ac_tool_prefix}dlltool; ac_word=$2
55645651 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
55655652 $as_echo_n "checking for $ac_word... " >&6; }
5566 if test "${ac_cv_prog_AR+set}" = set; then :
5653 if ${ac_cv_prog_DLLTOOL+:} false; then :
55675654 $as_echo_n "(cached) " >&6
55685655 else
5569 if test -n "$AR"; then
5570 ac_cv_prog_AR="$AR" # Let the user override the test.
5656 if test -n "$DLLTOOL"; then
5657 ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
55715658 else
55725659 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
55735660 for as_dir in $PATH
55765663 test -z "$as_dir" && as_dir=.
55775664 for ac_exec_ext in '' $ac_executable_extensions; do
55785665 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
5579 ac_cv_prog_AR="${ac_tool_prefix}ar"
5666 ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
55805667 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
55815668 break 2
55825669 fi
55865673
55875674 fi
55885675 fi
5589 AR=$ac_cv_prog_AR
5590 if test -n "$AR"; then
5591 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
5592 $as_echo "$AR" >&6; }
5676 DLLTOOL=$ac_cv_prog_DLLTOOL
5677 if test -n "$DLLTOOL"; then
5678 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
5679 $as_echo "$DLLTOOL" >&6; }
55935680 else
55945681 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
55955682 $as_echo "no" >&6; }
55975684
55985685
55995686 fi
5600 if test -z "$ac_cv_prog_AR"; then
5601 ac_ct_AR=$AR
5602 # Extract the first word of "ar", so it can be a program name with args.
5603 set dummy ar; ac_word=$2
5687 if test -z "$ac_cv_prog_DLLTOOL"; then
5688 ac_ct_DLLTOOL=$DLLTOOL
5689 # Extract the first word of "dlltool", so it can be a program name with args.
5690 set dummy dlltool; ac_word=$2
56045691 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
56055692 $as_echo_n "checking for $ac_word... " >&6; }
5606 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
5693 if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
56075694 $as_echo_n "(cached) " >&6
56085695 else
5609 if test -n "$ac_ct_AR"; then
5610 ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
5696 if test -n "$ac_ct_DLLTOOL"; then
5697 ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
56115698 else
56125699 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
56135700 for as_dir in $PATH
56165703 test -z "$as_dir" && as_dir=.
56175704 for ac_exec_ext in '' $ac_executable_extensions; do
56185705 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
5619 ac_cv_prog_ac_ct_AR="ar"
5706 ac_cv_prog_ac_ct_DLLTOOL="dlltool"
56205707 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
56215708 break 2
56225709 fi
56265713
56275714 fi
56285715 fi
5716 ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
5717 if test -n "$ac_ct_DLLTOOL"; then
5718 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
5719 $as_echo "$ac_ct_DLLTOOL" >&6; }
5720 else
5721 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5722 $as_echo "no" >&6; }
5723 fi
5724
5725 if test "x$ac_ct_DLLTOOL" = x; then
5726 DLLTOOL="false"
5727 else
5728 case $cross_compiling:$ac_tool_warned in
5729 yes:)
5730 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
5731 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
5732 ac_tool_warned=yes ;;
5733 esac
5734 DLLTOOL=$ac_ct_DLLTOOL
5735 fi
5736 else
5737 DLLTOOL="$ac_cv_prog_DLLTOOL"
5738 fi
5739
5740 test -z "$DLLTOOL" && DLLTOOL=dlltool
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
5752 $as_echo_n "checking how to associate runtime and link libraries... " >&6; }
5753 if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
5754 $as_echo_n "(cached) " >&6
5755 else
5756 lt_cv_sharedlib_from_linklib_cmd='unknown'
5757
5758 case $host_os in
5759 cygwin* | mingw* | pw32* | cegcc*)
5760 # two different shell functions defined in ltmain.sh
5761 # decide which to use based on capabilities of $DLLTOOL
5762 case `$DLLTOOL --help 2>&1` in
5763 *--identify-strict*)
5764 lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
5765 ;;
5766 *)
5767 lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
5768 ;;
5769 esac
5770 ;;
5771 *)
5772 # fallback: assume linklib IS sharedlib
5773 lt_cv_sharedlib_from_linklib_cmd="$ECHO"
5774 ;;
5775 esac
5776
5777 fi
5778 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
5779 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
5780 sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
5781 test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
5782
5783
5784
5785
5786
5787
5788
5789
5790 if test -n "$ac_tool_prefix"; then
5791 for ac_prog in ar
5792 do
5793 # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
5794 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
5795 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5796 $as_echo_n "checking for $ac_word... " >&6; }
5797 if ${ac_cv_prog_AR+:} false; then :
5798 $as_echo_n "(cached) " >&6
5799 else
5800 if test -n "$AR"; then
5801 ac_cv_prog_AR="$AR" # Let the user override the test.
5802 else
5803 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5804 for as_dir in $PATH
5805 do
5806 IFS=$as_save_IFS
5807 test -z "$as_dir" && as_dir=.
5808 for ac_exec_ext in '' $ac_executable_extensions; do
5809 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
5810 ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
5811 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
5812 break 2
5813 fi
5814 done
5815 done
5816 IFS=$as_save_IFS
5817
5818 fi
5819 fi
5820 AR=$ac_cv_prog_AR
5821 if test -n "$AR"; then
5822 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
5823 $as_echo "$AR" >&6; }
5824 else
5825 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5826 $as_echo "no" >&6; }
5827 fi
5828
5829
5830 test -n "$AR" && break
5831 done
5832 fi
5833 if test -z "$AR"; then
5834 ac_ct_AR=$AR
5835 for ac_prog in ar
5836 do
5837 # Extract the first word of "$ac_prog", so it can be a program name with args.
5838 set dummy $ac_prog; ac_word=$2
5839 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
5840 $as_echo_n "checking for $ac_word... " >&6; }
5841 if ${ac_cv_prog_ac_ct_AR+:} false; then :
5842 $as_echo_n "(cached) " >&6
5843 else
5844 if test -n "$ac_ct_AR"; then
5845 ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
5846 else
5847 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5848 for as_dir in $PATH
5849 do
5850 IFS=$as_save_IFS
5851 test -z "$as_dir" && as_dir=.
5852 for ac_exec_ext in '' $ac_executable_extensions; do
5853 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
5854 ac_cv_prog_ac_ct_AR="$ac_prog"
5855 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
5856 break 2
5857 fi
5858 done
5859 done
5860 IFS=$as_save_IFS
5861
5862 fi
5863 fi
56295864 ac_ct_AR=$ac_cv_prog_ac_ct_AR
56305865 if test -n "$ac_ct_AR"; then
56315866 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
56345869 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
56355870 $as_echo "no" >&6; }
56365871 fi
5872
5873
5874 test -n "$ac_ct_AR" && break
5875 done
56375876
56385877 if test "x$ac_ct_AR" = x; then
56395878 AR="false"
56465885 esac
56475886 AR=$ac_ct_AR
56485887 fi
5649 else
5650 AR="$ac_cv_prog_AR"
5651 fi
5652
5653 test -z "$AR" && AR=ar
5654 test -z "$AR_FLAGS" && AR_FLAGS=cru
5655
5656
5657
5658
5888 fi
5889
5890 : ${AR=ar}
5891 : ${AR_FLAGS=cru}
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
5904 $as_echo_n "checking for archiver @FILE support... " >&6; }
5905 if ${lt_cv_ar_at_file+:} false; then :
5906 $as_echo_n "(cached) " >&6
5907 else
5908 lt_cv_ar_at_file=no
5909 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
5910 /* end confdefs.h. */
5911
5912 int
5913 main ()
5914 {
5915
5916 ;
5917 return 0;
5918 }
5919 _ACEOF
5920 if ac_fn_c_try_compile "$LINENO"; then :
5921 echo conftest.$ac_objext > conftest.lst
5922 lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
5923 { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
5924 (eval $lt_ar_try) 2>&5
5925 ac_status=$?
5926 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
5927 test $ac_status = 0; }
5928 if test "$ac_status" -eq 0; then
5929 # Ensure the archiver fails upon bogus file names.
5930 rm -f conftest.$ac_objext libconftest.a
5931 { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
5932 (eval $lt_ar_try) 2>&5
5933 ac_status=$?
5934 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
5935 test $ac_status = 0; }
5936 if test "$ac_status" -ne 0; then
5937 lt_cv_ar_at_file=@
5938 fi
5939 fi
5940 rm -f conftest.* libconftest.a
5941
5942 fi
5943 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
5944
5945 fi
5946 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
5947 $as_echo "$lt_cv_ar_at_file" >&6; }
5948
5949 if test "x$lt_cv_ar_at_file" = xno; then
5950 archiver_list_spec=
5951 else
5952 archiver_list_spec=$lt_cv_ar_at_file
5953 fi
56595954
56605955
56615956
56685963 set dummy ${ac_tool_prefix}strip; ac_word=$2
56695964 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
56705965 $as_echo_n "checking for $ac_word... " >&6; }
5671 if test "${ac_cv_prog_STRIP+set}" = set; then :
5966 if ${ac_cv_prog_STRIP+:} false; then :
56725967 $as_echo_n "(cached) " >&6
56735968 else
56745969 if test -n "$STRIP"; then
57086003 set dummy strip; ac_word=$2
57096004 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
57106005 $as_echo_n "checking for $ac_word... " >&6; }
5711 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
6006 if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
57126007 $as_echo_n "(cached) " >&6
57136008 else
57146009 if test -n "$ac_ct_STRIP"; then
57676062 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
57686063 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
57696064 $as_echo_n "checking for $ac_word... " >&6; }
5770 if test "${ac_cv_prog_RANLIB+set}" = set; then :
6065 if ${ac_cv_prog_RANLIB+:} false; then :
57716066 $as_echo_n "(cached) " >&6
57726067 else
57736068 if test -n "$RANLIB"; then
58076102 set dummy ranlib; ac_word=$2
58086103 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
58096104 $as_echo_n "checking for $ac_word... " >&6; }
5810 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
6105 if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
58116106 $as_echo_n "(cached) " >&6
58126107 else
58136108 if test -n "$ac_ct_RANLIB"; then
58696164 if test -n "$RANLIB"; then
58706165 case $host_os in
58716166 openbsd*)
5872 old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
6167 old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
58736168 ;;
58746169 *)
5875 old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
6170 old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
58766171 ;;
58776172 esac
5878 old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
5879 fi
6173 old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
6174 fi
6175
6176 case $host_os in
6177 darwin*)
6178 lock_old_archive_extraction=yes ;;
6179 *)
6180 lock_old_archive_extraction=no ;;
6181 esac
6182
6183
6184
6185
6186
58806187
58816188
58826189
59246231 # Check for command to grab the raw symbol name followed by C symbol from nm.
59256232 { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
59266233 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
5927 if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then :
6234 if ${lt_cv_sys_global_symbol_pipe+:} false; then :
59286235 $as_echo_n "(cached) " >&6
59296236 else
59306237
59856292 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
59866293
59876294 # Transform an extracted symbol line into symbol name and symbol address
5988 lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
5989 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
6295 lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
6296 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
59906297
59916298 # Handle CRLF in mingw tool chain
59926299 opt_cr=
60106317 # which start with @ or ?.
60116318 lt_cv_sys_global_symbol_pipe="$AWK '"\
60126319 " {last_section=section; section=\$ 3};"\
6320 " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
60136321 " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
60146322 " \$ 0!~/External *\|/{next};"\
60156323 " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
60226330 else
60236331 lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
60246332 fi
6333 lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
60256334
60266335 # Check to see that the pipe works correctly.
60276336 pipe_works=no
60476356 test $ac_status = 0; }; then
60486357 # Now try to grab the symbols.
60496358 nlist=conftest.nm
6050 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5
6051 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
6359 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
6360 (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
60526361 ac_status=$?
60536362 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
60546363 test $ac_status = 0; } && test -s "$nlist"; then
60636372 if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
60646373 if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
60656374 cat <<_LT_EOF > conftest.$ac_ext
6375 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
6376 #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
6377 /* DATA imports from DLLs on WIN32 con't be const, because runtime
6378 relocations are performed -- see ld's documentation on pseudo-relocs. */
6379 # define LT_DLSYM_CONST
6380 #elif defined(__osf__)
6381 /* This system does not cope well with relocations in const data. */
6382 # define LT_DLSYM_CONST
6383 #else
6384 # define LT_DLSYM_CONST const
6385 #endif
6386
60666387 #ifdef __cplusplus
60676388 extern "C" {
60686389 #endif
60746395 cat <<_LT_EOF >> conftest.$ac_ext
60756396
60766397 /* The mapping between symbol names and symbols. */
6077 const struct {
6398 LT_DLSYM_CONST struct {
60786399 const char *name;
60796400 void *address;
60806401 }
61006421 _LT_EOF
61016422 # Now try linking the two files.
61026423 mv conftest.$ac_objext conftstm.$ac_objext
6103 lt_save_LIBS="$LIBS"
6104 lt_save_CFLAGS="$CFLAGS"
6424 lt_globsym_save_LIBS=$LIBS
6425 lt_globsym_save_CFLAGS=$CFLAGS
61056426 LIBS="conftstm.$ac_objext"
61066427 CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
61076428 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
61116432 test $ac_status = 0; } && test -s conftest${ac_exeext}; then
61126433 pipe_works=yes
61136434 fi
6114 LIBS="$lt_save_LIBS"
6115 CFLAGS="$lt_save_CFLAGS"
6435 LIBS=$lt_globsym_save_LIBS
6436 CFLAGS=$lt_globsym_save_CFLAGS
61166437 else
61176438 echo "cannot find nm_test_func in $nlist" >&5
61186439 fi
61496470 $as_echo "ok" >&6; }
61506471 fi
61516472
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6473 # Response file support.
6474 if test "$lt_cv_nm_interface" = "MS dumpbin"; then
6475 nm_file_list_spec='@'
6476 elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
6477 nm_file_list_spec='@'
6478 fi
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
6507 $as_echo_n "checking for sysroot... " >&6; }
6508
6509 # Check whether --with-sysroot was given.
6510 if test "${with_sysroot+set}" = set; then :
6511 withval=$with_sysroot;
6512 else
6513 with_sysroot=no
6514 fi
6515
6516
6517 lt_sysroot=
6518 case ${with_sysroot} in #(
6519 yes)
6520 if test "$GCC" = yes; then
6521 lt_sysroot=`$CC --print-sysroot 2>/dev/null`
6522 fi
6523 ;; #(
6524 /*)
6525 lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
6526 ;; #(
6527 no|'')
6528 ;; #(
6529 *)
6530 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
6531 $as_echo "${with_sysroot}" >&6; }
6532 as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
6533 ;;
6534 esac
6535
6536 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
6537 $as_echo "${lt_sysroot:-no}" >&6; }
61696538
61706539
61716540
62026571 ;;
62036572 *-*-irix6*)
62046573 # Find out which ABI we are using.
6205 echo '#line 6206 "configure"' > conftest.$ac_ext
6574 echo '#line '$LINENO' "configure"' > conftest.$ac_ext
62066575 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
62076576 (eval $ac_compile) 2>&5
62086577 ac_status=$?
62966665 CFLAGS="$CFLAGS -belf"
62976666 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
62986667 $as_echo_n "checking whether the C compiler needs -belf... " >&6; }
6299 if test "${lt_cv_cc_needs_belf+set}" = set; then :
6668 if ${lt_cv_cc_needs_belf+:} false; then :
63006669 $as_echo_n "(cached) " >&6
63016670 else
63026671 ac_ext=c
63376706 CFLAGS="$SAVE_CFLAGS"
63386707 fi
63396708 ;;
6340 sparc*-*solaris*)
6709 *-*solaris*)
63416710 # Find out which ABI we are using.
63426711 echo 'int i;' > conftest.$ac_ext
63436712 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
63486717 case `/usr/bin/file conftest.o` in
63496718 *64-bit*)
63506719 case $lt_cv_prog_gnu_ld in
6351 yes*) LD="${LD-ld} -m elf64_sparc" ;;
6720 yes*)
6721 case $host in
6722 i?86-*-solaris*)
6723 LD="${LD-ld} -m elf_x86_64"
6724 ;;
6725 sparc*-*-solaris*)
6726 LD="${LD-ld} -m elf64_sparc"
6727 ;;
6728 esac
6729 # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
6730 if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
6731 LD="${LD-ld}_sol2"
6732 fi
6733 ;;
63526734 *)
63536735 if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
63546736 LD="${LD-ld} -64"
63646746
63656747 need_locks="$enable_libtool_lock"
63666748
6749 if test -n "$ac_tool_prefix"; then
6750 # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
6751 set dummy ${ac_tool_prefix}mt; ac_word=$2
6752 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
6753 $as_echo_n "checking for $ac_word... " >&6; }
6754 if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
6755 $as_echo_n "(cached) " >&6
6756 else
6757 if test -n "$MANIFEST_TOOL"; then
6758 ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
6759 else
6760 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6761 for as_dir in $PATH
6762 do
6763 IFS=$as_save_IFS
6764 test -z "$as_dir" && as_dir=.
6765 for ac_exec_ext in '' $ac_executable_extensions; do
6766 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
6767 ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
6768 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
6769 break 2
6770 fi
6771 done
6772 done
6773 IFS=$as_save_IFS
6774
6775 fi
6776 fi
6777 MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
6778 if test -n "$MANIFEST_TOOL"; then
6779 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
6780 $as_echo "$MANIFEST_TOOL" >&6; }
6781 else
6782 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
6783 $as_echo "no" >&6; }
6784 fi
6785
6786
6787 fi
6788 if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
6789 ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
6790 # Extract the first word of "mt", so it can be a program name with args.
6791 set dummy mt; ac_word=$2
6792 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
6793 $as_echo_n "checking for $ac_word... " >&6; }
6794 if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
6795 $as_echo_n "(cached) " >&6
6796 else
6797 if test -n "$ac_ct_MANIFEST_TOOL"; then
6798 ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
6799 else
6800 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6801 for as_dir in $PATH
6802 do
6803 IFS=$as_save_IFS
6804 test -z "$as_dir" && as_dir=.
6805 for ac_exec_ext in '' $ac_executable_extensions; do
6806 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
6807 ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
6808 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
6809 break 2
6810 fi
6811 done
6812 done
6813 IFS=$as_save_IFS
6814
6815 fi
6816 fi
6817 ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
6818 if test -n "$ac_ct_MANIFEST_TOOL"; then
6819 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
6820 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
6821 else
6822 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
6823 $as_echo "no" >&6; }
6824 fi
6825
6826 if test "x$ac_ct_MANIFEST_TOOL" = x; then
6827 MANIFEST_TOOL=":"
6828 else
6829 case $cross_compiling:$ac_tool_warned in
6830 yes:)
6831 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
6832 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
6833 ac_tool_warned=yes ;;
6834 esac
6835 MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
6836 fi
6837 else
6838 MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
6839 fi
6840
6841 test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
6842 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
6843 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
6844 if ${lt_cv_path_mainfest_tool+:} false; then :
6845 $as_echo_n "(cached) " >&6
6846 else
6847 lt_cv_path_mainfest_tool=no
6848 echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
6849 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
6850 cat conftest.err >&5
6851 if $GREP 'Manifest Tool' conftest.out > /dev/null; then
6852 lt_cv_path_mainfest_tool=yes
6853 fi
6854 rm -f conftest*
6855 fi
6856 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
6857 $as_echo "$lt_cv_path_mainfest_tool" >&6; }
6858 if test "x$lt_cv_path_mainfest_tool" != xyes; then
6859 MANIFEST_TOOL=:
6860 fi
6861
6862
6863
6864
6865
63676866
63686867 case $host_os in
63696868 rhapsody* | darwin*)
63726871 set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
63736872 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
63746873 $as_echo_n "checking for $ac_word... " >&6; }
6375 if test "${ac_cv_prog_DSYMUTIL+set}" = set; then :
6874 if ${ac_cv_prog_DSYMUTIL+:} false; then :
63766875 $as_echo_n "(cached) " >&6
63776876 else
63786877 if test -n "$DSYMUTIL"; then
64126911 set dummy dsymutil; ac_word=$2
64136912 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
64146913 $as_echo_n "checking for $ac_word... " >&6; }
6415 if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then :
6914 if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
64166915 $as_echo_n "(cached) " >&6
64176916 else
64186917 if test -n "$ac_ct_DSYMUTIL"; then
64646963 set dummy ${ac_tool_prefix}nmedit; ac_word=$2
64656964 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
64666965 $as_echo_n "checking for $ac_word... " >&6; }
6467 if test "${ac_cv_prog_NMEDIT+set}" = set; then :
6966 if ${ac_cv_prog_NMEDIT+:} false; then :
64686967 $as_echo_n "(cached) " >&6
64696968 else
64706969 if test -n "$NMEDIT"; then
65047003 set dummy nmedit; ac_word=$2
65057004 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
65067005 $as_echo_n "checking for $ac_word... " >&6; }
6507 if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then :
7006 if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
65087007 $as_echo_n "(cached) " >&6
65097008 else
65107009 if test -n "$ac_ct_NMEDIT"; then
65567055 set dummy ${ac_tool_prefix}lipo; ac_word=$2
65577056 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
65587057 $as_echo_n "checking for $ac_word... " >&6; }
6559 if test "${ac_cv_prog_LIPO+set}" = set; then :
7058 if ${ac_cv_prog_LIPO+:} false; then :
65607059 $as_echo_n "(cached) " >&6
65617060 else
65627061 if test -n "$LIPO"; then
65967095 set dummy lipo; ac_word=$2
65977096 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
65987097 $as_echo_n "checking for $ac_word... " >&6; }
6599 if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then :
7098 if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
66007099 $as_echo_n "(cached) " >&6
66017100 else
66027101 if test -n "$ac_ct_LIPO"; then
66487147 set dummy ${ac_tool_prefix}otool; ac_word=$2
66497148 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
66507149 $as_echo_n "checking for $ac_word... " >&6; }
6651 if test "${ac_cv_prog_OTOOL+set}" = set; then :
7150 if ${ac_cv_prog_OTOOL+:} false; then :
66527151 $as_echo_n "(cached) " >&6
66537152 else
66547153 if test -n "$OTOOL"; then
66887187 set dummy otool; ac_word=$2
66897188 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
66907189 $as_echo_n "checking for $ac_word... " >&6; }
6691 if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then :
7190 if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
66927191 $as_echo_n "(cached) " >&6
66937192 else
66947193 if test -n "$ac_ct_OTOOL"; then
67407239 set dummy ${ac_tool_prefix}otool64; ac_word=$2
67417240 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
67427241 $as_echo_n "checking for $ac_word... " >&6; }
6743 if test "${ac_cv_prog_OTOOL64+set}" = set; then :
7242 if ${ac_cv_prog_OTOOL64+:} false; then :
67447243 $as_echo_n "(cached) " >&6
67457244 else
67467245 if test -n "$OTOOL64"; then
67807279 set dummy otool64; ac_word=$2
67817280 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
67827281 $as_echo_n "checking for $ac_word... " >&6; }
6783 if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then :
7282 if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
67847283 $as_echo_n "(cached) " >&6
67857284 else
67867285 if test -n "$ac_ct_OTOOL64"; then
68557354
68567355 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
68577356 $as_echo_n "checking for -single_module linker flag... " >&6; }
6858 if test "${lt_cv_apple_cc_single_mod+set}" = set; then :
7357 if ${lt_cv_apple_cc_single_mod+:} false; then :
68597358 $as_echo_n "(cached) " >&6
68607359 else
68617360 lt_cv_apple_cc_single_mod=no
68717370 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
68727371 -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
68737372 _lt_result=$?
6874 if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
7373 # If there is a non-empty error log, and "single_module"
7374 # appears in it, assume the flag caused a linker warning
7375 if test -s conftest.err && $GREP single_module conftest.err; then
7376 cat conftest.err >&5
7377 # Otherwise, if the output was created with a 0 exit code from
7378 # the compiler, it worked.
7379 elif test -f libconftest.dylib && test $_lt_result -eq 0; then
68757380 lt_cv_apple_cc_single_mod=yes
68767381 else
68777382 cat conftest.err >&5
68827387 fi
68837388 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
68847389 $as_echo "$lt_cv_apple_cc_single_mod" >&6; }
7390
68857391 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
68867392 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
6887 if test "${lt_cv_ld_exported_symbols_list+set}" = set; then :
7393 if ${lt_cv_ld_exported_symbols_list+:} false; then :
68887394 $as_echo_n "(cached) " >&6
68897395 else
68907396 lt_cv_ld_exported_symbols_list=no
69147420 fi
69157421 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
69167422 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
7423
7424 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
7425 $as_echo_n "checking for -force_load linker flag... " >&6; }
7426 if ${lt_cv_ld_force_load+:} false; then :
7427 $as_echo_n "(cached) " >&6
7428 else
7429 lt_cv_ld_force_load=no
7430 cat > conftest.c << _LT_EOF
7431 int forced_loaded() { return 2;}
7432 _LT_EOF
7433 echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
7434 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
7435 echo "$AR cru libconftest.a conftest.o" >&5
7436 $AR cru libconftest.a conftest.o 2>&5
7437 echo "$RANLIB libconftest.a" >&5
7438 $RANLIB libconftest.a 2>&5
7439 cat > conftest.c << _LT_EOF
7440 int main() { return 0;}
7441 _LT_EOF
7442 echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
7443 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
7444 _lt_result=$?
7445 if test -s conftest.err && $GREP force_load conftest.err; then
7446 cat conftest.err >&5
7447 elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
7448 lt_cv_ld_force_load=yes
7449 else
7450 cat conftest.err >&5
7451 fi
7452 rm -f conftest.err libconftest.a conftest conftest.c
7453 rm -rf conftest.dSYM
7454
7455 fi
7456 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
7457 $as_echo "$lt_cv_ld_force_load" >&6; }
69177458 case $host_os in
69187459 rhapsody* | darwin1.[012])
69197460 _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
69417482 else
69427483 _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
69437484 fi
6944 if test "$DSYMUTIL" != ":"; then
7485 if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
69457486 _lt_dsymutil='~$DSYMUTIL $lib || :'
69467487 else
69477488 _lt_dsymutil=
69617502 CPP=
69627503 fi
69637504 if test -z "$CPP"; then
6964 if test "${ac_cv_prog_CPP+set}" = set; then :
7505 if ${ac_cv_prog_CPP+:} false; then :
69657506 $as_echo_n "(cached) " >&6
69667507 else
69677508 # Double quotes because CPP needs to be expanded
70777618 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
70787619 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
70797620 as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
7080 See \`config.log' for more details" "$LINENO" 5 ; }
7621 See \`config.log' for more details" "$LINENO" 5; }
70817622 fi
70827623
70837624 ac_ext=c
70897630
70907631 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
70917632 $as_echo_n "checking for ANSI C header files... " >&6; }
7092 if test "${ac_cv_header_stdc+set}" = set; then :
7633 if ${ac_cv_header_stdc+:} false; then :
70937634 $as_echo_n "(cached) " >&6
70947635 else
70957636 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
72207761 do :
72217762 ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
72227763 "
7223 if test "x$ac_cv_header_dlfcn_h" = x""yes; then :
7764 if test "x$ac_cv_header_dlfcn_h" = xyes; then :
72247765 cat >>confdefs.h <<_ACEOF
72257766 #define HAVE_DLFCN_H 1
72267767 _ACEOF
72287769 fi
72297770
72307771 done
7772
7773
72317774
72327775
72337776
73067849
73077850 # Check whether --with-pic was given.
73087851 if test "${with_pic+set}" = set; then :
7309 withval=$with_pic; pic_mode="$withval"
7852 withval=$with_pic; lt_p=${PACKAGE-default}
7853 case $withval in
7854 yes|no) pic_mode=$withval ;;
7855 *)
7856 pic_mode=default
7857 # Look at the argument we got. We use all the common list separators.
7858 lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
7859 for lt_pkg in $withval; do
7860 IFS="$lt_save_ifs"
7861 if test "X$lt_pkg" = "X$lt_p"; then
7862 pic_mode=yes
7863 fi
7864 done
7865 IFS="$lt_save_ifs"
7866 ;;
7867 esac
73107868 else
73117869 pic_mode=default
73127870 fi
73837941
73847942
73857943
7944
7945
7946
7947
7948
73867949 test -z "$LN_S" && LN_S="ln -s"
73877950
73887951
74047967
74057968 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
74067969 $as_echo_n "checking for objdir... " >&6; }
7407 if test "${lt_cv_objdir+set}" = set; then :
7970 if ${lt_cv_objdir+:} false; then :
74087971 $as_echo_n "(cached) " >&6
74097972 else
74107973 rm -f .libs 2>/dev/null
74287991 cat >>confdefs.h <<_ACEOF
74297992 #define LT_OBJDIR "$lt_cv_objdir/"
74307993 _ACEOF
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
74447994
74457995
74467996
74578007 ;;
74588008 esac
74598009
7460 # Sed substitution that helps us do robust quoting. It backslashifies
7461 # metacharacters that are still active within double-quoted strings.
7462 sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
7463
7464 # Same as above, but do not quote variable references.
7465 double_quote_subst='s/\(["`\\]\)/\\\1/g'
7466
7467 # Sed substitution to delay expansion of an escaped shell variable in a
7468 # double_quote_subst'ed string.
7469 delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
7470
7471 # Sed substitution to delay expansion of an escaped single quote.
7472 delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
7473
7474 # Sed substitution to avoid accidental globbing in evaled expressions
7475 no_glob_subst='s/\*/\\\*/g'
7476
74778010 # Global variables:
74788011 ofile=libtool
74798012 can_build_shared=yes
75028035 *) break;;
75038036 esac
75048037 done
7505 cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
8038 cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
75068039
75078040
75088041 # Only perform the check for file, if the check method requires it
75128045 if test "$file_magic_cmd" = '$MAGIC_CMD'; then
75138046 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
75148047 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
7515 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
8048 if ${lt_cv_path_MAGIC_CMD+:} false; then :
75168049 $as_echo_n "(cached) " >&6
75178050 else
75188051 case $MAGIC_CMD in
75788111 if test -n "$ac_tool_prefix"; then
75798112 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
75808113 $as_echo_n "checking for file... " >&6; }
7581 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
8114 if ${lt_cv_path_MAGIC_CMD+:} false; then :
75828115 $as_echo_n "(cached) " >&6
75838116 else
75848117 case $MAGIC_CMD in
77118244 lt_prog_compiler_no_builtin_flag=
77128245
77138246 if test "$GCC" = yes; then
7714 lt_prog_compiler_no_builtin_flag=' -fno-builtin'
8247 case $cc_basename in
8248 nvcc*)
8249 lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
8250 *)
8251 lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
8252 esac
77158253
77168254 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
77178255 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
7718 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then :
8256 if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
77198257 $as_echo_n "(cached) " >&6
77208258 else
77218259 lt_cv_prog_compiler_rtti_exceptions=no
77318269 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
77328270 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
77338271 -e 's:$: $lt_compiler_flag:'`
7734 (eval echo "\"\$as_me:7735: $lt_compile\"" >&5)
8272 (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
77358273 (eval "$lt_compile" 2>conftest.err)
77368274 ac_status=$?
77378275 cat conftest.err >&5
7738 echo "$as_me:7739: \$? = $ac_status" >&5
8276 echo "$as_me:$LINENO: \$? = $ac_status" >&5
77398277 if (exit $ac_status) && test -s "$ac_outfile"; then
77408278 # The compiler can only warn and ignore the option if not recognized
77418279 # So say no if there are warnings other than the usual output.
7742 $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
8280 $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
77438281 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
77448282 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
77458283 lt_cv_prog_compiler_rtti_exceptions=yes
77688306 lt_prog_compiler_pic=
77698307 lt_prog_compiler_static=
77708308
7771 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
7772 $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
77738309
77748310 if test "$GCC" = yes; then
77758311 lt_prog_compiler_wl='-Wl,'
78178353 lt_prog_compiler_pic='-fno-common'
78188354 ;;
78198355
8356 haiku*)
8357 # PIC is the default for Haiku.
8358 # The "-static" flag exists, but is broken.
8359 lt_prog_compiler_static=
8360 ;;
8361
78208362 hpux*)
78218363 # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
78228364 # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
78578399
78588400 *)
78598401 lt_prog_compiler_pic='-fPIC'
8402 ;;
8403 esac
8404
8405 case $cc_basename in
8406 nvcc*) # Cuda Compiler Driver 2.2
8407 lt_prog_compiler_wl='-Xlinker '
8408 if test -n "$lt_prog_compiler_pic"; then
8409 lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
8410 fi
78608411 ;;
78618412 esac
78628413 else
79218472 lt_prog_compiler_pic='--shared'
79228473 lt_prog_compiler_static='--static'
79238474 ;;
7924 pgcc* | pgf77* | pgf90* | pgf95*)
8475 nagfor*)
8476 # NAG Fortran compiler
8477 lt_prog_compiler_wl='-Wl,-Wl,,'
8478 lt_prog_compiler_pic='-PIC'
8479 lt_prog_compiler_static='-Bstatic'
8480 ;;
8481 pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
79258482 # Portland Group compilers (*not* the Pentium gcc compiler,
79268483 # which looks to be a dead project)
79278484 lt_prog_compiler_wl='-Wl,'
79338490 # All Alpha code is PIC.
79348491 lt_prog_compiler_static='-non_shared'
79358492 ;;
7936 xl*)
7937 # IBM XL C 8.0/Fortran 10.1 on PPC
8493 xl* | bgxl* | bgf* | mpixl*)
8494 # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
79388495 lt_prog_compiler_wl='-Wl,'
79398496 lt_prog_compiler_pic='-qpic'
79408497 lt_prog_compiler_static='-qstaticlink'
79418498 ;;
79428499 *)
79438500 case `$CC -V 2>&1 | sed 5q` in
8501 *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
8502 # Sun Fortran 8.3 passes all unrecognized flags to the linker
8503 lt_prog_compiler_pic='-KPIC'
8504 lt_prog_compiler_static='-Bstatic'
8505 lt_prog_compiler_wl=''
8506 ;;
8507 *Sun\ F* | *Sun*Fortran*)
8508 lt_prog_compiler_pic='-KPIC'
8509 lt_prog_compiler_static='-Bstatic'
8510 lt_prog_compiler_wl='-Qoption ld '
8511 ;;
79448512 *Sun\ C*)
79458513 # Sun C 5.9
79468514 lt_prog_compiler_pic='-KPIC'
79478515 lt_prog_compiler_static='-Bstatic'
79488516 lt_prog_compiler_wl='-Wl,'
79498517 ;;
7950 *Sun\ F*)
7951 # Sun Fortran 8.3 passes all unrecognized flags to the linker
7952 lt_prog_compiler_pic='-KPIC'
8518 *Intel*\ [CF]*Compiler*)
8519 lt_prog_compiler_wl='-Wl,'
8520 lt_prog_compiler_pic='-fPIC'
8521 lt_prog_compiler_static='-static'
8522 ;;
8523 *Portland\ Group*)
8524 lt_prog_compiler_wl='-Wl,'
8525 lt_prog_compiler_pic='-fpic'
79538526 lt_prog_compiler_static='-Bstatic'
7954 lt_prog_compiler_wl=''
79558527 ;;
79568528 esac
79578529 ;;
79838555 lt_prog_compiler_pic='-KPIC'
79848556 lt_prog_compiler_static='-Bstatic'
79858557 case $cc_basename in
7986 f77* | f90* | f95*)
8558 f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
79878559 lt_prog_compiler_wl='-Qoption ld ';;
79888560 *)
79898561 lt_prog_compiler_wl='-Wl,';;
80408612 lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
80418613 ;;
80428614 esac
8043 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
8044 $as_echo "$lt_prog_compiler_pic" >&6; }
8045
8046
8047
8048
8049
8615
8616 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
8617 $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
8618 if ${lt_cv_prog_compiler_pic+:} false; then :
8619 $as_echo_n "(cached) " >&6
8620 else
8621 lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
8622 fi
8623 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
8624 $as_echo "$lt_cv_prog_compiler_pic" >&6; }
8625 lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
80508626
80518627 #
80528628 # Check to make sure the PIC flag actually works.
80548630 if test -n "$lt_prog_compiler_pic"; then
80558631 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
80568632 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
8057 if test "${lt_cv_prog_compiler_pic_works+set}" = set; then :
8633 if ${lt_cv_prog_compiler_pic_works+:} false; then :
80588634 $as_echo_n "(cached) " >&6
80598635 else
80608636 lt_cv_prog_compiler_pic_works=no
80708646 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
80718647 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
80728648 -e 's:$: $lt_compiler_flag:'`
8073 (eval echo "\"\$as_me:8074: $lt_compile\"" >&5)
8649 (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
80748650 (eval "$lt_compile" 2>conftest.err)
80758651 ac_status=$?
80768652 cat conftest.err >&5
8077 echo "$as_me:8078: \$? = $ac_status" >&5
8653 echo "$as_me:$LINENO: \$? = $ac_status" >&5
80788654 if (exit $ac_status) && test -s "$ac_outfile"; then
80798655 # The compiler can only warn and ignore the option if not recognized
80808656 # So say no if there are warnings other than the usual output.
8081 $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
8657 $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
80828658 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
80838659 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
80848660 lt_cv_prog_compiler_pic_works=yes
81078683
81088684
81098685
8686
8687
8688
8689
8690
81108691 #
81118692 # Check to make sure the static flag actually works.
81128693 #
81138694 wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
81148695 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
81158696 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
8116 if test "${lt_cv_prog_compiler_static_works+set}" = set; then :
8697 if ${lt_cv_prog_compiler_static_works+:} false; then :
81178698 $as_echo_n "(cached) " >&6
81188699 else
81198700 lt_cv_prog_compiler_static_works=no
81268707 if test -s conftest.err; then
81278708 # Append any errors to the config.log.
81288709 cat conftest.err 1>&5
8129 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
8710 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
81308711 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
81318712 if diff conftest.exp conftest.er2 >/dev/null; then
81328713 lt_cv_prog_compiler_static_works=yes
81568737
81578738 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
81588739 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
8159 if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
8740 if ${lt_cv_prog_compiler_c_o+:} false; then :
81608741 $as_echo_n "(cached) " >&6
81618742 else
81628743 lt_cv_prog_compiler_c_o=no
81758756 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
81768757 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
81778758 -e 's:$: $lt_compiler_flag:'`
8178 (eval echo "\"\$as_me:8179: $lt_compile\"" >&5)
8759 (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
81798760 (eval "$lt_compile" 2>out/conftest.err)
81808761 ac_status=$?
81818762 cat out/conftest.err >&5
8182 echo "$as_me:8183: \$? = $ac_status" >&5
8763 echo "$as_me:$LINENO: \$? = $ac_status" >&5
81838764 if (exit $ac_status) && test -s out/conftest2.$ac_objext
81848765 then
81858766 # The compiler can only warn and ignore the option if not recognized
81868767 # So say no if there are warnings
8187 $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
8768 $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
81888769 $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
81898770 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
81908771 lt_cv_prog_compiler_c_o=yes
82118792
82128793 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
82138794 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
8214 if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
8795 if ${lt_cv_prog_compiler_c_o+:} false; then :
82158796 $as_echo_n "(cached) " >&6
82168797 else
82178798 lt_cv_prog_compiler_c_o=no
82308811 -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
82318812 -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
82328813 -e 's:$: $lt_compiler_flag:'`
8233 (eval echo "\"\$as_me:8234: $lt_compile\"" >&5)
8814 (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
82348815 (eval "$lt_compile" 2>out/conftest.err)
82358816 ac_status=$?
82368817 cat out/conftest.err >&5
8237 echo "$as_me:8238: \$? = $ac_status" >&5
8818 echo "$as_me:$LINENO: \$? = $ac_status" >&5
82388819 if (exit $ac_status) && test -s out/conftest2.$ac_objext
82398820 then
82408821 # The compiler can only warn and ignore the option if not recognized
82418822 # So say no if there are warnings
8242 $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
8823 $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
82438824 $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
82448825 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
82458826 lt_cv_prog_compiler_c_o=yes
83058886 hardcode_direct=no
83068887 hardcode_direct_absolute=no
83078888 hardcode_libdir_flag_spec=
8308 hardcode_libdir_flag_spec_ld=
83098889 hardcode_libdir_separator=
83108890 hardcode_minus_L=no
83118891 hardcode_shlibpath_var=unsupported
83498929 openbsd*)
83508930 with_gnu_ld=no
83518931 ;;
8352 linux* | k*bsd*-gnu)
8932 linux* | k*bsd*-gnu | gnu*)
83538933 link_all_deplibs=no
83548934 ;;
83558935 esac
83568936
83578937 ld_shlibs=yes
8938
8939 # On some targets, GNU ld is compatible enough with the native linker
8940 # that we're better off using the native interface for both.
8941 lt_use_gnu_ld_interface=no
83588942 if test "$with_gnu_ld" = yes; then
8943 case $host_os in
8944 aix*)
8945 # The AIX port of GNU ld has always aspired to compatibility
8946 # with the native linker. However, as the warning in the GNU ld
8947 # block says, versions before 2.19.5* couldn't really create working
8948 # shared libraries, regardless of the interface used.
8949 case `$LD -v 2>&1` in
8950 *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
8951 *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
8952 *\ \(GNU\ Binutils\)\ [3-9]*) ;;
8953 *)
8954 lt_use_gnu_ld_interface=yes
8955 ;;
8956 esac
8957 ;;
8958 *)
8959 lt_use_gnu_ld_interface=yes
8960 ;;
8961 esac
8962 fi
8963
8964 if test "$lt_use_gnu_ld_interface" = yes; then
83598965 # If archive_cmds runs LD, not CC, wlarc should be empty
83608966 wlarc='${wl}'
83618967
83898995 ld_shlibs=no
83908996 cat <<_LT_EOF 1>&2
83918997
8392 *** Warning: the GNU linker, at least up to release 2.9.1, is reported
8998 *** Warning: the GNU linker, at least up to release 2.19, is reported
83938999 *** to be unable to reliably create shared libraries on AIX.
83949000 *** Therefore, libtool is disabling shared libraries support. If you
8395 *** really care for shared libraries, you may want to modify your PATH
8396 *** so that a non-GNU linker is found, and then restart.
9001 *** really care for shared libraries, you may want to install binutils
9002 *** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
9003 *** You will then need to restart the configuration process.
83979004
83989005 _LT_EOF
83999006 fi
84299036 # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
84309037 # as there is no search path for DLLs.
84319038 hardcode_libdir_flag_spec='-L$libdir'
9039 export_dynamic_flag_spec='${wl}--export-all-symbols'
84329040 allow_undefined_flag=unsupported
84339041 always_export_symbols=no
84349042 enable_shared_with_static_runtimes=yes
8435 export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
9043 export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
9044 exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
84369045
84379046 if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
84389047 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
84509059 fi
84519060 ;;
84529061
9062 haiku*)
9063 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
9064 link_all_deplibs=yes
9065 ;;
9066
84539067 interix[3-9]*)
84549068 hardcode_direct=no
84559069 hardcode_shlibpath_var=no
84759089 if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
84769090 && test "$tmp_diet" = no
84779091 then
8478 tmp_addflag=
9092 tmp_addflag=' $pic_flag'
84799093 tmp_sharedflag='-shared'
84809094 case $cc_basename,$host_cpu in
84819095 pgcc*) # Portland Group C compiler
8482 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'
9096 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'
84839097 tmp_addflag=' $pic_flag'
84849098 ;;
8485 pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers
8486 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'
9099 pgf77* | pgf90* | pgf95* | pgfortran*)
9100 # Portland Group f77 and f90 compilers
9101 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'
84879102 tmp_addflag=' $pic_flag -Mnomain' ;;
84889103 ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
84899104 tmp_addflag=' -i_dynamic' ;;
84949109 lf95*) # Lahey Fortran 8.1
84959110 whole_archive_flag_spec=
84969111 tmp_sharedflag='--shared' ;;
8497 xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
9112 xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
84989113 tmp_sharedflag='-qmkshrobj'
84999114 tmp_addflag= ;;
9115 nvcc*) # Cuda Compiler Driver 2.2
9116 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'
9117 compiler_needs_object=yes
9118 ;;
85009119 esac
85019120 case `$CC -V 2>&1 | sed 5q` in
85029121 *Sun\ C*) # Sun C 5.9
8503 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'
9122 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'
85049123 compiler_needs_object=yes
85059124 tmp_sharedflag='-G' ;;
85069125 *Sun\ F*) # Sun Fortran 8.3
85169135 fi
85179136
85189137 case $cc_basename in
8519 xlf*)
9138 xlf* | bgf* | bgxlf* | mpixlf*)
85209139 # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
85219140 whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
8522 hardcode_libdir_flag_spec=
8523 hardcode_libdir_flag_spec_ld='-rpath $libdir'
8524 archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
9141 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
9142 archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
85259143 if test "x$supports_anon_versioning" = xyes; then
85269144 archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
85279145 cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
85289146 echo "local: *; };" >> $output_objdir/$libname.ver~
8529 $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
9147 $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
85309148 fi
85319149 ;;
85329150 esac
85409158 archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
85419159 wlarc=
85429160 else
8543 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
8544 archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
9161 archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
9162 archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
85459163 fi
85469164 ;;
85479165
85599177
85609178 _LT_EOF
85619179 elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
8562 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
8563 archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
9180 archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
9181 archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
85649182 else
85659183 ld_shlibs=no
85669184 fi
86069224
86079225 *)
86089226 if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
8609 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
8610 archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
9227 archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
9228 archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
86119229 else
86129230 ld_shlibs=no
86139231 fi
86479265 else
86489266 # If we're using GNU nm, then we don't want the "-C" option.
86499267 # -C means demangle to AIX nm, but means don't demangle with GNU nm
9268 # Also, AIX nm treats weak defined symbols like other global
9269 # defined symbols, whereas GNU nm marks them as "W".
86509270 if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
8651 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'
9271 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'
86529272 else
86539273 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'
86549274 fi
87369356 allow_undefined_flag='-berok'
87379357 # Determine the default libpath from the value encoded in an
87389358 # empty executable.
8739 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
9359 if test "${lt_cv_aix_libpath+set}" = set; then
9360 aix_libpath=$lt_cv_aix_libpath
9361 else
9362 if ${lt_cv_aix_libpath_+:} false; then :
9363 $as_echo_n "(cached) " >&6
9364 else
9365 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
87409366 /* end confdefs.h. */
87419367
87429368 int
87499375 _ACEOF
87509376 if ac_fn_c_try_link "$LINENO"; then :
87519377
8752 lt_aix_libpath_sed='
8753 /Import File Strings/,/^$/ {
8754 /^0/ {
8755 s/^0 *\(.*\)$/\1/
8756 p
8757 }
8758 }'
8759 aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
8760 # Check for a 64-bit object if we didn't find anything.
8761 if test -z "$aix_libpath"; then
8762 aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
8763 fi
9378 lt_aix_libpath_sed='
9379 /Import File Strings/,/^$/ {
9380 /^0/ {
9381 s/^0 *\([^ ]*\) *$/\1/
9382 p
9383 }
9384 }'
9385 lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
9386 # Check for a 64-bit object if we didn't find anything.
9387 if test -z "$lt_cv_aix_libpath_"; then
9388 lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
9389 fi
87649390 fi
87659391 rm -f core conftest.err conftest.$ac_objext \
87669392 conftest$ac_exeext conftest.$ac_ext
8767 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
9393 if test -z "$lt_cv_aix_libpath_"; then
9394 lt_cv_aix_libpath_="/usr/lib:/lib"
9395 fi
9396
9397 fi
9398
9399 aix_libpath=$lt_cv_aix_libpath_
9400 fi
87689401
87699402 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
8770 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"
9403 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"
87719404 else
87729405 if test "$host_cpu" = ia64; then
87739406 hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
87769409 else
87779410 # Determine the default libpath from the value encoded in an
87789411 # empty executable.
8779 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
9412 if test "${lt_cv_aix_libpath+set}" = set; then
9413 aix_libpath=$lt_cv_aix_libpath
9414 else
9415 if ${lt_cv_aix_libpath_+:} false; then :
9416 $as_echo_n "(cached) " >&6
9417 else
9418 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
87809419 /* end confdefs.h. */
87819420
87829421 int
87899428 _ACEOF
87909429 if ac_fn_c_try_link "$LINENO"; then :
87919430
8792 lt_aix_libpath_sed='
8793 /Import File Strings/,/^$/ {
8794 /^0/ {
8795 s/^0 *\(.*\)$/\1/
8796 p
8797 }
8798 }'
8799 aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
8800 # Check for a 64-bit object if we didn't find anything.
8801 if test -z "$aix_libpath"; then
8802 aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
8803 fi
9431 lt_aix_libpath_sed='
9432 /Import File Strings/,/^$/ {
9433 /^0/ {
9434 s/^0 *\([^ ]*\) *$/\1/
9435 p
9436 }
9437 }'
9438 lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
9439 # Check for a 64-bit object if we didn't find anything.
9440 if test -z "$lt_cv_aix_libpath_"; then
9441 lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
9442 fi
88049443 fi
88059444 rm -f core conftest.err conftest.$ac_objext \
88069445 conftest$ac_exeext conftest.$ac_ext
8807 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
9446 if test -z "$lt_cv_aix_libpath_"; then
9447 lt_cv_aix_libpath_="/usr/lib:/lib"
9448 fi
9449
9450 fi
9451
9452 aix_libpath=$lt_cv_aix_libpath_
9453 fi
88089454
88099455 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
88109456 # Warning - without using the other run time loading flags,
88119457 # -berok will link without error, but may produce a broken library.
88129458 no_undefined_flag=' ${wl}-bernotok'
88139459 allow_undefined_flag=' ${wl}-berok'
8814 # Exported symbols can be pulled into shared objects from archives
8815 whole_archive_flag_spec='$convenience'
9460 if test "$with_gnu_ld" = yes; then
9461 # We only use this code for GNU lds that support --whole-archive.
9462 whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
9463 else
9464 # Exported symbols can be pulled into shared objects from archives
9465 whole_archive_flag_spec='$convenience'
9466 fi
88169467 archive_cmds_need_lc=yes
88179468 # This is similar to how AIX traditionally builds its shared libraries.
88189469 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'
88449495 # Microsoft Visual C++.
88459496 # hardcode_libdir_flag_spec is actually meaningless, as there is
88469497 # no search path for DLLs.
8847 hardcode_libdir_flag_spec=' '
8848 allow_undefined_flag=unsupported
8849 # Tell ltmain to make .lib files, not .a files.
8850 libext=lib
8851 # Tell ltmain to make .dll files, not .so files.
8852 shrext_cmds=".dll"
8853 # FIXME: Setting linknames here is a bad hack.
8854 archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames='
8855 # The linker will automatically build a .lib file if we build a DLL.
8856 old_archive_from_new_cmds='true'
8857 # FIXME: Should let the user specify the lib program.
8858 old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
8859 fix_srcfile_path='`cygpath -w "$srcfile"`'
8860 enable_shared_with_static_runtimes=yes
9498 case $cc_basename in
9499 cl*)
9500 # Native MSVC
9501 hardcode_libdir_flag_spec=' '
9502 allow_undefined_flag=unsupported
9503 always_export_symbols=yes
9504 file_list_spec='@'
9505 # Tell ltmain to make .lib files, not .a files.
9506 libext=lib
9507 # Tell ltmain to make .dll files, not .so files.
9508 shrext_cmds=".dll"
9509 # FIXME: Setting linknames here is a bad hack.
9510 archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
9511 archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
9512 sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
9513 else
9514 sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
9515 fi~
9516 $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
9517 linknames='
9518 # The linker will not automatically build a static lib if we build a DLL.
9519 # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
9520 enable_shared_with_static_runtimes=yes
9521 exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
9522 export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
9523 # Don't use ranlib
9524 old_postinstall_cmds='chmod 644 $oldlib'
9525 postlink_cmds='lt_outputfile="@OUTPUT@"~
9526 lt_tool_outputfile="@TOOL_OUTPUT@"~
9527 case $lt_outputfile in
9528 *.exe|*.EXE) ;;
9529 *)
9530 lt_outputfile="$lt_outputfile.exe"
9531 lt_tool_outputfile="$lt_tool_outputfile.exe"
9532 ;;
9533 esac~
9534 if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
9535 $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
9536 $RM "$lt_outputfile.manifest";
9537 fi'
9538 ;;
9539 *)
9540 # Assume MSVC wrapper
9541 hardcode_libdir_flag_spec=' '
9542 allow_undefined_flag=unsupported
9543 # Tell ltmain to make .lib files, not .a files.
9544 libext=lib
9545 # Tell ltmain to make .dll files, not .so files.
9546 shrext_cmds=".dll"
9547 # FIXME: Setting linknames here is a bad hack.
9548 archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
9549 # The linker will automatically build a .lib file if we build a DLL.
9550 old_archive_from_new_cmds='true'
9551 # FIXME: Should let the user specify the lib program.
9552 old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
9553 enable_shared_with_static_runtimes=yes
9554 ;;
9555 esac
88619556 ;;
88629557
88639558 darwin* | rhapsody*)
88679562 hardcode_direct=no
88689563 hardcode_automatic=yes
88699564 hardcode_shlibpath_var=unsupported
8870 whole_archive_flag_spec=''
9565 if test "$lt_cv_ld_force_load" = "yes"; then
9566 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\"`'
9567
9568 else
9569 whole_archive_flag_spec=''
9570 fi
88719571 link_all_deplibs=yes
88729572 allow_undefined_flag="$_lt_dar_allow_undefined"
88739573 case $cc_basename in
88759575 *) _lt_dar_can_shared=$GCC ;;
88769576 esac
88779577 if test "$_lt_dar_can_shared" = "yes"; then
8878 output_verbose_link_cmd=echo
9578 output_verbose_link_cmd=func_echo_all
88799579 archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
88809580 module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
88819581 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}"
88919591 archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
88929592 hardcode_libdir_flag_spec='-L$libdir'
88939593 hardcode_shlibpath_var=no
8894 ;;
8895
8896 freebsd1*)
8897 ld_shlibs=no
88989594 ;;
88999595
89009596 # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
89099605 ;;
89109606
89119607 # Unfortunately, older versions of FreeBSD 2 do not have this feature.
8912 freebsd2*)
9608 freebsd2.*)
89139609 archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
89149610 hardcode_direct=yes
89159611 hardcode_minus_L=yes
89189614
89199615 # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
89209616 freebsd* | dragonfly*)
8921 archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
9617 archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
89229618 hardcode_libdir_flag_spec='-R$libdir'
89239619 hardcode_direct=yes
89249620 hardcode_shlibpath_var=no
89269622
89279623 hpux9*)
89289624 if test "$GCC" = yes; then
8929 archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
9625 archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
89309626 else
89319627 archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
89329628 fi
89419637 ;;
89429638
89439639 hpux10*)
8944 if test "$GCC" = yes -a "$with_gnu_ld" = no; then
8945 archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
9640 if test "$GCC" = yes && test "$with_gnu_ld" = no; then
9641 archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
89469642 else
89479643 archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
89489644 fi
89499645 if test "$with_gnu_ld" = no; then
89509646 hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
8951 hardcode_libdir_flag_spec_ld='+b $libdir'
89529647 hardcode_libdir_separator=:
89539648 hardcode_direct=yes
89549649 hardcode_direct_absolute=yes
89609655 ;;
89619656
89629657 hpux11*)
8963 if test "$GCC" = yes -a "$with_gnu_ld" = no; then
9658 if test "$GCC" = yes && test "$with_gnu_ld" = no; then
89649659 case $host_cpu in
89659660 hppa*64*)
89669661 archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
89679662 ;;
89689663 ia64*)
8969 archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
9664 archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
89709665 ;;
89719666 *)
8972 archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
9667 archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
89739668 ;;
89749669 esac
89759670 else
89819676 archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
89829677 ;;
89839678 *)
8984 archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
9679
9680 # Older versions of the 11.00 compiler do not understand -b yet
9681 # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
9682 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
9683 $as_echo_n "checking if $CC understands -b... " >&6; }
9684 if ${lt_cv_prog_compiler__b+:} false; then :
9685 $as_echo_n "(cached) " >&6
9686 else
9687 lt_cv_prog_compiler__b=no
9688 save_LDFLAGS="$LDFLAGS"
9689 LDFLAGS="$LDFLAGS -b"
9690 echo "$lt_simple_link_test_code" > conftest.$ac_ext
9691 if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
9692 # The linker can only warn and ignore the option if not recognized
9693 # So say no if there are warnings
9694 if test -s conftest.err; then
9695 # Append any errors to the config.log.
9696 cat conftest.err 1>&5
9697 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
9698 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
9699 if diff conftest.exp conftest.er2 >/dev/null; then
9700 lt_cv_prog_compiler__b=yes
9701 fi
9702 else
9703 lt_cv_prog_compiler__b=yes
9704 fi
9705 fi
9706 $RM -r conftest*
9707 LDFLAGS="$save_LDFLAGS"
9708
9709 fi
9710 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
9711 $as_echo "$lt_cv_prog_compiler__b" >&6; }
9712
9713 if test x"$lt_cv_prog_compiler__b" = xyes; then
9714 archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
9715 else
9716 archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
9717 fi
9718
89859719 ;;
89869720 esac
89879721 fi
90099743
90109744 irix5* | irix6* | nonstopux*)
90119745 if test "$GCC" = yes; then
9012 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'
9746 archive_cmds='$CC -shared $pic_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'
90139747 # Try to use the -exported_symbol ld option, if it does not
90149748 # work, assume that -exports_file does not work either and
90159749 # implicitly export all symbols.
9016 save_LDFLAGS="$LDFLAGS"
9017 LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
9018 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
9750 # This should be the same for all languages, so no per-tag cache variable.
9751 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
9752 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
9753 if ${lt_cv_irix_exported_symbol+:} false; then :
9754 $as_echo_n "(cached) " >&6
9755 else
9756 save_LDFLAGS="$LDFLAGS"
9757 LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
9758 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
90199759 /* end confdefs.h. */
9020 int foo(void) {}
9760 int foo (void) { return 0; }
90219761 _ACEOF
90229762 if ac_fn_c_try_link "$LINENO"; then :
9023 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'
9024
9763 lt_cv_irix_exported_symbol=yes
9764 else
9765 lt_cv_irix_exported_symbol=no
90259766 fi
90269767 rm -f core conftest.err conftest.$ac_objext \
90279768 conftest$ac_exeext conftest.$ac_ext
9028 LDFLAGS="$save_LDFLAGS"
9769 LDFLAGS="$save_LDFLAGS"
9770 fi
9771 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
9772 $as_echo "$lt_cv_irix_exported_symbol" >&6; }
9773 if test "$lt_cv_irix_exported_symbol" = yes; then
9774 archive_expsym_cmds='$CC -shared $pic_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 ${wl}-exports_file ${wl}$export_symbols -o $lib'
9775 fi
90299776 else
9030 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'
9031 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'
9777 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'
9778 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'
90329779 fi
90339780 archive_cmds_need_lc='no'
90349781 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
90909837 hardcode_libdir_flag_spec='-L$libdir'
90919838 hardcode_minus_L=yes
90929839 allow_undefined_flag=unsupported
9093 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'
9840 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'
90949841 old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
90959842 ;;
90969843
90979844 osf3*)
90989845 if test "$GCC" = yes; then
90999846 allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
9100 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'
9847 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'
91019848 else
91029849 allow_undefined_flag=' -expect_unresolved \*'
9103 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'
9850 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'
91049851 fi
91059852 archive_cmds_need_lc='no'
91069853 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
91109857 osf4* | osf5*) # as osf3* with the addition of -msym flag
91119858 if test "$GCC" = yes; then
91129859 allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
9113 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'
9860 archive_cmds='$CC -shared${allow_undefined_flag} $pic_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'
91149861 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
91159862 else
91169863 allow_undefined_flag=' -expect_unresolved \*'
9117 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'
9864 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'
91189865 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~
9119 $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'
9866 $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'
91209867
91219868 # Both c and cxx compiler support -rpath directly
91229869 hardcode_libdir_flag_spec='-rpath $libdir'
91299876 no_undefined_flag=' -z defs'
91309877 if test "$GCC" = yes; then
91319878 wlarc='${wl}'
9132 archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
9879 archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
91339880 archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
9134 $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
9881 $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
91359882 else
91369883 case `$CC -V 2>&1` in
91379884 *"Compilers 5.0"*)
931910066 # to ld, don't add -lc before -lgcc.
932010067 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
932110068 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
9322 $RM conftest*
9323 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
9324
9325 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
10069 if ${lt_cv_archive_cmds_need_lc+:} false; then :
10070 $as_echo_n "(cached) " >&6
10071 else
10072 $RM conftest*
10073 echo "$lt_simple_compile_test_code" > conftest.$ac_ext
10074
10075 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
932610076 (eval $ac_compile) 2>&5
932710077 ac_status=$?
932810078 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
932910079 test $ac_status = 0; } 2>conftest.err; then
9330 soname=conftest
9331 lib=conftest
9332 libobjs=conftest.$ac_objext
9333 deplibs=
9334 wl=$lt_prog_compiler_wl
9335 pic_flag=$lt_prog_compiler_pic
9336 compiler_flags=-v
9337 linker_flags=-v
9338 verstring=
9339 output_objdir=.
9340 libname=conftest
9341 lt_save_allow_undefined_flag=$allow_undefined_flag
9342 allow_undefined_flag=
9343 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
10080 soname=conftest
10081 lib=conftest
10082 libobjs=conftest.$ac_objext
10083 deplibs=
10084 wl=$lt_prog_compiler_wl
10085 pic_flag=$lt_prog_compiler_pic
10086 compiler_flags=-v
10087 linker_flags=-v
10088 verstring=
10089 output_objdir=.
10090 libname=conftest
10091 lt_save_allow_undefined_flag=$allow_undefined_flag
10092 allow_undefined_flag=
10093 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
934410094 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
934510095 ac_status=$?
934610096 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
934710097 test $ac_status = 0; }
9348 then
9349 archive_cmds_need_lc=no
9350 else
9351 archive_cmds_need_lc=yes
9352 fi
9353 allow_undefined_flag=$lt_save_allow_undefined_flag
9354 else
9355 cat conftest.err 1>&5
9356 fi
9357 $RM conftest*
9358 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5
9359 $as_echo "$archive_cmds_need_lc" >&6; }
10098 then
10099 lt_cv_archive_cmds_need_lc=no
10100 else
10101 lt_cv_archive_cmds_need_lc=yes
10102 fi
10103 allow_undefined_flag=$lt_save_allow_undefined_flag
10104 else
10105 cat conftest.err 1>&5
10106 fi
10107 $RM conftest*
10108
10109 fi
10110 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
10111 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
10112 archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
936010113 ;;
936110114 esac
936210115 fi
951410267
951510268
951610269
9517
9518
9519
9520
9521
952210270 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
952310271 $as_echo_n "checking dynamic linker characteristics... " >&6; }
952410272
952710275 darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
952810276 *) lt_awk_arg="/^libraries:/" ;;
952910277 esac
9530 lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
9531 if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then
10278 case $host_os in
10279 mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
10280 *) lt_sed_strip_eq="s,=/,/,g" ;;
10281 esac
10282 lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
10283 case $lt_search_path_spec in
10284 *\;*)
953210285 # if the path contains ";" then we assume it to be the separator
953310286 # otherwise default to the standard path separator (i.e. ":") - it is
953410287 # assumed that no part of a normal pathname contains ";" but that should
953510288 # okay in the real world where ";" in dirpaths is itself problematic.
9536 lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'`
9537 else
9538 lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
9539 fi
10289 lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
10290 ;;
10291 *)
10292 lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
10293 ;;
10294 esac
954010295 # Ok, now we have the path, separated by spaces, we can step through it
954110296 # and add multilib dir if necessary.
954210297 lt_tmp_lt_search_path_spec=
954910304 lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
955010305 fi
955110306 done
9552 lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk '
10307 lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
955310308 BEGIN {RS=" "; FS="/|\n";} {
955410309 lt_foo="";
955510310 lt_count=0;
956910324 if (lt_foo != "") { lt_freq[lt_foo]++; }
957010325 if (lt_freq[lt_foo] == 1) { print lt_foo; }
957110326 }'`
9572 sys_lib_search_path_spec=`$ECHO $lt_search_path_spec`
10327 # AWK program above erroneously prepends '/' to C:/dos/paths
10328 # for these hosts.
10329 case $host_os in
10330 mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
10331 $SED 's,/\([A-Za-z]:\),\1,g'` ;;
10332 esac
10333 sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
957310334 else
957410335 sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
957510336 fi
959510356
959610357 case $host_os in
959710358 aix3*)
9598 version_type=linux
10359 version_type=linux # correct to gnu/linux during the next big refactor
959910360 library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
960010361 shlibpath_var=LIBPATH
960110362
960410365 ;;
960510366
960610367 aix[4-9]*)
9607 version_type=linux
10368 version_type=linux # correct to gnu/linux during the next big refactor
960810369 need_lib_prefix=no
960910370 need_version=no
961010371 hardcode_into_libs=yes
965710418 m68k)
965810419 library_names_spec='$libname.ixlibrary $libname.a'
965910420 # Create ${libname}_ixlibrary.a entries in /sys/libs.
9660 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'
10421 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'
966110422 ;;
966210423 esac
966310424 ;;
966910430 ;;
967010431
967110432 bsdi[45]*)
9672 version_type=linux
10433 version_type=linux # correct to gnu/linux during the next big refactor
967310434 need_version=no
967410435 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
967510436 soname_spec='${libname}${release}${shared_ext}$major'
968810449 need_version=no
968910450 need_lib_prefix=no
969010451
9691 case $GCC,$host_os in
9692 yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
10452 case $GCC,$cc_basename in
10453 yes,*)
10454 # gcc
969310455 library_names_spec='$libname.dll.a'
969410456 # DLL is installed to $(libdir)/../bin by postinstall_cmds
969510457 postinstall_cmds='base_file=`basename \${file}`~
971010472 cygwin*)
971110473 # Cygwin DLLs use 'cyg' prefix rather than 'lib'
971210474 soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
9713 sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
10475
10476 sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
971410477 ;;
971510478 mingw* | cegcc*)
971610479 # MinGW DLLs use traditional 'lib' prefix
971710480 soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
9718 sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
9719 if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
9720 # It is most probably a Windows format PATH printed by
9721 # mingw gcc, but we are running on Cygwin. Gcc prints its search
9722 # path with ; separators, and with drive letters. We can handle the
9723 # drive letters (cygwin fileutils understands them), so leave them,
9724 # especially as we might pass files found there to a mingw objdump,
9725 # which wouldn't understand a cygwinified path. Ahh.
9726 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
9727 else
9728 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
9729 fi
973010481 ;;
973110482 pw32*)
973210483 # pw32 DLLs use 'pw' prefix rather than 'lib'
973310484 library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
973410485 ;;
973510486 esac
10487 dynamic_linker='Win32 ld.exe'
973610488 ;;
973710489
10490 *,cl*)
10491 # Native MSVC
10492 libname_spec='$name'
10493 soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
10494 library_names_spec='${libname}.dll.lib'
10495
10496 case $build_os in
10497 mingw*)
10498 sys_lib_search_path_spec=
10499 lt_save_ifs=$IFS
10500 IFS=';'
10501 for lt_path in $LIB
10502 do
10503 IFS=$lt_save_ifs
10504 # Let DOS variable expansion print the short 8.3 style file name.
10505 lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
10506 sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
10507 done
10508 IFS=$lt_save_ifs
10509 # Convert to MSYS style.
10510 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
10511 ;;
10512 cygwin*)
10513 # Convert to unix form, then to dos form, then back to unix form
10514 # but this time dos style (no spaces!) so that the unix form looks
10515 # like /cygdrive/c/PROGRA~1:/cygdr...
10516 sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
10517 sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
10518 sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
10519 ;;
10520 *)
10521 sys_lib_search_path_spec="$LIB"
10522 if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
10523 # It is most probably a Windows format PATH.
10524 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
10525 else
10526 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
10527 fi
10528 # FIXME: find the short name or the path components, as spaces are
10529 # common. (e.g. "Program Files" -> "PROGRA~1")
10530 ;;
10531 esac
10532
10533 # DLL is installed to $(libdir)/../bin by postinstall_cmds
10534 postinstall_cmds='base_file=`basename \${file}`~
10535 dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
10536 dldir=$destdir/`dirname \$dlpath`~
10537 test -d \$dldir || mkdir -p \$dldir~
10538 $install_prog $dir/$dlname \$dldir/$dlname'
10539 postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
10540 dlpath=$dir/\$dldll~
10541 $RM \$dlpath'
10542 shlibpath_overrides_runpath=yes
10543 dynamic_linker='Win32 link.exe'
10544 ;;
10545
973810546 *)
10547 # Assume MSVC wrapper
973910548 library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
10549 dynamic_linker='Win32 ld.exe'
974010550 ;;
974110551 esac
9742 dynamic_linker='Win32 ld.exe'
974310552 # FIXME: first we should search . and the directory the executable is in
974410553 shlibpath_var=PATH
974510554 ;;
976010569 ;;
976110570
976210571 dgux*)
9763 version_type=linux
10572 version_type=linux # correct to gnu/linux during the next big refactor
976410573 need_lib_prefix=no
976510574 need_version=no
976610575 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
976710576 soname_spec='${libname}${release}${shared_ext}$major'
976810577 shlibpath_var=LD_LIBRARY_PATH
9769 ;;
9770
9771 freebsd1*)
9772 dynamic_linker=no
977310578 ;;
977410579
977510580 freebsd* | dragonfly*)
977910584 objformat=`/usr/bin/objformat`
978010585 else
978110586 case $host_os in
9782 freebsd[123]*) objformat=aout ;;
10587 freebsd[23].*) objformat=aout ;;
978310588 *) objformat=elf ;;
978410589 esac
978510590 fi
979710602 esac
979810603 shlibpath_var=LD_LIBRARY_PATH
979910604 case $host_os in
9800 freebsd2*)
10605 freebsd2.*)
980110606 shlibpath_overrides_runpath=yes
980210607 ;;
980310608 freebsd3.[01]* | freebsdelf3.[01]*)
981710622 ;;
981810623
981910624 gnu*)
9820 version_type=linux
10625 version_type=linux # correct to gnu/linux during the next big refactor
982110626 need_lib_prefix=no
982210627 need_version=no
982310628 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
982410629 soname_spec='${libname}${release}${shared_ext}$major'
982510630 shlibpath_var=LD_LIBRARY_PATH
10631 shlibpath_overrides_runpath=no
10632 hardcode_into_libs=yes
10633 ;;
10634
10635 haiku*)
10636 version_type=linux # correct to gnu/linux during the next big refactor
10637 need_lib_prefix=no
10638 need_version=no
10639 dynamic_linker="$host_os runtime_loader"
10640 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
10641 soname_spec='${libname}${release}${shared_ext}$major'
10642 shlibpath_var=LIBRARY_PATH
10643 shlibpath_overrides_runpath=yes
10644 sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
982610645 hardcode_into_libs=yes
982710646 ;;
982810647
986810687 soname_spec='${libname}${release}${shared_ext}$major'
986910688 ;;
987010689 esac
9871 # HP-UX runs *really* slowly unless shared libraries are mode 555.
10690 # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
987210691 postinstall_cmds='chmod 555 $lib'
10692 # or fails outright, so override atomically:
10693 install_override_mode=555
987310694 ;;
987410695
987510696 interix[3-9]*)
9876 version_type=linux
10697 version_type=linux # correct to gnu/linux during the next big refactor
987710698 need_lib_prefix=no
987810699 need_version=no
987910700 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
988910710 nonstopux*) version_type=nonstopux ;;
989010711 *)
989110712 if test "$lt_cv_prog_gnu_ld" = yes; then
9892 version_type=linux
10713 version_type=linux # correct to gnu/linux during the next big refactor
989310714 else
989410715 version_type=irix
989510716 fi ;;
992610747 dynamic_linker=no
992710748 ;;
992810749
9929 # This must be Linux ELF.
10750 # This must be glibc/ELF.
993010751 linux* | k*bsd*-gnu | kopensolaris*-gnu)
9931 version_type=linux
10752 version_type=linux # correct to gnu/linux during the next big refactor
993210753 need_lib_prefix=no
993310754 need_version=no
993410755 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
993610757 finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
993710758 shlibpath_var=LD_LIBRARY_PATH
993810759 shlibpath_overrides_runpath=no
10760
993910761 # Some binutils ld are patched to set DT_RUNPATH
9940 save_LDFLAGS=$LDFLAGS
9941 save_libdir=$libdir
9942 eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
9943 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
9944 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
10762 if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
10763 $as_echo_n "(cached) " >&6
10764 else
10765 lt_cv_shlibpath_overrides_runpath=no
10766 save_LDFLAGS=$LDFLAGS
10767 save_libdir=$libdir
10768 eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
10769 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
10770 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
994510771 /* end confdefs.h. */
994610772
994710773 int
995410780 _ACEOF
995510781 if ac_fn_c_try_link "$LINENO"; then :
995610782 if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
9957 shlibpath_overrides_runpath=yes
10783 lt_cv_shlibpath_overrides_runpath=yes
995810784 fi
995910785 fi
996010786 rm -f core conftest.err conftest.$ac_objext \
996110787 conftest$ac_exeext conftest.$ac_ext
9962 LDFLAGS=$save_LDFLAGS
9963 libdir=$save_libdir
10788 LDFLAGS=$save_LDFLAGS
10789 libdir=$save_libdir
10790
10791 fi
10792
10793 shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
996410794
996510795 # This implies no fast_install, which is unacceptable.
996610796 # Some rework will be needed to allow for fast_install
996910799
997010800 # Append ld.so.conf contents to the search path
997110801 if test -f /etc/ld.so.conf; then
9972 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' ' '`
10802 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' ' '`
997310803 sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
997410804 fi
997510805
1001310843 ;;
1001410844
1001510845 newsos6)
10016 version_type=linux
10846 version_type=linux # correct to gnu/linux during the next big refactor
1001710847 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
1001810848 shlibpath_var=LD_LIBRARY_PATH
1001910849 shlibpath_overrides_runpath=yes
1008210912 ;;
1008310913
1008410914 solaris*)
10085 version_type=linux
10915 version_type=linux # correct to gnu/linux during the next big refactor
1008610916 need_lib_prefix=no
1008710917 need_version=no
1008810918 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
1010710937 ;;
1010810938
1010910939 sysv4 | sysv4.3*)
10110 version_type=linux
10940 version_type=linux # correct to gnu/linux during the next big refactor
1011110941 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
1011210942 soname_spec='${libname}${release}${shared_ext}$major'
1011310943 shlibpath_var=LD_LIBRARY_PATH
1013110961
1013210962 sysv4*MP*)
1013310963 if test -d /usr/nec ;then
10134 version_type=linux
10964 version_type=linux # correct to gnu/linux during the next big refactor
1013510965 library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
1013610966 soname_spec='$libname${shared_ext}.$major'
1013710967 shlibpath_var=LD_LIBRARY_PATH
1016210992
1016310993 tpf*)
1016410994 # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
10165 version_type=linux
10995 version_type=linux # correct to gnu/linux during the next big refactor
1016610996 need_lib_prefix=no
1016710997 need_version=no
1016810998 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
1017211002 ;;
1017311003
1017411004 uts4*)
10175 version_type=linux
11005 version_type=linux # correct to gnu/linux during the next big refactor
1017611006 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
1017711007 soname_spec='${libname}${release}${shared_ext}$major'
1017811008 shlibpath_var=LD_LIBRARY_PATH
1019711027 if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
1019811028 sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
1019911029 fi
11030
11031
11032
11033
11034
1020011035
1020111036
1020211037
1035611191 # if libdl is installed we need to link against it
1035711192 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
1035811193 $as_echo_n "checking for dlopen in -ldl... " >&6; }
10359 if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
11194 if ${ac_cv_lib_dl_dlopen+:} false; then :
1036011195 $as_echo_n "(cached) " >&6
1036111196 else
1036211197 ac_check_lib_save_LIBS=$LIBS
1039011225 fi
1039111226 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
1039211227 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
10393 if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
11228 if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
1039411229 lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
1039511230 else
1039611231
1040411239
1040511240 *)
1040611241 ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
10407 if test "x$ac_cv_func_shl_load" = x""yes; then :
11242 if test "x$ac_cv_func_shl_load" = xyes; then :
1040811243 lt_cv_dlopen="shl_load"
1040911244 else
1041011245 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
1041111246 $as_echo_n "checking for shl_load in -ldld... " >&6; }
10412 if test "${ac_cv_lib_dld_shl_load+set}" = set; then :
11247 if ${ac_cv_lib_dld_shl_load+:} false; then :
1041311248 $as_echo_n "(cached) " >&6
1041411249 else
1041511250 ac_check_lib_save_LIBS=$LIBS
1044311278 fi
1044411279 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
1044511280 $as_echo "$ac_cv_lib_dld_shl_load" >&6; }
10446 if test "x$ac_cv_lib_dld_shl_load" = x""yes; then :
11281 if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
1044711282 lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
1044811283 else
1044911284 ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
10450 if test "x$ac_cv_func_dlopen" = x""yes; then :
11285 if test "x$ac_cv_func_dlopen" = xyes; then :
1045111286 lt_cv_dlopen="dlopen"
1045211287 else
1045311288 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
1045411289 $as_echo_n "checking for dlopen in -ldl... " >&6; }
10455 if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
11290 if ${ac_cv_lib_dl_dlopen+:} false; then :
1045611291 $as_echo_n "(cached) " >&6
1045711292 else
1045811293 ac_check_lib_save_LIBS=$LIBS
1048611321 fi
1048711322 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
1048811323 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
10489 if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
11324 if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
1049011325 lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
1049111326 else
1049211327 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
1049311328 $as_echo_n "checking for dlopen in -lsvld... " >&6; }
10494 if test "${ac_cv_lib_svld_dlopen+set}" = set; then :
11329 if ${ac_cv_lib_svld_dlopen+:} false; then :
1049511330 $as_echo_n "(cached) " >&6
1049611331 else
1049711332 ac_check_lib_save_LIBS=$LIBS
1052511360 fi
1052611361 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
1052711362 $as_echo "$ac_cv_lib_svld_dlopen" >&6; }
10528 if test "x$ac_cv_lib_svld_dlopen" = x""yes; then :
11363 if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
1052911364 lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
1053011365 else
1053111366 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
1053211367 $as_echo_n "checking for dld_link in -ldld... " >&6; }
10533 if test "${ac_cv_lib_dld_dld_link+set}" = set; then :
11368 if ${ac_cv_lib_dld_dld_link+:} false; then :
1053411369 $as_echo_n "(cached) " >&6
1053511370 else
1053611371 ac_check_lib_save_LIBS=$LIBS
1056411399 fi
1056511400 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
1056611401 $as_echo "$ac_cv_lib_dld_dld_link" >&6; }
10567 if test "x$ac_cv_lib_dld_dld_link" = x""yes; then :
11402 if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
1056811403 lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
1056911404 fi
1057011405
1060511440
1060611441 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
1060711442 $as_echo_n "checking whether a program can dlopen itself... " >&6; }
10608 if test "${lt_cv_dlopen_self+set}" = set; then :
11443 if ${lt_cv_dlopen_self+:} false; then :
1060911444 $as_echo_n "(cached) " >&6
1061011445 else
1061111446 if test "$cross_compiling" = yes; then :
1061411449 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
1061511450 lt_status=$lt_dlunknown
1061611451 cat > conftest.$ac_ext <<_LT_EOF
10617 #line 10618 "configure"
11452 #line $LINENO "configure"
1061811453 #include "confdefs.h"
1061911454
1062011455 #if HAVE_DLFCN_H
1065511490 # endif
1065611491 #endif
1065711492
10658 void fnord() { int i=42;}
11493 /* When -fvisbility=hidden is used, assume the code has been annotated
11494 correspondingly for the symbols needed. */
11495 #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
11496 int fnord () __attribute__((visibility("default")));
11497 #endif
11498
11499 int fnord () { return 42; }
1065911500 int main ()
1066011501 {
1066111502 void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
1066411505 if (self)
1066511506 {
1066611507 if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
10667 else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
11508 else
11509 {
11510 if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
11511 else puts (dlerror ());
11512 }
1066811513 /* dlclose (self); */
1066911514 }
1067011515 else
1070111546 wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
1070211547 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
1070311548 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
10704 if test "${lt_cv_dlopen_self_static+set}" = set; then :
11549 if ${lt_cv_dlopen_self_static+:} false; then :
1070511550 $as_echo_n "(cached) " >&6
1070611551 else
1070711552 if test "$cross_compiling" = yes; then :
1071011555 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
1071111556 lt_status=$lt_dlunknown
1071211557 cat > conftest.$ac_ext <<_LT_EOF
10713 #line 10714 "configure"
11558 #line $LINENO "configure"
1071411559 #include "confdefs.h"
1071511560
1071611561 #if HAVE_DLFCN_H
1075111596 # endif
1075211597 #endif
1075311598
10754 void fnord() { int i=42;}
11599 /* When -fvisbility=hidden is used, assume the code has been annotated
11600 correspondingly for the symbols needed. */
11601 #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
11602 int fnord () __attribute__((visibility("default")));
11603 #endif
11604
11605 int fnord () { return 42; }
1075511606 int main ()
1075611607 {
1075711608 void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
1076011611 if (self)
1076111612 {
1076211613 if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
10763 else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
11614 else
11615 {
11616 if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
11617 else puts (dlerror ());
11618 }
1076411619 /* dlclose (self); */
1076511620 }
1076611621 else
1092911784
1093011785
1093111786
11787
11788
1093211789 ac_config_commands="$ac_config_commands libtool"
1093311790
1093411791
1094111798 # Checks for libraries.
1094211799
1094311800 libxml_min_version=2.6.8
10944 raptor_min_version=1.4.16
10945 raptor2_min_version=2.0.0
11801 raptor_min_version=2.0.0
1094611802 libcurl_min_version=7.10.0
10947 libcurl_min_vernum=070A00
1094811803
1094911804 # Checks for header files.
1095011805 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
1095111806 $as_echo_n "checking for ANSI C header files... " >&6; }
10952 if test "${ac_cv_header_stdc+set}" = set; then :
11807 if ${ac_cv_header_stdc+:} false; then :
1095311808 $as_echo_n "(cached) " >&6
1095411809 else
1095511810 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
1105911914
1106011915 fi
1106111916
11062 for ac_header in errno.h getopt.h stdlib.h string.h unistd.h
11917 for ac_header in errno.h getopt.h stdlib.h stdint.h time.h string.h unistd.h
1106311918 do :
1106411919 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
1106511920 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
1107411929
1107511930 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
1107611931 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
11077 if test "${ac_cv_header_time+set}" = set; then :
11932 if ${ac_cv_header_time+:} false; then :
1107811933 $as_echo_n "(cached) " >&6
1107911934 else
1108011935 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
1111111966 # Checks for typedefs, structures, and compiler characteristics.
1111211967 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
1111311968 $as_echo_n "checking for an ANSI C-conforming const... " >&6; }
11114 if test "${ac_cv_c_const+set}" = set; then :
11969 if ${ac_cv_c_const+:} false; then :
1111511970 $as_echo_n "(cached) " >&6
1111611971 else
1111711972 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
1119012045 fi
1119112046
1119212047 ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
11193 if test "x$ac_cv_type_size_t" = x""yes; then :
12048 if test "x$ac_cv_type_size_t" = xyes; then :
1119412049
1119512050 else
1119612051
1120212057
1120312058 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
1120412059 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
11205 if test "${ac_cv_struct_tm+set}" = set; then :
12060 if ${ac_cv_struct_tm+:} false; then :
1120612061 $as_echo_n "(cached) " >&6
1120712062 else
1120812063 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
1123712092
1123812093 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
1123912094 $as_echo_n "checking whether byte ordering is bigendian... " >&6; }
11240 if test "${ac_cv_c_bigendian+set}" = set; then :
12095 if ${ac_cv_c_bigendian+:} false; then :
1124112096 $as_echo_n "(cached) " >&6
1124212097 else
1124312098 ac_cv_c_bigendian=unknown
1145612311 ;; #(
1145712312 *)
1145812313 as_fn_error $? "unknown endianness
11459 presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
12314 presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
1146012315 esac
1146112316
1146212317
1146312318 ac_fn_c_check_type "$LINENO" "u32" "ac_cv_type_u32" "$ac_includes_default"
11464 if test "x$ac_cv_type_u32" = x""yes; then :
12319 if test "x$ac_cv_type_u32" = xyes; then :
1146512320
1146612321 fi
1146712322
1147112326 # This bug is HP SR number 8606223364.
1147212327 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned int" >&5
1147312328 $as_echo_n "checking size of unsigned int... " >&6; }
11474 if test "${ac_cv_sizeof_unsigned_int+set}" = set; then :
12329 if ${ac_cv_sizeof_unsigned_int+:} false; then :
1147512330 $as_echo_n "(cached) " >&6
1147612331 else
1147712332 if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned int))" "ac_cv_sizeof_unsigned_int" "$ac_includes_default"; then :
1148112336 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
1148212337 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
1148312338 as_fn_error 77 "cannot compute sizeof (unsigned int)
11484 See \`config.log' for more details" "$LINENO" 5 ; }
12339 See \`config.log' for more details" "$LINENO" 5; }
1148512340 else
1148612341 ac_cv_sizeof_unsigned_int=0
1148712342 fi
1150412359 # This bug is HP SR number 8606223364.
1150512360 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned long" >&5
1150612361 $as_echo_n "checking size of unsigned long... " >&6; }
11507 if test "${ac_cv_sizeof_unsigned_long+set}" = set; then :
12362 if ${ac_cv_sizeof_unsigned_long+:} false; then :
1150812363 $as_echo_n "(cached) " >&6
1150912364 else
1151012365 if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned long))" "ac_cv_sizeof_unsigned_long" "$ac_includes_default"; then :
1151412369 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
1151512370 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
1151612371 as_fn_error 77 "cannot compute sizeof (unsigned long)
11517 See \`config.log' for more details" "$LINENO" 5 ; }
12372 See \`config.log' for more details" "$LINENO" 5; }
1151812373 else
1151912374 ac_cv_sizeof_unsigned_long=0
1152012375 fi
1153612391 for ac_header in stdlib.h
1153712392 do :
1153812393 ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
11539 if test "x$ac_cv_header_stdlib_h" = x""yes; then :
12394 if test "x$ac_cv_header_stdlib_h" = xyes; then :
1154012395 cat >>confdefs.h <<_ACEOF
1154112396 #define HAVE_STDLIB_H 1
1154212397 _ACEOF
1154712402
1154812403 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
1154912404 $as_echo_n "checking for GNU libc compatible malloc... " >&6; }
11550 if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then :
12405 if ${ac_cv_func_malloc_0_nonnull+:} false; then :
1155112406 $as_echo_n "(cached) " >&6
1155212407 else
1155312408 if test "$cross_compiling" = yes; then :
1160312458 for ac_header in stdlib.h
1160412459 do :
1160512460 ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
11606 if test "x$ac_cv_header_stdlib_h" = x""yes; then :
12461 if test "x$ac_cv_header_stdlib_h" = xyes; then :
1160712462 cat >>confdefs.h <<_ACEOF
1160812463 #define HAVE_STDLIB_H 1
1160912464 _ACEOF
1161412469
1161512470 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible realloc" >&5
1161612471 $as_echo_n "checking for GNU libc compatible realloc... " >&6; }
11617 if test "${ac_cv_func_realloc_0_nonnull+set}" = set; then :
12472 if ${ac_cv_func_realloc_0_nonnull+:} false; then :
1161812473 $as_echo_n "(cached) " >&6
1161912474 else
1162012475 if test "$cross_compiling" = yes; then :
1167012525 for ac_func in strftime
1167112526 do :
1167212527 ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime"
11673 if test "x$ac_cv_func_strftime" = x""yes; then :
12528 if test "x$ac_cv_func_strftime" = xyes; then :
1167412529 cat >>confdefs.h <<_ACEOF
1167512530 #define HAVE_STRFTIME 1
1167612531 _ACEOF
1167912534 # strftime is in -lintl on SCO UNIX.
1168012535 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strftime in -lintl" >&5
1168112536 $as_echo_n "checking for strftime in -lintl... " >&6; }
11682 if test "${ac_cv_lib_intl_strftime+set}" = set; then :
12537 if ${ac_cv_lib_intl_strftime+:} false; then :
1168312538 $as_echo_n "(cached) " >&6
1168412539 else
1168512540 ac_check_lib_save_LIBS=$LIBS
1171312568 fi
1171412569 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_strftime" >&5
1171512570 $as_echo "$ac_cv_lib_intl_strftime" >&6; }
11716 if test "x$ac_cv_lib_intl_strftime" = x""yes; then :
12571 if test "x$ac_cv_lib_intl_strftime" = xyes; then :
1171712572 $as_echo "#define HAVE_STRFTIME 1" >>confdefs.h
1171812573
1171912574 LIBS="-lintl $LIBS"
1172512580 for ac_func in vprintf
1172612581 do :
1172712582 ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf"
11728 if test "x$ac_cv_func_vprintf" = x""yes; then :
12583 if test "x$ac_cv_func_vprintf" = xyes; then :
1172912584 cat >>confdefs.h <<_ACEOF
1173012585 #define HAVE_VPRINTF 1
1173112586 _ACEOF
1173212587
1173312588 ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt"
11734 if test "x$ac_cv_func__doprnt" = x""yes; then :
12589 if test "x$ac_cv_func__doprnt" = xyes; then :
1173512590
1173612591 $as_echo "#define HAVE_DOPRNT 1" >>confdefs.h
1173712592
1175512610
1175612611 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nanosleep" >&5
1175712612 $as_echo_n "checking for library containing nanosleep... " >&6; }
11758 if test "${ac_cv_search_nanosleep+set}" = set; then :
12613 if ${ac_cv_search_nanosleep+:} false; then :
1175912614 $as_echo_n "(cached) " >&6
1176012615 else
1176112616 ac_func_search_save_LIBS=$LIBS
1178912644 fi
1179012645 rm -f core conftest.err conftest.$ac_objext \
1179112646 conftest$ac_exeext
11792 if test "${ac_cv_search_nanosleep+set}" = set; then :
12647 if ${ac_cv_search_nanosleep+:} false; then :
1179312648 break
1179412649 fi
1179512650 done
11796 if test "${ac_cv_search_nanosleep+set}" = set; then :
12651 if ${ac_cv_search_nanosleep+:} false; then :
1179712652
1179812653 else
1179912654 ac_cv_search_nanosleep=no
1185912714 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
1186012715 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
1186112716 as_fn_error $? "cannot run test program while cross compiling
11862 See \`config.log' for more details" "$LINENO" 5 ; }
12717 See \`config.log' for more details" "$LINENO" 5; }
1186312718 else
1186412719 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
1186512720 /* end confdefs.h. */
1190212757 set dummy $ac_prog; ac_word=$2
1190312758 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
1190412759 $as_echo_n "checking for $ac_word... " >&6; }
11905 if test "${ac_cv_prog_PKG_CONFIG+set}" = set; then :
12760 if ${ac_cv_prog_PKG_CONFIG+:} false; then :
1190612761 $as_echo_n "(cached) " >&6
1190712762 else
1190812763 if test -n "$PKG_CONFIG"; then
1202012875 LIBCURL_VERSION=`$PKG_CONFIG libcurl --modversion 2>/dev/null`
1202112876 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes - $LIBCURL_VERSION" >&5
1202212877 $as_echo "yes - $LIBCURL_VERSION" >&6; }
12023 if $PKG_CONFIG libxml-2.0 --atleast-version=$LIBXML_MIN_VERSION; then
12878 if $PKG_CONFIG libcurl --atleast-version=$LIBCURLL_MIN_VERSION; then
1202412879 :
1202512880 else
12026 as_fn_error $? "curl $LIBCURL_VERSION is too old - $libcurl_min_version or newer required." "$LINENO" 5
12881 as_fn_error $? "curl $LIBCURL_VERSION is too old - $LIBCURL_MIN_VERSION or newer required." "$LINENO" 5
1202712882 fi
1202812883
1202912884 LIBS="$LIBS `$PKG_CONFIG libcurl --libs`"
1204712902 # resolve autodetecting raptor
1204812903 if test "$with_raptor" = auto; then
1204912904 if $PKG_CONFIG raptor2 --exists; then
12050 with_raptor=2
12051 elif $PKG_CONFIG raptor --exists; then
12052 with_raptor=1
12905 with_raptor=yes
1205312906 else
1205412907 with_raptor=no
1205512908 fi
1205612909 fi
1205712910
12058 # Yes is V1
12059 if test "$with_raptor" = yes; then
12060 with_raptor=1
12061 fi
12062
12063 # disable raptor if the version is too old
12911 # Check raptor version and use it if new enough
1206412912 RAPTOR_VERSION=
12065 raptor_major_version=1
12066 raptor_pkg_config_package=raptor
12067 # raptor_min_version=$raptor_min_version
12068
12069 if test "$with_raptor" = 1 -o "$with_raptor" = 2; then
12070 if test "$with_raptor" = 2; then
12071 raptor_major_version=2
12072 raptor_pkg_config_package=raptor2
12073 raptor_min_version=$raptor2_min_version
12074 fi
12075
12076 RAPTOR_VERSION=`$PKG_CONFIG $raptor_pkg_config_package --modversion 2>/dev/null`
12077
12078 if $PKG_CONFIG $raptor_pkg_config_package --atleast-version=$raptor_min_version; then
12913 if test "$with_raptor" = yes -o "$with_raptor" = 2; then
12914 RAPTOR_VERSION=`$PKG_CONFIG raptor2 --modversion 2>/dev/null`
12915
12916 if $PKG_CONFIG raptor2 --atleast-version=$raptor_min_version; then
1207912917 with_raptor=yes
1208012918 else
1208112919 with_raptor=no
12082 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Installed Raptor V$raptor_major_version $RAPTOR_VERSION is too old - need $raptor_min_version" >&5
12083 $as_echo "$as_me: WARNING: Installed Raptor V$raptor_major_version $RAPTOR_VERSION is too old - need $raptor_min_version" >&2;}
12920 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Installed Raptor $RAPTOR_VERSION is too old - need $raptor_min_version" >&5
12921 $as_echo "$as_me: WARNING: Installed Raptor $RAPTOR_VERSION is too old - need $raptor_min_version" >&2;}
1208412922 fi
1208512923 else
1208612924 with_raptor="no"
1209712935 RAPTOR_FALSE=
1209812936 fi
1209912937
12100 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use raptor" >&5
12101 $as_echo_n "checking whether to use raptor... " >&6; }
12102 if test "$with_raptor" != no; then
12103 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes - V$raptor_major_version $RAPTOR_VERSION" >&5
12104 $as_echo "yes - V$raptor_major_version $RAPTOR_VERSION" >&6; }
12105 RAPTOR_LIBS="`$PKG_CONFIG $raptor_pkg_config_package --libs`"
12106 RAPTOR_CFLAGS="`$PKG_CONFIG $raptor_pkg_config_package --cflags`"
12938 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use Raptor" >&5
12939 $as_echo_n "checking whether to use Raptor... " >&6; }
12940 if test "$with_raptor" = yes; then
12941 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes - $RAPTOR_VERSION" >&5
12942 $as_echo "yes - $RAPTOR_VERSION" >&6; }
12943 RAPTOR_LIBS="`$PKG_CONFIG raptor2 --libs`"
12944 RAPTOR_CFLAGS="`$PKG_CONFIG raptor2 --cflags`"
1210712945
1210812946 LIBS="$LIBS $RAPTOR_LIBS"
1210912947 CPPFLAGS="$CPPFLAGS $RAPTOR_CFLAGS"
1211112949 if test "X$PKG_CONFIG_REQUIRES" != X; then
1211212950 PKG_CONFIG_REQUIRES="$PKG_CONFIG_REQUIRES,"
1211312951 fi
12114 PKG_CONFIG_REQUIRES="$PKG_CONFIG_REQUIRES $raptor_pkg_config_package >= $raptor_min_version"
12952 PKG_CONFIG_REQUIRES="$PKG_CONFIG_REQUIRES raptor2 >= $raptor_min_version"
1211512953
1211612954
1211712955
1216813006 if test $offline = yes -a $capture = yes; then
1216913007 as_fn_error $? "Cannot use both offline mode and capturing web service responses" "$LINENO" 5
1217013008 fi
13009
13010
13011 # Check whether --enable-oauth was given.
13012 if test "${enable_oauth+set}" = set; then :
13013 enableval=$enable_oauth; oauth="yes"
13014 else
13015 oauth="no"
13016 fi
13017
13018 { $as_echo "$as_me:${as_lineno-$LINENO}: checking experimental OAuth code" >&5
13019 $as_echo_n "checking experimental OAuth code... " >&6; }
13020 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $oauth" >&5
13021 $as_echo "$oauth" >&6; };
13022 if test $oauth = yes; then
13023
13024 $as_echo "#define FLICKCURL_OAUTH 1" >>confdefs.h
13025
13026 fi
13027 if test $oauth = yes; then
13028 FLICKCURL_OAUTH_TRUE=
13029 FLICKCURL_OAUTH_FALSE='#'
13030 else
13031 FLICKCURL_OAUTH_TRUE='#'
13032 FLICKCURL_OAUTH_FALSE=
13033 fi
13034
1217113035
1217213036
1217313037
1226513129
1226613130
1226713131
13132
1226813133 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
1226913134 if test -n "$ac_tool_prefix"; then
1227013135 # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
1227113136 set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
1227213137 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
1227313138 $as_echo_n "checking for $ac_word... " >&6; }
12274 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
13139 if ${ac_cv_path_PKG_CONFIG+:} false; then :
1227513140 $as_echo_n "(cached) " >&6
1227613141 else
1227713142 case $PKG_CONFIG in
1231413179 set dummy pkg-config; ac_word=$2
1231513180 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
1231613181 $as_echo_n "checking for $ac_word... " >&6; }
12317 if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
13182 if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
1231813183 $as_echo_n "(cached) " >&6
1231913184 else
1232013185 case $ac_pt_PKG_CONFIG in
1238013245 fi
1238113246
1238213247
13248
1238313249 # Extract the first word of "gtkdoc-check", so it can be a program name with args.
1238413250 set dummy gtkdoc-check; ac_word=$2
1238513251 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
1238613252 $as_echo_n "checking for $ac_word... " >&6; }
12387 if test "${ac_cv_path_GTKDOC_CHECK+set}" = set; then :
13253 if ${ac_cv_path_GTKDOC_CHECK+:} false; then :
1238813254 $as_echo_n "(cached) " >&6
1238913255 else
1239013256 case $GTKDOC_CHECK in
1242613292 set dummy $ac_prog; ac_word=$2
1242713293 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
1242813294 $as_echo_n "checking for $ac_word... " >&6; }
12429 if test "${ac_cv_path_GTKDOC_REBASE+set}" = set; then :
13295 if ${ac_cv_path_GTKDOC_REBASE+:} false; then :
1243013296 $as_echo_n "(cached) " >&6
1243113297 else
1243213298 case $GTKDOC_REBASE in
1247013336 set dummy gtkdoc-mkpdf; ac_word=$2
1247113337 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
1247213338 $as_echo_n "checking for $ac_word... " >&6; }
12473 if test "${ac_cv_path_GTKDOC_MKPDF+set}" = set; then :
13339 if ${ac_cv_path_GTKDOC_MKPDF+:} false; then :
1247413340 $as_echo_n "(cached) " >&6
1247513341 else
1247613342 case $GTKDOC_MKPDF in
1253713403 else
1253813404 as_fn_error $? "You need to have gtk-doc >= 1.3 installed to build $PACKAGE_NAME" "$LINENO" 5
1253913405 fi
13406 if test "x$PACKAGE_NAME" != "xglib"; then
13407
13408 pkg_failed=no
13409 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKDOC_DEPS" >&5
13410 $as_echo_n "checking for GTKDOC_DEPS... " >&6; }
13411
13412 if test -n "$GTKDOC_DEPS_CFLAGS"; then
13413 pkg_cv_GTKDOC_DEPS_CFLAGS="$GTKDOC_DEPS_CFLAGS"
13414 elif test -n "$PKG_CONFIG"; then
13415 if test -n "$PKG_CONFIG" && \
13416 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0\""; } >&5
13417 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0") 2>&5
13418 ac_status=$?
13419 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
13420 test $ac_status = 0; }; then
13421 pkg_cv_GTKDOC_DEPS_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>/dev/null`
13422 test "x$?" != "x0" && pkg_failed=yes
13423 else
13424 pkg_failed=yes
13425 fi
13426 else
13427 pkg_failed=untried
13428 fi
13429 if test -n "$GTKDOC_DEPS_LIBS"; then
13430 pkg_cv_GTKDOC_DEPS_LIBS="$GTKDOC_DEPS_LIBS"
13431 elif test -n "$PKG_CONFIG"; then
13432 if test -n "$PKG_CONFIG" && \
13433 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0\""; } >&5
13434 ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0") 2>&5
13435 ac_status=$?
13436 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
13437 test $ac_status = 0; }; then
13438 pkg_cv_GTKDOC_DEPS_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>/dev/null`
13439 test "x$?" != "x0" && pkg_failed=yes
13440 else
13441 pkg_failed=yes
13442 fi
13443 else
13444 pkg_failed=untried
13445 fi
13446
13447
13448
13449 if test $pkg_failed = yes; then
13450 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13451 $as_echo "no" >&6; }
13452
13453 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
13454 _pkg_short_errors_supported=yes
13455 else
13456 _pkg_short_errors_supported=no
13457 fi
13458 if test $_pkg_short_errors_supported = yes; then
13459 GTKDOC_DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>&1`
13460 else
13461 GTKDOC_DEPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>&1`
13462 fi
13463 # Put the nasty error message in config.log where it belongs
13464 echo "$GTKDOC_DEPS_PKG_ERRORS" >&5
13465
13466 as_fn_error $? "Package requirements (glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0) were not met:
13467
13468 $GTKDOC_DEPS_PKG_ERRORS
13469
13470 Consider adjusting the PKG_CONFIG_PATH environment variable if you
13471 installed software in a non-standard prefix.
13472
13473 Alternatively, you may set the environment variables GTKDOC_DEPS_CFLAGS
13474 and GTKDOC_DEPS_LIBS to avoid the need to call pkg-config.
13475 See the pkg-config man page for more details." "$LINENO" 5
13476 elif test $pkg_failed = untried; then
13477 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13478 $as_echo "no" >&6; }
13479 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
13480 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
13481 as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
13482 is in your PATH or set the PKG_CONFIG environment variable to the full
13483 path to pkg-config.
13484
13485 Alternatively, you may set the environment variables GTKDOC_DEPS_CFLAGS
13486 and GTKDOC_DEPS_LIBS to avoid the need to call pkg-config.
13487 See the pkg-config man page for more details.
13488
13489 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
13490 See \`config.log' for more details" "$LINENO" 5; }
13491 else
13492 GTKDOC_DEPS_CFLAGS=$pkg_cv_GTKDOC_DEPS_CFLAGS
13493 GTKDOC_DEPS_LIBS=$pkg_cv_GTKDOC_DEPS_LIBS
13494 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
13495 $as_echo "yes" >&6; }
13496
13497 fi
13498 fi
1254013499 fi
1254113500
1254213501 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5
1267013629 :end' >>confcache
1267113630 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
1267213631 if test -w "$cache_file"; then
12673 test "x$cache_file" != "x/dev/null" &&
13632 if test "x$cache_file" != "x/dev/null"; then
1267413633 { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
1267513634 $as_echo "$as_me: updating cache $cache_file" >&6;}
12676 cat confcache >$cache_file
13635 if test ! -f "$cache_file" || test -h "$cache_file"; then
13636 cat confcache >"$cache_file"
13637 else
13638 case $cache_file in #(
13639 */* | ?:*)
13640 mv -f confcache "$cache_file"$$ &&
13641 mv -f "$cache_file"$$ "$cache_file" ;; #(
13642 *)
13643 mv -f confcache "$cache_file" ;;
13644 esac
13645 fi
13646 fi
1267713647 else
1267813648 { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
1267913649 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
1273713707 as_fn_error $? "conditional \"OFFLINE\" was never defined.
1273813708 Usually this means the macro was only invoked conditionally." "$LINENO" 5
1273913709 fi
13710 if test -z "${FLICKCURL_OAUTH_TRUE}" && test -z "${FLICKCURL_OAUTH_FALSE}"; then
13711 as_fn_error $? "conditional \"FLICKCURL_OAUTH\" was never defined.
13712 Usually this means the macro was only invoked conditionally." "$LINENO" 5
13713 fi
1274013714 if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then
1274113715 as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined.
1274213716 Usually this means the macro was only invoked conditionally." "$LINENO" 5
1275813732 Usually this means the macro was only invoked conditionally." "$LINENO" 5
1275913733 fi
1276013734
12761 : ${CONFIG_STATUS=./config.status}
13735 : "${CONFIG_STATUS=./config.status}"
1276213736 ac_write_fail=0
1276313737 ac_clean_files_save=$ac_clean_files
1276413738 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
1285913833 IFS=" "" $as_nl"
1286013834
1286113835 # Find who we are. Look in the path if we contain no directory separator.
13836 as_myself=
1286213837 case $0 in #((
1286313838 *[\\/]* ) as_myself=$0 ;;
1286413839 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1316514140 # report actual input values of CONFIG_FILES etc. instead of their
1316614141 # values after options handling.
1316714142 ac_log="
13168 This file was extended by Flickcurl $as_me 1.21, which was
13169 generated by GNU Autoconf 2.67. Invocation command line was
14143 This file was extended by Flickcurl $as_me 1.22, which was
14144 generated by GNU Autoconf 2.68. Invocation command line was
1317014145
1317114146 CONFIG_FILES = $CONFIG_FILES
1317214147 CONFIG_HEADERS = $CONFIG_HEADERS
1323114206 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
1323214207 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
1323314208 ac_cs_version="\\
13234 Flickcurl config.status 1.21
13235 configured by $0, generated by GNU Autoconf 2.67,
14209 Flickcurl config.status 1.22
14210 configured by $0, generated by GNU Autoconf 2.68,
1323614211 with options \\"\$ac_cs_config\\"
1323714212
1323814213 Copyright (C) 2010 Free Software Foundation, Inc.
1336014335 sed_quote_subst='$sed_quote_subst'
1336114336 double_quote_subst='$double_quote_subst'
1336214337 delay_variable_subst='$delay_variable_subst'
13363 macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`'
13364 macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`'
13365 enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`'
13366 enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`'
13367 pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`'
13368 enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`'
13369 host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`'
13370 host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`'
13371 host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`'
13372 build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`'
13373 build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`'
13374 build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`'
13375 SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`'
13376 Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`'
13377 GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`'
13378 EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`'
13379 FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`'
13380 LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`'
13381 NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`'
13382 LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`'
13383 max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`'
13384 ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`'
13385 exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`'
13386 lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`'
13387 lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`'
13388 lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`'
13389 reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`'
13390 reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`'
13391 OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`'
13392 deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`'
13393 file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`'
13394 AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`'
13395 AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`'
13396 STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`'
13397 RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`'
13398 old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
13399 old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
13400 old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
13401 CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`'
13402 CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`'
13403 compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`'
13404 GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`'
13405 lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`'
13406 lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`'
13407 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"`'
13408 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"`'
13409 objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`'
13410 SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`'
13411 ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`'
13412 MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`'
13413 lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`'
13414 lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`'
13415 lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`'
13416 lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`'
13417 lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`'
13418 need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`'
13419 DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`'
13420 NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`'
13421 LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`'
13422 OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`'
13423 OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`'
13424 libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`'
13425 shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`'
13426 extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
13427 archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`'
13428 enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`'
13429 export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
13430 whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
13431 compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`'
13432 old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`'
13433 old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
13434 archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
13435 archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
13436 module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`'
13437 module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
13438 with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`'
13439 allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
13440 no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
13441 hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
13442 hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`'
13443 hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`'
13444 hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`'
13445 hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`'
13446 hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`'
13447 hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
13448 hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`'
13449 inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`'
13450 link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`'
13451 fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`'
13452 always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`'
13453 export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`'
13454 exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
13455 include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
13456 prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`'
13457 file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`'
13458 variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`'
13459 need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
13460 need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`'
13461 version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`'
13462 runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`'
13463 shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
13464 shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`'
13465 libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`'
13466 library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`'
13467 soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`'
13468 postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
13469 postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
13470 finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`'
13471 finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`'
13472 hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`'
13473 sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
13474 sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
13475 hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`'
13476 enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`'
13477 enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`'
13478 enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`'
13479 old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`'
13480 striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`'
14338 macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
14339 macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
14340 enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
14341 enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
14342 pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
14343 enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
14344 SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
14345 ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
14346 PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
14347 host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
14348 host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
14349 host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
14350 build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
14351 build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
14352 build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
14353 SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
14354 Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
14355 GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
14356 EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
14357 FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
14358 LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
14359 NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
14360 LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
14361 max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
14362 ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
14363 exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
14364 lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
14365 lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
14366 lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
14367 lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
14368 lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
14369 reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
14370 reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
14371 OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
14372 deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
14373 file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
14374 file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
14375 want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
14376 DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
14377 sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
14378 AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
14379 AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
14380 archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
14381 STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
14382 RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
14383 old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
14384 old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
14385 old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
14386 lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
14387 CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
14388 CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
14389 compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
14390 GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
14391 lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
14392 lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
14393 lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
14394 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"`'
14395 nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
14396 lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
14397 objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
14398 MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
14399 lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
14400 lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
14401 lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
14402 lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
14403 lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
14404 need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
14405 MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
14406 DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
14407 NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
14408 LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
14409 OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
14410 OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
14411 libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
14412 shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
14413 extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
14414 archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
14415 enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
14416 export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
14417 whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
14418 compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
14419 old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
14420 old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
14421 archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
14422 archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
14423 module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
14424 module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
14425 with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
14426 allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
14427 no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
14428 hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
14429 hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
14430 hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
14431 hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
14432 hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
14433 hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
14434 hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
14435 inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
14436 link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
14437 always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
14438 export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
14439 exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
14440 include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
14441 prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
14442 postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
14443 file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
14444 variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
14445 need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
14446 need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
14447 version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
14448 runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
14449 shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
14450 shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
14451 libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
14452 library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
14453 soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
14454 install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
14455 postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
14456 postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
14457 finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
14458 finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
14459 hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
14460 sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
14461 sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
14462 hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
14463 enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
14464 enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
14465 enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
14466 old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
14467 striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
1348114468
1348214469 LTCC='$LTCC'
1348314470 LTCFLAGS='$LTCFLAGS'
1348414471 compiler='$compiler_DEFAULT'
1348514472
14473 # A function that is used when there is no print builtin or printf.
14474 func_fallback_echo ()
14475 {
14476 eval 'cat <<_LTECHO_EOF
14477 \$1
14478 _LTECHO_EOF'
14479 }
14480
1348614481 # Quote evaled strings.
13487 for var in SED \
14482 for var in SHELL \
14483 ECHO \
14484 PATH_SEPARATOR \
14485 SED \
1348814486 GREP \
1348914487 EGREP \
1349014488 FGREP \
1349714495 OBJDUMP \
1349814496 deplibs_check_method \
1349914497 file_magic_cmd \
14498 file_magic_glob \
14499 want_nocaseglob \
14500 DLLTOOL \
14501 sharedlib_from_linklib_cmd \
1350014502 AR \
1350114503 AR_FLAGS \
14504 archiver_list_spec \
1350214505 STRIP \
1350314506 RANLIB \
1350414507 CC \
1350814511 lt_cv_sys_global_symbol_to_cdecl \
1350914512 lt_cv_sys_global_symbol_to_c_name_address \
1351014513 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
13511 SHELL \
13512 ECHO \
14514 nm_file_list_spec \
1351314515 lt_prog_compiler_no_builtin_flag \
14516 lt_prog_compiler_pic \
1351414517 lt_prog_compiler_wl \
13515 lt_prog_compiler_pic \
1351614518 lt_prog_compiler_static \
1351714519 lt_cv_prog_compiler_c_o \
1351814520 need_locks \
14521 MANIFEST_TOOL \
1351914522 DSYMUTIL \
1352014523 NMEDIT \
1352114524 LIPO \
1352914532 allow_undefined_flag \
1353014533 no_undefined_flag \
1353114534 hardcode_libdir_flag_spec \
13532 hardcode_libdir_flag_spec_ld \
1353314535 hardcode_libdir_separator \
13534 fix_srcfile_path \
1353514536 exclude_expsyms \
1353614537 include_expsyms \
1353714538 file_list_spec \
1353914540 libname_spec \
1354014541 library_names_spec \
1354114542 soname_spec \
14543 install_override_mode \
1354214544 finish_eval \
1354314545 old_striplib \
1354414546 striplib; do
13545 case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
14547 case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
1354614548 *[\\\\\\\`\\"\\\$]*)
13547 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
14549 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
1354814550 ;;
1354914551 *)
1355014552 eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
1356614568 module_expsym_cmds \
1356714569 export_symbols_cmds \
1356814570 prelink_cmds \
14571 postlink_cmds \
1356914572 postinstall_cmds \
1357014573 postuninstall_cmds \
1357114574 finish_cmds \
1357214575 sys_lib_search_path_spec \
1357314576 sys_lib_dlsearch_path_spec; do
13574 case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
14577 case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
1357514578 *[\\\\\\\`\\"\\\$]*)
13576 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
14579 eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
1357714580 ;;
1357814581 *)
1357914582 eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
1358014583 ;;
1358114584 esac
1358214585 done
13583
13584 # Fix-up fallback echo if it was mangled by the above quoting rules.
13585 case \$lt_ECHO in
13586 *'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\`
13587 ;;
13588 esac
1358914586
1359014587 ac_aux_dir='$ac_aux_dir'
1359114588 xsi_shell='$xsi_shell'
1362914626 "flickcurl-config") CONFIG_FILES="$CONFIG_FILES flickcurl-config" ;;
1363014627 "flickcurl.spec") CONFIG_FILES="$CONFIG_FILES flickcurl.spec" ;;
1363114628
13632 *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
14629 *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
1363314630 esac
1363414631 done
1363514632
1365214649 # after its creation but before its name has been assigned to `$tmp'.
1365314650 $debug ||
1365414651 {
13655 tmp=
14652 tmp= ac_tmp=
1365614653 trap 'exit_status=$?
13657 { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
14654 : "${ac_tmp:=$tmp}"
14655 { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
1365814656 ' 0
1365914657 trap 'as_fn_exit 1' 1 2 13 15
1366014658 }
1366214660
1366314661 {
1366414662 tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
13665 test -n "$tmp" && test -d "$tmp"
14663 test -d "$tmp"
1366614664 } ||
1366714665 {
1366814666 tmp=./conf$$-$RANDOM
1366914667 (umask 077 && mkdir "$tmp")
1367014668 } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
14669 ac_tmp=$tmp
1367114670
1367214671 # Set up the scripts for CONFIG_FILES section.
1367314672 # No need to generate them if there are no CONFIG_FILES.
1368914688 ac_cs_awk_cr=$ac_cr
1369014689 fi
1369114690
13692 echo 'BEGIN {' >"$tmp/subs1.awk" &&
14691 echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
1369314692 _ACEOF
1369414693
1369514694
1371714716 rm -f conf$$subs.sh
1371814717
1371914718 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
13720 cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
14719 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
1372114720 _ACEOF
1372214721 sed -n '
1372314722 h
1376514764 rm -f conf$$subs.awk
1376614765 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
1376714766 _ACAWK
13768 cat >>"\$tmp/subs1.awk" <<_ACAWK &&
14767 cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
1376914768 for (key in S) S_is_set[key] = 1
1377014769 FS = ""
1377114770
1379714796 sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
1379814797 else
1379914798 cat
13800 fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
14799 fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
1380114800 || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
1380214801 _ACEOF
1380314802
1383114830 # No need to generate them if there are no CONFIG_HEADERS.
1383214831 # This happens for instance with `./config.status Makefile'.
1383314832 if test -n "$CONFIG_HEADERS"; then
13834 cat >"$tmp/defines.awk" <<\_ACAWK ||
14833 cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
1383514834 BEGIN {
1383614835 _ACEOF
1383714836
1384314842 # handling of long lines.
1384414843 ac_delim='%!_!# '
1384514844 for ac_last_try in false false :; do
13846 ac_t=`sed -n "/$ac_delim/p" confdefs.h`
13847 if test -z "$ac_t"; then
14845 ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
14846 if test -z "$ac_tt"; then
1384814847 break
1384914848 elif $ac_last_try; then
1385014849 as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
1394514944 esac
1394614945 case $ac_mode$ac_tag in
1394714946 :[FHL]*:*);;
13948 :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
14947 :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
1394914948 :[FH]-) ac_tag=-:-;;
1395014949 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
1395114950 esac
1396414963 for ac_f
1396514964 do
1396614965 case $ac_f in
13967 -) ac_f="$tmp/stdin";;
14966 -) ac_f="$ac_tmp/stdin";;
1396814967 *) # Look for the file first in the build tree, then in the source tree
1396914968 # (if the path is not absolute). The absolute path cannot be DOS-style,
1397014969 # because $ac_f cannot contain `:'.
1397314972 [\\/$]*) false;;
1397414973 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
1397514974 esac ||
13976 as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
14975 as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
1397714976 esac
1397814977 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
1397914978 as_fn_append ac_file_inputs " '$ac_f'"
1399914998 esac
1400014999
1400115000 case $ac_tag in
14002 *:-:* | *:-) cat >"$tmp/stdin" \
14003 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
15001 *:-:* | *:-) cat >"$ac_tmp/stdin" \
15002 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
1400415003 esac
1400515004 ;;
1400615005 esac
1413615135 s&@MKDIR_P@&$ac_MKDIR_P&;t t
1413715136 $ac_datarootdir_hack
1413815137 "
14139 eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
14140 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
15138 eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
15139 >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
1414115140
1414215141 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
14143 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
14144 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
15142 { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
15143 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
15144 "$ac_tmp/out"`; test -z "$ac_out"; } &&
1414515145 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
1414615146 which seems to be undefined. Please make sure it is defined" >&5
1414715147 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
1414815148 which seems to be undefined. Please make sure it is defined" >&2;}
1414915149
14150 rm -f "$tmp/stdin"
15150 rm -f "$ac_tmp/stdin"
1415115151 case $ac_file in
14152 -) cat "$tmp/out" && rm -f "$tmp/out";;
14153 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
15152 -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
15153 *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
1415415154 esac \
1415515155 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
1415615156 ;;
1416115161 if test x"$ac_file" != x-; then
1416215162 {
1416315163 $as_echo "/* $configure_input */" \
14164 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
14165 } >"$tmp/config.h" \
15164 && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
15165 } >"$ac_tmp/config.h" \
1416615166 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
14167 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
15167 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
1416815168 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
1416915169 $as_echo "$as_me: $ac_file is unchanged" >&6;}
1417015170 else
1417115171 rm -f "$ac_file"
14172 mv "$tmp/config.h" "$ac_file" \
15172 mv "$ac_tmp/config.h" "$ac_file" \
1417315173 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
1417415174 fi
1417515175 else
1417615176 $as_echo "/* $configure_input */" \
14177 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
15177 && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
1417815178 || as_fn_error $? "could not create -" "$LINENO" 5
1417915179 fi
1418015180 # Compute "$ac_file"'s index in $config_headers.
1433615336 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
1433715337 #
1433815338 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
14339 # 2006, 2007, 2008 Free Software Foundation, Inc.
15339 # 2006, 2007, 2008, 2009, 2010, 2011 Free Software
15340 # Foundation, Inc.
1434015341 # Written by Gordon Matzigkeit, 1996
1434115342 #
1434215343 # This file is part of GNU Libtool.
1438415385 # Whether or not to optimize for fast installation.
1438515386 fast_install=$enable_fast_install
1438615387
15388 # Shell to use when invoking shell scripts.
15389 SHELL=$lt_SHELL
15390
15391 # An echo program that protects backslashes.
15392 ECHO=$lt_ECHO
15393
15394 # The PATH separator for the build system.
15395 PATH_SEPARATOR=$lt_PATH_SEPARATOR
15396
1438715397 # The host system.
1438815398 host_alias=$host_alias
1438915399 host=$host
1443315443 # turn newlines into spaces.
1443415444 NL2SP=$lt_lt_NL2SP
1443515445
14436 # How to create reloadable object files.
14437 reload_flag=$lt_reload_flag
14438 reload_cmds=$lt_reload_cmds
15446 # convert \$build file names to \$host format.
15447 to_host_file_cmd=$lt_cv_to_host_file_cmd
15448
15449 # convert \$build files to toolchain format.
15450 to_tool_file_cmd=$lt_cv_to_tool_file_cmd
1443915451
1444015452 # An object symbol dumper.
1444115453 OBJDUMP=$lt_OBJDUMP
1444315455 # Method to check whether dependent libraries are shared objects.
1444415456 deplibs_check_method=$lt_deplibs_check_method
1444515457
14446 # Command to use when deplibs_check_method == "file_magic".
15458 # Command to use when deplibs_check_method = "file_magic".
1444715459 file_magic_cmd=$lt_file_magic_cmd
15460
15461 # How to find potential files when deplibs_check_method = "file_magic".
15462 file_magic_glob=$lt_file_magic_glob
15463
15464 # Find potential files using nocaseglob when deplibs_check_method = "file_magic".
15465 want_nocaseglob=$lt_want_nocaseglob
15466
15467 # DLL creation program.
15468 DLLTOOL=$lt_DLLTOOL
15469
15470 # Command to associate shared and link libraries.
15471 sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
1444815472
1444915473 # The archiver.
1445015474 AR=$lt_AR
15475
15476 # Flags to create an archive.
1445115477 AR_FLAGS=$lt_AR_FLAGS
15478
15479 # How to feed a file listing to the archiver.
15480 archiver_list_spec=$lt_archiver_list_spec
1445215481
1445315482 # A symbol stripping program.
1445415483 STRIP=$lt_STRIP
1445815487 old_postinstall_cmds=$lt_old_postinstall_cmds
1445915488 old_postuninstall_cmds=$lt_old_postuninstall_cmds
1446015489
15490 # Whether to use a lock for old archive extraction.
15491 lock_old_archive_extraction=$lock_old_archive_extraction
15492
1446115493 # A C compiler.
1446215494 LTCC=$lt_CC
1446315495
1447615508 # Transform the output of nm in a C name address pair when lib prefix is needed.
1447715509 global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
1447815510
15511 # Specify filename containing input files for \$NM.
15512 nm_file_list_spec=$lt_nm_file_list_spec
15513
15514 # The root where to search for dependent libraries,and in which our libraries should be installed.
15515 lt_sysroot=$lt_sysroot
15516
1447915517 # The name of the directory that contains temporary libtool files.
1448015518 objdir=$objdir
1448115519
14482 # Shell to use when invoking shell scripts.
14483 SHELL=$lt_SHELL
14484
14485 # An echo program that does not interpret backslashes.
14486 ECHO=$lt_ECHO
14487
1448815520 # Used to examine libraries when file_magic_cmd begins with "file".
1448915521 MAGIC_CMD=$MAGIC_CMD
1449015522
1449115523 # Must we lock files when doing compilation?
1449215524 need_locks=$lt_need_locks
15525
15526 # Manifest tool.
15527 MANIFEST_TOOL=$lt_MANIFEST_TOOL
1449315528
1449415529 # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
1449515530 DSYMUTIL=$lt_DSYMUTIL
1454715582 # The coded name of the library, if different from the real name.
1454815583 soname_spec=$lt_soname_spec
1454915584
15585 # Permission mode override for installation of shared libraries.
15586 install_override_mode=$lt_install_override_mode
15587
1455015588 # Command to use after installation of a shared archive.
1455115589 postinstall_cmds=$lt_postinstall_cmds
1455215590
1458615624 # The linker used to build libraries.
1458715625 LD=$lt_LD
1458815626
15627 # How to create reloadable object files.
15628 reload_flag=$lt_reload_flag
15629 reload_cmds=$lt_reload_cmds
15630
1458915631 # Commands used to build an old-style archive.
1459015632 old_archive_cmds=$lt_old_archive_cmds
1459115633
1459815640 # Compiler flag to turn off builtin functions.
1459915641 no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
1460015642
15643 # Additional compiler flags for building library objects.
15644 pic_flag=$lt_lt_prog_compiler_pic
15645
1460115646 # How to pass a linker flag through the compiler.
1460215647 wl=$lt_lt_prog_compiler_wl
14603
14604 # Additional compiler flags for building library objects.
14605 pic_flag=$lt_lt_prog_compiler_pic
1460615648
1460715649 # Compiler flag to prevent dynamic linking.
1460815650 link_static_flag=$lt_lt_prog_compiler_static
1465215694 # Flag to hardcode \$libdir into a binary during linking.
1465315695 # This must work even if \$libdir does not exist
1465415696 hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
14655
14656 # If ld is used when linking, flag to hardcode \$libdir into a binary
14657 # during linking. This must work even if \$libdir does not exist.
14658 hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
1465915697
1466015698 # Whether we need a single "-rpath" flag with a separated argument.
1466115699 hardcode_libdir_separator=$lt_hardcode_libdir_separator
1469015728 # Whether libtool must link a program against all its dependency libraries.
1469115729 link_all_deplibs=$link_all_deplibs
1469215730
14693 # Fix the shell variable \$srcfile for the compiler.
14694 fix_srcfile_path=$lt_fix_srcfile_path
14695
1469615731 # Set to "yes" if exported symbols are required.
1469715732 always_export_symbols=$always_export_symbols
1469815733
1470715742
1470815743 # Commands necessary for linking programs (against libraries) with templates.
1470915744 prelink_cmds=$lt_prelink_cmds
15745
15746 # Commands necessary for finishing linking programs.
15747 postlink_cmds=$lt_postlink_cmds
1471015748
1471115749 # Specify filename containing input files.
1471215750 file_list_spec=$lt_file_list_spec
1474015778 # if finds mixed CR/LF and LF-only lines. Since sed operates in
1474115779 # text mode, it properly converts lines to CR/LF. This bash problem
1474215780 # is reportedly fixed, but why not run on old versions too?
14743 sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
14744 || (rm -f "$cfgfile"; exit 1)
14745
14746 case $xsi_shell in
14747 yes)
14748 cat << \_LT_EOF >> "$cfgfile"
14749
14750 # func_dirname file append nondir_replacement
14751 # Compute the dirname of FILE. If nonempty, add APPEND to the result,
14752 # otherwise set result to NONDIR_REPLACEMENT.
14753 func_dirname ()
14754 {
14755 case ${1} in
14756 */*) func_dirname_result="${1%/*}${2}" ;;
14757 * ) func_dirname_result="${3}" ;;
14758 esac
14759 }
14760
14761 # func_basename file
14762 func_basename ()
14763 {
14764 func_basename_result="${1##*/}"
14765 }
14766
14767 # func_dirname_and_basename file append nondir_replacement
14768 # perform func_basename and func_dirname in a single function
14769 # call:
14770 # dirname: Compute the dirname of FILE. If nonempty,
14771 # add APPEND to the result, otherwise set result
14772 # to NONDIR_REPLACEMENT.
14773 # value returned in "$func_dirname_result"
14774 # basename: Compute filename of FILE.
14775 # value retuned in "$func_basename_result"
14776 # Implementation must be kept synchronized with func_dirname
14777 # and func_basename. For efficiency, we do not delegate to
14778 # those functions but instead duplicate the functionality here.
14779 func_dirname_and_basename ()
14780 {
14781 case ${1} in
14782 */*) func_dirname_result="${1%/*}${2}" ;;
14783 * ) func_dirname_result="${3}" ;;
14784 esac
14785 func_basename_result="${1##*/}"
14786 }
14787
14788 # func_stripname prefix suffix name
14789 # strip PREFIX and SUFFIX off of NAME.
14790 # PREFIX and SUFFIX must not contain globbing or regex special
14791 # characters, hashes, percent signs, but SUFFIX may contain a leading
14792 # dot (in which case that matches only a dot).
14793 func_stripname ()
14794 {
14795 # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
14796 # positional parameters, so assign one to ordinary parameter first.
14797 func_stripname_result=${3}
14798 func_stripname_result=${func_stripname_result#"${1}"}
14799 func_stripname_result=${func_stripname_result%"${2}"}
14800 }
14801
14802 # func_opt_split
14803 func_opt_split ()
14804 {
14805 func_opt_split_opt=${1%%=*}
14806 func_opt_split_arg=${1#*=}
14807 }
14808
14809 # func_lo2o object
14810 func_lo2o ()
14811 {
14812 case ${1} in
14813 *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
14814 *) func_lo2o_result=${1} ;;
14815 esac
14816 }
14817
14818 # func_xform libobj-or-source
14819 func_xform ()
14820 {
14821 func_xform_result=${1%.*}.lo
14822 }
14823
14824 # func_arith arithmetic-term...
14825 func_arith ()
14826 {
14827 func_arith_result=$(( $* ))
14828 }
14829
14830 # func_len string
14831 # STRING may not start with a hyphen.
14832 func_len ()
14833 {
14834 func_len_result=${#1}
14835 }
14836
14837 _LT_EOF
14838 ;;
14839 *) # Bourne compatible functions.
14840 cat << \_LT_EOF >> "$cfgfile"
14841
14842 # func_dirname file append nondir_replacement
14843 # Compute the dirname of FILE. If nonempty, add APPEND to the result,
14844 # otherwise set result to NONDIR_REPLACEMENT.
14845 func_dirname ()
14846 {
14847 # Extract subdirectory from the argument.
14848 func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
14849 if test "X$func_dirname_result" = "X${1}"; then
14850 func_dirname_result="${3}"
14851 else
14852 func_dirname_result="$func_dirname_result${2}"
14853 fi
14854 }
14855
14856 # func_basename file
14857 func_basename ()
14858 {
14859 func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
14860 }
14861
14862
14863 # func_stripname prefix suffix name
14864 # strip PREFIX and SUFFIX off of NAME.
14865 # PREFIX and SUFFIX must not contain globbing or regex special
14866 # characters, hashes, percent signs, but SUFFIX may contain a leading
14867 # dot (in which case that matches only a dot).
14868 # func_strip_suffix prefix name
14869 func_stripname ()
14870 {
14871 case ${2} in
14872 .*) func_stripname_result=`$ECHO "X${3}" \
14873 | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;;
14874 *) func_stripname_result=`$ECHO "X${3}" \
14875 | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;;
14876 esac
14877 }
14878
14879 # sed scripts:
14880 my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
14881 my_sed_long_arg='1s/^-[^=]*=//'
14882
14883 # func_opt_split
14884 func_opt_split ()
14885 {
14886 func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"`
14887 func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"`
14888 }
14889
14890 # func_lo2o object
14891 func_lo2o ()
14892 {
14893 func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
14894 }
14895
14896 # func_xform libobj-or-source
14897 func_xform ()
14898 {
14899 func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'`
14900 }
14901
14902 # func_arith arithmetic-term...
14903 func_arith ()
14904 {
14905 func_arith_result=`expr "$@"`
14906 }
14907
14908 # func_len string
14909 # STRING may not start with a hyphen.
14910 func_len ()
14911 {
14912 func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
14913 }
14914
14915 _LT_EOF
14916 esac
14917
14918 case $lt_shell_append in
14919 yes)
14920 cat << \_LT_EOF >> "$cfgfile"
14921
14922 # func_append var value
14923 # Append VALUE to the end of shell variable VAR.
14924 func_append ()
14925 {
14926 eval "$1+=\$2"
14927 }
14928 _LT_EOF
14929 ;;
14930 *)
14931 cat << \_LT_EOF >> "$cfgfile"
14932
14933 # func_append var value
14934 # Append VALUE to the end of shell variable VAR.
14935 func_append ()
14936 {
14937 eval "$1=\$$1\$2"
14938 }
14939
14940 _LT_EOF
14941 ;;
14942 esac
14943
14944
14945 sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
14946 || (rm -f "$cfgfile"; exit 1)
14947
14948 mv -f "$cfgfile" "$ofile" ||
15781 sed '$q' "$ltmain" >> "$cfgfile" \
15782 || (rm -f "$cfgfile"; exit 1)
15783
15784 if test x"$xsi_shell" = xyes; then
15785 sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
15786 func_dirname ()\
15787 {\
15788 \ case ${1} in\
15789 \ */*) func_dirname_result="${1%/*}${2}" ;;\
15790 \ * ) func_dirname_result="${3}" ;;\
15791 \ esac\
15792 } # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
15793 && mv -f "$cfgfile.tmp" "$cfgfile" \
15794 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
15795 test 0 -eq $? || _lt_function_replace_fail=:
15796
15797
15798 sed -e '/^func_basename ()$/,/^} # func_basename /c\
15799 func_basename ()\
15800 {\
15801 \ func_basename_result="${1##*/}"\
15802 } # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
15803 && mv -f "$cfgfile.tmp" "$cfgfile" \
15804 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
15805 test 0 -eq $? || _lt_function_replace_fail=:
15806
15807
15808 sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
15809 func_dirname_and_basename ()\
15810 {\
15811 \ case ${1} in\
15812 \ */*) func_dirname_result="${1%/*}${2}" ;;\
15813 \ * ) func_dirname_result="${3}" ;;\
15814 \ esac\
15815 \ func_basename_result="${1##*/}"\
15816 } # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
15817 && mv -f "$cfgfile.tmp" "$cfgfile" \
15818 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
15819 test 0 -eq $? || _lt_function_replace_fail=:
15820
15821
15822 sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
15823 func_stripname ()\
15824 {\
15825 \ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
15826 \ # positional parameters, so assign one to ordinary parameter first.\
15827 \ func_stripname_result=${3}\
15828 \ func_stripname_result=${func_stripname_result#"${1}"}\
15829 \ func_stripname_result=${func_stripname_result%"${2}"}\
15830 } # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
15831 && mv -f "$cfgfile.tmp" "$cfgfile" \
15832 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
15833 test 0 -eq $? || _lt_function_replace_fail=:
15834
15835
15836 sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
15837 func_split_long_opt ()\
15838 {\
15839 \ func_split_long_opt_name=${1%%=*}\
15840 \ func_split_long_opt_arg=${1#*=}\
15841 } # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
15842 && mv -f "$cfgfile.tmp" "$cfgfile" \
15843 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
15844 test 0 -eq $? || _lt_function_replace_fail=:
15845
15846
15847 sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
15848 func_split_short_opt ()\
15849 {\
15850 \ func_split_short_opt_arg=${1#??}\
15851 \ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
15852 } # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
15853 && mv -f "$cfgfile.tmp" "$cfgfile" \
15854 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
15855 test 0 -eq $? || _lt_function_replace_fail=:
15856
15857
15858 sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
15859 func_lo2o ()\
15860 {\
15861 \ case ${1} in\
15862 \ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
15863 \ *) func_lo2o_result=${1} ;;\
15864 \ esac\
15865 } # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
15866 && mv -f "$cfgfile.tmp" "$cfgfile" \
15867 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
15868 test 0 -eq $? || _lt_function_replace_fail=:
15869
15870
15871 sed -e '/^func_xform ()$/,/^} # func_xform /c\
15872 func_xform ()\
15873 {\
15874 func_xform_result=${1%.*}.lo\
15875 } # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
15876 && mv -f "$cfgfile.tmp" "$cfgfile" \
15877 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
15878 test 0 -eq $? || _lt_function_replace_fail=:
15879
15880
15881 sed -e '/^func_arith ()$/,/^} # func_arith /c\
15882 func_arith ()\
15883 {\
15884 func_arith_result=$(( $* ))\
15885 } # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
15886 && mv -f "$cfgfile.tmp" "$cfgfile" \
15887 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
15888 test 0 -eq $? || _lt_function_replace_fail=:
15889
15890
15891 sed -e '/^func_len ()$/,/^} # func_len /c\
15892 func_len ()\
15893 {\
15894 func_len_result=${#1}\
15895 } # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
15896 && mv -f "$cfgfile.tmp" "$cfgfile" \
15897 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
15898 test 0 -eq $? || _lt_function_replace_fail=:
15899
15900 fi
15901
15902 if test x"$lt_shell_append" = xyes; then
15903 sed -e '/^func_append ()$/,/^} # func_append /c\
15904 func_append ()\
15905 {\
15906 eval "${1}+=\\${2}"\
15907 } # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
15908 && mv -f "$cfgfile.tmp" "$cfgfile" \
15909 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
15910 test 0 -eq $? || _lt_function_replace_fail=:
15911
15912
15913 sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
15914 func_append_quoted ()\
15915 {\
15916 \ func_quote_for_eval "${2}"\
15917 \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
15918 } # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
15919 && mv -f "$cfgfile.tmp" "$cfgfile" \
15920 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
15921 test 0 -eq $? || _lt_function_replace_fail=:
15922
15923
15924 # Save a `func_append' function call where possible by direct use of '+='
15925 sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
15926 && mv -f "$cfgfile.tmp" "$cfgfile" \
15927 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
15928 test 0 -eq $? || _lt_function_replace_fail=:
15929 else
15930 # Save a `func_append' function call even when '+=' is not available
15931 sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
15932 && mv -f "$cfgfile.tmp" "$cfgfile" \
15933 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
15934 test 0 -eq $? || _lt_function_replace_fail=:
15935 fi
15936
15937 if test x"$_lt_function_replace_fail" = x":"; then
15938 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
15939 $as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
15940 fi
15941
15942
15943 mv -f "$cfgfile" "$ofile" ||
1494915944 (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
1495015945 chmod +x "$ofile"
1495115946
11 # Copyright (C) 2007-2011 David Beckett http://www.dajobe.org/
22
33 AC_PREREQ(2.62)
4 AC_INIT(Flickcurl, 1.21, http://bugs.librdf.org/, flickcurl)
4 AC_INIT(Flickcurl, 1.22, http://bugs.librdf.org/, flickcurl)
55 AC_CONFIG_SRCDIR([src/flickcurl.h])
66 AM_CONFIG_HEADER([src/config.h])
77 AC_CONFIG_AUX_DIR(build)
8383 # Checks for libraries.
8484
8585 libxml_min_version=2.6.8
86 raptor_min_version=1.4.16
87 raptor2_min_version=2.0.0
86 raptor_min_version=2.0.0
8887 libcurl_min_version=7.10.0
89 libcurl_min_vernum=070A00
9088
9189 # Checks for header files.
9290 AC_HEADER_STDC
93 AC_CHECK_HEADERS([errno.h getopt.h stdlib.h string.h unistd.h])
91 AC_CHECK_HEADERS([errno.h getopt.h stdlib.h stdint.h time.h string.h unistd.h])
9492 AC_HEADER_TIME
9593
9694 # Checks for typedefs, structures, and compiler characteristics.
208206
209207 LIBCURL_VERSION=`$PKG_CONFIG libcurl --modversion 2>/dev/null`
210208 AC_MSG_RESULT(yes - $LIBCURL_VERSION)
211 if $PKG_CONFIG libxml-2.0 --atleast-version=$LIBXML_MIN_VERSION; then
209 if $PKG_CONFIG libcurl --atleast-version=$LIBCURLL_MIN_VERSION; then
212210 :
213211 else
214 AC_MSG_ERROR(curl $LIBCURL_VERSION is too old - $libcurl_min_version or newer required.)
212 AC_MSG_ERROR(curl $LIBCURL_VERSION is too old - $LIBCURL_MIN_VERSION or newer required.)
215213 fi
216214
217215 LIBS="$LIBS `$PKG_CONFIG libcurl --libs`"
224222
225223
226224 dnl raptor - optional
227 AC_ARG_WITH(raptor, [ --with-raptor=2|1 Use raptor V2 or V1 to serialize (default=auto)], with_raptor="$withval", with_raptor="auto")
225 AC_ARG_WITH(raptor, [ --with-raptor=yes|no|2 Use Raptor to serialize to triples (default=auto)], with_raptor="$withval", with_raptor="auto")
228226
229227 # resolve autodetecting raptor
230228 if test "$with_raptor" = auto; then
231229 if $PKG_CONFIG raptor2 --exists; then
232 with_raptor=2
233 elif $PKG_CONFIG raptor --exists; then
234 with_raptor=1
230 with_raptor=yes
235231 else
236232 with_raptor=no
237233 fi
238234 fi
239235
240 # Yes is V1
241 if test "$with_raptor" = yes; then
242 with_raptor=1
243 fi
244
245 # disable raptor if the version is too old
236 # Check raptor version and use it if new enough
246237 RAPTOR_VERSION=
247 raptor_major_version=1
248 raptor_pkg_config_package=raptor
249 # raptor_min_version=$raptor_min_version
250
251 if test "$with_raptor" = 1 -o "$with_raptor" = 2; then
252 if test "$with_raptor" = 2; then
253 raptor_major_version=2
254 raptor_pkg_config_package=raptor2
255 raptor_min_version=$raptor2_min_version
256 fi
257
258 RAPTOR_VERSION=`$PKG_CONFIG $raptor_pkg_config_package --modversion 2>/dev/null`
259
260 if $PKG_CONFIG $raptor_pkg_config_package --atleast-version=$raptor_min_version; then
238 if test "$with_raptor" = yes -o "$with_raptor" = 2; then
239 RAPTOR_VERSION=`$PKG_CONFIG raptor2 --modversion 2>/dev/null`
240
241 if $PKG_CONFIG raptor2 --atleast-version=$raptor_min_version; then
261242 with_raptor=yes
262243 else
263244 with_raptor=no
264 AC_MSG_WARN(Installed Raptor V$raptor_major_version $RAPTOR_VERSION is too old - need $raptor_min_version)
245 AC_MSG_WARN(Installed Raptor $RAPTOR_VERSION is too old - need $raptor_min_version)
265246 fi
266247 else
267248 with_raptor="no"
271252
272253
273254 AM_CONDITIONAL(RAPTOR, test $with_raptor != no)
274 AC_MSG_CHECKING(whether to use raptor)
275 if test "$with_raptor" != no; then
276 AC_MSG_RESULT(yes - V$raptor_major_version $RAPTOR_VERSION)
277 RAPTOR_LIBS="`$PKG_CONFIG $raptor_pkg_config_package --libs`"
278 RAPTOR_CFLAGS="`$PKG_CONFIG $raptor_pkg_config_package --cflags`"
255 AC_MSG_CHECKING(whether to use Raptor)
256 if test "$with_raptor" = yes; then
257 AC_MSG_RESULT(yes - $RAPTOR_VERSION)
258 RAPTOR_LIBS="`$PKG_CONFIG raptor2 --libs`"
259 RAPTOR_CFLAGS="`$PKG_CONFIG raptor2 --cflags`"
279260
280261 LIBS="$LIBS $RAPTOR_LIBS"
281262 CPPFLAGS="$CPPFLAGS $RAPTOR_CFLAGS"
283264 if test "X$PKG_CONFIG_REQUIRES" != X; then
284265 PKG_CONFIG_REQUIRES="$PKG_CONFIG_REQUIRES,"
285266 fi
286 PKG_CONFIG_REQUIRES="$PKG_CONFIG_REQUIRES $raptor_pkg_config_package >= $raptor_min_version"
267 PKG_CONFIG_REQUIRES="$PKG_CONFIG_REQUIRES raptor2 >= $raptor_min_version"
287268 AC_SUBST(RAPTOR_LIBS)
288269 AC_SUBST(RAPTOR_CFLAGS)
289270 AC_DEFINE(HAVE_RAPTOR, 1, [have Raptor RDF syntax library])
310291 if test $offline = yes -a $capture = yes; then
311292 AC_MSG_ERROR(Cannot use both offline mode and capturing web service responses)
312293 fi
294
295
296 AC_ARG_ENABLE(oauth, [ --enable-oauth Compile experimental OAuth code (default disabled). ], oauth="yes", oauth="no")
297 AC_MSG_CHECKING(experimental OAuth code)
298 AC_MSG_RESULT($oauth);
299 if test $oauth = yes; then
300 AC_DEFINE(FLICKCURL_OAUTH, 1, [Experimental OAuth code])
301 fi
302 AM_CONDITIONAL(FLICKCURL_OAUTH, test $oauth = yes)
313303
314304
315305 dnl compiler checks
5555 content_files = \
5656 flickcurl-authenticate.xml \
5757 flickcurl-searching.xml \
58 flickcurl-extras.xml \
5859 version.xml \
5960 search-photos.c
6061
121121 CYGPATH_W = @CYGPATH_W@
122122 DEFS = @DEFS@
123123 DEPDIR = @DEPDIR@
124 DLLTOOL = @DLLTOOL@
124125 DSYMUTIL = @DSYMUTIL@
125126 DUMPBIN = @DUMPBIN@
126127 ECHO = @ECHO@
133134 FLICKCURL_VERSION_DECIMAL = @FLICKCURL_VERSION_DECIMAL@
134135 GREP = @GREP@
135136 GTKDOC_CHECK = @GTKDOC_CHECK@
137 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
138 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
136139 GTKDOC_MKPDF = @GTKDOC_MKPDF@
137140 GTKDOC_REBASE = @GTKDOC_REBASE@
138141 HTML_DIR = @HTML_DIR@
154157 LTLIBOBJS = @LTLIBOBJS@
155158 MAINT = @MAINT@
156159 MAKEINFO = @MAKEINFO@
160 MANIFEST_TOOL = @MANIFEST_TOOL@
157161 MKDIR_P = @MKDIR_P@
158162 NM = @NM@
159163 NMEDIT = @NMEDIT@
187191 abs_srcdir = @abs_srcdir@
188192 abs_top_builddir = @abs_top_builddir@
189193 abs_top_srcdir = @abs_top_srcdir@
194 ac_ct_AR = @ac_ct_AR@
190195 ac_ct_CC = @ac_ct_CC@
191196 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
192197 am__include = @am__include@
219224 libexecdir = @libexecdir@
220225 localedir = @localedir@
221226 localstatedir = @localstatedir@
222 lt_ECHO = @lt_ECHO@
223227 mandir = @mandir@
224228 mkdir_p = @mkdir_p@
225229 oldincludedir = @oldincludedir@
275279 content_files = \
276280 flickcurl-authenticate.xml \
277281 flickcurl-searching.xml \
282 flickcurl-extras.xml \
278283 version.xml \
279284 search-photos.c
280285
293298
294299 # Extra options to supply to gtkdoc-fixref
295300 FIXXREF_OPTIONS =
296 @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
297 @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
298 @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
299 @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
301 @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
302 @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
303 @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
304 @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
300305 @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN =
301306 @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute
302307
307312 #
308313 GPATH = $(srcdir)
309314 TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE)
310 EXTRA_DIST = $(content_files) $(HTML_IMAGES) $(DOC_MAIN_SGML_FILE) \
311 $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt \
312 $(man_MANS) flickcurl.1.in version.xml.in flickcurl-extras.xml
313 DOC_STAMPS = scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \
314 pdf-build.stamp \
315 $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp \
316 $(srcdir)/pdf.stamp
315 SETUP_FILES = \
316 $(content_files) \
317 $(DOC_MAIN_SGML_FILE) \
318 $(DOC_MODULE)-sections.txt \
319 $(DOC_MODULE)-overrides.txt
320
321 EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES) $(man_MANS) flickcurl.1.in \
322 version.xml.in flickcurl-extras.xml
323 DOC_STAMPS = setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \
324 html-build.stamp pdf-build.stamp \
325 tmpl.stamp sgml.stamp html.stamp pdf.stamp
317326
318327 SCANOBJ_FILES = \
319328 $(DOC_MODULE).args \
591600
592601 $(REPORT_FILES): sgml-build.stamp
593602
603 #### setup ####
604
605 setup-build.stamp:
606 -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
607 echo ' DOC Preparing build'; \
608 files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
609 if test "x$$files" != "x" ; then \
610 for file in $$files ; do \
611 test -f $(abs_srcdir)/$$file && \
612 cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \
613 done; \
614 fi; \
615 test -d $(abs_srcdir)/tmpl && \
616 { cp -rp $(abs_srcdir)/tmpl $(abs_builddir)/; \
617 chmod -R u+w $(abs_builddir)/tmpl; } \
618 fi
619 @touch setup-build.stamp
620
594621 #### scan ####
595622
596623 scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
597 @echo 'gtk-doc: Scanning header files'
598 @-chmod -R u+w $(srcdir)
599 @_source_dir='' ; for i in $(DOC_SOURCE_DIR) ; do \
624 @echo ' DOC Scanning header files'
625 @_source_dir='' ; \
626 for i in $(DOC_SOURCE_DIR) ; do \
600627 _source_dir="$${_source_dir} --source-dir=$$i" ; \
601 done ; \
602 cd $(srcdir) && \
603 gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
604 @if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \
605 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) ; \
628 done ; \
629 gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
630 @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
631 echo " DOC Introspecting gobjects"; \
632 scanobj_options=""; \
633 gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \
634 if test "$(?)" = "0"; then \
635 if test "x$(V)" = "x1"; then \
636 scanobj_options="--verbose"; \
637 fi; \
638 fi; \
639 CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \
640 gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \
606641 else \
607 cd $(srcdir) ; \
608642 for i in $(SCANOBJ_FILES) ; do \
609 test -f $$i || touch $$i ; \
643 test -f $$i || touch $$i ; \
610644 done \
611645 fi
612646 @touch scan-build.stamp
616650
617651 #### templates ####
618652
619 tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
620 @echo 'gtk-doc: Rebuilding template files'
621 @-chmod -R u+w $(srcdir)
622 @cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
653 tmpl-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
654 @echo ' DOC Rebuilding template files'
655 @gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
656 @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
657 if test -w $(abs_srcdir) ; then \
658 cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \
659 fi \
660 fi
623661 @touch tmpl-build.stamp
624662
625663 tmpl.stamp: tmpl-build.stamp
631669 #### xml ####
632670
633671 sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
634 @echo 'gtk-doc: Building XML'
672 @echo ' DOC Building XML'
635673 @-chmod -R u+w $(srcdir)
636 @_source_dir='' ; for i in $(DOC_SOURCE_DIR) ; do \
674 @_source_dir='' ; \
675 for i in $(DOC_SOURCE_DIR) ; do \
637676 _source_dir="$${_source_dir} --source-dir=$$i" ; \
638 done ; \
639 cd $(srcdir) && \
640 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)
677 done ; \
678 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)
641679 @touch sgml-build.stamp
642680
643681 sgml.stamp: sgml-build.stamp
646684 #### html ####
647685
648686 html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
649 @echo 'gtk-doc: Building HTML'
650 @-chmod -R u+w $(srcdir)
651 @rm -rf $(srcdir)/html
652 @mkdir $(srcdir)/html
687 @echo ' DOC Building HTML'
688 @rm -rf html
689 @mkdir html
653690 @mkhtml_options=""; \
691 gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \
692 if test "$(?)" = "0"; then \
693 if test "x$(V)" = "x1"; then \
694 mkhtml_options="$$mkhtml_options --verbose"; \
695 fi; \
696 fi; \
654697 gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \
655698 if test "$(?)" = "0"; then \
656 mkhtml_options=--path="$(srcdir)"; \
699 mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \
657700 fi; \
658 cd $(srcdir)/html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
659 @test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html )
660 @echo 'gtk-doc: Fixing cross-references'
661 @cd $(srcdir) && gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
701 cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
702 -@test "x$(HTML_IMAGES)" = "x" || \
703 for file in $(HTML_IMAGES) ; do \
704 if test -f $(abs_srcdir)/$$file ; then \
705 cp $(abs_srcdir)/$$file $(abs_builddir)/html; \
706 fi; \
707 if test -f $(abs_builddir)/$$file ; then \
708 cp $(abs_builddir)/$$file $(abs_builddir)/html; \
709 fi; \
710 done;
711 @echo ' DOC Fixing cross-references'
712 @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
662713 @touch html-build.stamp
663714
664715 #### pdf ####
665716
666717 pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
667 @echo 'gtk-doc: Building PDF'
668 @-chmod -R u+w $(srcdir)
669 @rm -rf $(srcdir)/$(DOC_MODULE).pdf
670 @mkpdf_imgdirs=""; \
718 @echo ' DOC Building PDF'
719 @rm -f $(DOC_MODULE).pdf
720 @mkpdf_options=""; \
721 gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \
722 if test "$(?)" = "0"; then \
723 if test "x$(V)" = "x1"; then \
724 mkpdf_options="$$mkpdf_options --verbose"; \
725 fi; \
726 fi; \
671727 if test "x$(HTML_IMAGES)" != "x"; then \
672728 for img in $(HTML_IMAGES); do \
673729 part=`dirname $$img`; \
674 echo $$mkpdf_imgdirs | grep >/dev/null "\-\-imgdir=$$part "; \
730 echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \
675731 if test $$? != 0; then \
676 mkpdf_imgdirs="$$mkpdf_imgdirs --imgdir=$$part"; \
732 mkpdf_options="$$mkpdf_options --imgdir=$$part"; \
677733 fi; \
678734 done; \
679735 fi; \
680 cd $(srcdir) && gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_imgdirs $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
736 gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
681737 @touch pdf-build.stamp
682738
683739 ##############
684740
685741 clean-local:
686 rm -f *~ *.bak
687 rm -rf .libs
742 @rm -f *~ *.bak
743 @rm -rf .libs
688744
689745 distclean-local:
690 cd $(srcdir) && \
691 rm -rf xml $(REPORT_FILES) $(DOC_MODULE).pdf \
692 $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
746 @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
747 $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
748 @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
749 rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
750 rm -rf tmpl; \
751 fi
693752
694753 maintainer-clean-local: clean
695 cd $(srcdir) && rm -rf xml html
754 @rm -rf xml html
696755
697756 install-data-local:
698 @installfiles=`echo $(srcdir)/html/*`; \
699 if test "$$installfiles" = '$(srcdir)/html/*'; \
700 then echo '-- Nothing to install' ; \
757 @installfiles=`echo $(builddir)/html/*`; \
758 if test "$$installfiles" = '$(builddir)/html/*'; \
759 then echo 1>&2 'Nothing to install' ; \
701760 else \
702761 if test -n "$(DOC_MODULE_VERSION)"; then \
703762 installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
706765 fi; \
707766 $(mkinstalldirs) $${installdir} ; \
708767 for i in $$installfiles; do \
709 echo '-- Installing '$$i ; \
768 echo ' $(INSTALL_DATA) '$$i ; \
710769 $(INSTALL_DATA) $$i $${installdir}; \
711770 done; \
712771 if test -n "$(DOC_MODULE_VERSION)"; then \
713772 mv -f $${installdir}/$(DOC_MODULE).devhelp2 \
714773 $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \
715 mv -f $${installdir}/$(DOC_MODULE).devhelp \
716 $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp; \
717774 fi; \
718775 $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \
719776 fi
735792 @ENABLE_GTK_DOC_FALSE@ @false
736793
737794 dist-hook: dist-check-gtkdoc dist-hook-local
738 mkdir $(distdir)/tmpl
739 mkdir $(distdir)/html
740 -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
741 cp $(srcdir)/html/* $(distdir)/html
742 -cp $(srcdir)/$(DOC_MODULE).pdf $(distdir)/
743 -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/
744 -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/
745 cd $(distdir) && rm -f $(DISTCLEANFILES)
746 $(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html
795 @mkdir $(distdir)/tmpl
796 @mkdir $(distdir)/html
797 @-cp ./tmpl/*.sgml $(distdir)/tmpl
798 @cp ./html/* $(distdir)/html
799 @-cp ./$(DOC_MODULE).pdf $(distdir)/
800 @-cp ./$(DOC_MODULE).types $(distdir)/
801 @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/
802 @cd $(distdir) && rm -f $(DISTCLEANFILES)
803 @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html
747804
748805 .PHONY : dist-hook-local docs
749806
4141 <year>2008</year>
4242 <year>2009</year>
4343 <year>2010</year>
44 <year>2011</year>
4445 <holder>Dave Beckett</holder>
4546 </copyright>
4647 </bookinfo>
7475 <xi:include href="xml/section-comment.xml"/>
7576 <xi:include href="xml/section-commons.xml"/>
7677 <xi:include href="xml/section-collections.xml"/>
78 <xi:include href="xml/section-config.xml"/>
7779 <xi:include href="xml/section-contact.xml"/>
7880 <xi:include href="xml/section-context.xml"/>
7981 <xi:include href="xml/section-exif.xml"/>
99 <SECTION>
1010 <FILE>section-core</FILE>
1111 flickcurl
12 flickcurl_version_string
13 flickcurl_license_string
14 flickcurl_copyright_string
15 flickcurl_short_copyright_string
16 flickcurl_home_url_string
17 flickcurl_flickr_replace_service_uri
18 flickcurl_flickr_service_uri
19 flickcurl_flickr_upload_service_uri
20 flickcurl_flickr_oauth_access_token_uri
21 flickcurl_flickr_oauth_authorize_uri
22 flickcurl_flickr_oauth_request_token_uri
1223 flickcurl_message_handler
1324 flickcurl_init
1425 flickcurl_finish
4152 </SECTION>
4253
4354 <SECTION>
55 <FILE>section-config</FILE>
56 flickcurl_config_read_ini
57 flickcurl_config_var_handler
58 flickcurl_config_write_ini
59 </SECTION>
60
61 <SECTION>
4462 <FILE>section-activity</FILE>
4563 flickcurl_activity
4664 flickcurl_activity_event
5573 flickcurl_auth_getFrob
5674 flickcurl_auth_getFullToken
5775 flickcurl_auth_getToken
76 flickcurl_auth_oauth_getAccessToken
5877 </SECTION>
5978
6079 <SECTION>
130149 <SECTION>
131150 <FILE>section-favorite</FILE>
132151 flickcurl_favorites_add
152 flickcurl_favorites_getContext
133153 flickcurl_favorites_getList
134154 flickcurl_favorites_getList_params
135155 flickcurl_favorites_getPublicList
444464 flickcurl_tag_cluster
445465 flickcurl_tag_clusters
446466 flickcurl_free_tag
467 flickcurl_free_tags
447468 flickcurl_free_tag_clusters
448469 flickcurl_tag_handler
449470 flickcurl_tags_getClusterPhotos
508529 flickcurl_license
509530 flickcurl_get_content_type_label
510531 flickcurl_get_content_type_from_string
532 flickcurl_get_hidden_label
533 flickcurl_get_hidden_from_string
511534 flickcurl_get_safety_level_label
512535 flickcurl_get_safety_level_from_string
513536 flickcurl_user_icon_uri
522545 flickcurl_shapedata_s
523546 read_ini_config
524547 set_config_var_handler
525 </SECTION>
548 mtwist_drand
549 mtwist_free
550 mtwist_init
551 mtwist_new
552 mtwist_seed_from_system
553 mtwist_u32rand
554 </SECTION>
7474 Get a list of recent uploading contacts since DATE-LAST-UPLOAD with optional FILTER
7575 .IP "\fBfavorites.add\fP \fIPHOTO-ID\fP"
7676 Adds PHOTO-ID to the current user's favorites.
77 .IP "\fBfavorites.getContext\fP \fIPHOTO-ID USER-NSID [NUM-PREV [NUM-NEXT [EXTRAS]]]\fP"
78 Get context photos around USER-ID's favorite PHOTO-ID.
7779 .IP "\fBfavorites.getList\fP \fIUSER-NSID [[PER-PAGE] [PAGE [FORMAT]]]\fP"
7880 Get a list of USER-NSID's favorite photos.
7981 .IP "\fBfavorites.getPublicList\fP \fIUSER-NSID [[PER-PAGE] [PAGE [FORMAT]]]\fP"
8385 .IP "\fBgalleries.addPhoto\fP \fIGALLERY-ID PHOTO-ID TEXT\fP"
8486 Add photo PHOTO-ID to galleries GALLERY-ID with TEXT
8587 .IP "\fBgalleries.create\fP \fITITLE [DESCRIPTION [PRIMARY-PHOTO-ID]\fP"
86 Create a new galleries with TITlE, DESCRIPTION and PRIMARY-PHOTO_ID.
88 Create a new gallery with TITLE, DESCRIPTION and PRIMARY-PHOTO_ID.
8789 .IP "\fBgalleries.editMeta\fP \fIGALLERY-ID TITLE [DESCRIPTION]\fP"
8890 Set the TITLE and/or DESCRIPTION of a GALLERY-ID.
8991 .IP "\fBgalleries.editPhoto\fP \fIGALLERY-ID PHOTO-ID COMMENT\fP"
175177 .IP "\fBpeople.getPhotosOf\fP \fIUSER-NSID [PER-PAGE [PAGE [FORMAT]]]\fP"
176178 Get public photos of a user USER-NSID
177179 .IP "\fBpeople.getPublicGroups\fP \fIUSER-NSID\fP"
178 Get list of public groups a user is amember of
180 Get list of public groups a user is a member of
179181 .IP "\fBpeople.getPublicPhotos\fP \fIUSER-NSID [PER-PAGE [PAGE [FORMAT]]]\fP"
180182 Get public photos for a user USER-NSID
181183 .IP "\fBpeople.getUploadStatus\fP \fI\fP"
487489 .IP "\fBupload\fP \fIFILE [PARAMS...]\fP"
488490 Upload a photo FILE with optional parameters PARAM or PARAM VALUE
489491 .br
490 title TITLE
491 .br
492 description DESC
493 .br
494 tags TAGS...
495 .br
496 friend
497 .br
498 public
492 title TITLE
493 .br
494 description DESC
495 .br
496 safety_level 'safe' (default) or 'moderate' or 'restricted'
497 .br
498 content_type 'photo' (default) or screenshot' or 'other'
499 .br
500 hidden 'public' (default) or 'hidden'
501 .br
502 friend
503 .br
504 public
499505 .br
500506 family
507 .br
508 tags TAGS... [must be last param]
501509 .IP "\fBurls.getGroup\fP \fIGROUP-ID\fP"
502510 Get the url of the group page for GROUP-ID.
503511 .IP "\fBurls.getUserPhotos\fP \fIUSER-NSID\fP"
4646 The exact list depends on the version of Raptor that flickcurl is linked
4747 against.
4848 .SH SEE ALSO
49 .BR /usr/share/doc/flickrdf/README.gz,
50 .BR flickcurl (1), libraptor(3).
49 .BR flickcurl(1), libraptor(3).
5150 .br
5251 .SH AUTHOR
5352 flickrdf was written by David Beckett.
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Getting Authentication Token from API Key and Secret</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="flickcurl-auth.html" title="Authenticating Flickcurl">
88 <link rel="prev" href="flickcurl-auth-register.html" title="Register application to get API Key and Shared Secret">
99 <link rel="next" href="flickcurl-auth-use.html" title="Use flickcurl">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
8080 </div>
8181 <div class="footer">
8282 <hr>
83 Generated by GTK-Doc V1.17</div>
83 Generated by GTK-Doc V1.18</div>
8484 </body>
8585 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Register application to get API Key and Shared Secret</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="flickcurl-auth.html" title="Authenticating Flickcurl">
88 <link rel="prev" href="flickcurl-auth.html" title="Authenticating Flickcurl">
99 <link rel="next" href="flickcurl-auth-authenticate.html" title="Getting Authentication Token from API Key and Secret">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
115115 </div>
116116 <div class="footer">
117117 <hr>
118 Generated by GTK-Doc V1.17</div>
118 Generated by GTK-Doc V1.18</div>
119119 </body>
120120 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Use flickcurl</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="flickcurl-auth.html" title="Authenticating Flickcurl">
88 <link rel="prev" href="flickcurl-auth-authenticate.html" title="Getting Authentication Token from API Key and Secret">
99 <link rel="next" href="flickcurl-searching.html" title="Searching for Photos with Flickcurl">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
3232 </div>
3333 <div class="footer">
3434 <hr>
35 Generated by GTK-Doc V1.17</div>
35 Generated by GTK-Doc V1.18</div>
3636 </body>
3737 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Authenticating Flickcurl</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-general.html" title="General">
99 <link rel="next" href="flickcurl-auth-register.html" title="Register application to get API Key and Shared Secret">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
6262 </div>
6363 <div class="footer">
6464 <hr>
65 Generated by GTK-Doc V1.17</div>
65 Generated by GTK-Doc V1.18</div>
6666 </body>
6767 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Photos search example</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="flickcurl-searching.html" title="Searching for Photos with Flickcurl">
88 <link rel="prev" href="flickcurl-searching-search-results.html" title="Handling a photos search result">
99 <link rel="next" href="flickcurl-section-activity.html" title="Activity">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
185185 156
186186 157
187187 158</pre></td>
188 <td class="listing_code"><pre class="programlisting"><span class="preproc">#include &lt;stdio.h&gt;</span>
189 <span class="preproc">#include &lt;string.h&gt;</span>
190 <span class="preproc">#include &lt;unistd.h&gt;</span>
191 <span class="preproc">#include &lt;errno.h&gt;</span>
192
193 <span class="preproc">#include &lt;flickcurl.h&gt;</span>
194
195 <span class="gtkdoc kwb">static const char</span><span class="symbol">*</span> program<span class="symbol">;</span>
196
197 <span class="gtkdoc kwb">static const char</span><span class="symbol">*</span>
198 <span class="function">my_basename</span><span class="symbol">(</span><span class="gtkdoc kwb">const char</span> <span class="symbol">*</span>name<span class="symbol">)</span>
199 <span class="symbol">{</span>
200 <span class="gtkdoc kwb">char</span> <span class="symbol">*</span>p<span class="symbol">;</span>
201 <span class="keyword">if</span><span class="symbol">((</span>p <span class="symbol">=</span> <span class="function">strrchr</span><span class="symbol">(</span>name<span class="symbol">,</span> <span class="string">'/'</span><span class="symbol">)))</span>
202 name <span class="symbol">=</span> p<span class="symbol">+</span><span class="number">1</span><span class="symbol">;</span>
203 <span class="keyword">else if</span><span class="symbol">((</span>p <span class="symbol">=</span> <span class="function">strrchr</span><span class="symbol">(</span>name<span class="symbol">,</span> <span class="string">'</span><span class="gtkdoc esc">\\</span><span class="string">'</span><span class="symbol">)))</span>
204 name <span class="symbol">=</span> p<span class="symbol">+</span><span class="number">1</span><span class="symbol">;</span>
205
206 <span class="keyword">return</span> name<span class="symbol">;</span>
207 <span class="symbol">}</span>
188 <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include &lt;stdio.h&gt;</span>
189 <span class="gtkdoc ppc">#include &lt;string.h&gt;</span>
190 <span class="gtkdoc ppc">#include &lt;unistd.h&gt;</span>
191 <span class="gtkdoc ppc">#include &lt;errno.h&gt;</span>
192
193 <span class="gtkdoc ppc">#include &lt;flickcurl.h&gt;</span>
194
195 <span class="gtkdoc kwb">static const char</span><span class="gtkdoc opt">*</span> program<span class="gtkdoc opt">;</span>
196
197 <span class="gtkdoc kwb">static const char</span><span class="gtkdoc opt">*</span>
198 <span class="function">my_basename</span><span class="gtkdoc opt">(</span><span class="gtkdoc kwb">const char</span> <span class="gtkdoc opt">*</span>name<span class="gtkdoc opt">)</span>
199 <span class="gtkdoc opt">{</span>
200 <span class="gtkdoc kwb">char</span> <span class="gtkdoc opt">*</span>p<span class="gtkdoc opt">;</span>
201 <span class="keyword">if</span><span class="gtkdoc opt">((</span>p <span class="gtkdoc opt">=</span> <span class="function">strrchr</span><span class="gtkdoc opt">(</span>name<span class="gtkdoc opt">,</span> <span class="string">'/'</span><span class="gtkdoc opt">)))</span>
202 name <span class="gtkdoc opt">=</span> p<span class="gtkdoc opt">+</span><span class="number">1</span><span class="gtkdoc opt">;</span>
203 <span class="keyword">else if</span><span class="gtkdoc opt">((</span>p <span class="gtkdoc opt">=</span> <span class="function">strrchr</span><span class="gtkdoc opt">(</span>name<span class="gtkdoc opt">,</span> <span class="string">'</span><span class="gtkdoc esc">\\</span><span class="string">'</span><span class="gtkdoc opt">)))</span>
204 name <span class="gtkdoc opt">=</span> p<span class="gtkdoc opt">+</span><span class="number">1</span><span class="gtkdoc opt">;</span>
205
206 <span class="keyword">return</span> name<span class="gtkdoc opt">;</span>
207 <span class="gtkdoc opt">}</span>
208208
209209
210210 <span class="gtkdoc kwb">static void</span>
211 <span class="function">my_message_handler</span><span class="symbol">(</span><span class="gtkdoc kwb">void</span> <span class="symbol">*</span>user_data<span class="symbol">,</span> <span class="gtkdoc kwb">const char</span> <span class="symbol">*</span>message<span class="symbol">)</span>
212 <span class="symbol">{</span>
213 <span class="function">fprintf</span><span class="symbol">(</span>stderr<span class="symbol">,</span> <span class="string">&quot;%s: ERROR: %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="symbol">,</span> program<span class="symbol">,</span> message<span class="symbol">);</span>
214 <span class="symbol">}</span>
211 <span class="function">my_message_handler</span><span class="gtkdoc opt">(</span><span class="gtkdoc kwb">void</span> <span class="gtkdoc opt">*</span>user_data<span class="gtkdoc opt">,</span> <span class="gtkdoc kwb">const char</span> <span class="gtkdoc opt">*</span>message<span class="gtkdoc opt">)</span>
212 <span class="gtkdoc opt">{</span>
213 <span class="function">fprintf</span><span class="gtkdoc opt">(</span>stderr<span class="gtkdoc opt">,</span> <span class="string">&quot;%s: ERROR: %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> program<span class="gtkdoc opt">,</span> message<span class="gtkdoc opt">);</span>
214 <span class="gtkdoc opt">}</span>
215215
216216
217217 <span class="gtkdoc kwb">static void</span>
218 <span class="function">my_set_config_var_handler</span><span class="symbol">(</span><span class="gtkdoc kwb">void</span><span class="symbol">*</span> userdata<span class="symbol">,</span> <span class="gtkdoc kwb">const char</span><span class="symbol">*</span> key<span class="symbol">,</span> <span class="gtkdoc kwb">const char</span><span class="symbol">*</span> value<span class="symbol">)</span>
219 <span class="symbol">{</span>
220 flickcurl <span class="symbol">*</span>fc <span class="symbol">= (</span>flickcurl <span class="symbol">*)</span>userdata<span class="symbol">;</span>
221
222 <span class="keyword">if</span><span class="symbol">(!</span><span class="function">strcmp</span><span class="symbol">(</span>key<span class="symbol">,</span> <span class="string">&quot;api_key&quot;</span><span class="symbol">))</span>
223 <span class="function"><a href="flickcurl-section-core.html#flickcurl-set-api-key">flickcurl_set_api_key</a></span><span class="symbol">(</span>fc<span class="symbol">,</span> value<span class="symbol">);</span>
224 <span class="keyword">else if</span><span class="symbol">(!</span><span class="function">strcmp</span><span class="symbol">(</span>key<span class="symbol">,</span> <span class="string">&quot;secret&quot;</span><span class="symbol">))</span>
225 <span class="function"><a href="flickcurl-section-core.html#flickcurl-set-shared-secret">flickcurl_set_shared_secret</a></span><span class="symbol">(</span>fc<span class="symbol">,</span> value<span class="symbol">);</span>
226 <span class="keyword">else if</span><span class="symbol">(!</span><span class="function">strcmp</span><span class="symbol">(</span>key<span class="symbol">,</span> <span class="string">&quot;auth_token&quot;</span><span class="symbol">))</span>
227 <span class="function"><a href="flickcurl-section-core.html#flickcurl-set-auth-token">flickcurl_set_auth_token</a></span><span class="symbol">(</span>fc<span class="symbol">,</span> value<span class="symbol">);</span>
228 <span class="symbol">}</span>
229
230
231 <span class="gtkdoc kwb">static const char</span><span class="symbol">*</span> config_filename <span class="symbol">=</span> <span class="string">&quot;.flickcurl.conf&quot;</span><span class="symbol">;</span>
232 <span class="gtkdoc kwb">static const char</span><span class="symbol">*</span> config_section <span class="symbol">=</span> <span class="string">&quot;flickr&quot;</span><span class="symbol">;</span>
218 <span class="function">my_set_config_var_handler</span><span class="gtkdoc opt">(</span><span class="gtkdoc kwb">void</span><span class="gtkdoc opt">*</span> userdata<span class="gtkdoc opt">,</span> <span class="gtkdoc kwb">const char</span><span class="gtkdoc opt">*</span> key<span class="gtkdoc opt">,</span> <span class="gtkdoc kwb">const char</span><span class="gtkdoc opt">*</span> value<span class="gtkdoc opt">)</span>
219 <span class="gtkdoc opt">{</span>
220 flickcurl <span class="gtkdoc opt">*</span>fc <span class="gtkdoc opt">= (</span>flickcurl <span class="gtkdoc opt">*)</span>userdata<span class="gtkdoc opt">;</span>
221
222 <span class="keyword">if</span><span class="gtkdoc opt">(!</span><span class="function">strcmp</span><span class="gtkdoc opt">(</span>key<span class="gtkdoc opt">,</span> <span class="string">&quot;api_key&quot;</span><span class="gtkdoc opt">))</span>
223 <span class="function"><a href="flickcurl-section-core.html#flickcurl-set-api-key">flickcurl_set_api_key</a></span><span class="gtkdoc opt">(</span>fc<span class="gtkdoc opt">,</span> value<span class="gtkdoc opt">);</span>
224 <span class="keyword">else if</span><span class="gtkdoc opt">(!</span><span class="function">strcmp</span><span class="gtkdoc opt">(</span>key<span class="gtkdoc opt">,</span> <span class="string">&quot;secret&quot;</span><span class="gtkdoc opt">))</span>
225 <span class="function"><a href="flickcurl-section-core.html#flickcurl-set-shared-secret">flickcurl_set_shared_secret</a></span><span class="gtkdoc opt">(</span>fc<span class="gtkdoc opt">,</span> value<span class="gtkdoc opt">);</span>
226 <span class="keyword">else if</span><span class="gtkdoc opt">(!</span><span class="function">strcmp</span><span class="gtkdoc opt">(</span>key<span class="gtkdoc opt">,</span> <span class="string">&quot;auth_token&quot;</span><span class="gtkdoc opt">))</span>
227 <span class="function"><a href="flickcurl-section-core.html#flickcurl-set-auth-token">flickcurl_set_auth_token</a></span><span class="gtkdoc opt">(</span>fc<span class="gtkdoc opt">,</span> value<span class="gtkdoc opt">);</span>
228 <span class="gtkdoc opt">}</span>
229
230
231 <span class="gtkdoc kwb">static const char</span><span class="gtkdoc opt">*</span> config_filename <span class="gtkdoc opt">=</span> <span class="string">&quot;.flickcurl.conf&quot;</span><span class="gtkdoc opt">;</span>
232 <span class="gtkdoc kwb">static const char</span><span class="gtkdoc opt">*</span> config_section <span class="gtkdoc opt">=</span> <span class="string">&quot;flickr&quot;</span><span class="gtkdoc opt">;</span>
233233
234234
235235 <span class="gtkdoc kwb">int</span>
236 <span class="function">main</span><span class="symbol">(</span><span class="gtkdoc kwb">int</span> argc<span class="symbol">,</span> <span class="gtkdoc kwb">char</span> <span class="symbol">*</span>argv<span class="symbol">[])</span>
237 <span class="symbol">{</span>
238 flickcurl <span class="symbol">*</span>fc <span class="symbol">=</span> NULL<span class="symbol">;</span>
239 <span class="gtkdoc kwb">int</span> rc <span class="symbol">=</span> <span class="number">0</span><span class="symbol">;</span>
240 <span class="gtkdoc kwb">const char</span><span class="symbol">*</span> home<span class="symbol">;</span>
241 <span class="gtkdoc kwb">char</span> config_path<span class="symbol">[</span><span class="number">1024</span><span class="symbol">];</span>
242 <span class="gtkdoc kwb">char</span><span class="symbol">*</span> tag <span class="symbol">=</span> NULL<span class="symbol">;</span>
243 flickcurl_photos_list_params list_params<span class="symbol">;</span>
244 flickcurl_search_params params<span class="symbol">;</span>
245 flickcurl_photos_list<span class="symbol">*</span> photos_list <span class="symbol">=</span> NULL<span class="symbol">;</span>
246 <span class="gtkdoc kwb">int</span> i<span class="symbol">;</span>
247
248 program <span class="symbol">=</span> <span class="function">my_basename</span><span class="symbol">(</span>argv<span class="symbol">[</span><span class="number">0</span><span class="symbol">]);</span>
249
250 <span class="function"><a href="flickcurl-section-core.html#flickcurl-init">flickcurl_init</a></span><span class="symbol">();</span>
251
252 home <span class="symbol">=</span> <span class="function">getenv</span><span class="symbol">(</span><span class="string">&quot;HOME&quot;</span><span class="symbol">);</span>
253 <span class="keyword">if</span><span class="symbol">(</span>home<span class="symbol">)</span>
254 <span class="function">sprintf</span><span class="symbol">(</span>config_path<span class="symbol">,</span> <span class="string">&quot;%s/%s&quot;</span><span class="symbol">,</span> home<span class="symbol">,</span> config_filename<span class="symbol">);</span>
236 <span class="function">main</span><span class="gtkdoc opt">(</span><span class="gtkdoc kwb">int</span> argc<span class="gtkdoc opt">,</span> <span class="gtkdoc kwb">char</span> <span class="gtkdoc opt">*</span>argv<span class="gtkdoc opt">[])</span>
237 <span class="gtkdoc opt">{</span>
238 flickcurl <span class="gtkdoc opt">*</span>fc <span class="gtkdoc opt">=</span> NULL<span class="gtkdoc opt">;</span>
239 <span class="gtkdoc kwb">int</span> rc <span class="gtkdoc opt">=</span> <span class="number">0</span><span class="gtkdoc opt">;</span>
240 <span class="gtkdoc kwb">const char</span><span class="gtkdoc opt">*</span> home<span class="gtkdoc opt">;</span>
241 <span class="gtkdoc kwb">char</span> config_path<span class="gtkdoc opt">[</span><span class="number">1024</span><span class="gtkdoc opt">];</span>
242 <span class="gtkdoc kwb">char</span><span class="gtkdoc opt">*</span> tag <span class="gtkdoc opt">=</span> NULL<span class="gtkdoc opt">;</span>
243 flickcurl_photos_list_params list_params<span class="gtkdoc opt">;</span>
244 flickcurl_search_params params<span class="gtkdoc opt">;</span>
245 flickcurl_photos_list<span class="gtkdoc opt">*</span> photos_list <span class="gtkdoc opt">=</span> NULL<span class="gtkdoc opt">;</span>
246 <span class="gtkdoc kwb">int</span> i<span class="gtkdoc opt">;</span>
247
248 program <span class="gtkdoc opt">=</span> <span class="function">my_basename</span><span class="gtkdoc opt">(</span>argv<span class="gtkdoc opt">[</span><span class="number">0</span><span class="gtkdoc opt">]);</span>
249
250 <span class="function"><a href="flickcurl-section-core.html#flickcurl-init">flickcurl_init</a></span><span class="gtkdoc opt">();</span>
251
252 home <span class="gtkdoc opt">=</span> <span class="function">getenv</span><span class="gtkdoc opt">(</span><span class="string">&quot;HOME&quot;</span><span class="gtkdoc opt">);</span>
253 <span class="keyword">if</span><span class="gtkdoc opt">(</span>home<span class="gtkdoc opt">)</span>
254 <span class="function">sprintf</span><span class="gtkdoc opt">(</span>config_path<span class="gtkdoc opt">,</span> <span class="string">&quot;%s/%s&quot;</span><span class="gtkdoc opt">,</span> home<span class="gtkdoc opt">,</span> config_filename<span class="gtkdoc opt">);</span>
255255 <span class="keyword">else</span>
256 <span class="function">strcpy</span><span class="symbol">(</span>config_path<span class="symbol">,</span> config_filename<span class="symbol">);</span>
257
258 <span class="keyword">if</span><span class="symbol">(</span>argc <span class="symbol">!=</span> <span class="number">2</span><span class="symbol">) {</span>
259 <span class="function">fprintf</span><span class="symbol">(</span>stderr<span class="symbol">,</span> <span class="string">&quot;%s: No tag given</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span>
260 <span class="string">&quot;Try `%s -h for more information.</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="symbol">,</span> program<span class="symbol">,</span> program<span class="symbol">);</span>
261 rc <span class="symbol">=</span> <span class="number">1</span><span class="symbol">;</span>
262 <span class="keyword">goto</span> tidy<span class="symbol">;</span>
263 <span class="symbol">}</span>
264
265 <span class="keyword">if</span><span class="symbol">(!</span><span class="function">strcmp</span><span class="symbol">(</span>argv<span class="symbol">[</span><span class="number">1</span><span class="symbol">],</span> <span class="string">&quot;-h&quot;</span><span class="symbol">)) {</span>
266 <span class="function">printf</span><span class="symbol">(</span><span class="string">&quot;%s - search for my interesting photos about a tag</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span>
267 <span class="string">&quot;Usage: %s TAG</span><span class="gtkdoc esc">\n\n</span><span class="string">&quot;</span><span class="symbol">,</span> program<span class="symbol">,</span> program<span class="symbol">);</span>
256 <span class="function">strcpy</span><span class="gtkdoc opt">(</span>config_path<span class="gtkdoc opt">,</span> config_filename<span class="gtkdoc opt">);</span>
257
258 <span class="keyword">if</span><span class="gtkdoc opt">(</span>argc <span class="gtkdoc opt">!=</span> <span class="number">2</span><span class="gtkdoc opt">) {</span>
259 <span class="function">fprintf</span><span class="gtkdoc opt">(</span>stderr<span class="gtkdoc opt">,</span> <span class="string">&quot;%s: No tag given</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span>
260 <span class="string">&quot;Try `%s -h for more information.</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> program<span class="gtkdoc opt">,</span> program<span class="gtkdoc opt">);</span>
261 rc <span class="gtkdoc opt">=</span> <span class="number">1</span><span class="gtkdoc opt">;</span>
262 <span class="keyword">goto</span> tidy<span class="gtkdoc opt">;</span>
263 <span class="gtkdoc opt">}</span>
264
265 <span class="keyword">if</span><span class="gtkdoc opt">(!</span><span class="function">strcmp</span><span class="gtkdoc opt">(</span>argv<span class="gtkdoc opt">[</span><span class="number">1</span><span class="gtkdoc opt">],</span> <span class="string">&quot;-h&quot;</span><span class="gtkdoc opt">)) {</span>
266 <span class="function">printf</span><span class="gtkdoc opt">(</span><span class="string">&quot;%s - search for my interesting photos about a tag</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span>
267 <span class="string">&quot;Usage: %s TAG</span><span class="gtkdoc esc">\n\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> program<span class="gtkdoc opt">,</span> program<span class="gtkdoc opt">);</span>
268268
269 <span class="function">fputs</span><span class="symbol">(</span><span class="string">&quot;Flickcurl home page: &quot;</span><span class="symbol">,</span> stdout<span class="symbol">);</span>
270 <span class="function">puts</span><span class="symbol">(</span>flickcurl_home_url_string<span class="symbol">);</span>
271 <span class="function">puts</span><span class="symbol">(</span>flickcurl_copyright_string<span class="symbol">);</span>
272 <span class="function">fputs</span><span class="symbol">(</span><span class="string">&quot;License: &quot;</span><span class="symbol">,</span> stdout<span class="symbol">);</span>
273 <span class="function">puts</span><span class="symbol">(</span>flickcurl_license_string<span class="symbol">);</span>
274 rc <span class="symbol">=</span> <span class="number">1</span><span class="symbol">;</span>
275 <span class="keyword">goto</span> tidy<span class="symbol">;</span>
276 <span class="symbol">}</span>
277
278 tag <span class="symbol">=</span> argv<span class="symbol">[</span><span class="number">1</span><span class="symbol">];</span>
269 <span class="function">fputs</span><span class="gtkdoc opt">(</span><span class="string">&quot;Flickcurl home page: &quot;</span><span class="gtkdoc opt">,</span> stdout<span class="gtkdoc opt">);</span>
270 <span class="function">puts</span><span class="gtkdoc opt">(</span>flickcurl_home_url_string<span class="gtkdoc opt">);</span>
271 <span class="function">puts</span><span class="gtkdoc opt">(</span>flickcurl_copyright_string<span class="gtkdoc opt">);</span>
272 <span class="function">fputs</span><span class="gtkdoc opt">(</span><span class="string">&quot;License: &quot;</span><span class="gtkdoc opt">,</span> stdout<span class="gtkdoc opt">);</span>
273 <span class="function">puts</span><span class="gtkdoc opt">(</span>flickcurl_license_string<span class="gtkdoc opt">);</span>
274 rc <span class="gtkdoc opt">=</span> <span class="number">1</span><span class="gtkdoc opt">;</span>
275 <span class="keyword">goto</span> tidy<span class="gtkdoc opt">;</span>
276 <span class="gtkdoc opt">}</span>
277
278 tag <span class="gtkdoc opt">=</span> argv<span class="gtkdoc opt">[</span><span class="number">1</span><span class="gtkdoc opt">];</span>
279279
280280 <span class="comment">/* Initialise the Flickcurl library */</span>
281 fc <span class="symbol">=</span> <span class="function"><a href="flickcurl-section-core.html#flickcurl-new">flickcurl_new</a></span><span class="symbol">();</span>
282 <span class="keyword">if</span><span class="symbol">(!</span>fc<span class="symbol">) {</span>
283 rc <span class="symbol">=</span> <span class="number">1</span><span class="symbol">;</span>
284 <span class="keyword">goto</span> tidy<span class="symbol">;</span>
285 <span class="symbol">}</span>
286
287 <span class="function"><a href="flickcurl-section-core.html#flickcurl-set-error-handler">flickcurl_set_error_handler</a></span><span class="symbol">(</span>fc<span class="symbol">,</span> my_message_handler<span class="symbol">,</span> NULL<span class="symbol">);</span>
288
289 <span class="keyword">if</span><span class="symbol">(!</span><span class="function">access</span><span class="symbol">((</span><span class="gtkdoc kwb">const char</span><span class="symbol">*)</span>config_path<span class="symbol">,</span> R_OK<span class="symbol">)) {</span>
290 <span class="keyword">if</span><span class="symbol">(</span><span class="function">read_ini_config</span><span class="symbol">(</span>config_path<span class="symbol">,</span> config_section<span class="symbol">,</span> fc<span class="symbol">,</span>
291 my_set_config_var_handler<span class="symbol">)) {</span>
292 <span class="function">fprintf</span><span class="symbol">(</span>stderr<span class="symbol">,</span> <span class="string">&quot;%s: Failed to read config filename %s: %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="symbol">,</span>
293 program<span class="symbol">,</span> config_path<span class="symbol">,</span> <span class="function">strerror</span><span class="symbol">(</span>errno<span class="symbol">));</span>
294 rc <span class="symbol">=</span> <span class="number">1</span><span class="symbol">;</span>
295 <span class="keyword">goto</span> tidy<span class="symbol">;</span>
296 <span class="symbol">}</span>
297 <span class="symbol">}</span>
281 fc <span class="gtkdoc opt">=</span> <span class="function"><a href="flickcurl-section-core.html#flickcurl-new">flickcurl_new</a></span><span class="gtkdoc opt">();</span>
282 <span class="keyword">if</span><span class="gtkdoc opt">(!</span>fc<span class="gtkdoc opt">) {</span>
283 rc <span class="gtkdoc opt">=</span> <span class="number">1</span><span class="gtkdoc opt">;</span>
284 <span class="keyword">goto</span> tidy<span class="gtkdoc opt">;</span>
285 <span class="gtkdoc opt">}</span>
286
287 <span class="function"><a href="flickcurl-section-core.html#flickcurl-set-error-handler">flickcurl_set_error_handler</a></span><span class="gtkdoc opt">(</span>fc<span class="gtkdoc opt">,</span> my_message_handler<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
288
289 <span class="keyword">if</span><span class="gtkdoc opt">(!</span><span class="function">access</span><span class="gtkdoc opt">((</span><span class="gtkdoc kwb">const char</span><span class="gtkdoc opt">*)</span>config_path<span class="gtkdoc opt">,</span> R_OK<span class="gtkdoc opt">)) {</span>
290 <span class="keyword">if</span><span class="gtkdoc opt">(</span><span class="function">read_ini_config</span><span class="gtkdoc opt">(</span>config_path<span class="gtkdoc opt">,</span> config_section<span class="gtkdoc opt">,</span> fc<span class="gtkdoc opt">,</span>
291 my_set_config_var_handler<span class="gtkdoc opt">)) {</span>
292 <span class="function">fprintf</span><span class="gtkdoc opt">(</span>stderr<span class="gtkdoc opt">,</span> <span class="string">&quot;%s: Failed to read config filename %s: %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span>
293 program<span class="gtkdoc opt">,</span> config_path<span class="gtkdoc opt">,</span> <span class="function">strerror</span><span class="gtkdoc opt">(</span>errno<span class="gtkdoc opt">));</span>
294 rc <span class="gtkdoc opt">=</span> <span class="number">1</span><span class="gtkdoc opt">;</span>
295 <span class="keyword">goto</span> tidy<span class="gtkdoc opt">;</span>
296 <span class="gtkdoc opt">}</span>
297 <span class="gtkdoc opt">}</span>
298298
299299
300300 <span class="comment">/* Initialise the search parameters themselves</span>
302302 <span class="comment"> * sort: &quot;interestingness-desc&quot; - return results with most interesting first</span>
303303 <span class="comment"> * tag: TAG - search for photos about the TAG given on the command line</span>
304304 <span class="comment"> */</span>
305 <span class="function"><a href="flickcurl-section-photo.html#flickcurl-search-params-init">flickcurl_search_params_init</a></span><span class="symbol">(&amp;</span>params<span class="symbol">);</span>
305 <span class="function"><a href="flickcurl-section-photo.html#flickcurl-search-params-init">flickcurl_search_params_init</a></span><span class="gtkdoc opt">(&amp;</span>params<span class="gtkdoc opt">);</span>
306306 <span class="comment">/* these strings are shared and not strdup()ed since they are stored </span>
307307 <span class="comment"> * in 'params&quot; on the stack */</span>
308 params<span class="symbol">.</span>user_id <span class="symbol">= (</span><span class="gtkdoc kwb">char</span><span class="symbol">*)</span><span class="string">&quot;me&quot;</span><span class="symbol">;</span>
309 params<span class="symbol">.</span>sort <span class="symbol">= (</span><span class="gtkdoc kwb">char</span><span class="symbol">*)</span><span class="string">&quot;interestingness-desc&quot;</span><span class="symbol">;</span>
310 params<span class="symbol">.</span>tags <span class="symbol">=</span> tag<span class="symbol">;</span>
308 params<span class="gtkdoc opt">.</span>user_id <span class="gtkdoc opt">= (</span><span class="gtkdoc kwb">char</span><span class="gtkdoc opt">*)</span><span class="string">&quot;me&quot;</span><span class="gtkdoc opt">;</span>
309 params<span class="gtkdoc opt">.</span>sort <span class="gtkdoc opt">= (</span><span class="gtkdoc kwb">char</span><span class="gtkdoc opt">*)</span><span class="string">&quot;interestingness-desc&quot;</span><span class="gtkdoc opt">;</span>
310 params<span class="gtkdoc opt">.</span>tags <span class="gtkdoc opt">=</span> tag<span class="gtkdoc opt">;</span>
311311
312312 <span class="comment">/* Initialise the search result (list) parameters:</span>
313313 <span class="comment"> * per_page: 10 - ten results per-page</span>
315315 <span class="comment"> * extras: &quot;original_format&quot; - want the returned photos to have the</span>
316316 <span class="comment"> * original secret and format fields.</span>
317317 <span class="comment"> */</span>
318 <span class="function"><a href="flickcurl-section-photoslist.html#flickcurl-photos-list-params-init">flickcurl_photos_list_params_init</a></span><span class="symbol">(&amp;</span>list_params<span class="symbol">);</span>
319 list_params<span class="symbol">.</span>per_page <span class="symbol">=</span> <span class="number">10</span><span class="symbol">;</span>
320 list_params<span class="symbol">.</span>page <span class="symbol">=</span> <span class="number">1</span><span class="symbol">;</span>
318 <span class="function"><a href="flickcurl-section-photoslist.html#flickcurl-photos-list-params-init">flickcurl_photos_list_params_init</a></span><span class="gtkdoc opt">(&amp;</span>list_params<span class="gtkdoc opt">);</span>
319 list_params<span class="gtkdoc opt">.</span>per_page <span class="gtkdoc opt">=</span> <span class="number">10</span><span class="gtkdoc opt">;</span>
320 list_params<span class="gtkdoc opt">.</span>page <span class="gtkdoc opt">=</span> <span class="number">1</span><span class="gtkdoc opt">;</span>
321321 <span class="comment">/* this string is shared and not strdup()ed since it is stored </span>
322322 <span class="comment"> * in 'list_params&quot; on the stack */</span>
323 list_params<span class="symbol">.</span>extras <span class="symbol">=</span> <span class="string">&quot;original_format&quot;</span><span class="symbol">;</span>
324
325 photos_list <span class="symbol">=</span> <span class="function"><a href="flickcurl-section-photo.html#flickcurl-photos-search-params">flickcurl_photos_search_params</a></span><span class="symbol">(</span>fc<span class="symbol">, &amp;</span>params<span class="symbol">, &amp;</span>list_params<span class="symbol">);</span>
326 <span class="keyword">if</span><span class="symbol">(!</span>photos_list<span class="symbol">)</span>
327 <span class="keyword">goto</span> tidy<span class="symbol">;</span>
328
329 <span class="function">fprintf</span><span class="symbol">(</span>stderr<span class="symbol">,</span> <span class="string">&quot;%s: Search returned %d photos</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="symbol">,</span>
330 program<span class="symbol">,</span> photos_list<span class="symbol">-&gt;</span>photos_count<span class="symbol">);</span>
331
332 <span class="keyword">for</span><span class="symbol">(</span>i <span class="symbol">=</span> <span class="number">0</span><span class="symbol">;</span> i <span class="symbol">&lt;</span> photos_list<span class="symbol">-&gt;</span>photos_count<span class="symbol">; ++</span>i<span class="symbol">)</span>
333 <span class="function">printf</span><span class="symbol">(</span><span class="string">&quot; Result #%d has ID %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="symbol">,</span> i<span class="symbol">,</span> photos_list<span class="symbol">-&gt;</span>photos<span class="symbol">[</span>i<span class="symbol">]-&gt;</span>id<span class="symbol">);</span>
334
335 tidy<span class="symbol">:</span>
336 <span class="keyword">if</span><span class="symbol">(</span>photos_list<span class="symbol">)</span>
337 <span class="function"><a href="flickcurl-section-photoslist.html#flickcurl-free-photos-list">flickcurl_free_photos_list</a></span><span class="symbol">(</span>photos_list<span class="symbol">);</span>
338
339 <span class="keyword">if</span><span class="symbol">(</span>fc<span class="symbol">)</span>
340 <span class="function"><a href="flickcurl-section-core.html#flickcurl-free">flickcurl_free</a></span><span class="symbol">(</span>fc<span class="symbol">);</span>
341
342 <span class="function"><a href="flickcurl-section-core.html#flickcurl-finish">flickcurl_finish</a></span><span class="symbol">();</span>
343
344 <span class="keyword">return</span><span class="symbol">(</span>rc<span class="symbol">);</span>
345 <span class="symbol">}</span></pre></td>
323 list_params<span class="gtkdoc opt">.</span>extras <span class="gtkdoc opt">=</span> <span class="string">&quot;original_format&quot;</span><span class="gtkdoc opt">;</span>
324
325 photos_list <span class="gtkdoc opt">=</span> <span class="function"><a href="flickcurl-section-photo.html#flickcurl-photos-search-params">flickcurl_photos_search_params</a></span><span class="gtkdoc opt">(</span>fc<span class="gtkdoc opt">, &amp;</span>params<span class="gtkdoc opt">, &amp;</span>list_params<span class="gtkdoc opt">);</span>
326 <span class="keyword">if</span><span class="gtkdoc opt">(!</span>photos_list<span class="gtkdoc opt">)</span>
327 <span class="keyword">goto</span> tidy<span class="gtkdoc opt">;</span>
328
329 <span class="function">fprintf</span><span class="gtkdoc opt">(</span>stderr<span class="gtkdoc opt">,</span> <span class="string">&quot;%s: Search returned %d photos</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span>
330 program<span class="gtkdoc opt">,</span> photos_list<span class="gtkdoc opt">-&gt;</span>photos_count<span class="gtkdoc opt">);</span>
331
332 <span class="keyword">for</span><span class="gtkdoc opt">(</span>i <span class="gtkdoc opt">=</span> <span class="number">0</span><span class="gtkdoc opt">;</span> i <span class="gtkdoc opt">&lt;</span> photos_list<span class="gtkdoc opt">-&gt;</span>photos_count<span class="gtkdoc opt">; ++</span>i<span class="gtkdoc opt">)</span>
333 <span class="function">printf</span><span class="gtkdoc opt">(</span><span class="string">&quot; Result #%d has ID %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> i<span class="gtkdoc opt">,</span> photos_list<span class="gtkdoc opt">-&gt;</span>photos<span class="gtkdoc opt">[</span>i<span class="gtkdoc opt">]-&gt;</span>id<span class="gtkdoc opt">);</span>
334
335 tidy<span class="gtkdoc opt">:</span>
336 <span class="keyword">if</span><span class="gtkdoc opt">(</span>photos_list<span class="gtkdoc opt">)</span>
337 <span class="function"><a href="flickcurl-section-photoslist.html#flickcurl-free-photos-list">flickcurl_free_photos_list</a></span><span class="gtkdoc opt">(</span>photos_list<span class="gtkdoc opt">);</span>
338
339 <span class="keyword">if</span><span class="gtkdoc opt">(</span>fc<span class="gtkdoc opt">)</span>
340 <span class="function"><a href="flickcurl-section-core.html#flickcurl-free">flickcurl_free</a></span><span class="gtkdoc opt">(</span>fc<span class="gtkdoc opt">);</span>
341
342 <span class="function"><a href="flickcurl-section-core.html#flickcurl-finish">flickcurl_finish</a></span><span class="gtkdoc opt">();</span>
343
344 <span class="keyword">return</span><span class="gtkdoc opt">(</span>rc<span class="gtkdoc opt">);</span>
345 <span class="gtkdoc opt">}</span></pre></td>
346346 </tr>
347347 </tbody>
348348 </table>
370370 </div>
371371 <div class="footer">
372372 <hr>
373 Generated by GTK-Doc V1.17</div>
373 Generated by GTK-Doc V1.18</div>
374374 </body>
375375 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Extra result fields</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="flickcurl-searching.html" title="Searching for Photos with Flickcurl">
88 <link rel="prev" href="flickcurl-searching-search-paging.html" title="Result paging parameters">
99 <link rel="next" href="flickcurl-searching-search-result-formats.html" title="Search result format">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
136136 </div>
137137 <div class="footer">
138138 <hr>
139 Generated by GTK-Doc V1.17</div>
139 Generated by GTK-Doc V1.18</div>
140140 </body>
141141 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Result paging parameters</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="flickcurl-searching.html" title="Searching for Photos with Flickcurl">
88 <link rel="prev" href="flickcurl-searching-search-parameters.html" title="Search parameters">
99 <link rel="next" href="flickcurl-searching-search-extras.html" title="Extra result fields">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
5656 </div>
5757 <div class="footer">
5858 <hr>
59 Generated by GTK-Doc V1.17</div>
59 Generated by GTK-Doc V1.18</div>
6060 </body>
6161 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Search parameters</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="flickcurl-searching.html" title="Searching for Photos with Flickcurl">
88 <link rel="prev" href="flickcurl-searching.html" title="Searching for Photos with Flickcurl">
99 <link rel="next" href="flickcurl-searching-search-paging.html" title="Result paging parameters">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
7777 </div>
7878 <div class="footer">
7979 <hr>
80 Generated by GTK-Doc V1.17</div>
80 Generated by GTK-Doc V1.18</div>
8181 </body>
8282 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Search result format</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="flickcurl-searching.html" title="Searching for Photos with Flickcurl">
88 <link rel="prev" href="flickcurl-searching-search-extras.html" title="Extra result fields">
99 <link rel="next" href="flickcurl-searching-search-run.html" title="Run the search for photos">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
5656 </div>
5757 <div class="footer">
5858 <hr>
59 Generated by GTK-Doc V1.17</div>
59 Generated by GTK-Doc V1.18</div>
6060 </body>
6161 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Handling a photos search result</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="flickcurl-searching.html" title="Searching for Photos with Flickcurl">
88 <link rel="prev" href="flickcurl-searching-search-run.html" title="Run the search for photos">
99 <link rel="next" href="flickcurl-searching-search-example.html" title="Photos search example">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
5959 </div>
6060 <div class="footer">
6161 <hr>
62 Generated by GTK-Doc V1.17</div>
62 Generated by GTK-Doc V1.18</div>
6363 </body>
6464 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Run the search for photos</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="flickcurl-searching.html" title="Searching for Photos with Flickcurl">
88 <link rel="prev" href="flickcurl-searching-search-result-formats.html" title="Search result format">
99 <link rel="next" href="flickcurl-searching-search-results.html" title="Handling a photos search result">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
4646 </div>
4747 <div class="footer">
4848 <hr>
49 Generated by GTK-Doc V1.17</div>
49 Generated by GTK-Doc V1.18</div>
5050 </body>
5151 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Searching for Photos with Flickcurl</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-auth-use.html" title="Use flickcurl">
99 <link rel="next" href="flickcurl-searching-search-parameters.html" title="Search parameters">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
4545 </div>
4646 <div class="footer">
4747 <hr>
48 Generated by GTK-Doc V1.17</div>
48 Generated by GTK-Doc V1.18</div>
4949 </body>
5050 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Activity</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-searching-search-example.html" title="Photos search example">
99 <link rel="next" href="flickcurl-section-auth.html" title="Authentication">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
3838 <a name="flickcurl-section-activity.synopsis"></a><h2>Synopsis</h2>
3939 <pre class="synopsis"> <a class="link" href="flickcurl-section-activity.html#flickcurl-activity" title="flickcurl_activity">flickcurl_activity</a>;
4040 <a class="link" href="flickcurl-section-activity.html#flickcurl-activity-event" title="flickcurl_activity_event">flickcurl_activity_event</a>;
41 <a class="link" href="flickcurl-section-activity.html#flickcurl-activity" title="flickcurl_activity"><span class="returnvalue">flickcurl_activity</span></a> ** <a class="link" href="flickcurl-section-activity.html#flickcurl-activity-userComments" title="flickcurl_activity_userComments ()">flickcurl_activity_userComments</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
41 <a class="link" href="flickcurl-section-activity.html#flickcurl-activity" title="flickcurl_activity"><span class="returnvalue">flickcurl_activity</span></a> ** <a class="link" href="flickcurl-section-activity.html#flickcurl-activity-userComments" title="flickcurl_activity_userComments ()">flickcurl_activity_userComments</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
4242 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
4343 <em class="parameter"><code><span class="type">int</span> page</code></em>);
44 <a class="link" href="flickcurl-section-activity.html#flickcurl-activity" title="flickcurl_activity"><span class="returnvalue">flickcurl_activity</span></a> ** <a class="link" href="flickcurl-section-activity.html#flickcurl-activity-userPhotos" title="flickcurl_activity_userPhotos ()">flickcurl_activity_userPhotos</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
44 <a class="link" href="flickcurl-section-activity.html#flickcurl-activity" title="flickcurl_activity"><span class="returnvalue">flickcurl_activity</span></a> ** <a class="link" href="flickcurl-section-activity.html#flickcurl-activity-userPhotos" title="flickcurl_activity_userPhotos ()">flickcurl_activity_userPhotos</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
4545 <em class="parameter"><code>const <span class="type">char</span> *timeframe</code></em>,
4646 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
4747 <em class="parameter"><code><span class="type">int</span> page</code></em>);
221221 <hr>
222222 <div class="refsect2">
223223 <a name="flickcurl-activity-userComments"></a><h3>flickcurl_activity_userComments ()</h3>
224 <pre class="programlisting"><a class="link" href="flickcurl-section-activity.html#flickcurl-activity" title="flickcurl_activity"><span class="returnvalue">flickcurl_activity</span></a> ** flickcurl_activity_userComments (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
224 <pre class="programlisting"><a class="link" href="flickcurl-section-activity.html#flickcurl-activity" title="flickcurl_activity"><span class="returnvalue">flickcurl_activity</span></a> ** flickcurl_activity_userComments (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
225225 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
226226 <em class="parameter"><code><span class="type">int</span> page</code></em>);</pre>
227227 <p>
255255 <hr>
256256 <div class="refsect2">
257257 <a name="flickcurl-activity-userPhotos"></a><h3>flickcurl_activity_userPhotos ()</h3>
258 <pre class="programlisting"><a class="link" href="flickcurl-section-activity.html#flickcurl-activity" title="flickcurl_activity"><span class="returnvalue">flickcurl_activity</span></a> ** flickcurl_activity_userPhotos (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
258 <pre class="programlisting"><a class="link" href="flickcurl-section-activity.html#flickcurl-activity" title="flickcurl_activity"><span class="returnvalue">flickcurl_activity</span></a> ** flickcurl_activity_userPhotos (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
259259 <em class="parameter"><code>const <span class="type">char</span> *timeframe</code></em>,
260260 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
261261 <em class="parameter"><code><span class="type">int</span> page</code></em>);</pre>
310310 </div>
311311 <div class="footer">
312312 <hr>
313 Generated by GTK-Doc V1.17</div>
313 Generated by GTK-Doc V1.18</div>
314314 </body>
315315 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Authentication</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-activity.html" title="Activity">
99 <link rel="next" href="flickcurl-section-blogs.html" title="Blogs">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
4343 <em class="parameter"><code>const <span class="type">char</span> *frob</code></em>);
4444 <span class="returnvalue">char</span> * <a class="link" href="flickcurl-section-auth.html#flickcurl-auth-getToken" title="flickcurl_auth_getToken ()">flickcurl_auth_getToken</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
4545 <em class="parameter"><code>const <span class="type">char</span> *frob</code></em>);
46 <span class="returnvalue">int</span> <a class="link" href="flickcurl-section-auth.html#flickcurl-auth-oauth-getAccessToken" title="flickcurl_auth_oauth_getAccessToken ()">flickcurl_auth_oauth_getAccessToken</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>);
4647 </pre>
4748 </div>
4849 <div class="refsect1">
170171 </tbody>
171172 </table></div>
172173 </div>
174 <hr>
175 <div class="refsect2">
176 <a name="flickcurl-auth-oauth-getAccessToken"></a><h3>flickcurl_auth_oauth_getAccessToken ()</h3>
177 <pre class="programlisting"><span class="returnvalue">int</span> flickcurl_auth_oauth_getAccessToken (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>);</pre>
178 <p>
179 Exchange an auth token from the old Authentication API for an OAuth access token.
180 </p>
181 <p>
182 Calling this method will delete the old auth token used to make the request.
183 </p>
184 <p>
185 Implements flickr.auth.oauth.getAccessToken (1.22)
186 </p>
187 <div class="variablelist"><table border="0">
188 <col align="left" valign="top">
189 <tbody>
190 <tr>
191 <td><p><span class="term"><em class="parameter"><code>fc</code></em> :</span></p></td>
192 <td>flickcurl context</td>
193 </tr>
194 <tr>
195 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
196 <td>non-0 on failure</td>
197 </tr>
198 </tbody>
199 </table></div>
200 </div>
173201 </div>
174202 </div>
175203 <div class="footer">
176204 <hr>
177 Generated by GTK-Doc V1.17</div>
205 Generated by GTK-Doc V1.18</div>
178206 </body>
179207 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Blogs</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-auth.html" title="Authentication">
99 <link rel="next" href="flickcurl-section-category.html" title="Categories">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
3939 <pre class="synopsis"> <a class="link" href="flickcurl-section-blogs.html#flickcurl-blog" title="flickcurl_blog">flickcurl_blog</a>;
4040 <a class="link" href="flickcurl-section-blogs.html#flickcurl-blog" title="flickcurl_blog"><span class="returnvalue">flickcurl_blog</span></a> ** <a class="link" href="flickcurl-section-blogs.html#flickcurl-blogs-getList" title="flickcurl_blogs_getList ()">flickcurl_blogs_getList</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>);
4141 <a class="link" href="flickcurl-section-blogs.html#flickcurl-blog-service" title="flickcurl_blog_service">flickcurl_blog_service</a>;
42 <a class="link" href="flickcurl-section-blogs.html#flickcurl-blog-service" title="flickcurl_blog_service"><span class="returnvalue">flickcurl_blog_service</span></a> ** <a class="link" href="flickcurl-section-blogs.html#flickcurl-blogs-getServices" title="flickcurl_blogs_getServices ()">flickcurl_blogs_getServices</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>);
42 <a class="link" href="flickcurl-section-blogs.html#flickcurl-blog-service" title="flickcurl_blog_service"><span class="returnvalue">flickcurl_blog_service</span></a> ** <a class="link" href="flickcurl-section-blogs.html#flickcurl-blogs-getServices" title="flickcurl_blogs_getServices ()">flickcurl_blogs_getServices</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>);
4343 <span class="returnvalue">int</span> <a class="link" href="flickcurl-section-blogs.html#flickcurl-blogs-postPhoto" title="flickcurl_blogs_postPhoto ()">flickcurl_blogs_postPhoto</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
4444 <em class="parameter"><code>const <span class="type">char</span> *blog_id</code></em>,
4545 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>,
144144 <hr>
145145 <div class="refsect2">
146146 <a name="flickcurl-blogs-getServices"></a><h3>flickcurl_blogs_getServices ()</h3>
147 <pre class="programlisting"><a class="link" href="flickcurl-section-blogs.html#flickcurl-blog-service" title="flickcurl_blog_service"><span class="returnvalue">flickcurl_blog_service</span></a> ** flickcurl_blogs_getServices (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>);</pre>
147 <pre class="programlisting"><a class="link" href="flickcurl-section-blogs.html#flickcurl-blog-service" title="flickcurl_blog_service"><span class="returnvalue">flickcurl_blog_service</span></a> ** flickcurl_blogs_getServices (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>);</pre>
148148 <p>
149149 Return a list of Flickr supported blogging services
150150 </p>
248248 </div>
249249 <div class="footer">
250250 <hr>
251 Generated by GTK-Doc V1.17</div>
251 Generated by GTK-Doc V1.18</div>
252252 </body>
253253 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Categories</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-blogs.html" title="Blogs">
99 <link rel="next" href="flickcurl-section-comment.html" title="Comments">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
9191 </div>
9292 <div class="footer">
9393 <hr>
94 Generated by GTK-Doc V1.17</div>
94 Generated by GTK-Doc V1.18</div>
9595 </body>
9696 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Collections</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-commons.html" title="Flickr Commons">
9 <link rel="next" href="flickcurl-section-contact.html" title="Contacts">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
9 <link rel="next" href="flickcurl-section-config.html" title="Config">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
1717 <td> </td>
1818 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
1919 <th width="100%" align="center">Flickcurl Flickr API Manual</th>
20 <td><a accesskey="n" href="flickcurl-section-contact.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
20 <td><a accesskey="n" href="flickcurl-section-config.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
2121 </tr>
2222 <tr><td colspan="5" class="shortcuts">
2323 <a href="#flickcurl-section-collections.synopsis" class="shortcut">Top</a>
3737 <div class="refsynopsisdiv">
3838 <a name="flickcurl-section-collections.synopsis"></a><h2>Synopsis</h2>
3939 <pre class="synopsis">typedef <a class="link" href="flickcurl-section-collections.html#flickcurl-collection" title="flickcurl_collection">flickcurl_collection</a>;
40 <a class="link" href="flickcurl-section-collections.html#flickcurl-collection" title="flickcurl_collection"><span class="returnvalue">flickcurl_collection</span></a> * <a class="link" href="flickcurl-section-collections.html#flickcurl-collections-getInfo" title="flickcurl_collections_getInfo ()">flickcurl_collections_getInfo</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
40 <a class="link" href="flickcurl-section-collections.html#flickcurl-collection" title="flickcurl_collection"><span class="returnvalue">flickcurl_collection</span></a> * <a class="link" href="flickcurl-section-collections.html#flickcurl-collections-getInfo" title="flickcurl_collections_getInfo ()">flickcurl_collections_getInfo</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
4141 <em class="parameter"><code>const <span class="type">char</span> *collection_id</code></em>);
42 <a class="link" href="flickcurl-section-collections.html#flickcurl-collection" title="flickcurl_collection"><span class="returnvalue">flickcurl_collection</span></a> * <a class="link" href="flickcurl-section-collections.html#flickcurl-collections-getTree" title="flickcurl_collections_getTree ()">flickcurl_collections_getTree</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
42 <a class="link" href="flickcurl-section-collections.html#flickcurl-collection" title="flickcurl_collection"><span class="returnvalue">flickcurl_collection</span></a> * <a class="link" href="flickcurl-section-collections.html#flickcurl-collections-getTree" title="flickcurl_collections_getTree ()">flickcurl_collections_getTree</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
4343 <em class="parameter"><code>const <span class="type">char</span> *collection_id</code></em>,
4444 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>);
4545 <span class="returnvalue">void</span> <a class="link" href="flickcurl-section-collections.html#flickcurl-free-collection" title="flickcurl_free_collection ()">flickcurl_free_collection</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-collections.html#flickcurl-collection" title="flickcurl_collection"><span class="type">flickcurl_collection</span></a> *collection</code></em>);
6565 <hr>
6666 <div class="refsect2">
6767 <a name="flickcurl-collections-getInfo"></a><h3>flickcurl_collections_getInfo ()</h3>
68 <pre class="programlisting"><a class="link" href="flickcurl-section-collections.html#flickcurl-collection" title="flickcurl_collection"><span class="returnvalue">flickcurl_collection</span></a> * flickcurl_collections_getInfo (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
68 <pre class="programlisting"><a class="link" href="flickcurl-section-collections.html#flickcurl-collection" title="flickcurl_collection"><span class="returnvalue">flickcurl_collection</span></a> * flickcurl_collections_getInfo (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
6969 <em class="parameter"><code>const <span class="type">char</span> *collection_id</code></em>);</pre>
7070 <p>
7171 Returns information for a single collection. Currently can only
9595 <hr>
9696 <div class="refsect2">
9797 <a name="flickcurl-collections-getTree"></a><h3>flickcurl_collections_getTree ()</h3>
98 <pre class="programlisting"><a class="link" href="flickcurl-section-collections.html#flickcurl-collection" title="flickcurl_collection"><span class="returnvalue">flickcurl_collection</span></a> * flickcurl_collections_getTree (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
98 <pre class="programlisting"><a class="link" href="flickcurl-section-collections.html#flickcurl-collection" title="flickcurl_collection"><span class="returnvalue">flickcurl_collection</span></a> * flickcurl_collections_getTree (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
9999 <em class="parameter"><code>const <span class="type">char</span> *collection_id</code></em>,
100100 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>);</pre>
101101 <p>
160160 </div>
161161 <div class="footer">
162162 <hr>
163 Generated by GTK-Doc V1.17</div>
163 Generated by GTK-Doc V1.18</div>
164164 </body>
165165 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Comments</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-category.html" title="Categories">
99 <link rel="next" href="flickcurl-section-commons.html" title="Flickr Commons">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
127127 </div>
128128 <div class="footer">
129129 <hr>
130 Generated by GTK-Doc V1.17</div>
130 Generated by GTK-Doc V1.18</div>
131131 </body>
132132 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Flickr Commons</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-comment.html" title="Comments">
99 <link rel="next" href="flickcurl-section-collections.html" title="Collections">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
4242 <span class="returnvalue">void</span> <a class="link" href="flickcurl-section-commons.html#flickcurl-free-institutions" title="flickcurl_free_institutions ()">flickcurl_free_institutions</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-commons.html#flickcurl-institution" title="flickcurl_institution"><span class="type">flickcurl_institution</span></a> **institutions_object</code></em>);
4343 const <span class="returnvalue">char</span> * <a class="link" href="flickcurl-section-commons.html#flickcurl-get-institution-url-type-label" title="flickcurl_get_institution_url_type_label ()">flickcurl_get_institution_url_type_label</a>
4444 (<em class="parameter"><code><a class="link" href="flickcurl-section-commons.html#flickcurl-institution-url-type" title="enum flickcurl_institution_url_type"><span class="type">flickcurl_institution_url_type</span></a> url_type</code></em>);
45 <a class="link" href="flickcurl-section-commons.html#flickcurl-institution" title="flickcurl_institution"><span class="returnvalue">flickcurl_institution</span></a> ** <a class="link" href="flickcurl-section-commons.html#flickcurl-commons-getInstitutions" title="flickcurl_commons_getInstitutions ()">flickcurl_commons_getInstitutions</a>
45 <a class="link" href="flickcurl-section-commons.html#flickcurl-institution" title="flickcurl_institution"><span class="returnvalue">flickcurl_institution</span></a> ** <a class="link" href="flickcurl-section-commons.html#flickcurl-commons-getInstitutions" title="flickcurl_commons_getInstitutions ()">flickcurl_commons_getInstitutions</a>
4646 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>);
4747 </pre>
4848 </div>
188188 <hr>
189189 <div class="refsect2">
190190 <a name="flickcurl-commons-getInstitutions"></a><h3>flickcurl_commons_getInstitutions ()</h3>
191 <pre class="programlisting"><a class="link" href="flickcurl-section-commons.html#flickcurl-institution" title="flickcurl_institution"><span class="returnvalue">flickcurl_institution</span></a> ** flickcurl_commons_getInstitutions
191 <pre class="programlisting"><a class="link" href="flickcurl-section-commons.html#flickcurl-institution" title="flickcurl_institution"><span class="returnvalue">flickcurl_institution</span></a> ** flickcurl_commons_getInstitutions
192192 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>);</pre>
193193 <p>
194194 Retrieves a list of the current Commons institutions.
214214 </div>
215215 <div class="footer">
216216 <hr>
217 Generated by GTK-Doc V1.17</div>
217 Generated by GTK-Doc V1.18</div>
218218 </body>
219219 </html>
0 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4 <title>Config</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
6 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
7 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
8 <link rel="prev" href="flickcurl-section-collections.html" title="Collections">
9 <link rel="next" href="flickcurl-section-contact.html" title="Contacts">
10 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
11 <link rel="stylesheet" href="style.css" type="text/css">
12 </head>
13 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
14 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
15 <tr valign="middle">
16 <td><a accesskey="p" href="flickcurl-section-collections.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
17 <td> </td>
18 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
19 <th width="100%" align="center">Flickcurl Flickr API Manual</th>
20 <td><a accesskey="n" href="flickcurl-section-contact.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
21 </tr>
22 <tr><td colspan="5" class="shortcuts">
23 <a href="#flickcurl-section-config.synopsis" class="shortcut">Top</a>
24  | 
25 <a href="#flickcurl-section-config.description" class="shortcut">Description</a>
26 </td></tr>
27 </table>
28 <div class="refentry">
29 <a name="flickcurl-section-config"></a><div class="titlepage"></div>
30 <div class="refnamediv"><table width="100%"><tr>
31 <td valign="top">
32 <h2><span class="refentrytitle"><a name="flickcurl-section-config.top_of_page"></a>Config</span></h2>
33 <p>Config — Configuration files</p>
34 </td>
35 <td valign="top" align="right"></td>
36 </tr></table></div>
37 <div class="refsynopsisdiv">
38 <a name="flickcurl-section-config.synopsis"></a><h2>Synopsis</h2>
39 <pre class="synopsis"><span class="returnvalue">int</span> <a class="link" href="flickcurl-section-config.html#flickcurl-config-read-ini" title="flickcurl_config_read_ini ()">flickcurl_config_read_ini</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
40 <em class="parameter"><code>const <span class="type">char</span> *filename</code></em>,
41 <em class="parameter"><code>const <span class="type">char</span> *section</code></em>,
42 <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
43 <em class="parameter"><code><span class="type">set_config_var_handler</span> handler</code></em>);
44 <span class="returnvalue">void</span> <a class="link" href="flickcurl-section-config.html#flickcurl-config-var-handler" title="flickcurl_config_var_handler ()">flickcurl_config_var_handler</a> (<em class="parameter"><code><span class="type">void</span> *userdata</code></em>,
45 <em class="parameter"><code>const <span class="type">char</span> *key</code></em>,
46 <em class="parameter"><code>const <span class="type">char</span> *value</code></em>);
47 <span class="returnvalue">int</span> <a class="link" href="flickcurl-section-config.html#flickcurl-config-write-ini" title="flickcurl_config_write_ini ()">flickcurl_config_write_ini</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
48 <em class="parameter"><code>const <span class="type">char</span> *filename</code></em>,
49 <em class="parameter"><code>const <span class="type">char</span> *section</code></em>);
50 </pre>
51 </div>
52 <div class="refsect1">
53 <a name="flickcurl-section-config.description"></a><h2>Description</h2>
54 <p>
55 Configuration files
56 </p>
57 </div>
58 <div class="refsect1">
59 <a name="flickcurl-section-config.details"></a><h2>Details</h2>
60 <div class="refsect2">
61 <a name="flickcurl-config-read-ini"></a><h3>flickcurl_config_read_ini ()</h3>
62 <pre class="programlisting"><span class="returnvalue">int</span> flickcurl_config_read_ini (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
63 <em class="parameter"><code>const <span class="type">char</span> *filename</code></em>,
64 <em class="parameter"><code>const <span class="type">char</span> *section</code></em>,
65 <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
66 <em class="parameter"><code><span class="type">set_config_var_handler</span> handler</code></em>);</pre>
67 <p>
68 Read flickcurl library configuration in .INI format from a filename
69 </p>
70 <div class="variablelist"><table border="0">
71 <col align="left" valign="top">
72 <tbody>
73 <tr>
74 <td><p><span class="term"><em class="parameter"><code>fc</code></em> :</span></p></td>
75 <td>flickcurl config</td>
76 </tr>
77 <tr>
78 <td><p><span class="term"><em class="parameter"><code>filename</code></em> :</span></p></td>
79 <td>filename</td>
80 </tr>
81 <tr>
82 <td><p><span class="term"><em class="parameter"><code>section</code></em> :</span></p></td>
83 <td>section name to use</td>
84 </tr>
85 <tr>
86 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
87 <td>user data pointer for handler (usually the <em class="parameter"><code>fc</code></em> )</td>
88 </tr>
89 <tr>
90 <td><p><span class="term"><em class="parameter"><code>handler</code></em> :</span></p></td>
91 <td>config variable handler function (usually <a class="link" href="flickcurl-section-config.html#flickcurl-config-var-handler" title="flickcurl_config_var_handler ()"><code class="function">flickcurl_config_var_handler()</code></a> )</td>
92 </tr>
93 <tr>
94 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
95 <td>non-0 on failure</td>
96 </tr>
97 </tbody>
98 </table></div>
99 </div>
100 <hr>
101 <div class="refsect2">
102 <a name="flickcurl-config-var-handler"></a><h3>flickcurl_config_var_handler ()</h3>
103 <pre class="programlisting"><span class="returnvalue">void</span> flickcurl_config_var_handler (<em class="parameter"><code><span class="type">void</span> *userdata</code></em>,
104 <em class="parameter"><code>const <span class="type">char</span> *key</code></em>,
105 <em class="parameter"><code>const <span class="type">char</span> *value</code></em>);</pre>
106 <p>
107 Standard handler for <a class="link" href="flickcurl-section-config.html#flickcurl-config-read-ini" title="flickcurl_config_read_ini ()"><code class="function">flickcurl_config_read_ini()</code></a>
108 </p>
109 <div class="variablelist"><table border="0">
110 <col align="left" valign="top">
111 <tbody>
112 <tr>
113 <td><p><span class="term"><em class="parameter"><code>userdata</code></em> :</span></p></td>
114 <td>user data pointing to <a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> object</td>
115 </tr>
116 <tr>
117 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
118 <td>var key</td>
119 </tr>
120 <tr>
121 <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
122 <td>var value</td>
123 </tr>
124 </tbody>
125 </table></div>
126 </div>
127 <hr>
128 <div class="refsect2">
129 <a name="flickcurl-config-write-ini"></a><h3>flickcurl_config_write_ini ()</h3>
130 <pre class="programlisting"><span class="returnvalue">int</span> flickcurl_config_write_ini (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
131 <em class="parameter"><code>const <span class="type">char</span> *filename</code></em>,
132 <em class="parameter"><code>const <span class="type">char</span> *section</code></em>);</pre>
133 <p>
134 Write flickcurl library configuration in INI file format to the given file
135 </p>
136 <div class="variablelist"><table border="0">
137 <col align="left" valign="top">
138 <tbody>
139 <tr>
140 <td><p><span class="term"><em class="parameter"><code>fc</code></em> :</span></p></td>
141 <td>
142 <a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> object</td>
143 </tr>
144 <tr>
145 <td><p><span class="term"><em class="parameter"><code>filename</code></em> :</span></p></td>
146 <td>filename</td>
147 </tr>
148 <tr>
149 <td><p><span class="term"><em class="parameter"><code>section</code></em> :</span></p></td>
150 <td>section name to use</td>
151 </tr>
152 <tr>
153 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
154 <td>non-0 on failure</td>
155 </tr>
156 </tbody>
157 </table></div>
158 </div>
159 </div>
160 </div>
161 <div class="footer">
162 <hr>
163 Generated by GTK-Doc V1.18</div>
164 </body>
165 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Contacts</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
8 <link rel="prev" href="flickcurl-section-collections.html" title="Collections">
8 <link rel="prev" href="flickcurl-section-config.html" title="Config">
99 <link rel="next" href="flickcurl-section-context.html" title="Contexts">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
1414 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
1515 <tr valign="middle">
16 <td><a accesskey="p" href="flickcurl-section-collections.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
16 <td><a accesskey="p" href="flickcurl-section-config.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
1717 <td> </td>
1818 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
1919 <th width="100%" align="center">Flickcurl Flickr API Manual</th>
3737 <div class="refsynopsisdiv">
3838 <a name="flickcurl-section-contact.synopsis"></a><h2>Synopsis</h2>
3939 <pre class="synopsis"> <a class="link" href="flickcurl-section-contact.html#flickcurl-contact" title="flickcurl_contact">flickcurl_contact</a>;
40 <a class="link" href="flickcurl-section-contact.html#flickcurl-contact" title="flickcurl_contact"><span class="returnvalue">flickcurl_contact</span></a> ** <a class="link" href="flickcurl-section-contact.html#flickcurl-contacts-getList" title="flickcurl_contacts_getList ()">flickcurl_contacts_getList</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
40 <a class="link" href="flickcurl-section-contact.html#flickcurl-contact" title="flickcurl_contact"><span class="returnvalue">flickcurl_contact</span></a> ** <a class="link" href="flickcurl-section-contact.html#flickcurl-contacts-getList" title="flickcurl_contacts_getList ()">flickcurl_contacts_getList</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
4141 <em class="parameter"><code>const <span class="type">char</span> *filter</code></em>,
4242 <em class="parameter"><code><span class="type">int</span> page</code></em>,
4343 <em class="parameter"><code><span class="type">int</span> per_page</code></em>);
44 <a class="link" href="flickcurl-section-contact.html#flickcurl-contact" title="flickcurl_contact"><span class="returnvalue">flickcurl_contact</span></a> ** <a class="link" href="flickcurl-section-contact.html#flickcurl-contacts-getListRecentlyUploaded" title="flickcurl_contacts_getListRecentlyUploaded ()">flickcurl_contacts_getListRecentlyUploaded</a>
44 <a class="link" href="flickcurl-section-contact.html#flickcurl-contact" title="flickcurl_contact"><span class="returnvalue">flickcurl_contact</span></a> ** <a class="link" href="flickcurl-section-contact.html#flickcurl-contacts-getListRecentlyUploaded" title="flickcurl_contacts_getListRecentlyUploaded ()">flickcurl_contacts_getListRecentlyUploaded</a>
4545 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
4646 <em class="parameter"><code><span class="type">int</span> date_lastupload</code></em>,
4747 <em class="parameter"><code>const <span class="type">char</span> *filter</code></em>);
48 <a class="link" href="flickcurl-section-contact.html#flickcurl-contact" title="flickcurl_contact"><span class="returnvalue">flickcurl_contact</span></a> ** <a class="link" href="flickcurl-section-contact.html#flickcurl-contacts-getPublicList" title="flickcurl_contacts_getPublicList ()">flickcurl_contacts_getPublicList</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
48 <a class="link" href="flickcurl-section-contact.html#flickcurl-contact" title="flickcurl_contact"><span class="returnvalue">flickcurl_contact</span></a> ** <a class="link" href="flickcurl-section-contact.html#flickcurl-contacts-getPublicList" title="flickcurl_contacts_getPublicList ()">flickcurl_contacts_getPublicList</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
4949 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>,
5050 <em class="parameter"><code><span class="type">int</span> page</code></em>,
5151 <em class="parameter"><code><span class="type">int</span> per_page</code></em>);
118118 <hr>
119119 <div class="refsect2">
120120 <a name="flickcurl-contacts-getList"></a><h3>flickcurl_contacts_getList ()</h3>
121 <pre class="programlisting"><a class="link" href="flickcurl-section-contact.html#flickcurl-contact" title="flickcurl_contact"><span class="returnvalue">flickcurl_contact</span></a> ** flickcurl_contacts_getList (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
121 <pre class="programlisting"><a class="link" href="flickcurl-section-contact.html#flickcurl-contact" title="flickcurl_contact"><span class="returnvalue">flickcurl_contact</span></a> ** flickcurl_contacts_getList (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
122122 <em class="parameter"><code>const <span class="type">char</span> *filter</code></em>,
123123 <em class="parameter"><code><span class="type">int</span> page</code></em>,
124124 <em class="parameter"><code><span class="type">int</span> per_page</code></em>);</pre>
157157 <hr>
158158 <div class="refsect2">
159159 <a name="flickcurl-contacts-getListRecentlyUploaded"></a><h3>flickcurl_contacts_getListRecentlyUploaded ()</h3>
160 <pre class="programlisting"><a class="link" href="flickcurl-section-contact.html#flickcurl-contact" title="flickcurl_contact"><span class="returnvalue">flickcurl_contact</span></a> ** flickcurl_contacts_getListRecentlyUploaded
160 <pre class="programlisting"><a class="link" href="flickcurl-section-contact.html#flickcurl-contact" title="flickcurl_contact"><span class="returnvalue">flickcurl_contact</span></a> ** flickcurl_contacts_getListRecentlyUploaded
161161 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
162162 <em class="parameter"><code><span class="type">int</span> date_lastupload</code></em>,
163163 <em class="parameter"><code>const <span class="type">char</span> *filter</code></em>);</pre>
197197 <hr>
198198 <div class="refsect2">
199199 <a name="flickcurl-contacts-getPublicList"></a><h3>flickcurl_contacts_getPublicList ()</h3>
200 <pre class="programlisting"><a class="link" href="flickcurl-section-contact.html#flickcurl-contact" title="flickcurl_contact"><span class="returnvalue">flickcurl_contact</span></a> ** flickcurl_contacts_getPublicList (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
200 <pre class="programlisting"><a class="link" href="flickcurl-section-contact.html#flickcurl-contact" title="flickcurl_contact"><span class="returnvalue">flickcurl_contact</span></a> ** flickcurl_contacts_getPublicList (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
201201 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>,
202202 <em class="parameter"><code><span class="type">int</span> page</code></em>,
203203 <em class="parameter"><code><span class="type">int</span> per_page</code></em>);</pre>
267267 </div>
268268 <div class="footer">
269269 <hr>
270 Generated by GTK-Doc V1.17</div>
270 Generated by GTK-Doc V1.18</div>
271271 </body>
272272 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Contexts</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-contact.html" title="Contacts">
99 <link rel="next" href="flickcurl-section-exif.html" title="EXIF">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
213213 </div>
214214 <div class="footer">
215215 <hr>
216 Generated by GTK-Doc V1.17</div>
216 Generated by GTK-Doc V1.18</div>
217217 </body>
218218 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Core</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="introduction.html" title="Flickcurl Overview">
99 <link rel="next" href="flickcurl-section-general.html" title="General">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
3737 <div class="refsynopsisdiv">
3838 <a name="flickcurl-section-core.synopsis"></a><h2>Synopsis</h2>
3939 <pre class="synopsis">typedef <a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl">flickcurl</a>;
40 extern const char* const <a class="link" href="flickcurl-section-core.html#flickcurl-version-string" title="flickcurl_version_string">flickcurl_version_string</a>;
41 extern const char* const <a class="link" href="flickcurl-section-core.html#flickcurl-license-string" title="flickcurl_license_string">flickcurl_license_string</a>;
42 extern const char* const <a class="link" href="flickcurl-section-core.html#flickcurl-copyright-string" title="flickcurl_copyright_string">flickcurl_copyright_string</a>;
43 extern const char* const <a class="link" href="flickcurl-section-core.html#flickcurl-short-copyright-string" title="flickcurl_short_copyright_string">flickcurl_short_copyright_string</a>;
44 extern const char* const <a class="link" href="flickcurl-section-core.html#flickcurl-home-url-string" title="flickcurl_home_url_string">flickcurl_home_url_string</a>;
45 extern const char* const <a class="link" href="flickcurl-section-core.html#flickcurl-flickr-replace-service-uri" title="flickcurl_flickr_replace_service_uri">flickcurl_flickr_replace_service_uri</a>;
46 extern const char* const <a class="link" href="flickcurl-section-core.html#flickcurl-flickr-service-uri" title="flickcurl_flickr_service_uri">flickcurl_flickr_service_uri</a>;
47 extern const char* const <a class="link" href="flickcurl-section-core.html#flickcurl-flickr-upload-service-uri" title="flickcurl_flickr_upload_service_uri">flickcurl_flickr_upload_service_uri</a>;
48 extern const char* const <a class="link" href="flickcurl-section-core.html#flickcurl-flickr-oauth-access-token-uri" title="flickcurl_flickr_oauth_access_token_uri">flickcurl_flickr_oauth_access_token_uri</a>;
49 extern const char* const <a class="link" href="flickcurl-section-core.html#flickcurl-flickr-oauth-authorize-uri" title="flickcurl_flickr_oauth_authorize_uri">flickcurl_flickr_oauth_authorize_uri</a>;
50 extern const char* const <a class="link" href="flickcurl-section-core.html#flickcurl-flickr-oauth-request-token-uri" title="flickcurl_flickr_oauth_request_token_uri">flickcurl_flickr_oauth_request_token_uri</a>;
4051 <span class="returnvalue">void</span> (<a class="link" href="flickcurl-section-core.html#flickcurl-message-handler" title="flickcurl_message_handler ()">*flickcurl_message_handler</a>) (<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
4152 <em class="parameter"><code>const <span class="type">char</span> *message</code></em>);
4253 <span class="returnvalue">int</span> <a class="link" href="flickcurl-section-core.html#flickcurl-init" title="flickcurl_init ()">flickcurl_init</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
114125 </div>
115126 <hr>
116127 <div class="refsect2">
128 <a name="flickcurl-version-string"></a><h3>flickcurl_version_string</h3>
129 <pre class="programlisting">extern const char* const flickcurl_version_string;
130 </pre>
131 <p>
132 </p>
133 </div>
134 <hr>
135 <div class="refsect2">
136 <a name="flickcurl-license-string"></a><h3>flickcurl_license_string</h3>
137 <pre class="programlisting">extern const char* const flickcurl_license_string;
138 </pre>
139 <p>
140 </p>
141 </div>
142 <hr>
143 <div class="refsect2">
144 <a name="flickcurl-copyright-string"></a><h3>flickcurl_copyright_string</h3>
145 <pre class="programlisting">extern const char* const flickcurl_copyright_string;
146 </pre>
147 <p>
148 </p>
149 </div>
150 <hr>
151 <div class="refsect2">
152 <a name="flickcurl-short-copyright-string"></a><h3>flickcurl_short_copyright_string</h3>
153 <pre class="programlisting">extern const char* const flickcurl_short_copyright_string;
154 </pre>
155 <p>
156 </p>
157 </div>
158 <hr>
159 <div class="refsect2">
160 <a name="flickcurl-home-url-string"></a><h3>flickcurl_home_url_string</h3>
161 <pre class="programlisting">extern const char* const flickcurl_home_url_string;
162 </pre>
163 <p>
164 </p>
165 </div>
166 <hr>
167 <div class="refsect2">
168 <a name="flickcurl-flickr-replace-service-uri"></a><h3>flickcurl_flickr_replace_service_uri</h3>
169 <pre class="programlisting">extern const char* const flickcurl_flickr_replace_service_uri;
170 </pre>
171 <p>
172 </p>
173 </div>
174 <hr>
175 <div class="refsect2">
176 <a name="flickcurl-flickr-service-uri"></a><h3>flickcurl_flickr_service_uri</h3>
177 <pre class="programlisting">extern const char* const flickcurl_flickr_service_uri;
178 </pre>
179 <p>
180 </p>
181 </div>
182 <hr>
183 <div class="refsect2">
184 <a name="flickcurl-flickr-upload-service-uri"></a><h3>flickcurl_flickr_upload_service_uri</h3>
185 <pre class="programlisting">extern const char* const flickcurl_flickr_upload_service_uri;
186 </pre>
187 <p>
188 </p>
189 </div>
190 <hr>
191 <div class="refsect2">
192 <a name="flickcurl-flickr-oauth-access-token-uri"></a><h3>flickcurl_flickr_oauth_access_token_uri</h3>
193 <pre class="programlisting">extern const char* const flickcurl_flickr_oauth_access_token_uri;
194 </pre>
195 <p>
196 </p>
197 </div>
198 <hr>
199 <div class="refsect2">
200 <a name="flickcurl-flickr-oauth-authorize-uri"></a><h3>flickcurl_flickr_oauth_authorize_uri</h3>
201 <pre class="programlisting">extern const char* const flickcurl_flickr_oauth_authorize_uri;
202 </pre>
203 <p>
204 </p>
205 </div>
206 <hr>
207 <div class="refsect2">
208 <a name="flickcurl-flickr-oauth-request-token-uri"></a><h3>flickcurl_flickr_oauth_request_token_uri</h3>
209 <pre class="programlisting">extern const char* const flickcurl_flickr_oauth_request_token_uri;
210 </pre>
211 <p>
212 </p>
213 </div>
214 <hr>
215 <div class="refsect2">
117216 <a name="flickcurl-message-handler"></a><h3>flickcurl_message_handler ()</h3>
118217 <pre class="programlisting"><span class="returnvalue">void</span> (*flickcurl_message_handler) (<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
119218 <em class="parameter"><code>const <span class="type">char</span> *message</code></em>);</pre>
811910 </div>
812911 <div class="footer">
813912 <hr>
814 Generated by GTK-Doc V1.17</div>
913 Generated by GTK-Doc V1.18</div>
815914 </body>
816915 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>EXIF</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-context.html" title="Contexts">
99 <link rel="next" href="flickcurl-section-favorite.html" title="Favorites">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
127127 </div>
128128 <div class="footer">
129129 <hr>
130 Generated by GTK-Doc V1.17</div>
130 Generated by GTK-Doc V1.18</div>
131131 </body>
132132 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Favorites</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-exif.html" title="EXIF">
99 <link rel="next" href="flickcurl-section-gallery.html" title="Galleries">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
3838 <a name="flickcurl-section-favorite.synopsis"></a><h2>Synopsis</h2>
3939 <pre class="synopsis"><span class="returnvalue">int</span> <a class="link" href="flickcurl-section-favorite.html#flickcurl-favorites-add" title="flickcurl_favorites_add ()">flickcurl_favorites_add</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
4040 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>);
41 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> ** <a class="link" href="flickcurl-section-favorite.html#flickcurl-favorites-getContext" title="flickcurl_favorites_getContext ()">flickcurl_favorites_getContext</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
42 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>,
43 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>,
44 <em class="parameter"><code><span class="type">int</span> num_prev</code></em>,
45 <em class="parameter"><code><span class="type">int</span> num_next</code></em>,
46 <em class="parameter"><code>const <span class="type">char</span> *extras</code></em>);
4147 <a class="link" href="flickcurl-section-photo.html#flickcurl-photo" title="flickcurl_photo"><span class="returnvalue">flickcurl_photo</span></a> ** <a class="link" href="flickcurl-section-favorite.html#flickcurl-favorites-getList" title="flickcurl_favorites_getList ()">flickcurl_favorites_getList</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
4248 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>,
4349 <em class="parameter"><code>const <span class="type">char</span> *extras</code></em>,
4450 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
4551 <em class="parameter"><code><span class="type">int</span> page</code></em>);
46 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-favorite.html#flickcurl-favorites-getList-params" title="flickcurl_favorites_getList_params ()">flickcurl_favorites_getList_params</a>
52 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-favorite.html#flickcurl-favorites-getList-params" title="flickcurl_favorites_getList_params ()">flickcurl_favorites_getList_params</a>
4753 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
4854 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>,
4955 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);
5258 <em class="parameter"><code>const <span class="type">char</span> *extras</code></em>,
5359 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
5460 <em class="parameter"><code><span class="type">int</span> page</code></em>);
55 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-favorite.html#flickcurl-favorites-getPublicList-params" title="flickcurl_favorites_getPublicList_params ()">flickcurl_favorites_getPublicList_params</a>
61 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-favorite.html#flickcurl-favorites-getPublicList-params" title="flickcurl_favorites_getPublicList_params ()">flickcurl_favorites_getPublicList_params</a>
5662 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
5763 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>,
5864 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);
98104 </div>
99105 <hr>
100106 <div class="refsect2">
107 <a name="flickcurl-favorites-getContext"></a><h3>flickcurl_favorites_getContext ()</h3>
108 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> ** flickcurl_favorites_getContext (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
109 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>,
110 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>,
111 <em class="parameter"><code><span class="type">int</span> num_prev</code></em>,
112 <em class="parameter"><code><span class="type">int</span> num_next</code></em>,
113 <em class="parameter"><code>const <span class="type">char</span> *extras</code></em>);</pre>
114 <p>
115 Returns next and previous favorites for a photo in a user's favorites.
116 </p>
117 <p>
118 Implements flickr.favorites.getContext (1.22)
119 </p>
120 <div class="variablelist"><table border="0">
121 <col align="left" valign="top">
122 <tbody>
123 <tr>
124 <td><p><span class="term"><em class="parameter"><code>fc</code></em> :</span></p></td>
125 <td>flickcurl context</td>
126 </tr>
127 <tr>
128 <td><p><span class="term"><em class="parameter"><code>photo_id</code></em> :</span></p></td>
129 <td>The id of the photo to fetch the context for.</td>
130 </tr>
131 <tr>
132 <td><p><span class="term"><em class="parameter"><code>user_id</code></em> :</span></p></td>
133 <td>The user who counts the photo as a favorite.</td>
134 </tr>
135 <tr>
136 <td><p><span class="term"><em class="parameter"><code>num_prev</code></em> :</span></p></td>
137 <td>number of previous photos to return (?) (or &lt; 0)</td>
138 </tr>
139 <tr>
140 <td><p><span class="term"><em class="parameter"><code>num_next</code></em> :</span></p></td>
141 <td>number of next photos to return (?) (or &lt; 0)</td>
142 </tr>
143 <tr>
144 <td><p><span class="term"><em class="parameter"><code>extras</code></em> :</span></p></td>
145 <td>A comma-delimited list of extra information to fetch for each returned record. Currently supported fields are: description, license, date_upload, date_taken, owner_name, icon_server, original_format, last_update, geo, tags, machine_tags, o_dims, views, media, path_alias, url_sq, url_t, url_s, url_m, url_z, url_l, url_o (or NULL)</td>
146 </tr>
147 <tr>
148 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
149 <td>NULL-terminated array of photo lists (prev, next) or non-0 on failure</td>
150 </tr>
151 </tbody>
152 </table></div>
153 </div>
154 <hr>
155 <div class="refsect2">
101156 <a name="flickcurl-favorites-getList"></a><h3>flickcurl_favorites_getList ()</h3>
102157 <pre class="programlisting"><a class="link" href="flickcurl-section-photo.html#flickcurl-photo" title="flickcurl_photo"><span class="returnvalue">flickcurl_photo</span></a> ** flickcurl_favorites_getList (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
103158 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>,
146201 <hr>
147202 <div class="refsect2">
148203 <a name="flickcurl-favorites-getList-params"></a><h3>flickcurl_favorites_getList_params ()</h3>
149 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_favorites_getList_params
204 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_favorites_getList_params
150205 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
151206 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>,
152207 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);</pre>
239294 <hr>
240295 <div class="refsect2">
241296 <a name="flickcurl-favorites-getPublicList-params"></a><h3>flickcurl_favorites_getPublicList_params ()</h3>
242 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_favorites_getPublicList_params
297 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_favorites_getPublicList_params
243298 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
244299 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>,
245300 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);</pre>
306361 </div>
307362 <div class="footer">
308363 <hr>
309 Generated by GTK-Doc V1.17</div>
364 Generated by GTK-Doc V1.18</div>
310365 </body>
311366 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Galleries</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-favorite.html" title="Favorites">
99 <link rel="next" href="flickcurl-section-group.html" title="Groups">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
6060 <em class="parameter"><code>const <span class="type">char</span> *gallery_id</code></em>,
6161 <em class="parameter"><code>const <span class="type">char</span> *primary_photo_id</code></em>,
6262 <em class="parameter"><code>const <span class="type">char</span> **photo_ids_array</code></em>);
63 <a class="link" href="flickcurl-section-gallery.html#flickcurl-gallery" title="flickcurl_gallery"><span class="returnvalue">flickcurl_gallery</span></a> * <a class="link" href="flickcurl-section-gallery.html#flickcurl-galleries-getInfo" title="flickcurl_galleries_getInfo ()">flickcurl_galleries_getInfo</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
63 <a class="link" href="flickcurl-section-gallery.html#flickcurl-gallery" title="flickcurl_gallery"><span class="returnvalue">flickcurl_gallery</span></a> * <a class="link" href="flickcurl-section-gallery.html#flickcurl-galleries-getInfo" title="flickcurl_galleries_getInfo ()">flickcurl_galleries_getInfo</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
6464 <em class="parameter"><code>const <span class="type">char</span> *gallery_id</code></em>);
65 <a class="link" href="flickcurl-section-gallery.html#flickcurl-gallery" title="flickcurl_gallery"><span class="returnvalue">flickcurl_gallery</span></a> ** <a class="link" href="flickcurl-section-gallery.html#flickcurl-galleries-getList" title="flickcurl_galleries_getList ()">flickcurl_galleries_getList</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
65 <a class="link" href="flickcurl-section-gallery.html#flickcurl-gallery" title="flickcurl_gallery"><span class="returnvalue">flickcurl_gallery</span></a> ** <a class="link" href="flickcurl-section-gallery.html#flickcurl-galleries-getList" title="flickcurl_galleries_getList ()">flickcurl_galleries_getList</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
6666 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>,
6767 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
6868 <em class="parameter"><code><span class="type">int</span> page</code></em>);
69 <a class="link" href="flickcurl-section-gallery.html#flickcurl-gallery" title="flickcurl_gallery"><span class="returnvalue">flickcurl_gallery</span></a> ** <a class="link" href="flickcurl-section-gallery.html#flickcurl-galleries-getListForPhoto" title="flickcurl_galleries_getListForPhoto ()">flickcurl_galleries_getListForPhoto</a>
69 <a class="link" href="flickcurl-section-gallery.html#flickcurl-gallery" title="flickcurl_gallery"><span class="returnvalue">flickcurl_gallery</span></a> ** <a class="link" href="flickcurl-section-gallery.html#flickcurl-galleries-getListForPhoto" title="flickcurl_galleries_getListForPhoto ()">flickcurl_galleries_getListForPhoto</a>
7070 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
7171 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>,
7272 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
7373 <em class="parameter"><code><span class="type">int</span> page</code></em>);
74 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-gallery.html#flickcurl-galleries-getPhotos-params" title="flickcurl_galleries_getPhotos_params ()">flickcurl_galleries_getPhotos_params</a>
74 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-gallery.html#flickcurl-galleries-getPhotos-params" title="flickcurl_galleries_getPhotos_params ()">flickcurl_galleries_getPhotos_params</a>
7575 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
7676 <em class="parameter"><code>const <span class="type">char</span> *gallery_id</code></em>,
7777 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);
408408 <hr>
409409 <div class="refsect2">
410410 <a name="flickcurl-galleries-getInfo"></a><h3>flickcurl_galleries_getInfo ()</h3>
411 <pre class="programlisting"><a class="link" href="flickcurl-section-gallery.html#flickcurl-gallery" title="flickcurl_gallery"><span class="returnvalue">flickcurl_gallery</span></a> * flickcurl_galleries_getInfo (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
411 <pre class="programlisting"><a class="link" href="flickcurl-section-gallery.html#flickcurl-gallery" title="flickcurl_gallery"><span class="returnvalue">flickcurl_gallery</span></a> * flickcurl_galleries_getInfo (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
412412 <em class="parameter"><code>const <span class="type">char</span> *gallery_id</code></em>);</pre>
413413 <p>
414414 Get information for a gallery.
441441 <hr>
442442 <div class="refsect2">
443443 <a name="flickcurl-galleries-getList"></a><h3>flickcurl_galleries_getList ()</h3>
444 <pre class="programlisting"><a class="link" href="flickcurl-section-gallery.html#flickcurl-gallery" title="flickcurl_gallery"><span class="returnvalue">flickcurl_gallery</span></a> ** flickcurl_galleries_getList (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
444 <pre class="programlisting"><a class="link" href="flickcurl-section-gallery.html#flickcurl-gallery" title="flickcurl_gallery"><span class="returnvalue">flickcurl_gallery</span></a> ** flickcurl_galleries_getList (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
445445 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>,
446446 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
447447 <em class="parameter"><code><span class="type">int</span> page</code></em>);</pre>
483483 <hr>
484484 <div class="refsect2">
485485 <a name="flickcurl-galleries-getListForPhoto"></a><h3>flickcurl_galleries_getListForPhoto ()</h3>
486 <pre class="programlisting"><a class="link" href="flickcurl-section-gallery.html#flickcurl-gallery" title="flickcurl_gallery"><span class="returnvalue">flickcurl_gallery</span></a> ** flickcurl_galleries_getListForPhoto
486 <pre class="programlisting"><a class="link" href="flickcurl-section-gallery.html#flickcurl-gallery" title="flickcurl_gallery"><span class="returnvalue">flickcurl_gallery</span></a> ** flickcurl_galleries_getListForPhoto
487487 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
488488 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>,
489489 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
527527 <hr>
528528 <div class="refsect2">
529529 <a name="flickcurl-galleries-getPhotos-params"></a><h3>flickcurl_galleries_getPhotos_params ()</h3>
530 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_galleries_getPhotos_params
530 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_galleries_getPhotos_params
531531 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
532532 <em class="parameter"><code>const <span class="type">char</span> *gallery_id</code></em>,
533533 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);</pre>
618618 </div>
619619 <div class="footer">
620620 <hr>
621 Generated by GTK-Doc V1.17</div>
621 Generated by GTK-Doc V1.18</div>
622622 </body>
623623 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>General</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-core.html" title="Core">
99 <link rel="next" href="flickcurl-auth.html" title="Authenticating Flickcurl">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
141141 </div>
142142 <div class="footer">
143143 <hr>
144 Generated by GTK-Doc V1.17</div>
144 Generated by GTK-Doc V1.18</div>
145145 </body>
146146 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Groups</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-gallery.html" title="Galleries">
99 <link rel="next" href="flickcurl-section-machinetags.html" title="Machine tag">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
3939 <pre class="synopsis"> <a class="link" href="flickcurl-section-group.html#flickcurl-group" title="flickcurl_group">flickcurl_group</a>;
4040 <span class="returnvalue">void</span> <a class="link" href="flickcurl-section-group.html#flickcurl-free-group" title="flickcurl_free_group ()">flickcurl_free_group</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-group.html#flickcurl-group" title="flickcurl_group"><span class="type">flickcurl_group</span></a> *group</code></em>);
4141 <span class="returnvalue">void</span> <a class="link" href="flickcurl-section-group.html#flickcurl-free-groups" title="flickcurl_free_groups ()">flickcurl_free_groups</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-group.html#flickcurl-group" title="flickcurl_group"><span class="type">flickcurl_group</span></a> **groups_object</code></em>);
42 <a class="link" href="flickcurl-section-category.html#flickcurl-category" title="flickcurl_category"><span class="returnvalue">flickcurl_category</span></a> * <a class="link" href="flickcurl-section-group.html#flickcurl-groups-browse" title="flickcurl_groups_browse ()">flickcurl_groups_browse</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
42 <a class="link" href="flickcurl-section-category.html#flickcurl-category" title="flickcurl_category"><span class="returnvalue">flickcurl_category</span></a> * <a class="link" href="flickcurl-section-group.html#flickcurl-groups-browse" title="flickcurl_groups_browse ()">flickcurl_groups_browse</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
4343 <em class="parameter"><code><span class="type">int</span> cat_id</code></em>);
4444 <a class="link" href="flickcurl-section-group.html#flickcurl-group" title="flickcurl_group"><span class="returnvalue">flickcurl_group</span></a> * <a class="link" href="flickcurl-section-group.html#flickcurl-groups-getInfo" title="flickcurl_groups_getInfo ()">flickcurl_groups_getInfo</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
4545 <em class="parameter"><code>const <span class="type">char</span> *group_id</code></em>,
4747 <a class="link" href="flickcurl-section-group.html#flickcurl-member" title="flickcurl_member">flickcurl_member</a>;
4848 <span class="returnvalue">void</span> <a class="link" href="flickcurl-section-group.html#flickcurl-free-member" title="flickcurl_free_member ()">flickcurl_free_member</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-group.html#flickcurl-member" title="flickcurl_member"><span class="type">flickcurl_member</span></a> *member_object</code></em>);
4949 <span class="returnvalue">void</span> <a class="link" href="flickcurl-section-group.html#flickcurl-free-members" title="flickcurl_free_members ()">flickcurl_free_members</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-group.html#flickcurl-member" title="flickcurl_member"><span class="type">flickcurl_member</span></a> **members_object</code></em>);
50 <a class="link" href="flickcurl-section-group.html#flickcurl-member" title="flickcurl_member"><span class="returnvalue">flickcurl_member</span></a> ** <a class="link" href="flickcurl-section-group.html#flickcurl-groups-members-getList" title="flickcurl_groups_members_getList ()">flickcurl_groups_members_getList</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
50 <a class="link" href="flickcurl-section-group.html#flickcurl-member" title="flickcurl_member"><span class="returnvalue">flickcurl_member</span></a> ** <a class="link" href="flickcurl-section-group.html#flickcurl-groups-members-getList" title="flickcurl_groups_members_getList ()">flickcurl_groups_members_getList</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
5151 <em class="parameter"><code>const <span class="type">char</span> *group_id</code></em>,
5252 <em class="parameter"><code>const <span class="type">char</span> *membertypes</code></em>,
5353 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
5555 <span class="returnvalue">int</span> <a class="link" href="flickcurl-section-group.html#flickcurl-groups-pools-add" title="flickcurl_groups_pools_add ()">flickcurl_groups_pools_add</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
5656 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>,
5757 <em class="parameter"><code>const <span class="type">char</span> *group_id</code></em>);
58 <a class="link" href="flickcurl-section-context.html#flickcurl-context" title="flickcurl_context"><span class="returnvalue">flickcurl_context</span></a> ** <a class="link" href="flickcurl-section-group.html#flickcurl-groups-pools-getContext" title="flickcurl_groups_pools_getContext ()">flickcurl_groups_pools_getContext</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
58 <a class="link" href="flickcurl-section-context.html#flickcurl-context" title="flickcurl_context"><span class="returnvalue">flickcurl_context</span></a> ** <a class="link" href="flickcurl-section-group.html#flickcurl-groups-pools-getContext" title="flickcurl_groups_pools_getContext ()">flickcurl_groups_pools_getContext</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
5959 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>,
6060 <em class="parameter"><code>const <span class="type">char</span> *group_id</code></em>);
6161 <a class="link" href="flickcurl-section-group.html#flickcurl-group" title="flickcurl_group"><span class="returnvalue">flickcurl_group</span></a> ** <a class="link" href="flickcurl-section-group.html#flickcurl-groups-pools-getGroups" title="flickcurl_groups_pools_getGroups ()">flickcurl_groups_pools_getGroups</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
6868 <em class="parameter"><code>const <span class="type">char</span> *extras</code></em>,
6969 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
7070 <em class="parameter"><code><span class="type">int</span> page</code></em>);
71 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-group.html#flickcurl-groups-pools-getPhotos-params" title="flickcurl_groups_pools_getPhotos_params ()">flickcurl_groups_pools_getPhotos_params</a>
71 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-group.html#flickcurl-groups-pools-getPhotos-params" title="flickcurl_groups_pools_getPhotos_params ()">flickcurl_groups_pools_getPhotos_params</a>
7272 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
7373 <em class="parameter"><code>const <span class="type">char</span> *group_id</code></em>,
7474 <em class="parameter"><code>const <span class="type">char</span> *tags</code></em>,
208208 <hr>
209209 <div class="refsect2">
210210 <a name="flickcurl-groups-browse"></a><h3>flickcurl_groups_browse ()</h3>
211 <pre class="programlisting"><a class="link" href="flickcurl-section-category.html#flickcurl-category" title="flickcurl_category"><span class="returnvalue">flickcurl_category</span></a> * flickcurl_groups_browse (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
211 <pre class="programlisting"><a class="link" href="flickcurl-section-category.html#flickcurl-category" title="flickcurl_category"><span class="returnvalue">flickcurl_category</span></a> * flickcurl_groups_browse (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
212212 <em class="parameter"><code><span class="type">int</span> cat_id</code></em>);</pre>
213213 <p>
214214 Browse the group category tree, finding groups and sub-categories.
341341 <hr>
342342 <div class="refsect2">
343343 <a name="flickcurl-groups-members-getList"></a><h3>flickcurl_groups_members_getList ()</h3>
344 <pre class="programlisting"><a class="link" href="flickcurl-section-group.html#flickcurl-member" title="flickcurl_member"><span class="returnvalue">flickcurl_member</span></a> ** flickcurl_groups_members_getList (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
344 <pre class="programlisting"><a class="link" href="flickcurl-section-group.html#flickcurl-member" title="flickcurl_member"><span class="returnvalue">flickcurl_member</span></a> ** flickcurl_groups_members_getList (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
345345 <em class="parameter"><code>const <span class="type">char</span> *group_id</code></em>,
346346 <em class="parameter"><code>const <span class="type">char</span> *membertypes</code></em>,
347347 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
426426 <hr>
427427 <div class="refsect2">
428428 <a name="flickcurl-groups-pools-getContext"></a><h3>flickcurl_groups_pools_getContext ()</h3>
429 <pre class="programlisting"><a class="link" href="flickcurl-section-context.html#flickcurl-context" title="flickcurl_context"><span class="returnvalue">flickcurl_context</span></a> ** flickcurl_groups_pools_getContext (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
429 <pre class="programlisting"><a class="link" href="flickcurl-section-context.html#flickcurl-context" title="flickcurl_context"><span class="returnvalue">flickcurl_context</span></a> ** flickcurl_groups_pools_getContext (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
430430 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>,
431431 <em class="parameter"><code>const <span class="type">char</span> *group_id</code></em>);</pre>
432432 <p>
553553 <hr>
554554 <div class="refsect2">
555555 <a name="flickcurl-groups-pools-getPhotos-params"></a><h3>flickcurl_groups_pools_getPhotos_params ()</h3>
556 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_groups_pools_getPhotos_params
556 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_groups_pools_getPhotos_params
557557 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
558558 <em class="parameter"><code>const <span class="type">char</span> *group_id</code></em>,
559559 <em class="parameter"><code>const <span class="type">char</span> *tags</code></em>,
680680 </div>
681681 <div class="footer">
682682 <hr>
683 Generated by GTK-Doc V1.17</div>
683 Generated by GTK-Doc V1.18</div>
684684 </body>
685685 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Machine tag</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-group.html" title="Groups">
99 <link rel="next" href="flickcurl-section-misc.html" title="Miscellaneous">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
4242 <span class="returnvalue">void</span> <a class="link" href="flickcurl-section-machinetags.html#flickcurl-free-tag-namespaces" title="flickcurl_free_tag_namespaces ()">flickcurl_free_tag_namespaces</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-namespace" title="flickcurl_tag_namespace"><span class="type">flickcurl_tag_namespace</span></a> **tag_nspaces</code></em>);
4343 <span class="returnvalue">void</span> <a class="link" href="flickcurl-section-machinetags.html#flickcurl-free-tag-predicate-value" title="flickcurl_free_tag_predicate_value ()">flickcurl_free_tag_predicate_value</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-predicate-value" title="flickcurl_tag_predicate_value"><span class="type">flickcurl_tag_predicate_value</span></a> *tag_pv</code></em>);
4444 <span class="returnvalue">void</span> <a class="link" href="flickcurl-section-machinetags.html#flickcurl-free-tag-predicate-values" title="flickcurl_free_tag_predicate_values ()">flickcurl_free_tag_predicate_values</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-predicate-value" title="flickcurl_tag_predicate_value"><span class="type">flickcurl_tag_predicate_value</span></a> **tag_pvs</code></em>);
45 <a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-namespace" title="flickcurl_tag_namespace"><span class="returnvalue">flickcurl_tag_namespace</span></a> ** <a class="link" href="flickcurl-section-machinetags.html#flickcurl-machinetags-getNamespaces" title="flickcurl_machinetags_getNamespaces ()">flickcurl_machinetags_getNamespaces</a>
45 <a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-namespace" title="flickcurl_tag_namespace"><span class="returnvalue">flickcurl_tag_namespace</span></a> ** <a class="link" href="flickcurl-section-machinetags.html#flickcurl-machinetags-getNamespaces" title="flickcurl_machinetags_getNamespaces ()">flickcurl_machinetags_getNamespaces</a>
4646 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
4747 <em class="parameter"><code>const <span class="type">char</span> *predicate</code></em>,
4848 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
4949 <em class="parameter"><code><span class="type">int</span> page</code></em>);
50 <a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-predicate-value" title="flickcurl_tag_predicate_value"><span class="returnvalue">flickcurl_tag_predicate_value</span></a> ** <a class="link" href="flickcurl-section-machinetags.html#flickcurl-machinetags-getPairs" title="flickcurl_machinetags_getPairs ()">flickcurl_machinetags_getPairs</a>
50 <a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-predicate-value" title="flickcurl_tag_predicate_value"><span class="returnvalue">flickcurl_tag_predicate_value</span></a> ** <a class="link" href="flickcurl-section-machinetags.html#flickcurl-machinetags-getPairs" title="flickcurl_machinetags_getPairs ()">flickcurl_machinetags_getPairs</a>
5151 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
5252 <em class="parameter"><code>const <span class="type">char</span> *nspace</code></em>,
5353 <em class="parameter"><code>const <span class="type">char</span> *predicate</code></em>,
5454 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
5555 <em class="parameter"><code><span class="type">int</span> page</code></em>);
56 <a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-predicate-value" title="flickcurl_tag_predicate_value"><span class="returnvalue">flickcurl_tag_predicate_value</span></a> ** <a class="link" href="flickcurl-section-machinetags.html#flickcurl-machinetags-getPredicates" title="flickcurl_machinetags_getPredicates ()">flickcurl_machinetags_getPredicates</a>
56 <a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-predicate-value" title="flickcurl_tag_predicate_value"><span class="returnvalue">flickcurl_tag_predicate_value</span></a> ** <a class="link" href="flickcurl-section-machinetags.html#flickcurl-machinetags-getPredicates" title="flickcurl_machinetags_getPredicates ()">flickcurl_machinetags_getPredicates</a>
5757 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
5858 <em class="parameter"><code>const <span class="type">char</span> *nspace</code></em>,
5959 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
6060 <em class="parameter"><code><span class="type">int</span> page</code></em>);
61 <a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-predicate-value" title="flickcurl_tag_predicate_value"><span class="returnvalue">flickcurl_tag_predicate_value</span></a> ** <a class="link" href="flickcurl-section-machinetags.html#flickcurl-machinetags-getRecentValues" title="flickcurl_machinetags_getRecentValues ()">flickcurl_machinetags_getRecentValues</a>
61 <a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-predicate-value" title="flickcurl_tag_predicate_value"><span class="returnvalue">flickcurl_tag_predicate_value</span></a> ** <a class="link" href="flickcurl-section-machinetags.html#flickcurl-machinetags-getRecentValues" title="flickcurl_machinetags_getRecentValues ()">flickcurl_machinetags_getRecentValues</a>
6262 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
6363 <em class="parameter"><code>const <span class="type">char</span> *nspace</code></em>,
6464 <em class="parameter"><code>const <span class="type">char</span> *predicate</code></em>,
6565 <em class="parameter"><code><span class="type">int</span> added_since</code></em>);
66 <a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-predicate-value" title="flickcurl_tag_predicate_value"><span class="returnvalue">flickcurl_tag_predicate_value</span></a> ** <a class="link" href="flickcurl-section-machinetags.html#flickcurl-machinetags-getValues" title="flickcurl_machinetags_getValues ()">flickcurl_machinetags_getValues</a>
66 <a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-predicate-value" title="flickcurl_tag_predicate_value"><span class="returnvalue">flickcurl_tag_predicate_value</span></a> ** <a class="link" href="flickcurl-section-machinetags.html#flickcurl-machinetags-getValues" title="flickcurl_machinetags_getValues ()">flickcurl_machinetags_getValues</a>
6767 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
6868 <em class="parameter"><code>const <span class="type">char</span> *nspace</code></em>,
6969 <em class="parameter"><code>const <span class="type">char</span> *predicate</code></em>,
206206 <hr>
207207 <div class="refsect2">
208208 <a name="flickcurl-machinetags-getNamespaces"></a><h3>flickcurl_machinetags_getNamespaces ()</h3>
209 <pre class="programlisting"><a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-namespace" title="flickcurl_tag_namespace"><span class="returnvalue">flickcurl_tag_namespace</span></a> ** flickcurl_machinetags_getNamespaces
209 <pre class="programlisting"><a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-namespace" title="flickcurl_tag_namespace"><span class="returnvalue">flickcurl_tag_namespace</span></a> ** flickcurl_machinetags_getNamespaces
210210 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
211211 <em class="parameter"><code>const <span class="type">char</span> *predicate</code></em>,
212212 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
252252 <hr>
253253 <div class="refsect2">
254254 <a name="flickcurl-machinetags-getPairs"></a><h3>flickcurl_machinetags_getPairs ()</h3>
255 <pre class="programlisting"><a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-predicate-value" title="flickcurl_tag_predicate_value"><span class="returnvalue">flickcurl_tag_predicate_value</span></a> ** flickcurl_machinetags_getPairs
255 <pre class="programlisting"><a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-predicate-value" title="flickcurl_tag_predicate_value"><span class="returnvalue">flickcurl_tag_predicate_value</span></a> ** flickcurl_machinetags_getPairs
256256 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
257257 <em class="parameter"><code>const <span class="type">char</span> *nspace</code></em>,
258258 <em class="parameter"><code>const <span class="type">char</span> *predicate</code></em>,
303303 <hr>
304304 <div class="refsect2">
305305 <a name="flickcurl-machinetags-getPredicates"></a><h3>flickcurl_machinetags_getPredicates ()</h3>
306 <pre class="programlisting"><a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-predicate-value" title="flickcurl_tag_predicate_value"><span class="returnvalue">flickcurl_tag_predicate_value</span></a> ** flickcurl_machinetags_getPredicates
306 <pre class="programlisting"><a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-predicate-value" title="flickcurl_tag_predicate_value"><span class="returnvalue">flickcurl_tag_predicate_value</span></a> ** flickcurl_machinetags_getPredicates
307307 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
308308 <em class="parameter"><code>const <span class="type">char</span> *nspace</code></em>,
309309 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
349349 <hr>
350350 <div class="refsect2">
351351 <a name="flickcurl-machinetags-getRecentValues"></a><h3>flickcurl_machinetags_getRecentValues ()</h3>
352 <pre class="programlisting"><a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-predicate-value" title="flickcurl_tag_predicate_value"><span class="returnvalue">flickcurl_tag_predicate_value</span></a> ** flickcurl_machinetags_getRecentValues
352 <pre class="programlisting"><a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-predicate-value" title="flickcurl_tag_predicate_value"><span class="returnvalue">flickcurl_tag_predicate_value</span></a> ** flickcurl_machinetags_getRecentValues
353353 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
354354 <em class="parameter"><code>const <span class="type">char</span> *nspace</code></em>,
355355 <em class="parameter"><code>const <span class="type">char</span> *predicate</code></em>,
389389 <hr>
390390 <div class="refsect2">
391391 <a name="flickcurl-machinetags-getValues"></a><h3>flickcurl_machinetags_getValues ()</h3>
392 <pre class="programlisting"><a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-predicate-value" title="flickcurl_tag_predicate_value"><span class="returnvalue">flickcurl_tag_predicate_value</span></a> ** flickcurl_machinetags_getValues
392 <pre class="programlisting"><a class="link" href="flickcurl-section-machinetags.html#flickcurl-tag-predicate-value" title="flickcurl_tag_predicate_value"><span class="returnvalue">flickcurl_tag_predicate_value</span></a> ** flickcurl_machinetags_getValues
393393 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
394394 <em class="parameter"><code>const <span class="type">char</span> *nspace</code></em>,
395395 <em class="parameter"><code>const <span class="type">char</span> *predicate</code></em>,
441441 </div>
442442 <div class="footer">
443443 <hr>
444 Generated by GTK-Doc V1.17</div>
444 Generated by GTK-Doc V1.18</div>
445445 </body>
446446 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Miscellaneous</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-machinetags.html" title="Machine tag">
99 <link rel="next" href="flickcurl-section-note.html" title="Notes.">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
5353 <em class="parameter"><code>const <span class="type">char</span> *extras</code></em>,
5454 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
5555 <em class="parameter"><code><span class="type">int</span> page</code></em>);
56 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-misc.html#flickcurl-interestingness-getList-params" title="flickcurl_interestingness_getList_params ()">flickcurl_interestingness_getList_params</a>
56 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-misc.html#flickcurl-interestingness-getList-params" title="flickcurl_interestingness_getList_params ()">flickcurl_interestingness_getList_params</a>
5757 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
5858 <em class="parameter"><code>const <span class="type">char</span> *date</code></em>,
5959 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);
6161 const <span class="returnvalue">char</span> * <a class="link" href="flickcurl-section-misc.html#flickcurl-get-content-type-label" title="flickcurl_get_content_type_label ()">flickcurl_get_content_type_label</a> (<em class="parameter"><code><span class="type">int</span> content_type</code></em>);
6262 <span class="returnvalue">int</span> <a class="link" href="flickcurl-section-misc.html#flickcurl-get-content-type-from-string" title="flickcurl_get_content_type_from_string ()">flickcurl_get_content_type_from_string</a>
6363 (<em class="parameter"><code>const <span class="type">char</span> *content_type_string</code></em>);
64 const <span class="returnvalue">char</span> * <a class="link" href="flickcurl-section-misc.html#flickcurl-get-hidden-label" title="flickcurl_get_hidden_label ()">flickcurl_get_hidden_label</a> (<em class="parameter"><code><span class="type">int</span> hidden</code></em>);
65 <span class="returnvalue">int</span> <a class="link" href="flickcurl-section-misc.html#flickcurl-get-hidden-from-string" title="flickcurl_get_hidden_from_string ()">flickcurl_get_hidden_from_string</a> (<em class="parameter"><code>const <span class="type">char</span> *hidden_string</code></em>);
6466 const <span class="returnvalue">char</span> * <a class="link" href="flickcurl-section-misc.html#flickcurl-get-safety-level-label" title="flickcurl_get_safety_level_label ()">flickcurl_get_safety_level_label</a> (<em class="parameter"><code><span class="type">int</span> safety_level</code></em>);
6567 <span class="returnvalue">int</span> <a class="link" href="flickcurl-section-misc.html#flickcurl-get-safety-level-from-string" title="flickcurl_get_safety_level_from_string ()">flickcurl_get_safety_level_from_string</a>
6668 (<em class="parameter"><code>const <span class="type">char</span> *safety_level_string</code></em>);
379381 <hr>
380382 <div class="refsect2">
381383 <a name="flickcurl-interestingness-getList-params"></a><h3>flickcurl_interestingness_getList_params ()</h3>
382 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_interestingness_getList_params
384 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_interestingness_getList_params
383385 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
384386 <em class="parameter"><code>const <span class="type">char</span> *date</code></em>,
385387 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);</pre>
495497 </div>
496498 <hr>
497499 <div class="refsect2">
500 <a name="flickcurl-get-hidden-label"></a><h3>flickcurl_get_hidden_label ()</h3>
501 <pre class="programlisting">const <span class="returnvalue">char</span> * flickcurl_get_hidden_label (<em class="parameter"><code><span class="type">int</span> hidden</code></em>);</pre>
502 <p>
503 Get label for a hidden status
504 </p>
505 <div class="variablelist"><table border="0">
506 <col align="left" valign="top">
507 <tbody>
508 <tr>
509 <td><p><span class="term"><em class="parameter"><code>hidden</code></em> :</span></p></td>
510 <td>safety level index</td>
511 </tr>
512 <tr>
513 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
514 <td>pointer to shared string label for hidden status or "unknown"</td>
515 </tr>
516 </tbody>
517 </table></div>
518 </div>
519 <hr>
520 <div class="refsect2">
521 <a name="flickcurl-get-hidden-from-string"></a><h3>flickcurl_get_hidden_from_string ()</h3>
522 <pre class="programlisting"><span class="returnvalue">int</span> flickcurl_get_hidden_from_string (<em class="parameter"><code>const <span class="type">char</span> *hidden_string</code></em>);</pre>
523 <p>
524 Get the enumeration value for a hidden status string.
525 </p>
526 <p>
527 Parses the string value into a safety level either from an
528 integer form like '1' or a label like 'hidden'.
529 </p>
530 <div class="variablelist"><table border="0">
531 <col align="left" valign="top">
532 <tbody>
533 <tr>
534 <td><p><span class="term"><em class="parameter"><code>hidden_string</code></em> :</span></p></td>
535 <td>string</td>
536 </tr>
537 <tr>
538 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
539 <td>safety level enumeration value or &lt;0 on error</td>
540 </tr>
541 </tbody>
542 </table></div>
543 </div>
544 <hr>
545 <div class="refsect2">
498546 <a name="flickcurl-get-safety-level-label"></a><h3>flickcurl_get_safety_level_label ()</h3>
499547 <pre class="programlisting">const <span class="returnvalue">char</span> * flickcurl_get_safety_level_label (<em class="parameter"><code><span class="type">int</span> safety_level</code></em>);</pre>
500548 <p>
585633 </div>
586634 <div class="footer">
587635 <hr>
588 Generated by GTK-Doc V1.17</div>
636 Generated by GTK-Doc V1.18</div>
589637 </body>
590638 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Notes.</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-misc.html" title="Miscellaneous">
99 <link rel="next" href="flickcurl-section-panda.html" title="Panda photos">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
108108 </div>
109109 <div class="footer">
110110 <hr>
111 Generated by GTK-Doc V1.17</div>
111 Generated by GTK-Doc V1.18</div>
112112 </body>
113113 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Panda photos</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-note.html" title="Notes.">
99 <link rel="next" href="flickcurl-section-people.html" title="People">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
9797 http://code.flickr.com/blog/2009/03/03/panda-tuesday-the-history-of-the-panda-new-apis-explore-and-you/
9898 </p>
9999 <p>
100 Only "supports the following extras: ownername, license,
101 date_upload, date_taken, tags, machine_tags, views, media" -
102 Sergey M., Flickr staff 2011-09-16
103 http://tech.groups.yahoo.com/group/yws-flickr/message/7203
104 </p>
105 <p>
100106 Implements flickr.panda.getPhotos (1.9)
101107 </p>
102108 <div class="variablelist"><table border="0">
121127 </div>
122128 <div class="footer">
123129 <hr>
124 Generated by GTK-Doc V1.17</div>
130 Generated by GTK-Doc V1.18</div>
125131 </body>
126132 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>People</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-panda.html" title="Panda photos">
99 <link rel="next" href="flickcurl-section-person.html" title="Person class.">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
5454 <em class="parameter"><code>const <span class="type">char</span> *extras</code></em>,
5555 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
5656 <em class="parameter"><code><span class="type">int</span> page</code></em>);
57 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-people.html#flickcurl-people-getPhotos-params" title="flickcurl_people_getPhotos_params ()">flickcurl_people_getPhotos_params</a>
57 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-people.html#flickcurl-people-getPhotos-params" title="flickcurl_people_getPhotos_params ()">flickcurl_people_getPhotos_params</a>
5858 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
5959 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>,
6060 <em class="parameter"><code><span class="type">int</span> safe_search</code></em>,
7070 <em class="parameter"><code>const <span class="type">char</span> *extras</code></em>,
7171 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
7272 <em class="parameter"><code><span class="type">int</span> page</code></em>);
73 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-people.html#flickcurl-people-getPhotosOf-params" title="flickcurl_people_getPhotosOf_params ()">flickcurl_people_getPhotosOf_params</a>
73 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-people.html#flickcurl-people-getPhotosOf-params" title="flickcurl_people_getPhotosOf_params ()">flickcurl_people_getPhotosOf_params</a>
7474 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
7575 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>,
7676 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);
8181 <em class="parameter"><code>const <span class="type">char</span> *extras</code></em>,
8282 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
8383 <em class="parameter"><code><span class="type">int</span> page</code></em>);
84 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-people.html#flickcurl-people-getPublicPhotos-params" title="flickcurl_people_getPublicPhotos_params ()">flickcurl_people_getPublicPhotos_params</a>
84 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-people.html#flickcurl-people-getPublicPhotos-params" title="flickcurl_people_getPublicPhotos_params ()">flickcurl_people_getPublicPhotos_params</a>
8585 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
8686 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>,
8787 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);
88 <a class="link" href="flickcurl-section-upload.html#flickcurl-user-upload-status" title="flickcurl_user_upload_status"><span class="returnvalue">flickcurl_user_upload_status</span></a> * <a class="link" href="flickcurl-section-people.html#flickcurl-people-getUploadStatus" title="flickcurl_people_getUploadStatus ()">flickcurl_people_getUploadStatus</a>
88 <a class="link" href="flickcurl-section-upload.html#flickcurl-user-upload-status" title="flickcurl_user_upload_status"><span class="returnvalue">flickcurl_user_upload_status</span></a> * <a class="link" href="flickcurl-section-people.html#flickcurl-people-getUploadStatus" title="flickcurl_people_getUploadStatus ()">flickcurl_people_getUploadStatus</a>
8989 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>);
9090 </pre>
9191 </div>
275275 <hr>
276276 <div class="refsect2">
277277 <a name="flickcurl-people-getPhotos-params"></a><h3>flickcurl_people_getPhotos_params ()</h3>
278 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_people_getPhotos_params
278 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_people_getPhotos_params
279279 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
280280 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>,
281281 <em class="parameter"><code><span class="type">int</span> safe_search</code></em>,
396396 <hr>
397397 <div class="refsect2">
398398 <a name="flickcurl-people-getPhotosOf-params"></a><h3>flickcurl_people_getPhotosOf_params ()</h3>
399 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_people_getPhotosOf_params
399 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_people_getPhotosOf_params
400400 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
401401 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>,
402402 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);</pre>
509509 <hr>
510510 <div class="refsect2">
511511 <a name="flickcurl-people-getPublicPhotos-params"></a><h3>flickcurl_people_getPublicPhotos_params ()</h3>
512 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_people_getPublicPhotos_params
512 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_people_getPublicPhotos_params
513513 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
514514 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>,
515515 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);</pre>
551551 <hr>
552552 <div class="refsect2">
553553 <a name="flickcurl-people-getUploadStatus"></a><h3>flickcurl_people_getUploadStatus ()</h3>
554 <pre class="programlisting"><a class="link" href="flickcurl-section-upload.html#flickcurl-user-upload-status" title="flickcurl_user_upload_status"><span class="returnvalue">flickcurl_user_upload_status</span></a> * flickcurl_people_getUploadStatus
554 <pre class="programlisting"><a class="link" href="flickcurl-section-upload.html#flickcurl-user-upload-status" title="flickcurl_user_upload_status"><span class="returnvalue">flickcurl_user_upload_status</span></a> * flickcurl_people_getUploadStatus
555555 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>);</pre>
556556 <p>
557557 Returns information for the calling user related to photo uploads.
577577 </div>
578578 <div class="footer">
579579 <hr>
580 Generated by GTK-Doc V1.17</div>
580 Generated by GTK-Doc V1.18</div>
581581 </body>
582582 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Person class.</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-people.html" title="People">
99 <link rel="next" href="flickcurl-section-photo.html" title="Photo">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
291291 </div>
292292 <div class="footer">
293293 <hr>
294 Generated by GTK-Doc V1.17</div>
294 Generated by GTK-Doc V1.18</div>
295295 </body>
296296 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Photo</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-person.html" title="Person class.">
99 <link rel="next" href="flickcurl-section-photos-people.html" title="Photos containing people.">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
6464 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
6565 <em class="parameter"><code>const <span class="type">char</span> *comment_id</code></em>,
6666 <em class="parameter"><code>const <span class="type">char</span> *comment_text</code></em>);
67 <a class="link" href="flickcurl-section-comment.html#flickcurl-comment" title="flickcurl_comment"><span class="returnvalue">flickcurl_comment</span></a> ** <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-comments-getList" title="flickcurl_photos_comments_getList ()">flickcurl_photos_comments_getList</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
67 <a class="link" href="flickcurl-section-comment.html#flickcurl-comment" title="flickcurl_comment"><span class="returnvalue">flickcurl_comment</span></a> ** <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-comments-getList" title="flickcurl_photos_comments_getList ()">flickcurl_photos_comments_getList</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
6868 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>);
69 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-comments-getRecentForContacts-params" title="flickcurl_photos_comments_getRecentForContacts_params ()">flickcurl_photos_comments_getRecentForContacts_params</a>
69 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-comments-getRecentForContacts-params" title="flickcurl_photos_comments_getRecentForContacts_params ()">flickcurl_photos_comments_getRecentForContacts_params</a>
7070 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
7171 <em class="parameter"><code><span class="type">int</span> date_lastcomment</code></em>,
7272 <em class="parameter"><code>const <span class="type">char</span> *contacts_filter</code></em>,
8383 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>,
8484 <em class="parameter"><code>const <span class="type">char</span> *place_id</code></em>,
8585 <em class="parameter"><code><span class="type">int</span> woe_id</code></em>);
86 <a class="link" href="flickcurl-section-misc.html#flickcurl-location" title="flickcurl_location"><span class="returnvalue">flickcurl_location</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-geo-getLocation" title="flickcurl_photos_geo_getLocation ()">flickcurl_photos_geo_getLocation</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
86 <a class="link" href="flickcurl-section-misc.html#flickcurl-location" title="flickcurl_location"><span class="returnvalue">flickcurl_location</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-geo-getLocation" title="flickcurl_photos_geo_getLocation ()">flickcurl_photos_geo_getLocation</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
8787 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>);
8888 <a class="link" href="flickcurl-section-misc.html#flickcurl-perms" title="flickcurl_perms"><span class="returnvalue">flickcurl_perms</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-geo-getPerms" title="flickcurl_photos_geo_getPerms ()">flickcurl_photos_geo_getPerms</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
8989 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>);
9393 <em class="parameter"><code>const <span class="type">char</span> *extras</code></em>,
9494 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
9595 <em class="parameter"><code><span class="type">int</span> page</code></em>);
96 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-geo-photosForLocation-params" title="flickcurl_photos_geo_photosForLocation_params ()">flickcurl_photos_geo_photosForLocation_params</a>
96 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-geo-photosForLocation-params" title="flickcurl_photos_geo_photosForLocation_params ()">flickcurl_photos_geo_photosForLocation_params</a>
9797 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
9898 <em class="parameter"><code><a class="link" href="flickcurl-section-misc.html#flickcurl-location" title="flickcurl_location"><span class="type">flickcurl_location</span></a> *location</code></em>,
9999 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);
108108 <span class="returnvalue">int</span> <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-geo-setPerms" title="flickcurl_photos_geo_setPerms ()">flickcurl_photos_geo_setPerms</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
109109 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>,
110110 <em class="parameter"><code><a class="link" href="flickcurl-section-misc.html#flickcurl-perms" title="flickcurl_perms"><span class="type">flickcurl_perms</span></a> *perms</code></em>);
111 <a class="link" href="flickcurl-section-context.html#flickcurl-context" title="flickcurl_context"><span class="returnvalue">flickcurl_context</span></a> ** <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getAllContexts" title="flickcurl_photos_getAllContexts ()">flickcurl_photos_getAllContexts</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
111 <a class="link" href="flickcurl-section-context.html#flickcurl-context" title="flickcurl_context"><span class="returnvalue">flickcurl_context</span></a> ** <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getAllContexts" title="flickcurl_photos_getAllContexts ()">flickcurl_photos_getAllContexts</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
112112 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>);
113113 <a class="link" href="flickcurl-section-photo.html#flickcurl-photo" title="flickcurl_photo"><span class="returnvalue">flickcurl_photo</span></a> ** <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getContactsPhotos" title="flickcurl_photos_getContactsPhotos ()">flickcurl_photos_getContactsPhotos</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
114114 <em class="parameter"><code><span class="type">int</span> contact_count</code></em>,
116116 <em class="parameter"><code><span class="type">int</span> single_photo</code></em>,
117117 <em class="parameter"><code><span class="type">int</span> include_self</code></em>,
118118 <em class="parameter"><code>const <span class="type">char</span> *extras</code></em>);
119 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getContactsPhotos-params" title="flickcurl_photos_getContactsPhotos_params ()">flickcurl_photos_getContactsPhotos_params</a>
119 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getContactsPhotos-params" title="flickcurl_photos_getContactsPhotos_params ()">flickcurl_photos_getContactsPhotos_params</a>
120120 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
121121 <em class="parameter"><code><span class="type">int</span> contact_count</code></em>,
122122 <em class="parameter"><code><span class="type">int</span> just_friends</code></em>,
131131 <em class="parameter"><code><span class="type">int</span> single_photo</code></em>,
132132 <em class="parameter"><code><span class="type">int</span> include_self</code></em>,
133133 <em class="parameter"><code>const <span class="type">char</span> *extras</code></em>);
134 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getContactsPublicPhotos-params" title="flickcurl_photos_getContactsPublicPhotos_params ()">flickcurl_photos_getContactsPublicPhotos_params</a>
134 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getContactsPublicPhotos-params" title="flickcurl_photos_getContactsPublicPhotos_params ()">flickcurl_photos_getContactsPublicPhotos_params</a>
135135 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
136136 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>,
137137 <em class="parameter"><code><span class="type">int</span> photo_count</code></em>,
139139 <em class="parameter"><code><span class="type">int</span> single_photo</code></em>,
140140 <em class="parameter"><code><span class="type">int</span> include_self</code></em>,
141141 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);
142 <a class="link" href="flickcurl-section-context.html#flickcurl-context" title="flickcurl_context"><span class="returnvalue">flickcurl_context</span></a> ** <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getContext" title="flickcurl_photos_getContext ()">flickcurl_photos_getContext</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
142 <a class="link" href="flickcurl-section-context.html#flickcurl-context" title="flickcurl_context"><span class="returnvalue">flickcurl_context</span></a> ** <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getContext" title="flickcurl_photos_getContext ()">flickcurl_photos_getContext</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
143143 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>);
144144 <span class="returnvalue">int</span> ** <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getCounts" title="flickcurl_photos_getCounts ()">flickcurl_photos_getCounts</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
145145 <em class="parameter"><code>const <span class="type">char</span> **dates_array</code></em>,
147147 <a class="link" href="flickcurl-section-exif.html#flickcurl-exif" title="flickcurl_exif"><span class="returnvalue">flickcurl_exif</span></a> ** <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getExif" title="flickcurl_photos_getExif ()">flickcurl_photos_getExif</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
148148 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>,
149149 <em class="parameter"><code>const <span class="type">char</span> *secret</code></em>);
150 <a class="link" href="flickcurl-section-person.html#flickcurl-person" title="flickcurl_person"><span class="returnvalue">flickcurl_person</span></a> ** <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getFavorites" title="flickcurl_photos_getFavorites ()">flickcurl_photos_getFavorites</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
150 <a class="link" href="flickcurl-section-person.html#flickcurl-person" title="flickcurl_person"><span class="returnvalue">flickcurl_person</span></a> ** <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getFavorites" title="flickcurl_photos_getFavorites ()">flickcurl_photos_getFavorites</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
151151 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>,
152152 <em class="parameter"><code><span class="type">int</span> page</code></em>,
153153 <em class="parameter"><code><span class="type">int</span> per_page</code></em>);
162162 <em class="parameter"><code>const <span class="type">char</span> *extras</code></em>,
163163 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
164164 <em class="parameter"><code><span class="type">int</span> page</code></em>);
165 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getNotInSet-params" title="flickcurl_photos_getNotInSet_params ()">flickcurl_photos_getNotInSet_params</a>
165 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getNotInSet-params" title="flickcurl_photos_getNotInSet_params ()">flickcurl_photos_getNotInSet_params</a>
166166 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
167167 <em class="parameter"><code><span class="type">int</span> min_upload_date</code></em>,
168168 <em class="parameter"><code><span class="type">int</span> max_upload_date</code></em>,
176176 <em class="parameter"><code>const <span class="type">char</span> *extras</code></em>,
177177 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
178178 <em class="parameter"><code><span class="type">int</span> page</code></em>);
179 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getRecent-params" title="flickcurl_photos_getRecent_params ()">flickcurl_photos_getRecent_params</a>
179 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getRecent-params" title="flickcurl_photos_getRecent_params ()">flickcurl_photos_getRecent_params</a>
180180 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
181181 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);
182182 <a class="link" href="flickcurl-section-misc.html#flickcurl-size" title="flickcurl_size"><span class="returnvalue">flickcurl_size</span></a> ** <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getSizes" title="flickcurl_photos_getSizes ()">flickcurl_photos_getSizes</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
190190 <em class="parameter"><code>const <span class="type">char</span> *extras</code></em>,
191191 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
192192 <em class="parameter"><code><span class="type">int</span> page</code></em>);
193 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getUntagged-params" title="flickcurl_photos_getUntagged_params ()">flickcurl_photos_getUntagged_params</a>
193 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getUntagged-params" title="flickcurl_photos_getUntagged_params ()">flickcurl_photos_getUntagged_params</a>
194194 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
195195 <em class="parameter"><code><span class="type">int</span> min_upload_date</code></em>,
196196 <em class="parameter"><code><span class="type">int</span> max_upload_date</code></em>,
207207 <em class="parameter"><code>const <span class="type">char</span> *extras</code></em>,
208208 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
209209 <em class="parameter"><code><span class="type">int</span> page</code></em>);
210 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getWithGeoData-params" title="flickcurl_photos_getWithGeoData_params ()">flickcurl_photos_getWithGeoData_params</a>
210 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getWithGeoData-params" title="flickcurl_photos_getWithGeoData_params ()">flickcurl_photos_getWithGeoData_params</a>
211211 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
212212 <em class="parameter"><code><span class="type">int</span> min_upload_date</code></em>,
213213 <em class="parameter"><code><span class="type">int</span> max_upload_date</code></em>,
224224 <em class="parameter"><code>const <span class="type">char</span> *extras</code></em>,
225225 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
226226 <em class="parameter"><code><span class="type">int</span> page</code></em>);
227 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getWithoutGeoData-params" title="flickcurl_photos_getWithoutGeoData_params ()">flickcurl_photos_getWithoutGeoData_params</a>
227 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-getWithoutGeoData-params" title="flickcurl_photos_getWithoutGeoData_params ()">flickcurl_photos_getWithoutGeoData_params</a>
228228 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
229229 <em class="parameter"><code><span class="type">int</span> min_upload_date</code></em>,
230230 <em class="parameter"><code><span class="type">int</span> max_upload_date</code></em>,
232232 <em class="parameter"><code>const <span class="type">char</span> *max_taken_date</code></em>,
233233 <em class="parameter"><code><span class="type">int</span> privacy_filter</code></em>,
234234 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);
235 <a class="link" href="flickcurl-section-misc.html#flickcurl-license" title="flickcurl_license"><span class="returnvalue">flickcurl_license</span></a> ** <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-licenses-getInfo" title="flickcurl_photos_licenses_getInfo ()">flickcurl_photos_licenses_getInfo</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>);
236 <a class="link" href="flickcurl-section-misc.html#flickcurl-license" title="flickcurl_license"><span class="returnvalue">flickcurl_license</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-licenses-getInfo-by-id" title="flickcurl_photos_licenses_getInfo_by_id ()">flickcurl_photos_licenses_getInfo_by_id</a>
235 <a class="link" href="flickcurl-section-misc.html#flickcurl-license" title="flickcurl_license"><span class="returnvalue">flickcurl_license</span></a> ** <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-licenses-getInfo" title="flickcurl_photos_licenses_getInfo ()">flickcurl_photos_licenses_getInfo</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>);
236 <a class="link" href="flickcurl-section-misc.html#flickcurl-license" title="flickcurl_license"><span class="returnvalue">flickcurl_license</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-licenses-getInfo-by-id" title="flickcurl_photos_licenses_getInfo_by_id ()">flickcurl_photos_licenses_getInfo_by_id</a>
237237 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
238238 <em class="parameter"><code><span class="type">int</span> id</code></em>);
239239 <span class="returnvalue">int</span> <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-licenses-setLicense" title="flickcurl_photos_licenses_setLicense ()">flickcurl_photos_licenses_setLicense</a>
261261 <em class="parameter"><code>const <span class="type">char</span> *extras</code></em>,
262262 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
263263 <em class="parameter"><code><span class="type">int</span> page</code></em>);
264 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-recentlyUpdated-params" title="flickcurl_photos_recentlyUpdated_params ()">flickcurl_photos_recentlyUpdated_params</a>
264 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-recentlyUpdated-params" title="flickcurl_photos_recentlyUpdated_params ()">flickcurl_photos_recentlyUpdated_params</a>
265265 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
266266 <em class="parameter"><code><span class="type">int</span> min_date</code></em>,
267267 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);
268268 <span class="returnvalue">int</span> <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-removeTag" title="flickcurl_photos_removeTag ()">flickcurl_photos_removeTag</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
269269 <em class="parameter"><code>const <span class="type">char</span> *tag_id</code></em>);
270 <a class="link" href="flickcurl-section-upload.html#flickcurl-upload-status" title="flickcurl_upload_status"><span class="returnvalue">flickcurl_upload_status</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-replace" title="flickcurl_photos_replace ()">flickcurl_photos_replace</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
270 <a class="link" href="flickcurl-section-upload.html#flickcurl-upload-status" title="flickcurl_upload_status"><span class="returnvalue">flickcurl_upload_status</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-replace" title="flickcurl_photos_replace ()">flickcurl_photos_replace</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
271271 <em class="parameter"><code>const <span class="type">char</span> *photo_file</code></em>,
272272 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>,
273273 <em class="parameter"><code><span class="type">int</span> async</code></em>);
274274 <a class="link" href="flickcurl-section-photo.html#flickcurl-photo" title="flickcurl_photo"><span class="returnvalue">flickcurl_photo</span></a> ** <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-search" title="flickcurl_photos_search ()">flickcurl_photos_search</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
275275 <em class="parameter"><code><a class="link" href="flickcurl-section-photo.html#flickcurl-search-params" title="flickcurl_search_params"><span class="type">flickcurl_search_params</span></a> *params</code></em>);
276 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-search-params" title="flickcurl_photos_search_params ()">flickcurl_photos_search_params</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
276 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-search-params" title="flickcurl_photos_search_params ()">flickcurl_photos_search_params</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
277277 <em class="parameter"><code><a class="link" href="flickcurl-section-photo.html#flickcurl-search-params" title="flickcurl_search_params"><span class="type">flickcurl_search_params</span></a> *params</code></em>,
278278 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);
279279 <a class="link" href="flickcurl-section-photo.html#flickcurl-search-params" title="flickcurl_search_params">flickcurl_search_params</a>;
303303 <span class="returnvalue">int</span> <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-transform-rotate" title="flickcurl_photos_transform_rotate ()">flickcurl_photos_transform_rotate</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
304304 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>,
305305 <em class="parameter"><code><span class="type">int</span> degrees</code></em>);
306 <a class="link" href="flickcurl-section-upload.html#flickcurl-ticket" title="flickcurl_ticket"><span class="returnvalue">flickcurl_ticket</span></a> ** <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-upload-checkTickets" title="flickcurl_photos_upload_checkTickets ()">flickcurl_photos_upload_checkTickets</a>
306 <a class="link" href="flickcurl-section-upload.html#flickcurl-ticket" title="flickcurl_ticket"><span class="returnvalue">flickcurl_ticket</span></a> ** <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-upload-checkTickets" title="flickcurl_photos_upload_checkTickets ()">flickcurl_photos_upload_checkTickets</a>
307307 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
308308 <em class="parameter"><code>const <span class="type">char</span> **tickets_ids</code></em>);
309 <a class="link" href="flickcurl-section-upload.html#flickcurl-upload-status" title="flickcurl_upload_status"><span class="returnvalue">flickcurl_upload_status</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-upload-params" title="flickcurl_photos_upload_params ()">flickcurl_photos_upload_params</a>
309 <a class="link" href="flickcurl-section-upload.html#flickcurl-upload-status" title="flickcurl_upload_status"><span class="returnvalue">flickcurl_upload_status</span></a> * <a class="link" href="flickcurl-section-photo.html#flickcurl-photos-upload-params" title="flickcurl_photos_upload_params ()">flickcurl_photos_upload_params</a>
310310 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
311311 <em class="parameter"><code><a class="link" href="flickcurl-section-upload.html#flickcurl-upload-params" title="flickcurl_upload_params"><span class="type">flickcurl_upload_params</span></a> *params</code></em>);
312312 </pre>
12771277 <hr>
12781278 <div class="refsect2">
12791279 <a name="flickcurl-photos-comments-getList"></a><h3>flickcurl_photos_comments_getList ()</h3>
1280 <pre class="programlisting"><a class="link" href="flickcurl-section-comment.html#flickcurl-comment" title="flickcurl_comment"><span class="returnvalue">flickcurl_comment</span></a> ** flickcurl_photos_comments_getList (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
1280 <pre class="programlisting"><a class="link" href="flickcurl-section-comment.html#flickcurl-comment" title="flickcurl_comment"><span class="returnvalue">flickcurl_comment</span></a> ** flickcurl_photos_comments_getList (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
12811281 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>);</pre>
12821282 <p>
12831283 Returns the comments for a photo
13061306 <hr>
13071307 <div class="refsect2">
13081308 <a name="flickcurl-photos-comments-getRecentForContacts-params"></a><h3>flickcurl_photos_comments_getRecentForContacts_params ()</h3>
1309 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photos_comments_getRecentForContacts_params
1309 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photos_comments_getRecentForContacts_params
13101310 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
13111311 <em class="parameter"><code><span class="type">int</span> date_lastcomment</code></em>,
13121312 <em class="parameter"><code>const <span class="type">char</span> *contacts_filter</code></em>,
14691469 <hr>
14701470 <div class="refsect2">
14711471 <a name="flickcurl-photos-geo-getLocation"></a><h3>flickcurl_photos_geo_getLocation ()</h3>
1472 <pre class="programlisting"><a class="link" href="flickcurl-section-misc.html#flickcurl-location" title="flickcurl_location"><span class="returnvalue">flickcurl_location</span></a> * flickcurl_photos_geo_getLocation (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
1472 <pre class="programlisting"><a class="link" href="flickcurl-section-misc.html#flickcurl-location" title="flickcurl_location"><span class="returnvalue">flickcurl_location</span></a> * flickcurl_photos_geo_getLocation (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
14731473 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>);</pre>
14741474 <p>
14751475 Get the geo data (latitude and longitude and the accuracy level) for a photo.
15731573 <hr>
15741574 <div class="refsect2">
15751575 <a name="flickcurl-photos-geo-photosForLocation-params"></a><h3>flickcurl_photos_geo_photosForLocation_params ()</h3>
1576 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photos_geo_photosForLocation_params
1576 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photos_geo_photosForLocation_params
15771577 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
15781578 <em class="parameter"><code><a class="link" href="flickcurl-section-misc.html#flickcurl-location" title="flickcurl_location"><span class="type">flickcurl_location</span></a> *location</code></em>,
15791579 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);</pre>
17431743 <hr>
17441744 <div class="refsect2">
17451745 <a name="flickcurl-photos-getAllContexts"></a><h3>flickcurl_photos_getAllContexts ()</h3>
1746 <pre class="programlisting"><a class="link" href="flickcurl-section-context.html#flickcurl-context" title="flickcurl_context"><span class="returnvalue">flickcurl_context</span></a> ** flickcurl_photos_getAllContexts (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
1746 <pre class="programlisting"><a class="link" href="flickcurl-section-context.html#flickcurl-context" title="flickcurl_context"><span class="returnvalue">flickcurl_context</span></a> ** flickcurl_photos_getAllContexts (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
17471747 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>);</pre>
17481748 <p>
17491749 Get all visible sets and pools the photo belongs to.
18281828 <hr>
18291829 <div class="refsect2">
18301830 <a name="flickcurl-photos-getContactsPhotos-params"></a><h3>flickcurl_photos_getContactsPhotos_params ()</h3>
1831 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photos_getContactsPhotos_params
1831 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photos_getContactsPhotos_params
18321832 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
18331833 <em class="parameter"><code><span class="type">int</span> contact_count</code></em>,
18341834 <em class="parameter"><code><span class="type">int</span> just_friends</code></em>,
19431943 <hr>
19441944 <div class="refsect2">
19451945 <a name="flickcurl-photos-getContactsPublicPhotos-params"></a><h3>flickcurl_photos_getContactsPublicPhotos_params ()</h3>
1946 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photos_getContactsPublicPhotos_params
1946 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photos_getContactsPublicPhotos_params
19471947 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
19481948 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>,
19491949 <em class="parameter"><code><span class="type">int</span> photo_count</code></em>,
20052005 <hr>
20062006 <div class="refsect2">
20072007 <a name="flickcurl-photos-getContext"></a><h3>flickcurl_photos_getContext ()</h3>
2008 <pre class="programlisting"><a class="link" href="flickcurl-section-context.html#flickcurl-context" title="flickcurl_context"><span class="returnvalue">flickcurl_context</span></a> ** flickcurl_photos_getContext (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
2008 <pre class="programlisting"><a class="link" href="flickcurl-section-context.html#flickcurl-context" title="flickcurl_context"><span class="returnvalue">flickcurl_context</span></a> ** flickcurl_photos_getContext (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
20092009 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>);</pre>
20102010 <p>
20112011 Get next and previous photos for a photo in a photostream.
21152115 <hr>
21162116 <div class="refsect2">
21172117 <a name="flickcurl-photos-getFavorites"></a><h3>flickcurl_photos_getFavorites ()</h3>
2118 <pre class="programlisting"><a class="link" href="flickcurl-section-person.html#flickcurl-person" title="flickcurl_person"><span class="returnvalue">flickcurl_person</span></a> ** flickcurl_photos_getFavorites (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
2118 <pre class="programlisting"><a class="link" href="flickcurl-section-person.html#flickcurl-person" title="flickcurl_person"><span class="returnvalue">flickcurl_person</span></a> ** flickcurl_photos_getFavorites (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
21192119 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>,
21202120 <em class="parameter"><code><span class="type">int</span> page</code></em>,
21212121 <em class="parameter"><code><span class="type">int</span> per_page</code></em>);</pre>
22532253 <hr>
22542254 <div class="refsect2">
22552255 <a name="flickcurl-photos-getNotInSet-params"></a><h3>flickcurl_photos_getNotInSet_params ()</h3>
2256 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photos_getNotInSet_params
2256 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photos_getNotInSet_params
22572257 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
22582258 <em class="parameter"><code><span class="type">int</span> min_upload_date</code></em>,
22592259 <em class="parameter"><code><span class="type">int</span> max_upload_date</code></em>,
23822382 <hr>
23832383 <div class="refsect2">
23842384 <a name="flickcurl-photos-getRecent-params"></a><h3>flickcurl_photos_getRecent_params ()</h3>
2385 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photos_getRecent_params
2385 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photos_getRecent_params
23862386 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
23872387 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);</pre>
23882388 <p>
25172517 <hr>
25182518 <div class="refsect2">
25192519 <a name="flickcurl-photos-getUntagged-params"></a><h3>flickcurl_photos_getUntagged_params ()</h3>
2520 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photos_getUntagged_params
2520 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photos_getUntagged_params
25212521 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
25222522 <em class="parameter"><code><span class="type">int</span> min_upload_date</code></em>,
25232523 <em class="parameter"><code><span class="type">int</span> max_upload_date</code></em>,
26492649 <hr>
26502650 <div class="refsect2">
26512651 <a name="flickcurl-photos-getWithGeoData-params"></a><h3>flickcurl_photos_getWithGeoData_params ()</h3>
2652 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photos_getWithGeoData_params
2652 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photos_getWithGeoData_params
26532653 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
26542654 <em class="parameter"><code><span class="type">int</span> min_upload_date</code></em>,
26552655 <em class="parameter"><code><span class="type">int</span> max_upload_date</code></em>,
27802780 <hr>
27812781 <div class="refsect2">
27822782 <a name="flickcurl-photos-getWithoutGeoData-params"></a><h3>flickcurl_photos_getWithoutGeoData_params ()</h3>
2783 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photos_getWithoutGeoData_params
2783 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photos_getWithoutGeoData_params
27842784 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
27852785 <em class="parameter"><code><span class="type">int</span> min_upload_date</code></em>,
27862786 <em class="parameter"><code><span class="type">int</span> max_upload_date</code></em>,
28392839 <hr>
28402840 <div class="refsect2">
28412841 <a name="flickcurl-photos-licenses-getInfo"></a><h3>flickcurl_photos_licenses_getInfo ()</h3>
2842 <pre class="programlisting"><a class="link" href="flickcurl-section-misc.html#flickcurl-license" title="flickcurl_license"><span class="returnvalue">flickcurl_license</span></a> ** flickcurl_photos_licenses_getInfo (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>);</pre>
2842 <pre class="programlisting"><a class="link" href="flickcurl-section-misc.html#flickcurl-license" title="flickcurl_license"><span class="returnvalue">flickcurl_license</span></a> ** flickcurl_photos_licenses_getInfo (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>);</pre>
28432843 <p>
28442844 Get a list of available photo licenses for Flickr.
28452845 </p>
28632863 <hr>
28642864 <div class="refsect2">
28652865 <a name="flickcurl-photos-licenses-getInfo-by-id"></a><h3>flickcurl_photos_licenses_getInfo_by_id ()</h3>
2866 <pre class="programlisting"><a class="link" href="flickcurl-section-misc.html#flickcurl-license" title="flickcurl_license"><span class="returnvalue">flickcurl_license</span></a> * flickcurl_photos_licenses_getInfo_by_id
2866 <pre class="programlisting"><a class="link" href="flickcurl-section-misc.html#flickcurl-license" title="flickcurl_license"><span class="returnvalue">flickcurl_license</span></a> * flickcurl_photos_licenses_getInfo_by_id
28672867 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
28682868 <em class="parameter"><code><span class="type">int</span> id</code></em>);</pre>
28692869 <p>
31163116 <hr>
31173117 <div class="refsect2">
31183118 <a name="flickcurl-photos-recentlyUpdated-params"></a><h3>flickcurl_photos_recentlyUpdated_params ()</h3>
3119 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photos_recentlyUpdated_params
3119 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photos_recentlyUpdated_params
31203120 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
31213121 <em class="parameter"><code><span class="type">int</span> min_date</code></em>,
31223122 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);</pre>
31953195 <hr>
31963196 <div class="refsect2">
31973197 <a name="flickcurl-photos-replace"></a><h3>flickcurl_photos_replace ()</h3>
3198 <pre class="programlisting"><a class="link" href="flickcurl-section-upload.html#flickcurl-upload-status" title="flickcurl_upload_status"><span class="returnvalue">flickcurl_upload_status</span></a> * flickcurl_photos_replace (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
3198 <pre class="programlisting"><a class="link" href="flickcurl-section-upload.html#flickcurl-upload-status" title="flickcurl_upload_status"><span class="returnvalue">flickcurl_upload_status</span></a> * flickcurl_photos_replace (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
31993199 <em class="parameter"><code>const <span class="type">char</span> *photo_file</code></em>,
32003200 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>,
32013201 <em class="parameter"><code><span class="type">int</span> async</code></em>);</pre>
32843284 <hr>
32853285 <div class="refsect2">
32863286 <a name="flickcurl-photos-search-params"></a><h3>flickcurl_photos_search_params ()</h3>
3287 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photos_search_params (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
3287 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photos_search_params (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
32883288 <em class="parameter"><code><a class="link" href="flickcurl-section-photo.html#flickcurl-search-params" title="flickcurl_search_params"><span class="type">flickcurl_search_params</span></a> *params</code></em>,
32893289 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);</pre>
32903290 <p>
38353835 <hr>
38363836 <div class="refsect2">
38373837 <a name="flickcurl-photos-upload-checkTickets"></a><h3>flickcurl_photos_upload_checkTickets ()</h3>
3838 <pre class="programlisting"><a class="link" href="flickcurl-section-upload.html#flickcurl-ticket" title="flickcurl_ticket"><span class="returnvalue">flickcurl_ticket</span></a> ** flickcurl_photos_upload_checkTickets
3838 <pre class="programlisting"><a class="link" href="flickcurl-section-upload.html#flickcurl-ticket" title="flickcurl_ticket"><span class="returnvalue">flickcurl_ticket</span></a> ** flickcurl_photos_upload_checkTickets
38393839 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
38403840 <em class="parameter"><code>const <span class="type">char</span> **tickets_ids</code></em>);</pre>
38413841 <p>
38653865 <hr>
38663866 <div class="refsect2">
38673867 <a name="flickcurl-photos-upload-params"></a><h3>flickcurl_photos_upload_params ()</h3>
3868 <pre class="programlisting"><a class="link" href="flickcurl-section-upload.html#flickcurl-upload-status" title="flickcurl_upload_status"><span class="returnvalue">flickcurl_upload_status</span></a> * flickcurl_photos_upload_params
3868 <pre class="programlisting"><a class="link" href="flickcurl-section-upload.html#flickcurl-upload-status" title="flickcurl_upload_status"><span class="returnvalue">flickcurl_upload_status</span></a> * flickcurl_photos_upload_params
38693869 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
38703870 <em class="parameter"><code><a class="link" href="flickcurl-section-upload.html#flickcurl-upload-params" title="flickcurl_upload_params"><span class="type">flickcurl_upload_params</span></a> *params</code></em>);</pre>
38713871 <p>
38943894 </div>
38953895 <div class="footer">
38963896 <hr>
3897 Generated by GTK-Doc V1.17</div>
3897 Generated by GTK-Doc V1.18</div>
38983898 </body>
38993899 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Photos containing people.</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-photo.html" title="Photo">
99 <link rel="next" href="flickcurl-section-photoslist.html" title="Photos List">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
5757 <em class="parameter"><code><span class="type">int</span> person_y</code></em>,
5858 <em class="parameter"><code><span class="type">int</span> person_w</code></em>,
5959 <em class="parameter"><code><span class="type">int</span> person_h</code></em>);
60 <a class="link" href="flickcurl-section-person.html#flickcurl-person" title="flickcurl_person"><span class="returnvalue">flickcurl_person</span></a> ** <a class="link" href="flickcurl-section-photos-people.html#flickcurl-photos-people-getList" title="flickcurl_photos_people_getList ()">flickcurl_photos_people_getList</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
60 <a class="link" href="flickcurl-section-person.html#flickcurl-person" title="flickcurl_person"><span class="returnvalue">flickcurl_person</span></a> ** <a class="link" href="flickcurl-section-photos-people.html#flickcurl-photos-people-getList" title="flickcurl_photos_people_getList ()">flickcurl_photos_people_getList</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
6161 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>);
6262 </pre>
6363 </div>
264264 <hr>
265265 <div class="refsect2">
266266 <a name="flickcurl-photos-people-getList"></a><h3>flickcurl_photos_people_getList ()</h3>
267 <pre class="programlisting"><a class="link" href="flickcurl-section-person.html#flickcurl-person" title="flickcurl_person"><span class="returnvalue">flickcurl_person</span></a> ** flickcurl_photos_people_getList (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
267 <pre class="programlisting"><a class="link" href="flickcurl-section-person.html#flickcurl-person" title="flickcurl_person"><span class="returnvalue">flickcurl_person</span></a> ** flickcurl_photos_people_getList (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
268268 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>);</pre>
269269 <p>
270270 Get a list of people in a given photo.
298298 </div>
299299 <div class="footer">
300300 <hr>
301 Generated by GTK-Doc V1.17</div>
301 Generated by GTK-Doc V1.18</div>
302302 </body>
303303 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Photoset</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-photoslist.html" title="Photos List">
99 <link rel="next" href="flickcurl-section-place.html" title="Place">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
5353 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
5454 <em class="parameter"><code>const <span class="type">char</span> *comment_id</code></em>,
5555 <em class="parameter"><code>const <span class="type">char</span> *comment_text</code></em>);
56 <a class="link" href="flickcurl-section-comment.html#flickcurl-comment" title="flickcurl_comment"><span class="returnvalue">flickcurl_comment</span></a> ** <a class="link" href="flickcurl-section-photoset.html#flickcurl-photosets-comments-getList" title="flickcurl_photosets_comments_getList ()">flickcurl_photosets_comments_getList</a>
56 <a class="link" href="flickcurl-section-comment.html#flickcurl-comment" title="flickcurl_comment"><span class="returnvalue">flickcurl_comment</span></a> ** <a class="link" href="flickcurl-section-photoset.html#flickcurl-photosets-comments-getList" title="flickcurl_photosets_comments_getList ()">flickcurl_photosets_comments_getList</a>
5757 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
5858 <em class="parameter"><code>const <span class="type">char</span> *photoset_id</code></em>);
5959 <span class="returnvalue">char</span> * <a class="link" href="flickcurl-section-photoset.html#flickcurl-photosets-create" title="flickcurl_photosets_create ()">flickcurl_photosets_create</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
7171 <em class="parameter"><code>const <span class="type">char</span> *photoset_id</code></em>,
7272 <em class="parameter"><code>const <span class="type">char</span> *primary_photo_id</code></em>,
7373 <em class="parameter"><code>const <span class="type">char</span> **photo_ids_array</code></em>);
74 <a class="link" href="flickcurl-section-context.html#flickcurl-context" title="flickcurl_context"><span class="returnvalue">flickcurl_context</span></a> ** <a class="link" href="flickcurl-section-photoset.html#flickcurl-photosets-getContext" title="flickcurl_photosets_getContext ()">flickcurl_photosets_getContext</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
74 <a class="link" href="flickcurl-section-context.html#flickcurl-context" title="flickcurl_context"><span class="returnvalue">flickcurl_context</span></a> ** <a class="link" href="flickcurl-section-photoset.html#flickcurl-photosets-getContext" title="flickcurl_photosets_getContext ()">flickcurl_photosets_getContext</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
7575 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>,
7676 <em class="parameter"><code>const <span class="type">char</span> *photoset_id</code></em>);
77 <a class="link" href="flickcurl-section-photoset.html#flickcurl-photoset" title="flickcurl_photoset"><span class="returnvalue">flickcurl_photoset</span></a> * <a class="link" href="flickcurl-section-photoset.html#flickcurl-photosets-getInfo" title="flickcurl_photosets_getInfo ()">flickcurl_photosets_getInfo</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
77 <a class="link" href="flickcurl-section-photoset.html#flickcurl-photoset" title="flickcurl_photoset"><span class="returnvalue">flickcurl_photoset</span></a> * <a class="link" href="flickcurl-section-photoset.html#flickcurl-photosets-getInfo" title="flickcurl_photosets_getInfo ()">flickcurl_photosets_getInfo</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
7878 <em class="parameter"><code>const <span class="type">char</span> *photoset_id</code></em>);
79 <a class="link" href="flickcurl-section-photoset.html#flickcurl-photoset" title="flickcurl_photoset"><span class="returnvalue">flickcurl_photoset</span></a> ** <a class="link" href="flickcurl-section-photoset.html#flickcurl-photosets-getList" title="flickcurl_photosets_getList ()">flickcurl_photosets_getList</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
79 <a class="link" href="flickcurl-section-photoset.html#flickcurl-photoset" title="flickcurl_photoset"><span class="returnvalue">flickcurl_photoset</span></a> ** <a class="link" href="flickcurl-section-photoset.html#flickcurl-photosets-getList" title="flickcurl_photosets_getList ()">flickcurl_photosets_getList</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
8080 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>);
8181 <a class="link" href="flickcurl-section-photo.html#flickcurl-photo" title="flickcurl_photo"><span class="returnvalue">flickcurl_photo</span></a> ** <a class="link" href="flickcurl-section-photoset.html#flickcurl-photosets-getPhotos" title="flickcurl_photosets_getPhotos ()">flickcurl_photosets_getPhotos</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
8282 <em class="parameter"><code>const <span class="type">char</span> *photoset_id</code></em>,
8484 <em class="parameter"><code><span class="type">int</span> privacy_filter</code></em>,
8585 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
8686 <em class="parameter"><code><span class="type">int</span> page</code></em>);
87 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photoset.html#flickcurl-photosets-getPhotos-params" title="flickcurl_photosets_getPhotos_params ()">flickcurl_photosets_getPhotos_params</a>
87 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-photoset.html#flickcurl-photosets-getPhotos-params" title="flickcurl_photosets_getPhotos_params ()">flickcurl_photosets_getPhotos_params</a>
8888 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
8989 <em class="parameter"><code>const <span class="type">char</span> *photoset_id</code></em>,
9090 <em class="parameter"><code><span class="type">int</span> privacy_filter</code></em>,
125125 char* title;
126126 char *description;
127127 struct flickcurl_photo_s** photos;
128 char *owner;
128129 } flickcurl_photoset;
129130 </pre>
130131 <p>
168169 <tr>
169170 <td><p><span class="term">struct <span class="type">flickcurl_photo_s</span> **<em class="structfield"><code><a name="flickcurl-photoset.photos"></a>photos</code></em>;</span></p></td>
170171 <td>photos in a photoset (may be NULL)</td>
172 </tr>
173 <tr>
174 <td><p><span class="term"><span class="type">char</span> *<em class="structfield"><code><a name="flickcurl-photoset.owner"></a>owner</code></em>;</span></p></td>
175 <td>owner NSID</td>
171176 </tr>
172177 </tbody>
173178 </table></div>
339344 <hr>
340345 <div class="refsect2">
341346 <a name="flickcurl-photosets-comments-getList"></a><h3>flickcurl_photosets_comments_getList ()</h3>
342 <pre class="programlisting"><a class="link" href="flickcurl-section-comment.html#flickcurl-comment" title="flickcurl_comment"><span class="returnvalue">flickcurl_comment</span></a> ** flickcurl_photosets_comments_getList
347 <pre class="programlisting"><a class="link" href="flickcurl-section-comment.html#flickcurl-comment" title="flickcurl_comment"><span class="returnvalue">flickcurl_comment</span></a> ** flickcurl_photosets_comments_getList
343348 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
344349 <em class="parameter"><code>const <span class="type">char</span> *photoset_id</code></em>);</pre>
345350 <p>
523528 <hr>
524529 <div class="refsect2">
525530 <a name="flickcurl-photosets-getContext"></a><h3>flickcurl_photosets_getContext ()</h3>
526 <pre class="programlisting"><a class="link" href="flickcurl-section-context.html#flickcurl-context" title="flickcurl_context"><span class="returnvalue">flickcurl_context</span></a> ** flickcurl_photosets_getContext (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
531 <pre class="programlisting"><a class="link" href="flickcurl-section-context.html#flickcurl-context" title="flickcurl_context"><span class="returnvalue">flickcurl_context</span></a> ** flickcurl_photosets_getContext (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
527532 <em class="parameter"><code>const <span class="type">char</span> *photo_id</code></em>,
528533 <em class="parameter"><code>const <span class="type">char</span> *photoset_id</code></em>);</pre>
529534 <p>
558563 <hr>
559564 <div class="refsect2">
560565 <a name="flickcurl-photosets-getInfo"></a><h3>flickcurl_photosets_getInfo ()</h3>
561 <pre class="programlisting"><a class="link" href="flickcurl-section-photoset.html#flickcurl-photoset" title="flickcurl_photoset"><span class="returnvalue">flickcurl_photoset</span></a> * flickcurl_photosets_getInfo (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
566 <pre class="programlisting"><a class="link" href="flickcurl-section-photoset.html#flickcurl-photoset" title="flickcurl_photoset"><span class="returnvalue">flickcurl_photoset</span></a> * flickcurl_photosets_getInfo (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
562567 <em class="parameter"><code>const <span class="type">char</span> *photoset_id</code></em>);</pre>
563568 <p>
564569 Gets information about a photoset.
587592 <hr>
588593 <div class="refsect2">
589594 <a name="flickcurl-photosets-getList"></a><h3>flickcurl_photosets_getList ()</h3>
590 <pre class="programlisting"><a class="link" href="flickcurl-section-photoset.html#flickcurl-photoset" title="flickcurl_photoset"><span class="returnvalue">flickcurl_photoset</span></a> ** flickcurl_photosets_getList (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
595 <pre class="programlisting"><a class="link" href="flickcurl-section-photoset.html#flickcurl-photoset" title="flickcurl_photoset"><span class="returnvalue">flickcurl_photoset</span></a> ** flickcurl_photosets_getList (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
591596 <em class="parameter"><code>const <span class="type">char</span> *user_id</code></em>);</pre>
592597 <p>
593598 Returns the photosets belonging to the specified user.
668673 <hr>
669674 <div class="refsect2">
670675 <a name="flickcurl-photosets-getPhotos-params"></a><h3>flickcurl_photosets_getPhotos_params ()</h3>
671 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photosets_getPhotos_params
676 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_photosets_getPhotos_params
672677 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
673678 <em class="parameter"><code>const <span class="type">char</span> *photoset_id</code></em>,
674679 <em class="parameter"><code><span class="type">int</span> privacy_filter</code></em>,
881886 </div>
882887 <div class="footer">
883888 <hr>
884 Generated by GTK-Doc V1.17</div>
889 Generated by GTK-Doc V1.18</div>
885890 </body>
886891 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Photos List</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-photos-people.html" title="Photos containing people.">
99 <link rel="next" href="flickcurl-section-photoset.html" title="Photoset">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
193193 </div>
194194 <div class="footer">
195195 <hr>
196 Generated by GTK-Doc V1.17</div>
196 Generated by GTK-Doc V1.18</div>
197197 </body>
198198 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Place</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-photoset.html" title="Photoset">
99 <link rel="next" href="flickcurl-section-prefs.html" title="Preferences">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
4343 <a class="link" href="flickcurl-section-place.html#flickcurl-place-type-info" title="flickcurl_place_type_info">flickcurl_place_type_info</a>;
4444 <span class="returnvalue">int</span> <a class="link" href="flickcurl-section-place.html#flickcurl-place-type-to-id" title="flickcurl_place_type_to_id ()">flickcurl_place_type_to_id</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-place.html#flickcurl-place-type" title="enum flickcurl_place_type"><span class="type">flickcurl_place_type</span></a> place_type</code></em>);
4545 <span class="returnvalue">void</span> <a class="link" href="flickcurl-section-place.html#flickcurl-free-place-type-infos" title="flickcurl_free_place_type_infos ()">flickcurl_free_place_type_infos</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-place.html#flickcurl-place-type-info" title="flickcurl_place_type_info"><span class="type">flickcurl_place_type_info</span></a> **ptis_object</code></em>);
46 <a class="link" href="flickcurl-section-place.html#flickcurl-place-type" title="enum flickcurl_place_type"><span class="returnvalue">flickcurl_place_type</span></a> <a class="link" href="flickcurl-section-place.html#flickcurl-get-place-type-by-label" title="flickcurl_get_place_type_by_label ()">flickcurl_get_place_type_by_label</a> (<em class="parameter"><code>const <span class="type">char</span> *place_label</code></em>);
46 <a class="link" href="flickcurl-section-place.html#flickcurl-place-type" title="enum flickcurl_place_type"><span class="returnvalue">flickcurl_place_type</span></a> <a class="link" href="flickcurl-section-place.html#flickcurl-get-place-type-by-label" title="flickcurl_get_place_type_by_label ()">flickcurl_get_place_type_by_label</a> (<em class="parameter"><code>const <span class="type">char</span> *place_label</code></em>);
4747 const <span class="returnvalue">char</span> * <a class="link" href="flickcurl-section-place.html#flickcurl-get-place-type-label" title="flickcurl_get_place_type_label ()">flickcurl_get_place_type_label</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-place.html#flickcurl-place-type" title="enum flickcurl_place_type"><span class="type">flickcurl_place_type</span></a> place_type</code></em>);
4848 <a class="link" href="flickcurl-section-place.html#flickcurl-place" title="flickcurl_place"><span class="returnvalue">flickcurl_place</span></a> ** <a class="link" href="flickcurl-section-place.html#flickcurl-places-find" title="flickcurl_places_find ()">flickcurl_places_find</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
4949 <em class="parameter"><code>const <span class="type">char</span> *query</code></em>);
7272 <em class="parameter"><code>const <span class="type">int</span> woe_id</code></em>);
7373 <a class="link" href="flickcurl-section-place.html#flickcurl-place" title="flickcurl_place"><span class="returnvalue">flickcurl_place</span></a> * <a class="link" href="flickcurl-section-place.html#flickcurl-places-getInfoByUrl" title="flickcurl_places_getInfoByUrl ()">flickcurl_places_getInfoByUrl</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
7474 <em class="parameter"><code>const <span class="type">char</span> *url</code></em>);
75 <a class="link" href="flickcurl-section-place.html#flickcurl-place-type-info" title="flickcurl_place_type_info"><span class="returnvalue">flickcurl_place_type_info</span></a> ** <a class="link" href="flickcurl-section-place.html#flickcurl-places-getPlaceTypes" title="flickcurl_places_getPlaceTypes ()">flickcurl_places_getPlaceTypes</a>
75 <a class="link" href="flickcurl-section-place.html#flickcurl-place-type-info" title="flickcurl_place_type_info"><span class="returnvalue">flickcurl_place_type_info</span></a> ** <a class="link" href="flickcurl-section-place.html#flickcurl-places-getPlaceTypes" title="flickcurl_places_getPlaceTypes ()">flickcurl_places_getPlaceTypes</a>
7676 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>);
77 <span class="returnvalue">flickcurl_shapedata</span> ** <a class="link" href="flickcurl-section-place.html#flickcurl-places-getShapeHistory" title="flickcurl_places_getShapeHistory ()">flickcurl_places_getShapeHistory</a>
78 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
77 <span class="returnvalue">flickcurl_shapedata</span> ** <a class="link" href="flickcurl-section-place.html#flickcurl-places-getShapeHistory" title="flickcurl_places_getShapeHistory ()">flickcurl_places_getShapeHistory</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
7978 <em class="parameter"><code>const <span class="type">char</span> *place_id</code></em>,
8079 <em class="parameter"><code><span class="type">int</span> woe_id</code></em>);
8180 <a class="link" href="flickcurl-section-place.html#flickcurl-place" title="flickcurl_place"><span class="returnvalue">flickcurl_place</span></a> ** <a class="link" href="flickcurl-section-place.html#flickcurl-places-getTopPlacesList" title="flickcurl_places_getTopPlacesList ()">flickcurl_places_getTopPlacesList</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
8382 <em class="parameter"><code>const <span class="type">char</span> *date</code></em>,
8483 <em class="parameter"><code><span class="type">int</span> woe_id</code></em>,
8584 <em class="parameter"><code>const <span class="type">char</span> *place_id</code></em>);
86 <a class="link" href="flickcurl-section-place.html#flickcurl-place-type" title="enum flickcurl_place_type"><span class="returnvalue">flickcurl_place_type</span></a> <a class="link" href="flickcurl-section-place.html#flickcurl-place-id-to-type" title="flickcurl_place_id_to_type ()">flickcurl_place_id_to_type</a> (<em class="parameter"><code><span class="type">int</span> place_type_id</code></em>);
85 <a class="link" href="flickcurl-section-place.html#flickcurl-place-type" title="enum flickcurl_place_type"><span class="returnvalue">flickcurl_place_type</span></a> <a class="link" href="flickcurl-section-place.html#flickcurl-place-id-to-type" title="flickcurl_place_id_to_type ()">flickcurl_place_id_to_type</a> (<em class="parameter"><code><span class="type">int</span> place_type_id</code></em>);
8786 <a class="link" href="flickcurl-section-place.html#flickcurl-place" title="flickcurl_place"><span class="returnvalue">flickcurl_place</span></a> ** <a class="link" href="flickcurl-section-place.html#flickcurl-places-placesForBoundingBox" title="flickcurl_places_placesForBoundingBox ()">flickcurl_places_placesForBoundingBox</a>
8887 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
8988 <em class="parameter"><code><a class="link" href="flickcurl-section-place.html#flickcurl-place-type" title="enum flickcurl_place_type"><span class="type">flickcurl_place_type</span></a> place_type</code></em>,
395394 <hr>
396395 <div class="refsect2">
397396 <a name="flickcurl-get-place-type-by-label"></a><h3>flickcurl_get_place_type_by_label ()</h3>
398 <pre class="programlisting"><a class="link" href="flickcurl-section-place.html#flickcurl-place-type" title="enum flickcurl_place_type"><span class="returnvalue">flickcurl_place_type</span></a> flickcurl_get_place_type_by_label (<em class="parameter"><code>const <span class="type">char</span> *place_label</code></em>);</pre>
397 <pre class="programlisting"><a class="link" href="flickcurl-section-place.html#flickcurl-place-type" title="enum flickcurl_place_type"><span class="returnvalue">flickcurl_place_type</span></a> flickcurl_get_place_type_by_label (<em class="parameter"><code>const <span class="type">char</span> *place_label</code></em>);</pre>
399398 <p>
400399 Get a place type by label
401400 </p>
763762 <hr>
764763 <div class="refsect2">
765764 <a name="flickcurl-places-getPlaceTypes"></a><h3>flickcurl_places_getPlaceTypes ()</h3>
766 <pre class="programlisting"><a class="link" href="flickcurl-section-place.html#flickcurl-place-type-info" title="flickcurl_place_type_info"><span class="returnvalue">flickcurl_place_type_info</span></a> ** flickcurl_places_getPlaceTypes
765 <pre class="programlisting"><a class="link" href="flickcurl-section-place.html#flickcurl-place-type-info" title="flickcurl_place_type_info"><span class="returnvalue">flickcurl_place_type_info</span></a> ** flickcurl_places_getPlaceTypes
767766 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>);</pre>
768767 <p>
769768 Get a list of available place types
788787 <hr>
789788 <div class="refsect2">
790789 <a name="flickcurl-places-getShapeHistory"></a><h3>flickcurl_places_getShapeHistory ()</h3>
791 <pre class="programlisting"><span class="returnvalue">flickcurl_shapedata</span> ** flickcurl_places_getShapeHistory
792 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
790 <pre class="programlisting"><span class="returnvalue">flickcurl_shapedata</span> ** flickcurl_places_getShapeHistory (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
793791 <em class="parameter"><code>const <span class="type">char</span> *place_id</code></em>,
794792 <em class="parameter"><code><span class="type">int</span> woe_id</code></em>);</pre>
795793 <p>
879877 <hr>
880878 <div class="refsect2">
881879 <a name="flickcurl-place-id-to-type"></a><h3>flickcurl_place_id_to_type ()</h3>
882 <pre class="programlisting"><a class="link" href="flickcurl-section-place.html#flickcurl-place-type" title="enum flickcurl_place_type"><span class="returnvalue">flickcurl_place_type</span></a> flickcurl_place_id_to_type (<em class="parameter"><code><span class="type">int</span> place_type_id</code></em>);</pre>
880 <pre class="programlisting"><a class="link" href="flickcurl-section-place.html#flickcurl-place-type" title="enum flickcurl_place_type"><span class="returnvalue">flickcurl_place_type</span></a> flickcurl_place_id_to_type (<em class="parameter"><code><span class="type">int</span> place_type_id</code></em>);</pre>
883881 <p>
884882 Turn a place type into a place ID
885883 </p>
13051303 </div>
13061304 <div class="footer">
13071305 <hr>
1308 Generated by GTK-Doc V1.17</div>
1306 Generated by GTK-Doc V1.18</div>
13091307 </body>
13101308 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Preferences</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-place.html" title="Place">
99 <link rel="next" href="flickcurl-section-reflection.html" title="Reflection">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
182182 </div>
183183 <div class="footer">
184184 <hr>
185 Generated by GTK-Doc V1.17</div>
185 Generated by GTK-Doc V1.18</div>
186186 </body>
187187 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Reflection</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-prefs.html" title="Preferences">
99 <link rel="next" href="flickcurl-section-serializer.html" title="Serializer">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
206206 </div>
207207 <div class="footer">
208208 <hr>
209 Generated by GTK-Doc V1.17</div>
209 Generated by GTK-Doc V1.18</div>
210210 </body>
211211 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Serializer</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-reflection.html" title="Reflection">
99 <link rel="next" href="flickcurl-section-stats.html" title="Statistics.">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
3838 <a name="flickcurl-section-serializer.synopsis"></a><h2>Synopsis</h2>
3939 <pre class="synopsis">typedef <a class="link" href="flickcurl-section-serializer.html#flickcurl-serializer" title="flickcurl_serializer">flickcurl_serializer</a>;
4040 <a class="link" href="flickcurl-section-serializer.html#flickcurl-serializer-factory" title="flickcurl_serializer_factory">flickcurl_serializer_factory</a>;
41 <a class="link" href="flickcurl-section-serializer.html#flickcurl-serializer" title="flickcurl_serializer"><span class="returnvalue">flickcurl_serializer</span></a> * <a class="link" href="flickcurl-section-serializer.html#flickcurl-new-serializer" title="flickcurl_new_serializer ()">flickcurl_new_serializer</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
41 <a class="link" href="flickcurl-section-serializer.html#flickcurl-serializer" title="flickcurl_serializer"><span class="returnvalue">flickcurl_serializer</span></a> * <a class="link" href="flickcurl-section-serializer.html#flickcurl-new-serializer" title="flickcurl_new_serializer ()">flickcurl_new_serializer</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
4242 <em class="parameter"><code><span class="type">void</span> *data</code></em>,
4343 <em class="parameter"><code><a class="link" href="flickcurl-section-serializer.html#flickcurl-serializer-factory" title="flickcurl_serializer_factory"><span class="type">flickcurl_serializer_factory</span></a> *factory</code></em>);
4444 <span class="returnvalue">void</span> <a class="link" href="flickcurl-section-serializer.html#flickcurl-free-serializer" title="flickcurl_free_serializer ()">flickcurl_free_serializer</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-serializer.html#flickcurl-serializer" title="flickcurl_serializer"><span class="type">flickcurl_serializer</span></a> *serializer</code></em>);
108108 <hr>
109109 <div class="refsect2">
110110 <a name="flickcurl-new-serializer"></a><h3>flickcurl_new_serializer ()</h3>
111 <pre class="programlisting"><a class="link" href="flickcurl-section-serializer.html#flickcurl-serializer" title="flickcurl_serializer"><span class="returnvalue">flickcurl_serializer</span></a> * flickcurl_new_serializer (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
111 <pre class="programlisting"><a class="link" href="flickcurl-section-serializer.html#flickcurl-serializer" title="flickcurl_serializer"><span class="returnvalue">flickcurl_serializer</span></a> * flickcurl_new_serializer (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
112112 <em class="parameter"><code><span class="type">void</span> *data</code></em>,
113113 <em class="parameter"><code><a class="link" href="flickcurl-section-serializer.html#flickcurl-serializer-factory" title="flickcurl_serializer_factory"><span class="type">flickcurl_serializer_factory</span></a> *factory</code></em>);</pre>
114114 <p>
224224 </div>
225225 <div class="footer">
226226 <hr>
227 Generated by GTK-Doc V1.17</div>
227 Generated by GTK-Doc V1.18</div>
228228 </body>
229229 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Statistics.</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-serializer.html" title="Serializer">
99 <link rel="next" href="flickcurl-section-tag.html" title="Tags">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
106106 <em class="parameter"><code><span class="type">int</span> per_page</code></em>,
107107 <em class="parameter"><code><span class="type">int</span> page</code></em>,
108108 <em class="parameter"><code>const <span class="type">char</span> *extras</code></em>);
109 <a class="link" href="flickcurl-section-stats.html#flickcurl-view-stats" title="flickcurl_view_stats"><span class="returnvalue">flickcurl_view_stats</span></a> * <a class="link" href="flickcurl-section-stats.html#flickcurl-stats-getTotalViews" title="flickcurl_stats_getTotalViews ()">flickcurl_stats_getTotalViews</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
109 <a class="link" href="flickcurl-section-stats.html#flickcurl-view-stats" title="flickcurl_view_stats"><span class="returnvalue">flickcurl_view_stats</span></a> * <a class="link" href="flickcurl-section-stats.html#flickcurl-stats-getTotalViews" title="flickcurl_stats_getTotalViews ()">flickcurl_stats_getTotalViews</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
110110 <em class="parameter"><code>const <span class="type">char</span> *date</code></em>);
111111 </pre>
112112 </div>
932932 <hr>
933933 <div class="refsect2">
934934 <a name="flickcurl-stats-getTotalViews"></a><h3>flickcurl_stats_getTotalViews ()</h3>
935 <pre class="programlisting"><a class="link" href="flickcurl-section-stats.html#flickcurl-view-stats" title="flickcurl_view_stats"><span class="returnvalue">flickcurl_view_stats</span></a> * flickcurl_stats_getTotalViews (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
935 <pre class="programlisting"><a class="link" href="flickcurl-section-stats.html#flickcurl-view-stats" title="flickcurl_view_stats"><span class="returnvalue">flickcurl_view_stats</span></a> * flickcurl_stats_getTotalViews (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
936936 <em class="parameter"><code>const <span class="type">char</span> *date</code></em>);</pre>
937937 <p>
938938 Get the overall view counts for an account
971971 </div>
972972 <div class="footer">
973973 <hr>
974 Generated by GTK-Doc V1.17</div>
974 Generated by GTK-Doc V1.18</div>
975975 </body>
976976 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Tags</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-stats.html" title="Statistics.">
99 <link rel="next" href="flickcurl-section-test.html" title="Test">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
4040 <a class="link" href="flickcurl-section-tag.html#flickcurl-tag-cluster" title="flickcurl_tag_cluster">flickcurl_tag_cluster</a>;
4141 <a class="link" href="flickcurl-section-tag.html#flickcurl-tag-clusters" title="flickcurl_tag_clusters">flickcurl_tag_clusters</a>;
4242 <span class="returnvalue">void</span> <a class="link" href="flickcurl-section-tag.html#flickcurl-free-tag" title="flickcurl_free_tag ()">flickcurl_free_tag</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-tag.html#flickcurl-tag" title="flickcurl_tag"><span class="type">flickcurl_tag</span></a> *t</code></em>);
43 <span class="returnvalue">void</span> <a class="link" href="flickcurl-section-tag.html#flickcurl-free-tags" title="flickcurl_free_tags ()">flickcurl_free_tags</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-tag.html#flickcurl-tag" title="flickcurl_tag"><span class="type">flickcurl_tag</span></a> **tags</code></em>);
4344 <span class="returnvalue">void</span> <a class="link" href="flickcurl-section-tag.html#flickcurl-free-tag-clusters" title="flickcurl_free_tag_clusters ()">flickcurl_free_tag_clusters</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-tag.html#flickcurl-tag-clusters" title="flickcurl_tag_clusters"><span class="type">flickcurl_tag_clusters</span></a> *tcs</code></em>);
4445 <span class="returnvalue">void</span> (<a class="link" href="flickcurl-section-tag.html#flickcurl-tag-handler" title="flickcurl_tag_handler ()">*flickcurl_tag_handler</a>) (<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
4546 <em class="parameter"><code><a class="link" href="flickcurl-section-tag.html#flickcurl-tag" title="flickcurl_tag"><span class="type">flickcurl_tag</span></a> *tag</code></em>);
46 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-tag.html#flickcurl-tags-getClusterPhotos" title="flickcurl_tags_getClusterPhotos ()">flickcurl_tags_getClusterPhotos</a>
47 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
47 <a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * <a class="link" href="flickcurl-section-tag.html#flickcurl-tags-getClusterPhotos" title="flickcurl_tags_getClusterPhotos ()">flickcurl_tags_getClusterPhotos</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
4848 <em class="parameter"><code>const <span class="type">char</span> *tag</code></em>,
4949 <em class="parameter"><code>const <span class="type">char</span> *cluster_id</code></em>,
5050 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);
51 <a class="link" href="flickcurl-section-tag.html#flickcurl-tag-clusters" title="flickcurl_tag_clusters"><span class="returnvalue">flickcurl_tag_clusters</span></a> * <a class="link" href="flickcurl-section-tag.html#flickcurl-tags-getClusters" title="flickcurl_tags_getClusters ()">flickcurl_tags_getClusters</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
51 <a class="link" href="flickcurl-section-tag.html#flickcurl-tag-clusters" title="flickcurl_tag_clusters"><span class="returnvalue">flickcurl_tag_clusters</span></a> * <a class="link" href="flickcurl-section-tag.html#flickcurl-tags-getClusters" title="flickcurl_tags_getClusters ()">flickcurl_tags_getClusters</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
5252 <em class="parameter"><code>const <span class="type">char</span> *tag</code></em>);
5353 <a class="link" href="flickcurl-section-tag.html#flickcurl-tag" title="flickcurl_tag"><span class="returnvalue">flickcurl_tag</span></a> ** <a class="link" href="flickcurl-section-tag.html#flickcurl-tags-getHotList" title="flickcurl_tags_getHotList ()">flickcurl_tags_getHotList</a> (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
5454 <em class="parameter"><code>const <span class="type">char</span> *period</code></em>,
202202 </div>
203203 <hr>
204204 <div class="refsect2">
205 <a name="flickcurl-free-tags"></a><h3>flickcurl_free_tags ()</h3>
206 <pre class="programlisting"><span class="returnvalue">void</span> flickcurl_free_tags (<em class="parameter"><code><a class="link" href="flickcurl-section-tag.html#flickcurl-tag" title="flickcurl_tag"><span class="type">flickcurl_tag</span></a> **tags</code></em>);</pre>
207 <p>
208 Destructor for array of tag objects
209 </p>
210 <div class="variablelist"><table border="0">
211 <col align="left" valign="top">
212 <tbody><tr>
213 <td><p><span class="term"><em class="parameter"><code>tags</code></em> :</span></p></td>
214 <td>tag object array</td>
215 </tr></tbody>
216 </table></div>
217 </div>
218 <hr>
219 <div class="refsect2">
205220 <a name="flickcurl-free-tag-clusters"></a><h3>flickcurl_free_tag_clusters ()</h3>
206221 <pre class="programlisting"><span class="returnvalue">void</span> flickcurl_free_tag_clusters (<em class="parameter"><code><a class="link" href="flickcurl-section-tag.html#flickcurl-tag-clusters" title="flickcurl_tag_clusters"><span class="type">flickcurl_tag_clusters</span></a> *tcs</code></em>);</pre>
207222 <p>
240255 <hr>
241256 <div class="refsect2">
242257 <a name="flickcurl-tags-getClusterPhotos"></a><h3>flickcurl_tags_getClusterPhotos ()</h3>
243 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_tags_getClusterPhotos
244 (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
258 <pre class="programlisting"><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list" title="flickcurl_photos_list"><span class="returnvalue">flickcurl_photos_list</span></a> * flickcurl_tags_getClusterPhotos (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
245259 <em class="parameter"><code>const <span class="type">char</span> *tag</code></em>,
246260 <em class="parameter"><code>const <span class="type">char</span> *cluster_id</code></em>,
247261 <em class="parameter"><code><a class="link" href="flickcurl-section-photoslist.html#flickcurl-photos-list-params" title="flickcurl_photos_list_params"><span class="type">flickcurl_photos_list_params</span></a> *list_params</code></em>);</pre>
284298 <hr>
285299 <div class="refsect2">
286300 <a name="flickcurl-tags-getClusters"></a><h3>flickcurl_tags_getClusters ()</h3>
287 <pre class="programlisting"><a class="link" href="flickcurl-section-tag.html#flickcurl-tag-clusters" title="flickcurl_tag_clusters"><span class="returnvalue">flickcurl_tag_clusters</span></a> * flickcurl_tags_getClusters (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
301 <pre class="programlisting"><a class="link" href="flickcurl-section-tag.html#flickcurl-tag-clusters" title="flickcurl_tag_clusters"><span class="returnvalue">flickcurl_tag_clusters</span></a> * flickcurl_tags_getClusters (<em class="parameter"><code><a class="link" href="flickcurl-section-core.html#flickcurl" title="flickcurl"><span class="type">flickcurl</span></a> *fc</code></em>,
288302 <em class="parameter"><code>const <span class="type">char</span> *tag</code></em>);</pre>
289303 <p>
290304 Gives you a list of tag clusters for the given tag.
512526 </div>
513527 <div class="footer">
514528 <hr>
515 Generated by GTK-Doc V1.17</div>
529 Generated by GTK-Doc V1.18</div>
516530 </body>
517531 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Test</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-tag.html" title="Tags">
99 <link rel="next" href="flickcurl-section-upload.html" title="Uploading">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
140140 </div>
141141 <div class="footer">
142142 <hr>
143 Generated by GTK-Doc V1.17</div>
143 Generated by GTK-Doc V1.18</div>
144144 </body>
145145 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Uploading</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-test.html" title="Test">
99 <link rel="next" href="flickcurl-section-urls.html" title="URLs">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
131131 int is_family;
132132 int safety_level;
133133 int content_type;
134 /* Flickcurl 1.22+ */
135 int hidden;
134136 } flickcurl_upload_params;
135137 </pre>
136138 <p>
174176 <tr>
175177 <td><p><span class="term"><span class="type">int</span> <em class="structfield"><code><a name="flickcurl-upload-params.content-type"></a>content_type</code></em>;</span></p></td>
176178 <td>1=photo, 2=screenshot, 3=other/artwork</td>
179 </tr>
180 <tr>
181 <td><p><span class="term"><span class="type">int</span> <em class="structfield"><code><a name="flickcurl-upload-params.hidden"></a>hidden</code></em>;</span></p></td>
182 <td>1=in global search, 2=hidden from publish searches (Flickcurl 1.22+)</td>
177183 </tr>
178184 </tbody>
179185 </table></div>
319325 </div>
320326 <div class="footer">
321327 <hr>
322 Generated by GTK-Doc V1.17</div>
328 Generated by GTK-Doc V1.18</div>
323329 </body>
324330 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>URLs</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-upload.html" title="Uploading">
99 <link rel="next" href="flickcurl-section-video.html" title="Video">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
239239 </div>
240240 <div class="footer">
241241 <hr>
242 Generated by GTK-Doc V1.17</div>
242 Generated by GTK-Doc V1.18</div>
243243 </body>
244244 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Video</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-urls.html" title="URLs">
99 <link rel="next" href="indexes.html" title="Index">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
111111 </div>
112112 <div class="footer">
113113 <hr>
114 Generated by GTK-Doc V1.17</div>
114 Generated by GTK-Doc V1.18</div>
115115 </body>
116116 </html>
+0
-430
docs/html/flickcurl.devhelp less more
0 <?xml version="1.0" encoding="utf-8" standalone="no"?>
1 <!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
2 <book xmlns="http://www.devhelp.net/book" title="Flickcurl Flickr API Manual" link="index.html" author="" name="flickcurl">
3 <chapters>
4 <sub name="Flickcurl Overview" link="introduction.html"/>
5 <sub name="Core" link="flickcurl-section-core.html"/>
6 <sub name="General" link="flickcurl-section-general.html"/>
7 <sub name="Authenticating Flickcurl" link="flickcurl-auth.html">
8 <sub name="Build Flickcurl library and flickcurl utility" link="flickcurl-auth.html#flickcurl-auth-intro"/>
9 <sub name="Register application to get API Key and Shared Secret" link="flickcurl-auth-register.html"/>
10 <sub name="Getting Authentication Token from API Key and Secret" link="flickcurl-auth-authenticate.html"/>
11 <sub name="Use flickcurl" link="flickcurl-auth-use.html"/>
12 </sub>
13 <sub name="Searching for Photos with Flickcurl" link="flickcurl-searching.html">
14 <sub name="Introduction" link="flickcurl-searching.html#flickcurl-searching-intro"/>
15 <sub name="Search parameters" link="flickcurl-searching-search-parameters.html"/>
16 <sub name="Result paging parameters" link="flickcurl-searching-search-paging.html"/>
17 <sub name="Extra result fields" link="flickcurl-searching-search-extras.html"/>
18 <sub name="Search result format" link="flickcurl-searching-search-result-formats.html"/>
19 <sub name="Run the search for photos" link="flickcurl-searching-search-run.html"/>
20 <sub name="Handling a photos search result" link="flickcurl-searching-search-results.html"/>
21 <sub name="Photos search example" link="flickcurl-searching-search-example.html"/>
22 </sub>
23 <sub name="Activity" link="flickcurl-section-activity.html"/>
24 <sub name="Authentication" link="flickcurl-section-auth.html"/>
25 <sub name="Blogs" link="flickcurl-section-blogs.html"/>
26 <sub name="Categories" link="flickcurl-section-category.html"/>
27 <sub name="Comments" link="flickcurl-section-comment.html"/>
28 <sub name="Flickr Commons" link="flickcurl-section-commons.html"/>
29 <sub name="Collections" link="flickcurl-section-collections.html"/>
30 <sub name="Contacts" link="flickcurl-section-contact.html"/>
31 <sub name="Contexts" link="flickcurl-section-context.html"/>
32 <sub name="EXIF" link="flickcurl-section-exif.html"/>
33 <sub name="Favorites" link="flickcurl-section-favorite.html"/>
34 <sub name="Galleries" link="flickcurl-section-gallery.html"/>
35 <sub name="Groups" link="flickcurl-section-group.html"/>
36 <sub name="Machine tag" link="flickcurl-section-machinetags.html"/>
37 <sub name="Miscellaneous" link="flickcurl-section-misc.html"/>
38 <sub name="Notes." link="flickcurl-section-note.html"/>
39 <sub name="Panda photos" link="flickcurl-section-panda.html"/>
40 <sub name="People" link="flickcurl-section-people.html"/>
41 <sub name="Person class." link="flickcurl-section-person.html"/>
42 <sub name="Photo" link="flickcurl-section-photo.html"/>
43 <sub name="Photos containing people." link="flickcurl-section-photos-people.html"/>
44 <sub name="Photos List" link="flickcurl-section-photoslist.html"/>
45 <sub name="Photoset" link="flickcurl-section-photoset.html"/>
46 <sub name="Place" link="flickcurl-section-place.html"/>
47 <sub name="Preferences" link="flickcurl-section-prefs.html"/>
48 <sub name="Reflection" link="flickcurl-section-reflection.html"/>
49 <sub name="Serializer" link="flickcurl-section-serializer.html"/>
50 <sub name="Statistics." link="flickcurl-section-stats.html"/>
51 <sub name="Tags" link="flickcurl-section-tag.html"/>
52 <sub name="Test" link="flickcurl-section-test.html"/>
53 <sub name="Uploading" link="flickcurl-section-upload.html"/>
54 <sub name="URLs" link="flickcurl-section-urls.html"/>
55 <sub name="Video" link="flickcurl-section-video.html"/>
56 <sub name="Index" link="indexes.html"/>
57 </chapters>
58 <functions>
59 <function name="flickcurl" link="flickcurl-section-core.html#flickcurl"/>
60 <function name="flickcurl_message_handler ()" link="flickcurl-section-core.html#flickcurl-message-handler"/>
61 <function name="flickcurl_init ()" link="flickcurl-section-core.html#flickcurl-init"/>
62 <function name="flickcurl_finish ()" link="flickcurl-section-core.html#flickcurl-finish"/>
63 <function name="flickcurl_new ()" link="flickcurl-section-core.html#flickcurl-new"/>
64 <function name="flickcurl_new_with_handle ()" link="flickcurl-section-core.html#flickcurl-new-with-handle"/>
65 <function name="flickcurl_free ()" link="flickcurl-section-core.html#flickcurl-free"/>
66 <function name="flickcurl_get_api_key ()" link="flickcurl-section-core.html#flickcurl-get-api-key"/>
67 <function name="flickcurl_get_auth_token ()" link="flickcurl-section-core.html#flickcurl-get-auth-token"/>
68 <function name="flickcurl_get_current_request_wait ()" link="flickcurl-section-core.html#flickcurl-get-current-request-wait"/>
69 <function name="flickcurl_get_extras_format_info ()" link="flickcurl-section-core.html#flickcurl-get-extras-format-info"/>
70 <function name="flickcurl_get_feed_format_info ()" link="flickcurl-section-core.html#flickcurl-get-feed-format-info"/>
71 <function name="flickcurl_set_api_key ()" link="flickcurl-section-core.html#flickcurl-set-api-key"/>
72 <function name="flickcurl_set_auth_token ()" link="flickcurl-section-core.html#flickcurl-set-auth-token"/>
73 <function name="flickcurl_curl_setopt_handler ()" link="flickcurl-section-core.html#flickcurl-curl-setopt-handler"/>
74 <function name="flickcurl_set_curl_setopt_handler ()" link="flickcurl-section-core.html#flickcurl-set-curl-setopt-handler"/>
75 <function name="flickcurl_set_data ()" link="flickcurl-section-core.html#flickcurl-set-data"/>
76 <function name="flickcurl_set_error_handler ()" link="flickcurl-section-core.html#flickcurl-set-error-handler"/>
77 <function name="flickcurl_set_http_accept ()" link="flickcurl-section-core.html#flickcurl-set-http-accept"/>
78 <function name="flickcurl_set_proxy ()" link="flickcurl-section-core.html#flickcurl-set-proxy"/>
79 <function name="flickcurl_set_request_delay ()" link="flickcurl-section-core.html#flickcurl-set-request-delay"/>
80 <function name="flickcurl_set_service_uri ()" link="flickcurl-section-core.html#flickcurl-set-service-uri"/>
81 <function name="flickcurl_set_replace_service_uri ()" link="flickcurl-section-core.html#flickcurl-set-replace-service-uri"/>
82 <function name="flickcurl_set_upload_service_uri ()" link="flickcurl-section-core.html#flickcurl-set-upload-service-uri"/>
83 <function name="flickcurl_set_shared_secret ()" link="flickcurl-section-core.html#flickcurl-set-shared-secret"/>
84 <function name="flickcurl_set_sign ()" link="flickcurl-section-core.html#flickcurl-set-sign"/>
85 <function name="flickcurl_set_tag_handler ()" link="flickcurl-section-core.html#flickcurl-set-tag-handler"/>
86 <function name="flickcurl_set_user_agent ()" link="flickcurl-section-core.html#flickcurl-set-user-agent"/>
87 <function name="flickcurl_set_write ()" link="flickcurl-section-core.html#flickcurl-set-write"/>
88 <function name="flickcurl_set_xml_data ()" link="flickcurl-section-core.html#flickcurl-set-xml-data"/>
89 <function name="FLICKCURL_DEPRECATED" link="flickcurl-section-general.html#FLICKCURL-DEPRECATED:CAPS"/>
90 <function name="FLICKCURL_MAX_ACTIVITY_EVENTS" link="flickcurl-section-general.html#FLICKCURL-MAX-ACTIVITY-EVENTS:CAPS"/>
91 <function name="flickcurl_array_free ()" link="flickcurl-section-general.html#flickcurl-array-free"/>
92 <function name="flickcurl_array_join ()" link="flickcurl-section-general.html#flickcurl-array-join"/>
93 <function name="flickcurl_array_split ()" link="flickcurl-section-general.html#flickcurl-array-split"/>
94 <function name="flickcurl_activity" link="flickcurl-section-activity.html#flickcurl-activity"/>
95 <function name="flickcurl_activity_event" link="flickcurl-section-activity.html#flickcurl-activity-event"/>
96 <function name="flickcurl_activity_userComments ()" link="flickcurl-section-activity.html#flickcurl-activity-userComments"/>
97 <function name="flickcurl_activity_userPhotos ()" link="flickcurl-section-activity.html#flickcurl-activity-userPhotos"/>
98 <function name="flickcurl_free_activities ()" link="flickcurl-section-activity.html#flickcurl-free-activities"/>
99 <function name="flickcurl_auth_checkToken ()" link="flickcurl-section-auth.html#flickcurl-auth-checkToken"/>
100 <function name="flickcurl_auth_getFrob ()" link="flickcurl-section-auth.html#flickcurl-auth-getFrob"/>
101 <function name="flickcurl_auth_getFullToken ()" link="flickcurl-section-auth.html#flickcurl-auth-getFullToken"/>
102 <function name="flickcurl_auth_getToken ()" link="flickcurl-section-auth.html#flickcurl-auth-getToken"/>
103 <function name="flickcurl_blog" link="flickcurl-section-blogs.html#flickcurl-blog"/>
104 <function name="flickcurl_blogs_getList ()" link="flickcurl-section-blogs.html#flickcurl-blogs-getList"/>
105 <function name="flickcurl_blog_service" link="flickcurl-section-blogs.html#flickcurl-blog-service"/>
106 <function name="flickcurl_blogs_getServices ()" link="flickcurl-section-blogs.html#flickcurl-blogs-getServices"/>
107 <function name="flickcurl_blogs_postPhoto ()" link="flickcurl-section-blogs.html#flickcurl-blogs-postPhoto"/>
108 <function name="flickcurl_free_blogs ()" link="flickcurl-section-blogs.html#flickcurl-free-blogs"/>
109 <function name="flickcurl_free_blog_services ()" link="flickcurl-section-blogs.html#flickcurl-free-blog-services"/>
110 <function name="flickcurl_category" link="flickcurl-section-category.html#flickcurl-category"/>
111 <function name="flickcurl_free_categories ()" link="flickcurl-section-category.html#flickcurl-free-categories"/>
112 <function name="flickcurl_free_category ()" link="flickcurl-section-category.html#flickcurl-free-category"/>
113 <function name="flickcurl_comment" link="flickcurl-section-comment.html#flickcurl-comment"/>
114 <function name="flickcurl_free_comment ()" link="flickcurl-section-comment.html#flickcurl-free-comment"/>
115 <function name="flickcurl_free_comments ()" link="flickcurl-section-comment.html#flickcurl-free-comments"/>
116 <function name="flickcurl_institution" link="flickcurl-section-commons.html#flickcurl-institution"/>
117 <function name="enum flickcurl_institution_url_type" link="flickcurl-section-commons.html#flickcurl-institution-url-type"/>
118 <function name="flickcurl_free_institution ()" link="flickcurl-section-commons.html#flickcurl-free-institution"/>
119 <function name="flickcurl_free_institutions ()" link="flickcurl-section-commons.html#flickcurl-free-institutions"/>
120 <function name="flickcurl_get_institution_url_type_label ()" link="flickcurl-section-commons.html#flickcurl-get-institution-url-type-label"/>
121 <function name="flickcurl_commons_getInstitutions ()" link="flickcurl-section-commons.html#flickcurl-commons-getInstitutions"/>
122 <function name="flickcurl_collection" link="flickcurl-section-collections.html#flickcurl-collection"/>
123 <function name="flickcurl_collections_getInfo ()" link="flickcurl-section-collections.html#flickcurl-collections-getInfo"/>
124 <function name="flickcurl_collections_getTree ()" link="flickcurl-section-collections.html#flickcurl-collections-getTree"/>
125 <function name="flickcurl_free_collection ()" link="flickcurl-section-collections.html#flickcurl-free-collection"/>
126 <function name="flickcurl_free_collections ()" link="flickcurl-section-collections.html#flickcurl-free-collections"/>
127 <function name="flickcurl_contact" link="flickcurl-section-contact.html#flickcurl-contact"/>
128 <function name="flickcurl_contacts_getList ()" link="flickcurl-section-contact.html#flickcurl-contacts-getList"/>
129 <function name="flickcurl_contacts_getListRecentlyUploaded ()" link="flickcurl-section-contact.html#flickcurl-contacts-getListRecentlyUploaded"/>
130 <function name="flickcurl_contacts_getPublicList ()" link="flickcurl-section-contact.html#flickcurl-contacts-getPublicList"/>
131 <function name="flickcurl_free_contact ()" link="flickcurl-section-contact.html#flickcurl-free-contact"/>
132 <function name="flickcurl_free_contacts ()" link="flickcurl-section-contact.html#flickcurl-free-contacts"/>
133 <function name="flickcurl_context" link="flickcurl-section-context.html#flickcurl-context"/>
134 <function name="enum flickcurl_context_type" link="flickcurl-section-context.html#flickcurl-context-type"/>
135 <function name="flickcurl_get_context_type_field_label ()" link="flickcurl-section-context.html#flickcurl-get-context-type-field-label"/>
136 <function name="flickcurl_free_context ()" link="flickcurl-section-context.html#flickcurl-free-context"/>
137 <function name="flickcurl_free_contexts ()" link="flickcurl-section-context.html#flickcurl-free-contexts"/>
138 <function name="flickcurl_exif" link="flickcurl-section-exif.html#flickcurl-exif"/>
139 <function name="flickcurl_free_exif ()" link="flickcurl-section-exif.html#flickcurl-free-exif"/>
140 <function name="flickcurl_free_exifs ()" link="flickcurl-section-exif.html#flickcurl-free-exifs"/>
141 <function name="flickcurl_favorites_add ()" link="flickcurl-section-favorite.html#flickcurl-favorites-add"/>
142 <function name="flickcurl_favorites_getList ()" link="flickcurl-section-favorite.html#flickcurl-favorites-getList"/>
143 <function name="flickcurl_favorites_getList_params ()" link="flickcurl-section-favorite.html#flickcurl-favorites-getList-params"/>
144 <function name="flickcurl_favorites_getPublicList ()" link="flickcurl-section-favorite.html#flickcurl-favorites-getPublicList"/>
145 <function name="flickcurl_favorites_getPublicList_params ()" link="flickcurl-section-favorite.html#flickcurl-favorites-getPublicList-params"/>
146 <function name="flickcurl_favorites_remove ()" link="flickcurl-section-favorite.html#flickcurl-favorites-remove"/>
147 <function name="flickcurl_gallery" link="flickcurl-section-gallery.html#flickcurl-gallery"/>
148 <function name="flickcurl_free_gallery ()" link="flickcurl-section-gallery.html#flickcurl-free-gallery"/>
149 <function name="flickcurl_free_galleries ()" link="flickcurl-section-gallery.html#flickcurl-free-galleries"/>
150 <function name="flickcurl_galleries_addPhoto ()" link="flickcurl-section-gallery.html#flickcurl-galleries-addPhoto"/>
151 <function name="flickcurl_galleries_create ()" link="flickcurl-section-gallery.html#flickcurl-galleries-create"/>
152 <function name="flickcurl_galleries_editMeta ()" link="flickcurl-section-gallery.html#flickcurl-galleries-editMeta"/>
153 <function name="flickcurl_galleries_editPhoto ()" link="flickcurl-section-gallery.html#flickcurl-galleries-editPhoto"/>
154 <function name="flickcurl_galleries_editPhotos ()" link="flickcurl-section-gallery.html#flickcurl-galleries-editPhotos"/>
155 <function name="flickcurl_galleries_getInfo ()" link="flickcurl-section-gallery.html#flickcurl-galleries-getInfo"/>
156 <function name="flickcurl_galleries_getList ()" link="flickcurl-section-gallery.html#flickcurl-galleries-getList"/>
157 <function name="flickcurl_galleries_getListForPhoto ()" link="flickcurl-section-gallery.html#flickcurl-galleries-getListForPhoto"/>
158 <function name="flickcurl_galleries_getPhotos_params ()" link="flickcurl-section-gallery.html#flickcurl-galleries-getPhotos-params"/>
159 <function name="flickcurl_galleries_getPhotos ()" link="flickcurl-section-gallery.html#flickcurl-galleries-getPhotos"/>
160 <function name="flickcurl_group" link="flickcurl-section-group.html#flickcurl-group"/>
161 <function name="flickcurl_free_group ()" link="flickcurl-section-group.html#flickcurl-free-group"/>
162 <function name="flickcurl_free_groups ()" link="flickcurl-section-group.html#flickcurl-free-groups"/>
163 <function name="flickcurl_groups_browse ()" link="flickcurl-section-group.html#flickcurl-groups-browse"/>
164 <function name="flickcurl_groups_getInfo ()" link="flickcurl-section-group.html#flickcurl-groups-getInfo"/>
165 <function name="flickcurl_member" link="flickcurl-section-group.html#flickcurl-member"/>
166 <function name="flickcurl_free_member ()" link="flickcurl-section-group.html#flickcurl-free-member"/>
167 <function name="flickcurl_free_members ()" link="flickcurl-section-group.html#flickcurl-free-members"/>
168 <function name="flickcurl_groups_members_getList ()" link="flickcurl-section-group.html#flickcurl-groups-members-getList"/>
169 <function name="flickcurl_groups_pools_add ()" link="flickcurl-section-group.html#flickcurl-groups-pools-add"/>
170 <function name="flickcurl_groups_pools_getContext ()" link="flickcurl-section-group.html#flickcurl-groups-pools-getContext"/>
171 <function name="flickcurl_groups_pools_getGroups ()" link="flickcurl-section-group.html#flickcurl-groups-pools-getGroups"/>
172 <function name="flickcurl_groups_pools_getPhotos ()" link="flickcurl-section-group.html#flickcurl-groups-pools-getPhotos"/>
173 <function name="flickcurl_groups_pools_getPhotos_params ()" link="flickcurl-section-group.html#flickcurl-groups-pools-getPhotos-params"/>
174 <function name="flickcurl_groups_pools_remove ()" link="flickcurl-section-group.html#flickcurl-groups-pools-remove"/>
175 <function name="flickcurl_groups_search ()" link="flickcurl-section-group.html#flickcurl-groups-search"/>
176 <function name="flickcurl_tag_namespace" link="flickcurl-section-machinetags.html#flickcurl-tag-namespace"/>
177 <function name="flickcurl_tag_predicate_value" link="flickcurl-section-machinetags.html#flickcurl-tag-predicate-value"/>
178 <function name="flickcurl_free_tag_namespace ()" link="flickcurl-section-machinetags.html#flickcurl-free-tag-namespace"/>
179 <function name="flickcurl_free_tag_namespaces ()" link="flickcurl-section-machinetags.html#flickcurl-free-tag-namespaces"/>
180 <function name="flickcurl_free_tag_predicate_value ()" link="flickcurl-section-machinetags.html#flickcurl-free-tag-predicate-value"/>
181 <function name="flickcurl_free_tag_predicate_values ()" link="flickcurl-section-machinetags.html#flickcurl-free-tag-predicate-values"/>
182 <function name="flickcurl_machinetags_getNamespaces ()" link="flickcurl-section-machinetags.html#flickcurl-machinetags-getNamespaces"/>
183 <function name="flickcurl_machinetags_getPairs ()" link="flickcurl-section-machinetags.html#flickcurl-machinetags-getPairs"/>
184 <function name="flickcurl_machinetags_getPredicates ()" link="flickcurl-section-machinetags.html#flickcurl-machinetags-getPredicates"/>
185 <function name="flickcurl_machinetags_getRecentValues ()" link="flickcurl-section-machinetags.html#flickcurl-machinetags-getRecentValues"/>
186 <function name="flickcurl_machinetags_getValues ()" link="flickcurl-section-machinetags.html#flickcurl-machinetags-getValues"/>
187 <function name="flickcurl_location" link="flickcurl-section-misc.html#flickcurl-location"/>
188 <function name="flickcurl_perms" link="flickcurl-section-misc.html#flickcurl-perms"/>
189 <function name="flickcurl_size" link="flickcurl-section-misc.html#flickcurl-size"/>
190 <function name="flickcurl_free_size ()" link="flickcurl-section-misc.html#flickcurl-free-size"/>
191 <function name="flickcurl_free_sizes ()" link="flickcurl-section-misc.html#flickcurl-free-sizes"/>
192 <function name="flickcurl_free_location ()" link="flickcurl-section-misc.html#flickcurl-free-location"/>
193 <function name="flickcurl_free_perms ()" link="flickcurl-section-misc.html#flickcurl-free-perms"/>
194 <function name="flickcurl_get_field_value_type_label ()" link="flickcurl-section-misc.html#flickcurl-get-field-value-type-label"/>
195 <function name="flickcurl_get_location_accuracy_label ()" link="flickcurl-section-misc.html#flickcurl-get-location-accuracy-label"/>
196 <function name="flickcurl_get_shared_secret ()" link="flickcurl-section-misc.html#flickcurl-get-shared-secret"/>
197 <function name="flickcurl_interestingness_getList ()" link="flickcurl-section-misc.html#flickcurl-interestingness-getList"/>
198 <function name="flickcurl_interestingness_getList_params ()" link="flickcurl-section-misc.html#flickcurl-interestingness-getList-params"/>
199 <function name="flickcurl_license" link="flickcurl-section-misc.html#flickcurl-license"/>
200 <function name="flickcurl_get_content_type_label ()" link="flickcurl-section-misc.html#flickcurl-get-content-type-label"/>
201 <function name="flickcurl_get_content_type_from_string ()" link="flickcurl-section-misc.html#flickcurl-get-content-type-from-string"/>
202 <function name="flickcurl_get_safety_level_label ()" link="flickcurl-section-misc.html#flickcurl-get-safety-level-label"/>
203 <function name="flickcurl_get_safety_level_from_string ()" link="flickcurl-section-misc.html#flickcurl-get-safety-level-from-string"/>
204 <function name="flickcurl_user_icon_uri ()" link="flickcurl-section-misc.html#flickcurl-user-icon-uri"/>
205 <function name="flickcurl_note" link="flickcurl-section-note.html#flickcurl-note"/>
206 <function name="flickcurl_panda_getList ()" link="flickcurl-section-panda.html#flickcurl-panda-getList"/>
207 <function name="flickcurl_panda_getPhotos ()" link="flickcurl-section-panda.html#flickcurl-panda-getPhotos"/>
208 <function name="flickcurl_people_findByEmail ()" link="flickcurl-section-people.html#flickcurl-people-findByEmail"/>
209 <function name="flickcurl_people_findByUsername ()" link="flickcurl-section-people.html#flickcurl-people-findByUsername"/>
210 <function name="flickcurl_people_getInfo ()" link="flickcurl-section-people.html#flickcurl-people-getInfo"/>
211 <function name="flickcurl_people_getPhotos ()" link="flickcurl-section-people.html#flickcurl-people-getPhotos"/>
212 <function name="flickcurl_people_getPhotos_params ()" link="flickcurl-section-people.html#flickcurl-people-getPhotos-params"/>
213 <function name="flickcurl_people_getPhotosOf ()" link="flickcurl-section-people.html#flickcurl-people-getPhotosOf"/>
214 <function name="flickcurl_people_getPhotosOf_params ()" link="flickcurl-section-people.html#flickcurl-people-getPhotosOf-params"/>
215 <function name="flickcurl_people_getPublicGroups ()" link="flickcurl-section-people.html#flickcurl-people-getPublicGroups"/>
216 <function name="flickcurl_people_getPublicPhotos ()" link="flickcurl-section-people.html#flickcurl-people-getPublicPhotos"/>
217 <function name="flickcurl_people_getPublicPhotos_params ()" link="flickcurl-section-people.html#flickcurl-people-getPublicPhotos-params"/>
218 <function name="flickcurl_people_getUploadStatus ()" link="flickcurl-section-people.html#flickcurl-people-getUploadStatus"/>
219 <function name="flickcurl_free_person ()" link="flickcurl-section-person.html#flickcurl-free-person"/>
220 <function name="flickcurl_free_persons ()" link="flickcurl-section-person.html#flickcurl-free-persons"/>
221 <function name="flickcurl_get_person_field_label ()" link="flickcurl-section-person.html#flickcurl-get-person-field-label"/>
222 <function name="flickcurl_person" link="flickcurl-section-person.html#flickcurl-person"/>
223 <function name="flickcurl_person_field" link="flickcurl-section-person.html#flickcurl-person-field"/>
224 <function name="enum flickcurl_person_field_type" link="flickcurl-section-person.html#flickcurl-person-field-type"/>
225 <function name="flickcurl_photo" link="flickcurl-section-photo.html#flickcurl-photo"/>
226 <function name="flickcurl_free_photo ()" link="flickcurl-section-photo.html#flickcurl-free-photo"/>
227 <function name="flickcurl_free_photos ()" link="flickcurl-section-photo.html#flickcurl-free-photos"/>
228 <function name="flickcurl_get_photo_field_label ()" link="flickcurl-section-photo.html#flickcurl-get-photo-field-label"/>
229 <function name="flickcurl_photo_as_page_uri ()" link="flickcurl-section-photo.html#flickcurl-photo-as-page-uri"/>
230 <function name="flickcurl_photo_as_short_uri ()" link="flickcurl-section-photo.html#flickcurl-photo-as-short-uri"/>
231 <function name="flickcurl_photo_as_source_uri ()" link="flickcurl-section-photo.html#flickcurl-photo-as-source-uri"/>
232 <function name="flickcurl_photo_as_user_icon_uri ()" link="flickcurl-section-photo.html#flickcurl-photo-as-user-icon-uri"/>
233 <function name="flickcurl_photo_id_as_short_uri ()" link="flickcurl-section-photo.html#flickcurl-photo-id-as-short-uri"/>
234 <function name="flickcurl_source_uri_as_photo_id ()" link="flickcurl-section-photo.html#flickcurl-source-uri-as-photo-id"/>
235 <function name="flickcurl_photo_field" link="flickcurl-section-photo.html#flickcurl-photo-field"/>
236 <function name="enum flickcurl_photo_field_type" link="flickcurl-section-photo.html#flickcurl-photo-field-type"/>
237 <function name="enum flickcurl_field_value_type" link="flickcurl-section-photo.html#flickcurl-field-value-type"/>
238 <function name="flickcurl_photos_addTags ()" link="flickcurl-section-photo.html#flickcurl-photos-addTags"/>
239 <function name="flickcurl_photos_comments_addComment ()" link="flickcurl-section-photo.html#flickcurl-photos-comments-addComment"/>
240 <function name="flickcurl_photos_comments_deleteComment ()" link="flickcurl-section-photo.html#flickcurl-photos-comments-deleteComment"/>
241 <function name="flickcurl_photos_comments_editComment ()" link="flickcurl-section-photo.html#flickcurl-photos-comments-editComment"/>
242 <function name="flickcurl_photos_comments_getList ()" link="flickcurl-section-photo.html#flickcurl-photos-comments-getList"/>
243 <function name="flickcurl_photos_comments_getRecentForContacts_params ()" link="flickcurl-section-photo.html#flickcurl-photos-comments-getRecentForContacts-params"/>
244 <function name="flickcurl_photos_delete ()" link="flickcurl-section-photo.html#flickcurl-photos-delete"/>
245 <function name="flickcurl_photos_geo_batchCorrectLocation ()" link="flickcurl-section-photo.html#flickcurl-photos-geo-batchCorrectLocation"/>
246 <function name="flickcurl_photos_geo_correctLocation ()" link="flickcurl-section-photo.html#flickcurl-photos-geo-correctLocation"/>
247 <function name="flickcurl_photos_geo_getLocation ()" link="flickcurl-section-photo.html#flickcurl-photos-geo-getLocation"/>
248 <function name="flickcurl_photos_geo_getPerms ()" link="flickcurl-section-photo.html#flickcurl-photos-geo-getPerms"/>
249 <function name="flickcurl_photos_geo_photosForLocation ()" link="flickcurl-section-photo.html#flickcurl-photos-geo-photosForLocation"/>
250 <function name="flickcurl_photos_geo_photosForLocation_params ()" link="flickcurl-section-photo.html#flickcurl-photos-geo-photosForLocation-params"/>
251 <function name="flickcurl_photos_geo_removeLocation ()" link="flickcurl-section-photo.html#flickcurl-photos-geo-removeLocation"/>
252 <function name="flickcurl_photos_geo_setContext ()" link="flickcurl-section-photo.html#flickcurl-photos-geo-setContext"/>
253 <function name="flickcurl_photos_geo_setLocation ()" link="flickcurl-section-photo.html#flickcurl-photos-geo-setLocation"/>
254 <function name="flickcurl_photos_geo_setPerms ()" link="flickcurl-section-photo.html#flickcurl-photos-geo-setPerms"/>
255 <function name="flickcurl_photos_getAllContexts ()" link="flickcurl-section-photo.html#flickcurl-photos-getAllContexts"/>
256 <function name="flickcurl_photos_getContactsPhotos ()" link="flickcurl-section-photo.html#flickcurl-photos-getContactsPhotos"/>
257 <function name="flickcurl_photos_getContactsPhotos_params ()" link="flickcurl-section-photo.html#flickcurl-photos-getContactsPhotos-params"/>
258 <function name="flickcurl_photos_getContactsPublicPhotos ()" link="flickcurl-section-photo.html#flickcurl-photos-getContactsPublicPhotos"/>
259 <function name="flickcurl_photos_getContactsPublicPhotos_params ()" link="flickcurl-section-photo.html#flickcurl-photos-getContactsPublicPhotos-params"/>
260 <function name="flickcurl_photos_getContext ()" link="flickcurl-section-photo.html#flickcurl-photos-getContext"/>
261 <function name="flickcurl_photos_getCounts ()" link="flickcurl-section-photo.html#flickcurl-photos-getCounts"/>
262 <function name="flickcurl_photos_getExif ()" link="flickcurl-section-photo.html#flickcurl-photos-getExif"/>
263 <function name="flickcurl_photos_getFavorites ()" link="flickcurl-section-photo.html#flickcurl-photos-getFavorites"/>
264 <function name="flickcurl_photos_getInfo ()" link="flickcurl-section-photo.html#flickcurl-photos-getInfo"/>
265 <function name="flickcurl_photos_getNotInSet ()" link="flickcurl-section-photo.html#flickcurl-photos-getNotInSet"/>
266 <function name="flickcurl_photos_getNotInSet_params ()" link="flickcurl-section-photo.html#flickcurl-photos-getNotInSet-params"/>
267 <function name="flickcurl_photos_getPerms ()" link="flickcurl-section-photo.html#flickcurl-photos-getPerms"/>
268 <function name="flickcurl_photos_getRecent ()" link="flickcurl-section-photo.html#flickcurl-photos-getRecent"/>
269 <function name="flickcurl_photos_getRecent_params ()" link="flickcurl-section-photo.html#flickcurl-photos-getRecent-params"/>
270 <function name="flickcurl_photos_getSizes ()" link="flickcurl-section-photo.html#flickcurl-photos-getSizes"/>
271 <function name="flickcurl_photos_getUntagged ()" link="flickcurl-section-photo.html#flickcurl-photos-getUntagged"/>
272 <function name="flickcurl_photos_getUntagged_params ()" link="flickcurl-section-photo.html#flickcurl-photos-getUntagged-params"/>
273 <function name="flickcurl_photos_getWithGeoData ()" link="flickcurl-section-photo.html#flickcurl-photos-getWithGeoData"/>
274 <function name="flickcurl_photos_getWithGeoData_params ()" link="flickcurl-section-photo.html#flickcurl-photos-getWithGeoData-params"/>
275 <function name="flickcurl_photos_getWithoutGeoData ()" link="flickcurl-section-photo.html#flickcurl-photos-getWithoutGeoData"/>
276 <function name="flickcurl_photos_getWithoutGeoData_params ()" link="flickcurl-section-photo.html#flickcurl-photos-getWithoutGeoData-params"/>
277 <function name="flickcurl_photos_licenses_getInfo ()" link="flickcurl-section-photo.html#flickcurl-photos-licenses-getInfo"/>
278 <function name="flickcurl_photos_licenses_getInfo_by_id ()" link="flickcurl-section-photo.html#flickcurl-photos-licenses-getInfo-by-id"/>
279 <function name="flickcurl_photos_licenses_setLicense ()" link="flickcurl-section-photo.html#flickcurl-photos-licenses-setLicense"/>
280 <function name="flickcurl_photos_notes_add ()" link="flickcurl-section-photo.html#flickcurl-photos-notes-add"/>
281 <function name="flickcurl_photos_notes_delete ()" link="flickcurl-section-photo.html#flickcurl-photos-notes-delete"/>
282 <function name="flickcurl_photos_notes_edit ()" link="flickcurl-section-photo.html#flickcurl-photos-notes-edit"/>
283 <function name="flickcurl_photos_recentlyUpdated ()" link="flickcurl-section-photo.html#flickcurl-photos-recentlyUpdated"/>
284 <function name="flickcurl_photos_recentlyUpdated_params ()" link="flickcurl-section-photo.html#flickcurl-photos-recentlyUpdated-params"/>
285 <function name="flickcurl_photos_removeTag ()" link="flickcurl-section-photo.html#flickcurl-photos-removeTag"/>
286 <function name="flickcurl_photos_replace ()" link="flickcurl-section-photo.html#flickcurl-photos-replace"/>
287 <function name="flickcurl_photos_search ()" link="flickcurl-section-photo.html#flickcurl-photos-search"/>
288 <function name="flickcurl_photos_search_params ()" link="flickcurl-section-photo.html#flickcurl-photos-search-params"/>
289 <function name="flickcurl_search_params" link="flickcurl-section-photo.html#flickcurl-search-params"/>
290 <function name="flickcurl_search_params_init ()" link="flickcurl-section-photo.html#flickcurl-search-params-init"/>
291 <function name="flickcurl_photos_setContentType ()" link="flickcurl-section-photo.html#flickcurl-photos-setContentType"/>
292 <function name="flickcurl_photos_setDates ()" link="flickcurl-section-photo.html#flickcurl-photos-setDates"/>
293 <function name="flickcurl_photos_setMeta ()" link="flickcurl-section-photo.html#flickcurl-photos-setMeta"/>
294 <function name="flickcurl_photos_setPerms ()" link="flickcurl-section-photo.html#flickcurl-photos-setPerms"/>
295 <function name="flickcurl_photos_setSafetyLevel ()" link="flickcurl-section-photo.html#flickcurl-photos-setSafetyLevel"/>
296 <function name="flickcurl_photos_setTags ()" link="flickcurl-section-photo.html#flickcurl-photos-setTags"/>
297 <function name="flickcurl_photos_transform_rotate ()" link="flickcurl-section-photo.html#flickcurl-photos-transform-rotate"/>
298 <function name="flickcurl_photos_upload_checkTickets ()" link="flickcurl-section-photo.html#flickcurl-photos-upload-checkTickets"/>
299 <function name="flickcurl_photos_upload_params ()" link="flickcurl-section-photo.html#flickcurl-photos-upload-params"/>
300 <function name="flickcurl_photos_people_add ()" link="flickcurl-section-photos-people.html#flickcurl-photos-people-add"/>
301 <function name="flickcurl_photos_people_delete ()" link="flickcurl-section-photos-people.html#flickcurl-photos-people-delete"/>
302 <function name="flickcurl_photos_people_deleteCoords ()" link="flickcurl-section-photos-people.html#flickcurl-photos-people-deleteCoords"/>
303 <function name="flickcurl_photos_people_editCoords ()" link="flickcurl-section-photos-people.html#flickcurl-photos-people-editCoords"/>
304 <function name="flickcurl_photos_people_getList ()" link="flickcurl-section-photos-people.html#flickcurl-photos-people-getList"/>
305 <function name="flickcurl_photos_list" link="flickcurl-section-photoslist.html#flickcurl-photos-list"/>
306 <function name="flickcurl_photos_list_params" link="flickcurl-section-photoslist.html#flickcurl-photos-list-params"/>
307 <function name="flickcurl_photos_list_params_init ()" link="flickcurl-section-photoslist.html#flickcurl-photos-list-params-init"/>
308 <function name="flickcurl_free_photos_list ()" link="flickcurl-section-photoslist.html#flickcurl-free-photos-list"/>
309 <function name="flickcurl_photoset" link="flickcurl-section-photoset.html#flickcurl-photoset"/>
310 <function name="flickcurl_free_photoset ()" link="flickcurl-section-photoset.html#flickcurl-free-photoset"/>
311 <function name="flickcurl_free_photosets ()" link="flickcurl-section-photoset.html#flickcurl-free-photosets"/>
312 <function name="flickcurl_photosets_addPhoto ()" link="flickcurl-section-photoset.html#flickcurl-photosets-addPhoto"/>
313 <function name="flickcurl_photosets_comments_addComment ()" link="flickcurl-section-photoset.html#flickcurl-photosets-comments-addComment"/>
314 <function name="flickcurl_photosets_comments_deleteComment ()" link="flickcurl-section-photoset.html#flickcurl-photosets-comments-deleteComment"/>
315 <function name="flickcurl_photosets_comments_editComment ()" link="flickcurl-section-photoset.html#flickcurl-photosets-comments-editComment"/>
316 <function name="flickcurl_photosets_comments_getList ()" link="flickcurl-section-photoset.html#flickcurl-photosets-comments-getList"/>
317 <function name="flickcurl_photosets_create ()" link="flickcurl-section-photoset.html#flickcurl-photosets-create"/>
318 <function name="flickcurl_photosets_delete ()" link="flickcurl-section-photoset.html#flickcurl-photosets-delete"/>
319 <function name="flickcurl_photosets_editMeta ()" link="flickcurl-section-photoset.html#flickcurl-photosets-editMeta"/>
320 <function name="flickcurl_photosets_editPhotos ()" link="flickcurl-section-photoset.html#flickcurl-photosets-editPhotos"/>
321 <function name="flickcurl_photosets_getContext ()" link="flickcurl-section-photoset.html#flickcurl-photosets-getContext"/>
322 <function name="flickcurl_photosets_getInfo ()" link="flickcurl-section-photoset.html#flickcurl-photosets-getInfo"/>
323 <function name="flickcurl_photosets_getList ()" link="flickcurl-section-photoset.html#flickcurl-photosets-getList"/>
324 <function name="flickcurl_photosets_getPhotos ()" link="flickcurl-section-photoset.html#flickcurl-photosets-getPhotos"/>
325 <function name="flickcurl_photosets_getPhotos_params ()" link="flickcurl-section-photoset.html#flickcurl-photosets-getPhotos-params"/>
326 <function name="flickcurl_photosets_orderSets ()" link="flickcurl-section-photoset.html#flickcurl-photosets-orderSets"/>
327 <function name="flickcurl_photosets_removePhoto ()" link="flickcurl-section-photoset.html#flickcurl-photosets-removePhoto"/>
328 <function name="flickcurl_photosets_removePhotos ()" link="flickcurl-section-photoset.html#flickcurl-photosets-removePhotos"/>
329 <function name="flickcurl_photosets_reorderPhotos ()" link="flickcurl-section-photoset.html#flickcurl-photosets-reorderPhotos"/>
330 <function name="flickcurl_photosets_setPrimaryPhoto ()" link="flickcurl-section-photoset.html#flickcurl-photosets-setPrimaryPhoto"/>
331 <function name="flickcurl_place" link="flickcurl-section-place.html#flickcurl-place"/>
332 <function name="flickcurl_free_place ()" link="flickcurl-section-place.html#flickcurl-free-place"/>
333 <function name="flickcurl_free_places ()" link="flickcurl-section-place.html#flickcurl-free-places"/>
334 <function name="enum flickcurl_place_type" link="flickcurl-section-place.html#flickcurl-place-type"/>
335 <function name="flickcurl_place_type_info" link="flickcurl-section-place.html#flickcurl-place-type-info"/>
336 <function name="flickcurl_place_type_to_id ()" link="flickcurl-section-place.html#flickcurl-place-type-to-id"/>
337 <function name="flickcurl_free_place_type_infos ()" link="flickcurl-section-place.html#flickcurl-free-place-type-infos"/>
338 <function name="flickcurl_get_place_type_by_label ()" link="flickcurl-section-place.html#flickcurl-get-place-type-by-label"/>
339 <function name="flickcurl_get_place_type_label ()" link="flickcurl-section-place.html#flickcurl-get-place-type-label"/>
340 <function name="flickcurl_places_find ()" link="flickcurl-section-place.html#flickcurl-places-find"/>
341 <function name="flickcurl_places_findByLatLon ()" link="flickcurl-section-place.html#flickcurl-places-findByLatLon"/>
342 <function name="flickcurl_places_forUser ()" link="flickcurl-section-place.html#flickcurl-places-forUser"/>
343 <function name="flickcurl_places_getChildrenWithPhotosPublic ()" link="flickcurl-section-place.html#flickcurl-places-getChildrenWithPhotosPublic"/>
344 <function name="flickcurl_places_getChildrenWithPhotosPublic2 ()" link="flickcurl-section-place.html#flickcurl-places-getChildrenWithPhotosPublic2"/>
345 <function name="flickcurl_places_getInfo ()" link="flickcurl-section-place.html#flickcurl-places-getInfo"/>
346 <function name="flickcurl_places_getInfo2 ()" link="flickcurl-section-place.html#flickcurl-places-getInfo2"/>
347 <function name="flickcurl_places_getInfoByUrl ()" link="flickcurl-section-place.html#flickcurl-places-getInfoByUrl"/>
348 <function name="flickcurl_places_getPlaceTypes ()" link="flickcurl-section-place.html#flickcurl-places-getPlaceTypes"/>
349 <function name="flickcurl_places_getShapeHistory ()" link="flickcurl-section-place.html#flickcurl-places-getShapeHistory"/>
350 <function name="flickcurl_places_getTopPlacesList ()" link="flickcurl-section-place.html#flickcurl-places-getTopPlacesList"/>
351 <function name="flickcurl_place_id_to_type ()" link="flickcurl-section-place.html#flickcurl-place-id-to-type"/>
352 <function name="flickcurl_places_placesForBoundingBox ()" link="flickcurl-section-place.html#flickcurl-places-placesForBoundingBox"/>
353 <function name="flickcurl_places_placesForContacts ()" link="flickcurl-section-place.html#flickcurl-places-placesForContacts"/>
354 <function name="flickcurl_places_placesForUser ()" link="flickcurl-section-place.html#flickcurl-places-placesForUser"/>
355 <function name="flickcurl_places_placesForTags ()" link="flickcurl-section-place.html#flickcurl-places-placesForTags"/>
356 <function name="flickcurl_places_resolvePlaceId ()" link="flickcurl-section-place.html#flickcurl-places-resolvePlaceId"/>
357 <function name="flickcurl_places_resolvePlaceURL ()" link="flickcurl-section-place.html#flickcurl-places-resolvePlaceURL"/>
358 <function name="flickcurl_places_tagsForPlace ()" link="flickcurl-section-place.html#flickcurl-places-tagsForPlace"/>
359 <function name="flickcurl_prefs_getContentType ()" link="flickcurl-section-prefs.html#flickcurl-prefs-getContentType"/>
360 <function name="flickcurl_prefs_getGeoPerms ()" link="flickcurl-section-prefs.html#flickcurl-prefs-getGeoPerms"/>
361 <function name="flickcurl_prefs_getHidden ()" link="flickcurl-section-prefs.html#flickcurl-prefs-getHidden"/>
362 <function name="flickcurl_prefs_getPrivacy ()" link="flickcurl-section-prefs.html#flickcurl-prefs-getPrivacy"/>
363 <function name="flickcurl_prefs_getSafetyLevel ()" link="flickcurl-section-prefs.html#flickcurl-prefs-getSafetyLevel"/>
364 <function name="flickcurl_arg" link="flickcurl-section-reflection.html#flickcurl-arg"/>
365 <function name="flickcurl_method" link="flickcurl-section-reflection.html#flickcurl-method"/>
366 <function name="flickcurl_free_method ()" link="flickcurl-section-reflection.html#flickcurl-free-method"/>
367 <function name="flickcurl_reflection_getMethodInfo ()" link="flickcurl-section-reflection.html#flickcurl-reflection-getMethodInfo"/>
368 <function name="flickcurl_reflection_getMethods ()" link="flickcurl-section-reflection.html#flickcurl-reflection-getMethods"/>
369 <function name="flickcurl_serializer" link="flickcurl-section-serializer.html#flickcurl-serializer"/>
370 <function name="flickcurl_serializer_factory" link="flickcurl-section-serializer.html#flickcurl-serializer-factory"/>
371 <function name="flickcurl_new_serializer ()" link="flickcurl-section-serializer.html#flickcurl-new-serializer"/>
372 <function name="flickcurl_free_serializer ()" link="flickcurl-section-serializer.html#flickcurl-free-serializer"/>
373 <function name="flickcurl_serialize_photo ()" link="flickcurl-section-serializer.html#flickcurl-serialize-photo"/>
374 <function name="enum flickcurl_term_type" link="flickcurl-section-serializer.html#flickcurl-term-type"/>
375 <function name="flickcurl_stat" link="flickcurl-section-stats.html#flickcurl-stat"/>
376 <function name="flickcurl_view_stats" link="flickcurl-section-stats.html#flickcurl-view-stats"/>
377 <function name="flickcurl_free_stat ()" link="flickcurl-section-stats.html#flickcurl-free-stat"/>
378 <function name="flickcurl_free_stats ()" link="flickcurl-section-stats.html#flickcurl-free-stats"/>
379 <function name="flickcurl_free_view_stats ()" link="flickcurl-section-stats.html#flickcurl-free-view-stats"/>
380 <function name="flickcurl_stats_getCSVFiles ()" link="flickcurl-section-stats.html#flickcurl-stats-getCSVFiles"/>
381 <function name="flickcurl_stats_getCollectionDomains ()" link="flickcurl-section-stats.html#flickcurl-stats-getCollectionDomains"/>
382 <function name="flickcurl_stats_getCollectionReferrers ()" link="flickcurl-section-stats.html#flickcurl-stats-getCollectionReferrers"/>
383 <function name="flickcurl_stats_getCollectionStats ()" link="flickcurl-section-stats.html#flickcurl-stats-getCollectionStats"/>
384 <function name="flickcurl_stats_getPhotoDomains ()" link="flickcurl-section-stats.html#flickcurl-stats-getPhotoDomains"/>
385 <function name="flickcurl_stats_getPhotoReferrers ()" link="flickcurl-section-stats.html#flickcurl-stats-getPhotoReferrers"/>
386 <function name="flickcurl_stats_getPhotoStats ()" link="flickcurl-section-stats.html#flickcurl-stats-getPhotoStats"/>
387 <function name="flickcurl_stats_getPhotosetDomains ()" link="flickcurl-section-stats.html#flickcurl-stats-getPhotosetDomains"/>
388 <function name="flickcurl_stats_getPhotosetReferrers ()" link="flickcurl-section-stats.html#flickcurl-stats-getPhotosetReferrers"/>
389 <function name="flickcurl_stats_getPhotosetStats ()" link="flickcurl-section-stats.html#flickcurl-stats-getPhotosetStats"/>
390 <function name="flickcurl_stats_getPhotostreamDomains ()" link="flickcurl-section-stats.html#flickcurl-stats-getPhotostreamDomains"/>
391 <function name="flickcurl_stats_getPhotostreamReferrers ()" link="flickcurl-section-stats.html#flickcurl-stats-getPhotostreamReferrers"/>
392 <function name="flickcurl_stats_getPhotostreamStats ()" link="flickcurl-section-stats.html#flickcurl-stats-getPhotostreamStats"/>
393 <function name="flickcurl_stats_getPopularPhotos ()" link="flickcurl-section-stats.html#flickcurl-stats-getPopularPhotos"/>
394 <function name="flickcurl_stats_getTotalViews ()" link="flickcurl-section-stats.html#flickcurl-stats-getTotalViews"/>
395 <function name="flickcurl_tag" link="flickcurl-section-tag.html#flickcurl-tag"/>
396 <function name="flickcurl_tag_cluster" link="flickcurl-section-tag.html#flickcurl-tag-cluster"/>
397 <function name="flickcurl_tag_clusters" link="flickcurl-section-tag.html#flickcurl-tag-clusters"/>
398 <function name="flickcurl_free_tag ()" link="flickcurl-section-tag.html#flickcurl-free-tag"/>
399 <function name="flickcurl_free_tag_clusters ()" link="flickcurl-section-tag.html#flickcurl-free-tag-clusters"/>
400 <function name="flickcurl_tag_handler ()" link="flickcurl-section-tag.html#flickcurl-tag-handler"/>
401 <function name="flickcurl_tags_getClusterPhotos ()" link="flickcurl-section-tag.html#flickcurl-tags-getClusterPhotos"/>
402 <function name="flickcurl_tags_getClusters ()" link="flickcurl-section-tag.html#flickcurl-tags-getClusters"/>
403 <function name="flickcurl_tags_getHotList ()" link="flickcurl-section-tag.html#flickcurl-tags-getHotList"/>
404 <function name="flickcurl_tags_getListPhoto ()" link="flickcurl-section-tag.html#flickcurl-tags-getListPhoto"/>
405 <function name="flickcurl_tags_getListUser ()" link="flickcurl-section-tag.html#flickcurl-tags-getListUser"/>
406 <function name="flickcurl_tags_getListUserPopular ()" link="flickcurl-section-tag.html#flickcurl-tags-getListUserPopular"/>
407 <function name="flickcurl_tags_getListUserRaw ()" link="flickcurl-section-tag.html#flickcurl-tags-getListUserRaw"/>
408 <function name="flickcurl_tags_getRelated ()" link="flickcurl-section-tag.html#flickcurl-tags-getRelated"/>
409 <function name="flickcurl_test_echo ()" link="flickcurl-section-test.html#flickcurl-test-echo"/>
410 <function name="flickcurl_test_login ()" link="flickcurl-section-test.html#flickcurl-test-login"/>
411 <function name="flickcurl_test_null ()" link="flickcurl-section-test.html#flickcurl-test-null"/>
412 <function name="flickcurl_ticket" link="flickcurl-section-upload.html#flickcurl-ticket"/>
413 <function name="flickcurl_free_ticket ()" link="flickcurl-section-upload.html#flickcurl-free-ticket"/>
414 <function name="flickcurl_free_tickets ()" link="flickcurl-section-upload.html#flickcurl-free-tickets"/>
415 <function name="flickcurl_upload_params" link="flickcurl-section-upload.html#flickcurl-upload-params"/>
416 <function name="flickcurl_upload_status" link="flickcurl-section-upload.html#flickcurl-upload-status"/>
417 <function name="flickcurl_user_upload_status" link="flickcurl-section-upload.html#flickcurl-user-upload-status"/>
418 <function name="flickcurl_free_upload_status ()" link="flickcurl-section-upload.html#flickcurl-free-upload-status"/>
419 <function name="flickcurl_free_user_upload_status ()" link="flickcurl-section-upload.html#flickcurl-free-user-upload-status"/>
420 <function name="flickcurl_urls_getGroup ()" link="flickcurl-section-urls.html#flickcurl-urls-getGroup"/>
421 <function name="flickcurl_urls_getUserPhotos ()" link="flickcurl-section-urls.html#flickcurl-urls-getUserPhotos"/>
422 <function name="flickcurl_urls_getUserProfile ()" link="flickcurl-section-urls.html#flickcurl-urls-getUserProfile"/>
423 <function name="flickcurl_urls_lookupGallery ()" link="flickcurl-section-urls.html#flickcurl-urls-lookupGallery"/>
424 <function name="flickcurl_urls_lookupGroup ()" link="flickcurl-section-urls.html#flickcurl-urls-lookupGroup"/>
425 <function name="flickcurl_urls_lookupUser ()" link="flickcurl-section-urls.html#flickcurl-urls-lookupUser"/>
426 <function name="flickcurl_video" link="flickcurl-section-video.html#flickcurl-video"/>
427 <function name="flickcurl_free_video ()" link="flickcurl-section-video.html#flickcurl-free-video"/>
428 </functions>
429 </book>
2727 <sub name="Comments" link="flickcurl-section-comment.html"/>
2828 <sub name="Flickr Commons" link="flickcurl-section-commons.html"/>
2929 <sub name="Collections" link="flickcurl-section-collections.html"/>
30 <sub name="Config" link="flickcurl-section-config.html"/>
3031 <sub name="Contacts" link="flickcurl-section-contact.html"/>
3132 <sub name="Contexts" link="flickcurl-section-context.html"/>
3233 <sub name="EXIF" link="flickcurl-section-exif.html"/>
5758 </chapters>
5859 <functions>
5960 <keyword type="typedef" name="flickcurl" link="flickcurl-section-core.html#flickcurl"/>
61 <keyword type="variable" name="flickcurl_version_string" link="flickcurl-section-core.html#flickcurl-version-string"/>
62 <keyword type="variable" name="flickcurl_license_string" link="flickcurl-section-core.html#flickcurl-license-string"/>
63 <keyword type="variable" name="flickcurl_copyright_string" link="flickcurl-section-core.html#flickcurl-copyright-string"/>
64 <keyword type="variable" name="flickcurl_short_copyright_string" link="flickcurl-section-core.html#flickcurl-short-copyright-string"/>
65 <keyword type="variable" name="flickcurl_home_url_string" link="flickcurl-section-core.html#flickcurl-home-url-string"/>
66 <keyword type="variable" name="flickcurl_flickr_replace_service_uri" link="flickcurl-section-core.html#flickcurl-flickr-replace-service-uri"/>
67 <keyword type="variable" name="flickcurl_flickr_service_uri" link="flickcurl-section-core.html#flickcurl-flickr-service-uri"/>
68 <keyword type="variable" name="flickcurl_flickr_upload_service_uri" link="flickcurl-section-core.html#flickcurl-flickr-upload-service-uri"/>
69 <keyword type="variable" name="flickcurl_flickr_oauth_access_token_uri" link="flickcurl-section-core.html#flickcurl-flickr-oauth-access-token-uri"/>
70 <keyword type="variable" name="flickcurl_flickr_oauth_authorize_uri" link="flickcurl-section-core.html#flickcurl-flickr-oauth-authorize-uri"/>
71 <keyword type="variable" name="flickcurl_flickr_oauth_request_token_uri" link="flickcurl-section-core.html#flickcurl-flickr-oauth-request-token-uri"/>
6072 <keyword type="function" name="flickcurl_message_handler ()" link="flickcurl-section-core.html#flickcurl-message-handler"/>
6173 <keyword type="function" name="flickcurl_init ()" link="flickcurl-section-core.html#flickcurl-init"/>
6274 <keyword type="function" name="flickcurl_finish ()" link="flickcurl-section-core.html#flickcurl-finish"/>
100112 <keyword type="function" name="flickcurl_auth_getFrob ()" link="flickcurl-section-auth.html#flickcurl-auth-getFrob"/>
101113 <keyword type="function" name="flickcurl_auth_getFullToken ()" link="flickcurl-section-auth.html#flickcurl-auth-getFullToken"/>
102114 <keyword type="function" name="flickcurl_auth_getToken ()" link="flickcurl-section-auth.html#flickcurl-auth-getToken"/>
115 <keyword type="function" name="flickcurl_auth_oauth_getAccessToken ()" link="flickcurl-section-auth.html#flickcurl-auth-oauth-getAccessToken"/>
103116 <keyword type="struct" name="flickcurl_blog" link="flickcurl-section-blogs.html#flickcurl-blog"/>
104117 <keyword type="function" name="flickcurl_blogs_getList ()" link="flickcurl-section-blogs.html#flickcurl-blogs-getList"/>
105118 <keyword type="struct" name="flickcurl_blog_service" link="flickcurl-section-blogs.html#flickcurl-blog-service"/>
124137 <keyword type="function" name="flickcurl_collections_getTree ()" link="flickcurl-section-collections.html#flickcurl-collections-getTree"/>
125138 <keyword type="function" name="flickcurl_free_collection ()" link="flickcurl-section-collections.html#flickcurl-free-collection"/>
126139 <keyword type="function" name="flickcurl_free_collections ()" link="flickcurl-section-collections.html#flickcurl-free-collections"/>
140 <keyword type="function" name="flickcurl_config_read_ini ()" link="flickcurl-section-config.html#flickcurl-config-read-ini"/>
141 <keyword type="function" name="flickcurl_config_var_handler ()" link="flickcurl-section-config.html#flickcurl-config-var-handler"/>
142 <keyword type="function" name="flickcurl_config_write_ini ()" link="flickcurl-section-config.html#flickcurl-config-write-ini"/>
127143 <keyword type="struct" name="flickcurl_contact" link="flickcurl-section-contact.html#flickcurl-contact"/>
128144 <keyword type="function" name="flickcurl_contacts_getList ()" link="flickcurl-section-contact.html#flickcurl-contacts-getList"/>
129145 <keyword type="function" name="flickcurl_contacts_getListRecentlyUploaded ()" link="flickcurl-section-contact.html#flickcurl-contacts-getListRecentlyUploaded"/>
139155 <keyword type="function" name="flickcurl_free_exif ()" link="flickcurl-section-exif.html#flickcurl-free-exif"/>
140156 <keyword type="function" name="flickcurl_free_exifs ()" link="flickcurl-section-exif.html#flickcurl-free-exifs"/>
141157 <keyword type="function" name="flickcurl_favorites_add ()" link="flickcurl-section-favorite.html#flickcurl-favorites-add"/>
158 <keyword type="function" name="flickcurl_favorites_getContext ()" link="flickcurl-section-favorite.html#flickcurl-favorites-getContext"/>
142159 <keyword type="function" name="flickcurl_favorites_getList ()" link="flickcurl-section-favorite.html#flickcurl-favorites-getList"/>
143160 <keyword type="function" name="flickcurl_favorites_getList_params ()" link="flickcurl-section-favorite.html#flickcurl-favorites-getList-params"/>
144161 <keyword type="function" name="flickcurl_favorites_getPublicList ()" link="flickcurl-section-favorite.html#flickcurl-favorites-getPublicList"/>
199216 <keyword type="struct" name="flickcurl_license" link="flickcurl-section-misc.html#flickcurl-license"/>
200217 <keyword type="function" name="flickcurl_get_content_type_label ()" link="flickcurl-section-misc.html#flickcurl-get-content-type-label"/>
201218 <keyword type="function" name="flickcurl_get_content_type_from_string ()" link="flickcurl-section-misc.html#flickcurl-get-content-type-from-string"/>
219 <keyword type="function" name="flickcurl_get_hidden_label ()" link="flickcurl-section-misc.html#flickcurl-get-hidden-label"/>
220 <keyword type="function" name="flickcurl_get_hidden_from_string ()" link="flickcurl-section-misc.html#flickcurl-get-hidden-from-string"/>
202221 <keyword type="function" name="flickcurl_get_safety_level_label ()" link="flickcurl-section-misc.html#flickcurl-get-safety-level-label"/>
203222 <keyword type="function" name="flickcurl_get_safety_level_from_string ()" link="flickcurl-section-misc.html#flickcurl-get-safety-level-from-string"/>
204223 <keyword type="function" name="flickcurl_user_icon_uri ()" link="flickcurl-section-misc.html#flickcurl-user-icon-uri"/>
396415 <keyword type="struct" name="flickcurl_tag_cluster" link="flickcurl-section-tag.html#flickcurl-tag-cluster"/>
397416 <keyword type="struct" name="flickcurl_tag_clusters" link="flickcurl-section-tag.html#flickcurl-tag-clusters"/>
398417 <keyword type="function" name="flickcurl_free_tag ()" link="flickcurl-section-tag.html#flickcurl-free-tag"/>
418 <keyword type="function" name="flickcurl_free_tags ()" link="flickcurl-section-tag.html#flickcurl-free-tags"/>
399419 <keyword type="function" name="flickcurl_free_tag_clusters ()" link="flickcurl-section-tag.html#flickcurl-free-tag-clusters"/>
400420 <keyword type="function" name="flickcurl_tag_handler ()" link="flickcurl-section-tag.html#flickcurl-tag-handler"/>
401421 <keyword type="function" name="flickcurl_tags_getClusterPhotos ()" link="flickcurl-section-tag.html#flickcurl-tags-getClusterPhotos"/>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Flickcurl Flickr API Manual</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="next" href="introduction.html" title="Flickcurl Overview">
8 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
8 <meta name="generator" content="GTK-Doc V1.18 (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">
2121   <span class="otheraddr"><a class="ulink" href="http://www.dajobe.org/" target="_top">http://www.dajobe.org/</a></span><br>
2222 </p></div></div>
2323 </div></div>
24 <div><p class="releaseinfo">Manual for <a class="ulink" href="http://librdf.org/flickcurl/" target="_top">Flickcurl</a> 1.21
24 <div><p class="releaseinfo">Manual for <a class="ulink" href="http://librdf.org/flickcurl/" target="_top">Flickcurl</a> 1.22
2525 </p></div>
26 <div><p class="copyright">Copyright © 2007, 2008, 2009, 2010 Dave Beckett</p></div>
26 <div><p class="copyright">Copyright © 2007, 2008, 2009, 2010, 2011 Dave Beckett</p></div>
2727 <div><div class="legalnotice">
28 <a name="idp15362656"></a><p>
28 <a name="idp1559576"></a><p>
2929 This documentation is Free Software / Open Source - you can
3030 redistribute it and/or modify it under the same licenses as
3131 <a class="ulink" href="http://librdf.org/flickcurl/" target="_top">Flickcurl</a>.
9292 </dt>
9393 <dt>
9494 <span class="refentrytitle"><a href="flickcurl-section-collections.html">Collections</a></span><span class="refpurpose"> — Collections of photos or sets.</span>
95 </dt>
96 <dt>
97 <span class="refentrytitle"><a href="flickcurl-section-config.html">Config</a></span><span class="refpurpose"> — Configuration files</span>
9598 </dt>
9699 <dt>
97100 <span class="refentrytitle"><a href="flickcurl-section-contact.html">Contacts</a></span><span class="refpurpose"> — A contact of a user.</span>
176179 </div>
177180 <div class="footer">
178181 <hr>
179 Generated by GTK-Doc V1.17</div>
182 Generated by GTK-Doc V1.18</div>
180183 </body>
181184 </html>
22 <ANCHOR id="flickcurl-section-core.description" href="flickcurl/flickcurl-section-core.html#flickcurl-section-core.description">
33 <ANCHOR id="flickcurl-section-core.details" href="flickcurl/flickcurl-section-core.html#flickcurl-section-core.details">
44 <ANCHOR id="flickcurl" href="flickcurl/flickcurl-section-core.html#flickcurl">
5 <ANCHOR id="flickcurl-version-string" href="flickcurl/flickcurl-section-core.html#flickcurl-version-string">
6 <ANCHOR id="flickcurl-license-string" href="flickcurl/flickcurl-section-core.html#flickcurl-license-string">
7 <ANCHOR id="flickcurl-copyright-string" href="flickcurl/flickcurl-section-core.html#flickcurl-copyright-string">
8 <ANCHOR id="flickcurl-short-copyright-string" href="flickcurl/flickcurl-section-core.html#flickcurl-short-copyright-string">
9 <ANCHOR id="flickcurl-home-url-string" href="flickcurl/flickcurl-section-core.html#flickcurl-home-url-string">
10 <ANCHOR id="flickcurl-flickr-replace-service-uri" href="flickcurl/flickcurl-section-core.html#flickcurl-flickr-replace-service-uri">
11 <ANCHOR id="flickcurl-flickr-service-uri" href="flickcurl/flickcurl-section-core.html#flickcurl-flickr-service-uri">
12 <ANCHOR id="flickcurl-flickr-upload-service-uri" href="flickcurl/flickcurl-section-core.html#flickcurl-flickr-upload-service-uri">
13 <ANCHOR id="flickcurl-flickr-oauth-access-token-uri" href="flickcurl/flickcurl-section-core.html#flickcurl-flickr-oauth-access-token-uri">
14 <ANCHOR id="flickcurl-flickr-oauth-authorize-uri" href="flickcurl/flickcurl-section-core.html#flickcurl-flickr-oauth-authorize-uri">
15 <ANCHOR id="flickcurl-flickr-oauth-request-token-uri" href="flickcurl/flickcurl-section-core.html#flickcurl-flickr-oauth-request-token-uri">
516 <ANCHOR id="flickcurl-message-handler" href="flickcurl/flickcurl-section-core.html#flickcurl-message-handler">
617 <ANCHOR id="flickcurl-init" href="flickcurl/flickcurl-section-core.html#flickcurl-init">
718 <ANCHOR id="flickcurl-finish" href="flickcurl/flickcurl-section-core.html#flickcurl-finish">
5768 <ANCHOR id="flickcurl-auth-getFrob" href="flickcurl/flickcurl-section-auth.html#flickcurl-auth-getFrob">
5869 <ANCHOR id="flickcurl-auth-getFullToken" href="flickcurl/flickcurl-section-auth.html#flickcurl-auth-getFullToken">
5970 <ANCHOR id="flickcurl-auth-getToken" href="flickcurl/flickcurl-section-auth.html#flickcurl-auth-getToken">
71 <ANCHOR id="flickcurl-auth-oauth-getAccessToken" href="flickcurl/flickcurl-section-auth.html#flickcurl-auth-oauth-getAccessToken">
6072 <ANCHOR id="flickcurl-section-blogs" href="flickcurl/flickcurl-section-blogs.html">
6173 <ANCHOR id="flickcurl-section-blogs.synopsis" href="flickcurl/flickcurl-section-blogs.html#flickcurl-section-blogs.synopsis">
6274 <ANCHOR id="flickcurl-section-blogs.description" href="flickcurl/flickcurl-section-blogs.html#flickcurl-section-blogs.description">
106118 <ANCHOR id="flickcurl-collections-getTree" href="flickcurl/flickcurl-section-collections.html#flickcurl-collections-getTree">
107119 <ANCHOR id="flickcurl-free-collection" href="flickcurl/flickcurl-section-collections.html#flickcurl-free-collection">
108120 <ANCHOR id="flickcurl-free-collections" href="flickcurl/flickcurl-section-collections.html#flickcurl-free-collections">
121 <ANCHOR id="flickcurl-section-config" href="flickcurl/flickcurl-section-config.html">
122 <ANCHOR id="flickcurl-section-config.synopsis" href="flickcurl/flickcurl-section-config.html#flickcurl-section-config.synopsis">
123 <ANCHOR id="flickcurl-section-config.description" href="flickcurl/flickcurl-section-config.html#flickcurl-section-config.description">
124 <ANCHOR id="flickcurl-section-config.details" href="flickcurl/flickcurl-section-config.html#flickcurl-section-config.details">
125 <ANCHOR id="flickcurl-config-read-ini" href="flickcurl/flickcurl-section-config.html#flickcurl-config-read-ini">
126 <ANCHOR id="flickcurl-config-var-handler" href="flickcurl/flickcurl-section-config.html#flickcurl-config-var-handler">
127 <ANCHOR id="flickcurl-config-write-ini" href="flickcurl/flickcurl-section-config.html#flickcurl-config-write-ini">
109128 <ANCHOR id="flickcurl-section-contact" href="flickcurl/flickcurl-section-contact.html">
110129 <ANCHOR id="flickcurl-section-contact.synopsis" href="flickcurl/flickcurl-section-contact.html#flickcurl-section-contact.synopsis">
111130 <ANCHOR id="flickcurl-section-contact.description" href="flickcurl/flickcurl-section-contact.html#flickcurl-section-contact.description">
143162 <ANCHOR id="flickcurl-section-favorite.description" href="flickcurl/flickcurl-section-favorite.html#flickcurl-section-favorite.description">
144163 <ANCHOR id="flickcurl-section-favorite.details" href="flickcurl/flickcurl-section-favorite.html#flickcurl-section-favorite.details">
145164 <ANCHOR id="flickcurl-favorites-add" href="flickcurl/flickcurl-section-favorite.html#flickcurl-favorites-add">
165 <ANCHOR id="flickcurl-favorites-getContext" href="flickcurl/flickcurl-section-favorite.html#flickcurl-favorites-getContext">
146166 <ANCHOR id="flickcurl-favorites-getList" href="flickcurl/flickcurl-section-favorite.html#flickcurl-favorites-getList">
147167 <ANCHOR id="flickcurl-favorites-getList-params" href="flickcurl/flickcurl-section-favorite.html#flickcurl-favorites-getList-params">
148168 <ANCHOR id="flickcurl-favorites-getPublicList" href="flickcurl/flickcurl-section-favorite.html#flickcurl-favorites-getPublicList">
219239 <ANCHOR id="flickcurl-license" href="flickcurl/flickcurl-section-misc.html#flickcurl-license">
220240 <ANCHOR id="flickcurl-get-content-type-label" href="flickcurl/flickcurl-section-misc.html#flickcurl-get-content-type-label">
221241 <ANCHOR id="flickcurl-get-content-type-from-string" href="flickcurl/flickcurl-section-misc.html#flickcurl-get-content-type-from-string">
242 <ANCHOR id="flickcurl-get-hidden-label" href="flickcurl/flickcurl-section-misc.html#flickcurl-get-hidden-label">
243 <ANCHOR id="flickcurl-get-hidden-from-string" href="flickcurl/flickcurl-section-misc.html#flickcurl-get-hidden-from-string">
222244 <ANCHOR id="flickcurl-get-safety-level-label" href="flickcurl/flickcurl-section-misc.html#flickcurl-get-safety-level-label">
223245 <ANCHOR id="flickcurl-get-safety-level-from-string" href="flickcurl/flickcurl-section-misc.html#flickcurl-get-safety-level-from-string">
224246 <ANCHOR id="flickcurl-user-icon-uri" href="flickcurl/flickcurl-section-misc.html#flickcurl-user-icon-uri">
584606 <ANCHOR id="flickcurl-tag-cluster" href="flickcurl/flickcurl-section-tag.html#flickcurl-tag-cluster">
585607 <ANCHOR id="flickcurl-tag-clusters" href="flickcurl/flickcurl-section-tag.html#flickcurl-tag-clusters">
586608 <ANCHOR id="flickcurl-free-tag" href="flickcurl/flickcurl-section-tag.html#flickcurl-free-tag">
609 <ANCHOR id="flickcurl-free-tags" href="flickcurl/flickcurl-section-tag.html#flickcurl-free-tags">
587610 <ANCHOR id="flickcurl-free-tag-clusters" href="flickcurl/flickcurl-section-tag.html#flickcurl-free-tag-clusters">
588611 <ANCHOR id="flickcurl-tag-handler" href="flickcurl/flickcurl-section-tag.html#flickcurl-tag-handler">
589612 <ANCHOR id="flickcurl-tags-getClusterPhotos" href="flickcurl/flickcurl-section-tag.html#flickcurl-tags-getClusterPhotos">
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Index</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="flickcurl-section-video.html" title="Video">
9 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
9 <meta name="generator" content="GTK-Doc V1.18 (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">
4949 </dt>
5050 <dt>flickcurl_auth_getToken, <a class="indexterm" href="flickcurl-section-auth.html#flickcurl-auth-getToken">flickcurl_auth_getToken ()</a>
5151 </dt>
52 <dt>flickcurl_auth_oauth_getAccessToken, <a class="indexterm" href="flickcurl-section-auth.html#flickcurl-auth-oauth-getAccessToken">flickcurl_auth_oauth_getAccessToken ()</a>
53 </dt>
5254 <dt>flickcurl_blog, <a class="indexterm" href="flickcurl-section-blogs.html#flickcurl-blog">flickcurl_blog</a>
5355 </dt>
5456 <dt>flickcurl_blogs_getList, <a class="indexterm" href="flickcurl-section-blogs.html#flickcurl-blogs-getList">flickcurl_blogs_getList ()</a>
7173 </dt>
7274 <dt>flickcurl_commons_getInstitutions, <a class="indexterm" href="flickcurl-section-commons.html#flickcurl-commons-getInstitutions">flickcurl_commons_getInstitutions ()</a>
7375 </dt>
76 <dt>flickcurl_config_read_ini, <a class="indexterm" href="flickcurl-section-config.html#flickcurl-config-read-ini">flickcurl_config_read_ini ()</a>
77 </dt>
78 <dt>flickcurl_config_var_handler, <a class="indexterm" href="flickcurl-section-config.html#flickcurl-config-var-handler">flickcurl_config_var_handler ()</a>
79 </dt>
80 <dt>flickcurl_config_write_ini, <a class="indexterm" href="flickcurl-section-config.html#flickcurl-config-write-ini">flickcurl_config_write_ini ()</a>
81 </dt>
7482 <dt>flickcurl_contact, <a class="indexterm" href="flickcurl-section-contact.html#flickcurl-contact">flickcurl_contact</a>
7583 </dt>
7684 <dt>flickcurl_contacts_getList, <a class="indexterm" href="flickcurl-section-contact.html#flickcurl-contacts-getList">flickcurl_contacts_getList ()</a>
8391 </dt>
8492 <dt>flickcurl_context_type, <a class="indexterm" href="flickcurl-section-context.html#flickcurl-context-type">enum flickcurl_context_type</a>
8593 </dt>
94 <dt>flickcurl_copyright_string, <a class="indexterm" href="flickcurl-section-core.html#flickcurl-copyright-string">flickcurl_copyright_string</a>
95 </dt>
8696 <dt>flickcurl_curl_setopt_handler, <a class="indexterm" href="flickcurl-section-core.html#flickcurl-curl-setopt-handler">flickcurl_curl_setopt_handler ()</a>
8797 </dt>
8898 <dt>FLICKCURL_DEPRECATED, <a class="indexterm" href="flickcurl-section-general.html#FLICKCURL-DEPRECATED:CAPS">FLICKCURL_DEPRECATED</a>
91101 </dt>
92102 <dt>flickcurl_favorites_add, <a class="indexterm" href="flickcurl-section-favorite.html#flickcurl-favorites-add">flickcurl_favorites_add ()</a>
93103 </dt>
104 <dt>flickcurl_favorites_getContext, <a class="indexterm" href="flickcurl-section-favorite.html#flickcurl-favorites-getContext">flickcurl_favorites_getContext ()</a>
105 </dt>
94106 <dt>flickcurl_favorites_getList, <a class="indexterm" href="flickcurl-section-favorite.html#flickcurl-favorites-getList">flickcurl_favorites_getList ()</a>
95107 </dt>
96108 <dt>flickcurl_favorites_getList_params, <a class="indexterm" href="flickcurl-section-favorite.html#flickcurl-favorites-getList-params">flickcurl_favorites_getList_params ()</a>
105117 </dt>
106118 <dt>flickcurl_finish, <a class="indexterm" href="flickcurl-section-core.html#flickcurl-finish">flickcurl_finish ()</a>
107119 </dt>
120 <dt>flickcurl_flickr_oauth_access_token_uri, <a class="indexterm" href="flickcurl-section-core.html#flickcurl-flickr-oauth-access-token-uri">flickcurl_flickr_oauth_access_token_uri</a>
121 </dt>
122 <dt>flickcurl_flickr_oauth_authorize_uri, <a class="indexterm" href="flickcurl-section-core.html#flickcurl-flickr-oauth-authorize-uri">flickcurl_flickr_oauth_authorize_uri</a>
123 </dt>
124 <dt>flickcurl_flickr_oauth_request_token_uri, <a class="indexterm" href="flickcurl-section-core.html#flickcurl-flickr-oauth-request-token-uri">flickcurl_flickr_oauth_request_token_uri</a>
125 </dt>
126 <dt>flickcurl_flickr_replace_service_uri, <a class="indexterm" href="flickcurl-section-core.html#flickcurl-flickr-replace-service-uri">flickcurl_flickr_replace_service_uri</a>
127 </dt>
128 <dt>flickcurl_flickr_service_uri, <a class="indexterm" href="flickcurl-section-core.html#flickcurl-flickr-service-uri">flickcurl_flickr_service_uri</a>
129 </dt>
130 <dt>flickcurl_flickr_upload_service_uri, <a class="indexterm" href="flickcurl-section-core.html#flickcurl-flickr-upload-service-uri">flickcurl_flickr_upload_service_uri</a>
131 </dt>
108132 <dt>flickcurl_free, <a class="indexterm" href="flickcurl-section-core.html#flickcurl-free">flickcurl_free ()</a>
109133 </dt>
110134 <dt>flickcurl_free_activities, <a class="indexterm" href="flickcurl-section-activity.html#flickcurl-free-activities">flickcurl_free_activities ()</a>
191215 </dt>
192216 <dt>flickcurl_free_tag, <a class="indexterm" href="flickcurl-section-tag.html#flickcurl-free-tag">flickcurl_free_tag ()</a>
193217 </dt>
218 <dt>flickcurl_free_tags, <a class="indexterm" href="flickcurl-section-tag.html#flickcurl-free-tags">flickcurl_free_tags ()</a>
219 </dt>
194220 <dt>flickcurl_free_tag_clusters, <a class="indexterm" href="flickcurl-section-tag.html#flickcurl-free-tag-clusters">flickcurl_free_tag_clusters ()</a>
195221 </dt>
196222 <dt>flickcurl_free_tag_namespace, <a class="indexterm" href="flickcurl-section-machinetags.html#flickcurl-free-tag-namespace">flickcurl_free_tag_namespace ()</a>
253279 </dt>
254280 <dt>flickcurl_get_field_value_type_label, <a class="indexterm" href="flickcurl-section-misc.html#flickcurl-get-field-value-type-label">flickcurl_get_field_value_type_label ()</a>
255281 </dt>
282 <dt>flickcurl_get_hidden_from_string, <a class="indexterm" href="flickcurl-section-misc.html#flickcurl-get-hidden-from-string">flickcurl_get_hidden_from_string ()</a>
283 </dt>
284 <dt>flickcurl_get_hidden_label, <a class="indexterm" href="flickcurl-section-misc.html#flickcurl-get-hidden-label">flickcurl_get_hidden_label ()</a>
285 </dt>
256286 <dt>flickcurl_get_institution_url_type_label, <a class="indexterm" href="flickcurl-section-commons.html#flickcurl-get-institution-url-type-label">flickcurl_get_institution_url_type_label ()</a>
257287 </dt>
258288 <dt>flickcurl_get_location_accuracy_label, <a class="indexterm" href="flickcurl-section-misc.html#flickcurl-get-location-accuracy-label">flickcurl_get_location_accuracy_label ()</a>
293323 </dt>
294324 <dt>flickcurl_groups_search, <a class="indexterm" href="flickcurl-section-group.html#flickcurl-groups-search">flickcurl_groups_search ()</a>
295325 </dt>
326 <dt>flickcurl_home_url_string, <a class="indexterm" href="flickcurl-section-core.html#flickcurl-home-url-string">flickcurl_home_url_string</a>
327 </dt>
296328 <dt>flickcurl_init, <a class="indexterm" href="flickcurl-section-core.html#flickcurl-init">flickcurl_init ()</a>
297329 </dt>
298330 <dt>flickcurl_institution, <a class="indexterm" href="flickcurl-section-commons.html#flickcurl-institution">flickcurl_institution</a>
305337 </dt>
306338 <dt>flickcurl_license, <a class="indexterm" href="flickcurl-section-misc.html#flickcurl-license">flickcurl_license</a>
307339 </dt>
340 <dt>flickcurl_license_string, <a class="indexterm" href="flickcurl-section-core.html#flickcurl-license-string">flickcurl_license_string</a>
341 </dt>
308342 <dt>flickcurl_location, <a class="indexterm" href="flickcurl-section-misc.html#flickcurl-location">flickcurl_location</a>
309343 </dt>
310344 <dt>flickcurl_machinetags_getNamespaces, <a class="indexterm" href="flickcurl-section-machinetags.html#flickcurl-machinetags-getNamespaces">flickcurl_machinetags_getNamespaces ()</a>
663697 </dt>
664698 <dt>flickcurl_set_xml_data, <a class="indexterm" href="flickcurl-section-core.html#flickcurl-set-xml-data">flickcurl_set_xml_data ()</a>
665699 </dt>
700 <dt>flickcurl_short_copyright_string, <a class="indexterm" href="flickcurl-section-core.html#flickcurl-short-copyright-string">flickcurl_short_copyright_string</a>
701 </dt>
666702 <dt>flickcurl_size, <a class="indexterm" href="flickcurl-section-misc.html#flickcurl-size">flickcurl_size</a>
667703 </dt>
668704 <dt>flickcurl_source_uri_as_photo_id, <a class="indexterm" href="flickcurl-section-photo.html#flickcurl-source-uri-as-photo-id">flickcurl_source_uri_as_photo_id ()</a>
756792 <dt>flickcurl_user_icon_uri, <a class="indexterm" href="flickcurl-section-misc.html#flickcurl-user-icon-uri">flickcurl_user_icon_uri ()</a>
757793 </dt>
758794 <dt>flickcurl_user_upload_status, <a class="indexterm" href="flickcurl-section-upload.html#flickcurl-user-upload-status">flickcurl_user_upload_status</a>
795 </dt>
796 <dt>flickcurl_version_string, <a class="indexterm" href="flickcurl-section-core.html#flickcurl-version-string">flickcurl_version_string</a>
759797 </dt>
760798 <dt>flickcurl_video, <a class="indexterm" href="flickcurl-section-video.html#flickcurl-video">flickcurl_video</a>
761799 </dt>
766804 </div>
767805 <div class="footer">
768806 <hr>
769 Generated by GTK-Doc V1.17</div>
807 Generated by GTK-Doc V1.18</div>
770808 </body>
771809 </html>
22 <head>
33 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
44 <title>Flickcurl Overview</title>
5 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
5 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
66 <link rel="home" href="index.html" title="Flickcurl Flickr API Manual">
77 <link rel="up" href="index.html" title="Flickcurl Flickr API Manual">
88 <link rel="prev" href="index.html" title="Flickcurl Flickr API Manual">
99 <link rel="next" href="flickcurl-section-core.html" title="Core">
10 <meta name="generator" content="GTK-Doc V1.17 (XML mode)">
10 <meta name="generator" content="GTK-Doc V1.18 (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">
3232 </div>
3333 <div class="footer">
3434 <hr>
35 Generated by GTK-Doc V1.17</div>
35 Generated by GTK-Doc V1.18</div>
3636 </body>
3737 </html>
5858 @Returns:
5959
6060
61 <!-- ##### FUNCTION flickcurl_auth_oauth_getAccessToken ##### -->
62 <para>
63
64 </para>
65
66 @fc:
67 @Returns:
68
69
0 <!-- ##### SECTION Title ##### -->
1 Config
2
3 <!-- ##### SECTION Short_Description ##### -->
4 Configuration files
5
6 <!-- ##### SECTION Long_Description ##### -->
7 <para>
8 Configuration files
9 </para>
10
11 <!-- ##### SECTION See_Also ##### -->
12 <para>
13
14 </para>
15
16 <!-- ##### SECTION Stability_Level ##### -->
17
18
19 <!-- ##### SECTION Image ##### -->
20
21
22 <!-- ##### FUNCTION flickcurl_config_read_ini ##### -->
23 <para>
24
25 </para>
26
27 @fc:
28 @filename:
29 @section:
30 @user_data:
31 @handler:
32 @Returns:
33
34
35 <!-- ##### FUNCTION flickcurl_config_var_handler ##### -->
36 <para>
37
38 </para>
39
40 @userdata:
41 @key:
42 @value:
43
44
45 <!-- ##### FUNCTION flickcurl_config_write_ini ##### -->
46 <para>
47
48 </para>
49
50 @fc:
51 @filename:
52 @section:
53 @Returns:
54
55
2020
2121
2222 <!-- ##### TYPEDEF flickcurl ##### -->
23 <para>
24
25 </para>
26
27
28 <!-- ##### VARIABLE flickcurl_version_string ##### -->
29 <para>
30
31 </para>
32
33
34 <!-- ##### VARIABLE flickcurl_license_string ##### -->
35 <para>
36
37 </para>
38
39
40 <!-- ##### VARIABLE flickcurl_copyright_string ##### -->
41 <para>
42
43 </para>
44
45
46 <!-- ##### VARIABLE flickcurl_short_copyright_string ##### -->
47 <para>
48
49 </para>
50
51
52 <!-- ##### VARIABLE flickcurl_home_url_string ##### -->
53 <para>
54
55 </para>
56
57
58 <!-- ##### VARIABLE flickcurl_flickr_replace_service_uri ##### -->
59 <para>
60
61 </para>
62
63
64 <!-- ##### VARIABLE flickcurl_flickr_service_uri ##### -->
65 <para>
66
67 </para>
68
69
70 <!-- ##### VARIABLE flickcurl_flickr_upload_service_uri ##### -->
71 <para>
72
73 </para>
74
75
76 <!-- ##### VARIABLE flickcurl_flickr_oauth_access_token_uri ##### -->
77 <para>
78
79 </para>
80
81
82 <!-- ##### VARIABLE flickcurl_flickr_oauth_authorize_uri ##### -->
83 <para>
84
85 </para>
86
87
88 <!-- ##### VARIABLE flickcurl_flickr_oauth_request_token_uri ##### -->
2389 <para>
2490
2591 </para>
2626
2727 @fc:
2828 @photo_id:
29 @Returns:
30
31
32 <!-- ##### FUNCTION flickcurl_favorites_getContext ##### -->
33 <para>
34
35 </para>
36
37 @fc:
38 @photo_id:
39 @user_id:
40 @num_prev:
41 @num_next:
42 @extras:
2943 @Returns:
3044
3145
162162 @Returns:
163163
164164
165 <!-- ##### FUNCTION flickcurl_get_hidden_label ##### -->
166 <para>
167
168 </para>
169
170 @hidden:
171 @Returns:
172
173
174 <!-- ##### FUNCTION flickcurl_get_hidden_from_string ##### -->
175 <para>
176
177 </para>
178
179 @hidden_string:
180 @Returns:
181
182
165183 <!-- ##### FUNCTION flickcurl_get_safety_level_label ##### -->
166184 <para>
167185
3333 @title:
3434 @description:
3535 @photos:
36 @owner:
3637
3738 <!-- ##### FUNCTION flickcurl_free_photoset ##### -->
3839 <para>
5555 </para>
5656
5757 @t:
58
59
60 <!-- ##### FUNCTION flickcurl_free_tags ##### -->
61 <para>
62
63 </para>
64
65 @tags:
5866
5967
6068 <!-- ##### FUNCTION flickcurl_free_tag_clusters ##### -->
5656 </para>
5757
5858 @filename:
59 @application:
59 @section:
6060 @user_data:
6161 @handler:
6262 @Returns:
7272 @value:
7373
7474
75 <!-- ##### MACRO mtwist_drand ##### -->
76 <para>
77
78 </para>
79
80
81
82 <!-- ##### MACRO mtwist_free ##### -->
83 <para>
84
85 </para>
86
87
88
89 <!-- ##### MACRO mtwist_init ##### -->
90 <para>
91
92 </para>
93
94
95
96 <!-- ##### MACRO mtwist_new ##### -->
97 <para>
98
99 </para>
100
101
102
103 <!-- ##### MACRO mtwist_seed_from_system ##### -->
104 <para>
105
106 </para>
107
108
109
110 <!-- ##### MACRO mtwist_u32rand ##### -->
111 <para>
112
113 </para>
114
115
116
5959 @is_family:
6060 @safety_level:
6161 @content_type:
62 @hidden:
6263
6364 <!-- ##### STRUCT flickcurl_upload_status ##### -->
6465 <para>
0 1.21
0 1.22
130130 CYGPATH_W = @CYGPATH_W@
131131 DEFS = @DEFS@
132132 DEPDIR = @DEPDIR@
133 DLLTOOL = @DLLTOOL@
133134 DSYMUTIL = @DSYMUTIL@
134135 DUMPBIN = @DUMPBIN@
135136 ECHO = @ECHO@
142143 FLICKCURL_VERSION_DECIMAL = @FLICKCURL_VERSION_DECIMAL@
143144 GREP = @GREP@
144145 GTKDOC_CHECK = @GTKDOC_CHECK@
146 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
147 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
145148 GTKDOC_MKPDF = @GTKDOC_MKPDF@
146149 GTKDOC_REBASE = @GTKDOC_REBASE@
147150 HTML_DIR = @HTML_DIR@
163166 LTLIBOBJS = @LTLIBOBJS@
164167 MAINT = @MAINT@
165168 MAKEINFO = @MAKEINFO@
169 MANIFEST_TOOL = @MANIFEST_TOOL@
166170 MKDIR_P = @MKDIR_P@
167171 NM = @NM@
168172 NMEDIT = @NMEDIT@
196200 abs_srcdir = @abs_srcdir@
197201 abs_top_builddir = @abs_top_builddir@
198202 abs_top_srcdir = @abs_top_srcdir@
203 ac_ct_AR = @ac_ct_AR@
199204 ac_ct_CC = @ac_ct_CC@
200205 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
201206 am__include = @am__include@
228233 libexecdir = @libexecdir@
229234 localedir = @localedir@
230235 localstatedir = @localstatedir@
231 lt_ECHO = @lt_ECHO@
232236 mandir = @mandir@
233237 mkdir_p = @mkdir_p@
234238 oldincludedir = @oldincludedir@
00 # -*- RPM-SPEC -*-
11 %define name flickcurl
2 %define version 1.21
2 %define version 1.22
33 %define release 1
44
55 %define major 0
44 ####################################
55
66 if GTK_DOC_USE_LIBTOOL
7 GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
8 GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
7 GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
8 GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
99 GTKDOC_RUN = $(LIBTOOL) --mode=execute
1010 else
11 GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
12 GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
11 GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
12 GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
1313 GTKDOC_RUN =
1414 endif
1515
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 tmpl-build.stamp sgml-build.stamp html-build.stamp \
33 pdf-build.stamp \
34 $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp \
35 $(srcdir)/pdf.stamp
31 EXTRA_DIST = \
32 $(HTML_IMAGES) \
33 $(SETUP_FILES)
34
35 DOC_STAMPS=setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \
36 html-build.stamp pdf-build.stamp \
37 tmpl.stamp sgml.stamp html.stamp pdf.stamp
3638
3739 SCANOBJ_FILES = \
3840 $(DOC_MODULE).args \
6971
7072 $(REPORT_FILES): sgml-build.stamp
7173
74 #### setup ####
75
76 setup-build.stamp:
77 -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
78 echo ' DOC Preparing build'; \
79 files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
80 if test "x$$files" != "x" ; then \
81 for file in $$files ; do \
82 test -f $(abs_srcdir)/$$file && \
83 cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \
84 done; \
85 fi; \
86 test -d $(abs_srcdir)/tmpl && \
87 { cp -rp $(abs_srcdir)/tmpl $(abs_builddir)/; \
88 chmod -R u+w $(abs_builddir)/tmpl; } \
89 fi
90 @touch setup-build.stamp
91
7292 #### scan ####
7393
7494 scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
75 @echo 'gtk-doc: Scanning header files'
95 @echo ' DOC Scanning header files'
96 @_source_dir='' ; \
97 for i in $(DOC_SOURCE_DIR) ; do \
98 _source_dir="$${_source_dir} --source-dir=$$i" ; \
99 done ; \
100 gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
101 @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
102 echo " DOC Introspecting gobjects"; \
103 scanobj_options=""; \
104 gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \
105 if test "$(?)" = "0"; then \
106 if test "x$(V)" = "x1"; then \
107 scanobj_options="--verbose"; \
108 fi; \
109 fi; \
110 CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \
111 gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \
112 else \
113 for i in $(SCANOBJ_FILES) ; do \
114 test -f $$i || touch $$i ; \
115 done \
116 fi
117 @touch scan-build.stamp
118
119 $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
120 @true
121
122 #### templates ####
123
124 tmpl-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
125 @echo ' DOC Rebuilding template files'
126 @gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
127 @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
128 if test -w $(abs_srcdir) ; then \
129 cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \
130 fi \
131 fi
132 @touch tmpl-build.stamp
133
134 tmpl.stamp: tmpl-build.stamp
135 @true
136
137 $(srcdir)/tmpl/*.sgml:
138 @true
139
140 #### xml ####
141
142 sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
143 @echo ' DOC Building XML'
76144 @-chmod -R u+w $(srcdir)
77 @_source_dir='' ; for i in $(DOC_SOURCE_DIR) ; do \
145 @_source_dir='' ; \
146 for i in $(DOC_SOURCE_DIR) ; do \
78147 _source_dir="$${_source_dir} --source-dir=$$i" ; \
79 done ; \
80 cd $(srcdir) && \
81 gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
82 @if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \
83 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) ; \
84 else \
85 cd $(srcdir) ; \
86 for i in $(SCANOBJ_FILES) ; do \
87 test -f $$i || touch $$i ; \
88 done \
89 fi
90 @touch scan-build.stamp
91
92 $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
93 @true
94
95 #### templates ####
96
97 tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
98 @echo 'gtk-doc: Rebuilding template files'
99 @-chmod -R u+w $(srcdir)
100 @cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
101 @touch tmpl-build.stamp
102
103 tmpl.stamp: tmpl-build.stamp
104 @true
105
106 $(srcdir)/tmpl/*.sgml:
107 @true
108
109 #### xml ####
110
111 sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
112 @echo 'gtk-doc: Building XML'
113 @-chmod -R u+w $(srcdir)
114 @_source_dir='' ; for i in $(DOC_SOURCE_DIR) ; do \
115 _source_dir="$${_source_dir} --source-dir=$$i" ; \
116 done ; \
117 cd $(srcdir) && \
118 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)
148 done ; \
149 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)
119150 @touch sgml-build.stamp
120151
121152 sgml.stamp: sgml-build.stamp
124155 #### html ####
125156
126157 html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
127 @echo 'gtk-doc: Building HTML'
128 @-chmod -R u+w $(srcdir)
129 @rm -rf $(srcdir)/html
130 @mkdir $(srcdir)/html
158 @echo ' DOC Building HTML'
159 @rm -rf html
160 @mkdir html
131161 @mkhtml_options=""; \
162 gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \
163 if test "$(?)" = "0"; then \
164 if test "x$(V)" = "x1"; then \
165 mkhtml_options="$$mkhtml_options --verbose"; \
166 fi; \
167 fi; \
132168 gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \
133169 if test "$(?)" = "0"; then \
134 mkhtml_options=--path="$(srcdir)"; \
135 fi; \
136 cd $(srcdir)/html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
137 @test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html )
138 @echo 'gtk-doc: Fixing cross-references'
139 @cd $(srcdir) && gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
170 mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \
171 fi; \
172 cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
173 -@test "x$(HTML_IMAGES)" = "x" || \
174 for file in $(HTML_IMAGES) ; do \
175 if test -f $(abs_srcdir)/$$file ; then \
176 cp $(abs_srcdir)/$$file $(abs_builddir)/html; \
177 fi; \
178 if test -f $(abs_builddir)/$$file ; then \
179 cp $(abs_builddir)/$$file $(abs_builddir)/html; \
180 fi; \
181 done;
182 @echo ' DOC Fixing cross-references'
183 @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
140184 @touch html-build.stamp
141185
142186 #### pdf ####
143187
144188 pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
145 @echo 'gtk-doc: Building PDF'
146 @-chmod -R u+w $(srcdir)
147 @rm -rf $(srcdir)/$(DOC_MODULE).pdf
148 @mkpdf_imgdirs=""; \
189 @echo ' DOC Building PDF'
190 @rm -f $(DOC_MODULE).pdf
191 @mkpdf_options=""; \
192 gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \
193 if test "$(?)" = "0"; then \
194 if test "x$(V)" = "x1"; then \
195 mkpdf_options="$$mkpdf_options --verbose"; \
196 fi; \
197 fi; \
149198 if test "x$(HTML_IMAGES)" != "x"; then \
150199 for img in $(HTML_IMAGES); do \
151200 part=`dirname $$img`; \
152 echo $$mkpdf_imgdirs | grep >/dev/null "\-\-imgdir=$$part "; \
201 echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \
153202 if test $$? != 0; then \
154 mkpdf_imgdirs="$$mkpdf_imgdirs --imgdir=$$part"; \
203 mkpdf_options="$$mkpdf_options --imgdir=$$part"; \
155204 fi; \
156205 done; \
157206 fi; \
158 cd $(srcdir) && gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_imgdirs $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
207 gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
159208 @touch pdf-build.stamp
160209
161210 ##############
162211
163212 clean-local:
164 rm -f *~ *.bak
165 rm -rf .libs
213 @rm -f *~ *.bak
214 @rm -rf .libs
166215
167216 distclean-local:
168 cd $(srcdir) && \
169 rm -rf xml $(REPORT_FILES) $(DOC_MODULE).pdf \
170 $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
217 @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
218 $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
219 @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
220 rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
221 rm -rf tmpl; \
222 fi
171223
172224 maintainer-clean-local: clean
173 cd $(srcdir) && rm -rf xml html
225 @rm -rf xml html
174226
175227 install-data-local:
176 @installfiles=`echo $(srcdir)/html/*`; \
177 if test "$$installfiles" = '$(srcdir)/html/*'; \
178 then echo '-- Nothing to install' ; \
228 @installfiles=`echo $(builddir)/html/*`; \
229 if test "$$installfiles" = '$(builddir)/html/*'; \
230 then echo 1>&2 'Nothing to install' ; \
179231 else \
180232 if test -n "$(DOC_MODULE_VERSION)"; then \
181233 installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
184236 fi; \
185237 $(mkinstalldirs) $${installdir} ; \
186238 for i in $$installfiles; do \
187 echo '-- Installing '$$i ; \
239 echo ' $(INSTALL_DATA) '$$i ; \
188240 $(INSTALL_DATA) $$i $${installdir}; \
189241 done; \
190242 if test -n "$(DOC_MODULE_VERSION)"; then \
191243 mv -f $${installdir}/$(DOC_MODULE).devhelp2 \
192244 $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \
193 mv -f $${installdir}/$(DOC_MODULE).devhelp \
194 $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp; \
195245 fi; \
196246 $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \
197247 fi
216266 endif
217267
218268 dist-hook: dist-check-gtkdoc dist-hook-local
219 mkdir $(distdir)/tmpl
220 mkdir $(distdir)/html
221 -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
222 cp $(srcdir)/html/* $(distdir)/html
223 -cp $(srcdir)/$(DOC_MODULE).pdf $(distdir)/
224 -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/
225 -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/
226 cd $(distdir) && rm -f $(DISTCLEANFILES)
227 $(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html
269 @mkdir $(distdir)/tmpl
270 @mkdir $(distdir)/html
271 @-cp ./tmpl/*.sgml $(distdir)/tmpl
272 @cp ./html/* $(distdir)/html
273 @-cp ./$(DOC_MODULE).pdf $(distdir)/
274 @-cp ./$(DOC_MODULE).types $(distdir)/
275 @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/
276 @cd $(distdir) && rm -f $(DISTCLEANFILES)
277 @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html
228278
229279 .PHONY : dist-hook-local docs
0 /* -*- Mode: c; c-basic-offset: 2 -*-
1 *
2 * mt.c - Mersenne Twister functions
3 *
4 * This is free and unencumbered software released into the public domain.
5 *
6 * Anyone is free to copy, modify, publish, use, compile, sell, or
7 * distribute this software, either in source code form or as a compiled
8 * binary, for any purpose, commercial or non-commercial, and by any
9 * means.
10 *
11 * In jurisdictions that recognize copyright laws, the author or authors
12 * of this software dedicate any and all copyright interest in the
13 * software to the public domain. We make this dedication for the benefit
14 * of the public at large and to the detriment of our heirs and
15 * successors. We intend this dedication to be an overt act of
16 * relinquishment in perpetuity of all present and future rights to this
17 * software under copyright law.
18 *
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22 * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
23 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
24 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25 * OTHER DEALINGS IN THE SOFTWARE.
26 *
27 * For more information, please refer to <http://unlicense.org/>
28 *
29 */
30
31
32 #ifdef MTWIST_CONFIG
33 #include <mtwist_config.h>
34 #endif
35
36 #include <stdio.h>
37
38 #ifdef HAVE_STDLIB_H
39 #include <stdlib.h>
40 #endif
41
42 #ifdef HAVE_STDINT_H
43 /* To get UINT32_C */
44 #define __STDC_CONSTANT_MACROS 1
45 #include <stdint.h>
46 #else
47 /* pessimistic - use an unsigned long */
48 typedef unsigned long uint32_t;
49 #define UINT32_C(v) (v ## UL)
50 #endif
51
52
53 #include <mtwist.h>
54
55 #include <mtwist_internal.h>
56
57 /*
58 * Mersenne Twister (MT19937) algorithm
59 * http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html
60 *
61 * http://en.wikipedia.org/wiki/Mersenne_twister
62 *
63 */
64
65 #define MTWIST_UPPER_MASK UINT32_C(0x80000000)
66 #define MTWIST_LOWER_MASK UINT32_C(0x7FFFFFFF)
67 #define MTWIST_FULL_MASK UINT32_C(0xFFFFFFFF)
68
69 #define MTWIST_MATRIX_A UINT32_C(0x9908B0DF)
70
71 #define MTWIST_MIXBITS(u, v) ( ( (u) & MTWIST_UPPER_MASK) | ( (v) & MTWIST_LOWER_MASK) )
72 #define MTWIST_TWIST(u, v) ( (MTWIST_MIXBITS(u, v) >> 1) ^ ( (v) & UINT32_C(1) ? MTWIST_MATRIX_A : UINT32_C(0)) )
73
74
75 /**
76 * mtwist_new:
77 *
78 * Construct a Mersenne Twister object
79 *
80 * Return value: new MT object or NULL on failure
81 */
82 mtwist*
83 mtwist_new(void)
84 {
85 mtwist* mt;
86
87 mt = (mtwist*)calloc(1, sizeof(*mt));
88 if(!mt)
89 return NULL;
90
91 mt->remaining = 0;
92 mt->next = NULL;
93 mt->seeded = 0;
94
95 return mt;
96 }
97
98
99 /**
100 * mtwist_free:
101 * @mt: mt object
102 *
103 * Destroy a Mersenne Twister object
104 */
105 void
106 mtwist_free(mtwist* mt)
107 {
108 if(mt)
109 free(mt);
110 }
111
112
113 /**
114 * mtwist_init:
115 * @mt: mt object
116 * @seed: seed (lower 32 bits used)
117 *
118 * Initialise a Mersenne Twister with an unsigned 32 bit int seed
119 */
120 void
121 mtwist_init(mtwist* mt, unsigned long seed)
122 {
123 int i;
124
125 if(!mt)
126 return;
127
128 mt->state[0] = (uint32_t)(seed & MTWIST_FULL_MASK);
129 for(i = 1; i < MTWIST_N; i++) {
130 mt->state[i] = (UINT32_C(1812433253) * (mt->state[i - 1] ^ (mt->state[i - 1] >> 30)) + i);
131 mt->state[i] &= MTWIST_FULL_MASK;
132 }
133
134 mt->remaining = 0;
135 mt->next = NULL;
136
137 mt->seeded = 1;
138 }
139
140
141 static void
142 mtwist_update_state(mtwist* mt)
143 {
144 int count;
145 uint32_t *p = mt->state;
146
147 count = 0;
148 for(count = (MTWIST_N - MTWIST_M + 1); --count; p++)
149 *p = p[MTWIST_M] ^ MTWIST_TWIST(p[0], p[1]);
150
151 for(count = MTWIST_M; --count; p++)
152 *p = p[MTWIST_M - MTWIST_N] ^ MTWIST_TWIST(p[0], p[1]);
153
154 *p = p[MTWIST_M - MTWIST_N] ^ MTWIST_TWIST(p[0], mt->state[0]);
155
156 mt->remaining = MTWIST_N;
157 mt->next = mt->state;
158 }
159
160
161 /**
162 * mtwist_u32rand:
163 * @mt: mt object
164 *
165 * Get a random unsigned 32 bit integer from the random number generator
166 *
167 * Return value: unsigned long with 32 valid bits
168 */
169 unsigned long
170 mtwist_u32rand(mtwist* mt)
171 {
172 uint32_t r;
173
174 if(!mt)
175 return 0UL;
176
177 if(!mt->seeded)
178 mtwist_init(mt, MT_STATIC_SEED);
179
180 if(!mt->remaining)
181 mtwist_update_state(mt);
182
183 r = *mt->next++;
184 mt->remaining--;
185
186 /* Tempering */
187 r ^= (r >> 11);
188 r ^= (r << 7) & UINT32_C(0x9D2C5680);
189 r ^= (r << 15) & UINT32_C(0xEFC60000);
190 r ^= (r >> 18);
191
192 r &= MTWIST_FULL_MASK;
193
194 return (unsigned long)r;
195 }
196
197
198 /**
199 * mtwist_drand:
200 * @mt: mt object
201 *
202 * Get a random double from the random number generator
203 *
204 * Return value: random double in the range 0.0 inclusive to 1.0 exclusive; [0.0, 1.0) */
205 double
206 mtwist_drand(mtwist* mt)
207 {
208 unsigned long r;
209 double d;
210
211 if(!mt)
212 return 0.0;
213
214 r = mtwist_u32rand(mt);
215
216 d = r / 4294967296.0; /* 2^32 */
217
218 return d;
219 }
0 /* -*- Mode: c; c-basic-offset: 2 -*-
1 *
2 * mtwist.h - Mersenne Twister header
3 *
4 * This is free and unencumbered software released into the public domain.
5 *
6 * Anyone is free to copy, modify, publish, use, compile, sell, or
7 * distribute this software, either in source code form or as a compiled
8 * binary, for any purpose, commercial or non-commercial, and by any
9 * means.
10 *
11 * In jurisdictions that recognize copyright laws, the author or authors
12 * of this software dedicate any and all copyright interest in the
13 * software to the public domain. We make this dedication for the benefit
14 * of the public at large and to the detriment of our heirs and
15 * successors. We intend this dedication to be an overt act of
16 * relinquishment in perpetuity of all present and future rights to this
17 * software under copyright law.
18 *
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22 * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
23 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
24 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25 * OTHER DEALINGS IN THE SOFTWARE.
26 *
27 * For more information, please refer to <http://unlicense.org/>
28 *
29 */
30
31 #ifndef MTWIST_H
32 #define MTWIST_H
33
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37
38 /* Mersenne Twister state */
39 typedef struct mtwist_s mtwist;
40
41 /* constructor */
42 mtwist* mtwist_new(void);
43 /* destructor */
44 void mtwist_free(mtwist* mt);
45
46 /* methods */
47 void mtwist_init(mtwist* mt, unsigned long seed);
48 unsigned long mtwist_u32rand(mtwist* mt);
49 double mtwist_drand(mtwist* mt);
50
51 /* utility functions */
52 unsigned long mtwist_seed_from_system(mtwist* mt);
53
54 #ifdef __cplusplus
55 }
56 #endif
57
58 #endif
0 /* -*- Mode: c; c-basic-offset: 2 -*-
1 *
2 * mtwist_internal.c - Mersenne Twister internals
3 *
4 * This is free and unencumbered software released into the public domain.
5 *
6 * Anyone is free to copy, modify, publish, use, compile, sell, or
7 * distribute this software, either in source code form or as a compiled
8 * binary, for any purpose, commercial or non-commercial, and by any
9 * means.
10 *
11 * In jurisdictions that recognize copyright laws, the author or authors
12 * of this software dedicate any and all copyright interest in the
13 * software to the public domain. We make this dedication for the benefit
14 * of the public at large and to the detriment of our heirs and
15 * successors. We intend this dedication to be an overt act of
16 * relinquishment in perpetuity of all present and future rights to this
17 * software under copyright law.
18 *
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22 * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
23 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
24 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25 * OTHER DEALINGS IN THE SOFTWARE.
26 *
27 * For more information, please refer to <http://unlicense.org/>
28 *
29 */
30
31 #ifndef MTWIST_INTERNAL_H
32 #define MTWIST_INTERNAL_H 1
33
34 #define MTWIST_N 624
35 #define MTWIST_M 397
36
37 #define MT_STATIC_SEED 5489UL
38
39 /* Mersenne Twister library state */
40 struct mtwist_s {
41 /* MT buffer holding N 32 bit unsigned integers */
42 uint32_t state[MTWIST_N];
43
44 /* Pointer into above - next long to use */
45 uint32_t* next;
46
47 /* Number of remaining integers in state before an update is needed */
48 unsigned int remaining;
49
50 /* 1 if a seed was given */
51 unsigned int seeded : 1;
52
53 /* 1 to always return a static system seed (MT_STATIC_SEED) */
54 unsigned int static_system_seed : 1;
55 };
56
57
58 #endif
0 /* -*- Mode: c; c-basic-offset: 2 -*-
1 *
2 * seed.c - Seeding functions
3 *
4 * This is free and unencumbered software released into the public domain.
5 *
6 * Anyone is free to copy, modify, publish, use, compile, sell, or
7 * distribute this software, either in source code form or as a compiled
8 * binary, for any purpose, commercial or non-commercial, and by any
9 * means.
10 *
11 * In jurisdictions that recognize copyright laws, the author or authors
12 * of this software dedicate any and all copyright interest in the
13 * software to the public domain. We make this dedication for the benefit
14 * of the public at large and to the detriment of our heirs and
15 * successors. We intend this dedication to be an overt act of
16 * relinquishment in perpetuity of all present and future rights to this
17 * software under copyright law.
18 *
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22 * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
23 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
24 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25 * OTHER DEALINGS IN THE SOFTWARE.
26 *
27 * For more information, please refer to <http://unlicense.org/>
28 *
29 */
30
31 #ifdef MTWIST_CONFIG
32 #include <mtwist_config.h>
33 #endif
34
35 #include <stdio.h>
36
37 #ifdef HAVE_TIME_H
38 #include <time.h>
39 #endif
40
41 #ifdef HAVE_UNISTD_H
42 #include <unistd.h>
43 #endif
44
45 #ifdef HAVE_STDINT_H
46 #include <stdint.h>
47 #else
48 /* pessimistic - use an unsigned long */
49 typedef unsigned long uint32_t;
50 #endif
51
52 #include <mtwist.h>
53
54 #include <mtwist_internal.h>
55
56
57 /**
58 * mtwist_seed_from_system:
59 * @mt: mt object
60 *
61 * Get a 32 bit unsigned integer random seed based on system sources
62 *
63 * Return value: seed with only lower 32 bits valid
64 */
65 unsigned long
66 mtwist_seed_from_system(mtwist* mt)
67 {
68 /* SOURCE 1: processor clock ticks since process started */
69 uint32_t a = (uint32_t)clock();
70 /* SOURCE 2: unix time in seconds since epoch */
71 uint32_t b = (uint32_t)time(NULL);
72 uint32_t c;
73 #ifdef HAVE_UNISTD_H
74 /* SOURCE 3: process ID (on unix) */
75 c = getpid();
76 #else
77 c = 0;
78 #endif
79
80 /* Mix seed sources using public domain code from
81 * http://www.burtleburtle.net/bob/c/lookup3.c
82 */
83
84 #define rot(x,k) (((x)<<(k)) | ((x)>>(32-(k))))
85
86 /* inlined mix(a, b, c) macro */
87 a -= c; a ^= rot(c, 4); c += b;
88 b -= a; b ^= rot(a, 6); a += c;
89 c -= b; c ^= rot(b, 8); b += a;
90 a -= c; a ^= rot(c,16); c += b;
91 b -= a; b ^= rot(a,19); /* a += c; */ /* CLANG: not needed because of below */
92 c -= b; c ^= rot(b, 4); /* b += a; */ /* CLANG: last calculation not needed */
93
94 if(mt->static_system_seed)
95 c = MT_STATIC_SEED;
96
97 return (unsigned long)c;
98 }
9999 libflickcurl_la_LIBADD += @RAPTOR_LIBS@
100100 endif
101101 endif
102
103 TESTS=
104
105 CLEANFILES=$(TESTS)
106
107
108 if FLICKCURL_OAUTH
109
110 libflickcurl_la_SOURCES += \
111 $(top_srcdir)/libmtwist/mt.c \
112 $(top_srcdir)/libmtwist/seed.c \
113 $(top_srcdir)/libmtwist/mtwist.h \
114 $(top_srcdir)/libmtwist/mtwist_internal.h \
115 mtwist_config.h
116
117 AM_CFLAGS += -DMTWIST_CONFIG -I$(top_srcdir)/libmtwist
118
119 libflickcurl_la_SOURCES += sha1.c \
120 oauth.c
121
122 TESTS += flickcurl_oauth_test
123
124 flickcurl_oauth_test: $(srcdir)/oauth.c libflickcurl.la
125 $(LINK) $(DEFS) $(CPPFLAGS) -I$(srcdir) -I. -DSTANDALONE $(srcdir)/oauth.c libflickcurl.la $(LIBS)
126
127 endif
5353 host_triplet = @host@
5454 @OFFLINE_TRUE@@RAPTOR_TRUE@am__append_1 = @RAPTOR_CFLAGS@
5555 @OFFLINE_TRUE@@RAPTOR_TRUE@am__append_2 = @RAPTOR_LIBS@
56 @FLICKCURL_OAUTH_TRUE@am__append_3 = $(top_srcdir)/libmtwist/mt.c \
57 @FLICKCURL_OAUTH_TRUE@ $(top_srcdir)/libmtwist/seed.c \
58 @FLICKCURL_OAUTH_TRUE@ $(top_srcdir)/libmtwist/mtwist.h \
59 @FLICKCURL_OAUTH_TRUE@ $(top_srcdir)/libmtwist/mtwist_internal.h \
60 @FLICKCURL_OAUTH_TRUE@ mtwist_config.h sha1.c oauth.c
61 @FLICKCURL_OAUTH_TRUE@am__append_4 = -DMTWIST_CONFIG -I$(top_srcdir)/libmtwist
62 @FLICKCURL_OAUTH_TRUE@am__append_5 = flickcurl_oauth_test
5663 subdir = src
5764 DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \
5865 $(srcdir)/Makefile.in $(srcdir)/config.h.in
94101 LTLIBRARIES = $(lib_LTLIBRARIES)
95102 am__DEPENDENCIES_1 =
96103 libflickcurl_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
104 am__libflickcurl_la_SOURCES_DIST = activity.c args.c blog.c category.c \
105 collection.c common.c comments.c contacts.c context.c config.c \
106 exif.c gallery.c group.c institution.c md5.c location.c \
107 machinetags.c members.c method.c note.c person.c photo.c \
108 photoset.c place.c serializer.c shape.c size.c stat.c ticket.c \
109 user_upload_status.c tags.c video.c vsnprintf.c activity-api.c \
110 auth-api.c blogs-api.c commons-api.c collections-api.c \
111 contacts-api.c favorites-api.c interestingness-api.c \
112 galleries-api.c groups-api.c groups-members-api.c \
113 groups-pools-api.c machinetags-api.c people-api.c perms.c \
114 panda-api.c photos-api.c photos-comments-api.c \
115 photos-geo-api.c photos-licenses-api.c photos-notes-api.c \
116 photos-people-api.c photos-transform-api.c photos-upload-api.c \
117 photosets-api.c photosets-comments-api.c places-api.c \
118 prefs-api.c reflection-api.c stats-api.c tags-api.c test-api.c \
119 upload-api.c urls-api.c flickcurl_internal.h \
120 $(top_srcdir)/libmtwist/mt.c $(top_srcdir)/libmtwist/seed.c \
121 $(top_srcdir)/libmtwist/mtwist.h \
122 $(top_srcdir)/libmtwist/mtwist_internal.h mtwist_config.h \
123 sha1.c oauth.c
124 @FLICKCURL_OAUTH_TRUE@am__objects_1 = mt.lo seed.lo sha1.lo oauth.lo
97125 am_libflickcurl_la_OBJECTS = activity.lo args.lo blog.lo category.lo \
98126 collection.lo common.lo comments.lo contacts.lo context.lo \
99127 config.lo exif.lo gallery.lo group.lo institution.lo md5.lo \
111139 photos-upload-api.lo photosets-api.lo \
112140 photosets-comments-api.lo places-api.lo prefs-api.lo \
113141 reflection-api.lo stats-api.lo tags-api.lo test-api.lo \
114 upload-api.lo urls-api.lo
142 upload-api.lo urls-api.lo $(am__objects_1)
115143 libflickcurl_la_OBJECTS = $(am_libflickcurl_la_OBJECTS)
116144 AM_V_lt = $(am__v_lt_$(V))
117145 am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
147175 am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
148176 am__v_GEN_0 = @echo " GEN " $@;
149177 SOURCES = $(libflickcurl_la_SOURCES)
150 DIST_SOURCES = $(libflickcurl_la_SOURCES)
178 DIST_SOURCES = $(am__libflickcurl_la_SOURCES_DIST)
151179 HEADERS = $(include_HEADERS)
152180 ETAGS = etags
153181 CTAGS = ctags
182 am__tty_colors = \
183 red=; grn=; lgn=; blu=; std=
154184 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
155185 ACLOCAL = @ACLOCAL@
156186 AMTAR = @AMTAR@
168198 CYGPATH_W = @CYGPATH_W@
169199 DEFS = @DEFS@
170200 DEPDIR = @DEPDIR@
201 DLLTOOL = @DLLTOOL@
171202 DSYMUTIL = @DSYMUTIL@
172203 DUMPBIN = @DUMPBIN@
173204 ECHO = @ECHO@
180211 FLICKCURL_VERSION_DECIMAL = @FLICKCURL_VERSION_DECIMAL@
181212 GREP = @GREP@
182213 GTKDOC_CHECK = @GTKDOC_CHECK@
214 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
215 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
183216 GTKDOC_MKPDF = @GTKDOC_MKPDF@
184217 GTKDOC_REBASE = @GTKDOC_REBASE@
185218 HTML_DIR = @HTML_DIR@
201234 LTLIBOBJS = @LTLIBOBJS@
202235 MAINT = @MAINT@
203236 MAKEINFO = @MAKEINFO@
237 MANIFEST_TOOL = @MANIFEST_TOOL@
204238 MKDIR_P = @MKDIR_P@
205239 NM = @NM@
206240 NMEDIT = @NMEDIT@
234268 abs_srcdir = @abs_srcdir@
235269 abs_top_builddir = @abs_top_builddir@
236270 abs_top_srcdir = @abs_top_srcdir@
271 ac_ct_AR = @ac_ct_AR@
237272 ac_ct_CC = @ac_ct_CC@
238273 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
239274 am__include = @am__include@
266301 libexecdir = @libexecdir@
267302 localedir = @localedir@
268303 localstatedir = @localstatedir@
269 lt_ECHO = @lt_ECHO@
270304 mandir = @mandir@
271305 mkdir_p = @mkdir_p@
272306 oldincludedir = @oldincludedir@
284318 top_srcdir = @top_srcdir@
285319 lib_LTLIBRARIES = libflickcurl.la
286320 include_HEADERS = flickcurl.h
287 libflickcurl_la_SOURCES = \
288 activity.c \
289 args.c \
290 blog.c \
291 category.c \
292 collection.c \
293 common.c \
294 comments.c \
295 contacts.c \
296 context.c \
297 config.c \
298 exif.c \
299 gallery.c \
300 group.c \
301 institution.c \
302 md5.c \
303 location.c \
304 machinetags.c \
305 members.c \
306 method.c \
307 note.c \
308 person.c \
309 photo.c \
310 photoset.c \
311 place.c \
312 serializer.c \
313 shape.c \
314 size.c \
315 stat.c \
316 ticket.c \
317 user_upload_status.c \
318 tags.c \
319 video.c \
320 vsnprintf.c \
321 activity-api.c \
322 auth-api.c \
323 blogs-api.c \
324 commons-api.c \
325 collections-api.c \
326 contacts-api.c \
327 favorites-api.c \
328 interestingness-api.c \
329 galleries-api.c \
330 groups-api.c \
331 groups-members-api.c \
332 groups-pools-api.c \
333 machinetags-api.c \
334 people-api.c \
335 perms.c \
336 panda-api.c \
337 photos-api.c \
338 photos-comments-api.c \
339 photos-geo-api.c \
340 photos-licenses-api.c \
341 photos-notes-api.c \
342 photos-people-api.c \
343 photos-transform-api.c \
344 photos-upload-api.c \
345 photosets-api.c \
346 photosets-comments-api.c \
347 places-api.c \
348 prefs-api.c \
349 reflection-api.c \
350 stats-api.c \
351 tags-api.c \
352 test-api.c \
353 upload-api.c \
354 urls-api.c \
355 flickcurl_internal.h
356
357 AM_CFLAGS = $(am__append_1)
321 libflickcurl_la_SOURCES = activity.c args.c blog.c category.c \
322 collection.c common.c comments.c contacts.c context.c config.c \
323 exif.c gallery.c group.c institution.c md5.c location.c \
324 machinetags.c members.c method.c note.c person.c photo.c \
325 photoset.c place.c serializer.c shape.c size.c stat.c ticket.c \
326 user_upload_status.c tags.c video.c vsnprintf.c activity-api.c \
327 auth-api.c blogs-api.c commons-api.c collections-api.c \
328 contacts-api.c favorites-api.c interestingness-api.c \
329 galleries-api.c groups-api.c groups-members-api.c \
330 groups-pools-api.c machinetags-api.c people-api.c perms.c \
331 panda-api.c photos-api.c photos-comments-api.c \
332 photos-geo-api.c photos-licenses-api.c photos-notes-api.c \
333 photos-people-api.c photos-transform-api.c photos-upload-api.c \
334 photosets-api.c photosets-comments-api.c places-api.c \
335 prefs-api.c reflection-api.c stats-api.c tags-api.c test-api.c \
336 upload-api.c urls-api.c flickcurl_internal.h $(am__append_3)
337 AM_CFLAGS = $(am__append_1) $(am__append_4)
358338 libflickcurl_la_LIBADD = $(am__append_2)
359339 libflickcurl_la_LDFLAGS = -version-info @LIBFLICKCURL_LIBTOOL_VERSION@
340 TESTS = $(am__append_5)
341 CLEANFILES = $(TESTS)
360342 all: config.h
361343 $(MAKE) $(AM_MAKEFLAGS) all-am
362344
481463 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Plo@am__quote@
482464 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/members.Plo@am__quote@
483465 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/method.Plo@am__quote@
466 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mt.Plo@am__quote@
484467 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/note.Plo@am__quote@
468 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oauth.Plo@am__quote@
485469 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/panda-api.Plo@am__quote@
486470 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/people-api.Plo@am__quote@
487471 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/perms.Plo@am__quote@
502486 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/places-api.Plo@am__quote@
503487 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prefs-api.Plo@am__quote@
504488 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reflection-api.Plo@am__quote@
489 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/seed.Plo@am__quote@
505490 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/serializer.Plo@am__quote@
491 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha1.Plo@am__quote@
506492 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shape.Plo@am__quote@
507493 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/size.Plo@am__quote@
508494 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat.Plo@am__quote@
540526 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
541527 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
542528 @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
529
530 mt.lo: $(top_srcdir)/libmtwist/mt.c
531 @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) $(AM_CFLAGS) $(CFLAGS) -MT mt.lo -MD -MP -MF $(DEPDIR)/mt.Tpo -c -o mt.lo `test -f '$(top_srcdir)/libmtwist/mt.c' || echo '$(srcdir)/'`$(top_srcdir)/libmtwist/mt.c
532 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mt.Tpo $(DEPDIR)/mt.Plo
533 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
534 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/libmtwist/mt.c' object='mt.lo' libtool=yes @AMDEPBACKSLASH@
535 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
536 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mt.lo `test -f '$(top_srcdir)/libmtwist/mt.c' || echo '$(srcdir)/'`$(top_srcdir)/libmtwist/mt.c
537
538 seed.lo: $(top_srcdir)/libmtwist/seed.c
539 @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) $(AM_CFLAGS) $(CFLAGS) -MT seed.lo -MD -MP -MF $(DEPDIR)/seed.Tpo -c -o seed.lo `test -f '$(top_srcdir)/libmtwist/seed.c' || echo '$(srcdir)/'`$(top_srcdir)/libmtwist/seed.c
540 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/seed.Tpo $(DEPDIR)/seed.Plo
541 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
542 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(top_srcdir)/libmtwist/seed.c' object='seed.lo' libtool=yes @AMDEPBACKSLASH@
543 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
544 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o seed.lo `test -f '$(top_srcdir)/libmtwist/seed.c' || echo '$(srcdir)/'`$(top_srcdir)/libmtwist/seed.c
543545
544546 mostlyclean-libtool:
545547 -rm -f *.lo
619621 distclean-tags:
620622 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
621623
624 check-TESTS: $(TESTS)
625 @failed=0; all=0; xfail=0; xpass=0; skip=0; \
626 srcdir=$(srcdir); export srcdir; \
627 list=' $(TESTS) '; \
628 $(am__tty_colors); \
629 if test -n "$$list"; then \
630 for tst in $$list; do \
631 if test -f ./$$tst; then dir=./; \
632 elif test -f $$tst; then dir=; \
633 else dir="$(srcdir)/"; fi; \
634 if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
635 all=`expr $$all + 1`; \
636 case " $(XFAIL_TESTS) " in \
637 *[\ \ ]$$tst[\ \ ]*) \
638 xpass=`expr $$xpass + 1`; \
639 failed=`expr $$failed + 1`; \
640 col=$$red; res=XPASS; \
641 ;; \
642 *) \
643 col=$$grn; res=PASS; \
644 ;; \
645 esac; \
646 elif test $$? -ne 77; then \
647 all=`expr $$all + 1`; \
648 case " $(XFAIL_TESTS) " in \
649 *[\ \ ]$$tst[\ \ ]*) \
650 xfail=`expr $$xfail + 1`; \
651 col=$$lgn; res=XFAIL; \
652 ;; \
653 *) \
654 failed=`expr $$failed + 1`; \
655 col=$$red; res=FAIL; \
656 ;; \
657 esac; \
658 else \
659 skip=`expr $$skip + 1`; \
660 col=$$blu; res=SKIP; \
661 fi; \
662 echo "$${col}$$res$${std}: $$tst"; \
663 done; \
664 if test "$$all" -eq 1; then \
665 tests="test"; \
666 All=""; \
667 else \
668 tests="tests"; \
669 All="All "; \
670 fi; \
671 if test "$$failed" -eq 0; then \
672 if test "$$xfail" -eq 0; then \
673 banner="$$All$$all $$tests passed"; \
674 else \
675 if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
676 banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
677 fi; \
678 else \
679 if test "$$xpass" -eq 0; then \
680 banner="$$failed of $$all $$tests failed"; \
681 else \
682 if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
683 banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
684 fi; \
685 fi; \
686 dashes="$$banner"; \
687 skipped=""; \
688 if test "$$skip" -ne 0; then \
689 if test "$$skip" -eq 1; then \
690 skipped="($$skip test was not run)"; \
691 else \
692 skipped="($$skip tests were not run)"; \
693 fi; \
694 test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
695 dashes="$$skipped"; \
696 fi; \
697 report=""; \
698 if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
699 report="Please report to $(PACKAGE_BUGREPORT)"; \
700 test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
701 dashes="$$report"; \
702 fi; \
703 dashes=`echo "$$dashes" | sed s/./=/g`; \
704 if test "$$failed" -eq 0; then \
705 echo "$$grn$$dashes"; \
706 else \
707 echo "$$red$$dashes"; \
708 fi; \
709 echo "$$banner"; \
710 test -z "$$skipped" || echo "$$skipped"; \
711 test -z "$$report" || echo "$$report"; \
712 echo "$$dashes$$std"; \
713 test "$$failed" -eq 0; \
714 else :; fi
715
622716 distdir: $(DISTFILES)
623717 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
624718 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
650744 fi; \
651745 done
652746 check-am: all-am
747 $(MAKE) $(AM_MAKEFLAGS) check-TESTS
653748 check: check-am
654749 all-am: Makefile $(LTLIBRARIES) $(HEADERS) config.h
655750 installdirs:
673768 mostlyclean-generic:
674769
675770 clean-generic:
771 -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
676772
677773 distclean-generic:
678774 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
752848
753849 uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES
754850
755 .MAKE: all install-am install-strip
756
757 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
758 clean-libLTLIBRARIES clean-libtool ctags distclean \
759 distclean-compile distclean-generic distclean-hdr \
851 .MAKE: all check-am install-am install-strip
852
853 .PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
854 clean-generic clean-libLTLIBRARIES clean-libtool ctags \
855 distclean distclean-compile distclean-generic distclean-hdr \
760856 distclean-libtool distclean-tags distdir dvi dvi-am html \
761857 html-am info info-am install install-am install-data \
762858 install-data-am install-dvi install-dvi-am install-exec \
771867 uninstall-libLTLIBRARIES
772868
773869
870 @FLICKCURL_OAUTH_TRUE@flickcurl_oauth_test: $(srcdir)/oauth.c libflickcurl.la
871 @FLICKCURL_OAUTH_TRUE@ $(LINK) $(DEFS) $(CPPFLAGS) -I$(srcdir) -I. -DSTANDALONE $(srcdir)/oauth.c libflickcurl.la $(LIBS)
872
774873 # Tell versions [3.59,3.63) of GNU make to not export all variables.
775874 # Otherwise a system limit (for SysV at least) may be exceeded.
776875 .NOEXPORT:
231231
232232 return auth_token;
233233 }
234
235
236 /**
237 * flickcurl_auth_oauth_getAccessToken:
238 * @fc: flickcurl context
239 *
240 * Exchange an auth token from the old Authentication API for an OAuth access token.
241 *
242 * Calling this method will delete the old auth token used to make the request.
243 *
244 * Implements flickr.auth.oauth.getAccessToken (1.22)
245 *
246 * Return value: non-0 on failure
247 **/
248 int
249 flickcurl_auth_oauth_getAccessToken(flickcurl* fc)
250 {
251 const char* parameters[5][2];
252 int count = 0;
253 xmlDocPtr doc = NULL;
254 xmlXPathContextPtr xpathCtx = NULL;
255 int rc = 0;
256
257 parameters[count][0] = NULL;
258
259 flickcurl_set_sign(fc);
260
261 if(flickcurl_prepare(fc, "flickr.auth.oauth.getAccessToken",
262 parameters, count))
263 goto tidy;
264
265 doc = flickcurl_invoke(fc);
266 if(!doc)
267 goto tidy;
268
269
270 xpathCtx = xmlXPathNewContext(doc);
271 if(!xpathCtx) {
272 flickcurl_error(fc, "Failed to create XPath context for document");
273 fc->failed = 1;
274 goto tidy;
275 }
276
277 /*
278 <auth>
279 <access_token oauth_token="72157607082540144-8d5d7ea7696629bf" oauth_token_secret="f38bf58b2d95bc8b" />
280 </auth>
281 */
282
283 if(xpathCtx) {
284 char* auth_token;
285 char* auth_token_secret;
286
287 /*
288 if(fc->api_key) {
289 FIXME - Copy API key as OAuth consumer key
290
291 od->client_key = fc->api_key;
292 od->client_key_len = strlen(od->consumer_key);
293 }
294 */
295
296 auth_token = flickcurl_xpath_eval(fc, xpathCtx,
297 (const xmlChar*)"/rsp/auth/access_token[@oauth_token]");
298
299 auth_token_secret = flickcurl_xpath_eval(fc, xpathCtx,
300 (const xmlChar*)"/rsp/auth/access_token[@oauth_token_secret]");
301
302 #ifdef FLICKCURL_DEBUG
303 fprintf(stderr,
304 "Exchanged old auth for OAuth access token '%s' secret token '%s'\n",
305 auth_token, auth_token_secret);
306 #endif
307
308 /* FIXME - story this in the oauth structure */
309
310 free(auth_token);
311 free(auth_token_secret);
312
313 /* Remove old authentication fields - not valid or needed */
314 if(fc->auth_token) {
315 free(fc->auth_token);
316 fc->auth_token = NULL;
317 }
318 if(fc->api_key) {
319 free(fc->api_key);
320 fc->api_key = NULL;
321 }
322 if(fc->secret) {
323 free(fc->secret);
324 fc->secret = NULL;
325 }
326
327 xmlXPathFreeContext(xpathCtx);
328 xpathCtx = NULL;
329 }
330
331 tidy:
332 if(xpathCtx)
333 xmlXPathFreeContext(xpathCtx);
334
335 if(fc->failed)
336 rc = 1;
337
338 return rc;
339 }
5353
5454 #ifdef OFFLINE
5555 #ifdef HAVE_RAPTOR
56 #include <raptor.h>
56 #include <raptor2.h>
5757 #endif
5858 #endif
5959
7575 const char* const flickcurl_flickr_service_uri = "http://www.flickr.com/services/rest/?";
7676 const char* const flickcurl_flickr_upload_service_uri = "http://api.flickr.com/services/upload/";
7777 const char* const flickcurl_flickr_replace_service_uri = "http://api.flickr.com/services/replace/";
78 const char* const flickcurl_flickr_oauth_request_token_uri = "http://www.flickr.com/services/oauth/request_token";
79 const char* const flickcurl_flickr_oauth_authorize_uri = "http://www.flickr.com/services/oauth/authorize";
80 const char* const flickcurl_flickr_oauth_access_token_uri = "http://www.flickr.com/services/oauth/access_token";
7881
7982
8083 static void
8184 flickcurl_error_varargs(flickcurl* fc, const char *message,
8285 va_list arguments)
8386 {
84 if(fc->error_handler) {
87 if(fc && fc->error_handler) {
8588 char *buffer = my_vsnprintf(message, arguments);
8689 if(!buffer) {
8790 fprintf(stderr, "flickcurl: Out of memory\n");
208211 fc->service_uri = strdup(flickcurl_flickr_service_uri);
209212 fc->upload_service_uri = strdup(flickcurl_flickr_upload_service_uri);
210213 fc->replace_service_uri = strdup(flickcurl_flickr_replace_service_uri);
214 fc->oauth_request_token_uri = strdup(flickcurl_flickr_oauth_request_token_uri);
215 fc->oauth_access_token_uri = strdup(flickcurl_flickr_oauth_access_token_uri);
211216
212217 /* DEFAULT delay between requests is 1000ms i.e 1 request/second max */
213218 fc->request_delay = 1000;
214
219
220 #ifdef FLICKCURL_OAUTH
221 fc->mt = mtwist_new();
222 if(!fc->mt) {
223 free(fc);
224 return NULL;
225 }
226 mtwist_init(fc->mt, mtwist_seed_from_system(fc->mt));
227 #endif
228
215229 fc->curl_handle = (CURL*)curl_handle;
216230 if(!fc->curl_handle) {
217231 fc->curl_handle = curl_easy_init();
334348 free(fc->upload_service_uri);
335349 if(fc->replace_service_uri)
336350 free(fc->replace_service_uri);
351 if(fc->oauth_request_token_uri)
352 free(fc->oauth_request_token_uri);
353 if(fc->oauth_access_token_uri)
354 free(fc->oauth_access_token_uri);
337355
338356 if(fc->user_agent)
339357 free(fc->user_agent);
340358
341359 if(fc->uri)
342360 free(fc->uri);
361
362 #ifdef FLICKCURL_OAUTH
363 if(fc->mt)
364 mtwist_free(fc->mt);
365
366 flickcurl_oauth_free(&fc->od);
367 #endif
343368
344369 free(fc);
345370 }
13861411 if(curl_easy_perform(fc->curl_handle)) {
13871412 /* failed */
13881413 fc->failed = 1;
1389 flickcurl_error(fc, fc->error_buffer);
1414 flickcurl_error(fc, "Method %s failed with CURL error %s",
1415 fc->method, fc->error_buffer);
13901416 } else {
13911417 long lstatus;
13921418
13941420 #define CURLINFO_RESPONSE_CODE CURLINFO_HTTP_CODE
13951421 #endif
13961422
1423 fc->status_code = 0;
13971424 /* Requires pointer to a long */
13981425 if(CURLE_OK ==
1399 curl_easy_getinfo(fc->curl_handle, CURLINFO_RESPONSE_CODE, &lstatus) ) {
1426 curl_easy_getinfo(fc->curl_handle, CURLINFO_RESPONSE_CODE, &lstatus) )
14001427 fc->status_code = lstatus;
1401 if(fc->status_code != 200) {
1402 if(fc->method)
1403 flickcurl_error(fc, "Method %s failed with error %d - %s (HTTP %d)",
1404 fc->method, fc->error_code, fc->error_msg,
1405 fc->status_code);
1406 else
1407 flickcurl_error(fc, "Call failed with error %d - %s (HTTP %d)",
1408 fc->error_code, fc->error_msg,
1409 fc->status_code);
1410 fc->failed = 1;
1411 }
1428
1429 if(fc->status_code != 200) {
1430 if(fc->method)
1431 flickcurl_error(fc, "Method %s failed with error %d - %s (HTTP %d)",
1432 fc->method, fc->error_code, fc->error_msg,
1433 fc->status_code);
1434 else
1435 flickcurl_error(fc, "Call failed with error %d - %s (HTTP %d)",
1436 fc->error_code, fc->error_msg,
1437 fc->status_code);
1438 fc->failed = 1;
14121439 }
14131440
14141441 }
15691596 }
15701597
15711598
1599 void
1600 flickcurl_free_form(char **form, int count)
1601 {
1602 if(!form)
1603 return;
1604
1605 /* free content which is the first key */
1606 free(form[0]);
1607
1608 free(form);
1609 }
1610
1611
1612 char**
1613 flickcurl_invoke_get_form_content(flickcurl *fc, int* count_p)
1614 {
1615 char* content = NULL;
1616 char** form = NULL;
1617 char *p;
1618 int count;
1619 int i;
1620
1621 if(flickcurl_invoke_common(fc, &content, NULL, NULL))
1622 return NULL;
1623
1624 for(p = content, count = 0; *p; p++) {
1625 if(*p == '&')
1626 count++;
1627 }
1628 count++; /* counting separators so need +1 for number of contents */
1629
1630 /* Allocate count + 1 sized array of char* (key, value) pointers
1631 * The last pair are always (NULL, NULL).
1632 *
1633 * The pointers are into the 'content' buffer which is kept around
1634 * and owned by this array and stored in form[0].
1635 */
1636 form = (char**)calloc(2*(count + 1), sizeof(char*));
1637 if(!form)
1638 goto tidy;
1639
1640 for(p = content, i = 0; *p; p++) {
1641 char *start = p;
1642
1643 while(*p && *p != '&' && *p != '=')
1644 p++;
1645
1646 form[i++] = start;
1647
1648 if(!*p)
1649 break;
1650 *p = '\0';
1651 }
1652 form[i++] = '\0';
1653 form[i] = '\0';
1654
1655 if(count_p)
1656 *count_p = count;
1657
1658 return form;
1659
1660 tidy:
1661 if(form)
1662 free(form);
1663
1664 if(content)
1665 free(content);
1666
1667 return NULL;
1668 }
1669
1670
15721671 char*
15731672 flickcurl_unixtime_to_isotime(time_t unix_time)
15741673 {
20892188 }
20902189
20912190
2191 #define HIDDEN_COUNT 2
2192 static const char* flickcurl_hidden_labels[HIDDEN_COUNT + 1] =
2193 {"unknown", "public", "hidden" };
2194
2195
2196 /**
2197 * flickcurl_get_hidden_label:
2198 * @hidden: safety level index
2199 *
2200 * Get label for a hidden status
2201 *
2202 * Return value: pointer to shared string label for hidden status or "unknown"
2203 **/
2204 const char*
2205 flickcurl_get_hidden_label(int hidden)
2206 {
2207 if(hidden < 1 || hidden > HIDDEN_COUNT)
2208 hidden = 0;
2209
2210 return flickcurl_hidden_labels[hidden];
2211 }
2212
2213
2214 /**
2215 * flickcurl_get_hidden_from_string:
2216 * @hidden_string: string
2217 *
2218 * Get the enumeration value for a hidden status string.
2219 *
2220 * Parses the string value into a safety level either from an
2221 * integer form like '1' or a label like 'hidden'.
2222 *
2223 * Returns: safety level enumeration value or <0 on error
2224 **/
2225 int
2226 flickcurl_get_hidden_from_string(const char* hidden_string)
2227 {
2228 char* endptr = NULL;
2229 int hidden = -1;
2230
2231 hidden = (int)strtol(hidden_string, &endptr, 10);
2232 /* If not all of string was used - fail */
2233 if(endptr && *endptr)
2234 hidden = -1;
2235
2236 if(hidden < 1 || hidden > HIDDEN_COUNT) {
2237 int i;
2238 for(i = 1; i< HIDDEN_COUNT; i++)
2239 if(!strcmp(flickcurl_hidden_labels[i], hidden_string)) {
2240 hidden = i;
2241 break;
2242 }
2243 }
2244
2245 return hidden;
2246 }
2247
2248
20922249 #define FEED_FORMAT_COUNT 8
20932250 static struct {
20942251 const char* name;
3232 #ifdef HAVE_UNISTD_H
3333 #include <unistd.h>
3434 #endif
35 #ifdef HAVE_ERRNO_H
36 #include <errno.h>
37 #endif
3538
3639
3740 #include <flickcurl.h>
41 #include <flickcurl_internal.h>
3842
3943
4044 #undef CONFIG_DEBUG
4145
4246 /**
43 * read_ini_config:
47 * flickcurl_config_read_ini:
48 * @fc: flickcurl config
4449 * @filename: filename
45 * @application: application key to look up
46 * @user_data: user data pointer for handler
47 * @handler: config variable handler function
48 *
49 * Read .INI config
50 *
51 * FIXME - where do you start. This just needs a pile of error checking
50 * @section: section name to use
51 * @user_data: user data pointer for handler (usually the @fc )
52 * @handler: config variable handler function (usually flickcurl_config_var_handler() )
53 *
54 * Read flickcurl library configuration in .INI format from a filename
5255 *
5356 * Return value: non-0 on failure
5457 */
5558 int
56 read_ini_config(const char* filename, const char* application,
57 void* user_data, set_config_var_handler handler)
59 flickcurl_config_read_ini(flickcurl* fc,
60 const char* filename,
61 const char* section,
62 void* user_data, set_config_var_handler handler)
5863 {
5964 FILE* fh;
6065 #define INI_BUF_SIZE 255
6166 char buf[INI_BUF_SIZE+1];
6267 int in_section = 0;
6368 int lineno = 1;
64
65 if(access((const char*)filename, R_OK))
66 return 1;
69 size_t section_len;
70
71 if(!fc || !filename || !section || !handler)
72 return 1;
73
74 if(access((const char*)filename, R_OK)) {
75 flickcurl_error(fc, "Failed to access config file %s for reading",
76 filename);
77 return 1;
78 }
6779
6880 fh = fopen(filename, "r");
69 if(!fh)
70 return 1;
81 if(!fh) {
82 flickcurl_error(fc, "Failed to open %s for reading - %s", filename,
83 strerror(errno));
84 return 1;
85 }
86
87 section_len = strlen(section);
7188
7289 while(!feof(fh)) {
7390 size_t len;
95112
96113 if(len > INI_BUF_SIZE) {
97114 if(!warned++)
98 fprintf(stderr, "read_ini_config(): line %d too long - truncated\n",
115 fprintf(stderr,
116 "flickcurl_config_read_ini(): line %d too long - truncated\n",
99117 lineno);
100118 continue;
101119 }
139157 /* Wait for a line '['application']' */
140158 if(!in_section) {
141159 if(*line == '[' && line[len-1] == ']' &&
142 (len-2) == strlen(application) &&
143 !strncmp(line+1, application, len-2)
160 (len - 2) == section_len &&
161 !strncmp(line + 1, section, len - 2)
144162 )
145163 in_section = 1;
146164 continue;
181199
182200 return 0;
183201 }
202
203 /**
204 * read_ini_config:
205 * @filename: filename
206 * @section: section name to use
207 * @user_data: user data pointer for handler
208 * @handler: config variable handler function
209 *
210 * @Deprecated for flickcurl_config_read_ini()
211 *
212 * Read .INI config
213 *
214 * Return value: non-0 on failure
215 */
216 int
217 read_ini_config(const char* filename, const char* section,
218 void* user_data, set_config_var_handler handler)
219 {
220 return flickcurl_config_read_ini(NULL, filename, section, user_data,
221 handler);
222 }
223
224
225 /**
226 * flickcurl_config_var_handler:
227 * @userdata: user data pointing to #flickcurl object
228 * @key: var key
229 * @value: var value
230 *
231 * Standard handler for flickcurl_config_read_ini()
232 *
233 */
234 void
235 flickcurl_config_var_handler(void* userdata,
236 const char* key, const char* value)
237 {
238 flickcurl *fc = (flickcurl *)userdata;
239
240 if(!strcmp(key, "api_key"))
241 flickcurl_set_api_key(fc, value);
242 else if(!strcmp(key, "secret"))
243 flickcurl_set_shared_secret(fc, value);
244 else if(!strcmp(key, "auth_token"))
245 flickcurl_set_auth_token(fc, value);
246
247 }
248
249
250 /**
251 * flickcurl_config_write_ini:
252 * @fc: #flickcurl object
253 * @filename: filename
254 * @section: section name to use
255 *
256 * Write flickcurl library configuration in INI file format to the given file
257 *
258 * Return value: non-0 on failure
259 *
260 */
261 int
262 flickcurl_config_write_ini(flickcurl *fc,
263 const char* filename,
264 const char* section)
265 {
266 const char* s;
267 FILE *fh;
268
269 if(!fc || !filename || !section)
270 return 1;
271
272 fh = fopen(filename, "w");
273 if(!fh) {
274 flickcurl_error(fc, "Failed to write to configuration file %s - %s",
275 filename, strerror(errno));
276 return 1;
277 }
278
279 fputc('[', fh);
280 fputs(section, fh);
281 fputc(']', fh);
282 s = flickcurl_get_auth_token(fc);
283 if(s) {
284 fputs("\nauth_token=", fh);
285 fputs(s, fh);
286 }
287 s = flickcurl_get_api_key(fc);
288 if(s) {
289 fputs("\napi_key=", fh);
290 fputs(s, fh);
291 }
292 s = flickcurl_get_shared_secret(fc);
293 if(s) {
294 fputs("\nsecret=", fh);
295 fputs(s, fh);
296 }
297 fputs("\n", fh);
298
299 fclose(fh);
300
301 return 0;
302 }
44
55 /* Capture web service responses */
66 #undef CAPTURE
7
8 /* Experimental OAuth code */
9 #undef FLICKCURL_OAUTH
710
811 /* Release version as a decimal */
912 #undef FLICKCURL_VERSION_DECIMAL
7881
7982 /* Define to 1 if you have the <sys/types.h> header file. */
8083 #undef HAVE_SYS_TYPES_H
84
85 /* Define to 1 if you have the <time.h> header file. */
86 #undef HAVE_TIME_H
8187
8288 /* Define to 1 if you have the <unistd.h> header file. */
8389 #undef HAVE_UNISTD_H
9292
9393 return fc->failed;
9494 }
95
96
97 /**
98 * flickcurl_favorites_getContext:
99 * @fc: flickcurl context
100 * @photo_id: The id of the photo to fetch the context for.
101 * @user_id: The user who counts the photo as a favorite.
102 * @num_prev: number of previous photos to return (?) (or < 0)
103 * @num_next: number of next photos to return (?) (or < 0)
104 * @extras: A comma-delimited list of extra information to fetch for each returned record. Currently supported fields are: description, license, date_upload, date_taken, owner_name, icon_server, original_format, last_update, geo, tags, machine_tags, o_dims, views, media, path_alias, url_sq, url_t, url_s, url_m, url_z, url_l, url_o (or NULL)
105 *
106 * Returns next and previous favorites for a photo in a user's favorites.
107 *
108 * Implements flickr.favorites.getContext (1.22)
109 *
110 * Return value: NULL-terminated array of photo lists (prev, next) or non-0 on failure
111 **/
112 flickcurl_photos_list**
113 flickcurl_favorites_getContext(flickcurl* fc, const char* photo_id,
114 const char* user_id,
115 int num_prev,
116 int num_next,
117 const char* extras)
118 {
119 const char* parameters[12][2];
120 int count = 0;
121 xmlDocPtr doc = NULL;
122 xmlXPathContextPtr xpathCtx = NULL;
123 flickcurl_photos_list** photos_lists = NULL;
124 char num_prev_str[10];
125 char num_next_str[10];
126 int i;
127
128 if(!photo_id || !user_id)
129 return NULL;
130
131 parameters[count][0] = "photo_id";
132 parameters[count++][1]= photo_id;
133 parameters[count][0] = "user_id";
134 parameters[count++][1]= user_id;
135 if(num_prev >= 0) {
136 sprintf(num_prev_str, "%d", num_prev);
137 parameters[count][0] = "num_prev";
138 parameters[count++][1]= num_prev_str;
139 }
140 if(num_next >= 0) {
141 sprintf(num_next_str, "%d", num_next);
142 parameters[count][0] = "num_next";
143 parameters[count++][1]= num_next_str;
144 }
145 /* this is the only standard photos response parameter supported
146 * so using flickcurl_append_photos_list_params() is not really needed
147 */
148 if(extras) {
149 parameters[count][0] = "extras";
150 parameters[count++][1]= extras;
151 }
152
153 parameters[count][0] = NULL;
154
155 if(flickcurl_prepare(fc, "flickr.favorites.getContext", parameters, count))
156 goto tidy;
157
158 doc = flickcurl_invoke(fc);
159 if(!doc)
160 goto tidy;
161
162
163 xpathCtx = xmlXPathNewContext(doc);
164 if(!xpathCtx) {
165 flickcurl_error(fc, "Failed to create XPath context for document");
166 fc->failed = 1;
167 goto tidy;
168 }
169
170 /* 3 lists of photo lists: prev, next and NULL to end the list */
171 photos_lists = calloc(sizeof(flickcurl_photos_list*), 3);
172
173 /* Decode the prev and next into photo lists */
174 for(i = 0; i < 2; i++) {
175 const xmlChar* xpathExpr = (i == 0) ? (const xmlChar*)"/rsp/prevphoto" : (const xmlChar*)"/rsp/nextphoto";
176 flickcurl_photos_list* photos_list = photos_lists[i];
177 xmlXPathObjectPtr xpathObj = NULL;
178
179 xpathObj = xmlXPathEvalExpression(xpathExpr, xpathCtx);
180 if(!xpathObj) {
181 flickcurl_error(fc, "Unable to evaluate XPath expression \"%s\"",
182 xpathExpr);
183 fc->failed = 1;
184 goto tidy;
185 }
186
187 if(!xpathObj->nodesetval || !xpathObj->nodesetval->nodeTab) {
188 /* No elements found in content - probably not a failure */
189 xmlXPathFreeObject(xpathObj);
190 continue;
191 }
192
193 photos_list = flickcurl_new_photos_list(fc);
194 if(!photos_list) {
195 fc->failed = 1;
196 goto tidy;
197 }
198
199 photos_list->page = -1;
200 photos_list->per_page = -1;
201 photos_list->total_count = -1;
202
203 photos_list->photos = flickcurl_build_photos(fc, xpathCtx, xpathExpr,
204 &photos_list->photos_count);
205 xmlXPathFreeObject(xpathObj);
206
207 photos_lists[i] = photos_list;
208 }
209 photos_lists[2] = NULL;
210
211 tidy:
212 if(xpathCtx)
213 xmlXPathFreeContext(xpathCtx);
214
215 if(fc->failed)
216 photos_lists = NULL;
217
218 return photos_lists;
219 }
220
95221
96222
97223 /**
137263 goto tidy;
138264
139265 photos_list = flickcurl_invoke_photos_list(fc,
140 (const xmlChar*)"/rsp/photos",
141 format);
266 (const xmlChar*)"/rsp/photos",
267 format);
142268
143269 tidy:
144270 if(fc->failed) {
10391039 * @title: title of photoset
10401040 * @description: description of photoset (may be NULL)
10411041 * @photos: photos in a photoset (may be NULL)
1042 * @owner: owner NSID
10421043 *
10431044 * A photoset.
10441045 *
10531054 char* title;
10541055 char *description;
10551056 struct flickcurl_photo_s** photos;
1057 char *owner;
10561058 } flickcurl_photoset;
10571059
10581060
12351237 * @is_family: is family photo boolean (non-0 true)
12361238 * @safety_level: 1=safe, 2=moderate, 3=restricted
12371239 * @content_type: 1=photo, 2=screenshot, 3=other/artwork
1240 * @hidden: 1=in global search, 2=hidden from publish searches (Flickcurl 1.22+)
12381241 *
12391242 * Photo upload parameters
12401243 */
12481251 int is_family;
12491252 int safety_level;
12501253 int content_type;
1254 /* Flickcurl 1.22+ */
1255 int hidden;
12511256 } flickcurl_upload_params;
12521257
12531258
15981603 extern const char* const flickcurl_flickr_upload_service_uri;
15991604 FLICKCURL_API
16001605 extern const char* const flickcurl_flickr_replace_service_uri;
1606 FLICKCURL_API
1607 extern const char* const flickcurl_flickr_oauth_request_token_uri;
1608 FLICKCURL_API
1609 extern const char* const flickcurl_flickr_oauth_authorize_uri;
1610 FLICKCURL_API
1611 extern const char* const flickcurl_flickr_oauth_access_token_uri;
16011612
16021613
16031614 /* library init - call once before creating anything */
16781689 FLICKCURL_API
16791690 void flickcurl_free_tag(flickcurl_tag *t);
16801691 FLICKCURL_API
1692 void flickcurl_free_tags(flickcurl_tag **tags);
1693 FLICKCURL_API
16811694 void flickcurl_free_tag_clusters(flickcurl_tag_clusters *tcs);
16821695 FLICKCURL_API
16831696 void flickcurl_free_photo(flickcurl_photo *photo);
17731786 const char* flickcurl_get_safety_level_label(int safety_level);
17741787 FLICKCURL_API
17751788 int flickcurl_get_safety_level_from_string(const char* safety_level_string);
1789 FLICKCURL_API
1790 const char* flickcurl_get_hidden_label(int hidden);
1791 FLICKCURL_API
1792 int flickcurl_get_hidden_from_string(const char* hidden_string);
17761793 FLICKCURL_API
17771794 int flickcurl_get_feed_format_info(int feed_format, const char** name_p, const char** label_p, const char** mime_type_p);
17781795 FLICKCURL_API
17921809 * Handler to get variables returned from an 'INI' style configuration file
17931810 */
17941811 typedef void (*set_config_var_handler)(void* userdata, const char* key, const char* value);
1795 FLICKCURL_API
1796 int read_ini_config(const char* filename, const char* application, void* user_data, set_config_var_handler handler);
1797
1798
1812 FLICKCURL_API FLICKCURL_DEPRECATED
1813 int read_ini_config(const char* filename, const char* section, void* user_data, set_config_var_handler handler);
1814 FLICKCURL_API
1815 int flickcurl_config_read_ini(flickcurl* fc, const char* filename, const char* section, void* user_data, set_config_var_handler handler);
1816 FLICKCURL_API
1817 void flickcurl_config_var_handler(void* userdata, const char* key, const char* value);
1818 FLICKCURL_API
1819 int flickcurl_config_write_ini(flickcurl *fc, const char* filename, const char* section);
17991820
18001821 /* Flickr API calls */
18011822
18161837 char* flickcurl_auth_getFullToken(flickcurl* fc, const char* frob);
18171838 FLICKCURL_API
18181839 char* flickcurl_auth_getToken(flickcurl* fc, const char* frob);
1819
1840 FLICKCURL_API
1841 int flickcurl_auth_oauth_getAccessToken(flickcurl* fc);
1842
18201843 /* flickr.blogs */
18211844 FLICKCURL_API
18221845 flickcurl_blog** flickcurl_blogs_getList(flickcurl* fc);
18441867 /* flickr.favorites */
18451868 FLICKCURL_API
18461869 int flickcurl_favorites_add(flickcurl* fc, const char* photo_id);
1870 FLICKCURL_API
1871 flickcurl_photos_list** flickcurl_favorites_getContext(flickcurl* fc, const char* photo_id, const char* user_id, int num_prev, int num_next, const char* extras);
18471872 FLICKCURL_API
18481873 flickcurl_photo** flickcurl_favorites_getList(flickcurl* fc, const char* user_id, const char* extras, int per_page, int page);
18491874 FLICKCURL_API
2323 #include <libxml/xpath.h>
2424
2525 #include <curl/curl.h>
26 #include <curl/types.h>
2726 #include <curl/easy.h>
2827
28 #include <mtwist_config.h>
29
30 #ifdef FLICKCURL_OAUTH
31 #include <mtwist.h>
32 #endif
2933
3034 #if defined (OFFLINE) && defined (CAPTURE)
3135 #error "Cannot define both OFFLINE and CAPTURE"
115119 xmlDocPtr flickcurl_invoke(flickcurl *fc);
116120 /* Invoke Flickr API at URi prepared above and get back raw content */
117121 char* flickcurl_invoke_get_content(flickcurl *fc, size_t* size_p);
122 /* Invoke URI prepared above and get back 'count' key/values */
123 char** flickcurl_invoke_get_form_content(flickcurl *fc, int* count_p);
124 void flickcurl_free_form(char **form, int count);
118125
119126 /* args.c */
120127 void flickcurl_free_arg(flickcurl_arg *arg);
210217 flickcurl_person* flickcurl_build_person(flickcurl* fc, xmlXPathContextPtr xpathCtx, const xmlChar* root_xpathExpr);
211218
212219 /* photo.c */
220 flickcurl_photos_list* flickcurl_new_photos_list(flickcurl* fc);
213221 flickcurl_photo** flickcurl_build_photos(flickcurl* fc, xmlXPathContextPtr xpathCtx, const xmlChar* xpathExpr, int* photo_count_p);
214222 flickcurl_photo* flickcurl_build_photo(flickcurl* fc, xmlXPathContextPtr xpathCtx);
215223 flickcurl_photos_list* flickcurl_invoke_photos_list(flickcurl* fc, const xmlChar* xpathExpr, const char* format);
256264 typedef struct flickcurl_chunk_s flickcurl_chunk;
257265
258266
267 #ifdef FLICKCURL_OAUTH
268 typedef struct {
269 /* client credentials */
270 char* client_key; /* AKA consumer key or the Flickr API key */
271 size_t client_key_len;
272 char* client_secret;
273 size_t client_secret_len;
274
275 /* temporary credentials */
276 char* request_token;
277 size_t request_token_len;
278 char* request_token_secret;
279 size_t request_token_secret_len;
280
281 const char* verifier; /* OAuth verifier - always shared */
282 size_t verifier_len;
283
284 /* token credentials */
285 char* token; /* AKA access token */
286 size_t token_len;
287 char* token_secret;
288 size_t token_secret_len;
289
290 /* callback URI or NULL for "oob" */
291 const char* callback; /* always shared */
292 size_t callback_len;
293
294 /* Generally leave as NULL to make it new each time */
295 char* nonce;
296
297 /* Generally leave as 0 to make it use current time with gettimeofday() */
298 time_t timestamp;
299
300 /* HMAC-SHA1 key */
301 unsigned char *key;
302 size_t key_len;
303
304 /* HMAC-SHA1 data */
305 unsigned char* data;
306 size_t data_len;
307 } flickcurl_oauth_data;
308 #endif
309
310
259311 struct flickcurl_s {
260312 int total_bytes;
261313
367419
368420 flickcurl_curl_setopt_handler curl_setopt_handler;
369421 void* curl_setopt_handler_data;
422
423 /* OAuth request token Web Service URI */
424 char *oauth_request_token_uri;
425
426 /* OAuth authorize URI */
427 char *oauth_authorize_uri;
428
429 /* OAuth access token Web Service URI */
430 char *oauth_access_token_uri;
431
432 #if FLICKCURL_OAUTH
433 /* Used for OAuth nonce generation */
434 mtwist* mt;
435
436 flickcurl_oauth_data od;
437 #endif
370438 };
371439
372440 struct flickcurl_serializer_s
378446
379447 void flickcurl_serializer_init(void);
380448 void flickcurl_serializer_terminate(void);
449
450
451 #ifdef FLICKCURL_OAUTH
452
453 /* sha1.c */
454 #define SHA1_DIGEST_LENGTH 20
455 unsigned char* flickcurl_hmac_sha1(const void *data, size_t data_len, const void *key, size_t key_len);
456
457
458 /* oauth.c */
459
460 #define FLICKCURL_MAX_OAUTH_PARAM_COUNT 8
461
462
463 void flickcurl_oauth_free(flickcurl_oauth_data* od);
464 char* flickcurl_oauth_compute_signature(flickcurl_oauth_data* od, size_t* len_p);
465 int flickcurl_oauth_prepare_common(flickcurl *fc, const char* url, const char* method, const char* upload_field, const char* upload_value, const char* parameters[][2], int count, int parameters_in_url, int need_auth);
466 int flickcurl_oauth_request_token(flickcurl* fc);
467 char* flickcurl_oauth_get_authorize_uri(flickcurl* fc);
468 int flickcurl_oauth_access_token(flickcurl* fc, const char* verifier);
469 #endif
169169 gallery_id = flickcurl_xpath_eval(fc, xpathCtx,
170170 (const xmlChar*)"/rsp/gallery/@id");
171171 if(gallery_url_p) {
172 *gallery_url_p = flickcurl_xpath_eval(fc,
173 xpathCtx, (const xmlChar*)"/rsp/gallery/@url");
172 *gallery_url_p = flickcurl_xpath_eval(fc, xpathCtx,
173 (const xmlChar*)"/rsp/gallery/@url");
174174 }
175175
176176 tidy:
117117
118118 for(expri = 0; method_fields_table[expri].xpath; expri++) {
119119 char *string_value = flickcurl_xpath_eval(fc, xpathCtx,
120 method_fields_table[expri].xpath);
120 method_fields_table[expri].xpath);
121121 switch(method_fields_table[expri].field) {
122122 case METHOD_FIELD_name:
123123 method->name = string_value;
0 /* Flickcurl configure wrapper for libmtwist
1 *
2 * Includes configuration file
3 * Adjusts symbols to be all flickcurl_ prefixed
4 */
5
6 #include <config.h>
7
8 #define mtwist_new flickcurl_mtwist_new
9 #define mtwist_free flickcurl_mtwist_free
10 #define mtwist_init flickcurl_mtwist_init
11 #define mtwist_u32rand flickcurl_mtwist_u32rand
12 #define mtwist_drand flickcurl_mtwist_drand
13 #define mtwist_seed_from_system flickcurl_mtwist_seed_from_system
0 /* -*- Mode: c; c-basic-offset: 2 -*-
1 *
2 * oauth.c - OAuth 1.0 for Flickr
3 *
4 * Copyright (C) 2011, David Beckett http://www.dajobe.org/
5 *
6 * This file is licensed under the following three licenses as alternatives:
7 * 1. GNU Lesser General Public License (LGPL) V2.1 or any newer version
8 * 2. GNU General Public License (GPL) V2 or any newer version
9 * 3. Apache License, V2.0 or any newer version
10 *
11 * You may not use this file except in compliance with at least one of
12 * the above three licenses.
13 *
14 * See LICENSE.html or LICENSE.txt at the top of this package for the
15 * complete terms and further detail along with the license texts for
16 * the licenses in COPYING.LIB, COPYING and LICENSE-2.0.txt respectively.
17 *
18 */
19
20 #include <stdio.h>
21 #include <string.h>
22 #include <stdarg.h>
23
24 #ifdef HAVE_CONFIG_H
25 #include <config.h>
26 #endif
27
28 #include <flickcurl.h>
29 #include <flickcurl_internal.h>
30
31 /* Only used in the test in this file so needs to be in the library */
32 int flickcurl_oauth_build_key(flickcurl_oauth_data* od);
33
34
35 #ifndef STANDALONE
36
37 /*
38 * flickcurl_base64_encode_digit:
39 * @c: input digit 0..63
40 *
41 * INTERNAL - base64 encode a digit
42 *
43 * Note: this the output is not URL safe since '+' and '/' will need
44 * %-escaping
45 *
46 * Return value: base64 encoded char of input value
47 */
48 static char
49 flickcurl_base64_encode_digit(unsigned char c)
50 {
51 if(c < 26)
52 return 'A' + c;
53 else if(c < 52)
54 return 'a' + (c - 26);
55 else if(c < 62)
56 return '0' + (c - 52);
57 else if(c == 62)
58 return '+';
59 else
60 return '/';
61 }
62
63
64 /*
65 * flickcurl_base64_encode:
66 * @data: The data to base64 encode
67 * @len: The size of the data in src
68 * @out_len_p: pointer to store output length (or NULL)
69 *
70 * INTERNAL - Base64 encode data into a new string.
71 *
72 * Return value: base64 encoded string or NULL on failure
73 */
74 static char*
75 flickcurl_base64_encode(const unsigned char *data, size_t len,
76 size_t *out_len_p)
77 {
78 char* out;
79 char* p;
80 unsigned int i;
81
82 if(!data)
83 return NULL;
84
85 /* len + 1 to round up for partial sizes when (len % 3) is not 0 */
86 out = (char*)calloc(sizeof(char), (len + 1) * 4/3 + 1);
87 if(!out)
88 return NULL;
89
90 /* Encode 1-3 input bytes at a time (8, 16 or 24 input bits) into
91 * 2-4 output chars
92 */
93 p = out;
94 for(i = 0; i < len; i += 3) {
95 unsigned char in_char_1 = data[i];
96 unsigned char in_char_2 = ((i + 1) < len) ? data[i + 1] : 0;
97 unsigned char in_char_3 = ((i + 2) < len) ? data[i + 2] : 0;
98 unsigned char out_digit_1;
99 unsigned char out_digit_2;
100 unsigned char out_digit_3;
101 unsigned char out_digit_4;
102
103 out_digit_1 = in_char_1 >> 2;
104 out_digit_2 = ((in_char_1 & 0x03) << 4) | (in_char_2 >> 4);
105 out_digit_3 = ((in_char_2 & 0x0f) << 2) | (in_char_3 >> 6);
106 out_digit_4 = in_char_3 & 0x3f;
107
108 *p++ = flickcurl_base64_encode_digit(out_digit_1);
109 *p++ = flickcurl_base64_encode_digit(out_digit_2);
110
111 if((i + 1) < len)
112 *p++ = flickcurl_base64_encode_digit(out_digit_3);
113 else
114 *p++ = '=';
115
116 if((i + 2) < len)
117 *p++ = flickcurl_base64_encode_digit(out_digit_4);
118 else
119 *p++ = '=';
120 }
121
122 *p = '\0';
123
124 if(out_len_p)
125 *out_len_p = p - out;
126
127 return out;
128 }
129
130
131 /*
132 * flickcurl_oauth_free:
133 * @od: oauth data
134 *
135 * INTERNAL - Free OAuth data
136 *
137 */
138 void
139 flickcurl_oauth_free(flickcurl_oauth_data* od)
140 {
141 if(od->client_key)
142 free(od->client_key);
143
144 if(od->client_secret)
145 free(od->client_secret);
146
147 if(od->request_token)
148 free(od->request_token);
149
150 if(od->request_token_secret)
151 free(od->request_token_secret);
152
153 /* od->verifier always shared */
154
155 if(od->token)
156 free(od->token);
157
158 if(od->token_secret)
159 free(od->token_secret);
160
161 /* od->callback always shared */
162
163 if(od->nonce)
164 free(od->nonce);
165
166 if(od->key)
167 free(od->key);
168
169 if(od->data)
170 free(od->data);
171 }
172
173
174 /*
175 * flickcurl_oauth_build_key:
176 * @od: oauth data
177 *
178 * INTERNAL - Build OAuth 1.0 key
179 *
180 * KEY
181 * http://tools.ietf.org/html/rfc5849#section-3.4.2
182 * key = concat(client-credentials-secret, '&', token-credentials-secret)
183 *
184 * Stores result in od->key and od->key_len
185 *
186 * Return value: non-0 on failure
187 */
188 int
189 flickcurl_oauth_build_key(flickcurl_oauth_data* od)
190 {
191 unsigned char *p;
192
193 if(od->key)
194 free(od->key);
195
196 od->key_len = od->client_secret_len + 1;
197 if(od->request_token_secret_len)
198 od->key_len += od->request_token_secret_len;
199 else
200 od->key_len += od->token_secret_len;
201
202 od->key = malloc(od->key_len + 1); /* for NUL */
203 if(!od->key)
204 return 1;
205
206 p = od->key;
207 if(od->client_secret_len) {
208 memcpy(p, od->client_secret, od->client_secret_len);
209 p += od->client_secret_len;
210 }
211 *p++ = '&';
212 if(od->request_token_secret_len) {
213 memcpy(p, od->request_token_secret, od->request_token_secret_len);
214 p += od->request_token_secret_len;
215 } else if(od->token_secret_len) {
216 memcpy(p, od->token_secret, od->token_secret_len);
217 p += od->token_secret_len;
218 }
219 *p = '\0'; /* Not part of HMAC-SHA1 data */
220
221 return 0;
222 }
223
224
225 /*
226 * flickcurl_oauth_compute_signature:
227 * @od: oauth data
228 * @len_p: pointer to store size of result
229 *
230 * INTERNAL - Compute OAuth signature over 'key' and 'data' fields of @od
231 *
232 * Result: signature string or NULL on failure
233 *
234 */
235 char*
236 flickcurl_oauth_compute_signature(flickcurl_oauth_data* od, size_t* len_p)
237 {
238 unsigned char *s1;
239 char *result;
240
241 s1 = flickcurl_hmac_sha1(od->data, od->data_len, od->key, od->key_len);
242 if(!s1)
243 return NULL;
244
245 result = flickcurl_base64_encode(s1, SHA1_DIGEST_LENGTH, len_p);
246 free(s1);
247
248 return result;
249 }
250
251
252 static int
253 compare_args(const void *a, const void *b)
254 {
255 return strcmp(*(char**)a, *(char**)b);
256 }
257
258
259 static void
260 flickcurl_sort_args(flickcurl *fc, const char *parameters[][2], int count)
261 {
262 qsort((void*)parameters, count, sizeof(char*[2]), compare_args);
263 }
264
265
266 /*
267 * flickcurl_oauth_prepare_common:
268 * ...
269 *
270 * INTERNAL - prepare an oauth request
271 */
272 int
273 flickcurl_oauth_prepare_common(flickcurl *fc,
274 const char* url,
275 const char* method,
276 const char* upload_field,
277 const char* upload_value,
278 const char* parameters[][2], int count,
279 int parameters_in_url, int need_auth)
280 {
281 flickcurl_oauth_data* od = &fc->od;
282 int i;
283 char *signature_string = NULL;
284 size_t* values_len = NULL;
285 unsigned int fc_uri_len = 0;
286 char* nonce = NULL;
287 int free_nonce = 0;
288 char* timestamp = NULL;
289 int rc = 0;
290 int need_to_add_query = 0;
291 const char* http_method = "GET";
292 int is_oauth_method = 0;
293
294 if(!url || !parameters)
295 return 1;
296
297 /* If one is given, both are required */
298 if((upload_field || upload_value) && (!upload_field || !upload_value))
299 return 1;
300
301 fc->failed = 0;
302 fc->error_code = 0;
303 if(fc->error_msg) {
304 free(fc->error_msg);
305 fc->error_msg = NULL;
306 }
307 /* Default to read */
308 fc->is_write = 0;
309 /* Default to no data */
310 if(fc->data) {
311 if(fc->data_is_xml)
312 xmlFree(fc->data);
313 fc->data = NULL;
314 fc->data_length = 0;
315 fc->data_is_xml = 0;
316 }
317 if(fc->param_fields) {
318 for(i = 0; fc->param_fields[i]; i++) {
319 free(fc->param_fields[i]);
320 free(fc->param_values[i]);
321 }
322 free(fc->param_fields);
323 free(fc->param_values);
324 fc->param_fields = NULL;
325 fc->param_values = NULL;
326 fc->parameter_count = 0;
327 }
328 if(fc->upload_field) {
329 free(fc->upload_field);
330 fc->upload_field = NULL;
331 }
332 if(fc->upload_value) {
333 free(fc->upload_value);
334 fc->upload_value = NULL;
335 }
336
337 if(fc->method)
338 free(fc->method);
339 if(method) {
340 fc->method = strdup(method);
341 is_oauth_method = !strncmp(method, "flickr.oauth.", 13);
342 } else
343 fc->method = NULL;
344
345 /* OAuth parameters
346 *
347 * oauth_callback <URL> or "oob" [request token request]
348 * oauth_consumer_key API key
349 * oauth_nonce <random value - different each time>
350 * oauth_signature [ADDED AFTER COMPUTING]
351 * oauth_signature_method "HMAC-SHA1"
352 * oauth_timestamp <value of gettimeofday()>
353 * oauth_version "1.0"
354 *
355 * oauth_verifier verifier [access token request]
356 * oauth_token access token or request token
357 */
358
359 if(fc->method && !is_oauth_method) {
360 parameters[count][0] = "method";
361 parameters[count++][1]= fc->method;
362 }
363
364 if(od->callback) {
365 parameters[count][0] = "oauth_callback";
366 parameters[count++][1]= od->callback;
367 }
368
369 parameters[count][0] = "oauth_consumer_key";
370 parameters[count++][1]= od->client_key;
371
372 nonce = (char*)od->nonce;
373 if(!nonce) {
374 nonce = (char*)malloc(20);
375 free_nonce = 1;
376 sprintf(nonce, "%ld", mtwist_u32rand(fc->mt));
377 }
378 parameters[count][0] = "oauth_nonce";
379 parameters[count++][1]= nonce;
380
381 /* oauth_signature - computed over these fields */
382 parameters[count][0] = "oauth_signature_method";
383 parameters[count++][1]= "HMAC-SHA1";
384
385 timestamp = (char*)malloc(20);
386 if(od->timestamp)
387 sprintf(timestamp, "%ld", (long)od->timestamp);
388 else {
389 struct timeval tp;
390 (void)gettimeofday(&tp, NULL);
391 sprintf(timestamp, "%ld", (long)tp.tv_sec);
392 }
393 parameters[count][0] = "oauth_timestamp";
394 parameters[count++][1]= timestamp;
395
396 parameters[count][0] = "oauth_version";
397 parameters[count++][1]= "1.0";
398
399 if(od->token) {
400 parameters[count][0] = "oauth_token";
401 parameters[count++][1]= od->token;
402 } else if(od->request_token) {
403 parameters[count][0] = "oauth_token";
404 parameters[count++][1]= od->request_token;
405 }
406 if(od->verifier) {
407 parameters[count][0] = "oauth_verifier";
408 parameters[count++][1]= od->verifier;
409 }
410
411 parameters[count][0] = NULL;
412
413 /* +FLICKCURL_FLICKCURL_MAX_OAUTH_PARAM_COUNT for oauth fields +1 for NULL terminating pointer */
414 fc->param_fields = (char**)calloc(count + FLICKCURL_MAX_OAUTH_PARAM_COUNT + 1, sizeof(char*));
415 fc->param_values = (char**)calloc(count + FLICKCURL_MAX_OAUTH_PARAM_COUNT + 1, sizeof(char*));
416 values_len = (size_t*)calloc(count + FLICKCURL_MAX_OAUTH_PARAM_COUNT + 1, sizeof(size_t));
417
418 if((need_auth && (od->client_secret || od->token_secret)) || fc->sign)
419 flickcurl_sort_args(fc, parameters, count);
420
421
422 fc_uri_len = strlen(url);
423 if(url[fc_uri_len -1] != '?')
424 need_to_add_query++;
425
426 /* Save away the parameters and calculate the value lengths */
427 for(i = 0; parameters[i][0]; i++) {
428 size_t param_len = strlen(parameters[i][0]);
429
430 if(parameters[i][1])
431 values_len[i] = strlen(parameters[i][1]);
432 else {
433 values_len[i] = 0;
434 parameters[i][1] = "";
435 }
436 fc->param_fields[i] = (char*)malloc(param_len + 1);
437 strcpy(fc->param_fields[i], parameters[i][0]);
438 fc->param_values[i] = (char*)malloc(values_len[i] + 1);
439 strcpy(fc->param_values[i], parameters[i][1]);
440
441 /* 3x value len is conservative URI %XX escaping on every char */
442 fc_uri_len += param_len + 1 /* = */ + 3 * values_len[i];
443 }
444
445 if(upload_field) {
446 fc->upload_field = (char*)malloc(strlen(upload_field) + 1);
447 strcpy(fc->upload_field, upload_field);
448
449 fc->upload_value = (char*)malloc(strlen(upload_value) + 1);
450 strcpy(fc->upload_value, upload_value);
451 }
452
453
454 if(((need_auth && (od->client_secret || od->token_secret))) ||
455 fc->sign) {
456 char *buf = NULL;
457 size_t buf_len = 0;
458 char *param_buf = NULL;
459 size_t param_buf_len = 0;
460 size_t vlen = 0;
461 char *escaped_value = NULL;
462
463 for(i = 0; parameters[i][0]; i++)
464 param_buf_len += strlen(parameters[i][0]) + 3 + (3 * values_len[i]) + 3;
465 param_buf = (char*)malloc(param_buf_len + 1);
466 *param_buf = '\0';
467
468 for(i = 0; parameters[i][0]; i++) {
469 if(i > 0)
470 strcat(param_buf, "&");
471 strcat(param_buf, parameters[i][0]);
472 strcat(param_buf, "=");
473 escaped_value = curl_escape(parameters[i][1], 0);
474 strcat(param_buf, escaped_value);
475 curl_free(escaped_value);
476 }
477
478 buf_len = strlen(http_method);
479 buf_len += 1; /* & */
480 buf_len += (3 * strlen(url));
481 buf_len += 1; /* & */
482 buf_len += param_buf_len * 3;
483
484 buf = (char*)malloc(buf_len + 1);
485 strcpy(buf, http_method);
486 strcat(buf, "&");
487 escaped_value = curl_escape(url, 0);
488 strcat(buf, escaped_value);
489 curl_free(escaped_value);
490 strcat(buf, "&");
491 escaped_value = curl_escape(param_buf, 0);
492 strcat(buf, escaped_value);
493 curl_free(escaped_value);
494
495 free(param_buf);
496
497 if(flickcurl_oauth_build_key(od)) {
498 #ifdef FLICKCURL_DEBUG
499 fprintf(stderr, "flickcurl_oauth_build_key() failed\n");
500 #endif
501 rc = 1;
502 goto tidy;
503 }
504
505 /* build data */
506 od->data = (unsigned char*)buf;
507 od->data_len = strlen((const char*)od->data);
508
509 #ifdef FLICKCURL_DEBUG
510 fprintf(stderr, "data for signature (%d bytes)\n %s\n",
511 (int)od->data_len, (char*)od->data);
512 #endif
513 signature_string = flickcurl_oauth_compute_signature(od, &vlen);
514
515 /* set by flickcurl_oauth_build_key() above */
516 free(od->key);
517 od->key = NULL;
518
519 parameters[count][0] = "oauth_signature";
520 parameters[count][1] = signature_string;
521
522 /* Add a new parameter pair */
523 values_len[count] = vlen;
524 /* 15 = strlen(oauth_signature) */
525 fc->param_fields[count] = (char*)malloc(15 + 1);
526 strcpy(fc->param_fields[count], parameters[count][0]);
527 fc->param_values[count] = (char*)malloc(vlen + 1);
528 strcpy(fc->param_values[count], parameters[count][1]);
529
530 fc_uri_len += 15 /* "oauth_signature" */ + 1 /* = */ + vlen;
531
532 count++;
533
534 #ifdef FLICKCURL_DEBUG
535 fprintf(stderr, "HMAC-SHA1 signature:\n %s\n", signature_string);
536 #endif
537
538 free(od->data);
539 od->data = NULL;
540 od->data_len = 0;
541
542 parameters[count][0] = NULL;
543 }
544
545 /* add &s between parameters */
546 fc_uri_len += count-1;
547
548 /* reuse or grow uri buffer */
549 if(fc->uri_len < fc_uri_len) {
550 free(fc->uri);
551 fc->uri = (char*)malloc(fc_uri_len+1);
552 fc->uri_len = fc_uri_len;
553 }
554 strcpy(fc->uri, url);
555
556 if(need_to_add_query)
557 strcat(fc->uri, "?");
558
559 if(parameters_in_url) {
560 for(i = 0; parameters[i][0]; i++) {
561 char *value = (char*)parameters[i][1];
562 char *escaped_value = NULL;
563
564 if(!parameters[i][1])
565 continue;
566
567 strcat(fc->uri, parameters[i][0]);
568 strcat(fc->uri, "=");
569 escaped_value = curl_escape(value, values_len[i]);
570 strcat(fc->uri, escaped_value);
571 curl_free(escaped_value);
572 strcat(fc->uri, "&");
573 }
574
575 /* zap last & */
576 fc->uri[strlen(fc->uri)-1] = '\0';
577 }
578
579 #ifdef FLICKCURL_DEBUG
580 fprintf(stderr, "Request URI:\n %s\n", fc->uri);
581
582 FLICKCURL_ASSERT((strlen(fc->uri) == fc_uri_len),
583 "Final URI does not match expected length");
584 #endif
585
586 tidy:
587 if(signature_string)
588 free(signature_string);
589
590 if(values_len)
591 free(values_len);
592
593 if(nonce && free_nonce)
594 free(nonce);
595
596 if(timestamp)
597 free(timestamp);
598
599 return rc;
600 }
601
602
603
604 /*
605 * flickcurl_oauth_request_token:
606 * @fc: flickcurl object
607 *
608 * INTERNAL - get a Flickr OAuth request token
609 *
610 * Calls the Flickr OAuth endpoint to get a request token.
611 *
612 * Stores the request token in @od fields 'request_token' and
613 * 'request_token_secret' on success.
614 *
615 * Return value: non-0 on failure
616 */
617 int
618 flickcurl_oauth_request_token(flickcurl* fc)
619 {
620 flickcurl_oauth_data* od = &fc->od;
621 const char * parameters[2 + FLICKCURL_MAX_OAUTH_PARAM_COUNT][2];
622 int count = 0;
623 char* request_token = NULL;
624 char* request_token_secret = NULL;
625 char** form = NULL;
626 int rc = 0;
627 const char* uri = fc->oauth_request_token_uri;
628 int i;
629
630 parameters[count][0] = NULL;
631
632 /* Require signature */
633 flickcurl_set_sign(fc);
634
635 od->callback = "oob";
636 rc = flickcurl_oauth_prepare_common(fc,
637 uri,
638 /* method */ "flickr.oauth.request_token",
639 /* upload_field */ NULL,
640 /* upload_value */ NULL,
641 parameters, count,
642 /* parameters_in_url */ 1,
643 /* need_auth */ 1);
644 od->callback = NULL;
645
646 if(rc)
647 goto tidy;
648
649 form = flickcurl_invoke_get_form_content(fc, &count);
650 if(!form) {
651 rc = 1;
652 goto tidy;
653 }
654
655 #ifdef FLICKCURL_DEBUG
656 fprintf(stderr, "OAuth request token request %s response was %d params\n",
657 uri, count);
658 #endif
659
660 for(i = 0; i < (2 * count); i += 2) {
661 if(!strcmp(form[i], "oauth_token")) {
662 request_token = form[i+1];
663 } else if(!strcmp(form[i], "oauth_token_secret")) {
664 request_token_secret = form[i+1];
665 }
666 }
667
668 if(request_token && request_token_secret) {
669 /* Take copies that are owned by od */
670 od->request_token = strdup(request_token);
671 od->request_token_len = strlen(od->request_token);
672 od->request_token_secret = strdup(request_token_secret);
673 od->request_token_secret_len = strlen(od->request_token_secret);
674
675 #ifdef FLICKCURL_DEBUG
676 fprintf(stderr,
677 "OAuth request token returned token '%s' secret token '%s'\n",
678 od->request_token, od->request_token_secret);
679 #endif
680 } else
681 rc = 1;
682
683 tidy:
684 if(form)
685 flickcurl_free_form(form, count);
686
687 return rc;
688 }
689
690
691 /*
692 * flickcurl_oauth_get_authorize_uri:
693 * @fc: flickcurl object
694 *
695 * INTERNAL - get the URL for the user to authorize an application
696 *
697 * Forms the URL the user needs to start at to authorize the
698 * application. The application should pass the verifier to
699 * flickcurl_oauth_access_token() for the final step in OAuth.
700 *
701 * Return value: authorize URI or NULL on failure
702 */
703 char*
704 flickcurl_oauth_get_authorize_uri(flickcurl* fc)
705 {
706 flickcurl_oauth_data* od = &fc->od;
707 #define PARAM_LEN 13
708 const char* param = "?oauth_token=";
709 size_t len;
710 char* uri;
711 char *p;
712
713 if(!od->request_token)
714 return NULL;
715
716 len = strlen(flickcurl_flickr_oauth_authorize_uri);
717 uri = (char*)malloc(len + PARAM_LEN + od->request_token_len + 1);
718 if(!uri)
719 return NULL;
720
721 p = uri;
722 memcpy(p, flickcurl_flickr_oauth_authorize_uri, len);
723 p += len;
724 memcpy(p, param, PARAM_LEN);
725 p += PARAM_LEN;
726 memcpy(p, od->request_token, od->request_token_len);
727 p += od->request_token_len;
728 *p = '\0';
729
730 return uri;
731 }
732
733
734 /*
735 * flickcurl_oauth_access_token:
736 * @fc: flickcurl object
737 * @verifier: verifier from OOB authentication
738 *
739 * INTERNAL - get a Flickr OAuth access token from a verifier
740 *
741 * Calls the Flickr OAuth access token endpoint using the verifier
742 * from out of band authentication to get an access token.
743 *
744 * Uses the @verifier and the @od fields 'request_token' and
745 * 'request_token_secret' to get an access token stored which on
746 * success is stored in the @od fields 'access_token' and
747 * 'access_token_secret'. The request token fields are deleted on
748 * success.
749 *
750 * Return value: non-0 on failure
751 */
752 int
753 flickcurl_oauth_access_token(flickcurl* fc, const char* verifier)
754 {
755 flickcurl_oauth_data* od = &fc->od;
756 const char * parameters[2 + FLICKCURL_MAX_OAUTH_PARAM_COUNT][2];
757 int count = 0;
758 char* access_token = NULL;
759 char* access_token_secret = NULL;
760 char** form = NULL;
761 int rc = 0;
762 const char* uri = fc->oauth_access_token_uri;
763 int i;
764
765 parameters[count][0] = NULL;
766
767 /* Require signature */
768 flickcurl_set_sign(fc);
769
770 od->verifier = verifier;
771 od->verifier_len = strlen(verifier);
772
773 rc = flickcurl_oauth_prepare_common(fc,
774 uri,
775 /* method */ "flickr.oauth.access_token",
776 /* upload_field */ NULL,
777 /* upload_value */ NULL,
778 parameters, count,
779 /* parameters_in_url */ 1,
780 /* need_auth */ 1);
781
782 od->verifier = NULL;
783 od->verifier_len = 0;
784 if(rc)
785 goto tidy;
786
787 form = flickcurl_invoke_get_form_content(fc, &count);
788 if(!form) {
789 rc = 1;
790 goto tidy;
791 }
792
793 #ifdef FLICKCURL_DEBUG
794 fprintf(stderr, "OAuth access token request %s response was %d params\n",
795 uri, count);
796 #endif
797
798 for(i = 0; i < (2 * count); i += 2) {
799 if(!strcmp(form[i], "oauth_token")) {
800 access_token = form[i+1];
801 } else if(!strcmp(form[i], "oauth_token_secret")) {
802 access_token_secret = form[i+1];
803 }
804 /* ignoring: fullname, user_nsid, username */
805 }
806
807 if(access_token && access_token_secret) {
808 /* Take copies that are owned by od */
809 od->token = strdup(access_token);
810 od->token_len = strlen(od->token);
811 od->token_secret = strdup(access_token_secret);
812 od->token_secret_len = strlen(od->token_secret);
813
814 /* Delete temporary request token and secret */
815 free(od->request_token);
816 od->request_token = NULL;
817 od->request_token_len = 0;
818
819 free(od->request_token_secret);
820 od->request_token_secret = NULL;
821 od->request_token_secret_len = 0;
822
823 #ifdef FLICKCURL_DEBUG
824 fprintf(stderr,
825 "OAuth access token returned token '%s' secret token '%s'\n",
826 od->token, od->token_secret);
827 #endif
828 } else
829 rc = 1;
830
831 tidy:
832 if(form)
833 flickcurl_free_form(form, count);
834
835 return rc;
836 }
837 #endif
838
839
840 #ifdef STANDALONE
841 #include <stdio.h>
842
843 int main(int argc, char *argv[]);
844
845
846 /* Test KEY fields */
847 static const char* test_client_secret = "a9567d986a7539fe";
848 static const char* test_token_secret = NULL;
849
850 /* Test DATA fields */
851 static const char* test_http_request_method = "GET";
852 static const char* test_uri_base_string = "http://www.flickr.com/services/oauth/request_token";
853 static const char* test_oauth_callback_url = "http://www.example.com";
854 static const char* test_oauth_consumer_key = "653e7a6ecc1d528c516cc8f92cf98611";
855 static const char* test_oauth_nonce = "95613465";
856 static const time_t test_oauth_timestamp = (time_t)1305586162;
857
858 static const char* test_request_parameters = "oauth_callback=http%3A%2F%2Fwww.example.com&oauth_consumer_key=653e7a6ecc1d528c516cc8f92cf98611&oauth_nonce=95613465&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1305586162&oauth_version=1.0";
859
860 /* Expected results */
861 static const char* expected_key =
862 "a9567d986a7539fe"
863 "&";
864 static const char* expected_data =
865 "GET" "&"
866 "http%3A%2F%2Fwww.flickr.com%2Fservices%2Foauth%2Frequest_token" "&"
867 "oauth_callback%3Dhttp%253A%252F%252Fwww.example.com%26oauth_consumer_key%3D653e7a6ecc1d528c516cc8f92cf98611%26oauth_nonce%3D95613465%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1305586162%26oauth_version%3D1.0";
868
869 static const char* expected_signature = "7w18YS2bONDPL%2FzgyzP5XTr5af4%3D";
870
871 static const char* program;
872
873
874 static void
875 oauth_init_test_secrets(flickcurl_oauth_data *od)
876 {
877 /* Set up test data */
878 od->client_secret = (char*)test_client_secret;
879 if(od->client_secret)
880 od->client_secret_len = strlen(od->client_secret);
881
882 od->token_secret = (char*)test_token_secret;
883 if(od->token_secret)
884 od->token_secret_len = strlen(od->token_secret);
885 }
886
887
888 static int
889 test_request_token(flickcurl* fc)
890 {
891 flickcurl_oauth_data* od = &fc->od;
892 int rc;
893
894 memset(od, '\0', sizeof(*od));
895
896 od->callback = test_oauth_callback_url;
897 od->client_key = (char*)test_oauth_consumer_key;
898 od->client_key_len = strlen(od->client_key);
899 od->nonce = (char*)test_oauth_nonce;
900 od->timestamp = test_oauth_timestamp;
901
902 oauth_init_test_secrets(od);
903
904 rc = flickcurl_oauth_request_token(fc);
905
906 memset(od, '\0', sizeof(*od));
907
908 return rc;
909 }
910
911
912 static int
913 test_access_token(flickcurl* fc)
914 {
915 flickcurl_oauth_data* od = &fc->od;
916 int rc;
917 const char* verifier = "123-456-789";
918
919 memset(od, '\0', sizeof(*od));
920
921 od->callback = test_oauth_callback_url;
922 od->client_key = (char*)test_oauth_consumer_key;
923 od->client_key_len = strlen(od->client_key);
924 od->nonce = (char*)test_oauth_nonce;
925 od->timestamp = test_oauth_timestamp;
926
927 oauth_init_test_secrets(od);
928
929 rc = flickcurl_oauth_access_token(fc, verifier);
930
931 memset(od, '\0', sizeof(*od));
932
933 return rc;
934 }
935
936
937 static int
938 test_oauth_build_key_data(flickcurl_oauth_data* od,
939 const char* http_request_method,
940 const char* uri_base_string,
941 const char* request_parameters)
942 {
943 unsigned char *p;
944 size_t s_len;
945 char *escaped_s = NULL;
946
947 if(flickcurl_oauth_build_key(od))
948 return 1;
949
950 od->data_len = strlen(http_request_method) +
951 1 +
952 (strlen(uri_base_string) * 3) + /* PESSIMAL; every char %-escaped */
953 1 +
954 (strlen(request_parameters) * 3); /* PESSIMAL */
955 od->data = malloc(od->data_len + 1); /* for NUL */
956
957 if(!od->data)
958 return 1;
959
960 /* Prepare data */
961 p = od->data;
962 s_len = strlen(http_request_method);
963 memcpy(p, http_request_method, s_len);
964 p += s_len;
965
966 *p++ = '&';
967
968 escaped_s = curl_escape(uri_base_string, strlen(uri_base_string));
969 s_len = strlen(escaped_s);
970 memcpy(p, escaped_s, s_len);
971 p += s_len;
972 curl_free(escaped_s);
973
974 *p++ = '&';
975
976 escaped_s = curl_escape(request_parameters, strlen(request_parameters));
977 s_len = strlen(escaped_s);
978 memcpy(p, escaped_s, s_len);
979 p += s_len;
980 curl_free(escaped_s);
981
982 *p = '\0'; /* Not part of HMAC-SHA1 data */
983 /* calculate actual data len */
984 od->data_len = p - od->data;
985
986 return 0;
987 }
988
989
990 static int
991 test_signature_calc(flickcurl* fc)
992 {
993 char *s = NULL;
994 char *escaped_s = NULL;
995 size_t escaped_s_len;
996 char* signature;
997 flickcurl_oauth_data* od = &fc->od;
998 int rc;
999
1000 memset(od, '\0', sizeof(*od));
1001
1002 oauth_init_test_secrets(od);
1003
1004 rc = test_oauth_build_key_data(od, test_http_request_method,
1005 test_uri_base_string,
1006 test_request_parameters);
1007
1008 fprintf(stderr, "%s: key is (%d bytes)\n %s\n", program, (int)od->key_len, od->key);
1009 fprintf(stderr, "%s: expected key is\n %s\n", program, expected_key);
1010
1011 fprintf(stderr, "%s: data is (%d bytes)\n %s\n", program, (int)od->data_len, od->data);
1012 fprintf(stderr, "%s: expected data is\n %s\n", program, expected_data);
1013
1014 signature = flickcurl_oauth_compute_signature(od, &escaped_s_len);
1015
1016 escaped_s = curl_escape((char*)signature, 0);
1017 free(signature);
1018 escaped_s_len = strlen(escaped_s);
1019
1020 fprintf(stdout, "URI Escaped result (%d bytes):\n %s\n",
1021 (int)escaped_s_len, escaped_s);
1022
1023 fprintf(stdout, "Expected URI escaped result\n %s\n",
1024 expected_signature);
1025
1026 curl_free(escaped_s);
1027
1028 if(s)
1029 free(s);
1030 if(od->key)
1031 free(od->key);
1032 if(od->data)
1033 free(od->data);
1034
1035 memset(od, '\0', sizeof(*od));
1036
1037 return rc;
1038 }
1039
1040
1041 static void
1042 my_message_handler(void *user_data, const char *message)
1043 {
1044 fprintf(stderr, "%s: ERROR: %s\n", program, message);
1045 }
1046
1047
1048 int
1049 main(int argc, char *argv[])
1050 {
1051 flickcurl *fc = NULL;
1052 int failures = 0;
1053
1054 program = "flickcurl_oauth_test"; /* No raptor_basename */
1055
1056 flickcurl_init();
1057
1058 /* Initialise the Flickcurl library */
1059 fc = flickcurl_new();
1060 if(!fc) {
1061 failures++;
1062 goto tidy;
1063 }
1064
1065 flickcurl_set_error_handler(fc, my_message_handler, NULL);
1066
1067 if(0) {
1068 failures += test_request_token(fc);
1069 failures += test_access_token(fc);
1070 }
1071 failures += test_signature_calc(fc);
1072
1073 tidy:
1074 if(fc)
1075 flickcurl_free(fc);
1076
1077 return failures;
1078 }
1079 #endif
172172 * Announced 2009-03-03
173173 * http://code.flickr.com/blog/2009/03/03/panda-tuesday-the-history-of-the-panda-new-apis-explore-and-you/
174174 *
175 * Only "supports the following extras: ownername, license,
176 * date_upload, date_taken, tags, machine_tags, views, media" -
177 * Sergey M., Flickr staff 2011-09-16
178 * http://tech.groups.yahoo.com/group/yws-flickr/message/7203
179 *
175180 * Implements flickr.panda.getPhotos (1.9)
176181 *
177182 * Return value: photos array or NULL on failure
292292 time_t unix_time;
293293
294294 string_value = flickcurl_xpath_eval(fc, xpathNodeCtx,
295 person_fields_table[expri].xpath);
296 if(!string_value) {
297 person->fields[field].string = NULL;
298 person->fields[field].integer= (flickcurl_person_field_type)-1;
299 person->fields[field].type = VALUE_TYPE_NONE;
295 person_fields_table[expri].xpath);
296 if(!string_value)
300297 continue;
301 }
302298
303299 switch(datatype) {
304300 case VALUE_TYPE_PERSON_ID:
133133 free(photo->fields[i].string);
134134 }
135135
136 for(i = 0; i < photo->tags_count; i++)
137 flickcurl_free_tag(photo->tags[i]);
138 free(photo->tags);
136 flickcurl_free_tags(photo->tags);
139137
140138 for(i = 0; i < photo->notes_count; i++)
141139 flickcurl_free_note(photo->notes[i]);
12151213 const char *nformat;
12161214 size_t format_len;
12171215
1218 photos_list = (flickcurl_photos_list*)calloc(1, sizeof(*photos_list));
1219 if(!photos_list) {
1220 fc->failed = 1;
1221 goto tidy;
1222 }
1223
1224 photos_list->page = -1;
1225 photos_list->per_page = -1;
1226 photos_list->total_count = -1;
1227
1216 photos_list = flickcurl_new_photos_list(fc);
12281217 if(format) {
12291218 nformat = format;
12301219 format_len = strlen(format);
13571346 }
13581347
13591348
1349 /*
1350 * flickcurl_new_photos_list:
1351 * @fc: Flickcurl context
1352 *
1353 * INTERNAL - constructor for photos list
1354 */
1355 flickcurl_photos_list*
1356 flickcurl_new_photos_list(flickcurl* fc)
1357 {
1358 flickcurl_photos_list* photos_list;
1359
1360 photos_list = (flickcurl_photos_list*)calloc(1, sizeof(*photos_list));
1361 if(!photos_list)
1362 return NULL;
1363
1364 photos_list->page = -1;
1365 photos_list->per_page = -1;
1366 photos_list->total_count = -1;
1367
1368 return photos_list;
1369 }
1370
1371
13601372 /**
13611373 * flickcurl_free_photos_list:
13621374 * @photos_list: photos list object
5858
5959 if(photoset->description)
6060 free(photoset->description);
61
62 if(photoset->owner)
63 free(photoset->owner);
6164
6265 free(photoset);
6366 }
143146 } else if(!strcmp(attr_name, "photos")) {
144147 ps->photos_count = atoi(attr_value);
145148 free(attr_value);
146 }
149 } else if(!strcmp(attr_name, "owner"))
150 ps->owner = attr_value;
151 else
152 free(attr_value);
147153 }
148154
149155 /* Walk children nodes for <title> or <description> elements */
149149 goto tidy;
150150 }
151151
152 photoset_id = flickcurl_xpath_eval(fc, xpathCtx, (const xmlChar*)"/rsp/photoset/@id");
152 photoset_id = flickcurl_xpath_eval(fc, xpathCtx,
153 (const xmlChar*)"/rsp/photoset/@id");
153154 if(photoset_url_p) {
154 *photoset_url_p = flickcurl_xpath_eval(fc, xpathCtx, (const xmlChar*)"/rsp/photoset/@url");
155 *photoset_url_p = flickcurl_xpath_eval(fc, xpathCtx,
156 (const xmlChar*)"/rsp/photoset/@url");
155157 }
156158
157159 tidy:
7474 goto tidy;
7575 }
7676
77 content_type_str = flickcurl_xpath_eval(fc, xpathCtx, (const xmlChar*)"/rsp/person/@content_type");
77 content_type_str = flickcurl_xpath_eval(fc, xpathCtx,
78 (const xmlChar*)"/rsp/person/@content_type");
7879 if(content_type_str) {
7980 content_type = atoi(content_type_str);
8081 free(content_type_str);
159160 goto tidy;
160161 }
161162
162 hidden_str = flickcurl_xpath_eval(fc, xpathCtx, (const xmlChar*)"/rsp/person/@hidden");
163 hidden_str = flickcurl_xpath_eval(fc, xpathCtx,
164 (const xmlChar*)"/rsp/person/@hidden");
163165 if(hidden_str) {
164166 hidden = atoi(hidden_str);
165167 free(hidden_str);
216218 goto tidy;
217219 }
218220
219 privacy_level_str = flickcurl_xpath_eval(fc, xpathCtx, (const xmlChar*)"/rsp/person/@privacy");
221 privacy_level_str = flickcurl_xpath_eval(fc, xpathCtx,
222 (const xmlChar*)"/rsp/person/@privacy");
220223 if(privacy_level_str) {
221224 privacy_level = atoi(privacy_level_str);
222225 free(privacy_level_str);
271274 goto tidy;
272275 }
273276
274 safety_level_str = flickcurl_xpath_eval(fc, xpathCtx, (const xmlChar*)"/rsp/person/@safety_level");
277 safety_level_str = flickcurl_xpath_eval(fc, xpathCtx,
278 (const xmlChar*)"/rsp/person/@safety_level");
275279 if(safety_level_str) {
276280 safety_level = atoi(safety_level_str);
277281 free(safety_level_str);
0 /* -*- Mode: c; c-basic-offset: 2 -*-
1 *
2 * sha1.c - SHA1 Message Digest Algorithm and HMAC-SHA1
3 *
4 * Copyright (C) 2011, David Beckett http://www.dajobe.org/
5 *
6 * This file is licensed under the following three licenses as alternatives:
7 * 1. GNU Lesser General Public License (LGPL) V2.1 or any newer version
8 * 2. GNU General Public License (GPL) V2 or any newer version
9 * 3. Apache License, V2.0 or any newer version
10 *
11 * You may not use this file except in compliance with at least one of
12 * the above three licenses.
13 *
14 * See LICENSE.html or LICENSE.txt at the top of this package for the
15 * complete terms and further detail along with the license texts for
16 * the licenses in COPYING.LIB, COPYING and LICENSE-2.0.txt respectively.
17 *
18 * Based on the public domain version with the credits below.
19 *
20 */
21
22
23 /*
24 SHA-1 in C
25 By Steve Reid <sreid@sea-to-sky.net>
26 100% Public Domain
27
28 -----------------
29 Modified 7/98
30 By James H. Brown <jbrown@burgoyne.com>
31 Still 100% Public Domain
32
33 Corrected a problem which generated improper hash values on 16 bit machines
34 Routine SHA1Update changed from
35 void SHA1Update(SHA1_CTX* context, unsigned char* data, unsigned int len)
36 to
37 void SHA1Update(SHA1_CTX* context, unsigned char* data, unsigned long len)
38
39 The 'len' parameter was declared an int which works fine on 32 bit
40 machines. However, on 16 bit machines an int is too small for the
41 shifts being done against it. This caused the hash function to
42 generate incorrect values if len was greater than 8191 (8K - 1) due
43 to the 'len << 3' on line 3 of SHA1Update().
44
45 Since the file IO in main() reads 16K at a time, any file 8K or
46 larger would be guaranteed to generate the wrong hash (e.g. Test
47 Vector #3, a million "a"s).
48
49 I also changed the declaration of variables i & j in SHA1Update to
50 unsigned long from unsigned int for the same reason.
51
52 These changes should make no difference to any 32 bit implementations
53 since an int and a long are the same size in those environments.
54
55 --
56 I also corrected a few compiler warnings generated by Borland C.
57 1. Added #include <process.h> for exit() prototype
58 2. Removed unused variable 'j' in SHA1Final
59 3. Changed exit(0) to return(0) at end of main.
60
61 ALL changes I made can be located by searching for comments containing 'JHB'
62 -----------------
63 Modified 8/98
64 By Steve Reid <sreid@sea-to-sky.net>
65 Still 100% public domain
66
67 1- Removed #include <process.h> and used return() instead of exit()
68 2- Fixed overwriting of finalcount in SHA1Final() (discovered by Chris Hall)
69 3- Changed email address from steve@edmweb.com to sreid@sea-to-sky.net
70 */
71
72 /*
73 Test Vectors (from FIPS PUB 180-1)
74 "abc"
75 A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D
76 "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
77 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1
78 A million repetitions of "a"
79 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F
80 */
81
82 #ifdef HAVE_CONFIG_H
83 #include <config.h>
84 #endif
85
86 #ifdef WIN32
87 #include <win32_flickcurl_config.h>
88 #endif
89
90 #include <stdio.h>
91 #include <string.h>
92 #include <stdarg.h>
93 #include <stdint.h>
94
95 #include <flickcurl.h>
96 #include <flickcurl_internal.h>
97
98
99 #define u32 uint32_t
100
101
102 /* #define SHA1HANDSOFF * Copies data before messing with it. */
103
104 /* Using return() instead of exit() - SWR */
105
106 typedef struct {
107 u32 state[5];
108 u32 count[2];
109 unsigned char buffer[64];
110 unsigned char digest[SHA1_DIGEST_LENGTH];
111 } SHA1Context;
112
113
114 static void SHA1Transform(u32 state[5], const unsigned char buffer[64]);
115 static void SHA1Init(SHA1Context* context);
116 static void SHA1Update(SHA1Context* context, const unsigned char* data, size_t len); /* JHB */
117 static void SHA1Final(SHA1Context* context);
118
119
120 #define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits))))
121
122 /* blk0() and blk() perform the initial expand. */
123 /* I got the idea of expanding during the round function from SSLeay */
124 #ifdef WORDS_BIGENDIAN
125 #define blk0(i) block->l[i]
126 #else
127 #define blk0(i) (block->l[i] = (rol(block->l[i],24)&0xFF00FF00) \
128 |(rol(block->l[i],8)&0x00FF00FF))
129 #endif
130 #define blk(i) (block->l[i&15] = rol(block->l[(i+13)&15]^block->l[(i+8)&15] \
131 ^block->l[(i+2)&15]^block->l[i&15],1))
132
133
134 /* (R0+R1), R2, R3, R4 are the different operations used in SHA1 */
135 #define R0(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk0(i)+0x5A827999+rol(v,5);w=rol(w,30);
136 #define R1(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk(i)+0x5A827999+rol(v,5);w=rol(w,30);
137 #define R2(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0x6ED9EBA1+rol(v,5);w=rol(w,30);
138 #define R3(v,w,x,y,z,i) z+=(((w|x)&y)|(w&x))+blk(i)+0x8F1BBCDC+rol(v,5);w=rol(w,30);
139 #define R4(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0xCA62C1D6+rol(v,5);w=rol(w,30);
140
141
142 /* Hash a single 512-bit block. This is the core of the algorithm. */
143
144 static void
145 SHA1Transform(u32 state[5], const unsigned char buffer[64])
146 {
147 u32 a, b, c, d, e;
148 typedef union {
149 unsigned char c[64];
150 u32 l[16];
151 } CHAR64LONG16;
152 CHAR64LONG16* block;
153 #ifdef SHA1HANDSOFF
154 static unsigned char workspace[64];
155 block = (CHAR64LONG16*)workspace;
156 memcpy(block, buffer, 64);
157 #else
158 block = (CHAR64LONG16*)buffer;
159 #endif
160
161 /* Copy context->state[] to working vars */
162 a = state[0];
163 b = state[1];
164 c = state[2];
165 d = state[3];
166 e = state[4];
167
168 /* 4 rounds of 20 operations each. Loop unrolled. */
169 R0(a,b,c,d,e, 0); R0(e,a,b,c,d, 1); R0(d,e,a,b,c, 2); R0(c,d,e,a,b, 3);
170 R0(b,c,d,e,a, 4); R0(a,b,c,d,e, 5); R0(e,a,b,c,d, 6); R0(d,e,a,b,c, 7);
171 R0(c,d,e,a,b, 8); R0(b,c,d,e,a, 9); R0(a,b,c,d,e,10); R0(e,a,b,c,d,11);
172 R0(d,e,a,b,c,12); R0(c,d,e,a,b,13); R0(b,c,d,e,a,14); R0(a,b,c,d,e,15);
173 R1(e,a,b,c,d,16); R1(d,e,a,b,c,17); R1(c,d,e,a,b,18); R1(b,c,d,e,a,19);
174 R2(a,b,c,d,e,20); R2(e,a,b,c,d,21); R2(d,e,a,b,c,22); R2(c,d,e,a,b,23);
175 R2(b,c,d,e,a,24); R2(a,b,c,d,e,25); R2(e,a,b,c,d,26); R2(d,e,a,b,c,27);
176 R2(c,d,e,a,b,28); R2(b,c,d,e,a,29); R2(a,b,c,d,e,30); R2(e,a,b,c,d,31);
177 R2(d,e,a,b,c,32); R2(c,d,e,a,b,33); R2(b,c,d,e,a,34); R2(a,b,c,d,e,35);
178 R2(e,a,b,c,d,36); R2(d,e,a,b,c,37); R2(c,d,e,a,b,38); R2(b,c,d,e,a,39);
179 R3(a,b,c,d,e,40); R3(e,a,b,c,d,41); R3(d,e,a,b,c,42); R3(c,d,e,a,b,43);
180 R3(b,c,d,e,a,44); R3(a,b,c,d,e,45); R3(e,a,b,c,d,46); R3(d,e,a,b,c,47);
181 R3(c,d,e,a,b,48); R3(b,c,d,e,a,49); R3(a,b,c,d,e,50); R3(e,a,b,c,d,51);
182 R3(d,e,a,b,c,52); R3(c,d,e,a,b,53); R3(b,c,d,e,a,54); R3(a,b,c,d,e,55);
183 R3(e,a,b,c,d,56); R3(d,e,a,b,c,57); R3(c,d,e,a,b,58); R3(b,c,d,e,a,59);
184 R4(a,b,c,d,e,60); R4(e,a,b,c,d,61); R4(d,e,a,b,c,62); R4(c,d,e,a,b,63);
185 R4(b,c,d,e,a,64); R4(a,b,c,d,e,65); R4(e,a,b,c,d,66); R4(d,e,a,b,c,67);
186 R4(c,d,e,a,b,68); R4(b,c,d,e,a,69); R4(a,b,c,d,e,70); R4(e,a,b,c,d,71);
187 R4(d,e,a,b,c,72); R4(c,d,e,a,b,73); R4(b,c,d,e,a,74); R4(a,b,c,d,e,75);
188 R4(e,a,b,c,d,76); R4(d,e,a,b,c,77); R4(c,d,e,a,b,78); R4(b,c,d,e,a,79);
189
190 /* Add the working vars back into context.state[] */
191 state[0] += a;
192 state[1] += b;
193 state[2] += c;
194 state[3] += d;
195 state[4] += e;
196 /* Wipe variables */
197 /* a = b = c = d = e = 0; */ /* CLANG: useless */
198 }
199
200
201 /* SHA1Init - Initialize new context */
202 static void
203 SHA1Init(SHA1Context* context)
204 {
205 /* SHA1 initialization constants */
206 context->state[0] = 0x67452301;
207 context->state[1] = 0xEFCDAB89;
208 context->state[2] = 0x98BADCFE;
209 context->state[3] = 0x10325476;
210 context->state[4] = 0xC3D2E1F0;
211 context->count[0] = context->count[1] = 0;
212 }
213
214
215 /* Run your data through this. */
216
217 static void
218 SHA1Update(SHA1Context* context, const unsigned char* data, size_t len) /* JHB */
219 {
220 u32 i, j; /* JHB */
221
222 j = (context->count[0] >> 3) & 63;
223 if ((context->count[0] += len << 3) < (len << 3))
224 context->count[1]++;
225
226 context->count[1] += (len >> 29);
227 if ((j + len) > 63) {
228 memcpy(&context->buffer[j], data, (i = 64-j));
229 SHA1Transform(context->state, context->buffer);
230 for ( ; i + 63 < len; i += 64) {
231 SHA1Transform(context->state, &data[i]);
232 }
233 j = 0;
234 }
235 else
236 i = 0;
237 memcpy(&context->buffer[j], &data[i], len - i);
238 }
239
240
241 /* Add padding and return the message digest. */
242
243 static void
244 SHA1Final(SHA1Context* context)
245 {
246 u32 i; /* JHB */
247 unsigned char finalcount[8];
248
249 for (i = 0; i < 8; i++) {
250 finalcount[i] = (unsigned char)((context->count[(i >= 4 ? 0 : 1)]
251 >> ((3-(i & 3)) * 8) ) & 255); /* Endian independent */
252 }
253 SHA1Update(context, (const unsigned char*)"\200", 1);
254 while ((context->count[0] & 504) != 448) {
255 SHA1Update(context, (const unsigned char*)"\0", 1);
256 }
257 SHA1Update(context, finalcount, 8); /* Should cause a SHA1Transform() */
258 for (i = 0; i < SHA1_DIGEST_LENGTH; i++) {
259 context->digest[i] = (unsigned char)
260 ((context->state[i>>2] >> ((3-(i & 3)) * 8) ) & 255);
261 }
262
263 /* Wipe variables */
264 /* i = 0; */ /* JHB */ /* CLANG: useless */
265 memset(context->buffer, 0, 64);
266 memset(context->state, 0, SHA1_DIGEST_LENGTH);
267 memset(context->count, 0, 8);
268 memset(finalcount, 0, 8); /* SWR */
269 #ifdef SHA1HANDSOFF /* make SHA1Transform overwrite it's own static vars */
270 SHA1Transform(context->state, context->buffer);
271 #endif
272 }
273
274
275 /* DJB code from here */
276
277 #define IPAD_CHAR 0x36
278 #define OPAD_CHAR 0x5c
279
280 #define HMAC_SHA1_BLOCKSIZE 64
281
282 /*
283 * flickcurl_hmac_sha1:
284 * @data: data
285 * @data_size: size of data in bytes
286 * @key: key
287 * @key_len: size of key in bytes
288 *
289 * INTERNAL - Calculate the HMAC-SHA1 digest of key and data
290 *
291 * Based on specification at http://tools.ietf.org/html/rfc2104
292 * Section 2. "Definition of HMAC" where B=64 H=SHA1 L=SHA1_DIGEST_LENGTH (20)
293 *
294 * Return value: buffer of size SHA1_DIGEST_LENGTH or NULL on failure
295 */
296 unsigned char*
297 flickcurl_hmac_sha1(const void *data, size_t data_len,
298 const void *key, size_t key_len)
299 {
300 unsigned int i;
301 SHA1Context inner;
302 SHA1Context outer;
303 SHA1Context key_hash;
304 unsigned char kpad[HMAC_SHA1_BLOCKSIZE];
305 unsigned char* result;
306
307 if(!key || !data)
308 return NULL;
309
310 result = malloc(SHA1_DIGEST_LENGTH);
311 if(!result)
312 return NULL;
313
314 if(key_len > HMAC_SHA1_BLOCKSIZE) {
315 /* When key (K) is > blocksize, key := sha1-hash(key) */
316 SHA1Init(&key_hash);
317 SHA1Update(&key_hash, key, key_len);
318 SHA1Final(&key_hash);
319
320 key = key_hash.digest;
321 key_len = SHA1_DIGEST_LENGTH;
322 }
323
324 memset(kpad, '\0', sizeof(kpad));
325 memcpy(kpad, key, key_len);
326 for(i = 0; i < HMAC_SHA1_BLOCKSIZE; i++)
327 kpad[i] ^= IPAD_CHAR;
328
329 /* inner := sha1-hash(ipad // message) */
330 SHA1Init(&inner);
331 SHA1Update(&inner, kpad, HMAC_SHA1_BLOCKSIZE);
332 SHA1Update(&inner, data, data_len);
333 SHA1Final(&inner);
334
335 memset(kpad, '\0', sizeof(kpad));
336 memcpy(kpad, key, key_len);
337 for(i = 0; i < HMAC_SHA1_BLOCKSIZE; i++)
338 kpad[i] ^= OPAD_CHAR;
339
340 /* final outer := sha1-hash(opad // inner) */
341 SHA1Init(&outer);
342 SHA1Update(&outer, kpad, HMAC_SHA1_BLOCKSIZE);
343 /* Result of inner hash is in inner.digest of size SHA1_DIGEST_LENGTH */
344 SHA1Update(&outer, inner.digest, SHA1_DIGEST_LENGTH);
345 SHA1Final(&outer);
346
347 /* copy final digest into result buffer */
348 memcpy(result, outer.digest, SHA1_DIGEST_LENGTH);
349
350 return result;
351 }
5757 free(t);
5858 }
5959
60 /**
61 * flickcurl_free_tags:
62 * @tags: tag object array
63 *
64 * Destructor for array of tag objects
65 */
66 void
67 flickcurl_free_tags(flickcurl_tag **tags)
68 {
69 int i;
70
71 FLICKCURL_ASSERT_OBJECT_POINTER_RETURN(tags, flickcurl_tag_array);
72
73 for(i = 0; tags[i]; i++)
74 flickcurl_free_tag(tags[i]);
75 free(tags);
76 }
6077
6178 flickcurl_tag**
6279 flickcurl_build_tags(flickcurl* fc, flickcurl_photo* photo,
124124 goto tidy;
125125 }
126126
127 username = flickcurl_xpath_eval(fc, xpathCtx, (const xmlChar*)"/rsp/user/username");
127 username = flickcurl_xpath_eval(fc, xpathCtx,
128 (const xmlChar*)"/rsp/user/username");
128129
129130 tidy:
130131 if(xpathCtx)
5656 flickcurl_upload_status*
5757 flickcurl_photos_upload_params(flickcurl* fc, flickcurl_upload_params* params)
5858 {
59 const char* parameters[12][2];
59 const char* parameters[13][2];
6060 int count = 0;
6161 xmlDocPtr doc = NULL;
6262 xmlXPathContextPtr xpathCtx = NULL;
6666 char is_family_s[2];
6767 char safety_level_s[2];
6868 char content_type_s[2];
69 char hidden_s[2];
6970
7071 if(!params->photo_file)
7172 return NULL;
8788 safety_level_s[0] = '0' + params->safety_level;
8889 safety_level_s[1] = '\0';
8990 } else
90 params->safety_level= -1;
91 params->safety_level = -1;
9192
9293 if(params->content_type >= 1 && params->content_type <= 3) {
9394 content_type_s[0] = '0' + params->content_type;
9495 content_type_s[1] = '\0';
9596 } else
96 params->content_type= -1;
97
97 params->content_type = -1;
98
99 if(params->hidden >= 1 && params->hidden <= 2 ) {
100 hidden_s[0] = '0' + params->hidden;
101 hidden_s[1] = '\0';
102 } else {
103 params->hidden = -1;
104 }
105
98106 if(params->title) {
99107 parameters[count][0] = "title";
100108 parameters[count++][1]= params->title;
121129 parameters[count++][1]= is_friend_s;
122130 parameters[count][0] = "is_family";
123131 parameters[count++][1]= is_family_s;
132 if(params->hidden >= 0) {
133 parameters[count][0] = "hidden";
134 parameters[count++][1]= hidden_s;
135 }
124136
125137 parameters[count][0] = NULL;
126138
144156 }
145157
146158 status = (flickcurl_upload_status*)calloc(1, sizeof(flickcurl_upload_status));
147 status->photoid = flickcurl_xpath_eval(fc, xpathCtx, (const xmlChar*)"/rsp/photoid");
159 status->photoid = flickcurl_xpath_eval(fc, xpathCtx,
160 (const xmlChar*)"/rsp/photoid");
148161 /* when async is true */
149 status->ticketid = flickcurl_xpath_eval(fc, xpathCtx, (const xmlChar*)"/rsp/ticketid");
162 status->ticketid = flickcurl_xpath_eval(fc, xpathCtx,
163 (const xmlChar*)"/rsp/ticketid");
150164
151165 tidy:
152166 if(xpathCtx)
269283 }
270284
271285 status = (flickcurl_upload_status*)calloc(1, sizeof(flickcurl_upload_status));
272 status->secret = flickcurl_xpath_eval(fc, xpathCtx, (const xmlChar*)"/rsp/photoid/@secret");
273 status->originalsecret = flickcurl_xpath_eval(fc, xpathCtx, (const xmlChar*)"/rsp/photoid/@originalsecret");
286 status->secret = flickcurl_xpath_eval(fc, xpathCtx,
287 (const xmlChar*)"/rsp/photoid/@secret");
288 status->originalsecret = flickcurl_xpath_eval(fc, xpathCtx,
289 (const xmlChar*)"/rsp/photoid/@originalsecret");
274290 /* when async is true */
275 status->ticketid = flickcurl_xpath_eval(fc, xpathCtx, (const xmlChar*)"/rsp/ticketid");
291 status->ticketid = flickcurl_xpath_eval(fc, xpathCtx,
292 (const xmlChar*)"/rsp/ticketid");
276293
277294 tidy:
278295 if(xpathCtx)
2020
2121 CLEANFILES=$(EXTRA_PROGRAMS)
2222
23 AM_CPPFLAGS= -I$(top_srcdir)/src
23 AM_CPPFLAGS= -I$(top_srcdir)/src -DMTWIST_CONFIG -I$(top_srcdir)/libmtwist
2424
2525 flickcurl_SOURCES = flickcurl.c
2626 if GETOPT
4343 flickrdf_LDADD += @RAPTOR_LIBS@
4444 endif
4545 if !RAPTOR
46 flickrdf_SOURCES += raptor_fake.c
46 flickrdf_SOURCES += raptor_fake.c raptor_fake.h
4747 endif
4848
4949 codegen_SOURCES = codegen.c
5858 endif
5959 list_methods_LDADD= $(top_builddir)/src/libflickcurl.la
6060
61
62 if FLICKCURL_OAUTH
63
64 EXTRA_PROGRAMS += oauth-test
65
66 oauth_test_SOURCES = oauth-test.c
67 if GETOPT
68 oauth_test_SOURCES += getopt.c flickcurl_getopt.h
69 endif
70 oauth_test_LDADD= $(top_builddir)/src/libflickcurl.la
71
72 endif
73
6174 $(top_builddir)/src/libflickcurl.la:
6275 cd $(top_builddir)/src && $(MAKE) libflickcurl.la
5151 build_triplet = @build@
5252 host_triplet = @host@
5353 bin_PROGRAMS = flickcurl$(EXEEXT) flickrdf$(EXEEXT)
54 EXTRA_PROGRAMS = codegen$(EXEEXT) list-methods$(EXEEXT)
54 EXTRA_PROGRAMS = codegen$(EXEEXT) list-methods$(EXEEXT) \
55 $(am__EXEEXT_1)
5556 @GETOPT_TRUE@am__append_1 = getopt.c flickcurl_getopt.h
5657 @MAINTAINER_MODE_TRUE@am__append_2 = -DFLICKCURL_MAINTAINER
5758 @GETOPT_TRUE@am__append_3 = getopt.c flickcurl_getopt.h
5859 @RAPTOR_TRUE@am__append_4 = @RAPTOR_CFLAGS@
5960 @RAPTOR_TRUE@am__append_5 = @RAPTOR_LIBS@
60 @RAPTOR_FALSE@am__append_6 = raptor_fake.c
61 @RAPTOR_FALSE@am__append_6 = raptor_fake.c raptor_fake.h
6162 @GETOPT_TRUE@am__append_7 = getopt.c flickcurl_getopt.h
6263 @GETOPT_TRUE@am__append_8 = getopt.c flickcurl_getopt.h
64 @FLICKCURL_OAUTH_TRUE@am__append_9 = oauth-test
65 @FLICKCURL_OAUTH_TRUE@@GETOPT_TRUE@am__append_10 = getopt.c flickcurl_getopt.h
6366 subdir = utils
6467 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
6568 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
7578 CONFIG_HEADER = $(top_builddir)/src/config.h
7679 CONFIG_CLEAN_FILES =
7780 CONFIG_CLEAN_VPATH_FILES =
81 @FLICKCURL_OAUTH_TRUE@am__EXEEXT_1 = oauth-test$(EXEEXT)
7882 am__installdirs = "$(DESTDIR)$(bindir)"
7983 PROGRAMS = $(bin_PROGRAMS)
8084 am__codegen_SOURCES_DIST = codegen.c getopt.c flickcurl_getopt.h
9498 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(flickcurl_CFLAGS) \
9599 $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
96100 am__flickrdf_SOURCES_DIST = flickrdf.c getopt.c flickcurl_getopt.h \
97 raptor_fake.c
101 raptor_fake.c raptor_fake.h
98102 @GETOPT_TRUE@am__objects_3 = flickrdf-getopt.$(OBJEXT)
99103 @RAPTOR_FALSE@am__objects_4 = flickrdf-raptor_fake.$(OBJEXT)
100104 am_flickrdf_OBJECTS = flickrdf-flickrdf.$(OBJEXT) $(am__objects_3) \
111115 am_list_methods_OBJECTS = list-methods.$(OBJEXT) $(am__objects_1)
112116 list_methods_OBJECTS = $(am_list_methods_OBJECTS)
113117 list_methods_DEPENDENCIES = $(top_builddir)/src/libflickcurl.la
118 am__oauth_test_SOURCES_DIST = oauth-test.c getopt.c flickcurl_getopt.h
119 @FLICKCURL_OAUTH_TRUE@@GETOPT_TRUE@am__objects_5 = getopt.$(OBJEXT)
120 @FLICKCURL_OAUTH_TRUE@am_oauth_test_OBJECTS = oauth-test.$(OBJEXT) \
121 @FLICKCURL_OAUTH_TRUE@ $(am__objects_5)
122 oauth_test_OBJECTS = $(am_oauth_test_OBJECTS)
123 @FLICKCURL_OAUTH_TRUE@oauth_test_DEPENDENCIES = \
124 @FLICKCURL_OAUTH_TRUE@ $(top_builddir)/src/libflickcurl.la
114125 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src
115126 depcomp = $(SHELL) $(top_srcdir)/build/depcomp
116127 am__depfiles_maybe = depfiles
138149 am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
139150 am__v_GEN_0 = @echo " GEN " $@;
140151 SOURCES = $(codegen_SOURCES) $(flickcurl_SOURCES) $(flickrdf_SOURCES) \
141 $(list_methods_SOURCES)
152 $(list_methods_SOURCES) $(oauth_test_SOURCES)
142153 DIST_SOURCES = $(am__codegen_SOURCES_DIST) \
143154 $(am__flickcurl_SOURCES_DIST) $(am__flickrdf_SOURCES_DIST) \
144 $(am__list_methods_SOURCES_DIST)
155 $(am__list_methods_SOURCES_DIST) \
156 $(am__oauth_test_SOURCES_DIST)
145157 ETAGS = etags
146158 CTAGS = ctags
147159 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
161173 CYGPATH_W = @CYGPATH_W@
162174 DEFS = @DEFS@
163175 DEPDIR = @DEPDIR@
176 DLLTOOL = @DLLTOOL@
164177 DSYMUTIL = @DSYMUTIL@
165178 DUMPBIN = @DUMPBIN@
166179 ECHO = @ECHO@
173186 FLICKCURL_VERSION_DECIMAL = @FLICKCURL_VERSION_DECIMAL@
174187 GREP = @GREP@
175188 GTKDOC_CHECK = @GTKDOC_CHECK@
189 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
190 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
176191 GTKDOC_MKPDF = @GTKDOC_MKPDF@
177192 GTKDOC_REBASE = @GTKDOC_REBASE@
178193 HTML_DIR = @HTML_DIR@
194209 LTLIBOBJS = @LTLIBOBJS@
195210 MAINT = @MAINT@
196211 MAKEINFO = @MAKEINFO@
212 MANIFEST_TOOL = @MANIFEST_TOOL@
197213 MKDIR_P = @MKDIR_P@
198214 NM = @NM@
199215 NMEDIT = @NMEDIT@
227243 abs_srcdir = @abs_srcdir@
228244 abs_top_builddir = @abs_top_builddir@
229245 abs_top_srcdir = @abs_top_srcdir@
246 ac_ct_AR = @ac_ct_AR@
230247 ac_ct_CC = @ac_ct_CC@
231248 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
232249 am__include = @am__include@
259276 libexecdir = @libexecdir@
260277 localedir = @localedir@
261278 localstatedir = @localstatedir@
262 lt_ECHO = @lt_ECHO@
263279 mandir = @mandir@
264280 mkdir_p = @mkdir_p@
265281 oldincludedir = @oldincludedir@
276292 top_builddir = @top_builddir@
277293 top_srcdir = @top_srcdir@
278294 CLEANFILES = $(EXTRA_PROGRAMS)
279 AM_CPPFLAGS = -I$(top_srcdir)/src
295 AM_CPPFLAGS = -I$(top_srcdir)/src -DMTWIST_CONFIG -I$(top_srcdir)/libmtwist
280296 flickcurl_SOURCES = flickcurl.c $(am__append_1)
281297 flickcurl_CFLAGS = $(am__append_2)
282298 flickcurl_LDADD = $(top_builddir)/src/libflickcurl.la
287303 codegen_LDADD = $(top_builddir)/src/libflickcurl.la
288304 list_methods_SOURCES = list-methods.c $(am__append_8)
289305 list_methods_LDADD = $(top_builddir)/src/libflickcurl.la
306 @FLICKCURL_OAUTH_TRUE@oauth_test_SOURCES = oauth-test.c \
307 @FLICKCURL_OAUTH_TRUE@ $(am__append_10)
308 @FLICKCURL_OAUTH_TRUE@oauth_test_LDADD = $(top_builddir)/src/libflickcurl.la
290309 all: all-am
291310
292311 .SUFFIXES:
392411 list-methods$(EXEEXT): $(list_methods_OBJECTS) $(list_methods_DEPENDENCIES)
393412 @rm -f list-methods$(EXEEXT)
394413 $(AM_V_CCLD)$(LINK) $(list_methods_OBJECTS) $(list_methods_LDADD) $(LIBS)
414 oauth-test$(EXEEXT): $(oauth_test_OBJECTS) $(oauth_test_DEPENDENCIES)
415 @rm -f oauth-test$(EXEEXT)
416 $(AM_V_CCLD)$(LINK) $(oauth_test_OBJECTS) $(oauth_test_LDADD) $(LIBS)
395417
396418 mostlyclean-compile:
397419 -rm -f *.$(OBJEXT)
407429 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flickrdf-raptor_fake.Po@am__quote@
408430 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@
409431 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list-methods.Po@am__quote@
432 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oauth-test.Po@am__quote@
410433
411434 .c.o:
412435 @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
7777 }
7878
7979
80 static void
81 my_set_config_var_handler(void* userdata, const char* key, const char* value)
82 {
83 flickcurl *fc = (flickcurl *)userdata;
84
85 if(!strcmp(key, "api_key"))
86 flickcurl_set_api_key(fc, value);
87 else if(!strcmp(key, "secret"))
88 flickcurl_set_shared_secret(fc, value);
89 else if(!strcmp(key, "auth_token"))
90 flickcurl_set_auth_token(fc, value);
91 }
92
93
9480 #ifdef HAVE_GETOPT_LONG
9581 #define HELP_TEXT(short, long, description) " -" short ", --" long " " description
9682 #define HELP_TEXT_LONG(long, description) " --" long " " description
248234 flickcurl_set_error_handler(fc, my_message_handler, NULL);
249235
250236 if(read_auth && !access((const char*)config_path, R_OK)) {
251 if(read_ini_config(config_path, config_section, fc,
252 my_set_config_var_handler)) {
253 fprintf(stderr, "%s: Failed to read config filename %s: %s\n",
254 program, config_path, strerror(errno));
237 if(flickcurl_config_read_ini(fc, config_path, config_section, fc,
238 flickcurl_config_var_handler)) {
255239 rc = 1;
256240 goto tidy;
257241 }
107107 }
108108
109109
110 static void
111 my_set_config_var_handler(void* userdata, const char* key, const char* value)
112 {
113 flickcurl *fc = (flickcurl *)userdata;
114
115 if(!strcmp(key, "api_key"))
116 flickcurl_set_api_key(fc, value);
117 else if(!strcmp(key, "secret"))
118 flickcurl_set_shared_secret(fc, value);
119 else if(!strcmp(key, "auth_token"))
120 flickcurl_set_auth_token(fc, value);
121 }
122
123
124110 #ifdef HAVE_GETOPT_LONG
125111 #define HELP_TEXT(short, long, description) " -" short ", --" long " " description
126112 #define HELP_TEXT_LONG(long, description) " --" long " " description
183169
184170 username = flickcurl_test_login(fc);
185171 if(username) {
186 fprintf(stderr, "%s: Returned username '%s'\n", program, username);
172 fprintf(stdout, "%s: Returned username '%s'\n", program, username);
187173 free(username);
188174 }
189175
207193 nsid = flickcurl_people_findByEmail(fc, email);
208194
209195 if(nsid)
210 fprintf(stderr, "%s: NSID %s for user email %s\n",
196 fprintf(stdout, "%s: NSID %s for user email %s\n",
211197 program, nsid, email);
212198
213199 return (nsid == NULL);
223209 nsid = flickcurl_people_findByUsername(fc, user_name);
224210
225211 if(nsid)
226 fprintf(stderr, "%s: NSID %s for username %s\n",
212 fprintf(stdout, "%s: NSID %s for username %s\n",
227213 program, nsid, user_name);
228214
229215 return (nsid == NULL);
235221 {
236222 int i;
237223
238 fprintf(stderr, "Found person with ID %s\n", person->nsid);
224 fprintf(stdout, "Found person with ID %s\n", person->nsid);
239225
240226 for(i = (int)PERSON_FIELD_FIRST; i <= (int)PERSON_FIELD_LAST; i++) {
241227 flickcurl_person_field_type field = (flickcurl_person_field_type)i;
244230 if(datatype == VALUE_TYPE_NONE)
245231 continue;
246232
247 fprintf(stderr, "field %s (%d) with %s value: '%s' / %d\n",
233 fprintf(stdout, "field %s (%d) with %s value: '%s' / %d\n",
248234 flickcurl_get_person_field_label(field), field,
249235 flickcurl_get_field_value_type_label(datatype),
250236 person->fields[field].string, person->fields[field].integer);
279265 return;
280266
281267 if(label)
282 fprintf(stderr, "%s: %s %s tags\n", program, label,
268 fprintf(stdout, "%s: %s %s tags\n", program, label,
283269 (value ? value : "(none)"));
284270 else
285 fprintf(stderr, "tags:\n");
271 fprintf(stdout, "tags:\n");
286272
287273 for(i = 0; tags[i]; i++) {
288274 flickcurl_tag* tag = tags[i];
289 fprintf(stderr,
275 fprintf(stdout,
290276 "%d) %s tag: id %s author ID %s name %s raw '%s' cooked '%s' count %d\n",
291277 i, (tag->machine_tag ? "machine" : "regular"),
292278 tag->id, tag->author,
303289 accuracy_label = flickcurl_get_location_accuracy_label(location->accuracy);
304290
305291 if(accuracy_label)
306 fprintf(stderr, "latitude %f longitude %f accuracy %s(%d)\n",
292 fprintf(stdout, "latitude %f longitude %f accuracy %s(%d)\n",
307293 location->latitude, location->longitude,
308294 accuracy_label, location->accuracy);
309295 else
310 fprintf(stderr, "latitude %f longitude %f accuracy unknown\n",
296 fprintf(stdout, "latitude %f longitude %f accuracy unknown\n",
311297 location->latitude, location->longitude);
312298
313299 return 0;
317303 static void
318304 command_print_shape(flickcurl_shapedata* shape)
319305 {
320 fprintf(stderr,
306 fprintf(stdout,
321307 "created %d alpha %2.2f #points %d #edges %d\n"
322308 " is donuthole: %d has donuthole: %d\n",
323309 shape->created, shape->alpha, shape->points, shape->edges,
327313 int s;
328314 #define MAX_XML 70
329315 s = (shape->data_length > MAX_XML ? MAX_XML : shape->data_length);
330 fprintf(stderr, " Shapedata (%d bytes):\n ",
316 fprintf(stdout, " Shapedata (%d bytes):\n ",
331317 (int)shape->data_length);
332 fwrite(shape->data, 1, s, stderr);
333 fputs("...\n", stderr);
318 fwrite(shape->data, 1, s, stdout);
319 fputs("...\n", stdout);
334320 }
335321
336322 if(shape->file_urls_count > 0) {
337323 int j;
338 fprintf(stderr, " Shapefile URLs: %d\n", shape->file_urls_count);
324 fprintf(stdout, " Shapefile URLs: %d\n", shape->file_urls_count);
339325 for(j = 0; j < shape->file_urls_count; j++) {
340 fprintf(stderr," URL %d: %s\n", j, shape->file_urls[j]);
326 fprintf(stdout," URL %d: %s\n", j, shape->file_urls[j]);
341327 }
342328 }
343329 }
350336 {
351337 int i;
352338 if(label)
353 fprintf(stderr, "%s: %s %s places\n", program, label,
339 fprintf(stdout, "%s: %s %s places\n", program, label,
354340 (value ? value : "(none)"));
355341
356342 if(print_locality && place->type != FLICKCURL_PLACE_LOCATION)
357 fprintf(stderr, " Type %s (%d)\n",
343 fprintf(stdout, " Type %s (%d)\n",
358344 flickcurl_get_place_type_label(place->type), (int)place->type);
359345
360346 if(place->location.accuracy != 0) {
361 fputs(" Location: ", stderr);
347 fputs(" Location: ", stdout);
362348 command_print_location(&place->location);
363349 }
364350
365351 if(place->timezone)
366 fprintf(stderr, " Timezone: %s\n", place->timezone);
352 fprintf(stdout, " Timezone: %s\n", place->timezone);
367353
368354 if(place->shape)
369355 command_print_shape(place->shape);
370356
371357 if(place->count >0)
372 fprintf(stderr, " Photos at Place: %d\n", place->count);
358 fprintf(stdout, " Photos at Place: %d\n", place->count);
373359
374360 for(i = (int)0; i <= (int)FLICKCURL_PLACE_LAST; i++) {
375361 char* name = place->names[i];
380366 if(!name && !id && !url && !woe_id)
381367 continue;
382368
383 fprintf(stderr, " %d) place %s:", i,
369 fprintf(stdout, " %d) place %s:", i,
384370 flickcurl_get_place_type_label((flickcurl_place_type)i));
385371 if(name)
386 fprintf(stderr," name '%s'", name);
372 fprintf(stdout," name '%s'", name);
387373 if(id)
388 fprintf(stderr," id %s", id);
374 fprintf(stdout," id %s", id);
389375 if(woe_id)
390 fprintf(stderr," woeid %s", woe_id);
376 fprintf(stdout," woeid %s", woe_id);
391377 if(url)
392 fprintf(stderr," url '%s'", url);
393 fputc('\n', stderr);
378 fprintf(stdout," url '%s'", url);
379 fputc('\n', stdout);
394380 }
395381
396382 }
399385 static void
400386 command_print_video(flickcurl_video* v)
401387 {
402 fprintf(stderr,
388 fprintf(stdout,
403389 "video: ready %d failed %d pending %d duration %d width %d height %d\n",
404390 v->ready, v->failed, v->pending, v->duration,
405391 v->width, v->height);
416402 return;
417403
418404 if(label)
419 fprintf(stderr, "%s: %s %s notes\n", program, label,
405 fprintf(stdout, "%s: %s %s notes\n", program, label,
420406 (value ? value : "(none)"));
421407 else
422 fprintf(stderr, "notes:\n");
408 fprintf(stdout, "notes:\n");
423409
424410 for(i = 0; notes[i]; i++) {
425411 flickcurl_note* note = notes[i];
426 fprintf(stderr,
412 fprintf(stdout,
427413 "%d) id %d note: author ID %s name %s x %d y %d w %d h %d text '%s'\n",
428414 i, note->id,
429415 note->author, (note->authorname ? note->authorname : "(Unknown)"),
438424 {
439425 int i;
440426
441 fprintf(stderr, "%s with URI %s ID %s and %d tags\n",
427 fprintf(stdout, "%s with URI %s ID %s and %d tags\n",
442428 photo->media_type,
443429 (photo->uri ? photo->uri : "(Unknown)"),
444430 photo->id, photo->tags_count);
450436 if(datatype == VALUE_TYPE_NONE)
451437 continue;
452438
453 fprintf(stderr, " field %s (%d) with %s value: '%s' / %d\n",
439 fprintf(stdout, " field %s (%d) with %s value: '%s' / %d\n",
454440 flickcurl_get_photo_field_label(field), field,
455441 flickcurl_get_field_value_type_label(datatype),
456442 photo->fields[field].string, photo->fields[field].integer);
477463 photo = flickcurl_photos_getInfo(fc, argv[1]);
478464
479465 if(photo) {
480 fprintf(stderr, "%s: ", program);
466 fprintf(stdout, "%s: ", program);
481467 command_print_photo(photo);
482468 flickcurl_free_photo(photo);
483469 }
496482 if(licenses) {
497483
498484 if(verbose)
499 fprintf(stderr, "%s: Found licenses\n", program);
485 fprintf(stdout, "%s: Found licenses\n", program);
500486
501487 for(i = 0; licenses[i]; i++) {
502488 flickcurl_license* license = licenses[i];
503 fprintf(stderr, "%d) license: id %d name '%s' url %s\n",
489 fprintf(stdout, "%d) license: id %d name '%s' url %s\n",
504490 i, license->id, license->name,
505491 license->url ? license->url : "(none)");
506492
520506 nsid = flickcurl_urls_lookupUser(fc, url);
521507
522508 if(nsid)
523 fprintf(stderr, "%s: NSID %s for user profile/photo URL %s\n",
509 fprintf(stdout, "%s: NSID %s for user profile/photo URL %s\n",
524510 program, nsid, url);
525511
526512 return (nsid != NULL);
557543 if(!contexts)
558544 return 1;
559545 if(verbose)
560 fprintf(stderr, "%s: Pool context of photo %s in pool %s:\n", program,
546 fprintf(stdout, "%s: Pool context of photo %s in pool %s:\n", program,
561547 argv[1], argv[2]);
562 command_contexts_print(stderr, contexts);
548 command_contexts_print(stdout, contexts);
563549
564550 flickcurl_free_contexts(contexts);
565551
575561 if(!contexts)
576562 return 1;
577563 if(verbose)
578 fprintf(stderr, "%s: Photos %s all contexts:\n", program, argv[1]);
579 command_contexts_print(stderr, contexts);
564 fprintf(stdout, "%s: Photos %s all contexts:\n", program, argv[1]);
565 command_contexts_print(stdout, contexts);
580566
581567 flickcurl_free_contexts(contexts);
582568
592578 if(!contexts)
593579 return 1;
594580 if(verbose)
595 fprintf(stderr, "%s: Photos %s context:\n", program, argv[1]);
596 command_contexts_print(stderr, contexts);
581 fprintf(stdout, "%s: Photos %s context:\n", program, argv[1]);
582 command_contexts_print(stdout, contexts);
597583
598584 flickcurl_free_contexts(contexts);
599585 return 0;
619605 int i;
620606
621607 for(i = 0; counts[i]; i++) {
622 fprintf(stderr, "%s: photocount %i: count %d fromdate %d todate %d\n",
608 fprintf(stdout, "%s: photocount %i: count %d fromdate %d todate %d\n",
623609 program, i, counts[i][0], counts[i][1], counts[i][2]);
624610 }
625611 free(counts);
642628 if(!contexts)
643629 return 1;
644630 if(verbose)
645 fprintf(stderr, "%s: Photo %s in photoset %s context:\n", program,
631 fprintf(stdout, "%s: Photo %s in photoset %s context:\n", program,
646632 argv[1], argv[2]);
647 command_contexts_print(stderr, contexts);
633 command_contexts_print(stdout, contexts);
648634
649635 flickcurl_free_contexts(contexts);
650636 return 0;
659645 frob = flickcurl_auth_getFrob(fc);
660646 if(!frob)
661647 return 1;
662 fprintf(stderr, "%s: Got frob: %s\n", program, frob);
648 fprintf(stdout, "%s: Got frob: %s\n", program, frob);
663649
664650 free(frob);
665651 return 0;
674660 perms = flickcurl_auth_checkToken(fc, argv[1]);
675661 if(!perms)
676662 return 1;
677 fprintf(stderr, "%s: Checked token %s and got perms: %s\n", program,
663 fprintf(stdout, "%s: Checked token %s and got perms: %s\n", program,
678664 argv[1], perms);
679665
680666 free(perms);
690676 perms = flickcurl_auth_getToken(fc, argv[1]);
691677 if(!perms)
692678 return 1;
693 fprintf(stderr, "%s: Got token %s perms: %s\n", program, argv[1], perms);
679 fprintf(stdout, "%s: Got token %s perms: %s\n", program, argv[1], perms);
694680
695681 free(perms);
696682 return 0;
705691 perms = flickcurl_auth_getFullToken(fc, argv[1]);
706692 if(!perms)
707693 return 1;
708 fprintf(stderr, "%s: Got full token %s perms: %s\n", program, argv[1], perms);
694 fprintf(stdout, "%s: Got full token %s perms: %s\n", program, argv[1], perms);
709695
710696 free(perms);
711697 return 0;
809795 nsid = flickcurl_urls_getGroup(fc, url);
810796
811797 if(nsid)
812 fprintf(stderr, "%s: NSID %s for group profile/photo URL %s\n",
798 fprintf(stdout, "%s: NSID %s for group profile/photo URL %s\n",
813799 program, nsid, url);
814800
815801 return (nsid == NULL);
825811 url = flickcurl_urls_getUserPhotos(fc, user);
826812
827813 if(url)
828 fprintf(stderr, "%s: photo URL %s for user %s\n",
814 fprintf(stdout, "%s: photo URL %s for user %s\n",
829815 program, url, user);
830816
831817 return (url == NULL);
841827 url = flickcurl_urls_getUserProfile(fc, user);
842828
843829 if(url)
844 fprintf(stderr, "%s: photo URL %s for user %s\n",
830 fprintf(stdout, "%s: photo URL %s for user %s\n",
845831 program, url, user);
846832
847833 return (url == NULL);
857843 nsid = flickcurl_urls_lookupGroup(fc, url);
858844
859845 if(nsid)
860 fprintf(stderr, "%s: NSID %s for group profile/photo URL %s\n",
846 fprintf(stdout, "%s: NSID %s for group profile/photo URL %s\n",
861847 program, nsid, url);
862848
863849 return (url == NULL);
934920 method = flickcurl_reflection_getMethodInfo(fc, argv[1]);
935921
936922 if(method) {
937 fprintf(stderr, "%s: Found method %s\n", program, method->name);
938 fprintf(stderr, " Needs Login? %s\n", (method->needslogin? "yes" : "no"));
939 fprintf(stderr, " Description: %s\n", method->description);
940 fprintf(stderr, " Response: '%s'\n", method->response);
941 fprintf(stderr, " Explanation of Response: %s\n",
923 fprintf(stdout, "%s: Found method %s\n", program, method->name);
924 fprintf(stdout, " Needs Login? %s\n", (method->needslogin? "yes" : "no"));
925 fprintf(stdout, " Description: %s\n", method->description);
926 fprintf(stdout, " Response: '%s'\n", method->response);
927 fprintf(stdout, " Explanation of Response: %s\n",
942928 method->explanation ? method->explanation : "(None)");
943929
944930 if(method->args_count) {
945931 int i;
946932
947 fprintf(stderr, "%s: %d argument%s:\n", program, method->args_count,
933 fprintf(stdout, "%s: %d argument%s:\n", program, method->args_count,
948934 ((method->args_count != 1) ? "s" : ""));
949935
950936 for(i = 0; method->args[i]; i++) {
951937 flickcurl_arg* arg = method->args[i];
952 fprintf(stderr, "%d) argument '%s' %s description: '%s'\n",
938 fprintf(stdout, "%d) argument '%s' %s description: '%s'\n",
953939 i, arg->name, (arg->optional? "" : "(required)"),
954940 arg->description);
955941 }
956942 } else
957 fprintf(stderr, "%s: No arguments\n", program);
943 fprintf(stdout, "%s: No arguments\n", program);
958944
959945
960946 flickcurl_free_method(method);
971957 methods = flickcurl_reflection_getMethods(fc);
972958 if(methods) {
973959 int i;
974 fprintf(stderr, "%s: Found methods:\n", program);
960 fprintf(stdout, "%s: Found methods:\n", program);
975961 for(i = 0; methods[i]; i++)
976962 printf("%d) %s\n", i, methods[i]);
977963
992978
993979 id = flickcurl_photos_comments_addComment(fc, photo_id, comment_text);
994980 if(id) {
995 fprintf(stderr,
981 fprintf(stdout,
996982 "%s: Added comment '%s' to photo %s giving comment ID %s\n",
997983 program, photo_id, comment_text, id);
998984 }
10251011 {
10261012 int i;
10271013 if(label)
1028 fprintf(stderr, "%s: %s %s comments\n", program, label,
1014 fprintf(stdout, "%s: %s %s comments\n", program, label,
10291015 (value ? value : "(none)"));
10301016 for(i = 0; comments[i]; i++) {
10311017 flickcurl_comment* comment_object = comments[i];
1032 fprintf(stderr,
1018 fprintf(stdout,
10331019 "%d) ID %s author %s authorname %s datecreate %d permalink %s text '%s'\n",
10341020 i, comment_object->id, comment_object->author,
10351021 comment_object->authorname, comment_object->datecreate,
10641050
10651051 id = flickcurl_photosets_comments_addComment(fc, photoset_id, comment_text);
10661052 if(id) {
1067 fprintf(stderr,
1053 fprintf(stdout,
10681054 "%s: Added comment '%s' to photoset %s giving comment ID %s\n",
10691055 program, photoset_id, comment_text, id);
10701056 free(id);
11611147 fprintf(handle, " Content type: %s (%d)\n",
11621148 flickcurl_get_content_type_label(params->content_type),
11631149 params->content_type);
1150 fprintf(handle, " Hidden: %s (%d)\n",
1151 flickcurl_get_hidden_label(params->hidden),
1152 params->hidden);
11641153 }
11651154
11661155
11751164 memset(&params, '\0', sizeof(flickcurl_upload_params));
11761165 params.safety_level = 1; /* default safe */
11771166 params.content_type = 1; /* default photo */
1167 params.hidden = 1; /* default public */
11781168
11791169
11801170 argv++; argc--;
12031193 argv++; argc--;
12041194 } else if(!strcmp(field, "content_type")) {
12051195 params.content_type = flickcurl_get_content_type_from_string(argv[0]);
1196 argv++; argc--;
1197 } else if(!strcmp(field, "hidden")) {
1198 params.hidden = flickcurl_get_hidden_from_string(argv[0]);
12061199 argv++; argc--;
12071200 } else if(!strcmp(field, "friend")) {
12081201 params.is_friend = 1;
12421235 }
12431236
12441237 if(verbose == 1)
1245 fprintf(stderr, "%s: Uploading file %s\n", program, params.photo_file);
1238 fprintf(stdout, "%s: Uploading file %s\n", program, params.photo_file);
12461239 else if (verbose > 1)
1247 print_upload_params(stderr, &params, "Photo upload");
1240 print_upload_params(stdout, &params, "Photo upload");
12481241
12491242 status = flickcurl_photos_upload_params(fc, &params);
12501243 if(status) {
1251 print_upload_status(stderr, status, "Photo upload");
1244 print_upload_status(stdout, status, "Photo upload");
12521245
12531246 flickcurl_free_upload_status(status);
12541247 }
12811274
12821275 status = flickcurl_photos_replace(fc, file, photo_id, async);
12831276 if(status) {
1284 print_upload_status(stderr, status, "Photo replace");
1277 print_upload_status(stdout, status, "Photo replace");
12851278
12861279 flickcurl_free_upload_status(status);
12871280 }
13071300
13081301 content_type_str = flickcurl_get_content_type_label(content_type);
13091302 if(verbose)
1310 fprintf(stderr, "%s: Setting photo %s to content type %d (%s)\n",
1303 fprintf(stdout, "%s: Setting photo %s to content type %d (%s)\n",
13111304 program, photo_id, content_type, content_type_str);
13121305
13131306 return flickcurl_photos_setContentType(fc, photo_id, content_type);
14021395
14031396 safety_level_str = flickcurl_get_safety_level_label(safety_level);
14041397 if(verbose)
1405 fprintf(stderr, "%s: Setting photo %s safety level to %d (%s), hidden %d\n",
1398 fprintf(stdout, "%s: Setting photo %s safety level to %d (%s), hidden %d\n",
14061399 program, photo_id, safety_level, safety_level_str, hidden);
14071400
14081401 return flickcurl_photos_setSafetyLevel(fc, photo_id, safety_level, hidden);
14141407 {
14151408 static const char* perms_labels[4] = {"nobody", "friends and family", "contacts", "everybody" };
14161409
1417 fprintf(stderr,
1410 fprintf(stdout,
14181411 "view perms: public: %s contact: %s friend: %s family: %s\n",
14191412 yesno(perms->is_public), yesno(perms->is_contact),
14201413 yesno(perms->is_friend), yesno(perms->is_family));
14211414
14221415 #define PERM_LABEL(x) (((x) >= 0 && (x) <= 3) ? perms_labels[(x)] : "?")
14231416 if(show_comment_metadata)
1424 fprintf(stderr,
1417 fprintf(stdout,
14251418 "add comment: %s\nadd metadata: %s\n",
14261419 PERM_LABEL(perms->perm_comment), PERM_LABEL(perms->perm_addmeta));
14271420 }
14371430 if(!perms)
14381431 return 1;
14391432
1440 fprintf(stderr, "%s: Photo ID %s permissions\n", program, photo_id);
1433 fprintf(stdout, "%s: Photo ID %s permissions\n", program, photo_id);
14411434 command_print_perms(perms, 1);
14421435
14431436 flickcurl_free_perms(perms);
14531446 int i;
14541447
14551448 if(photos_list->photos) {
1456 fprintf(stderr,
1449 fprintf(stdout,
14571450 "%s: %s returned %d photos out of %d, page %d per-page %d\n",
14581451 program, label,
14591452 photos_list->photos_count, photos_list->total_count,
14601453 photos_list->page, photos_list->per_page);
14611454 for(i = 0; photos_list->photos[i]; i++) {
1462 fprintf(stderr, "%s: %s photo %d\n", program, label, i);
1455 fprintf(stdout, "%s: %s photo %d\n", program, label, i);
14631456 command_print_photo(photos_list->photos[i]);
14641457 }
14651458 } else if(photos_list->content) {
14661459 size_t write_count;
14671460
14681461 if(verbose)
1469 fprintf(stderr, "%s: %s returned %d bytes of %s content\n",
1462 fprintf(stdout, "%s: %s returned %d bytes of %s content\n",
14701463 program, label,
14711464 (int)photos_list->content_length, photos_list->format);
14721465 write_count = fwrite(photos_list->content, 1, photos_list->content_length, fh);
17341727 if(!location)
17351728 return 1;
17361729
1737 fprintf(stderr, "%s: Photo ID %s location\n ", program, photo_id);
1730 fprintf(stdout, "%s: Photo ID %s location\n ", program, photo_id);
17381731 command_print_location(location);
17391732
17401733 flickcurl_free_location(location);
17521745 if(!perms)
17531746 return 1;
17541747
1755 fprintf(stderr, "%s: Photo ID %s geo permissions:\n", program, photo_id);
1748 fprintf(stdout, "%s: Photo ID %s geo permissions:\n", program, photo_id);
17561749 command_print_perms(perms, 0);
17571750
17581751 flickcurl_free_perms(perms);
18221815 note_x, note_y, note_w, note_h, note_text);
18231816 if(id) {
18241817 if(verbose)
1825 fprintf(stderr,
1818 fprintf(stdout,
18261819 "%s: Added note '%s' (x:%d y:%d w:%d h:%d) to photo ID %s giving note ID %s\n",
18271820 program, note_text, note_x, note_y, note_w, note_h, photo_id, id);
18281821 free(id);
18911884 return 1;
18921885
18931886 if(verbose)
1894 fprintf(stderr, "%s: User %s photos (per_page %d page %d):\n",
1887 fprintf(stdout, "%s: User %s photos (per_page %d page %d):\n",
18951888 program, user_id, list_params.per_page, list_params.page);
18961889
18971890 rc = command_print_photos_list(fc, photos_list, output_fh, "Photo");
19141907 static void
19151908 command_print_group(flickcurl_group* g)
19161909 {
1917 fprintf(stderr,
1910 fprintf(stdout,
19181911 "group: nsid %s name '%s' description '%s' lang '%s'\n"
19191912 " admin %d pool moderated %d 18+ %d privacy %d\n"
19201913 " photos %d iconserver %d members %d\n"
19461939 int i;
19471940
19481941 if(verbose)
1949 fprintf(stderr, "%s: Groups (page %d, per page %d)\n", program,
1942 fprintf(stdout, "%s: Groups (page %d, per page %d)\n", program,
19501943 page, per_page);
19511944 for(i = 0; groups[i]; i++)
19521945 command_print_group(groups[i]);
19841977 return 1;
19851978
19861979 if(verbose)
1987 fprintf(stderr, "%s: Group %s photos (per_page %d page %d):\n",
1980 fprintf(stdout, "%s: Group %s photos (per_page %d page %d):\n",
19881981 program, group_id, list_params.per_page, list_params.page);
19891982
19901983 rc = command_print_photos_list(fc, photos_list, output_fh, "Photo");
20402033 static void
20412034 command_print_exif(flickcurl_exif* e)
20422035 {
2043 fprintf(stderr, "tagspace %s (%d) tag %d label '%s' raw '%s' clean '%s'\n",
2036 fprintf(stdout, "tagspace %s (%d) tag %d label '%s' raw '%s' clean '%s'\n",
20442037 e->tagspace, e->tagspaceid, e->tag, e->label, e->raw, e->clean);
20452038 }
20462039
21532146 return 1;
21542147
21552148 if(verbose)
2156 fprintf(stderr, "%s: Sizes for photo/video %s\n", program, photo_id);
2149 fprintf(stdout, "%s: Sizes for photo/video %s\n", program, photo_id);
21572150 for(i = 0; sizes[i]; i++) {
2158 fprintf(stderr,
2151 fprintf(stdout,
21592152 "%d: type '%s' label '%s' width %d height %d\n source %s\n url %s\n",
21602153 i, sizes[i]->media,
21612154 sizes[i]->label, sizes[i]->width, sizes[i]->height,
22582251 static
22592252 void command_print_photoset(flickcurl_photoset* photoset)
22602253 {
2261 fprintf(stderr,
2254 fprintf(stdout,
22622255 "%s: Found photoset with ID %s primary photo: '%s' secret: %s server: %d farm: %d photos count: %d title: '%s' description: '%s'\n",
22632256 program,
22642257 photoset->id, photoset->primary, photoset->secret,
22972290 return 1;
22982291
22992292 for(i = 0; photoset_list[i]; i++) {
2300 fprintf(stderr, "%s: Photoset %d\n", program, i);
2293 fprintf(stdout, "%s: Photoset %d\n", program, i);
23012294 command_print_photoset(photoset_list[i]);
23022295 }
23032296
23412334 return 1;
23422335
23432336 if(verbose)
2344 fprintf(stderr, "%s: Photoset %s photos (per_page %d page %d):\n",
2337 fprintf(stdout, "%s: Photoset %s photos (per_page %d page %d):\n",
23452338 program, photoset_id, list_params.per_page, list_params.page);
23462339
23472340 rc = command_print_photos_list(fc, photos_list, output_fh, "Photo");
23712364 &url);
23722365 if(!id)
23732366 return 1;
2374 fprintf(stderr, "%s: Photoset %s created with URL %s\n", program, id, url);
2367 fprintf(stdout, "%s: Photoset %s created with URL %s\n", program, id, url);
23752368 free(url);
23762369 free(id);
23772370 return 0;
24382431 int i;
24392432
24402433 for(i = 0; tickets[i]; i++) {
2441 fprintf(stderr,
2434 fprintf(stdout,
24422435 "%s: %d) ticket ID %d photoID %d complete %d invalid %d\n",
24432436 program, i, tickets[i]->id, tickets[i]->photoid,
24442437 tickets[i]->complete, tickets[i]->invalid);
24562449 static void
24572450 command_print_category(flickcurl_category* c)
24582451 {
2459 fprintf(stderr, "category: id %s name '%s' path '%s' count %d\n",
2452 fprintf(stdout, "category: id %s name '%s' path '%s' count %d\n",
24602453 c->id, c->name, c->path, c->count);
24612454 if(c->categories) {
24622455 int i;
24632456 for(i = 0; c->categories[i]; i++) {
2464 fprintf(stderr, "%s: Category %d\n", program, i);
2457 fprintf(stdout, "%s: Category %d\n", program, i);
24652458 command_print_category(c->categories[i]);
24662459 }
24672460 }
24682461 if(c->groups) {
24692462 int i;
24702463 for(i = 0; c->groups[i]; i++) {
2471 fprintf(stderr, "%s: Group %d\n", program, i);
2464 fprintf(stdout, "%s: Group %d\n", program, i);
24722465 command_print_group(c->groups[i]);
24732466 }
24742467 }
25312524 return 1;
25322525
25332526 for(i = 0; groups[i]; i++) {
2534 fprintf(stderr, "%s: Group %d\n", program, i);
2527 fprintf(stdout, "%s: Group %d\n", program, i);
25352528 command_print_group(groups[i]);
25362529 }
25372530
25532546 return 1;
25542547
25552548 for(i = 0; groups[i]; i++) {
2556 fprintf(stderr, "%s: Group %d\n", program, i);
2549 fprintf(stdout, "%s: Group %d\n", program, i);
25572550 command_print_group(groups[i]);
25582551 }
25592552
25722565 if(!u)
25732566 return 1;
25742567
2575 fprintf(stderr, "user upload status for %s:\n"
2568 fprintf(stdout, "user upload status for %s:\n"
25762569 " bandwidth max %d/%d K used %d/%d K remaining %d/%d K\n"
25772570 " max filesize %d/%d K sets created %d remaining %s\n",
25782571 u->username,
27212714 } else {
27222715 int rc;
27232716 if(verbose)
2724 fprintf(stderr,
2717 fprintf(stdout,
27252718 "%s: User %s has %d favorite photos (per_page %d page %d):\n",
27262719 program, user_id, photos_list->photos_count,
27272720 list_params.per_page, list_params.page);
27622755 return 1;
27632756
27642757 if(verbose)
2765 fprintf(stderr,
2758 fprintf(stdout,
27662759 "%s: User %s public favorite photos (per_page %d page %d):\n",
27672760 program, user_id, list_params.per_page, list_params.page);
27682761 rc = command_print_photos_list(fc, photos_list, output_fh, "Photo");
27912784 int i;
27922785
27932786 for(i = 0; blogs[i]; i++) {
2794 fprintf(stderr,
2787 fprintf(stdout,
27952788 "Blog %d) id %s name '%s' needs password '%d' url '%s'\n",
27962789 i,
27972790 blogs[i]->id, blogs[i]->name, blogs[i]->needs_password,
28212814 static void
28222815 command_print_activity(flickcurl_activity* a)
28232816 {
2824 fprintf(stderr,
2817 fprintf(stdout,
28252818 " type %s id %s owner %s name '%s' primary %s\n"
28262819 " secret %s server %d farm %d\n"
28272820 " comments %d old/new %d/%d notes old/new %d/%d\n"
28412834 for(i = 0; a->events[i]; i++) {
28422835 flickcurl_activity_event* ae = a->events[i];
28432836
2844 fprintf(stderr,
2837 fprintf(stdout,
28452838 " activity event %i) type %s user %s username %s\n datetime %d\n value '%s'\n",
28462839 i, ae->type, ae->user, ae->username,
28472840 ae->date_added,
28712864 return 1;
28722865
28732866 if(verbose)
2874 fprintf(stderr,
2867 fprintf(stdout,
28752868 "%s: Comments on the caller's photos (per_page %d page %d):\n",
28762869 program, per_page, page);
28772870 for(i = 0; activities[i]; i++) {
2878 fprintf(stderr, "%s: Activity %d\n", program, i);
2871 fprintf(stdout, "%s: Activity %d\n", program, i);
28792872 command_print_activity(activities[i]);
28802873 }
28812874
29062899 return 1;
29072900
29082901 if(verbose)
2909 fprintf(stderr,
2902 fprintf(stdout,
29102903 "%s: Recent activity on the caller's photos (timeframe %s per_page %d page %d):\n",
29112904 program, timeframe, per_page, page);
29122905 for(i = 0; activities[i]; i++) {
2913 fprintf(stderr, "%s: Activity %d\n", program, i);
2906 fprintf(stdout, "%s: Activity %d\n", program, i);
29142907 command_print_activity(activities[i]);
29152908 }
29162909
29302923 if(places) {
29312924 int i;
29322925 for(i = 0; places[i]; i++) {
2933 fprintf(stderr, "Place Result #%d\n", i);
2926 fprintf(stdout, "Place Result #%d\n", i);
29342927 command_print_place(places[i], NULL, NULL, 1);
29352928 }
29362929 flickcurl_free_places(places);
29652958
29662959 content_type = flickcurl_prefs_getContentType(fc);
29672960 if(content_type) {
2968 fprintf(stderr, "%s: Content type preference is %d\n", program,
2961 fprintf(stdout, "%s: Content type preference is %d\n", program,
29692962 content_type);
29702963 }
29712964
29802973
29812974 hidden = flickcurl_prefs_getHidden(fc);
29822975 if(hidden >= 0) {
2983 fprintf(stderr, "%s: Hidden preference is %d\n", program, hidden);
2976 fprintf(stdout, "%s: Hidden preference is %d\n", program, hidden);
29842977 }
29852978
29862979 return (hidden < 0);
29942987
29952988 privacy = flickcurl_prefs_getPrivacy(fc);
29962989 if(privacy >= 0) {
2997 fprintf(stderr, "%s: Privacy preference is %d\n", program, privacy);
2990 fprintf(stdout, "%s: Privacy preference is %d\n", program, privacy);
29982991 }
29992992
30002993 return (privacy < 0);
30083001
30093002 safety_level = flickcurl_prefs_getSafetyLevel(fc);
30103003 if(safety_level >= 0) {
3011 fprintf(stderr, "%s: Safety level preference is %d\n", program,
3004 fprintf(stdout, "%s: Safety level preference is %d\n", program,
30123005 safety_level);
30133006 }
30143007
30233016
30243017 geo_perms = flickcurl_prefs_getGeoPerms(fc);
30253018 if(geo_perms >= 0) {
3026 fprintf(stderr, "%s: Geographic information preference is %d\n", program, geo_perms);
3019 fprintf(stdout, "%s: Geographic information preference is %d\n", program, geo_perms);
30273020 }
30283021
30293022 return (geo_perms < 0);
30423035 if(!clusters)
30433036 return 1;
30443037
3045 fprintf(stderr, "%s: Tag %s returned %d clusters\n", program, tag,
3038 fprintf(stdout, "%s: Tag %s returned %d clusters\n", program, tag,
30463039 clusters->count);
30473040
30483041 for(clusteri = 0; (cluster = clusters->clusters[clusteri]); clusteri++) {
30493042 const char* tag_name;
30503043 int tagi;
3051 fprintf(stderr, "%s: Cluster #%d - %d tags\n", program, clusteri,
3044 fprintf(stdout, "%s: Cluster #%d - %d tags\n", program, clusteri,
30523045 cluster->count);
30533046 for(tagi = 0; (tag_name = cluster->tags[tagi]); tagi++)
3054 fprintf(stderr, " %s\n", tag_name);
3047 fprintf(stdout, " %s\n", tag_name);
30553048 }
30563049
30573050 flickcurl_free_tag_clusters(clusters);
30863079 if(places) {
30873080 int i;
30883081 for(i = 0; places[i]; i++) {
3089 fprintf(stderr, "Place Result #%d\n", i);
3082 fprintf(stdout, "Place Result #%d\n", i);
30903083 command_print_place(places[i], NULL, NULL, 0);
30913084 }
30923085 flickcurl_free_places(places);
31623155 if(places) {
31633156 int i;
31643157 for(i = 0; places[i]; i++) {
3165 fprintf(stderr, "Place Result #%d\n", i);
3158 fprintf(stdout, "Place Result #%d\n", i);
31663159 command_print_place(places[i], NULL, NULL, 0);
31673160 }
31683161 flickcurl_free_places(places);
31973190 for(i = 0; tag_namespaces[i]; i++) {
31983191 flickcurl_tag_namespace *tn = tag_namespaces[i];
31993192
3200 fprintf(stderr,
3193 fprintf(stdout,
32013194 "Namespace #%d: name %s usage %d predicates count %d\n",
32023195 i, tn->name, tn->usage_count, tn->predicates_count);
32033196 }
32143207 {
32153208 int i;
32163209 if(label)
3217 fprintf(stderr, "%s: %s\n", program, label);
3210 fprintf(stdout, "%s: %s\n", program, label);
32183211
32193212 for(i = 0; tag_pvs[i]; i++) {
32203213 flickcurl_tag_predicate_value* tpv = tag_pvs[i];
3221 fprintf(stderr, " #%d) ", i);
3214 fprintf(stdout, " #%d) ", i);
32223215 if(tpv->predicate) {
3223 fputs("predicate ", stderr);
3224 fputs(tpv->predicate, stderr);
3225 fputc(' ', stderr);
3216 fputs("predicate ", stdout);
3217 fputs(tpv->predicate, stdout);
3218 fputc(' ', stdout);
32263219 }
32273220 if(tpv->value) {
3228 fputs("value ", stderr);
3229 fputs(tpv->value, stderr);
3230 fputc(' ', stderr);
3221 fputs("value ", stdout);
3222 fputs(tpv->value, stdout);
3223 fputc(' ', stdout);
32313224 }
32323225 if(tpv->usage_count > 0)
3233 fprintf(stderr, "usage %d", tpv->usage_count);
3226 fprintf(stdout, "usage %d", tpv->usage_count);
32343227 if(tpv->used_in_namespace_count > 0)
3235 fprintf(stderr, "used in %d namespaces", tpv->used_in_namespace_count);
3236 fputc('\n', stderr);
3228 fprintf(stdout, "used in %d namespaces", tpv->used_in_namespace_count);
3229 fputc('\n', stdout);
32373230 }
32383231 }
32393232
33383331 int i;
33393332 for(i = 0; place_types[i]; i++) {
33403333 flickcurl_place_type_info *pt = place_types[i];
3341 fprintf(stderr, "place type %d): id %d type %d name %s\n",
3334 fprintf(stdout, "place type %d): id %d type %d name %s\n",
33423335 i, pt->id, pt->type, pt->name);
33433336 }
33443337 flickcurl_free_place_type_infos(place_types);
33753368 if(places) {
33763369 int i;
33773370 for(i = 0; places[i]; i++) {
3378 fprintf(stderr, "Place Result #%d\n", i);
3371 fprintf(stdout, "Place Result #%d\n", i);
33793372 command_print_place(places[i], NULL, NULL, 0);
33803373 }
33813374 flickcurl_free_places(places);
34493442 if(places) {
34503443 int i;
34513444 for(i = 0; places[i]; i++) {
3452 fprintf(stderr, "Place Result #%d\n", i);
3445 fprintf(stdout, "Place Result #%d\n", i);
34533446 command_print_place(places[i], NULL, NULL, 0);
34543447 }
34553448 flickcurl_free_places(places);
34633456 static void
34643457 command_print_contact(flickcurl_contact* contact, int i)
34653458 {
3466 fprintf(stderr,
3459 fprintf(stdout,
34673460 "contact %d: NSID %s username %s iconserver %d realname %s friend %d family %d ignored %d upload count %d\n",
34683461 i,
34693462 contact->nsid, contact->username,
35533546 if(shapes) {
35543547 int i;
35553548 for(i = 0; shapes[i]; i++) {
3556 fprintf(stderr, "Shape %d: ", i);
3549 fprintf(stdout, "Shape %d: ", i);
35573550 command_print_shape(shapes[i]);
3558 fputc('\n', stderr);
3551 fputc('\n', stdout);
35593552 }
35603553
35613554 flickcurl_free_shapes(shapes);
36173610 min_upload_date, max_upload_date,
36183611 min_taken_date, max_taken_date);
36193612 if(tags) {
3620 fprintf(stderr, "%s: Tags for WOE ID %d / place ID %s\n",
3613 fprintf(stdout, "%s: Tags for WOE ID %d / place ID %s\n",
36213614 program, woe_id, place_id);
36223615 command_print_tags(tags, NULL, NULL);
36233616 free(tags);
36333626 {
36343627 int i;
36353628
3636 fprintf(stderr, "Institution %d:\n"
3629 fprintf(stdout, "Institution %d:\n"
36373630 " NSID: %s\n Date launch: %d\n Name: %s\n",
36383631 ix, institution->nsid, institution->date_launch,
36393632 institution->name);
36403633
36413634 for(i = 0 ; i <= FLICKCURL_INSTITUTION_URL_LAST; i++) {
36423635 if(institution->urls[i])
3643 fprintf(stderr, " URL %s: %s\n",
3636 fprintf(stdout, " URL %s: %s\n",
36443637 flickcurl_get_institution_url_type_label((flickcurl_institution_url_type)i),
36453638 institution->urls[i]);
36463639 }
36693662 static void
36703663 command_print_member(flickcurl_member* member, int i)
36713664 {
3672 fprintf(stderr,
3665 fprintf(stdout,
36733666 "member %d: NSID %s username %s iconserver %d iconfarm %d member type %d\n",
36743667 i,
36753668 member->nsid, member->username,
37213714 return 1;
37223715
37233716 for(i = 0; pandas[i]; i++)
3724 fprintf(stderr, "%s: panda %d: %s\n", program, i, pandas[i]);
3717 fprintf(stdout, "%s: panda %d: %s\n", program, i, pandas[i]);
37253718 free(pandas);
37263719
37273720 return 0;
37383731 if(!photos)
37393732 return 1;
37403733
3741 fprintf(stderr, "%s: Panda %s returned photos!\n", program, panda);
3734 fprintf(stdout, "%s: Panda %s returned photos!\n", program, panda);
37423735 for(i = 0; photos[i]; i++) {
3743 fprintf(stderr, "%s: %s photo %d\n", program, panda, i);
3736 fprintf(stdout, "%s: %s photo %d\n", program, panda, i);
37443737 command_print_photo(photos[i]);
37453738 }
37463739 flickcurl_free_photos(photos);
37523745 static void
37533746 command_print_collection(flickcurl_collection *collection)
37543747 {
3755 fprintf(stderr, "Collection id %s secret %s server %d\n"
3748 fprintf(stdout, "Collection id %s secret %s server %d\n"
37563749 " Title %s\n"
37573750 " Description %s\n"
37583751 " Large icon %s\n"
37663759 int i;
37673760
37683761 for(i = 0; collection->photos[i]; i++) {
3769 fprintf(stderr, " icon photo %d) ", i);
3762 fprintf(stdout, " icon photo %d) ", i);
37703763 command_print_photo(collection->photos[i]);
37713764 }
37723765 }
37753768 int i;
37763769
37773770 for(i = 0; collection->collections[i]; i++) {
3778 fprintf(stderr, " Sub-Collection %d)", i);
3771 fprintf(stdout, " Sub-Collection %d)", i);
37793772 command_print_collection(collection->collections[i]);
37803773 }
37813774 }
39233916
39243917 uri = flickcurl_photo_id_as_short_uri(photo_id);
39253918 if(uri) {
3926 fprintf(stderr, "%s: Short URI for photo ID %s is %s\n",
3919 fprintf(stdout, "%s: Short URI for photo ID %s is %s\n",
39273920 program, photo_id, uri);
39283921 free(uri);
39293922 } else {
39463939 int i;
39473940 for (i = 0; blog_services[i]; i++) {
39483941 flickcurl_blog_service* blog_service = blog_services[i];
3949 fprintf(stderr, "%d) blog service: id %s name '%s'\n", i,
3942 fprintf(stdout, "%d) blog service: id %s name '%s'\n", i,
39503943 blog_service->id, blog_service->name);
39513944 }
39523945 flickcurl_free_blog_services(blog_services);
39803973 if(places) {
39813974 int i;
39823975 for(i = 0; places[i]; i++) {
3983 fprintf(stderr, "Place Result #%d\n", i);
3976 fprintf(stdout, "Place Result #%d\n", i);
39843977 command_print_place(places[i], NULL, NULL, 1);
39853978 }
39863979 flickcurl_free_places(places);
40033996 return 1;
40043997 }
40053998
4006 fprintf(stderr, "%s: Photo ID for source URI %s is %s\n",
3999 fprintf(stdout, "%s: Photo ID for source URI %s is %s\n",
40074000 program, uri, photo_id);
40084001 free(photo_id);
40094002
40374030 return 1;
40384031
40394032 if(verbose)
4040 fprintf(stderr, "%s: Photos of user %s (per_page %d page %d):\n",
4033 fprintf(stdout, "%s: Photos of user %s (per_page %d page %d):\n",
40414034 program, user_id, list_params.per_page, list_params.page);
40424035
40434036 rc = command_print_photos_list(fc, photos_list, output_fh, "Photo");
41324125 static void
41334126 command_print_gallery(flickcurl_gallery* g)
41344127 {
4135 fprintf(stderr,
4128 fprintf(stdout,
41364129 "id %s url %s owner %s\n"
41374130 " date create %d date update %d\n"
41384131 " count of photos %d count of videos %d\n"
41434136 g->date_create, g->date_update,
41444137 g->count_photos, g->count_videos,
41454138 g->title, g->description);
4146 fputs(" primary ", stderr);
4139 fputs(" primary ", stdout);
41474140 command_print_photo(g->primary_photo);
41484141 }
41494142
41684161 if(!galleries)
41694162 return 1;
41704163 for(i = 0; galleries[i]; i++) {
4171 fprintf(stderr, "%s: Gallery %d\n", program, i);
4164 fprintf(stdout, "%s: Gallery %d\n", program, i);
41724165 command_print_gallery(galleries[i]);
41734166 }
41744167
41974190 if(!galleries)
41984191 return 1;
41994192 for(i = 0; galleries[i]; i++) {
4200 fprintf(stderr, "%s: Gallery %d\n", program, i);
4193 fprintf(stdout, "%s: Gallery %d\n", program, i);
42014194 command_print_gallery(galleries[i]);
42024195 }
42034196
42094202 static void
42104203 command_print_stat(flickcurl_stat* s)
42114204 {
4212 fprintf(stderr, " Views %d Comments %d Favorites %d",
4205 fprintf(stdout, " Views %d Comments %d Favorites %d",
42134206 s->views, s->comments, s->favorites);
42144207 if(s->name)
4215 fprintf(stderr, " Name %s", s->name);
4208 fprintf(stdout, " Name %s", s->name);
42164209 if(s->url)
4217 fprintf(stderr, " Url %s", s->url);
4210 fprintf(stdout, " Url %s", s->url);
42184211 if(s->searchterms)
4219 fprintf(stderr, " Search terms %s", s->searchterms);
4220 fputc('\n', stderr);
4212 fprintf(stdout, " Search terms %s", s->searchterms);
4213 fputc('\n', stdout);
42214214 }
42224215
42234216 static void
42264219 int i;
42274220
42284221 for(i = 0; stats[i]; i++) {
4229 fprintf(stderr, "%s: Statistic %d\n", program, i);
4222 fprintf(stdout, "%s: Statistic %d\n", program, i);
42304223 command_print_stat(stats[i]);
42314224 }
42324225
42584251 return 1;
42594252
42604253 if(verbose)
4261 fprintf(stderr, "%s: Collection domain stats (per_page %d page %d):\n",
4254 fprintf(stdout, "%s: Collection domain stats (per_page %d page %d):\n",
42624255 program, per_page, page);
42634256
42644257 command_print_stats(stats);
42944287 return 1;
42954288
42964289 if(verbose)
4297 fprintf(stderr, "%s: Collection referrers stats (per_page %d page %d):\n",
4290 fprintf(stdout, "%s: Collection referrers stats (per_page %d page %d):\n",
42984291 program, per_page, page);
42994292
43004293 command_print_stats(stats);
43154308 if(views < 0)
43164309 return 1;
43174310
4318 fprintf(stderr, "%s: Collection view stats: %d\n", program, views);
4311 fprintf(stdout, "%s: Collection view stats: %d\n", program, views);
43194312
43204313 return 0;
43214314 }
43454338 return 1;
43464339
43474340 if(verbose)
4348 fprintf(stderr, "%s: Photo domains stats (per_page %d page %d):\n",
4341 fprintf(stdout, "%s: Photo domains stats (per_page %d page %d):\n",
43494342 program, per_page, page);
43504343
43514344 command_print_stats(stats);
43814374 return 1;
43824375
43834376 if(verbose)
4384 fprintf(stderr, "%s: Photo referrers stats (per_page %d page %d):\n",
4377 fprintf(stdout, "%s: Photo referrers stats (per_page %d page %d):\n",
43854378 program, per_page, page);
43864379
43874380 command_print_stats(stats);
44024395 if(!stat1)
44034396 return 1;
44044397
4405 fprintf(stderr, "%s: Photo %s on date %s statistics:\n", program,
4398 fprintf(stdout, "%s: Photo %s on date %s statistics:\n", program,
44064399 photo_id, date);
44074400 command_print_stat(stat1);
44084401 flickcurl_free_stat(stat1);
44364429 return 1;
44374430
44384431 if(verbose)
4439 fprintf(stderr, "%s: Photoset domains stats (per_page %d page %d):\n",
4432 fprintf(stdout, "%s: Photoset domains stats (per_page %d page %d):\n",
44404433 program, per_page, page);
44414434
44424435 command_print_stats(stats);
44724465 return 1;
44734466
44744467 if(verbose)
4475 fprintf(stderr, "%s: Photoset referrers stats (per_page %d page %d):\n",
4468 fprintf(stdout, "%s: Photoset referrers stats (per_page %d page %d):\n",
44764469 program, per_page, page);
44774470
44784471 command_print_stats(stats);
44934486 if(views < 0)
44944487 return 1;
44954488
4496 fprintf(stderr, "%s: Photoset view stats: %d\n", program, views);
4489 fprintf(stdout, "%s: Photoset view stats: %d\n", program, views);
44974490
44984491 return 0;
44994492 }
45194512 return 1;
45204513
45214514 if(verbose)
4522 fprintf(stderr, "%s: Photostream domains stats (per_page %d page %d):\n",
4515 fprintf(stdout, "%s: Photostream domains stats (per_page %d page %d):\n",
45234516 program, per_page, page);
45244517
45254518 command_print_stats(stats);
45514544 return 1;
45524545
45534546 if(verbose)
4554 fprintf(stderr, "%s: Photostream referrers stats (per_page %d page %d):\n",
4547 fprintf(stdout, "%s: Photostream referrers stats (per_page %d page %d):\n",
45554548 program, per_page, page);
45564549
45574550 command_print_stats(stats);
45714564 if(views < 0)
45724565 return 1;
45734566
4574 fprintf(stderr, "%s: Photostream view stats: %d\n", program, views);
4567 fprintf(stdout, "%s: Photostream view stats: %d\n", program, views);
45754568
45764569 return 0;
45774570 }
46064599 if(!photos)
46074600 return 1;
46084601
4609 fprintf(stderr, "%s: Popular photos:\n", program);
4602 fprintf(stdout, "%s: Popular photos:\n", program);
46104603 for(i = 0; photos[i]; i++) {
4611 fprintf(stderr, "%s: popular photo %d\n", program, i);
4604 fprintf(stdout, "%s: popular photo %d\n", program, i);
46124605 command_print_photo(photos[i]);
46134606 }
46144607 flickcurl_free_photos(photos);
46304623 if(!view_stats)
46314624 return 1;
46324625
4633 fprintf(stderr, "%s: Total view stats\n", program);
4634 fprintf(stderr,
4626 fprintf(stdout, "%s: Total view stats\n", program);
4627 fprintf(stdout,
46354628 " Total: %d\n Photos: %d\n Photostreams: %d\n Sets: %d\n Collections: %d\n",
46364629 view_stats->total, view_stats->photos, view_stats->photostreams,
46374630 view_stats->sets, view_stats->collections);
47224715 return 1;
47234716
47244717 if(verbose)
4725 fprintf(stderr, "%s: Photos of user %s (per_page %d page %d):\n",
4718 fprintf(stdout, "%s: Photos of user %s (per_page %d page %d):\n",
47264719 program, user_id, list_params.per_page, list_params.page);
47274720
47284721 rc = command_print_photos_list(fc, photos_list, output_fh, "Photo");
47524745 &url);
47534746 if(!id)
47544747 return 1;
4755 fprintf(stderr, "%s: Gallery %s created with URL %s\n", program, id, url);
4748 fprintf(stdout, "%s: Gallery %s created with URL %s\n", program, id, url);
47564749 free(url);
47574750 free(id);
47584751 return 0;
48384831 return 1;
48394832
48404833 if(verbose)
4841 fprintf(stderr, "%s: Gallery %s photos (per_page %d page %d):\n",
4834 fprintf(stdout, "%s: Gallery %s photos (per_page %d page %d):\n",
48424835 program, gallery_id, list_params.per_page, list_params.page);
48434836
48444837 rc = command_print_photos_list(fc, photos_list, output_fh, "Photo");
48814874 {
48824875 return flickcurl_photosets_setPrimaryPhoto(fc, argv[1], argv[2]);
48834876 }
4877
4878
4879 static int
4880 command_favorites_getContext(flickcurl* fc, int argc, char *argv[])
4881 {
4882 char *photo_id = argv[1];
4883 char *user_id = argv[2];
4884 int num_prev = -1;
4885 int num_next = -1;
4886 const char* extras = NULL;
4887 flickcurl_photos_list** photos_lists = NULL;
4888
4889 if(argc > 3) {
4890 if(strcmp(argv[3], "-"))
4891 num_prev = atoi(argv[3]);
4892
4893 if(argc > 4) {
4894 if(strcmp(argv[4], "-"))
4895 num_next = atoi(argv[4]);
4896
4897 if(argc > 5)
4898 extras = argv[5];
4899 }
4900 }
4901
4902 photos_lists = flickcurl_favorites_getContext(fc, photo_id, user_id,
4903 num_prev, num_next,
4904 extras);
4905 if(!photos_lists) {
4906 fprintf(stderr, "%s: Getting user %s favorite photo %s context failed\n",
4907 program, user_id, photo_id);
4908 } else {
4909 int rc;
4910 if(verbose)
4911 fprintf(stdout,
4912 "%s: Context around user %s favorite photo %s:\n",
4913 program, user_id, photo_id);
4914 rc = command_print_photos_list(fc, photos_lists[0], output_fh,
4915 "Previous photos");
4916 if(!rc)
4917 rc = command_print_photos_list(fc, photos_lists[1], output_fh,
4918 "Next photos");
4919
4920 flickcurl_free_photos_list(photos_lists[0]);
4921 flickcurl_free_photos_list(photos_lists[1]);
4922 free(photos_lists);
4923
4924 if(rc)
4925 photos_lists = NULL;
4926 }
4927
4928 return (photos_lists == NULL);
4929 }
4930
4931
48844932
48854933
48864934 typedef struct {
49605008 {"favorites.add",
49615009 "PHOTO-ID", "Adds PHOTO-ID to the current user's favorites.",
49625010 command_favorites_add, 1, 1},
5011 {"favorites.getContext",
5012 "PHOTO-ID USER-NSID [NUM-PREV [NUM-NEXT [EXTRAS]]]", "Get context photos around USER-ID's favorite PHOTO-ID.",
5013 command_favorites_getContext, 2, 5},
49635014 {"favorites.getList",
49645015 "USER-NSID [[PER-PAGE] [PAGE [FORMAT]]]", "Get a list of USER-NSID's favorite photos.",
49655016 command_favorites_getList, 1, 4},
49745025 "GALLERY-ID PHOTO-ID TEXT", "Add photo PHOTO-ID to galleries GALLERY-ID with TEXT",
49755026 command_galleries_addPhoto, 3, 3},
49765027 {"galleries.create",
4977 "TITLE [DESCRIPTION [PRIMARY-PHOTO-ID]", "Create a new galleries with TITlE, DESCRIPTION and PRIMARY-PHOTO_ID.",
5028 "TITLE [DESCRIPTION [PRIMARY-PHOTO-ID]", "Create a new gallery with TITLE, DESCRIPTION and PRIMARY-PHOTO_ID.",
49785029 command_galleries_create, 1, 3},
49795030 {"galleries.editMeta",
49805031 "GALLERY-ID TITLE [DESCRIPTION]", "Set the TITLE and/or DESCRIPTION of a GALLERY-ID.",
50715122 "USER-NSID [PER-PAGE [PAGE [FORMAT]]]", "Get public photos of a user USER-NSID",
50725123 command_people_getPhotosOf, 1, 4},
50735124 {"people.getPublicGroups",
5074 "USER-NSID", "Get list of public groups a user is amember of",
5125 "USER-NSID", "Get list of public groups a user is a member of",
50755126 command_people_getPublicGroups, 1, 1},
50765127 {"people.getPublicPhotos",
50775128 "USER-NSID [PER-PAGE [PAGE [FORMAT]]]", "Get public photos for a user USER-NSID",
54475498 command_urls_lookupUser, 1, 1},
54485499
54495500 {"upload",
5450 "FILE [PARAMS...]", "Upload a photo FILE with optional parameters PARAM or PARAM VALUE\n title TITLE description DESC tags TAGS... friend public family",
5501 "FILE [PARAMS...]", "Upload a photo FILE with optional parameters PARAM or PARAM VALUE\n title TITLE\n description DESC\n safety_level 'safe' (default) or 'moderate' or 'restricted'\n content_type 'photo' (default) or screenshot' or 'other'\n hidden 'public' (default) or 'hidden'\n friend\n public\n family\n tags TAGS... [must be last param]",
54515502 command_upload, 1, 0},
54525503
54535504 {"replace",
54745525 static const char* config_filename = ".flickcurl.conf";
54755526 static const char* config_section = "flickr";
54765527
5528
5529 static void
5530 print_help_string(void)
5531 {
5532 int i;
5533 printf(title_format_string, flickcurl_version_string);
5534 puts("Call the Flickr API to get information.");
5535 printf("Usage: %s [OPTIONS] command args...\n\n", program);
5536
5537 fputs(flickcurl_copyright_string, stdout);
5538 fputs("\nLicense: ", stdout);
5539 puts(flickcurl_license_string);
5540 fputs("Flickcurl home page: ", stdout);
5541 puts(flickcurl_home_url_string);
5542
5543 fputs("\n", stdout);
5544
5545 puts(HELP_TEXT("a", "auth FROB ", "Authenticate with a FROB and write auth config"));
5546 puts(HELP_TEXT("d", "delay DELAY ", "Set delay between requests in milliseconds"));
5547 puts(HELP_TEXT("h", "help ", "Print this help, then exit"));
5548 #ifdef FLICKCURL_MAINTAINER
5549 puts(HELP_TEXT("m", "maintainer TYPE ", "Print formatted fragments for maintainer use, then exit"));
5550 #endif
5551 puts(HELP_TEXT("o", "output FILE ", "Write format = FORMAT results to FILE"));
5552 puts(HELP_TEXT("q", "quiet ", "Print less information while running"));
5553 puts(HELP_TEXT("v", "version ", "Print the flickcurl version"));
5554 puts(HELP_TEXT("V", "verbose ", "Print more information while running"));
5555
5556 fputs("\nCommands:\n", stdout);
5557 for(i = 0; commands[i].name; i++)
5558 printf(" %-28s %s\n %s\n", commands[i].name, commands[i].args,
5559 commands[i].description);
5560 fputs("\nNSID is a user's Flickr ID, resembling the form 00000000@N00\n", stdout);
5561 fputs("\nA prefix of `flickr.' may be optionally given in all commands\n", stdout);
5562
5563 fputs("\nParameters for API calls that return lists of photos:\n", stdout);
5564
5565 fputs("\n EXTRAS is a comma-separated list of optional fields to return from:\n", stdout);
5566 for(i = 0; 1; i++) {
5567 const char* name;
5568 const char* label;
5569
5570 if(flickcurl_get_extras_format_info(i, &name, &label))
5571 break;
5572 printf(" %-16s %s\n", name, label);
5573 }
5574
5575 fputs("\n FORMAT is result syntax format:\n", stdout);
5576 for(i = 0; 1; i++) {
5577 const char* name;
5578 const char* label;
5579
5580 if(flickcurl_get_feed_format_info(i, &name, &label, NULL))
5581 break;
5582 printf(" %-16s %s\n", name, label);
5583 }
5584 fputs("\n PAGE is result page number or '-' for default (1 = first page)\n"
5585 "\n PER-PAGE is photos per result page or '-' for default (10)\n",
5586 stdout
5587 );
5588 /* Extra space for neater distinctions in output */
5589 fputs("\n", stdout);
5590 }
54775591
54785592 int
54795593 main(int argc, char *argv[])
55145628
55155629 if(read_auth) {
55165630 if(!access((const char*)config_path, R_OK)) {
5517 if(read_ini_config(config_path, config_section, fc,
5518 my_set_config_var_handler)) {
5519 fprintf(stderr, "%s: Failed to read configuration filename %s: %s\n",
5520 program, config_path, strerror(errno));
5631 if(flickcurl_config_read_ini(fc, config_path, config_section, fc,
5632 flickcurl_config_var_handler)) {
55215633 rc = 1;
55225634 goto tidy;
55235635 }
55245636 } else {
5525 fprintf(stderr, "%s: Configuration file %s not found.\n\n"
5637 /* Check if the user has requested to see the help message */
5638 for (i = 0; i < argc; ++i) {
5639 if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) {
5640 print_help_string();
5641 }
5642 }
5643
5644 fprintf(stderr, "%s: Configuration file %s not found.\n\n"
55265645 "1. Visit http://www.flickr.com/services/api/keys/ and obtain a\n"
55275646 "mobile application <API Key>, <Shared Secret> and <Authentication URL>.\n"
55285647 "\n"
55375656 " %s -a <FROB>\n"
55385657 "to update the configuration file with the authentication token.\n"
55395658 "See http://librdf.org/flickcurl/api/flickcurl-auth.html for full instructions.\n",
5540 program, config_path, config_path, program);
5541 rc = 1;
5542 goto tidy;
5659 program, config_path, config_path, program);
5660 rc = 1;
5661 goto tidy;
55435662 }
55445663 }
55455664
55745693 program);
55755694 rc = 1;
55765695 } else {
5577 FILE* fh;
5578
55795696 fprintf(stdout,
55805697 "%s: Successfully exchanged frob %s for authentication token\n",
55815698 program, optarg);
55825699
55835700 flickcurl_set_auth_token(fc, auth_token);
5584
5585 fh = fopen(config_path, "w");
5586 if(!fh) {
5587 fprintf(stderr,
5588 "%s: Failed to write to configuration file %s: %s\n",
5589 program, config_path, strerror(errno));
5590 rc = 1;
5591 } else {
5592 fputs("[flickr]\nauth_token=", fh);
5593 fputs(flickcurl_get_auth_token(fc), fh);
5594 fputs("\napi_key=", fh);
5595 fputs(flickcurl_get_api_key(fc), fh);
5596 fputs("\nsecret=", fh);
5597 fputs(flickcurl_get_shared_secret(fc), fh);
5598 fputs("\n", fh);
5599 fclose(fh);
5600 fprintf(stdout,
5701
5702 rc = flickcurl_config_write_ini(fc, config_path, config_section);
5703 if(!rc)
5704 fprintf(stdout,
56015705 "%s: Updated configuration file %s with authentication token\n",
56025706 program, config_path);
5603 rc = 0;
5604 }
56055707 }
56065708 goto tidy;
56075709
58095911 }
58105912
58115913 if(help) {
5812 printf(title_format_string, flickcurl_version_string);
5813 puts("Call the Flickr API to get information.");
5814 printf("Usage: %s [OPTIONS] command args...\n\n", program);
5815
5816 fputs(flickcurl_copyright_string, stdout);
5817 fputs("\nLicense: ", stdout);
5818 puts(flickcurl_license_string);
5819 fputs("Flickcurl home page: ", stdout);
5820 puts(flickcurl_home_url_string);
5821
5822 fputs("\n", stdout);
5823
5824 puts(HELP_TEXT("a", "auth FROB ", "Authenticate with a FROB and write auth config"));
5825 puts(HELP_TEXT("d", "delay DELAY ", "Set delay between requests in milliseconds"));
5826 puts(HELP_TEXT("h", "help ", "Print this help, then exit"));
5827 #ifdef FLICKCURL_MAINTAINER
5828 puts(HELP_TEXT("m", "maintainer TYPE ", "Print formatted fragments for maintainer use, then exit"));
5829 #endif
5830 puts(HELP_TEXT("o", "output FILE ", "Write format = FORMAT results to FILE"));
5831 puts(HELP_TEXT("q", "quiet ", "Print less information while running"));
5832 puts(HELP_TEXT("v", "version ", "Print the flickcurl version"));
5833 puts(HELP_TEXT("V", "verbose ", "Print more information while running"));
5834
5835 fputs("\nCommands:\n", stdout);
5836 for(i = 0; commands[i].name; i++)
5837 printf(" %-28s %s\n %s\n", commands[i].name, commands[i].args,
5838 commands[i].description);
5839 fputs(" A prefix of `flickr.' may be optionally given\n", stdout);
5840
5841 fputs("\nParameters for API calls that return lists of photos:\n", stdout);
5842
5843 fputs(" EXTRAS is a comma-separated list of optional fields to return from:\n", stdout);
5844 for(i = 0; 1; i++) {
5845 const char* name;
5846 const char* label;
5847
5848 if(flickcurl_get_extras_format_info(i, &name, &label))
5849 break;
5850 printf(" %-16s %s\n", name, label);
5851 }
5852
5853 fputs(" FORMAT is result syntax format:\n", stdout);
5854 for(i = 0; 1; i++) {
5855 const char* name;
5856 const char* label;
5857
5858 if(flickcurl_get_feed_format_info(i, &name, &label, NULL))
5859 break;
5860 printf(" %-16s %s\n", name, label);
5861 }
5862 fputs(" PAGE is result page number or '-' for default (1 = first page)\n"
5863 " PER-PAGE is photos per result page or '-' for default (10)\n",
5864 stdout
5865 );
5866
5914 print_help_string();
58675915 rc = 0;
58685916 goto tidy;
58695917 }
4949 #include <flickcurl.h>
5050
5151 #ifdef HAVE_RAPTOR
52 #include <raptor.h>
52 #include <raptor2.h>
5353 #else
5454 #include <raptor_fake.h>
5555 #endif
8484 my_message_handler(void *user_data, const char *message)
8585 {
8686 fprintf(stderr, "%s: ERROR: %s\n", program, message);
87 }
88
89
90 static void
91 my_set_config_var_handler(void* userdata, const char* key, const char* value)
92 {
93 flickcurl *fc = (flickcurl *)userdata;
94
95 if(!strcmp(key, "api_key"))
96 flickcurl_set_api_key(fc, value);
97 else if(!strcmp(key, "secret"))
98 flickcurl_set_shared_secret(fc, value);
99 else if(!strcmp(key, "auth_token"))
100 flickcurl_set_auth_token(fc, value);
10187 }
10288
10389
131117
132118
133119
134 #if defined(HAVE_RAPTOR) && RAPTOR_VERSION < 20000
135 #define raptor_new_uri(world, string) raptor_new_uri(string)
136 #define raptor_new_serializer(world, name) raptor_new_serializer(name)
137 #define raptor_world_is_serializer_name(world, name) raptor_serializer_syntax_name_check(name)
138 #define raptor_serializer_start_to_file_handle(ser, uri, fh) raptor_serialize_start_to_file_handle(ser, uri, fh)
139 #endif
140
141120 static raptor_world* rworld;
142121
143
144 #if defined(HAVE_RAPTOR) && RAPTOR_VERSION < 20000
145 /* RAPTOR V1 version */
146
147 static void
148 ser_emit_namespace(void* user_data,
149 const char *prefix, size_t prefix_len,
150 const char* uri, size_t uri_len)
151 {
152 raptor_serializer* serializer = (raptor_serializer*)user_data;
153 raptor_uri *ns_uri = NULL;
154
155 ns_uri = raptor_new_uri(NULL, (const unsigned char*)uri);
156 raptor_serialize_set_namespace(serializer, ns_uri,
157 (const unsigned char*)prefix);
158 raptor_free_uri(ns_uri);
159 }
160
161
162 static void
163 ser_emit_triple(void* user_data,
164 const char* subject, int subject_type,
165 const char* predicate_nspace, const char* predicate_name,
166 const char *object, int object_type,
167 const char *datatype_uri)
168 {
169 raptor_serializer* serializer = (raptor_serializer*)user_data;
170 raptor_statement s;
171 raptor_uri* predicate_ns_uri;
172
173 s.subject_type = (raptor_identifier_type)subject_type;
174 if((flickcurl_term_type)s.subject_type == FLICKCURL_TERM_TYPE_RESOURCE)
175 s.subject = (void*)raptor_new_uri(rworld, (const unsigned char*)subject);
176 else /* blank node */
177 s.subject = (void*)subject;
178
179 predicate_ns_uri = raptor_new_uri(rworld, (const unsigned char*)predicate_nspace);
180 s.predicate = (void*)raptor_new_uri_from_uri_local_name(predicate_ns_uri,
181 (const unsigned char*)predicate_name);
182 raptor_free_uri(predicate_ns_uri);
183 s.predicate_type = RAPTOR_IDENTIFIER_TYPE_RESOURCE;
184
185 s.object_type = (raptor_identifier_type)object_type;
186 if((flickcurl_term_type)s.object_type == FLICKCURL_TERM_TYPE_RESOURCE)
187 s.object = (void*)raptor_new_uri(rworld, (const unsigned char*)object);
188 else /* literal or blank node */
189 s.object = (void*)object;
190 if(datatype_uri)
191 s.object_literal_datatype = raptor_new_uri(rworld, (const unsigned char*)datatype_uri);
192 else
193 s.object_literal_datatype = NULL;
194 s.object_literal_language = NULL;
195
196 raptor_serialize_statement(serializer, &s);
197
198 if((flickcurl_term_type)s.subject_type == FLICKCURL_TERM_TYPE_RESOURCE)
199 raptor_free_uri((raptor_uri*)s.subject);
200 raptor_free_uri((raptor_uri*)s.predicate);
201 if((flickcurl_term_type)s.object_type == FLICKCURL_TERM_TYPE_RESOURCE)
202 raptor_free_uri((raptor_uri*)s.object);
203 if(datatype_uri)
204 raptor_free_uri(s.object_literal_datatype);
205 }
206
207
208 static void
209 ser_emit_finish(void* user_data)
210 {
211 raptor_serializer* serializer = (raptor_serializer*)user_data;
212 raptor_serialize_end(serializer);
213 }
214
215 #else
216 /* RAPTOR V2 version */
217122
218123 static void
219124 ser_emit_namespace(void* user_data,
285190 raptor_serializer* serializer = (raptor_serializer*)user_data;
286191 raptor_serializer_serialize_end(serializer);
287192 }
288 #endif
289193
290194
291195 static flickcurl_serializer_factory flickrdf_serializer_factory = {
321225
322226 flickcurl_init();
323227
324 #if defined(HAVE_RAPTOR) && RAPTOR_VERSION < 20000
325 rworld = NULL;
326 raptor_init();
327 #else
328228 rworld = raptor_new_world();
329229 raptor_world_open(rworld);
330 #endif
331230
332231 home = getenv("HOME");
333232 if(home)
381280 program, optarg);
382281 fprintf(stderr, "Valid arguments are:\n");
383282 for(i = 0; 1; i++) {
384 #if defined(HAVE_RAPTOR) && RAPTOR_VERSION < 20000
385 const char *help_name;
386 const char *help_label;
387 if(raptor_serializers_enumerate(i, &help_name, &help_label, NULL, NULL))
388 break;
389 printf(" %-12s for %s\n", help_name, help_label);
390 #else
391283 const raptor_syntax_description *d;
392284
393285 d = raptor_world_get_serializer_description(rworld, i);
394286 if(!d)
395287 break;
396288 printf(" %-12s for %s\n", d->names[0], d->label);
397 #endif
398289 }
399290 usage = 1;
400291 break;
482373 flickcurl_set_error_handler(fc, my_message_handler, NULL);
483374
484375 if(!access((const char*)config_path, R_OK)) {
485 if(read_ini_config(config_path, config_section, fc,
486 my_set_config_var_handler)) {
487 fprintf(stderr, "%s: Failed to read config filename %s: %s\n",
488 program, config_path, strerror(errno));
376 if(flickcurl_config_read_ini(fc, config_path, config_section, fc,
377 flickcurl_config_var_handler)) {
489378 rc = 1;
490379 goto tidy;
491380 }
529418 puts(HELP_TEXT("h", "help ", "Print this help, then exit"));
530419 puts(HELP_TEXT("o", "output FORMAT ", "Set output format to one of:"));
531420 for(i = 0; 1; i++) {
532 #if defined(HAVE_RAPTOR) && RAPTOR_VERSION < 20000
533 const char *help_name;
534 const char *help_label;
535 if(raptor_serializers_enumerate(i, &help_name, &help_label, NULL, NULL))
536 break;
537
538 if(!strcmp(help_name, serializer_syntax_name))
539 printf(" %-15s %s (default)\n", help_name, help_label);
540 else
541 printf(" %-15s %s\n", help_name, help_label);
542 #else
543421 const raptor_syntax_description* d;
544422
545423 d = raptor_world_get_serializer_description(rworld, i);
550428 printf(" %-15s %s (default)\n", d->names[0], d->label);
551429 else
552430 printf(" %-15s %s\n", d->names[0], d->label);
553 #endif
554431 }
555432 #ifdef HAVE_RAPTOR
556433 printf(" via Raptor %s serializers\n", raptor_version_string);
599476 if(base_uri)
600477 raptor_free_uri(base_uri);
601478
602 #if defined(HAVE_RAPTOR) && RAPTOR_VERSION < 20000
603 raptor_finish();
604 #else
605479 if(rworld)
606480 raptor_free_world(rworld);
607 #endif
608481
609482 flickcurl_finish();
610483
7474 my_message_handler(void *user_data, const char *message)
7575 {
7676 fprintf(stderr, "%s: ERROR: %s\n", program, message);
77 }
78
79
80 static void
81 my_set_config_var_handler(void* userdata, const char* key, const char* value)
82 {
83 flickcurl *fc = (flickcurl *)userdata;
84
85 if(!strcmp(key, "api_key"))
86 flickcurl_set_api_key(fc, value);
87 else if(!strcmp(key, "secret"))
88 flickcurl_set_shared_secret(fc, value);
89 else if(!strcmp(key, "auth_token"))
90 flickcurl_set_auth_token(fc, value);
9177 }
9278
9379
244230 flickcurl_set_error_handler(fc, my_message_handler, NULL);
245231
246232 if(read_auth && !access((const char*)config_path, R_OK)) {
247 if(read_ini_config(config_path, config_section, fc,
248 my_set_config_var_handler)) {
249 fprintf(stderr, "%s: Failed to read config filename %s: %s\n",
250 program, config_path, strerror(errno));
233 if(flickcurl_config_read_ini(fc, config_path, config_section, fc,
234 flickcurl_config_var_handler)) {
251235 rc = 1;
252236 goto tidy;
253237 }
0 /* -*- Mode: c; c-basic-offset: 2 -*-
1 *
2 * Flickr OAuth test utility
3 *
4 * Copyright (C) 2011, David Beckett http://www.dajobe.org/
5 *
6 * This file is licensed under the following three licenses as alternatives:
7 * 1. GNU Lesser General Public License (LGPL) V2.1 or any newer version
8 * 2. GNU General Public License (GPL) V2 or any newer version
9 * 3. Apache License, V2.0 or any newer version
10 *
11 * You may not use this file except in compliance with at least one of
12 * the above three licenses.
13 *
14 * See LICENSE.html or LICENSE.txt at the top of this package for the
15 * complete terms and further detail along with the license texts for
16 * the licenses in COPYING.LIB, COPYING and LICENSE-2.0.txt respectively.
17 *
18 *
19 * USAGE: oauth-test [OPTIONS]
20 *
21 */
22
23 #include <stdio.h>
24 #include <string.h>
25 #include <stdarg.h>
26
27 #ifdef HAVE_CONFIG_H
28 #include <config.h>
29 #endif
30
31 #ifdef HAVE_STDLIB_H
32 #include <stdlib.h>
33 #endif
34 #ifdef HAVE_UNISTD_H
35 #include <unistd.h>
36 #endif
37 #ifdef HAVE_ERRNO_H
38 #include <errno.h>
39 #endif
40 #include <stdint.h>
41
42 /* many places for getopt */
43 #ifdef HAVE_GETOPT_H
44 #include <getopt.h>
45 #else
46 #include <flickcurl_getopt.h>
47 #endif
48
49 #include <flickcurl.h>
50 #include <flickcurl_internal.h>
51
52
53
54 #ifdef NEED_OPTIND_DECLARATION
55 extern int optind;
56 extern char *optarg;
57 #endif
58
59
60 static const char* program;
61
62 static const char*
63 my_basename(const char *name)
64 {
65 char *p;
66 if((p = strrchr(name, '/')))
67 name = p+1;
68 else if((p = strrchr(name, '\\')))
69 name = p+1;
70
71 return name;
72 }
73
74
75 static void
76 my_message_handler(void *user_data, const char *message)
77 {
78 fprintf(stderr, "%s: ERROR: %s\n", program, message);
79 }
80
81
82 static int
83 oauth_prepare(flickcurl *fc,
84 const char* method, const char* parameters[][2], int count)
85 {
86 if(!method) {
87 flickcurl_error(fc, "No method to prepare");
88 return 1;
89 }
90
91 return flickcurl_oauth_prepare_common(fc,
92 fc->service_uri,
93 method,
94 NULL, NULL,
95 parameters, count,
96 1, 1);
97 }
98
99
100 static int
101 oauth_test_echo(flickcurl* fc,
102 const char* key, const char* value)
103 {
104 const char * parameters[2 + FLICKCURL_MAX_OAUTH_PARAM_COUNT][2];
105 int count = 0;
106 xmlDocPtr doc = NULL;
107 int rc = 0;
108
109 parameters[count][0] = key;
110 parameters[count++][1]= value;
111
112 parameters[count][0] = NULL;
113
114 if(oauth_prepare(fc, "flickr.test.echo", parameters, count)) {
115 rc = 1;
116 goto tidy;
117 }
118
119 doc = flickcurl_invoke(fc);
120 if(!doc) {
121 rc = 1;
122 goto tidy;
123 }
124
125 fprintf(stderr, "Flickr echo returned %d bytes\n", fc->total_bytes);
126
127 tidy:
128
129 return rc;
130 }
131
132
133
134
135 #ifdef HAVE_GETOPT_LONG
136 #define HELP_TEXT(short, long, description) " -" short ", --" long " " description
137 #define HELP_TEXT_LONG(long, description) " --" long " " description
138 #define HELP_ARG(short, long) "--" #long
139 #define HELP_PAD "\n "
140 #else
141 #define HELP_TEXT(short, long, description) " -" short " " description
142 #define HELP_TEXT_LONG(long, description)
143 #define HELP_ARG(short, long) "-" #short
144 #define HELP_PAD "\n "
145 #endif
146
147
148 #define GETOPT_STRING "hv"
149
150 #ifdef HAVE_GETOPT_LONG
151 static struct option long_options[] =
152 {
153 /* name, has_arg, flag, val */
154 {"help", 0, 0, 'h'},
155 {"version", 0, 0, 'v'},
156 {NULL, 0, 0, 0}
157 };
158 #endif
159
160
161 static const char *title_format_string = "Flickr OAuth test utility %s\n";
162
163 static const char* config_filename = ".flickcurl.conf";
164 static const char* config_section = "flickr";
165
166
167 static void
168 print_help_string(void)
169 {
170 printf(title_format_string, flickcurl_version_string);
171 puts("Flickr OAuth test utility.");
172 printf("Usage: %s [OPTIONS] COMMANDS\n\n", program);
173
174 fputs(flickcurl_copyright_string, stdout);
175 fputs("\nLicense: ", stdout);
176 puts(flickcurl_license_string);
177 fputs("Flickcurl home page: ", stdout);
178 puts(flickcurl_home_url_string);
179
180 fputs("\n", stdout);
181
182 puts(HELP_TEXT("h", "help ", "Print this help, then exit"));
183 puts(HELP_TEXT("v", "version ", "Print the flickcurl version"));
184
185 fputs("\nCOMMANDS\n", stdout);
186
187 puts(" request_token\n Ask for an OAuth request token and show the authorize url.\n");
188 puts(" access_token REQUEST_TOKEN REQUEST_TOKEN_SECRET VERIFIER\n Use a request token with verifier to get an access token.\n");
189 puts(" echo\n Run the test.echo API call using OAuth.\n");
190 }
191
192
193
194 int
195 main(int argc, char *argv[])
196 {
197 flickcurl *fc = NULL;
198 int rc = 0;
199 int usage = 0;
200 int help = 0;
201 int cmd_index = -1;
202 int read_auth = 1;
203 const char* home;
204 char config_path[1024];
205 char *command = NULL;
206
207 flickcurl_init();
208
209 program = my_basename(argv[0]);
210
211 home = getenv("HOME");
212 if(home)
213 sprintf(config_path, "%s/%s", home, config_filename);
214 else
215 strcpy(config_path, config_filename);
216
217
218 /* Initialise the Flickcurl library */
219 fc = flickcurl_new();
220 if(!fc) {
221 rc = 1;
222 goto tidy;
223 }
224
225 flickcurl_set_error_handler(fc, my_message_handler, NULL);
226
227 if(read_auth && !access((const char*)config_path, R_OK)) {
228 if(flickcurl_config_read_ini(fc, config_path, config_section, fc,
229 flickcurl_config_var_handler)) {
230 rc = 1;
231 goto tidy;
232 }
233 }
234
235
236 while (!usage && !help)
237 {
238 int c;
239 #ifdef HAVE_GETOPT_LONG
240 int option_index = 0;
241
242 c = getopt_long (argc, argv, GETOPT_STRING, long_options, &option_index);
243 #else
244 c = getopt (argc, argv, GETOPT_STRING);
245 #endif
246 if (c == -1)
247 break;
248
249 switch (c) {
250 case 0:
251 case '?': /* getopt() - unknown option */
252 usage = 1;
253 break;
254
255 case 'h':
256 help = 1;
257 break;
258
259 case 'v':
260 fputs(flickcurl_version_string, stdout);
261 fputc('\n', stdout);
262
263 exit(0);
264 }
265
266 }
267
268 argv += optind;
269 argc -= optind;
270
271 if(!help && !argc) {
272 usage = 2; /* Title and usage */
273 goto usage;
274 }
275
276 if(!help && !argc) {
277 usage = 2; /* Title and usage */
278 goto usage;
279 }
280
281 if(usage || help)
282 goto usage;
283
284
285 command = argv[0];
286
287 if(!strncmp(command, "flickr.", 7))
288 command += 7;
289
290 if(!strcmp(command, "request_token")) {
291 cmd_index = 0;
292 } else if(!strcmp(command, "access_token")) {
293 cmd_index = 1;
294 } else if(!strcmp(command, "echo")) {
295 cmd_index = 2;
296 }
297
298 if(cmd_index < 0) {
299 fprintf(stderr, "%s: No such command `%s'\n", program, command);
300 usage = 1;
301 goto usage;
302 }
303
304
305 usage:
306 if(usage) {
307 if(usage>1) {
308 fprintf(stderr, title_format_string, flickcurl_version_string);
309 fputs("Flickcurl home page: ", stderr);
310 fputs(flickcurl_home_url_string, stderr);
311 fputc('\n', stderr);
312 fputs(flickcurl_copyright_string, stderr);
313 fputs("\nLicense: ", stderr);
314 fputs(flickcurl_license_string, stderr);
315 fputs("\n\n", stderr);
316 }
317 fprintf(stderr, "Try `%s " HELP_ARG(h, help) "' for more information.\n",
318 program);
319 rc = 1;
320 goto tidy;
321 }
322
323 if(help) {
324 print_help_string();
325 rc = 0;
326 goto tidy;
327 }
328
329
330 /* Request token */
331 if(cmd_index == 0) {
332 flickcurl_oauth_data* od = &fc->od;
333
334 memset(od, '\0', sizeof(od));
335
336 od->client_key = fc->api_key;
337 od->client_key_len = strlen(od->client_key);
338 od->client_secret = fc->secret;
339 od->client_secret_len = strlen(od->client_secret);
340
341 rc = flickcurl_oauth_request_token(fc);
342
343 if(!rc) {
344 char* uri;
345
346 fprintf(stderr,
347 "OAuth request token returned token '%s' secret token '%s'\n",
348 od->request_token, od->request_token_secret);
349
350 uri = flickcurl_oauth_get_authorize_uri(fc);
351 if(uri) {
352 fprintf(stderr, "%s: Authorize uri is %s\n", program, uri);
353 free(uri);
354 }
355 }
356 }
357
358
359 /* Access token */
360 if(cmd_index == 1) {
361 flickcurl_oauth_data* od = &fc->od;
362 const char* request_token = argv[1];
363 const char* request_token_secret = argv[2];
364 const char* verifier = argv[3];
365
366 memset(od, '\0', sizeof(od));
367
368 od->client_key = fc->api_key;
369 od->client_key_len = strlen(od->client_key);
370 od->client_secret = fc->secret;
371 od->client_secret_len = strlen(od->client_secret);
372 od->request_token = (char*)request_token;
373 od->request_token_len = strlen(request_token);
374 od->request_token_secret = (char*)request_token_secret;
375 od->request_token_secret_len = strlen(request_token_secret);
376
377 rc = flickcurl_oauth_access_token(fc, verifier);
378
379 if(!rc) {
380 fprintf(stderr,
381 "OAuth access token returned token '%s' secret token '%s'\n",
382 od->token, od->token_secret);
383 }
384
385 }
386
387
388 if(cmd_index == 2) {
389 flickcurl_oauth_data* od = &fc->od;
390
391 memset(od, '\0', sizeof(od));
392
393 rc = oauth_test_echo(fc, "hello", "world");
394 }
395
396
397 tidy:
398
399 if(fc)
400 flickcurl_free(fc);
401
402 flickcurl_finish();
403
404 return(rc);
405 }
0 /* -*- Mode: c; c-basic-offset: 2 -*-
1 *
2 * raptor_fake.h - Fake Raptor V2 API - just enough for flickrdf.c
3 *
4 * Copyright (C) 2011, David Beckett http://www.dajobe.org/
5 *
6 * This file is licensed under the following three licenses as alternatives:
7 * 1. GNU Lesser General Public License (LGPL) V2.1 or any newer version
8 * 2. GNU General Public License (GPL) V2 or any newer version
9 * 3. Apache License, V2.0 or any newer version
10 *
11 * You may not use this file except in compliance with at least one of
12 * the above three licenses.
13 *
14 * See LICENSE.html or LICENSE.txt at the top of this package for the
15 * complete terms and further detail along with the license texts for
16 * the licenses in COPYING.LIB, COPYING and LICENSE-2.0.txt respectively.
17 *
18 */
19
20 /* Fake Raptor does not use world */
21 typedef void raptor_world;
22
23 typedef enum {
24 RAPTOR_TERM_TYPE_UNKNOWN,
25 RAPTOR_TERM_TYPE_URI,
26 RAPTOR_TERM_TYPE_LITERAL,
27 RAPTOR_TERM_TYPE_BLANK
28 } raptor_term_type;
29
30 /* Fake Raptor uses char* for uris */
31 typedef char raptor_uri;
32
33 typedef struct {
34 unsigned char *string;
35 unsigned int string_len;
36 raptor_uri *datatype;
37 unsigned char *language;
38 unsigned char language_len;
39 } raptor_term_literal_value;
40
41 typedef struct {
42 unsigned char *string;
43 unsigned int string_len;
44 } raptor_term_blank_value;
45
46 typedef union {
47 raptor_uri *uri;
48 raptor_term_literal_value literal;
49 raptor_term_blank_value blank;
50 } raptor_term_value;
51
52 typedef struct {
53 raptor_world* world;
54 raptor_term_type type;
55 raptor_term_value value;
56 } raptor_term;
57
58 typedef struct {
59 raptor_world* world;
60 /* int usage; */
61 raptor_term* subject;
62 raptor_term* predicate;
63 raptor_term* object;
64 /* raptor_term* graph; */
65 } raptor_statement;
66
67 typedef struct {
68 FILE* fh;
69 int output_turtle;
70 } raptor_serializer;
71
72
73 typedef struct {
74 const char* const names[2];
75 const char* label;
76 /* omitting fields unused in this program */
77 } raptor_syntax_description;
78
79
80 raptor_world* raptor_new_world(void);
81 int raptor_world_open(raptor_world* world);
82 void raptor_free_world(raptor_world* world);
83 int raptor_world_is_serializer_name(raptor_world* world, const char* name);
84 const raptor_syntax_description* raptor_world_get_serializer_description(raptor_world* world, unsigned int counter);
85
86 raptor_uri* raptor_new_uri(raptor_world* world, const unsigned char *uri_string);
87 raptor_uri* raptor_new_uri_from_uri_local_name(raptor_world* world, raptor_uri *uri, const unsigned char *local_name);
88 raptor_uri* raptor_new_uri_from_uri(raptor_uri *uri);
89 void raptor_free_uri(raptor_uri* u);
90
91 raptor_term* raptor_new_term_from_blank(raptor_world* world, const unsigned char* blank);
92 raptor_term* raptor_new_term_from_uri_string(raptor_world* world, const unsigned char *uri_string);
93 raptor_term* raptor_new_term_from_uri(raptor_world* world, raptor_uri* uri);
94 raptor_term*
95 raptor_new_term_from_literal(raptor_world* world, const unsigned char* literal, raptor_uri* datatype, const unsigned char* language);
96 void raptor_free_term(raptor_term* term);
97
98 raptor_serializer* raptor_new_serializer(raptor_world* world, const char* serializer_name);
99 void raptor_free_serializer(raptor_serializer* s);
100 void raptor_serializer_set_namespace(raptor_serializer* serializer, raptor_uri* uri, const unsigned char* prefix);
101 void raptor_serializer_start_to_file_handle(raptor_serializer* serializer, raptor_uri* base_uri, FILE* fh);
102 void raptor_serializer_serialize_statement(raptor_serializer* serializer, raptor_statement* s);
103 void raptor_serializer_serialize_end(raptor_serializer* serializer);
104
105
106 void raptor_statement_init(raptor_statement *statement, raptor_world *world);
107 void raptor_statement_clear(raptor_statement *statement);