diff options
Diffstat (limited to '')
96 files changed, 0 insertions, 74325 deletions
diff --git a/libraries/eet/ABOUT-NLS b/libraries/eet/ABOUT-NLS deleted file mode 100644 index e69de29..0000000 --- a/libraries/eet/ABOUT-NLS +++ /dev/null | |||
diff --git a/libraries/eet/AUTHORS b/libraries/eet/AUTHORS deleted file mode 100644 index 260b216..0000000 --- a/libraries/eet/AUTHORS +++ /dev/null | |||
@@ -1,14 +0,0 @@ | |||
1 | The Rasterman (Carsten Haitzler) <raster@rasterman.com> | ||
2 | David Goodlad <dgoodlad@gmail.com> | ||
3 | Cedric Bail <cedric.bail@free.fr> | ||
4 | Arnaud de Turckheim <quarium@gmail.com> | ||
5 | Luis Felipe Strano Moraes <lfelipe@profusion.mobi> | ||
6 | Chidambar Zinnoury <illogict@online.fr> | ||
7 | Vincent Torri <vtorri@univ-evry.fr> | ||
8 | Gustavo Sverzut Barbieri <barbieri@profusion.mobi> | ||
9 | Raphael Kubo da Costa <kubo@profusion.mobi> | ||
10 | Mathieu Taillefumier <mathieu.taillefumier@free.fr> | ||
11 | Albin "Lutin" Tonnerre <albin.tonnerre@gmail.com> | ||
12 | Adam Simpkins <adam@adamsimpkins.net> | ||
13 | Mike Blumenkrantz <michael.blumenkrantz@gmail.com> | ||
14 | Lionel Orry <lionel.orry@gmail.com> | ||
diff --git a/libraries/eet/COPYING b/libraries/eet/COPYING deleted file mode 100644 index 296efe7..0000000 --- a/libraries/eet/COPYING +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | Copyright notice for Eet: | ||
2 | |||
3 | Copyright (C) 2002-2011 Carsten Haitzler and various contributors (see AUTHORS) | ||
4 | |||
5 | All rights reserved. | ||
6 | |||
7 | Redistribution and use in source and binary forms, with or without | ||
8 | modification, are permitted provided that the following conditions are met: | ||
9 | |||
10 | 1. Redistributions of source code must retain the above copyright | ||
11 | notice, this list of conditions and the following disclaimer. | ||
12 | 2. Redistributions in binary form must reproduce the above copyright | ||
13 | notice, this list of conditions and the following disclaimer in the | ||
14 | documentation and/or other materials provided with the distribution. | ||
15 | |||
16 | THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, | ||
17 | INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND | ||
18 | FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE | ||
19 | COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
20 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
21 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, | ||
22 | OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | ||
23 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | ||
24 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, | ||
25 | EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
diff --git a/libraries/eet/ChangeLog b/libraries/eet/ChangeLog deleted file mode 100644 index 4de0f82..0000000 --- a/libraries/eet/ChangeLog +++ /dev/null | |||
@@ -1,575 +0,0 @@ | |||
1 | 2008-04-20 Carsten Haitzler (The Rasterman) | ||
2 | |||
3 | 1.0.0 release | ||
4 | |||
5 | 2008-04-28 Carsten Haitzler (The Rasterman) | ||
6 | |||
7 | * Fixed allocation of a list (EET_G_LIST) of simple types | ||
8 | (IS_SIMPLE_TYPE) to alloc the correct amount (using the correct type | ||
9 | offset). Also fixed a hash (EET_G_HASH) of simple types too. | ||
10 | |||
11 | 2008-05-14 Cedric BAIL | ||
12 | |||
13 | * Fix conversion from a text to a hash (EET_G_HASH). | ||
14 | |||
15 | * Fix inlined string (EET_T_INLINED_STRING) dump/undump by introducing | ||
16 | the new word for the parser 'inlined'. | ||
17 | |||
18 | 2008-05-15 Cedric BAIL | ||
19 | |||
20 | * Fix a typo preventing the parsing of unsigned int (EET_T_UINT). | ||
21 | |||
22 | * Fix group of simple type by implicitly creating a structure with | ||
23 | the simple type in it. | ||
24 | |||
25 | * Remove dead code handling group of simple type and put assert | ||
26 | instead. | ||
27 | |||
28 | 2008-05-16 Cedric BAIL | ||
29 | |||
30 | * Fix eet_data_descriptor3_new as it purpose was to introduce | ||
31 | str_direct_alloc/str_direct_free usage. Application should now receive | ||
32 | direct pointer to read only (mmaped) string. | ||
33 | |||
34 | * Fix EET_FILE_MODE_READ_WRITE when file doesn't exist. | ||
35 | |||
36 | * Fix some miss use of efn->offset. | ||
37 | |||
38 | * Introduce unit test in EFL. The current set provide an overall | ||
39 | coverage rate of 2111 of 2607 lines (81.0%) for eet. It helped | ||
40 | finding and fixing the bugs of the last three days. | ||
41 | The test suite is based on library check. At this time we need | ||
42 | cvs version, look at http://check.sourceforge.net/ to find it. | ||
43 | The covering is done by gcov | ||
44 | The html report is done by lcov version 1.6 or above. | ||
45 | You can found it at http://ltp.sourceforge.net/coverage/lcov.php. | ||
46 | |||
47 | 2008-05-19 Cedric BAIL | ||
48 | |||
49 | * Old Eet file format is now marked as deprecated and accessing old | ||
50 | file will display a warning. You can already remove completely all | ||
51 | code related to it, but it's still enabled by default. We will later | ||
52 | disable it by default and at some point drop the support completely. | ||
53 | |||
54 | * Remove use of strcpy and sprintf definitively. | ||
55 | |||
56 | 2008-06-02 Cedric BAIL | ||
57 | |||
58 | * Introduce tile support and the possibility to decompress eet | ||
59 | image inside an existing surface. | ||
60 | |||
61 | 2008-06-26 Cedric BAIL | ||
62 | |||
63 | * Massiv code cleanup. | ||
64 | * Add EET_G_ARRAY and EET_G_VAR_ARRAY support. | ||
65 | * Plan for version 2.0 API break of eet_data_descriptor_element_add. | ||
66 | |||
67 | 2008-07-17 Cedric BAIL | ||
68 | |||
69 | Implement various speed improvement : | ||
70 | |||
71 | * Use the precomputed hash value for Eet_Data_Chunk. | ||
72 | * Use a hash table instead of a list for pointer that need to be freed. | ||
73 | * Use directly the pointer from the dictionary to do a pointer | ||
74 | comparison instead of a strcmp. | ||
75 | |||
76 | 2008-07-24 Cedric BAIL | ||
77 | |||
78 | * Fix wrongly stored image when compressed size is bigger than | ||
79 | uncompressed. Fix bug #523. | ||
80 | |||
81 | 2008-07-24 Vincent Torri | ||
82 | |||
83 | * Add Visual Studio solution and vc projects to compile Eet | ||
84 | with Microsoft tools. | ||
85 | |||
86 | Written by Dmitriy Mazovka. | ||
87 | |||
88 | 2008-08-20 Cedric BAIL | ||
89 | |||
90 | * Fix the dictionnary check during eet_open. | ||
91 | |||
92 | 2008-08-22 Cedric BAIL | ||
93 | |||
94 | * Fix memory leaks in eet_data strings | ||
95 | |||
96 | 2008-09-03 Cedric BAIL | ||
97 | |||
98 | * Fix inline-jpeg decode to use mem buf, not tmp-file on platforms that | ||
99 | don't support mem_open() etc. | ||
100 | * Add eet_memopen_read() to be able to open an eet file already | ||
101 | mapped in memory (eg compiled-in or mmaped some other way). | ||
102 | |||
103 | 2008-09-11 Cedric BAIL | ||
104 | |||
105 | * Improve hash generation speed for big files. | ||
106 | * Inline more functions explicitly for speed. | ||
107 | |||
108 | 2008-09-25 Carsten Haitzler (The Rasterman) | ||
109 | |||
110 | 1.5.0 release | ||
111 | |||
112 | 2008-10-20 Cedric BAIL | ||
113 | |||
114 | * Make use of eina. | ||
115 | |||
116 | 2008-10-23 Cedric BAIL | ||
117 | |||
118 | * Fix string in list and hash. | ||
119 | |||
120 | 2008-10-24 Cedric BAIL | ||
121 | |||
122 | * Fix array in eet_data. | ||
123 | |||
124 | 2008-11-13 Cedric BAIL | ||
125 | |||
126 | * Add crypto support to eet with OpenSSL. | ||
127 | |||
128 | 2008-11-13 Arnaud de Turckheim | ||
129 | |||
130 | * Add GNUtls support to eet. | ||
131 | |||
132 | 2008-11-14 Cedric BAIL | ||
133 | |||
134 | * Make password callback work with GNUtls. | ||
135 | |||
136 | 2008-11-26 Cedric BAIL | ||
137 | |||
138 | * Add a function to retrieve raw signature. | ||
139 | |||
140 | 2009-01-30 Cedric BAIL | ||
141 | |||
142 | * Fix a corrupted pointer use in eet_cipher.c | ||
143 | |||
144 | 2009-02-09 Chidambar Zinnoury | ||
145 | |||
146 | * Add some missing __UNUSED__ flags. | ||
147 | |||
148 | 2009-02-26 Luis Felipe Strano Moraes | ||
149 | |||
150 | * Fix problem reported by llvm | ||
151 | |||
152 | 2009-03-09 Cedric BAIL | ||
153 | |||
154 | * Add sha1 retrieval for an Eet_File. | ||
155 | |||
156 | 2009-03-17 Gustavo Sverzut Barbieri | ||
157 | |||
158 | * Force fsync() after data is written to file, solve ext4 issues. | ||
159 | |||
160 | 2009-03-18 Carsten Haitzler (The Rasterman) | ||
161 | |||
162 | * Disable fsync. Edit the code if you need it. | ||
163 | |||
164 | 2009-03-19 Cedric BAIL | ||
165 | |||
166 | * Make eet_data thread safe. | ||
167 | |||
168 | 2009-03-25 Cedric BAIL | ||
169 | |||
170 | * Fix eet pkg-config dependencies. | ||
171 | * Fix double init of gcry. | ||
172 | |||
173 | 2009-04-22 Carsten Haitzler (The Rasterman) | ||
174 | |||
175 | * Release eet 1.2.0 | ||
176 | |||
177 | 2009-05-18 Cedric BAIL | ||
178 | |||
179 | * Cleanup Eet_Data code. | ||
180 | |||
181 | 2009-06-02 Cedric BAIL | ||
182 | |||
183 | * Make eet_node API usable. | ||
184 | |||
185 | 2009-06-14 Carsten Haitzler (The Rasterman) | ||
186 | |||
187 | * Release eet 1.2.1 | ||
188 | |||
189 | 2009-07-08 Cedric BAIL | ||
190 | |||
191 | * Reorder gcry init to be used during gnutls init. | ||
192 | |||
193 | 2009-07-11 Hanspeter Portner | ||
194 | |||
195 | * Improve docs/examples in Eet.h | ||
196 | |||
197 | 2009-07-23 Cedric BAIL | ||
198 | |||
199 | * Fix init on system without SECMEM. | ||
200 | |||
201 | 2009-07-29 Carsten Haitzler (The Rasterman) | ||
202 | |||
203 | * Release eet 1.2.2 | ||
204 | |||
205 | 2009-08-13 Cedric BAIL | ||
206 | |||
207 | * Deprecating eet_data_descriptor*_new. | ||
208 | * Add eet_data_descriptor_stream_new and eet_data_descriptor_file_new. | ||
209 | * Add eina helper. | ||
210 | * Cleanup Eet_Data_Descriptor code. | ||
211 | |||
212 | 2009-08-16 Carsten Haitzler (The Rasterman) | ||
213 | |||
214 | * Fix eet data encode to encode empty structs etc. so save saves | ||
215 | something as opposed to nothing | ||
216 | |||
217 | 2009-08-16 Carsten Haitzler (The Rasterman) | ||
218 | |||
219 | * Fix documentation of eet_data_write() and eet_write() for return | ||
220 | value to return # of bytes written, not 1 or 0 | ||
221 | |||
222 | 2009-08-16 Vincent Torri | ||
223 | |||
224 | * Fix build with suncc (missing alloca() declaration in eet_cipher.c) | ||
225 | |||
226 | 2009-09-15 Mathieu Taillefumier | ||
227 | |||
228 | * Use new Eina_Log infrastructure to report error. | ||
229 | |||
230 | 2009-09-15 Cedric BAIL | ||
231 | |||
232 | * Remove apparently useless eet_freeleak_* from eet_data. | ||
233 | |||
234 | 2009-09-29 Cedric BAIL | ||
235 | |||
236 | * Add Fixed Point support and make it possible to switch from float | ||
237 | and double to any fixed point variant supported by eina. | ||
238 | |||
239 | Note: File saved with fixed point could be read by older version of | ||
240 | eet library with EET_T_DOUBLE type. | ||
241 | |||
242 | 2009-10-01 Mathieu Taillefumier | ||
243 | |||
244 | * remove useless Eina_Log macros. | ||
245 | |||
246 | 2009-10-01 Vincent Torri | ||
247 | |||
248 | * Check the returned value of eet_init() in the binary. | ||
249 | * Use binary mode of fopen() in eet_main() for Windows compatibility. | ||
250 | |||
251 | 2009-10-09 Vincent Torri | ||
252 | |||
253 | * initialize eina first in eet_init(). | ||
254 | |||
255 | 2009-11-02 Vincent Torri | ||
256 | |||
257 | * allow generation of one single file with all source code in it. | ||
258 | See configure help to enable it (--enable-amalgamation). | ||
259 | |||
260 | 2009-11-11 Vincent Torri | ||
261 | |||
262 | * Add check on libgcrypt library in configure. Needed when GNUtls | ||
263 | support is enabled. | ||
264 | |||
265 | 2009-12-02 Carsten Haitzler (The Rasterman) | ||
266 | |||
267 | * Release eet 1.2.3 | ||
268 | |||
269 | 2009-12-03 Cedric BAIL | ||
270 | |||
271 | * Make all operation on Eet_File thread safe. | ||
272 | |||
273 | 2009-12-07 Cedric BAIL | ||
274 | |||
275 | * Fix error when retrieving a different float type than the stored one. | ||
276 | * Reduce conversion with a little memory overhead. | ||
277 | |||
278 | 2009-12-07 Vincent Torri | ||
279 | |||
280 | * Include winsock2.h in eet_image.c for htonl definition on Windows. | ||
281 | * Fix Visual Studio project files | ||
282 | |||
283 | 2009-12-11 Cedric BAIL | ||
284 | |||
285 | * Make eet_data_descriptor_free safe to call on NULL pointer. | ||
286 | |||
287 | 2009-12-21 Cedric BAIL | ||
288 | |||
289 | * More work on eet_node dump code. | ||
290 | |||
291 | 2009-12-28 Cedric BAIL | ||
292 | |||
293 | * Add fully functionnal eet_node dump code. | ||
294 | |||
295 | 2009-12-29 Cedric BAIL | ||
296 | |||
297 | * Don't mess up when memory realloc failed during data descriptor creation. | ||
298 | |||
299 | 2010-01-04 Carsten Haitzler (The Rasterman) | ||
300 | |||
301 | * Fix another thread deadlock in mutex handling even in a single-threaded app. | ||
302 | |||
303 | 2010-01-12 Cedric BAIL | ||
304 | |||
305 | * Rewrite Eet_Data. Now you can do list/hash/array of strings and all | ||
306 | the test suite is passing. | ||
307 | * Add eet_data_node_decode_cipher and eet_data_node_read_cipher. | ||
308 | |||
309 | 2010-01-15 Cedric BAIL | ||
310 | |||
311 | * Fix amalgamation. | ||
312 | |||
313 | 2010-01-16 Vincent Torri | ||
314 | |||
315 | * eet_cipher.c: Fix arithmetic pointer on void * | ||
316 | |||
317 | 2010-01-17 Cedric BAIL | ||
318 | |||
319 | * Add a mempool for Eet_Node. | ||
320 | |||
321 | 2010-01-21 Cedric BAIL | ||
322 | |||
323 | * Add experimental API to walk Eet_Node tree. | ||
324 | |||
325 | 2010-01-22 Cedric BAIL | ||
326 | |||
327 | * Add VAR_ARRAY tests. | ||
328 | |||
329 | 2010-01-27 Cedric BAIL | ||
330 | |||
331 | * Improve security by zeroying cipher material as soon as possible. | ||
332 | |||
333 | 2010-01-27 Cedric BAIL | ||
334 | |||
335 | * Improve security by zeroying cipher material as soon as possible. | ||
336 | |||
337 | 2010-03-01 Albin Tonnerre | ||
338 | |||
339 | * Fix override of global symbols. | ||
340 | |||
341 | 2010-03-15 Adam Simpkins / Cedric BAIL | ||
342 | |||
343 | * Fix clearcache race condition. | ||
344 | |||
345 | 2010-04-02 Cedric BAIL | ||
346 | |||
347 | * Fix eet_data_node_read_cipher return type. | ||
348 | * Add Eet_Connection. | ||
349 | |||
350 | 2010-04-07 Cedric BAIL | ||
351 | |||
352 | * Improve eet_eina_file_data_descriptor_class_set by using | ||
353 | eina_hash_direct_add to avoid duplication hash key string. | ||
354 | |||
355 | 2010-04-08 Cedric BAIL | ||
356 | |||
357 | * Fix file corruption reported by Tiago Falcao <tiago@profusion.mobi> | ||
358 | |||
359 | 2010-04-09 Cedric BAIL | ||
360 | |||
361 | * Add eet_sync. | ||
362 | * Only delete the file at the last possible time. | ||
363 | * Reduce open file descriptor. | ||
364 | |||
365 | 2010-04-16 Cedric BAIL | ||
366 | |||
367 | * Handle fixed point in data stream. | ||
368 | |||
369 | 2010-04-21 Cedric BAIL | ||
370 | |||
371 | * Add EET_G_UNION and EET_G_VARIANT. | ||
372 | |||
373 | 2010-05-29 Carsten Haitzler (The Rasterman) | ||
374 | |||
375 | * Add EET_VERSION_MAJOR, EET_VERSION_MINOR. | ||
376 | * Add Eet_Version, eet_version. | ||
377 | * Make configure.ac use m4 defines for version | ||
378 | * Support SVN revision in version check | ||
379 | |||
380 | 2010-06-07 Carsten Haitzler (The Rasterman) | ||
381 | |||
382 | * Release eet 1.3.0 | ||
383 | |||
384 | 2010-06-27 Carsten Haitzler (The Rasterman) | ||
385 | |||
386 | * Release eet 1.3.2 | ||
387 | |||
388 | 2010-06-29 Vincent Torri | ||
389 | |||
390 | * On Windows 64, long is of size 32 bits and not 64 bits. Also | ||
391 | LONG_BIT is not defined on Windows. | ||
392 | |||
393 | 2010-06-29 Cedric BAIL | ||
394 | |||
395 | * Add eet_alias support. | ||
396 | * Fix possible dead lock in eet_write_cipher. | ||
397 | |||
398 | 2010-07-08 Carsten Haitzler (The Rasterman) | ||
399 | |||
400 | * Moved Eet.h into $includedir/eet-MAJOR_VERSION/ | ||
401 | |||
402 | 2010-07-15 Vincent Torri | ||
403 | |||
404 | * Add native Windows thread support instead of using pthread | ||
405 | (less overhead). On other OS, pthread is still used by default. | ||
406 | Pass --enable-win32-threads to activate thread support on | ||
407 | Windows. | ||
408 | |||
409 | 2010-07-20 Cedric BAIL | ||
410 | |||
411 | * Improve file change detection in eet_open by checking size also. | ||
412 | |||
413 | 2010-08-02 Cedric BAIL | ||
414 | |||
415 | * Fix bug in eet_connection code when running on 32bits machine. | ||
416 | |||
417 | 2010-08-06 Cedric BAIL | ||
418 | |||
419 | * Add EET_DATA_DESCRIPTOR_ADD_HASH_STRING. | ||
420 | |||
421 | 2010-08-06 Cedric BAIL | ||
422 | |||
423 | * Break eet_eina_* function helper to provide a clean API/ABI to | ||
424 | prevent futur break. This should prevent the ABI break that was | ||
425 | introduced with release 1.3.0. | ||
426 | |||
427 | * Add a specific allocator for array. This should fix wrong allocation | ||
428 | case discovered with recent edje file format change. | ||
429 | |||
430 | 2010-08-23 Carsten Haitzler (The Rasterman) | ||
431 | |||
432 | * Fix some cppcheck complaints - all of them bogus though. | ||
433 | Nothing actually fixed. | ||
434 | |||
435 | 2010-08-27 Cedric BAIL | ||
436 | |||
437 | * Prevent the build of eet data structure that doesn't match what | ||
438 | the application is expecting. | ||
439 | |||
440 | 2010-09-02 Cedric BAIL | ||
441 | |||
442 | * Fix bug of ever growing dictionnary and improve strcmp comparison. | ||
443 | |||
444 | 2010-11-12 Cedric BAIL | ||
445 | |||
446 | * Don't try to read broken file when open in READ_WRITE mode. | ||
447 | |||
448 | 2010-11-14 Cedric BAIL | ||
449 | |||
450 | * Fix bug with cypher and compression used together. | ||
451 | |||
452 | 2010-11-21 Carsten Haitzler (The Rasterman) | ||
453 | |||
454 | * Fix another bug related to cipher and compression (leak and | ||
455 | bad free) | ||
456 | |||
457 | 2010-11-25 Cedric BAIL | ||
458 | |||
459 | * Add EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY_STRING. | ||
460 | |||
461 | 2010-11-26 Cedric BAIL | ||
462 | |||
463 | * Reduce memory used by Eet dictionary. | ||
464 | |||
465 | 2010-11-29 Cedric BAIL | ||
466 | |||
467 | * Improve speed of Eet_String users. It does impact all string | ||
468 | encoding/decoding, but even faster for stringshare encoding. | ||
469 | |||
470 | * Improve speed when decoding mostly array with eet_data_read. | ||
471 | |||
472 | 2010-12-03 Cedric BAIL | ||
473 | |||
474 | * Improve portability. | ||
475 | |||
476 | 2010-12-07 Carsten Haitzler (The Rasterman) | ||
477 | |||
478 | * Move raw function pointer defs to typedefs in public API for | ||
479 | readability improvements. | ||
480 | |||
481 | 2011-01-29 Carsten Haitzler (The Rasterman) | ||
482 | |||
483 | * 1.4.0 release | ||
484 | |||
485 | 2011-01-29 Vincent Torri | ||
486 | |||
487 | * Use eina_stringshare_add() instead of strdup() on mmaped file names | ||
488 | on Windows. This fix eet shut down on Windows. | ||
489 | |||
490 | 2011-02-14 Cedric BAIL | ||
491 | |||
492 | * Improve Eet_Data to make decoding of EET_G_UNION and EET_G_*ARRAY | ||
493 | faster and less memory heavy. | ||
494 | |||
495 | 2011-05-14 Cedric BAIL | ||
496 | |||
497 | * Use Eina_Lock. | ||
498 | * Sync GNUTLS initialisation with Eina. | ||
499 | |||
500 | 2011-05-17 Cedric BAIL | ||
501 | |||
502 | * Use Eina_File. | ||
503 | * Fix test forgetting to initialize eet. | ||
504 | |||
505 | 2011-05-23 Vincent Torri | ||
506 | |||
507 | * Fix compilation with libjpeg 8 on Windows. | ||
508 | |||
509 | 2011-06-10 Cedric BAIL | ||
510 | |||
511 | * Add EET_DATA_DESCRIPTOR_ADD_LIST_STRING helper to define List of char *. | ||
512 | |||
513 | 2011-07-04 Mike Blumenkrantz | ||
514 | |||
515 | * Add functions to manipulate nodes: | ||
516 | eet_node_children_get, eet_node_next_get, eet_node_parent_get, | ||
517 | eet_node_type_get, eet_node_value_get, eet_node_name_get | ||
518 | * Fix segmentation faults in several eet_node functions | ||
519 | |||
520 | 2011-07-16 Vincent Torri | ||
521 | |||
522 | * On Windows, open() in text mode followed by fdopen() in | ||
523 | binary mode does not create a stream in binary mode. | ||
524 | So add O_BINARY to open(). | ||
525 | |||
526 | 2011-07-29 Mike Blumenkrantz | ||
527 | |||
528 | * Add eet_alias_get to return the destination name of an alias | ||
529 | |||
530 | 2011-09-15 Cedric Bail | ||
531 | |||
532 | * Add eet_data_xattr_cipher_get and eet_data_xattr_cipher_set. | ||
533 | |||
534 | 2011-10-04 Carsten Haitzler (The Rasterman) | ||
535 | |||
536 | * Fix issue where an empty eet file (no keys) is not openable | ||
537 | for read/write anymore. Allow it. | ||
538 | |||
539 | 2011-10-28 David Seikel (onefang) | ||
540 | |||
541 | * Added a new macro for adding arrays of basic types. | ||
542 | EET_DATA_DESCRIPTOR_ADD_BASIC_ARRAY | ||
543 | |||
544 | 2011-11-16 Carsten Haitzler (The Rasterman) | ||
545 | |||
546 | * JPEG encode and decode in eet now uses ISLOW (not IFAST) due to | ||
547 | noticable quality losses in the chase for speed. It will use | ||
548 | IFAST for quality less than 60 when encoding | ||
549 | |||
550 | 2011-12-02 Carsten Haitzler (The Rasterman) | ||
551 | |||
552 | 1.1.0 release | ||
553 | |||
554 | 2011-12-02 Mike Blumenkrantz | ||
555 | |||
556 | * added eet_file_get to return the filename of an Eet_File | ||
557 | * Eet_File filenames are now stringshared | ||
558 | * added mempool allocators | ||
559 | |||
560 | 2011-12-29 Carsten Haitzler (The Rasterman) | ||
561 | |||
562 | * increase eet_connection packet size to 1Mb - more reasonable. | ||
563 | |||
564 | 2012-01-07 Boris Faure (billiob) | ||
565 | |||
566 | * make eet tool write to standard output if no output file given. | ||
567 | |||
568 | 2012-02-09 Cedric Bail | ||
569 | |||
570 | * add support for GNUTLS 3.x. | ||
571 | |||
572 | 2012-02-10 Cedric Bail | ||
573 | |||
574 | * add eet_dictionary_count. | ||
575 | * add "eet -t FILE.EET". | ||
diff --git a/libraries/eet/INSTALL b/libraries/eet/INSTALL deleted file mode 100644 index 23e5f25..0000000 --- a/libraries/eet/INSTALL +++ /dev/null | |||
@@ -1,236 +0,0 @@ | |||
1 | Installation Instructions | ||
2 | ************************* | ||
3 | |||
4 | Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free | ||
5 | Software Foundation, Inc. | ||
6 | |||
7 | This file is free documentation; the Free Software Foundation gives | ||
8 | unlimited permission to copy, distribute and modify it. | ||
9 | |||
10 | Basic Installation | ||
11 | ================== | ||
12 | |||
13 | These are generic installation instructions. | ||
14 | |||
15 | The `configure' shell script attempts to guess correct values for | ||
16 | various system-dependent variables used during compilation. It uses | ||
17 | those values to create a `Makefile' in each directory of the package. | ||
18 | It may also create one or more `.h' files containing system-dependent | ||
19 | definitions. Finally, it creates a shell script `config.status' that | ||
20 | you can run in the future to recreate the current configuration, and a | ||
21 | file `config.log' containing compiler output (useful mainly for | ||
22 | debugging `configure'). | ||
23 | |||
24 | It can also use an optional file (typically called `config.cache' | ||
25 | and enabled with `--cache-file=config.cache' or simply `-C') that saves | ||
26 | the results of its tests to speed up reconfiguring. (Caching is | ||
27 | disabled by default to prevent problems with accidental use of stale | ||
28 | cache files.) | ||
29 | |||
30 | If you need to do unusual things to compile the package, please try | ||
31 | to figure out how `configure' could check whether to do them, and mail | ||
32 | diffs or instructions to the address given in the `README' so they can | ||
33 | be considered for the next release. If you are using the cache, and at | ||
34 | some point `config.cache' contains results you don't want to keep, you | ||
35 | may remove or edit it. | ||
36 | |||
37 | The file `configure.ac' (or `configure.in') is used to create | ||
38 | `configure' by a program called `autoconf'. You only need | ||
39 | `configure.ac' if you want to change it or regenerate `configure' using | ||
40 | a newer version of `autoconf'. | ||
41 | |||
42 | The simplest way to compile this package is: | ||
43 | |||
44 | 1. `cd' to the directory containing the package's source code and type | ||
45 | `./configure' to configure the package for your system. If you're | ||
46 | using `csh' on an old version of System V, you might need to type | ||
47 | `sh ./configure' instead to prevent `csh' from trying to execute | ||
48 | `configure' itself. | ||
49 | |||
50 | Running `configure' takes awhile. While running, it prints some | ||
51 | messages telling which features it is checking for. | ||
52 | |||
53 | 2. Type `make' to compile the package. | ||
54 | |||
55 | 3. Optionally, type `make check' to run any self-tests that come with | ||
56 | the package. | ||
57 | |||
58 | 4. Type `make install' to install the programs and any data files and | ||
59 | documentation. | ||
60 | |||
61 | 5. You can remove the program binaries and object files from the | ||
62 | source code directory by typing `make clean'. To also remove the | ||
63 | files that `configure' created (so you can compile the package for | ||
64 | a different kind of computer), type `make distclean'. There is | ||
65 | also a `make maintainer-clean' target, but that is intended mainly | ||
66 | for the package's developers. If you use it, you may have to get | ||
67 | all sorts of other programs in order to regenerate files that came | ||
68 | with the distribution. | ||
69 | |||
70 | Compilers and Options | ||
71 | ===================== | ||
72 | |||
73 | Some systems require unusual options for compilation or linking that the | ||
74 | `configure' script does not know about. Run `./configure --help' for | ||
75 | details on some of the pertinent environment variables. | ||
76 | |||
77 | You can give `configure' initial values for configuration parameters | ||
78 | by setting variables in the command line or in the environment. Here | ||
79 | is an example: | ||
80 | |||
81 | ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix | ||
82 | |||
83 | *Note Defining Variables::, for more details. | ||
84 | |||
85 | Compiling For Multiple Architectures | ||
86 | ==================================== | ||
87 | |||
88 | You can compile the package for more than one kind of computer at the | ||
89 | same time, by placing the object files for each architecture in their | ||
90 | own directory. To do this, you must use a version of `make' that | ||
91 | supports the `VPATH' variable, such as GNU `make'. `cd' to the | ||
92 | directory where you want the object files and executables to go and run | ||
93 | the `configure' script. `configure' automatically checks for the | ||
94 | source code in the directory that `configure' is in and in `..'. | ||
95 | |||
96 | If you have to use a `make' that does not support the `VPATH' | ||
97 | variable, you have to compile the package for one architecture at a | ||
98 | time in the source code directory. After you have installed the | ||
99 | package for one architecture, use `make distclean' before reconfiguring | ||
100 | for another architecture. | ||
101 | |||
102 | Installation Names | ||
103 | ================== | ||
104 | |||
105 | By default, `make install' installs the package's commands under | ||
106 | `/usr/local/bin', include files under `/usr/local/include', etc. You | ||
107 | can specify an installation prefix other than `/usr/local' by giving | ||
108 | `configure' the option `--prefix=PREFIX'. | ||
109 | |||
110 | You can specify separate installation prefixes for | ||
111 | architecture-specific files and architecture-independent files. If you | ||
112 | pass the option `--exec-prefix=PREFIX' to `configure', the package uses | ||
113 | PREFIX as the prefix for installing programs and libraries. | ||
114 | Documentation and other data files still use the regular prefix. | ||
115 | |||
116 | In addition, if you use an unusual directory layout you can give | ||
117 | options like `--bindir=DIR' to specify different values for particular | ||
118 | kinds of files. Run `configure --help' for a list of the directories | ||
119 | you can set and what kinds of files go in them. | ||
120 | |||
121 | If the package supports it, you can cause programs to be installed | ||
122 | with an extra prefix or suffix on their names by giving `configure' the | ||
123 | option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. | ||
124 | |||
125 | Optional Features | ||
126 | ================= | ||
127 | |||
128 | Some packages pay attention to `--enable-FEATURE' options to | ||
129 | `configure', where FEATURE indicates an optional part of the package. | ||
130 | They may also pay attention to `--with-PACKAGE' options, where PACKAGE | ||
131 | is something like `gnu-as' or `x' (for the X Window System). The | ||
132 | `README' should mention any `--enable-' and `--with-' options that the | ||
133 | package recognizes. | ||
134 | |||
135 | For packages that use the X Window System, `configure' can usually | ||
136 | find the X include and library files automatically, but if it doesn't, | ||
137 | you can use the `configure' options `--x-includes=DIR' and | ||
138 | `--x-libraries=DIR' to specify their locations. | ||
139 | |||
140 | Specifying the System Type | ||
141 | ========================== | ||
142 | |||
143 | There may be some features `configure' cannot figure out automatically, | ||
144 | but needs to determine by the type of machine the package will run on. | ||
145 | Usually, assuming the package is built to be run on the _same_ | ||
146 | architectures, `configure' can figure that out, but if it prints a | ||
147 | message saying it cannot guess the machine type, give it the | ||
148 | `--build=TYPE' option. TYPE can either be a short name for the system | ||
149 | type, such as `sun4', or a canonical name which has the form: | ||
150 | |||
151 | CPU-COMPANY-SYSTEM | ||
152 | |||
153 | where SYSTEM can have one of these forms: | ||
154 | |||
155 | OS KERNEL-OS | ||
156 | |||
157 | See the file `config.sub' for the possible values of each field. If | ||
158 | `config.sub' isn't included in this package, then this package doesn't | ||
159 | need to know the machine type. | ||
160 | |||
161 | If you are _building_ compiler tools for cross-compiling, you should | ||
162 | use the option `--target=TYPE' to select the type of system they will | ||
163 | produce code for. | ||
164 | |||
165 | If you want to _use_ a cross compiler, that generates code for a | ||
166 | platform different from the build platform, you should specify the | ||
167 | "host" platform (i.e., that on which the generated programs will | ||
168 | eventually be run) with `--host=TYPE'. | ||
169 | |||
170 | Sharing Defaults | ||
171 | ================ | ||
172 | |||
173 | If you want to set default values for `configure' scripts to share, you | ||
174 | can create a site shell script called `config.site' that gives default | ||
175 | values for variables like `CC', `cache_file', and `prefix'. | ||
176 | `configure' looks for `PREFIX/share/config.site' if it exists, then | ||
177 | `PREFIX/etc/config.site' if it exists. Or, you can set the | ||
178 | `CONFIG_SITE' environment variable to the location of the site script. | ||
179 | A warning: not all `configure' scripts look for a site script. | ||
180 | |||
181 | Defining Variables | ||
182 | ================== | ||
183 | |||
184 | Variables not defined in a site shell script can be set in the | ||
185 | environment passed to `configure'. However, some packages may run | ||
186 | configure again during the build, and the customized values of these | ||
187 | variables may be lost. In order to avoid this problem, you should set | ||
188 | them in the `configure' command line, using `VAR=value'. For example: | ||
189 | |||
190 | ./configure CC=/usr/local2/bin/gcc | ||
191 | |||
192 | causes the specified `gcc' to be used as the C compiler (unless it is | ||
193 | overridden in the site shell script). Here is a another example: | ||
194 | |||
195 | /bin/bash ./configure CONFIG_SHELL=/bin/bash | ||
196 | |||
197 | Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent | ||
198 | configuration-related scripts to be executed by `/bin/bash'. | ||
199 | |||
200 | `configure' Invocation | ||
201 | ====================== | ||
202 | |||
203 | `configure' recognizes the following options to control how it operates. | ||
204 | |||
205 | `--help' | ||
206 | `-h' | ||
207 | Print a summary of the options to `configure', and exit. | ||
208 | |||
209 | `--version' | ||
210 | `-V' | ||
211 | Print the version of Autoconf used to generate the `configure' | ||
212 | script, and exit. | ||
213 | |||
214 | `--cache-file=FILE' | ||
215 | Enable the cache: use and save the results of the tests in FILE, | ||
216 | traditionally `config.cache'. FILE defaults to `/dev/null' to | ||
217 | disable caching. | ||
218 | |||
219 | `--config-cache' | ||
220 | `-C' | ||
221 | Alias for `--cache-file=config.cache'. | ||
222 | |||
223 | `--quiet' | ||
224 | `--silent' | ||
225 | `-q' | ||
226 | Do not print messages saying which checks are being made. To | ||
227 | suppress all normal output, redirect it to `/dev/null' (any error | ||
228 | messages will still be shown). | ||
229 | |||
230 | `--srcdir=DIR' | ||
231 | Look for the package's source code in directory DIR. Usually | ||
232 | `configure' can determine that directory automatically. | ||
233 | |||
234 | `configure' also accepts some other, not widely useful, options. Run | ||
235 | `configure --help' for more details. | ||
236 | |||
diff --git a/libraries/eet/Makefile.am b/libraries/eet/Makefile.am deleted file mode 100644 index d3622dc..0000000 --- a/libraries/eet/Makefile.am +++ /dev/null | |||
@@ -1,99 +0,0 @@ | |||
1 | ACLOCAL_AMFLAGS = -I m4 | ||
2 | |||
3 | SUBDIRS = src doc | ||
4 | |||
5 | MAINTAINERCLEANFILES = \ | ||
6 | Makefile.in \ | ||
7 | aclocal.m4 \ | ||
8 | compile \ | ||
9 | config.guess \ | ||
10 | config.h.in \ | ||
11 | config.h.in~ \ | ||
12 | config.sub \ | ||
13 | configure \ | ||
14 | depcomp \ | ||
15 | install-sh \ | ||
16 | ltmain.sh \ | ||
17 | missing \ | ||
18 | $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz \ | ||
19 | $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.bz2 \ | ||
20 | $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc.tar.bz2 \ | ||
21 | m4/libtool.m4 \ | ||
22 | m4/lt~obsolete.m4 \ | ||
23 | m4/ltoptions.m4 \ | ||
24 | m4/ltsugar.m4 \ | ||
25 | m4/ltversion.m4 | ||
26 | |||
27 | EXTRA_DIST = \ | ||
28 | AUTHORS \ | ||
29 | COPYING \ | ||
30 | autogen.sh \ | ||
31 | eet.pc.in \ | ||
32 | eet.spec.in \ | ||
33 | eet.spec \ | ||
34 | m4/ac_attribute.m4 \ | ||
35 | m4/ac_path_generic.m4 \ | ||
36 | m4/efl_binary.m4 \ | ||
37 | m4/efl_coverage.m4 \ | ||
38 | m4/efl_doxygen.m4 \ | ||
39 | m4/efl_fnmatch.m4 \ | ||
40 | m4/efl_tests.m4 \ | ||
41 | m4/efl_path_max.m4 | ||
42 | |||
43 | pkgconfigdir = $(libdir)/pkgconfig | ||
44 | pkgconfig_DATA = eet.pc | ||
45 | |||
46 | .PHONY: doc coverage | ||
47 | |||
48 | # Documentation | ||
49 | |||
50 | doc: | ||
51 | @echo "entering doc/" | ||
52 | $(MAKE) -C doc doc | ||
53 | |||
54 | # Unit tests | ||
55 | |||
56 | if EFL_ENABLE_TESTS | ||
57 | |||
58 | check-local: | ||
59 | @./src/tests/eet_suite | ||
60 | |||
61 | else | ||
62 | |||
63 | check-local: | ||
64 | @echo "reconfigure with --enable-tests" | ||
65 | |||
66 | endif | ||
67 | |||
68 | # Coverage report | ||
69 | |||
70 | if EFL_ENABLE_COVERAGE | ||
71 | lcov-reset: | ||
72 | @rm -rf $(top_builddir)/coverage | ||
73 | @find $(top_builddir) -name "*.gcda" -delete | ||
74 | @lcov --zerocounters --directory $(top_builddir) | ||
75 | |||
76 | lcov-report: | ||
77 | @mkdir $(top_builddir)/coverage | ||
78 | lcov --capture --compat-libtool --output-file $(top_builddir)/coverage/coverage.info --directory $(top_builddir) | ||
79 | lcov --remove $(top_builddir)/coverage/coverage.info '*.h' --output-file $(top_builddir)/coverage/coverage.cleaned.info | ||
80 | genhtml -t "$(PACKAGE_STRING)" -o $(top_builddir)/coverage/html $(top_builddir)/coverage/coverage.cleaned.info | ||
81 | @echo "Coverage Report at $(top_builddir)/coverage/html" | ||
82 | |||
83 | coverage: | ||
84 | @$(MAKE) lcov-reset | ||
85 | @$(MAKE) check | ||
86 | @$(MAKE) lcov-report | ||
87 | |||
88 | clean-local: | ||
89 | @rm -rf coverage | ||
90 | else | ||
91 | lcov-reset: | ||
92 | @echo "reconfigure with --enable-coverage" | ||
93 | |||
94 | lcov-report: | ||
95 | @echo "reconfigure with --enable-coverage" | ||
96 | |||
97 | coverage: | ||
98 | @echo "reconfigure with --enable-tests --enable-coverage" | ||
99 | endif | ||
diff --git a/libraries/eet/Makefile.in b/libraries/eet/Makefile.in deleted file mode 100644 index fb2955c..0000000 --- a/libraries/eet/Makefile.in +++ /dev/null | |||
@@ -1,914 +0,0 @@ | |||
1 | # Makefile.in generated by automake 1.11.1 from Makefile.am. | ||
2 | # @configure_input@ | ||
3 | |||
4 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, | ||
5 | # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, | ||
6 | # Inc. | ||
7 | # This Makefile.in is free software; the Free Software Foundation | ||
8 | # gives unlimited permission to copy and/or distribute it, | ||
9 | # with or without modifications, as long as this notice is preserved. | ||
10 | |||
11 | # This program is distributed in the hope that it will be useful, | ||
12 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | ||
13 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | ||
14 | # PARTICULAR PURPOSE. | ||
15 | |||
16 | @SET_MAKE@ | ||
17 | |||
18 | VPATH = @srcdir@ | ||
19 | pkgdatadir = $(datadir)/@PACKAGE@ | ||
20 | pkgincludedir = $(includedir)/@PACKAGE@ | ||
21 | pkglibdir = $(libdir)/@PACKAGE@ | ||
22 | pkglibexecdir = $(libexecdir)/@PACKAGE@ | ||
23 | am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | ||
24 | install_sh_DATA = $(install_sh) -c -m 644 | ||
25 | install_sh_PROGRAM = $(install_sh) -c | ||
26 | install_sh_SCRIPT = $(install_sh) -c | ||
27 | INSTALL_HEADER = $(INSTALL_DATA) | ||
28 | transform = $(program_transform_name) | ||
29 | NORMAL_INSTALL = : | ||
30 | PRE_INSTALL = : | ||
31 | POST_INSTALL = : | ||
32 | NORMAL_UNINSTALL = : | ||
33 | PRE_UNINSTALL = : | ||
34 | POST_UNINSTALL = : | ||
35 | build_triplet = @build@ | ||
36 | host_triplet = @host@ | ||
37 | subdir = . | ||
38 | DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ | ||
39 | $(srcdir)/Makefile.in $(srcdir)/config.h.in \ | ||
40 | $(srcdir)/eet.pc.in $(srcdir)/eet.spec.in \ | ||
41 | $(top_srcdir)/configure ABOUT-NLS AUTHORS COPYING ChangeLog \ | ||
42 | INSTALL NEWS compile config.guess config.sub depcomp \ | ||
43 | install-sh ltmain.sh missing | ||
44 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | ||
45 | am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \ | ||
46 | $(top_srcdir)/m4/ac_path_generic.m4 \ | ||
47 | $(top_srcdir)/m4/efl_binary.m4 \ | ||
48 | $(top_srcdir)/m4/efl_compiler_flag.m4 \ | ||
49 | $(top_srcdir)/m4/efl_coverage.m4 \ | ||
50 | $(top_srcdir)/m4/efl_doxygen.m4 \ | ||
51 | $(top_srcdir)/m4/efl_fnmatch.m4 \ | ||
52 | $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ | ||
53 | $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ | ||
54 | $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ | ||
55 | $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac | ||
56 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | ||
57 | $(ACLOCAL_M4) | ||
58 | am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ | ||
59 | configure.lineno config.status.lineno | ||
60 | mkinstalldirs = $(install_sh) -d | ||
61 | CONFIG_HEADER = config.h | ||
62 | CONFIG_CLEAN_FILES = eet.pc eet.spec | ||
63 | CONFIG_CLEAN_VPATH_FILES = | ||
64 | AM_V_GEN = $(am__v_GEN_$(V)) | ||
65 | am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) | ||
66 | am__v_GEN_0 = @echo " GEN " $@; | ||
67 | AM_V_at = $(am__v_at_$(V)) | ||
68 | am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) | ||
69 | am__v_at_0 = @ | ||
70 | SOURCES = | ||
71 | DIST_SOURCES = | ||
72 | RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ | ||
73 | html-recursive info-recursive install-data-recursive \ | ||
74 | install-dvi-recursive install-exec-recursive \ | ||
75 | install-html-recursive install-info-recursive \ | ||
76 | install-pdf-recursive install-ps-recursive install-recursive \ | ||
77 | installcheck-recursive installdirs-recursive pdf-recursive \ | ||
78 | ps-recursive uninstall-recursive | ||
79 | am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; | ||
80 | am__vpath_adj = case $$p in \ | ||
81 | $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ | ||
82 | *) f=$$p;; \ | ||
83 | esac; | ||
84 | am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; | ||
85 | am__install_max = 40 | ||
86 | am__nobase_strip_setup = \ | ||
87 | srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` | ||
88 | am__nobase_strip = \ | ||
89 | for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" | ||
90 | am__nobase_list = $(am__nobase_strip_setup); \ | ||
91 | for p in $$list; do echo "$$p $$p"; done | \ | ||
92 | sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ | ||
93 | $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ | ||
94 | if (++n[$$2] == $(am__install_max)) \ | ||
95 | { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ | ||
96 | END { for (dir in files) print dir, files[dir] }' | ||
97 | am__base_list = \ | ||
98 | sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ | ||
99 | sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | ||
100 | am__installdirs = "$(DESTDIR)$(pkgconfigdir)" | ||
101 | DATA = $(pkgconfig_DATA) | ||
102 | RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ | ||
103 | distclean-recursive maintainer-clean-recursive | ||
104 | AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ | ||
105 | $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ | ||
106 | distdir dist dist-all distcheck | ||
107 | ETAGS = etags | ||
108 | CTAGS = ctags | ||
109 | DIST_SUBDIRS = $(SUBDIRS) | ||
110 | DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | ||
111 | distdir = $(PACKAGE)-$(VERSION) | ||
112 | top_distdir = $(distdir) | ||
113 | am__remove_distdir = \ | ||
114 | { test ! -d "$(distdir)" \ | ||
115 | || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ | ||
116 | && rm -fr "$(distdir)"; }; } | ||
117 | am__relativize = \ | ||
118 | dir0=`pwd`; \ | ||
119 | sed_first='s,^\([^/]*\)/.*$$,\1,'; \ | ||
120 | sed_rest='s,^[^/]*/*,,'; \ | ||
121 | sed_last='s,^.*/\([^/]*\)$$,\1,'; \ | ||
122 | sed_butlast='s,/*[^/]*$$,,'; \ | ||
123 | while test -n "$$dir1"; do \ | ||
124 | first=`echo "$$dir1" | sed -e "$$sed_first"`; \ | ||
125 | if test "$$first" != "."; then \ | ||
126 | if test "$$first" = ".."; then \ | ||
127 | dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ | ||
128 | dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ | ||
129 | else \ | ||
130 | first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ | ||
131 | if test "$$first2" = "$$first"; then \ | ||
132 | dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ | ||
133 | else \ | ||
134 | dir2="../$$dir2"; \ | ||
135 | fi; \ | ||
136 | dir0="$$dir0"/"$$first"; \ | ||
137 | fi; \ | ||
138 | fi; \ | ||
139 | dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ | ||
140 | done; \ | ||
141 | reldir="$$dir2" | ||
142 | DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 | ||
143 | GZIP_ENV = --best | ||
144 | distuninstallcheck_listfiles = find . -type f -print | ||
145 | distcleancheck_listfiles = find . -type f -print | ||
146 | ACLOCAL = @ACLOCAL@ | ||
147 | ALLOCA = @ALLOCA@ | ||
148 | AMTAR = @AMTAR@ | ||
149 | AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ | ||
150 | AR = @AR@ | ||
151 | AS = @AS@ | ||
152 | AUTOCONF = @AUTOCONF@ | ||
153 | AUTOHEADER = @AUTOHEADER@ | ||
154 | AUTOMAKE = @AUTOMAKE@ | ||
155 | AWK = @AWK@ | ||
156 | CC = @CC@ | ||
157 | CCDEPMODE = @CCDEPMODE@ | ||
158 | CFLAGS = @CFLAGS@ | ||
159 | CHECK_CFLAGS = @CHECK_CFLAGS@ | ||
160 | CHECK_LIBS = @CHECK_LIBS@ | ||
161 | CPP = @CPP@ | ||
162 | CPPFLAGS = @CPPFLAGS@ | ||
163 | CYGPATH_W = @CYGPATH_W@ | ||
164 | DEBUG_CFLAGS = @DEBUG_CFLAGS@ | ||
165 | DEFS = @DEFS@ | ||
166 | DEPDIR = @DEPDIR@ | ||
167 | DLLTOOL = @DLLTOOL@ | ||
168 | DSYMUTIL = @DSYMUTIL@ | ||
169 | DUMPBIN = @DUMPBIN@ | ||
170 | ECHO_C = @ECHO_C@ | ||
171 | ECHO_N = @ECHO_N@ | ||
172 | ECHO_T = @ECHO_T@ | ||
173 | EET_CFLAGS = @EET_CFLAGS@ | ||
174 | EET_CPPFLAGS = @EET_CPPFLAGS@ | ||
175 | EET_LIBS = @EET_LIBS@ | ||
176 | EET_PRG = @EET_PRG@ | ||
177 | EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@ | ||
178 | EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@ | ||
179 | EFL_EET_BUILD = @EFL_EET_BUILD@ | ||
180 | EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@ | ||
181 | EGREP = @EGREP@ | ||
182 | EINA_CFLAGS = @EINA_CFLAGS@ | ||
183 | EINA_LIBS = @EINA_LIBS@ | ||
184 | EVIL_CFLAGS = @EVIL_CFLAGS@ | ||
185 | EVIL_LIBS = @EVIL_LIBS@ | ||
186 | EXEEXT = @EXEEXT@ | ||
187 | EXOTIC_CFLAGS = @EXOTIC_CFLAGS@ | ||
188 | EXOTIC_LIBS = @EXOTIC_LIBS@ | ||
189 | FGREP = @FGREP@ | ||
190 | GNUTLS_CFLAGS = @GNUTLS_CFLAGS@ | ||
191 | GNUTLS_LIBS = @GNUTLS_LIBS@ | ||
192 | GREP = @GREP@ | ||
193 | INSTALL = @INSTALL@ | ||
194 | INSTALL_DATA = @INSTALL_DATA@ | ||
195 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ | ||
196 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ | ||
197 | INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | ||
198 | LD = @LD@ | ||
199 | LDFLAGS = @LDFLAGS@ | ||
200 | LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@ | ||
201 | LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@ | ||
202 | LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@ | ||
203 | LIBOBJS = @LIBOBJS@ | ||
204 | LIBS = @LIBS@ | ||
205 | LIBTOOL = @LIBTOOL@ | ||
206 | LIPO = @LIPO@ | ||
207 | LN_S = @LN_S@ | ||
208 | LTLIBOBJS = @LTLIBOBJS@ | ||
209 | MAKEINFO = @MAKEINFO@ | ||
210 | MKDIR_P = @MKDIR_P@ | ||
211 | NM = @NM@ | ||
212 | NMEDIT = @NMEDIT@ | ||
213 | OBJDUMP = @OBJDUMP@ | ||
214 | OBJEXT = @OBJEXT@ | ||
215 | OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ | ||
216 | OPENSSL_LIBS = @OPENSSL_LIBS@ | ||
217 | OTOOL = @OTOOL@ | ||
218 | OTOOL64 = @OTOOL64@ | ||
219 | PACKAGE = @PACKAGE@ | ||
220 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | ||
221 | PACKAGE_NAME = @PACKAGE_NAME@ | ||
222 | PACKAGE_STRING = @PACKAGE_STRING@ | ||
223 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ | ||
224 | PACKAGE_URL = @PACKAGE_URL@ | ||
225 | PACKAGE_VERSION = @PACKAGE_VERSION@ | ||
226 | PATH_SEPARATOR = @PATH_SEPARATOR@ | ||
227 | PKG_CONFIG = @PKG_CONFIG@ | ||
228 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ | ||
229 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ | ||
230 | RANLIB = @RANLIB@ | ||
231 | SED = @SED@ | ||
232 | SET_MAKE = @SET_MAKE@ | ||
233 | SHELL = @SHELL@ | ||
234 | STRIP = @STRIP@ | ||
235 | VERSION = @VERSION@ | ||
236 | VMAJ = @VMAJ@ | ||
237 | abs_builddir = @abs_builddir@ | ||
238 | abs_srcdir = @abs_srcdir@ | ||
239 | abs_top_builddir = @abs_top_builddir@ | ||
240 | abs_top_srcdir = @abs_top_srcdir@ | ||
241 | ac_ct_CC = @ac_ct_CC@ | ||
242 | ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ | ||
243 | am__include = @am__include@ | ||
244 | am__leading_dot = @am__leading_dot@ | ||
245 | am__quote = @am__quote@ | ||
246 | am__tar = @am__tar@ | ||
247 | am__untar = @am__untar@ | ||
248 | bindir = @bindir@ | ||
249 | build = @build@ | ||
250 | build_alias = @build_alias@ | ||
251 | build_cpu = @build_cpu@ | ||
252 | build_os = @build_os@ | ||
253 | build_vendor = @build_vendor@ | ||
254 | builddir = @builddir@ | ||
255 | datadir = @datadir@ | ||
256 | datarootdir = @datarootdir@ | ||
257 | docdir = @docdir@ | ||
258 | dvidir = @dvidir@ | ||
259 | efl_doxygen = @efl_doxygen@ | ||
260 | efl_have_doxygen = @efl_have_doxygen@ | ||
261 | exec_prefix = @exec_prefix@ | ||
262 | have_lcov = @have_lcov@ | ||
263 | host = @host@ | ||
264 | host_alias = @host_alias@ | ||
265 | host_cpu = @host_cpu@ | ||
266 | host_os = @host_os@ | ||
267 | host_vendor = @host_vendor@ | ||
268 | htmldir = @htmldir@ | ||
269 | includedir = @includedir@ | ||
270 | infodir = @infodir@ | ||
271 | install_sh = @install_sh@ | ||
272 | libdir = @libdir@ | ||
273 | libexecdir = @libexecdir@ | ||
274 | localedir = @localedir@ | ||
275 | localstatedir = @localstatedir@ | ||
276 | lt_ECHO = @lt_ECHO@ | ||
277 | lt_enable_auto_import = @lt_enable_auto_import@ | ||
278 | mandir = @mandir@ | ||
279 | mkdir_p = @mkdir_p@ | ||
280 | oldincludedir = @oldincludedir@ | ||
281 | pdfdir = @pdfdir@ | ||
282 | pkgconfig_requires_private = @pkgconfig_requires_private@ | ||
283 | prefix = @prefix@ | ||
284 | program_transform_name = @program_transform_name@ | ||
285 | psdir = @psdir@ | ||
286 | release_info = @release_info@ | ||
287 | requirement_eet = @requirement_eet@ | ||
288 | sbindir = @sbindir@ | ||
289 | sharedstatedir = @sharedstatedir@ | ||
290 | srcdir = @srcdir@ | ||
291 | sysconfdir = @sysconfdir@ | ||
292 | target_alias = @target_alias@ | ||
293 | top_build_prefix = @top_build_prefix@ | ||
294 | top_builddir = @top_builddir@ | ||
295 | top_srcdir = @top_srcdir@ | ||
296 | version_info = @version_info@ | ||
297 | ACLOCAL_AMFLAGS = -I m4 | ||
298 | SUBDIRS = src doc | ||
299 | MAINTAINERCLEANFILES = \ | ||
300 | Makefile.in \ | ||
301 | aclocal.m4 \ | ||
302 | compile \ | ||
303 | config.guess \ | ||
304 | config.h.in \ | ||
305 | config.h.in~ \ | ||
306 | config.sub \ | ||
307 | configure \ | ||
308 | depcomp \ | ||
309 | install-sh \ | ||
310 | ltmain.sh \ | ||
311 | missing \ | ||
312 | $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz \ | ||
313 | $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.bz2 \ | ||
314 | $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc.tar.bz2 \ | ||
315 | m4/libtool.m4 \ | ||
316 | m4/lt~obsolete.m4 \ | ||
317 | m4/ltoptions.m4 \ | ||
318 | m4/ltsugar.m4 \ | ||
319 | m4/ltversion.m4 | ||
320 | |||
321 | EXTRA_DIST = \ | ||
322 | AUTHORS \ | ||
323 | COPYING \ | ||
324 | autogen.sh \ | ||
325 | eet.pc.in \ | ||
326 | eet.spec.in \ | ||
327 | eet.spec \ | ||
328 | m4/ac_attribute.m4 \ | ||
329 | m4/ac_path_generic.m4 \ | ||
330 | m4/efl_binary.m4 \ | ||
331 | m4/efl_coverage.m4 \ | ||
332 | m4/efl_doxygen.m4 \ | ||
333 | m4/efl_fnmatch.m4 \ | ||
334 | m4/efl_tests.m4 \ | ||
335 | m4/efl_path_max.m4 | ||
336 | |||
337 | pkgconfigdir = $(libdir)/pkgconfig | ||
338 | pkgconfig_DATA = eet.pc | ||
339 | all: config.h | ||
340 | $(MAKE) $(AM_MAKEFLAGS) all-recursive | ||
341 | |||
342 | .SUFFIXES: | ||
343 | am--refresh: | ||
344 | @: | ||
345 | $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) | ||
346 | @for dep in $?; do \ | ||
347 | case '$(am__configure_deps)' in \ | ||
348 | *$$dep*) \ | ||
349 | echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ | ||
350 | $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ | ||
351 | && exit 0; \ | ||
352 | exit 1;; \ | ||
353 | esac; \ | ||
354 | done; \ | ||
355 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ | ||
356 | $(am__cd) $(top_srcdir) && \ | ||
357 | $(AUTOMAKE) --gnu Makefile | ||
358 | .PRECIOUS: Makefile | ||
359 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | ||
360 | @case '$?' in \ | ||
361 | *config.status*) \ | ||
362 | echo ' $(SHELL) ./config.status'; \ | ||
363 | $(SHELL) ./config.status;; \ | ||
364 | *) \ | ||
365 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ | ||
366 | cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ | ||
367 | esac; | ||
368 | |||
369 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | ||
370 | $(SHELL) ./config.status --recheck | ||
371 | |||
372 | $(top_srcdir)/configure: $(am__configure_deps) | ||
373 | $(am__cd) $(srcdir) && $(AUTOCONF) | ||
374 | $(ACLOCAL_M4): $(am__aclocal_m4_deps) | ||
375 | $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) | ||
376 | $(am__aclocal_m4_deps): | ||
377 | |||
378 | config.h: stamp-h1 | ||
379 | @if test ! -f $@; then \ | ||
380 | rm -f stamp-h1; \ | ||
381 | $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ | ||
382 | else :; fi | ||
383 | |||
384 | stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status | ||
385 | @rm -f stamp-h1 | ||
386 | cd $(top_builddir) && $(SHELL) ./config.status config.h | ||
387 | $(srcdir)/config.h.in: $(am__configure_deps) | ||
388 | ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) | ||
389 | rm -f stamp-h1 | ||
390 | touch $@ | ||
391 | |||
392 | distclean-hdr: | ||
393 | -rm -f config.h stamp-h1 | ||
394 | eet.pc: $(top_builddir)/config.status $(srcdir)/eet.pc.in | ||
395 | cd $(top_builddir) && $(SHELL) ./config.status $@ | ||
396 | eet.spec: $(top_builddir)/config.status $(srcdir)/eet.spec.in | ||
397 | cd $(top_builddir) && $(SHELL) ./config.status $@ | ||
398 | |||
399 | mostlyclean-libtool: | ||
400 | -rm -f *.lo | ||
401 | |||
402 | clean-libtool: | ||
403 | -rm -rf .libs _libs | ||
404 | |||
405 | distclean-libtool: | ||
406 | -rm -f libtool config.lt | ||
407 | install-pkgconfigDATA: $(pkgconfig_DATA) | ||
408 | @$(NORMAL_INSTALL) | ||
409 | test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" | ||
410 | @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ | ||
411 | for p in $$list; do \ | ||
412 | if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ | ||
413 | echo "$$d$$p"; \ | ||
414 | done | $(am__base_list) | \ | ||
415 | while read files; do \ | ||
416 | echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ | ||
417 | $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ | ||
418 | done | ||
419 | |||
420 | uninstall-pkgconfigDATA: | ||
421 | @$(NORMAL_UNINSTALL) | ||
422 | @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ | ||
423 | files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ | ||
424 | test -n "$$files" || exit 0; \ | ||
425 | echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ | ||
426 | cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files | ||
427 | |||
428 | # This directory's subdirectories are mostly independent; you can cd | ||
429 | # into them and run `make' without going through this Makefile. | ||
430 | # To change the values of `make' variables: instead of editing Makefiles, | ||
431 | # (1) if the variable is set in `config.status', edit `config.status' | ||
432 | # (which will cause the Makefiles to be regenerated when you run `make'); | ||
433 | # (2) otherwise, pass the desired values on the `make' command line. | ||
434 | $(RECURSIVE_TARGETS): | ||
435 | @fail= failcom='exit 1'; \ | ||
436 | for f in x $$MAKEFLAGS; do \ | ||
437 | case $$f in \ | ||
438 | *=* | --[!k]*);; \ | ||
439 | *k*) failcom='fail=yes';; \ | ||
440 | esac; \ | ||
441 | done; \ | ||
442 | dot_seen=no; \ | ||
443 | target=`echo $@ | sed s/-recursive//`; \ | ||
444 | list='$(SUBDIRS)'; for subdir in $$list; do \ | ||
445 | echo "Making $$target in $$subdir"; \ | ||
446 | if test "$$subdir" = "."; then \ | ||
447 | dot_seen=yes; \ | ||
448 | local_target="$$target-am"; \ | ||
449 | else \ | ||
450 | local_target="$$target"; \ | ||
451 | fi; \ | ||
452 | ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ | ||
453 | || eval $$failcom; \ | ||
454 | done; \ | ||
455 | if test "$$dot_seen" = "no"; then \ | ||
456 | $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ | ||
457 | fi; test -z "$$fail" | ||
458 | |||
459 | $(RECURSIVE_CLEAN_TARGETS): | ||
460 | @fail= failcom='exit 1'; \ | ||
461 | for f in x $$MAKEFLAGS; do \ | ||
462 | case $$f in \ | ||
463 | *=* | --[!k]*);; \ | ||
464 | *k*) failcom='fail=yes';; \ | ||
465 | esac; \ | ||
466 | done; \ | ||
467 | dot_seen=no; \ | ||
468 | case "$@" in \ | ||
469 | distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ | ||
470 | *) list='$(SUBDIRS)' ;; \ | ||
471 | esac; \ | ||
472 | rev=''; for subdir in $$list; do \ | ||
473 | if test "$$subdir" = "."; then :; else \ | ||
474 | rev="$$subdir $$rev"; \ | ||
475 | fi; \ | ||
476 | done; \ | ||
477 | rev="$$rev ."; \ | ||
478 | target=`echo $@ | sed s/-recursive//`; \ | ||
479 | for subdir in $$rev; do \ | ||
480 | echo "Making $$target in $$subdir"; \ | ||
481 | if test "$$subdir" = "."; then \ | ||
482 | local_target="$$target-am"; \ | ||
483 | else \ | ||
484 | local_target="$$target"; \ | ||
485 | fi; \ | ||
486 | ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ | ||
487 | || eval $$failcom; \ | ||
488 | done && test -z "$$fail" | ||
489 | tags-recursive: | ||
490 | list='$(SUBDIRS)'; for subdir in $$list; do \ | ||
491 | test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ | ||
492 | done | ||
493 | ctags-recursive: | ||
494 | list='$(SUBDIRS)'; for subdir in $$list; do \ | ||
495 | test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ | ||
496 | done | ||
497 | |||
498 | ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) | ||
499 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||
500 | unique=`for i in $$list; do \ | ||
501 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
502 | done | \ | ||
503 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
504 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
505 | mkid -fID $$unique | ||
506 | tags: TAGS | ||
507 | |||
508 | TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ | ||
509 | $(TAGS_FILES) $(LISP) | ||
510 | set x; \ | ||
511 | here=`pwd`; \ | ||
512 | if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ | ||
513 | include_option=--etags-include; \ | ||
514 | empty_fix=.; \ | ||
515 | else \ | ||
516 | include_option=--include; \ | ||
517 | empty_fix=; \ | ||
518 | fi; \ | ||
519 | list='$(SUBDIRS)'; for subdir in $$list; do \ | ||
520 | if test "$$subdir" = .; then :; else \ | ||
521 | test ! -f $$subdir/TAGS || \ | ||
522 | set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ | ||
523 | fi; \ | ||
524 | done; \ | ||
525 | list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ | ||
526 | unique=`for i in $$list; do \ | ||
527 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
528 | done | \ | ||
529 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
530 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
531 | shift; \ | ||
532 | if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ | ||
533 | test -n "$$unique" || unique=$$empty_fix; \ | ||
534 | if test $$# -gt 0; then \ | ||
535 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||
536 | "$$@" $$unique; \ | ||
537 | else \ | ||
538 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||
539 | $$unique; \ | ||
540 | fi; \ | ||
541 | fi | ||
542 | ctags: CTAGS | ||
543 | CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ | ||
544 | $(TAGS_FILES) $(LISP) | ||
545 | list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ | ||
546 | unique=`for i in $$list; do \ | ||
547 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
548 | done | \ | ||
549 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
550 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
551 | test -z "$(CTAGS_ARGS)$$unique" \ | ||
552 | || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ | ||
553 | $$unique | ||
554 | |||
555 | GTAGS: | ||
556 | here=`$(am__cd) $(top_builddir) && pwd` \ | ||
557 | && $(am__cd) $(top_srcdir) \ | ||
558 | && gtags -i $(GTAGS_ARGS) "$$here" | ||
559 | |||
560 | distclean-tags: | ||
561 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | ||
562 | |||
563 | distdir: $(DISTFILES) | ||
564 | $(am__remove_distdir) | ||
565 | test -d "$(distdir)" || mkdir "$(distdir)" | ||
566 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||
567 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||
568 | list='$(DISTFILES)'; \ | ||
569 | dist_files=`for file in $$list; do echo $$file; done | \ | ||
570 | sed -e "s|^$$srcdirstrip/||;t" \ | ||
571 | -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | ||
572 | case $$dist_files in \ | ||
573 | */*) $(MKDIR_P) `echo "$$dist_files" | \ | ||
574 | sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | ||
575 | sort -u` ;; \ | ||
576 | esac; \ | ||
577 | for file in $$dist_files; do \ | ||
578 | if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | ||
579 | if test -d $$d/$$file; then \ | ||
580 | dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | ||
581 | if test -d "$(distdir)/$$file"; then \ | ||
582 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||
583 | fi; \ | ||
584 | if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | ||
585 | cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | ||
586 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||
587 | fi; \ | ||
588 | cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | ||
589 | else \ | ||
590 | test -f "$(distdir)/$$file" \ | ||
591 | || cp -p $$d/$$file "$(distdir)/$$file" \ | ||
592 | || exit 1; \ | ||
593 | fi; \ | ||
594 | done | ||
595 | @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | ||
596 | if test "$$subdir" = .; then :; else \ | ||
597 | test -d "$(distdir)/$$subdir" \ | ||
598 | || $(MKDIR_P) "$(distdir)/$$subdir" \ | ||
599 | || exit 1; \ | ||
600 | fi; \ | ||
601 | done | ||
602 | @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | ||
603 | if test "$$subdir" = .; then :; else \ | ||
604 | dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ | ||
605 | $(am__relativize); \ | ||
606 | new_distdir=$$reldir; \ | ||
607 | dir1=$$subdir; dir2="$(top_distdir)"; \ | ||
608 | $(am__relativize); \ | ||
609 | new_top_distdir=$$reldir; \ | ||
610 | echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ | ||
611 | echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ | ||
612 | ($(am__cd) $$subdir && \ | ||
613 | $(MAKE) $(AM_MAKEFLAGS) \ | ||
614 | top_distdir="$$new_top_distdir" \ | ||
615 | distdir="$$new_distdir" \ | ||
616 | am__remove_distdir=: \ | ||
617 | am__skip_length_check=: \ | ||
618 | am__skip_mode_fix=: \ | ||
619 | distdir) \ | ||
620 | || exit 1; \ | ||
621 | fi; \ | ||
622 | done | ||
623 | -test -n "$(am__skip_mode_fix)" \ | ||
624 | || find "$(distdir)" -type d ! -perm -755 \ | ||
625 | -exec chmod u+rwx,go+rx {} \; -o \ | ||
626 | ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ | ||
627 | ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ | ||
628 | ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ | ||
629 | || chmod -R a+r "$(distdir)" | ||
630 | dist-gzip: distdir | ||
631 | tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz | ||
632 | $(am__remove_distdir) | ||
633 | dist-bzip2: distdir | ||
634 | tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 | ||
635 | $(am__remove_distdir) | ||
636 | |||
637 | dist-lzma: distdir | ||
638 | tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma | ||
639 | $(am__remove_distdir) | ||
640 | |||
641 | dist-xz: distdir | ||
642 | tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz | ||
643 | $(am__remove_distdir) | ||
644 | |||
645 | dist-tarZ: distdir | ||
646 | tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z | ||
647 | $(am__remove_distdir) | ||
648 | |||
649 | dist-shar: distdir | ||
650 | shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz | ||
651 | $(am__remove_distdir) | ||
652 | |||
653 | dist-zip: distdir | ||
654 | -rm -f $(distdir).zip | ||
655 | zip -rq $(distdir).zip $(distdir) | ||
656 | $(am__remove_distdir) | ||
657 | |||
658 | dist dist-all: distdir | ||
659 | tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz | ||
660 | tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 | ||
661 | $(am__remove_distdir) | ||
662 | |||
663 | # This target untars the dist file and tries a VPATH configuration. Then | ||
664 | # it guarantees that the distribution is self-contained by making another | ||
665 | # tarfile. | ||
666 | distcheck: dist | ||
667 | case '$(DIST_ARCHIVES)' in \ | ||
668 | *.tar.gz*) \ | ||
669 | GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ | ||
670 | *.tar.bz2*) \ | ||
671 | bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ | ||
672 | *.tar.lzma*) \ | ||
673 | lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ | ||
674 | *.tar.xz*) \ | ||
675 | xz -dc $(distdir).tar.xz | $(am__untar) ;;\ | ||
676 | *.tar.Z*) \ | ||
677 | uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ | ||
678 | *.shar.gz*) \ | ||
679 | GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ | ||
680 | *.zip*) \ | ||
681 | unzip $(distdir).zip ;;\ | ||
682 | esac | ||
683 | chmod -R a-w $(distdir); chmod a+w $(distdir) | ||
684 | mkdir $(distdir)/_build | ||
685 | mkdir $(distdir)/_inst | ||
686 | chmod a-w $(distdir) | ||
687 | test -d $(distdir)/_build || exit 0; \ | ||
688 | dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ | ||
689 | && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ | ||
690 | && am__cwd=`pwd` \ | ||
691 | && $(am__cd) $(distdir)/_build \ | ||
692 | && ../configure --srcdir=.. --prefix="$$dc_install_base" \ | ||
693 | $(DISTCHECK_CONFIGURE_FLAGS) \ | ||
694 | && $(MAKE) $(AM_MAKEFLAGS) \ | ||
695 | && $(MAKE) $(AM_MAKEFLAGS) dvi \ | ||
696 | && $(MAKE) $(AM_MAKEFLAGS) check \ | ||
697 | && $(MAKE) $(AM_MAKEFLAGS) install \ | ||
698 | && $(MAKE) $(AM_MAKEFLAGS) installcheck \ | ||
699 | && $(MAKE) $(AM_MAKEFLAGS) uninstall \ | ||
700 | && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ | ||
701 | distuninstallcheck \ | ||
702 | && chmod -R a-w "$$dc_install_base" \ | ||
703 | && ({ \ | ||
704 | (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ | ||
705 | && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ | ||
706 | && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ | ||
707 | && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ | ||
708 | distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ | ||
709 | } || { rm -rf "$$dc_destdir"; exit 1; }) \ | ||
710 | && rm -rf "$$dc_destdir" \ | ||
711 | && $(MAKE) $(AM_MAKEFLAGS) dist \ | ||
712 | && rm -rf $(DIST_ARCHIVES) \ | ||
713 | && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ | ||
714 | && cd "$$am__cwd" \ | ||
715 | || exit 1 | ||
716 | $(am__remove_distdir) | ||
717 | @(echo "$(distdir) archives ready for distribution: "; \ | ||
718 | list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ | ||
719 | sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' | ||
720 | distuninstallcheck: | ||
721 | @$(am__cd) '$(distuninstallcheck_dir)' \ | ||
722 | && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ | ||
723 | || { echo "ERROR: files left after uninstall:" ; \ | ||
724 | if test -n "$(DESTDIR)"; then \ | ||
725 | echo " (check DESTDIR support)"; \ | ||
726 | fi ; \ | ||
727 | $(distuninstallcheck_listfiles) ; \ | ||
728 | exit 1; } >&2 | ||
729 | distcleancheck: distclean | ||
730 | @if test '$(srcdir)' = . ; then \ | ||
731 | echo "ERROR: distcleancheck can only run from a VPATH build" ; \ | ||
732 | exit 1 ; \ | ||
733 | fi | ||
734 | @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ | ||
735 | || { echo "ERROR: files left in build directory after distclean:" ; \ | ||
736 | $(distcleancheck_listfiles) ; \ | ||
737 | exit 1; } >&2 | ||
738 | check-am: all-am | ||
739 | $(MAKE) $(AM_MAKEFLAGS) check-local | ||
740 | check: check-recursive | ||
741 | all-am: Makefile $(DATA) config.h | ||
742 | installdirs: installdirs-recursive | ||
743 | installdirs-am: | ||
744 | for dir in "$(DESTDIR)$(pkgconfigdir)"; do \ | ||
745 | test -z "$$dir" || $(MKDIR_P) "$$dir"; \ | ||
746 | done | ||
747 | install: install-recursive | ||
748 | install-exec: install-exec-recursive | ||
749 | install-data: install-data-recursive | ||
750 | uninstall: uninstall-recursive | ||
751 | |||
752 | install-am: all-am | ||
753 | @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | ||
754 | |||
755 | installcheck: installcheck-recursive | ||
756 | install-strip: | ||
757 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||
758 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||
759 | `test -z '$(STRIP)' || \ | ||
760 | echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install | ||
761 | mostlyclean-generic: | ||
762 | |||
763 | clean-generic: | ||
764 | |||
765 | distclean-generic: | ||
766 | -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | ||
767 | -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) | ||
768 | |||
769 | maintainer-clean-generic: | ||
770 | @echo "This command is intended for maintainers to use" | ||
771 | @echo "it deletes files that may require special tools to rebuild." | ||
772 | -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) | ||
773 | @EFL_ENABLE_COVERAGE_FALSE@clean-local: | ||
774 | clean: clean-recursive | ||
775 | |||
776 | clean-am: clean-generic clean-libtool clean-local mostlyclean-am | ||
777 | |||
778 | distclean: distclean-recursive | ||
779 | -rm -f $(am__CONFIG_DISTCLEAN_FILES) | ||
780 | -rm -f Makefile | ||
781 | distclean-am: clean-am distclean-generic distclean-hdr \ | ||
782 | distclean-libtool distclean-tags | ||
783 | |||
784 | dvi: dvi-recursive | ||
785 | |||
786 | dvi-am: | ||
787 | |||
788 | html: html-recursive | ||
789 | |||
790 | html-am: | ||
791 | |||
792 | info: info-recursive | ||
793 | |||
794 | info-am: | ||
795 | |||
796 | install-data-am: install-pkgconfigDATA | ||
797 | |||
798 | install-dvi: install-dvi-recursive | ||
799 | |||
800 | install-dvi-am: | ||
801 | |||
802 | install-exec-am: | ||
803 | |||
804 | install-html: install-html-recursive | ||
805 | |||
806 | install-html-am: | ||
807 | |||
808 | install-info: install-info-recursive | ||
809 | |||
810 | install-info-am: | ||
811 | |||
812 | install-man: | ||
813 | |||
814 | install-pdf: install-pdf-recursive | ||
815 | |||
816 | install-pdf-am: | ||
817 | |||
818 | install-ps: install-ps-recursive | ||
819 | |||
820 | install-ps-am: | ||
821 | |||
822 | installcheck-am: | ||
823 | |||
824 | maintainer-clean: maintainer-clean-recursive | ||
825 | -rm -f $(am__CONFIG_DISTCLEAN_FILES) | ||
826 | -rm -rf $(top_srcdir)/autom4te.cache | ||
827 | -rm -f Makefile | ||
828 | maintainer-clean-am: distclean-am maintainer-clean-generic | ||
829 | |||
830 | mostlyclean: mostlyclean-recursive | ||
831 | |||
832 | mostlyclean-am: mostlyclean-generic mostlyclean-libtool | ||
833 | |||
834 | pdf: pdf-recursive | ||
835 | |||
836 | pdf-am: | ||
837 | |||
838 | ps: ps-recursive | ||
839 | |||
840 | ps-am: | ||
841 | |||
842 | uninstall-am: uninstall-pkgconfigDATA | ||
843 | |||
844 | .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check-am \ | ||
845 | ctags-recursive install-am install-strip tags-recursive | ||
846 | |||
847 | .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ | ||
848 | all all-am am--refresh check check-am check-local clean \ | ||
849 | clean-generic clean-libtool clean-local ctags ctags-recursive \ | ||
850 | dist dist-all dist-bzip2 dist-gzip dist-lzma dist-shar \ | ||
851 | dist-tarZ dist-xz dist-zip distcheck distclean \ | ||
852 | distclean-generic distclean-hdr distclean-libtool \ | ||
853 | distclean-tags distcleancheck distdir distuninstallcheck dvi \ | ||
854 | dvi-am html html-am info info-am install install-am \ | ||
855 | install-data install-data-am install-dvi install-dvi-am \ | ||
856 | install-exec install-exec-am install-html install-html-am \ | ||
857 | install-info install-info-am install-man install-pdf \ | ||
858 | install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ | ||
859 | install-strip installcheck installcheck-am installdirs \ | ||
860 | installdirs-am maintainer-clean maintainer-clean-generic \ | ||
861 | mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ | ||
862 | ps ps-am tags tags-recursive uninstall uninstall-am \ | ||
863 | uninstall-pkgconfigDATA | ||
864 | |||
865 | |||
866 | .PHONY: doc coverage | ||
867 | |||
868 | # Documentation | ||
869 | |||
870 | doc: | ||
871 | @echo "entering doc/" | ||
872 | $(MAKE) -C doc doc | ||
873 | |||
874 | # Unit tests | ||
875 | |||
876 | @EFL_ENABLE_TESTS_TRUE@check-local: | ||
877 | @EFL_ENABLE_TESTS_TRUE@ @./src/tests/eet_suite | ||
878 | |||
879 | @EFL_ENABLE_TESTS_FALSE@check-local: | ||
880 | @EFL_ENABLE_TESTS_FALSE@ @echo "reconfigure with --enable-tests" | ||
881 | |||
882 | # Coverage report | ||
883 | |||
884 | @EFL_ENABLE_COVERAGE_TRUE@lcov-reset: | ||
885 | @EFL_ENABLE_COVERAGE_TRUE@ @rm -rf $(top_builddir)/coverage | ||
886 | @EFL_ENABLE_COVERAGE_TRUE@ @find $(top_builddir) -name "*.gcda" -delete | ||
887 | @EFL_ENABLE_COVERAGE_TRUE@ @lcov --zerocounters --directory $(top_builddir) | ||
888 | |||
889 | @EFL_ENABLE_COVERAGE_TRUE@lcov-report: | ||
890 | @EFL_ENABLE_COVERAGE_TRUE@ @mkdir $(top_builddir)/coverage | ||
891 | @EFL_ENABLE_COVERAGE_TRUE@ lcov --capture --compat-libtool --output-file $(top_builddir)/coverage/coverage.info --directory $(top_builddir) | ||
892 | @EFL_ENABLE_COVERAGE_TRUE@ lcov --remove $(top_builddir)/coverage/coverage.info '*.h' --output-file $(top_builddir)/coverage/coverage.cleaned.info | ||
893 | @EFL_ENABLE_COVERAGE_TRUE@ genhtml -t "$(PACKAGE_STRING)" -o $(top_builddir)/coverage/html $(top_builddir)/coverage/coverage.cleaned.info | ||
894 | @EFL_ENABLE_COVERAGE_TRUE@ @echo "Coverage Report at $(top_builddir)/coverage/html" | ||
895 | |||
896 | @EFL_ENABLE_COVERAGE_TRUE@coverage: | ||
897 | @EFL_ENABLE_COVERAGE_TRUE@ @$(MAKE) lcov-reset | ||
898 | @EFL_ENABLE_COVERAGE_TRUE@ @$(MAKE) check | ||
899 | @EFL_ENABLE_COVERAGE_TRUE@ @$(MAKE) lcov-report | ||
900 | |||
901 | @EFL_ENABLE_COVERAGE_TRUE@clean-local: | ||
902 | @EFL_ENABLE_COVERAGE_TRUE@ @rm -rf coverage | ||
903 | @EFL_ENABLE_COVERAGE_FALSE@lcov-reset: | ||
904 | @EFL_ENABLE_COVERAGE_FALSE@ @echo "reconfigure with --enable-coverage" | ||
905 | |||
906 | @EFL_ENABLE_COVERAGE_FALSE@lcov-report: | ||
907 | @EFL_ENABLE_COVERAGE_FALSE@ @echo "reconfigure with --enable-coverage" | ||
908 | |||
909 | @EFL_ENABLE_COVERAGE_FALSE@coverage: | ||
910 | @EFL_ENABLE_COVERAGE_FALSE@ @echo "reconfigure with --enable-tests --enable-coverage" | ||
911 | |||
912 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | ||
913 | # Otherwise a system limit (for SysV at least) may be exceeded. | ||
914 | .NOEXPORT: | ||
diff --git a/libraries/eet/NEWS b/libraries/eet/NEWS deleted file mode 100644 index 1abe36e..0000000 --- a/libraries/eet/NEWS +++ /dev/null | |||
@@ -1,42 +0,0 @@ | |||
1 | Eet 1.6.0 | ||
2 | |||
3 | Changes since Eet 1.5.0: | ||
4 | -------------------------- | ||
5 | |||
6 | Additions: | ||
7 | * eet_file_get to return filenames of Eet_Files | ||
8 | |||
9 | Improvements: | ||
10 | |||
11 | * most allocations moved to mempools | ||
12 | * support GNUTLS 3.x | ||
13 | * add "eet -t FILE.EET" to get some stat out of an eet file | ||
14 | |||
15 | Eet 1.5.0 | ||
16 | |||
17 | Changes since Eet 1.4.0: | ||
18 | -------------------------- | ||
19 | |||
20 | Additions: | ||
21 | |||
22 | * EET_DATA_DESCRIPTOR_ADD_LIST_STRING API for string lists | ||
23 | * eet_node API's to manipulate nodes | ||
24 | * eet_alias_get API | ||
25 | * eet_data_xattr_cipher_get and eet_data_xattr_cipher_set APIs | ||
26 | * EET_DATA_DESCRIPTOR_ADD_BASIC_ARRAY API | ||
27 | |||
28 | Fixes: | ||
29 | |||
30 | * eet shutdown on windows | ||
31 | * test case to init eet | ||
32 | * compilation against libjpeg 8 on windows | ||
33 | * binary open on windows | ||
34 | * unopenable empty eet file for read/write | ||
35 | |||
36 | Improvements: | ||
37 | |||
38 | * better speed and memory footprint of EET_G_UNION and EET_G_ARRAY | ||
39 | * use stringshare for mmaped file names | ||
40 | * use eina locking wrappers | ||
41 | * use eina_file for file IO | ||
42 | * jpeg encode and decode quality improved at expense of speed | ||
diff --git a/libraries/eet/README b/libraries/eet/README deleted file mode 100644 index 416214b..0000000 --- a/libraries/eet/README +++ /dev/null | |||
@@ -1,68 +0,0 @@ | |||
1 | Eet 1.6.0 | ||
2 | |||
3 | ****************************************************************************** | ||
4 | |||
5 | FOR ANY ISSUES PLEASE EMAIL: | ||
6 | enlightenment-devel@lists.sourceforge.net | ||
7 | |||
8 | ****************************************************************************** | ||
9 | |||
10 | Requirements: | ||
11 | ------------- | ||
12 | Must have: | ||
13 | libc | ||
14 | zlib | ||
15 | libjpeg | ||
16 | eina (1.1.0 or better) | ||
17 | (For windows you also need: evil) | ||
18 | |||
19 | Optional requirements: | ||
20 | gnutls (1.7.6 or better) | ||
21 | openssl | ||
22 | |||
23 | Eet is a tiny library designed to write an arbitrary set of chunks of | ||
24 | data to a file and optionally compress each chunk (very much like a | ||
25 | zip file) and allow fast random-access reading of the file later | ||
26 | on. It does not do zip as a zip itself has more complexity than is | ||
27 | needed, and it was much simpler to implement this once here. | ||
28 | |||
29 | It also can encode and decode data structures in memory, as well as | ||
30 | image data for saving to eet files or sending across the network to | ||
31 | other machines, or just writing to arbitrary files on the system. All | ||
32 | data is encoded in a platform independent way and can be written and | ||
33 | read by any architecture. This data once encoded can be sent to | ||
34 | another process or machine and decoded on the other end without | ||
35 | needing to go into an eet file. Eet can also optionally encrypt files | ||
36 | and use digital signatures (with gnutls or openssl support). | ||
37 | |||
38 | ------------------------------------------------------------------------------ | ||
39 | COMPILING AND INSTALLING: | ||
40 | |||
41 | ./configure | ||
42 | make | ||
43 | (do this as root unless you are installing in your users directories): | ||
44 | make install | ||
45 | |||
46 | To get the coverage report: | ||
47 | make coverage | ||
48 | The report is created in the coverage/ subdir | ||
49 | If you want to be able to run coverage test over eet, you will need gcov | ||
50 | (usually any distro provides it) and lcov from: | ||
51 | http://ltp.sourceforge.net/coverage/lcov.php. | ||
52 | For coverage support you also need "make check" support with the check | ||
53 | library (see below). | ||
54 | |||
55 | For compilation with MinGW, fnmatch.h is probably missing. That file can be | ||
56 | found here: | ||
57 | http://www.koders.com/c/fid2B518462CB1EED3D4E31E271DB83CD1582F6EEBE.aspx | ||
58 | It should be installed in the mingw include directory. | ||
59 | |||
60 | For compilation with mingw32ce, run configure with the option | ||
61 | --host=arm-wince-mingw32ce | ||
62 | |||
63 | For compilation with cegcc, follow the wiki: | ||
64 | http://wiki.enlightenment.org/index.php/Category:EFL_Windows_CE | ||
65 | |||
66 | If you want to be able to run "make check", you need library check | ||
67 | from http://check.sourceforge.net/ | ||
68 | |||
diff --git a/libraries/eet/aclocal.m4 b/libraries/eet/aclocal.m4 deleted file mode 100644 index 1d329e5..0000000 --- a/libraries/eet/aclocal.m4 +++ /dev/null | |||
@@ -1,1185 +0,0 @@ | |||
1 | # generated automatically by aclocal 1.11.1 -*- Autoconf -*- | ||
2 | |||
3 | # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, | ||
4 | # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. | ||
5 | # This file is free software; the Free Software Foundation | ||
6 | # gives unlimited permission to copy and/or distribute it, | ||
7 | # with or without modifications, as long as this notice is preserved. | ||
8 | |||
9 | # This program is distributed in the hope that it will be useful, | ||
10 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | ||
11 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | ||
12 | # PARTICULAR PURPOSE. | ||
13 | |||
14 | m4_ifndef([AC_AUTOCONF_VERSION], | ||
15 | [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl | ||
16 | m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, | ||
17 | [m4_warning([this file was generated for autoconf 2.67. | ||
18 | You have another version of autoconf. It may work, but is not guaranteed to. | ||
19 | If you have problems, you may need to regenerate the build system entirely. | ||
20 | To do so, use the procedure documented by the package, typically `autoreconf'.])]) | ||
21 | |||
22 | # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- | ||
23 | # serial 1 (pkg-config-0.24) | ||
24 | # | ||
25 | # Copyright © 2004 Scott James Remnant <scott@netsplit.com>. | ||
26 | # | ||
27 | # This program is free software; you can redistribute it and/or modify | ||
28 | # it under the terms of the GNU General Public License as published by | ||
29 | # the Free Software Foundation; either version 2 of the License, or | ||
30 | # (at your option) any later version. | ||
31 | # | ||
32 | # This program is distributed in the hope that it will be useful, but | ||
33 | # WITHOUT ANY WARRANTY; without even the implied warranty of | ||
34 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
35 | # General Public License for more details. | ||
36 | # | ||
37 | # You should have received a copy of the GNU General Public License | ||
38 | # along with this program; if not, write to the Free Software | ||
39 | # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
40 | # | ||
41 | # As a special exception to the GNU General Public License, if you | ||
42 | # distribute this file as part of a program that contains a | ||
43 | # configuration script generated by Autoconf, you may include it under | ||
44 | # the same distribution terms that you use for the rest of that program. | ||
45 | |||
46 | # PKG_PROG_PKG_CONFIG([MIN-VERSION]) | ||
47 | # ---------------------------------- | ||
48 | AC_DEFUN([PKG_PROG_PKG_CONFIG], | ||
49 | [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) | ||
50 | m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) | ||
51 | AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) | ||
52 | AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) | ||
53 | AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) | ||
54 | |||
55 | if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then | ||
56 | AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) | ||
57 | fi | ||
58 | if test -n "$PKG_CONFIG"; then | ||
59 | _pkg_min_version=m4_default([$1], [0.9.0]) | ||
60 | AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) | ||
61 | if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then | ||
62 | AC_MSG_RESULT([yes]) | ||
63 | else | ||
64 | AC_MSG_RESULT([no]) | ||
65 | PKG_CONFIG="" | ||
66 | fi | ||
67 | fi[]dnl | ||
68 | ])# PKG_PROG_PKG_CONFIG | ||
69 | |||
70 | # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) | ||
71 | # | ||
72 | # Check to see whether a particular set of modules exists. Similar | ||
73 | # to PKG_CHECK_MODULES(), but does not set variables or print errors. | ||
74 | # | ||
75 | # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) | ||
76 | # only at the first occurence in configure.ac, so if the first place | ||
77 | # it's called might be skipped (such as if it is within an "if", you | ||
78 | # have to call PKG_CHECK_EXISTS manually | ||
79 | # -------------------------------------------------------------- | ||
80 | AC_DEFUN([PKG_CHECK_EXISTS], | ||
81 | [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl | ||
82 | if test -n "$PKG_CONFIG" && \ | ||
83 | AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then | ||
84 | m4_default([$2], [:]) | ||
85 | m4_ifvaln([$3], [else | ||
86 | $3])dnl | ||
87 | fi]) | ||
88 | |||
89 | # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) | ||
90 | # --------------------------------------------- | ||
91 | m4_define([_PKG_CONFIG], | ||
92 | [if test -n "$$1"; then | ||
93 | pkg_cv_[]$1="$$1" | ||
94 | elif test -n "$PKG_CONFIG"; then | ||
95 | PKG_CHECK_EXISTS([$3], | ||
96 | [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], | ||
97 | [pkg_failed=yes]) | ||
98 | else | ||
99 | pkg_failed=untried | ||
100 | fi[]dnl | ||
101 | ])# _PKG_CONFIG | ||
102 | |||
103 | # _PKG_SHORT_ERRORS_SUPPORTED | ||
104 | # ----------------------------- | ||
105 | AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], | ||
106 | [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) | ||
107 | if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then | ||
108 | _pkg_short_errors_supported=yes | ||
109 | else | ||
110 | _pkg_short_errors_supported=no | ||
111 | fi[]dnl | ||
112 | ])# _PKG_SHORT_ERRORS_SUPPORTED | ||
113 | |||
114 | |||
115 | # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], | ||
116 | # [ACTION-IF-NOT-FOUND]) | ||
117 | # | ||
118 | # | ||
119 | # Note that if there is a possibility the first call to | ||
120 | # PKG_CHECK_MODULES might not happen, you should be sure to include an | ||
121 | # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac | ||
122 | # | ||
123 | # | ||
124 | # -------------------------------------------------------------- | ||
125 | AC_DEFUN([PKG_CHECK_MODULES], | ||
126 | [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl | ||
127 | AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl | ||
128 | AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl | ||
129 | |||
130 | pkg_failed=no | ||
131 | AC_MSG_CHECKING([for $1]) | ||
132 | |||
133 | _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) | ||
134 | _PKG_CONFIG([$1][_LIBS], [libs], [$2]) | ||
135 | |||
136 | m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS | ||
137 | and $1[]_LIBS to avoid the need to call pkg-config. | ||
138 | See the pkg-config man page for more details.]) | ||
139 | |||
140 | if test $pkg_failed = yes; then | ||
141 | AC_MSG_RESULT([no]) | ||
142 | _PKG_SHORT_ERRORS_SUPPORTED | ||
143 | if test $_pkg_short_errors_supported = yes; then | ||
144 | $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` | ||
145 | else | ||
146 | $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` | ||
147 | fi | ||
148 | # Put the nasty error message in config.log where it belongs | ||
149 | echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD | ||
150 | |||
151 | m4_default([$4], [AC_MSG_ERROR( | ||
152 | [Package requirements ($2) were not met: | ||
153 | |||
154 | $$1_PKG_ERRORS | ||
155 | |||
156 | Consider adjusting the PKG_CONFIG_PATH environment variable if you | ||
157 | installed software in a non-standard prefix. | ||
158 | |||
159 | _PKG_TEXT])[]dnl | ||
160 | ]) | ||
161 | elif test $pkg_failed = untried; then | ||
162 | AC_MSG_RESULT([no]) | ||
163 | m4_default([$4], [AC_MSG_FAILURE( | ||
164 | [The pkg-config script could not be found or is too old. Make sure it | ||
165 | is in your PATH or set the PKG_CONFIG environment variable to the full | ||
166 | path to pkg-config. | ||
167 | |||
168 | _PKG_TEXT | ||
169 | |||
170 | To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl | ||
171 | ]) | ||
172 | else | ||
173 | $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS | ||
174 | $1[]_LIBS=$pkg_cv_[]$1[]_LIBS | ||
175 | AC_MSG_RESULT([yes]) | ||
176 | $3 | ||
177 | fi[]dnl | ||
178 | ])# PKG_CHECK_MODULES | ||
179 | |||
180 | # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | ||
181 | # | ||
182 | # This file is free software; the Free Software Foundation | ||
183 | # gives unlimited permission to copy and/or distribute it, | ||
184 | # with or without modifications, as long as this notice is preserved. | ||
185 | |||
186 | # AM_AUTOMAKE_VERSION(VERSION) | ||
187 | # ---------------------------- | ||
188 | # Automake X.Y traces this macro to ensure aclocal.m4 has been | ||
189 | # generated from the m4 files accompanying Automake X.Y. | ||
190 | # (This private macro should not be called outside this file.) | ||
191 | AC_DEFUN([AM_AUTOMAKE_VERSION], | ||
192 | [am__api_version='1.11' | ||
193 | dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to | ||
194 | dnl require some minimum version. Point them to the right macro. | ||
195 | m4_if([$1], [1.11.1], [], | ||
196 | [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl | ||
197 | ]) | ||
198 | |||
199 | # _AM_AUTOCONF_VERSION(VERSION) | ||
200 | # ----------------------------- | ||
201 | # aclocal traces this macro to find the Autoconf version. | ||
202 | # This is a private macro too. Using m4_define simplifies | ||
203 | # the logic in aclocal, which can simply ignore this definition. | ||
204 | m4_define([_AM_AUTOCONF_VERSION], []) | ||
205 | |||
206 | # AM_SET_CURRENT_AUTOMAKE_VERSION | ||
207 | # ------------------------------- | ||
208 | # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. | ||
209 | # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. | ||
210 | AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], | ||
211 | [AM_AUTOMAKE_VERSION([1.11.1])dnl | ||
212 | m4_ifndef([AC_AUTOCONF_VERSION], | ||
213 | [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl | ||
214 | _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) | ||
215 | |||
216 | # AM_AUX_DIR_EXPAND -*- Autoconf -*- | ||
217 | |||
218 | # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. | ||
219 | # | ||
220 | # This file is free software; the Free Software Foundation | ||
221 | # gives unlimited permission to copy and/or distribute it, | ||
222 | # with or without modifications, as long as this notice is preserved. | ||
223 | |||
224 | # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets | ||
225 | # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to | ||
226 | # `$srcdir', `$srcdir/..', or `$srcdir/../..'. | ||
227 | # | ||
228 | # Of course, Automake must honor this variable whenever it calls a | ||
229 | # tool from the auxiliary directory. The problem is that $srcdir (and | ||
230 | # therefore $ac_aux_dir as well) can be either absolute or relative, | ||
231 | # depending on how configure is run. This is pretty annoying, since | ||
232 | # it makes $ac_aux_dir quite unusable in subdirectories: in the top | ||
233 | # source directory, any form will work fine, but in subdirectories a | ||
234 | # relative path needs to be adjusted first. | ||
235 | # | ||
236 | # $ac_aux_dir/missing | ||
237 | # fails when called from a subdirectory if $ac_aux_dir is relative | ||
238 | # $top_srcdir/$ac_aux_dir/missing | ||
239 | # fails if $ac_aux_dir is absolute, | ||
240 | # fails when called from a subdirectory in a VPATH build with | ||
241 | # a relative $ac_aux_dir | ||
242 | # | ||
243 | # The reason of the latter failure is that $top_srcdir and $ac_aux_dir | ||
244 | # are both prefixed by $srcdir. In an in-source build this is usually | ||
245 | # harmless because $srcdir is `.', but things will broke when you | ||
246 | # start a VPATH build or use an absolute $srcdir. | ||
247 | # | ||
248 | # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, | ||
249 | # iff we strip the leading $srcdir from $ac_aux_dir. That would be: | ||
250 | # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` | ||
251 | # and then we would define $MISSING as | ||
252 | # MISSING="\${SHELL} $am_aux_dir/missing" | ||
253 | # This will work as long as MISSING is not called from configure, because | ||
254 | # unfortunately $(top_srcdir) has no meaning in configure. | ||
255 | # However there are other variables, like CC, which are often used in | ||
256 | # configure, and could therefore not use this "fixed" $ac_aux_dir. | ||
257 | # | ||
258 | # Another solution, used here, is to always expand $ac_aux_dir to an | ||
259 | # absolute PATH. The drawback is that using absolute paths prevent a | ||
260 | # configured tree to be moved without reconfiguration. | ||
261 | |||
262 | AC_DEFUN([AM_AUX_DIR_EXPAND], | ||
263 | [dnl Rely on autoconf to set up CDPATH properly. | ||
264 | AC_PREREQ([2.50])dnl | ||
265 | # expand $ac_aux_dir to an absolute path | ||
266 | am_aux_dir=`cd $ac_aux_dir && pwd` | ||
267 | ]) | ||
268 | |||
269 | # AM_CONDITIONAL -*- Autoconf -*- | ||
270 | |||
271 | # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 | ||
272 | # Free Software Foundation, Inc. | ||
273 | # | ||
274 | # This file is free software; the Free Software Foundation | ||
275 | # gives unlimited permission to copy and/or distribute it, | ||
276 | # with or without modifications, as long as this notice is preserved. | ||
277 | |||
278 | # serial 9 | ||
279 | |||
280 | # AM_CONDITIONAL(NAME, SHELL-CONDITION) | ||
281 | # ------------------------------------- | ||
282 | # Define a conditional. | ||
283 | AC_DEFUN([AM_CONDITIONAL], | ||
284 | [AC_PREREQ(2.52)dnl | ||
285 | ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], | ||
286 | [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl | ||
287 | AC_SUBST([$1_TRUE])dnl | ||
288 | AC_SUBST([$1_FALSE])dnl | ||
289 | _AM_SUBST_NOTMAKE([$1_TRUE])dnl | ||
290 | _AM_SUBST_NOTMAKE([$1_FALSE])dnl | ||
291 | m4_define([_AM_COND_VALUE_$1], [$2])dnl | ||
292 | if $2; then | ||
293 | $1_TRUE= | ||
294 | $1_FALSE='#' | ||
295 | else | ||
296 | $1_TRUE='#' | ||
297 | $1_FALSE= | ||
298 | fi | ||
299 | AC_CONFIG_COMMANDS_PRE( | ||
300 | [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then | ||
301 | AC_MSG_ERROR([[conditional "$1" was never defined. | ||
302 | Usually this means the macro was only invoked conditionally.]]) | ||
303 | fi])]) | ||
304 | |||
305 | # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 | ||
306 | # Free Software Foundation, Inc. | ||
307 | # | ||
308 | # This file is free software; the Free Software Foundation | ||
309 | # gives unlimited permission to copy and/or distribute it, | ||
310 | # with or without modifications, as long as this notice is preserved. | ||
311 | |||
312 | # serial 10 | ||
313 | |||
314 | # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be | ||
315 | # written in clear, in which case automake, when reading aclocal.m4, | ||
316 | # will think it sees a *use*, and therefore will trigger all it's | ||
317 | # C support machinery. Also note that it means that autoscan, seeing | ||
318 | # CC etc. in the Makefile, will ask for an AC_PROG_CC use... | ||
319 | |||
320 | |||
321 | # _AM_DEPENDENCIES(NAME) | ||
322 | # ---------------------- | ||
323 | # See how the compiler implements dependency checking. | ||
324 | # NAME is "CC", "CXX", "GCJ", or "OBJC". | ||
325 | # We try a few techniques and use that to set a single cache variable. | ||
326 | # | ||
327 | # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was | ||
328 | # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular | ||
329 | # dependency, and given that the user is not expected to run this macro, | ||
330 | # just rely on AC_PROG_CC. | ||
331 | AC_DEFUN([_AM_DEPENDENCIES], | ||
332 | [AC_REQUIRE([AM_SET_DEPDIR])dnl | ||
333 | AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl | ||
334 | AC_REQUIRE([AM_MAKE_INCLUDE])dnl | ||
335 | AC_REQUIRE([AM_DEP_TRACK])dnl | ||
336 | |||
337 | ifelse([$1], CC, [depcc="$CC" am_compiler_list=], | ||
338 | [$1], CXX, [depcc="$CXX" am_compiler_list=], | ||
339 | [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], | ||
340 | [$1], UPC, [depcc="$UPC" am_compiler_list=], | ||
341 | [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], | ||
342 | [depcc="$$1" am_compiler_list=]) | ||
343 | |||
344 | AC_CACHE_CHECK([dependency style of $depcc], | ||
345 | [am_cv_$1_dependencies_compiler_type], | ||
346 | [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then | ||
347 | # We make a subdir and do the tests there. Otherwise we can end up | ||
348 | # making bogus files that we don't know about and never remove. For | ||
349 | # instance it was reported that on HP-UX the gcc test will end up | ||
350 | # making a dummy file named `D' -- because `-MD' means `put the output | ||
351 | # in D'. | ||
352 | mkdir conftest.dir | ||
353 | # Copy depcomp to subdir because otherwise we won't find it if we're | ||
354 | # using a relative directory. | ||
355 | cp "$am_depcomp" conftest.dir | ||
356 | cd conftest.dir | ||
357 | # We will build objects and dependencies in a subdirectory because | ||
358 | # it helps to detect inapplicable dependency modes. For instance | ||
359 | # both Tru64's cc and ICC support -MD to output dependencies as a | ||
360 | # side effect of compilation, but ICC will put the dependencies in | ||
361 | # the current directory while Tru64 will put them in the object | ||
362 | # directory. | ||
363 | mkdir sub | ||
364 | |||
365 | am_cv_$1_dependencies_compiler_type=none | ||
366 | if test "$am_compiler_list" = ""; then | ||
367 | am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` | ||
368 | fi | ||
369 | am__universal=false | ||
370 | m4_case([$1], [CC], | ||
371 | [case " $depcc " in #( | ||
372 | *\ -arch\ *\ -arch\ *) am__universal=true ;; | ||
373 | esac], | ||
374 | [CXX], | ||
375 | [case " $depcc " in #( | ||
376 | *\ -arch\ *\ -arch\ *) am__universal=true ;; | ||
377 | esac]) | ||
378 | |||
379 | for depmode in $am_compiler_list; do | ||
380 | # Setup a source with many dependencies, because some compilers | ||
381 | # like to wrap large dependency lists on column 80 (with \), and | ||
382 | # we should not choose a depcomp mode which is confused by this. | ||
383 | # | ||
384 | # We need to recreate these files for each test, as the compiler may | ||
385 | # overwrite some of them when testing with obscure command lines. | ||
386 | # This happens at least with the AIX C compiler. | ||
387 | : > sub/conftest.c | ||
388 | for i in 1 2 3 4 5 6; do | ||
389 | echo '#include "conftst'$i'.h"' >> sub/conftest.c | ||
390 | # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with | ||
391 | # Solaris 8's {/usr,}/bin/sh. | ||
392 | touch sub/conftst$i.h | ||
393 | done | ||
394 | echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf | ||
395 | |||
396 | # We check with `-c' and `-o' for the sake of the "dashmstdout" | ||
397 | # mode. It turns out that the SunPro C++ compiler does not properly | ||
398 | # handle `-M -o', and we need to detect this. Also, some Intel | ||
399 | # versions had trouble with output in subdirs | ||
400 | am__obj=sub/conftest.${OBJEXT-o} | ||
401 | am__minus_obj="-o $am__obj" | ||
402 | case $depmode in | ||
403 | gcc) | ||
404 | # This depmode causes a compiler race in universal mode. | ||
405 | test "$am__universal" = false || continue | ||
406 | ;; | ||
407 | nosideeffect) | ||
408 | # after this tag, mechanisms are not by side-effect, so they'll | ||
409 | # only be used when explicitly requested | ||
410 | if test "x$enable_dependency_tracking" = xyes; then | ||
411 | continue | ||
412 | else | ||
413 | break | ||
414 | fi | ||
415 | ;; | ||
416 | msvisualcpp | msvcmsys) | ||
417 | # This compiler won't grok `-c -o', but also, the minuso test has | ||
418 | # not run yet. These depmodes are late enough in the game, and | ||
419 | # so weak that their functioning should not be impacted. | ||
420 | am__obj=conftest.${OBJEXT-o} | ||
421 | am__minus_obj= | ||
422 | ;; | ||
423 | none) break ;; | ||
424 | esac | ||
425 | if depmode=$depmode \ | ||
426 | source=sub/conftest.c object=$am__obj \ | ||
427 | depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ | ||
428 | $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ | ||
429 | >/dev/null 2>conftest.err && | ||
430 | grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && | ||
431 | grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && | ||
432 | grep $am__obj sub/conftest.Po > /dev/null 2>&1 && | ||
433 | ${MAKE-make} -s -f confmf > /dev/null 2>&1; then | ||
434 | # icc doesn't choke on unknown options, it will just issue warnings | ||
435 | # or remarks (even with -Werror). So we grep stderr for any message | ||
436 | # that says an option was ignored or not supported. | ||
437 | # When given -MP, icc 7.0 and 7.1 complain thusly: | ||
438 | # icc: Command line warning: ignoring option '-M'; no argument required | ||
439 | # The diagnosis changed in icc 8.0: | ||
440 | # icc: Command line remark: option '-MP' not supported | ||
441 | if (grep 'ignoring option' conftest.err || | ||
442 | grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else | ||
443 | am_cv_$1_dependencies_compiler_type=$depmode | ||
444 | break | ||
445 | fi | ||
446 | fi | ||
447 | done | ||
448 | |||
449 | cd .. | ||
450 | rm -rf conftest.dir | ||
451 | else | ||
452 | am_cv_$1_dependencies_compiler_type=none | ||
453 | fi | ||
454 | ]) | ||
455 | AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) | ||
456 | AM_CONDITIONAL([am__fastdep$1], [ | ||
457 | test "x$enable_dependency_tracking" != xno \ | ||
458 | && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) | ||
459 | ]) | ||
460 | |||
461 | |||
462 | # AM_SET_DEPDIR | ||
463 | # ------------- | ||
464 | # Choose a directory name for dependency files. | ||
465 | # This macro is AC_REQUIREd in _AM_DEPENDENCIES | ||
466 | AC_DEFUN([AM_SET_DEPDIR], | ||
467 | [AC_REQUIRE([AM_SET_LEADING_DOT])dnl | ||
468 | AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl | ||
469 | ]) | ||
470 | |||
471 | |||
472 | # AM_DEP_TRACK | ||
473 | # ------------ | ||
474 | AC_DEFUN([AM_DEP_TRACK], | ||
475 | [AC_ARG_ENABLE(dependency-tracking, | ||
476 | [ --disable-dependency-tracking speeds up one-time build | ||
477 | --enable-dependency-tracking do not reject slow dependency extractors]) | ||
478 | if test "x$enable_dependency_tracking" != xno; then | ||
479 | am_depcomp="$ac_aux_dir/depcomp" | ||
480 | AMDEPBACKSLASH='\' | ||
481 | fi | ||
482 | AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) | ||
483 | AC_SUBST([AMDEPBACKSLASH])dnl | ||
484 | _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl | ||
485 | ]) | ||
486 | |||
487 | # Generate code to set up dependency tracking. -*- Autoconf -*- | ||
488 | |||
489 | # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 | ||
490 | # Free Software Foundation, Inc. | ||
491 | # | ||
492 | # This file is free software; the Free Software Foundation | ||
493 | # gives unlimited permission to copy and/or distribute it, | ||
494 | # with or without modifications, as long as this notice is preserved. | ||
495 | |||
496 | #serial 5 | ||
497 | |||
498 | # _AM_OUTPUT_DEPENDENCY_COMMANDS | ||
499 | # ------------------------------ | ||
500 | AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], | ||
501 | [{ | ||
502 | # Autoconf 2.62 quotes --file arguments for eval, but not when files | ||
503 | # are listed without --file. Let's play safe and only enable the eval | ||
504 | # if we detect the quoting. | ||
505 | case $CONFIG_FILES in | ||
506 | *\'*) eval set x "$CONFIG_FILES" ;; | ||
507 | *) set x $CONFIG_FILES ;; | ||
508 | esac | ||
509 | shift | ||
510 | for mf | ||
511 | do | ||
512 | # Strip MF so we end up with the name of the file. | ||
513 | mf=`echo "$mf" | sed -e 's/:.*$//'` | ||
514 | # Check whether this is an Automake generated Makefile or not. | ||
515 | # We used to match only the files named `Makefile.in', but | ||
516 | # some people rename them; so instead we look at the file content. | ||
517 | # Grep'ing the first line is not enough: some people post-process | ||
518 | # each Makefile.in and add a new line on top of each file to say so. | ||
519 | # Grep'ing the whole file is not good either: AIX grep has a line | ||
520 | # limit of 2048, but all sed's we know have understand at least 4000. | ||
521 | if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then | ||
522 | dirpart=`AS_DIRNAME("$mf")` | ||
523 | else | ||
524 | continue | ||
525 | fi | ||
526 | # Extract the definition of DEPDIR, am__include, and am__quote | ||
527 | # from the Makefile without running `make'. | ||
528 | DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` | ||
529 | test -z "$DEPDIR" && continue | ||
530 | am__include=`sed -n 's/^am__include = //p' < "$mf"` | ||
531 | test -z "am__include" && continue | ||
532 | am__quote=`sed -n 's/^am__quote = //p' < "$mf"` | ||
533 | # When using ansi2knr, U may be empty or an underscore; expand it | ||
534 | U=`sed -n 's/^U = //p' < "$mf"` | ||
535 | # Find all dependency output files, they are included files with | ||
536 | # $(DEPDIR) in their names. We invoke sed twice because it is the | ||
537 | # simplest approach to changing $(DEPDIR) to its actual value in the | ||
538 | # expansion. | ||
539 | for file in `sed -n " | ||
540 | s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ | ||
541 | sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do | ||
542 | # Make sure the directory exists. | ||
543 | test -f "$dirpart/$file" && continue | ||
544 | fdir=`AS_DIRNAME(["$file"])` | ||
545 | AS_MKDIR_P([$dirpart/$fdir]) | ||
546 | # echo "creating $dirpart/$file" | ||
547 | echo '# dummy' > "$dirpart/$file" | ||
548 | done | ||
549 | done | ||
550 | } | ||
551 | ])# _AM_OUTPUT_DEPENDENCY_COMMANDS | ||
552 | |||
553 | |||
554 | # AM_OUTPUT_DEPENDENCY_COMMANDS | ||
555 | # ----------------------------- | ||
556 | # This macro should only be invoked once -- use via AC_REQUIRE. | ||
557 | # | ||
558 | # This code is only required when automatic dependency tracking | ||
559 | # is enabled. FIXME. This creates each `.P' file that we will | ||
560 | # need in order to bootstrap the dependency handling code. | ||
561 | AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], | ||
562 | [AC_CONFIG_COMMANDS([depfiles], | ||
563 | [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], | ||
564 | [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) | ||
565 | ]) | ||
566 | |||
567 | # Do all the work for Automake. -*- Autoconf -*- | ||
568 | |||
569 | # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, | ||
570 | # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. | ||
571 | # | ||
572 | # This file is free software; the Free Software Foundation | ||
573 | # gives unlimited permission to copy and/or distribute it, | ||
574 | # with or without modifications, as long as this notice is preserved. | ||
575 | |||
576 | # serial 16 | ||
577 | |||
578 | # This macro actually does too much. Some checks are only needed if | ||
579 | # your package does certain things. But this isn't really a big deal. | ||
580 | |||
581 | # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) | ||
582 | # AM_INIT_AUTOMAKE([OPTIONS]) | ||
583 | # ----------------------------------------------- | ||
584 | # The call with PACKAGE and VERSION arguments is the old style | ||
585 | # call (pre autoconf-2.50), which is being phased out. PACKAGE | ||
586 | # and VERSION should now be passed to AC_INIT and removed from | ||
587 | # the call to AM_INIT_AUTOMAKE. | ||
588 | # We support both call styles for the transition. After | ||
589 | # the next Automake release, Autoconf can make the AC_INIT | ||
590 | # arguments mandatory, and then we can depend on a new Autoconf | ||
591 | # release and drop the old call support. | ||
592 | AC_DEFUN([AM_INIT_AUTOMAKE], | ||
593 | [AC_PREREQ([2.62])dnl | ||
594 | dnl Autoconf wants to disallow AM_ names. We explicitly allow | ||
595 | dnl the ones we care about. | ||
596 | m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl | ||
597 | AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl | ||
598 | AC_REQUIRE([AC_PROG_INSTALL])dnl | ||
599 | if test "`cd $srcdir && pwd`" != "`pwd`"; then | ||
600 | # Use -I$(srcdir) only when $(srcdir) != ., so that make's output | ||
601 | # is not polluted with repeated "-I." | ||
602 | AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl | ||
603 | # test to see if srcdir already configured | ||
604 | if test -f $srcdir/config.status; then | ||
605 | AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) | ||
606 | fi | ||
607 | fi | ||
608 | |||
609 | # test whether we have cygpath | ||
610 | if test -z "$CYGPATH_W"; then | ||
611 | if (cygpath --version) >/dev/null 2>/dev/null; then | ||
612 | CYGPATH_W='cygpath -w' | ||
613 | else | ||
614 | CYGPATH_W=echo | ||
615 | fi | ||
616 | fi | ||
617 | AC_SUBST([CYGPATH_W]) | ||
618 | |||
619 | # Define the identity of the package. | ||
620 | dnl Distinguish between old-style and new-style calls. | ||
621 | m4_ifval([$2], | ||
622 | [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl | ||
623 | AC_SUBST([PACKAGE], [$1])dnl | ||
624 | AC_SUBST([VERSION], [$2])], | ||
625 | [_AM_SET_OPTIONS([$1])dnl | ||
626 | dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. | ||
627 | m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, | ||
628 | [m4_fatal([AC_INIT should be called with package and version arguments])])dnl | ||
629 | AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl | ||
630 | AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl | ||
631 | |||
632 | _AM_IF_OPTION([no-define],, | ||
633 | [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) | ||
634 | AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl | ||
635 | |||
636 | # Some tools Automake needs. | ||
637 | AC_REQUIRE([AM_SANITY_CHECK])dnl | ||
638 | AC_REQUIRE([AC_ARG_PROGRAM])dnl | ||
639 | AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) | ||
640 | AM_MISSING_PROG(AUTOCONF, autoconf) | ||
641 | AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) | ||
642 | AM_MISSING_PROG(AUTOHEADER, autoheader) | ||
643 | AM_MISSING_PROG(MAKEINFO, makeinfo) | ||
644 | AC_REQUIRE([AM_PROG_INSTALL_SH])dnl | ||
645 | AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl | ||
646 | AC_REQUIRE([AM_PROG_MKDIR_P])dnl | ||
647 | # We need awk for the "check" target. The system "awk" is bad on | ||
648 | # some platforms. | ||
649 | AC_REQUIRE([AC_PROG_AWK])dnl | ||
650 | AC_REQUIRE([AC_PROG_MAKE_SET])dnl | ||
651 | AC_REQUIRE([AM_SET_LEADING_DOT])dnl | ||
652 | _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], | ||
653 | [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], | ||
654 | [_AM_PROG_TAR([v7])])]) | ||
655 | _AM_IF_OPTION([no-dependencies],, | ||
656 | [AC_PROVIDE_IFELSE([AC_PROG_CC], | ||
657 | [_AM_DEPENDENCIES(CC)], | ||
658 | [define([AC_PROG_CC], | ||
659 | defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl | ||
660 | AC_PROVIDE_IFELSE([AC_PROG_CXX], | ||
661 | [_AM_DEPENDENCIES(CXX)], | ||
662 | [define([AC_PROG_CXX], | ||
663 | defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl | ||
664 | AC_PROVIDE_IFELSE([AC_PROG_OBJC], | ||
665 | [_AM_DEPENDENCIES(OBJC)], | ||
666 | [define([AC_PROG_OBJC], | ||
667 | defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl | ||
668 | ]) | ||
669 | _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl | ||
670 | dnl The `parallel-tests' driver may need to know about EXEEXT, so add the | ||
671 | dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro | ||
672 | dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. | ||
673 | AC_CONFIG_COMMANDS_PRE(dnl | ||
674 | [m4_provide_if([_AM_COMPILER_EXEEXT], | ||
675 | [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl | ||
676 | ]) | ||
677 | |||
678 | dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not | ||
679 | dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further | ||
680 | dnl mangled by Autoconf and run in a shell conditional statement. | ||
681 | m4_define([_AC_COMPILER_EXEEXT], | ||
682 | m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) | ||
683 | |||
684 | |||
685 | # When config.status generates a header, we must update the stamp-h file. | ||
686 | # This file resides in the same directory as the config header | ||
687 | # that is generated. The stamp files are numbered to have different names. | ||
688 | |||
689 | # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the | ||
690 | # loop where config.status creates the headers, so we can generate | ||
691 | # our stamp files there. | ||
692 | AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], | ||
693 | [# Compute $1's index in $config_headers. | ||
694 | _am_arg=$1 | ||
695 | _am_stamp_count=1 | ||
696 | for _am_header in $config_headers :; do | ||
697 | case $_am_header in | ||
698 | $_am_arg | $_am_arg:* ) | ||
699 | break ;; | ||
700 | * ) | ||
701 | _am_stamp_count=`expr $_am_stamp_count + 1` ;; | ||
702 | esac | ||
703 | done | ||
704 | echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) | ||
705 | |||
706 | # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. | ||
707 | # | ||
708 | # This file is free software; the Free Software Foundation | ||
709 | # gives unlimited permission to copy and/or distribute it, | ||
710 | # with or without modifications, as long as this notice is preserved. | ||
711 | |||
712 | # AM_PROG_INSTALL_SH | ||
713 | # ------------------ | ||
714 | # Define $install_sh. | ||
715 | AC_DEFUN([AM_PROG_INSTALL_SH], | ||
716 | [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl | ||
717 | if test x"${install_sh}" != xset; then | ||
718 | case $am_aux_dir in | ||
719 | *\ * | *\ *) | ||
720 | install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; | ||
721 | *) | ||
722 | install_sh="\${SHELL} $am_aux_dir/install-sh" | ||
723 | esac | ||
724 | fi | ||
725 | AC_SUBST(install_sh)]) | ||
726 | |||
727 | # Copyright (C) 2003, 2005 Free Software Foundation, Inc. | ||
728 | # | ||
729 | # This file is free software; the Free Software Foundation | ||
730 | # gives unlimited permission to copy and/or distribute it, | ||
731 | # with or without modifications, as long as this notice is preserved. | ||
732 | |||
733 | # serial 2 | ||
734 | |||
735 | # Check whether the underlying file-system supports filenames | ||
736 | # with a leading dot. For instance MS-DOS doesn't. | ||
737 | AC_DEFUN([AM_SET_LEADING_DOT], | ||
738 | [rm -rf .tst 2>/dev/null | ||
739 | mkdir .tst 2>/dev/null | ||
740 | if test -d .tst; then | ||
741 | am__leading_dot=. | ||
742 | else | ||
743 | am__leading_dot=_ | ||
744 | fi | ||
745 | rmdir .tst 2>/dev/null | ||
746 | AC_SUBST([am__leading_dot])]) | ||
747 | |||
748 | # Check to see how 'make' treats includes. -*- Autoconf -*- | ||
749 | |||
750 | # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. | ||
751 | # | ||
752 | # This file is free software; the Free Software Foundation | ||
753 | # gives unlimited permission to copy and/or distribute it, | ||
754 | # with or without modifications, as long as this notice is preserved. | ||
755 | |||
756 | # serial 4 | ||
757 | |||
758 | # AM_MAKE_INCLUDE() | ||
759 | # ----------------- | ||
760 | # Check to see how make treats includes. | ||
761 | AC_DEFUN([AM_MAKE_INCLUDE], | ||
762 | [am_make=${MAKE-make} | ||
763 | cat > confinc << 'END' | ||
764 | am__doit: | ||
765 | @echo this is the am__doit target | ||
766 | .PHONY: am__doit | ||
767 | END | ||
768 | # If we don't find an include directive, just comment out the code. | ||
769 | AC_MSG_CHECKING([for style of include used by $am_make]) | ||
770 | am__include="#" | ||
771 | am__quote= | ||
772 | _am_result=none | ||
773 | # First try GNU make style include. | ||
774 | echo "include confinc" > confmf | ||
775 | # Ignore all kinds of additional output from `make'. | ||
776 | case `$am_make -s -f confmf 2> /dev/null` in #( | ||
777 | *the\ am__doit\ target*) | ||
778 | am__include=include | ||
779 | am__quote= | ||
780 | _am_result=GNU | ||
781 | ;; | ||
782 | esac | ||
783 | # Now try BSD make style include. | ||
784 | if test "$am__include" = "#"; then | ||
785 | echo '.include "confinc"' > confmf | ||
786 | case `$am_make -s -f confmf 2> /dev/null` in #( | ||
787 | *the\ am__doit\ target*) | ||
788 | am__include=.include | ||
789 | am__quote="\"" | ||
790 | _am_result=BSD | ||
791 | ;; | ||
792 | esac | ||
793 | fi | ||
794 | AC_SUBST([am__include]) | ||
795 | AC_SUBST([am__quote]) | ||
796 | AC_MSG_RESULT([$_am_result]) | ||
797 | rm -f confinc confmf | ||
798 | ]) | ||
799 | |||
800 | # Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008 | ||
801 | # Free Software Foundation, Inc. | ||
802 | # | ||
803 | # This file is free software; the Free Software Foundation | ||
804 | # gives unlimited permission to copy and/or distribute it, | ||
805 | # with or without modifications, as long as this notice is preserved. | ||
806 | |||
807 | # serial 6 | ||
808 | |||
809 | # AM_PROG_CC_C_O | ||
810 | # -------------- | ||
811 | # Like AC_PROG_CC_C_O, but changed for automake. | ||
812 | AC_DEFUN([AM_PROG_CC_C_O], | ||
813 | [AC_REQUIRE([AC_PROG_CC_C_O])dnl | ||
814 | AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl | ||
815 | AC_REQUIRE_AUX_FILE([compile])dnl | ||
816 | # FIXME: we rely on the cache variable name because | ||
817 | # there is no other way. | ||
818 | set dummy $CC | ||
819 | am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` | ||
820 | eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o | ||
821 | if test "$am_t" != yes; then | ||
822 | # Losing compiler, so override with the script. | ||
823 | # FIXME: It is wrong to rewrite CC. | ||
824 | # But if we don't then we get into trouble of one sort or another. | ||
825 | # A longer-term fix would be to have automake use am__CC in this case, | ||
826 | # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" | ||
827 | CC="$am_aux_dir/compile $CC" | ||
828 | fi | ||
829 | dnl Make sure AC_PROG_CC is never called again, or it will override our | ||
830 | dnl setting of CC. | ||
831 | m4_define([AC_PROG_CC], | ||
832 | [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])]) | ||
833 | ]) | ||
834 | |||
835 | # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- | ||
836 | |||
837 | # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 | ||
838 | # Free Software Foundation, Inc. | ||
839 | # | ||
840 | # This file is free software; the Free Software Foundation | ||
841 | # gives unlimited permission to copy and/or distribute it, | ||
842 | # with or without modifications, as long as this notice is preserved. | ||
843 | |||
844 | # serial 6 | ||
845 | |||
846 | # AM_MISSING_PROG(NAME, PROGRAM) | ||
847 | # ------------------------------ | ||
848 | AC_DEFUN([AM_MISSING_PROG], | ||
849 | [AC_REQUIRE([AM_MISSING_HAS_RUN]) | ||
850 | $1=${$1-"${am_missing_run}$2"} | ||
851 | AC_SUBST($1)]) | ||
852 | |||
853 | |||
854 | # AM_MISSING_HAS_RUN | ||
855 | # ------------------ | ||
856 | # Define MISSING if not defined so far and test if it supports --run. | ||
857 | # If it does, set am_missing_run to use it, otherwise, to nothing. | ||
858 | AC_DEFUN([AM_MISSING_HAS_RUN], | ||
859 | [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl | ||
860 | AC_REQUIRE_AUX_FILE([missing])dnl | ||
861 | if test x"${MISSING+set}" != xset; then | ||
862 | case $am_aux_dir in | ||
863 | *\ * | *\ *) | ||
864 | MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; | ||
865 | *) | ||
866 | MISSING="\${SHELL} $am_aux_dir/missing" ;; | ||
867 | esac | ||
868 | fi | ||
869 | # Use eval to expand $SHELL | ||
870 | if eval "$MISSING --run true"; then | ||
871 | am_missing_run="$MISSING --run " | ||
872 | else | ||
873 | am_missing_run= | ||
874 | AC_MSG_WARN([`missing' script is too old or missing]) | ||
875 | fi | ||
876 | ]) | ||
877 | |||
878 | # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. | ||
879 | # | ||
880 | # This file is free software; the Free Software Foundation | ||
881 | # gives unlimited permission to copy and/or distribute it, | ||
882 | # with or without modifications, as long as this notice is preserved. | ||
883 | |||
884 | # AM_PROG_MKDIR_P | ||
885 | # --------------- | ||
886 | # Check for `mkdir -p'. | ||
887 | AC_DEFUN([AM_PROG_MKDIR_P], | ||
888 | [AC_PREREQ([2.60])dnl | ||
889 | AC_REQUIRE([AC_PROG_MKDIR_P])dnl | ||
890 | dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, | ||
891 | dnl while keeping a definition of mkdir_p for backward compatibility. | ||
892 | dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. | ||
893 | dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of | ||
894 | dnl Makefile.ins that do not define MKDIR_P, so we do our own | ||
895 | dnl adjustment using top_builddir (which is defined more often than | ||
896 | dnl MKDIR_P). | ||
897 | AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl | ||
898 | case $mkdir_p in | ||
899 | [[\\/$]]* | ?:[[\\/]]*) ;; | ||
900 | */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; | ||
901 | esac | ||
902 | ]) | ||
903 | |||
904 | # Helper functions for option handling. -*- Autoconf -*- | ||
905 | |||
906 | # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. | ||
907 | # | ||
908 | # This file is free software; the Free Software Foundation | ||
909 | # gives unlimited permission to copy and/or distribute it, | ||
910 | # with or without modifications, as long as this notice is preserved. | ||
911 | |||
912 | # serial 4 | ||
913 | |||
914 | # _AM_MANGLE_OPTION(NAME) | ||
915 | # ----------------------- | ||
916 | AC_DEFUN([_AM_MANGLE_OPTION], | ||
917 | [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) | ||
918 | |||
919 | # _AM_SET_OPTION(NAME) | ||
920 | # ------------------------------ | ||
921 | # Set option NAME. Presently that only means defining a flag for this option. | ||
922 | AC_DEFUN([_AM_SET_OPTION], | ||
923 | [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) | ||
924 | |||
925 | # _AM_SET_OPTIONS(OPTIONS) | ||
926 | # ---------------------------------- | ||
927 | # OPTIONS is a space-separated list of Automake options. | ||
928 | AC_DEFUN([_AM_SET_OPTIONS], | ||
929 | [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) | ||
930 | |||
931 | # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) | ||
932 | # ------------------------------------------- | ||
933 | # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. | ||
934 | AC_DEFUN([_AM_IF_OPTION], | ||
935 | [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) | ||
936 | |||
937 | # Check to make sure that the build environment is sane. -*- Autoconf -*- | ||
938 | |||
939 | # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 | ||
940 | # Free Software Foundation, Inc. | ||
941 | # | ||
942 | # This file is free software; the Free Software Foundation | ||
943 | # gives unlimited permission to copy and/or distribute it, | ||
944 | # with or without modifications, as long as this notice is preserved. | ||
945 | |||
946 | # serial 5 | ||
947 | |||
948 | # AM_SANITY_CHECK | ||
949 | # --------------- | ||
950 | AC_DEFUN([AM_SANITY_CHECK], | ||
951 | [AC_MSG_CHECKING([whether build environment is sane]) | ||
952 | # Just in case | ||
953 | sleep 1 | ||
954 | echo timestamp > conftest.file | ||
955 | # Reject unsafe characters in $srcdir or the absolute working directory | ||
956 | # name. Accept space and tab only in the latter. | ||
957 | am_lf=' | ||
958 | ' | ||
959 | case `pwd` in | ||
960 | *[[\\\"\#\$\&\'\`$am_lf]]*) | ||
961 | AC_MSG_ERROR([unsafe absolute working directory name]);; | ||
962 | esac | ||
963 | case $srcdir in | ||
964 | *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) | ||
965 | AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; | ||
966 | esac | ||
967 | |||
968 | # Do `set' in a subshell so we don't clobber the current shell's | ||
969 | # arguments. Must try -L first in case configure is actually a | ||
970 | # symlink; some systems play weird games with the mod time of symlinks | ||
971 | # (eg FreeBSD returns the mod time of the symlink's containing | ||
972 | # directory). | ||
973 | if ( | ||
974 | set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` | ||
975 | if test "$[*]" = "X"; then | ||
976 | # -L didn't work. | ||
977 | set X `ls -t "$srcdir/configure" conftest.file` | ||
978 | fi | ||
979 | rm -f conftest.file | ||
980 | if test "$[*]" != "X $srcdir/configure conftest.file" \ | ||
981 | && test "$[*]" != "X conftest.file $srcdir/configure"; then | ||
982 | |||
983 | # If neither matched, then we have a broken ls. This can happen | ||
984 | # if, for instance, CONFIG_SHELL is bash and it inherits a | ||
985 | # broken ls alias from the environment. This has actually | ||
986 | # happened. Such a system could not be considered "sane". | ||
987 | AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken | ||
988 | alias in your environment]) | ||
989 | fi | ||
990 | |||
991 | test "$[2]" = conftest.file | ||
992 | ) | ||
993 | then | ||
994 | # Ok. | ||
995 | : | ||
996 | else | ||
997 | AC_MSG_ERROR([newly created file is older than distributed files! | ||
998 | Check your system clock]) | ||
999 | fi | ||
1000 | AC_MSG_RESULT(yes)]) | ||
1001 | |||
1002 | # Copyright (C) 2009 Free Software Foundation, Inc. | ||
1003 | # | ||
1004 | # This file is free software; the Free Software Foundation | ||
1005 | # gives unlimited permission to copy and/or distribute it, | ||
1006 | # with or without modifications, as long as this notice is preserved. | ||
1007 | |||
1008 | # serial 1 | ||
1009 | |||
1010 | # AM_SILENT_RULES([DEFAULT]) | ||
1011 | # -------------------------- | ||
1012 | # Enable less verbose build rules; with the default set to DEFAULT | ||
1013 | # (`yes' being less verbose, `no' or empty being verbose). | ||
1014 | AC_DEFUN([AM_SILENT_RULES], | ||
1015 | [AC_ARG_ENABLE([silent-rules], | ||
1016 | [ --enable-silent-rules less verbose build output (undo: `make V=1') | ||
1017 | --disable-silent-rules verbose build output (undo: `make V=0')]) | ||
1018 | case $enable_silent_rules in | ||
1019 | yes) AM_DEFAULT_VERBOSITY=0;; | ||
1020 | no) AM_DEFAULT_VERBOSITY=1;; | ||
1021 | *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; | ||
1022 | esac | ||
1023 | AC_SUBST([AM_DEFAULT_VERBOSITY])dnl | ||
1024 | AM_BACKSLASH='\' | ||
1025 | AC_SUBST([AM_BACKSLASH])dnl | ||
1026 | _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl | ||
1027 | ]) | ||
1028 | |||
1029 | # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. | ||
1030 | # | ||
1031 | # This file is free software; the Free Software Foundation | ||
1032 | # gives unlimited permission to copy and/or distribute it, | ||
1033 | # with or without modifications, as long as this notice is preserved. | ||
1034 | |||
1035 | # AM_PROG_INSTALL_STRIP | ||
1036 | # --------------------- | ||
1037 | # One issue with vendor `install' (even GNU) is that you can't | ||
1038 | # specify the program used to strip binaries. This is especially | ||
1039 | # annoying in cross-compiling environments, where the build's strip | ||
1040 | # is unlikely to handle the host's binaries. | ||
1041 | # Fortunately install-sh will honor a STRIPPROG variable, so we | ||
1042 | # always use install-sh in `make install-strip', and initialize | ||
1043 | # STRIPPROG with the value of the STRIP variable (set by the user). | ||
1044 | AC_DEFUN([AM_PROG_INSTALL_STRIP], | ||
1045 | [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl | ||
1046 | # Installed binaries are usually stripped using `strip' when the user | ||
1047 | # run `make install-strip'. However `strip' might not be the right | ||
1048 | # tool to use in cross-compilation environments, therefore Automake | ||
1049 | # will honor the `STRIP' environment variable to overrule this program. | ||
1050 | dnl Don't test for $cross_compiling = yes, because it might be `maybe'. | ||
1051 | if test "$cross_compiling" != no; then | ||
1052 | AC_CHECK_TOOL([STRIP], [strip], :) | ||
1053 | fi | ||
1054 | INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" | ||
1055 | AC_SUBST([INSTALL_STRIP_PROGRAM])]) | ||
1056 | |||
1057 | # Copyright (C) 2006, 2008 Free Software Foundation, Inc. | ||
1058 | # | ||
1059 | # This file is free software; the Free Software Foundation | ||
1060 | # gives unlimited permission to copy and/or distribute it, | ||
1061 | # with or without modifications, as long as this notice is preserved. | ||
1062 | |||
1063 | # serial 2 | ||
1064 | |||
1065 | # _AM_SUBST_NOTMAKE(VARIABLE) | ||
1066 | # --------------------------- | ||
1067 | # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. | ||
1068 | # This macro is traced by Automake. | ||
1069 | AC_DEFUN([_AM_SUBST_NOTMAKE]) | ||
1070 | |||
1071 | # AM_SUBST_NOTMAKE(VARIABLE) | ||
1072 | # --------------------------- | ||
1073 | # Public sister of _AM_SUBST_NOTMAKE. | ||
1074 | AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) | ||
1075 | |||
1076 | # Check how to create a tarball. -*- Autoconf -*- | ||
1077 | |||
1078 | # Copyright (C) 2004, 2005 Free Software Foundation, Inc. | ||
1079 | # | ||
1080 | # This file is free software; the Free Software Foundation | ||
1081 | # gives unlimited permission to copy and/or distribute it, | ||
1082 | # with or without modifications, as long as this notice is preserved. | ||
1083 | |||
1084 | # serial 2 | ||
1085 | |||
1086 | # _AM_PROG_TAR(FORMAT) | ||
1087 | # -------------------- | ||
1088 | # Check how to create a tarball in format FORMAT. | ||
1089 | # FORMAT should be one of `v7', `ustar', or `pax'. | ||
1090 | # | ||
1091 | # Substitute a variable $(am__tar) that is a command | ||
1092 | # writing to stdout a FORMAT-tarball containing the directory | ||
1093 | # $tardir. | ||
1094 | # tardir=directory && $(am__tar) > result.tar | ||
1095 | # | ||
1096 | # Substitute a variable $(am__untar) that extract such | ||
1097 | # a tarball read from stdin. | ||
1098 | # $(am__untar) < result.tar | ||
1099 | AC_DEFUN([_AM_PROG_TAR], | ||
1100 | [# Always define AMTAR for backward compatibility. | ||
1101 | AM_MISSING_PROG([AMTAR], [tar]) | ||
1102 | m4_if([$1], [v7], | ||
1103 | [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], | ||
1104 | [m4_case([$1], [ustar],, [pax],, | ||
1105 | [m4_fatal([Unknown tar format])]) | ||
1106 | AC_MSG_CHECKING([how to create a $1 tar archive]) | ||
1107 | # Loop over all known methods to create a tar archive until one works. | ||
1108 | _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' | ||
1109 | _am_tools=${am_cv_prog_tar_$1-$_am_tools} | ||
1110 | # Do not fold the above two line into one, because Tru64 sh and | ||
1111 | # Solaris sh will not grok spaces in the rhs of `-'. | ||
1112 | for _am_tool in $_am_tools | ||
1113 | do | ||
1114 | case $_am_tool in | ||
1115 | gnutar) | ||
1116 | for _am_tar in tar gnutar gtar; | ||
1117 | do | ||
1118 | AM_RUN_LOG([$_am_tar --version]) && break | ||
1119 | done | ||
1120 | am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' | ||
1121 | am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' | ||
1122 | am__untar="$_am_tar -xf -" | ||
1123 | ;; | ||
1124 | plaintar) | ||
1125 | # Must skip GNU tar: if it does not support --format= it doesn't create | ||
1126 | # ustar tarball either. | ||
1127 | (tar --version) >/dev/null 2>&1 && continue | ||
1128 | am__tar='tar chf - "$$tardir"' | ||
1129 | am__tar_='tar chf - "$tardir"' | ||
1130 | am__untar='tar xf -' | ||
1131 | ;; | ||
1132 | pax) | ||
1133 | am__tar='pax -L -x $1 -w "$$tardir"' | ||
1134 | am__tar_='pax -L -x $1 -w "$tardir"' | ||
1135 | am__untar='pax -r' | ||
1136 | ;; | ||
1137 | cpio) | ||
1138 | am__tar='find "$$tardir" -print | cpio -o -H $1 -L' | ||
1139 | am__tar_='find "$tardir" -print | cpio -o -H $1 -L' | ||
1140 | am__untar='cpio -i -H $1 -d' | ||
1141 | ;; | ||
1142 | none) | ||
1143 | am__tar=false | ||
1144 | am__tar_=false | ||
1145 | am__untar=false | ||
1146 | ;; | ||
1147 | esac | ||
1148 | |||
1149 | # If the value was cached, stop now. We just wanted to have am__tar | ||
1150 | # and am__untar set. | ||
1151 | test -n "${am_cv_prog_tar_$1}" && break | ||
1152 | |||
1153 | # tar/untar a dummy directory, and stop if the command works | ||
1154 | rm -rf conftest.dir | ||
1155 | mkdir conftest.dir | ||
1156 | echo GrepMe > conftest.dir/file | ||
1157 | AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) | ||
1158 | rm -rf conftest.dir | ||
1159 | if test -s conftest.tar; then | ||
1160 | AM_RUN_LOG([$am__untar <conftest.tar]) | ||
1161 | grep GrepMe conftest.dir/file >/dev/null 2>&1 && break | ||
1162 | fi | ||
1163 | done | ||
1164 | rm -rf conftest.dir | ||
1165 | |||
1166 | AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) | ||
1167 | AC_MSG_RESULT([$am_cv_prog_tar_$1])]) | ||
1168 | AC_SUBST([am__tar]) | ||
1169 | AC_SUBST([am__untar]) | ||
1170 | ]) # _AM_PROG_TAR | ||
1171 | |||
1172 | m4_include([m4/ac_attribute.m4]) | ||
1173 | m4_include([m4/ac_path_generic.m4]) | ||
1174 | m4_include([m4/efl_binary.m4]) | ||
1175 | m4_include([m4/efl_compiler_flag.m4]) | ||
1176 | m4_include([m4/efl_coverage.m4]) | ||
1177 | m4_include([m4/efl_doxygen.m4]) | ||
1178 | m4_include([m4/efl_fnmatch.m4]) | ||
1179 | m4_include([m4/efl_path_max.m4]) | ||
1180 | m4_include([m4/efl_tests.m4]) | ||
1181 | m4_include([m4/libtool.m4]) | ||
1182 | m4_include([m4/ltoptions.m4]) | ||
1183 | m4_include([m4/ltsugar.m4]) | ||
1184 | m4_include([m4/ltversion.m4]) | ||
1185 | m4_include([m4/lt~obsolete.m4]) | ||
diff --git a/libraries/eet/autogen.sh b/libraries/eet/autogen.sh deleted file mode 100755 index 72e1033..0000000 --- a/libraries/eet/autogen.sh +++ /dev/null | |||
@@ -1,38 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | rm -rf autom4te.cache | ||
4 | rm -f aclocal.m4 ltmain.sh | ||
5 | |||
6 | touch ABOUT-NLS | ||
7 | |||
8 | echo "Running aclocal..." ; aclocal $ACLOCAL_FLAGS -I m4 || exit 1 | ||
9 | echo "Running autoheader..." ; autoheader || exit 1 | ||
10 | echo "Running autoconf..." ; autoconf || exit 1 | ||
11 | echo "Running libtoolize..." ; (libtoolize --copy --automake || glibtoolize --automake) || exit 1 | ||
12 | echo "Running automake..." ; automake --add-missing --copy --gnu || exit 1 | ||
13 | |||
14 | W=0 | ||
15 | |||
16 | rm -f config.cache-env.tmp | ||
17 | echo "OLD_PARM=\"$@\"" >> config.cache-env.tmp | ||
18 | echo "OLD_CFLAGS=\"$CFLAGS\"" >> config.cache-env.tmp | ||
19 | echo "OLD_PATH=\"$PATH\"" >> config.cache-env.tmp | ||
20 | echo "OLD_PKG_CONFIG_PATH=\"$PKG_CONFIG_PATH\"" >> config.cache-env.tmp | ||
21 | echo "OLD_LDFLAGS=\"$LDFLAGS\"" >> config.cache-env.tmp | ||
22 | |||
23 | cmp config.cache-env.tmp config.cache-env >> /dev/null | ||
24 | if [ $? -ne 0 ]; then | ||
25 | W=1; | ||
26 | fi | ||
27 | |||
28 | if [ $W -ne 0 ]; then | ||
29 | echo "Cleaning configure cache..."; | ||
30 | rm -f config.cache config.cache-env | ||
31 | mv config.cache-env.tmp config.cache-env | ||
32 | else | ||
33 | rm -f config.cache-env.tmp | ||
34 | fi | ||
35 | |||
36 | if [ -z "$NOCONFIGURE" ]; then | ||
37 | ./configure -C "$@" | ||
38 | fi | ||
diff --git a/libraries/eet/compile b/libraries/eet/compile deleted file mode 100755 index c0096a7..0000000 --- a/libraries/eet/compile +++ /dev/null | |||
@@ -1,143 +0,0 @@ | |||
1 | #! /bin/sh | ||
2 | # Wrapper for compilers which do not understand `-c -o'. | ||
3 | |||
4 | scriptversion=2009-10-06.20; # UTC | ||
5 | |||
6 | # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software | ||
7 | # Foundation, Inc. | ||
8 | # Written by Tom Tromey <tromey@cygnus.com>. | ||
9 | # | ||
10 | # This program is free software; you can redistribute it and/or modify | ||
11 | # it under the terms of the GNU General Public License as published by | ||
12 | # the Free Software Foundation; either version 2, or (at your option) | ||
13 | # any later version. | ||
14 | # | ||
15 | # This program is distributed in the hope that it will be useful, | ||
16 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
17 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
18 | # GNU General Public License for more details. | ||
19 | # | ||
20 | # You should have received a copy of the GNU General Public License | ||
21 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
22 | |||
23 | # As a special exception to the GNU General Public License, if you | ||
24 | # distribute this file as part of a program that contains a | ||
25 | # configuration script generated by Autoconf, you may include it under | ||
26 | # the same distribution terms that you use for the rest of that program. | ||
27 | |||
28 | # This file is maintained in Automake, please report | ||
29 | # bugs to <bug-automake@gnu.org> or send patches to | ||
30 | # <automake-patches@gnu.org>. | ||
31 | |||
32 | case $1 in | ||
33 | '') | ||
34 | echo "$0: No command. Try \`$0 --help' for more information." 1>&2 | ||
35 | exit 1; | ||
36 | ;; | ||
37 | -h | --h*) | ||
38 | cat <<\EOF | ||
39 | Usage: compile [--help] [--version] PROGRAM [ARGS] | ||
40 | |||
41 | Wrapper for compilers which do not understand `-c -o'. | ||
42 | Remove `-o dest.o' from ARGS, run PROGRAM with the remaining | ||
43 | arguments, and rename the output as expected. | ||
44 | |||
45 | If you are trying to build a whole package this is not the | ||
46 | right script to run: please start by reading the file `INSTALL'. | ||
47 | |||
48 | Report bugs to <bug-automake@gnu.org>. | ||
49 | EOF | ||
50 | exit $? | ||
51 | ;; | ||
52 | -v | --v*) | ||
53 | echo "compile $scriptversion" | ||
54 | exit $? | ||
55 | ;; | ||
56 | esac | ||
57 | |||
58 | ofile= | ||
59 | cfile= | ||
60 | eat= | ||
61 | |||
62 | for arg | ||
63 | do | ||
64 | if test -n "$eat"; then | ||
65 | eat= | ||
66 | else | ||
67 | case $1 in | ||
68 | -o) | ||
69 | # configure might choose to run compile as `compile cc -o foo foo.c'. | ||
70 | # So we strip `-o arg' only if arg is an object. | ||
71 | eat=1 | ||
72 | case $2 in | ||
73 | *.o | *.obj) | ||
74 | ofile=$2 | ||
75 | ;; | ||
76 | *) | ||
77 | set x "$@" -o "$2" | ||
78 | shift | ||
79 | ;; | ||
80 | esac | ||
81 | ;; | ||
82 | *.c) | ||
83 | cfile=$1 | ||
84 | set x "$@" "$1" | ||
85 | shift | ||
86 | ;; | ||
87 | *) | ||
88 | set x "$@" "$1" | ||
89 | shift | ||
90 | ;; | ||
91 | esac | ||
92 | fi | ||
93 | shift | ||
94 | done | ||
95 | |||
96 | if test -z "$ofile" || test -z "$cfile"; then | ||
97 | # If no `-o' option was seen then we might have been invoked from a | ||
98 | # pattern rule where we don't need one. That is ok -- this is a | ||
99 | # normal compilation that the losing compiler can handle. If no | ||
100 | # `.c' file was seen then we are probably linking. That is also | ||
101 | # ok. | ||
102 | exec "$@" | ||
103 | fi | ||
104 | |||
105 | # Name of file we expect compiler to create. | ||
106 | cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` | ||
107 | |||
108 | # Create the lock directory. | ||
109 | # Note: use `[/\\:.-]' here to ensure that we don't use the same name | ||
110 | # that we are using for the .o file. Also, base the name on the expected | ||
111 | # object file name, since that is what matters with a parallel build. | ||
112 | lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d | ||
113 | while true; do | ||
114 | if mkdir "$lockdir" >/dev/null 2>&1; then | ||
115 | break | ||
116 | fi | ||
117 | sleep 1 | ||
118 | done | ||
119 | # FIXME: race condition here if user kills between mkdir and trap. | ||
120 | trap "rmdir '$lockdir'; exit 1" 1 2 15 | ||
121 | |||
122 | # Run the compile. | ||
123 | "$@" | ||
124 | ret=$? | ||
125 | |||
126 | if test -f "$cofile"; then | ||
127 | test "$cofile" = "$ofile" || mv "$cofile" "$ofile" | ||
128 | elif test -f "${cofile}bj"; then | ||
129 | test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" | ||
130 | fi | ||
131 | |||
132 | rmdir "$lockdir" | ||
133 | exit $ret | ||
134 | |||
135 | # Local Variables: | ||
136 | # mode: shell-script | ||
137 | # sh-indentation: 2 | ||
138 | # eval: (add-hook 'write-file-hooks 'time-stamp) | ||
139 | # time-stamp-start: "scriptversion=" | ||
140 | # time-stamp-format: "%:y-%02m-%02d.%02H" | ||
141 | # time-stamp-time-zone: "UTC" | ||
142 | # time-stamp-end: "; # UTC" | ||
143 | # End: | ||
diff --git a/libraries/eet/config.guess b/libraries/eet/config.guess deleted file mode 100755 index c2246a4..0000000 --- a/libraries/eet/config.guess +++ /dev/null | |||
@@ -1,1502 +0,0 @@ | |||
1 | #! /bin/sh | ||
2 | # Attempt to guess a canonical system name. | ||
3 | # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, | ||
4 | # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 | ||
5 | # Free Software Foundation, Inc. | ||
6 | |||
7 | timestamp='2009-12-30' | ||
8 | |||
9 | # This file is free software; you can redistribute it and/or modify it | ||
10 | # under the terms of the GNU General Public License as published by | ||
11 | # the Free Software Foundation; either version 2 of the License, or | ||
12 | # (at your option) any later version. | ||
13 | # | ||
14 | # This program is distributed in the hope that it will be useful, but | ||
15 | # WITHOUT ANY WARRANTY; without even the implied warranty of | ||
16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
17 | # General Public License for more details. | ||
18 | # | ||
19 | # You should have received a copy of the GNU General Public License | ||
20 | # along with this program; if not, write to the Free Software | ||
21 | # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA | ||
22 | # 02110-1301, USA. | ||
23 | # | ||
24 | # As a special exception to the GNU General Public License, if you | ||
25 | # distribute this file as part of a program that contains a | ||
26 | # configuration script generated by Autoconf, you may include it under | ||
27 | # the same distribution terms that you use for the rest of that program. | ||
28 | |||
29 | |||
30 | # Originally written by Per Bothner. Please send patches (context | ||
31 | # diff format) to <config-patches@gnu.org> and include a ChangeLog | ||
32 | # entry. | ||
33 | # | ||
34 | # This script attempts to guess a canonical system name similar to | ||
35 | # config.sub. If it succeeds, it prints the system name on stdout, and | ||
36 | # exits with 0. Otherwise, it exits with 1. | ||
37 | # | ||
38 | # You can get the latest version of this script from: | ||
39 | # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD | ||
40 | |||
41 | me=`echo "$0" | sed -e 's,.*/,,'` | ||
42 | |||
43 | usage="\ | ||
44 | Usage: $0 [OPTION] | ||
45 | |||
46 | Output the configuration name of the system \`$me' is run on. | ||
47 | |||
48 | Operation modes: | ||
49 | -h, --help print this help, then exit | ||
50 | -t, --time-stamp print date of last modification, then exit | ||
51 | -v, --version print version number, then exit | ||
52 | |||
53 | Report bugs and patches to <config-patches@gnu.org>." | ||
54 | |||
55 | version="\ | ||
56 | GNU config.guess ($timestamp) | ||
57 | |||
58 | Originally written by Per Bothner. | ||
59 | Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, | ||
60 | 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free | ||
61 | Software Foundation, Inc. | ||
62 | |||
63 | This is free software; see the source for copying conditions. There is NO | ||
64 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." | ||
65 | |||
66 | help=" | ||
67 | Try \`$me --help' for more information." | ||
68 | |||
69 | # Parse command line | ||
70 | while test $# -gt 0 ; do | ||
71 | case $1 in | ||
72 | --time-stamp | --time* | -t ) | ||
73 | echo "$timestamp" ; exit ;; | ||
74 | --version | -v ) | ||
75 | echo "$version" ; exit ;; | ||
76 | --help | --h* | -h ) | ||
77 | echo "$usage"; exit ;; | ||
78 | -- ) # Stop option processing | ||
79 | shift; break ;; | ||
80 | - ) # Use stdin as input. | ||
81 | break ;; | ||
82 | -* ) | ||
83 | echo "$me: invalid option $1$help" >&2 | ||
84 | exit 1 ;; | ||
85 | * ) | ||
86 | break ;; | ||
87 | esac | ||
88 | done | ||
89 | |||
90 | if test $# != 0; then | ||
91 | echo "$me: too many arguments$help" >&2 | ||
92 | exit 1 | ||
93 | fi | ||
94 | |||
95 | trap 'exit 1' 1 2 15 | ||
96 | |||
97 | # CC_FOR_BUILD -- compiler used by this script. Note that the use of a | ||
98 | # compiler to aid in system detection is discouraged as it requires | ||
99 | # temporary files to be created and, as you can see below, it is a | ||
100 | # headache to deal with in a portable fashion. | ||
101 | |||
102 | # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still | ||
103 | # use `HOST_CC' if defined, but it is deprecated. | ||
104 | |||
105 | # Portable tmp directory creation inspired by the Autoconf team. | ||
106 | |||
107 | set_cc_for_build=' | ||
108 | trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; | ||
109 | trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; | ||
110 | : ${TMPDIR=/tmp} ; | ||
111 | { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || | ||
112 | { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || | ||
113 | { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || | ||
114 | { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; | ||
115 | dummy=$tmp/dummy ; | ||
116 | tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; | ||
117 | case $CC_FOR_BUILD,$HOST_CC,$CC in | ||
118 | ,,) echo "int x;" > $dummy.c ; | ||
119 | for c in cc gcc c89 c99 ; do | ||
120 | if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then | ||
121 | CC_FOR_BUILD="$c"; break ; | ||
122 | fi ; | ||
123 | done ; | ||
124 | if test x"$CC_FOR_BUILD" = x ; then | ||
125 | CC_FOR_BUILD=no_compiler_found ; | ||
126 | fi | ||
127 | ;; | ||
128 | ,,*) CC_FOR_BUILD=$CC ;; | ||
129 | ,*,*) CC_FOR_BUILD=$HOST_CC ;; | ||
130 | esac ; set_cc_for_build= ;' | ||
131 | |||
132 | # This is needed to find uname on a Pyramid OSx when run in the BSD universe. | ||
133 | # (ghazi@noc.rutgers.edu 1994-08-24) | ||
134 | if (test -f /.attbin/uname) >/dev/null 2>&1 ; then | ||
135 | PATH=$PATH:/.attbin ; export PATH | ||
136 | fi | ||
137 | |||
138 | UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown | ||
139 | UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown | ||
140 | UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown | ||
141 | UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown | ||
142 | |||
143 | # Note: order is significant - the case branches are not exclusive. | ||
144 | |||
145 | case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in | ||
146 | *:NetBSD:*:*) | ||
147 | # NetBSD (nbsd) targets should (where applicable) match one or | ||
148 | # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, | ||
149 | # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently | ||
150 | # switched to ELF, *-*-netbsd* would select the old | ||
151 | # object file format. This provides both forward | ||
152 | # compatibility and a consistent mechanism for selecting the | ||
153 | # object file format. | ||
154 | # | ||
155 | # Note: NetBSD doesn't particularly care about the vendor | ||
156 | # portion of the name. We always set it to "unknown". | ||
157 | sysctl="sysctl -n hw.machine_arch" | ||
158 | UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ | ||
159 | /usr/sbin/$sysctl 2>/dev/null || echo unknown)` | ||
160 | case "${UNAME_MACHINE_ARCH}" in | ||
161 | armeb) machine=armeb-unknown ;; | ||
162 | arm*) machine=arm-unknown ;; | ||
163 | sh3el) machine=shl-unknown ;; | ||
164 | sh3eb) machine=sh-unknown ;; | ||
165 | sh5el) machine=sh5le-unknown ;; | ||
166 | *) machine=${UNAME_MACHINE_ARCH}-unknown ;; | ||
167 | esac | ||
168 | # The Operating System including object format, if it has switched | ||
169 | # to ELF recently, or will in the future. | ||
170 | case "${UNAME_MACHINE_ARCH}" in | ||
171 | arm*|i386|m68k|ns32k|sh3*|sparc|vax) | ||
172 | eval $set_cc_for_build | ||
173 | if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | ||
174 | | grep -q __ELF__ | ||
175 | then | ||
176 | # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). | ||
177 | # Return netbsd for either. FIX? | ||
178 | os=netbsd | ||
179 | else | ||
180 | os=netbsdelf | ||
181 | fi | ||
182 | ;; | ||
183 | *) | ||
184 | os=netbsd | ||
185 | ;; | ||
186 | esac | ||
187 | # The OS release | ||
188 | # Debian GNU/NetBSD machines have a different userland, and | ||
189 | # thus, need a distinct triplet. However, they do not need | ||
190 | # kernel version information, so it can be replaced with a | ||
191 | # suitable tag, in the style of linux-gnu. | ||
192 | case "${UNAME_VERSION}" in | ||
193 | Debian*) | ||
194 | release='-gnu' | ||
195 | ;; | ||
196 | *) | ||
197 | release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` | ||
198 | ;; | ||
199 | esac | ||
200 | # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: | ||
201 | # contains redundant information, the shorter form: | ||
202 | # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. | ||
203 | echo "${machine}-${os}${release}" | ||
204 | exit ;; | ||
205 | *:OpenBSD:*:*) | ||
206 | UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` | ||
207 | echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} | ||
208 | exit ;; | ||
209 | *:ekkoBSD:*:*) | ||
210 | echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} | ||
211 | exit ;; | ||
212 | *:SolidBSD:*:*) | ||
213 | echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} | ||
214 | exit ;; | ||
215 | macppc:MirBSD:*:*) | ||
216 | echo powerpc-unknown-mirbsd${UNAME_RELEASE} | ||
217 | exit ;; | ||
218 | *:MirBSD:*:*) | ||
219 | echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} | ||
220 | exit ;; | ||
221 | alpha:OSF1:*:*) | ||
222 | case $UNAME_RELEASE in | ||
223 | *4.0) | ||
224 | UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` | ||
225 | ;; | ||
226 | *5.*) | ||
227 | UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` | ||
228 | ;; | ||
229 | esac | ||
230 | # According to Compaq, /usr/sbin/psrinfo has been available on | ||
231 | # OSF/1 and Tru64 systems produced since 1995. I hope that | ||
232 | # covers most systems running today. This code pipes the CPU | ||
233 | # types through head -n 1, so we only detect the type of CPU 0. | ||
234 | ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` | ||
235 | case "$ALPHA_CPU_TYPE" in | ||
236 | "EV4 (21064)") | ||
237 | UNAME_MACHINE="alpha" ;; | ||
238 | "EV4.5 (21064)") | ||
239 | UNAME_MACHINE="alpha" ;; | ||
240 | "LCA4 (21066/21068)") | ||
241 | UNAME_MACHINE="alpha" ;; | ||
242 | "EV5 (21164)") | ||
243 | UNAME_MACHINE="alphaev5" ;; | ||
244 | "EV5.6 (21164A)") | ||
245 | UNAME_MACHINE="alphaev56" ;; | ||
246 | "EV5.6 (21164PC)") | ||
247 | UNAME_MACHINE="alphapca56" ;; | ||
248 | "EV5.7 (21164PC)") | ||
249 | UNAME_MACHINE="alphapca57" ;; | ||
250 | "EV6 (21264)") | ||
251 | UNAME_MACHINE="alphaev6" ;; | ||
252 | "EV6.7 (21264A)") | ||
253 | UNAME_MACHINE="alphaev67" ;; | ||
254 | "EV6.8CB (21264C)") | ||
255 | UNAME_MACHINE="alphaev68" ;; | ||
256 | "EV6.8AL (21264B)") | ||
257 | UNAME_MACHINE="alphaev68" ;; | ||
258 | "EV6.8CX (21264D)") | ||
259 | UNAME_MACHINE="alphaev68" ;; | ||
260 | "EV6.9A (21264/EV69A)") | ||
261 | UNAME_MACHINE="alphaev69" ;; | ||
262 | "EV7 (21364)") | ||
263 | UNAME_MACHINE="alphaev7" ;; | ||
264 | "EV7.9 (21364A)") | ||
265 | UNAME_MACHINE="alphaev79" ;; | ||
266 | esac | ||
267 | # A Pn.n version is a patched version. | ||
268 | # A Vn.n version is a released version. | ||
269 | # A Tn.n version is a released field test version. | ||
270 | # A Xn.n version is an unreleased experimental baselevel. | ||
271 | # 1.2 uses "1.2" for uname -r. | ||
272 | echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` | ||
273 | exit ;; | ||
274 | Alpha\ *:Windows_NT*:*) | ||
275 | # How do we know it's Interix rather than the generic POSIX subsystem? | ||
276 | # Should we change UNAME_MACHINE based on the output of uname instead | ||
277 | # of the specific Alpha model? | ||
278 | echo alpha-pc-interix | ||
279 | exit ;; | ||
280 | 21064:Windows_NT:50:3) | ||
281 | echo alpha-dec-winnt3.5 | ||
282 | exit ;; | ||
283 | Amiga*:UNIX_System_V:4.0:*) | ||
284 | echo m68k-unknown-sysv4 | ||
285 | exit ;; | ||
286 | *:[Aa]miga[Oo][Ss]:*:*) | ||
287 | echo ${UNAME_MACHINE}-unknown-amigaos | ||
288 | exit ;; | ||
289 | *:[Mm]orph[Oo][Ss]:*:*) | ||
290 | echo ${UNAME_MACHINE}-unknown-morphos | ||
291 | exit ;; | ||
292 | *:OS/390:*:*) | ||
293 | echo i370-ibm-openedition | ||
294 | exit ;; | ||
295 | *:z/VM:*:*) | ||
296 | echo s390-ibm-zvmoe | ||
297 | exit ;; | ||
298 | *:OS400:*:*) | ||
299 | echo powerpc-ibm-os400 | ||
300 | exit ;; | ||
301 | arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) | ||
302 | echo arm-acorn-riscix${UNAME_RELEASE} | ||
303 | exit ;; | ||
304 | arm:riscos:*:*|arm:RISCOS:*:*) | ||
305 | echo arm-unknown-riscos | ||
306 | exit ;; | ||
307 | SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) | ||
308 | echo hppa1.1-hitachi-hiuxmpp | ||
309 | exit ;; | ||
310 | Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) | ||
311 | # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. | ||
312 | if test "`(/bin/universe) 2>/dev/null`" = att ; then | ||
313 | echo pyramid-pyramid-sysv3 | ||
314 | else | ||
315 | echo pyramid-pyramid-bsd | ||
316 | fi | ||
317 | exit ;; | ||
318 | NILE*:*:*:dcosx) | ||
319 | echo pyramid-pyramid-svr4 | ||
320 | exit ;; | ||
321 | DRS?6000:unix:4.0:6*) | ||
322 | echo sparc-icl-nx6 | ||
323 | exit ;; | ||
324 | DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) | ||
325 | case `/usr/bin/uname -p` in | ||
326 | sparc) echo sparc-icl-nx7; exit ;; | ||
327 | esac ;; | ||
328 | s390x:SunOS:*:*) | ||
329 | echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | ||
330 | exit ;; | ||
331 | sun4H:SunOS:5.*:*) | ||
332 | echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | ||
333 | exit ;; | ||
334 | sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) | ||
335 | echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | ||
336 | exit ;; | ||
337 | i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) | ||
338 | echo i386-pc-auroraux${UNAME_RELEASE} | ||
339 | exit ;; | ||
340 | i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) | ||
341 | eval $set_cc_for_build | ||
342 | SUN_ARCH="i386" | ||
343 | # If there is a compiler, see if it is configured for 64-bit objects. | ||
344 | # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. | ||
345 | # This test works for both compilers. | ||
346 | if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then | ||
347 | if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ | ||
348 | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ | ||
349 | grep IS_64BIT_ARCH >/dev/null | ||
350 | then | ||
351 | SUN_ARCH="x86_64" | ||
352 | fi | ||
353 | fi | ||
354 | echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | ||
355 | exit ;; | ||
356 | sun4*:SunOS:6*:*) | ||
357 | # According to config.sub, this is the proper way to canonicalize | ||
358 | # SunOS6. Hard to guess exactly what SunOS6 will be like, but | ||
359 | # it's likely to be more like Solaris than SunOS4. | ||
360 | echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | ||
361 | exit ;; | ||
362 | sun4*:SunOS:*:*) | ||
363 | case "`/usr/bin/arch -k`" in | ||
364 | Series*|S4*) | ||
365 | UNAME_RELEASE=`uname -v` | ||
366 | ;; | ||
367 | esac | ||
368 | # Japanese Language versions have a version number like `4.1.3-JL'. | ||
369 | echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` | ||
370 | exit ;; | ||
371 | sun3*:SunOS:*:*) | ||
372 | echo m68k-sun-sunos${UNAME_RELEASE} | ||
373 | exit ;; | ||
374 | sun*:*:4.2BSD:*) | ||
375 | UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` | ||
376 | test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 | ||
377 | case "`/bin/arch`" in | ||
378 | sun3) | ||
379 | echo m68k-sun-sunos${UNAME_RELEASE} | ||
380 | ;; | ||
381 | sun4) | ||
382 | echo sparc-sun-sunos${UNAME_RELEASE} | ||
383 | ;; | ||
384 | esac | ||
385 | exit ;; | ||
386 | aushp:SunOS:*:*) | ||
387 | echo sparc-auspex-sunos${UNAME_RELEASE} | ||
388 | exit ;; | ||
389 | # The situation for MiNT is a little confusing. The machine name | ||
390 | # can be virtually everything (everything which is not | ||
391 | # "atarist" or "atariste" at least should have a processor | ||
392 | # > m68000). The system name ranges from "MiNT" over "FreeMiNT" | ||
393 | # to the lowercase version "mint" (or "freemint"). Finally | ||
394 | # the system name "TOS" denotes a system which is actually not | ||
395 | # MiNT. But MiNT is downward compatible to TOS, so this should | ||
396 | # be no problem. | ||
397 | atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) | ||
398 | echo m68k-atari-mint${UNAME_RELEASE} | ||
399 | exit ;; | ||
400 | atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) | ||
401 | echo m68k-atari-mint${UNAME_RELEASE} | ||
402 | exit ;; | ||
403 | *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) | ||
404 | echo m68k-atari-mint${UNAME_RELEASE} | ||
405 | exit ;; | ||
406 | milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) | ||
407 | echo m68k-milan-mint${UNAME_RELEASE} | ||
408 | exit ;; | ||
409 | hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) | ||
410 | echo m68k-hades-mint${UNAME_RELEASE} | ||
411 | exit ;; | ||
412 | *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) | ||
413 | echo m68k-unknown-mint${UNAME_RELEASE} | ||
414 | exit ;; | ||
415 | m68k:machten:*:*) | ||
416 | echo m68k-apple-machten${UNAME_RELEASE} | ||
417 | exit ;; | ||
418 | powerpc:machten:*:*) | ||
419 | echo powerpc-apple-machten${UNAME_RELEASE} | ||
420 | exit ;; | ||
421 | RISC*:Mach:*:*) | ||
422 | echo mips-dec-mach_bsd4.3 | ||
423 | exit ;; | ||
424 | RISC*:ULTRIX:*:*) | ||
425 | echo mips-dec-ultrix${UNAME_RELEASE} | ||
426 | exit ;; | ||
427 | VAX*:ULTRIX*:*:*) | ||
428 | echo vax-dec-ultrix${UNAME_RELEASE} | ||
429 | exit ;; | ||
430 | 2020:CLIX:*:* | 2430:CLIX:*:*) | ||
431 | echo clipper-intergraph-clix${UNAME_RELEASE} | ||
432 | exit ;; | ||
433 | mips:*:*:UMIPS | mips:*:*:RISCos) | ||
434 | eval $set_cc_for_build | ||
435 | sed 's/^ //' << EOF >$dummy.c | ||
436 | #ifdef __cplusplus | ||
437 | #include <stdio.h> /* for printf() prototype */ | ||
438 | int main (int argc, char *argv[]) { | ||
439 | #else | ||
440 | int main (argc, argv) int argc; char *argv[]; { | ||
441 | #endif | ||
442 | #if defined (host_mips) && defined (MIPSEB) | ||
443 | #if defined (SYSTYPE_SYSV) | ||
444 | printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); | ||
445 | #endif | ||
446 | #if defined (SYSTYPE_SVR4) | ||
447 | printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); | ||
448 | #endif | ||
449 | #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) | ||
450 | printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); | ||
451 | #endif | ||
452 | #endif | ||
453 | exit (-1); | ||
454 | } | ||
455 | EOF | ||
456 | $CC_FOR_BUILD -o $dummy $dummy.c && | ||
457 | dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && | ||
458 | SYSTEM_NAME=`$dummy $dummyarg` && | ||
459 | { echo "$SYSTEM_NAME"; exit; } | ||
460 | echo mips-mips-riscos${UNAME_RELEASE} | ||
461 | exit ;; | ||
462 | Motorola:PowerMAX_OS:*:*) | ||
463 | echo powerpc-motorola-powermax | ||
464 | exit ;; | ||
465 | Motorola:*:4.3:PL8-*) | ||
466 | echo powerpc-harris-powermax | ||
467 | exit ;; | ||
468 | Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) | ||
469 | echo powerpc-harris-powermax | ||
470 | exit ;; | ||
471 | Night_Hawk:Power_UNIX:*:*) | ||
472 | echo powerpc-harris-powerunix | ||
473 | exit ;; | ||
474 | m88k:CX/UX:7*:*) | ||
475 | echo m88k-harris-cxux7 | ||
476 | exit ;; | ||
477 | m88k:*:4*:R4*) | ||
478 | echo m88k-motorola-sysv4 | ||
479 | exit ;; | ||
480 | m88k:*:3*:R3*) | ||
481 | echo m88k-motorola-sysv3 | ||
482 | exit ;; | ||
483 | AViiON:dgux:*:*) | ||
484 | # DG/UX returns AViiON for all architectures | ||
485 | UNAME_PROCESSOR=`/usr/bin/uname -p` | ||
486 | if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] | ||
487 | then | ||
488 | if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ | ||
489 | [ ${TARGET_BINARY_INTERFACE}x = x ] | ||
490 | then | ||
491 | echo m88k-dg-dgux${UNAME_RELEASE} | ||
492 | else | ||
493 | echo m88k-dg-dguxbcs${UNAME_RELEASE} | ||
494 | fi | ||
495 | else | ||
496 | echo i586-dg-dgux${UNAME_RELEASE} | ||
497 | fi | ||
498 | exit ;; | ||
499 | M88*:DolphinOS:*:*) # DolphinOS (SVR3) | ||
500 | echo m88k-dolphin-sysv3 | ||
501 | exit ;; | ||
502 | M88*:*:R3*:*) | ||
503 | # Delta 88k system running SVR3 | ||
504 | echo m88k-motorola-sysv3 | ||
505 | exit ;; | ||
506 | XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) | ||
507 | echo m88k-tektronix-sysv3 | ||
508 | exit ;; | ||
509 | Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) | ||
510 | echo m68k-tektronix-bsd | ||
511 | exit ;; | ||
512 | *:IRIX*:*:*) | ||
513 | echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` | ||
514 | exit ;; | ||
515 | ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. | ||
516 | echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id | ||
517 | exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' | ||
518 | i*86:AIX:*:*) | ||
519 | echo i386-ibm-aix | ||
520 | exit ;; | ||
521 | ia64:AIX:*:*) | ||
522 | if [ -x /usr/bin/oslevel ] ; then | ||
523 | IBM_REV=`/usr/bin/oslevel` | ||
524 | else | ||
525 | IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} | ||
526 | fi | ||
527 | echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} | ||
528 | exit ;; | ||
529 | *:AIX:2:3) | ||
530 | if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then | ||
531 | eval $set_cc_for_build | ||
532 | sed 's/^ //' << EOF >$dummy.c | ||
533 | #include <sys/systemcfg.h> | ||
534 | |||
535 | main() | ||
536 | { | ||
537 | if (!__power_pc()) | ||
538 | exit(1); | ||
539 | puts("powerpc-ibm-aix3.2.5"); | ||
540 | exit(0); | ||
541 | } | ||
542 | EOF | ||
543 | if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` | ||
544 | then | ||
545 | echo "$SYSTEM_NAME" | ||
546 | else | ||
547 | echo rs6000-ibm-aix3.2.5 | ||
548 | fi | ||
549 | elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then | ||
550 | echo rs6000-ibm-aix3.2.4 | ||
551 | else | ||
552 | echo rs6000-ibm-aix3.2 | ||
553 | fi | ||
554 | exit ;; | ||
555 | *:AIX:*:[456]) | ||
556 | IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` | ||
557 | if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then | ||
558 | IBM_ARCH=rs6000 | ||
559 | else | ||
560 | IBM_ARCH=powerpc | ||
561 | fi | ||
562 | if [ -x /usr/bin/oslevel ] ; then | ||
563 | IBM_REV=`/usr/bin/oslevel` | ||
564 | else | ||
565 | IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} | ||
566 | fi | ||
567 | echo ${IBM_ARCH}-ibm-aix${IBM_REV} | ||
568 | exit ;; | ||
569 | *:AIX:*:*) | ||
570 | echo rs6000-ibm-aix | ||
571 | exit ;; | ||
572 | ibmrt:4.4BSD:*|romp-ibm:BSD:*) | ||
573 | echo romp-ibm-bsd4.4 | ||
574 | exit ;; | ||
575 | ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and | ||
576 | echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to | ||
577 | exit ;; # report: romp-ibm BSD 4.3 | ||
578 | *:BOSX:*:*) | ||
579 | echo rs6000-bull-bosx | ||
580 | exit ;; | ||
581 | DPX/2?00:B.O.S.:*:*) | ||
582 | echo m68k-bull-sysv3 | ||
583 | exit ;; | ||
584 | 9000/[34]??:4.3bsd:1.*:*) | ||
585 | echo m68k-hp-bsd | ||
586 | exit ;; | ||
587 | hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) | ||
588 | echo m68k-hp-bsd4.4 | ||
589 | exit ;; | ||
590 | 9000/[34678]??:HP-UX:*:*) | ||
591 | HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` | ||
592 | case "${UNAME_MACHINE}" in | ||
593 | 9000/31? ) HP_ARCH=m68000 ;; | ||
594 | 9000/[34]?? ) HP_ARCH=m68k ;; | ||
595 | 9000/[678][0-9][0-9]) | ||
596 | if [ -x /usr/bin/getconf ]; then | ||
597 | sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` | ||
598 | sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` | ||
599 | case "${sc_cpu_version}" in | ||
600 | 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 | ||
601 | 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 | ||
602 | 532) # CPU_PA_RISC2_0 | ||
603 | case "${sc_kernel_bits}" in | ||
604 | 32) HP_ARCH="hppa2.0n" ;; | ||
605 | 64) HP_ARCH="hppa2.0w" ;; | ||
606 | '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 | ||
607 | esac ;; | ||
608 | esac | ||
609 | fi | ||
610 | if [ "${HP_ARCH}" = "" ]; then | ||
611 | eval $set_cc_for_build | ||
612 | sed 's/^ //' << EOF >$dummy.c | ||
613 | |||
614 | #define _HPUX_SOURCE | ||
615 | #include <stdlib.h> | ||
616 | #include <unistd.h> | ||
617 | |||
618 | int main () | ||
619 | { | ||
620 | #if defined(_SC_KERNEL_BITS) | ||
621 | long bits = sysconf(_SC_KERNEL_BITS); | ||
622 | #endif | ||
623 | long cpu = sysconf (_SC_CPU_VERSION); | ||
624 | |||
625 | switch (cpu) | ||
626 | { | ||
627 | case CPU_PA_RISC1_0: puts ("hppa1.0"); break; | ||
628 | case CPU_PA_RISC1_1: puts ("hppa1.1"); break; | ||
629 | case CPU_PA_RISC2_0: | ||
630 | #if defined(_SC_KERNEL_BITS) | ||
631 | switch (bits) | ||
632 | { | ||
633 | case 64: puts ("hppa2.0w"); break; | ||
634 | case 32: puts ("hppa2.0n"); break; | ||
635 | default: puts ("hppa2.0"); break; | ||
636 | } break; | ||
637 | #else /* !defined(_SC_KERNEL_BITS) */ | ||
638 | puts ("hppa2.0"); break; | ||
639 | #endif | ||
640 | default: puts ("hppa1.0"); break; | ||
641 | } | ||
642 | exit (0); | ||
643 | } | ||
644 | EOF | ||
645 | (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` | ||
646 | test -z "$HP_ARCH" && HP_ARCH=hppa | ||
647 | fi ;; | ||
648 | esac | ||
649 | if [ ${HP_ARCH} = "hppa2.0w" ] | ||
650 | then | ||
651 | eval $set_cc_for_build | ||
652 | |||
653 | # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating | ||
654 | # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler | ||
655 | # generating 64-bit code. GNU and HP use different nomenclature: | ||
656 | # | ||
657 | # $ CC_FOR_BUILD=cc ./config.guess | ||
658 | # => hppa2.0w-hp-hpux11.23 | ||
659 | # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess | ||
660 | # => hppa64-hp-hpux11.23 | ||
661 | |||
662 | if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | | ||
663 | grep -q __LP64__ | ||
664 | then | ||
665 | HP_ARCH="hppa2.0w" | ||
666 | else | ||
667 | HP_ARCH="hppa64" | ||
668 | fi | ||
669 | fi | ||
670 | echo ${HP_ARCH}-hp-hpux${HPUX_REV} | ||
671 | exit ;; | ||
672 | ia64:HP-UX:*:*) | ||
673 | HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` | ||
674 | echo ia64-hp-hpux${HPUX_REV} | ||
675 | exit ;; | ||
676 | 3050*:HI-UX:*:*) | ||
677 | eval $set_cc_for_build | ||
678 | sed 's/^ //' << EOF >$dummy.c | ||
679 | #include <unistd.h> | ||
680 | int | ||
681 | main () | ||
682 | { | ||
683 | long cpu = sysconf (_SC_CPU_VERSION); | ||
684 | /* The order matters, because CPU_IS_HP_MC68K erroneously returns | ||
685 | true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct | ||
686 | results, however. */ | ||
687 | if (CPU_IS_PA_RISC (cpu)) | ||
688 | { | ||
689 | switch (cpu) | ||
690 | { | ||
691 | case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; | ||
692 | case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; | ||
693 | case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; | ||
694 | default: puts ("hppa-hitachi-hiuxwe2"); break; | ||
695 | } | ||
696 | } | ||
697 | else if (CPU_IS_HP_MC68K (cpu)) | ||
698 | puts ("m68k-hitachi-hiuxwe2"); | ||
699 | else puts ("unknown-hitachi-hiuxwe2"); | ||
700 | exit (0); | ||
701 | } | ||
702 | EOF | ||
703 | $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && | ||
704 | { echo "$SYSTEM_NAME"; exit; } | ||
705 | echo unknown-hitachi-hiuxwe2 | ||
706 | exit ;; | ||
707 | 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) | ||
708 | echo hppa1.1-hp-bsd | ||
709 | exit ;; | ||
710 | 9000/8??:4.3bsd:*:*) | ||
711 | echo hppa1.0-hp-bsd | ||
712 | exit ;; | ||
713 | *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) | ||
714 | echo hppa1.0-hp-mpeix | ||
715 | exit ;; | ||
716 | hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) | ||
717 | echo hppa1.1-hp-osf | ||
718 | exit ;; | ||
719 | hp8??:OSF1:*:*) | ||
720 | echo hppa1.0-hp-osf | ||
721 | exit ;; | ||
722 | i*86:OSF1:*:*) | ||
723 | if [ -x /usr/sbin/sysversion ] ; then | ||
724 | echo ${UNAME_MACHINE}-unknown-osf1mk | ||
725 | else | ||
726 | echo ${UNAME_MACHINE}-unknown-osf1 | ||
727 | fi | ||
728 | exit ;; | ||
729 | parisc*:Lites*:*:*) | ||
730 | echo hppa1.1-hp-lites | ||
731 | exit ;; | ||
732 | C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) | ||
733 | echo c1-convex-bsd | ||
734 | exit ;; | ||
735 | C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) | ||
736 | if getsysinfo -f scalar_acc | ||
737 | then echo c32-convex-bsd | ||
738 | else echo c2-convex-bsd | ||
739 | fi | ||
740 | exit ;; | ||
741 | C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) | ||
742 | echo c34-convex-bsd | ||
743 | exit ;; | ||
744 | C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) | ||
745 | echo c38-convex-bsd | ||
746 | exit ;; | ||
747 | C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) | ||
748 | echo c4-convex-bsd | ||
749 | exit ;; | ||
750 | CRAY*Y-MP:*:*:*) | ||
751 | echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' | ||
752 | exit ;; | ||
753 | CRAY*[A-Z]90:*:*:*) | ||
754 | echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | ||
755 | | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ | ||
756 | -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ | ||
757 | -e 's/\.[^.]*$/.X/' | ||
758 | exit ;; | ||
759 | CRAY*TS:*:*:*) | ||
760 | echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' | ||
761 | exit ;; | ||
762 | CRAY*T3E:*:*:*) | ||
763 | echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' | ||
764 | exit ;; | ||
765 | CRAY*SV1:*:*:*) | ||
766 | echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' | ||
767 | exit ;; | ||
768 | *:UNICOS/mp:*:*) | ||
769 | echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' | ||
770 | exit ;; | ||
771 | F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) | ||
772 | FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` | ||
773 | FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` | ||
774 | FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` | ||
775 | echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" | ||
776 | exit ;; | ||
777 | 5000:UNIX_System_V:4.*:*) | ||
778 | FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` | ||
779 | FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` | ||
780 | echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" | ||
781 | exit ;; | ||
782 | i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) | ||
783 | echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} | ||
784 | exit ;; | ||
785 | sparc*:BSD/OS:*:*) | ||
786 | echo sparc-unknown-bsdi${UNAME_RELEASE} | ||
787 | exit ;; | ||
788 | *:BSD/OS:*:*) | ||
789 | echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} | ||
790 | exit ;; | ||
791 | *:FreeBSD:*:*) | ||
792 | case ${UNAME_MACHINE} in | ||
793 | pc98) | ||
794 | echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; | ||
795 | amd64) | ||
796 | echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; | ||
797 | *) | ||
798 | echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; | ||
799 | esac | ||
800 | exit ;; | ||
801 | i*:CYGWIN*:*) | ||
802 | echo ${UNAME_MACHINE}-pc-cygwin | ||
803 | exit ;; | ||
804 | *:MINGW*:*) | ||
805 | echo ${UNAME_MACHINE}-pc-mingw32 | ||
806 | exit ;; | ||
807 | i*:windows32*:*) | ||
808 | # uname -m includes "-pc" on this system. | ||
809 | echo ${UNAME_MACHINE}-mingw32 | ||
810 | exit ;; | ||
811 | i*:PW*:*) | ||
812 | echo ${UNAME_MACHINE}-pc-pw32 | ||
813 | exit ;; | ||
814 | *:Interix*:*) | ||
815 | case ${UNAME_MACHINE} in | ||
816 | x86) | ||
817 | echo i586-pc-interix${UNAME_RELEASE} | ||
818 | exit ;; | ||
819 | authenticamd | genuineintel | EM64T) | ||
820 | echo x86_64-unknown-interix${UNAME_RELEASE} | ||
821 | exit ;; | ||
822 | IA64) | ||
823 | echo ia64-unknown-interix${UNAME_RELEASE} | ||
824 | exit ;; | ||
825 | esac ;; | ||
826 | [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) | ||
827 | echo i${UNAME_MACHINE}-pc-mks | ||
828 | exit ;; | ||
829 | 8664:Windows_NT:*) | ||
830 | echo x86_64-pc-mks | ||
831 | exit ;; | ||
832 | i*:Windows_NT*:* | Pentium*:Windows_NT*:*) | ||
833 | # How do we know it's Interix rather than the generic POSIX subsystem? | ||
834 | # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we | ||
835 | # UNAME_MACHINE based on the output of uname instead of i386? | ||
836 | echo i586-pc-interix | ||
837 | exit ;; | ||
838 | i*:UWIN*:*) | ||
839 | echo ${UNAME_MACHINE}-pc-uwin | ||
840 | exit ;; | ||
841 | amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) | ||
842 | echo x86_64-unknown-cygwin | ||
843 | exit ;; | ||
844 | p*:CYGWIN*:*) | ||
845 | echo powerpcle-unknown-cygwin | ||
846 | exit ;; | ||
847 | prep*:SunOS:5.*:*) | ||
848 | echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` | ||
849 | exit ;; | ||
850 | *:GNU:*:*) | ||
851 | # the GNU system | ||
852 | echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` | ||
853 | exit ;; | ||
854 | *:GNU/*:*:*) | ||
855 | # other systems with GNU libc and userland | ||
856 | echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu | ||
857 | exit ;; | ||
858 | i*86:Minix:*:*) | ||
859 | echo ${UNAME_MACHINE}-pc-minix | ||
860 | exit ;; | ||
861 | alpha:Linux:*:*) | ||
862 | case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in | ||
863 | EV5) UNAME_MACHINE=alphaev5 ;; | ||
864 | EV56) UNAME_MACHINE=alphaev56 ;; | ||
865 | PCA56) UNAME_MACHINE=alphapca56 ;; | ||
866 | PCA57) UNAME_MACHINE=alphapca56 ;; | ||
867 | EV6) UNAME_MACHINE=alphaev6 ;; | ||
868 | EV67) UNAME_MACHINE=alphaev67 ;; | ||
869 | EV68*) UNAME_MACHINE=alphaev68 ;; | ||
870 | esac | ||
871 | objdump --private-headers /bin/sh | grep -q ld.so.1 | ||
872 | if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi | ||
873 | echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} | ||
874 | exit ;; | ||
875 | arm*:Linux:*:*) | ||
876 | eval $set_cc_for_build | ||
877 | if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | ||
878 | | grep -q __ARM_EABI__ | ||
879 | then | ||
880 | echo ${UNAME_MACHINE}-unknown-linux-gnu | ||
881 | else | ||
882 | echo ${UNAME_MACHINE}-unknown-linux-gnueabi | ||
883 | fi | ||
884 | exit ;; | ||
885 | avr32*:Linux:*:*) | ||
886 | echo ${UNAME_MACHINE}-unknown-linux-gnu | ||
887 | exit ;; | ||
888 | cris:Linux:*:*) | ||
889 | echo cris-axis-linux-gnu | ||
890 | exit ;; | ||
891 | crisv32:Linux:*:*) | ||
892 | echo crisv32-axis-linux-gnu | ||
893 | exit ;; | ||
894 | frv:Linux:*:*) | ||
895 | echo frv-unknown-linux-gnu | ||
896 | exit ;; | ||
897 | i*86:Linux:*:*) | ||
898 | LIBC=gnu | ||
899 | eval $set_cc_for_build | ||
900 | sed 's/^ //' << EOF >$dummy.c | ||
901 | #ifdef __dietlibc__ | ||
902 | LIBC=dietlibc | ||
903 | #endif | ||
904 | EOF | ||
905 | eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` | ||
906 | echo "${UNAME_MACHINE}-pc-linux-${LIBC}" | ||
907 | exit ;; | ||
908 | ia64:Linux:*:*) | ||
909 | echo ${UNAME_MACHINE}-unknown-linux-gnu | ||
910 | exit ;; | ||
911 | m32r*:Linux:*:*) | ||
912 | echo ${UNAME_MACHINE}-unknown-linux-gnu | ||
913 | exit ;; | ||
914 | m68*:Linux:*:*) | ||
915 | echo ${UNAME_MACHINE}-unknown-linux-gnu | ||
916 | exit ;; | ||
917 | mips:Linux:*:* | mips64:Linux:*:*) | ||
918 | eval $set_cc_for_build | ||
919 | sed 's/^ //' << EOF >$dummy.c | ||
920 | #undef CPU | ||
921 | #undef ${UNAME_MACHINE} | ||
922 | #undef ${UNAME_MACHINE}el | ||
923 | #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) | ||
924 | CPU=${UNAME_MACHINE}el | ||
925 | #else | ||
926 | #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) | ||
927 | CPU=${UNAME_MACHINE} | ||
928 | #else | ||
929 | CPU= | ||
930 | #endif | ||
931 | #endif | ||
932 | EOF | ||
933 | eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` | ||
934 | test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } | ||
935 | ;; | ||
936 | or32:Linux:*:*) | ||
937 | echo or32-unknown-linux-gnu | ||
938 | exit ;; | ||
939 | padre:Linux:*:*) | ||
940 | echo sparc-unknown-linux-gnu | ||
941 | exit ;; | ||
942 | parisc64:Linux:*:* | hppa64:Linux:*:*) | ||
943 | echo hppa64-unknown-linux-gnu | ||
944 | exit ;; | ||
945 | parisc:Linux:*:* | hppa:Linux:*:*) | ||
946 | # Look for CPU level | ||
947 | case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in | ||
948 | PA7*) echo hppa1.1-unknown-linux-gnu ;; | ||
949 | PA8*) echo hppa2.0-unknown-linux-gnu ;; | ||
950 | *) echo hppa-unknown-linux-gnu ;; | ||
951 | esac | ||
952 | exit ;; | ||
953 | ppc64:Linux:*:*) | ||
954 | echo powerpc64-unknown-linux-gnu | ||
955 | exit ;; | ||
956 | ppc:Linux:*:*) | ||
957 | echo powerpc-unknown-linux-gnu | ||
958 | exit ;; | ||
959 | s390:Linux:*:* | s390x:Linux:*:*) | ||
960 | echo ${UNAME_MACHINE}-ibm-linux | ||
961 | exit ;; | ||
962 | sh64*:Linux:*:*) | ||
963 | echo ${UNAME_MACHINE}-unknown-linux-gnu | ||
964 | exit ;; | ||
965 | sh*:Linux:*:*) | ||
966 | echo ${UNAME_MACHINE}-unknown-linux-gnu | ||
967 | exit ;; | ||
968 | sparc:Linux:*:* | sparc64:Linux:*:*) | ||
969 | echo ${UNAME_MACHINE}-unknown-linux-gnu | ||
970 | exit ;; | ||
971 | vax:Linux:*:*) | ||
972 | echo ${UNAME_MACHINE}-dec-linux-gnu | ||
973 | exit ;; | ||
974 | x86_64:Linux:*:*) | ||
975 | echo x86_64-unknown-linux-gnu | ||
976 | exit ;; | ||
977 | xtensa*:Linux:*:*) | ||
978 | echo ${UNAME_MACHINE}-unknown-linux-gnu | ||
979 | exit ;; | ||
980 | i*86:DYNIX/ptx:4*:*) | ||
981 | # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. | ||
982 | # earlier versions are messed up and put the nodename in both | ||
983 | # sysname and nodename. | ||
984 | echo i386-sequent-sysv4 | ||
985 | exit ;; | ||
986 | i*86:UNIX_SV:4.2MP:2.*) | ||
987 | # Unixware is an offshoot of SVR4, but it has its own version | ||
988 | # number series starting with 2... | ||
989 | # I am not positive that other SVR4 systems won't match this, | ||
990 | # I just have to hope. -- rms. | ||
991 | # Use sysv4.2uw... so that sysv4* matches it. | ||
992 | echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} | ||
993 | exit ;; | ||
994 | i*86:OS/2:*:*) | ||
995 | # If we were able to find `uname', then EMX Unix compatibility | ||
996 | # is probably installed. | ||
997 | echo ${UNAME_MACHINE}-pc-os2-emx | ||
998 | exit ;; | ||
999 | i*86:XTS-300:*:STOP) | ||
1000 | echo ${UNAME_MACHINE}-unknown-stop | ||
1001 | exit ;; | ||
1002 | i*86:atheos:*:*) | ||
1003 | echo ${UNAME_MACHINE}-unknown-atheos | ||
1004 | exit ;; | ||
1005 | i*86:syllable:*:*) | ||
1006 | echo ${UNAME_MACHINE}-pc-syllable | ||
1007 | exit ;; | ||
1008 | i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) | ||
1009 | echo i386-unknown-lynxos${UNAME_RELEASE} | ||
1010 | exit ;; | ||
1011 | i*86:*DOS:*:*) | ||
1012 | echo ${UNAME_MACHINE}-pc-msdosdjgpp | ||
1013 | exit ;; | ||
1014 | i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) | ||
1015 | UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` | ||
1016 | if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then | ||
1017 | echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} | ||
1018 | else | ||
1019 | echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} | ||
1020 | fi | ||
1021 | exit ;; | ||
1022 | i*86:*:5:[678]*) | ||
1023 | # UnixWare 7.x, OpenUNIX and OpenServer 6. | ||
1024 | case `/bin/uname -X | grep "^Machine"` in | ||
1025 | *486*) UNAME_MACHINE=i486 ;; | ||
1026 | *Pentium) UNAME_MACHINE=i586 ;; | ||
1027 | *Pent*|*Celeron) UNAME_MACHINE=i686 ;; | ||
1028 | esac | ||
1029 | echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} | ||
1030 | exit ;; | ||
1031 | i*86:*:3.2:*) | ||
1032 | if test -f /usr/options/cb.name; then | ||
1033 | UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` | ||
1034 | echo ${UNAME_MACHINE}-pc-isc$UNAME_REL | ||
1035 | elif /bin/uname -X 2>/dev/null >/dev/null ; then | ||
1036 | UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` | ||
1037 | (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 | ||
1038 | (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ | ||
1039 | && UNAME_MACHINE=i586 | ||
1040 | (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ | ||
1041 | && UNAME_MACHINE=i686 | ||
1042 | (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ | ||
1043 | && UNAME_MACHINE=i686 | ||
1044 | echo ${UNAME_MACHINE}-pc-sco$UNAME_REL | ||
1045 | else | ||
1046 | echo ${UNAME_MACHINE}-pc-sysv32 | ||
1047 | fi | ||
1048 | exit ;; | ||
1049 | pc:*:*:*) | ||
1050 | # Left here for compatibility: | ||
1051 | # uname -m prints for DJGPP always 'pc', but it prints nothing about | ||
1052 | # the processor, so we play safe by assuming i586. | ||
1053 | # Note: whatever this is, it MUST be the same as what config.sub | ||
1054 | # prints for the "djgpp" host, or else GDB configury will decide that | ||
1055 | # this is a cross-build. | ||
1056 | echo i586-pc-msdosdjgpp | ||
1057 | exit ;; | ||
1058 | Intel:Mach:3*:*) | ||
1059 | echo i386-pc-mach3 | ||
1060 | exit ;; | ||
1061 | paragon:*:*:*) | ||
1062 | echo i860-intel-osf1 | ||
1063 | exit ;; | ||
1064 | i860:*:4.*:*) # i860-SVR4 | ||
1065 | if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then | ||
1066 | echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 | ||
1067 | else # Add other i860-SVR4 vendors below as they are discovered. | ||
1068 | echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 | ||
1069 | fi | ||
1070 | exit ;; | ||
1071 | mini*:CTIX:SYS*5:*) | ||
1072 | # "miniframe" | ||
1073 | echo m68010-convergent-sysv | ||
1074 | exit ;; | ||
1075 | mc68k:UNIX:SYSTEM5:3.51m) | ||
1076 | echo m68k-convergent-sysv | ||
1077 | exit ;; | ||
1078 | M680?0:D-NIX:5.3:*) | ||
1079 | echo m68k-diab-dnix | ||
1080 | exit ;; | ||
1081 | M68*:*:R3V[5678]*:*) | ||
1082 | test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; | ||
1083 | 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) | ||
1084 | OS_REL='' | ||
1085 | test -r /etc/.relid \ | ||
1086 | && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` | ||
1087 | /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ | ||
1088 | && { echo i486-ncr-sysv4.3${OS_REL}; exit; } | ||
1089 | /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ | ||
1090 | && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; | ||
1091 | 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) | ||
1092 | /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ | ||
1093 | && { echo i486-ncr-sysv4; exit; } ;; | ||
1094 | NCR*:*:4.2:* | MPRAS*:*:4.2:*) | ||
1095 | OS_REL='.3' | ||
1096 | test -r /etc/.relid \ | ||
1097 | && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` | ||
1098 | /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ | ||
1099 | && { echo i486-ncr-sysv4.3${OS_REL}; exit; } | ||
1100 | /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ | ||
1101 | && { echo i586-ncr-sysv4.3${OS_REL}; exit; } | ||
1102 | /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ | ||
1103 | && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; | ||
1104 | m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) | ||
1105 | echo m68k-unknown-lynxos${UNAME_RELEASE} | ||
1106 | exit ;; | ||
1107 | mc68030:UNIX_System_V:4.*:*) | ||
1108 | echo m68k-atari-sysv4 | ||
1109 | exit ;; | ||
1110 | TSUNAMI:LynxOS:2.*:*) | ||
1111 | echo sparc-unknown-lynxos${UNAME_RELEASE} | ||
1112 | exit ;; | ||
1113 | rs6000:LynxOS:2.*:*) | ||
1114 | echo rs6000-unknown-lynxos${UNAME_RELEASE} | ||
1115 | exit ;; | ||
1116 | PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) | ||
1117 | echo powerpc-unknown-lynxos${UNAME_RELEASE} | ||
1118 | exit ;; | ||
1119 | SM[BE]S:UNIX_SV:*:*) | ||
1120 | echo mips-dde-sysv${UNAME_RELEASE} | ||
1121 | exit ;; | ||
1122 | RM*:ReliantUNIX-*:*:*) | ||
1123 | echo mips-sni-sysv4 | ||
1124 | exit ;; | ||
1125 | RM*:SINIX-*:*:*) | ||
1126 | echo mips-sni-sysv4 | ||
1127 | exit ;; | ||
1128 | *:SINIX-*:*:*) | ||
1129 | if uname -p 2>/dev/null >/dev/null ; then | ||
1130 | UNAME_MACHINE=`(uname -p) 2>/dev/null` | ||
1131 | echo ${UNAME_MACHINE}-sni-sysv4 | ||
1132 | else | ||
1133 | echo ns32k-sni-sysv | ||
1134 | fi | ||
1135 | exit ;; | ||
1136 | PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort | ||
1137 | # says <Richard.M.Bartel@ccMail.Census.GOV> | ||
1138 | echo i586-unisys-sysv4 | ||
1139 | exit ;; | ||
1140 | *:UNIX_System_V:4*:FTX*) | ||
1141 | # From Gerald Hewes <hewes@openmarket.com>. | ||
1142 | # How about differentiating between stratus architectures? -djm | ||
1143 | echo hppa1.1-stratus-sysv4 | ||
1144 | exit ;; | ||
1145 | *:*:*:FTX*) | ||
1146 | # From seanf@swdc.stratus.com. | ||
1147 | echo i860-stratus-sysv4 | ||
1148 | exit ;; | ||
1149 | i*86:VOS:*:*) | ||
1150 | # From Paul.Green@stratus.com. | ||
1151 | echo ${UNAME_MACHINE}-stratus-vos | ||
1152 | exit ;; | ||
1153 | *:VOS:*:*) | ||
1154 | # From Paul.Green@stratus.com. | ||
1155 | echo hppa1.1-stratus-vos | ||
1156 | exit ;; | ||
1157 | mc68*:A/UX:*:*) | ||
1158 | echo m68k-apple-aux${UNAME_RELEASE} | ||
1159 | exit ;; | ||
1160 | news*:NEWS-OS:6*:*) | ||
1161 | echo mips-sony-newsos6 | ||
1162 | exit ;; | ||
1163 | R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) | ||
1164 | if [ -d /usr/nec ]; then | ||
1165 | echo mips-nec-sysv${UNAME_RELEASE} | ||
1166 | else | ||
1167 | echo mips-unknown-sysv${UNAME_RELEASE} | ||
1168 | fi | ||
1169 | exit ;; | ||
1170 | BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. | ||
1171 | echo powerpc-be-beos | ||
1172 | exit ;; | ||
1173 | BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. | ||
1174 | echo powerpc-apple-beos | ||
1175 | exit ;; | ||
1176 | BePC:BeOS:*:*) # BeOS running on Intel PC compatible. | ||
1177 | echo i586-pc-beos | ||
1178 | exit ;; | ||
1179 | BePC:Haiku:*:*) # Haiku running on Intel PC compatible. | ||
1180 | echo i586-pc-haiku | ||
1181 | exit ;; | ||
1182 | SX-4:SUPER-UX:*:*) | ||
1183 | echo sx4-nec-superux${UNAME_RELEASE} | ||
1184 | exit ;; | ||
1185 | SX-5:SUPER-UX:*:*) | ||
1186 | echo sx5-nec-superux${UNAME_RELEASE} | ||
1187 | exit ;; | ||
1188 | SX-6:SUPER-UX:*:*) | ||
1189 | echo sx6-nec-superux${UNAME_RELEASE} | ||
1190 | exit ;; | ||
1191 | SX-7:SUPER-UX:*:*) | ||
1192 | echo sx7-nec-superux${UNAME_RELEASE} | ||
1193 | exit ;; | ||
1194 | SX-8:SUPER-UX:*:*) | ||
1195 | echo sx8-nec-superux${UNAME_RELEASE} | ||
1196 | exit ;; | ||
1197 | SX-8R:SUPER-UX:*:*) | ||
1198 | echo sx8r-nec-superux${UNAME_RELEASE} | ||
1199 | exit ;; | ||
1200 | Power*:Rhapsody:*:*) | ||
1201 | echo powerpc-apple-rhapsody${UNAME_RELEASE} | ||
1202 | exit ;; | ||
1203 | *:Rhapsody:*:*) | ||
1204 | echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} | ||
1205 | exit ;; | ||
1206 | *:Darwin:*:*) | ||
1207 | UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown | ||
1208 | case $UNAME_PROCESSOR in | ||
1209 | i386) | ||
1210 | eval $set_cc_for_build | ||
1211 | if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then | ||
1212 | if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ | ||
1213 | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ | ||
1214 | grep IS_64BIT_ARCH >/dev/null | ||
1215 | then | ||
1216 | UNAME_PROCESSOR="x86_64" | ||
1217 | fi | ||
1218 | fi ;; | ||
1219 | unknown) UNAME_PROCESSOR=powerpc ;; | ||
1220 | esac | ||
1221 | echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} | ||
1222 | exit ;; | ||
1223 | *:procnto*:*:* | *:QNX:[0123456789]*:*) | ||
1224 | UNAME_PROCESSOR=`uname -p` | ||
1225 | if test "$UNAME_PROCESSOR" = "x86"; then | ||
1226 | UNAME_PROCESSOR=i386 | ||
1227 | UNAME_MACHINE=pc | ||
1228 | fi | ||
1229 | echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} | ||
1230 | exit ;; | ||
1231 | *:QNX:*:4*) | ||
1232 | echo i386-pc-qnx | ||
1233 | exit ;; | ||
1234 | NSE-?:NONSTOP_KERNEL:*:*) | ||
1235 | echo nse-tandem-nsk${UNAME_RELEASE} | ||
1236 | exit ;; | ||
1237 | NSR-?:NONSTOP_KERNEL:*:*) | ||
1238 | echo nsr-tandem-nsk${UNAME_RELEASE} | ||
1239 | exit ;; | ||
1240 | *:NonStop-UX:*:*) | ||
1241 | echo mips-compaq-nonstopux | ||
1242 | exit ;; | ||
1243 | BS2000:POSIX*:*:*) | ||
1244 | echo bs2000-siemens-sysv | ||
1245 | exit ;; | ||
1246 | DS/*:UNIX_System_V:*:*) | ||
1247 | echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} | ||
1248 | exit ;; | ||
1249 | *:Plan9:*:*) | ||
1250 | # "uname -m" is not consistent, so use $cputype instead. 386 | ||
1251 | # is converted to i386 for consistency with other x86 | ||
1252 | # operating systems. | ||
1253 | if test "$cputype" = "386"; then | ||
1254 | UNAME_MACHINE=i386 | ||
1255 | else | ||
1256 | UNAME_MACHINE="$cputype" | ||
1257 | fi | ||
1258 | echo ${UNAME_MACHINE}-unknown-plan9 | ||
1259 | exit ;; | ||
1260 | *:TOPS-10:*:*) | ||
1261 | echo pdp10-unknown-tops10 | ||
1262 | exit ;; | ||
1263 | *:TENEX:*:*) | ||
1264 | echo pdp10-unknown-tenex | ||
1265 | exit ;; | ||
1266 | KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) | ||
1267 | echo pdp10-dec-tops20 | ||
1268 | exit ;; | ||
1269 | XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) | ||
1270 | echo pdp10-xkl-tops20 | ||
1271 | exit ;; | ||
1272 | *:TOPS-20:*:*) | ||
1273 | echo pdp10-unknown-tops20 | ||
1274 | exit ;; | ||
1275 | *:ITS:*:*) | ||
1276 | echo pdp10-unknown-its | ||
1277 | exit ;; | ||
1278 | SEI:*:*:SEIUX) | ||
1279 | echo mips-sei-seiux${UNAME_RELEASE} | ||
1280 | exit ;; | ||
1281 | *:DragonFly:*:*) | ||
1282 | echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` | ||
1283 | exit ;; | ||
1284 | *:*VMS:*:*) | ||
1285 | UNAME_MACHINE=`(uname -p) 2>/dev/null` | ||
1286 | case "${UNAME_MACHINE}" in | ||
1287 | A*) echo alpha-dec-vms ; exit ;; | ||
1288 | I*) echo ia64-dec-vms ; exit ;; | ||
1289 | V*) echo vax-dec-vms ; exit ;; | ||
1290 | esac ;; | ||
1291 | *:XENIX:*:SysV) | ||
1292 | echo i386-pc-xenix | ||
1293 | exit ;; | ||
1294 | i*86:skyos:*:*) | ||
1295 | echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' | ||
1296 | exit ;; | ||
1297 | i*86:rdos:*:*) | ||
1298 | echo ${UNAME_MACHINE}-pc-rdos | ||
1299 | exit ;; | ||
1300 | i*86:AROS:*:*) | ||
1301 | echo ${UNAME_MACHINE}-pc-aros | ||
1302 | exit ;; | ||
1303 | esac | ||
1304 | |||
1305 | #echo '(No uname command or uname output not recognized.)' 1>&2 | ||
1306 | #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 | ||
1307 | |||
1308 | eval $set_cc_for_build | ||
1309 | cat >$dummy.c <<EOF | ||
1310 | #ifdef _SEQUENT_ | ||
1311 | # include <sys/types.h> | ||
1312 | # include <sys/utsname.h> | ||
1313 | #endif | ||
1314 | main () | ||
1315 | { | ||
1316 | #if defined (sony) | ||
1317 | #if defined (MIPSEB) | ||
1318 | /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, | ||
1319 | I don't know.... */ | ||
1320 | printf ("mips-sony-bsd\n"); exit (0); | ||
1321 | #else | ||
1322 | #include <sys/param.h> | ||
1323 | printf ("m68k-sony-newsos%s\n", | ||
1324 | #ifdef NEWSOS4 | ||
1325 | "4" | ||
1326 | #else | ||
1327 | "" | ||
1328 | #endif | ||
1329 | ); exit (0); | ||
1330 | #endif | ||
1331 | #endif | ||
1332 | |||
1333 | #if defined (__arm) && defined (__acorn) && defined (__unix) | ||
1334 | printf ("arm-acorn-riscix\n"); exit (0); | ||
1335 | #endif | ||
1336 | |||
1337 | #if defined (hp300) && !defined (hpux) | ||
1338 | printf ("m68k-hp-bsd\n"); exit (0); | ||
1339 | #endif | ||
1340 | |||
1341 | #if defined (NeXT) | ||
1342 | #if !defined (__ARCHITECTURE__) | ||
1343 | #define __ARCHITECTURE__ "m68k" | ||
1344 | #endif | ||
1345 | int version; | ||
1346 | version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; | ||
1347 | if (version < 4) | ||
1348 | printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); | ||
1349 | else | ||
1350 | printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); | ||
1351 | exit (0); | ||
1352 | #endif | ||
1353 | |||
1354 | #if defined (MULTIMAX) || defined (n16) | ||
1355 | #if defined (UMAXV) | ||
1356 | printf ("ns32k-encore-sysv\n"); exit (0); | ||
1357 | #else | ||
1358 | #if defined (CMU) | ||
1359 | printf ("ns32k-encore-mach\n"); exit (0); | ||
1360 | #else | ||
1361 | printf ("ns32k-encore-bsd\n"); exit (0); | ||
1362 | #endif | ||
1363 | #endif | ||
1364 | #endif | ||
1365 | |||
1366 | #if defined (__386BSD__) | ||
1367 | printf ("i386-pc-bsd\n"); exit (0); | ||
1368 | #endif | ||
1369 | |||
1370 | #if defined (sequent) | ||
1371 | #if defined (i386) | ||
1372 | printf ("i386-sequent-dynix\n"); exit (0); | ||
1373 | #endif | ||
1374 | #if defined (ns32000) | ||
1375 | printf ("ns32k-sequent-dynix\n"); exit (0); | ||
1376 | #endif | ||
1377 | #endif | ||
1378 | |||
1379 | #if defined (_SEQUENT_) | ||
1380 | struct utsname un; | ||
1381 | |||
1382 | uname(&un); | ||
1383 | |||
1384 | if (strncmp(un.version, "V2", 2) == 0) { | ||
1385 | printf ("i386-sequent-ptx2\n"); exit (0); | ||
1386 | } | ||
1387 | if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ | ||
1388 | printf ("i386-sequent-ptx1\n"); exit (0); | ||
1389 | } | ||
1390 | printf ("i386-sequent-ptx\n"); exit (0); | ||
1391 | |||
1392 | #endif | ||
1393 | |||
1394 | #if defined (vax) | ||
1395 | # if !defined (ultrix) | ||
1396 | # include <sys/param.h> | ||
1397 | # if defined (BSD) | ||
1398 | # if BSD == 43 | ||
1399 | printf ("vax-dec-bsd4.3\n"); exit (0); | ||
1400 | # else | ||
1401 | # if BSD == 199006 | ||
1402 | printf ("vax-dec-bsd4.3reno\n"); exit (0); | ||
1403 | # else | ||
1404 | printf ("vax-dec-bsd\n"); exit (0); | ||
1405 | # endif | ||
1406 | # endif | ||
1407 | # else | ||
1408 | printf ("vax-dec-bsd\n"); exit (0); | ||
1409 | # endif | ||
1410 | # else | ||
1411 | printf ("vax-dec-ultrix\n"); exit (0); | ||
1412 | # endif | ||
1413 | #endif | ||
1414 | |||
1415 | #if defined (alliant) && defined (i860) | ||
1416 | printf ("i860-alliant-bsd\n"); exit (0); | ||
1417 | #endif | ||
1418 | |||
1419 | exit (1); | ||
1420 | } | ||
1421 | EOF | ||
1422 | |||
1423 | $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && | ||
1424 | { echo "$SYSTEM_NAME"; exit; } | ||
1425 | |||
1426 | # Apollos put the system type in the environment. | ||
1427 | |||
1428 | test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } | ||
1429 | |||
1430 | # Convex versions that predate uname can use getsysinfo(1) | ||
1431 | |||
1432 | if [ -x /usr/convex/getsysinfo ] | ||
1433 | then | ||
1434 | case `getsysinfo -f cpu_type` in | ||
1435 | c1*) | ||
1436 | echo c1-convex-bsd | ||
1437 | exit ;; | ||
1438 | c2*) | ||
1439 | if getsysinfo -f scalar_acc | ||
1440 | then echo c32-convex-bsd | ||
1441 | else echo c2-convex-bsd | ||
1442 | fi | ||
1443 | exit ;; | ||
1444 | c34*) | ||
1445 | echo c34-convex-bsd | ||
1446 | exit ;; | ||
1447 | c38*) | ||
1448 | echo c38-convex-bsd | ||
1449 | exit ;; | ||
1450 | c4*) | ||
1451 | echo c4-convex-bsd | ||
1452 | exit ;; | ||
1453 | esac | ||
1454 | fi | ||
1455 | |||
1456 | cat >&2 <<EOF | ||
1457 | $0: unable to guess system type | ||
1458 | |||
1459 | This script, last modified $timestamp, has failed to recognize | ||
1460 | the operating system you are using. It is advised that you | ||
1461 | download the most up to date version of the config scripts from | ||
1462 | |||
1463 | http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD | ||
1464 | and | ||
1465 | http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD | ||
1466 | |||
1467 | If the version you run ($0) is already up to date, please | ||
1468 | send the following data and any information you think might be | ||
1469 | pertinent to <config-patches@gnu.org> in order to provide the needed | ||
1470 | information to handle your system. | ||
1471 | |||
1472 | config.guess timestamp = $timestamp | ||
1473 | |||
1474 | uname -m = `(uname -m) 2>/dev/null || echo unknown` | ||
1475 | uname -r = `(uname -r) 2>/dev/null || echo unknown` | ||
1476 | uname -s = `(uname -s) 2>/dev/null || echo unknown` | ||
1477 | uname -v = `(uname -v) 2>/dev/null || echo unknown` | ||
1478 | |||
1479 | /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` | ||
1480 | /bin/uname -X = `(/bin/uname -X) 2>/dev/null` | ||
1481 | |||
1482 | hostinfo = `(hostinfo) 2>/dev/null` | ||
1483 | /bin/universe = `(/bin/universe) 2>/dev/null` | ||
1484 | /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` | ||
1485 | /bin/arch = `(/bin/arch) 2>/dev/null` | ||
1486 | /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` | ||
1487 | /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` | ||
1488 | |||
1489 | UNAME_MACHINE = ${UNAME_MACHINE} | ||
1490 | UNAME_RELEASE = ${UNAME_RELEASE} | ||
1491 | UNAME_SYSTEM = ${UNAME_SYSTEM} | ||
1492 | UNAME_VERSION = ${UNAME_VERSION} | ||
1493 | EOF | ||
1494 | |||
1495 | exit 1 | ||
1496 | |||
1497 | # Local variables: | ||
1498 | # eval: (add-hook 'write-file-hooks 'time-stamp) | ||
1499 | # time-stamp-start: "timestamp='" | ||
1500 | # time-stamp-format: "%:y-%02m-%02d" | ||
1501 | # time-stamp-end: "'" | ||
1502 | # End: | ||
diff --git a/libraries/eet/config.h.in b/libraries/eet/config.h.in deleted file mode 100644 index 76da120..0000000 --- a/libraries/eet/config.h.in +++ /dev/null | |||
@@ -1,172 +0,0 @@ | |||
1 | /* config.h.in. Generated from configure.ac by autoheader. */ | ||
2 | |||
3 | |||
4 | #ifndef EFL_CONFIG_H__ | ||
5 | #define EFL_CONFIG_H__ | ||
6 | |||
7 | |||
8 | /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP | ||
9 | systems. This function is required for `alloca.c' support on those systems. | ||
10 | */ | ||
11 | #undef CRAY_STACKSEG_END | ||
12 | |||
13 | /* Define to 1 if using `alloca.c'. */ | ||
14 | #undef C_ALLOCA | ||
15 | |||
16 | /* support old eet file format */ | ||
17 | #undef EET_OLD_EET_FILE_FORMAT | ||
18 | |||
19 | /* use gnutls_x509_crt_verify_hash */ | ||
20 | #undef EET_USE_NEW_GNUTLS_API | ||
21 | |||
22 | /* use gnutls_privkey_sign_data */ | ||
23 | #undef EET_USE_NEW_PRIVKEY_SIGN_DATA | ||
24 | |||
25 | /* use gnutls_pubkey_verify_hash */ | ||
26 | #undef EET_USE_NEW_PUBKEY_VERIFY_HASH | ||
27 | |||
28 | /* Define to 1 if you have `alloca', as a function or macro. */ | ||
29 | #undef HAVE_ALLOCA | ||
30 | |||
31 | /* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix). | ||
32 | */ | ||
33 | #undef HAVE_ALLOCA_H | ||
34 | |||
35 | /* Have cipher support built in eet */ | ||
36 | #undef HAVE_CIPHER | ||
37 | |||
38 | /* Define to 1 if you have the <dlfcn.h> header file. */ | ||
39 | #undef HAVE_DLFCN_H | ||
40 | |||
41 | /* Set to 1 if Evil library is installed */ | ||
42 | #undef HAVE_EVIL | ||
43 | |||
44 | /* Define to 1 if you have Exotic. */ | ||
45 | #undef HAVE_EXOTIC_H | ||
46 | |||
47 | /* Define to 1 if you have the `fmemopen' function. */ | ||
48 | #undef HAVE_FMEMOPEN | ||
49 | |||
50 | /* Have Gnutls support */ | ||
51 | #undef HAVE_GNUTLS | ||
52 | |||
53 | /* Define to 1 if you have the <inttypes.h> header file. */ | ||
54 | #undef HAVE_INTTYPES_H | ||
55 | |||
56 | /* Define to 1 if you have the <memory.h> header file. */ | ||
57 | #undef HAVE_MEMORY_H | ||
58 | |||
59 | /* Define to 1 if you have the <netinet/in.h> header file. */ | ||
60 | #undef HAVE_NETINET_IN_H | ||
61 | |||
62 | /* Have Openssl support */ | ||
63 | #undef HAVE_OPENSSL | ||
64 | |||
65 | /* Define to 1 if you have the `open_memstream' function. */ | ||
66 | #undef HAVE_OPEN_MEMSTREAM | ||
67 | |||
68 | /* Define to 1 if you have the `realpath' function. */ | ||
69 | #undef HAVE_REALPATH | ||
70 | |||
71 | /* Have signature support for eet file */ | ||
72 | #undef HAVE_SIGNATURE | ||
73 | |||
74 | /* Define to 1 if you have the <stdint.h> header file. */ | ||
75 | #undef HAVE_STDINT_H | ||
76 | |||
77 | /* Define to 1 if you have the <stdlib.h> header file. */ | ||
78 | #undef HAVE_STDLIB_H | ||
79 | |||
80 | /* Define to 1 if you have the <strings.h> header file. */ | ||
81 | #undef HAVE_STRINGS_H | ||
82 | |||
83 | /* Define to 1 if you have the <string.h> header file. */ | ||
84 | #undef HAVE_STRING_H | ||
85 | |||
86 | /* Define to 1 if you have the <sys/stat.h> header file. */ | ||
87 | #undef HAVE_SYS_STAT_H | ||
88 | |||
89 | /* Define to 1 if you have the <sys/types.h> header file. */ | ||
90 | #undef HAVE_SYS_TYPES_H | ||
91 | |||
92 | /* Define to 1 if you have the <unistd.h> header file. */ | ||
93 | #undef HAVE_UNISTD_H | ||
94 | |||
95 | /* Define to 1 if your compiler has __attribute__ */ | ||
96 | #undef HAVE___ATTRIBUTE__ | ||
97 | |||
98 | /* Define to the sub-directory in which libtool stores uninstalled libraries. | ||
99 | */ | ||
100 | #undef LT_OBJDIR | ||
101 | |||
102 | /* Define to 1 if your C compiler doesn't accept -c and -o together. */ | ||
103 | #undef NO_MINUS_C_MINUS_O | ||
104 | |||
105 | /* Name of package */ | ||
106 | #undef PACKAGE | ||
107 | |||
108 | /* Define to the address where bug reports for this package should be sent. */ | ||
109 | #undef PACKAGE_BUGREPORT | ||
110 | |||
111 | /* Define to the full name of this package. */ | ||
112 | #undef PACKAGE_NAME | ||
113 | |||
114 | /* Define to the full name and version of this package. */ | ||
115 | #undef PACKAGE_STRING | ||
116 | |||
117 | /* Define to the one symbol short name of this package. */ | ||
118 | #undef PACKAGE_TARNAME | ||
119 | |||
120 | /* Define to the home page for this package. */ | ||
121 | #undef PACKAGE_URL | ||
122 | |||
123 | /* Define to the version of this package. */ | ||
124 | #undef PACKAGE_VERSION | ||
125 | |||
126 | /* default value since PATH_MAX is not defined */ | ||
127 | #undef PATH_MAX | ||
128 | |||
129 | /* If using the C implementation of alloca, define if you know the | ||
130 | direction of stack growth for your system; otherwise it will be | ||
131 | automatically deduced at runtime. | ||
132 | STACK_DIRECTION > 0 => grows toward higher addresses | ||
133 | STACK_DIRECTION < 0 => grows toward lower addresses | ||
134 | STACK_DIRECTION = 0 => direction of growth unknown */ | ||
135 | #undef STACK_DIRECTION | ||
136 | |||
137 | /* Define to 1 if you have the ANSI C header files. */ | ||
138 | #undef STDC_HEADERS | ||
139 | |||
140 | /* Version number of package */ | ||
141 | #undef VERSION | ||
142 | |||
143 | /* Major version */ | ||
144 | #undef VMAJ | ||
145 | |||
146 | /* Micro version */ | ||
147 | #undef VMIC | ||
148 | |||
149 | /* Minor version */ | ||
150 | #undef VMIN | ||
151 | |||
152 | /* Revison */ | ||
153 | #undef VREV | ||
154 | |||
155 | /* Enable GNU extensions */ | ||
156 | #undef _GNU_SOURCE | ||
157 | |||
158 | /* Macro declaring a function argument to be unused */ | ||
159 | #undef __UNUSED__ | ||
160 | |||
161 | /* Define to empty if `const' does not conform to ANSI C. */ | ||
162 | #undef const | ||
163 | |||
164 | /* Define to `__inline__' or `__inline' if that's what the C compiler | ||
165 | calls it, or to nothing if 'inline' is not supported under any name. */ | ||
166 | #ifndef __cplusplus | ||
167 | #undef inline | ||
168 | #endif | ||
169 | |||
170 | |||
171 | #endif /* EFL_CONFIG_H__ */ | ||
172 | |||
diff --git a/libraries/eet/config.sub b/libraries/eet/config.sub deleted file mode 100755 index c2d1257..0000000 --- a/libraries/eet/config.sub +++ /dev/null | |||
@@ -1,1714 +0,0 @@ | |||
1 | #! /bin/sh | ||
2 | # Configuration validation subroutine script. | ||
3 | # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, | ||
4 | # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 | ||
5 | # Free Software Foundation, Inc. | ||
6 | |||
7 | timestamp='2010-01-22' | ||
8 | |||
9 | # This file is (in principle) common to ALL GNU software. | ||
10 | # The presence of a machine in this file suggests that SOME GNU software | ||
11 | # can handle that machine. It does not imply ALL GNU software can. | ||
12 | # | ||
13 | # This file is free software; you can redistribute it and/or modify | ||
14 | # it under the terms of the GNU General Public License as published by | ||
15 | # the Free Software Foundation; either version 2 of the License, or | ||
16 | # (at your option) any later version. | ||
17 | # | ||
18 | # This program is distributed in the hope that it will be useful, | ||
19 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
20 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
21 | # GNU General Public License for more details. | ||
22 | # | ||
23 | # You should have received a copy of the GNU General Public License | ||
24 | # along with this program; if not, write to the Free Software | ||
25 | # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA | ||
26 | # 02110-1301, USA. | ||
27 | # | ||
28 | # As a special exception to the GNU General Public License, if you | ||
29 | # distribute this file as part of a program that contains a | ||
30 | # configuration script generated by Autoconf, you may include it under | ||
31 | # the same distribution terms that you use for the rest of that program. | ||
32 | |||
33 | |||
34 | # Please send patches to <config-patches@gnu.org>. Submit a context | ||
35 | # diff and a properly formatted GNU ChangeLog entry. | ||
36 | # | ||
37 | # Configuration subroutine to validate and canonicalize a configuration type. | ||
38 | # Supply the specified configuration type as an argument. | ||
39 | # If it is invalid, we print an error message on stderr and exit with code 1. | ||
40 | # Otherwise, we print the canonical config type on stdout and succeed. | ||
41 | |||
42 | # You can get the latest version of this script from: | ||
43 | # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD | ||
44 | |||
45 | # This file is supposed to be the same for all GNU packages | ||
46 | # and recognize all the CPU types, system types and aliases | ||
47 | # that are meaningful with *any* GNU software. | ||
48 | # Each package is responsible for reporting which valid configurations | ||
49 | # it does not support. The user should be able to distinguish | ||
50 | # a failure to support a valid configuration from a meaningless | ||
51 | # configuration. | ||
52 | |||
53 | # The goal of this file is to map all the various variations of a given | ||
54 | # machine specification into a single specification in the form: | ||
55 | # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM | ||
56 | # or in some cases, the newer four-part form: | ||
57 | # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM | ||
58 | # It is wrong to echo any other type of specification. | ||
59 | |||
60 | me=`echo "$0" | sed -e 's,.*/,,'` | ||
61 | |||
62 | usage="\ | ||
63 | Usage: $0 [OPTION] CPU-MFR-OPSYS | ||
64 | $0 [OPTION] ALIAS | ||
65 | |||
66 | Canonicalize a configuration name. | ||
67 | |||
68 | Operation modes: | ||
69 | -h, --help print this help, then exit | ||
70 | -t, --time-stamp print date of last modification, then exit | ||
71 | -v, --version print version number, then exit | ||
72 | |||
73 | Report bugs and patches to <config-patches@gnu.org>." | ||
74 | |||
75 | version="\ | ||
76 | GNU config.sub ($timestamp) | ||
77 | |||
78 | Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, | ||
79 | 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free | ||
80 | Software Foundation, Inc. | ||
81 | |||
82 | This is free software; see the source for copying conditions. There is NO | ||
83 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." | ||
84 | |||
85 | help=" | ||
86 | Try \`$me --help' for more information." | ||
87 | |||
88 | # Parse command line | ||
89 | while test $# -gt 0 ; do | ||
90 | case $1 in | ||
91 | --time-stamp | --time* | -t ) | ||
92 | echo "$timestamp" ; exit ;; | ||
93 | --version | -v ) | ||
94 | echo "$version" ; exit ;; | ||
95 | --help | --h* | -h ) | ||
96 | echo "$usage"; exit ;; | ||
97 | -- ) # Stop option processing | ||
98 | shift; break ;; | ||
99 | - ) # Use stdin as input. | ||
100 | break ;; | ||
101 | -* ) | ||
102 | echo "$me: invalid option $1$help" | ||
103 | exit 1 ;; | ||
104 | |||
105 | *local*) | ||
106 | # First pass through any local machine types. | ||
107 | echo $1 | ||
108 | exit ;; | ||
109 | |||
110 | * ) | ||
111 | break ;; | ||
112 | esac | ||
113 | done | ||
114 | |||
115 | case $# in | ||
116 | 0) echo "$me: missing argument$help" >&2 | ||
117 | exit 1;; | ||
118 | 1) ;; | ||
119 | *) echo "$me: too many arguments$help" >&2 | ||
120 | exit 1;; | ||
121 | esac | ||
122 | |||
123 | # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). | ||
124 | # Here we must recognize all the valid KERNEL-OS combinations. | ||
125 | maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` | ||
126 | case $maybe_os in | ||
127 | nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ | ||
128 | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ | ||
129 | kopensolaris*-gnu* | \ | ||
130 | storm-chaos* | os2-emx* | rtmk-nova*) | ||
131 | os=-$maybe_os | ||
132 | basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` | ||
133 | ;; | ||
134 | *) | ||
135 | basic_machine=`echo $1 | sed 's/-[^-]*$//'` | ||
136 | if [ $basic_machine != $1 ] | ||
137 | then os=`echo $1 | sed 's/.*-/-/'` | ||
138 | else os=; fi | ||
139 | ;; | ||
140 | esac | ||
141 | |||
142 | ### Let's recognize common machines as not being operating systems so | ||
143 | ### that things like config.sub decstation-3100 work. We also | ||
144 | ### recognize some manufacturers as not being operating systems, so we | ||
145 | ### can provide default operating systems below. | ||
146 | case $os in | ||
147 | -sun*os*) | ||
148 | # Prevent following clause from handling this invalid input. | ||
149 | ;; | ||
150 | -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ | ||
151 | -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ | ||
152 | -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ | ||
153 | -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ | ||
154 | -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ | ||
155 | -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ | ||
156 | -apple | -axis | -knuth | -cray | -microblaze) | ||
157 | os= | ||
158 | basic_machine=$1 | ||
159 | ;; | ||
160 | -bluegene*) | ||
161 | os=-cnk | ||
162 | ;; | ||
163 | -sim | -cisco | -oki | -wec | -winbond) | ||
164 | os= | ||
165 | basic_machine=$1 | ||
166 | ;; | ||
167 | -scout) | ||
168 | ;; | ||
169 | -wrs) | ||
170 | os=-vxworks | ||
171 | basic_machine=$1 | ||
172 | ;; | ||
173 | -chorusos*) | ||
174 | os=-chorusos | ||
175 | basic_machine=$1 | ||
176 | ;; | ||
177 | -chorusrdb) | ||
178 | os=-chorusrdb | ||
179 | basic_machine=$1 | ||
180 | ;; | ||
181 | -hiux*) | ||
182 | os=-hiuxwe2 | ||
183 | ;; | ||
184 | -sco6) | ||
185 | os=-sco5v6 | ||
186 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | ||
187 | ;; | ||
188 | -sco5) | ||
189 | os=-sco3.2v5 | ||
190 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | ||
191 | ;; | ||
192 | -sco4) | ||
193 | os=-sco3.2v4 | ||
194 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | ||
195 | ;; | ||
196 | -sco3.2.[4-9]*) | ||
197 | os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` | ||
198 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | ||
199 | ;; | ||
200 | -sco3.2v[4-9]*) | ||
201 | # Don't forget version if it is 3.2v4 or newer. | ||
202 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | ||
203 | ;; | ||
204 | -sco5v6*) | ||
205 | # Don't forget version if it is 3.2v4 or newer. | ||
206 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | ||
207 | ;; | ||
208 | -sco*) | ||
209 | os=-sco3.2v2 | ||
210 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | ||
211 | ;; | ||
212 | -udk*) | ||
213 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | ||
214 | ;; | ||
215 | -isc) | ||
216 | os=-isc2.2 | ||
217 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | ||
218 | ;; | ||
219 | -clix*) | ||
220 | basic_machine=clipper-intergraph | ||
221 | ;; | ||
222 | -isc*) | ||
223 | basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` | ||
224 | ;; | ||
225 | -lynx*) | ||
226 | os=-lynxos | ||
227 | ;; | ||
228 | -ptx*) | ||
229 | basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` | ||
230 | ;; | ||
231 | -windowsnt*) | ||
232 | os=`echo $os | sed -e 's/windowsnt/winnt/'` | ||
233 | ;; | ||
234 | -psos*) | ||
235 | os=-psos | ||
236 | ;; | ||
237 | -mint | -mint[0-9]*) | ||
238 | basic_machine=m68k-atari | ||
239 | os=-mint | ||
240 | ;; | ||
241 | esac | ||
242 | |||
243 | # Decode aliases for certain CPU-COMPANY combinations. | ||
244 | case $basic_machine in | ||
245 | # Recognize the basic CPU types without company name. | ||
246 | # Some are omitted here because they have special meanings below. | ||
247 | 1750a | 580 \ | ||
248 | | a29k \ | ||
249 | | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | ||
250 | | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | ||
251 | | am33_2.0 \ | ||
252 | | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | ||
253 | | bfin \ | ||
254 | | c4x | clipper \ | ||
255 | | d10v | d30v | dlx | dsp16xx \ | ||
256 | | fido | fr30 | frv \ | ||
257 | | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | ||
258 | | i370 | i860 | i960 | ia64 \ | ||
259 | | ip2k | iq2000 \ | ||
260 | | lm32 \ | ||
261 | | m32c | m32r | m32rle | m68000 | m68k | m88k \ | ||
262 | | maxq | mb | microblaze | mcore | mep | metag \ | ||
263 | | mips | mipsbe | mipseb | mipsel | mipsle \ | ||
264 | | mips16 \ | ||
265 | | mips64 | mips64el \ | ||
266 | | mips64octeon | mips64octeonel \ | ||
267 | | mips64orion | mips64orionel \ | ||
268 | | mips64r5900 | mips64r5900el \ | ||
269 | | mips64vr | mips64vrel \ | ||
270 | | mips64vr4100 | mips64vr4100el \ | ||
271 | | mips64vr4300 | mips64vr4300el \ | ||
272 | | mips64vr5000 | mips64vr5000el \ | ||
273 | | mips64vr5900 | mips64vr5900el \ | ||
274 | | mipsisa32 | mipsisa32el \ | ||
275 | | mipsisa32r2 | mipsisa32r2el \ | ||
276 | | mipsisa64 | mipsisa64el \ | ||
277 | | mipsisa64r2 | mipsisa64r2el \ | ||
278 | | mipsisa64sb1 | mipsisa64sb1el \ | ||
279 | | mipsisa64sr71k | mipsisa64sr71kel \ | ||
280 | | mipstx39 | mipstx39el \ | ||
281 | | mn10200 | mn10300 \ | ||
282 | | moxie \ | ||
283 | | mt \ | ||
284 | | msp430 \ | ||
285 | | nios | nios2 \ | ||
286 | | ns16k | ns32k \ | ||
287 | | or32 \ | ||
288 | | pdp10 | pdp11 | pj | pjl \ | ||
289 | | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | ||
290 | | pyramid \ | ||
291 | | rx \ | ||
292 | | score \ | ||
293 | | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | ||
294 | | sh64 | sh64le \ | ||
295 | | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | ||
296 | | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | ||
297 | | spu | strongarm \ | ||
298 | | tahoe | thumb | tic4x | tic80 | tron \ | ||
299 | | ubicom32 \ | ||
300 | | v850 | v850e \ | ||
301 | | we32k \ | ||
302 | | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | ||
303 | | z8k | z80) | ||
304 | basic_machine=$basic_machine-unknown | ||
305 | ;; | ||
306 | m6811 | m68hc11 | m6812 | m68hc12 | picochip) | ||
307 | # Motorola 68HC11/12. | ||
308 | basic_machine=$basic_machine-unknown | ||
309 | os=-none | ||
310 | ;; | ||
311 | m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) | ||
312 | ;; | ||
313 | ms1) | ||
314 | basic_machine=mt-unknown | ||
315 | ;; | ||
316 | |||
317 | # We use `pc' rather than `unknown' | ||
318 | # because (1) that's what they normally are, and | ||
319 | # (2) the word "unknown" tends to confuse beginning users. | ||
320 | i*86 | x86_64) | ||
321 | basic_machine=$basic_machine-pc | ||
322 | ;; | ||
323 | # Object if more than one company name word. | ||
324 | *-*-*) | ||
325 | echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 | ||
326 | exit 1 | ||
327 | ;; | ||
328 | # Recognize the basic CPU types with company name. | ||
329 | 580-* \ | ||
330 | | a29k-* \ | ||
331 | | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | ||
332 | | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | ||
333 | | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | ||
334 | | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | ||
335 | | avr-* | avr32-* \ | ||
336 | | bfin-* | bs2000-* \ | ||
337 | | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | ||
338 | | clipper-* | craynv-* | cydra-* \ | ||
339 | | d10v-* | d30v-* | dlx-* \ | ||
340 | | elxsi-* \ | ||
341 | | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | ||
342 | | h8300-* | h8500-* \ | ||
343 | | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | ||
344 | | i*86-* | i860-* | i960-* | ia64-* \ | ||
345 | | ip2k-* | iq2000-* \ | ||
346 | | lm32-* \ | ||
347 | | m32c-* | m32r-* | m32rle-* \ | ||
348 | | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | ||
349 | | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | ||
350 | | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | ||
351 | | mips16-* \ | ||
352 | | mips64-* | mips64el-* \ | ||
353 | | mips64octeon-* | mips64octeonel-* \ | ||
354 | | mips64orion-* | mips64orionel-* \ | ||
355 | | mips64r5900-* | mips64r5900el-* \ | ||
356 | | mips64vr-* | mips64vrel-* \ | ||
357 | | mips64vr4100-* | mips64vr4100el-* \ | ||
358 | | mips64vr4300-* | mips64vr4300el-* \ | ||
359 | | mips64vr5000-* | mips64vr5000el-* \ | ||
360 | | mips64vr5900-* | mips64vr5900el-* \ | ||
361 | | mipsisa32-* | mipsisa32el-* \ | ||
362 | | mipsisa32r2-* | mipsisa32r2el-* \ | ||
363 | | mipsisa64-* | mipsisa64el-* \ | ||
364 | | mipsisa64r2-* | mipsisa64r2el-* \ | ||
365 | | mipsisa64sb1-* | mipsisa64sb1el-* \ | ||
366 | | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | ||
367 | | mipstx39-* | mipstx39el-* \ | ||
368 | | mmix-* \ | ||
369 | | mt-* \ | ||
370 | | msp430-* \ | ||
371 | | nios-* | nios2-* \ | ||
372 | | none-* | np1-* | ns16k-* | ns32k-* \ | ||
373 | | orion-* \ | ||
374 | | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | ||
375 | | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | ||
376 | | pyramid-* \ | ||
377 | | romp-* | rs6000-* | rx-* \ | ||
378 | | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | ||
379 | | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | ||
380 | | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | ||
381 | | sparclite-* \ | ||
382 | | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | ||
383 | | tahoe-* | thumb-* \ | ||
384 | | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | ||
385 | | tile-* | tilegx-* \ | ||
386 | | tron-* \ | ||
387 | | ubicom32-* \ | ||
388 | | v850-* | v850e-* | vax-* \ | ||
389 | | we32k-* \ | ||
390 | | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | ||
391 | | xstormy16-* | xtensa*-* \ | ||
392 | | ymp-* \ | ||
393 | | z8k-* | z80-*) | ||
394 | ;; | ||
395 | # Recognize the basic CPU types without company name, with glob match. | ||
396 | xtensa*) | ||
397 | basic_machine=$basic_machine-unknown | ||
398 | ;; | ||
399 | # Recognize the various machine names and aliases which stand | ||
400 | # for a CPU type and a company and sometimes even an OS. | ||
401 | 386bsd) | ||
402 | basic_machine=i386-unknown | ||
403 | os=-bsd | ||
404 | ;; | ||
405 | 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) | ||
406 | basic_machine=m68000-att | ||
407 | ;; | ||
408 | 3b*) | ||
409 | basic_machine=we32k-att | ||
410 | ;; | ||
411 | a29khif) | ||
412 | basic_machine=a29k-amd | ||
413 | os=-udi | ||
414 | ;; | ||
415 | abacus) | ||
416 | basic_machine=abacus-unknown | ||
417 | ;; | ||
418 | adobe68k) | ||
419 | basic_machine=m68010-adobe | ||
420 | os=-scout | ||
421 | ;; | ||
422 | alliant | fx80) | ||
423 | basic_machine=fx80-alliant | ||
424 | ;; | ||
425 | altos | altos3068) | ||
426 | basic_machine=m68k-altos | ||
427 | ;; | ||
428 | am29k) | ||
429 | basic_machine=a29k-none | ||
430 | os=-bsd | ||
431 | ;; | ||
432 | amd64) | ||
433 | basic_machine=x86_64-pc | ||
434 | ;; | ||
435 | amd64-*) | ||
436 | basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` | ||
437 | ;; | ||
438 | amdahl) | ||
439 | basic_machine=580-amdahl | ||
440 | os=-sysv | ||
441 | ;; | ||
442 | amiga | amiga-*) | ||
443 | basic_machine=m68k-unknown | ||
444 | ;; | ||
445 | amigaos | amigados) | ||
446 | basic_machine=m68k-unknown | ||
447 | os=-amigaos | ||
448 | ;; | ||
449 | amigaunix | amix) | ||
450 | basic_machine=m68k-unknown | ||
451 | os=-sysv4 | ||
452 | ;; | ||
453 | apollo68) | ||
454 | basic_machine=m68k-apollo | ||
455 | os=-sysv | ||
456 | ;; | ||
457 | apollo68bsd) | ||
458 | basic_machine=m68k-apollo | ||
459 | os=-bsd | ||
460 | ;; | ||
461 | aros) | ||
462 | basic_machine=i386-pc | ||
463 | os=-aros | ||
464 | ;; | ||
465 | aux) | ||
466 | basic_machine=m68k-apple | ||
467 | os=-aux | ||
468 | ;; | ||
469 | balance) | ||
470 | basic_machine=ns32k-sequent | ||
471 | os=-dynix | ||
472 | ;; | ||
473 | blackfin) | ||
474 | basic_machine=bfin-unknown | ||
475 | os=-linux | ||
476 | ;; | ||
477 | blackfin-*) | ||
478 | basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` | ||
479 | os=-linux | ||
480 | ;; | ||
481 | bluegene*) | ||
482 | basic_machine=powerpc-ibm | ||
483 | os=-cnk | ||
484 | ;; | ||
485 | c90) | ||
486 | basic_machine=c90-cray | ||
487 | os=-unicos | ||
488 | ;; | ||
489 | cegcc) | ||
490 | basic_machine=arm-unknown | ||
491 | os=-cegcc | ||
492 | ;; | ||
493 | convex-c1) | ||
494 | basic_machine=c1-convex | ||
495 | os=-bsd | ||
496 | ;; | ||
497 | convex-c2) | ||
498 | basic_machine=c2-convex | ||
499 | os=-bsd | ||
500 | ;; | ||
501 | convex-c32) | ||
502 | basic_machine=c32-convex | ||
503 | os=-bsd | ||
504 | ;; | ||
505 | convex-c34) | ||
506 | basic_machine=c34-convex | ||
507 | os=-bsd | ||
508 | ;; | ||
509 | convex-c38) | ||
510 | basic_machine=c38-convex | ||
511 | os=-bsd | ||
512 | ;; | ||
513 | cray | j90) | ||
514 | basic_machine=j90-cray | ||
515 | os=-unicos | ||
516 | ;; | ||
517 | craynv) | ||
518 | basic_machine=craynv-cray | ||
519 | os=-unicosmp | ||
520 | ;; | ||
521 | cr16) | ||
522 | basic_machine=cr16-unknown | ||
523 | os=-elf | ||
524 | ;; | ||
525 | crds | unos) | ||
526 | basic_machine=m68k-crds | ||
527 | ;; | ||
528 | crisv32 | crisv32-* | etraxfs*) | ||
529 | basic_machine=crisv32-axis | ||
530 | ;; | ||
531 | cris | cris-* | etrax*) | ||
532 | basic_machine=cris-axis | ||
533 | ;; | ||
534 | crx) | ||
535 | basic_machine=crx-unknown | ||
536 | os=-elf | ||
537 | ;; | ||
538 | da30 | da30-*) | ||
539 | basic_machine=m68k-da30 | ||
540 | ;; | ||
541 | decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) | ||
542 | basic_machine=mips-dec | ||
543 | ;; | ||
544 | decsystem10* | dec10*) | ||
545 | basic_machine=pdp10-dec | ||
546 | os=-tops10 | ||
547 | ;; | ||
548 | decsystem20* | dec20*) | ||
549 | basic_machine=pdp10-dec | ||
550 | os=-tops20 | ||
551 | ;; | ||
552 | delta | 3300 | motorola-3300 | motorola-delta \ | ||
553 | | 3300-motorola | delta-motorola) | ||
554 | basic_machine=m68k-motorola | ||
555 | ;; | ||
556 | delta88) | ||
557 | basic_machine=m88k-motorola | ||
558 | os=-sysv3 | ||
559 | ;; | ||
560 | dicos) | ||
561 | basic_machine=i686-pc | ||
562 | os=-dicos | ||
563 | ;; | ||
564 | djgpp) | ||
565 | basic_machine=i586-pc | ||
566 | os=-msdosdjgpp | ||
567 | ;; | ||
568 | dpx20 | dpx20-*) | ||
569 | basic_machine=rs6000-bull | ||
570 | os=-bosx | ||
571 | ;; | ||
572 | dpx2* | dpx2*-bull) | ||
573 | basic_machine=m68k-bull | ||
574 | os=-sysv3 | ||
575 | ;; | ||
576 | ebmon29k) | ||
577 | basic_machine=a29k-amd | ||
578 | os=-ebmon | ||
579 | ;; | ||
580 | elxsi) | ||
581 | basic_machine=elxsi-elxsi | ||
582 | os=-bsd | ||
583 | ;; | ||
584 | encore | umax | mmax) | ||
585 | basic_machine=ns32k-encore | ||
586 | ;; | ||
587 | es1800 | OSE68k | ose68k | ose | OSE) | ||
588 | basic_machine=m68k-ericsson | ||
589 | os=-ose | ||
590 | ;; | ||
591 | fx2800) | ||
592 | basic_machine=i860-alliant | ||
593 | ;; | ||
594 | genix) | ||
595 | basic_machine=ns32k-ns | ||
596 | ;; | ||
597 | gmicro) | ||
598 | basic_machine=tron-gmicro | ||
599 | os=-sysv | ||
600 | ;; | ||
601 | go32) | ||
602 | basic_machine=i386-pc | ||
603 | os=-go32 | ||
604 | ;; | ||
605 | h3050r* | hiux*) | ||
606 | basic_machine=hppa1.1-hitachi | ||
607 | os=-hiuxwe2 | ||
608 | ;; | ||
609 | h8300hms) | ||
610 | basic_machine=h8300-hitachi | ||
611 | os=-hms | ||
612 | ;; | ||
613 | h8300xray) | ||
614 | basic_machine=h8300-hitachi | ||
615 | os=-xray | ||
616 | ;; | ||
617 | h8500hms) | ||
618 | basic_machine=h8500-hitachi | ||
619 | os=-hms | ||
620 | ;; | ||
621 | harris) | ||
622 | basic_machine=m88k-harris | ||
623 | os=-sysv3 | ||
624 | ;; | ||
625 | hp300-*) | ||
626 | basic_machine=m68k-hp | ||
627 | ;; | ||
628 | hp300bsd) | ||
629 | basic_machine=m68k-hp | ||
630 | os=-bsd | ||
631 | ;; | ||
632 | hp300hpux) | ||
633 | basic_machine=m68k-hp | ||
634 | os=-hpux | ||
635 | ;; | ||
636 | hp3k9[0-9][0-9] | hp9[0-9][0-9]) | ||
637 | basic_machine=hppa1.0-hp | ||
638 | ;; | ||
639 | hp9k2[0-9][0-9] | hp9k31[0-9]) | ||
640 | basic_machine=m68000-hp | ||
641 | ;; | ||
642 | hp9k3[2-9][0-9]) | ||
643 | basic_machine=m68k-hp | ||
644 | ;; | ||
645 | hp9k6[0-9][0-9] | hp6[0-9][0-9]) | ||
646 | basic_machine=hppa1.0-hp | ||
647 | ;; | ||
648 | hp9k7[0-79][0-9] | hp7[0-79][0-9]) | ||
649 | basic_machine=hppa1.1-hp | ||
650 | ;; | ||
651 | hp9k78[0-9] | hp78[0-9]) | ||
652 | # FIXME: really hppa2.0-hp | ||
653 | basic_machine=hppa1.1-hp | ||
654 | ;; | ||
655 | hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) | ||
656 | # FIXME: really hppa2.0-hp | ||
657 | basic_machine=hppa1.1-hp | ||
658 | ;; | ||
659 | hp9k8[0-9][13679] | hp8[0-9][13679]) | ||
660 | basic_machine=hppa1.1-hp | ||
661 | ;; | ||
662 | hp9k8[0-9][0-9] | hp8[0-9][0-9]) | ||
663 | basic_machine=hppa1.0-hp | ||
664 | ;; | ||
665 | hppa-next) | ||
666 | os=-nextstep3 | ||
667 | ;; | ||
668 | hppaosf) | ||
669 | basic_machine=hppa1.1-hp | ||
670 | os=-osf | ||
671 | ;; | ||
672 | hppro) | ||
673 | basic_machine=hppa1.1-hp | ||
674 | os=-proelf | ||
675 | ;; | ||
676 | i370-ibm* | ibm*) | ||
677 | basic_machine=i370-ibm | ||
678 | ;; | ||
679 | # I'm not sure what "Sysv32" means. Should this be sysv3.2? | ||
680 | i*86v32) | ||
681 | basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` | ||
682 | os=-sysv32 | ||
683 | ;; | ||
684 | i*86v4*) | ||
685 | basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` | ||
686 | os=-sysv4 | ||
687 | ;; | ||
688 | i*86v) | ||
689 | basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` | ||
690 | os=-sysv | ||
691 | ;; | ||
692 | i*86sol2) | ||
693 | basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` | ||
694 | os=-solaris2 | ||
695 | ;; | ||
696 | i386mach) | ||
697 | basic_machine=i386-mach | ||
698 | os=-mach | ||
699 | ;; | ||
700 | i386-vsta | vsta) | ||
701 | basic_machine=i386-unknown | ||
702 | os=-vsta | ||
703 | ;; | ||
704 | iris | iris4d) | ||
705 | basic_machine=mips-sgi | ||
706 | case $os in | ||
707 | -irix*) | ||
708 | ;; | ||
709 | *) | ||
710 | os=-irix4 | ||
711 | ;; | ||
712 | esac | ||
713 | ;; | ||
714 | isi68 | isi) | ||
715 | basic_machine=m68k-isi | ||
716 | os=-sysv | ||
717 | ;; | ||
718 | m68knommu) | ||
719 | basic_machine=m68k-unknown | ||
720 | os=-linux | ||
721 | ;; | ||
722 | m68knommu-*) | ||
723 | basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` | ||
724 | os=-linux | ||
725 | ;; | ||
726 | m88k-omron*) | ||
727 | basic_machine=m88k-omron | ||
728 | ;; | ||
729 | magnum | m3230) | ||
730 | basic_machine=mips-mips | ||
731 | os=-sysv | ||
732 | ;; | ||
733 | merlin) | ||
734 | basic_machine=ns32k-utek | ||
735 | os=-sysv | ||
736 | ;; | ||
737 | microblaze) | ||
738 | basic_machine=microblaze-xilinx | ||
739 | ;; | ||
740 | mingw32) | ||
741 | basic_machine=i386-pc | ||
742 | os=-mingw32 | ||
743 | ;; | ||
744 | mingw32ce) | ||
745 | basic_machine=arm-unknown | ||
746 | os=-mingw32ce | ||
747 | ;; | ||
748 | miniframe) | ||
749 | basic_machine=m68000-convergent | ||
750 | ;; | ||
751 | *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) | ||
752 | basic_machine=m68k-atari | ||
753 | os=-mint | ||
754 | ;; | ||
755 | mips3*-*) | ||
756 | basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` | ||
757 | ;; | ||
758 | mips3*) | ||
759 | basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown | ||
760 | ;; | ||
761 | monitor) | ||
762 | basic_machine=m68k-rom68k | ||
763 | os=-coff | ||
764 | ;; | ||
765 | morphos) | ||
766 | basic_machine=powerpc-unknown | ||
767 | os=-morphos | ||
768 | ;; | ||
769 | msdos) | ||
770 | basic_machine=i386-pc | ||
771 | os=-msdos | ||
772 | ;; | ||
773 | ms1-*) | ||
774 | basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` | ||
775 | ;; | ||
776 | mvs) | ||
777 | basic_machine=i370-ibm | ||
778 | os=-mvs | ||
779 | ;; | ||
780 | ncr3000) | ||
781 | basic_machine=i486-ncr | ||
782 | os=-sysv4 | ||
783 | ;; | ||
784 | netbsd386) | ||
785 | basic_machine=i386-unknown | ||
786 | os=-netbsd | ||
787 | ;; | ||
788 | netwinder) | ||
789 | basic_machine=armv4l-rebel | ||
790 | os=-linux | ||
791 | ;; | ||
792 | news | news700 | news800 | news900) | ||
793 | basic_machine=m68k-sony | ||
794 | os=-newsos | ||
795 | ;; | ||
796 | news1000) | ||
797 | basic_machine=m68030-sony | ||
798 | os=-newsos | ||
799 | ;; | ||
800 | news-3600 | risc-news) | ||
801 | basic_machine=mips-sony | ||
802 | os=-newsos | ||
803 | ;; | ||
804 | necv70) | ||
805 | basic_machine=v70-nec | ||
806 | os=-sysv | ||
807 | ;; | ||
808 | next | m*-next ) | ||
809 | basic_machine=m68k-next | ||
810 | case $os in | ||
811 | -nextstep* ) | ||
812 | ;; | ||
813 | -ns2*) | ||
814 | os=-nextstep2 | ||
815 | ;; | ||
816 | *) | ||
817 | os=-nextstep3 | ||
818 | ;; | ||
819 | esac | ||
820 | ;; | ||
821 | nh3000) | ||
822 | basic_machine=m68k-harris | ||
823 | os=-cxux | ||
824 | ;; | ||
825 | nh[45]000) | ||
826 | basic_machine=m88k-harris | ||
827 | os=-cxux | ||
828 | ;; | ||
829 | nindy960) | ||
830 | basic_machine=i960-intel | ||
831 | os=-nindy | ||
832 | ;; | ||
833 | mon960) | ||
834 | basic_machine=i960-intel | ||
835 | os=-mon960 | ||
836 | ;; | ||
837 | nonstopux) | ||
838 | basic_machine=mips-compaq | ||
839 | os=-nonstopux | ||
840 | ;; | ||
841 | np1) | ||
842 | basic_machine=np1-gould | ||
843 | ;; | ||
844 | nsr-tandem) | ||
845 | basic_machine=nsr-tandem | ||
846 | ;; | ||
847 | op50n-* | op60c-*) | ||
848 | basic_machine=hppa1.1-oki | ||
849 | os=-proelf | ||
850 | ;; | ||
851 | openrisc | openrisc-*) | ||
852 | basic_machine=or32-unknown | ||
853 | ;; | ||
854 | os400) | ||
855 | basic_machine=powerpc-ibm | ||
856 | os=-os400 | ||
857 | ;; | ||
858 | OSE68000 | ose68000) | ||
859 | basic_machine=m68000-ericsson | ||
860 | os=-ose | ||
861 | ;; | ||
862 | os68k) | ||
863 | basic_machine=m68k-none | ||
864 | os=-os68k | ||
865 | ;; | ||
866 | pa-hitachi) | ||
867 | basic_machine=hppa1.1-hitachi | ||
868 | os=-hiuxwe2 | ||
869 | ;; | ||
870 | paragon) | ||
871 | basic_machine=i860-intel | ||
872 | os=-osf | ||
873 | ;; | ||
874 | parisc) | ||
875 | basic_machine=hppa-unknown | ||
876 | os=-linux | ||
877 | ;; | ||
878 | parisc-*) | ||
879 | basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` | ||
880 | os=-linux | ||
881 | ;; | ||
882 | pbd) | ||
883 | basic_machine=sparc-tti | ||
884 | ;; | ||
885 | pbb) | ||
886 | basic_machine=m68k-tti | ||
887 | ;; | ||
888 | pc532 | pc532-*) | ||
889 | basic_machine=ns32k-pc532 | ||
890 | ;; | ||
891 | pc98) | ||
892 | basic_machine=i386-pc | ||
893 | ;; | ||
894 | pc98-*) | ||
895 | basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` | ||
896 | ;; | ||
897 | pentium | p5 | k5 | k6 | nexgen | viac3) | ||
898 | basic_machine=i586-pc | ||
899 | ;; | ||
900 | pentiumpro | p6 | 6x86 | athlon | athlon_*) | ||
901 | basic_machine=i686-pc | ||
902 | ;; | ||
903 | pentiumii | pentium2 | pentiumiii | pentium3) | ||
904 | basic_machine=i686-pc | ||
905 | ;; | ||
906 | pentium4) | ||
907 | basic_machine=i786-pc | ||
908 | ;; | ||
909 | pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) | ||
910 | basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` | ||
911 | ;; | ||
912 | pentiumpro-* | p6-* | 6x86-* | athlon-*) | ||
913 | basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` | ||
914 | ;; | ||
915 | pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) | ||
916 | basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` | ||
917 | ;; | ||
918 | pentium4-*) | ||
919 | basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` | ||
920 | ;; | ||
921 | pn) | ||
922 | basic_machine=pn-gould | ||
923 | ;; | ||
924 | power) basic_machine=power-ibm | ||
925 | ;; | ||
926 | ppc) basic_machine=powerpc-unknown | ||
927 | ;; | ||
928 | ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` | ||
929 | ;; | ||
930 | ppcle | powerpclittle | ppc-le | powerpc-little) | ||
931 | basic_machine=powerpcle-unknown | ||
932 | ;; | ||
933 | ppcle-* | powerpclittle-*) | ||
934 | basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` | ||
935 | ;; | ||
936 | ppc64) basic_machine=powerpc64-unknown | ||
937 | ;; | ||
938 | ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` | ||
939 | ;; | ||
940 | ppc64le | powerpc64little | ppc64-le | powerpc64-little) | ||
941 | basic_machine=powerpc64le-unknown | ||
942 | ;; | ||
943 | ppc64le-* | powerpc64little-*) | ||
944 | basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` | ||
945 | ;; | ||
946 | ps2) | ||
947 | basic_machine=i386-ibm | ||
948 | ;; | ||
949 | pw32) | ||
950 | basic_machine=i586-unknown | ||
951 | os=-pw32 | ||
952 | ;; | ||
953 | rdos) | ||
954 | basic_machine=i386-pc | ||
955 | os=-rdos | ||
956 | ;; | ||
957 | rom68k) | ||
958 | basic_machine=m68k-rom68k | ||
959 | os=-coff | ||
960 | ;; | ||
961 | rm[46]00) | ||
962 | basic_machine=mips-siemens | ||
963 | ;; | ||
964 | rtpc | rtpc-*) | ||
965 | basic_machine=romp-ibm | ||
966 | ;; | ||
967 | s390 | s390-*) | ||
968 | basic_machine=s390-ibm | ||
969 | ;; | ||
970 | s390x | s390x-*) | ||
971 | basic_machine=s390x-ibm | ||
972 | ;; | ||
973 | sa29200) | ||
974 | basic_machine=a29k-amd | ||
975 | os=-udi | ||
976 | ;; | ||
977 | sb1) | ||
978 | basic_machine=mipsisa64sb1-unknown | ||
979 | ;; | ||
980 | sb1el) | ||
981 | basic_machine=mipsisa64sb1el-unknown | ||
982 | ;; | ||
983 | sde) | ||
984 | basic_machine=mipsisa32-sde | ||
985 | os=-elf | ||
986 | ;; | ||
987 | sei) | ||
988 | basic_machine=mips-sei | ||
989 | os=-seiux | ||
990 | ;; | ||
991 | sequent) | ||
992 | basic_machine=i386-sequent | ||
993 | ;; | ||
994 | sh) | ||
995 | basic_machine=sh-hitachi | ||
996 | os=-hms | ||
997 | ;; | ||
998 | sh5el) | ||
999 | basic_machine=sh5le-unknown | ||
1000 | ;; | ||
1001 | sh64) | ||
1002 | basic_machine=sh64-unknown | ||
1003 | ;; | ||
1004 | sparclite-wrs | simso-wrs) | ||
1005 | basic_machine=sparclite-wrs | ||
1006 | os=-vxworks | ||
1007 | ;; | ||
1008 | sps7) | ||
1009 | basic_machine=m68k-bull | ||
1010 | os=-sysv2 | ||
1011 | ;; | ||
1012 | spur) | ||
1013 | basic_machine=spur-unknown | ||
1014 | ;; | ||
1015 | st2000) | ||
1016 | basic_machine=m68k-tandem | ||
1017 | ;; | ||
1018 | stratus) | ||
1019 | basic_machine=i860-stratus | ||
1020 | os=-sysv4 | ||
1021 | ;; | ||
1022 | sun2) | ||
1023 | basic_machine=m68000-sun | ||
1024 | ;; | ||
1025 | sun2os3) | ||
1026 | basic_machine=m68000-sun | ||
1027 | os=-sunos3 | ||
1028 | ;; | ||
1029 | sun2os4) | ||
1030 | basic_machine=m68000-sun | ||
1031 | os=-sunos4 | ||
1032 | ;; | ||
1033 | sun3os3) | ||
1034 | basic_machine=m68k-sun | ||
1035 | os=-sunos3 | ||
1036 | ;; | ||
1037 | sun3os4) | ||
1038 | basic_machine=m68k-sun | ||
1039 | os=-sunos4 | ||
1040 | ;; | ||
1041 | sun4os3) | ||
1042 | basic_machine=sparc-sun | ||
1043 | os=-sunos3 | ||
1044 | ;; | ||
1045 | sun4os4) | ||
1046 | basic_machine=sparc-sun | ||
1047 | os=-sunos4 | ||
1048 | ;; | ||
1049 | sun4sol2) | ||
1050 | basic_machine=sparc-sun | ||
1051 | os=-solaris2 | ||
1052 | ;; | ||
1053 | sun3 | sun3-*) | ||
1054 | basic_machine=m68k-sun | ||
1055 | ;; | ||
1056 | sun4) | ||
1057 | basic_machine=sparc-sun | ||
1058 | ;; | ||
1059 | sun386 | sun386i | roadrunner) | ||
1060 | basic_machine=i386-sun | ||
1061 | ;; | ||
1062 | sv1) | ||
1063 | basic_machine=sv1-cray | ||
1064 | os=-unicos | ||
1065 | ;; | ||
1066 | symmetry) | ||
1067 | basic_machine=i386-sequent | ||
1068 | os=-dynix | ||
1069 | ;; | ||
1070 | t3e) | ||
1071 | basic_machine=alphaev5-cray | ||
1072 | os=-unicos | ||
1073 | ;; | ||
1074 | t90) | ||
1075 | basic_machine=t90-cray | ||
1076 | os=-unicos | ||
1077 | ;; | ||
1078 | tic54x | c54x*) | ||
1079 | basic_machine=tic54x-unknown | ||
1080 | os=-coff | ||
1081 | ;; | ||
1082 | tic55x | c55x*) | ||
1083 | basic_machine=tic55x-unknown | ||
1084 | os=-coff | ||
1085 | ;; | ||
1086 | tic6x | c6x*) | ||
1087 | basic_machine=tic6x-unknown | ||
1088 | os=-coff | ||
1089 | ;; | ||
1090 | # This must be matched before tile*. | ||
1091 | tilegx*) | ||
1092 | basic_machine=tilegx-unknown | ||
1093 | os=-linux-gnu | ||
1094 | ;; | ||
1095 | tile*) | ||
1096 | basic_machine=tile-unknown | ||
1097 | os=-linux-gnu | ||
1098 | ;; | ||
1099 | tx39) | ||
1100 | basic_machine=mipstx39-unknown | ||
1101 | ;; | ||
1102 | tx39el) | ||
1103 | basic_machine=mipstx39el-unknown | ||
1104 | ;; | ||
1105 | toad1) | ||
1106 | basic_machine=pdp10-xkl | ||
1107 | os=-tops20 | ||
1108 | ;; | ||
1109 | tower | tower-32) | ||
1110 | basic_machine=m68k-ncr | ||
1111 | ;; | ||
1112 | tpf) | ||
1113 | basic_machine=s390x-ibm | ||
1114 | os=-tpf | ||
1115 | ;; | ||
1116 | udi29k) | ||
1117 | basic_machine=a29k-amd | ||
1118 | os=-udi | ||
1119 | ;; | ||
1120 | ultra3) | ||
1121 | basic_machine=a29k-nyu | ||
1122 | os=-sym1 | ||
1123 | ;; | ||
1124 | v810 | necv810) | ||
1125 | basic_machine=v810-nec | ||
1126 | os=-none | ||
1127 | ;; | ||
1128 | vaxv) | ||
1129 | basic_machine=vax-dec | ||
1130 | os=-sysv | ||
1131 | ;; | ||
1132 | vms) | ||
1133 | basic_machine=vax-dec | ||
1134 | os=-vms | ||
1135 | ;; | ||
1136 | vpp*|vx|vx-*) | ||
1137 | basic_machine=f301-fujitsu | ||
1138 | ;; | ||
1139 | vxworks960) | ||
1140 | basic_machine=i960-wrs | ||
1141 | os=-vxworks | ||
1142 | ;; | ||
1143 | vxworks68) | ||
1144 | basic_machine=m68k-wrs | ||
1145 | os=-vxworks | ||
1146 | ;; | ||
1147 | vxworks29k) | ||
1148 | basic_machine=a29k-wrs | ||
1149 | os=-vxworks | ||
1150 | ;; | ||
1151 | w65*) | ||
1152 | basic_machine=w65-wdc | ||
1153 | os=-none | ||
1154 | ;; | ||
1155 | w89k-*) | ||
1156 | basic_machine=hppa1.1-winbond | ||
1157 | os=-proelf | ||
1158 | ;; | ||
1159 | xbox) | ||
1160 | basic_machine=i686-pc | ||
1161 | os=-mingw32 | ||
1162 | ;; | ||
1163 | xps | xps100) | ||
1164 | basic_machine=xps100-honeywell | ||
1165 | ;; | ||
1166 | ymp) | ||
1167 | basic_machine=ymp-cray | ||
1168 | os=-unicos | ||
1169 | ;; | ||
1170 | z8k-*-coff) | ||
1171 | basic_machine=z8k-unknown | ||
1172 | os=-sim | ||
1173 | ;; | ||
1174 | z80-*-coff) | ||
1175 | basic_machine=z80-unknown | ||
1176 | os=-sim | ||
1177 | ;; | ||
1178 | none) | ||
1179 | basic_machine=none-none | ||
1180 | os=-none | ||
1181 | ;; | ||
1182 | |||
1183 | # Here we handle the default manufacturer of certain CPU types. It is in | ||
1184 | # some cases the only manufacturer, in others, it is the most popular. | ||
1185 | w89k) | ||
1186 | basic_machine=hppa1.1-winbond | ||
1187 | ;; | ||
1188 | op50n) | ||
1189 | basic_machine=hppa1.1-oki | ||
1190 | ;; | ||
1191 | op60c) | ||
1192 | basic_machine=hppa1.1-oki | ||
1193 | ;; | ||
1194 | romp) | ||
1195 | basic_machine=romp-ibm | ||
1196 | ;; | ||
1197 | mmix) | ||
1198 | basic_machine=mmix-knuth | ||
1199 | ;; | ||
1200 | rs6000) | ||
1201 | basic_machine=rs6000-ibm | ||
1202 | ;; | ||
1203 | vax) | ||
1204 | basic_machine=vax-dec | ||
1205 | ;; | ||
1206 | pdp10) | ||
1207 | # there are many clones, so DEC is not a safe bet | ||
1208 | basic_machine=pdp10-unknown | ||
1209 | ;; | ||
1210 | pdp11) | ||
1211 | basic_machine=pdp11-dec | ||
1212 | ;; | ||
1213 | we32k) | ||
1214 | basic_machine=we32k-att | ||
1215 | ;; | ||
1216 | sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) | ||
1217 | basic_machine=sh-unknown | ||
1218 | ;; | ||
1219 | sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) | ||
1220 | basic_machine=sparc-sun | ||
1221 | ;; | ||
1222 | cydra) | ||
1223 | basic_machine=cydra-cydrome | ||
1224 | ;; | ||
1225 | orion) | ||
1226 | basic_machine=orion-highlevel | ||
1227 | ;; | ||
1228 | orion105) | ||
1229 | basic_machine=clipper-highlevel | ||
1230 | ;; | ||
1231 | mac | mpw | mac-mpw) | ||
1232 | basic_machine=m68k-apple | ||
1233 | ;; | ||
1234 | pmac | pmac-mpw) | ||
1235 | basic_machine=powerpc-apple | ||
1236 | ;; | ||
1237 | *-unknown) | ||
1238 | # Make sure to match an already-canonicalized machine name. | ||
1239 | ;; | ||
1240 | *) | ||
1241 | echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 | ||
1242 | exit 1 | ||
1243 | ;; | ||
1244 | esac | ||
1245 | |||
1246 | # Here we canonicalize certain aliases for manufacturers. | ||
1247 | case $basic_machine in | ||
1248 | *-digital*) | ||
1249 | basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` | ||
1250 | ;; | ||
1251 | *-commodore*) | ||
1252 | basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` | ||
1253 | ;; | ||
1254 | *) | ||
1255 | ;; | ||
1256 | esac | ||
1257 | |||
1258 | # Decode manufacturer-specific aliases for certain operating systems. | ||
1259 | |||
1260 | if [ x"$os" != x"" ] | ||
1261 | then | ||
1262 | case $os in | ||
1263 | # First match some system type aliases | ||
1264 | # that might get confused with valid system types. | ||
1265 | # -solaris* is a basic system type, with this one exception. | ||
1266 | -auroraux) | ||
1267 | os=-auroraux | ||
1268 | ;; | ||
1269 | -solaris1 | -solaris1.*) | ||
1270 | os=`echo $os | sed -e 's|solaris1|sunos4|'` | ||
1271 | ;; | ||
1272 | -solaris) | ||
1273 | os=-solaris2 | ||
1274 | ;; | ||
1275 | -svr4*) | ||
1276 | os=-sysv4 | ||
1277 | ;; | ||
1278 | -unixware*) | ||
1279 | os=-sysv4.2uw | ||
1280 | ;; | ||
1281 | -gnu/linux*) | ||
1282 | os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` | ||
1283 | ;; | ||
1284 | # First accept the basic system types. | ||
1285 | # The portable systems comes first. | ||
1286 | # Each alternative MUST END IN A *, to match a version number. | ||
1287 | # -sysv* is not here because it comes later, after sysvr4. | ||
1288 | -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | ||
1289 | | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | ||
1290 | | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | ||
1291 | | -sym* | -kopensolaris* \ | ||
1292 | | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | ||
1293 | | -aos* | -aros* \ | ||
1294 | | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | ||
1295 | | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | ||
1296 | | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | ||
1297 | | -openbsd* | -solidbsd* \ | ||
1298 | | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | ||
1299 | | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | ||
1300 | | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | ||
1301 | | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | ||
1302 | | -chorusos* | -chorusrdb* | -cegcc* \ | ||
1303 | | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | ||
1304 | | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | ||
1305 | | -uxpv* | -beos* | -mpeix* | -udk* \ | ||
1306 | | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | ||
1307 | | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | ||
1308 | | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | ||
1309 | | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | ||
1310 | | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | ||
1311 | | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | ||
1312 | | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) | ||
1313 | # Remember, each alternative MUST END IN *, to match a version number. | ||
1314 | ;; | ||
1315 | -qnx*) | ||
1316 | case $basic_machine in | ||
1317 | x86-* | i*86-*) | ||
1318 | ;; | ||
1319 | *) | ||
1320 | os=-nto$os | ||
1321 | ;; | ||
1322 | esac | ||
1323 | ;; | ||
1324 | -nto-qnx*) | ||
1325 | ;; | ||
1326 | -nto*) | ||
1327 | os=`echo $os | sed -e 's|nto|nto-qnx|'` | ||
1328 | ;; | ||
1329 | -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | ||
1330 | | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | ||
1331 | | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) | ||
1332 | ;; | ||
1333 | -mac*) | ||
1334 | os=`echo $os | sed -e 's|mac|macos|'` | ||
1335 | ;; | ||
1336 | -linux-dietlibc) | ||
1337 | os=-linux-dietlibc | ||
1338 | ;; | ||
1339 | -linux*) | ||
1340 | os=`echo $os | sed -e 's|linux|linux-gnu|'` | ||
1341 | ;; | ||
1342 | -sunos5*) | ||
1343 | os=`echo $os | sed -e 's|sunos5|solaris2|'` | ||
1344 | ;; | ||
1345 | -sunos6*) | ||
1346 | os=`echo $os | sed -e 's|sunos6|solaris3|'` | ||
1347 | ;; | ||
1348 | -opened*) | ||
1349 | os=-openedition | ||
1350 | ;; | ||
1351 | -os400*) | ||
1352 | os=-os400 | ||
1353 | ;; | ||
1354 | -wince*) | ||
1355 | os=-wince | ||
1356 | ;; | ||
1357 | -osfrose*) | ||
1358 | os=-osfrose | ||
1359 | ;; | ||
1360 | -osf*) | ||
1361 | os=-osf | ||
1362 | ;; | ||
1363 | -utek*) | ||
1364 | os=-bsd | ||
1365 | ;; | ||
1366 | -dynix*) | ||
1367 | os=-bsd | ||
1368 | ;; | ||
1369 | -acis*) | ||
1370 | os=-aos | ||
1371 | ;; | ||
1372 | -atheos*) | ||
1373 | os=-atheos | ||
1374 | ;; | ||
1375 | -syllable*) | ||
1376 | os=-syllable | ||
1377 | ;; | ||
1378 | -386bsd) | ||
1379 | os=-bsd | ||
1380 | ;; | ||
1381 | -ctix* | -uts*) | ||
1382 | os=-sysv | ||
1383 | ;; | ||
1384 | -nova*) | ||
1385 | os=-rtmk-nova | ||
1386 | ;; | ||
1387 | -ns2 ) | ||
1388 | os=-nextstep2 | ||
1389 | ;; | ||
1390 | -nsk*) | ||
1391 | os=-nsk | ||
1392 | ;; | ||
1393 | # Preserve the version number of sinix5. | ||
1394 | -sinix5.*) | ||
1395 | os=`echo $os | sed -e 's|sinix|sysv|'` | ||
1396 | ;; | ||
1397 | -sinix*) | ||
1398 | os=-sysv4 | ||
1399 | ;; | ||
1400 | -tpf*) | ||
1401 | os=-tpf | ||
1402 | ;; | ||
1403 | -triton*) | ||
1404 | os=-sysv3 | ||
1405 | ;; | ||
1406 | -oss*) | ||
1407 | os=-sysv3 | ||
1408 | ;; | ||
1409 | -svr4) | ||
1410 | os=-sysv4 | ||
1411 | ;; | ||
1412 | -svr3) | ||
1413 | os=-sysv3 | ||
1414 | ;; | ||
1415 | -sysvr4) | ||
1416 | os=-sysv4 | ||
1417 | ;; | ||
1418 | # This must come after -sysvr4. | ||
1419 | -sysv*) | ||
1420 | ;; | ||
1421 | -ose*) | ||
1422 | os=-ose | ||
1423 | ;; | ||
1424 | -es1800*) | ||
1425 | os=-ose | ||
1426 | ;; | ||
1427 | -xenix) | ||
1428 | os=-xenix | ||
1429 | ;; | ||
1430 | -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) | ||
1431 | os=-mint | ||
1432 | ;; | ||
1433 | -aros*) | ||
1434 | os=-aros | ||
1435 | ;; | ||
1436 | -kaos*) | ||
1437 | os=-kaos | ||
1438 | ;; | ||
1439 | -zvmoe) | ||
1440 | os=-zvmoe | ||
1441 | ;; | ||
1442 | -dicos*) | ||
1443 | os=-dicos | ||
1444 | ;; | ||
1445 | -nacl*) | ||
1446 | ;; | ||
1447 | -none) | ||
1448 | ;; | ||
1449 | *) | ||
1450 | # Get rid of the `-' at the beginning of $os. | ||
1451 | os=`echo $os | sed 's/[^-]*-//'` | ||
1452 | echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 | ||
1453 | exit 1 | ||
1454 | ;; | ||
1455 | esac | ||
1456 | else | ||
1457 | |||
1458 | # Here we handle the default operating systems that come with various machines. | ||
1459 | # The value should be what the vendor currently ships out the door with their | ||
1460 | # machine or put another way, the most popular os provided with the machine. | ||
1461 | |||
1462 | # Note that if you're going to try to match "-MANUFACTURER" here (say, | ||
1463 | # "-sun"), then you have to tell the case statement up towards the top | ||
1464 | # that MANUFACTURER isn't an operating system. Otherwise, code above | ||
1465 | # will signal an error saying that MANUFACTURER isn't an operating | ||
1466 | # system, and we'll never get to this point. | ||
1467 | |||
1468 | case $basic_machine in | ||
1469 | score-*) | ||
1470 | os=-elf | ||
1471 | ;; | ||
1472 | spu-*) | ||
1473 | os=-elf | ||
1474 | ;; | ||
1475 | *-acorn) | ||
1476 | os=-riscix1.2 | ||
1477 | ;; | ||
1478 | arm*-rebel) | ||
1479 | os=-linux | ||
1480 | ;; | ||
1481 | arm*-semi) | ||
1482 | os=-aout | ||
1483 | ;; | ||
1484 | c4x-* | tic4x-*) | ||
1485 | os=-coff | ||
1486 | ;; | ||
1487 | # This must come before the *-dec entry. | ||
1488 | pdp10-*) | ||
1489 | os=-tops20 | ||
1490 | ;; | ||
1491 | pdp11-*) | ||
1492 | os=-none | ||
1493 | ;; | ||
1494 | *-dec | vax-*) | ||
1495 | os=-ultrix4.2 | ||
1496 | ;; | ||
1497 | m68*-apollo) | ||
1498 | os=-domain | ||
1499 | ;; | ||
1500 | i386-sun) | ||
1501 | os=-sunos4.0.2 | ||
1502 | ;; | ||
1503 | m68000-sun) | ||
1504 | os=-sunos3 | ||
1505 | # This also exists in the configure program, but was not the | ||
1506 | # default. | ||
1507 | # os=-sunos4 | ||
1508 | ;; | ||
1509 | m68*-cisco) | ||
1510 | os=-aout | ||
1511 | ;; | ||
1512 | mep-*) | ||
1513 | os=-elf | ||
1514 | ;; | ||
1515 | mips*-cisco) | ||
1516 | os=-elf | ||
1517 | ;; | ||
1518 | mips*-*) | ||
1519 | os=-elf | ||
1520 | ;; | ||
1521 | or32-*) | ||
1522 | os=-coff | ||
1523 | ;; | ||
1524 | *-tti) # must be before sparc entry or we get the wrong os. | ||
1525 | os=-sysv3 | ||
1526 | ;; | ||
1527 | sparc-* | *-sun) | ||
1528 | os=-sunos4.1.1 | ||
1529 | ;; | ||
1530 | *-be) | ||
1531 | os=-beos | ||
1532 | ;; | ||
1533 | *-haiku) | ||
1534 | os=-haiku | ||
1535 | ;; | ||
1536 | *-ibm) | ||
1537 | os=-aix | ||
1538 | ;; | ||
1539 | *-knuth) | ||
1540 | os=-mmixware | ||
1541 | ;; | ||
1542 | *-wec) | ||
1543 | os=-proelf | ||
1544 | ;; | ||
1545 | *-winbond) | ||
1546 | os=-proelf | ||
1547 | ;; | ||
1548 | *-oki) | ||
1549 | os=-proelf | ||
1550 | ;; | ||
1551 | *-hp) | ||
1552 | os=-hpux | ||
1553 | ;; | ||
1554 | *-hitachi) | ||
1555 | os=-hiux | ||
1556 | ;; | ||
1557 | i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) | ||
1558 | os=-sysv | ||
1559 | ;; | ||
1560 | *-cbm) | ||
1561 | os=-amigaos | ||
1562 | ;; | ||
1563 | *-dg) | ||
1564 | os=-dgux | ||
1565 | ;; | ||
1566 | *-dolphin) | ||
1567 | os=-sysv3 | ||
1568 | ;; | ||
1569 | m68k-ccur) | ||
1570 | os=-rtu | ||
1571 | ;; | ||
1572 | m88k-omron*) | ||
1573 | os=-luna | ||
1574 | ;; | ||
1575 | *-next ) | ||
1576 | os=-nextstep | ||
1577 | ;; | ||
1578 | *-sequent) | ||
1579 | os=-ptx | ||
1580 | ;; | ||
1581 | *-crds) | ||
1582 | os=-unos | ||
1583 | ;; | ||
1584 | *-ns) | ||
1585 | os=-genix | ||
1586 | ;; | ||
1587 | i370-*) | ||
1588 | os=-mvs | ||
1589 | ;; | ||
1590 | *-next) | ||
1591 | os=-nextstep3 | ||
1592 | ;; | ||
1593 | *-gould) | ||
1594 | os=-sysv | ||
1595 | ;; | ||
1596 | *-highlevel) | ||
1597 | os=-bsd | ||
1598 | ;; | ||
1599 | *-encore) | ||
1600 | os=-bsd | ||
1601 | ;; | ||
1602 | *-sgi) | ||
1603 | os=-irix | ||
1604 | ;; | ||
1605 | *-siemens) | ||
1606 | os=-sysv4 | ||
1607 | ;; | ||
1608 | *-masscomp) | ||
1609 | os=-rtu | ||
1610 | ;; | ||
1611 | f30[01]-fujitsu | f700-fujitsu) | ||
1612 | os=-uxpv | ||
1613 | ;; | ||
1614 | *-rom68k) | ||
1615 | os=-coff | ||
1616 | ;; | ||
1617 | *-*bug) | ||
1618 | os=-coff | ||
1619 | ;; | ||
1620 | *-apple) | ||
1621 | os=-macos | ||
1622 | ;; | ||
1623 | *-atari*) | ||
1624 | os=-mint | ||
1625 | ;; | ||
1626 | *) | ||
1627 | os=-none | ||
1628 | ;; | ||
1629 | esac | ||
1630 | fi | ||
1631 | |||
1632 | # Here we handle the case where we know the os, and the CPU type, but not the | ||
1633 | # manufacturer. We pick the logical manufacturer. | ||
1634 | vendor=unknown | ||
1635 | case $basic_machine in | ||
1636 | *-unknown) | ||
1637 | case $os in | ||
1638 | -riscix*) | ||
1639 | vendor=acorn | ||
1640 | ;; | ||
1641 | -sunos*) | ||
1642 | vendor=sun | ||
1643 | ;; | ||
1644 | -cnk*|-aix*) | ||
1645 | vendor=ibm | ||
1646 | ;; | ||
1647 | -beos*) | ||
1648 | vendor=be | ||
1649 | ;; | ||
1650 | -hpux*) | ||
1651 | vendor=hp | ||
1652 | ;; | ||
1653 | -mpeix*) | ||
1654 | vendor=hp | ||
1655 | ;; | ||
1656 | -hiux*) | ||
1657 | vendor=hitachi | ||
1658 | ;; | ||
1659 | -unos*) | ||
1660 | vendor=crds | ||
1661 | ;; | ||
1662 | -dgux*) | ||
1663 | vendor=dg | ||
1664 | ;; | ||
1665 | -luna*) | ||
1666 | vendor=omron | ||
1667 | ;; | ||
1668 | -genix*) | ||
1669 | vendor=ns | ||
1670 | ;; | ||
1671 | -mvs* | -opened*) | ||
1672 | vendor=ibm | ||
1673 | ;; | ||
1674 | -os400*) | ||
1675 | vendor=ibm | ||
1676 | ;; | ||
1677 | -ptx*) | ||
1678 | vendor=sequent | ||
1679 | ;; | ||
1680 | -tpf*) | ||
1681 | vendor=ibm | ||
1682 | ;; | ||
1683 | -vxsim* | -vxworks* | -windiss*) | ||
1684 | vendor=wrs | ||
1685 | ;; | ||
1686 | -aux*) | ||
1687 | vendor=apple | ||
1688 | ;; | ||
1689 | -hms*) | ||
1690 | vendor=hitachi | ||
1691 | ;; | ||
1692 | -mpw* | -macos*) | ||
1693 | vendor=apple | ||
1694 | ;; | ||
1695 | -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) | ||
1696 | vendor=atari | ||
1697 | ;; | ||
1698 | -vos*) | ||
1699 | vendor=stratus | ||
1700 | ;; | ||
1701 | esac | ||
1702 | basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` | ||
1703 | ;; | ||
1704 | esac | ||
1705 | |||
1706 | echo $basic_machine$os | ||
1707 | exit | ||
1708 | |||
1709 | # Local variables: | ||
1710 | # eval: (add-hook 'write-file-hooks 'time-stamp) | ||
1711 | # time-stamp-start: "timestamp='" | ||
1712 | # time-stamp-format: "%:y-%02m-%02d" | ||
1713 | # time-stamp-end: "'" | ||
1714 | # End: | ||
diff --git a/libraries/eet/configure b/libraries/eet/configure deleted file mode 100755 index 0687ffe..0000000 --- a/libraries/eet/configure +++ /dev/null | |||
@@ -1,16872 +0,0 @@ | |||
1 | #! /bin/sh | ||
2 | # Guess values for system-dependent variables and create Makefiles. | ||
3 | # Generated by GNU Autoconf 2.67 for eet 1.6.0-alpha. | ||
4 | # | ||
5 | # Report bugs to <enlightenment-devel@lists.sourceforge.net>. | ||
6 | # | ||
7 | # | ||
8 | # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, | ||
9 | # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software | ||
10 | # Foundation, Inc. | ||
11 | # | ||
12 | # | ||
13 | # This configure script is free software; the Free Software Foundation | ||
14 | # gives unlimited permission to copy, distribute and modify it. | ||
15 | ## -------------------- ## | ||
16 | ## M4sh Initialization. ## | ||
17 | ## -------------------- ## | ||
18 | |||
19 | # Be more Bourne compatible | ||
20 | DUALCASE=1; export DUALCASE # for MKS sh | ||
21 | if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : | ||
22 | emulate sh | ||
23 | NULLCMD=: | ||
24 | # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which | ||
25 | # is contrary to our usage. Disable this feature. | ||
26 | alias -g '${1+"$@"}'='"$@"' | ||
27 | setopt NO_GLOB_SUBST | ||
28 | else | ||
29 | case `(set -o) 2>/dev/null` in #( | ||
30 | *posix*) : | ||
31 | set -o posix ;; #( | ||
32 | *) : | ||
33 | ;; | ||
34 | esac | ||
35 | fi | ||
36 | |||
37 | |||
38 | as_nl=' | ||
39 | ' | ||
40 | export as_nl | ||
41 | # Printing a long string crashes Solaris 7 /usr/bin/printf. | ||
42 | as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' | ||
43 | as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo | ||
44 | as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo | ||
45 | # Prefer a ksh shell builtin over an external printf program on Solaris, | ||
46 | # but without wasting forks for bash or zsh. | ||
47 | if test -z "$BASH_VERSION$ZSH_VERSION" \ | ||
48 | && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then | ||
49 | as_echo='print -r --' | ||
50 | as_echo_n='print -rn --' | ||
51 | elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then | ||
52 | as_echo='printf %s\n' | ||
53 | as_echo_n='printf %s' | ||
54 | else | ||
55 | if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then | ||
56 | as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' | ||
57 | as_echo_n='/usr/ucb/echo -n' | ||
58 | else | ||
59 | as_echo_body='eval expr "X$1" : "X\\(.*\\)"' | ||
60 | as_echo_n_body='eval | ||
61 | arg=$1; | ||
62 | case $arg in #( | ||
63 | *"$as_nl"*) | ||
64 | expr "X$arg" : "X\\(.*\\)$as_nl"; | ||
65 | arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; | ||
66 | esac; | ||
67 | expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" | ||
68 | ' | ||
69 | export as_echo_n_body | ||
70 | as_echo_n='sh -c $as_echo_n_body as_echo' | ||
71 | fi | ||
72 | export as_echo_body | ||
73 | as_echo='sh -c $as_echo_body as_echo' | ||
74 | fi | ||
75 | |||
76 | # The user is always right. | ||
77 | if test "${PATH_SEPARATOR+set}" != set; then | ||
78 | PATH_SEPARATOR=: | ||
79 | (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { | ||
80 | (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || | ||
81 | PATH_SEPARATOR=';' | ||
82 | } | ||
83 | fi | ||
84 | |||
85 | |||
86 | # IFS | ||
87 | # We need space, tab and new line, in precisely that order. Quoting is | ||
88 | # there to prevent editors from complaining about space-tab. | ||
89 | # (If _AS_PATH_WALK were called with IFS unset, it would disable word | ||
90 | # splitting by setting IFS to empty value.) | ||
91 | IFS=" "" $as_nl" | ||
92 | |||
93 | # Find who we are. Look in the path if we contain no directory separator. | ||
94 | case $0 in #(( | ||
95 | *[\\/]* ) as_myself=$0 ;; | ||
96 | *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
97 | for as_dir in $PATH | ||
98 | do | ||
99 | IFS=$as_save_IFS | ||
100 | test -z "$as_dir" && as_dir=. | ||
101 | test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break | ||
102 | done | ||
103 | IFS=$as_save_IFS | ||
104 | |||
105 | ;; | ||
106 | esac | ||
107 | # We did not find ourselves, most probably we were run as `sh COMMAND' | ||
108 | # in which case we are not to be found in the path. | ||
109 | if test "x$as_myself" = x; then | ||
110 | as_myself=$0 | ||
111 | fi | ||
112 | if test ! -f "$as_myself"; then | ||
113 | $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 | ||
114 | exit 1 | ||
115 | fi | ||
116 | |||
117 | # Unset variables that we do not need and which cause bugs (e.g. in | ||
118 | # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" | ||
119 | # suppresses any "Segmentation fault" message there. '((' could | ||
120 | # trigger a bug in pdksh 5.2.14. | ||
121 | for as_var in BASH_ENV ENV MAIL MAILPATH | ||
122 | do eval test x\${$as_var+set} = xset \ | ||
123 | && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : | ||
124 | done | ||
125 | PS1='$ ' | ||
126 | PS2='> ' | ||
127 | PS4='+ ' | ||
128 | |||
129 | # NLS nuisances. | ||
130 | LC_ALL=C | ||
131 | export LC_ALL | ||
132 | LANGUAGE=C | ||
133 | export LANGUAGE | ||
134 | |||
135 | # CDPATH. | ||
136 | (unset CDPATH) >/dev/null 2>&1 && unset CDPATH | ||
137 | |||
138 | if test "x$CONFIG_SHELL" = x; then | ||
139 | as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : | ||
140 | emulate sh | ||
141 | NULLCMD=: | ||
142 | # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which | ||
143 | # is contrary to our usage. Disable this feature. | ||
144 | alias -g '\${1+\"\$@\"}'='\"\$@\"' | ||
145 | setopt NO_GLOB_SUBST | ||
146 | else | ||
147 | case \`(set -o) 2>/dev/null\` in #( | ||
148 | *posix*) : | ||
149 | set -o posix ;; #( | ||
150 | *) : | ||
151 | ;; | ||
152 | esac | ||
153 | fi | ||
154 | " | ||
155 | as_required="as_fn_return () { (exit \$1); } | ||
156 | as_fn_success () { as_fn_return 0; } | ||
157 | as_fn_failure () { as_fn_return 1; } | ||
158 | as_fn_ret_success () { return 0; } | ||
159 | as_fn_ret_failure () { return 1; } | ||
160 | |||
161 | exitcode=0 | ||
162 | as_fn_success || { exitcode=1; echo as_fn_success failed.; } | ||
163 | as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } | ||
164 | as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } | ||
165 | as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } | ||
166 | if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : | ||
167 | |||
168 | else | ||
169 | exitcode=1; echo positional parameters were not saved. | ||
170 | fi | ||
171 | test x\$exitcode = x0 || exit 1" | ||
172 | as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO | ||
173 | as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO | ||
174 | eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && | ||
175 | test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 | ||
176 | test \$(( 1 + 1 )) = 2 || exit 1" | ||
177 | if (eval "$as_required") 2>/dev/null; then : | ||
178 | as_have_required=yes | ||
179 | else | ||
180 | as_have_required=no | ||
181 | fi | ||
182 | if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : | ||
183 | |||
184 | else | ||
185 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
186 | as_found=false | ||
187 | for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH | ||
188 | do | ||
189 | IFS=$as_save_IFS | ||
190 | test -z "$as_dir" && as_dir=. | ||
191 | as_found=: | ||
192 | case $as_dir in #( | ||
193 | /*) | ||
194 | for as_base in sh bash ksh sh5; do | ||
195 | # Try only shells that exist, to save several forks. | ||
196 | as_shell=$as_dir/$as_base | ||
197 | if { test -f "$as_shell" || test -f "$as_shell.exe"; } && | ||
198 | { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : | ||
199 | CONFIG_SHELL=$as_shell as_have_required=yes | ||
200 | if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : | ||
201 | break 2 | ||
202 | fi | ||
203 | fi | ||
204 | done;; | ||
205 | esac | ||
206 | as_found=false | ||
207 | done | ||
208 | $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && | ||
209 | { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : | ||
210 | CONFIG_SHELL=$SHELL as_have_required=yes | ||
211 | fi; } | ||
212 | IFS=$as_save_IFS | ||
213 | |||
214 | |||
215 | if test "x$CONFIG_SHELL" != x; then : | ||
216 | # We cannot yet assume a decent shell, so we have to provide a | ||
217 | # neutralization value for shells without unset; and this also | ||
218 | # works around shells that cannot unset nonexistent variables. | ||
219 | BASH_ENV=/dev/null | ||
220 | ENV=/dev/null | ||
221 | (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV | ||
222 | export CONFIG_SHELL | ||
223 | exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} | ||
224 | fi | ||
225 | |||
226 | if test x$as_have_required = xno; then : | ||
227 | $as_echo "$0: This script requires a shell more modern than all" | ||
228 | $as_echo "$0: the shells that I found on your system." | ||
229 | if test x${ZSH_VERSION+set} = xset ; then | ||
230 | $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" | ||
231 | $as_echo "$0: be upgraded to zsh 4.3.4 or later." | ||
232 | else | ||
233 | $as_echo "$0: Please tell bug-autoconf@gnu.org and | ||
234 | $0: enlightenment-devel@lists.sourceforge.net about your | ||
235 | $0: system, including any error possibly output before this | ||
236 | $0: message. Then install a modern shell, or manually run | ||
237 | $0: the script under such a shell if you do have one." | ||
238 | fi | ||
239 | exit 1 | ||
240 | fi | ||
241 | fi | ||
242 | fi | ||
243 | SHELL=${CONFIG_SHELL-/bin/sh} | ||
244 | export SHELL | ||
245 | # Unset more variables known to interfere with behavior of common tools. | ||
246 | CLICOLOR_FORCE= GREP_OPTIONS= | ||
247 | unset CLICOLOR_FORCE GREP_OPTIONS | ||
248 | |||
249 | ## --------------------- ## | ||
250 | ## M4sh Shell Functions. ## | ||
251 | ## --------------------- ## | ||
252 | # as_fn_unset VAR | ||
253 | # --------------- | ||
254 | # Portably unset VAR. | ||
255 | as_fn_unset () | ||
256 | { | ||
257 | { eval $1=; unset $1;} | ||
258 | } | ||
259 | as_unset=as_fn_unset | ||
260 | |||
261 | # as_fn_set_status STATUS | ||
262 | # ----------------------- | ||
263 | # Set $? to STATUS, without forking. | ||
264 | as_fn_set_status () | ||
265 | { | ||
266 | return $1 | ||
267 | } # as_fn_set_status | ||
268 | |||
269 | # as_fn_exit STATUS | ||
270 | # ----------------- | ||
271 | # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. | ||
272 | as_fn_exit () | ||
273 | { | ||
274 | set +e | ||
275 | as_fn_set_status $1 | ||
276 | exit $1 | ||
277 | } # as_fn_exit | ||
278 | |||
279 | # as_fn_mkdir_p | ||
280 | # ------------- | ||
281 | # Create "$as_dir" as a directory, including parents if necessary. | ||
282 | as_fn_mkdir_p () | ||
283 | { | ||
284 | |||
285 | case $as_dir in #( | ||
286 | -*) as_dir=./$as_dir;; | ||
287 | esac | ||
288 | test -d "$as_dir" || eval $as_mkdir_p || { | ||
289 | as_dirs= | ||
290 | while :; do | ||
291 | case $as_dir in #( | ||
292 | *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( | ||
293 | *) as_qdir=$as_dir;; | ||
294 | esac | ||
295 | as_dirs="'$as_qdir' $as_dirs" | ||
296 | as_dir=`$as_dirname -- "$as_dir" || | ||
297 | $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ | ||
298 | X"$as_dir" : 'X\(//\)[^/]' \| \ | ||
299 | X"$as_dir" : 'X\(//\)$' \| \ | ||
300 | X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || | ||
301 | $as_echo X"$as_dir" | | ||
302 | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ | ||
303 | s//\1/ | ||
304 | q | ||
305 | } | ||
306 | /^X\(\/\/\)[^/].*/{ | ||
307 | s//\1/ | ||
308 | q | ||
309 | } | ||
310 | /^X\(\/\/\)$/{ | ||
311 | s//\1/ | ||
312 | q | ||
313 | } | ||
314 | /^X\(\/\).*/{ | ||
315 | s//\1/ | ||
316 | q | ||
317 | } | ||
318 | s/.*/./; q'` | ||
319 | test -d "$as_dir" && break | ||
320 | done | ||
321 | test -z "$as_dirs" || eval "mkdir $as_dirs" | ||
322 | } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" | ||
323 | |||
324 | |||
325 | } # as_fn_mkdir_p | ||
326 | # as_fn_append VAR VALUE | ||
327 | # ---------------------- | ||
328 | # Append the text in VALUE to the end of the definition contained in VAR. Take | ||
329 | # advantage of any shell optimizations that allow amortized linear growth over | ||
330 | # repeated appends, instead of the typical quadratic growth present in naive | ||
331 | # implementations. | ||
332 | if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : | ||
333 | eval 'as_fn_append () | ||
334 | { | ||
335 | eval $1+=\$2 | ||
336 | }' | ||
337 | else | ||
338 | as_fn_append () | ||
339 | { | ||
340 | eval $1=\$$1\$2 | ||
341 | } | ||
342 | fi # as_fn_append | ||
343 | |||
344 | # as_fn_arith ARG... | ||
345 | # ------------------ | ||
346 | # Perform arithmetic evaluation on the ARGs, and store the result in the | ||
347 | # global $as_val. Take advantage of shells that can avoid forks. The arguments | ||
348 | # must be portable across $(()) and expr. | ||
349 | if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : | ||
350 | eval 'as_fn_arith () | ||
351 | { | ||
352 | as_val=$(( $* )) | ||
353 | }' | ||
354 | else | ||
355 | as_fn_arith () | ||
356 | { | ||
357 | as_val=`expr "$@" || test $? -eq 1` | ||
358 | } | ||
359 | fi # as_fn_arith | ||
360 | |||
361 | |||
362 | # as_fn_error STATUS ERROR [LINENO LOG_FD] | ||
363 | # ---------------------------------------- | ||
364 | # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are | ||
365 | # provided, also output the error to LOG_FD, referencing LINENO. Then exit the | ||
366 | # script with STATUS, using 1 if that was 0. | ||
367 | as_fn_error () | ||
368 | { | ||
369 | as_status=$1; test $as_status -eq 0 && as_status=1 | ||
370 | if test "$4"; then | ||
371 | as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack | ||
372 | $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 | ||
373 | fi | ||
374 | $as_echo "$as_me: error: $2" >&2 | ||
375 | as_fn_exit $as_status | ||
376 | } # as_fn_error | ||
377 | |||
378 | if expr a : '\(a\)' >/dev/null 2>&1 && | ||
379 | test "X`expr 00001 : '.*\(...\)'`" = X001; then | ||
380 | as_expr=expr | ||
381 | else | ||
382 | as_expr=false | ||
383 | fi | ||
384 | |||
385 | if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then | ||
386 | as_basename=basename | ||
387 | else | ||
388 | as_basename=false | ||
389 | fi | ||
390 | |||
391 | if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then | ||
392 | as_dirname=dirname | ||
393 | else | ||
394 | as_dirname=false | ||
395 | fi | ||
396 | |||
397 | as_me=`$as_basename -- "$0" || | ||
398 | $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ | ||
399 | X"$0" : 'X\(//\)$' \| \ | ||
400 | X"$0" : 'X\(/\)' \| . 2>/dev/null || | ||
401 | $as_echo X/"$0" | | ||
402 | sed '/^.*\/\([^/][^/]*\)\/*$/{ | ||
403 | s//\1/ | ||
404 | q | ||
405 | } | ||
406 | /^X\/\(\/\/\)$/{ | ||
407 | s//\1/ | ||
408 | q | ||
409 | } | ||
410 | /^X\/\(\/\).*/{ | ||
411 | s//\1/ | ||
412 | q | ||
413 | } | ||
414 | s/.*/./; q'` | ||
415 | |||
416 | # Avoid depending upon Character Ranges. | ||
417 | as_cr_letters='abcdefghijklmnopqrstuvwxyz' | ||
418 | as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' | ||
419 | as_cr_Letters=$as_cr_letters$as_cr_LETTERS | ||
420 | as_cr_digits='0123456789' | ||
421 | as_cr_alnum=$as_cr_Letters$as_cr_digits | ||
422 | |||
423 | |||
424 | as_lineno_1=$LINENO as_lineno_1a=$LINENO | ||
425 | as_lineno_2=$LINENO as_lineno_2a=$LINENO | ||
426 | eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && | ||
427 | test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { | ||
428 | # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) | ||
429 | sed -n ' | ||
430 | p | ||
431 | /[$]LINENO/= | ||
432 | ' <$as_myself | | ||
433 | sed ' | ||
434 | s/[$]LINENO.*/&-/ | ||
435 | t lineno | ||
436 | b | ||
437 | :lineno | ||
438 | N | ||
439 | :loop | ||
440 | s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ | ||
441 | t loop | ||
442 | s/-\n.*// | ||
443 | ' >$as_me.lineno && | ||
444 | chmod +x "$as_me.lineno" || | ||
445 | { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } | ||
446 | |||
447 | # Don't try to exec as it changes $[0], causing all sort of problems | ||
448 | # (the dirname of $[0] is not the place where we might find the | ||
449 | # original and so on. Autoconf is especially sensitive to this). | ||
450 | . "./$as_me.lineno" | ||
451 | # Exit status is that of the last command. | ||
452 | exit | ||
453 | } | ||
454 | |||
455 | ECHO_C= ECHO_N= ECHO_T= | ||
456 | case `echo -n x` in #((((( | ||
457 | -n*) | ||
458 | case `echo 'xy\c'` in | ||
459 | *c*) ECHO_T=' ';; # ECHO_T is single tab character. | ||
460 | xy) ECHO_C='\c';; | ||
461 | *) echo `echo ksh88 bug on AIX 6.1` > /dev/null | ||
462 | ECHO_T=' ';; | ||
463 | esac;; | ||
464 | *) | ||
465 | ECHO_N='-n';; | ||
466 | esac | ||
467 | |||
468 | rm -f conf$$ conf$$.exe conf$$.file | ||
469 | if test -d conf$$.dir; then | ||
470 | rm -f conf$$.dir/conf$$.file | ||
471 | else | ||
472 | rm -f conf$$.dir | ||
473 | mkdir conf$$.dir 2>/dev/null | ||
474 | fi | ||
475 | if (echo >conf$$.file) 2>/dev/null; then | ||
476 | if ln -s conf$$.file conf$$ 2>/dev/null; then | ||
477 | as_ln_s='ln -s' | ||
478 | # ... but there are two gotchas: | ||
479 | # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. | ||
480 | # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. | ||
481 | # In both cases, we have to default to `cp -p'. | ||
482 | ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || | ||
483 | as_ln_s='cp -p' | ||
484 | elif ln conf$$.file conf$$ 2>/dev/null; then | ||
485 | as_ln_s=ln | ||
486 | else | ||
487 | as_ln_s='cp -p' | ||
488 | fi | ||
489 | else | ||
490 | as_ln_s='cp -p' | ||
491 | fi | ||
492 | rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file | ||
493 | rmdir conf$$.dir 2>/dev/null | ||
494 | |||
495 | if mkdir -p . 2>/dev/null; then | ||
496 | as_mkdir_p='mkdir -p "$as_dir"' | ||
497 | else | ||
498 | test -d ./-p && rmdir ./-p | ||
499 | as_mkdir_p=false | ||
500 | fi | ||
501 | |||
502 | if test -x / >/dev/null 2>&1; then | ||
503 | as_test_x='test -x' | ||
504 | else | ||
505 | if ls -dL / >/dev/null 2>&1; then | ||
506 | as_ls_L_option=L | ||
507 | else | ||
508 | as_ls_L_option= | ||
509 | fi | ||
510 | as_test_x=' | ||
511 | eval sh -c '\'' | ||
512 | if test -d "$1"; then | ||
513 | test -d "$1/."; | ||
514 | else | ||
515 | case $1 in #( | ||
516 | -*)set "./$1";; | ||
517 | esac; | ||
518 | case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( | ||
519 | ???[sx]*):;;*)false;;esac;fi | ||
520 | '\'' sh | ||
521 | ' | ||
522 | fi | ||
523 | as_executable_p=$as_test_x | ||
524 | |||
525 | # Sed expression to map a string onto a valid CPP name. | ||
526 | as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" | ||
527 | |||
528 | # Sed expression to map a string onto a valid variable name. | ||
529 | as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" | ||
530 | |||
531 | |||
532 | |||
533 | # Check that we are running under the correct shell. | ||
534 | SHELL=${CONFIG_SHELL-/bin/sh} | ||
535 | |||
536 | case X$lt_ECHO in | ||
537 | X*--fallback-echo) | ||
538 | # Remove one level of quotation (which was required for Make). | ||
539 | ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` | ||
540 | ;; | ||
541 | esac | ||
542 | |||
543 | ECHO=${lt_ECHO-echo} | ||
544 | if test "X$1" = X--no-reexec; then | ||
545 | # Discard the --no-reexec flag, and continue. | ||
546 | shift | ||
547 | elif test "X$1" = X--fallback-echo; then | ||
548 | # Avoid inline document here, it may be left over | ||
549 | : | ||
550 | elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then | ||
551 | # Yippee, $ECHO works! | ||
552 | : | ||
553 | else | ||
554 | # Restart under the correct shell. | ||
555 | exec $SHELL "$0" --no-reexec ${1+"$@"} | ||
556 | fi | ||
557 | |||
558 | if test "X$1" = X--fallback-echo; then | ||
559 | # used as fallback echo | ||
560 | shift | ||
561 | cat <<_LT_EOF | ||
562 | $* | ||
563 | _LT_EOF | ||
564 | exit 0 | ||
565 | fi | ||
566 | |||
567 | # The HP-UX ksh and POSIX shell print the target directory to stdout | ||
568 | # if CDPATH is set. | ||
569 | (unset CDPATH) >/dev/null 2>&1 && unset CDPATH | ||
570 | |||
571 | if test -z "$lt_ECHO"; then | ||
572 | if test "X${echo_test_string+set}" != Xset; then | ||
573 | # find a string as large as possible, as long as the shell can cope with it | ||
574 | for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do | ||
575 | # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... | ||
576 | if { echo_test_string=`eval $cmd`; } 2>/dev/null && | ||
577 | { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null | ||
578 | then | ||
579 | break | ||
580 | fi | ||
581 | done | ||
582 | fi | ||
583 | |||
584 | if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && | ||
585 | echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && | ||
586 | test "X$echo_testing_string" = "X$echo_test_string"; then | ||
587 | : | ||
588 | else | ||
589 | # The Solaris, AIX, and Digital Unix default echo programs unquote | ||
590 | # backslashes. This makes it impossible to quote backslashes using | ||
591 | # echo "$something" | sed 's/\\/\\\\/g' | ||
592 | # | ||
593 | # So, first we look for a working echo in the user's PATH. | ||
594 | |||
595 | lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR | ||
596 | for dir in $PATH /usr/ucb; do | ||
597 | IFS="$lt_save_ifs" | ||
598 | if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && | ||
599 | test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && | ||
600 | echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && | ||
601 | test "X$echo_testing_string" = "X$echo_test_string"; then | ||
602 | ECHO="$dir/echo" | ||
603 | break | ||
604 | fi | ||
605 | done | ||
606 | IFS="$lt_save_ifs" | ||
607 | |||
608 | if test "X$ECHO" = Xecho; then | ||
609 | # We didn't find a better echo, so look for alternatives. | ||
610 | if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && | ||
611 | echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && | ||
612 | test "X$echo_testing_string" = "X$echo_test_string"; then | ||
613 | # This shell has a builtin print -r that does the trick. | ||
614 | ECHO='print -r' | ||
615 | elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && | ||
616 | test "X$CONFIG_SHELL" != X/bin/ksh; then | ||
617 | # If we have ksh, try running configure again with it. | ||
618 | ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} | ||
619 | export ORIGINAL_CONFIG_SHELL | ||
620 | CONFIG_SHELL=/bin/ksh | ||
621 | export CONFIG_SHELL | ||
622 | exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} | ||
623 | else | ||
624 | # Try using printf. | ||
625 | ECHO='printf %s\n' | ||
626 | if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && | ||
627 | echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && | ||
628 | test "X$echo_testing_string" = "X$echo_test_string"; then | ||
629 | # Cool, printf works | ||
630 | : | ||
631 | elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && | ||
632 | test "X$echo_testing_string" = 'X\t' && | ||
633 | echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && | ||
634 | test "X$echo_testing_string" = "X$echo_test_string"; then | ||
635 | CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL | ||
636 | export CONFIG_SHELL | ||
637 | SHELL="$CONFIG_SHELL" | ||
638 | export SHELL | ||
639 | ECHO="$CONFIG_SHELL $0 --fallback-echo" | ||
640 | elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && | ||
641 | test "X$echo_testing_string" = 'X\t' && | ||
642 | echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && | ||
643 | test "X$echo_testing_string" = "X$echo_test_string"; then | ||
644 | ECHO="$CONFIG_SHELL $0 --fallback-echo" | ||
645 | else | ||
646 | # maybe with a smaller string... | ||
647 | prev=: | ||
648 | |||
649 | for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do | ||
650 | if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null | ||
651 | then | ||
652 | break | ||
653 | fi | ||
654 | prev="$cmd" | ||
655 | done | ||
656 | |||
657 | if test "$prev" != 'sed 50q "$0"'; then | ||
658 | echo_test_string=`eval $prev` | ||
659 | export echo_test_string | ||
660 | exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} | ||
661 | else | ||
662 | # Oops. We lost completely, so just stick with echo. | ||
663 | ECHO=echo | ||
664 | fi | ||
665 | fi | ||
666 | fi | ||
667 | fi | ||
668 | fi | ||
669 | fi | ||
670 | |||
671 | # Copy echo and quote the copy suitably for passing to libtool from | ||
672 | # the Makefile, instead of quoting the original, which is used later. | ||
673 | lt_ECHO=$ECHO | ||
674 | if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then | ||
675 | lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" | ||
676 | fi | ||
677 | |||
678 | |||
679 | |||
680 | |||
681 | test -n "$DJDIR" || exec 7<&0 </dev/null | ||
682 | exec 6>&1 | ||
683 | |||
684 | # Name of the host. | ||
685 | # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, | ||
686 | # so uname gets run too. | ||
687 | ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` | ||
688 | |||
689 | # | ||
690 | # Initializations. | ||
691 | # | ||
692 | ac_default_prefix=/usr/local | ||
693 | ac_clean_files= | ||
694 | ac_config_libobj_dir=. | ||
695 | LIBOBJS= | ||
696 | cross_compiling=no | ||
697 | subdirs= | ||
698 | MFLAGS= | ||
699 | MAKEFLAGS= | ||
700 | |||
701 | # Identity of this package. | ||
702 | PACKAGE_NAME='eet' | ||
703 | PACKAGE_TARNAME='eet' | ||
704 | PACKAGE_VERSION='1.6.0-alpha' | ||
705 | PACKAGE_STRING='eet 1.6.0-alpha' | ||
706 | PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net' | ||
707 | PACKAGE_URL='' | ||
708 | |||
709 | ac_unique_file="configure.ac" | ||
710 | # Factoring default headers for most tests. | ||
711 | ac_includes_default="\ | ||
712 | #include <stdio.h> | ||
713 | #ifdef HAVE_SYS_TYPES_H | ||
714 | # include <sys/types.h> | ||
715 | #endif | ||
716 | #ifdef HAVE_SYS_STAT_H | ||
717 | # include <sys/stat.h> | ||
718 | #endif | ||
719 | #ifdef STDC_HEADERS | ||
720 | # include <stdlib.h> | ||
721 | # include <stddef.h> | ||
722 | #else | ||
723 | # ifdef HAVE_STDLIB_H | ||
724 | # include <stdlib.h> | ||
725 | # endif | ||
726 | #endif | ||
727 | #ifdef HAVE_STRING_H | ||
728 | # if !defined STDC_HEADERS && defined HAVE_MEMORY_H | ||
729 | # include <memory.h> | ||
730 | # endif | ||
731 | # include <string.h> | ||
732 | #endif | ||
733 | #ifdef HAVE_STRINGS_H | ||
734 | # include <strings.h> | ||
735 | #endif | ||
736 | #ifdef HAVE_INTTYPES_H | ||
737 | # include <inttypes.h> | ||
738 | #endif | ||
739 | #ifdef HAVE_STDINT_H | ||
740 | # include <stdint.h> | ||
741 | #endif | ||
742 | #ifdef HAVE_UNISTD_H | ||
743 | # include <unistd.h> | ||
744 | #endif" | ||
745 | |||
746 | ac_subst_vars='am__EXEEXT_FALSE | ||
747 | am__EXEEXT_TRUE | ||
748 | LTLIBOBJS | ||
749 | LIBOBJS | ||
750 | requirement_eet | ||
751 | EFL_FNMATCH_LIBS | ||
752 | ALLOCA | ||
753 | lt_enable_auto_import | ||
754 | EET_CFLAGS | ||
755 | EET_CPPFLAGS | ||
756 | OPENSSL_LIBS | ||
757 | OPENSSL_CFLAGS | ||
758 | LIBGCRYPT_LIBS | ||
759 | LIBGCRYPT_CFLAGS | ||
760 | LIBGCRYPT_CONFIG | ||
761 | GNUTLS_LIBS | ||
762 | GNUTLS_CFLAGS | ||
763 | EXOTIC_LIBS | ||
764 | EXOTIC_CFLAGS | ||
765 | EINA_LIBS | ||
766 | EINA_CFLAGS | ||
767 | EET_LIBS | ||
768 | EFL_EET_BUILD | ||
769 | EVIL_LIBS | ||
770 | EVIL_CFLAGS | ||
771 | EFL_BUILD_DOC_FALSE | ||
772 | EFL_BUILD_DOC_TRUE | ||
773 | efl_doxygen | ||
774 | efl_have_doxygen | ||
775 | pkgconfig_requires_private | ||
776 | DEBUG_CFLAGS | ||
777 | EFL_ENABLE_COVERAGE_FALSE | ||
778 | EFL_ENABLE_COVERAGE_TRUE | ||
779 | EFL_COVERAGE_LIBS | ||
780 | EFL_COVERAGE_CFLAGS | ||
781 | have_lcov | ||
782 | EFL_ENABLE_TESTS_FALSE | ||
783 | EFL_ENABLE_TESTS_TRUE | ||
784 | CHECK_LIBS | ||
785 | CHECK_CFLAGS | ||
786 | PKG_CONFIG_LIBDIR | ||
787 | PKG_CONFIG_PATH | ||
788 | PKG_CONFIG | ||
789 | BUILD_EXAMPLES_FALSE | ||
790 | BUILD_EXAMPLES_TRUE | ||
791 | INSTALL_EXAMPLES_FALSE | ||
792 | INSTALL_EXAMPLES_TRUE | ||
793 | BUILD_EET_FALSE | ||
794 | BUILD_EET_TRUE | ||
795 | EET_PRG | ||
796 | EET_AMALGAMATION_FALSE | ||
797 | EET_AMALGAMATION_TRUE | ||
798 | VMAJ | ||
799 | release_info | ||
800 | version_info | ||
801 | CPP | ||
802 | OTOOL64 | ||
803 | OTOOL | ||
804 | LIPO | ||
805 | NMEDIT | ||
806 | DSYMUTIL | ||
807 | lt_ECHO | ||
808 | RANLIB | ||
809 | AR | ||
810 | LN_S | ||
811 | NM | ||
812 | ac_ct_DUMPBIN | ||
813 | DUMPBIN | ||
814 | LD | ||
815 | FGREP | ||
816 | EGREP | ||
817 | GREP | ||
818 | SED | ||
819 | am__fastdepCC_FALSE | ||
820 | am__fastdepCC_TRUE | ||
821 | CCDEPMODE | ||
822 | AMDEPBACKSLASH | ||
823 | AMDEP_FALSE | ||
824 | AMDEP_TRUE | ||
825 | am__quote | ||
826 | am__include | ||
827 | DEPDIR | ||
828 | OBJEXT | ||
829 | EXEEXT | ||
830 | ac_ct_CC | ||
831 | CPPFLAGS | ||
832 | LDFLAGS | ||
833 | CFLAGS | ||
834 | CC | ||
835 | LIBTOOL | ||
836 | OBJDUMP | ||
837 | DLLTOOL | ||
838 | AS | ||
839 | host_os | ||
840 | host_vendor | ||
841 | host_cpu | ||
842 | host | ||
843 | build_os | ||
844 | build_vendor | ||
845 | build_cpu | ||
846 | build | ||
847 | AM_BACKSLASH | ||
848 | AM_DEFAULT_VERBOSITY | ||
849 | am__untar | ||
850 | am__tar | ||
851 | AMTAR | ||
852 | am__leading_dot | ||
853 | SET_MAKE | ||
854 | AWK | ||
855 | mkdir_p | ||
856 | MKDIR_P | ||
857 | INSTALL_STRIP_PROGRAM | ||
858 | STRIP | ||
859 | install_sh | ||
860 | MAKEINFO | ||
861 | AUTOHEADER | ||
862 | AUTOMAKE | ||
863 | AUTOCONF | ||
864 | ACLOCAL | ||
865 | VERSION | ||
866 | PACKAGE | ||
867 | CYGPATH_W | ||
868 | am__isrc | ||
869 | INSTALL_DATA | ||
870 | INSTALL_SCRIPT | ||
871 | INSTALL_PROGRAM | ||
872 | target_alias | ||
873 | host_alias | ||
874 | build_alias | ||
875 | LIBS | ||
876 | ECHO_T | ||
877 | ECHO_N | ||
878 | ECHO_C | ||
879 | DEFS | ||
880 | mandir | ||
881 | localedir | ||
882 | libdir | ||
883 | psdir | ||
884 | pdfdir | ||
885 | dvidir | ||
886 | htmldir | ||
887 | infodir | ||
888 | docdir | ||
889 | oldincludedir | ||
890 | includedir | ||
891 | localstatedir | ||
892 | sharedstatedir | ||
893 | sysconfdir | ||
894 | datadir | ||
895 | datarootdir | ||
896 | libexecdir | ||
897 | sbindir | ||
898 | bindir | ||
899 | program_transform_name | ||
900 | prefix | ||
901 | exec_prefix | ||
902 | PACKAGE_URL | ||
903 | PACKAGE_BUGREPORT | ||
904 | PACKAGE_STRING | ||
905 | PACKAGE_VERSION | ||
906 | PACKAGE_TARNAME | ||
907 | PACKAGE_NAME | ||
908 | PATH_SEPARATOR | ||
909 | SHELL' | ||
910 | ac_subst_files='' | ||
911 | ac_user_opts=' | ||
912 | enable_option_checking | ||
913 | enable_silent_rules | ||
914 | enable_shared | ||
915 | enable_static | ||
916 | with_pic | ||
917 | enable_fast_install | ||
918 | enable_dependency_tracking | ||
919 | with_gnu_ld | ||
920 | enable_libtool_lock | ||
921 | enable_amalgamation | ||
922 | enable_eet | ||
923 | enable_old_eet_file_format | ||
924 | enable_openssl | ||
925 | enable_cipher | ||
926 | enable_signature | ||
927 | enable_assert | ||
928 | enable_install_examples | ||
929 | enable_build_examples | ||
930 | enable_tests | ||
931 | enable_coverage | ||
932 | enable_doc | ||
933 | with_doxygen | ||
934 | enable_gnutls | ||
935 | with_libgcrypt_prefix | ||
936 | with_libgcrypt_exec_prefix | ||
937 | enable_new_gnutls_api | ||
938 | ' | ||
939 | ac_precious_vars='build_alias | ||
940 | host_alias | ||
941 | target_alias | ||
942 | CC | ||
943 | CFLAGS | ||
944 | LDFLAGS | ||
945 | LIBS | ||
946 | CPPFLAGS | ||
947 | CPP | ||
948 | PKG_CONFIG | ||
949 | PKG_CONFIG_PATH | ||
950 | PKG_CONFIG_LIBDIR | ||
951 | CHECK_CFLAGS | ||
952 | CHECK_LIBS | ||
953 | EVIL_CFLAGS | ||
954 | EVIL_LIBS | ||
955 | EINA_CFLAGS | ||
956 | EINA_LIBS | ||
957 | EXOTIC_CFLAGS | ||
958 | EXOTIC_LIBS | ||
959 | GNUTLS_CFLAGS | ||
960 | GNUTLS_LIBS | ||
961 | OPENSSL_CFLAGS | ||
962 | OPENSSL_LIBS' | ||
963 | |||
964 | |||
965 | # Initialize some variables set by options. | ||
966 | ac_init_help= | ||
967 | ac_init_version=false | ||
968 | ac_unrecognized_opts= | ||
969 | ac_unrecognized_sep= | ||
970 | # The variables have the same names as the options, with | ||
971 | # dashes changed to underlines. | ||
972 | cache_file=/dev/null | ||
973 | exec_prefix=NONE | ||
974 | no_create= | ||
975 | no_recursion= | ||
976 | prefix=NONE | ||
977 | program_prefix=NONE | ||
978 | program_suffix=NONE | ||
979 | program_transform_name=s,x,x, | ||
980 | silent= | ||
981 | site= | ||
982 | srcdir= | ||
983 | verbose= | ||
984 | x_includes=NONE | ||
985 | x_libraries=NONE | ||
986 | |||
987 | # Installation directory options. | ||
988 | # These are left unexpanded so users can "make install exec_prefix=/foo" | ||
989 | # and all the variables that are supposed to be based on exec_prefix | ||
990 | # by default will actually change. | ||
991 | # Use braces instead of parens because sh, perl, etc. also accept them. | ||
992 | # (The list follows the same order as the GNU Coding Standards.) | ||
993 | bindir='${exec_prefix}/bin' | ||
994 | sbindir='${exec_prefix}/sbin' | ||
995 | libexecdir='${exec_prefix}/libexec' | ||
996 | datarootdir='${prefix}/share' | ||
997 | datadir='${datarootdir}' | ||
998 | sysconfdir='${prefix}/etc' | ||
999 | sharedstatedir='${prefix}/com' | ||
1000 | localstatedir='${prefix}/var' | ||
1001 | includedir='${prefix}/include' | ||
1002 | oldincludedir='/usr/include' | ||
1003 | docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' | ||
1004 | infodir='${datarootdir}/info' | ||
1005 | htmldir='${docdir}' | ||
1006 | dvidir='${docdir}' | ||
1007 | pdfdir='${docdir}' | ||
1008 | psdir='${docdir}' | ||
1009 | libdir='${exec_prefix}/lib' | ||
1010 | localedir='${datarootdir}/locale' | ||
1011 | mandir='${datarootdir}/man' | ||
1012 | |||
1013 | ac_prev= | ||
1014 | ac_dashdash= | ||
1015 | for ac_option | ||
1016 | do | ||
1017 | # If the previous option needs an argument, assign it. | ||
1018 | if test -n "$ac_prev"; then | ||
1019 | eval $ac_prev=\$ac_option | ||
1020 | ac_prev= | ||
1021 | continue | ||
1022 | fi | ||
1023 | |||
1024 | case $ac_option in | ||
1025 | *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; | ||
1026 | *=) ac_optarg= ;; | ||
1027 | *) ac_optarg=yes ;; | ||
1028 | esac | ||
1029 | |||
1030 | # Accept the important Cygnus configure options, so we can diagnose typos. | ||
1031 | |||
1032 | case $ac_dashdash$ac_option in | ||
1033 | --) | ||
1034 | ac_dashdash=yes ;; | ||
1035 | |||
1036 | -bindir | --bindir | --bindi | --bind | --bin | --bi) | ||
1037 | ac_prev=bindir ;; | ||
1038 | -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) | ||
1039 | bindir=$ac_optarg ;; | ||
1040 | |||
1041 | -build | --build | --buil | --bui | --bu) | ||
1042 | ac_prev=build_alias ;; | ||
1043 | -build=* | --build=* | --buil=* | --bui=* | --bu=*) | ||
1044 | build_alias=$ac_optarg ;; | ||
1045 | |||
1046 | -cache-file | --cache-file | --cache-fil | --cache-fi \ | ||
1047 | | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) | ||
1048 | ac_prev=cache_file ;; | ||
1049 | -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | ||
1050 | | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) | ||
1051 | cache_file=$ac_optarg ;; | ||
1052 | |||
1053 | --config-cache | -C) | ||
1054 | cache_file=config.cache ;; | ||
1055 | |||
1056 | -datadir | --datadir | --datadi | --datad) | ||
1057 | ac_prev=datadir ;; | ||
1058 | -datadir=* | --datadir=* | --datadi=* | --datad=*) | ||
1059 | datadir=$ac_optarg ;; | ||
1060 | |||
1061 | -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | ||
1062 | | --dataroo | --dataro | --datar) | ||
1063 | ac_prev=datarootdir ;; | ||
1064 | -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | ||
1065 | | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) | ||
1066 | datarootdir=$ac_optarg ;; | ||
1067 | |||
1068 | -disable-* | --disable-*) | ||
1069 | ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` | ||
1070 | # Reject names that are not valid shell variable names. | ||
1071 | expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && | ||
1072 | as_fn_error $? "invalid feature name: $ac_useropt" | ||
1073 | ac_useropt_orig=$ac_useropt | ||
1074 | ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` | ||
1075 | case $ac_user_opts in | ||
1076 | *" | ||
1077 | "enable_$ac_useropt" | ||
1078 | "*) ;; | ||
1079 | *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" | ||
1080 | ac_unrecognized_sep=', ';; | ||
1081 | esac | ||
1082 | eval enable_$ac_useropt=no ;; | ||
1083 | |||
1084 | -docdir | --docdir | --docdi | --doc | --do) | ||
1085 | ac_prev=docdir ;; | ||
1086 | -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) | ||
1087 | docdir=$ac_optarg ;; | ||
1088 | |||
1089 | -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) | ||
1090 | ac_prev=dvidir ;; | ||
1091 | -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) | ||
1092 | dvidir=$ac_optarg ;; | ||
1093 | |||
1094 | -enable-* | --enable-*) | ||
1095 | ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` | ||
1096 | # Reject names that are not valid shell variable names. | ||
1097 | expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && | ||
1098 | as_fn_error $? "invalid feature name: $ac_useropt" | ||
1099 | ac_useropt_orig=$ac_useropt | ||
1100 | ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` | ||
1101 | case $ac_user_opts in | ||
1102 | *" | ||
1103 | "enable_$ac_useropt" | ||
1104 | "*) ;; | ||
1105 | *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" | ||
1106 | ac_unrecognized_sep=', ';; | ||
1107 | esac | ||
1108 | eval enable_$ac_useropt=\$ac_optarg ;; | ||
1109 | |||
1110 | -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | ||
1111 | | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | ||
1112 | | --exec | --exe | --ex) | ||
1113 | ac_prev=exec_prefix ;; | ||
1114 | -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | ||
1115 | | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | ||
1116 | | --exec=* | --exe=* | --ex=*) | ||
1117 | exec_prefix=$ac_optarg ;; | ||
1118 | |||
1119 | -gas | --gas | --ga | --g) | ||
1120 | # Obsolete; use --with-gas. | ||
1121 | with_gas=yes ;; | ||
1122 | |||
1123 | -help | --help | --hel | --he | -h) | ||
1124 | ac_init_help=long ;; | ||
1125 | -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) | ||
1126 | ac_init_help=recursive ;; | ||
1127 | -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) | ||
1128 | ac_init_help=short ;; | ||
1129 | |||
1130 | -host | --host | --hos | --ho) | ||
1131 | ac_prev=host_alias ;; | ||
1132 | -host=* | --host=* | --hos=* | --ho=*) | ||
1133 | host_alias=$ac_optarg ;; | ||
1134 | |||
1135 | -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) | ||
1136 | ac_prev=htmldir ;; | ||
1137 | -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | ||
1138 | | --ht=*) | ||
1139 | htmldir=$ac_optarg ;; | ||
1140 | |||
1141 | -includedir | --includedir | --includedi | --included | --include \ | ||
1142 | | --includ | --inclu | --incl | --inc) | ||
1143 | ac_prev=includedir ;; | ||
1144 | -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | ||
1145 | | --includ=* | --inclu=* | --incl=* | --inc=*) | ||
1146 | includedir=$ac_optarg ;; | ||
1147 | |||
1148 | -infodir | --infodir | --infodi | --infod | --info | --inf) | ||
1149 | ac_prev=infodir ;; | ||
1150 | -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) | ||
1151 | infodir=$ac_optarg ;; | ||
1152 | |||
1153 | -libdir | --libdir | --libdi | --libd) | ||
1154 | ac_prev=libdir ;; | ||
1155 | -libdir=* | --libdir=* | --libdi=* | --libd=*) | ||
1156 | libdir=$ac_optarg ;; | ||
1157 | |||
1158 | -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | ||
1159 | | --libexe | --libex | --libe) | ||
1160 | ac_prev=libexecdir ;; | ||
1161 | -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | ||
1162 | | --libexe=* | --libex=* | --libe=*) | ||
1163 | libexecdir=$ac_optarg ;; | ||
1164 | |||
1165 | -localedir | --localedir | --localedi | --localed | --locale) | ||
1166 | ac_prev=localedir ;; | ||
1167 | -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) | ||
1168 | localedir=$ac_optarg ;; | ||
1169 | |||
1170 | -localstatedir | --localstatedir | --localstatedi | --localstated \ | ||
1171 | | --localstate | --localstat | --localsta | --localst | --locals) | ||
1172 | ac_prev=localstatedir ;; | ||
1173 | -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | ||
1174 | | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) | ||
1175 | localstatedir=$ac_optarg ;; | ||
1176 | |||
1177 | -mandir | --mandir | --mandi | --mand | --man | --ma | --m) | ||
1178 | ac_prev=mandir ;; | ||
1179 | -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) | ||
1180 | mandir=$ac_optarg ;; | ||
1181 | |||
1182 | -nfp | --nfp | --nf) | ||
1183 | # Obsolete; use --without-fp. | ||
1184 | with_fp=no ;; | ||
1185 | |||
1186 | -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | ||
1187 | | --no-cr | --no-c | -n) | ||
1188 | no_create=yes ;; | ||
1189 | |||
1190 | -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | ||
1191 | | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) | ||
1192 | no_recursion=yes ;; | ||
1193 | |||
1194 | -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | ||
1195 | | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | ||
1196 | | --oldin | --oldi | --old | --ol | --o) | ||
1197 | ac_prev=oldincludedir ;; | ||
1198 | -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | ||
1199 | | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | ||
1200 | | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) | ||
1201 | oldincludedir=$ac_optarg ;; | ||
1202 | |||
1203 | -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) | ||
1204 | ac_prev=prefix ;; | ||
1205 | -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) | ||
1206 | prefix=$ac_optarg ;; | ||
1207 | |||
1208 | -program-prefix | --program-prefix | --program-prefi | --program-pref \ | ||
1209 | | --program-pre | --program-pr | --program-p) | ||
1210 | ac_prev=program_prefix ;; | ||
1211 | -program-prefix=* | --program-prefix=* | --program-prefi=* \ | ||
1212 | | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) | ||
1213 | program_prefix=$ac_optarg ;; | ||
1214 | |||
1215 | -program-suffix | --program-suffix | --program-suffi | --program-suff \ | ||
1216 | | --program-suf | --program-su | --program-s) | ||
1217 | ac_prev=program_suffix ;; | ||
1218 | -program-suffix=* | --program-suffix=* | --program-suffi=* \ | ||
1219 | | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) | ||
1220 | program_suffix=$ac_optarg ;; | ||
1221 | |||
1222 | -program-transform-name | --program-transform-name \ | ||
1223 | | --program-transform-nam | --program-transform-na \ | ||
1224 | | --program-transform-n | --program-transform- \ | ||
1225 | | --program-transform | --program-transfor \ | ||
1226 | | --program-transfo | --program-transf \ | ||
1227 | | --program-trans | --program-tran \ | ||
1228 | | --progr-tra | --program-tr | --program-t) | ||
1229 | ac_prev=program_transform_name ;; | ||
1230 | -program-transform-name=* | --program-transform-name=* \ | ||
1231 | | --program-transform-nam=* | --program-transform-na=* \ | ||
1232 | | --program-transform-n=* | --program-transform-=* \ | ||
1233 | | --program-transform=* | --program-transfor=* \ | ||
1234 | | --program-transfo=* | --program-transf=* \ | ||
1235 | | --program-trans=* | --program-tran=* \ | ||
1236 | | --progr-tra=* | --program-tr=* | --program-t=*) | ||
1237 | program_transform_name=$ac_optarg ;; | ||
1238 | |||
1239 | -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) | ||
1240 | ac_prev=pdfdir ;; | ||
1241 | -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) | ||
1242 | pdfdir=$ac_optarg ;; | ||
1243 | |||
1244 | -psdir | --psdir | --psdi | --psd | --ps) | ||
1245 | ac_prev=psdir ;; | ||
1246 | -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) | ||
1247 | psdir=$ac_optarg ;; | ||
1248 | |||
1249 | -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | ||
1250 | | -silent | --silent | --silen | --sile | --sil) | ||
1251 | silent=yes ;; | ||
1252 | |||
1253 | -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) | ||
1254 | ac_prev=sbindir ;; | ||
1255 | -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | ||
1256 | | --sbi=* | --sb=*) | ||
1257 | sbindir=$ac_optarg ;; | ||
1258 | |||
1259 | -sharedstatedir | --sharedstatedir | --sharedstatedi \ | ||
1260 | | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | ||
1261 | | --sharedst | --shareds | --shared | --share | --shar \ | ||
1262 | | --sha | --sh) | ||
1263 | ac_prev=sharedstatedir ;; | ||
1264 | -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | ||
1265 | | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | ||
1266 | | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | ||
1267 | | --sha=* | --sh=*) | ||
1268 | sharedstatedir=$ac_optarg ;; | ||
1269 | |||
1270 | -site | --site | --sit) | ||
1271 | ac_prev=site ;; | ||
1272 | -site=* | --site=* | --sit=*) | ||
1273 | site=$ac_optarg ;; | ||
1274 | |||
1275 | -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) | ||
1276 | ac_prev=srcdir ;; | ||
1277 | -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) | ||
1278 | srcdir=$ac_optarg ;; | ||
1279 | |||
1280 | -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | ||
1281 | | --syscon | --sysco | --sysc | --sys | --sy) | ||
1282 | ac_prev=sysconfdir ;; | ||
1283 | -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | ||
1284 | | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) | ||
1285 | sysconfdir=$ac_optarg ;; | ||
1286 | |||
1287 | -target | --target | --targe | --targ | --tar | --ta | --t) | ||
1288 | ac_prev=target_alias ;; | ||
1289 | -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) | ||
1290 | target_alias=$ac_optarg ;; | ||
1291 | |||
1292 | -v | -verbose | --verbose | --verbos | --verbo | --verb) | ||
1293 | verbose=yes ;; | ||
1294 | |||
1295 | -version | --version | --versio | --versi | --vers | -V) | ||
1296 | ac_init_version=: ;; | ||
1297 | |||
1298 | -with-* | --with-*) | ||
1299 | ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` | ||
1300 | # Reject names that are not valid shell variable names. | ||
1301 | expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && | ||
1302 | as_fn_error $? "invalid package name: $ac_useropt" | ||
1303 | ac_useropt_orig=$ac_useropt | ||
1304 | ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` | ||
1305 | case $ac_user_opts in | ||
1306 | *" | ||
1307 | "with_$ac_useropt" | ||
1308 | "*) ;; | ||
1309 | *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" | ||
1310 | ac_unrecognized_sep=', ';; | ||
1311 | esac | ||
1312 | eval with_$ac_useropt=\$ac_optarg ;; | ||
1313 | |||
1314 | -without-* | --without-*) | ||
1315 | ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` | ||
1316 | # Reject names that are not valid shell variable names. | ||
1317 | expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && | ||
1318 | as_fn_error $? "invalid package name: $ac_useropt" | ||
1319 | ac_useropt_orig=$ac_useropt | ||
1320 | ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` | ||
1321 | case $ac_user_opts in | ||
1322 | *" | ||
1323 | "with_$ac_useropt" | ||
1324 | "*) ;; | ||
1325 | *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" | ||
1326 | ac_unrecognized_sep=', ';; | ||
1327 | esac | ||
1328 | eval with_$ac_useropt=no ;; | ||
1329 | |||
1330 | --x) | ||
1331 | # Obsolete; use --with-x. | ||
1332 | with_x=yes ;; | ||
1333 | |||
1334 | -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | ||
1335 | | --x-incl | --x-inc | --x-in | --x-i) | ||
1336 | ac_prev=x_includes ;; | ||
1337 | -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | ||
1338 | | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) | ||
1339 | x_includes=$ac_optarg ;; | ||
1340 | |||
1341 | -x-libraries | --x-libraries | --x-librarie | --x-librari \ | ||
1342 | | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) | ||
1343 | ac_prev=x_libraries ;; | ||
1344 | -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | ||
1345 | | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) | ||
1346 | x_libraries=$ac_optarg ;; | ||
1347 | |||
1348 | -*) as_fn_error $? "unrecognized option: \`$ac_option' | ||
1349 | Try \`$0 --help' for more information" | ||
1350 | ;; | ||
1351 | |||
1352 | *=*) | ||
1353 | ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` | ||
1354 | # Reject names that are not valid shell variable names. | ||
1355 | case $ac_envvar in #( | ||
1356 | '' | [0-9]* | *[!_$as_cr_alnum]* ) | ||
1357 | as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; | ||
1358 | esac | ||
1359 | eval $ac_envvar=\$ac_optarg | ||
1360 | export $ac_envvar ;; | ||
1361 | |||
1362 | *) | ||
1363 | # FIXME: should be removed in autoconf 3.0. | ||
1364 | $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 | ||
1365 | expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && | ||
1366 | $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 | ||
1367 | : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} | ||
1368 | ;; | ||
1369 | |||
1370 | esac | ||
1371 | done | ||
1372 | |||
1373 | if test -n "$ac_prev"; then | ||
1374 | ac_option=--`echo $ac_prev | sed 's/_/-/g'` | ||
1375 | as_fn_error $? "missing argument to $ac_option" | ||
1376 | fi | ||
1377 | |||
1378 | if test -n "$ac_unrecognized_opts"; then | ||
1379 | case $enable_option_checking in | ||
1380 | no) ;; | ||
1381 | fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; | ||
1382 | *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; | ||
1383 | esac | ||
1384 | fi | ||
1385 | |||
1386 | # Check all directory arguments for consistency. | ||
1387 | for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ | ||
1388 | datadir sysconfdir sharedstatedir localstatedir includedir \ | ||
1389 | oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ | ||
1390 | libdir localedir mandir | ||
1391 | do | ||
1392 | eval ac_val=\$$ac_var | ||
1393 | # Remove trailing slashes. | ||
1394 | case $ac_val in | ||
1395 | */ ) | ||
1396 | ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` | ||
1397 | eval $ac_var=\$ac_val;; | ||
1398 | esac | ||
1399 | # Be sure to have absolute directory names. | ||
1400 | case $ac_val in | ||
1401 | [\\/$]* | ?:[\\/]* ) continue;; | ||
1402 | NONE | '' ) case $ac_var in *prefix ) continue;; esac;; | ||
1403 | esac | ||
1404 | as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" | ||
1405 | done | ||
1406 | |||
1407 | # There might be people who depend on the old broken behavior: `$host' | ||
1408 | # used to hold the argument of --host etc. | ||
1409 | # FIXME: To remove some day. | ||
1410 | build=$build_alias | ||
1411 | host=$host_alias | ||
1412 | target=$target_alias | ||
1413 | |||
1414 | # FIXME: To remove some day. | ||
1415 | if test "x$host_alias" != x; then | ||
1416 | if test "x$build_alias" = x; then | ||
1417 | cross_compiling=maybe | ||
1418 | $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. | ||
1419 | If a cross compiler is detected then cross compile mode will be used" >&2 | ||
1420 | elif test "x$build_alias" != "x$host_alias"; then | ||
1421 | cross_compiling=yes | ||
1422 | fi | ||
1423 | fi | ||
1424 | |||
1425 | ac_tool_prefix= | ||
1426 | test -n "$host_alias" && ac_tool_prefix=$host_alias- | ||
1427 | |||
1428 | test "$silent" = yes && exec 6>/dev/null | ||
1429 | |||
1430 | |||
1431 | ac_pwd=`pwd` && test -n "$ac_pwd" && | ||
1432 | ac_ls_di=`ls -di .` && | ||
1433 | ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || | ||
1434 | as_fn_error $? "working directory cannot be determined" | ||
1435 | test "X$ac_ls_di" = "X$ac_pwd_ls_di" || | ||
1436 | as_fn_error $? "pwd does not report name of working directory" | ||
1437 | |||
1438 | |||
1439 | # Find the source files, if location was not specified. | ||
1440 | if test -z "$srcdir"; then | ||
1441 | ac_srcdir_defaulted=yes | ||
1442 | # Try the directory containing this script, then the parent directory. | ||
1443 | ac_confdir=`$as_dirname -- "$as_myself" || | ||
1444 | $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ | ||
1445 | X"$as_myself" : 'X\(//\)[^/]' \| \ | ||
1446 | X"$as_myself" : 'X\(//\)$' \| \ | ||
1447 | X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || | ||
1448 | $as_echo X"$as_myself" | | ||
1449 | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ | ||
1450 | s//\1/ | ||
1451 | q | ||
1452 | } | ||
1453 | /^X\(\/\/\)[^/].*/{ | ||
1454 | s//\1/ | ||
1455 | q | ||
1456 | } | ||
1457 | /^X\(\/\/\)$/{ | ||
1458 | s//\1/ | ||
1459 | q | ||
1460 | } | ||
1461 | /^X\(\/\).*/{ | ||
1462 | s//\1/ | ||
1463 | q | ||
1464 | } | ||
1465 | s/.*/./; q'` | ||
1466 | srcdir=$ac_confdir | ||
1467 | if test ! -r "$srcdir/$ac_unique_file"; then | ||
1468 | srcdir=.. | ||
1469 | fi | ||
1470 | else | ||
1471 | ac_srcdir_defaulted=no | ||
1472 | fi | ||
1473 | if test ! -r "$srcdir/$ac_unique_file"; then | ||
1474 | test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." | ||
1475 | as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" | ||
1476 | fi | ||
1477 | ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" | ||
1478 | ac_abs_confdir=`( | ||
1479 | cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" | ||
1480 | pwd)` | ||
1481 | # When building in place, set srcdir=. | ||
1482 | if test "$ac_abs_confdir" = "$ac_pwd"; then | ||
1483 | srcdir=. | ||
1484 | fi | ||
1485 | # Remove unnecessary trailing slashes from srcdir. | ||
1486 | # Double slashes in file names in object file debugging info | ||
1487 | # mess up M-x gdb in Emacs. | ||
1488 | case $srcdir in | ||
1489 | */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; | ||
1490 | esac | ||
1491 | for ac_var in $ac_precious_vars; do | ||
1492 | eval ac_env_${ac_var}_set=\${${ac_var}+set} | ||
1493 | eval ac_env_${ac_var}_value=\$${ac_var} | ||
1494 | eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} | ||
1495 | eval ac_cv_env_${ac_var}_value=\$${ac_var} | ||
1496 | done | ||
1497 | |||
1498 | # | ||
1499 | # Report the --help message. | ||
1500 | # | ||
1501 | if test "$ac_init_help" = "long"; then | ||
1502 | # Omit some internal or obsolete options to make the list less imposing. | ||
1503 | # This message is too long to be a string in the A/UX 3.1 sh. | ||
1504 | cat <<_ACEOF | ||
1505 | \`configure' configures eet 1.6.0-alpha to adapt to many kinds of systems. | ||
1506 | |||
1507 | Usage: $0 [OPTION]... [VAR=VALUE]... | ||
1508 | |||
1509 | To assign environment variables (e.g., CC, CFLAGS...), specify them as | ||
1510 | VAR=VALUE. See below for descriptions of some of the useful variables. | ||
1511 | |||
1512 | Defaults for the options are specified in brackets. | ||
1513 | |||
1514 | Configuration: | ||
1515 | -h, --help display this help and exit | ||
1516 | --help=short display options specific to this package | ||
1517 | --help=recursive display the short help of all the included packages | ||
1518 | -V, --version display version information and exit | ||
1519 | -q, --quiet, --silent do not print \`checking ...' messages | ||
1520 | --cache-file=FILE cache test results in FILE [disabled] | ||
1521 | -C, --config-cache alias for \`--cache-file=config.cache' | ||
1522 | -n, --no-create do not create output files | ||
1523 | --srcdir=DIR find the sources in DIR [configure dir or \`..'] | ||
1524 | |||
1525 | Installation directories: | ||
1526 | --prefix=PREFIX install architecture-independent files in PREFIX | ||
1527 | [$ac_default_prefix] | ||
1528 | --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX | ||
1529 | [PREFIX] | ||
1530 | |||
1531 | By default, \`make install' will install all the files in | ||
1532 | \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify | ||
1533 | an installation prefix other than \`$ac_default_prefix' using \`--prefix', | ||
1534 | for instance \`--prefix=\$HOME'. | ||
1535 | |||
1536 | For better control, use the options below. | ||
1537 | |||
1538 | Fine tuning of the installation directories: | ||
1539 | --bindir=DIR user executables [EPREFIX/bin] | ||
1540 | --sbindir=DIR system admin executables [EPREFIX/sbin] | ||
1541 | --libexecdir=DIR program executables [EPREFIX/libexec] | ||
1542 | --sysconfdir=DIR read-only single-machine data [PREFIX/etc] | ||
1543 | --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] | ||
1544 | --localstatedir=DIR modifiable single-machine data [PREFIX/var] | ||
1545 | --libdir=DIR object code libraries [EPREFIX/lib] | ||
1546 | --includedir=DIR C header files [PREFIX/include] | ||
1547 | --oldincludedir=DIR C header files for non-gcc [/usr/include] | ||
1548 | --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] | ||
1549 | --datadir=DIR read-only architecture-independent data [DATAROOTDIR] | ||
1550 | --infodir=DIR info documentation [DATAROOTDIR/info] | ||
1551 | --localedir=DIR locale-dependent data [DATAROOTDIR/locale] | ||
1552 | --mandir=DIR man documentation [DATAROOTDIR/man] | ||
1553 | --docdir=DIR documentation root [DATAROOTDIR/doc/eet] | ||
1554 | --htmldir=DIR html documentation [DOCDIR] | ||
1555 | --dvidir=DIR dvi documentation [DOCDIR] | ||
1556 | --pdfdir=DIR pdf documentation [DOCDIR] | ||
1557 | --psdir=DIR ps documentation [DOCDIR] | ||
1558 | _ACEOF | ||
1559 | |||
1560 | cat <<\_ACEOF | ||
1561 | |||
1562 | Program names: | ||
1563 | --program-prefix=PREFIX prepend PREFIX to installed program names | ||
1564 | --program-suffix=SUFFIX append SUFFIX to installed program names | ||
1565 | --program-transform-name=PROGRAM run sed PROGRAM on installed program names | ||
1566 | |||
1567 | System types: | ||
1568 | --build=BUILD configure for building on BUILD [guessed] | ||
1569 | --host=HOST cross-compile to build programs to run on HOST [BUILD] | ||
1570 | _ACEOF | ||
1571 | fi | ||
1572 | |||
1573 | if test -n "$ac_init_help"; then | ||
1574 | case $ac_init_help in | ||
1575 | short | recursive ) echo "Configuration of eet 1.6.0-alpha:";; | ||
1576 | esac | ||
1577 | cat <<\_ACEOF | ||
1578 | |||
1579 | Optional Features: | ||
1580 | --disable-option-checking ignore unrecognized --enable/--with options | ||
1581 | --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) | ||
1582 | --enable-FEATURE[=ARG] include FEATURE [ARG=yes] | ||
1583 | --enable-silent-rules less verbose build output (undo: `make V=1') | ||
1584 | --disable-silent-rules verbose build output (undo: `make V=0') | ||
1585 | --enable-shared[=PKGS] build shared libraries [default=yes] | ||
1586 | --enable-static[=PKGS] build static libraries [default=yes] | ||
1587 | --enable-fast-install[=PKGS] | ||
1588 | optimize for fast installation [default=yes] | ||
1589 | --disable-dependency-tracking speeds up one-time build | ||
1590 | --enable-dependency-tracking do not reject slow dependency extractors | ||
1591 | --disable-libtool-lock avoid locking (might break parallel builds) | ||
1592 | --enable-amalgamation enable generation of one single file with all source | ||
1593 | code in it, helps compiler optimizations. | ||
1594 | --disable-eet disable building of eet | ||
1595 | --disable-old-eet-file-format | ||
1596 | disable old eet file format support. | ||
1597 | [[default=enabled]] | ||
1598 | --disable-openssl disable openssl eet support | ||
1599 | --disable-cipher disable cipher support for eet API | ||
1600 | --disable-signature disable signature file support for eet | ||
1601 | --enable-assert enable assert, [[default=disabled]] | ||
1602 | --disable-install-examples | ||
1603 | disable installing examples (compiled or just | ||
1604 | source). [default==enabled] | ||
1605 | --enable-build-examples enable building examples. [default==disabled] | ||
1606 | --enable-tests enable tests [default=disabled] | ||
1607 | --enable-coverage enable coverage profiling instrumentation | ||
1608 | [default=disabled] | ||
1609 | --disable-doc Disable documentation build [default=enabled] | ||
1610 | --disable-gnutls disable gnutls eet support | ||
1611 | --disable-new-gnutls-api | ||
1612 | enable use of gnutls_x509_crt_verify_hash. | ||
1613 | [[default=enable]] | ||
1614 | |||
1615 | Optional Packages: | ||
1616 | --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] | ||
1617 | --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) | ||
1618 | --with-pic try to use only PIC/non-PIC objects [default=use | ||
1619 | both] | ||
1620 | --with-gnu-ld assume the C compiler uses GNU ld [default=no] | ||
1621 | --with-doxygen=FILE doxygen program to use [default=doxygen] | ||
1622 | --with-libgcrypt-prefix=PFX Prefix where libgcrypt is installed (optional) | ||
1623 | --with-libgcrypt-exec-prefix=PFX Exec prefix where libgcrypt is installed (optional) | ||
1624 | |||
1625 | Some influential environment variables: | ||
1626 | CC C compiler command | ||
1627 | CFLAGS C compiler flags | ||
1628 | LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a | ||
1629 | nonstandard directory <lib dir> | ||
1630 | LIBS libraries to pass to the linker, e.g. -l<library> | ||
1631 | CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if | ||
1632 | you have headers in a nonstandard directory <include dir> | ||
1633 | CPP C preprocessor | ||
1634 | PKG_CONFIG path to pkg-config utility | ||
1635 | PKG_CONFIG_PATH | ||
1636 | directories to add to pkg-config's search path | ||
1637 | PKG_CONFIG_LIBDIR | ||
1638 | path overriding pkg-config's built-in search path | ||
1639 | CHECK_CFLAGS | ||
1640 | C compiler flags for CHECK, overriding pkg-config | ||
1641 | CHECK_LIBS linker flags for CHECK, overriding pkg-config | ||
1642 | EVIL_CFLAGS C compiler flags for EVIL, overriding pkg-config | ||
1643 | EVIL_LIBS linker flags for EVIL, overriding pkg-config | ||
1644 | EINA_CFLAGS C compiler flags for EINA, overriding pkg-config | ||
1645 | EINA_LIBS linker flags for EINA, overriding pkg-config | ||
1646 | EXOTIC_CFLAGS | ||
1647 | C compiler flags for EXOTIC, overriding pkg-config | ||
1648 | EXOTIC_LIBS linker flags for EXOTIC, overriding pkg-config | ||
1649 | GNUTLS_CFLAGS | ||
1650 | C compiler flags for GNUTLS, overriding pkg-config | ||
1651 | GNUTLS_LIBS linker flags for GNUTLS, overriding pkg-config | ||
1652 | OPENSSL_CFLAGS | ||
1653 | C compiler flags for OPENSSL, overriding pkg-config | ||
1654 | OPENSSL_LIBS | ||
1655 | linker flags for OPENSSL, overriding pkg-config | ||
1656 | |||
1657 | Use these variables to override the choices made by `configure' or to help | ||
1658 | it to find libraries and programs with nonstandard names/locations. | ||
1659 | |||
1660 | Report bugs to <enlightenment-devel@lists.sourceforge.net>. | ||
1661 | _ACEOF | ||
1662 | ac_status=$? | ||
1663 | fi | ||
1664 | |||
1665 | if test "$ac_init_help" = "recursive"; then | ||
1666 | # If there are subdirs, report their specific --help. | ||
1667 | for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue | ||
1668 | test -d "$ac_dir" || | ||
1669 | { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || | ||
1670 | continue | ||
1671 | ac_builddir=. | ||
1672 | |||
1673 | case "$ac_dir" in | ||
1674 | .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; | ||
1675 | *) | ||
1676 | ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` | ||
1677 | # A ".." for each directory in $ac_dir_suffix. | ||
1678 | ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` | ||
1679 | case $ac_top_builddir_sub in | ||
1680 | "") ac_top_builddir_sub=. ac_top_build_prefix= ;; | ||
1681 | *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; | ||
1682 | esac ;; | ||
1683 | esac | ||
1684 | ac_abs_top_builddir=$ac_pwd | ||
1685 | ac_abs_builddir=$ac_pwd$ac_dir_suffix | ||
1686 | # for backward compatibility: | ||
1687 | ac_top_builddir=$ac_top_build_prefix | ||
1688 | |||
1689 | case $srcdir in | ||
1690 | .) # We are building in place. | ||
1691 | ac_srcdir=. | ||
1692 | ac_top_srcdir=$ac_top_builddir_sub | ||
1693 | ac_abs_top_srcdir=$ac_pwd ;; | ||
1694 | [\\/]* | ?:[\\/]* ) # Absolute name. | ||
1695 | ac_srcdir=$srcdir$ac_dir_suffix; | ||
1696 | ac_top_srcdir=$srcdir | ||
1697 | ac_abs_top_srcdir=$srcdir ;; | ||
1698 | *) # Relative name. | ||
1699 | ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix | ||
1700 | ac_top_srcdir=$ac_top_build_prefix$srcdir | ||
1701 | ac_abs_top_srcdir=$ac_pwd/$srcdir ;; | ||
1702 | esac | ||
1703 | ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix | ||
1704 | |||
1705 | cd "$ac_dir" || { ac_status=$?; continue; } | ||
1706 | # Check for guested configure. | ||
1707 | if test -f "$ac_srcdir/configure.gnu"; then | ||
1708 | echo && | ||
1709 | $SHELL "$ac_srcdir/configure.gnu" --help=recursive | ||
1710 | elif test -f "$ac_srcdir/configure"; then | ||
1711 | echo && | ||
1712 | $SHELL "$ac_srcdir/configure" --help=recursive | ||
1713 | else | ||
1714 | $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 | ||
1715 | fi || ac_status=$? | ||
1716 | cd "$ac_pwd" || { ac_status=$?; break; } | ||
1717 | done | ||
1718 | fi | ||
1719 | |||
1720 | test -n "$ac_init_help" && exit $ac_status | ||
1721 | if $ac_init_version; then | ||
1722 | cat <<\_ACEOF | ||
1723 | eet configure 1.6.0-alpha | ||
1724 | generated by GNU Autoconf 2.67 | ||
1725 | |||
1726 | Copyright (C) 2010 Free Software Foundation, Inc. | ||
1727 | This configure script is free software; the Free Software Foundation | ||
1728 | gives unlimited permission to copy, distribute and modify it. | ||
1729 | _ACEOF | ||
1730 | exit | ||
1731 | fi | ||
1732 | |||
1733 | ## ------------------------ ## | ||
1734 | ## Autoconf initialization. ## | ||
1735 | ## ------------------------ ## | ||
1736 | |||
1737 | # ac_fn_c_try_compile LINENO | ||
1738 | # -------------------------- | ||
1739 | # Try to compile conftest.$ac_ext, and return whether this succeeded. | ||
1740 | ac_fn_c_try_compile () | ||
1741 | { | ||
1742 | as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack | ||
1743 | rm -f conftest.$ac_objext | ||
1744 | if { { ac_try="$ac_compile" | ||
1745 | case "(($ac_try" in | ||
1746 | *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | ||
1747 | *) ac_try_echo=$ac_try;; | ||
1748 | esac | ||
1749 | eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" | ||
1750 | $as_echo "$ac_try_echo"; } >&5 | ||
1751 | (eval "$ac_compile") 2>conftest.err | ||
1752 | ac_status=$? | ||
1753 | if test -s conftest.err; then | ||
1754 | grep -v '^ *+' conftest.err >conftest.er1 | ||
1755 | cat conftest.er1 >&5 | ||
1756 | mv -f conftest.er1 conftest.err | ||
1757 | fi | ||
1758 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
1759 | test $ac_status = 0; } && { | ||
1760 | test -z "$ac_c_werror_flag" || | ||
1761 | test ! -s conftest.err | ||
1762 | } && test -s conftest.$ac_objext; then : | ||
1763 | ac_retval=0 | ||
1764 | else | ||
1765 | $as_echo "$as_me: failed program was:" >&5 | ||
1766 | sed 's/^/| /' conftest.$ac_ext >&5 | ||
1767 | |||
1768 | ac_retval=1 | ||
1769 | fi | ||
1770 | eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} | ||
1771 | as_fn_set_status $ac_retval | ||
1772 | |||
1773 | } # ac_fn_c_try_compile | ||
1774 | |||
1775 | # ac_fn_c_try_link LINENO | ||
1776 | # ----------------------- | ||
1777 | # Try to link conftest.$ac_ext, and return whether this succeeded. | ||
1778 | ac_fn_c_try_link () | ||
1779 | { | ||
1780 | as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack | ||
1781 | rm -f conftest.$ac_objext conftest$ac_exeext | ||
1782 | if { { ac_try="$ac_link" | ||
1783 | case "(($ac_try" in | ||
1784 | *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | ||
1785 | *) ac_try_echo=$ac_try;; | ||
1786 | esac | ||
1787 | eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" | ||
1788 | $as_echo "$ac_try_echo"; } >&5 | ||
1789 | (eval "$ac_link") 2>conftest.err | ||
1790 | ac_status=$? | ||
1791 | if test -s conftest.err; then | ||
1792 | grep -v '^ *+' conftest.err >conftest.er1 | ||
1793 | cat conftest.er1 >&5 | ||
1794 | mv -f conftest.er1 conftest.err | ||
1795 | fi | ||
1796 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
1797 | test $ac_status = 0; } && { | ||
1798 | test -z "$ac_c_werror_flag" || | ||
1799 | test ! -s conftest.err | ||
1800 | } && test -s conftest$ac_exeext && { | ||
1801 | test "$cross_compiling" = yes || | ||
1802 | $as_test_x conftest$ac_exeext | ||
1803 | }; then : | ||
1804 | ac_retval=0 | ||
1805 | else | ||
1806 | $as_echo "$as_me: failed program was:" >&5 | ||
1807 | sed 's/^/| /' conftest.$ac_ext >&5 | ||
1808 | |||
1809 | ac_retval=1 | ||
1810 | fi | ||
1811 | # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information | ||
1812 | # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would | ||
1813 | # interfere with the next link command; also delete a directory that is | ||
1814 | # left behind by Apple's compiler. We do this before executing the actions. | ||
1815 | rm -rf conftest.dSYM conftest_ipa8_conftest.oo | ||
1816 | eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} | ||
1817 | as_fn_set_status $ac_retval | ||
1818 | |||
1819 | } # ac_fn_c_try_link | ||
1820 | |||
1821 | # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES | ||
1822 | # ------------------------------------------------------- | ||
1823 | # Tests whether HEADER exists and can be compiled using the include files in | ||
1824 | # INCLUDES, setting the cache variable VAR accordingly. | ||
1825 | ac_fn_c_check_header_compile () | ||
1826 | { | ||
1827 | as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack | ||
1828 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 | ||
1829 | $as_echo_n "checking for $2... " >&6; } | ||
1830 | if eval "test \"\${$3+set}\"" = set; then : | ||
1831 | $as_echo_n "(cached) " >&6 | ||
1832 | else | ||
1833 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
1834 | /* end confdefs.h. */ | ||
1835 | $4 | ||
1836 | #include <$2> | ||
1837 | _ACEOF | ||
1838 | if ac_fn_c_try_compile "$LINENO"; then : | ||
1839 | eval "$3=yes" | ||
1840 | else | ||
1841 | eval "$3=no" | ||
1842 | fi | ||
1843 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
1844 | fi | ||
1845 | eval ac_res=\$$3 | ||
1846 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 | ||
1847 | $as_echo "$ac_res" >&6; } | ||
1848 | eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} | ||
1849 | |||
1850 | } # ac_fn_c_check_header_compile | ||
1851 | |||
1852 | # ac_fn_c_try_cpp LINENO | ||
1853 | # ---------------------- | ||
1854 | # Try to preprocess conftest.$ac_ext, and return whether this succeeded. | ||
1855 | ac_fn_c_try_cpp () | ||
1856 | { | ||
1857 | as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack | ||
1858 | if { { ac_try="$ac_cpp conftest.$ac_ext" | ||
1859 | case "(($ac_try" in | ||
1860 | *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | ||
1861 | *) ac_try_echo=$ac_try;; | ||
1862 | esac | ||
1863 | eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" | ||
1864 | $as_echo "$ac_try_echo"; } >&5 | ||
1865 | (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err | ||
1866 | ac_status=$? | ||
1867 | if test -s conftest.err; then | ||
1868 | grep -v '^ *+' conftest.err >conftest.er1 | ||
1869 | cat conftest.er1 >&5 | ||
1870 | mv -f conftest.er1 conftest.err | ||
1871 | fi | ||
1872 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
1873 | test $ac_status = 0; } > conftest.i && { | ||
1874 | test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || | ||
1875 | test ! -s conftest.err | ||
1876 | }; then : | ||
1877 | ac_retval=0 | ||
1878 | else | ||
1879 | $as_echo "$as_me: failed program was:" >&5 | ||
1880 | sed 's/^/| /' conftest.$ac_ext >&5 | ||
1881 | |||
1882 | ac_retval=1 | ||
1883 | fi | ||
1884 | eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} | ||
1885 | as_fn_set_status $ac_retval | ||
1886 | |||
1887 | } # ac_fn_c_try_cpp | ||
1888 | |||
1889 | # ac_fn_c_try_run LINENO | ||
1890 | # ---------------------- | ||
1891 | # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes | ||
1892 | # that executables *can* be run. | ||
1893 | ac_fn_c_try_run () | ||
1894 | { | ||
1895 | as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack | ||
1896 | if { { ac_try="$ac_link" | ||
1897 | case "(($ac_try" in | ||
1898 | *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | ||
1899 | *) ac_try_echo=$ac_try;; | ||
1900 | esac | ||
1901 | eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" | ||
1902 | $as_echo "$ac_try_echo"; } >&5 | ||
1903 | (eval "$ac_link") 2>&5 | ||
1904 | ac_status=$? | ||
1905 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
1906 | test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' | ||
1907 | { { case "(($ac_try" in | ||
1908 | *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | ||
1909 | *) ac_try_echo=$ac_try;; | ||
1910 | esac | ||
1911 | eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" | ||
1912 | $as_echo "$ac_try_echo"; } >&5 | ||
1913 | (eval "$ac_try") 2>&5 | ||
1914 | ac_status=$? | ||
1915 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
1916 | test $ac_status = 0; }; }; then : | ||
1917 | ac_retval=0 | ||
1918 | else | ||
1919 | $as_echo "$as_me: program exited with status $ac_status" >&5 | ||
1920 | $as_echo "$as_me: failed program was:" >&5 | ||
1921 | sed 's/^/| /' conftest.$ac_ext >&5 | ||
1922 | |||
1923 | ac_retval=$ac_status | ||
1924 | fi | ||
1925 | rm -rf conftest.dSYM conftest_ipa8_conftest.oo | ||
1926 | eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} | ||
1927 | as_fn_set_status $ac_retval | ||
1928 | |||
1929 | } # ac_fn_c_try_run | ||
1930 | |||
1931 | # ac_fn_c_check_func LINENO FUNC VAR | ||
1932 | # ---------------------------------- | ||
1933 | # Tests whether FUNC exists, setting the cache variable VAR accordingly | ||
1934 | ac_fn_c_check_func () | ||
1935 | { | ||
1936 | as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack | ||
1937 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 | ||
1938 | $as_echo_n "checking for $2... " >&6; } | ||
1939 | if eval "test \"\${$3+set}\"" = set; then : | ||
1940 | $as_echo_n "(cached) " >&6 | ||
1941 | else | ||
1942 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
1943 | /* end confdefs.h. */ | ||
1944 | /* Define $2 to an innocuous variant, in case <limits.h> declares $2. | ||
1945 | For example, HP-UX 11i <limits.h> declares gettimeofday. */ | ||
1946 | #define $2 innocuous_$2 | ||
1947 | |||
1948 | /* System header to define __stub macros and hopefully few prototypes, | ||
1949 | which can conflict with char $2 (); below. | ||
1950 | Prefer <limits.h> to <assert.h> if __STDC__ is defined, since | ||
1951 | <limits.h> exists even on freestanding compilers. */ | ||
1952 | |||
1953 | #ifdef __STDC__ | ||
1954 | # include <limits.h> | ||
1955 | #else | ||
1956 | # include <assert.h> | ||
1957 | #endif | ||
1958 | |||
1959 | #undef $2 | ||
1960 | |||
1961 | /* Override any GCC internal prototype to avoid an error. | ||
1962 | Use char because int might match the return type of a GCC | ||
1963 | builtin and then its argument prototype would still apply. */ | ||
1964 | #ifdef __cplusplus | ||
1965 | extern "C" | ||
1966 | #endif | ||
1967 | char $2 (); | ||
1968 | /* The GNU C library defines this for functions which it implements | ||
1969 | to always fail with ENOSYS. Some functions are actually named | ||
1970 | something starting with __ and the normal name is an alias. */ | ||
1971 | #if defined __stub_$2 || defined __stub___$2 | ||
1972 | choke me | ||
1973 | #endif | ||
1974 | |||
1975 | int | ||
1976 | main () | ||
1977 | { | ||
1978 | return $2 (); | ||
1979 | ; | ||
1980 | return 0; | ||
1981 | } | ||
1982 | _ACEOF | ||
1983 | if ac_fn_c_try_link "$LINENO"; then : | ||
1984 | eval "$3=yes" | ||
1985 | else | ||
1986 | eval "$3=no" | ||
1987 | fi | ||
1988 | rm -f core conftest.err conftest.$ac_objext \ | ||
1989 | conftest$ac_exeext conftest.$ac_ext | ||
1990 | fi | ||
1991 | eval ac_res=\$$3 | ||
1992 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 | ||
1993 | $as_echo "$ac_res" >&6; } | ||
1994 | eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} | ||
1995 | |||
1996 | } # ac_fn_c_check_func | ||
1997 | |||
1998 | # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES | ||
1999 | # ------------------------------------------------------- | ||
2000 | # Tests whether HEADER exists, giving a warning if it cannot be compiled using | ||
2001 | # the include files in INCLUDES and setting the cache variable VAR | ||
2002 | # accordingly. | ||
2003 | ac_fn_c_check_header_mongrel () | ||
2004 | { | ||
2005 | as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack | ||
2006 | if eval "test \"\${$3+set}\"" = set; then : | ||
2007 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 | ||
2008 | $as_echo_n "checking for $2... " >&6; } | ||
2009 | if eval "test \"\${$3+set}\"" = set; then : | ||
2010 | $as_echo_n "(cached) " >&6 | ||
2011 | fi | ||
2012 | eval ac_res=\$$3 | ||
2013 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 | ||
2014 | $as_echo "$ac_res" >&6; } | ||
2015 | else | ||
2016 | # Is the header compilable? | ||
2017 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 | ||
2018 | $as_echo_n "checking $2 usability... " >&6; } | ||
2019 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
2020 | /* end confdefs.h. */ | ||
2021 | $4 | ||
2022 | #include <$2> | ||
2023 | _ACEOF | ||
2024 | if ac_fn_c_try_compile "$LINENO"; then : | ||
2025 | ac_header_compiler=yes | ||
2026 | else | ||
2027 | ac_header_compiler=no | ||
2028 | fi | ||
2029 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
2030 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 | ||
2031 | $as_echo "$ac_header_compiler" >&6; } | ||
2032 | |||
2033 | # Is the header present? | ||
2034 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 | ||
2035 | $as_echo_n "checking $2 presence... " >&6; } | ||
2036 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
2037 | /* end confdefs.h. */ | ||
2038 | #include <$2> | ||
2039 | _ACEOF | ||
2040 | if ac_fn_c_try_cpp "$LINENO"; then : | ||
2041 | ac_header_preproc=yes | ||
2042 | else | ||
2043 | ac_header_preproc=no | ||
2044 | fi | ||
2045 | rm -f conftest.err conftest.i conftest.$ac_ext | ||
2046 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 | ||
2047 | $as_echo "$ac_header_preproc" >&6; } | ||
2048 | |||
2049 | # So? What about this header? | ||
2050 | case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( | ||
2051 | yes:no: ) | ||
2052 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 | ||
2053 | $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} | ||
2054 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 | ||
2055 | $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} | ||
2056 | ;; | ||
2057 | no:yes:* ) | ||
2058 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 | ||
2059 | $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} | ||
2060 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 | ||
2061 | $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} | ||
2062 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 | ||
2063 | $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} | ||
2064 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 | ||
2065 | $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} | ||
2066 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 | ||
2067 | $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} | ||
2068 | ( $as_echo "## -------------------------------------------------------- ## | ||
2069 | ## Report this to enlightenment-devel@lists.sourceforge.net ## | ||
2070 | ## -------------------------------------------------------- ##" | ||
2071 | ) | sed "s/^/$as_me: WARNING: /" >&2 | ||
2072 | ;; | ||
2073 | esac | ||
2074 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 | ||
2075 | $as_echo_n "checking for $2... " >&6; } | ||
2076 | if eval "test \"\${$3+set}\"" = set; then : | ||
2077 | $as_echo_n "(cached) " >&6 | ||
2078 | else | ||
2079 | eval "$3=\$ac_header_compiler" | ||
2080 | fi | ||
2081 | eval ac_res=\$$3 | ||
2082 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 | ||
2083 | $as_echo "$ac_res" >&6; } | ||
2084 | fi | ||
2085 | eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} | ||
2086 | |||
2087 | } # ac_fn_c_check_header_mongrel | ||
2088 | cat >config.log <<_ACEOF | ||
2089 | This file contains any messages produced by compilers while | ||
2090 | running configure, to aid debugging if configure makes a mistake. | ||
2091 | |||
2092 | It was created by eet $as_me 1.6.0-alpha, which was | ||
2093 | generated by GNU Autoconf 2.67. Invocation command line was | ||
2094 | |||
2095 | $ $0 $@ | ||
2096 | |||
2097 | _ACEOF | ||
2098 | exec 5>>config.log | ||
2099 | { | ||
2100 | cat <<_ASUNAME | ||
2101 | ## --------- ## | ||
2102 | ## Platform. ## | ||
2103 | ## --------- ## | ||
2104 | |||
2105 | hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` | ||
2106 | uname -m = `(uname -m) 2>/dev/null || echo unknown` | ||
2107 | uname -r = `(uname -r) 2>/dev/null || echo unknown` | ||
2108 | uname -s = `(uname -s) 2>/dev/null || echo unknown` | ||
2109 | uname -v = `(uname -v) 2>/dev/null || echo unknown` | ||
2110 | |||
2111 | /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` | ||
2112 | /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` | ||
2113 | |||
2114 | /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` | ||
2115 | /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` | ||
2116 | /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` | ||
2117 | /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` | ||
2118 | /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` | ||
2119 | /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` | ||
2120 | /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` | ||
2121 | |||
2122 | _ASUNAME | ||
2123 | |||
2124 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
2125 | for as_dir in $PATH | ||
2126 | do | ||
2127 | IFS=$as_save_IFS | ||
2128 | test -z "$as_dir" && as_dir=. | ||
2129 | $as_echo "PATH: $as_dir" | ||
2130 | done | ||
2131 | IFS=$as_save_IFS | ||
2132 | |||
2133 | } >&5 | ||
2134 | |||
2135 | cat >&5 <<_ACEOF | ||
2136 | |||
2137 | |||
2138 | ## ----------- ## | ||
2139 | ## Core tests. ## | ||
2140 | ## ----------- ## | ||
2141 | |||
2142 | _ACEOF | ||
2143 | |||
2144 | |||
2145 | # Keep a trace of the command line. | ||
2146 | # Strip out --no-create and --no-recursion so they do not pile up. | ||
2147 | # Strip out --silent because we don't want to record it for future runs. | ||
2148 | # Also quote any args containing shell meta-characters. | ||
2149 | # Make two passes to allow for proper duplicate-argument suppression. | ||
2150 | ac_configure_args= | ||
2151 | ac_configure_args0= | ||
2152 | ac_configure_args1= | ||
2153 | ac_must_keep_next=false | ||
2154 | for ac_pass in 1 2 | ||
2155 | do | ||
2156 | for ac_arg | ||
2157 | do | ||
2158 | case $ac_arg in | ||
2159 | -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; | ||
2160 | -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | ||
2161 | | -silent | --silent | --silen | --sile | --sil) | ||
2162 | continue ;; | ||
2163 | *\'*) | ||
2164 | ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; | ||
2165 | esac | ||
2166 | case $ac_pass in | ||
2167 | 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; | ||
2168 | 2) | ||
2169 | as_fn_append ac_configure_args1 " '$ac_arg'" | ||
2170 | if test $ac_must_keep_next = true; then | ||
2171 | ac_must_keep_next=false # Got value, back to normal. | ||
2172 | else | ||
2173 | case $ac_arg in | ||
2174 | *=* | --config-cache | -C | -disable-* | --disable-* \ | ||
2175 | | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | ||
2176 | | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | ||
2177 | | -with-* | --with-* | -without-* | --without-* | --x) | ||
2178 | case "$ac_configure_args0 " in | ||
2179 | "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; | ||
2180 | esac | ||
2181 | ;; | ||
2182 | -* ) ac_must_keep_next=true ;; | ||
2183 | esac | ||
2184 | fi | ||
2185 | as_fn_append ac_configure_args " '$ac_arg'" | ||
2186 | ;; | ||
2187 | esac | ||
2188 | done | ||
2189 | done | ||
2190 | { ac_configure_args0=; unset ac_configure_args0;} | ||
2191 | { ac_configure_args1=; unset ac_configure_args1;} | ||
2192 | |||
2193 | # When interrupted or exit'd, cleanup temporary files, and complete | ||
2194 | # config.log. We remove comments because anyway the quotes in there | ||
2195 | # would cause problems or look ugly. | ||
2196 | # WARNING: Use '\'' to represent an apostrophe within the trap. | ||
2197 | # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. | ||
2198 | trap 'exit_status=$? | ||
2199 | # Save into config.log some information that might help in debugging. | ||
2200 | { | ||
2201 | echo | ||
2202 | |||
2203 | $as_echo "## ---------------- ## | ||
2204 | ## Cache variables. ## | ||
2205 | ## ---------------- ##" | ||
2206 | echo | ||
2207 | # The following way of writing the cache mishandles newlines in values, | ||
2208 | ( | ||
2209 | for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do | ||
2210 | eval ac_val=\$$ac_var | ||
2211 | case $ac_val in #( | ||
2212 | *${as_nl}*) | ||
2213 | case $ac_var in #( | ||
2214 | *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 | ||
2215 | $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; | ||
2216 | esac | ||
2217 | case $ac_var in #( | ||
2218 | _ | IFS | as_nl) ;; #( | ||
2219 | BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( | ||
2220 | *) { eval $ac_var=; unset $ac_var;} ;; | ||
2221 | esac ;; | ||
2222 | esac | ||
2223 | done | ||
2224 | (set) 2>&1 | | ||
2225 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( | ||
2226 | *${as_nl}ac_space=\ *) | ||
2227 | sed -n \ | ||
2228 | "s/'\''/'\''\\\\'\'''\''/g; | ||
2229 | s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" | ||
2230 | ;; #( | ||
2231 | *) | ||
2232 | sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" | ||
2233 | ;; | ||
2234 | esac | | ||
2235 | sort | ||
2236 | ) | ||
2237 | echo | ||
2238 | |||
2239 | $as_echo "## ----------------- ## | ||
2240 | ## Output variables. ## | ||
2241 | ## ----------------- ##" | ||
2242 | echo | ||
2243 | for ac_var in $ac_subst_vars | ||
2244 | do | ||
2245 | eval ac_val=\$$ac_var | ||
2246 | case $ac_val in | ||
2247 | *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; | ||
2248 | esac | ||
2249 | $as_echo "$ac_var='\''$ac_val'\''" | ||
2250 | done | sort | ||
2251 | echo | ||
2252 | |||
2253 | if test -n "$ac_subst_files"; then | ||
2254 | $as_echo "## ------------------- ## | ||
2255 | ## File substitutions. ## | ||
2256 | ## ------------------- ##" | ||
2257 | echo | ||
2258 | for ac_var in $ac_subst_files | ||
2259 | do | ||
2260 | eval ac_val=\$$ac_var | ||
2261 | case $ac_val in | ||
2262 | *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; | ||
2263 | esac | ||
2264 | $as_echo "$ac_var='\''$ac_val'\''" | ||
2265 | done | sort | ||
2266 | echo | ||
2267 | fi | ||
2268 | |||
2269 | if test -s confdefs.h; then | ||
2270 | $as_echo "## ----------- ## | ||
2271 | ## confdefs.h. ## | ||
2272 | ## ----------- ##" | ||
2273 | echo | ||
2274 | cat confdefs.h | ||
2275 | echo | ||
2276 | fi | ||
2277 | test "$ac_signal" != 0 && | ||
2278 | $as_echo "$as_me: caught signal $ac_signal" | ||
2279 | $as_echo "$as_me: exit $exit_status" | ||
2280 | } >&5 | ||
2281 | rm -f core *.core core.conftest.* && | ||
2282 | rm -f -r conftest* confdefs* conf$$* $ac_clean_files && | ||
2283 | exit $exit_status | ||
2284 | ' 0 | ||
2285 | for ac_signal in 1 2 13 15; do | ||
2286 | trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal | ||
2287 | done | ||
2288 | ac_signal=0 | ||
2289 | |||
2290 | # confdefs.h avoids OS command line length limits that DEFS can exceed. | ||
2291 | rm -f -r conftest* confdefs.h | ||
2292 | |||
2293 | $as_echo "/* confdefs.h */" > confdefs.h | ||
2294 | |||
2295 | # Predefined preprocessor variables. | ||
2296 | |||
2297 | cat >>confdefs.h <<_ACEOF | ||
2298 | #define PACKAGE_NAME "$PACKAGE_NAME" | ||
2299 | _ACEOF | ||
2300 | |||
2301 | cat >>confdefs.h <<_ACEOF | ||
2302 | #define PACKAGE_TARNAME "$PACKAGE_TARNAME" | ||
2303 | _ACEOF | ||
2304 | |||
2305 | cat >>confdefs.h <<_ACEOF | ||
2306 | #define PACKAGE_VERSION "$PACKAGE_VERSION" | ||
2307 | _ACEOF | ||
2308 | |||
2309 | cat >>confdefs.h <<_ACEOF | ||
2310 | #define PACKAGE_STRING "$PACKAGE_STRING" | ||
2311 | _ACEOF | ||
2312 | |||
2313 | cat >>confdefs.h <<_ACEOF | ||
2314 | #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" | ||
2315 | _ACEOF | ||
2316 | |||
2317 | cat >>confdefs.h <<_ACEOF | ||
2318 | #define PACKAGE_URL "$PACKAGE_URL" | ||
2319 | _ACEOF | ||
2320 | |||
2321 | |||
2322 | # Let the site file select an alternate cache file if it wants to. | ||
2323 | # Prefer an explicitly selected file to automatically selected ones. | ||
2324 | ac_site_file1=NONE | ||
2325 | ac_site_file2=NONE | ||
2326 | if test -n "$CONFIG_SITE"; then | ||
2327 | # We do not want a PATH search for config.site. | ||
2328 | case $CONFIG_SITE in #(( | ||
2329 | -*) ac_site_file1=./$CONFIG_SITE;; | ||
2330 | */*) ac_site_file1=$CONFIG_SITE;; | ||
2331 | *) ac_site_file1=./$CONFIG_SITE;; | ||
2332 | esac | ||
2333 | elif test "x$prefix" != xNONE; then | ||
2334 | ac_site_file1=$prefix/share/config.site | ||
2335 | ac_site_file2=$prefix/etc/config.site | ||
2336 | else | ||
2337 | ac_site_file1=$ac_default_prefix/share/config.site | ||
2338 | ac_site_file2=$ac_default_prefix/etc/config.site | ||
2339 | fi | ||
2340 | for ac_site_file in "$ac_site_file1" "$ac_site_file2" | ||
2341 | do | ||
2342 | test "x$ac_site_file" = xNONE && continue | ||
2343 | if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then | ||
2344 | { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 | ||
2345 | $as_echo "$as_me: loading site script $ac_site_file" >&6;} | ||
2346 | sed 's/^/| /' "$ac_site_file" >&5 | ||
2347 | . "$ac_site_file" \ | ||
2348 | || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 | ||
2349 | $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} | ||
2350 | as_fn_error $? "failed to load site script $ac_site_file | ||
2351 | See \`config.log' for more details" "$LINENO" 5 ; } | ||
2352 | fi | ||
2353 | done | ||
2354 | |||
2355 | if test -r "$cache_file"; then | ||
2356 | # Some versions of bash will fail to source /dev/null (special files | ||
2357 | # actually), so we avoid doing that. DJGPP emulates it as a regular file. | ||
2358 | if test /dev/null != "$cache_file" && test -f "$cache_file"; then | ||
2359 | { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 | ||
2360 | $as_echo "$as_me: loading cache $cache_file" >&6;} | ||
2361 | case $cache_file in | ||
2362 | [\\/]* | ?:[\\/]* ) . "$cache_file";; | ||
2363 | *) . "./$cache_file";; | ||
2364 | esac | ||
2365 | fi | ||
2366 | else | ||
2367 | { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 | ||
2368 | $as_echo "$as_me: creating cache $cache_file" >&6;} | ||
2369 | >$cache_file | ||
2370 | fi | ||
2371 | |||
2372 | # Check that the precious variables saved in the cache have kept the same | ||
2373 | # value. | ||
2374 | ac_cache_corrupted=false | ||
2375 | for ac_var in $ac_precious_vars; do | ||
2376 | eval ac_old_set=\$ac_cv_env_${ac_var}_set | ||
2377 | eval ac_new_set=\$ac_env_${ac_var}_set | ||
2378 | eval ac_old_val=\$ac_cv_env_${ac_var}_value | ||
2379 | eval ac_new_val=\$ac_env_${ac_var}_value | ||
2380 | case $ac_old_set,$ac_new_set in | ||
2381 | set,) | ||
2382 | { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 | ||
2383 | $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} | ||
2384 | ac_cache_corrupted=: ;; | ||
2385 | ,set) | ||
2386 | { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 | ||
2387 | $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} | ||
2388 | ac_cache_corrupted=: ;; | ||
2389 | ,);; | ||
2390 | *) | ||
2391 | if test "x$ac_old_val" != "x$ac_new_val"; then | ||
2392 | # differences in whitespace do not lead to failure. | ||
2393 | ac_old_val_w=`echo x $ac_old_val` | ||
2394 | ac_new_val_w=`echo x $ac_new_val` | ||
2395 | if test "$ac_old_val_w" != "$ac_new_val_w"; then | ||
2396 | { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 | ||
2397 | $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} | ||
2398 | ac_cache_corrupted=: | ||
2399 | else | ||
2400 | { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 | ||
2401 | $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} | ||
2402 | eval $ac_var=\$ac_old_val | ||
2403 | fi | ||
2404 | { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 | ||
2405 | $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} | ||
2406 | { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 | ||
2407 | $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} | ||
2408 | fi;; | ||
2409 | esac | ||
2410 | # Pass precious variables to config.status. | ||
2411 | if test "$ac_new_set" = set; then | ||
2412 | case $ac_new_val in | ||
2413 | *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; | ||
2414 | *) ac_arg=$ac_var=$ac_new_val ;; | ||
2415 | esac | ||
2416 | case " $ac_configure_args " in | ||
2417 | *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. | ||
2418 | *) as_fn_append ac_configure_args " '$ac_arg'" ;; | ||
2419 | esac | ||
2420 | fi | ||
2421 | done | ||
2422 | if $ac_cache_corrupted; then | ||
2423 | { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 | ||
2424 | $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} | ||
2425 | { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 | ||
2426 | $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} | ||
2427 | as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 | ||
2428 | fi | ||
2429 | ## -------------------- ## | ||
2430 | ## Main body of script. ## | ||
2431 | ## -------------------- ## | ||
2432 | |||
2433 | ac_ext=c | ||
2434 | ac_cpp='$CPP $CPPFLAGS' | ||
2435 | ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' | ||
2436 | ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | ||
2437 | ac_compiler_gnu=$ac_cv_c_compiler_gnu | ||
2438 | |||
2439 | |||
2440 | |||
2441 | |||
2442 | |||
2443 | |||
2444 | ac_config_headers="$ac_config_headers config.h" | ||
2445 | |||
2446 | |||
2447 | |||
2448 | |||
2449 | am__api_version='1.11' | ||
2450 | |||
2451 | ac_aux_dir= | ||
2452 | for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do | ||
2453 | if test -f "$ac_dir/install-sh"; then | ||
2454 | ac_aux_dir=$ac_dir | ||
2455 | ac_install_sh="$ac_aux_dir/install-sh -c" | ||
2456 | break | ||
2457 | elif test -f "$ac_dir/install.sh"; then | ||
2458 | ac_aux_dir=$ac_dir | ||
2459 | ac_install_sh="$ac_aux_dir/install.sh -c" | ||
2460 | break | ||
2461 | elif test -f "$ac_dir/shtool"; then | ||
2462 | ac_aux_dir=$ac_dir | ||
2463 | ac_install_sh="$ac_aux_dir/shtool install -c" | ||
2464 | break | ||
2465 | fi | ||
2466 | done | ||
2467 | if test -z "$ac_aux_dir"; then | ||
2468 | as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 | ||
2469 | fi | ||
2470 | |||
2471 | # These three variables are undocumented and unsupported, | ||
2472 | # and are intended to be withdrawn in a future Autoconf release. | ||
2473 | # They can cause serious problems if a builder's source tree is in a directory | ||
2474 | # whose full name contains unusual characters. | ||
2475 | ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. | ||
2476 | ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. | ||
2477 | ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. | ||
2478 | |||
2479 | |||
2480 | # Find a good install program. We prefer a C program (faster), | ||
2481 | # so one script is as good as another. But avoid the broken or | ||
2482 | # incompatible versions: | ||
2483 | # SysV /etc/install, /usr/sbin/install | ||
2484 | # SunOS /usr/etc/install | ||
2485 | # IRIX /sbin/install | ||
2486 | # AIX /bin/install | ||
2487 | # AmigaOS /C/install, which installs bootblocks on floppy discs | ||
2488 | # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag | ||
2489 | # AFS /usr/afsws/bin/install, which mishandles nonexistent args | ||
2490 | # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" | ||
2491 | # OS/2's system install, which has a completely different semantic | ||
2492 | # ./install, which can be erroneously created by make from ./install.sh. | ||
2493 | # Reject install programs that cannot install multiple files. | ||
2494 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 | ||
2495 | $as_echo_n "checking for a BSD-compatible install... " >&6; } | ||
2496 | if test -z "$INSTALL"; then | ||
2497 | if test "${ac_cv_path_install+set}" = set; then : | ||
2498 | $as_echo_n "(cached) " >&6 | ||
2499 | else | ||
2500 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
2501 | for as_dir in $PATH | ||
2502 | do | ||
2503 | IFS=$as_save_IFS | ||
2504 | test -z "$as_dir" && as_dir=. | ||
2505 | # Account for people who put trailing slashes in PATH elements. | ||
2506 | case $as_dir/ in #(( | ||
2507 | ./ | .// | /[cC]/* | \ | ||
2508 | /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ | ||
2509 | ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ | ||
2510 | /usr/ucb/* ) ;; | ||
2511 | *) | ||
2512 | # OSF1 and SCO ODT 3.0 have their own names for install. | ||
2513 | # Don't use installbsd from OSF since it installs stuff as root | ||
2514 | # by default. | ||
2515 | for ac_prog in ginstall scoinst install; do | ||
2516 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
2517 | if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then | ||
2518 | if test $ac_prog = install && | ||
2519 | grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then | ||
2520 | # AIX install. It has an incompatible calling convention. | ||
2521 | : | ||
2522 | elif test $ac_prog = install && | ||
2523 | grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then | ||
2524 | # program-specific install script used by HP pwplus--don't use. | ||
2525 | : | ||
2526 | else | ||
2527 | rm -rf conftest.one conftest.two conftest.dir | ||
2528 | echo one > conftest.one | ||
2529 | echo two > conftest.two | ||
2530 | mkdir conftest.dir | ||
2531 | if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && | ||
2532 | test -s conftest.one && test -s conftest.two && | ||
2533 | test -s conftest.dir/conftest.one && | ||
2534 | test -s conftest.dir/conftest.two | ||
2535 | then | ||
2536 | ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" | ||
2537 | break 3 | ||
2538 | fi | ||
2539 | fi | ||
2540 | fi | ||
2541 | done | ||
2542 | done | ||
2543 | ;; | ||
2544 | esac | ||
2545 | |||
2546 | done | ||
2547 | IFS=$as_save_IFS | ||
2548 | |||
2549 | rm -rf conftest.one conftest.two conftest.dir | ||
2550 | |||
2551 | fi | ||
2552 | if test "${ac_cv_path_install+set}" = set; then | ||
2553 | INSTALL=$ac_cv_path_install | ||
2554 | else | ||
2555 | # As a last resort, use the slow shell script. Don't cache a | ||
2556 | # value for INSTALL within a source directory, because that will | ||
2557 | # break other packages using the cache if that directory is | ||
2558 | # removed, or if the value is a relative name. | ||
2559 | INSTALL=$ac_install_sh | ||
2560 | fi | ||
2561 | fi | ||
2562 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 | ||
2563 | $as_echo "$INSTALL" >&6; } | ||
2564 | |||
2565 | # Use test -z because SunOS4 sh mishandles braces in ${var-val}. | ||
2566 | # It thinks the first close brace ends the variable substitution. | ||
2567 | test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' | ||
2568 | |||
2569 | test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' | ||
2570 | |||
2571 | test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' | ||
2572 | |||
2573 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 | ||
2574 | $as_echo_n "checking whether build environment is sane... " >&6; } | ||
2575 | # Just in case | ||
2576 | sleep 1 | ||
2577 | echo timestamp > conftest.file | ||
2578 | # Reject unsafe characters in $srcdir or the absolute working directory | ||
2579 | # name. Accept space and tab only in the latter. | ||
2580 | am_lf=' | ||
2581 | ' | ||
2582 | case `pwd` in | ||
2583 | *[\\\"\#\$\&\'\`$am_lf]*) | ||
2584 | as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; | ||
2585 | esac | ||
2586 | case $srcdir in | ||
2587 | *[\\\"\#\$\&\'\`$am_lf\ \ ]*) | ||
2588 | as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; | ||
2589 | esac | ||
2590 | |||
2591 | # Do `set' in a subshell so we don't clobber the current shell's | ||
2592 | # arguments. Must try -L first in case configure is actually a | ||
2593 | # symlink; some systems play weird games with the mod time of symlinks | ||
2594 | # (eg FreeBSD returns the mod time of the symlink's containing | ||
2595 | # directory). | ||
2596 | if ( | ||
2597 | set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` | ||
2598 | if test "$*" = "X"; then | ||
2599 | # -L didn't work. | ||
2600 | set X `ls -t "$srcdir/configure" conftest.file` | ||
2601 | fi | ||
2602 | rm -f conftest.file | ||
2603 | if test "$*" != "X $srcdir/configure conftest.file" \ | ||
2604 | && test "$*" != "X conftest.file $srcdir/configure"; then | ||
2605 | |||
2606 | # If neither matched, then we have a broken ls. This can happen | ||
2607 | # if, for instance, CONFIG_SHELL is bash and it inherits a | ||
2608 | # broken ls alias from the environment. This has actually | ||
2609 | # happened. Such a system could not be considered "sane". | ||
2610 | as_fn_error $? "ls -t appears to fail. Make sure there is not a broken | ||
2611 | alias in your environment" "$LINENO" 5 | ||
2612 | fi | ||
2613 | |||
2614 | test "$2" = conftest.file | ||
2615 | ) | ||
2616 | then | ||
2617 | # Ok. | ||
2618 | : | ||
2619 | else | ||
2620 | as_fn_error $? "newly created file is older than distributed files! | ||
2621 | Check your system clock" "$LINENO" 5 | ||
2622 | fi | ||
2623 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
2624 | $as_echo "yes" >&6; } | ||
2625 | test "$program_prefix" != NONE && | ||
2626 | program_transform_name="s&^&$program_prefix&;$program_transform_name" | ||
2627 | # Use a double $ so make ignores it. | ||
2628 | test "$program_suffix" != NONE && | ||
2629 | program_transform_name="s&\$&$program_suffix&;$program_transform_name" | ||
2630 | # Double any \ or $. | ||
2631 | # By default was `s,x,x', remove it if useless. | ||
2632 | ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' | ||
2633 | program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` | ||
2634 | |||
2635 | # expand $ac_aux_dir to an absolute path | ||
2636 | am_aux_dir=`cd $ac_aux_dir && pwd` | ||
2637 | |||
2638 | if test x"${MISSING+set}" != xset; then | ||
2639 | case $am_aux_dir in | ||
2640 | *\ * | *\ *) | ||
2641 | MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; | ||
2642 | *) | ||
2643 | MISSING="\${SHELL} $am_aux_dir/missing" ;; | ||
2644 | esac | ||
2645 | fi | ||
2646 | # Use eval to expand $SHELL | ||
2647 | if eval "$MISSING --run true"; then | ||
2648 | am_missing_run="$MISSING --run " | ||
2649 | else | ||
2650 | am_missing_run= | ||
2651 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 | ||
2652 | $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} | ||
2653 | fi | ||
2654 | |||
2655 | if test x"${install_sh}" != xset; then | ||
2656 | case $am_aux_dir in | ||
2657 | *\ * | *\ *) | ||
2658 | install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; | ||
2659 | *) | ||
2660 | install_sh="\${SHELL} $am_aux_dir/install-sh" | ||
2661 | esac | ||
2662 | fi | ||
2663 | |||
2664 | # Installed binaries are usually stripped using `strip' when the user | ||
2665 | # run `make install-strip'. However `strip' might not be the right | ||
2666 | # tool to use in cross-compilation environments, therefore Automake | ||
2667 | # will honor the `STRIP' environment variable to overrule this program. | ||
2668 | if test "$cross_compiling" != no; then | ||
2669 | if test -n "$ac_tool_prefix"; then | ||
2670 | # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. | ||
2671 | set dummy ${ac_tool_prefix}strip; ac_word=$2 | ||
2672 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
2673 | $as_echo_n "checking for $ac_word... " >&6; } | ||
2674 | if test "${ac_cv_prog_STRIP+set}" = set; then : | ||
2675 | $as_echo_n "(cached) " >&6 | ||
2676 | else | ||
2677 | if test -n "$STRIP"; then | ||
2678 | ac_cv_prog_STRIP="$STRIP" # Let the user override the test. | ||
2679 | else | ||
2680 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
2681 | for as_dir in $PATH | ||
2682 | do | ||
2683 | IFS=$as_save_IFS | ||
2684 | test -z "$as_dir" && as_dir=. | ||
2685 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
2686 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
2687 | ac_cv_prog_STRIP="${ac_tool_prefix}strip" | ||
2688 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
2689 | break 2 | ||
2690 | fi | ||
2691 | done | ||
2692 | done | ||
2693 | IFS=$as_save_IFS | ||
2694 | |||
2695 | fi | ||
2696 | fi | ||
2697 | STRIP=$ac_cv_prog_STRIP | ||
2698 | if test -n "$STRIP"; then | ||
2699 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 | ||
2700 | $as_echo "$STRIP" >&6; } | ||
2701 | else | ||
2702 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
2703 | $as_echo "no" >&6; } | ||
2704 | fi | ||
2705 | |||
2706 | |||
2707 | fi | ||
2708 | if test -z "$ac_cv_prog_STRIP"; then | ||
2709 | ac_ct_STRIP=$STRIP | ||
2710 | # Extract the first word of "strip", so it can be a program name with args. | ||
2711 | set dummy strip; ac_word=$2 | ||
2712 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
2713 | $as_echo_n "checking for $ac_word... " >&6; } | ||
2714 | if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : | ||
2715 | $as_echo_n "(cached) " >&6 | ||
2716 | else | ||
2717 | if test -n "$ac_ct_STRIP"; then | ||
2718 | ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. | ||
2719 | else | ||
2720 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
2721 | for as_dir in $PATH | ||
2722 | do | ||
2723 | IFS=$as_save_IFS | ||
2724 | test -z "$as_dir" && as_dir=. | ||
2725 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
2726 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
2727 | ac_cv_prog_ac_ct_STRIP="strip" | ||
2728 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
2729 | break 2 | ||
2730 | fi | ||
2731 | done | ||
2732 | done | ||
2733 | IFS=$as_save_IFS | ||
2734 | |||
2735 | fi | ||
2736 | fi | ||
2737 | ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP | ||
2738 | if test -n "$ac_ct_STRIP"; then | ||
2739 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 | ||
2740 | $as_echo "$ac_ct_STRIP" >&6; } | ||
2741 | else | ||
2742 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
2743 | $as_echo "no" >&6; } | ||
2744 | fi | ||
2745 | |||
2746 | if test "x$ac_ct_STRIP" = x; then | ||
2747 | STRIP=":" | ||
2748 | else | ||
2749 | case $cross_compiling:$ac_tool_warned in | ||
2750 | yes:) | ||
2751 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | ||
2752 | $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | ||
2753 | ac_tool_warned=yes ;; | ||
2754 | esac | ||
2755 | STRIP=$ac_ct_STRIP | ||
2756 | fi | ||
2757 | else | ||
2758 | STRIP="$ac_cv_prog_STRIP" | ||
2759 | fi | ||
2760 | |||
2761 | fi | ||
2762 | INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" | ||
2763 | |||
2764 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 | ||
2765 | $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } | ||
2766 | if test -z "$MKDIR_P"; then | ||
2767 | if test "${ac_cv_path_mkdir+set}" = set; then : | ||
2768 | $as_echo_n "(cached) " >&6 | ||
2769 | else | ||
2770 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
2771 | for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin | ||
2772 | do | ||
2773 | IFS=$as_save_IFS | ||
2774 | test -z "$as_dir" && as_dir=. | ||
2775 | for ac_prog in mkdir gmkdir; do | ||
2776 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
2777 | { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue | ||
2778 | case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( | ||
2779 | 'mkdir (GNU coreutils) '* | \ | ||
2780 | 'mkdir (coreutils) '* | \ | ||
2781 | 'mkdir (fileutils) '4.1*) | ||
2782 | ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext | ||
2783 | break 3;; | ||
2784 | esac | ||
2785 | done | ||
2786 | done | ||
2787 | done | ||
2788 | IFS=$as_save_IFS | ||
2789 | |||
2790 | fi | ||
2791 | |||
2792 | test -d ./--version && rmdir ./--version | ||
2793 | if test "${ac_cv_path_mkdir+set}" = set; then | ||
2794 | MKDIR_P="$ac_cv_path_mkdir -p" | ||
2795 | else | ||
2796 | # As a last resort, use the slow shell script. Don't cache a | ||
2797 | # value for MKDIR_P within a source directory, because that will | ||
2798 | # break other packages using the cache if that directory is | ||
2799 | # removed, or if the value is a relative name. | ||
2800 | MKDIR_P="$ac_install_sh -d" | ||
2801 | fi | ||
2802 | fi | ||
2803 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 | ||
2804 | $as_echo "$MKDIR_P" >&6; } | ||
2805 | |||
2806 | mkdir_p="$MKDIR_P" | ||
2807 | case $mkdir_p in | ||
2808 | [\\/$]* | ?:[\\/]*) ;; | ||
2809 | */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; | ||
2810 | esac | ||
2811 | |||
2812 | for ac_prog in gawk mawk nawk awk | ||
2813 | do | ||
2814 | # Extract the first word of "$ac_prog", so it can be a program name with args. | ||
2815 | set dummy $ac_prog; ac_word=$2 | ||
2816 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
2817 | $as_echo_n "checking for $ac_word... " >&6; } | ||
2818 | if test "${ac_cv_prog_AWK+set}" = set; then : | ||
2819 | $as_echo_n "(cached) " >&6 | ||
2820 | else | ||
2821 | if test -n "$AWK"; then | ||
2822 | ac_cv_prog_AWK="$AWK" # Let the user override the test. | ||
2823 | else | ||
2824 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
2825 | for as_dir in $PATH | ||
2826 | do | ||
2827 | IFS=$as_save_IFS | ||
2828 | test -z "$as_dir" && as_dir=. | ||
2829 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
2830 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
2831 | ac_cv_prog_AWK="$ac_prog" | ||
2832 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
2833 | break 2 | ||
2834 | fi | ||
2835 | done | ||
2836 | done | ||
2837 | IFS=$as_save_IFS | ||
2838 | |||
2839 | fi | ||
2840 | fi | ||
2841 | AWK=$ac_cv_prog_AWK | ||
2842 | if test -n "$AWK"; then | ||
2843 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 | ||
2844 | $as_echo "$AWK" >&6; } | ||
2845 | else | ||
2846 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
2847 | $as_echo "no" >&6; } | ||
2848 | fi | ||
2849 | |||
2850 | |||
2851 | test -n "$AWK" && break | ||
2852 | done | ||
2853 | |||
2854 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 | ||
2855 | $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } | ||
2856 | set x ${MAKE-make} | ||
2857 | ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` | ||
2858 | if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : | ||
2859 | $as_echo_n "(cached) " >&6 | ||
2860 | else | ||
2861 | cat >conftest.make <<\_ACEOF | ||
2862 | SHELL = /bin/sh | ||
2863 | all: | ||
2864 | @echo '@@@%%%=$(MAKE)=@@@%%%' | ||
2865 | _ACEOF | ||
2866 | # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. | ||
2867 | case `${MAKE-make} -f conftest.make 2>/dev/null` in | ||
2868 | *@@@%%%=?*=@@@%%%*) | ||
2869 | eval ac_cv_prog_make_${ac_make}_set=yes;; | ||
2870 | *) | ||
2871 | eval ac_cv_prog_make_${ac_make}_set=no;; | ||
2872 | esac | ||
2873 | rm -f conftest.make | ||
2874 | fi | ||
2875 | if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then | ||
2876 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
2877 | $as_echo "yes" >&6; } | ||
2878 | SET_MAKE= | ||
2879 | else | ||
2880 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
2881 | $as_echo "no" >&6; } | ||
2882 | SET_MAKE="MAKE=${MAKE-make}" | ||
2883 | fi | ||
2884 | |||
2885 | rm -rf .tst 2>/dev/null | ||
2886 | mkdir .tst 2>/dev/null | ||
2887 | if test -d .tst; then | ||
2888 | am__leading_dot=. | ||
2889 | else | ||
2890 | am__leading_dot=_ | ||
2891 | fi | ||
2892 | rmdir .tst 2>/dev/null | ||
2893 | |||
2894 | if test "`cd $srcdir && pwd`" != "`pwd`"; then | ||
2895 | # Use -I$(srcdir) only when $(srcdir) != ., so that make's output | ||
2896 | # is not polluted with repeated "-I." | ||
2897 | am__isrc=' -I$(srcdir)' | ||
2898 | # test to see if srcdir already configured | ||
2899 | if test -f $srcdir/config.status; then | ||
2900 | as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 | ||
2901 | fi | ||
2902 | fi | ||
2903 | |||
2904 | # test whether we have cygpath | ||
2905 | if test -z "$CYGPATH_W"; then | ||
2906 | if (cygpath --version) >/dev/null 2>/dev/null; then | ||
2907 | CYGPATH_W='cygpath -w' | ||
2908 | else | ||
2909 | CYGPATH_W=echo | ||
2910 | fi | ||
2911 | fi | ||
2912 | |||
2913 | |||
2914 | # Define the identity of the package. | ||
2915 | PACKAGE='eet' | ||
2916 | VERSION='1.6.0-alpha' | ||
2917 | |||
2918 | |||
2919 | cat >>confdefs.h <<_ACEOF | ||
2920 | #define PACKAGE "$PACKAGE" | ||
2921 | _ACEOF | ||
2922 | |||
2923 | |||
2924 | cat >>confdefs.h <<_ACEOF | ||
2925 | #define VERSION "$VERSION" | ||
2926 | _ACEOF | ||
2927 | |||
2928 | # Some tools Automake needs. | ||
2929 | |||
2930 | ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} | ||
2931 | |||
2932 | |||
2933 | AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} | ||
2934 | |||
2935 | |||
2936 | AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} | ||
2937 | |||
2938 | |||
2939 | AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} | ||
2940 | |||
2941 | |||
2942 | MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} | ||
2943 | |||
2944 | # We need awk for the "check" target. The system "awk" is bad on | ||
2945 | # some platforms. | ||
2946 | # Always define AMTAR for backward compatibility. | ||
2947 | |||
2948 | AMTAR=${AMTAR-"${am_missing_run}tar"} | ||
2949 | |||
2950 | am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' | ||
2951 | |||
2952 | |||
2953 | |||
2954 | |||
2955 | |||
2956 | # Check whether --enable-silent-rules was given. | ||
2957 | if test "${enable_silent_rules+set}" = set; then : | ||
2958 | enableval=$enable_silent_rules; | ||
2959 | fi | ||
2960 | |||
2961 | case $enable_silent_rules in | ||
2962 | yes) AM_DEFAULT_VERBOSITY=0;; | ||
2963 | no) AM_DEFAULT_VERBOSITY=1;; | ||
2964 | *) AM_DEFAULT_VERBOSITY=0;; | ||
2965 | esac | ||
2966 | AM_BACKSLASH='\' | ||
2967 | |||
2968 | |||
2969 | # Make sure we can run config.sub. | ||
2970 | $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || | ||
2971 | as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 | ||
2972 | |||
2973 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 | ||
2974 | $as_echo_n "checking build system type... " >&6; } | ||
2975 | if test "${ac_cv_build+set}" = set; then : | ||
2976 | $as_echo_n "(cached) " >&6 | ||
2977 | else | ||
2978 | ac_build_alias=$build_alias | ||
2979 | test "x$ac_build_alias" = x && | ||
2980 | ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` | ||
2981 | test "x$ac_build_alias" = x && | ||
2982 | as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 | ||
2983 | ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || | ||
2984 | as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 | ||
2985 | |||
2986 | fi | ||
2987 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 | ||
2988 | $as_echo "$ac_cv_build" >&6; } | ||
2989 | case $ac_cv_build in | ||
2990 | *-*-*) ;; | ||
2991 | *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; | ||
2992 | esac | ||
2993 | build=$ac_cv_build | ||
2994 | ac_save_IFS=$IFS; IFS='-' | ||
2995 | set x $ac_cv_build | ||
2996 | shift | ||
2997 | build_cpu=$1 | ||
2998 | build_vendor=$2 | ||
2999 | shift; shift | ||
3000 | # Remember, the first character of IFS is used to create $*, | ||
3001 | # except with old shells: | ||
3002 | build_os=$* | ||
3003 | IFS=$ac_save_IFS | ||
3004 | case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac | ||
3005 | |||
3006 | |||
3007 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 | ||
3008 | $as_echo_n "checking host system type... " >&6; } | ||
3009 | if test "${ac_cv_host+set}" = set; then : | ||
3010 | $as_echo_n "(cached) " >&6 | ||
3011 | else | ||
3012 | if test "x$host_alias" = x; then | ||
3013 | ac_cv_host=$ac_cv_build | ||
3014 | else | ||
3015 | ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || | ||
3016 | as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 | ||
3017 | fi | ||
3018 | |||
3019 | fi | ||
3020 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 | ||
3021 | $as_echo "$ac_cv_host" >&6; } | ||
3022 | case $ac_cv_host in | ||
3023 | *-*-*) ;; | ||
3024 | *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; | ||
3025 | esac | ||
3026 | host=$ac_cv_host | ||
3027 | ac_save_IFS=$IFS; IFS='-' | ||
3028 | set x $ac_cv_host | ||
3029 | shift | ||
3030 | host_cpu=$1 | ||
3031 | host_vendor=$2 | ||
3032 | shift; shift | ||
3033 | # Remember, the first character of IFS is used to create $*, | ||
3034 | # except with old shells: | ||
3035 | host_os=$* | ||
3036 | IFS=$ac_save_IFS | ||
3037 | case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac | ||
3038 | |||
3039 | |||
3040 | enable_win32_dll=yes | ||
3041 | |||
3042 | case $host in | ||
3043 | *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) | ||
3044 | if test -n "$ac_tool_prefix"; then | ||
3045 | # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. | ||
3046 | set dummy ${ac_tool_prefix}as; ac_word=$2 | ||
3047 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
3048 | $as_echo_n "checking for $ac_word... " >&6; } | ||
3049 | if test "${ac_cv_prog_AS+set}" = set; then : | ||
3050 | $as_echo_n "(cached) " >&6 | ||
3051 | else | ||
3052 | if test -n "$AS"; then | ||
3053 | ac_cv_prog_AS="$AS" # Let the user override the test. | ||
3054 | else | ||
3055 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
3056 | for as_dir in $PATH | ||
3057 | do | ||
3058 | IFS=$as_save_IFS | ||
3059 | test -z "$as_dir" && as_dir=. | ||
3060 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
3061 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
3062 | ac_cv_prog_AS="${ac_tool_prefix}as" | ||
3063 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
3064 | break 2 | ||
3065 | fi | ||
3066 | done | ||
3067 | done | ||
3068 | IFS=$as_save_IFS | ||
3069 | |||
3070 | fi | ||
3071 | fi | ||
3072 | AS=$ac_cv_prog_AS | ||
3073 | if test -n "$AS"; then | ||
3074 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 | ||
3075 | $as_echo "$AS" >&6; } | ||
3076 | else | ||
3077 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
3078 | $as_echo "no" >&6; } | ||
3079 | fi | ||
3080 | |||
3081 | |||
3082 | fi | ||
3083 | if test -z "$ac_cv_prog_AS"; then | ||
3084 | ac_ct_AS=$AS | ||
3085 | # Extract the first word of "as", so it can be a program name with args. | ||
3086 | set dummy as; ac_word=$2 | ||
3087 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
3088 | $as_echo_n "checking for $ac_word... " >&6; } | ||
3089 | if test "${ac_cv_prog_ac_ct_AS+set}" = set; then : | ||
3090 | $as_echo_n "(cached) " >&6 | ||
3091 | else | ||
3092 | if test -n "$ac_ct_AS"; then | ||
3093 | ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. | ||
3094 | else | ||
3095 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
3096 | for as_dir in $PATH | ||
3097 | do | ||
3098 | IFS=$as_save_IFS | ||
3099 | test -z "$as_dir" && as_dir=. | ||
3100 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
3101 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
3102 | ac_cv_prog_ac_ct_AS="as" | ||
3103 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
3104 | break 2 | ||
3105 | fi | ||
3106 | done | ||
3107 | done | ||
3108 | IFS=$as_save_IFS | ||
3109 | |||
3110 | fi | ||
3111 | fi | ||
3112 | ac_ct_AS=$ac_cv_prog_ac_ct_AS | ||
3113 | if test -n "$ac_ct_AS"; then | ||
3114 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 | ||
3115 | $as_echo "$ac_ct_AS" >&6; } | ||
3116 | else | ||
3117 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
3118 | $as_echo "no" >&6; } | ||
3119 | fi | ||
3120 | |||
3121 | if test "x$ac_ct_AS" = x; then | ||
3122 | AS="false" | ||
3123 | else | ||
3124 | case $cross_compiling:$ac_tool_warned in | ||
3125 | yes:) | ||
3126 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | ||
3127 | $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | ||
3128 | ac_tool_warned=yes ;; | ||
3129 | esac | ||
3130 | AS=$ac_ct_AS | ||
3131 | fi | ||
3132 | else | ||
3133 | AS="$ac_cv_prog_AS" | ||
3134 | fi | ||
3135 | |||
3136 | if test -n "$ac_tool_prefix"; then | ||
3137 | # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. | ||
3138 | set dummy ${ac_tool_prefix}dlltool; ac_word=$2 | ||
3139 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
3140 | $as_echo_n "checking for $ac_word... " >&6; } | ||
3141 | if test "${ac_cv_prog_DLLTOOL+set}" = set; then : | ||
3142 | $as_echo_n "(cached) " >&6 | ||
3143 | else | ||
3144 | if test -n "$DLLTOOL"; then | ||
3145 | ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. | ||
3146 | else | ||
3147 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
3148 | for as_dir in $PATH | ||
3149 | do | ||
3150 | IFS=$as_save_IFS | ||
3151 | test -z "$as_dir" && as_dir=. | ||
3152 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
3153 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
3154 | ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" | ||
3155 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
3156 | break 2 | ||
3157 | fi | ||
3158 | done | ||
3159 | done | ||
3160 | IFS=$as_save_IFS | ||
3161 | |||
3162 | fi | ||
3163 | fi | ||
3164 | DLLTOOL=$ac_cv_prog_DLLTOOL | ||
3165 | if test -n "$DLLTOOL"; then | ||
3166 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 | ||
3167 | $as_echo "$DLLTOOL" >&6; } | ||
3168 | else | ||
3169 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
3170 | $as_echo "no" >&6; } | ||
3171 | fi | ||
3172 | |||
3173 | |||
3174 | fi | ||
3175 | if test -z "$ac_cv_prog_DLLTOOL"; then | ||
3176 | ac_ct_DLLTOOL=$DLLTOOL | ||
3177 | # Extract the first word of "dlltool", so it can be a program name with args. | ||
3178 | set dummy dlltool; ac_word=$2 | ||
3179 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
3180 | $as_echo_n "checking for $ac_word... " >&6; } | ||
3181 | if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : | ||
3182 | $as_echo_n "(cached) " >&6 | ||
3183 | else | ||
3184 | if test -n "$ac_ct_DLLTOOL"; then | ||
3185 | ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. | ||
3186 | else | ||
3187 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
3188 | for as_dir in $PATH | ||
3189 | do | ||
3190 | IFS=$as_save_IFS | ||
3191 | test -z "$as_dir" && as_dir=. | ||
3192 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
3193 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
3194 | ac_cv_prog_ac_ct_DLLTOOL="dlltool" | ||
3195 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
3196 | break 2 | ||
3197 | fi | ||
3198 | done | ||
3199 | done | ||
3200 | IFS=$as_save_IFS | ||
3201 | |||
3202 | fi | ||
3203 | fi | ||
3204 | ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL | ||
3205 | if test -n "$ac_ct_DLLTOOL"; then | ||
3206 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 | ||
3207 | $as_echo "$ac_ct_DLLTOOL" >&6; } | ||
3208 | else | ||
3209 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
3210 | $as_echo "no" >&6; } | ||
3211 | fi | ||
3212 | |||
3213 | if test "x$ac_ct_DLLTOOL" = x; then | ||
3214 | DLLTOOL="false" | ||
3215 | else | ||
3216 | case $cross_compiling:$ac_tool_warned in | ||
3217 | yes:) | ||
3218 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | ||
3219 | $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | ||
3220 | ac_tool_warned=yes ;; | ||
3221 | esac | ||
3222 | DLLTOOL=$ac_ct_DLLTOOL | ||
3223 | fi | ||
3224 | else | ||
3225 | DLLTOOL="$ac_cv_prog_DLLTOOL" | ||
3226 | fi | ||
3227 | |||
3228 | if test -n "$ac_tool_prefix"; then | ||
3229 | # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. | ||
3230 | set dummy ${ac_tool_prefix}objdump; ac_word=$2 | ||
3231 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
3232 | $as_echo_n "checking for $ac_word... " >&6; } | ||
3233 | if test "${ac_cv_prog_OBJDUMP+set}" = set; then : | ||
3234 | $as_echo_n "(cached) " >&6 | ||
3235 | else | ||
3236 | if test -n "$OBJDUMP"; then | ||
3237 | ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. | ||
3238 | else | ||
3239 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
3240 | for as_dir in $PATH | ||
3241 | do | ||
3242 | IFS=$as_save_IFS | ||
3243 | test -z "$as_dir" && as_dir=. | ||
3244 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
3245 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
3246 | ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" | ||
3247 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
3248 | break 2 | ||
3249 | fi | ||
3250 | done | ||
3251 | done | ||
3252 | IFS=$as_save_IFS | ||
3253 | |||
3254 | fi | ||
3255 | fi | ||
3256 | OBJDUMP=$ac_cv_prog_OBJDUMP | ||
3257 | if test -n "$OBJDUMP"; then | ||
3258 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 | ||
3259 | $as_echo "$OBJDUMP" >&6; } | ||
3260 | else | ||
3261 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
3262 | $as_echo "no" >&6; } | ||
3263 | fi | ||
3264 | |||
3265 | |||
3266 | fi | ||
3267 | if test -z "$ac_cv_prog_OBJDUMP"; then | ||
3268 | ac_ct_OBJDUMP=$OBJDUMP | ||
3269 | # Extract the first word of "objdump", so it can be a program name with args. | ||
3270 | set dummy objdump; ac_word=$2 | ||
3271 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
3272 | $as_echo_n "checking for $ac_word... " >&6; } | ||
3273 | if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : | ||
3274 | $as_echo_n "(cached) " >&6 | ||
3275 | else | ||
3276 | if test -n "$ac_ct_OBJDUMP"; then | ||
3277 | ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. | ||
3278 | else | ||
3279 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
3280 | for as_dir in $PATH | ||
3281 | do | ||
3282 | IFS=$as_save_IFS | ||
3283 | test -z "$as_dir" && as_dir=. | ||
3284 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
3285 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
3286 | ac_cv_prog_ac_ct_OBJDUMP="objdump" | ||
3287 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
3288 | break 2 | ||
3289 | fi | ||
3290 | done | ||
3291 | done | ||
3292 | IFS=$as_save_IFS | ||
3293 | |||
3294 | fi | ||
3295 | fi | ||
3296 | ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP | ||
3297 | if test -n "$ac_ct_OBJDUMP"; then | ||
3298 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 | ||
3299 | $as_echo "$ac_ct_OBJDUMP" >&6; } | ||
3300 | else | ||
3301 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
3302 | $as_echo "no" >&6; } | ||
3303 | fi | ||
3304 | |||
3305 | if test "x$ac_ct_OBJDUMP" = x; then | ||
3306 | OBJDUMP="false" | ||
3307 | else | ||
3308 | case $cross_compiling:$ac_tool_warned in | ||
3309 | yes:) | ||
3310 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | ||
3311 | $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | ||
3312 | ac_tool_warned=yes ;; | ||
3313 | esac | ||
3314 | OBJDUMP=$ac_ct_OBJDUMP | ||
3315 | fi | ||
3316 | else | ||
3317 | OBJDUMP="$ac_cv_prog_OBJDUMP" | ||
3318 | fi | ||
3319 | |||
3320 | ;; | ||
3321 | esac | ||
3322 | |||
3323 | test -z "$AS" && AS=as | ||
3324 | |||
3325 | |||
3326 | |||
3327 | |||
3328 | |||
3329 | test -z "$DLLTOOL" && DLLTOOL=dlltool | ||
3330 | |||
3331 | |||
3332 | |||
3333 | |||
3334 | |||
3335 | test -z "$OBJDUMP" && OBJDUMP=objdump | ||
3336 | |||
3337 | |||
3338 | |||
3339 | |||
3340 | |||
3341 | |||
3342 | |||
3343 | case `pwd` in | ||
3344 | *\ * | *\ *) | ||
3345 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 | ||
3346 | $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; | ||
3347 | esac | ||
3348 | |||
3349 | |||
3350 | |||
3351 | macro_version='2.2.6b' | ||
3352 | macro_revision='1.3017' | ||
3353 | |||
3354 | |||
3355 | |||
3356 | |||
3357 | |||
3358 | |||
3359 | |||
3360 | |||
3361 | |||
3362 | |||
3363 | |||
3364 | |||
3365 | |||
3366 | ltmain="$ac_aux_dir/ltmain.sh" | ||
3367 | |||
3368 | DEPDIR="${am__leading_dot}deps" | ||
3369 | |||
3370 | ac_config_commands="$ac_config_commands depfiles" | ||
3371 | |||
3372 | |||
3373 | am_make=${MAKE-make} | ||
3374 | cat > confinc << 'END' | ||
3375 | am__doit: | ||
3376 | @echo this is the am__doit target | ||
3377 | .PHONY: am__doit | ||
3378 | END | ||
3379 | # If we don't find an include directive, just comment out the code. | ||
3380 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 | ||
3381 | $as_echo_n "checking for style of include used by $am_make... " >&6; } | ||
3382 | am__include="#" | ||
3383 | am__quote= | ||
3384 | _am_result=none | ||
3385 | # First try GNU make style include. | ||
3386 | echo "include confinc" > confmf | ||
3387 | # Ignore all kinds of additional output from `make'. | ||
3388 | case `$am_make -s -f confmf 2> /dev/null` in #( | ||
3389 | *the\ am__doit\ target*) | ||
3390 | am__include=include | ||
3391 | am__quote= | ||
3392 | _am_result=GNU | ||
3393 | ;; | ||
3394 | esac | ||
3395 | # Now try BSD make style include. | ||
3396 | if test "$am__include" = "#"; then | ||
3397 | echo '.include "confinc"' > confmf | ||
3398 | case `$am_make -s -f confmf 2> /dev/null` in #( | ||
3399 | *the\ am__doit\ target*) | ||
3400 | am__include=.include | ||
3401 | am__quote="\"" | ||
3402 | _am_result=BSD | ||
3403 | ;; | ||
3404 | esac | ||
3405 | fi | ||
3406 | |||
3407 | |||
3408 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 | ||
3409 | $as_echo "$_am_result" >&6; } | ||
3410 | rm -f confinc confmf | ||
3411 | |||
3412 | # Check whether --enable-dependency-tracking was given. | ||
3413 | if test "${enable_dependency_tracking+set}" = set; then : | ||
3414 | enableval=$enable_dependency_tracking; | ||
3415 | fi | ||
3416 | |||
3417 | if test "x$enable_dependency_tracking" != xno; then | ||
3418 | am_depcomp="$ac_aux_dir/depcomp" | ||
3419 | AMDEPBACKSLASH='\' | ||
3420 | fi | ||
3421 | if test "x$enable_dependency_tracking" != xno; then | ||
3422 | AMDEP_TRUE= | ||
3423 | AMDEP_FALSE='#' | ||
3424 | else | ||
3425 | AMDEP_TRUE='#' | ||
3426 | AMDEP_FALSE= | ||
3427 | fi | ||
3428 | |||
3429 | |||
3430 | ac_ext=c | ||
3431 | ac_cpp='$CPP $CPPFLAGS' | ||
3432 | ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' | ||
3433 | ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | ||
3434 | ac_compiler_gnu=$ac_cv_c_compiler_gnu | ||
3435 | if test -n "$ac_tool_prefix"; then | ||
3436 | # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. | ||
3437 | set dummy ${ac_tool_prefix}gcc; ac_word=$2 | ||
3438 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
3439 | $as_echo_n "checking for $ac_word... " >&6; } | ||
3440 | if test "${ac_cv_prog_CC+set}" = set; then : | ||
3441 | $as_echo_n "(cached) " >&6 | ||
3442 | else | ||
3443 | if test -n "$CC"; then | ||
3444 | ac_cv_prog_CC="$CC" # Let the user override the test. | ||
3445 | else | ||
3446 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
3447 | for as_dir in $PATH | ||
3448 | do | ||
3449 | IFS=$as_save_IFS | ||
3450 | test -z "$as_dir" && as_dir=. | ||
3451 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
3452 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
3453 | ac_cv_prog_CC="${ac_tool_prefix}gcc" | ||
3454 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
3455 | break 2 | ||
3456 | fi | ||
3457 | done | ||
3458 | done | ||
3459 | IFS=$as_save_IFS | ||
3460 | |||
3461 | fi | ||
3462 | fi | ||
3463 | CC=$ac_cv_prog_CC | ||
3464 | if test -n "$CC"; then | ||
3465 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 | ||
3466 | $as_echo "$CC" >&6; } | ||
3467 | else | ||
3468 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
3469 | $as_echo "no" >&6; } | ||
3470 | fi | ||
3471 | |||
3472 | |||
3473 | fi | ||
3474 | if test -z "$ac_cv_prog_CC"; then | ||
3475 | ac_ct_CC=$CC | ||
3476 | # Extract the first word of "gcc", so it can be a program name with args. | ||
3477 | set dummy gcc; ac_word=$2 | ||
3478 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
3479 | $as_echo_n "checking for $ac_word... " >&6; } | ||
3480 | if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : | ||
3481 | $as_echo_n "(cached) " >&6 | ||
3482 | else | ||
3483 | if test -n "$ac_ct_CC"; then | ||
3484 | ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. | ||
3485 | else | ||
3486 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
3487 | for as_dir in $PATH | ||
3488 | do | ||
3489 | IFS=$as_save_IFS | ||
3490 | test -z "$as_dir" && as_dir=. | ||
3491 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
3492 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
3493 | ac_cv_prog_ac_ct_CC="gcc" | ||
3494 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
3495 | break 2 | ||
3496 | fi | ||
3497 | done | ||
3498 | done | ||
3499 | IFS=$as_save_IFS | ||
3500 | |||
3501 | fi | ||
3502 | fi | ||
3503 | ac_ct_CC=$ac_cv_prog_ac_ct_CC | ||
3504 | if test -n "$ac_ct_CC"; then | ||
3505 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 | ||
3506 | $as_echo "$ac_ct_CC" >&6; } | ||
3507 | else | ||
3508 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
3509 | $as_echo "no" >&6; } | ||
3510 | fi | ||
3511 | |||
3512 | if test "x$ac_ct_CC" = x; then | ||
3513 | CC="" | ||
3514 | else | ||
3515 | case $cross_compiling:$ac_tool_warned in | ||
3516 | yes:) | ||
3517 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | ||
3518 | $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | ||
3519 | ac_tool_warned=yes ;; | ||
3520 | esac | ||
3521 | CC=$ac_ct_CC | ||
3522 | fi | ||
3523 | else | ||
3524 | CC="$ac_cv_prog_CC" | ||
3525 | fi | ||
3526 | |||
3527 | if test -z "$CC"; then | ||
3528 | if test -n "$ac_tool_prefix"; then | ||
3529 | # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. | ||
3530 | set dummy ${ac_tool_prefix}cc; ac_word=$2 | ||
3531 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
3532 | $as_echo_n "checking for $ac_word... " >&6; } | ||
3533 | if test "${ac_cv_prog_CC+set}" = set; then : | ||
3534 | $as_echo_n "(cached) " >&6 | ||
3535 | else | ||
3536 | if test -n "$CC"; then | ||
3537 | ac_cv_prog_CC="$CC" # Let the user override the test. | ||
3538 | else | ||
3539 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
3540 | for as_dir in $PATH | ||
3541 | do | ||
3542 | IFS=$as_save_IFS | ||
3543 | test -z "$as_dir" && as_dir=. | ||
3544 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
3545 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
3546 | ac_cv_prog_CC="${ac_tool_prefix}cc" | ||
3547 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
3548 | break 2 | ||
3549 | fi | ||
3550 | done | ||
3551 | done | ||
3552 | IFS=$as_save_IFS | ||
3553 | |||
3554 | fi | ||
3555 | fi | ||
3556 | CC=$ac_cv_prog_CC | ||
3557 | if test -n "$CC"; then | ||
3558 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 | ||
3559 | $as_echo "$CC" >&6; } | ||
3560 | else | ||
3561 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
3562 | $as_echo "no" >&6; } | ||
3563 | fi | ||
3564 | |||
3565 | |||
3566 | fi | ||
3567 | fi | ||
3568 | if test -z "$CC"; then | ||
3569 | # Extract the first word of "cc", so it can be a program name with args. | ||
3570 | set dummy cc; ac_word=$2 | ||
3571 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
3572 | $as_echo_n "checking for $ac_word... " >&6; } | ||
3573 | if test "${ac_cv_prog_CC+set}" = set; then : | ||
3574 | $as_echo_n "(cached) " >&6 | ||
3575 | else | ||
3576 | if test -n "$CC"; then | ||
3577 | ac_cv_prog_CC="$CC" # Let the user override the test. | ||
3578 | else | ||
3579 | ac_prog_rejected=no | ||
3580 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
3581 | for as_dir in $PATH | ||
3582 | do | ||
3583 | IFS=$as_save_IFS | ||
3584 | test -z "$as_dir" && as_dir=. | ||
3585 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
3586 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
3587 | if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then | ||
3588 | ac_prog_rejected=yes | ||
3589 | continue | ||
3590 | fi | ||
3591 | ac_cv_prog_CC="cc" | ||
3592 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
3593 | break 2 | ||
3594 | fi | ||
3595 | done | ||
3596 | done | ||
3597 | IFS=$as_save_IFS | ||
3598 | |||
3599 | if test $ac_prog_rejected = yes; then | ||
3600 | # We found a bogon in the path, so make sure we never use it. | ||
3601 | set dummy $ac_cv_prog_CC | ||
3602 | shift | ||
3603 | if test $# != 0; then | ||
3604 | # We chose a different compiler from the bogus one. | ||
3605 | # However, it has the same basename, so the bogon will be chosen | ||
3606 | # first if we set CC to just the basename; use the full file name. | ||
3607 | shift | ||
3608 | ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" | ||
3609 | fi | ||
3610 | fi | ||
3611 | fi | ||
3612 | fi | ||
3613 | CC=$ac_cv_prog_CC | ||
3614 | if test -n "$CC"; then | ||
3615 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 | ||
3616 | $as_echo "$CC" >&6; } | ||
3617 | else | ||
3618 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
3619 | $as_echo "no" >&6; } | ||
3620 | fi | ||
3621 | |||
3622 | |||
3623 | fi | ||
3624 | if test -z "$CC"; then | ||
3625 | if test -n "$ac_tool_prefix"; then | ||
3626 | for ac_prog in cl.exe | ||
3627 | do | ||
3628 | # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. | ||
3629 | set dummy $ac_tool_prefix$ac_prog; ac_word=$2 | ||
3630 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
3631 | $as_echo_n "checking for $ac_word... " >&6; } | ||
3632 | if test "${ac_cv_prog_CC+set}" = set; then : | ||
3633 | $as_echo_n "(cached) " >&6 | ||
3634 | else | ||
3635 | if test -n "$CC"; then | ||
3636 | ac_cv_prog_CC="$CC" # Let the user override the test. | ||
3637 | else | ||
3638 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
3639 | for as_dir in $PATH | ||
3640 | do | ||
3641 | IFS=$as_save_IFS | ||
3642 | test -z "$as_dir" && as_dir=. | ||
3643 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
3644 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
3645 | ac_cv_prog_CC="$ac_tool_prefix$ac_prog" | ||
3646 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
3647 | break 2 | ||
3648 | fi | ||
3649 | done | ||
3650 | done | ||
3651 | IFS=$as_save_IFS | ||
3652 | |||
3653 | fi | ||
3654 | fi | ||
3655 | CC=$ac_cv_prog_CC | ||
3656 | if test -n "$CC"; then | ||
3657 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 | ||
3658 | $as_echo "$CC" >&6; } | ||
3659 | else | ||
3660 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
3661 | $as_echo "no" >&6; } | ||
3662 | fi | ||
3663 | |||
3664 | |||
3665 | test -n "$CC" && break | ||
3666 | done | ||
3667 | fi | ||
3668 | if test -z "$CC"; then | ||
3669 | ac_ct_CC=$CC | ||
3670 | for ac_prog in cl.exe | ||
3671 | do | ||
3672 | # Extract the first word of "$ac_prog", so it can be a program name with args. | ||
3673 | set dummy $ac_prog; ac_word=$2 | ||
3674 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
3675 | $as_echo_n "checking for $ac_word... " >&6; } | ||
3676 | if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : | ||
3677 | $as_echo_n "(cached) " >&6 | ||
3678 | else | ||
3679 | if test -n "$ac_ct_CC"; then | ||
3680 | ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. | ||
3681 | else | ||
3682 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
3683 | for as_dir in $PATH | ||
3684 | do | ||
3685 | IFS=$as_save_IFS | ||
3686 | test -z "$as_dir" && as_dir=. | ||
3687 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
3688 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
3689 | ac_cv_prog_ac_ct_CC="$ac_prog" | ||
3690 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
3691 | break 2 | ||
3692 | fi | ||
3693 | done | ||
3694 | done | ||
3695 | IFS=$as_save_IFS | ||
3696 | |||
3697 | fi | ||
3698 | fi | ||
3699 | ac_ct_CC=$ac_cv_prog_ac_ct_CC | ||
3700 | if test -n "$ac_ct_CC"; then | ||
3701 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 | ||
3702 | $as_echo "$ac_ct_CC" >&6; } | ||
3703 | else | ||
3704 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
3705 | $as_echo "no" >&6; } | ||
3706 | fi | ||
3707 | |||
3708 | |||
3709 | test -n "$ac_ct_CC" && break | ||
3710 | done | ||
3711 | |||
3712 | if test "x$ac_ct_CC" = x; then | ||
3713 | CC="" | ||
3714 | else | ||
3715 | case $cross_compiling:$ac_tool_warned in | ||
3716 | yes:) | ||
3717 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | ||
3718 | $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | ||
3719 | ac_tool_warned=yes ;; | ||
3720 | esac | ||
3721 | CC=$ac_ct_CC | ||
3722 | fi | ||
3723 | fi | ||
3724 | |||
3725 | fi | ||
3726 | |||
3727 | |||
3728 | test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 | ||
3729 | $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} | ||
3730 | as_fn_error $? "no acceptable C compiler found in \$PATH | ||
3731 | See \`config.log' for more details" "$LINENO" 5 ; } | ||
3732 | |||
3733 | # Provide some information about the compiler. | ||
3734 | $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 | ||
3735 | set X $ac_compile | ||
3736 | ac_compiler=$2 | ||
3737 | for ac_option in --version -v -V -qversion; do | ||
3738 | { { ac_try="$ac_compiler $ac_option >&5" | ||
3739 | case "(($ac_try" in | ||
3740 | *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | ||
3741 | *) ac_try_echo=$ac_try;; | ||
3742 | esac | ||
3743 | eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" | ||
3744 | $as_echo "$ac_try_echo"; } >&5 | ||
3745 | (eval "$ac_compiler $ac_option >&5") 2>conftest.err | ||
3746 | ac_status=$? | ||
3747 | if test -s conftest.err; then | ||
3748 | sed '10a\ | ||
3749 | ... rest of stderr output deleted ... | ||
3750 | 10q' conftest.err >conftest.er1 | ||
3751 | cat conftest.er1 >&5 | ||
3752 | fi | ||
3753 | rm -f conftest.er1 conftest.err | ||
3754 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
3755 | test $ac_status = 0; } | ||
3756 | done | ||
3757 | |||
3758 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
3759 | /* end confdefs.h. */ | ||
3760 | |||
3761 | int | ||
3762 | main () | ||
3763 | { | ||
3764 | |||
3765 | ; | ||
3766 | return 0; | ||
3767 | } | ||
3768 | _ACEOF | ||
3769 | ac_clean_files_save=$ac_clean_files | ||
3770 | ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" | ||
3771 | # Try to create an executable without -o first, disregard a.out. | ||
3772 | # It will help us diagnose broken compilers, and finding out an intuition | ||
3773 | # of exeext. | ||
3774 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 | ||
3775 | $as_echo_n "checking whether the C compiler works... " >&6; } | ||
3776 | ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` | ||
3777 | |||
3778 | # The possible output files: | ||
3779 | ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" | ||
3780 | |||
3781 | ac_rmfiles= | ||
3782 | for ac_file in $ac_files | ||
3783 | do | ||
3784 | case $ac_file in | ||
3785 | *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; | ||
3786 | * ) ac_rmfiles="$ac_rmfiles $ac_file";; | ||
3787 | esac | ||
3788 | done | ||
3789 | rm -f $ac_rmfiles | ||
3790 | |||
3791 | if { { ac_try="$ac_link_default" | ||
3792 | case "(($ac_try" in | ||
3793 | *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | ||
3794 | *) ac_try_echo=$ac_try;; | ||
3795 | esac | ||
3796 | eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" | ||
3797 | $as_echo "$ac_try_echo"; } >&5 | ||
3798 | (eval "$ac_link_default") 2>&5 | ||
3799 | ac_status=$? | ||
3800 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
3801 | test $ac_status = 0; }; then : | ||
3802 | # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. | ||
3803 | # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' | ||
3804 | # in a Makefile. We should not override ac_cv_exeext if it was cached, | ||
3805 | # so that the user can short-circuit this test for compilers unknown to | ||
3806 | # Autoconf. | ||
3807 | for ac_file in $ac_files '' | ||
3808 | do | ||
3809 | test -f "$ac_file" || continue | ||
3810 | case $ac_file in | ||
3811 | *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) | ||
3812 | ;; | ||
3813 | [ab].out ) | ||
3814 | # We found the default executable, but exeext='' is most | ||
3815 | # certainly right. | ||
3816 | break;; | ||
3817 | *.* ) | ||
3818 | if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; | ||
3819 | then :; else | ||
3820 | ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` | ||
3821 | fi | ||
3822 | # We set ac_cv_exeext here because the later test for it is not | ||
3823 | # safe: cross compilers may not add the suffix if given an `-o' | ||
3824 | # argument, so we may need to know it at that point already. | ||
3825 | # Even if this section looks crufty: it has the advantage of | ||
3826 | # actually working. | ||
3827 | break;; | ||
3828 | * ) | ||
3829 | break;; | ||
3830 | esac | ||
3831 | done | ||
3832 | test "$ac_cv_exeext" = no && ac_cv_exeext= | ||
3833 | |||
3834 | else | ||
3835 | ac_file='' | ||
3836 | fi | ||
3837 | if test -z "$ac_file"; then : | ||
3838 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
3839 | $as_echo "no" >&6; } | ||
3840 | $as_echo "$as_me: failed program was:" >&5 | ||
3841 | sed 's/^/| /' conftest.$ac_ext >&5 | ||
3842 | |||
3843 | { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 | ||
3844 | $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} | ||
3845 | as_fn_error 77 "C compiler cannot create executables | ||
3846 | See \`config.log' for more details" "$LINENO" 5 ; } | ||
3847 | else | ||
3848 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
3849 | $as_echo "yes" >&6; } | ||
3850 | fi | ||
3851 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 | ||
3852 | $as_echo_n "checking for C compiler default output file name... " >&6; } | ||
3853 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 | ||
3854 | $as_echo "$ac_file" >&6; } | ||
3855 | ac_exeext=$ac_cv_exeext | ||
3856 | |||
3857 | rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out | ||
3858 | ac_clean_files=$ac_clean_files_save | ||
3859 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 | ||
3860 | $as_echo_n "checking for suffix of executables... " >&6; } | ||
3861 | if { { ac_try="$ac_link" | ||
3862 | case "(($ac_try" in | ||
3863 | *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | ||
3864 | *) ac_try_echo=$ac_try;; | ||
3865 | esac | ||
3866 | eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" | ||
3867 | $as_echo "$ac_try_echo"; } >&5 | ||
3868 | (eval "$ac_link") 2>&5 | ||
3869 | ac_status=$? | ||
3870 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
3871 | test $ac_status = 0; }; then : | ||
3872 | # If both `conftest.exe' and `conftest' are `present' (well, observable) | ||
3873 | # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will | ||
3874 | # work properly (i.e., refer to `conftest.exe'), while it won't with | ||
3875 | # `rm'. | ||
3876 | for ac_file in conftest.exe conftest conftest.*; do | ||
3877 | test -f "$ac_file" || continue | ||
3878 | case $ac_file in | ||
3879 | *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; | ||
3880 | *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` | ||
3881 | break;; | ||
3882 | * ) break;; | ||
3883 | esac | ||
3884 | done | ||
3885 | else | ||
3886 | { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 | ||
3887 | $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} | ||
3888 | as_fn_error $? "cannot compute suffix of executables: cannot compile and link | ||
3889 | See \`config.log' for more details" "$LINENO" 5 ; } | ||
3890 | fi | ||
3891 | rm -f conftest conftest$ac_cv_exeext | ||
3892 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 | ||
3893 | $as_echo "$ac_cv_exeext" >&6; } | ||
3894 | |||
3895 | rm -f conftest.$ac_ext | ||
3896 | EXEEXT=$ac_cv_exeext | ||
3897 | ac_exeext=$EXEEXT | ||
3898 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
3899 | /* end confdefs.h. */ | ||
3900 | #include <stdio.h> | ||
3901 | int | ||
3902 | main () | ||
3903 | { | ||
3904 | FILE *f = fopen ("conftest.out", "w"); | ||
3905 | return ferror (f) || fclose (f) != 0; | ||
3906 | |||
3907 | ; | ||
3908 | return 0; | ||
3909 | } | ||
3910 | _ACEOF | ||
3911 | ac_clean_files="$ac_clean_files conftest.out" | ||
3912 | # Check that the compiler produces executables we can run. If not, either | ||
3913 | # the compiler is broken, or we cross compile. | ||
3914 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 | ||
3915 | $as_echo_n "checking whether we are cross compiling... " >&6; } | ||
3916 | if test "$cross_compiling" != yes; then | ||
3917 | { { ac_try="$ac_link" | ||
3918 | case "(($ac_try" in | ||
3919 | *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | ||
3920 | *) ac_try_echo=$ac_try;; | ||
3921 | esac | ||
3922 | eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" | ||
3923 | $as_echo "$ac_try_echo"; } >&5 | ||
3924 | (eval "$ac_link") 2>&5 | ||
3925 | ac_status=$? | ||
3926 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
3927 | test $ac_status = 0; } | ||
3928 | if { ac_try='./conftest$ac_cv_exeext' | ||
3929 | { { case "(($ac_try" in | ||
3930 | *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | ||
3931 | *) ac_try_echo=$ac_try;; | ||
3932 | esac | ||
3933 | eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" | ||
3934 | $as_echo "$ac_try_echo"; } >&5 | ||
3935 | (eval "$ac_try") 2>&5 | ||
3936 | ac_status=$? | ||
3937 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
3938 | test $ac_status = 0; }; }; then | ||
3939 | cross_compiling=no | ||
3940 | else | ||
3941 | if test "$cross_compiling" = maybe; then | ||
3942 | cross_compiling=yes | ||
3943 | else | ||
3944 | { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 | ||
3945 | $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} | ||
3946 | as_fn_error $? "cannot run C compiled programs. | ||
3947 | If you meant to cross compile, use \`--host'. | ||
3948 | See \`config.log' for more details" "$LINENO" 5 ; } | ||
3949 | fi | ||
3950 | fi | ||
3951 | fi | ||
3952 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 | ||
3953 | $as_echo "$cross_compiling" >&6; } | ||
3954 | |||
3955 | rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out | ||
3956 | ac_clean_files=$ac_clean_files_save | ||
3957 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 | ||
3958 | $as_echo_n "checking for suffix of object files... " >&6; } | ||
3959 | if test "${ac_cv_objext+set}" = set; then : | ||
3960 | $as_echo_n "(cached) " >&6 | ||
3961 | else | ||
3962 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
3963 | /* end confdefs.h. */ | ||
3964 | |||
3965 | int | ||
3966 | main () | ||
3967 | { | ||
3968 | |||
3969 | ; | ||
3970 | return 0; | ||
3971 | } | ||
3972 | _ACEOF | ||
3973 | rm -f conftest.o conftest.obj | ||
3974 | if { { ac_try="$ac_compile" | ||
3975 | case "(($ac_try" in | ||
3976 | *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | ||
3977 | *) ac_try_echo=$ac_try;; | ||
3978 | esac | ||
3979 | eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" | ||
3980 | $as_echo "$ac_try_echo"; } >&5 | ||
3981 | (eval "$ac_compile") 2>&5 | ||
3982 | ac_status=$? | ||
3983 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
3984 | test $ac_status = 0; }; then : | ||
3985 | for ac_file in conftest.o conftest.obj conftest.*; do | ||
3986 | test -f "$ac_file" || continue; | ||
3987 | case $ac_file in | ||
3988 | *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; | ||
3989 | *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` | ||
3990 | break;; | ||
3991 | esac | ||
3992 | done | ||
3993 | else | ||
3994 | $as_echo "$as_me: failed program was:" >&5 | ||
3995 | sed 's/^/| /' conftest.$ac_ext >&5 | ||
3996 | |||
3997 | { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 | ||
3998 | $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} | ||
3999 | as_fn_error $? "cannot compute suffix of object files: cannot compile | ||
4000 | See \`config.log' for more details" "$LINENO" 5 ; } | ||
4001 | fi | ||
4002 | rm -f conftest.$ac_cv_objext conftest.$ac_ext | ||
4003 | fi | ||
4004 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 | ||
4005 | $as_echo "$ac_cv_objext" >&6; } | ||
4006 | OBJEXT=$ac_cv_objext | ||
4007 | ac_objext=$OBJEXT | ||
4008 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 | ||
4009 | $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } | ||
4010 | if test "${ac_cv_c_compiler_gnu+set}" = set; then : | ||
4011 | $as_echo_n "(cached) " >&6 | ||
4012 | else | ||
4013 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
4014 | /* end confdefs.h. */ | ||
4015 | |||
4016 | int | ||
4017 | main () | ||
4018 | { | ||
4019 | #ifndef __GNUC__ | ||
4020 | choke me | ||
4021 | #endif | ||
4022 | |||
4023 | ; | ||
4024 | return 0; | ||
4025 | } | ||
4026 | _ACEOF | ||
4027 | if ac_fn_c_try_compile "$LINENO"; then : | ||
4028 | ac_compiler_gnu=yes | ||
4029 | else | ||
4030 | ac_compiler_gnu=no | ||
4031 | fi | ||
4032 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
4033 | ac_cv_c_compiler_gnu=$ac_compiler_gnu | ||
4034 | |||
4035 | fi | ||
4036 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 | ||
4037 | $as_echo "$ac_cv_c_compiler_gnu" >&6; } | ||
4038 | if test $ac_compiler_gnu = yes; then | ||
4039 | GCC=yes | ||
4040 | else | ||
4041 | GCC= | ||
4042 | fi | ||
4043 | ac_test_CFLAGS=${CFLAGS+set} | ||
4044 | ac_save_CFLAGS=$CFLAGS | ||
4045 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 | ||
4046 | $as_echo_n "checking whether $CC accepts -g... " >&6; } | ||
4047 | if test "${ac_cv_prog_cc_g+set}" = set; then : | ||
4048 | $as_echo_n "(cached) " >&6 | ||
4049 | else | ||
4050 | ac_save_c_werror_flag=$ac_c_werror_flag | ||
4051 | ac_c_werror_flag=yes | ||
4052 | ac_cv_prog_cc_g=no | ||
4053 | CFLAGS="-g" | ||
4054 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
4055 | /* end confdefs.h. */ | ||
4056 | |||
4057 | int | ||
4058 | main () | ||
4059 | { | ||
4060 | |||
4061 | ; | ||
4062 | return 0; | ||
4063 | } | ||
4064 | _ACEOF | ||
4065 | if ac_fn_c_try_compile "$LINENO"; then : | ||
4066 | ac_cv_prog_cc_g=yes | ||
4067 | else | ||
4068 | CFLAGS="" | ||
4069 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
4070 | /* end confdefs.h. */ | ||
4071 | |||
4072 | int | ||
4073 | main () | ||
4074 | { | ||
4075 | |||
4076 | ; | ||
4077 | return 0; | ||
4078 | } | ||
4079 | _ACEOF | ||
4080 | if ac_fn_c_try_compile "$LINENO"; then : | ||
4081 | |||
4082 | else | ||
4083 | ac_c_werror_flag=$ac_save_c_werror_flag | ||
4084 | CFLAGS="-g" | ||
4085 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
4086 | /* end confdefs.h. */ | ||
4087 | |||
4088 | int | ||
4089 | main () | ||
4090 | { | ||
4091 | |||
4092 | ; | ||
4093 | return 0; | ||
4094 | } | ||
4095 | _ACEOF | ||
4096 | if ac_fn_c_try_compile "$LINENO"; then : | ||
4097 | ac_cv_prog_cc_g=yes | ||
4098 | fi | ||
4099 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
4100 | fi | ||
4101 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
4102 | fi | ||
4103 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
4104 | ac_c_werror_flag=$ac_save_c_werror_flag | ||
4105 | fi | ||
4106 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 | ||
4107 | $as_echo "$ac_cv_prog_cc_g" >&6; } | ||
4108 | if test "$ac_test_CFLAGS" = set; then | ||
4109 | CFLAGS=$ac_save_CFLAGS | ||
4110 | elif test $ac_cv_prog_cc_g = yes; then | ||
4111 | if test "$GCC" = yes; then | ||
4112 | CFLAGS="-g -O2" | ||
4113 | else | ||
4114 | CFLAGS="-g" | ||
4115 | fi | ||
4116 | else | ||
4117 | if test "$GCC" = yes; then | ||
4118 | CFLAGS="-O2" | ||
4119 | else | ||
4120 | CFLAGS= | ||
4121 | fi | ||
4122 | fi | ||
4123 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 | ||
4124 | $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } | ||
4125 | if test "${ac_cv_prog_cc_c89+set}" = set; then : | ||
4126 | $as_echo_n "(cached) " >&6 | ||
4127 | else | ||
4128 | ac_cv_prog_cc_c89=no | ||
4129 | ac_save_CC=$CC | ||
4130 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
4131 | /* end confdefs.h. */ | ||
4132 | #include <stdarg.h> | ||
4133 | #include <stdio.h> | ||
4134 | #include <sys/types.h> | ||
4135 | #include <sys/stat.h> | ||
4136 | /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ | ||
4137 | struct buf { int x; }; | ||
4138 | FILE * (*rcsopen) (struct buf *, struct stat *, int); | ||
4139 | static char *e (p, i) | ||
4140 | char **p; | ||
4141 | int i; | ||
4142 | { | ||
4143 | return p[i]; | ||
4144 | } | ||
4145 | static char *f (char * (*g) (char **, int), char **p, ...) | ||
4146 | { | ||
4147 | char *s; | ||
4148 | va_list v; | ||
4149 | va_start (v,p); | ||
4150 | s = g (p, va_arg (v,int)); | ||
4151 | va_end (v); | ||
4152 | return s; | ||
4153 | } | ||
4154 | |||
4155 | /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has | ||
4156 | function prototypes and stuff, but not '\xHH' hex character constants. | ||
4157 | These don't provoke an error unfortunately, instead are silently treated | ||
4158 | as 'x'. The following induces an error, until -std is added to get | ||
4159 | proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an | ||
4160 | array size at least. It's necessary to write '\x00'==0 to get something | ||
4161 | that's true only with -std. */ | ||
4162 | int osf4_cc_array ['\x00' == 0 ? 1 : -1]; | ||
4163 | |||
4164 | /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters | ||
4165 | inside strings and character constants. */ | ||
4166 | #define FOO(x) 'x' | ||
4167 | int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; | ||
4168 | |||
4169 | int test (int i, double x); | ||
4170 | struct s1 {int (*f) (int a);}; | ||
4171 | struct s2 {int (*f) (double a);}; | ||
4172 | int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); | ||
4173 | int argc; | ||
4174 | char **argv; | ||
4175 | int | ||
4176 | main () | ||
4177 | { | ||
4178 | return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; | ||
4179 | ; | ||
4180 | return 0; | ||
4181 | } | ||
4182 | _ACEOF | ||
4183 | for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ | ||
4184 | -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" | ||
4185 | do | ||
4186 | CC="$ac_save_CC $ac_arg" | ||
4187 | if ac_fn_c_try_compile "$LINENO"; then : | ||
4188 | ac_cv_prog_cc_c89=$ac_arg | ||
4189 | fi | ||
4190 | rm -f core conftest.err conftest.$ac_objext | ||
4191 | test "x$ac_cv_prog_cc_c89" != "xno" && break | ||
4192 | done | ||
4193 | rm -f conftest.$ac_ext | ||
4194 | CC=$ac_save_CC | ||
4195 | |||
4196 | fi | ||
4197 | # AC_CACHE_VAL | ||
4198 | case "x$ac_cv_prog_cc_c89" in | ||
4199 | x) | ||
4200 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 | ||
4201 | $as_echo "none needed" >&6; } ;; | ||
4202 | xno) | ||
4203 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 | ||
4204 | $as_echo "unsupported" >&6; } ;; | ||
4205 | *) | ||
4206 | CC="$CC $ac_cv_prog_cc_c89" | ||
4207 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 | ||
4208 | $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; | ||
4209 | esac | ||
4210 | if test "x$ac_cv_prog_cc_c89" != xno; then : | ||
4211 | |||
4212 | fi | ||
4213 | |||
4214 | ac_ext=c | ||
4215 | ac_cpp='$CPP $CPPFLAGS' | ||
4216 | ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' | ||
4217 | ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | ||
4218 | ac_compiler_gnu=$ac_cv_c_compiler_gnu | ||
4219 | |||
4220 | depcc="$CC" am_compiler_list= | ||
4221 | |||
4222 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 | ||
4223 | $as_echo_n "checking dependency style of $depcc... " >&6; } | ||
4224 | if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : | ||
4225 | $as_echo_n "(cached) " >&6 | ||
4226 | else | ||
4227 | if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then | ||
4228 | # We make a subdir and do the tests there. Otherwise we can end up | ||
4229 | # making bogus files that we don't know about and never remove. For | ||
4230 | # instance it was reported that on HP-UX the gcc test will end up | ||
4231 | # making a dummy file named `D' -- because `-MD' means `put the output | ||
4232 | # in D'. | ||
4233 | mkdir conftest.dir | ||
4234 | # Copy depcomp to subdir because otherwise we won't find it if we're | ||
4235 | # using a relative directory. | ||
4236 | cp "$am_depcomp" conftest.dir | ||
4237 | cd conftest.dir | ||
4238 | # We will build objects and dependencies in a subdirectory because | ||
4239 | # it helps to detect inapplicable dependency modes. For instance | ||
4240 | # both Tru64's cc and ICC support -MD to output dependencies as a | ||
4241 | # side effect of compilation, but ICC will put the dependencies in | ||
4242 | # the current directory while Tru64 will put them in the object | ||
4243 | # directory. | ||
4244 | mkdir sub | ||
4245 | |||
4246 | am_cv_CC_dependencies_compiler_type=none | ||
4247 | if test "$am_compiler_list" = ""; then | ||
4248 | am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` | ||
4249 | fi | ||
4250 | am__universal=false | ||
4251 | case " $depcc " in #( | ||
4252 | *\ -arch\ *\ -arch\ *) am__universal=true ;; | ||
4253 | esac | ||
4254 | |||
4255 | for depmode in $am_compiler_list; do | ||
4256 | # Setup a source with many dependencies, because some compilers | ||
4257 | # like to wrap large dependency lists on column 80 (with \), and | ||
4258 | # we should not choose a depcomp mode which is confused by this. | ||
4259 | # | ||
4260 | # We need to recreate these files for each test, as the compiler may | ||
4261 | # overwrite some of them when testing with obscure command lines. | ||
4262 | # This happens at least with the AIX C compiler. | ||
4263 | : > sub/conftest.c | ||
4264 | for i in 1 2 3 4 5 6; do | ||
4265 | echo '#include "conftst'$i'.h"' >> sub/conftest.c | ||
4266 | # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with | ||
4267 | # Solaris 8's {/usr,}/bin/sh. | ||
4268 | touch sub/conftst$i.h | ||
4269 | done | ||
4270 | echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf | ||
4271 | |||
4272 | # We check with `-c' and `-o' for the sake of the "dashmstdout" | ||
4273 | # mode. It turns out that the SunPro C++ compiler does not properly | ||
4274 | # handle `-M -o', and we need to detect this. Also, some Intel | ||
4275 | # versions had trouble with output in subdirs | ||
4276 | am__obj=sub/conftest.${OBJEXT-o} | ||
4277 | am__minus_obj="-o $am__obj" | ||
4278 | case $depmode in | ||
4279 | gcc) | ||
4280 | # This depmode causes a compiler race in universal mode. | ||
4281 | test "$am__universal" = false || continue | ||
4282 | ;; | ||
4283 | nosideeffect) | ||
4284 | # after this tag, mechanisms are not by side-effect, so they'll | ||
4285 | # only be used when explicitly requested | ||
4286 | if test "x$enable_dependency_tracking" = xyes; then | ||
4287 | continue | ||
4288 | else | ||
4289 | break | ||
4290 | fi | ||
4291 | ;; | ||
4292 | msvisualcpp | msvcmsys) | ||
4293 | # This compiler won't grok `-c -o', but also, the minuso test has | ||
4294 | # not run yet. These depmodes are late enough in the game, and | ||
4295 | # so weak that their functioning should not be impacted. | ||
4296 | am__obj=conftest.${OBJEXT-o} | ||
4297 | am__minus_obj= | ||
4298 | ;; | ||
4299 | none) break ;; | ||
4300 | esac | ||
4301 | if depmode=$depmode \ | ||
4302 | source=sub/conftest.c object=$am__obj \ | ||
4303 | depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ | ||
4304 | $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ | ||
4305 | >/dev/null 2>conftest.err && | ||
4306 | grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && | ||
4307 | grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && | ||
4308 | grep $am__obj sub/conftest.Po > /dev/null 2>&1 && | ||
4309 | ${MAKE-make} -s -f confmf > /dev/null 2>&1; then | ||
4310 | # icc doesn't choke on unknown options, it will just issue warnings | ||
4311 | # or remarks (even with -Werror). So we grep stderr for any message | ||
4312 | # that says an option was ignored or not supported. | ||
4313 | # When given -MP, icc 7.0 and 7.1 complain thusly: | ||
4314 | # icc: Command line warning: ignoring option '-M'; no argument required | ||
4315 | # The diagnosis changed in icc 8.0: | ||
4316 | # icc: Command line remark: option '-MP' not supported | ||
4317 | if (grep 'ignoring option' conftest.err || | ||
4318 | grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else | ||
4319 | am_cv_CC_dependencies_compiler_type=$depmode | ||
4320 | break | ||
4321 | fi | ||
4322 | fi | ||
4323 | done | ||
4324 | |||
4325 | cd .. | ||
4326 | rm -rf conftest.dir | ||
4327 | else | ||
4328 | am_cv_CC_dependencies_compiler_type=none | ||
4329 | fi | ||
4330 | |||
4331 | fi | ||
4332 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 | ||
4333 | $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } | ||
4334 | CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type | ||
4335 | |||
4336 | if | ||
4337 | test "x$enable_dependency_tracking" != xno \ | ||
4338 | && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then | ||
4339 | am__fastdepCC_TRUE= | ||
4340 | am__fastdepCC_FALSE='#' | ||
4341 | else | ||
4342 | am__fastdepCC_TRUE='#' | ||
4343 | am__fastdepCC_FALSE= | ||
4344 | fi | ||
4345 | |||
4346 | |||
4347 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 | ||
4348 | $as_echo_n "checking for a sed that does not truncate output... " >&6; } | ||
4349 | if test "${ac_cv_path_SED+set}" = set; then : | ||
4350 | $as_echo_n "(cached) " >&6 | ||
4351 | else | ||
4352 | ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ | ||
4353 | for ac_i in 1 2 3 4 5 6 7; do | ||
4354 | ac_script="$ac_script$as_nl$ac_script" | ||
4355 | done | ||
4356 | echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed | ||
4357 | { ac_script=; unset ac_script;} | ||
4358 | if test -z "$SED"; then | ||
4359 | ac_path_SED_found=false | ||
4360 | # Loop through the user's path and test for each of PROGNAME-LIST | ||
4361 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
4362 | for as_dir in $PATH | ||
4363 | do | ||
4364 | IFS=$as_save_IFS | ||
4365 | test -z "$as_dir" && as_dir=. | ||
4366 | for ac_prog in sed gsed; do | ||
4367 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
4368 | ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" | ||
4369 | { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue | ||
4370 | # Check for GNU ac_path_SED and select it if it is found. | ||
4371 | # Check for GNU $ac_path_SED | ||
4372 | case `"$ac_path_SED" --version 2>&1` in | ||
4373 | *GNU*) | ||
4374 | ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; | ||
4375 | *) | ||
4376 | ac_count=0 | ||
4377 | $as_echo_n 0123456789 >"conftest.in" | ||
4378 | while : | ||
4379 | do | ||
4380 | cat "conftest.in" "conftest.in" >"conftest.tmp" | ||
4381 | mv "conftest.tmp" "conftest.in" | ||
4382 | cp "conftest.in" "conftest.nl" | ||
4383 | $as_echo '' >> "conftest.nl" | ||
4384 | "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break | ||
4385 | diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break | ||
4386 | as_fn_arith $ac_count + 1 && ac_count=$as_val | ||
4387 | if test $ac_count -gt ${ac_path_SED_max-0}; then | ||
4388 | # Best one so far, save it but keep looking for a better one | ||
4389 | ac_cv_path_SED="$ac_path_SED" | ||
4390 | ac_path_SED_max=$ac_count | ||
4391 | fi | ||
4392 | # 10*(2^10) chars as input seems more than enough | ||
4393 | test $ac_count -gt 10 && break | ||
4394 | done | ||
4395 | rm -f conftest.in conftest.tmp conftest.nl conftest.out;; | ||
4396 | esac | ||
4397 | |||
4398 | $ac_path_SED_found && break 3 | ||
4399 | done | ||
4400 | done | ||
4401 | done | ||
4402 | IFS=$as_save_IFS | ||
4403 | if test -z "$ac_cv_path_SED"; then | ||
4404 | as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 | ||
4405 | fi | ||
4406 | else | ||
4407 | ac_cv_path_SED=$SED | ||
4408 | fi | ||
4409 | |||
4410 | fi | ||
4411 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 | ||
4412 | $as_echo "$ac_cv_path_SED" >&6; } | ||
4413 | SED="$ac_cv_path_SED" | ||
4414 | rm -f conftest.sed | ||
4415 | |||
4416 | test -z "$SED" && SED=sed | ||
4417 | Xsed="$SED -e 1s/^X//" | ||
4418 | |||
4419 | |||
4420 | |||
4421 | |||
4422 | |||
4423 | |||
4424 | |||
4425 | |||
4426 | |||
4427 | |||
4428 | |||
4429 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 | ||
4430 | $as_echo_n "checking for grep that handles long lines and -e... " >&6; } | ||
4431 | if test "${ac_cv_path_GREP+set}" = set; then : | ||
4432 | $as_echo_n "(cached) " >&6 | ||
4433 | else | ||
4434 | if test -z "$GREP"; then | ||
4435 | ac_path_GREP_found=false | ||
4436 | # Loop through the user's path and test for each of PROGNAME-LIST | ||
4437 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
4438 | for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin | ||
4439 | do | ||
4440 | IFS=$as_save_IFS | ||
4441 | test -z "$as_dir" && as_dir=. | ||
4442 | for ac_prog in grep ggrep; do | ||
4443 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
4444 | ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" | ||
4445 | { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue | ||
4446 | # Check for GNU ac_path_GREP and select it if it is found. | ||
4447 | # Check for GNU $ac_path_GREP | ||
4448 | case `"$ac_path_GREP" --version 2>&1` in | ||
4449 | *GNU*) | ||
4450 | ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; | ||
4451 | *) | ||
4452 | ac_count=0 | ||
4453 | $as_echo_n 0123456789 >"conftest.in" | ||
4454 | while : | ||
4455 | do | ||
4456 | cat "conftest.in" "conftest.in" >"conftest.tmp" | ||
4457 | mv "conftest.tmp" "conftest.in" | ||
4458 | cp "conftest.in" "conftest.nl" | ||
4459 | $as_echo 'GREP' >> "conftest.nl" | ||
4460 | "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break | ||
4461 | diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break | ||
4462 | as_fn_arith $ac_count + 1 && ac_count=$as_val | ||
4463 | if test $ac_count -gt ${ac_path_GREP_max-0}; then | ||
4464 | # Best one so far, save it but keep looking for a better one | ||
4465 | ac_cv_path_GREP="$ac_path_GREP" | ||
4466 | ac_path_GREP_max=$ac_count | ||
4467 | fi | ||
4468 | # 10*(2^10) chars as input seems more than enough | ||
4469 | test $ac_count -gt 10 && break | ||
4470 | done | ||
4471 | rm -f conftest.in conftest.tmp conftest.nl conftest.out;; | ||
4472 | esac | ||
4473 | |||
4474 | $ac_path_GREP_found && break 3 | ||
4475 | done | ||
4476 | done | ||
4477 | done | ||
4478 | IFS=$as_save_IFS | ||
4479 | if test -z "$ac_cv_path_GREP"; then | ||
4480 | as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 | ||
4481 | fi | ||
4482 | else | ||
4483 | ac_cv_path_GREP=$GREP | ||
4484 | fi | ||
4485 | |||
4486 | fi | ||
4487 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 | ||
4488 | $as_echo "$ac_cv_path_GREP" >&6; } | ||
4489 | GREP="$ac_cv_path_GREP" | ||
4490 | |||
4491 | |||
4492 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 | ||
4493 | $as_echo_n "checking for egrep... " >&6; } | ||
4494 | if test "${ac_cv_path_EGREP+set}" = set; then : | ||
4495 | $as_echo_n "(cached) " >&6 | ||
4496 | else | ||
4497 | if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 | ||
4498 | then ac_cv_path_EGREP="$GREP -E" | ||
4499 | else | ||
4500 | if test -z "$EGREP"; then | ||
4501 | ac_path_EGREP_found=false | ||
4502 | # Loop through the user's path and test for each of PROGNAME-LIST | ||
4503 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
4504 | for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin | ||
4505 | do | ||
4506 | IFS=$as_save_IFS | ||
4507 | test -z "$as_dir" && as_dir=. | ||
4508 | for ac_prog in egrep; do | ||
4509 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
4510 | ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" | ||
4511 | { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue | ||
4512 | # Check for GNU ac_path_EGREP and select it if it is found. | ||
4513 | # Check for GNU $ac_path_EGREP | ||
4514 | case `"$ac_path_EGREP" --version 2>&1` in | ||
4515 | *GNU*) | ||
4516 | ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; | ||
4517 | *) | ||
4518 | ac_count=0 | ||
4519 | $as_echo_n 0123456789 >"conftest.in" | ||
4520 | while : | ||
4521 | do | ||
4522 | cat "conftest.in" "conftest.in" >"conftest.tmp" | ||
4523 | mv "conftest.tmp" "conftest.in" | ||
4524 | cp "conftest.in" "conftest.nl" | ||
4525 | $as_echo 'EGREP' >> "conftest.nl" | ||
4526 | "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break | ||
4527 | diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break | ||
4528 | as_fn_arith $ac_count + 1 && ac_count=$as_val | ||
4529 | if test $ac_count -gt ${ac_path_EGREP_max-0}; then | ||
4530 | # Best one so far, save it but keep looking for a better one | ||
4531 | ac_cv_path_EGREP="$ac_path_EGREP" | ||
4532 | ac_path_EGREP_max=$ac_count | ||
4533 | fi | ||
4534 | # 10*(2^10) chars as input seems more than enough | ||
4535 | test $ac_count -gt 10 && break | ||
4536 | done | ||
4537 | rm -f conftest.in conftest.tmp conftest.nl conftest.out;; | ||
4538 | esac | ||
4539 | |||
4540 | $ac_path_EGREP_found && break 3 | ||
4541 | done | ||
4542 | done | ||
4543 | done | ||
4544 | IFS=$as_save_IFS | ||
4545 | if test -z "$ac_cv_path_EGREP"; then | ||
4546 | as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 | ||
4547 | fi | ||
4548 | else | ||
4549 | ac_cv_path_EGREP=$EGREP | ||
4550 | fi | ||
4551 | |||
4552 | fi | ||
4553 | fi | ||
4554 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 | ||
4555 | $as_echo "$ac_cv_path_EGREP" >&6; } | ||
4556 | EGREP="$ac_cv_path_EGREP" | ||
4557 | |||
4558 | |||
4559 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 | ||
4560 | $as_echo_n "checking for fgrep... " >&6; } | ||
4561 | if test "${ac_cv_path_FGREP+set}" = set; then : | ||
4562 | $as_echo_n "(cached) " >&6 | ||
4563 | else | ||
4564 | if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 | ||
4565 | then ac_cv_path_FGREP="$GREP -F" | ||
4566 | else | ||
4567 | if test -z "$FGREP"; then | ||
4568 | ac_path_FGREP_found=false | ||
4569 | # Loop through the user's path and test for each of PROGNAME-LIST | ||
4570 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
4571 | for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin | ||
4572 | do | ||
4573 | IFS=$as_save_IFS | ||
4574 | test -z "$as_dir" && as_dir=. | ||
4575 | for ac_prog in fgrep; do | ||
4576 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
4577 | ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" | ||
4578 | { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue | ||
4579 | # Check for GNU ac_path_FGREP and select it if it is found. | ||
4580 | # Check for GNU $ac_path_FGREP | ||
4581 | case `"$ac_path_FGREP" --version 2>&1` in | ||
4582 | *GNU*) | ||
4583 | ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; | ||
4584 | *) | ||
4585 | ac_count=0 | ||
4586 | $as_echo_n 0123456789 >"conftest.in" | ||
4587 | while : | ||
4588 | do | ||
4589 | cat "conftest.in" "conftest.in" >"conftest.tmp" | ||
4590 | mv "conftest.tmp" "conftest.in" | ||
4591 | cp "conftest.in" "conftest.nl" | ||
4592 | $as_echo 'FGREP' >> "conftest.nl" | ||
4593 | "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break | ||
4594 | diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break | ||
4595 | as_fn_arith $ac_count + 1 && ac_count=$as_val | ||
4596 | if test $ac_count -gt ${ac_path_FGREP_max-0}; then | ||
4597 | # Best one so far, save it but keep looking for a better one | ||
4598 | ac_cv_path_FGREP="$ac_path_FGREP" | ||
4599 | ac_path_FGREP_max=$ac_count | ||
4600 | fi | ||
4601 | # 10*(2^10) chars as input seems more than enough | ||
4602 | test $ac_count -gt 10 && break | ||
4603 | done | ||
4604 | rm -f conftest.in conftest.tmp conftest.nl conftest.out;; | ||
4605 | esac | ||
4606 | |||
4607 | $ac_path_FGREP_found && break 3 | ||
4608 | done | ||
4609 | done | ||
4610 | done | ||
4611 | IFS=$as_save_IFS | ||
4612 | if test -z "$ac_cv_path_FGREP"; then | ||
4613 | as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 | ||
4614 | fi | ||
4615 | else | ||
4616 | ac_cv_path_FGREP=$FGREP | ||
4617 | fi | ||
4618 | |||
4619 | fi | ||
4620 | fi | ||
4621 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 | ||
4622 | $as_echo "$ac_cv_path_FGREP" >&6; } | ||
4623 | FGREP="$ac_cv_path_FGREP" | ||
4624 | |||
4625 | |||
4626 | test -z "$GREP" && GREP=grep | ||
4627 | |||
4628 | |||
4629 | |||
4630 | |||
4631 | |||
4632 | |||
4633 | |||
4634 | |||
4635 | |||
4636 | |||
4637 | |||
4638 | |||
4639 | |||
4640 | |||
4641 | |||
4642 | |||
4643 | |||
4644 | |||
4645 | |||
4646 | # Check whether --with-gnu-ld was given. | ||
4647 | if test "${with_gnu_ld+set}" = set; then : | ||
4648 | withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes | ||
4649 | else | ||
4650 | with_gnu_ld=no | ||
4651 | fi | ||
4652 | |||
4653 | ac_prog=ld | ||
4654 | if test "$GCC" = yes; then | ||
4655 | # Check if gcc -print-prog-name=ld gives a path. | ||
4656 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 | ||
4657 | $as_echo_n "checking for ld used by $CC... " >&6; } | ||
4658 | case $host in | ||
4659 | *-*-mingw*) | ||
4660 | # gcc leaves a trailing carriage return which upsets mingw | ||
4661 | ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; | ||
4662 | *) | ||
4663 | ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; | ||
4664 | esac | ||
4665 | case $ac_prog in | ||
4666 | # Accept absolute paths. | ||
4667 | [\\/]* | ?:[\\/]*) | ||
4668 | re_direlt='/[^/][^/]*/\.\./' | ||
4669 | # Canonicalize the pathname of ld | ||
4670 | ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` | ||
4671 | while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do | ||
4672 | ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` | ||
4673 | done | ||
4674 | test -z "$LD" && LD="$ac_prog" | ||
4675 | ;; | ||
4676 | "") | ||
4677 | # If it fails, then pretend we aren't using GCC. | ||
4678 | ac_prog=ld | ||
4679 | ;; | ||
4680 | *) | ||
4681 | # If it is relative, then search for the first ld in PATH. | ||
4682 | with_gnu_ld=unknown | ||
4683 | ;; | ||
4684 | esac | ||
4685 | elif test "$with_gnu_ld" = yes; then | ||
4686 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 | ||
4687 | $as_echo_n "checking for GNU ld... " >&6; } | ||
4688 | else | ||
4689 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 | ||
4690 | $as_echo_n "checking for non-GNU ld... " >&6; } | ||
4691 | fi | ||
4692 | if test "${lt_cv_path_LD+set}" = set; then : | ||
4693 | $as_echo_n "(cached) " >&6 | ||
4694 | else | ||
4695 | if test -z "$LD"; then | ||
4696 | lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR | ||
4697 | for ac_dir in $PATH; do | ||
4698 | IFS="$lt_save_ifs" | ||
4699 | test -z "$ac_dir" && ac_dir=. | ||
4700 | if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then | ||
4701 | lt_cv_path_LD="$ac_dir/$ac_prog" | ||
4702 | # Check to see if the program is GNU ld. I'd rather use --version, | ||
4703 | # but apparently some variants of GNU ld only accept -v. | ||
4704 | # Break only if it was the GNU/non-GNU ld that we prefer. | ||
4705 | case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in | ||
4706 | *GNU* | *'with BFD'*) | ||
4707 | test "$with_gnu_ld" != no && break | ||
4708 | ;; | ||
4709 | *) | ||
4710 | test "$with_gnu_ld" != yes && break | ||
4711 | ;; | ||
4712 | esac | ||
4713 | fi | ||
4714 | done | ||
4715 | IFS="$lt_save_ifs" | ||
4716 | else | ||
4717 | lt_cv_path_LD="$LD" # Let the user override the test with a path. | ||
4718 | fi | ||
4719 | fi | ||
4720 | |||
4721 | LD="$lt_cv_path_LD" | ||
4722 | if test -n "$LD"; then | ||
4723 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 | ||
4724 | $as_echo "$LD" >&6; } | ||
4725 | else | ||
4726 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
4727 | $as_echo "no" >&6; } | ||
4728 | fi | ||
4729 | test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 | ||
4730 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 | ||
4731 | $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } | ||
4732 | if test "${lt_cv_prog_gnu_ld+set}" = set; then : | ||
4733 | $as_echo_n "(cached) " >&6 | ||
4734 | else | ||
4735 | # I'd rather use --version here, but apparently some GNU lds only accept -v. | ||
4736 | case `$LD -v 2>&1 </dev/null` in | ||
4737 | *GNU* | *'with BFD'*) | ||
4738 | lt_cv_prog_gnu_ld=yes | ||
4739 | ;; | ||
4740 | *) | ||
4741 | lt_cv_prog_gnu_ld=no | ||
4742 | ;; | ||
4743 | esac | ||
4744 | fi | ||
4745 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5 | ||
4746 | $as_echo "$lt_cv_prog_gnu_ld" >&6; } | ||
4747 | with_gnu_ld=$lt_cv_prog_gnu_ld | ||
4748 | |||
4749 | |||
4750 | |||
4751 | |||
4752 | |||
4753 | |||
4754 | |||
4755 | |||
4756 | |||
4757 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 | ||
4758 | $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } | ||
4759 | if test "${lt_cv_path_NM+set}" = set; then : | ||
4760 | $as_echo_n "(cached) " >&6 | ||
4761 | else | ||
4762 | if test -n "$NM"; then | ||
4763 | # Let the user override the test. | ||
4764 | lt_cv_path_NM="$NM" | ||
4765 | else | ||
4766 | lt_nm_to_check="${ac_tool_prefix}nm" | ||
4767 | if test -n "$ac_tool_prefix" && test "$build" = "$host"; then | ||
4768 | lt_nm_to_check="$lt_nm_to_check nm" | ||
4769 | fi | ||
4770 | for lt_tmp_nm in $lt_nm_to_check; do | ||
4771 | lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR | ||
4772 | for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do | ||
4773 | IFS="$lt_save_ifs" | ||
4774 | test -z "$ac_dir" && ac_dir=. | ||
4775 | tmp_nm="$ac_dir/$lt_tmp_nm" | ||
4776 | if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then | ||
4777 | # Check to see if the nm accepts a BSD-compat flag. | ||
4778 | # Adding the `sed 1q' prevents false positives on HP-UX, which says: | ||
4779 | # nm: unknown option "B" ignored | ||
4780 | # Tru64's nm complains that /dev/null is an invalid object file | ||
4781 | case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in | ||
4782 | */dev/null* | *'Invalid file or object type'*) | ||
4783 | lt_cv_path_NM="$tmp_nm -B" | ||
4784 | break | ||
4785 | ;; | ||
4786 | *) | ||
4787 | case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in | ||
4788 | */dev/null*) | ||
4789 | lt_cv_path_NM="$tmp_nm -p" | ||
4790 | break | ||
4791 | ;; | ||
4792 | *) | ||
4793 | lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but | ||
4794 | continue # so that we can try to find one that supports BSD flags | ||
4795 | ;; | ||
4796 | esac | ||
4797 | ;; | ||
4798 | esac | ||
4799 | fi | ||
4800 | done | ||
4801 | IFS="$lt_save_ifs" | ||
4802 | done | ||
4803 | : ${lt_cv_path_NM=no} | ||
4804 | fi | ||
4805 | fi | ||
4806 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 | ||
4807 | $as_echo "$lt_cv_path_NM" >&6; } | ||
4808 | if test "$lt_cv_path_NM" != "no"; then | ||
4809 | NM="$lt_cv_path_NM" | ||
4810 | else | ||
4811 | # Didn't find any BSD compatible name lister, look for dumpbin. | ||
4812 | if test -n "$ac_tool_prefix"; then | ||
4813 | for ac_prog in "dumpbin -symbols" "link -dump -symbols" | ||
4814 | do | ||
4815 | # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. | ||
4816 | set dummy $ac_tool_prefix$ac_prog; ac_word=$2 | ||
4817 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
4818 | $as_echo_n "checking for $ac_word... " >&6; } | ||
4819 | if test "${ac_cv_prog_DUMPBIN+set}" = set; then : | ||
4820 | $as_echo_n "(cached) " >&6 | ||
4821 | else | ||
4822 | if test -n "$DUMPBIN"; then | ||
4823 | ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. | ||
4824 | else | ||
4825 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
4826 | for as_dir in $PATH | ||
4827 | do | ||
4828 | IFS=$as_save_IFS | ||
4829 | test -z "$as_dir" && as_dir=. | ||
4830 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
4831 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
4832 | ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" | ||
4833 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
4834 | break 2 | ||
4835 | fi | ||
4836 | done | ||
4837 | done | ||
4838 | IFS=$as_save_IFS | ||
4839 | |||
4840 | fi | ||
4841 | fi | ||
4842 | DUMPBIN=$ac_cv_prog_DUMPBIN | ||
4843 | if test -n "$DUMPBIN"; then | ||
4844 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 | ||
4845 | $as_echo "$DUMPBIN" >&6; } | ||
4846 | else | ||
4847 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
4848 | $as_echo "no" >&6; } | ||
4849 | fi | ||
4850 | |||
4851 | |||
4852 | test -n "$DUMPBIN" && break | ||
4853 | done | ||
4854 | fi | ||
4855 | if test -z "$DUMPBIN"; then | ||
4856 | ac_ct_DUMPBIN=$DUMPBIN | ||
4857 | for ac_prog in "dumpbin -symbols" "link -dump -symbols" | ||
4858 | do | ||
4859 | # Extract the first word of "$ac_prog", so it can be a program name with args. | ||
4860 | set dummy $ac_prog; ac_word=$2 | ||
4861 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
4862 | $as_echo_n "checking for $ac_word... " >&6; } | ||
4863 | if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : | ||
4864 | $as_echo_n "(cached) " >&6 | ||
4865 | else | ||
4866 | if test -n "$ac_ct_DUMPBIN"; then | ||
4867 | ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. | ||
4868 | else | ||
4869 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
4870 | for as_dir in $PATH | ||
4871 | do | ||
4872 | IFS=$as_save_IFS | ||
4873 | test -z "$as_dir" && as_dir=. | ||
4874 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
4875 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
4876 | ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" | ||
4877 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
4878 | break 2 | ||
4879 | fi | ||
4880 | done | ||
4881 | done | ||
4882 | IFS=$as_save_IFS | ||
4883 | |||
4884 | fi | ||
4885 | fi | ||
4886 | ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN | ||
4887 | if test -n "$ac_ct_DUMPBIN"; then | ||
4888 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 | ||
4889 | $as_echo "$ac_ct_DUMPBIN" >&6; } | ||
4890 | else | ||
4891 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
4892 | $as_echo "no" >&6; } | ||
4893 | fi | ||
4894 | |||
4895 | |||
4896 | test -n "$ac_ct_DUMPBIN" && break | ||
4897 | done | ||
4898 | |||
4899 | if test "x$ac_ct_DUMPBIN" = x; then | ||
4900 | DUMPBIN=":" | ||
4901 | else | ||
4902 | case $cross_compiling:$ac_tool_warned in | ||
4903 | yes:) | ||
4904 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | ||
4905 | $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | ||
4906 | ac_tool_warned=yes ;; | ||
4907 | esac | ||
4908 | DUMPBIN=$ac_ct_DUMPBIN | ||
4909 | fi | ||
4910 | fi | ||
4911 | |||
4912 | |||
4913 | if test "$DUMPBIN" != ":"; then | ||
4914 | NM="$DUMPBIN" | ||
4915 | fi | ||
4916 | fi | ||
4917 | test -z "$NM" && NM=nm | ||
4918 | |||
4919 | |||
4920 | |||
4921 | |||
4922 | |||
4923 | |||
4924 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 | ||
4925 | $as_echo_n "checking the name lister ($NM) interface... " >&6; } | ||
4926 | if test "${lt_cv_nm_interface+set}" = set; then : | ||
4927 | $as_echo_n "(cached) " >&6 | ||
4928 | else | ||
4929 | lt_cv_nm_interface="BSD nm" | ||
4930 | echo "int some_variable = 0;" > conftest.$ac_ext | ||
4931 | (eval echo "\"\$as_me:4931: $ac_compile\"" >&5) | ||
4932 | (eval "$ac_compile" 2>conftest.err) | ||
4933 | cat conftest.err >&5 | ||
4934 | (eval echo "\"\$as_me:4934: $NM \\\"conftest.$ac_objext\\\"\"" >&5) | ||
4935 | (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) | ||
4936 | cat conftest.err >&5 | ||
4937 | (eval echo "\"\$as_me:4937: output\"" >&5) | ||
4938 | cat conftest.out >&5 | ||
4939 | if $GREP 'External.*some_variable' conftest.out > /dev/null; then | ||
4940 | lt_cv_nm_interface="MS dumpbin" | ||
4941 | fi | ||
4942 | rm -f conftest* | ||
4943 | fi | ||
4944 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 | ||
4945 | $as_echo "$lt_cv_nm_interface" >&6; } | ||
4946 | |||
4947 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 | ||
4948 | $as_echo_n "checking whether ln -s works... " >&6; } | ||
4949 | LN_S=$as_ln_s | ||
4950 | if test "$LN_S" = "ln -s"; then | ||
4951 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
4952 | $as_echo "yes" >&6; } | ||
4953 | else | ||
4954 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 | ||
4955 | $as_echo "no, using $LN_S" >&6; } | ||
4956 | fi | ||
4957 | |||
4958 | # find the maximum length of command line arguments | ||
4959 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 | ||
4960 | $as_echo_n "checking the maximum length of command line arguments... " >&6; } | ||
4961 | if test "${lt_cv_sys_max_cmd_len+set}" = set; then : | ||
4962 | $as_echo_n "(cached) " >&6 | ||
4963 | else | ||
4964 | i=0 | ||
4965 | teststring="ABCD" | ||
4966 | |||
4967 | case $build_os in | ||
4968 | msdosdjgpp*) | ||
4969 | # On DJGPP, this test can blow up pretty badly due to problems in libc | ||
4970 | # (any single argument exceeding 2000 bytes causes a buffer overrun | ||
4971 | # during glob expansion). Even if it were fixed, the result of this | ||
4972 | # check would be larger than it should be. | ||
4973 | lt_cv_sys_max_cmd_len=12288; # 12K is about right | ||
4974 | ;; | ||
4975 | |||
4976 | gnu*) | ||
4977 | # Under GNU Hurd, this test is not required because there is | ||
4978 | # no limit to the length of command line arguments. | ||
4979 | # Libtool will interpret -1 as no limit whatsoever | ||
4980 | lt_cv_sys_max_cmd_len=-1; | ||
4981 | ;; | ||
4982 | |||
4983 | cygwin* | mingw* | cegcc*) | ||
4984 | # On Win9x/ME, this test blows up -- it succeeds, but takes | ||
4985 | # about 5 minutes as the teststring grows exponentially. | ||
4986 | # Worse, since 9x/ME are not pre-emptively multitasking, | ||
4987 | # you end up with a "frozen" computer, even though with patience | ||
4988 | # the test eventually succeeds (with a max line length of 256k). | ||
4989 | # Instead, let's just punt: use the minimum linelength reported by | ||
4990 | # all of the supported platforms: 8192 (on NT/2K/XP). | ||
4991 | lt_cv_sys_max_cmd_len=8192; | ||
4992 | ;; | ||
4993 | |||
4994 | amigaos*) | ||
4995 | # On AmigaOS with pdksh, this test takes hours, literally. | ||
4996 | # So we just punt and use a minimum line length of 8192. | ||
4997 | lt_cv_sys_max_cmd_len=8192; | ||
4998 | ;; | ||
4999 | |||
5000 | netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) | ||
5001 | # This has been around since 386BSD, at least. Likely further. | ||
5002 | if test -x /sbin/sysctl; then | ||
5003 | lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` | ||
5004 | elif test -x /usr/sbin/sysctl; then | ||
5005 | lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` | ||
5006 | else | ||
5007 | lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs | ||
5008 | fi | ||
5009 | # And add a safety zone | ||
5010 | lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` | ||
5011 | lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` | ||
5012 | ;; | ||
5013 | |||
5014 | interix*) | ||
5015 | # We know the value 262144 and hardcode it with a safety zone (like BSD) | ||
5016 | lt_cv_sys_max_cmd_len=196608 | ||
5017 | ;; | ||
5018 | |||
5019 | osf*) | ||
5020 | # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure | ||
5021 | # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not | ||
5022 | # nice to cause kernel panics so lets avoid the loop below. | ||
5023 | # First set a reasonable default. | ||
5024 | lt_cv_sys_max_cmd_len=16384 | ||
5025 | # | ||
5026 | if test -x /sbin/sysconfig; then | ||
5027 | case `/sbin/sysconfig -q proc exec_disable_arg_limit` in | ||
5028 | *1*) lt_cv_sys_max_cmd_len=-1 ;; | ||
5029 | esac | ||
5030 | fi | ||
5031 | ;; | ||
5032 | sco3.2v5*) | ||
5033 | lt_cv_sys_max_cmd_len=102400 | ||
5034 | ;; | ||
5035 | sysv5* | sco5v6* | sysv4.2uw2*) | ||
5036 | kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` | ||
5037 | if test -n "$kargmax"; then | ||
5038 | lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` | ||
5039 | else | ||
5040 | lt_cv_sys_max_cmd_len=32768 | ||
5041 | fi | ||
5042 | ;; | ||
5043 | *) | ||
5044 | lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` | ||
5045 | if test -n "$lt_cv_sys_max_cmd_len"; then | ||
5046 | lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` | ||
5047 | lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` | ||
5048 | else | ||
5049 | # Make teststring a little bigger before we do anything with it. | ||
5050 | # a 1K string should be a reasonable start. | ||
5051 | for i in 1 2 3 4 5 6 7 8 ; do | ||
5052 | teststring=$teststring$teststring | ||
5053 | done | ||
5054 | SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} | ||
5055 | # If test is not a shell built-in, we'll probably end up computing a | ||
5056 | # maximum length that is only half of the actual maximum length, but | ||
5057 | # we can't tell. | ||
5058 | while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ | ||
5059 | = "XX$teststring$teststring"; } >/dev/null 2>&1 && | ||
5060 | test $i != 17 # 1/2 MB should be enough | ||
5061 | do | ||
5062 | i=`expr $i + 1` | ||
5063 | teststring=$teststring$teststring | ||
5064 | done | ||
5065 | # Only check the string length outside the loop. | ||
5066 | lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` | ||
5067 | teststring= | ||
5068 | # Add a significant safety factor because C++ compilers can tack on | ||
5069 | # massive amounts of additional arguments before passing them to the | ||
5070 | # linker. It appears as though 1/2 is a usable value. | ||
5071 | lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` | ||
5072 | fi | ||
5073 | ;; | ||
5074 | esac | ||
5075 | |||
5076 | fi | ||
5077 | |||
5078 | if test -n $lt_cv_sys_max_cmd_len ; then | ||
5079 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 | ||
5080 | $as_echo "$lt_cv_sys_max_cmd_len" >&6; } | ||
5081 | else | ||
5082 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 | ||
5083 | $as_echo "none" >&6; } | ||
5084 | fi | ||
5085 | max_cmd_len=$lt_cv_sys_max_cmd_len | ||
5086 | |||
5087 | |||
5088 | |||
5089 | |||
5090 | |||
5091 | |||
5092 | : ${CP="cp -f"} | ||
5093 | : ${MV="mv -f"} | ||
5094 | : ${RM="rm -f"} | ||
5095 | |||
5096 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 | ||
5097 | $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } | ||
5098 | # Try some XSI features | ||
5099 | xsi_shell=no | ||
5100 | ( _lt_dummy="a/b/c" | ||
5101 | test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ | ||
5102 | = c,a/b,, \ | ||
5103 | && eval 'test $(( 1 + 1 )) -eq 2 \ | ||
5104 | && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ | ||
5105 | && xsi_shell=yes | ||
5106 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 | ||
5107 | $as_echo "$xsi_shell" >&6; } | ||
5108 | |||
5109 | |||
5110 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 | ||
5111 | $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } | ||
5112 | lt_shell_append=no | ||
5113 | ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ | ||
5114 | >/dev/null 2>&1 \ | ||
5115 | && lt_shell_append=yes | ||
5116 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 | ||
5117 | $as_echo "$lt_shell_append" >&6; } | ||
5118 | |||
5119 | |||
5120 | if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then | ||
5121 | lt_unset=unset | ||
5122 | else | ||
5123 | lt_unset=false | ||
5124 | fi | ||
5125 | |||
5126 | |||
5127 | |||
5128 | |||
5129 | |||
5130 | # test EBCDIC or ASCII | ||
5131 | case `echo X|tr X '\101'` in | ||
5132 | A) # ASCII based system | ||
5133 | # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr | ||
5134 | lt_SP2NL='tr \040 \012' | ||
5135 | lt_NL2SP='tr \015\012 \040\040' | ||
5136 | ;; | ||
5137 | *) # EBCDIC based system | ||
5138 | lt_SP2NL='tr \100 \n' | ||
5139 | lt_NL2SP='tr \r\n \100\100' | ||
5140 | ;; | ||
5141 | esac | ||
5142 | |||
5143 | |||
5144 | |||
5145 | |||
5146 | |||
5147 | |||
5148 | |||
5149 | |||
5150 | |||
5151 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 | ||
5152 | $as_echo_n "checking for $LD option to reload object files... " >&6; } | ||
5153 | if test "${lt_cv_ld_reload_flag+set}" = set; then : | ||
5154 | $as_echo_n "(cached) " >&6 | ||
5155 | else | ||
5156 | lt_cv_ld_reload_flag='-r' | ||
5157 | fi | ||
5158 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 | ||
5159 | $as_echo "$lt_cv_ld_reload_flag" >&6; } | ||
5160 | reload_flag=$lt_cv_ld_reload_flag | ||
5161 | case $reload_flag in | ||
5162 | "" | " "*) ;; | ||
5163 | *) reload_flag=" $reload_flag" ;; | ||
5164 | esac | ||
5165 | reload_cmds='$LD$reload_flag -o $output$reload_objs' | ||
5166 | case $host_os in | ||
5167 | darwin*) | ||
5168 | if test "$GCC" = yes; then | ||
5169 | reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' | ||
5170 | else | ||
5171 | reload_cmds='$LD$reload_flag -o $output$reload_objs' | ||
5172 | fi | ||
5173 | ;; | ||
5174 | esac | ||
5175 | |||
5176 | |||
5177 | |||
5178 | |||
5179 | |||
5180 | |||
5181 | |||
5182 | |||
5183 | |||
5184 | if test -n "$ac_tool_prefix"; then | ||
5185 | # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. | ||
5186 | set dummy ${ac_tool_prefix}objdump; ac_word=$2 | ||
5187 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
5188 | $as_echo_n "checking for $ac_word... " >&6; } | ||
5189 | if test "${ac_cv_prog_OBJDUMP+set}" = set; then : | ||
5190 | $as_echo_n "(cached) " >&6 | ||
5191 | else | ||
5192 | if test -n "$OBJDUMP"; then | ||
5193 | ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. | ||
5194 | else | ||
5195 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
5196 | for as_dir in $PATH | ||
5197 | do | ||
5198 | IFS=$as_save_IFS | ||
5199 | test -z "$as_dir" && as_dir=. | ||
5200 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
5201 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
5202 | ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" | ||
5203 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
5204 | break 2 | ||
5205 | fi | ||
5206 | done | ||
5207 | done | ||
5208 | IFS=$as_save_IFS | ||
5209 | |||
5210 | fi | ||
5211 | fi | ||
5212 | OBJDUMP=$ac_cv_prog_OBJDUMP | ||
5213 | if test -n "$OBJDUMP"; then | ||
5214 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 | ||
5215 | $as_echo "$OBJDUMP" >&6; } | ||
5216 | else | ||
5217 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
5218 | $as_echo "no" >&6; } | ||
5219 | fi | ||
5220 | |||
5221 | |||
5222 | fi | ||
5223 | if test -z "$ac_cv_prog_OBJDUMP"; then | ||
5224 | ac_ct_OBJDUMP=$OBJDUMP | ||
5225 | # Extract the first word of "objdump", so it can be a program name with args. | ||
5226 | set dummy objdump; ac_word=$2 | ||
5227 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
5228 | $as_echo_n "checking for $ac_word... " >&6; } | ||
5229 | if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : | ||
5230 | $as_echo_n "(cached) " >&6 | ||
5231 | else | ||
5232 | if test -n "$ac_ct_OBJDUMP"; then | ||
5233 | ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. | ||
5234 | else | ||
5235 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
5236 | for as_dir in $PATH | ||
5237 | do | ||
5238 | IFS=$as_save_IFS | ||
5239 | test -z "$as_dir" && as_dir=. | ||
5240 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
5241 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
5242 | ac_cv_prog_ac_ct_OBJDUMP="objdump" | ||
5243 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
5244 | break 2 | ||
5245 | fi | ||
5246 | done | ||
5247 | done | ||
5248 | IFS=$as_save_IFS | ||
5249 | |||
5250 | fi | ||
5251 | fi | ||
5252 | ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP | ||
5253 | if test -n "$ac_ct_OBJDUMP"; then | ||
5254 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 | ||
5255 | $as_echo "$ac_ct_OBJDUMP" >&6; } | ||
5256 | else | ||
5257 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
5258 | $as_echo "no" >&6; } | ||
5259 | fi | ||
5260 | |||
5261 | if test "x$ac_ct_OBJDUMP" = x; then | ||
5262 | OBJDUMP="false" | ||
5263 | else | ||
5264 | case $cross_compiling:$ac_tool_warned in | ||
5265 | yes:) | ||
5266 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | ||
5267 | $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | ||
5268 | ac_tool_warned=yes ;; | ||
5269 | esac | ||
5270 | OBJDUMP=$ac_ct_OBJDUMP | ||
5271 | fi | ||
5272 | else | ||
5273 | OBJDUMP="$ac_cv_prog_OBJDUMP" | ||
5274 | fi | ||
5275 | |||
5276 | test -z "$OBJDUMP" && OBJDUMP=objdump | ||
5277 | |||
5278 | |||
5279 | |||
5280 | |||
5281 | |||
5282 | |||
5283 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 | ||
5284 | $as_echo_n "checking how to recognize dependent libraries... " >&6; } | ||
5285 | if test "${lt_cv_deplibs_check_method+set}" = set; then : | ||
5286 | $as_echo_n "(cached) " >&6 | ||
5287 | else | ||
5288 | lt_cv_file_magic_cmd='$MAGIC_CMD' | ||
5289 | lt_cv_file_magic_test_file= | ||
5290 | lt_cv_deplibs_check_method='unknown' | ||
5291 | # Need to set the preceding variable on all platforms that support | ||
5292 | # interlibrary dependencies. | ||
5293 | # 'none' -- dependencies not supported. | ||
5294 | # `unknown' -- same as none, but documents that we really don't know. | ||
5295 | # 'pass_all' -- all dependencies passed with no checks. | ||
5296 | # 'test_compile' -- check by making test program. | ||
5297 | # 'file_magic [[regex]]' -- check by looking for files in library path | ||
5298 | # which responds to the $file_magic_cmd with a given extended regex. | ||
5299 | # If you have `file' or equivalent on your system and you're not sure | ||
5300 | # whether `pass_all' will *always* work, you probably want this one. | ||
5301 | |||
5302 | case $host_os in | ||
5303 | aix[4-9]*) | ||
5304 | lt_cv_deplibs_check_method=pass_all | ||
5305 | ;; | ||
5306 | |||
5307 | beos*) | ||
5308 | lt_cv_deplibs_check_method=pass_all | ||
5309 | ;; | ||
5310 | |||
5311 | bsdi[45]*) | ||
5312 | lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' | ||
5313 | lt_cv_file_magic_cmd='/usr/bin/file -L' | ||
5314 | lt_cv_file_magic_test_file=/shlib/libc.so | ||
5315 | ;; | ||
5316 | |||
5317 | cygwin*) | ||
5318 | # func_win32_libid is a shell function defined in ltmain.sh | ||
5319 | lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' | ||
5320 | lt_cv_file_magic_cmd='func_win32_libid' | ||
5321 | ;; | ||
5322 | |||
5323 | mingw* | pw32*) | ||
5324 | # Base MSYS/MinGW do not provide the 'file' command needed by | ||
5325 | # func_win32_libid shell function, so use a weaker test based on 'objdump', | ||
5326 | # unless we find 'file', for example because we are cross-compiling. | ||
5327 | if ( file / ) >/dev/null 2>&1; then | ||
5328 | lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' | ||
5329 | lt_cv_file_magic_cmd='func_win32_libid' | ||
5330 | else | ||
5331 | lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' | ||
5332 | lt_cv_file_magic_cmd='$OBJDUMP -f' | ||
5333 | fi | ||
5334 | ;; | ||
5335 | |||
5336 | cegcc) | ||
5337 | # use the weaker test based on 'objdump'. See mingw*. | ||
5338 | lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' | ||
5339 | lt_cv_file_magic_cmd='$OBJDUMP -f' | ||
5340 | ;; | ||
5341 | |||
5342 | darwin* | rhapsody*) | ||
5343 | lt_cv_deplibs_check_method=pass_all | ||
5344 | ;; | ||
5345 | |||
5346 | freebsd* | dragonfly*) | ||
5347 | if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then | ||
5348 | case $host_cpu in | ||
5349 | i*86 ) | ||
5350 | # Not sure whether the presence of OpenBSD here was a mistake. | ||
5351 | # Let's accept both of them until this is cleared up. | ||
5352 | lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' | ||
5353 | lt_cv_file_magic_cmd=/usr/bin/file | ||
5354 | lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` | ||
5355 | ;; | ||
5356 | esac | ||
5357 | else | ||
5358 | lt_cv_deplibs_check_method=pass_all | ||
5359 | fi | ||
5360 | ;; | ||
5361 | |||
5362 | gnu*) | ||
5363 | lt_cv_deplibs_check_method=pass_all | ||
5364 | ;; | ||
5365 | |||
5366 | hpux10.20* | hpux11*) | ||
5367 | lt_cv_file_magic_cmd=/usr/bin/file | ||
5368 | case $host_cpu in | ||
5369 | ia64*) | ||
5370 | lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' | ||
5371 | lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so | ||
5372 | ;; | ||
5373 | hppa*64*) | ||
5374 | 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]' | ||
5375 | lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl | ||
5376 | ;; | ||
5377 | *) | ||
5378 | lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' | ||
5379 | lt_cv_file_magic_test_file=/usr/lib/libc.sl | ||
5380 | ;; | ||
5381 | esac | ||
5382 | ;; | ||
5383 | |||
5384 | interix[3-9]*) | ||
5385 | # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here | ||
5386 | lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' | ||
5387 | ;; | ||
5388 | |||
5389 | irix5* | irix6* | nonstopux*) | ||
5390 | case $LD in | ||
5391 | *-32|*"-32 ") libmagic=32-bit;; | ||
5392 | *-n32|*"-n32 ") libmagic=N32;; | ||
5393 | *-64|*"-64 ") libmagic=64-bit;; | ||
5394 | *) libmagic=never-match;; | ||
5395 | esac | ||
5396 | lt_cv_deplibs_check_method=pass_all | ||
5397 | ;; | ||
5398 | |||
5399 | # This must be Linux ELF. | ||
5400 | linux* | k*bsd*-gnu | kopensolaris*-gnu) | ||
5401 | lt_cv_deplibs_check_method=pass_all | ||
5402 | ;; | ||
5403 | |||
5404 | netbsd* | netbsdelf*-gnu) | ||
5405 | if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then | ||
5406 | lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' | ||
5407 | else | ||
5408 | lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' | ||
5409 | fi | ||
5410 | ;; | ||
5411 | |||
5412 | newos6*) | ||
5413 | lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' | ||
5414 | lt_cv_file_magic_cmd=/usr/bin/file | ||
5415 | lt_cv_file_magic_test_file=/usr/lib/libnls.so | ||
5416 | ;; | ||
5417 | |||
5418 | *nto* | *qnx*) | ||
5419 | lt_cv_deplibs_check_method=pass_all | ||
5420 | ;; | ||
5421 | |||
5422 | openbsd*) | ||
5423 | if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then | ||
5424 | lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' | ||
5425 | else | ||
5426 | lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' | ||
5427 | fi | ||
5428 | ;; | ||
5429 | |||
5430 | osf3* | osf4* | osf5*) | ||
5431 | lt_cv_deplibs_check_method=pass_all | ||
5432 | ;; | ||
5433 | |||
5434 | rdos*) | ||
5435 | lt_cv_deplibs_check_method=pass_all | ||
5436 | ;; | ||
5437 | |||
5438 | solaris*) | ||
5439 | lt_cv_deplibs_check_method=pass_all | ||
5440 | ;; | ||
5441 | |||
5442 | sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) | ||
5443 | lt_cv_deplibs_check_method=pass_all | ||
5444 | ;; | ||
5445 | |||
5446 | sysv4 | sysv4.3*) | ||
5447 | case $host_vendor in | ||
5448 | motorola) | ||
5449 | lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' | ||
5450 | lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` | ||
5451 | ;; | ||
5452 | ncr) | ||
5453 | lt_cv_deplibs_check_method=pass_all | ||
5454 | ;; | ||
5455 | sequent) | ||
5456 | lt_cv_file_magic_cmd='/bin/file' | ||
5457 | lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' | ||
5458 | ;; | ||
5459 | sni) | ||
5460 | lt_cv_file_magic_cmd='/bin/file' | ||
5461 | lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" | ||
5462 | lt_cv_file_magic_test_file=/lib/libc.so | ||
5463 | ;; | ||
5464 | siemens) | ||
5465 | lt_cv_deplibs_check_method=pass_all | ||
5466 | ;; | ||
5467 | pc) | ||
5468 | lt_cv_deplibs_check_method=pass_all | ||
5469 | ;; | ||
5470 | esac | ||
5471 | ;; | ||
5472 | |||
5473 | tpf*) | ||
5474 | lt_cv_deplibs_check_method=pass_all | ||
5475 | ;; | ||
5476 | esac | ||
5477 | |||
5478 | fi | ||
5479 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 | ||
5480 | $as_echo "$lt_cv_deplibs_check_method" >&6; } | ||
5481 | file_magic_cmd=$lt_cv_file_magic_cmd | ||
5482 | deplibs_check_method=$lt_cv_deplibs_check_method | ||
5483 | test -z "$deplibs_check_method" && deplibs_check_method=unknown | ||
5484 | |||
5485 | |||
5486 | |||
5487 | |||
5488 | |||
5489 | |||
5490 | |||
5491 | |||
5492 | |||
5493 | |||
5494 | |||
5495 | |||
5496 | if test -n "$ac_tool_prefix"; then | ||
5497 | # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. | ||
5498 | set dummy ${ac_tool_prefix}ar; ac_word=$2 | ||
5499 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
5500 | $as_echo_n "checking for $ac_word... " >&6; } | ||
5501 | if test "${ac_cv_prog_AR+set}" = set; then : | ||
5502 | $as_echo_n "(cached) " >&6 | ||
5503 | else | ||
5504 | if test -n "$AR"; then | ||
5505 | ac_cv_prog_AR="$AR" # Let the user override the test. | ||
5506 | else | ||
5507 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
5508 | for as_dir in $PATH | ||
5509 | do | ||
5510 | IFS=$as_save_IFS | ||
5511 | test -z "$as_dir" && as_dir=. | ||
5512 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
5513 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
5514 | ac_cv_prog_AR="${ac_tool_prefix}ar" | ||
5515 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
5516 | break 2 | ||
5517 | fi | ||
5518 | done | ||
5519 | done | ||
5520 | IFS=$as_save_IFS | ||
5521 | |||
5522 | fi | ||
5523 | fi | ||
5524 | AR=$ac_cv_prog_AR | ||
5525 | if test -n "$AR"; then | ||
5526 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 | ||
5527 | $as_echo "$AR" >&6; } | ||
5528 | else | ||
5529 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
5530 | $as_echo "no" >&6; } | ||
5531 | fi | ||
5532 | |||
5533 | |||
5534 | fi | ||
5535 | if test -z "$ac_cv_prog_AR"; then | ||
5536 | ac_ct_AR=$AR | ||
5537 | # Extract the first word of "ar", so it can be a program name with args. | ||
5538 | set dummy ar; ac_word=$2 | ||
5539 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
5540 | $as_echo_n "checking for $ac_word... " >&6; } | ||
5541 | if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : | ||
5542 | $as_echo_n "(cached) " >&6 | ||
5543 | else | ||
5544 | if test -n "$ac_ct_AR"; then | ||
5545 | ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. | ||
5546 | else | ||
5547 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
5548 | for as_dir in $PATH | ||
5549 | do | ||
5550 | IFS=$as_save_IFS | ||
5551 | test -z "$as_dir" && as_dir=. | ||
5552 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
5553 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
5554 | ac_cv_prog_ac_ct_AR="ar" | ||
5555 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
5556 | break 2 | ||
5557 | fi | ||
5558 | done | ||
5559 | done | ||
5560 | IFS=$as_save_IFS | ||
5561 | |||
5562 | fi | ||
5563 | fi | ||
5564 | ac_ct_AR=$ac_cv_prog_ac_ct_AR | ||
5565 | if test -n "$ac_ct_AR"; then | ||
5566 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 | ||
5567 | $as_echo "$ac_ct_AR" >&6; } | ||
5568 | else | ||
5569 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
5570 | $as_echo "no" >&6; } | ||
5571 | fi | ||
5572 | |||
5573 | if test "x$ac_ct_AR" = x; then | ||
5574 | AR="false" | ||
5575 | else | ||
5576 | case $cross_compiling:$ac_tool_warned in | ||
5577 | yes:) | ||
5578 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | ||
5579 | $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | ||
5580 | ac_tool_warned=yes ;; | ||
5581 | esac | ||
5582 | AR=$ac_ct_AR | ||
5583 | fi | ||
5584 | else | ||
5585 | AR="$ac_cv_prog_AR" | ||
5586 | fi | ||
5587 | |||
5588 | test -z "$AR" && AR=ar | ||
5589 | test -z "$AR_FLAGS" && AR_FLAGS=cru | ||
5590 | |||
5591 | |||
5592 | |||
5593 | |||
5594 | |||
5595 | |||
5596 | |||
5597 | |||
5598 | |||
5599 | |||
5600 | |||
5601 | if test -n "$ac_tool_prefix"; then | ||
5602 | # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. | ||
5603 | set dummy ${ac_tool_prefix}strip; ac_word=$2 | ||
5604 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
5605 | $as_echo_n "checking for $ac_word... " >&6; } | ||
5606 | if test "${ac_cv_prog_STRIP+set}" = set; then : | ||
5607 | $as_echo_n "(cached) " >&6 | ||
5608 | else | ||
5609 | if test -n "$STRIP"; then | ||
5610 | ac_cv_prog_STRIP="$STRIP" # Let the user override the test. | ||
5611 | else | ||
5612 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
5613 | for as_dir in $PATH | ||
5614 | do | ||
5615 | IFS=$as_save_IFS | ||
5616 | test -z "$as_dir" && as_dir=. | ||
5617 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
5618 | 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_STRIP="${ac_tool_prefix}strip" | ||
5620 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
5621 | break 2 | ||
5622 | fi | ||
5623 | done | ||
5624 | done | ||
5625 | IFS=$as_save_IFS | ||
5626 | |||
5627 | fi | ||
5628 | fi | ||
5629 | STRIP=$ac_cv_prog_STRIP | ||
5630 | if test -n "$STRIP"; then | ||
5631 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 | ||
5632 | $as_echo "$STRIP" >&6; } | ||
5633 | else | ||
5634 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
5635 | $as_echo "no" >&6; } | ||
5636 | fi | ||
5637 | |||
5638 | |||
5639 | fi | ||
5640 | if test -z "$ac_cv_prog_STRIP"; then | ||
5641 | ac_ct_STRIP=$STRIP | ||
5642 | # Extract the first word of "strip", so it can be a program name with args. | ||
5643 | set dummy strip; ac_word=$2 | ||
5644 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
5645 | $as_echo_n "checking for $ac_word... " >&6; } | ||
5646 | if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : | ||
5647 | $as_echo_n "(cached) " >&6 | ||
5648 | else | ||
5649 | if test -n "$ac_ct_STRIP"; then | ||
5650 | ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. | ||
5651 | else | ||
5652 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
5653 | for as_dir in $PATH | ||
5654 | do | ||
5655 | IFS=$as_save_IFS | ||
5656 | test -z "$as_dir" && as_dir=. | ||
5657 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
5658 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
5659 | ac_cv_prog_ac_ct_STRIP="strip" | ||
5660 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
5661 | break 2 | ||
5662 | fi | ||
5663 | done | ||
5664 | done | ||
5665 | IFS=$as_save_IFS | ||
5666 | |||
5667 | fi | ||
5668 | fi | ||
5669 | ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP | ||
5670 | if test -n "$ac_ct_STRIP"; then | ||
5671 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 | ||
5672 | $as_echo "$ac_ct_STRIP" >&6; } | ||
5673 | else | ||
5674 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
5675 | $as_echo "no" >&6; } | ||
5676 | fi | ||
5677 | |||
5678 | if test "x$ac_ct_STRIP" = x; then | ||
5679 | STRIP=":" | ||
5680 | else | ||
5681 | case $cross_compiling:$ac_tool_warned in | ||
5682 | yes:) | ||
5683 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | ||
5684 | $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | ||
5685 | ac_tool_warned=yes ;; | ||
5686 | esac | ||
5687 | STRIP=$ac_ct_STRIP | ||
5688 | fi | ||
5689 | else | ||
5690 | STRIP="$ac_cv_prog_STRIP" | ||
5691 | fi | ||
5692 | |||
5693 | test -z "$STRIP" && STRIP=: | ||
5694 | |||
5695 | |||
5696 | |||
5697 | |||
5698 | |||
5699 | |||
5700 | if test -n "$ac_tool_prefix"; then | ||
5701 | # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. | ||
5702 | set dummy ${ac_tool_prefix}ranlib; ac_word=$2 | ||
5703 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
5704 | $as_echo_n "checking for $ac_word... " >&6; } | ||
5705 | if test "${ac_cv_prog_RANLIB+set}" = set; then : | ||
5706 | $as_echo_n "(cached) " >&6 | ||
5707 | else | ||
5708 | if test -n "$RANLIB"; then | ||
5709 | ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. | ||
5710 | else | ||
5711 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
5712 | for as_dir in $PATH | ||
5713 | do | ||
5714 | IFS=$as_save_IFS | ||
5715 | test -z "$as_dir" && as_dir=. | ||
5716 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
5717 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
5718 | ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" | ||
5719 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
5720 | break 2 | ||
5721 | fi | ||
5722 | done | ||
5723 | done | ||
5724 | IFS=$as_save_IFS | ||
5725 | |||
5726 | fi | ||
5727 | fi | ||
5728 | RANLIB=$ac_cv_prog_RANLIB | ||
5729 | if test -n "$RANLIB"; then | ||
5730 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 | ||
5731 | $as_echo "$RANLIB" >&6; } | ||
5732 | else | ||
5733 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
5734 | $as_echo "no" >&6; } | ||
5735 | fi | ||
5736 | |||
5737 | |||
5738 | fi | ||
5739 | if test -z "$ac_cv_prog_RANLIB"; then | ||
5740 | ac_ct_RANLIB=$RANLIB | ||
5741 | # Extract the first word of "ranlib", so it can be a program name with args. | ||
5742 | set dummy ranlib; ac_word=$2 | ||
5743 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
5744 | $as_echo_n "checking for $ac_word... " >&6; } | ||
5745 | if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : | ||
5746 | $as_echo_n "(cached) " >&6 | ||
5747 | else | ||
5748 | if test -n "$ac_ct_RANLIB"; then | ||
5749 | ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. | ||
5750 | else | ||
5751 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
5752 | for as_dir in $PATH | ||
5753 | do | ||
5754 | IFS=$as_save_IFS | ||
5755 | test -z "$as_dir" && as_dir=. | ||
5756 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
5757 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
5758 | ac_cv_prog_ac_ct_RANLIB="ranlib" | ||
5759 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
5760 | break 2 | ||
5761 | fi | ||
5762 | done | ||
5763 | done | ||
5764 | IFS=$as_save_IFS | ||
5765 | |||
5766 | fi | ||
5767 | fi | ||
5768 | ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB | ||
5769 | if test -n "$ac_ct_RANLIB"; then | ||
5770 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 | ||
5771 | $as_echo "$ac_ct_RANLIB" >&6; } | ||
5772 | else | ||
5773 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
5774 | $as_echo "no" >&6; } | ||
5775 | fi | ||
5776 | |||
5777 | if test "x$ac_ct_RANLIB" = x; then | ||
5778 | RANLIB=":" | ||
5779 | else | ||
5780 | case $cross_compiling:$ac_tool_warned in | ||
5781 | yes:) | ||
5782 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | ||
5783 | $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | ||
5784 | ac_tool_warned=yes ;; | ||
5785 | esac | ||
5786 | RANLIB=$ac_ct_RANLIB | ||
5787 | fi | ||
5788 | else | ||
5789 | RANLIB="$ac_cv_prog_RANLIB" | ||
5790 | fi | ||
5791 | |||
5792 | test -z "$RANLIB" && RANLIB=: | ||
5793 | |||
5794 | |||
5795 | |||
5796 | |||
5797 | |||
5798 | |||
5799 | # Determine commands to create old-style static archives. | ||
5800 | old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' | ||
5801 | old_postinstall_cmds='chmod 644 $oldlib' | ||
5802 | old_postuninstall_cmds= | ||
5803 | |||
5804 | if test -n "$RANLIB"; then | ||
5805 | case $host_os in | ||
5806 | openbsd*) | ||
5807 | old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" | ||
5808 | ;; | ||
5809 | *) | ||
5810 | old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" | ||
5811 | ;; | ||
5812 | esac | ||
5813 | old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" | ||
5814 | fi | ||
5815 | |||
5816 | |||
5817 | |||
5818 | |||
5819 | |||
5820 | |||
5821 | |||
5822 | |||
5823 | |||
5824 | |||
5825 | |||
5826 | |||
5827 | |||
5828 | |||
5829 | |||
5830 | |||
5831 | |||
5832 | |||
5833 | |||
5834 | |||
5835 | |||
5836 | |||
5837 | |||
5838 | |||
5839 | |||
5840 | |||
5841 | |||
5842 | |||
5843 | |||
5844 | |||
5845 | |||
5846 | |||
5847 | |||
5848 | |||
5849 | # If no C compiler was specified, use CC. | ||
5850 | LTCC=${LTCC-"$CC"} | ||
5851 | |||
5852 | # If no C compiler flags were specified, use CFLAGS. | ||
5853 | LTCFLAGS=${LTCFLAGS-"$CFLAGS"} | ||
5854 | |||
5855 | # Allow CC to be a program name with arguments. | ||
5856 | compiler=$CC | ||
5857 | |||
5858 | |||
5859 | # Check for command to grab the raw symbol name followed by C symbol from nm. | ||
5860 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 | ||
5861 | $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } | ||
5862 | if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : | ||
5863 | $as_echo_n "(cached) " >&6 | ||
5864 | else | ||
5865 | |||
5866 | # These are sane defaults that work on at least a few old systems. | ||
5867 | # [They come from Ultrix. What could be older than Ultrix?!! ;)] | ||
5868 | |||
5869 | # Character class describing NM global symbol codes. | ||
5870 | symcode='[BCDEGRST]' | ||
5871 | |||
5872 | # Regexp to match symbols that can be accessed directly from C. | ||
5873 | sympat='\([_A-Za-z][_A-Za-z0-9]*\)' | ||
5874 | |||
5875 | # Define system-specific variables. | ||
5876 | case $host_os in | ||
5877 | aix*) | ||
5878 | symcode='[BCDT]' | ||
5879 | ;; | ||
5880 | cygwin* | mingw* | pw32* | cegcc*) | ||
5881 | symcode='[ABCDGISTW]' | ||
5882 | ;; | ||
5883 | hpux*) | ||
5884 | if test "$host_cpu" = ia64; then | ||
5885 | symcode='[ABCDEGRST]' | ||
5886 | fi | ||
5887 | ;; | ||
5888 | irix* | nonstopux*) | ||
5889 | symcode='[BCDEGRST]' | ||
5890 | ;; | ||
5891 | osf*) | ||
5892 | symcode='[BCDEGQRST]' | ||
5893 | ;; | ||
5894 | solaris*) | ||
5895 | symcode='[BDRT]' | ||
5896 | ;; | ||
5897 | sco3.2v5*) | ||
5898 | symcode='[DT]' | ||
5899 | ;; | ||
5900 | sysv4.2uw2*) | ||
5901 | symcode='[DT]' | ||
5902 | ;; | ||
5903 | sysv5* | sco5v6* | unixware* | OpenUNIX*) | ||
5904 | symcode='[ABDT]' | ||
5905 | ;; | ||
5906 | sysv4) | ||
5907 | symcode='[DFNSTU]' | ||
5908 | ;; | ||
5909 | esac | ||
5910 | |||
5911 | # If we're using GNU nm, then use its standard symbol codes. | ||
5912 | case `$NM -V 2>&1` in | ||
5913 | *GNU* | *'with BFD'*) | ||
5914 | symcode='[ABCDGIRSTW]' ;; | ||
5915 | esac | ||
5916 | |||
5917 | # Transform an extracted symbol line into a proper C declaration. | ||
5918 | # Some systems (esp. on ia64) link data and code symbols differently, | ||
5919 | # so use this general approach. | ||
5920 | lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" | ||
5921 | |||
5922 | # Transform an extracted symbol line into symbol name and symbol address | ||
5923 | lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" | ||
5924 | 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'" | ||
5925 | |||
5926 | # Handle CRLF in mingw tool chain | ||
5927 | opt_cr= | ||
5928 | case $build_os in | ||
5929 | mingw*) | ||
5930 | opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp | ||
5931 | ;; | ||
5932 | esac | ||
5933 | |||
5934 | # Try without a prefix underscore, then with it. | ||
5935 | for ac_symprfx in "" "_"; do | ||
5936 | |||
5937 | # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. | ||
5938 | symxfrm="\\1 $ac_symprfx\\2 \\2" | ||
5939 | |||
5940 | # Write the raw and C identifiers. | ||
5941 | if test "$lt_cv_nm_interface" = "MS dumpbin"; then | ||
5942 | # Fake it for dumpbin and say T for any non-static function | ||
5943 | # and D for any global variable. | ||
5944 | # Also find C++ and __fastcall symbols from MSVC++, | ||
5945 | # which start with @ or ?. | ||
5946 | lt_cv_sys_global_symbol_pipe="$AWK '"\ | ||
5947 | " {last_section=section; section=\$ 3};"\ | ||
5948 | " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ | ||
5949 | " \$ 0!~/External *\|/{next};"\ | ||
5950 | " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ | ||
5951 | " {if(hide[section]) next};"\ | ||
5952 | " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ | ||
5953 | " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ | ||
5954 | " s[1]~/^[@?]/{print s[1], s[1]; next};"\ | ||
5955 | " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ | ||
5956 | " ' prfx=^$ac_symprfx" | ||
5957 | else | ||
5958 | lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" | ||
5959 | fi | ||
5960 | |||
5961 | # Check to see that the pipe works correctly. | ||
5962 | pipe_works=no | ||
5963 | |||
5964 | rm -f conftest* | ||
5965 | cat > conftest.$ac_ext <<_LT_EOF | ||
5966 | #ifdef __cplusplus | ||
5967 | extern "C" { | ||
5968 | #endif | ||
5969 | char nm_test_var; | ||
5970 | void nm_test_func(void); | ||
5971 | void nm_test_func(void){} | ||
5972 | #ifdef __cplusplus | ||
5973 | } | ||
5974 | #endif | ||
5975 | int main(){nm_test_var='a';nm_test_func();return(0);} | ||
5976 | _LT_EOF | ||
5977 | |||
5978 | if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 | ||
5979 | (eval $ac_compile) 2>&5 | ||
5980 | ac_status=$? | ||
5981 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
5982 | test $ac_status = 0; }; then | ||
5983 | # Now try to grab the symbols. | ||
5984 | nlist=conftest.nm | ||
5985 | if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5 | ||
5986 | (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 | ||
5987 | ac_status=$? | ||
5988 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
5989 | test $ac_status = 0; } && test -s "$nlist"; then | ||
5990 | # Try sorting and uniquifying the output. | ||
5991 | if sort "$nlist" | uniq > "$nlist"T; then | ||
5992 | mv -f "$nlist"T "$nlist" | ||
5993 | else | ||
5994 | rm -f "$nlist"T | ||
5995 | fi | ||
5996 | |||
5997 | # Make sure that we snagged all the symbols we need. | ||
5998 | if $GREP ' nm_test_var$' "$nlist" >/dev/null; then | ||
5999 | if $GREP ' nm_test_func$' "$nlist" >/dev/null; then | ||
6000 | cat <<_LT_EOF > conftest.$ac_ext | ||
6001 | #ifdef __cplusplus | ||
6002 | extern "C" { | ||
6003 | #endif | ||
6004 | |||
6005 | _LT_EOF | ||
6006 | # Now generate the symbol file. | ||
6007 | eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' | ||
6008 | |||
6009 | cat <<_LT_EOF >> conftest.$ac_ext | ||
6010 | |||
6011 | /* The mapping between symbol names and symbols. */ | ||
6012 | const struct { | ||
6013 | const char *name; | ||
6014 | void *address; | ||
6015 | } | ||
6016 | lt__PROGRAM__LTX_preloaded_symbols[] = | ||
6017 | { | ||
6018 | { "@PROGRAM@", (void *) 0 }, | ||
6019 | _LT_EOF | ||
6020 | $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext | ||
6021 | cat <<\_LT_EOF >> conftest.$ac_ext | ||
6022 | {0, (void *) 0} | ||
6023 | }; | ||
6024 | |||
6025 | /* This works around a problem in FreeBSD linker */ | ||
6026 | #ifdef FREEBSD_WORKAROUND | ||
6027 | static const void *lt_preloaded_setup() { | ||
6028 | return lt__PROGRAM__LTX_preloaded_symbols; | ||
6029 | } | ||
6030 | #endif | ||
6031 | |||
6032 | #ifdef __cplusplus | ||
6033 | } | ||
6034 | #endif | ||
6035 | _LT_EOF | ||
6036 | # Now try linking the two files. | ||
6037 | mv conftest.$ac_objext conftstm.$ac_objext | ||
6038 | lt_save_LIBS="$LIBS" | ||
6039 | lt_save_CFLAGS="$CFLAGS" | ||
6040 | LIBS="conftstm.$ac_objext" | ||
6041 | CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" | ||
6042 | if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 | ||
6043 | (eval $ac_link) 2>&5 | ||
6044 | ac_status=$? | ||
6045 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
6046 | test $ac_status = 0; } && test -s conftest${ac_exeext}; then | ||
6047 | pipe_works=yes | ||
6048 | fi | ||
6049 | LIBS="$lt_save_LIBS" | ||
6050 | CFLAGS="$lt_save_CFLAGS" | ||
6051 | else | ||
6052 | echo "cannot find nm_test_func in $nlist" >&5 | ||
6053 | fi | ||
6054 | else | ||
6055 | echo "cannot find nm_test_var in $nlist" >&5 | ||
6056 | fi | ||
6057 | else | ||
6058 | echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 | ||
6059 | fi | ||
6060 | else | ||
6061 | echo "$progname: failed program was:" >&5 | ||
6062 | cat conftest.$ac_ext >&5 | ||
6063 | fi | ||
6064 | rm -rf conftest* conftst* | ||
6065 | |||
6066 | # Do not use the global_symbol_pipe unless it works. | ||
6067 | if test "$pipe_works" = yes; then | ||
6068 | break | ||
6069 | else | ||
6070 | lt_cv_sys_global_symbol_pipe= | ||
6071 | fi | ||
6072 | done | ||
6073 | |||
6074 | fi | ||
6075 | |||
6076 | if test -z "$lt_cv_sys_global_symbol_pipe"; then | ||
6077 | lt_cv_sys_global_symbol_to_cdecl= | ||
6078 | fi | ||
6079 | if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then | ||
6080 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 | ||
6081 | $as_echo "failed" >&6; } | ||
6082 | else | ||
6083 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 | ||
6084 | $as_echo "ok" >&6; } | ||
6085 | fi | ||
6086 | |||
6087 | |||
6088 | |||
6089 | |||
6090 | |||
6091 | |||
6092 | |||
6093 | |||
6094 | |||
6095 | |||
6096 | |||
6097 | |||
6098 | |||
6099 | |||
6100 | |||
6101 | |||
6102 | |||
6103 | |||
6104 | |||
6105 | |||
6106 | |||
6107 | |||
6108 | |||
6109 | # Check whether --enable-libtool-lock was given. | ||
6110 | if test "${enable_libtool_lock+set}" = set; then : | ||
6111 | enableval=$enable_libtool_lock; | ||
6112 | fi | ||
6113 | |||
6114 | test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes | ||
6115 | |||
6116 | # Some flags need to be propagated to the compiler or linker for good | ||
6117 | # libtool support. | ||
6118 | case $host in | ||
6119 | ia64-*-hpux*) | ||
6120 | # Find out which ABI we are using. | ||
6121 | echo 'int i;' > conftest.$ac_ext | ||
6122 | if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 | ||
6123 | (eval $ac_compile) 2>&5 | ||
6124 | ac_status=$? | ||
6125 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
6126 | test $ac_status = 0; }; then | ||
6127 | case `/usr/bin/file conftest.$ac_objext` in | ||
6128 | *ELF-32*) | ||
6129 | HPUX_IA64_MODE="32" | ||
6130 | ;; | ||
6131 | *ELF-64*) | ||
6132 | HPUX_IA64_MODE="64" | ||
6133 | ;; | ||
6134 | esac | ||
6135 | fi | ||
6136 | rm -rf conftest* | ||
6137 | ;; | ||
6138 | *-*-irix6*) | ||
6139 | # Find out which ABI we are using. | ||
6140 | echo '#line 6140 "configure"' > conftest.$ac_ext | ||
6141 | if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 | ||
6142 | (eval $ac_compile) 2>&5 | ||
6143 | ac_status=$? | ||
6144 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
6145 | test $ac_status = 0; }; then | ||
6146 | if test "$lt_cv_prog_gnu_ld" = yes; then | ||
6147 | case `/usr/bin/file conftest.$ac_objext` in | ||
6148 | *32-bit*) | ||
6149 | LD="${LD-ld} -melf32bsmip" | ||
6150 | ;; | ||
6151 | *N32*) | ||
6152 | LD="${LD-ld} -melf32bmipn32" | ||
6153 | ;; | ||
6154 | *64-bit*) | ||
6155 | LD="${LD-ld} -melf64bmip" | ||
6156 | ;; | ||
6157 | esac | ||
6158 | else | ||
6159 | case `/usr/bin/file conftest.$ac_objext` in | ||
6160 | *32-bit*) | ||
6161 | LD="${LD-ld} -32" | ||
6162 | ;; | ||
6163 | *N32*) | ||
6164 | LD="${LD-ld} -n32" | ||
6165 | ;; | ||
6166 | *64-bit*) | ||
6167 | LD="${LD-ld} -64" | ||
6168 | ;; | ||
6169 | esac | ||
6170 | fi | ||
6171 | fi | ||
6172 | rm -rf conftest* | ||
6173 | ;; | ||
6174 | |||
6175 | x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ | ||
6176 | s390*-*linux*|s390*-*tpf*|sparc*-*linux*) | ||
6177 | # Find out which ABI we are using. | ||
6178 | echo 'int i;' > conftest.$ac_ext | ||
6179 | if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 | ||
6180 | (eval $ac_compile) 2>&5 | ||
6181 | ac_status=$? | ||
6182 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
6183 | test $ac_status = 0; }; then | ||
6184 | case `/usr/bin/file conftest.o` in | ||
6185 | *32-bit*) | ||
6186 | case $host in | ||
6187 | x86_64-*kfreebsd*-gnu) | ||
6188 | LD="${LD-ld} -m elf_i386_fbsd" | ||
6189 | ;; | ||
6190 | x86_64-*linux*) | ||
6191 | LD="${LD-ld} -m elf_i386" | ||
6192 | ;; | ||
6193 | ppc64-*linux*|powerpc64-*linux*) | ||
6194 | LD="${LD-ld} -m elf32ppclinux" | ||
6195 | ;; | ||
6196 | s390x-*linux*) | ||
6197 | LD="${LD-ld} -m elf_s390" | ||
6198 | ;; | ||
6199 | sparc64-*linux*) | ||
6200 | LD="${LD-ld} -m elf32_sparc" | ||
6201 | ;; | ||
6202 | esac | ||
6203 | ;; | ||
6204 | *64-bit*) | ||
6205 | case $host in | ||
6206 | x86_64-*kfreebsd*-gnu) | ||
6207 | LD="${LD-ld} -m elf_x86_64_fbsd" | ||
6208 | ;; | ||
6209 | x86_64-*linux*) | ||
6210 | LD="${LD-ld} -m elf_x86_64" | ||
6211 | ;; | ||
6212 | ppc*-*linux*|powerpc*-*linux*) | ||
6213 | LD="${LD-ld} -m elf64ppc" | ||
6214 | ;; | ||
6215 | s390*-*linux*|s390*-*tpf*) | ||
6216 | LD="${LD-ld} -m elf64_s390" | ||
6217 | ;; | ||
6218 | sparc*-*linux*) | ||
6219 | LD="${LD-ld} -m elf64_sparc" | ||
6220 | ;; | ||
6221 | esac | ||
6222 | ;; | ||
6223 | esac | ||
6224 | fi | ||
6225 | rm -rf conftest* | ||
6226 | ;; | ||
6227 | |||
6228 | *-*-sco3.2v5*) | ||
6229 | # On SCO OpenServer 5, we need -belf to get full-featured binaries. | ||
6230 | SAVE_CFLAGS="$CFLAGS" | ||
6231 | CFLAGS="$CFLAGS -belf" | ||
6232 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 | ||
6233 | $as_echo_n "checking whether the C compiler needs -belf... " >&6; } | ||
6234 | if test "${lt_cv_cc_needs_belf+set}" = set; then : | ||
6235 | $as_echo_n "(cached) " >&6 | ||
6236 | else | ||
6237 | ac_ext=c | ||
6238 | ac_cpp='$CPP $CPPFLAGS' | ||
6239 | ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' | ||
6240 | ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | ||
6241 | ac_compiler_gnu=$ac_cv_c_compiler_gnu | ||
6242 | |||
6243 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
6244 | /* end confdefs.h. */ | ||
6245 | |||
6246 | int | ||
6247 | main () | ||
6248 | { | ||
6249 | |||
6250 | ; | ||
6251 | return 0; | ||
6252 | } | ||
6253 | _ACEOF | ||
6254 | if ac_fn_c_try_link "$LINENO"; then : | ||
6255 | lt_cv_cc_needs_belf=yes | ||
6256 | else | ||
6257 | lt_cv_cc_needs_belf=no | ||
6258 | fi | ||
6259 | rm -f core conftest.err conftest.$ac_objext \ | ||
6260 | conftest$ac_exeext conftest.$ac_ext | ||
6261 | ac_ext=c | ||
6262 | ac_cpp='$CPP $CPPFLAGS' | ||
6263 | ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' | ||
6264 | ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | ||
6265 | ac_compiler_gnu=$ac_cv_c_compiler_gnu | ||
6266 | |||
6267 | fi | ||
6268 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 | ||
6269 | $as_echo "$lt_cv_cc_needs_belf" >&6; } | ||
6270 | if test x"$lt_cv_cc_needs_belf" != x"yes"; then | ||
6271 | # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf | ||
6272 | CFLAGS="$SAVE_CFLAGS" | ||
6273 | fi | ||
6274 | ;; | ||
6275 | sparc*-*solaris*) | ||
6276 | # Find out which ABI we are using. | ||
6277 | echo 'int i;' > conftest.$ac_ext | ||
6278 | if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 | ||
6279 | (eval $ac_compile) 2>&5 | ||
6280 | ac_status=$? | ||
6281 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
6282 | test $ac_status = 0; }; then | ||
6283 | case `/usr/bin/file conftest.o` in | ||
6284 | *64-bit*) | ||
6285 | case $lt_cv_prog_gnu_ld in | ||
6286 | yes*) LD="${LD-ld} -m elf64_sparc" ;; | ||
6287 | *) | ||
6288 | if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then | ||
6289 | LD="${LD-ld} -64" | ||
6290 | fi | ||
6291 | ;; | ||
6292 | esac | ||
6293 | ;; | ||
6294 | esac | ||
6295 | fi | ||
6296 | rm -rf conftest* | ||
6297 | ;; | ||
6298 | esac | ||
6299 | |||
6300 | need_locks="$enable_libtool_lock" | ||
6301 | |||
6302 | |||
6303 | case $host_os in | ||
6304 | rhapsody* | darwin*) | ||
6305 | if test -n "$ac_tool_prefix"; then | ||
6306 | # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. | ||
6307 | set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 | ||
6308 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
6309 | $as_echo_n "checking for $ac_word... " >&6; } | ||
6310 | if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : | ||
6311 | $as_echo_n "(cached) " >&6 | ||
6312 | else | ||
6313 | if test -n "$DSYMUTIL"; then | ||
6314 | ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. | ||
6315 | else | ||
6316 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
6317 | for as_dir in $PATH | ||
6318 | do | ||
6319 | IFS=$as_save_IFS | ||
6320 | test -z "$as_dir" && as_dir=. | ||
6321 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
6322 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
6323 | ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" | ||
6324 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
6325 | break 2 | ||
6326 | fi | ||
6327 | done | ||
6328 | done | ||
6329 | IFS=$as_save_IFS | ||
6330 | |||
6331 | fi | ||
6332 | fi | ||
6333 | DSYMUTIL=$ac_cv_prog_DSYMUTIL | ||
6334 | if test -n "$DSYMUTIL"; then | ||
6335 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 | ||
6336 | $as_echo "$DSYMUTIL" >&6; } | ||
6337 | else | ||
6338 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
6339 | $as_echo "no" >&6; } | ||
6340 | fi | ||
6341 | |||
6342 | |||
6343 | fi | ||
6344 | if test -z "$ac_cv_prog_DSYMUTIL"; then | ||
6345 | ac_ct_DSYMUTIL=$DSYMUTIL | ||
6346 | # Extract the first word of "dsymutil", so it can be a program name with args. | ||
6347 | set dummy dsymutil; ac_word=$2 | ||
6348 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
6349 | $as_echo_n "checking for $ac_word... " >&6; } | ||
6350 | if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : | ||
6351 | $as_echo_n "(cached) " >&6 | ||
6352 | else | ||
6353 | if test -n "$ac_ct_DSYMUTIL"; then | ||
6354 | ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. | ||
6355 | else | ||
6356 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
6357 | for as_dir in $PATH | ||
6358 | do | ||
6359 | IFS=$as_save_IFS | ||
6360 | test -z "$as_dir" && as_dir=. | ||
6361 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
6362 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
6363 | ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" | ||
6364 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
6365 | break 2 | ||
6366 | fi | ||
6367 | done | ||
6368 | done | ||
6369 | IFS=$as_save_IFS | ||
6370 | |||
6371 | fi | ||
6372 | fi | ||
6373 | ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL | ||
6374 | if test -n "$ac_ct_DSYMUTIL"; then | ||
6375 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 | ||
6376 | $as_echo "$ac_ct_DSYMUTIL" >&6; } | ||
6377 | else | ||
6378 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
6379 | $as_echo "no" >&6; } | ||
6380 | fi | ||
6381 | |||
6382 | if test "x$ac_ct_DSYMUTIL" = x; then | ||
6383 | DSYMUTIL=":" | ||
6384 | else | ||
6385 | case $cross_compiling:$ac_tool_warned in | ||
6386 | yes:) | ||
6387 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | ||
6388 | $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | ||
6389 | ac_tool_warned=yes ;; | ||
6390 | esac | ||
6391 | DSYMUTIL=$ac_ct_DSYMUTIL | ||
6392 | fi | ||
6393 | else | ||
6394 | DSYMUTIL="$ac_cv_prog_DSYMUTIL" | ||
6395 | fi | ||
6396 | |||
6397 | if test -n "$ac_tool_prefix"; then | ||
6398 | # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. | ||
6399 | set dummy ${ac_tool_prefix}nmedit; ac_word=$2 | ||
6400 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
6401 | $as_echo_n "checking for $ac_word... " >&6; } | ||
6402 | if test "${ac_cv_prog_NMEDIT+set}" = set; then : | ||
6403 | $as_echo_n "(cached) " >&6 | ||
6404 | else | ||
6405 | if test -n "$NMEDIT"; then | ||
6406 | ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. | ||
6407 | else | ||
6408 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
6409 | for as_dir in $PATH | ||
6410 | do | ||
6411 | IFS=$as_save_IFS | ||
6412 | test -z "$as_dir" && as_dir=. | ||
6413 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
6414 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
6415 | ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" | ||
6416 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
6417 | break 2 | ||
6418 | fi | ||
6419 | done | ||
6420 | done | ||
6421 | IFS=$as_save_IFS | ||
6422 | |||
6423 | fi | ||
6424 | fi | ||
6425 | NMEDIT=$ac_cv_prog_NMEDIT | ||
6426 | if test -n "$NMEDIT"; then | ||
6427 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 | ||
6428 | $as_echo "$NMEDIT" >&6; } | ||
6429 | else | ||
6430 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
6431 | $as_echo "no" >&6; } | ||
6432 | fi | ||
6433 | |||
6434 | |||
6435 | fi | ||
6436 | if test -z "$ac_cv_prog_NMEDIT"; then | ||
6437 | ac_ct_NMEDIT=$NMEDIT | ||
6438 | # Extract the first word of "nmedit", so it can be a program name with args. | ||
6439 | set dummy nmedit; ac_word=$2 | ||
6440 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
6441 | $as_echo_n "checking for $ac_word... " >&6; } | ||
6442 | if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : | ||
6443 | $as_echo_n "(cached) " >&6 | ||
6444 | else | ||
6445 | if test -n "$ac_ct_NMEDIT"; then | ||
6446 | ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. | ||
6447 | else | ||
6448 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
6449 | for as_dir in $PATH | ||
6450 | do | ||
6451 | IFS=$as_save_IFS | ||
6452 | test -z "$as_dir" && as_dir=. | ||
6453 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
6454 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
6455 | ac_cv_prog_ac_ct_NMEDIT="nmedit" | ||
6456 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
6457 | break 2 | ||
6458 | fi | ||
6459 | done | ||
6460 | done | ||
6461 | IFS=$as_save_IFS | ||
6462 | |||
6463 | fi | ||
6464 | fi | ||
6465 | ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT | ||
6466 | if test -n "$ac_ct_NMEDIT"; then | ||
6467 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 | ||
6468 | $as_echo "$ac_ct_NMEDIT" >&6; } | ||
6469 | else | ||
6470 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
6471 | $as_echo "no" >&6; } | ||
6472 | fi | ||
6473 | |||
6474 | if test "x$ac_ct_NMEDIT" = x; then | ||
6475 | NMEDIT=":" | ||
6476 | else | ||
6477 | case $cross_compiling:$ac_tool_warned in | ||
6478 | yes:) | ||
6479 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | ||
6480 | $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | ||
6481 | ac_tool_warned=yes ;; | ||
6482 | esac | ||
6483 | NMEDIT=$ac_ct_NMEDIT | ||
6484 | fi | ||
6485 | else | ||
6486 | NMEDIT="$ac_cv_prog_NMEDIT" | ||
6487 | fi | ||
6488 | |||
6489 | if test -n "$ac_tool_prefix"; then | ||
6490 | # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. | ||
6491 | set dummy ${ac_tool_prefix}lipo; ac_word=$2 | ||
6492 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
6493 | $as_echo_n "checking for $ac_word... " >&6; } | ||
6494 | if test "${ac_cv_prog_LIPO+set}" = set; then : | ||
6495 | $as_echo_n "(cached) " >&6 | ||
6496 | else | ||
6497 | if test -n "$LIPO"; then | ||
6498 | ac_cv_prog_LIPO="$LIPO" # Let the user override the test. | ||
6499 | else | ||
6500 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
6501 | for as_dir in $PATH | ||
6502 | do | ||
6503 | IFS=$as_save_IFS | ||
6504 | test -z "$as_dir" && as_dir=. | ||
6505 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
6506 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
6507 | ac_cv_prog_LIPO="${ac_tool_prefix}lipo" | ||
6508 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
6509 | break 2 | ||
6510 | fi | ||
6511 | done | ||
6512 | done | ||
6513 | IFS=$as_save_IFS | ||
6514 | |||
6515 | fi | ||
6516 | fi | ||
6517 | LIPO=$ac_cv_prog_LIPO | ||
6518 | if test -n "$LIPO"; then | ||
6519 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 | ||
6520 | $as_echo "$LIPO" >&6; } | ||
6521 | else | ||
6522 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
6523 | $as_echo "no" >&6; } | ||
6524 | fi | ||
6525 | |||
6526 | |||
6527 | fi | ||
6528 | if test -z "$ac_cv_prog_LIPO"; then | ||
6529 | ac_ct_LIPO=$LIPO | ||
6530 | # Extract the first word of "lipo", so it can be a program name with args. | ||
6531 | set dummy lipo; ac_word=$2 | ||
6532 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
6533 | $as_echo_n "checking for $ac_word... " >&6; } | ||
6534 | if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : | ||
6535 | $as_echo_n "(cached) " >&6 | ||
6536 | else | ||
6537 | if test -n "$ac_ct_LIPO"; then | ||
6538 | ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. | ||
6539 | else | ||
6540 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
6541 | for as_dir in $PATH | ||
6542 | do | ||
6543 | IFS=$as_save_IFS | ||
6544 | test -z "$as_dir" && as_dir=. | ||
6545 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
6546 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
6547 | ac_cv_prog_ac_ct_LIPO="lipo" | ||
6548 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
6549 | break 2 | ||
6550 | fi | ||
6551 | done | ||
6552 | done | ||
6553 | IFS=$as_save_IFS | ||
6554 | |||
6555 | fi | ||
6556 | fi | ||
6557 | ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO | ||
6558 | if test -n "$ac_ct_LIPO"; then | ||
6559 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 | ||
6560 | $as_echo "$ac_ct_LIPO" >&6; } | ||
6561 | else | ||
6562 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
6563 | $as_echo "no" >&6; } | ||
6564 | fi | ||
6565 | |||
6566 | if test "x$ac_ct_LIPO" = x; then | ||
6567 | LIPO=":" | ||
6568 | else | ||
6569 | case $cross_compiling:$ac_tool_warned in | ||
6570 | yes:) | ||
6571 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | ||
6572 | $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | ||
6573 | ac_tool_warned=yes ;; | ||
6574 | esac | ||
6575 | LIPO=$ac_ct_LIPO | ||
6576 | fi | ||
6577 | else | ||
6578 | LIPO="$ac_cv_prog_LIPO" | ||
6579 | fi | ||
6580 | |||
6581 | if test -n "$ac_tool_prefix"; then | ||
6582 | # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. | ||
6583 | set dummy ${ac_tool_prefix}otool; ac_word=$2 | ||
6584 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
6585 | $as_echo_n "checking for $ac_word... " >&6; } | ||
6586 | if test "${ac_cv_prog_OTOOL+set}" = set; then : | ||
6587 | $as_echo_n "(cached) " >&6 | ||
6588 | else | ||
6589 | if test -n "$OTOOL"; then | ||
6590 | ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. | ||
6591 | else | ||
6592 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
6593 | for as_dir in $PATH | ||
6594 | do | ||
6595 | IFS=$as_save_IFS | ||
6596 | test -z "$as_dir" && as_dir=. | ||
6597 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
6598 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
6599 | ac_cv_prog_OTOOL="${ac_tool_prefix}otool" | ||
6600 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
6601 | break 2 | ||
6602 | fi | ||
6603 | done | ||
6604 | done | ||
6605 | IFS=$as_save_IFS | ||
6606 | |||
6607 | fi | ||
6608 | fi | ||
6609 | OTOOL=$ac_cv_prog_OTOOL | ||
6610 | if test -n "$OTOOL"; then | ||
6611 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 | ||
6612 | $as_echo "$OTOOL" >&6; } | ||
6613 | else | ||
6614 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
6615 | $as_echo "no" >&6; } | ||
6616 | fi | ||
6617 | |||
6618 | |||
6619 | fi | ||
6620 | if test -z "$ac_cv_prog_OTOOL"; then | ||
6621 | ac_ct_OTOOL=$OTOOL | ||
6622 | # Extract the first word of "otool", so it can be a program name with args. | ||
6623 | set dummy otool; ac_word=$2 | ||
6624 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
6625 | $as_echo_n "checking for $ac_word... " >&6; } | ||
6626 | if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : | ||
6627 | $as_echo_n "(cached) " >&6 | ||
6628 | else | ||
6629 | if test -n "$ac_ct_OTOOL"; then | ||
6630 | ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. | ||
6631 | else | ||
6632 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
6633 | for as_dir in $PATH | ||
6634 | do | ||
6635 | IFS=$as_save_IFS | ||
6636 | test -z "$as_dir" && as_dir=. | ||
6637 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
6638 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
6639 | ac_cv_prog_ac_ct_OTOOL="otool" | ||
6640 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
6641 | break 2 | ||
6642 | fi | ||
6643 | done | ||
6644 | done | ||
6645 | IFS=$as_save_IFS | ||
6646 | |||
6647 | fi | ||
6648 | fi | ||
6649 | ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL | ||
6650 | if test -n "$ac_ct_OTOOL"; then | ||
6651 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 | ||
6652 | $as_echo "$ac_ct_OTOOL" >&6; } | ||
6653 | else | ||
6654 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
6655 | $as_echo "no" >&6; } | ||
6656 | fi | ||
6657 | |||
6658 | if test "x$ac_ct_OTOOL" = x; then | ||
6659 | OTOOL=":" | ||
6660 | else | ||
6661 | case $cross_compiling:$ac_tool_warned in | ||
6662 | yes:) | ||
6663 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | ||
6664 | $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | ||
6665 | ac_tool_warned=yes ;; | ||
6666 | esac | ||
6667 | OTOOL=$ac_ct_OTOOL | ||
6668 | fi | ||
6669 | else | ||
6670 | OTOOL="$ac_cv_prog_OTOOL" | ||
6671 | fi | ||
6672 | |||
6673 | if test -n "$ac_tool_prefix"; then | ||
6674 | # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. | ||
6675 | set dummy ${ac_tool_prefix}otool64; ac_word=$2 | ||
6676 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
6677 | $as_echo_n "checking for $ac_word... " >&6; } | ||
6678 | if test "${ac_cv_prog_OTOOL64+set}" = set; then : | ||
6679 | $as_echo_n "(cached) " >&6 | ||
6680 | else | ||
6681 | if test -n "$OTOOL64"; then | ||
6682 | ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. | ||
6683 | else | ||
6684 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
6685 | for as_dir in $PATH | ||
6686 | do | ||
6687 | IFS=$as_save_IFS | ||
6688 | test -z "$as_dir" && as_dir=. | ||
6689 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
6690 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
6691 | ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" | ||
6692 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
6693 | break 2 | ||
6694 | fi | ||
6695 | done | ||
6696 | done | ||
6697 | IFS=$as_save_IFS | ||
6698 | |||
6699 | fi | ||
6700 | fi | ||
6701 | OTOOL64=$ac_cv_prog_OTOOL64 | ||
6702 | if test -n "$OTOOL64"; then | ||
6703 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 | ||
6704 | $as_echo "$OTOOL64" >&6; } | ||
6705 | else | ||
6706 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
6707 | $as_echo "no" >&6; } | ||
6708 | fi | ||
6709 | |||
6710 | |||
6711 | fi | ||
6712 | if test -z "$ac_cv_prog_OTOOL64"; then | ||
6713 | ac_ct_OTOOL64=$OTOOL64 | ||
6714 | # Extract the first word of "otool64", so it can be a program name with args. | ||
6715 | set dummy otool64; ac_word=$2 | ||
6716 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
6717 | $as_echo_n "checking for $ac_word... " >&6; } | ||
6718 | if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : | ||
6719 | $as_echo_n "(cached) " >&6 | ||
6720 | else | ||
6721 | if test -n "$ac_ct_OTOOL64"; then | ||
6722 | ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. | ||
6723 | else | ||
6724 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
6725 | for as_dir in $PATH | ||
6726 | do | ||
6727 | IFS=$as_save_IFS | ||
6728 | test -z "$as_dir" && as_dir=. | ||
6729 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
6730 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
6731 | ac_cv_prog_ac_ct_OTOOL64="otool64" | ||
6732 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
6733 | break 2 | ||
6734 | fi | ||
6735 | done | ||
6736 | done | ||
6737 | IFS=$as_save_IFS | ||
6738 | |||
6739 | fi | ||
6740 | fi | ||
6741 | ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 | ||
6742 | if test -n "$ac_ct_OTOOL64"; then | ||
6743 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 | ||
6744 | $as_echo "$ac_ct_OTOOL64" >&6; } | ||
6745 | else | ||
6746 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
6747 | $as_echo "no" >&6; } | ||
6748 | fi | ||
6749 | |||
6750 | if test "x$ac_ct_OTOOL64" = x; then | ||
6751 | OTOOL64=":" | ||
6752 | else | ||
6753 | case $cross_compiling:$ac_tool_warned in | ||
6754 | yes:) | ||
6755 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | ||
6756 | $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | ||
6757 | ac_tool_warned=yes ;; | ||
6758 | esac | ||
6759 | OTOOL64=$ac_ct_OTOOL64 | ||
6760 | fi | ||
6761 | else | ||
6762 | OTOOL64="$ac_cv_prog_OTOOL64" | ||
6763 | fi | ||
6764 | |||
6765 | |||
6766 | |||
6767 | |||
6768 | |||
6769 | |||
6770 | |||
6771 | |||
6772 | |||
6773 | |||
6774 | |||
6775 | |||
6776 | |||
6777 | |||
6778 | |||
6779 | |||
6780 | |||
6781 | |||
6782 | |||
6783 | |||
6784 | |||
6785 | |||
6786 | |||
6787 | |||
6788 | |||
6789 | |||
6790 | |||
6791 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 | ||
6792 | $as_echo_n "checking for -single_module linker flag... " >&6; } | ||
6793 | if test "${lt_cv_apple_cc_single_mod+set}" = set; then : | ||
6794 | $as_echo_n "(cached) " >&6 | ||
6795 | else | ||
6796 | lt_cv_apple_cc_single_mod=no | ||
6797 | if test -z "${LT_MULTI_MODULE}"; then | ||
6798 | # By default we will add the -single_module flag. You can override | ||
6799 | # by either setting the environment variable LT_MULTI_MODULE | ||
6800 | # non-empty at configure time, or by adding -multi_module to the | ||
6801 | # link flags. | ||
6802 | rm -rf libconftest.dylib* | ||
6803 | echo "int foo(void){return 1;}" > conftest.c | ||
6804 | echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ | ||
6805 | -dynamiclib -Wl,-single_module conftest.c" >&5 | ||
6806 | $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ | ||
6807 | -dynamiclib -Wl,-single_module conftest.c 2>conftest.err | ||
6808 | _lt_result=$? | ||
6809 | if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then | ||
6810 | lt_cv_apple_cc_single_mod=yes | ||
6811 | else | ||
6812 | cat conftest.err >&5 | ||
6813 | fi | ||
6814 | rm -rf libconftest.dylib* | ||
6815 | rm -f conftest.* | ||
6816 | fi | ||
6817 | fi | ||
6818 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 | ||
6819 | $as_echo "$lt_cv_apple_cc_single_mod" >&6; } | ||
6820 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 | ||
6821 | $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } | ||
6822 | if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : | ||
6823 | $as_echo_n "(cached) " >&6 | ||
6824 | else | ||
6825 | lt_cv_ld_exported_symbols_list=no | ||
6826 | save_LDFLAGS=$LDFLAGS | ||
6827 | echo "_main" > conftest.sym | ||
6828 | LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" | ||
6829 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
6830 | /* end confdefs.h. */ | ||
6831 | |||
6832 | int | ||
6833 | main () | ||
6834 | { | ||
6835 | |||
6836 | ; | ||
6837 | return 0; | ||
6838 | } | ||
6839 | _ACEOF | ||
6840 | if ac_fn_c_try_link "$LINENO"; then : | ||
6841 | lt_cv_ld_exported_symbols_list=yes | ||
6842 | else | ||
6843 | lt_cv_ld_exported_symbols_list=no | ||
6844 | fi | ||
6845 | rm -f core conftest.err conftest.$ac_objext \ | ||
6846 | conftest$ac_exeext conftest.$ac_ext | ||
6847 | LDFLAGS="$save_LDFLAGS" | ||
6848 | |||
6849 | fi | ||
6850 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 | ||
6851 | $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } | ||
6852 | case $host_os in | ||
6853 | rhapsody* | darwin1.[012]) | ||
6854 | _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; | ||
6855 | darwin1.*) | ||
6856 | _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; | ||
6857 | darwin*) # darwin 5.x on | ||
6858 | # if running on 10.5 or later, the deployment target defaults | ||
6859 | # to the OS version, if on x86, and 10.4, the deployment | ||
6860 | # target defaults to 10.4. Don't you love it? | ||
6861 | case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in | ||
6862 | 10.0,*86*-darwin8*|10.0,*-darwin[91]*) | ||
6863 | _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; | ||
6864 | 10.[012]*) | ||
6865 | _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; | ||
6866 | 10.*) | ||
6867 | _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; | ||
6868 | esac | ||
6869 | ;; | ||
6870 | esac | ||
6871 | if test "$lt_cv_apple_cc_single_mod" = "yes"; then | ||
6872 | _lt_dar_single_mod='$single_module' | ||
6873 | fi | ||
6874 | if test "$lt_cv_ld_exported_symbols_list" = "yes"; then | ||
6875 | _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' | ||
6876 | else | ||
6877 | _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' | ||
6878 | fi | ||
6879 | if test "$DSYMUTIL" != ":"; then | ||
6880 | _lt_dsymutil='~$DSYMUTIL $lib || :' | ||
6881 | else | ||
6882 | _lt_dsymutil= | ||
6883 | fi | ||
6884 | ;; | ||
6885 | esac | ||
6886 | |||
6887 | ac_ext=c | ||
6888 | ac_cpp='$CPP $CPPFLAGS' | ||
6889 | ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' | ||
6890 | ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | ||
6891 | ac_compiler_gnu=$ac_cv_c_compiler_gnu | ||
6892 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 | ||
6893 | $as_echo_n "checking how to run the C preprocessor... " >&6; } | ||
6894 | # On Suns, sometimes $CPP names a directory. | ||
6895 | if test -n "$CPP" && test -d "$CPP"; then | ||
6896 | CPP= | ||
6897 | fi | ||
6898 | if test -z "$CPP"; then | ||
6899 | if test "${ac_cv_prog_CPP+set}" = set; then : | ||
6900 | $as_echo_n "(cached) " >&6 | ||
6901 | else | ||
6902 | # Double quotes because CPP needs to be expanded | ||
6903 | for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" | ||
6904 | do | ||
6905 | ac_preproc_ok=false | ||
6906 | for ac_c_preproc_warn_flag in '' yes | ||
6907 | do | ||
6908 | # Use a header file that comes with gcc, so configuring glibc | ||
6909 | # with a fresh cross-compiler works. | ||
6910 | # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since | ||
6911 | # <limits.h> exists even on freestanding compilers. | ||
6912 | # On the NeXT, cc -E runs the code through the compiler's parser, | ||
6913 | # not just through cpp. "Syntax error" is here to catch this case. | ||
6914 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
6915 | /* end confdefs.h. */ | ||
6916 | #ifdef __STDC__ | ||
6917 | # include <limits.h> | ||
6918 | #else | ||
6919 | # include <assert.h> | ||
6920 | #endif | ||
6921 | Syntax error | ||
6922 | _ACEOF | ||
6923 | if ac_fn_c_try_cpp "$LINENO"; then : | ||
6924 | |||
6925 | else | ||
6926 | # Broken: fails on valid input. | ||
6927 | continue | ||
6928 | fi | ||
6929 | rm -f conftest.err conftest.i conftest.$ac_ext | ||
6930 | |||
6931 | # OK, works on sane cases. Now check whether nonexistent headers | ||
6932 | # can be detected and how. | ||
6933 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
6934 | /* end confdefs.h. */ | ||
6935 | #include <ac_nonexistent.h> | ||
6936 | _ACEOF | ||
6937 | if ac_fn_c_try_cpp "$LINENO"; then : | ||
6938 | # Broken: success on invalid input. | ||
6939 | continue | ||
6940 | else | ||
6941 | # Passes both tests. | ||
6942 | ac_preproc_ok=: | ||
6943 | break | ||
6944 | fi | ||
6945 | rm -f conftest.err conftest.i conftest.$ac_ext | ||
6946 | |||
6947 | done | ||
6948 | # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. | ||
6949 | rm -f conftest.i conftest.err conftest.$ac_ext | ||
6950 | if $ac_preproc_ok; then : | ||
6951 | break | ||
6952 | fi | ||
6953 | |||
6954 | done | ||
6955 | ac_cv_prog_CPP=$CPP | ||
6956 | |||
6957 | fi | ||
6958 | CPP=$ac_cv_prog_CPP | ||
6959 | else | ||
6960 | ac_cv_prog_CPP=$CPP | ||
6961 | fi | ||
6962 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 | ||
6963 | $as_echo "$CPP" >&6; } | ||
6964 | ac_preproc_ok=false | ||
6965 | for ac_c_preproc_warn_flag in '' yes | ||
6966 | do | ||
6967 | # Use a header file that comes with gcc, so configuring glibc | ||
6968 | # with a fresh cross-compiler works. | ||
6969 | # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since | ||
6970 | # <limits.h> exists even on freestanding compilers. | ||
6971 | # On the NeXT, cc -E runs the code through the compiler's parser, | ||
6972 | # not just through cpp. "Syntax error" is here to catch this case. | ||
6973 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
6974 | /* end confdefs.h. */ | ||
6975 | #ifdef __STDC__ | ||
6976 | # include <limits.h> | ||
6977 | #else | ||
6978 | # include <assert.h> | ||
6979 | #endif | ||
6980 | Syntax error | ||
6981 | _ACEOF | ||
6982 | if ac_fn_c_try_cpp "$LINENO"; then : | ||
6983 | |||
6984 | else | ||
6985 | # Broken: fails on valid input. | ||
6986 | continue | ||
6987 | fi | ||
6988 | rm -f conftest.err conftest.i conftest.$ac_ext | ||
6989 | |||
6990 | # OK, works on sane cases. Now check whether nonexistent headers | ||
6991 | # can be detected and how. | ||
6992 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
6993 | /* end confdefs.h. */ | ||
6994 | #include <ac_nonexistent.h> | ||
6995 | _ACEOF | ||
6996 | if ac_fn_c_try_cpp "$LINENO"; then : | ||
6997 | # Broken: success on invalid input. | ||
6998 | continue | ||
6999 | else | ||
7000 | # Passes both tests. | ||
7001 | ac_preproc_ok=: | ||
7002 | break | ||
7003 | fi | ||
7004 | rm -f conftest.err conftest.i conftest.$ac_ext | ||
7005 | |||
7006 | done | ||
7007 | # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. | ||
7008 | rm -f conftest.i conftest.err conftest.$ac_ext | ||
7009 | if $ac_preproc_ok; then : | ||
7010 | |||
7011 | else | ||
7012 | { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 | ||
7013 | $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} | ||
7014 | as_fn_error $? "C preprocessor \"$CPP\" fails sanity check | ||
7015 | See \`config.log' for more details" "$LINENO" 5 ; } | ||
7016 | fi | ||
7017 | |||
7018 | ac_ext=c | ||
7019 | ac_cpp='$CPP $CPPFLAGS' | ||
7020 | ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' | ||
7021 | ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | ||
7022 | ac_compiler_gnu=$ac_cv_c_compiler_gnu | ||
7023 | |||
7024 | |||
7025 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 | ||
7026 | $as_echo_n "checking for ANSI C header files... " >&6; } | ||
7027 | if test "${ac_cv_header_stdc+set}" = set; then : | ||
7028 | $as_echo_n "(cached) " >&6 | ||
7029 | else | ||
7030 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
7031 | /* end confdefs.h. */ | ||
7032 | #include <stdlib.h> | ||
7033 | #include <stdarg.h> | ||
7034 | #include <string.h> | ||
7035 | #include <float.h> | ||
7036 | |||
7037 | int | ||
7038 | main () | ||
7039 | { | ||
7040 | |||
7041 | ; | ||
7042 | return 0; | ||
7043 | } | ||
7044 | _ACEOF | ||
7045 | if ac_fn_c_try_compile "$LINENO"; then : | ||
7046 | ac_cv_header_stdc=yes | ||
7047 | else | ||
7048 | ac_cv_header_stdc=no | ||
7049 | fi | ||
7050 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
7051 | |||
7052 | if test $ac_cv_header_stdc = yes; then | ||
7053 | # SunOS 4.x string.h does not declare mem*, contrary to ANSI. | ||
7054 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
7055 | /* end confdefs.h. */ | ||
7056 | #include <string.h> | ||
7057 | |||
7058 | _ACEOF | ||
7059 | if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | | ||
7060 | $EGREP "memchr" >/dev/null 2>&1; then : | ||
7061 | |||
7062 | else | ||
7063 | ac_cv_header_stdc=no | ||
7064 | fi | ||
7065 | rm -f conftest* | ||
7066 | |||
7067 | fi | ||
7068 | |||
7069 | if test $ac_cv_header_stdc = yes; then | ||
7070 | # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. | ||
7071 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
7072 | /* end confdefs.h. */ | ||
7073 | #include <stdlib.h> | ||
7074 | |||
7075 | _ACEOF | ||
7076 | if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | | ||
7077 | $EGREP "free" >/dev/null 2>&1; then : | ||
7078 | |||
7079 | else | ||
7080 | ac_cv_header_stdc=no | ||
7081 | fi | ||
7082 | rm -f conftest* | ||
7083 | |||
7084 | fi | ||
7085 | |||
7086 | if test $ac_cv_header_stdc = yes; then | ||
7087 | # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. | ||
7088 | if test "$cross_compiling" = yes; then : | ||
7089 | : | ||
7090 | else | ||
7091 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
7092 | /* end confdefs.h. */ | ||
7093 | #include <ctype.h> | ||
7094 | #include <stdlib.h> | ||
7095 | #if ((' ' & 0x0FF) == 0x020) | ||
7096 | # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') | ||
7097 | # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) | ||
7098 | #else | ||
7099 | # define ISLOWER(c) \ | ||
7100 | (('a' <= (c) && (c) <= 'i') \ | ||
7101 | || ('j' <= (c) && (c) <= 'r') \ | ||
7102 | || ('s' <= (c) && (c) <= 'z')) | ||
7103 | # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) | ||
7104 | #endif | ||
7105 | |||
7106 | #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) | ||
7107 | int | ||
7108 | main () | ||
7109 | { | ||
7110 | int i; | ||
7111 | for (i = 0; i < 256; i++) | ||
7112 | if (XOR (islower (i), ISLOWER (i)) | ||
7113 | || toupper (i) != TOUPPER (i)) | ||
7114 | return 2; | ||
7115 | return 0; | ||
7116 | } | ||
7117 | _ACEOF | ||
7118 | if ac_fn_c_try_run "$LINENO"; then : | ||
7119 | |||
7120 | else | ||
7121 | ac_cv_header_stdc=no | ||
7122 | fi | ||
7123 | rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ | ||
7124 | conftest.$ac_objext conftest.beam conftest.$ac_ext | ||
7125 | fi | ||
7126 | |||
7127 | fi | ||
7128 | fi | ||
7129 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 | ||
7130 | $as_echo "$ac_cv_header_stdc" >&6; } | ||
7131 | if test $ac_cv_header_stdc = yes; then | ||
7132 | |||
7133 | $as_echo "#define STDC_HEADERS 1" >>confdefs.h | ||
7134 | |||
7135 | fi | ||
7136 | |||
7137 | # On IRIX 5.3, sys/types and inttypes.h are conflicting. | ||
7138 | for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ | ||
7139 | inttypes.h stdint.h unistd.h | ||
7140 | do : | ||
7141 | as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` | ||
7142 | ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default | ||
7143 | " | ||
7144 | if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : | ||
7145 | cat >>confdefs.h <<_ACEOF | ||
7146 | #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 | ||
7147 | _ACEOF | ||
7148 | |||
7149 | fi | ||
7150 | |||
7151 | done | ||
7152 | |||
7153 | |||
7154 | for ac_header in dlfcn.h | ||
7155 | do : | ||
7156 | ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default | ||
7157 | " | ||
7158 | if test "x$ac_cv_header_dlfcn_h" = x""yes; then : | ||
7159 | cat >>confdefs.h <<_ACEOF | ||
7160 | #define HAVE_DLFCN_H 1 | ||
7161 | _ACEOF | ||
7162 | |||
7163 | fi | ||
7164 | |||
7165 | done | ||
7166 | |||
7167 | |||
7168 | |||
7169 | # Set options | ||
7170 | |||
7171 | |||
7172 | |||
7173 | enable_dlopen=no | ||
7174 | |||
7175 | |||
7176 | |||
7177 | # Check whether --enable-shared was given. | ||
7178 | if test "${enable_shared+set}" = set; then : | ||
7179 | enableval=$enable_shared; p=${PACKAGE-default} | ||
7180 | case $enableval in | ||
7181 | yes) enable_shared=yes ;; | ||
7182 | no) enable_shared=no ;; | ||
7183 | *) | ||
7184 | enable_shared=no | ||
7185 | # Look at the argument we got. We use all the common list separators. | ||
7186 | lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," | ||
7187 | for pkg in $enableval; do | ||
7188 | IFS="$lt_save_ifs" | ||
7189 | if test "X$pkg" = "X$p"; then | ||
7190 | enable_shared=yes | ||
7191 | fi | ||
7192 | done | ||
7193 | IFS="$lt_save_ifs" | ||
7194 | ;; | ||
7195 | esac | ||
7196 | else | ||
7197 | enable_shared=yes | ||
7198 | fi | ||
7199 | |||
7200 | |||
7201 | |||
7202 | |||
7203 | |||
7204 | |||
7205 | |||
7206 | |||
7207 | |||
7208 | # Check whether --enable-static was given. | ||
7209 | if test "${enable_static+set}" = set; then : | ||
7210 | enableval=$enable_static; p=${PACKAGE-default} | ||
7211 | case $enableval in | ||
7212 | yes) enable_static=yes ;; | ||
7213 | no) enable_static=no ;; | ||
7214 | *) | ||
7215 | enable_static=no | ||
7216 | # Look at the argument we got. We use all the common list separators. | ||
7217 | lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," | ||
7218 | for pkg in $enableval; do | ||
7219 | IFS="$lt_save_ifs" | ||
7220 | if test "X$pkg" = "X$p"; then | ||
7221 | enable_static=yes | ||
7222 | fi | ||
7223 | done | ||
7224 | IFS="$lt_save_ifs" | ||
7225 | ;; | ||
7226 | esac | ||
7227 | else | ||
7228 | enable_static=yes | ||
7229 | fi | ||
7230 | |||
7231 | |||
7232 | |||
7233 | |||
7234 | |||
7235 | |||
7236 | |||
7237 | |||
7238 | |||
7239 | |||
7240 | # Check whether --with-pic was given. | ||
7241 | if test "${with_pic+set}" = set; then : | ||
7242 | withval=$with_pic; pic_mode="$withval" | ||
7243 | else | ||
7244 | pic_mode=default | ||
7245 | fi | ||
7246 | |||
7247 | |||
7248 | test -z "$pic_mode" && pic_mode=default | ||
7249 | |||
7250 | |||
7251 | |||
7252 | |||
7253 | |||
7254 | |||
7255 | |||
7256 | # Check whether --enable-fast-install was given. | ||
7257 | if test "${enable_fast_install+set}" = set; then : | ||
7258 | enableval=$enable_fast_install; p=${PACKAGE-default} | ||
7259 | case $enableval in | ||
7260 | yes) enable_fast_install=yes ;; | ||
7261 | no) enable_fast_install=no ;; | ||
7262 | *) | ||
7263 | enable_fast_install=no | ||
7264 | # Look at the argument we got. We use all the common list separators. | ||
7265 | lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," | ||
7266 | for pkg in $enableval; do | ||
7267 | IFS="$lt_save_ifs" | ||
7268 | if test "X$pkg" = "X$p"; then | ||
7269 | enable_fast_install=yes | ||
7270 | fi | ||
7271 | done | ||
7272 | IFS="$lt_save_ifs" | ||
7273 | ;; | ||
7274 | esac | ||
7275 | else | ||
7276 | enable_fast_install=yes | ||
7277 | fi | ||
7278 | |||
7279 | |||
7280 | |||
7281 | |||
7282 | |||
7283 | |||
7284 | |||
7285 | |||
7286 | |||
7287 | |||
7288 | |||
7289 | # This can be used to rebuild libtool when needed | ||
7290 | LIBTOOL_DEPS="$ltmain" | ||
7291 | |||
7292 | # Always use our own libtool. | ||
7293 | LIBTOOL='$(SHELL) $(top_builddir)/libtool' | ||
7294 | |||
7295 | |||
7296 | |||
7297 | |||
7298 | |||
7299 | |||
7300 | |||
7301 | |||
7302 | |||
7303 | |||
7304 | |||
7305 | |||
7306 | |||
7307 | |||
7308 | |||
7309 | |||
7310 | |||
7311 | |||
7312 | |||
7313 | |||
7314 | |||
7315 | |||
7316 | |||
7317 | |||
7318 | |||
7319 | test -z "$LN_S" && LN_S="ln -s" | ||
7320 | |||
7321 | |||
7322 | |||
7323 | |||
7324 | |||
7325 | |||
7326 | |||
7327 | |||
7328 | |||
7329 | |||
7330 | |||
7331 | |||
7332 | |||
7333 | |||
7334 | if test -n "${ZSH_VERSION+set}" ; then | ||
7335 | setopt NO_GLOB_SUBST | ||
7336 | fi | ||
7337 | |||
7338 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 | ||
7339 | $as_echo_n "checking for objdir... " >&6; } | ||
7340 | if test "${lt_cv_objdir+set}" = set; then : | ||
7341 | $as_echo_n "(cached) " >&6 | ||
7342 | else | ||
7343 | rm -f .libs 2>/dev/null | ||
7344 | mkdir .libs 2>/dev/null | ||
7345 | if test -d .libs; then | ||
7346 | lt_cv_objdir=.libs | ||
7347 | else | ||
7348 | # MS-DOS does not allow filenames that begin with a dot. | ||
7349 | lt_cv_objdir=_libs | ||
7350 | fi | ||
7351 | rmdir .libs 2>/dev/null | ||
7352 | fi | ||
7353 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 | ||
7354 | $as_echo "$lt_cv_objdir" >&6; } | ||
7355 | objdir=$lt_cv_objdir | ||
7356 | |||
7357 | |||
7358 | |||
7359 | |||
7360 | |||
7361 | cat >>confdefs.h <<_ACEOF | ||
7362 | #define LT_OBJDIR "$lt_cv_objdir/" | ||
7363 | _ACEOF | ||
7364 | |||
7365 | |||
7366 | |||
7367 | |||
7368 | |||
7369 | |||
7370 | |||
7371 | |||
7372 | |||
7373 | |||
7374 | |||
7375 | |||
7376 | |||
7377 | |||
7378 | |||
7379 | |||
7380 | |||
7381 | case $host_os in | ||
7382 | aix3*) | ||
7383 | # AIX sometimes has problems with the GCC collect2 program. For some | ||
7384 | # reason, if we set the COLLECT_NAMES environment variable, the problems | ||
7385 | # vanish in a puff of smoke. | ||
7386 | if test "X${COLLECT_NAMES+set}" != Xset; then | ||
7387 | COLLECT_NAMES= | ||
7388 | export COLLECT_NAMES | ||
7389 | fi | ||
7390 | ;; | ||
7391 | esac | ||
7392 | |||
7393 | # Sed substitution that helps us do robust quoting. It backslashifies | ||
7394 | # metacharacters that are still active within double-quoted strings. | ||
7395 | sed_quote_subst='s/\(["`$\\]\)/\\\1/g' | ||
7396 | |||
7397 | # Same as above, but do not quote variable references. | ||
7398 | double_quote_subst='s/\(["`\\]\)/\\\1/g' | ||
7399 | |||
7400 | # Sed substitution to delay expansion of an escaped shell variable in a | ||
7401 | # double_quote_subst'ed string. | ||
7402 | delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' | ||
7403 | |||
7404 | # Sed substitution to delay expansion of an escaped single quote. | ||
7405 | delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' | ||
7406 | |||
7407 | # Sed substitution to avoid accidental globbing in evaled expressions | ||
7408 | no_glob_subst='s/\*/\\\*/g' | ||
7409 | |||
7410 | # Global variables: | ||
7411 | ofile=libtool | ||
7412 | can_build_shared=yes | ||
7413 | |||
7414 | # All known linkers require a `.a' archive for static linking (except MSVC, | ||
7415 | # which needs '.lib'). | ||
7416 | libext=a | ||
7417 | |||
7418 | with_gnu_ld="$lt_cv_prog_gnu_ld" | ||
7419 | |||
7420 | old_CC="$CC" | ||
7421 | old_CFLAGS="$CFLAGS" | ||
7422 | |||
7423 | # Set sane defaults for various variables | ||
7424 | test -z "$CC" && CC=cc | ||
7425 | test -z "$LTCC" && LTCC=$CC | ||
7426 | test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS | ||
7427 | test -z "$LD" && LD=ld | ||
7428 | test -z "$ac_objext" && ac_objext=o | ||
7429 | |||
7430 | for cc_temp in $compiler""; do | ||
7431 | case $cc_temp in | ||
7432 | compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; | ||
7433 | distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; | ||
7434 | \-*) ;; | ||
7435 | *) break;; | ||
7436 | esac | ||
7437 | done | ||
7438 | cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` | ||
7439 | |||
7440 | |||
7441 | # Only perform the check for file, if the check method requires it | ||
7442 | test -z "$MAGIC_CMD" && MAGIC_CMD=file | ||
7443 | case $deplibs_check_method in | ||
7444 | file_magic*) | ||
7445 | if test "$file_magic_cmd" = '$MAGIC_CMD'; then | ||
7446 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 | ||
7447 | $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } | ||
7448 | if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : | ||
7449 | $as_echo_n "(cached) " >&6 | ||
7450 | else | ||
7451 | case $MAGIC_CMD in | ||
7452 | [\\/*] | ?:[\\/]*) | ||
7453 | lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. | ||
7454 | ;; | ||
7455 | *) | ||
7456 | lt_save_MAGIC_CMD="$MAGIC_CMD" | ||
7457 | lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR | ||
7458 | ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" | ||
7459 | for ac_dir in $ac_dummy; do | ||
7460 | IFS="$lt_save_ifs" | ||
7461 | test -z "$ac_dir" && ac_dir=. | ||
7462 | if test -f $ac_dir/${ac_tool_prefix}file; then | ||
7463 | lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" | ||
7464 | if test -n "$file_magic_test_file"; then | ||
7465 | case $deplibs_check_method in | ||
7466 | "file_magic "*) | ||
7467 | file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` | ||
7468 | MAGIC_CMD="$lt_cv_path_MAGIC_CMD" | ||
7469 | if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | | ||
7470 | $EGREP "$file_magic_regex" > /dev/null; then | ||
7471 | : | ||
7472 | else | ||
7473 | cat <<_LT_EOF 1>&2 | ||
7474 | |||
7475 | *** Warning: the command libtool uses to detect shared libraries, | ||
7476 | *** $file_magic_cmd, produces output that libtool cannot recognize. | ||
7477 | *** The result is that libtool may fail to recognize shared libraries | ||
7478 | *** as such. This will affect the creation of libtool libraries that | ||
7479 | *** depend on shared libraries, but programs linked with such libtool | ||
7480 | *** libraries will work regardless of this problem. Nevertheless, you | ||
7481 | *** may want to report the problem to your system manager and/or to | ||
7482 | *** bug-libtool@gnu.org | ||
7483 | |||
7484 | _LT_EOF | ||
7485 | fi ;; | ||
7486 | esac | ||
7487 | fi | ||
7488 | break | ||
7489 | fi | ||
7490 | done | ||
7491 | IFS="$lt_save_ifs" | ||
7492 | MAGIC_CMD="$lt_save_MAGIC_CMD" | ||
7493 | ;; | ||
7494 | esac | ||
7495 | fi | ||
7496 | |||
7497 | MAGIC_CMD="$lt_cv_path_MAGIC_CMD" | ||
7498 | if test -n "$MAGIC_CMD"; then | ||
7499 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 | ||
7500 | $as_echo "$MAGIC_CMD" >&6; } | ||
7501 | else | ||
7502 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
7503 | $as_echo "no" >&6; } | ||
7504 | fi | ||
7505 | |||
7506 | |||
7507 | |||
7508 | |||
7509 | |||
7510 | if test -z "$lt_cv_path_MAGIC_CMD"; then | ||
7511 | if test -n "$ac_tool_prefix"; then | ||
7512 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 | ||
7513 | $as_echo_n "checking for file... " >&6; } | ||
7514 | if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : | ||
7515 | $as_echo_n "(cached) " >&6 | ||
7516 | else | ||
7517 | case $MAGIC_CMD in | ||
7518 | [\\/*] | ?:[\\/]*) | ||
7519 | lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. | ||
7520 | ;; | ||
7521 | *) | ||
7522 | lt_save_MAGIC_CMD="$MAGIC_CMD" | ||
7523 | lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR | ||
7524 | ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" | ||
7525 | for ac_dir in $ac_dummy; do | ||
7526 | IFS="$lt_save_ifs" | ||
7527 | test -z "$ac_dir" && ac_dir=. | ||
7528 | if test -f $ac_dir/file; then | ||
7529 | lt_cv_path_MAGIC_CMD="$ac_dir/file" | ||
7530 | if test -n "$file_magic_test_file"; then | ||
7531 | case $deplibs_check_method in | ||
7532 | "file_magic "*) | ||
7533 | file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` | ||
7534 | MAGIC_CMD="$lt_cv_path_MAGIC_CMD" | ||
7535 | if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | | ||
7536 | $EGREP "$file_magic_regex" > /dev/null; then | ||
7537 | : | ||
7538 | else | ||
7539 | cat <<_LT_EOF 1>&2 | ||
7540 | |||
7541 | *** Warning: the command libtool uses to detect shared libraries, | ||
7542 | *** $file_magic_cmd, produces output that libtool cannot recognize. | ||
7543 | *** The result is that libtool may fail to recognize shared libraries | ||
7544 | *** as such. This will affect the creation of libtool libraries that | ||
7545 | *** depend on shared libraries, but programs linked with such libtool | ||
7546 | *** libraries will work regardless of this problem. Nevertheless, you | ||
7547 | *** may want to report the problem to your system manager and/or to | ||
7548 | *** bug-libtool@gnu.org | ||
7549 | |||
7550 | _LT_EOF | ||
7551 | fi ;; | ||
7552 | esac | ||
7553 | fi | ||
7554 | break | ||
7555 | fi | ||
7556 | done | ||
7557 | IFS="$lt_save_ifs" | ||
7558 | MAGIC_CMD="$lt_save_MAGIC_CMD" | ||
7559 | ;; | ||
7560 | esac | ||
7561 | fi | ||
7562 | |||
7563 | MAGIC_CMD="$lt_cv_path_MAGIC_CMD" | ||
7564 | if test -n "$MAGIC_CMD"; then | ||
7565 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 | ||
7566 | $as_echo "$MAGIC_CMD" >&6; } | ||
7567 | else | ||
7568 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
7569 | $as_echo "no" >&6; } | ||
7570 | fi | ||
7571 | |||
7572 | |||
7573 | else | ||
7574 | MAGIC_CMD=: | ||
7575 | fi | ||
7576 | fi | ||
7577 | |||
7578 | fi | ||
7579 | ;; | ||
7580 | esac | ||
7581 | |||
7582 | # Use C for the default configuration in the libtool script | ||
7583 | |||
7584 | lt_save_CC="$CC" | ||
7585 | ac_ext=c | ||
7586 | ac_cpp='$CPP $CPPFLAGS' | ||
7587 | ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' | ||
7588 | ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | ||
7589 | ac_compiler_gnu=$ac_cv_c_compiler_gnu | ||
7590 | |||
7591 | |||
7592 | # Source file extension for C test sources. | ||
7593 | ac_ext=c | ||
7594 | |||
7595 | # Object file extension for compiled C test sources. | ||
7596 | objext=o | ||
7597 | objext=$objext | ||
7598 | |||
7599 | # Code to be used in simple compile tests | ||
7600 | lt_simple_compile_test_code="int some_variable = 0;" | ||
7601 | |||
7602 | # Code to be used in simple link tests | ||
7603 | lt_simple_link_test_code='int main(){return(0);}' | ||
7604 | |||
7605 | |||
7606 | |||
7607 | |||
7608 | |||
7609 | |||
7610 | |||
7611 | # If no C compiler was specified, use CC. | ||
7612 | LTCC=${LTCC-"$CC"} | ||
7613 | |||
7614 | # If no C compiler flags were specified, use CFLAGS. | ||
7615 | LTCFLAGS=${LTCFLAGS-"$CFLAGS"} | ||
7616 | |||
7617 | # Allow CC to be a program name with arguments. | ||
7618 | compiler=$CC | ||
7619 | |||
7620 | # Save the default compiler, since it gets overwritten when the other | ||
7621 | # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. | ||
7622 | compiler_DEFAULT=$CC | ||
7623 | |||
7624 | # save warnings/boilerplate of simple test code | ||
7625 | ac_outfile=conftest.$ac_objext | ||
7626 | echo "$lt_simple_compile_test_code" >conftest.$ac_ext | ||
7627 | eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err | ||
7628 | _lt_compiler_boilerplate=`cat conftest.err` | ||
7629 | $RM conftest* | ||
7630 | |||
7631 | ac_outfile=conftest.$ac_objext | ||
7632 | echo "$lt_simple_link_test_code" >conftest.$ac_ext | ||
7633 | eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err | ||
7634 | _lt_linker_boilerplate=`cat conftest.err` | ||
7635 | $RM -r conftest* | ||
7636 | |||
7637 | |||
7638 | ## CAVEAT EMPTOR: | ||
7639 | ## There is no encapsulation within the following macros, do not change | ||
7640 | ## the running order or otherwise move them around unless you know exactly | ||
7641 | ## what you are doing... | ||
7642 | if test -n "$compiler"; then | ||
7643 | |||
7644 | lt_prog_compiler_no_builtin_flag= | ||
7645 | |||
7646 | if test "$GCC" = yes; then | ||
7647 | lt_prog_compiler_no_builtin_flag=' -fno-builtin' | ||
7648 | |||
7649 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 | ||
7650 | $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } | ||
7651 | if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : | ||
7652 | $as_echo_n "(cached) " >&6 | ||
7653 | else | ||
7654 | lt_cv_prog_compiler_rtti_exceptions=no | ||
7655 | ac_outfile=conftest.$ac_objext | ||
7656 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | ||
7657 | lt_compiler_flag="-fno-rtti -fno-exceptions" | ||
7658 | # Insert the option either (1) after the last *FLAGS variable, or | ||
7659 | # (2) before a word containing "conftest.", or (3) at the end. | ||
7660 | # Note that $ac_compile itself does not contain backslashes and begins | ||
7661 | # with a dollar sign (not a hyphen), so the echo should work correctly. | ||
7662 | # The option is referenced via a variable to avoid confusing sed. | ||
7663 | lt_compile=`echo "$ac_compile" | $SED \ | ||
7664 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ | ||
7665 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ | ||
7666 | -e 's:$: $lt_compiler_flag:'` | ||
7667 | (eval echo "\"\$as_me:7667: $lt_compile\"" >&5) | ||
7668 | (eval "$lt_compile" 2>conftest.err) | ||
7669 | ac_status=$? | ||
7670 | cat conftest.err >&5 | ||
7671 | echo "$as_me:7671: \$? = $ac_status" >&5 | ||
7672 | if (exit $ac_status) && test -s "$ac_outfile"; then | ||
7673 | # The compiler can only warn and ignore the option if not recognized | ||
7674 | # So say no if there are warnings other than the usual output. | ||
7675 | $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp | ||
7676 | $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 | ||
7677 | if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then | ||
7678 | lt_cv_prog_compiler_rtti_exceptions=yes | ||
7679 | fi | ||
7680 | fi | ||
7681 | $RM conftest* | ||
7682 | |||
7683 | fi | ||
7684 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 | ||
7685 | $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } | ||
7686 | |||
7687 | if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then | ||
7688 | lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" | ||
7689 | else | ||
7690 | : | ||
7691 | fi | ||
7692 | |||
7693 | fi | ||
7694 | |||
7695 | |||
7696 | |||
7697 | |||
7698 | |||
7699 | |||
7700 | lt_prog_compiler_wl= | ||
7701 | lt_prog_compiler_pic= | ||
7702 | lt_prog_compiler_static= | ||
7703 | |||
7704 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 | ||
7705 | $as_echo_n "checking for $compiler option to produce PIC... " >&6; } | ||
7706 | |||
7707 | if test "$GCC" = yes; then | ||
7708 | lt_prog_compiler_wl='-Wl,' | ||
7709 | lt_prog_compiler_static='-static' | ||
7710 | |||
7711 | case $host_os in | ||
7712 | aix*) | ||
7713 | # All AIX code is PIC. | ||
7714 | if test "$host_cpu" = ia64; then | ||
7715 | # AIX 5 now supports IA64 processor | ||
7716 | lt_prog_compiler_static='-Bstatic' | ||
7717 | fi | ||
7718 | ;; | ||
7719 | |||
7720 | amigaos*) | ||
7721 | case $host_cpu in | ||
7722 | powerpc) | ||
7723 | # see comment about AmigaOS4 .so support | ||
7724 | lt_prog_compiler_pic='-fPIC' | ||
7725 | ;; | ||
7726 | m68k) | ||
7727 | # FIXME: we need at least 68020 code to build shared libraries, but | ||
7728 | # adding the `-m68020' flag to GCC prevents building anything better, | ||
7729 | # like `-m68040'. | ||
7730 | lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' | ||
7731 | ;; | ||
7732 | esac | ||
7733 | ;; | ||
7734 | |||
7735 | beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) | ||
7736 | # PIC is the default for these OSes. | ||
7737 | ;; | ||
7738 | |||
7739 | mingw* | cygwin* | pw32* | os2* | cegcc*) | ||
7740 | # This hack is so that the source file can tell whether it is being | ||
7741 | # built for inclusion in a dll (and should export symbols for example). | ||
7742 | # Although the cygwin gcc ignores -fPIC, still need this for old-style | ||
7743 | # (--disable-auto-import) libraries | ||
7744 | lt_prog_compiler_pic='-DDLL_EXPORT' | ||
7745 | ;; | ||
7746 | |||
7747 | darwin* | rhapsody*) | ||
7748 | # PIC is the default on this platform | ||
7749 | # Common symbols not allowed in MH_DYLIB files | ||
7750 | lt_prog_compiler_pic='-fno-common' | ||
7751 | ;; | ||
7752 | |||
7753 | hpux*) | ||
7754 | # PIC is the default for 64-bit PA HP-UX, but not for 32-bit | ||
7755 | # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag | ||
7756 | # sets the default TLS model and affects inlining. | ||
7757 | case $host_cpu in | ||
7758 | hppa*64*) | ||
7759 | # +Z the default | ||
7760 | ;; | ||
7761 | *) | ||
7762 | lt_prog_compiler_pic='-fPIC' | ||
7763 | ;; | ||
7764 | esac | ||
7765 | ;; | ||
7766 | |||
7767 | interix[3-9]*) | ||
7768 | # Interix 3.x gcc -fpic/-fPIC options generate broken code. | ||
7769 | # Instead, we relocate shared libraries at runtime. | ||
7770 | ;; | ||
7771 | |||
7772 | msdosdjgpp*) | ||
7773 | # Just because we use GCC doesn't mean we suddenly get shared libraries | ||
7774 | # on systems that don't support them. | ||
7775 | lt_prog_compiler_can_build_shared=no | ||
7776 | enable_shared=no | ||
7777 | ;; | ||
7778 | |||
7779 | *nto* | *qnx*) | ||
7780 | # QNX uses GNU C++, but need to define -shared option too, otherwise | ||
7781 | # it will coredump. | ||
7782 | lt_prog_compiler_pic='-fPIC -shared' | ||
7783 | ;; | ||
7784 | |||
7785 | sysv4*MP*) | ||
7786 | if test -d /usr/nec; then | ||
7787 | lt_prog_compiler_pic=-Kconform_pic | ||
7788 | fi | ||
7789 | ;; | ||
7790 | |||
7791 | *) | ||
7792 | lt_prog_compiler_pic='-fPIC' | ||
7793 | ;; | ||
7794 | esac | ||
7795 | else | ||
7796 | # PORTME Check for flag to pass linker flags through the system compiler. | ||
7797 | case $host_os in | ||
7798 | aix*) | ||
7799 | lt_prog_compiler_wl='-Wl,' | ||
7800 | if test "$host_cpu" = ia64; then | ||
7801 | # AIX 5 now supports IA64 processor | ||
7802 | lt_prog_compiler_static='-Bstatic' | ||
7803 | else | ||
7804 | lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' | ||
7805 | fi | ||
7806 | ;; | ||
7807 | |||
7808 | mingw* | cygwin* | pw32* | os2* | cegcc*) | ||
7809 | # This hack is so that the source file can tell whether it is being | ||
7810 | # built for inclusion in a dll (and should export symbols for example). | ||
7811 | lt_prog_compiler_pic='-DDLL_EXPORT' | ||
7812 | ;; | ||
7813 | |||
7814 | hpux9* | hpux10* | hpux11*) | ||
7815 | lt_prog_compiler_wl='-Wl,' | ||
7816 | # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but | ||
7817 | # not for PA HP-UX. | ||
7818 | case $host_cpu in | ||
7819 | hppa*64*|ia64*) | ||
7820 | # +Z the default | ||
7821 | ;; | ||
7822 | *) | ||
7823 | lt_prog_compiler_pic='+Z' | ||
7824 | ;; | ||
7825 | esac | ||
7826 | # Is there a better lt_prog_compiler_static that works with the bundled CC? | ||
7827 | lt_prog_compiler_static='${wl}-a ${wl}archive' | ||
7828 | ;; | ||
7829 | |||
7830 | irix5* | irix6* | nonstopux*) | ||
7831 | lt_prog_compiler_wl='-Wl,' | ||
7832 | # PIC (with -KPIC) is the default. | ||
7833 | lt_prog_compiler_static='-non_shared' | ||
7834 | ;; | ||
7835 | |||
7836 | linux* | k*bsd*-gnu | kopensolaris*-gnu) | ||
7837 | case $cc_basename in | ||
7838 | # old Intel for x86_64 which still supported -KPIC. | ||
7839 | ecc*) | ||
7840 | lt_prog_compiler_wl='-Wl,' | ||
7841 | lt_prog_compiler_pic='-KPIC' | ||
7842 | lt_prog_compiler_static='-static' | ||
7843 | ;; | ||
7844 | # icc used to be incompatible with GCC. | ||
7845 | # ICC 10 doesn't accept -KPIC any more. | ||
7846 | icc* | ifort*) | ||
7847 | lt_prog_compiler_wl='-Wl,' | ||
7848 | lt_prog_compiler_pic='-fPIC' | ||
7849 | lt_prog_compiler_static='-static' | ||
7850 | ;; | ||
7851 | # Lahey Fortran 8.1. | ||
7852 | lf95*) | ||
7853 | lt_prog_compiler_wl='-Wl,' | ||
7854 | lt_prog_compiler_pic='--shared' | ||
7855 | lt_prog_compiler_static='--static' | ||
7856 | ;; | ||
7857 | pgcc* | pgf77* | pgf90* | pgf95*) | ||
7858 | # Portland Group compilers (*not* the Pentium gcc compiler, | ||
7859 | # which looks to be a dead project) | ||
7860 | lt_prog_compiler_wl='-Wl,' | ||
7861 | lt_prog_compiler_pic='-fpic' | ||
7862 | lt_prog_compiler_static='-Bstatic' | ||
7863 | ;; | ||
7864 | ccc*) | ||
7865 | lt_prog_compiler_wl='-Wl,' | ||
7866 | # All Alpha code is PIC. | ||
7867 | lt_prog_compiler_static='-non_shared' | ||
7868 | ;; | ||
7869 | xl*) | ||
7870 | # IBM XL C 8.0/Fortran 10.1 on PPC | ||
7871 | lt_prog_compiler_wl='-Wl,' | ||
7872 | lt_prog_compiler_pic='-qpic' | ||
7873 | lt_prog_compiler_static='-qstaticlink' | ||
7874 | ;; | ||
7875 | *) | ||
7876 | case `$CC -V 2>&1 | sed 5q` in | ||
7877 | *Sun\ C*) | ||
7878 | # Sun C 5.9 | ||
7879 | lt_prog_compiler_pic='-KPIC' | ||
7880 | lt_prog_compiler_static='-Bstatic' | ||
7881 | lt_prog_compiler_wl='-Wl,' | ||
7882 | ;; | ||
7883 | *Sun\ F*) | ||
7884 | # Sun Fortran 8.3 passes all unrecognized flags to the linker | ||
7885 | lt_prog_compiler_pic='-KPIC' | ||
7886 | lt_prog_compiler_static='-Bstatic' | ||
7887 | lt_prog_compiler_wl='' | ||
7888 | ;; | ||
7889 | esac | ||
7890 | ;; | ||
7891 | esac | ||
7892 | ;; | ||
7893 | |||
7894 | newsos6) | ||
7895 | lt_prog_compiler_pic='-KPIC' | ||
7896 | lt_prog_compiler_static='-Bstatic' | ||
7897 | ;; | ||
7898 | |||
7899 | *nto* | *qnx*) | ||
7900 | # QNX uses GNU C++, but need to define -shared option too, otherwise | ||
7901 | # it will coredump. | ||
7902 | lt_prog_compiler_pic='-fPIC -shared' | ||
7903 | ;; | ||
7904 | |||
7905 | osf3* | osf4* | osf5*) | ||
7906 | lt_prog_compiler_wl='-Wl,' | ||
7907 | # All OSF/1 code is PIC. | ||
7908 | lt_prog_compiler_static='-non_shared' | ||
7909 | ;; | ||
7910 | |||
7911 | rdos*) | ||
7912 | lt_prog_compiler_static='-non_shared' | ||
7913 | ;; | ||
7914 | |||
7915 | solaris*) | ||
7916 | lt_prog_compiler_pic='-KPIC' | ||
7917 | lt_prog_compiler_static='-Bstatic' | ||
7918 | case $cc_basename in | ||
7919 | f77* | f90* | f95*) | ||
7920 | lt_prog_compiler_wl='-Qoption ld ';; | ||
7921 | *) | ||
7922 | lt_prog_compiler_wl='-Wl,';; | ||
7923 | esac | ||
7924 | ;; | ||
7925 | |||
7926 | sunos4*) | ||
7927 | lt_prog_compiler_wl='-Qoption ld ' | ||
7928 | lt_prog_compiler_pic='-PIC' | ||
7929 | lt_prog_compiler_static='-Bstatic' | ||
7930 | ;; | ||
7931 | |||
7932 | sysv4 | sysv4.2uw2* | sysv4.3*) | ||
7933 | lt_prog_compiler_wl='-Wl,' | ||
7934 | lt_prog_compiler_pic='-KPIC' | ||
7935 | lt_prog_compiler_static='-Bstatic' | ||
7936 | ;; | ||
7937 | |||
7938 | sysv4*MP*) | ||
7939 | if test -d /usr/nec ;then | ||
7940 | lt_prog_compiler_pic='-Kconform_pic' | ||
7941 | lt_prog_compiler_static='-Bstatic' | ||
7942 | fi | ||
7943 | ;; | ||
7944 | |||
7945 | sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) | ||
7946 | lt_prog_compiler_wl='-Wl,' | ||
7947 | lt_prog_compiler_pic='-KPIC' | ||
7948 | lt_prog_compiler_static='-Bstatic' | ||
7949 | ;; | ||
7950 | |||
7951 | unicos*) | ||
7952 | lt_prog_compiler_wl='-Wl,' | ||
7953 | lt_prog_compiler_can_build_shared=no | ||
7954 | ;; | ||
7955 | |||
7956 | uts4*) | ||
7957 | lt_prog_compiler_pic='-pic' | ||
7958 | lt_prog_compiler_static='-Bstatic' | ||
7959 | ;; | ||
7960 | |||
7961 | *) | ||
7962 | lt_prog_compiler_can_build_shared=no | ||
7963 | ;; | ||
7964 | esac | ||
7965 | fi | ||
7966 | |||
7967 | case $host_os in | ||
7968 | # For platforms which do not support PIC, -DPIC is meaningless: | ||
7969 | *djgpp*) | ||
7970 | lt_prog_compiler_pic= | ||
7971 | ;; | ||
7972 | *) | ||
7973 | lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" | ||
7974 | ;; | ||
7975 | esac | ||
7976 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 | ||
7977 | $as_echo "$lt_prog_compiler_pic" >&6; } | ||
7978 | |||
7979 | |||
7980 | |||
7981 | |||
7982 | |||
7983 | |||
7984 | # | ||
7985 | # Check to make sure the PIC flag actually works. | ||
7986 | # | ||
7987 | if test -n "$lt_prog_compiler_pic"; then | ||
7988 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 | ||
7989 | $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } | ||
7990 | if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : | ||
7991 | $as_echo_n "(cached) " >&6 | ||
7992 | else | ||
7993 | lt_cv_prog_compiler_pic_works=no | ||
7994 | ac_outfile=conftest.$ac_objext | ||
7995 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | ||
7996 | lt_compiler_flag="$lt_prog_compiler_pic -DPIC" | ||
7997 | # Insert the option either (1) after the last *FLAGS variable, or | ||
7998 | # (2) before a word containing "conftest.", or (3) at the end. | ||
7999 | # Note that $ac_compile itself does not contain backslashes and begins | ||
8000 | # with a dollar sign (not a hyphen), so the echo should work correctly. | ||
8001 | # The option is referenced via a variable to avoid confusing sed. | ||
8002 | lt_compile=`echo "$ac_compile" | $SED \ | ||
8003 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ | ||
8004 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ | ||
8005 | -e 's:$: $lt_compiler_flag:'` | ||
8006 | (eval echo "\"\$as_me:8006: $lt_compile\"" >&5) | ||
8007 | (eval "$lt_compile" 2>conftest.err) | ||
8008 | ac_status=$? | ||
8009 | cat conftest.err >&5 | ||
8010 | echo "$as_me:8010: \$? = $ac_status" >&5 | ||
8011 | if (exit $ac_status) && test -s "$ac_outfile"; then | ||
8012 | # The compiler can only warn and ignore the option if not recognized | ||
8013 | # So say no if there are warnings other than the usual output. | ||
8014 | $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp | ||
8015 | $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 | ||
8016 | if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then | ||
8017 | lt_cv_prog_compiler_pic_works=yes | ||
8018 | fi | ||
8019 | fi | ||
8020 | $RM conftest* | ||
8021 | |||
8022 | fi | ||
8023 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 | ||
8024 | $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } | ||
8025 | |||
8026 | if test x"$lt_cv_prog_compiler_pic_works" = xyes; then | ||
8027 | case $lt_prog_compiler_pic in | ||
8028 | "" | " "*) ;; | ||
8029 | *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; | ||
8030 | esac | ||
8031 | else | ||
8032 | lt_prog_compiler_pic= | ||
8033 | lt_prog_compiler_can_build_shared=no | ||
8034 | fi | ||
8035 | |||
8036 | fi | ||
8037 | |||
8038 | |||
8039 | |||
8040 | |||
8041 | |||
8042 | |||
8043 | # | ||
8044 | # Check to make sure the static flag actually works. | ||
8045 | # | ||
8046 | wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" | ||
8047 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 | ||
8048 | $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } | ||
8049 | if test "${lt_cv_prog_compiler_static_works+set}" = set; then : | ||
8050 | $as_echo_n "(cached) " >&6 | ||
8051 | else | ||
8052 | lt_cv_prog_compiler_static_works=no | ||
8053 | save_LDFLAGS="$LDFLAGS" | ||
8054 | LDFLAGS="$LDFLAGS $lt_tmp_static_flag" | ||
8055 | echo "$lt_simple_link_test_code" > conftest.$ac_ext | ||
8056 | if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then | ||
8057 | # The linker can only warn and ignore the option if not recognized | ||
8058 | # So say no if there are warnings | ||
8059 | if test -s conftest.err; then | ||
8060 | # Append any errors to the config.log. | ||
8061 | cat conftest.err 1>&5 | ||
8062 | $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp | ||
8063 | $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 | ||
8064 | if diff conftest.exp conftest.er2 >/dev/null; then | ||
8065 | lt_cv_prog_compiler_static_works=yes | ||
8066 | fi | ||
8067 | else | ||
8068 | lt_cv_prog_compiler_static_works=yes | ||
8069 | fi | ||
8070 | fi | ||
8071 | $RM -r conftest* | ||
8072 | LDFLAGS="$save_LDFLAGS" | ||
8073 | |||
8074 | fi | ||
8075 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 | ||
8076 | $as_echo "$lt_cv_prog_compiler_static_works" >&6; } | ||
8077 | |||
8078 | if test x"$lt_cv_prog_compiler_static_works" = xyes; then | ||
8079 | : | ||
8080 | else | ||
8081 | lt_prog_compiler_static= | ||
8082 | fi | ||
8083 | |||
8084 | |||
8085 | |||
8086 | |||
8087 | |||
8088 | |||
8089 | |||
8090 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 | ||
8091 | $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } | ||
8092 | if test "${lt_cv_prog_compiler_c_o+set}" = set; then : | ||
8093 | $as_echo_n "(cached) " >&6 | ||
8094 | else | ||
8095 | lt_cv_prog_compiler_c_o=no | ||
8096 | $RM -r conftest 2>/dev/null | ||
8097 | mkdir conftest | ||
8098 | cd conftest | ||
8099 | mkdir out | ||
8100 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | ||
8101 | |||
8102 | lt_compiler_flag="-o out/conftest2.$ac_objext" | ||
8103 | # Insert the option either (1) after the last *FLAGS variable, or | ||
8104 | # (2) before a word containing "conftest.", or (3) at the end. | ||
8105 | # Note that $ac_compile itself does not contain backslashes and begins | ||
8106 | # with a dollar sign (not a hyphen), so the echo should work correctly. | ||
8107 | lt_compile=`echo "$ac_compile" | $SED \ | ||
8108 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ | ||
8109 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ | ||
8110 | -e 's:$: $lt_compiler_flag:'` | ||
8111 | (eval echo "\"\$as_me:8111: $lt_compile\"" >&5) | ||
8112 | (eval "$lt_compile" 2>out/conftest.err) | ||
8113 | ac_status=$? | ||
8114 | cat out/conftest.err >&5 | ||
8115 | echo "$as_me:8115: \$? = $ac_status" >&5 | ||
8116 | if (exit $ac_status) && test -s out/conftest2.$ac_objext | ||
8117 | then | ||
8118 | # The compiler can only warn and ignore the option if not recognized | ||
8119 | # So say no if there are warnings | ||
8120 | $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp | ||
8121 | $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 | ||
8122 | if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then | ||
8123 | lt_cv_prog_compiler_c_o=yes | ||
8124 | fi | ||
8125 | fi | ||
8126 | chmod u+w . 2>&5 | ||
8127 | $RM conftest* | ||
8128 | # SGI C++ compiler will create directory out/ii_files/ for | ||
8129 | # template instantiation | ||
8130 | test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files | ||
8131 | $RM out/* && rmdir out | ||
8132 | cd .. | ||
8133 | $RM -r conftest | ||
8134 | $RM conftest* | ||
8135 | |||
8136 | fi | ||
8137 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 | ||
8138 | $as_echo "$lt_cv_prog_compiler_c_o" >&6; } | ||
8139 | |||
8140 | |||
8141 | |||
8142 | |||
8143 | |||
8144 | |||
8145 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 | ||
8146 | $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } | ||
8147 | if test "${lt_cv_prog_compiler_c_o+set}" = set; then : | ||
8148 | $as_echo_n "(cached) " >&6 | ||
8149 | else | ||
8150 | lt_cv_prog_compiler_c_o=no | ||
8151 | $RM -r conftest 2>/dev/null | ||
8152 | mkdir conftest | ||
8153 | cd conftest | ||
8154 | mkdir out | ||
8155 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | ||
8156 | |||
8157 | lt_compiler_flag="-o out/conftest2.$ac_objext" | ||
8158 | # Insert the option either (1) after the last *FLAGS variable, or | ||
8159 | # (2) before a word containing "conftest.", or (3) at the end. | ||
8160 | # Note that $ac_compile itself does not contain backslashes and begins | ||
8161 | # with a dollar sign (not a hyphen), so the echo should work correctly. | ||
8162 | lt_compile=`echo "$ac_compile" | $SED \ | ||
8163 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ | ||
8164 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ | ||
8165 | -e 's:$: $lt_compiler_flag:'` | ||
8166 | (eval echo "\"\$as_me:8166: $lt_compile\"" >&5) | ||
8167 | (eval "$lt_compile" 2>out/conftest.err) | ||
8168 | ac_status=$? | ||
8169 | cat out/conftest.err >&5 | ||
8170 | echo "$as_me:8170: \$? = $ac_status" >&5 | ||
8171 | if (exit $ac_status) && test -s out/conftest2.$ac_objext | ||
8172 | then | ||
8173 | # The compiler can only warn and ignore the option if not recognized | ||
8174 | # So say no if there are warnings | ||
8175 | $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp | ||
8176 | $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 | ||
8177 | if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then | ||
8178 | lt_cv_prog_compiler_c_o=yes | ||
8179 | fi | ||
8180 | fi | ||
8181 | chmod u+w . 2>&5 | ||
8182 | $RM conftest* | ||
8183 | # SGI C++ compiler will create directory out/ii_files/ for | ||
8184 | # template instantiation | ||
8185 | test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files | ||
8186 | $RM out/* && rmdir out | ||
8187 | cd .. | ||
8188 | $RM -r conftest | ||
8189 | $RM conftest* | ||
8190 | |||
8191 | fi | ||
8192 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 | ||
8193 | $as_echo "$lt_cv_prog_compiler_c_o" >&6; } | ||
8194 | |||
8195 | |||
8196 | |||
8197 | |||
8198 | hard_links="nottested" | ||
8199 | if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then | ||
8200 | # do not overwrite the value of need_locks provided by the user | ||
8201 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 | ||
8202 | $as_echo_n "checking if we can lock with hard links... " >&6; } | ||
8203 | hard_links=yes | ||
8204 | $RM conftest* | ||
8205 | ln conftest.a conftest.b 2>/dev/null && hard_links=no | ||
8206 | touch conftest.a | ||
8207 | ln conftest.a conftest.b 2>&5 || hard_links=no | ||
8208 | ln conftest.a conftest.b 2>/dev/null && hard_links=no | ||
8209 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 | ||
8210 | $as_echo "$hard_links" >&6; } | ||
8211 | if test "$hard_links" = no; then | ||
8212 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 | ||
8213 | $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} | ||
8214 | need_locks=warn | ||
8215 | fi | ||
8216 | else | ||
8217 | need_locks=no | ||
8218 | fi | ||
8219 | |||
8220 | |||
8221 | |||
8222 | |||
8223 | |||
8224 | |||
8225 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 | ||
8226 | $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } | ||
8227 | |||
8228 | runpath_var= | ||
8229 | allow_undefined_flag= | ||
8230 | always_export_symbols=no | ||
8231 | archive_cmds= | ||
8232 | archive_expsym_cmds= | ||
8233 | compiler_needs_object=no | ||
8234 | enable_shared_with_static_runtimes=no | ||
8235 | export_dynamic_flag_spec= | ||
8236 | export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' | ||
8237 | hardcode_automatic=no | ||
8238 | hardcode_direct=no | ||
8239 | hardcode_direct_absolute=no | ||
8240 | hardcode_libdir_flag_spec= | ||
8241 | hardcode_libdir_flag_spec_ld= | ||
8242 | hardcode_libdir_separator= | ||
8243 | hardcode_minus_L=no | ||
8244 | hardcode_shlibpath_var=unsupported | ||
8245 | inherit_rpath=no | ||
8246 | link_all_deplibs=unknown | ||
8247 | module_cmds= | ||
8248 | module_expsym_cmds= | ||
8249 | old_archive_from_new_cmds= | ||
8250 | old_archive_from_expsyms_cmds= | ||
8251 | thread_safe_flag_spec= | ||
8252 | whole_archive_flag_spec= | ||
8253 | # include_expsyms should be a list of space-separated symbols to be *always* | ||
8254 | # included in the symbol list | ||
8255 | include_expsyms= | ||
8256 | # exclude_expsyms can be an extended regexp of symbols to exclude | ||
8257 | # it will be wrapped by ` (' and `)$', so one must not match beginning or | ||
8258 | # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', | ||
8259 | # as well as any symbol that contains `d'. | ||
8260 | exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' | ||
8261 | # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out | ||
8262 | # platforms (ab)use it in PIC code, but their linkers get confused if | ||
8263 | # the symbol is explicitly referenced. Since portable code cannot | ||
8264 | # rely on this symbol name, it's probably fine to never include it in | ||
8265 | # preloaded symbol tables. | ||
8266 | # Exclude shared library initialization/finalization symbols. | ||
8267 | extract_expsyms_cmds= | ||
8268 | |||
8269 | case $host_os in | ||
8270 | cygwin* | mingw* | pw32* | cegcc*) | ||
8271 | # FIXME: the MSVC++ port hasn't been tested in a loooong time | ||
8272 | # When not using gcc, we currently assume that we are using | ||
8273 | # Microsoft Visual C++. | ||
8274 | if test "$GCC" != yes; then | ||
8275 | with_gnu_ld=no | ||
8276 | fi | ||
8277 | ;; | ||
8278 | interix*) | ||
8279 | # we just hope/assume this is gcc and not c89 (= MSVC++) | ||
8280 | with_gnu_ld=yes | ||
8281 | ;; | ||
8282 | openbsd*) | ||
8283 | with_gnu_ld=no | ||
8284 | ;; | ||
8285 | linux* | k*bsd*-gnu) | ||
8286 | link_all_deplibs=no | ||
8287 | ;; | ||
8288 | esac | ||
8289 | |||
8290 | ld_shlibs=yes | ||
8291 | if test "$with_gnu_ld" = yes; then | ||
8292 | # If archive_cmds runs LD, not CC, wlarc should be empty | ||
8293 | wlarc='${wl}' | ||
8294 | |||
8295 | # Set some defaults for GNU ld with shared library support. These | ||
8296 | # are reset later if shared libraries are not supported. Putting them | ||
8297 | # here allows them to be overridden if necessary. | ||
8298 | runpath_var=LD_RUN_PATH | ||
8299 | hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' | ||
8300 | export_dynamic_flag_spec='${wl}--export-dynamic' | ||
8301 | # ancient GNU ld didn't support --whole-archive et. al. | ||
8302 | if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then | ||
8303 | whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' | ||
8304 | else | ||
8305 | whole_archive_flag_spec= | ||
8306 | fi | ||
8307 | supports_anon_versioning=no | ||
8308 | case `$LD -v 2>&1` in | ||
8309 | *GNU\ gold*) supports_anon_versioning=yes ;; | ||
8310 | *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 | ||
8311 | *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... | ||
8312 | *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... | ||
8313 | *\ 2.11.*) ;; # other 2.11 versions | ||
8314 | *) supports_anon_versioning=yes ;; | ||
8315 | esac | ||
8316 | |||
8317 | # See if GNU ld supports shared libraries. | ||
8318 | case $host_os in | ||
8319 | aix[3-9]*) | ||
8320 | # On AIX/PPC, the GNU linker is very broken | ||
8321 | if test "$host_cpu" != ia64; then | ||
8322 | ld_shlibs=no | ||
8323 | cat <<_LT_EOF 1>&2 | ||
8324 | |||
8325 | *** Warning: the GNU linker, at least up to release 2.9.1, is reported | ||
8326 | *** to be unable to reliably create shared libraries on AIX. | ||
8327 | *** Therefore, libtool is disabling shared libraries support. If you | ||
8328 | *** really care for shared libraries, you may want to modify your PATH | ||
8329 | *** so that a non-GNU linker is found, and then restart. | ||
8330 | |||
8331 | _LT_EOF | ||
8332 | fi | ||
8333 | ;; | ||
8334 | |||
8335 | amigaos*) | ||
8336 | case $host_cpu in | ||
8337 | powerpc) | ||
8338 | # see comment about AmigaOS4 .so support | ||
8339 | archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | ||
8340 | archive_expsym_cmds='' | ||
8341 | ;; | ||
8342 | m68k) | ||
8343 | archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' | ||
8344 | hardcode_libdir_flag_spec='-L$libdir' | ||
8345 | hardcode_minus_L=yes | ||
8346 | ;; | ||
8347 | esac | ||
8348 | ;; | ||
8349 | |||
8350 | beos*) | ||
8351 | if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then | ||
8352 | allow_undefined_flag=unsupported | ||
8353 | # Joseph Beckenbach <jrb3@best.com> says some releases of gcc | ||
8354 | # support --undefined. This deserves some investigation. FIXME | ||
8355 | archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | ||
8356 | else | ||
8357 | ld_shlibs=no | ||
8358 | fi | ||
8359 | ;; | ||
8360 | |||
8361 | cygwin* | mingw* | pw32* | cegcc*) | ||
8362 | # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, | ||
8363 | # as there is no search path for DLLs. | ||
8364 | hardcode_libdir_flag_spec='-L$libdir' | ||
8365 | allow_undefined_flag=unsupported | ||
8366 | always_export_symbols=no | ||
8367 | enable_shared_with_static_runtimes=yes | ||
8368 | export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' | ||
8369 | |||
8370 | if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then | ||
8371 | archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' | ||
8372 | # If the export-symbols file already is a .def file (1st line | ||
8373 | # is EXPORTS), use it as is; otherwise, prepend... | ||
8374 | archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then | ||
8375 | cp $export_symbols $output_objdir/$soname.def; | ||
8376 | else | ||
8377 | echo EXPORTS > $output_objdir/$soname.def; | ||
8378 | cat $export_symbols >> $output_objdir/$soname.def; | ||
8379 | fi~ | ||
8380 | $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' | ||
8381 | else | ||
8382 | ld_shlibs=no | ||
8383 | fi | ||
8384 | ;; | ||
8385 | |||
8386 | interix[3-9]*) | ||
8387 | hardcode_direct=no | ||
8388 | hardcode_shlibpath_var=no | ||
8389 | hardcode_libdir_flag_spec='${wl}-rpath,$libdir' | ||
8390 | export_dynamic_flag_spec='${wl}-E' | ||
8391 | # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. | ||
8392 | # Instead, shared libraries are loaded at an image base (0x10000000 by | ||
8393 | # default) and relocated if they conflict, which is a slow very memory | ||
8394 | # consuming and fragmenting process. To avoid this, we pick a random, | ||
8395 | # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link | ||
8396 | # time. Moving up from 0x10000000 also allows more sbrk(2) space. | ||
8397 | archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' | ||
8398 | archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' | ||
8399 | ;; | ||
8400 | |||
8401 | gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) | ||
8402 | tmp_diet=no | ||
8403 | if test "$host_os" = linux-dietlibc; then | ||
8404 | case $cc_basename in | ||
8405 | diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) | ||
8406 | esac | ||
8407 | fi | ||
8408 | if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ | ||
8409 | && test "$tmp_diet" = no | ||
8410 | then | ||
8411 | tmp_addflag= | ||
8412 | tmp_sharedflag='-shared' | ||
8413 | case $cc_basename,$host_cpu in | ||
8414 | pgcc*) # Portland Group C compiler | ||
8415 | 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' | ||
8416 | tmp_addflag=' $pic_flag' | ||
8417 | ;; | ||
8418 | pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers | ||
8419 | 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' | ||
8420 | tmp_addflag=' $pic_flag -Mnomain' ;; | ||
8421 | ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 | ||
8422 | tmp_addflag=' -i_dynamic' ;; | ||
8423 | efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 | ||
8424 | tmp_addflag=' -i_dynamic -nofor_main' ;; | ||
8425 | ifc* | ifort*) # Intel Fortran compiler | ||
8426 | tmp_addflag=' -nofor_main' ;; | ||
8427 | lf95*) # Lahey Fortran 8.1 | ||
8428 | whole_archive_flag_spec= | ||
8429 | tmp_sharedflag='--shared' ;; | ||
8430 | xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) | ||
8431 | tmp_sharedflag='-qmkshrobj' | ||
8432 | tmp_addflag= ;; | ||
8433 | esac | ||
8434 | case `$CC -V 2>&1 | sed 5q` in | ||
8435 | *Sun\ C*) # Sun C 5.9 | ||
8436 | 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' | ||
8437 | compiler_needs_object=yes | ||
8438 | tmp_sharedflag='-G' ;; | ||
8439 | *Sun\ F*) # Sun Fortran 8.3 | ||
8440 | tmp_sharedflag='-G' ;; | ||
8441 | esac | ||
8442 | archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | ||
8443 | |||
8444 | if test "x$supports_anon_versioning" = xyes; then | ||
8445 | archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ | ||
8446 | cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ | ||
8447 | echo "local: *; };" >> $output_objdir/$libname.ver~ | ||
8448 | $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' | ||
8449 | fi | ||
8450 | |||
8451 | case $cc_basename in | ||
8452 | xlf*) | ||
8453 | # IBM XL Fortran 10.1 on PPC cannot create shared libs itself | ||
8454 | whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' | ||
8455 | hardcode_libdir_flag_spec= | ||
8456 | hardcode_libdir_flag_spec_ld='-rpath $libdir' | ||
8457 | archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' | ||
8458 | if test "x$supports_anon_versioning" = xyes; then | ||
8459 | archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ | ||
8460 | cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ | ||
8461 | echo "local: *; };" >> $output_objdir/$libname.ver~ | ||
8462 | $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' | ||
8463 | fi | ||
8464 | ;; | ||
8465 | esac | ||
8466 | else | ||
8467 | ld_shlibs=no | ||
8468 | fi | ||
8469 | ;; | ||
8470 | |||
8471 | netbsd* | netbsdelf*-gnu) | ||
8472 | if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then | ||
8473 | archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' | ||
8474 | wlarc= | ||
8475 | else | ||
8476 | archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | ||
8477 | archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' | ||
8478 | fi | ||
8479 | ;; | ||
8480 | |||
8481 | solaris*) | ||
8482 | if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then | ||
8483 | ld_shlibs=no | ||
8484 | cat <<_LT_EOF 1>&2 | ||
8485 | |||
8486 | *** Warning: The releases 2.8.* of the GNU linker cannot reliably | ||
8487 | *** create shared libraries on Solaris systems. Therefore, libtool | ||
8488 | *** is disabling shared libraries support. We urge you to upgrade GNU | ||
8489 | *** binutils to release 2.9.1 or newer. Another option is to modify | ||
8490 | *** your PATH or compiler configuration so that the native linker is | ||
8491 | *** used, and then restart. | ||
8492 | |||
8493 | _LT_EOF | ||
8494 | elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then | ||
8495 | archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | ||
8496 | archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' | ||
8497 | else | ||
8498 | ld_shlibs=no | ||
8499 | fi | ||
8500 | ;; | ||
8501 | |||
8502 | sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) | ||
8503 | case `$LD -v 2>&1` in | ||
8504 | *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) | ||
8505 | ld_shlibs=no | ||
8506 | cat <<_LT_EOF 1>&2 | ||
8507 | |||
8508 | *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not | ||
8509 | *** reliably create shared libraries on SCO systems. Therefore, libtool | ||
8510 | *** is disabling shared libraries support. We urge you to upgrade GNU | ||
8511 | *** binutils to release 2.16.91.0.3 or newer. Another option is to modify | ||
8512 | *** your PATH or compiler configuration so that the native linker is | ||
8513 | *** used, and then restart. | ||
8514 | |||
8515 | _LT_EOF | ||
8516 | ;; | ||
8517 | *) | ||
8518 | # For security reasons, it is highly recommended that you always | ||
8519 | # use absolute paths for naming shared libraries, and exclude the | ||
8520 | # DT_RUNPATH tag from executables and libraries. But doing so | ||
8521 | # requires that you compile everything twice, which is a pain. | ||
8522 | if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then | ||
8523 | hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' | ||
8524 | archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | ||
8525 | archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' | ||
8526 | else | ||
8527 | ld_shlibs=no | ||
8528 | fi | ||
8529 | ;; | ||
8530 | esac | ||
8531 | ;; | ||
8532 | |||
8533 | sunos4*) | ||
8534 | archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' | ||
8535 | wlarc= | ||
8536 | hardcode_direct=yes | ||
8537 | hardcode_shlibpath_var=no | ||
8538 | ;; | ||
8539 | |||
8540 | *) | ||
8541 | if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then | ||
8542 | archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | ||
8543 | archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' | ||
8544 | else | ||
8545 | ld_shlibs=no | ||
8546 | fi | ||
8547 | ;; | ||
8548 | esac | ||
8549 | |||
8550 | if test "$ld_shlibs" = no; then | ||
8551 | runpath_var= | ||
8552 | hardcode_libdir_flag_spec= | ||
8553 | export_dynamic_flag_spec= | ||
8554 | whole_archive_flag_spec= | ||
8555 | fi | ||
8556 | else | ||
8557 | # PORTME fill in a description of your system's linker (not GNU ld) | ||
8558 | case $host_os in | ||
8559 | aix3*) | ||
8560 | allow_undefined_flag=unsupported | ||
8561 | always_export_symbols=yes | ||
8562 | archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' | ||
8563 | # Note: this linker hardcodes the directories in LIBPATH if there | ||
8564 | # are no directories specified by -L. | ||
8565 | hardcode_minus_L=yes | ||
8566 | if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then | ||
8567 | # Neither direct hardcoding nor static linking is supported with a | ||
8568 | # broken collect2. | ||
8569 | hardcode_direct=unsupported | ||
8570 | fi | ||
8571 | ;; | ||
8572 | |||
8573 | aix[4-9]*) | ||
8574 | if test "$host_cpu" = ia64; then | ||
8575 | # On IA64, the linker does run time linking by default, so we don't | ||
8576 | # have to do anything special. | ||
8577 | aix_use_runtimelinking=no | ||
8578 | exp_sym_flag='-Bexport' | ||
8579 | no_entry_flag="" | ||
8580 | else | ||
8581 | # If we're using GNU nm, then we don't want the "-C" option. | ||
8582 | # -C means demangle to AIX nm, but means don't demangle with GNU nm | ||
8583 | if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then | ||
8584 | 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' | ||
8585 | else | ||
8586 | 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' | ||
8587 | fi | ||
8588 | aix_use_runtimelinking=no | ||
8589 | |||
8590 | # Test if we are trying to use run time linking or normal | ||
8591 | # AIX style linking. If -brtl is somewhere in LDFLAGS, we | ||
8592 | # need to do runtime linking. | ||
8593 | case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) | ||
8594 | for ld_flag in $LDFLAGS; do | ||
8595 | if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then | ||
8596 | aix_use_runtimelinking=yes | ||
8597 | break | ||
8598 | fi | ||
8599 | done | ||
8600 | ;; | ||
8601 | esac | ||
8602 | |||
8603 | exp_sym_flag='-bexport' | ||
8604 | no_entry_flag='-bnoentry' | ||
8605 | fi | ||
8606 | |||
8607 | # When large executables or shared objects are built, AIX ld can | ||
8608 | # have problems creating the table of contents. If linking a library | ||
8609 | # or program results in "error TOC overflow" add -mminimal-toc to | ||
8610 | # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not | ||
8611 | # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. | ||
8612 | |||
8613 | archive_cmds='' | ||
8614 | hardcode_direct=yes | ||
8615 | hardcode_direct_absolute=yes | ||
8616 | hardcode_libdir_separator=':' | ||
8617 | link_all_deplibs=yes | ||
8618 | file_list_spec='${wl}-f,' | ||
8619 | |||
8620 | if test "$GCC" = yes; then | ||
8621 | case $host_os in aix4.[012]|aix4.[012].*) | ||
8622 | # We only want to do this on AIX 4.2 and lower, the check | ||
8623 | # below for broken collect2 doesn't work under 4.3+ | ||
8624 | collect2name=`${CC} -print-prog-name=collect2` | ||
8625 | if test -f "$collect2name" && | ||
8626 | strings "$collect2name" | $GREP resolve_lib_name >/dev/null | ||
8627 | then | ||
8628 | # We have reworked collect2 | ||
8629 | : | ||
8630 | else | ||
8631 | # We have old collect2 | ||
8632 | hardcode_direct=unsupported | ||
8633 | # It fails to find uninstalled libraries when the uninstalled | ||
8634 | # path is not listed in the libpath. Setting hardcode_minus_L | ||
8635 | # to unsupported forces relinking | ||
8636 | hardcode_minus_L=yes | ||
8637 | hardcode_libdir_flag_spec='-L$libdir' | ||
8638 | hardcode_libdir_separator= | ||
8639 | fi | ||
8640 | ;; | ||
8641 | esac | ||
8642 | shared_flag='-shared' | ||
8643 | if test "$aix_use_runtimelinking" = yes; then | ||
8644 | shared_flag="$shared_flag "'${wl}-G' | ||
8645 | fi | ||
8646 | link_all_deplibs=no | ||
8647 | else | ||
8648 | # not using gcc | ||
8649 | if test "$host_cpu" = ia64; then | ||
8650 | # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release | ||
8651 | # chokes on -Wl,-G. The following line is correct: | ||
8652 | shared_flag='-G' | ||
8653 | else | ||
8654 | if test "$aix_use_runtimelinking" = yes; then | ||
8655 | shared_flag='${wl}-G' | ||
8656 | else | ||
8657 | shared_flag='${wl}-bM:SRE' | ||
8658 | fi | ||
8659 | fi | ||
8660 | fi | ||
8661 | |||
8662 | export_dynamic_flag_spec='${wl}-bexpall' | ||
8663 | # It seems that -bexpall does not export symbols beginning with | ||
8664 | # underscore (_), so it is better to generate a list of symbols to export. | ||
8665 | always_export_symbols=yes | ||
8666 | if test "$aix_use_runtimelinking" = yes; then | ||
8667 | # Warning - without using the other runtime loading flags (-brtl), | ||
8668 | # -berok will link without error, but may produce a broken library. | ||
8669 | allow_undefined_flag='-berok' | ||
8670 | # Determine the default libpath from the value encoded in an | ||
8671 | # empty executable. | ||
8672 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
8673 | /* end confdefs.h. */ | ||
8674 | |||
8675 | int | ||
8676 | main () | ||
8677 | { | ||
8678 | |||
8679 | ; | ||
8680 | return 0; | ||
8681 | } | ||
8682 | _ACEOF | ||
8683 | if ac_fn_c_try_link "$LINENO"; then : | ||
8684 | |||
8685 | lt_aix_libpath_sed=' | ||
8686 | /Import File Strings/,/^$/ { | ||
8687 | /^0/ { | ||
8688 | s/^0 *\(.*\)$/\1/ | ||
8689 | p | ||
8690 | } | ||
8691 | }' | ||
8692 | aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | ||
8693 | # Check for a 64-bit object if we didn't find anything. | ||
8694 | if test -z "$aix_libpath"; then | ||
8695 | aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | ||
8696 | fi | ||
8697 | fi | ||
8698 | rm -f core conftest.err conftest.$ac_objext \ | ||
8699 | conftest$ac_exeext conftest.$ac_ext | ||
8700 | if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi | ||
8701 | |||
8702 | hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" | ||
8703 | 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" | ||
8704 | else | ||
8705 | if test "$host_cpu" = ia64; then | ||
8706 | hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' | ||
8707 | allow_undefined_flag="-z nodefs" | ||
8708 | archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" | ||
8709 | else | ||
8710 | # Determine the default libpath from the value encoded in an | ||
8711 | # empty executable. | ||
8712 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
8713 | /* end confdefs.h. */ | ||
8714 | |||
8715 | int | ||
8716 | main () | ||
8717 | { | ||
8718 | |||
8719 | ; | ||
8720 | return 0; | ||
8721 | } | ||
8722 | _ACEOF | ||
8723 | if ac_fn_c_try_link "$LINENO"; then : | ||
8724 | |||
8725 | lt_aix_libpath_sed=' | ||
8726 | /Import File Strings/,/^$/ { | ||
8727 | /^0/ { | ||
8728 | s/^0 *\(.*\)$/\1/ | ||
8729 | p | ||
8730 | } | ||
8731 | }' | ||
8732 | aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | ||
8733 | # Check for a 64-bit object if we didn't find anything. | ||
8734 | if test -z "$aix_libpath"; then | ||
8735 | aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | ||
8736 | fi | ||
8737 | fi | ||
8738 | rm -f core conftest.err conftest.$ac_objext \ | ||
8739 | conftest$ac_exeext conftest.$ac_ext | ||
8740 | if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi | ||
8741 | |||
8742 | hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" | ||
8743 | # Warning - without using the other run time loading flags, | ||
8744 | # -berok will link without error, but may produce a broken library. | ||
8745 | no_undefined_flag=' ${wl}-bernotok' | ||
8746 | allow_undefined_flag=' ${wl}-berok' | ||
8747 | # Exported symbols can be pulled into shared objects from archives | ||
8748 | whole_archive_flag_spec='$convenience' | ||
8749 | archive_cmds_need_lc=yes | ||
8750 | # This is similar to how AIX traditionally builds its shared libraries. | ||
8751 | 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' | ||
8752 | fi | ||
8753 | fi | ||
8754 | ;; | ||
8755 | |||
8756 | amigaos*) | ||
8757 | case $host_cpu in | ||
8758 | powerpc) | ||
8759 | # see comment about AmigaOS4 .so support | ||
8760 | archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | ||
8761 | archive_expsym_cmds='' | ||
8762 | ;; | ||
8763 | m68k) | ||
8764 | archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' | ||
8765 | hardcode_libdir_flag_spec='-L$libdir' | ||
8766 | hardcode_minus_L=yes | ||
8767 | ;; | ||
8768 | esac | ||
8769 | ;; | ||
8770 | |||
8771 | bsdi[45]*) | ||
8772 | export_dynamic_flag_spec=-rdynamic | ||
8773 | ;; | ||
8774 | |||
8775 | cygwin* | mingw* | pw32* | cegcc*) | ||
8776 | # When not using gcc, we currently assume that we are using | ||
8777 | # Microsoft Visual C++. | ||
8778 | # hardcode_libdir_flag_spec is actually meaningless, as there is | ||
8779 | # no search path for DLLs. | ||
8780 | hardcode_libdir_flag_spec=' ' | ||
8781 | allow_undefined_flag=unsupported | ||
8782 | # Tell ltmain to make .lib files, not .a files. | ||
8783 | libext=lib | ||
8784 | # Tell ltmain to make .dll files, not .so files. | ||
8785 | shrext_cmds=".dll" | ||
8786 | # FIXME: Setting linknames here is a bad hack. | ||
8787 | archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' | ||
8788 | # The linker will automatically build a .lib file if we build a DLL. | ||
8789 | old_archive_from_new_cmds='true' | ||
8790 | # FIXME: Should let the user specify the lib program. | ||
8791 | old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' | ||
8792 | fix_srcfile_path='`cygpath -w "$srcfile"`' | ||
8793 | enable_shared_with_static_runtimes=yes | ||
8794 | ;; | ||
8795 | |||
8796 | darwin* | rhapsody*) | ||
8797 | |||
8798 | |||
8799 | archive_cmds_need_lc=no | ||
8800 | hardcode_direct=no | ||
8801 | hardcode_automatic=yes | ||
8802 | hardcode_shlibpath_var=unsupported | ||
8803 | whole_archive_flag_spec='' | ||
8804 | link_all_deplibs=yes | ||
8805 | allow_undefined_flag="$_lt_dar_allow_undefined" | ||
8806 | case $cc_basename in | ||
8807 | ifort*) _lt_dar_can_shared=yes ;; | ||
8808 | *) _lt_dar_can_shared=$GCC ;; | ||
8809 | esac | ||
8810 | if test "$_lt_dar_can_shared" = "yes"; then | ||
8811 | output_verbose_link_cmd=echo | ||
8812 | archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" | ||
8813 | module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" | ||
8814 | 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}" | ||
8815 | module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" | ||
8816 | |||
8817 | else | ||
8818 | ld_shlibs=no | ||
8819 | fi | ||
8820 | |||
8821 | ;; | ||
8822 | |||
8823 | dgux*) | ||
8824 | archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' | ||
8825 | hardcode_libdir_flag_spec='-L$libdir' | ||
8826 | hardcode_shlibpath_var=no | ||
8827 | ;; | ||
8828 | |||
8829 | freebsd1*) | ||
8830 | ld_shlibs=no | ||
8831 | ;; | ||
8832 | |||
8833 | # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor | ||
8834 | # support. Future versions do this automatically, but an explicit c++rt0.o | ||
8835 | # does not break anything, and helps significantly (at the cost of a little | ||
8836 | # extra space). | ||
8837 | freebsd2.2*) | ||
8838 | archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' | ||
8839 | hardcode_libdir_flag_spec='-R$libdir' | ||
8840 | hardcode_direct=yes | ||
8841 | hardcode_shlibpath_var=no | ||
8842 | ;; | ||
8843 | |||
8844 | # Unfortunately, older versions of FreeBSD 2 do not have this feature. | ||
8845 | freebsd2*) | ||
8846 | archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' | ||
8847 | hardcode_direct=yes | ||
8848 | hardcode_minus_L=yes | ||
8849 | hardcode_shlibpath_var=no | ||
8850 | ;; | ||
8851 | |||
8852 | # FreeBSD 3 and greater uses gcc -shared to do shared libraries. | ||
8853 | freebsd* | dragonfly*) | ||
8854 | archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' | ||
8855 | hardcode_libdir_flag_spec='-R$libdir' | ||
8856 | hardcode_direct=yes | ||
8857 | hardcode_shlibpath_var=no | ||
8858 | ;; | ||
8859 | |||
8860 | hpux9*) | ||
8861 | if test "$GCC" = yes; then | ||
8862 | 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' | ||
8863 | else | ||
8864 | 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' | ||
8865 | fi | ||
8866 | hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' | ||
8867 | hardcode_libdir_separator=: | ||
8868 | hardcode_direct=yes | ||
8869 | |||
8870 | # hardcode_minus_L: Not really in the search PATH, | ||
8871 | # but as the default location of the library. | ||
8872 | hardcode_minus_L=yes | ||
8873 | export_dynamic_flag_spec='${wl}-E' | ||
8874 | ;; | ||
8875 | |||
8876 | hpux10*) | ||
8877 | if test "$GCC" = yes -a "$with_gnu_ld" = no; then | ||
8878 | archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' | ||
8879 | else | ||
8880 | archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' | ||
8881 | fi | ||
8882 | if test "$with_gnu_ld" = no; then | ||
8883 | hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' | ||
8884 | hardcode_libdir_flag_spec_ld='+b $libdir' | ||
8885 | hardcode_libdir_separator=: | ||
8886 | hardcode_direct=yes | ||
8887 | hardcode_direct_absolute=yes | ||
8888 | export_dynamic_flag_spec='${wl}-E' | ||
8889 | # hardcode_minus_L: Not really in the search PATH, | ||
8890 | # but as the default location of the library. | ||
8891 | hardcode_minus_L=yes | ||
8892 | fi | ||
8893 | ;; | ||
8894 | |||
8895 | hpux11*) | ||
8896 | if test "$GCC" = yes -a "$with_gnu_ld" = no; then | ||
8897 | case $host_cpu in | ||
8898 | hppa*64*) | ||
8899 | archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
8900 | ;; | ||
8901 | ia64*) | ||
8902 | archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' | ||
8903 | ;; | ||
8904 | *) | ||
8905 | archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' | ||
8906 | ;; | ||
8907 | esac | ||
8908 | else | ||
8909 | case $host_cpu in | ||
8910 | hppa*64*) | ||
8911 | archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
8912 | ;; | ||
8913 | ia64*) | ||
8914 | archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' | ||
8915 | ;; | ||
8916 | *) | ||
8917 | archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' | ||
8918 | ;; | ||
8919 | esac | ||
8920 | fi | ||
8921 | if test "$with_gnu_ld" = no; then | ||
8922 | hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' | ||
8923 | hardcode_libdir_separator=: | ||
8924 | |||
8925 | case $host_cpu in | ||
8926 | hppa*64*|ia64*) | ||
8927 | hardcode_direct=no | ||
8928 | hardcode_shlibpath_var=no | ||
8929 | ;; | ||
8930 | *) | ||
8931 | hardcode_direct=yes | ||
8932 | hardcode_direct_absolute=yes | ||
8933 | export_dynamic_flag_spec='${wl}-E' | ||
8934 | |||
8935 | # hardcode_minus_L: Not really in the search PATH, | ||
8936 | # but as the default location of the library. | ||
8937 | hardcode_minus_L=yes | ||
8938 | ;; | ||
8939 | esac | ||
8940 | fi | ||
8941 | ;; | ||
8942 | |||
8943 | irix5* | irix6* | nonstopux*) | ||
8944 | if test "$GCC" = yes; then | ||
8945 | 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' | ||
8946 | # Try to use the -exported_symbol ld option, if it does not | ||
8947 | # work, assume that -exports_file does not work either and | ||
8948 | # implicitly export all symbols. | ||
8949 | save_LDFLAGS="$LDFLAGS" | ||
8950 | LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" | ||
8951 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
8952 | /* end confdefs.h. */ | ||
8953 | int foo(void) {} | ||
8954 | _ACEOF | ||
8955 | if ac_fn_c_try_link "$LINENO"; then : | ||
8956 | 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' | ||
8957 | |||
8958 | fi | ||
8959 | rm -f core conftest.err conftest.$ac_objext \ | ||
8960 | conftest$ac_exeext conftest.$ac_ext | ||
8961 | LDFLAGS="$save_LDFLAGS" | ||
8962 | else | ||
8963 | 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' | ||
8964 | 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' | ||
8965 | fi | ||
8966 | archive_cmds_need_lc='no' | ||
8967 | hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' | ||
8968 | hardcode_libdir_separator=: | ||
8969 | inherit_rpath=yes | ||
8970 | link_all_deplibs=yes | ||
8971 | ;; | ||
8972 | |||
8973 | netbsd* | netbsdelf*-gnu) | ||
8974 | if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then | ||
8975 | archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out | ||
8976 | else | ||
8977 | archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF | ||
8978 | fi | ||
8979 | hardcode_libdir_flag_spec='-R$libdir' | ||
8980 | hardcode_direct=yes | ||
8981 | hardcode_shlibpath_var=no | ||
8982 | ;; | ||
8983 | |||
8984 | newsos6) | ||
8985 | archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' | ||
8986 | hardcode_direct=yes | ||
8987 | hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' | ||
8988 | hardcode_libdir_separator=: | ||
8989 | hardcode_shlibpath_var=no | ||
8990 | ;; | ||
8991 | |||
8992 | *nto* | *qnx*) | ||
8993 | ;; | ||
8994 | |||
8995 | openbsd*) | ||
8996 | if test -f /usr/libexec/ld.so; then | ||
8997 | hardcode_direct=yes | ||
8998 | hardcode_shlibpath_var=no | ||
8999 | hardcode_direct_absolute=yes | ||
9000 | if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then | ||
9001 | archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' | ||
9002 | archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' | ||
9003 | hardcode_libdir_flag_spec='${wl}-rpath,$libdir' | ||
9004 | export_dynamic_flag_spec='${wl}-E' | ||
9005 | else | ||
9006 | case $host_os in | ||
9007 | openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) | ||
9008 | archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' | ||
9009 | hardcode_libdir_flag_spec='-R$libdir' | ||
9010 | ;; | ||
9011 | *) | ||
9012 | archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' | ||
9013 | hardcode_libdir_flag_spec='${wl}-rpath,$libdir' | ||
9014 | ;; | ||
9015 | esac | ||
9016 | fi | ||
9017 | else | ||
9018 | ld_shlibs=no | ||
9019 | fi | ||
9020 | ;; | ||
9021 | |||
9022 | os2*) | ||
9023 | hardcode_libdir_flag_spec='-L$libdir' | ||
9024 | hardcode_minus_L=yes | ||
9025 | allow_undefined_flag=unsupported | ||
9026 | 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' | ||
9027 | old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' | ||
9028 | ;; | ||
9029 | |||
9030 | osf3*) | ||
9031 | if test "$GCC" = yes; then | ||
9032 | allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' | ||
9033 | 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' | ||
9034 | else | ||
9035 | allow_undefined_flag=' -expect_unresolved \*' | ||
9036 | 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' | ||
9037 | fi | ||
9038 | archive_cmds_need_lc='no' | ||
9039 | hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' | ||
9040 | hardcode_libdir_separator=: | ||
9041 | ;; | ||
9042 | |||
9043 | osf4* | osf5*) # as osf3* with the addition of -msym flag | ||
9044 | if test "$GCC" = yes; then | ||
9045 | allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' | ||
9046 | 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' | ||
9047 | hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' | ||
9048 | else | ||
9049 | allow_undefined_flag=' -expect_unresolved \*' | ||
9050 | 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' | ||
9051 | 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~ | ||
9052 | $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' | ||
9053 | |||
9054 | # Both c and cxx compiler support -rpath directly | ||
9055 | hardcode_libdir_flag_spec='-rpath $libdir' | ||
9056 | fi | ||
9057 | archive_cmds_need_lc='no' | ||
9058 | hardcode_libdir_separator=: | ||
9059 | ;; | ||
9060 | |||
9061 | solaris*) | ||
9062 | no_undefined_flag=' -z defs' | ||
9063 | if test "$GCC" = yes; then | ||
9064 | wlarc='${wl}' | ||
9065 | archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
9066 | archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ | ||
9067 | $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' | ||
9068 | else | ||
9069 | case `$CC -V 2>&1` in | ||
9070 | *"Compilers 5.0"*) | ||
9071 | wlarc='' | ||
9072 | archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' | ||
9073 | archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ | ||
9074 | $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' | ||
9075 | ;; | ||
9076 | *) | ||
9077 | wlarc='${wl}' | ||
9078 | archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' | ||
9079 | archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ | ||
9080 | $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' | ||
9081 | ;; | ||
9082 | esac | ||
9083 | fi | ||
9084 | hardcode_libdir_flag_spec='-R$libdir' | ||
9085 | hardcode_shlibpath_var=no | ||
9086 | case $host_os in | ||
9087 | solaris2.[0-5] | solaris2.[0-5].*) ;; | ||
9088 | *) | ||
9089 | # The compiler driver will combine and reorder linker options, | ||
9090 | # but understands `-z linker_flag'. GCC discards it without `$wl', | ||
9091 | # but is careful enough not to reorder. | ||
9092 | # Supported since Solaris 2.6 (maybe 2.5.1?) | ||
9093 | if test "$GCC" = yes; then | ||
9094 | whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' | ||
9095 | else | ||
9096 | whole_archive_flag_spec='-z allextract$convenience -z defaultextract' | ||
9097 | fi | ||
9098 | ;; | ||
9099 | esac | ||
9100 | link_all_deplibs=yes | ||
9101 | ;; | ||
9102 | |||
9103 | sunos4*) | ||
9104 | if test "x$host_vendor" = xsequent; then | ||
9105 | # Use $CC to link under sequent, because it throws in some extra .o | ||
9106 | # files that make .init and .fini sections work. | ||
9107 | archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' | ||
9108 | else | ||
9109 | archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' | ||
9110 | fi | ||
9111 | hardcode_libdir_flag_spec='-L$libdir' | ||
9112 | hardcode_direct=yes | ||
9113 | hardcode_minus_L=yes | ||
9114 | hardcode_shlibpath_var=no | ||
9115 | ;; | ||
9116 | |||
9117 | sysv4) | ||
9118 | case $host_vendor in | ||
9119 | sni) | ||
9120 | archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' | ||
9121 | hardcode_direct=yes # is this really true??? | ||
9122 | ;; | ||
9123 | siemens) | ||
9124 | ## LD is ld it makes a PLAMLIB | ||
9125 | ## CC just makes a GrossModule. | ||
9126 | archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' | ||
9127 | reload_cmds='$CC -r -o $output$reload_objs' | ||
9128 | hardcode_direct=no | ||
9129 | ;; | ||
9130 | motorola) | ||
9131 | archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' | ||
9132 | hardcode_direct=no #Motorola manual says yes, but my tests say they lie | ||
9133 | ;; | ||
9134 | esac | ||
9135 | runpath_var='LD_RUN_PATH' | ||
9136 | hardcode_shlibpath_var=no | ||
9137 | ;; | ||
9138 | |||
9139 | sysv4.3*) | ||
9140 | archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' | ||
9141 | hardcode_shlibpath_var=no | ||
9142 | export_dynamic_flag_spec='-Bexport' | ||
9143 | ;; | ||
9144 | |||
9145 | sysv4*MP*) | ||
9146 | if test -d /usr/nec; then | ||
9147 | archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' | ||
9148 | hardcode_shlibpath_var=no | ||
9149 | runpath_var=LD_RUN_PATH | ||
9150 | hardcode_runpath_var=yes | ||
9151 | ld_shlibs=yes | ||
9152 | fi | ||
9153 | ;; | ||
9154 | |||
9155 | sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) | ||
9156 | no_undefined_flag='${wl}-z,text' | ||
9157 | archive_cmds_need_lc=no | ||
9158 | hardcode_shlibpath_var=no | ||
9159 | runpath_var='LD_RUN_PATH' | ||
9160 | |||
9161 | if test "$GCC" = yes; then | ||
9162 | archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
9163 | archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
9164 | else | ||
9165 | archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
9166 | archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
9167 | fi | ||
9168 | ;; | ||
9169 | |||
9170 | sysv5* | sco3.2v5* | sco5v6*) | ||
9171 | # Note: We can NOT use -z defs as we might desire, because we do not | ||
9172 | # link with -lc, and that would cause any symbols used from libc to | ||
9173 | # always be unresolved, which means just about no library would | ||
9174 | # ever link correctly. If we're not using GNU ld we use -z text | ||
9175 | # though, which does catch some bad symbols but isn't as heavy-handed | ||
9176 | # as -z defs. | ||
9177 | no_undefined_flag='${wl}-z,text' | ||
9178 | allow_undefined_flag='${wl}-z,nodefs' | ||
9179 | archive_cmds_need_lc=no | ||
9180 | hardcode_shlibpath_var=no | ||
9181 | hardcode_libdir_flag_spec='${wl}-R,$libdir' | ||
9182 | hardcode_libdir_separator=':' | ||
9183 | link_all_deplibs=yes | ||
9184 | export_dynamic_flag_spec='${wl}-Bexport' | ||
9185 | runpath_var='LD_RUN_PATH' | ||
9186 | |||
9187 | if test "$GCC" = yes; then | ||
9188 | archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
9189 | archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
9190 | else | ||
9191 | archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
9192 | archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
9193 | fi | ||
9194 | ;; | ||
9195 | |||
9196 | uts4*) | ||
9197 | archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' | ||
9198 | hardcode_libdir_flag_spec='-L$libdir' | ||
9199 | hardcode_shlibpath_var=no | ||
9200 | ;; | ||
9201 | |||
9202 | *) | ||
9203 | ld_shlibs=no | ||
9204 | ;; | ||
9205 | esac | ||
9206 | |||
9207 | if test x$host_vendor = xsni; then | ||
9208 | case $host in | ||
9209 | sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) | ||
9210 | export_dynamic_flag_spec='${wl}-Blargedynsym' | ||
9211 | ;; | ||
9212 | esac | ||
9213 | fi | ||
9214 | fi | ||
9215 | |||
9216 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 | ||
9217 | $as_echo "$ld_shlibs" >&6; } | ||
9218 | test "$ld_shlibs" = no && can_build_shared=no | ||
9219 | |||
9220 | with_gnu_ld=$with_gnu_ld | ||
9221 | |||
9222 | |||
9223 | |||
9224 | |||
9225 | |||
9226 | |||
9227 | |||
9228 | |||
9229 | |||
9230 | |||
9231 | |||
9232 | |||
9233 | |||
9234 | |||
9235 | |||
9236 | # | ||
9237 | # Do we need to explicitly link libc? | ||
9238 | # | ||
9239 | case "x$archive_cmds_need_lc" in | ||
9240 | x|xyes) | ||
9241 | # Assume -lc should be added | ||
9242 | archive_cmds_need_lc=yes | ||
9243 | |||
9244 | if test "$enable_shared" = yes && test "$GCC" = yes; then | ||
9245 | case $archive_cmds in | ||
9246 | *'~'*) | ||
9247 | # FIXME: we may have to deal with multi-command sequences. | ||
9248 | ;; | ||
9249 | '$CC '*) | ||
9250 | # Test whether the compiler implicitly links with -lc since on some | ||
9251 | # systems, -lgcc has to come before -lc. If gcc already passes -lc | ||
9252 | # to ld, don't add -lc before -lgcc. | ||
9253 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 | ||
9254 | $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } | ||
9255 | $RM conftest* | ||
9256 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | ||
9257 | |||
9258 | if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 | ||
9259 | (eval $ac_compile) 2>&5 | ||
9260 | ac_status=$? | ||
9261 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
9262 | test $ac_status = 0; } 2>conftest.err; then | ||
9263 | soname=conftest | ||
9264 | lib=conftest | ||
9265 | libobjs=conftest.$ac_objext | ||
9266 | deplibs= | ||
9267 | wl=$lt_prog_compiler_wl | ||
9268 | pic_flag=$lt_prog_compiler_pic | ||
9269 | compiler_flags=-v | ||
9270 | linker_flags=-v | ||
9271 | verstring= | ||
9272 | output_objdir=. | ||
9273 | libname=conftest | ||
9274 | lt_save_allow_undefined_flag=$allow_undefined_flag | ||
9275 | allow_undefined_flag= | ||
9276 | if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 | ||
9277 | (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 | ||
9278 | ac_status=$? | ||
9279 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
9280 | test $ac_status = 0; } | ||
9281 | then | ||
9282 | archive_cmds_need_lc=no | ||
9283 | else | ||
9284 | archive_cmds_need_lc=yes | ||
9285 | fi | ||
9286 | allow_undefined_flag=$lt_save_allow_undefined_flag | ||
9287 | else | ||
9288 | cat conftest.err 1>&5 | ||
9289 | fi | ||
9290 | $RM conftest* | ||
9291 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 | ||
9292 | $as_echo "$archive_cmds_need_lc" >&6; } | ||
9293 | ;; | ||
9294 | esac | ||
9295 | fi | ||
9296 | ;; | ||
9297 | esac | ||
9298 | |||
9299 | |||
9300 | |||
9301 | |||
9302 | |||
9303 | |||
9304 | |||
9305 | |||
9306 | |||
9307 | |||
9308 | |||
9309 | |||
9310 | |||
9311 | |||
9312 | |||
9313 | |||
9314 | |||
9315 | |||
9316 | |||
9317 | |||
9318 | |||
9319 | |||
9320 | |||
9321 | |||
9322 | |||
9323 | |||
9324 | |||
9325 | |||
9326 | |||
9327 | |||
9328 | |||
9329 | |||
9330 | |||
9331 | |||
9332 | |||
9333 | |||
9334 | |||
9335 | |||
9336 | |||
9337 | |||
9338 | |||
9339 | |||
9340 | |||
9341 | |||
9342 | |||
9343 | |||
9344 | |||
9345 | |||
9346 | |||
9347 | |||
9348 | |||
9349 | |||
9350 | |||
9351 | |||
9352 | |||
9353 | |||
9354 | |||
9355 | |||
9356 | |||
9357 | |||
9358 | |||
9359 | |||
9360 | |||
9361 | |||
9362 | |||
9363 | |||
9364 | |||
9365 | |||
9366 | |||
9367 | |||
9368 | |||
9369 | |||
9370 | |||
9371 | |||
9372 | |||
9373 | |||
9374 | |||
9375 | |||
9376 | |||
9377 | |||
9378 | |||
9379 | |||
9380 | |||
9381 | |||
9382 | |||
9383 | |||
9384 | |||
9385 | |||
9386 | |||
9387 | |||
9388 | |||
9389 | |||
9390 | |||
9391 | |||
9392 | |||
9393 | |||
9394 | |||
9395 | |||
9396 | |||
9397 | |||
9398 | |||
9399 | |||
9400 | |||
9401 | |||
9402 | |||
9403 | |||
9404 | |||
9405 | |||
9406 | |||
9407 | |||
9408 | |||
9409 | |||
9410 | |||
9411 | |||
9412 | |||
9413 | |||
9414 | |||
9415 | |||
9416 | |||
9417 | |||
9418 | |||
9419 | |||
9420 | |||
9421 | |||
9422 | |||
9423 | |||
9424 | |||
9425 | |||
9426 | |||
9427 | |||
9428 | |||
9429 | |||
9430 | |||
9431 | |||
9432 | |||
9433 | |||
9434 | |||
9435 | |||
9436 | |||
9437 | |||
9438 | |||
9439 | |||
9440 | |||
9441 | |||
9442 | |||
9443 | |||
9444 | |||
9445 | |||
9446 | |||
9447 | |||
9448 | |||
9449 | |||
9450 | |||
9451 | |||
9452 | |||
9453 | |||
9454 | |||
9455 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 | ||
9456 | $as_echo_n "checking dynamic linker characteristics... " >&6; } | ||
9457 | |||
9458 | if test "$GCC" = yes; then | ||
9459 | case $host_os in | ||
9460 | darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; | ||
9461 | *) lt_awk_arg="/^libraries:/" ;; | ||
9462 | esac | ||
9463 | lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` | ||
9464 | if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then | ||
9465 | # if the path contains ";" then we assume it to be the separator | ||
9466 | # otherwise default to the standard path separator (i.e. ":") - it is | ||
9467 | # assumed that no part of a normal pathname contains ";" but that should | ||
9468 | # okay in the real world where ";" in dirpaths is itself problematic. | ||
9469 | lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` | ||
9470 | else | ||
9471 | lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` | ||
9472 | fi | ||
9473 | # Ok, now we have the path, separated by spaces, we can step through it | ||
9474 | # and add multilib dir if necessary. | ||
9475 | lt_tmp_lt_search_path_spec= | ||
9476 | lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` | ||
9477 | for lt_sys_path in $lt_search_path_spec; do | ||
9478 | if test -d "$lt_sys_path/$lt_multi_os_dir"; then | ||
9479 | lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" | ||
9480 | else | ||
9481 | test -d "$lt_sys_path" && \ | ||
9482 | lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" | ||
9483 | fi | ||
9484 | done | ||
9485 | lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' | ||
9486 | BEGIN {RS=" "; FS="/|\n";} { | ||
9487 | lt_foo=""; | ||
9488 | lt_count=0; | ||
9489 | for (lt_i = NF; lt_i > 0; lt_i--) { | ||
9490 | if ($lt_i != "" && $lt_i != ".") { | ||
9491 | if ($lt_i == "..") { | ||
9492 | lt_count++; | ||
9493 | } else { | ||
9494 | if (lt_count == 0) { | ||
9495 | lt_foo="/" $lt_i lt_foo; | ||
9496 | } else { | ||
9497 | lt_count--; | ||
9498 | } | ||
9499 | } | ||
9500 | } | ||
9501 | } | ||
9502 | if (lt_foo != "") { lt_freq[lt_foo]++; } | ||
9503 | if (lt_freq[lt_foo] == 1) { print lt_foo; } | ||
9504 | }'` | ||
9505 | sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` | ||
9506 | else | ||
9507 | sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" | ||
9508 | fi | ||
9509 | library_names_spec= | ||
9510 | libname_spec='lib$name' | ||
9511 | soname_spec= | ||
9512 | shrext_cmds=".so" | ||
9513 | postinstall_cmds= | ||
9514 | postuninstall_cmds= | ||
9515 | finish_cmds= | ||
9516 | finish_eval= | ||
9517 | shlibpath_var= | ||
9518 | shlibpath_overrides_runpath=unknown | ||
9519 | version_type=none | ||
9520 | dynamic_linker="$host_os ld.so" | ||
9521 | sys_lib_dlsearch_path_spec="/lib /usr/lib" | ||
9522 | need_lib_prefix=unknown | ||
9523 | hardcode_into_libs=no | ||
9524 | |||
9525 | # when you set need_version to no, make sure it does not cause -set_version | ||
9526 | # flags to be left without arguments | ||
9527 | need_version=unknown | ||
9528 | |||
9529 | case $host_os in | ||
9530 | aix3*) | ||
9531 | version_type=linux | ||
9532 | library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' | ||
9533 | shlibpath_var=LIBPATH | ||
9534 | |||
9535 | # AIX 3 has no versioning support, so we append a major version to the name. | ||
9536 | soname_spec='${libname}${release}${shared_ext}$major' | ||
9537 | ;; | ||
9538 | |||
9539 | aix[4-9]*) | ||
9540 | version_type=linux | ||
9541 | need_lib_prefix=no | ||
9542 | need_version=no | ||
9543 | hardcode_into_libs=yes | ||
9544 | if test "$host_cpu" = ia64; then | ||
9545 | # AIX 5 supports IA64 | ||
9546 | library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' | ||
9547 | shlibpath_var=LD_LIBRARY_PATH | ||
9548 | else | ||
9549 | # With GCC up to 2.95.x, collect2 would create an import file | ||
9550 | # for dependence libraries. The import file would start with | ||
9551 | # the line `#! .'. This would cause the generated library to | ||
9552 | # depend on `.', always an invalid library. This was fixed in | ||
9553 | # development snapshots of GCC prior to 3.0. | ||
9554 | case $host_os in | ||
9555 | aix4 | aix4.[01] | aix4.[01].*) | ||
9556 | if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' | ||
9557 | echo ' yes ' | ||
9558 | echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then | ||
9559 | : | ||
9560 | else | ||
9561 | can_build_shared=no | ||
9562 | fi | ||
9563 | ;; | ||
9564 | esac | ||
9565 | # AIX (on Power*) has no versioning support, so currently we can not hardcode correct | ||
9566 | # soname into executable. Probably we can add versioning support to | ||
9567 | # collect2, so additional links can be useful in future. | ||
9568 | if test "$aix_use_runtimelinking" = yes; then | ||
9569 | # If using run time linking (on AIX 4.2 or later) use lib<name>.so | ||
9570 | # instead of lib<name>.a to let people know that these are not | ||
9571 | # typical AIX shared libraries. | ||
9572 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
9573 | else | ||
9574 | # We preserve .a as extension for shared libraries through AIX4.2 | ||
9575 | # and later when we are not doing run time linking. | ||
9576 | library_names_spec='${libname}${release}.a $libname.a' | ||
9577 | soname_spec='${libname}${release}${shared_ext}$major' | ||
9578 | fi | ||
9579 | shlibpath_var=LIBPATH | ||
9580 | fi | ||
9581 | ;; | ||
9582 | |||
9583 | amigaos*) | ||
9584 | case $host_cpu in | ||
9585 | powerpc) | ||
9586 | # Since July 2007 AmigaOS4 officially supports .so libraries. | ||
9587 | # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. | ||
9588 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
9589 | ;; | ||
9590 | m68k) | ||
9591 | library_names_spec='$libname.ixlibrary $libname.a' | ||
9592 | # Create ${libname}_ixlibrary.a entries in /sys/libs. | ||
9593 | 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' | ||
9594 | ;; | ||
9595 | esac | ||
9596 | ;; | ||
9597 | |||
9598 | beos*) | ||
9599 | library_names_spec='${libname}${shared_ext}' | ||
9600 | dynamic_linker="$host_os ld.so" | ||
9601 | shlibpath_var=LIBRARY_PATH | ||
9602 | ;; | ||
9603 | |||
9604 | bsdi[45]*) | ||
9605 | version_type=linux | ||
9606 | need_version=no | ||
9607 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
9608 | soname_spec='${libname}${release}${shared_ext}$major' | ||
9609 | finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' | ||
9610 | shlibpath_var=LD_LIBRARY_PATH | ||
9611 | sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" | ||
9612 | sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" | ||
9613 | # the default ld.so.conf also contains /usr/contrib/lib and | ||
9614 | # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow | ||
9615 | # libtool to hard-code these into programs | ||
9616 | ;; | ||
9617 | |||
9618 | cygwin* | mingw* | pw32* | cegcc*) | ||
9619 | version_type=windows | ||
9620 | shrext_cmds=".dll" | ||
9621 | need_version=no | ||
9622 | need_lib_prefix=no | ||
9623 | |||
9624 | case $GCC,$host_os in | ||
9625 | yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) | ||
9626 | library_names_spec='$libname.dll.a' | ||
9627 | # DLL is installed to $(libdir)/../bin by postinstall_cmds | ||
9628 | postinstall_cmds='base_file=`basename \${file}`~ | ||
9629 | dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ | ||
9630 | dldir=$destdir/`dirname \$dlpath`~ | ||
9631 | test -d \$dldir || mkdir -p \$dldir~ | ||
9632 | $install_prog $dir/$dlname \$dldir/$dlname~ | ||
9633 | chmod a+x \$dldir/$dlname~ | ||
9634 | if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then | ||
9635 | eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; | ||
9636 | fi' | ||
9637 | postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ | ||
9638 | dlpath=$dir/\$dldll~ | ||
9639 | $RM \$dlpath' | ||
9640 | shlibpath_overrides_runpath=yes | ||
9641 | |||
9642 | case $host_os in | ||
9643 | cygwin*) | ||
9644 | # Cygwin DLLs use 'cyg' prefix rather than 'lib' | ||
9645 | soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' | ||
9646 | sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" | ||
9647 | ;; | ||
9648 | mingw* | cegcc*) | ||
9649 | # MinGW DLLs use traditional 'lib' prefix | ||
9650 | soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' | ||
9651 | sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` | ||
9652 | if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then | ||
9653 | # It is most probably a Windows format PATH printed by | ||
9654 | # mingw gcc, but we are running on Cygwin. Gcc prints its search | ||
9655 | # path with ; separators, and with drive letters. We can handle the | ||
9656 | # drive letters (cygwin fileutils understands them), so leave them, | ||
9657 | # especially as we might pass files found there to a mingw objdump, | ||
9658 | # which wouldn't understand a cygwinified path. Ahh. | ||
9659 | sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` | ||
9660 | else | ||
9661 | sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` | ||
9662 | fi | ||
9663 | ;; | ||
9664 | pw32*) | ||
9665 | # pw32 DLLs use 'pw' prefix rather than 'lib' | ||
9666 | library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' | ||
9667 | ;; | ||
9668 | esac | ||
9669 | ;; | ||
9670 | |||
9671 | *) | ||
9672 | library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' | ||
9673 | ;; | ||
9674 | esac | ||
9675 | dynamic_linker='Win32 ld.exe' | ||
9676 | # FIXME: first we should search . and the directory the executable is in | ||
9677 | shlibpath_var=PATH | ||
9678 | ;; | ||
9679 | |||
9680 | darwin* | rhapsody*) | ||
9681 | dynamic_linker="$host_os dyld" | ||
9682 | version_type=darwin | ||
9683 | need_lib_prefix=no | ||
9684 | need_version=no | ||
9685 | library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' | ||
9686 | soname_spec='${libname}${release}${major}$shared_ext' | ||
9687 | shlibpath_overrides_runpath=yes | ||
9688 | shlibpath_var=DYLD_LIBRARY_PATH | ||
9689 | shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' | ||
9690 | |||
9691 | sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" | ||
9692 | sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' | ||
9693 | ;; | ||
9694 | |||
9695 | dgux*) | ||
9696 | version_type=linux | ||
9697 | need_lib_prefix=no | ||
9698 | need_version=no | ||
9699 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' | ||
9700 | soname_spec='${libname}${release}${shared_ext}$major' | ||
9701 | shlibpath_var=LD_LIBRARY_PATH | ||
9702 | ;; | ||
9703 | |||
9704 | freebsd1*) | ||
9705 | dynamic_linker=no | ||
9706 | ;; | ||
9707 | |||
9708 | freebsd* | dragonfly*) | ||
9709 | # DragonFly does not have aout. When/if they implement a new | ||
9710 | # versioning mechanism, adjust this. | ||
9711 | if test -x /usr/bin/objformat; then | ||
9712 | objformat=`/usr/bin/objformat` | ||
9713 | else | ||
9714 | case $host_os in | ||
9715 | freebsd[123]*) objformat=aout ;; | ||
9716 | *) objformat=elf ;; | ||
9717 | esac | ||
9718 | fi | ||
9719 | version_type=freebsd-$objformat | ||
9720 | case $version_type in | ||
9721 | freebsd-elf*) | ||
9722 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' | ||
9723 | need_version=no | ||
9724 | need_lib_prefix=no | ||
9725 | ;; | ||
9726 | freebsd-*) | ||
9727 | library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' | ||
9728 | need_version=yes | ||
9729 | ;; | ||
9730 | esac | ||
9731 | shlibpath_var=LD_LIBRARY_PATH | ||
9732 | case $host_os in | ||
9733 | freebsd2*) | ||
9734 | shlibpath_overrides_runpath=yes | ||
9735 | ;; | ||
9736 | freebsd3.[01]* | freebsdelf3.[01]*) | ||
9737 | shlibpath_overrides_runpath=yes | ||
9738 | hardcode_into_libs=yes | ||
9739 | ;; | ||
9740 | freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ | ||
9741 | freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) | ||
9742 | shlibpath_overrides_runpath=no | ||
9743 | hardcode_into_libs=yes | ||
9744 | ;; | ||
9745 | *) # from 4.6 on, and DragonFly | ||
9746 | shlibpath_overrides_runpath=yes | ||
9747 | hardcode_into_libs=yes | ||
9748 | ;; | ||
9749 | esac | ||
9750 | ;; | ||
9751 | |||
9752 | gnu*) | ||
9753 | version_type=linux | ||
9754 | need_lib_prefix=no | ||
9755 | need_version=no | ||
9756 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' | ||
9757 | soname_spec='${libname}${release}${shared_ext}$major' | ||
9758 | shlibpath_var=LD_LIBRARY_PATH | ||
9759 | hardcode_into_libs=yes | ||
9760 | ;; | ||
9761 | |||
9762 | hpux9* | hpux10* | hpux11*) | ||
9763 | # Give a soname corresponding to the major version so that dld.sl refuses to | ||
9764 | # link against other versions. | ||
9765 | version_type=sunos | ||
9766 | need_lib_prefix=no | ||
9767 | need_version=no | ||
9768 | case $host_cpu in | ||
9769 | ia64*) | ||
9770 | shrext_cmds='.so' | ||
9771 | hardcode_into_libs=yes | ||
9772 | dynamic_linker="$host_os dld.so" | ||
9773 | shlibpath_var=LD_LIBRARY_PATH | ||
9774 | shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. | ||
9775 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
9776 | soname_spec='${libname}${release}${shared_ext}$major' | ||
9777 | if test "X$HPUX_IA64_MODE" = X32; then | ||
9778 | sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" | ||
9779 | else | ||
9780 | sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" | ||
9781 | fi | ||
9782 | sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec | ||
9783 | ;; | ||
9784 | hppa*64*) | ||
9785 | shrext_cmds='.sl' | ||
9786 | hardcode_into_libs=yes | ||
9787 | dynamic_linker="$host_os dld.sl" | ||
9788 | shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH | ||
9789 | shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. | ||
9790 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
9791 | soname_spec='${libname}${release}${shared_ext}$major' | ||
9792 | sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" | ||
9793 | sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec | ||
9794 | ;; | ||
9795 | *) | ||
9796 | shrext_cmds='.sl' | ||
9797 | dynamic_linker="$host_os dld.sl" | ||
9798 | shlibpath_var=SHLIB_PATH | ||
9799 | shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH | ||
9800 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
9801 | soname_spec='${libname}${release}${shared_ext}$major' | ||
9802 | ;; | ||
9803 | esac | ||
9804 | # HP-UX runs *really* slowly unless shared libraries are mode 555. | ||
9805 | postinstall_cmds='chmod 555 $lib' | ||
9806 | ;; | ||
9807 | |||
9808 | interix[3-9]*) | ||
9809 | version_type=linux | ||
9810 | need_lib_prefix=no | ||
9811 | need_version=no | ||
9812 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' | ||
9813 | soname_spec='${libname}${release}${shared_ext}$major' | ||
9814 | dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' | ||
9815 | shlibpath_var=LD_LIBRARY_PATH | ||
9816 | shlibpath_overrides_runpath=no | ||
9817 | hardcode_into_libs=yes | ||
9818 | ;; | ||
9819 | |||
9820 | irix5* | irix6* | nonstopux*) | ||
9821 | case $host_os in | ||
9822 | nonstopux*) version_type=nonstopux ;; | ||
9823 | *) | ||
9824 | if test "$lt_cv_prog_gnu_ld" = yes; then | ||
9825 | version_type=linux | ||
9826 | else | ||
9827 | version_type=irix | ||
9828 | fi ;; | ||
9829 | esac | ||
9830 | need_lib_prefix=no | ||
9831 | need_version=no | ||
9832 | soname_spec='${libname}${release}${shared_ext}$major' | ||
9833 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' | ||
9834 | case $host_os in | ||
9835 | irix5* | nonstopux*) | ||
9836 | libsuff= shlibsuff= | ||
9837 | ;; | ||
9838 | *) | ||
9839 | case $LD in # libtool.m4 will add one of these switches to LD | ||
9840 | *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") | ||
9841 | libsuff= shlibsuff= libmagic=32-bit;; | ||
9842 | *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") | ||
9843 | libsuff=32 shlibsuff=N32 libmagic=N32;; | ||
9844 | *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") | ||
9845 | libsuff=64 shlibsuff=64 libmagic=64-bit;; | ||
9846 | *) libsuff= shlibsuff= libmagic=never-match;; | ||
9847 | esac | ||
9848 | ;; | ||
9849 | esac | ||
9850 | shlibpath_var=LD_LIBRARY${shlibsuff}_PATH | ||
9851 | shlibpath_overrides_runpath=no | ||
9852 | sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" | ||
9853 | sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" | ||
9854 | hardcode_into_libs=yes | ||
9855 | ;; | ||
9856 | |||
9857 | # No shared lib support for Linux oldld, aout, or coff. | ||
9858 | linux*oldld* | linux*aout* | linux*coff*) | ||
9859 | dynamic_linker=no | ||
9860 | ;; | ||
9861 | |||
9862 | # This must be Linux ELF. | ||
9863 | linux* | k*bsd*-gnu | kopensolaris*-gnu) | ||
9864 | version_type=linux | ||
9865 | need_lib_prefix=no | ||
9866 | need_version=no | ||
9867 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
9868 | soname_spec='${libname}${release}${shared_ext}$major' | ||
9869 | finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' | ||
9870 | shlibpath_var=LD_LIBRARY_PATH | ||
9871 | shlibpath_overrides_runpath=no | ||
9872 | # Some binutils ld are patched to set DT_RUNPATH | ||
9873 | save_LDFLAGS=$LDFLAGS | ||
9874 | save_libdir=$libdir | ||
9875 | eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ | ||
9876 | LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" | ||
9877 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
9878 | /* end confdefs.h. */ | ||
9879 | |||
9880 | int | ||
9881 | main () | ||
9882 | { | ||
9883 | |||
9884 | ; | ||
9885 | return 0; | ||
9886 | } | ||
9887 | _ACEOF | ||
9888 | if ac_fn_c_try_link "$LINENO"; then : | ||
9889 | if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : | ||
9890 | shlibpath_overrides_runpath=yes | ||
9891 | fi | ||
9892 | fi | ||
9893 | rm -f core conftest.err conftest.$ac_objext \ | ||
9894 | conftest$ac_exeext conftest.$ac_ext | ||
9895 | LDFLAGS=$save_LDFLAGS | ||
9896 | libdir=$save_libdir | ||
9897 | |||
9898 | # This implies no fast_install, which is unacceptable. | ||
9899 | # Some rework will be needed to allow for fast_install | ||
9900 | # before this can be enabled. | ||
9901 | hardcode_into_libs=yes | ||
9902 | |||
9903 | # Append ld.so.conf contents to the search path | ||
9904 | if test -f /etc/ld.so.conf; then | ||
9905 | 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' ' '` | ||
9906 | sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" | ||
9907 | fi | ||
9908 | |||
9909 | # We used to test for /lib/ld.so.1 and disable shared libraries on | ||
9910 | # powerpc, because MkLinux only supported shared libraries with the | ||
9911 | # GNU dynamic linker. Since this was broken with cross compilers, | ||
9912 | # most powerpc-linux boxes support dynamic linking these days and | ||
9913 | # people can always --disable-shared, the test was removed, and we | ||
9914 | # assume the GNU/Linux dynamic linker is in use. | ||
9915 | dynamic_linker='GNU/Linux ld.so' | ||
9916 | ;; | ||
9917 | |||
9918 | netbsdelf*-gnu) | ||
9919 | version_type=linux | ||
9920 | need_lib_prefix=no | ||
9921 | need_version=no | ||
9922 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' | ||
9923 | soname_spec='${libname}${release}${shared_ext}$major' | ||
9924 | shlibpath_var=LD_LIBRARY_PATH | ||
9925 | shlibpath_overrides_runpath=no | ||
9926 | hardcode_into_libs=yes | ||
9927 | dynamic_linker='NetBSD ld.elf_so' | ||
9928 | ;; | ||
9929 | |||
9930 | netbsd*) | ||
9931 | version_type=sunos | ||
9932 | need_lib_prefix=no | ||
9933 | need_version=no | ||
9934 | if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then | ||
9935 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' | ||
9936 | finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' | ||
9937 | dynamic_linker='NetBSD (a.out) ld.so' | ||
9938 | else | ||
9939 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' | ||
9940 | soname_spec='${libname}${release}${shared_ext}$major' | ||
9941 | dynamic_linker='NetBSD ld.elf_so' | ||
9942 | fi | ||
9943 | shlibpath_var=LD_LIBRARY_PATH | ||
9944 | shlibpath_overrides_runpath=yes | ||
9945 | hardcode_into_libs=yes | ||
9946 | ;; | ||
9947 | |||
9948 | newsos6) | ||
9949 | version_type=linux | ||
9950 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
9951 | shlibpath_var=LD_LIBRARY_PATH | ||
9952 | shlibpath_overrides_runpath=yes | ||
9953 | ;; | ||
9954 | |||
9955 | *nto* | *qnx*) | ||
9956 | version_type=qnx | ||
9957 | need_lib_prefix=no | ||
9958 | need_version=no | ||
9959 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
9960 | soname_spec='${libname}${release}${shared_ext}$major' | ||
9961 | shlibpath_var=LD_LIBRARY_PATH | ||
9962 | shlibpath_overrides_runpath=no | ||
9963 | hardcode_into_libs=yes | ||
9964 | dynamic_linker='ldqnx.so' | ||
9965 | ;; | ||
9966 | |||
9967 | openbsd*) | ||
9968 | version_type=sunos | ||
9969 | sys_lib_dlsearch_path_spec="/usr/lib" | ||
9970 | need_lib_prefix=no | ||
9971 | # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. | ||
9972 | case $host_os in | ||
9973 | openbsd3.3 | openbsd3.3.*) need_version=yes ;; | ||
9974 | *) need_version=no ;; | ||
9975 | esac | ||
9976 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' | ||
9977 | finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' | ||
9978 | shlibpath_var=LD_LIBRARY_PATH | ||
9979 | if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then | ||
9980 | case $host_os in | ||
9981 | openbsd2.[89] | openbsd2.[89].*) | ||
9982 | shlibpath_overrides_runpath=no | ||
9983 | ;; | ||
9984 | *) | ||
9985 | shlibpath_overrides_runpath=yes | ||
9986 | ;; | ||
9987 | esac | ||
9988 | else | ||
9989 | shlibpath_overrides_runpath=yes | ||
9990 | fi | ||
9991 | ;; | ||
9992 | |||
9993 | os2*) | ||
9994 | libname_spec='$name' | ||
9995 | shrext_cmds=".dll" | ||
9996 | need_lib_prefix=no | ||
9997 | library_names_spec='$libname${shared_ext} $libname.a' | ||
9998 | dynamic_linker='OS/2 ld.exe' | ||
9999 | shlibpath_var=LIBPATH | ||
10000 | ;; | ||
10001 | |||
10002 | osf3* | osf4* | osf5*) | ||
10003 | version_type=osf | ||
10004 | need_lib_prefix=no | ||
10005 | need_version=no | ||
10006 | soname_spec='${libname}${release}${shared_ext}$major' | ||
10007 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
10008 | shlibpath_var=LD_LIBRARY_PATH | ||
10009 | sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" | ||
10010 | sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" | ||
10011 | ;; | ||
10012 | |||
10013 | rdos*) | ||
10014 | dynamic_linker=no | ||
10015 | ;; | ||
10016 | |||
10017 | solaris*) | ||
10018 | version_type=linux | ||
10019 | need_lib_prefix=no | ||
10020 | need_version=no | ||
10021 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
10022 | soname_spec='${libname}${release}${shared_ext}$major' | ||
10023 | shlibpath_var=LD_LIBRARY_PATH | ||
10024 | shlibpath_overrides_runpath=yes | ||
10025 | hardcode_into_libs=yes | ||
10026 | # ldd complains unless libraries are executable | ||
10027 | postinstall_cmds='chmod +x $lib' | ||
10028 | ;; | ||
10029 | |||
10030 | sunos4*) | ||
10031 | version_type=sunos | ||
10032 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' | ||
10033 | finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' | ||
10034 | shlibpath_var=LD_LIBRARY_PATH | ||
10035 | shlibpath_overrides_runpath=yes | ||
10036 | if test "$with_gnu_ld" = yes; then | ||
10037 | need_lib_prefix=no | ||
10038 | fi | ||
10039 | need_version=yes | ||
10040 | ;; | ||
10041 | |||
10042 | sysv4 | sysv4.3*) | ||
10043 | version_type=linux | ||
10044 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
10045 | soname_spec='${libname}${release}${shared_ext}$major' | ||
10046 | shlibpath_var=LD_LIBRARY_PATH | ||
10047 | case $host_vendor in | ||
10048 | sni) | ||
10049 | shlibpath_overrides_runpath=no | ||
10050 | need_lib_prefix=no | ||
10051 | runpath_var=LD_RUN_PATH | ||
10052 | ;; | ||
10053 | siemens) | ||
10054 | need_lib_prefix=no | ||
10055 | ;; | ||
10056 | motorola) | ||
10057 | need_lib_prefix=no | ||
10058 | need_version=no | ||
10059 | shlibpath_overrides_runpath=no | ||
10060 | sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' | ||
10061 | ;; | ||
10062 | esac | ||
10063 | ;; | ||
10064 | |||
10065 | sysv4*MP*) | ||
10066 | if test -d /usr/nec ;then | ||
10067 | version_type=linux | ||
10068 | library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' | ||
10069 | soname_spec='$libname${shared_ext}.$major' | ||
10070 | shlibpath_var=LD_LIBRARY_PATH | ||
10071 | fi | ||
10072 | ;; | ||
10073 | |||
10074 | sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) | ||
10075 | version_type=freebsd-elf | ||
10076 | need_lib_prefix=no | ||
10077 | need_version=no | ||
10078 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' | ||
10079 | soname_spec='${libname}${release}${shared_ext}$major' | ||
10080 | shlibpath_var=LD_LIBRARY_PATH | ||
10081 | shlibpath_overrides_runpath=yes | ||
10082 | hardcode_into_libs=yes | ||
10083 | if test "$with_gnu_ld" = yes; then | ||
10084 | sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' | ||
10085 | else | ||
10086 | sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' | ||
10087 | case $host_os in | ||
10088 | sco3.2v5*) | ||
10089 | sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" | ||
10090 | ;; | ||
10091 | esac | ||
10092 | fi | ||
10093 | sys_lib_dlsearch_path_spec='/usr/lib' | ||
10094 | ;; | ||
10095 | |||
10096 | tpf*) | ||
10097 | # TPF is a cross-target only. Preferred cross-host = GNU/Linux. | ||
10098 | version_type=linux | ||
10099 | need_lib_prefix=no | ||
10100 | need_version=no | ||
10101 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
10102 | shlibpath_var=LD_LIBRARY_PATH | ||
10103 | shlibpath_overrides_runpath=no | ||
10104 | hardcode_into_libs=yes | ||
10105 | ;; | ||
10106 | |||
10107 | uts4*) | ||
10108 | version_type=linux | ||
10109 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
10110 | soname_spec='${libname}${release}${shared_ext}$major' | ||
10111 | shlibpath_var=LD_LIBRARY_PATH | ||
10112 | ;; | ||
10113 | |||
10114 | *) | ||
10115 | dynamic_linker=no | ||
10116 | ;; | ||
10117 | esac | ||
10118 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 | ||
10119 | $as_echo "$dynamic_linker" >&6; } | ||
10120 | test "$dynamic_linker" = no && can_build_shared=no | ||
10121 | |||
10122 | variables_saved_for_relink="PATH $shlibpath_var $runpath_var" | ||
10123 | if test "$GCC" = yes; then | ||
10124 | variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" | ||
10125 | fi | ||
10126 | |||
10127 | if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then | ||
10128 | sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" | ||
10129 | fi | ||
10130 | if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then | ||
10131 | sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" | ||
10132 | fi | ||
10133 | |||
10134 | |||
10135 | |||
10136 | |||
10137 | |||
10138 | |||
10139 | |||
10140 | |||
10141 | |||
10142 | |||
10143 | |||
10144 | |||
10145 | |||
10146 | |||
10147 | |||
10148 | |||
10149 | |||
10150 | |||
10151 | |||
10152 | |||
10153 | |||
10154 | |||
10155 | |||
10156 | |||
10157 | |||
10158 | |||
10159 | |||
10160 | |||
10161 | |||
10162 | |||
10163 | |||
10164 | |||
10165 | |||
10166 | |||
10167 | |||
10168 | |||
10169 | |||
10170 | |||
10171 | |||
10172 | |||
10173 | |||
10174 | |||
10175 | |||
10176 | |||
10177 | |||
10178 | |||
10179 | |||
10180 | |||
10181 | |||
10182 | |||
10183 | |||
10184 | |||
10185 | |||
10186 | |||
10187 | |||
10188 | |||
10189 | |||
10190 | |||
10191 | |||
10192 | |||
10193 | |||
10194 | |||
10195 | |||
10196 | |||
10197 | |||
10198 | |||
10199 | |||
10200 | |||
10201 | |||
10202 | |||
10203 | |||
10204 | |||
10205 | |||
10206 | |||
10207 | |||
10208 | |||
10209 | |||
10210 | |||
10211 | |||
10212 | |||
10213 | |||
10214 | |||
10215 | |||
10216 | |||
10217 | |||
10218 | |||
10219 | |||
10220 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 | ||
10221 | $as_echo_n "checking how to hardcode library paths into programs... " >&6; } | ||
10222 | hardcode_action= | ||
10223 | if test -n "$hardcode_libdir_flag_spec" || | ||
10224 | test -n "$runpath_var" || | ||
10225 | test "X$hardcode_automatic" = "Xyes" ; then | ||
10226 | |||
10227 | # We can hardcode non-existent directories. | ||
10228 | if test "$hardcode_direct" != no && | ||
10229 | # If the only mechanism to avoid hardcoding is shlibpath_var, we | ||
10230 | # have to relink, otherwise we might link with an installed library | ||
10231 | # when we should be linking with a yet-to-be-installed one | ||
10232 | ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && | ||
10233 | test "$hardcode_minus_L" != no; then | ||
10234 | # Linking always hardcodes the temporary library directory. | ||
10235 | hardcode_action=relink | ||
10236 | else | ||
10237 | # We can link without hardcoding, and we can hardcode nonexisting dirs. | ||
10238 | hardcode_action=immediate | ||
10239 | fi | ||
10240 | else | ||
10241 | # We cannot hardcode anything, or else we can only hardcode existing | ||
10242 | # directories. | ||
10243 | hardcode_action=unsupported | ||
10244 | fi | ||
10245 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 | ||
10246 | $as_echo "$hardcode_action" >&6; } | ||
10247 | |||
10248 | if test "$hardcode_action" = relink || | ||
10249 | test "$inherit_rpath" = yes; then | ||
10250 | # Fast installation is not supported | ||
10251 | enable_fast_install=no | ||
10252 | elif test "$shlibpath_overrides_runpath" = yes || | ||
10253 | test "$enable_shared" = no; then | ||
10254 | # Fast installation is not necessary | ||
10255 | enable_fast_install=needless | ||
10256 | fi | ||
10257 | |||
10258 | |||
10259 | |||
10260 | |||
10261 | |||
10262 | |||
10263 | if test "x$enable_dlopen" != xyes; then | ||
10264 | enable_dlopen=unknown | ||
10265 | enable_dlopen_self=unknown | ||
10266 | enable_dlopen_self_static=unknown | ||
10267 | else | ||
10268 | lt_cv_dlopen=no | ||
10269 | lt_cv_dlopen_libs= | ||
10270 | |||
10271 | case $host_os in | ||
10272 | beos*) | ||
10273 | lt_cv_dlopen="load_add_on" | ||
10274 | lt_cv_dlopen_libs= | ||
10275 | lt_cv_dlopen_self=yes | ||
10276 | ;; | ||
10277 | |||
10278 | mingw* | pw32* | cegcc*) | ||
10279 | lt_cv_dlopen="LoadLibrary" | ||
10280 | lt_cv_dlopen_libs= | ||
10281 | ;; | ||
10282 | |||
10283 | cygwin*) | ||
10284 | lt_cv_dlopen="dlopen" | ||
10285 | lt_cv_dlopen_libs= | ||
10286 | ;; | ||
10287 | |||
10288 | darwin*) | ||
10289 | # if libdl is installed we need to link against it | ||
10290 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 | ||
10291 | $as_echo_n "checking for dlopen in -ldl... " >&6; } | ||
10292 | if test "${ac_cv_lib_dl_dlopen+set}" = set; then : | ||
10293 | $as_echo_n "(cached) " >&6 | ||
10294 | else | ||
10295 | ac_check_lib_save_LIBS=$LIBS | ||
10296 | LIBS="-ldl $LIBS" | ||
10297 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
10298 | /* end confdefs.h. */ | ||
10299 | |||
10300 | /* Override any GCC internal prototype to avoid an error. | ||
10301 | Use char because int might match the return type of a GCC | ||
10302 | builtin and then its argument prototype would still apply. */ | ||
10303 | #ifdef __cplusplus | ||
10304 | extern "C" | ||
10305 | #endif | ||
10306 | char dlopen (); | ||
10307 | int | ||
10308 | main () | ||
10309 | { | ||
10310 | return dlopen (); | ||
10311 | ; | ||
10312 | return 0; | ||
10313 | } | ||
10314 | _ACEOF | ||
10315 | if ac_fn_c_try_link "$LINENO"; then : | ||
10316 | ac_cv_lib_dl_dlopen=yes | ||
10317 | else | ||
10318 | ac_cv_lib_dl_dlopen=no | ||
10319 | fi | ||
10320 | rm -f core conftest.err conftest.$ac_objext \ | ||
10321 | conftest$ac_exeext conftest.$ac_ext | ||
10322 | LIBS=$ac_check_lib_save_LIBS | ||
10323 | fi | ||
10324 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 | ||
10325 | $as_echo "$ac_cv_lib_dl_dlopen" >&6; } | ||
10326 | if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : | ||
10327 | lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" | ||
10328 | else | ||
10329 | |||
10330 | lt_cv_dlopen="dyld" | ||
10331 | lt_cv_dlopen_libs= | ||
10332 | lt_cv_dlopen_self=yes | ||
10333 | |||
10334 | fi | ||
10335 | |||
10336 | ;; | ||
10337 | |||
10338 | *) | ||
10339 | ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" | ||
10340 | if test "x$ac_cv_func_shl_load" = x""yes; then : | ||
10341 | lt_cv_dlopen="shl_load" | ||
10342 | else | ||
10343 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 | ||
10344 | $as_echo_n "checking for shl_load in -ldld... " >&6; } | ||
10345 | if test "${ac_cv_lib_dld_shl_load+set}" = set; then : | ||
10346 | $as_echo_n "(cached) " >&6 | ||
10347 | else | ||
10348 | ac_check_lib_save_LIBS=$LIBS | ||
10349 | LIBS="-ldld $LIBS" | ||
10350 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
10351 | /* end confdefs.h. */ | ||
10352 | |||
10353 | /* Override any GCC internal prototype to avoid an error. | ||
10354 | Use char because int might match the return type of a GCC | ||
10355 | builtin and then its argument prototype would still apply. */ | ||
10356 | #ifdef __cplusplus | ||
10357 | extern "C" | ||
10358 | #endif | ||
10359 | char shl_load (); | ||
10360 | int | ||
10361 | main () | ||
10362 | { | ||
10363 | return shl_load (); | ||
10364 | ; | ||
10365 | return 0; | ||
10366 | } | ||
10367 | _ACEOF | ||
10368 | if ac_fn_c_try_link "$LINENO"; then : | ||
10369 | ac_cv_lib_dld_shl_load=yes | ||
10370 | else | ||
10371 | ac_cv_lib_dld_shl_load=no | ||
10372 | fi | ||
10373 | rm -f core conftest.err conftest.$ac_objext \ | ||
10374 | conftest$ac_exeext conftest.$ac_ext | ||
10375 | LIBS=$ac_check_lib_save_LIBS | ||
10376 | fi | ||
10377 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 | ||
10378 | $as_echo "$ac_cv_lib_dld_shl_load" >&6; } | ||
10379 | if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : | ||
10380 | lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" | ||
10381 | else | ||
10382 | ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" | ||
10383 | if test "x$ac_cv_func_dlopen" = x""yes; then : | ||
10384 | lt_cv_dlopen="dlopen" | ||
10385 | else | ||
10386 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 | ||
10387 | $as_echo_n "checking for dlopen in -ldl... " >&6; } | ||
10388 | if test "${ac_cv_lib_dl_dlopen+set}" = set; then : | ||
10389 | $as_echo_n "(cached) " >&6 | ||
10390 | else | ||
10391 | ac_check_lib_save_LIBS=$LIBS | ||
10392 | LIBS="-ldl $LIBS" | ||
10393 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
10394 | /* end confdefs.h. */ | ||
10395 | |||
10396 | /* Override any GCC internal prototype to avoid an error. | ||
10397 | Use char because int might match the return type of a GCC | ||
10398 | builtin and then its argument prototype would still apply. */ | ||
10399 | #ifdef __cplusplus | ||
10400 | extern "C" | ||
10401 | #endif | ||
10402 | char dlopen (); | ||
10403 | int | ||
10404 | main () | ||
10405 | { | ||
10406 | return dlopen (); | ||
10407 | ; | ||
10408 | return 0; | ||
10409 | } | ||
10410 | _ACEOF | ||
10411 | if ac_fn_c_try_link "$LINENO"; then : | ||
10412 | ac_cv_lib_dl_dlopen=yes | ||
10413 | else | ||
10414 | ac_cv_lib_dl_dlopen=no | ||
10415 | fi | ||
10416 | rm -f core conftest.err conftest.$ac_objext \ | ||
10417 | conftest$ac_exeext conftest.$ac_ext | ||
10418 | LIBS=$ac_check_lib_save_LIBS | ||
10419 | fi | ||
10420 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 | ||
10421 | $as_echo "$ac_cv_lib_dl_dlopen" >&6; } | ||
10422 | if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : | ||
10423 | lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" | ||
10424 | else | ||
10425 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 | ||
10426 | $as_echo_n "checking for dlopen in -lsvld... " >&6; } | ||
10427 | if test "${ac_cv_lib_svld_dlopen+set}" = set; then : | ||
10428 | $as_echo_n "(cached) " >&6 | ||
10429 | else | ||
10430 | ac_check_lib_save_LIBS=$LIBS | ||
10431 | LIBS="-lsvld $LIBS" | ||
10432 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
10433 | /* end confdefs.h. */ | ||
10434 | |||
10435 | /* Override any GCC internal prototype to avoid an error. | ||
10436 | Use char because int might match the return type of a GCC | ||
10437 | builtin and then its argument prototype would still apply. */ | ||
10438 | #ifdef __cplusplus | ||
10439 | extern "C" | ||
10440 | #endif | ||
10441 | char dlopen (); | ||
10442 | int | ||
10443 | main () | ||
10444 | { | ||
10445 | return dlopen (); | ||
10446 | ; | ||
10447 | return 0; | ||
10448 | } | ||
10449 | _ACEOF | ||
10450 | if ac_fn_c_try_link "$LINENO"; then : | ||
10451 | ac_cv_lib_svld_dlopen=yes | ||
10452 | else | ||
10453 | ac_cv_lib_svld_dlopen=no | ||
10454 | fi | ||
10455 | rm -f core conftest.err conftest.$ac_objext \ | ||
10456 | conftest$ac_exeext conftest.$ac_ext | ||
10457 | LIBS=$ac_check_lib_save_LIBS | ||
10458 | fi | ||
10459 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 | ||
10460 | $as_echo "$ac_cv_lib_svld_dlopen" >&6; } | ||
10461 | if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : | ||
10462 | lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" | ||
10463 | else | ||
10464 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 | ||
10465 | $as_echo_n "checking for dld_link in -ldld... " >&6; } | ||
10466 | if test "${ac_cv_lib_dld_dld_link+set}" = set; then : | ||
10467 | $as_echo_n "(cached) " >&6 | ||
10468 | else | ||
10469 | ac_check_lib_save_LIBS=$LIBS | ||
10470 | LIBS="-ldld $LIBS" | ||
10471 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
10472 | /* end confdefs.h. */ | ||
10473 | |||
10474 | /* Override any GCC internal prototype to avoid an error. | ||
10475 | Use char because int might match the return type of a GCC | ||
10476 | builtin and then its argument prototype would still apply. */ | ||
10477 | #ifdef __cplusplus | ||
10478 | extern "C" | ||
10479 | #endif | ||
10480 | char dld_link (); | ||
10481 | int | ||
10482 | main () | ||
10483 | { | ||
10484 | return dld_link (); | ||
10485 | ; | ||
10486 | return 0; | ||
10487 | } | ||
10488 | _ACEOF | ||
10489 | if ac_fn_c_try_link "$LINENO"; then : | ||
10490 | ac_cv_lib_dld_dld_link=yes | ||
10491 | else | ||
10492 | ac_cv_lib_dld_dld_link=no | ||
10493 | fi | ||
10494 | rm -f core conftest.err conftest.$ac_objext \ | ||
10495 | conftest$ac_exeext conftest.$ac_ext | ||
10496 | LIBS=$ac_check_lib_save_LIBS | ||
10497 | fi | ||
10498 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 | ||
10499 | $as_echo "$ac_cv_lib_dld_dld_link" >&6; } | ||
10500 | if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : | ||
10501 | lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" | ||
10502 | fi | ||
10503 | |||
10504 | |||
10505 | fi | ||
10506 | |||
10507 | |||
10508 | fi | ||
10509 | |||
10510 | |||
10511 | fi | ||
10512 | |||
10513 | |||
10514 | fi | ||
10515 | |||
10516 | |||
10517 | fi | ||
10518 | |||
10519 | ;; | ||
10520 | esac | ||
10521 | |||
10522 | if test "x$lt_cv_dlopen" != xno; then | ||
10523 | enable_dlopen=yes | ||
10524 | else | ||
10525 | enable_dlopen=no | ||
10526 | fi | ||
10527 | |||
10528 | case $lt_cv_dlopen in | ||
10529 | dlopen) | ||
10530 | save_CPPFLAGS="$CPPFLAGS" | ||
10531 | test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" | ||
10532 | |||
10533 | save_LDFLAGS="$LDFLAGS" | ||
10534 | wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" | ||
10535 | |||
10536 | save_LIBS="$LIBS" | ||
10537 | LIBS="$lt_cv_dlopen_libs $LIBS" | ||
10538 | |||
10539 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 | ||
10540 | $as_echo_n "checking whether a program can dlopen itself... " >&6; } | ||
10541 | if test "${lt_cv_dlopen_self+set}" = set; then : | ||
10542 | $as_echo_n "(cached) " >&6 | ||
10543 | else | ||
10544 | if test "$cross_compiling" = yes; then : | ||
10545 | lt_cv_dlopen_self=cross | ||
10546 | else | ||
10547 | lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 | ||
10548 | lt_status=$lt_dlunknown | ||
10549 | cat > conftest.$ac_ext <<_LT_EOF | ||
10550 | #line 10550 "configure" | ||
10551 | #include "confdefs.h" | ||
10552 | |||
10553 | #if HAVE_DLFCN_H | ||
10554 | #include <dlfcn.h> | ||
10555 | #endif | ||
10556 | |||
10557 | #include <stdio.h> | ||
10558 | |||
10559 | #ifdef RTLD_GLOBAL | ||
10560 | # define LT_DLGLOBAL RTLD_GLOBAL | ||
10561 | #else | ||
10562 | # ifdef DL_GLOBAL | ||
10563 | # define LT_DLGLOBAL DL_GLOBAL | ||
10564 | # else | ||
10565 | # define LT_DLGLOBAL 0 | ||
10566 | # endif | ||
10567 | #endif | ||
10568 | |||
10569 | /* We may have to define LT_DLLAZY_OR_NOW in the command line if we | ||
10570 | find out it does not work in some platform. */ | ||
10571 | #ifndef LT_DLLAZY_OR_NOW | ||
10572 | # ifdef RTLD_LAZY | ||
10573 | # define LT_DLLAZY_OR_NOW RTLD_LAZY | ||
10574 | # else | ||
10575 | # ifdef DL_LAZY | ||
10576 | # define LT_DLLAZY_OR_NOW DL_LAZY | ||
10577 | # else | ||
10578 | # ifdef RTLD_NOW | ||
10579 | # define LT_DLLAZY_OR_NOW RTLD_NOW | ||
10580 | # else | ||
10581 | # ifdef DL_NOW | ||
10582 | # define LT_DLLAZY_OR_NOW DL_NOW | ||
10583 | # else | ||
10584 | # define LT_DLLAZY_OR_NOW 0 | ||
10585 | # endif | ||
10586 | # endif | ||
10587 | # endif | ||
10588 | # endif | ||
10589 | #endif | ||
10590 | |||
10591 | void fnord() { int i=42;} | ||
10592 | int main () | ||
10593 | { | ||
10594 | void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); | ||
10595 | int status = $lt_dlunknown; | ||
10596 | |||
10597 | if (self) | ||
10598 | { | ||
10599 | if (dlsym (self,"fnord")) status = $lt_dlno_uscore; | ||
10600 | else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; | ||
10601 | /* dlclose (self); */ | ||
10602 | } | ||
10603 | else | ||
10604 | puts (dlerror ()); | ||
10605 | |||
10606 | return status; | ||
10607 | } | ||
10608 | _LT_EOF | ||
10609 | if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 | ||
10610 | (eval $ac_link) 2>&5 | ||
10611 | ac_status=$? | ||
10612 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
10613 | test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then | ||
10614 | (./conftest; exit; ) >&5 2>/dev/null | ||
10615 | lt_status=$? | ||
10616 | case x$lt_status in | ||
10617 | x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; | ||
10618 | x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; | ||
10619 | x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; | ||
10620 | esac | ||
10621 | else : | ||
10622 | # compilation failed | ||
10623 | lt_cv_dlopen_self=no | ||
10624 | fi | ||
10625 | fi | ||
10626 | rm -fr conftest* | ||
10627 | |||
10628 | |||
10629 | fi | ||
10630 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 | ||
10631 | $as_echo "$lt_cv_dlopen_self" >&6; } | ||
10632 | |||
10633 | if test "x$lt_cv_dlopen_self" = xyes; then | ||
10634 | wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" | ||
10635 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 | ||
10636 | $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } | ||
10637 | if test "${lt_cv_dlopen_self_static+set}" = set; then : | ||
10638 | $as_echo_n "(cached) " >&6 | ||
10639 | else | ||
10640 | if test "$cross_compiling" = yes; then : | ||
10641 | lt_cv_dlopen_self_static=cross | ||
10642 | else | ||
10643 | lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 | ||
10644 | lt_status=$lt_dlunknown | ||
10645 | cat > conftest.$ac_ext <<_LT_EOF | ||
10646 | #line 10646 "configure" | ||
10647 | #include "confdefs.h" | ||
10648 | |||
10649 | #if HAVE_DLFCN_H | ||
10650 | #include <dlfcn.h> | ||
10651 | #endif | ||
10652 | |||
10653 | #include <stdio.h> | ||
10654 | |||
10655 | #ifdef RTLD_GLOBAL | ||
10656 | # define LT_DLGLOBAL RTLD_GLOBAL | ||
10657 | #else | ||
10658 | # ifdef DL_GLOBAL | ||
10659 | # define LT_DLGLOBAL DL_GLOBAL | ||
10660 | # else | ||
10661 | # define LT_DLGLOBAL 0 | ||
10662 | # endif | ||
10663 | #endif | ||
10664 | |||
10665 | /* We may have to define LT_DLLAZY_OR_NOW in the command line if we | ||
10666 | find out it does not work in some platform. */ | ||
10667 | #ifndef LT_DLLAZY_OR_NOW | ||
10668 | # ifdef RTLD_LAZY | ||
10669 | # define LT_DLLAZY_OR_NOW RTLD_LAZY | ||
10670 | # else | ||
10671 | # ifdef DL_LAZY | ||
10672 | # define LT_DLLAZY_OR_NOW DL_LAZY | ||
10673 | # else | ||
10674 | # ifdef RTLD_NOW | ||
10675 | # define LT_DLLAZY_OR_NOW RTLD_NOW | ||
10676 | # else | ||
10677 | # ifdef DL_NOW | ||
10678 | # define LT_DLLAZY_OR_NOW DL_NOW | ||
10679 | # else | ||
10680 | # define LT_DLLAZY_OR_NOW 0 | ||
10681 | # endif | ||
10682 | # endif | ||
10683 | # endif | ||
10684 | # endif | ||
10685 | #endif | ||
10686 | |||
10687 | void fnord() { int i=42;} | ||
10688 | int main () | ||
10689 | { | ||
10690 | void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); | ||
10691 | int status = $lt_dlunknown; | ||
10692 | |||
10693 | if (self) | ||
10694 | { | ||
10695 | if (dlsym (self,"fnord")) status = $lt_dlno_uscore; | ||
10696 | else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; | ||
10697 | /* dlclose (self); */ | ||
10698 | } | ||
10699 | else | ||
10700 | puts (dlerror ()); | ||
10701 | |||
10702 | return status; | ||
10703 | } | ||
10704 | _LT_EOF | ||
10705 | if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 | ||
10706 | (eval $ac_link) 2>&5 | ||
10707 | ac_status=$? | ||
10708 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
10709 | test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then | ||
10710 | (./conftest; exit; ) >&5 2>/dev/null | ||
10711 | lt_status=$? | ||
10712 | case x$lt_status in | ||
10713 | x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; | ||
10714 | x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; | ||
10715 | x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; | ||
10716 | esac | ||
10717 | else : | ||
10718 | # compilation failed | ||
10719 | lt_cv_dlopen_self_static=no | ||
10720 | fi | ||
10721 | fi | ||
10722 | rm -fr conftest* | ||
10723 | |||
10724 | |||
10725 | fi | ||
10726 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 | ||
10727 | $as_echo "$lt_cv_dlopen_self_static" >&6; } | ||
10728 | fi | ||
10729 | |||
10730 | CPPFLAGS="$save_CPPFLAGS" | ||
10731 | LDFLAGS="$save_LDFLAGS" | ||
10732 | LIBS="$save_LIBS" | ||
10733 | ;; | ||
10734 | esac | ||
10735 | |||
10736 | case $lt_cv_dlopen_self in | ||
10737 | yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; | ||
10738 | *) enable_dlopen_self=unknown ;; | ||
10739 | esac | ||
10740 | |||
10741 | case $lt_cv_dlopen_self_static in | ||
10742 | yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; | ||
10743 | *) enable_dlopen_self_static=unknown ;; | ||
10744 | esac | ||
10745 | fi | ||
10746 | |||
10747 | |||
10748 | |||
10749 | |||
10750 | |||
10751 | |||
10752 | |||
10753 | |||
10754 | |||
10755 | |||
10756 | |||
10757 | |||
10758 | |||
10759 | |||
10760 | |||
10761 | |||
10762 | |||
10763 | striplib= | ||
10764 | old_striplib= | ||
10765 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 | ||
10766 | $as_echo_n "checking whether stripping libraries is possible... " >&6; } | ||
10767 | if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then | ||
10768 | test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" | ||
10769 | test -z "$striplib" && striplib="$STRIP --strip-unneeded" | ||
10770 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
10771 | $as_echo "yes" >&6; } | ||
10772 | else | ||
10773 | # FIXME - insert some real tests, host_os isn't really good enough | ||
10774 | case $host_os in | ||
10775 | darwin*) | ||
10776 | if test -n "$STRIP" ; then | ||
10777 | striplib="$STRIP -x" | ||
10778 | old_striplib="$STRIP -S" | ||
10779 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
10780 | $as_echo "yes" >&6; } | ||
10781 | else | ||
10782 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
10783 | $as_echo "no" >&6; } | ||
10784 | fi | ||
10785 | ;; | ||
10786 | *) | ||
10787 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
10788 | $as_echo "no" >&6; } | ||
10789 | ;; | ||
10790 | esac | ||
10791 | fi | ||
10792 | |||
10793 | |||
10794 | |||
10795 | |||
10796 | |||
10797 | |||
10798 | |||
10799 | |||
10800 | |||
10801 | |||
10802 | |||
10803 | |||
10804 | # Report which library types will actually be built | ||
10805 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 | ||
10806 | $as_echo_n "checking if libtool supports shared libraries... " >&6; } | ||
10807 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 | ||
10808 | $as_echo "$can_build_shared" >&6; } | ||
10809 | |||
10810 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 | ||
10811 | $as_echo_n "checking whether to build shared libraries... " >&6; } | ||
10812 | test "$can_build_shared" = "no" && enable_shared=no | ||
10813 | |||
10814 | # On AIX, shared libraries and static libraries use the same namespace, and | ||
10815 | # are all built from PIC. | ||
10816 | case $host_os in | ||
10817 | aix3*) | ||
10818 | test "$enable_shared" = yes && enable_static=no | ||
10819 | if test -n "$RANLIB"; then | ||
10820 | archive_cmds="$archive_cmds~\$RANLIB \$lib" | ||
10821 | postinstall_cmds='$RANLIB $lib' | ||
10822 | fi | ||
10823 | ;; | ||
10824 | |||
10825 | aix[4-9]*) | ||
10826 | if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then | ||
10827 | test "$enable_shared" = yes && enable_static=no | ||
10828 | fi | ||
10829 | ;; | ||
10830 | esac | ||
10831 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 | ||
10832 | $as_echo "$enable_shared" >&6; } | ||
10833 | |||
10834 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 | ||
10835 | $as_echo_n "checking whether to build static libraries... " >&6; } | ||
10836 | # Make sure either enable_shared or enable_static is yes. | ||
10837 | test "$enable_shared" = yes || enable_static=yes | ||
10838 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 | ||
10839 | $as_echo "$enable_static" >&6; } | ||
10840 | |||
10841 | |||
10842 | |||
10843 | |||
10844 | fi | ||
10845 | ac_ext=c | ||
10846 | ac_cpp='$CPP $CPPFLAGS' | ||
10847 | ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' | ||
10848 | ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | ||
10849 | ac_compiler_gnu=$ac_cv_c_compiler_gnu | ||
10850 | |||
10851 | CC="$lt_save_CC" | ||
10852 | |||
10853 | |||
10854 | |||
10855 | |||
10856 | |||
10857 | |||
10858 | |||
10859 | |||
10860 | |||
10861 | |||
10862 | |||
10863 | |||
10864 | |||
10865 | ac_config_commands="$ac_config_commands libtool" | ||
10866 | |||
10867 | |||
10868 | |||
10869 | |||
10870 | # Only expand once: | ||
10871 | |||
10872 | |||
10873 | |||
10874 | ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## | ||
10875 | ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## | ||
10876 | |||
10877 | |||
10878 | |||
10879 | cat >>confdefs.h <<_ACEOF | ||
10880 | #define VMAJ 1 | ||
10881 | _ACEOF | ||
10882 | |||
10883 | |||
10884 | cat >>confdefs.h <<_ACEOF | ||
10885 | #define VMIN 6 | ||
10886 | _ACEOF | ||
10887 | |||
10888 | |||
10889 | cat >>confdefs.h <<_ACEOF | ||
10890 | #define VMIC 0 | ||
10891 | _ACEOF | ||
10892 | |||
10893 | |||
10894 | cat >>confdefs.h <<_ACEOF | ||
10895 | #define VREV 0 | ||
10896 | _ACEOF | ||
10897 | |||
10898 | version_info="7:0:6" | ||
10899 | release_info="" | ||
10900 | |||
10901 | |||
10902 | ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## | ||
10903 | ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## | ||
10904 | VMAJ=1 | ||
10905 | |||
10906 | |||
10907 | |||
10908 | ### Needed information | ||
10909 | |||
10910 | |||
10911 | |||
10912 | |||
10913 | ### Default options with respect to host | ||
10914 | |||
10915 | want_gnutls="auto" | ||
10916 | want_openssl="auto" | ||
10917 | want_cipher="yes" | ||
10918 | want_signature="yes" | ||
10919 | |||
10920 | requirement_eet="" | ||
10921 | |||
10922 | |||
10923 | ### Additional options to configure | ||
10924 | |||
10925 | # Amalgamation | ||
10926 | |||
10927 | # Check whether --enable-amalgamation was given. | ||
10928 | if test "${enable_amalgamation+set}" = set; then : | ||
10929 | enableval=$enable_amalgamation; if test "x${enableval}" = "xyes"; then | ||
10930 | do_amalgamation="yes" | ||
10931 | else | ||
10932 | do_amalgamation="no" | ||
10933 | fi | ||
10934 | |||
10935 | else | ||
10936 | do_amalgamation="no" | ||
10937 | |||
10938 | fi | ||
10939 | |||
10940 | if test "x${do_amalgamation}" = "xyes"; then | ||
10941 | EET_AMALGAMATION_TRUE= | ||
10942 | EET_AMALGAMATION_FALSE='#' | ||
10943 | else | ||
10944 | EET_AMALGAMATION_TRUE='#' | ||
10945 | EET_AMALGAMATION_FALSE= | ||
10946 | fi | ||
10947 | |||
10948 | |||
10949 | |||
10950 | |||
10951 | |||
10952 | have_eet="yes" | ||
10953 | |||
10954 | |||
10955 | # Check whether --enable-eet was given. | ||
10956 | if test "${enable_eet+set}" = set; then : | ||
10957 | enableval=$enable_eet; | ||
10958 | if test "x${enableval}" = "xyes" ; then | ||
10959 | have_eet="yes" | ||
10960 | else | ||
10961 | have_eet="no" | ||
10962 | fi | ||
10963 | |||
10964 | fi | ||
10965 | |||
10966 | |||
10967 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build eet binary" >&5 | ||
10968 | $as_echo_n "checking whether to build eet binary... " >&6; } | ||
10969 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_eet" >&5 | ||
10970 | $as_echo "$have_eet" >&6; } | ||
10971 | |||
10972 | if test "x$have_eet" = "xyes"; then | ||
10973 | EET_PRG=eet${EXEEXT} | ||
10974 | fi | ||
10975 | |||
10976 | |||
10977 | |||
10978 | if test "x$have_eet" = "xyes"; then | ||
10979 | BUILD_EET_TRUE= | ||
10980 | BUILD_EET_FALSE='#' | ||
10981 | else | ||
10982 | BUILD_EET_TRUE='#' | ||
10983 | BUILD_EET_FALSE= | ||
10984 | fi | ||
10985 | |||
10986 | |||
10987 | if test "x$have_eet" = "xyes"; then : | ||
10988 | |||
10989 | fi | ||
10990 | |||
10991 | |||
10992 | |||
10993 | # Old eet file format support | ||
10994 | |||
10995 | old_eet_file_format="yes" | ||
10996 | # Check whether --enable-old-eet-file-format was given. | ||
10997 | if test "${enable_old_eet_file_format+set}" = set; then : | ||
10998 | enableval=$enable_old_eet_file_format; old_eet_file_format=$enableval | ||
10999 | |||
11000 | fi | ||
11001 | |||
11002 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to support old eet file format" >&5 | ||
11003 | $as_echo_n "checking whether to support old eet file format... " >&6; } | ||
11004 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${old_eet_file_format}" >&5 | ||
11005 | $as_echo "${old_eet_file_format}" >&6; } | ||
11006 | |||
11007 | if test "x${old_eet_file_format}" = "xyes" ; then | ||
11008 | |||
11009 | $as_echo "#define EET_OLD_EET_FILE_FORMAT 1" >>confdefs.h | ||
11010 | |||
11011 | else | ||
11012 | |||
11013 | $as_echo "#define EET_OLD_EET_FILE_FORMAT 0" >>confdefs.h | ||
11014 | |||
11015 | fi | ||
11016 | |||
11017 | # Openssl support | ||
11018 | |||
11019 | # Check whether --enable-openssl was given. | ||
11020 | if test "${enable_openssl+set}" = set; then : | ||
11021 | enableval=$enable_openssl; want_openssl=$enableval | ||
11022 | |||
11023 | fi | ||
11024 | |||
11025 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use OpenSSL" >&5 | ||
11026 | $as_echo_n "checking whether to use OpenSSL... " >&6; } | ||
11027 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_openssl}" >&5 | ||
11028 | $as_echo "${want_openssl}" >&6; } | ||
11029 | |||
11030 | # Cryptography support | ||
11031 | |||
11032 | # Check whether --enable-cipher was given. | ||
11033 | if test "${enable_cipher+set}" = set; then : | ||
11034 | enableval=$enable_cipher; want_cipher=$enableval | ||
11035 | |||
11036 | fi | ||
11037 | |||
11038 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use cipher" >&5 | ||
11039 | $as_echo_n "checking whether to use cipher... " >&6; } | ||
11040 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_cipher}" >&5 | ||
11041 | $as_echo "${want_cipher}" >&6; } | ||
11042 | |||
11043 | # Check whether --enable-signature was given. | ||
11044 | if test "${enable_signature+set}" = set; then : | ||
11045 | enableval=$enable_signature; want_signature=$enableval | ||
11046 | |||
11047 | fi | ||
11048 | |||
11049 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use signature" >&5 | ||
11050 | $as_echo_n "checking whether to use signature... " >&6; } | ||
11051 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_signature}" >&5 | ||
11052 | $as_echo "${want_signature}" >&6; } | ||
11053 | |||
11054 | # Assert or fail. | ||
11055 | prefer_assert="no" | ||
11056 | # Check whether --enable-assert was given. | ||
11057 | if test "${enable_assert+set}" = set; then : | ||
11058 | enableval=$enable_assert; prefer_assert=$enableval | ||
11059 | |||
11060 | fi | ||
11061 | |||
11062 | |||
11063 | # Examples | ||
11064 | |||
11065 | # Check whether --enable-install-examples was given. | ||
11066 | if test "${enable_install_examples+set}" = set; then : | ||
11067 | enableval=$enable_install_examples; | ||
11068 | if test "x${enableval}" = "xyes" ; then | ||
11069 | install_examples="yes" | ||
11070 | else | ||
11071 | install_examples="no" | ||
11072 | fi | ||
11073 | |||
11074 | else | ||
11075 | install_examples="yes" | ||
11076 | fi | ||
11077 | |||
11078 | if test "x${install_examples}" = "xyes"; then | ||
11079 | INSTALL_EXAMPLES_TRUE= | ||
11080 | INSTALL_EXAMPLES_FALSE='#' | ||
11081 | else | ||
11082 | INSTALL_EXAMPLES_TRUE='#' | ||
11083 | INSTALL_EXAMPLES_FALSE= | ||
11084 | fi | ||
11085 | |||
11086 | |||
11087 | # Check whether --enable-build-examples was given. | ||
11088 | if test "${enable_build_examples+set}" = set; then : | ||
11089 | enableval=$enable_build_examples; | ||
11090 | if test "x${enableval}" = "xyes" ; then | ||
11091 | build_examples="yes" | ||
11092 | else | ||
11093 | build_examples="no" | ||
11094 | fi | ||
11095 | |||
11096 | else | ||
11097 | build_examples="no" | ||
11098 | fi | ||
11099 | |||
11100 | if test "x${build_examples}" = "xyes"; then | ||
11101 | BUILD_EXAMPLES_TRUE= | ||
11102 | BUILD_EXAMPLES_FALSE='#' | ||
11103 | else | ||
11104 | BUILD_EXAMPLES_TRUE='#' | ||
11105 | BUILD_EXAMPLES_FALSE= | ||
11106 | fi | ||
11107 | |||
11108 | |||
11109 | # Unit tests, coverage and benchmarking | ||
11110 | |||
11111 | |||
11112 | |||
11113 | |||
11114 | |||
11115 | |||
11116 | |||
11117 | if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then | ||
11118 | if test -n "$ac_tool_prefix"; then | ||
11119 | # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. | ||
11120 | set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 | ||
11121 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
11122 | $as_echo_n "checking for $ac_word... " >&6; } | ||
11123 | if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : | ||
11124 | $as_echo_n "(cached) " >&6 | ||
11125 | else | ||
11126 | case $PKG_CONFIG in | ||
11127 | [\\/]* | ?:[\\/]*) | ||
11128 | ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. | ||
11129 | ;; | ||
11130 | *) | ||
11131 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
11132 | for as_dir in $PATH | ||
11133 | do | ||
11134 | IFS=$as_save_IFS | ||
11135 | test -z "$as_dir" && as_dir=. | ||
11136 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
11137 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
11138 | ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" | ||
11139 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
11140 | break 2 | ||
11141 | fi | ||
11142 | done | ||
11143 | done | ||
11144 | IFS=$as_save_IFS | ||
11145 | |||
11146 | ;; | ||
11147 | esac | ||
11148 | fi | ||
11149 | PKG_CONFIG=$ac_cv_path_PKG_CONFIG | ||
11150 | if test -n "$PKG_CONFIG"; then | ||
11151 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 | ||
11152 | $as_echo "$PKG_CONFIG" >&6; } | ||
11153 | else | ||
11154 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
11155 | $as_echo "no" >&6; } | ||
11156 | fi | ||
11157 | |||
11158 | |||
11159 | fi | ||
11160 | if test -z "$ac_cv_path_PKG_CONFIG"; then | ||
11161 | ac_pt_PKG_CONFIG=$PKG_CONFIG | ||
11162 | # Extract the first word of "pkg-config", so it can be a program name with args. | ||
11163 | set dummy pkg-config; ac_word=$2 | ||
11164 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
11165 | $as_echo_n "checking for $ac_word... " >&6; } | ||
11166 | if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : | ||
11167 | $as_echo_n "(cached) " >&6 | ||
11168 | else | ||
11169 | case $ac_pt_PKG_CONFIG in | ||
11170 | [\\/]* | ?:[\\/]*) | ||
11171 | ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. | ||
11172 | ;; | ||
11173 | *) | ||
11174 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
11175 | for as_dir in $PATH | ||
11176 | do | ||
11177 | IFS=$as_save_IFS | ||
11178 | test -z "$as_dir" && as_dir=. | ||
11179 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
11180 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
11181 | ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" | ||
11182 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
11183 | break 2 | ||
11184 | fi | ||
11185 | done | ||
11186 | done | ||
11187 | IFS=$as_save_IFS | ||
11188 | |||
11189 | ;; | ||
11190 | esac | ||
11191 | fi | ||
11192 | ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG | ||
11193 | if test -n "$ac_pt_PKG_CONFIG"; then | ||
11194 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 | ||
11195 | $as_echo "$ac_pt_PKG_CONFIG" >&6; } | ||
11196 | else | ||
11197 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
11198 | $as_echo "no" >&6; } | ||
11199 | fi | ||
11200 | |||
11201 | if test "x$ac_pt_PKG_CONFIG" = x; then | ||
11202 | PKG_CONFIG="" | ||
11203 | else | ||
11204 | case $cross_compiling:$ac_tool_warned in | ||
11205 | yes:) | ||
11206 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | ||
11207 | $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | ||
11208 | ac_tool_warned=yes ;; | ||
11209 | esac | ||
11210 | PKG_CONFIG=$ac_pt_PKG_CONFIG | ||
11211 | fi | ||
11212 | else | ||
11213 | PKG_CONFIG="$ac_cv_path_PKG_CONFIG" | ||
11214 | fi | ||
11215 | |||
11216 | fi | ||
11217 | if test -n "$PKG_CONFIG"; then | ||
11218 | _pkg_min_version=0.9.0 | ||
11219 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 | ||
11220 | $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } | ||
11221 | if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then | ||
11222 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
11223 | $as_echo "yes" >&6; } | ||
11224 | else | ||
11225 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
11226 | $as_echo "no" >&6; } | ||
11227 | PKG_CONFIG="" | ||
11228 | fi | ||
11229 | fi | ||
11230 | |||
11231 | |||
11232 | |||
11233 | # Check whether --enable-tests was given. | ||
11234 | if test "${enable_tests+set}" = set; then : | ||
11235 | enableval=$enable_tests; | ||
11236 | if test "x${enableval}" = "xyes" ; then | ||
11237 | _efl_enable_tests="yes" | ||
11238 | else | ||
11239 | _efl_enable_tests="no" | ||
11240 | fi | ||
11241 | |||
11242 | else | ||
11243 | _efl_enable_tests="no" | ||
11244 | fi | ||
11245 | |||
11246 | |||
11247 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether tests are built" >&5 | ||
11248 | $as_echo_n "checking whether tests are built... " >&6; } | ||
11249 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_efl_enable_tests}" >&5 | ||
11250 | $as_echo "${_efl_enable_tests}" >&6; } | ||
11251 | |||
11252 | |||
11253 | |||
11254 | if test "x${_efl_enable_tests}" = "xyes" ; then | ||
11255 | |||
11256 | pkg_failed=no | ||
11257 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CHECK" >&5 | ||
11258 | $as_echo_n "checking for CHECK... " >&6; } | ||
11259 | |||
11260 | if test -n "$CHECK_CFLAGS"; then | ||
11261 | pkg_cv_CHECK_CFLAGS="$CHECK_CFLAGS" | ||
11262 | elif test -n "$PKG_CONFIG"; then | ||
11263 | if test -n "$PKG_CONFIG" && \ | ||
11264 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5 | ||
11265 | ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5 | ||
11266 | ac_status=$? | ||
11267 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
11268 | test $ac_status = 0; }; then | ||
11269 | pkg_cv_CHECK_CFLAGS=`$PKG_CONFIG --cflags "check >= 0.9.5" 2>/dev/null` | ||
11270 | else | ||
11271 | pkg_failed=yes | ||
11272 | fi | ||
11273 | else | ||
11274 | pkg_failed=untried | ||
11275 | fi | ||
11276 | if test -n "$CHECK_LIBS"; then | ||
11277 | pkg_cv_CHECK_LIBS="$CHECK_LIBS" | ||
11278 | elif test -n "$PKG_CONFIG"; then | ||
11279 | if test -n "$PKG_CONFIG" && \ | ||
11280 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"check >= 0.9.5\""; } >&5 | ||
11281 | ($PKG_CONFIG --exists --print-errors "check >= 0.9.5") 2>&5 | ||
11282 | ac_status=$? | ||
11283 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
11284 | test $ac_status = 0; }; then | ||
11285 | pkg_cv_CHECK_LIBS=`$PKG_CONFIG --libs "check >= 0.9.5" 2>/dev/null` | ||
11286 | else | ||
11287 | pkg_failed=yes | ||
11288 | fi | ||
11289 | else | ||
11290 | pkg_failed=untried | ||
11291 | fi | ||
11292 | |||
11293 | |||
11294 | |||
11295 | if test $pkg_failed = yes; then | ||
11296 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
11297 | $as_echo "no" >&6; } | ||
11298 | |||
11299 | if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then | ||
11300 | _pkg_short_errors_supported=yes | ||
11301 | else | ||
11302 | _pkg_short_errors_supported=no | ||
11303 | fi | ||
11304 | if test $_pkg_short_errors_supported = yes; then | ||
11305 | CHECK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "check >= 0.9.5" 2>&1` | ||
11306 | else | ||
11307 | CHECK_PKG_ERRORS=`$PKG_CONFIG --print-errors "check >= 0.9.5" 2>&1` | ||
11308 | fi | ||
11309 | # Put the nasty error message in config.log where it belongs | ||
11310 | echo "$CHECK_PKG_ERRORS" >&5 | ||
11311 | |||
11312 | _efl_enable_tests="no" | ||
11313 | elif test $pkg_failed = untried; then | ||
11314 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
11315 | $as_echo "no" >&6; } | ||
11316 | _efl_enable_tests="no" | ||
11317 | else | ||
11318 | CHECK_CFLAGS=$pkg_cv_CHECK_CFLAGS | ||
11319 | CHECK_LIBS=$pkg_cv_CHECK_LIBS | ||
11320 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
11321 | $as_echo "yes" >&6; } | ||
11322 | dummy="yes" | ||
11323 | fi | ||
11324 | fi | ||
11325 | |||
11326 | if test "x${_efl_enable_tests}" = "xyes"; then | ||
11327 | EFL_ENABLE_TESTS_TRUE= | ||
11328 | EFL_ENABLE_TESTS_FALSE='#' | ||
11329 | else | ||
11330 | EFL_ENABLE_TESTS_TRUE='#' | ||
11331 | EFL_ENABLE_TESTS_FALSE= | ||
11332 | fi | ||
11333 | |||
11334 | |||
11335 | if test "x$_efl_enable_tests" = "xyes"; then : | ||
11336 | enable_tests="yes" | ||
11337 | else | ||
11338 | enable_tests="no" | ||
11339 | fi | ||
11340 | |||
11341 | |||
11342 | |||
11343 | |||
11344 | # Check whether --enable-coverage was given. | ||
11345 | if test "${enable_coverage+set}" = set; then : | ||
11346 | enableval=$enable_coverage; | ||
11347 | if test "x${enableval}" = "xyes" ; then | ||
11348 | _efl_enable_coverage="yes" | ||
11349 | else | ||
11350 | _efl_enable_coverage="no" | ||
11351 | fi | ||
11352 | |||
11353 | else | ||
11354 | _efl_enable_coverage="no" | ||
11355 | fi | ||
11356 | |||
11357 | |||
11358 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use profiling instrumentation" >&5 | ||
11359 | $as_echo_n "checking whether to use profiling instrumentation... " >&6; } | ||
11360 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_efl_enable_coverage" >&5 | ||
11361 | $as_echo "$_efl_enable_coverage" >&6; } | ||
11362 | |||
11363 | |||
11364 | if test "x$_efl_enable_coverage" = "xyes" && test ! "x${enable_tests}" = "xyes" ; then | ||
11365 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Coverage report requested but tests not being built, disable profiling instrumentation." >&5 | ||
11366 | $as_echo "$as_me: WARNING: Coverage report requested but tests not being built, disable profiling instrumentation." >&2;} | ||
11367 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Run configure with --enable-tests" >&5 | ||
11368 | $as_echo "$as_me: WARNING: Run configure with --enable-tests" >&2;} | ||
11369 | _efl_enable_coverage="no" | ||
11370 | fi | ||
11371 | |||
11372 | if test "x$_efl_enable_coverage" = "xyes" ; then | ||
11373 | # Extract the first word of "lcov", so it can be a program name with args. | ||
11374 | set dummy lcov; ac_word=$2 | ||
11375 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
11376 | $as_echo_n "checking for $ac_word... " >&6; } | ||
11377 | if test "${ac_cv_prog_have_lcov+set}" = set; then : | ||
11378 | $as_echo_n "(cached) " >&6 | ||
11379 | else | ||
11380 | if test -n "$have_lcov"; then | ||
11381 | ac_cv_prog_have_lcov="$have_lcov" # Let the user override the test. | ||
11382 | else | ||
11383 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
11384 | for as_dir in $PATH | ||
11385 | do | ||
11386 | IFS=$as_save_IFS | ||
11387 | test -z "$as_dir" && as_dir=. | ||
11388 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
11389 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
11390 | ac_cv_prog_have_lcov="yes" | ||
11391 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
11392 | break 2 | ||
11393 | fi | ||
11394 | done | ||
11395 | done | ||
11396 | IFS=$as_save_IFS | ||
11397 | |||
11398 | test -z "$ac_cv_prog_have_lcov" && ac_cv_prog_have_lcov="no" | ||
11399 | fi | ||
11400 | fi | ||
11401 | have_lcov=$ac_cv_prog_have_lcov | ||
11402 | if test -n "$have_lcov"; then | ||
11403 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_lcov" >&5 | ||
11404 | $as_echo "$have_lcov" >&6; } | ||
11405 | else | ||
11406 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
11407 | $as_echo "no" >&6; } | ||
11408 | fi | ||
11409 | |||
11410 | |||
11411 | if test "x$have_lcov" = "xyes" ; then | ||
11412 | EFL_COVERAGE_CFLAGS="-fprofile-arcs -ftest-coverage" | ||
11413 | EFL_COVERAGE_LIBS="-lgcov" | ||
11414 | # remove any optimisation flag and force debug symbols | ||
11415 | EFL_DEBUG_CFLAGS="-g -O0 -DDEBUG" | ||
11416 | else | ||
11417 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: lcov is not found, disable profiling instrumentation" >&5 | ||
11418 | $as_echo "$as_me: WARNING: lcov is not found, disable profiling instrumentation" >&2;} | ||
11419 | _efl_enable_coverage="no" | ||
11420 | fi | ||
11421 | fi | ||
11422 | |||
11423 | |||
11424 | |||
11425 | |||
11426 | if test "x${_efl_enable_coverage}" = "xyes"; then | ||
11427 | EFL_ENABLE_COVERAGE_TRUE= | ||
11428 | EFL_ENABLE_COVERAGE_FALSE='#' | ||
11429 | else | ||
11430 | EFL_ENABLE_COVERAGE_TRUE='#' | ||
11431 | EFL_ENABLE_COVERAGE_FALSE= | ||
11432 | fi | ||
11433 | |||
11434 | |||
11435 | if test "x$_efl_enable_coverage" = "xyes"; then : | ||
11436 | enable_coverage="yes" | ||
11437 | else | ||
11438 | enable_coverage="no" | ||
11439 | fi | ||
11440 | |||
11441 | |||
11442 | if test "x${prefer_assert}" = "xno"; then | ||
11443 | DEBUG_CFLAGS="-DNDEBUG" | ||
11444 | else | ||
11445 | # use debug symbols and set DEBUG if coverage support is enabled | ||
11446 | DEBUG_CFLAGS="${EFL_DEBUG_CFLAGS}" | ||
11447 | fi | ||
11448 | |||
11449 | |||
11450 | |||
11451 | ### Checks for programs | ||
11452 | ac_ext=c | ||
11453 | ac_cpp='$CPP $CPPFLAGS' | ||
11454 | ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' | ||
11455 | ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | ||
11456 | ac_compiler_gnu=$ac_cv_c_compiler_gnu | ||
11457 | if test -n "$ac_tool_prefix"; then | ||
11458 | # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. | ||
11459 | set dummy ${ac_tool_prefix}gcc; ac_word=$2 | ||
11460 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
11461 | $as_echo_n "checking for $ac_word... " >&6; } | ||
11462 | if test "${ac_cv_prog_CC+set}" = set; then : | ||
11463 | $as_echo_n "(cached) " >&6 | ||
11464 | else | ||
11465 | if test -n "$CC"; then | ||
11466 | ac_cv_prog_CC="$CC" # Let the user override the test. | ||
11467 | else | ||
11468 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
11469 | for as_dir in $PATH | ||
11470 | do | ||
11471 | IFS=$as_save_IFS | ||
11472 | test -z "$as_dir" && as_dir=. | ||
11473 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
11474 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
11475 | ac_cv_prog_CC="${ac_tool_prefix}gcc" | ||
11476 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
11477 | break 2 | ||
11478 | fi | ||
11479 | done | ||
11480 | done | ||
11481 | IFS=$as_save_IFS | ||
11482 | |||
11483 | fi | ||
11484 | fi | ||
11485 | CC=$ac_cv_prog_CC | ||
11486 | if test -n "$CC"; then | ||
11487 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 | ||
11488 | $as_echo "$CC" >&6; } | ||
11489 | else | ||
11490 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
11491 | $as_echo "no" >&6; } | ||
11492 | fi | ||
11493 | |||
11494 | |||
11495 | fi | ||
11496 | if test -z "$ac_cv_prog_CC"; then | ||
11497 | ac_ct_CC=$CC | ||
11498 | # Extract the first word of "gcc", so it can be a program name with args. | ||
11499 | set dummy gcc; ac_word=$2 | ||
11500 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
11501 | $as_echo_n "checking for $ac_word... " >&6; } | ||
11502 | if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : | ||
11503 | $as_echo_n "(cached) " >&6 | ||
11504 | else | ||
11505 | if test -n "$ac_ct_CC"; then | ||
11506 | ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. | ||
11507 | else | ||
11508 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
11509 | for as_dir in $PATH | ||
11510 | do | ||
11511 | IFS=$as_save_IFS | ||
11512 | test -z "$as_dir" && as_dir=. | ||
11513 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
11514 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
11515 | ac_cv_prog_ac_ct_CC="gcc" | ||
11516 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
11517 | break 2 | ||
11518 | fi | ||
11519 | done | ||
11520 | done | ||
11521 | IFS=$as_save_IFS | ||
11522 | |||
11523 | fi | ||
11524 | fi | ||
11525 | ac_ct_CC=$ac_cv_prog_ac_ct_CC | ||
11526 | if test -n "$ac_ct_CC"; then | ||
11527 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 | ||
11528 | $as_echo "$ac_ct_CC" >&6; } | ||
11529 | else | ||
11530 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
11531 | $as_echo "no" >&6; } | ||
11532 | fi | ||
11533 | |||
11534 | if test "x$ac_ct_CC" = x; then | ||
11535 | CC="" | ||
11536 | else | ||
11537 | case $cross_compiling:$ac_tool_warned in | ||
11538 | yes:) | ||
11539 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | ||
11540 | $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | ||
11541 | ac_tool_warned=yes ;; | ||
11542 | esac | ||
11543 | CC=$ac_ct_CC | ||
11544 | fi | ||
11545 | else | ||
11546 | CC="$ac_cv_prog_CC" | ||
11547 | fi | ||
11548 | |||
11549 | if test -z "$CC"; then | ||
11550 | if test -n "$ac_tool_prefix"; then | ||
11551 | # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. | ||
11552 | set dummy ${ac_tool_prefix}cc; ac_word=$2 | ||
11553 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
11554 | $as_echo_n "checking for $ac_word... " >&6; } | ||
11555 | if test "${ac_cv_prog_CC+set}" = set; then : | ||
11556 | $as_echo_n "(cached) " >&6 | ||
11557 | else | ||
11558 | if test -n "$CC"; then | ||
11559 | ac_cv_prog_CC="$CC" # Let the user override the test. | ||
11560 | else | ||
11561 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
11562 | for as_dir in $PATH | ||
11563 | do | ||
11564 | IFS=$as_save_IFS | ||
11565 | test -z "$as_dir" && as_dir=. | ||
11566 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
11567 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
11568 | ac_cv_prog_CC="${ac_tool_prefix}cc" | ||
11569 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
11570 | break 2 | ||
11571 | fi | ||
11572 | done | ||
11573 | done | ||
11574 | IFS=$as_save_IFS | ||
11575 | |||
11576 | fi | ||
11577 | fi | ||
11578 | CC=$ac_cv_prog_CC | ||
11579 | if test -n "$CC"; then | ||
11580 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 | ||
11581 | $as_echo "$CC" >&6; } | ||
11582 | else | ||
11583 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
11584 | $as_echo "no" >&6; } | ||
11585 | fi | ||
11586 | |||
11587 | |||
11588 | fi | ||
11589 | fi | ||
11590 | if test -z "$CC"; then | ||
11591 | # Extract the first word of "cc", so it can be a program name with args. | ||
11592 | set dummy cc; ac_word=$2 | ||
11593 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
11594 | $as_echo_n "checking for $ac_word... " >&6; } | ||
11595 | if test "${ac_cv_prog_CC+set}" = set; then : | ||
11596 | $as_echo_n "(cached) " >&6 | ||
11597 | else | ||
11598 | if test -n "$CC"; then | ||
11599 | ac_cv_prog_CC="$CC" # Let the user override the test. | ||
11600 | else | ||
11601 | ac_prog_rejected=no | ||
11602 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
11603 | for as_dir in $PATH | ||
11604 | do | ||
11605 | IFS=$as_save_IFS | ||
11606 | test -z "$as_dir" && as_dir=. | ||
11607 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
11608 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
11609 | if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then | ||
11610 | ac_prog_rejected=yes | ||
11611 | continue | ||
11612 | fi | ||
11613 | ac_cv_prog_CC="cc" | ||
11614 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
11615 | break 2 | ||
11616 | fi | ||
11617 | done | ||
11618 | done | ||
11619 | IFS=$as_save_IFS | ||
11620 | |||
11621 | if test $ac_prog_rejected = yes; then | ||
11622 | # We found a bogon in the path, so make sure we never use it. | ||
11623 | set dummy $ac_cv_prog_CC | ||
11624 | shift | ||
11625 | if test $# != 0; then | ||
11626 | # We chose a different compiler from the bogus one. | ||
11627 | # However, it has the same basename, so the bogon will be chosen | ||
11628 | # first if we set CC to just the basename; use the full file name. | ||
11629 | shift | ||
11630 | ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" | ||
11631 | fi | ||
11632 | fi | ||
11633 | fi | ||
11634 | fi | ||
11635 | CC=$ac_cv_prog_CC | ||
11636 | if test -n "$CC"; then | ||
11637 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 | ||
11638 | $as_echo "$CC" >&6; } | ||
11639 | else | ||
11640 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
11641 | $as_echo "no" >&6; } | ||
11642 | fi | ||
11643 | |||
11644 | |||
11645 | fi | ||
11646 | if test -z "$CC"; then | ||
11647 | if test -n "$ac_tool_prefix"; then | ||
11648 | for ac_prog in cl.exe | ||
11649 | do | ||
11650 | # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. | ||
11651 | set dummy $ac_tool_prefix$ac_prog; ac_word=$2 | ||
11652 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
11653 | $as_echo_n "checking for $ac_word... " >&6; } | ||
11654 | if test "${ac_cv_prog_CC+set}" = set; then : | ||
11655 | $as_echo_n "(cached) " >&6 | ||
11656 | else | ||
11657 | if test -n "$CC"; then | ||
11658 | ac_cv_prog_CC="$CC" # Let the user override the test. | ||
11659 | else | ||
11660 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
11661 | for as_dir in $PATH | ||
11662 | do | ||
11663 | IFS=$as_save_IFS | ||
11664 | test -z "$as_dir" && as_dir=. | ||
11665 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
11666 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
11667 | ac_cv_prog_CC="$ac_tool_prefix$ac_prog" | ||
11668 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
11669 | break 2 | ||
11670 | fi | ||
11671 | done | ||
11672 | done | ||
11673 | IFS=$as_save_IFS | ||
11674 | |||
11675 | fi | ||
11676 | fi | ||
11677 | CC=$ac_cv_prog_CC | ||
11678 | if test -n "$CC"; then | ||
11679 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 | ||
11680 | $as_echo "$CC" >&6; } | ||
11681 | else | ||
11682 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
11683 | $as_echo "no" >&6; } | ||
11684 | fi | ||
11685 | |||
11686 | |||
11687 | test -n "$CC" && break | ||
11688 | done | ||
11689 | fi | ||
11690 | if test -z "$CC"; then | ||
11691 | ac_ct_CC=$CC | ||
11692 | for ac_prog in cl.exe | ||
11693 | do | ||
11694 | # Extract the first word of "$ac_prog", so it can be a program name with args. | ||
11695 | set dummy $ac_prog; ac_word=$2 | ||
11696 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
11697 | $as_echo_n "checking for $ac_word... " >&6; } | ||
11698 | if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : | ||
11699 | $as_echo_n "(cached) " >&6 | ||
11700 | else | ||
11701 | if test -n "$ac_ct_CC"; then | ||
11702 | ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. | ||
11703 | else | ||
11704 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
11705 | for as_dir in $PATH | ||
11706 | do | ||
11707 | IFS=$as_save_IFS | ||
11708 | test -z "$as_dir" && as_dir=. | ||
11709 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
11710 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
11711 | ac_cv_prog_ac_ct_CC="$ac_prog" | ||
11712 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
11713 | break 2 | ||
11714 | fi | ||
11715 | done | ||
11716 | done | ||
11717 | IFS=$as_save_IFS | ||
11718 | |||
11719 | fi | ||
11720 | fi | ||
11721 | ac_ct_CC=$ac_cv_prog_ac_ct_CC | ||
11722 | if test -n "$ac_ct_CC"; then | ||
11723 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 | ||
11724 | $as_echo "$ac_ct_CC" >&6; } | ||
11725 | else | ||
11726 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
11727 | $as_echo "no" >&6; } | ||
11728 | fi | ||
11729 | |||
11730 | |||
11731 | test -n "$ac_ct_CC" && break | ||
11732 | done | ||
11733 | |||
11734 | if test "x$ac_ct_CC" = x; then | ||
11735 | CC="" | ||
11736 | else | ||
11737 | case $cross_compiling:$ac_tool_warned in | ||
11738 | yes:) | ||
11739 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | ||
11740 | $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | ||
11741 | ac_tool_warned=yes ;; | ||
11742 | esac | ||
11743 | CC=$ac_ct_CC | ||
11744 | fi | ||
11745 | fi | ||
11746 | |||
11747 | fi | ||
11748 | |||
11749 | |||
11750 | test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 | ||
11751 | $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} | ||
11752 | as_fn_error $? "no acceptable C compiler found in \$PATH | ||
11753 | See \`config.log' for more details" "$LINENO" 5 ; } | ||
11754 | |||
11755 | # Provide some information about the compiler. | ||
11756 | $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 | ||
11757 | set X $ac_compile | ||
11758 | ac_compiler=$2 | ||
11759 | for ac_option in --version -v -V -qversion; do | ||
11760 | { { ac_try="$ac_compiler $ac_option >&5" | ||
11761 | case "(($ac_try" in | ||
11762 | *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | ||
11763 | *) ac_try_echo=$ac_try;; | ||
11764 | esac | ||
11765 | eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" | ||
11766 | $as_echo "$ac_try_echo"; } >&5 | ||
11767 | (eval "$ac_compiler $ac_option >&5") 2>conftest.err | ||
11768 | ac_status=$? | ||
11769 | if test -s conftest.err; then | ||
11770 | sed '10a\ | ||
11771 | ... rest of stderr output deleted ... | ||
11772 | 10q' conftest.err >conftest.er1 | ||
11773 | cat conftest.er1 >&5 | ||
11774 | fi | ||
11775 | rm -f conftest.er1 conftest.err | ||
11776 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
11777 | test $ac_status = 0; } | ||
11778 | done | ||
11779 | |||
11780 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 | ||
11781 | $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } | ||
11782 | if test "${ac_cv_c_compiler_gnu+set}" = set; then : | ||
11783 | $as_echo_n "(cached) " >&6 | ||
11784 | else | ||
11785 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
11786 | /* end confdefs.h. */ | ||
11787 | |||
11788 | int | ||
11789 | main () | ||
11790 | { | ||
11791 | #ifndef __GNUC__ | ||
11792 | choke me | ||
11793 | #endif | ||
11794 | |||
11795 | ; | ||
11796 | return 0; | ||
11797 | } | ||
11798 | _ACEOF | ||
11799 | if ac_fn_c_try_compile "$LINENO"; then : | ||
11800 | ac_compiler_gnu=yes | ||
11801 | else | ||
11802 | ac_compiler_gnu=no | ||
11803 | fi | ||
11804 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
11805 | ac_cv_c_compiler_gnu=$ac_compiler_gnu | ||
11806 | |||
11807 | fi | ||
11808 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 | ||
11809 | $as_echo "$ac_cv_c_compiler_gnu" >&6; } | ||
11810 | if test $ac_compiler_gnu = yes; then | ||
11811 | GCC=yes | ||
11812 | else | ||
11813 | GCC= | ||
11814 | fi | ||
11815 | ac_test_CFLAGS=${CFLAGS+set} | ||
11816 | ac_save_CFLAGS=$CFLAGS | ||
11817 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 | ||
11818 | $as_echo_n "checking whether $CC accepts -g... " >&6; } | ||
11819 | if test "${ac_cv_prog_cc_g+set}" = set; then : | ||
11820 | $as_echo_n "(cached) " >&6 | ||
11821 | else | ||
11822 | ac_save_c_werror_flag=$ac_c_werror_flag | ||
11823 | ac_c_werror_flag=yes | ||
11824 | ac_cv_prog_cc_g=no | ||
11825 | CFLAGS="-g" | ||
11826 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
11827 | /* end confdefs.h. */ | ||
11828 | |||
11829 | int | ||
11830 | main () | ||
11831 | { | ||
11832 | |||
11833 | ; | ||
11834 | return 0; | ||
11835 | } | ||
11836 | _ACEOF | ||
11837 | if ac_fn_c_try_compile "$LINENO"; then : | ||
11838 | ac_cv_prog_cc_g=yes | ||
11839 | else | ||
11840 | CFLAGS="" | ||
11841 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
11842 | /* end confdefs.h. */ | ||
11843 | |||
11844 | int | ||
11845 | main () | ||
11846 | { | ||
11847 | |||
11848 | ; | ||
11849 | return 0; | ||
11850 | } | ||
11851 | _ACEOF | ||
11852 | if ac_fn_c_try_compile "$LINENO"; then : | ||
11853 | |||
11854 | else | ||
11855 | ac_c_werror_flag=$ac_save_c_werror_flag | ||
11856 | CFLAGS="-g" | ||
11857 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
11858 | /* end confdefs.h. */ | ||
11859 | |||
11860 | int | ||
11861 | main () | ||
11862 | { | ||
11863 | |||
11864 | ; | ||
11865 | return 0; | ||
11866 | } | ||
11867 | _ACEOF | ||
11868 | if ac_fn_c_try_compile "$LINENO"; then : | ||
11869 | ac_cv_prog_cc_g=yes | ||
11870 | fi | ||
11871 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
11872 | fi | ||
11873 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
11874 | fi | ||
11875 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
11876 | ac_c_werror_flag=$ac_save_c_werror_flag | ||
11877 | fi | ||
11878 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 | ||
11879 | $as_echo "$ac_cv_prog_cc_g" >&6; } | ||
11880 | if test "$ac_test_CFLAGS" = set; then | ||
11881 | CFLAGS=$ac_save_CFLAGS | ||
11882 | elif test $ac_cv_prog_cc_g = yes; then | ||
11883 | if test "$GCC" = yes; then | ||
11884 | CFLAGS="-g -O2" | ||
11885 | else | ||
11886 | CFLAGS="-g" | ||
11887 | fi | ||
11888 | else | ||
11889 | if test "$GCC" = yes; then | ||
11890 | CFLAGS="-O2" | ||
11891 | else | ||
11892 | CFLAGS= | ||
11893 | fi | ||
11894 | fi | ||
11895 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 | ||
11896 | $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } | ||
11897 | if test "${ac_cv_prog_cc_c89+set}" = set; then : | ||
11898 | $as_echo_n "(cached) " >&6 | ||
11899 | else | ||
11900 | ac_cv_prog_cc_c89=no | ||
11901 | ac_save_CC=$CC | ||
11902 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
11903 | /* end confdefs.h. */ | ||
11904 | #include <stdarg.h> | ||
11905 | #include <stdio.h> | ||
11906 | #include <sys/types.h> | ||
11907 | #include <sys/stat.h> | ||
11908 | /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ | ||
11909 | struct buf { int x; }; | ||
11910 | FILE * (*rcsopen) (struct buf *, struct stat *, int); | ||
11911 | static char *e (p, i) | ||
11912 | char **p; | ||
11913 | int i; | ||
11914 | { | ||
11915 | return p[i]; | ||
11916 | } | ||
11917 | static char *f (char * (*g) (char **, int), char **p, ...) | ||
11918 | { | ||
11919 | char *s; | ||
11920 | va_list v; | ||
11921 | va_start (v,p); | ||
11922 | s = g (p, va_arg (v,int)); | ||
11923 | va_end (v); | ||
11924 | return s; | ||
11925 | } | ||
11926 | |||
11927 | /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has | ||
11928 | function prototypes and stuff, but not '\xHH' hex character constants. | ||
11929 | These don't provoke an error unfortunately, instead are silently treated | ||
11930 | as 'x'. The following induces an error, until -std is added to get | ||
11931 | proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an | ||
11932 | array size at least. It's necessary to write '\x00'==0 to get something | ||
11933 | that's true only with -std. */ | ||
11934 | int osf4_cc_array ['\x00' == 0 ? 1 : -1]; | ||
11935 | |||
11936 | /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters | ||
11937 | inside strings and character constants. */ | ||
11938 | #define FOO(x) 'x' | ||
11939 | int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; | ||
11940 | |||
11941 | int test (int i, double x); | ||
11942 | struct s1 {int (*f) (int a);}; | ||
11943 | struct s2 {int (*f) (double a);}; | ||
11944 | int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); | ||
11945 | int argc; | ||
11946 | char **argv; | ||
11947 | int | ||
11948 | main () | ||
11949 | { | ||
11950 | return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; | ||
11951 | ; | ||
11952 | return 0; | ||
11953 | } | ||
11954 | _ACEOF | ||
11955 | for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ | ||
11956 | -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" | ||
11957 | do | ||
11958 | CC="$ac_save_CC $ac_arg" | ||
11959 | if ac_fn_c_try_compile "$LINENO"; then : | ||
11960 | ac_cv_prog_cc_c89=$ac_arg | ||
11961 | fi | ||
11962 | rm -f core conftest.err conftest.$ac_objext | ||
11963 | test "x$ac_cv_prog_cc_c89" != "xno" && break | ||
11964 | done | ||
11965 | rm -f conftest.$ac_ext | ||
11966 | CC=$ac_save_CC | ||
11967 | |||
11968 | fi | ||
11969 | # AC_CACHE_VAL | ||
11970 | case "x$ac_cv_prog_cc_c89" in | ||
11971 | x) | ||
11972 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 | ||
11973 | $as_echo "none needed" >&6; } ;; | ||
11974 | xno) | ||
11975 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 | ||
11976 | $as_echo "unsupported" >&6; } ;; | ||
11977 | *) | ||
11978 | CC="$CC $ac_cv_prog_cc_c89" | ||
11979 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 | ||
11980 | $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; | ||
11981 | esac | ||
11982 | if test "x$ac_cv_prog_cc_c89" != xno; then : | ||
11983 | |||
11984 | fi | ||
11985 | |||
11986 | ac_ext=c | ||
11987 | ac_cpp='$CPP $CPPFLAGS' | ||
11988 | ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' | ||
11989 | ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | ||
11990 | ac_compiler_gnu=$ac_cv_c_compiler_gnu | ||
11991 | |||
11992 | depcc="$CC" am_compiler_list= | ||
11993 | |||
11994 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 | ||
11995 | $as_echo_n "checking dependency style of $depcc... " >&6; } | ||
11996 | if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : | ||
11997 | $as_echo_n "(cached) " >&6 | ||
11998 | else | ||
11999 | if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then | ||
12000 | # We make a subdir and do the tests there. Otherwise we can end up | ||
12001 | # making bogus files that we don't know about and never remove. For | ||
12002 | # instance it was reported that on HP-UX the gcc test will end up | ||
12003 | # making a dummy file named `D' -- because `-MD' means `put the output | ||
12004 | # in D'. | ||
12005 | mkdir conftest.dir | ||
12006 | # Copy depcomp to subdir because otherwise we won't find it if we're | ||
12007 | # using a relative directory. | ||
12008 | cp "$am_depcomp" conftest.dir | ||
12009 | cd conftest.dir | ||
12010 | # We will build objects and dependencies in a subdirectory because | ||
12011 | # it helps to detect inapplicable dependency modes. For instance | ||
12012 | # both Tru64's cc and ICC support -MD to output dependencies as a | ||
12013 | # side effect of compilation, but ICC will put the dependencies in | ||
12014 | # the current directory while Tru64 will put them in the object | ||
12015 | # directory. | ||
12016 | mkdir sub | ||
12017 | |||
12018 | am_cv_CC_dependencies_compiler_type=none | ||
12019 | if test "$am_compiler_list" = ""; then | ||
12020 | am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` | ||
12021 | fi | ||
12022 | am__universal=false | ||
12023 | case " $depcc " in #( | ||
12024 | *\ -arch\ *\ -arch\ *) am__universal=true ;; | ||
12025 | esac | ||
12026 | |||
12027 | for depmode in $am_compiler_list; do | ||
12028 | # Setup a source with many dependencies, because some compilers | ||
12029 | # like to wrap large dependency lists on column 80 (with \), and | ||
12030 | # we should not choose a depcomp mode which is confused by this. | ||
12031 | # | ||
12032 | # We need to recreate these files for each test, as the compiler may | ||
12033 | # overwrite some of them when testing with obscure command lines. | ||
12034 | # This happens at least with the AIX C compiler. | ||
12035 | : > sub/conftest.c | ||
12036 | for i in 1 2 3 4 5 6; do | ||
12037 | echo '#include "conftst'$i'.h"' >> sub/conftest.c | ||
12038 | # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with | ||
12039 | # Solaris 8's {/usr,}/bin/sh. | ||
12040 | touch sub/conftst$i.h | ||
12041 | done | ||
12042 | echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf | ||
12043 | |||
12044 | # We check with `-c' and `-o' for the sake of the "dashmstdout" | ||
12045 | # mode. It turns out that the SunPro C++ compiler does not properly | ||
12046 | # handle `-M -o', and we need to detect this. Also, some Intel | ||
12047 | # versions had trouble with output in subdirs | ||
12048 | am__obj=sub/conftest.${OBJEXT-o} | ||
12049 | am__minus_obj="-o $am__obj" | ||
12050 | case $depmode in | ||
12051 | gcc) | ||
12052 | # This depmode causes a compiler race in universal mode. | ||
12053 | test "$am__universal" = false || continue | ||
12054 | ;; | ||
12055 | nosideeffect) | ||
12056 | # after this tag, mechanisms are not by side-effect, so they'll | ||
12057 | # only be used when explicitly requested | ||
12058 | if test "x$enable_dependency_tracking" = xyes; then | ||
12059 | continue | ||
12060 | else | ||
12061 | break | ||
12062 | fi | ||
12063 | ;; | ||
12064 | msvisualcpp | msvcmsys) | ||
12065 | # This compiler won't grok `-c -o', but also, the minuso test has | ||
12066 | # not run yet. These depmodes are late enough in the game, and | ||
12067 | # so weak that their functioning should not be impacted. | ||
12068 | am__obj=conftest.${OBJEXT-o} | ||
12069 | am__minus_obj= | ||
12070 | ;; | ||
12071 | none) break ;; | ||
12072 | esac | ||
12073 | if depmode=$depmode \ | ||
12074 | source=sub/conftest.c object=$am__obj \ | ||
12075 | depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ | ||
12076 | $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ | ||
12077 | >/dev/null 2>conftest.err && | ||
12078 | grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && | ||
12079 | grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && | ||
12080 | grep $am__obj sub/conftest.Po > /dev/null 2>&1 && | ||
12081 | ${MAKE-make} -s -f confmf > /dev/null 2>&1; then | ||
12082 | # icc doesn't choke on unknown options, it will just issue warnings | ||
12083 | # or remarks (even with -Werror). So we grep stderr for any message | ||
12084 | # that says an option was ignored or not supported. | ||
12085 | # When given -MP, icc 7.0 and 7.1 complain thusly: | ||
12086 | # icc: Command line warning: ignoring option '-M'; no argument required | ||
12087 | # The diagnosis changed in icc 8.0: | ||
12088 | # icc: Command line remark: option '-MP' not supported | ||
12089 | if (grep 'ignoring option' conftest.err || | ||
12090 | grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else | ||
12091 | am_cv_CC_dependencies_compiler_type=$depmode | ||
12092 | break | ||
12093 | fi | ||
12094 | fi | ||
12095 | done | ||
12096 | |||
12097 | cd .. | ||
12098 | rm -rf conftest.dir | ||
12099 | else | ||
12100 | am_cv_CC_dependencies_compiler_type=none | ||
12101 | fi | ||
12102 | |||
12103 | fi | ||
12104 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 | ||
12105 | $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } | ||
12106 | CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type | ||
12107 | |||
12108 | if | ||
12109 | test "x$enable_dependency_tracking" != xno \ | ||
12110 | && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then | ||
12111 | am__fastdepCC_TRUE= | ||
12112 | am__fastdepCC_FALSE='#' | ||
12113 | else | ||
12114 | am__fastdepCC_TRUE='#' | ||
12115 | am__fastdepCC_FALSE= | ||
12116 | fi | ||
12117 | |||
12118 | |||
12119 | |||
12120 | # pkg-config | ||
12121 | |||
12122 | |||
12123 | |||
12124 | |||
12125 | |||
12126 | |||
12127 | if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then | ||
12128 | if test -n "$ac_tool_prefix"; then | ||
12129 | # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. | ||
12130 | set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 | ||
12131 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
12132 | $as_echo_n "checking for $ac_word... " >&6; } | ||
12133 | if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : | ||
12134 | $as_echo_n "(cached) " >&6 | ||
12135 | else | ||
12136 | case $PKG_CONFIG in | ||
12137 | [\\/]* | ?:[\\/]*) | ||
12138 | ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. | ||
12139 | ;; | ||
12140 | *) | ||
12141 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
12142 | for as_dir in $PATH | ||
12143 | do | ||
12144 | IFS=$as_save_IFS | ||
12145 | test -z "$as_dir" && as_dir=. | ||
12146 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
12147 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
12148 | ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" | ||
12149 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
12150 | break 2 | ||
12151 | fi | ||
12152 | done | ||
12153 | done | ||
12154 | IFS=$as_save_IFS | ||
12155 | |||
12156 | ;; | ||
12157 | esac | ||
12158 | fi | ||
12159 | PKG_CONFIG=$ac_cv_path_PKG_CONFIG | ||
12160 | if test -n "$PKG_CONFIG"; then | ||
12161 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 | ||
12162 | $as_echo "$PKG_CONFIG" >&6; } | ||
12163 | else | ||
12164 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
12165 | $as_echo "no" >&6; } | ||
12166 | fi | ||
12167 | |||
12168 | |||
12169 | fi | ||
12170 | if test -z "$ac_cv_path_PKG_CONFIG"; then | ||
12171 | ac_pt_PKG_CONFIG=$PKG_CONFIG | ||
12172 | # Extract the first word of "pkg-config", so it can be a program name with args. | ||
12173 | set dummy pkg-config; ac_word=$2 | ||
12174 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
12175 | $as_echo_n "checking for $ac_word... " >&6; } | ||
12176 | if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : | ||
12177 | $as_echo_n "(cached) " >&6 | ||
12178 | else | ||
12179 | case $ac_pt_PKG_CONFIG in | ||
12180 | [\\/]* | ?:[\\/]*) | ||
12181 | ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. | ||
12182 | ;; | ||
12183 | *) | ||
12184 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
12185 | for as_dir in $PATH | ||
12186 | do | ||
12187 | IFS=$as_save_IFS | ||
12188 | test -z "$as_dir" && as_dir=. | ||
12189 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
12190 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
12191 | ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" | ||
12192 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
12193 | break 2 | ||
12194 | fi | ||
12195 | done | ||
12196 | done | ||
12197 | IFS=$as_save_IFS | ||
12198 | |||
12199 | ;; | ||
12200 | esac | ||
12201 | fi | ||
12202 | ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG | ||
12203 | if test -n "$ac_pt_PKG_CONFIG"; then | ||
12204 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 | ||
12205 | $as_echo "$ac_pt_PKG_CONFIG" >&6; } | ||
12206 | else | ||
12207 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
12208 | $as_echo "no" >&6; } | ||
12209 | fi | ||
12210 | |||
12211 | if test "x$ac_pt_PKG_CONFIG" = x; then | ||
12212 | PKG_CONFIG="" | ||
12213 | else | ||
12214 | case $cross_compiling:$ac_tool_warned in | ||
12215 | yes:) | ||
12216 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 | ||
12217 | $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} | ||
12218 | ac_tool_warned=yes ;; | ||
12219 | esac | ||
12220 | PKG_CONFIG=$ac_pt_PKG_CONFIG | ||
12221 | fi | ||
12222 | else | ||
12223 | PKG_CONFIG="$ac_cv_path_PKG_CONFIG" | ||
12224 | fi | ||
12225 | |||
12226 | fi | ||
12227 | if test -n "$PKG_CONFIG"; then | ||
12228 | _pkg_min_version=0.9.0 | ||
12229 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 | ||
12230 | $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } | ||
12231 | if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then | ||
12232 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
12233 | $as_echo "yes" >&6; } | ||
12234 | else | ||
12235 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
12236 | $as_echo "no" >&6; } | ||
12237 | PKG_CONFIG="" | ||
12238 | fi | ||
12239 | fi | ||
12240 | |||
12241 | # Check whether pkg-config supports Requires.private | ||
12242 | if $PKG_CONFIG --atleast-pkgconfig-version 0.22; then | ||
12243 | pkgconfig_requires_private="Requires.private" | ||
12244 | else | ||
12245 | pkgconfig_requires_private="Requires" | ||
12246 | fi | ||
12247 | |||
12248 | |||
12249 | |||
12250 | # doxygen program for documentation building | ||
12251 | |||
12252 | |||
12253 | |||
12254 | # Check whether --enable-doc was given. | ||
12255 | if test "${enable_doc+set}" = set; then : | ||
12256 | enableval=$enable_doc; | ||
12257 | if test "x${enableval}" = "xyes" ; then | ||
12258 | efl_enable_doc="yes" | ||
12259 | else | ||
12260 | efl_enable_doc="no" | ||
12261 | fi | ||
12262 | |||
12263 | else | ||
12264 | efl_enable_doc="yes" | ||
12265 | fi | ||
12266 | |||
12267 | |||
12268 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build documentation" >&5 | ||
12269 | $as_echo_n "checking whether to build documentation... " >&6; } | ||
12270 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${efl_enable_doc}" >&5 | ||
12271 | $as_echo "${efl_enable_doc}" >&6; } | ||
12272 | |||
12273 | if test "x${efl_enable_doc}" = "xyes" ; then | ||
12274 | |||
12275 | |||
12276 | efl_doxygen="doxygen" | ||
12277 | |||
12278 | |||
12279 | # Check whether --with-doxygen was given. | ||
12280 | if test "${with_doxygen+set}" = set; then : | ||
12281 | withval=$with_doxygen; | ||
12282 | efl_doxygen=${withval} | ||
12283 | # Extract the first word of "${efl_doxygen}", so it can be a program name with args. | ||
12284 | set dummy ${efl_doxygen}; ac_word=$2 | ||
12285 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
12286 | $as_echo_n "checking for $ac_word... " >&6; } | ||
12287 | if test "${ac_cv_prog_efl_have_doxygen+set}" = set; then : | ||
12288 | $as_echo_n "(cached) " >&6 | ||
12289 | else | ||
12290 | if test -n "$efl_have_doxygen"; then | ||
12291 | ac_cv_prog_efl_have_doxygen="$efl_have_doxygen" # Let the user override the test. | ||
12292 | else | ||
12293 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
12294 | for as_dir in $PATH | ||
12295 | do | ||
12296 | IFS=$as_save_IFS | ||
12297 | test -z "$as_dir" && as_dir=. | ||
12298 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
12299 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
12300 | ac_cv_prog_efl_have_doxygen="yes" | ||
12301 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
12302 | break 2 | ||
12303 | fi | ||
12304 | done | ||
12305 | done | ||
12306 | IFS=$as_save_IFS | ||
12307 | |||
12308 | test -z "$ac_cv_prog_efl_have_doxygen" && ac_cv_prog_efl_have_doxygen="no" | ||
12309 | fi | ||
12310 | fi | ||
12311 | efl_have_doxygen=$ac_cv_prog_efl_have_doxygen | ||
12312 | if test -n "$efl_have_doxygen"; then | ||
12313 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $efl_have_doxygen" >&5 | ||
12314 | $as_echo "$efl_have_doxygen" >&6; } | ||
12315 | else | ||
12316 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
12317 | $as_echo "no" >&6; } | ||
12318 | fi | ||
12319 | |||
12320 | |||
12321 | if test "x${efl_have_doxygen}" = "xno" ; then | ||
12322 | echo "WARNING:" | ||
12323 | echo "The doxygen program you specified:" | ||
12324 | echo "${efl_doxygen}" | ||
12325 | echo "was not found. Please check the path and make sure " | ||
12326 | echo "the program exists and is executable." | ||
12327 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no doxygen detected. Documentation will not be built" >&5 | ||
12328 | $as_echo "$as_me: WARNING: no doxygen detected. Documentation will not be built" >&2;} | ||
12329 | fi | ||
12330 | |||
12331 | else | ||
12332 | # Extract the first word of "${efl_doxygen}", so it can be a program name with args. | ||
12333 | set dummy ${efl_doxygen}; ac_word=$2 | ||
12334 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
12335 | $as_echo_n "checking for $ac_word... " >&6; } | ||
12336 | if test "${ac_cv_prog_efl_have_doxygen+set}" = set; then : | ||
12337 | $as_echo_n "(cached) " >&6 | ||
12338 | else | ||
12339 | if test -n "$efl_have_doxygen"; then | ||
12340 | ac_cv_prog_efl_have_doxygen="$efl_have_doxygen" # Let the user override the test. | ||
12341 | else | ||
12342 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
12343 | for as_dir in $PATH | ||
12344 | do | ||
12345 | IFS=$as_save_IFS | ||
12346 | test -z "$as_dir" && as_dir=. | ||
12347 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
12348 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
12349 | ac_cv_prog_efl_have_doxygen="yes" | ||
12350 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
12351 | break 2 | ||
12352 | fi | ||
12353 | done | ||
12354 | done | ||
12355 | IFS=$as_save_IFS | ||
12356 | |||
12357 | test -z "$ac_cv_prog_efl_have_doxygen" && ac_cv_prog_efl_have_doxygen="no" | ||
12358 | fi | ||
12359 | fi | ||
12360 | efl_have_doxygen=$ac_cv_prog_efl_have_doxygen | ||
12361 | if test -n "$efl_have_doxygen"; then | ||
12362 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $efl_have_doxygen" >&5 | ||
12363 | $as_echo "$efl_have_doxygen" >&6; } | ||
12364 | else | ||
12365 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
12366 | $as_echo "no" >&6; } | ||
12367 | fi | ||
12368 | |||
12369 | |||
12370 | if test "x${efl_have_doxygen}" = "xno" ; then | ||
12371 | echo "WARNING:" | ||
12372 | echo "The doxygen program was not found in your execute path." | ||
12373 | echo "You may have doxygen installed somewhere not covered by your path." | ||
12374 | echo "" | ||
12375 | echo "If this is the case make sure you have the packages installed, AND" | ||
12376 | echo "that the doxygen program is in your execute path (see your" | ||
12377 | echo "shell manual page on setting the \$PATH environment variable), OR" | ||
12378 | echo "alternatively, specify the program to use with --with-doxygen." | ||
12379 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no doxygen detected. Documentation will not be built" >&5 | ||
12380 | $as_echo "$as_me: WARNING: no doxygen detected. Documentation will not be built" >&2;} | ||
12381 | fi | ||
12382 | |||
12383 | fi | ||
12384 | |||
12385 | else | ||
12386 | efl_have_doxygen="no" | ||
12387 | fi | ||
12388 | |||
12389 | |||
12390 | |||
12391 | if ! test "x${efl_have_doxygen}" = "xyes" ; then | ||
12392 | efl_enable_doc="no" | ||
12393 | fi | ||
12394 | |||
12395 | if test "x${efl_have_doxygen}" = "xyes"; then | ||
12396 | EFL_BUILD_DOC_TRUE= | ||
12397 | EFL_BUILD_DOC_FALSE='#' | ||
12398 | else | ||
12399 | EFL_BUILD_DOC_TRUE='#' | ||
12400 | EFL_BUILD_DOC_FALSE= | ||
12401 | fi | ||
12402 | |||
12403 | |||
12404 | if test "x$efl_have_doxygen" = "xyes"; then : | ||
12405 | build_doc="yes" | ||
12406 | else | ||
12407 | build_doc="no" | ||
12408 | fi | ||
12409 | |||
12410 | |||
12411 | ### Checks for libraries | ||
12412 | |||
12413 | # Evil library for compilation on Windows | ||
12414 | |||
12415 | EFL_EET_BUILD="" | ||
12416 | case "$host_os" in | ||
12417 | mingw*) | ||
12418 | |||
12419 | pkg_failed=no | ||
12420 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVIL" >&5 | ||
12421 | $as_echo_n "checking for EVIL... " >&6; } | ||
12422 | |||
12423 | if test -n "$EVIL_CFLAGS"; then | ||
12424 | pkg_cv_EVIL_CFLAGS="$EVIL_CFLAGS" | ||
12425 | elif test -n "$PKG_CONFIG"; then | ||
12426 | if test -n "$PKG_CONFIG" && \ | ||
12427 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5 | ||
12428 | ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5 | ||
12429 | ac_status=$? | ||
12430 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
12431 | test $ac_status = 0; }; then | ||
12432 | pkg_cv_EVIL_CFLAGS=`$PKG_CONFIG --cflags "evil >= 1.0.0" 2>/dev/null` | ||
12433 | else | ||
12434 | pkg_failed=yes | ||
12435 | fi | ||
12436 | else | ||
12437 | pkg_failed=untried | ||
12438 | fi | ||
12439 | if test -n "$EVIL_LIBS"; then | ||
12440 | pkg_cv_EVIL_LIBS="$EVIL_LIBS" | ||
12441 | elif test -n "$PKG_CONFIG"; then | ||
12442 | if test -n "$PKG_CONFIG" && \ | ||
12443 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"evil >= 1.0.0\""; } >&5 | ||
12444 | ($PKG_CONFIG --exists --print-errors "evil >= 1.0.0") 2>&5 | ||
12445 | ac_status=$? | ||
12446 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
12447 | test $ac_status = 0; }; then | ||
12448 | pkg_cv_EVIL_LIBS=`$PKG_CONFIG --libs "evil >= 1.0.0" 2>/dev/null` | ||
12449 | else | ||
12450 | pkg_failed=yes | ||
12451 | fi | ||
12452 | else | ||
12453 | pkg_failed=untried | ||
12454 | fi | ||
12455 | |||
12456 | |||
12457 | |||
12458 | if test $pkg_failed = yes; then | ||
12459 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
12460 | $as_echo "no" >&6; } | ||
12461 | |||
12462 | if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then | ||
12463 | _pkg_short_errors_supported=yes | ||
12464 | else | ||
12465 | _pkg_short_errors_supported=no | ||
12466 | fi | ||
12467 | if test $_pkg_short_errors_supported = yes; then | ||
12468 | EVIL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "evil >= 1.0.0" 2>&1` | ||
12469 | else | ||
12470 | EVIL_PKG_ERRORS=`$PKG_CONFIG --print-errors "evil >= 1.0.0" 2>&1` | ||
12471 | fi | ||
12472 | # Put the nasty error message in config.log where it belongs | ||
12473 | echo "$EVIL_PKG_ERRORS" >&5 | ||
12474 | |||
12475 | as_fn_error $? "Package requirements (evil >= 1.0.0) were not met: | ||
12476 | |||
12477 | $EVIL_PKG_ERRORS | ||
12478 | |||
12479 | Consider adjusting the PKG_CONFIG_PATH environment variable if you | ||
12480 | installed software in a non-standard prefix. | ||
12481 | |||
12482 | Alternatively, you may set the environment variables EVIL_CFLAGS | ||
12483 | and EVIL_LIBS to avoid the need to call pkg-config. | ||
12484 | See the pkg-config man page for more details." "$LINENO" 5 | ||
12485 | elif test $pkg_failed = untried; then | ||
12486 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
12487 | $as_echo "no" >&6; } | ||
12488 | { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 | ||
12489 | $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} | ||
12490 | as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it | ||
12491 | is in your PATH or set the PKG_CONFIG environment variable to the full | ||
12492 | path to pkg-config. | ||
12493 | |||
12494 | Alternatively, you may set the environment variables EVIL_CFLAGS | ||
12495 | and EVIL_LIBS to avoid the need to call pkg-config. | ||
12496 | See the pkg-config man page for more details. | ||
12497 | |||
12498 | To get pkg-config, see <http://pkg-config.freedesktop.org/>. | ||
12499 | See \`config.log' for more details" "$LINENO" 5 ; } | ||
12500 | else | ||
12501 | EVIL_CFLAGS=$pkg_cv_EVIL_CFLAGS | ||
12502 | EVIL_LIBS=$pkg_cv_EVIL_LIBS | ||
12503 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
12504 | $as_echo "yes" >&6; } | ||
12505 | |||
12506 | fi | ||
12507 | |||
12508 | $as_echo "#define HAVE_EVIL 1" >>confdefs.h | ||
12509 | |||
12510 | requirement_eet="evil ${requirement_eet}" | ||
12511 | EFL_EET_BUILD="-DEFL_EET_BUILD" | ||
12512 | ;; | ||
12513 | esac | ||
12514 | |||
12515 | |||
12516 | EET_LIBS="" | ||
12517 | case "$host_os" in | ||
12518 | mingw32ce*) | ||
12519 | EET_LIBS="-lws2" | ||
12520 | ;; | ||
12521 | mingw*) | ||
12522 | EET_LIBS="-lws2_32" | ||
12523 | ;; | ||
12524 | esac | ||
12525 | |||
12526 | |||
12527 | # Eina library | ||
12528 | |||
12529 | |||
12530 | pkg_failed=no | ||
12531 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EINA" >&5 | ||
12532 | $as_echo_n "checking for EINA... " >&6; } | ||
12533 | |||
12534 | if test -n "$EINA_CFLAGS"; then | ||
12535 | pkg_cv_EINA_CFLAGS="$EINA_CFLAGS" | ||
12536 | elif test -n "$PKG_CONFIG"; then | ||
12537 | if test -n "$PKG_CONFIG" && \ | ||
12538 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.2.0\""; } >&5 | ||
12539 | ($PKG_CONFIG --exists --print-errors "eina >= 1.2.0") 2>&5 | ||
12540 | ac_status=$? | ||
12541 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
12542 | test $ac_status = 0; }; then | ||
12543 | pkg_cv_EINA_CFLAGS=`$PKG_CONFIG --cflags "eina >= 1.2.0" 2>/dev/null` | ||
12544 | else | ||
12545 | pkg_failed=yes | ||
12546 | fi | ||
12547 | else | ||
12548 | pkg_failed=untried | ||
12549 | fi | ||
12550 | if test -n "$EINA_LIBS"; then | ||
12551 | pkg_cv_EINA_LIBS="$EINA_LIBS" | ||
12552 | elif test -n "$PKG_CONFIG"; then | ||
12553 | if test -n "$PKG_CONFIG" && \ | ||
12554 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"eina >= 1.2.0\""; } >&5 | ||
12555 | ($PKG_CONFIG --exists --print-errors "eina >= 1.2.0") 2>&5 | ||
12556 | ac_status=$? | ||
12557 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
12558 | test $ac_status = 0; }; then | ||
12559 | pkg_cv_EINA_LIBS=`$PKG_CONFIG --libs "eina >= 1.2.0" 2>/dev/null` | ||
12560 | else | ||
12561 | pkg_failed=yes | ||
12562 | fi | ||
12563 | else | ||
12564 | pkg_failed=untried | ||
12565 | fi | ||
12566 | |||
12567 | |||
12568 | |||
12569 | if test $pkg_failed = yes; then | ||
12570 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
12571 | $as_echo "no" >&6; } | ||
12572 | |||
12573 | if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then | ||
12574 | _pkg_short_errors_supported=yes | ||
12575 | else | ||
12576 | _pkg_short_errors_supported=no | ||
12577 | fi | ||
12578 | if test $_pkg_short_errors_supported = yes; then | ||
12579 | EINA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "eina >= 1.2.0" 2>&1` | ||
12580 | else | ||
12581 | EINA_PKG_ERRORS=`$PKG_CONFIG --print-errors "eina >= 1.2.0" 2>&1` | ||
12582 | fi | ||
12583 | # Put the nasty error message in config.log where it belongs | ||
12584 | echo "$EINA_PKG_ERRORS" >&5 | ||
12585 | |||
12586 | as_fn_error $? "Package requirements (eina >= 1.2.0) were not met: | ||
12587 | |||
12588 | $EINA_PKG_ERRORS | ||
12589 | |||
12590 | Consider adjusting the PKG_CONFIG_PATH environment variable if you | ||
12591 | installed software in a non-standard prefix. | ||
12592 | |||
12593 | Alternatively, you may set the environment variables EINA_CFLAGS | ||
12594 | and EINA_LIBS to avoid the need to call pkg-config. | ||
12595 | See the pkg-config man page for more details." "$LINENO" 5 | ||
12596 | elif test $pkg_failed = untried; then | ||
12597 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
12598 | $as_echo "no" >&6; } | ||
12599 | { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 | ||
12600 | $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} | ||
12601 | as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it | ||
12602 | is in your PATH or set the PKG_CONFIG environment variable to the full | ||
12603 | path to pkg-config. | ||
12604 | |||
12605 | Alternatively, you may set the environment variables EINA_CFLAGS | ||
12606 | and EINA_LIBS to avoid the need to call pkg-config. | ||
12607 | See the pkg-config man page for more details. | ||
12608 | |||
12609 | To get pkg-config, see <http://pkg-config.freedesktop.org/>. | ||
12610 | See \`config.log' for more details" "$LINENO" 5 ; } | ||
12611 | else | ||
12612 | EINA_CFLAGS=$pkg_cv_EINA_CFLAGS | ||
12613 | EINA_LIBS=$pkg_cv_EINA_LIBS | ||
12614 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
12615 | $as_echo "yes" >&6; } | ||
12616 | |||
12617 | fi | ||
12618 | requirement_eet="eina >= 1.2.0 ${requirement_eet}" | ||
12619 | |||
12620 | ### Checks for portability layer | ||
12621 | |||
12622 | |||
12623 | pkg_failed=no | ||
12624 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EXOTIC" >&5 | ||
12625 | $as_echo_n "checking for EXOTIC... " >&6; } | ||
12626 | |||
12627 | if test -n "$EXOTIC_CFLAGS"; then | ||
12628 | pkg_cv_EXOTIC_CFLAGS="$EXOTIC_CFLAGS" | ||
12629 | elif test -n "$PKG_CONFIG"; then | ||
12630 | if test -n "$PKG_CONFIG" && \ | ||
12631 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"exotic\""; } >&5 | ||
12632 | ($PKG_CONFIG --exists --print-errors "exotic") 2>&5 | ||
12633 | ac_status=$? | ||
12634 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
12635 | test $ac_status = 0; }; then | ||
12636 | pkg_cv_EXOTIC_CFLAGS=`$PKG_CONFIG --cflags "exotic" 2>/dev/null` | ||
12637 | else | ||
12638 | pkg_failed=yes | ||
12639 | fi | ||
12640 | else | ||
12641 | pkg_failed=untried | ||
12642 | fi | ||
12643 | if test -n "$EXOTIC_LIBS"; then | ||
12644 | pkg_cv_EXOTIC_LIBS="$EXOTIC_LIBS" | ||
12645 | elif test -n "$PKG_CONFIG"; then | ||
12646 | if test -n "$PKG_CONFIG" && \ | ||
12647 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"exotic\""; } >&5 | ||
12648 | ($PKG_CONFIG --exists --print-errors "exotic") 2>&5 | ||
12649 | ac_status=$? | ||
12650 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
12651 | test $ac_status = 0; }; then | ||
12652 | pkg_cv_EXOTIC_LIBS=`$PKG_CONFIG --libs "exotic" 2>/dev/null` | ||
12653 | else | ||
12654 | pkg_failed=yes | ||
12655 | fi | ||
12656 | else | ||
12657 | pkg_failed=untried | ||
12658 | fi | ||
12659 | |||
12660 | |||
12661 | |||
12662 | if test $pkg_failed = yes; then | ||
12663 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
12664 | $as_echo "no" >&6; } | ||
12665 | |||
12666 | if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then | ||
12667 | _pkg_short_errors_supported=yes | ||
12668 | else | ||
12669 | _pkg_short_errors_supported=no | ||
12670 | fi | ||
12671 | if test $_pkg_short_errors_supported = yes; then | ||
12672 | EXOTIC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "exotic" 2>&1` | ||
12673 | else | ||
12674 | EXOTIC_PKG_ERRORS=`$PKG_CONFIG --print-errors "exotic" 2>&1` | ||
12675 | fi | ||
12676 | # Put the nasty error message in config.log where it belongs | ||
12677 | echo "$EXOTIC_PKG_ERRORS" >&5 | ||
12678 | |||
12679 | enable_exotic="no" | ||
12680 | elif test $pkg_failed = untried; then | ||
12681 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
12682 | $as_echo "no" >&6; } | ||
12683 | enable_exotic="no" | ||
12684 | else | ||
12685 | EXOTIC_CFLAGS=$pkg_cv_EXOTIC_CFLAGS | ||
12686 | EXOTIC_LIBS=$pkg_cv_EXOTIC_LIBS | ||
12687 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
12688 | $as_echo "yes" >&6; } | ||
12689 | enable_exotic="yes" | ||
12690 | fi | ||
12691 | |||
12692 | if test "x${enable_exotic}" = "xyes"; then | ||
12693 | requirement_eet="exotic ${requirement_eet}" | ||
12694 | |||
12695 | |||
12696 | $as_echo "#define HAVE_EXOTIC_H 1" >>confdefs.h | ||
12697 | |||
12698 | fi | ||
12699 | |||
12700 | # Gnutls support | ||
12701 | |||
12702 | # Check whether --enable-gnutls was given. | ||
12703 | if test "${enable_gnutls+set}" = set; then : | ||
12704 | enableval=$enable_gnutls; want_gnutls=$enableval | ||
12705 | |||
12706 | fi | ||
12707 | |||
12708 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use Gnutls" >&5 | ||
12709 | $as_echo_n "checking whether to use Gnutls... " >&6; } | ||
12710 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${want_gnutls}" >&5 | ||
12711 | $as_echo "${want_gnutls}" >&6; } | ||
12712 | |||
12713 | # Gnutls library | ||
12714 | have_gnutls="no" | ||
12715 | if test "x${want_gnutls}" = "xyes" || test "x${want_gnutls}" = "xauto" ; then | ||
12716 | |||
12717 | pkg_failed=no | ||
12718 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNUTLS" >&5 | ||
12719 | $as_echo_n "checking for GNUTLS... " >&6; } | ||
12720 | |||
12721 | if test -n "$GNUTLS_CFLAGS"; then | ||
12722 | pkg_cv_GNUTLS_CFLAGS="$GNUTLS_CFLAGS" | ||
12723 | elif test -n "$PKG_CONFIG"; then | ||
12724 | if test -n "$PKG_CONFIG" && \ | ||
12725 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 1.7.6\""; } >&5 | ||
12726 | ($PKG_CONFIG --exists --print-errors "gnutls >= 1.7.6") 2>&5 | ||
12727 | ac_status=$? | ||
12728 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
12729 | test $ac_status = 0; }; then | ||
12730 | pkg_cv_GNUTLS_CFLAGS=`$PKG_CONFIG --cflags "gnutls >= 1.7.6" 2>/dev/null` | ||
12731 | else | ||
12732 | pkg_failed=yes | ||
12733 | fi | ||
12734 | else | ||
12735 | pkg_failed=untried | ||
12736 | fi | ||
12737 | if test -n "$GNUTLS_LIBS"; then | ||
12738 | pkg_cv_GNUTLS_LIBS="$GNUTLS_LIBS" | ||
12739 | elif test -n "$PKG_CONFIG"; then | ||
12740 | if test -n "$PKG_CONFIG" && \ | ||
12741 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= 1.7.6\""; } >&5 | ||
12742 | ($PKG_CONFIG --exists --print-errors "gnutls >= 1.7.6") 2>&5 | ||
12743 | ac_status=$? | ||
12744 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
12745 | test $ac_status = 0; }; then | ||
12746 | pkg_cv_GNUTLS_LIBS=`$PKG_CONFIG --libs "gnutls >= 1.7.6" 2>/dev/null` | ||
12747 | else | ||
12748 | pkg_failed=yes | ||
12749 | fi | ||
12750 | else | ||
12751 | pkg_failed=untried | ||
12752 | fi | ||
12753 | |||
12754 | |||
12755 | |||
12756 | if test $pkg_failed = yes; then | ||
12757 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
12758 | $as_echo "no" >&6; } | ||
12759 | |||
12760 | if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then | ||
12761 | _pkg_short_errors_supported=yes | ||
12762 | else | ||
12763 | _pkg_short_errors_supported=no | ||
12764 | fi | ||
12765 | if test $_pkg_short_errors_supported = yes; then | ||
12766 | GNUTLS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gnutls >= 1.7.6" 2>&1` | ||
12767 | else | ||
12768 | GNUTLS_PKG_ERRORS=`$PKG_CONFIG --print-errors "gnutls >= 1.7.6" 2>&1` | ||
12769 | fi | ||
12770 | # Put the nasty error message in config.log where it belongs | ||
12771 | echo "$GNUTLS_PKG_ERRORS" >&5 | ||
12772 | |||
12773 | have_gnutls="no" | ||
12774 | elif test $pkg_failed = untried; then | ||
12775 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
12776 | $as_echo "no" >&6; } | ||
12777 | have_gnutls="no" | ||
12778 | else | ||
12779 | GNUTLS_CFLAGS=$pkg_cv_GNUTLS_CFLAGS | ||
12780 | GNUTLS_LIBS=$pkg_cv_GNUTLS_LIBS | ||
12781 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
12782 | $as_echo "yes" >&6; } | ||
12783 | |||
12784 | have_gnutls="yes" | ||
12785 | want_openssl="no" | ||
12786 | |||
12787 | $as_echo "#define HAVE_GNUTLS 1" >>confdefs.h | ||
12788 | |||
12789 | requirement_eet="gnutls ${requirement_eet}" | ||
12790 | |||
12791 | fi | ||
12792 | if test "x${have_gnutls}" = "xyes" ; then | ||
12793 | |||
12794 | |||
12795 | # Check whether --with-libgcrypt-prefix was given. | ||
12796 | if test "${with_libgcrypt_prefix+set}" = set; then : | ||
12797 | withval=$with_libgcrypt_prefix; libgcrypt_config_prefix="$withval" | ||
12798 | else | ||
12799 | libgcrypt_config_prefix="" | ||
12800 | fi | ||
12801 | |||
12802 | |||
12803 | # Check whether --with-libgcrypt-exec-prefix was given. | ||
12804 | if test "${with_libgcrypt_exec_prefix+set}" = set; then : | ||
12805 | withval=$with_libgcrypt_exec_prefix; libgcrypt_config_exec_prefix="$withval" | ||
12806 | else | ||
12807 | libgcrypt_config_exec_prefix="" | ||
12808 | fi | ||
12809 | |||
12810 | |||
12811 | if test x$libgcrypt_config_exec_prefix != x ; then | ||
12812 | libgcrypt_config_args="$libgcrypt_config_args --exec-prefix=$libgcrypt_config_exec_prefix" | ||
12813 | if test x${LIBGCRYPT_CONFIG+set} != xset ; then | ||
12814 | LIBGCRYPT_CONFIG=$libgcrypt_config_exec_prefix/bin/libgcrypt-config | ||
12815 | fi | ||
12816 | fi | ||
12817 | if test x$libgcrypt_config_prefix != x ; then | ||
12818 | libgcrypt_config_args="$libgcrypt_config_args --prefix=$libgcrypt_config_prefix" | ||
12819 | if test x${LIBGCRYPT_CONFIG+set} != xset ; then | ||
12820 | LIBGCRYPT_CONFIG=$libgcrypt_config_prefix/bin/libgcrypt-config | ||
12821 | fi | ||
12822 | fi | ||
12823 | |||
12824 | # Extract the first word of "libgcrypt-config", so it can be a program name with args. | ||
12825 | set dummy libgcrypt-config; ac_word=$2 | ||
12826 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 | ||
12827 | $as_echo_n "checking for $ac_word... " >&6; } | ||
12828 | if test "${ac_cv_path_LIBGCRYPT_CONFIG+set}" = set; then : | ||
12829 | $as_echo_n "(cached) " >&6 | ||
12830 | else | ||
12831 | case $LIBGCRYPT_CONFIG in | ||
12832 | [\\/]* | ?:[\\/]*) | ||
12833 | ac_cv_path_LIBGCRYPT_CONFIG="$LIBGCRYPT_CONFIG" # Let the user override the test with a path. | ||
12834 | ;; | ||
12835 | *) | ||
12836 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
12837 | for as_dir in $PATH | ||
12838 | do | ||
12839 | IFS=$as_save_IFS | ||
12840 | test -z "$as_dir" && as_dir=. | ||
12841 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
12842 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | ||
12843 | ac_cv_path_LIBGCRYPT_CONFIG="$as_dir/$ac_word$ac_exec_ext" | ||
12844 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 | ||
12845 | break 2 | ||
12846 | fi | ||
12847 | done | ||
12848 | done | ||
12849 | IFS=$as_save_IFS | ||
12850 | |||
12851 | test -z "$ac_cv_path_LIBGCRYPT_CONFIG" && ac_cv_path_LIBGCRYPT_CONFIG="no" | ||
12852 | ;; | ||
12853 | esac | ||
12854 | fi | ||
12855 | LIBGCRYPT_CONFIG=$ac_cv_path_LIBGCRYPT_CONFIG | ||
12856 | if test -n "$LIBGCRYPT_CONFIG"; then | ||
12857 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBGCRYPT_CONFIG" >&5 | ||
12858 | $as_echo "$LIBGCRYPT_CONFIG" >&6; } | ||
12859 | else | ||
12860 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
12861 | $as_echo "no" >&6; } | ||
12862 | fi | ||
12863 | |||
12864 | |||
12865 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libgcrypt" >&5 | ||
12866 | $as_echo_n "checking for libgcrypt... " >&6; } | ||
12867 | no_libgcrypt="" | ||
12868 | if test "$LIBGCRYPT_CONFIG" = "no" ; then | ||
12869 | no_libgcrypt=yes | ||
12870 | else | ||
12871 | LIBGCRYPT_CFLAGS="`$LIBGCRYPT_CONFIG $libgcrypt_config_args --cflags`" | ||
12872 | LIBGCRYPT_LIBS="`$LIBGCRYPT_CONFIG $libgcrypt_config_args --libs`" | ||
12873 | |||
12874 | fi | ||
12875 | if test "x$no_libgcrypt" = x ; then | ||
12876 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
12877 | $as_echo "yes" >&6; } | ||
12878 | have_gnutls="yes" | ||
12879 | else | ||
12880 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
12881 | $as_echo "no" >&6; } | ||
12882 | if test "$LIBGCRYPT_CONFIG" = "no" ; then | ||
12883 | echo "*** The libgcrypt-config script installed by libgcrypt could not be found" | ||
12884 | echo "*** If libgcrypt was installed in PREFIX, make sure PREFIX/bin is in" | ||
12885 | echo "*** your path, or set the LIBGCRYPT_CONFIG environment variable to the" | ||
12886 | echo "*** full path to libgcrypt-config." | ||
12887 | fi | ||
12888 | LIBGCRYPT_CFLAGS="" | ||
12889 | LIBGCRYPT_LIBS="" | ||
12890 | have_gnutls="no" | ||
12891 | fi | ||
12892 | |||
12893 | |||
12894 | |||
12895 | |||
12896 | |||
12897 | |||
12898 | if test "x${have_gnutls}" = "xyes" ; then | ||
12899 | GNUTLS_CFLAGS="${GNUTLS_CFLAGS} ${LIBGCRYPT_CFLAGS}" | ||
12900 | GNUTLS_LIBS="${GNUTLS_LIBS} ${LIBGCRYPT_LIBS}" | ||
12901 | fi | ||
12902 | fi | ||
12903 | fi | ||
12904 | |||
12905 | # Specific GNUTLS improvement | ||
12906 | |||
12907 | new_gnutls_api="yes" | ||
12908 | # Check whether --enable-new-gnutls-api was given. | ||
12909 | if test "${enable_new_gnutls_api+set}" = set; then : | ||
12910 | enableval=$enable_new_gnutls_api; new_gnutls_api=$enableval | ||
12911 | |||
12912 | fi | ||
12913 | |||
12914 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use gnutls_x509_crt_verify_hash" >&5 | ||
12915 | $as_echo_n "checking whether to use gnutls_x509_crt_verify_hash... " >&6; } | ||
12916 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${new_gnutls_api}" >&5 | ||
12917 | $as_echo "${new_gnutls_api}" >&6; } | ||
12918 | |||
12919 | if test "x${new_gnutls_api}" = "xyes" ; then | ||
12920 | tmp_CFLAGS="${CFLAGS}" | ||
12921 | tmp_LIBS="${LIBS}" | ||
12922 | CFLAGS="${GNUTLS_CFLAGS}" | ||
12923 | LIBS="${GNUTLS_LIBS}" | ||
12924 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls_x509_crt_verify_hash in -lgnutls" >&5 | ||
12925 | $as_echo_n "checking for gnutls_x509_crt_verify_hash in -lgnutls... " >&6; } | ||
12926 | if test "${ac_cv_lib_gnutls_gnutls_x509_crt_verify_hash+set}" = set; then : | ||
12927 | $as_echo_n "(cached) " >&6 | ||
12928 | else | ||
12929 | ac_check_lib_save_LIBS=$LIBS | ||
12930 | LIBS="-lgnutls $LIBS" | ||
12931 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
12932 | /* end confdefs.h. */ | ||
12933 | |||
12934 | /* Override any GCC internal prototype to avoid an error. | ||
12935 | Use char because int might match the return type of a GCC | ||
12936 | builtin and then its argument prototype would still apply. */ | ||
12937 | #ifdef __cplusplus | ||
12938 | extern "C" | ||
12939 | #endif | ||
12940 | char gnutls_x509_crt_verify_hash (); | ||
12941 | int | ||
12942 | main () | ||
12943 | { | ||
12944 | return gnutls_x509_crt_verify_hash (); | ||
12945 | ; | ||
12946 | return 0; | ||
12947 | } | ||
12948 | _ACEOF | ||
12949 | if ac_fn_c_try_link "$LINENO"; then : | ||
12950 | ac_cv_lib_gnutls_gnutls_x509_crt_verify_hash=yes | ||
12951 | else | ||
12952 | ac_cv_lib_gnutls_gnutls_x509_crt_verify_hash=no | ||
12953 | fi | ||
12954 | rm -f core conftest.err conftest.$ac_objext \ | ||
12955 | conftest$ac_exeext conftest.$ac_ext | ||
12956 | LIBS=$ac_check_lib_save_LIBS | ||
12957 | fi | ||
12958 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_gnutls_x509_crt_verify_hash" >&5 | ||
12959 | $as_echo "$ac_cv_lib_gnutls_gnutls_x509_crt_verify_hash" >&6; } | ||
12960 | if test "x$ac_cv_lib_gnutls_gnutls_x509_crt_verify_hash" = x""yes; then : | ||
12961 | new_gnutls_api="yes" | ||
12962 | else | ||
12963 | new_gnutls_api="no" | ||
12964 | |||
12965 | fi | ||
12966 | |||
12967 | CFLAGS="${tmp_CFLAGS}" | ||
12968 | LIBS="${tmp_LIBS}" | ||
12969 | |||
12970 | if test "x${new_gnutls_api}" = "xyes"; then | ||
12971 | |||
12972 | $as_echo "#define EET_USE_NEW_GNUTLS_API 1" >>confdefs.h | ||
12973 | |||
12974 | fi | ||
12975 | fi | ||
12976 | |||
12977 | use_gnutls_privkey_sign_data="no" | ||
12978 | if test "x${want_gnutls}" = "xyes" -o "x${want_gnutls}" = "xauto"; then | ||
12979 | tmp_CFLAGS="${CFLAGS}" | ||
12980 | tmp_LIBS="${LIBS}" | ||
12981 | CFLAGS="${GNUTLS_CFLAGS}" | ||
12982 | LIBS="${GNUTLS_LIBS}" | ||
12983 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls_privkey_sign_data in -lgnutls" >&5 | ||
12984 | $as_echo_n "checking for gnutls_privkey_sign_data in -lgnutls... " >&6; } | ||
12985 | if test "${ac_cv_lib_gnutls_gnutls_privkey_sign_data+set}" = set; then : | ||
12986 | $as_echo_n "(cached) " >&6 | ||
12987 | else | ||
12988 | ac_check_lib_save_LIBS=$LIBS | ||
12989 | LIBS="-lgnutls $LIBS" | ||
12990 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
12991 | /* end confdefs.h. */ | ||
12992 | |||
12993 | /* Override any GCC internal prototype to avoid an error. | ||
12994 | Use char because int might match the return type of a GCC | ||
12995 | builtin and then its argument prototype would still apply. */ | ||
12996 | #ifdef __cplusplus | ||
12997 | extern "C" | ||
12998 | #endif | ||
12999 | char gnutls_privkey_sign_data (); | ||
13000 | int | ||
13001 | main () | ||
13002 | { | ||
13003 | return gnutls_privkey_sign_data (); | ||
13004 | ; | ||
13005 | return 0; | ||
13006 | } | ||
13007 | _ACEOF | ||
13008 | if ac_fn_c_try_link "$LINENO"; then : | ||
13009 | ac_cv_lib_gnutls_gnutls_privkey_sign_data=yes | ||
13010 | else | ||
13011 | ac_cv_lib_gnutls_gnutls_privkey_sign_data=no | ||
13012 | fi | ||
13013 | rm -f core conftest.err conftest.$ac_objext \ | ||
13014 | conftest$ac_exeext conftest.$ac_ext | ||
13015 | LIBS=$ac_check_lib_save_LIBS | ||
13016 | fi | ||
13017 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_gnutls_privkey_sign_data" >&5 | ||
13018 | $as_echo "$ac_cv_lib_gnutls_gnutls_privkey_sign_data" >&6; } | ||
13019 | if test "x$ac_cv_lib_gnutls_gnutls_privkey_sign_data" = x""yes; then : | ||
13020 | use_gnutls_privkey_sign_data="yes" | ||
13021 | else | ||
13022 | use_gnutls_privkey_sign_data="no" | ||
13023 | |||
13024 | fi | ||
13025 | |||
13026 | CFLAGS="${tmp_CFLAGS}" | ||
13027 | LIBS="${tmp_LIBS}" | ||
13028 | |||
13029 | if test "x${use_gnutls_privkey_sign_data}" = "xyes"; then | ||
13030 | |||
13031 | $as_echo "#define EET_USE_NEW_PRIVKEY_SIGN_DATA 1" >>confdefs.h | ||
13032 | |||
13033 | fi | ||
13034 | fi | ||
13035 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use gnutls_privkey_sign_data" >&5 | ||
13036 | $as_echo_n "checking whether to use gnutls_privkey_sign_data... " >&6; } | ||
13037 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${use_gnutls_privkey_sign_data}" >&5 | ||
13038 | $as_echo "${use_gnutls_privkey_sign_data}" >&6; } | ||
13039 | |||
13040 | use_gnutls_pubkey_verify_hash="no" | ||
13041 | if test "x${want_gnutls}" = "xyes" -o "x${want_gnutls}" = "xauto"; then | ||
13042 | tmp_CFLAGS="${CFLAGS}" | ||
13043 | tmp_LIBS="${LIBS}" | ||
13044 | CFLAGS="${GNUTLS_CFLAGS}" | ||
13045 | LIBS="${GNUTLS_LIBS}" | ||
13046 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls_pubkey_verify_hash in -lgnutls" >&5 | ||
13047 | $as_echo_n "checking for gnutls_pubkey_verify_hash in -lgnutls... " >&6; } | ||
13048 | if test "${ac_cv_lib_gnutls_gnutls_pubkey_verify_hash+set}" = set; then : | ||
13049 | $as_echo_n "(cached) " >&6 | ||
13050 | else | ||
13051 | ac_check_lib_save_LIBS=$LIBS | ||
13052 | LIBS="-lgnutls $LIBS" | ||
13053 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
13054 | /* end confdefs.h. */ | ||
13055 | |||
13056 | /* Override any GCC internal prototype to avoid an error. | ||
13057 | Use char because int might match the return type of a GCC | ||
13058 | builtin and then its argument prototype would still apply. */ | ||
13059 | #ifdef __cplusplus | ||
13060 | extern "C" | ||
13061 | #endif | ||
13062 | char gnutls_pubkey_verify_hash (); | ||
13063 | int | ||
13064 | main () | ||
13065 | { | ||
13066 | return gnutls_pubkey_verify_hash (); | ||
13067 | ; | ||
13068 | return 0; | ||
13069 | } | ||
13070 | _ACEOF | ||
13071 | if ac_fn_c_try_link "$LINENO"; then : | ||
13072 | ac_cv_lib_gnutls_gnutls_pubkey_verify_hash=yes | ||
13073 | else | ||
13074 | ac_cv_lib_gnutls_gnutls_pubkey_verify_hash=no | ||
13075 | fi | ||
13076 | rm -f core conftest.err conftest.$ac_objext \ | ||
13077 | conftest$ac_exeext conftest.$ac_ext | ||
13078 | LIBS=$ac_check_lib_save_LIBS | ||
13079 | fi | ||
13080 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_gnutls_pubkey_verify_hash" >&5 | ||
13081 | $as_echo "$ac_cv_lib_gnutls_gnutls_pubkey_verify_hash" >&6; } | ||
13082 | if test "x$ac_cv_lib_gnutls_gnutls_pubkey_verify_hash" = x""yes; then : | ||
13083 | use_gnutls_pubkey_verify_hash="yes" | ||
13084 | else | ||
13085 | use_gnutls_pubkey_verify_hash="no" | ||
13086 | |||
13087 | fi | ||
13088 | |||
13089 | CFLAGS="${tmp_CFLAGS}" | ||
13090 | LIBS="${tmp_LIBS}" | ||
13091 | |||
13092 | if test "x${use_gnutls_pubkey_verify_hash}" = "xyes"; then | ||
13093 | |||
13094 | $as_echo "#define EET_USE_NEW_PUBKEY_VERIFY_HASH 1" >>confdefs.h | ||
13095 | |||
13096 | fi | ||
13097 | fi | ||
13098 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use gnutls_pubkey_verify_hash" >&5 | ||
13099 | $as_echo_n "checking whether to use gnutls_pubkey_verify_hash... " >&6; } | ||
13100 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${use_gnutls_pubkey_verify_hash}" >&5 | ||
13101 | $as_echo "${use_gnutls_pubkey_verify_hash}" >&6; } | ||
13102 | |||
13103 | # Openssl library | ||
13104 | have_openssl="no" | ||
13105 | if test "x${want_openssl}" = "xyes" || test "x${want_openssl}" = "xauto" ; then | ||
13106 | |||
13107 | pkg_failed=no | ||
13108 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OPENSSL" >&5 | ||
13109 | $as_echo_n "checking for OPENSSL... " >&6; } | ||
13110 | |||
13111 | if test -n "$OPENSSL_CFLAGS"; then | ||
13112 | pkg_cv_OPENSSL_CFLAGS="$OPENSSL_CFLAGS" | ||
13113 | elif test -n "$PKG_CONFIG"; then | ||
13114 | if test -n "$PKG_CONFIG" && \ | ||
13115 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl\""; } >&5 | ||
13116 | ($PKG_CONFIG --exists --print-errors "openssl") 2>&5 | ||
13117 | ac_status=$? | ||
13118 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
13119 | test $ac_status = 0; }; then | ||
13120 | pkg_cv_OPENSSL_CFLAGS=`$PKG_CONFIG --cflags "openssl" 2>/dev/null` | ||
13121 | else | ||
13122 | pkg_failed=yes | ||
13123 | fi | ||
13124 | else | ||
13125 | pkg_failed=untried | ||
13126 | fi | ||
13127 | if test -n "$OPENSSL_LIBS"; then | ||
13128 | pkg_cv_OPENSSL_LIBS="$OPENSSL_LIBS" | ||
13129 | elif test -n "$PKG_CONFIG"; then | ||
13130 | if test -n "$PKG_CONFIG" && \ | ||
13131 | { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl\""; } >&5 | ||
13132 | ($PKG_CONFIG --exists --print-errors "openssl") 2>&5 | ||
13133 | ac_status=$? | ||
13134 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
13135 | test $ac_status = 0; }; then | ||
13136 | pkg_cv_OPENSSL_LIBS=`$PKG_CONFIG --libs "openssl" 2>/dev/null` | ||
13137 | else | ||
13138 | pkg_failed=yes | ||
13139 | fi | ||
13140 | else | ||
13141 | pkg_failed=untried | ||
13142 | fi | ||
13143 | |||
13144 | |||
13145 | |||
13146 | if test $pkg_failed = yes; then | ||
13147 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
13148 | $as_echo "no" >&6; } | ||
13149 | |||
13150 | if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then | ||
13151 | _pkg_short_errors_supported=yes | ||
13152 | else | ||
13153 | _pkg_short_errors_supported=no | ||
13154 | fi | ||
13155 | if test $_pkg_short_errors_supported = yes; then | ||
13156 | OPENSSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "openssl" 2>&1` | ||
13157 | else | ||
13158 | OPENSSL_PKG_ERRORS=`$PKG_CONFIG --print-errors "openssl" 2>&1` | ||
13159 | fi | ||
13160 | # Put the nasty error message in config.log where it belongs | ||
13161 | echo "$OPENSSL_PKG_ERRORS" >&5 | ||
13162 | |||
13163 | have_openssl="no" | ||
13164 | elif test $pkg_failed = untried; then | ||
13165 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
13166 | $as_echo "no" >&6; } | ||
13167 | have_openssl="no" | ||
13168 | else | ||
13169 | OPENSSL_CFLAGS=$pkg_cv_OPENSSL_CFLAGS | ||
13170 | OPENSSL_LIBS=$pkg_cv_OPENSSL_LIBS | ||
13171 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
13172 | $as_echo "yes" >&6; } | ||
13173 | |||
13174 | have_openssl="yes" | ||
13175 | |||
13176 | $as_echo "#define HAVE_OPENSSL 1" >>confdefs.h | ||
13177 | |||
13178 | requirement_eet="openssl ${requirement_eet}" | ||
13179 | |||
13180 | fi | ||
13181 | fi | ||
13182 | |||
13183 | if test "x${have_gnutls}" = "xyes" ; then | ||
13184 | secure_layer="GnuTLS" | ||
13185 | elif test "x${have_openssl}" = "xyes" ; then | ||
13186 | secure_layer="OpenSSL" | ||
13187 | else | ||
13188 | secure_layer="no" | ||
13189 | fi | ||
13190 | |||
13191 | have_cipher="no" | ||
13192 | if test "x${have_gnutls}" = "xyes" && test "x${want_cipher}" = "xyes" ; then | ||
13193 | have_cipher="yes" | ||
13194 | |||
13195 | $as_echo "#define HAVE_CIPHER 1" >>confdefs.h | ||
13196 | |||
13197 | elif test "x${have_openssl}" = "xyes" && test "x${want_cipher}" = "xyes" ; then | ||
13198 | have_cipher="yes" | ||
13199 | |||
13200 | $as_echo "#define HAVE_CIPHER 1" >>confdefs.h | ||
13201 | |||
13202 | fi | ||
13203 | |||
13204 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to activate cipher support in eet" >&5 | ||
13205 | $as_echo_n "checking whether to activate cipher support in eet... " >&6; } | ||
13206 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_cipher}" >&5 | ||
13207 | $as_echo "${have_cipher}" >&6; } | ||
13208 | |||
13209 | have_signature="no" | ||
13210 | if test "x${have_gnutls}" = "xyes" && test "x${want_signature}" = "xyes" ; then | ||
13211 | have_signature="yes" | ||
13212 | |||
13213 | $as_echo "#define HAVE_SIGNATURE 1" >>confdefs.h | ||
13214 | |||
13215 | elif test "x${have_openssl}" = "xyes" && test "x${want_signature}" = "xyes" ; then | ||
13216 | have_signature="yes" | ||
13217 | |||
13218 | $as_echo "#define HAVE_SIGNATURE 1" >>confdefs.h | ||
13219 | |||
13220 | fi | ||
13221 | |||
13222 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to activate signature support in eet" >&5 | ||
13223 | $as_echo_n "checking whether to activate signature support in eet... " >&6; } | ||
13224 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_signature}" >&5 | ||
13225 | $as_echo "${have_signature}" >&6; } | ||
13226 | |||
13227 | ### Checks for header files | ||
13228 | |||
13229 | ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" | ||
13230 | if test "x$ac_cv_header_zlib_h" = x""yes; then : | ||
13231 | dummy="yes" | ||
13232 | else | ||
13233 | as_fn_error $? "\"Cannot find zlib.h. Make sure your CFLAGS environment variable contains include lines for the location of this file\"" "$LINENO" 5 | ||
13234 | fi | ||
13235 | |||
13236 | |||
13237 | |||
13238 | ac_fn_c_check_header_mongrel "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac_includes_default" | ||
13239 | if test "x$ac_cv_header_jpeglib_h" = x""yes; then : | ||
13240 | dummy="yes" | ||
13241 | else | ||
13242 | as_fn_error $? "\"Cannot find jpeglib.h. Make sure your CFLAGS environment variable contains include lines for the location of this file\"" "$LINENO" 5 | ||
13243 | fi | ||
13244 | |||
13245 | |||
13246 | |||
13247 | for ac_header in netinet/in.h unistd.h | ||
13248 | do : | ||
13249 | as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` | ||
13250 | ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" | ||
13251 | if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : | ||
13252 | cat >>confdefs.h <<_ACEOF | ||
13253 | #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 | ||
13254 | _ACEOF | ||
13255 | |||
13256 | fi | ||
13257 | |||
13258 | done | ||
13259 | |||
13260 | |||
13261 | |||
13262 | default_max="4096" | ||
13263 | ac_ext=c | ||
13264 | ac_cpp='$CPP $CPPFLAGS' | ||
13265 | ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' | ||
13266 | ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | ||
13267 | ac_compiler_gnu=$ac_cv_c_compiler_gnu | ||
13268 | |||
13269 | |||
13270 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PATH_MAX in limits.h" >&5 | ||
13271 | $as_echo_n "checking for PATH_MAX in limits.h... " >&6; } | ||
13272 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
13273 | /* end confdefs.h. */ | ||
13274 | |||
13275 | #include <limits.h> | ||
13276 | |||
13277 | int | ||
13278 | main () | ||
13279 | { | ||
13280 | |||
13281 | int i = PATH_MAX; | ||
13282 | |||
13283 | ; | ||
13284 | return 0; | ||
13285 | } | ||
13286 | _ACEOF | ||
13287 | if ac_fn_c_try_compile "$LINENO"; then : | ||
13288 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
13289 | $as_echo "yes" >&6; } | ||
13290 | else | ||
13291 | |||
13292 | |||
13293 | cat >>confdefs.h <<_ACEOF | ||
13294 | #define PATH_MAX ${default_max} | ||
13295 | _ACEOF | ||
13296 | |||
13297 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no: using ${default_max}" >&5 | ||
13298 | $as_echo "no: using ${default_max}" >&6; } | ||
13299 | |||
13300 | fi | ||
13301 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
13302 | |||
13303 | ac_ext=c | ||
13304 | ac_cpp='$CPP $CPPFLAGS' | ||
13305 | ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' | ||
13306 | ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | ||
13307 | ac_compiler_gnu=$ac_cv_c_compiler_gnu | ||
13308 | |||
13309 | |||
13310 | |||
13311 | |||
13312 | ### Checks for types | ||
13313 | |||
13314 | |||
13315 | ### Checks for structures | ||
13316 | |||
13317 | |||
13318 | ### Checks for compiler characteristics | ||
13319 | if test "x$CC" != xcc; then | ||
13320 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 | ||
13321 | $as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } | ||
13322 | else | ||
13323 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 | ||
13324 | $as_echo_n "checking whether cc understands -c and -o together... " >&6; } | ||
13325 | fi | ||
13326 | set dummy $CC; ac_cc=`$as_echo "$2" | | ||
13327 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` | ||
13328 | if eval "test \"\${ac_cv_prog_cc_${ac_cc}_c_o+set}\"" = set; then : | ||
13329 | $as_echo_n "(cached) " >&6 | ||
13330 | else | ||
13331 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
13332 | /* end confdefs.h. */ | ||
13333 | |||
13334 | int | ||
13335 | main () | ||
13336 | { | ||
13337 | |||
13338 | ; | ||
13339 | return 0; | ||
13340 | } | ||
13341 | _ACEOF | ||
13342 | # Make sure it works both with $CC and with simple cc. | ||
13343 | # We do the test twice because some compilers refuse to overwrite an | ||
13344 | # existing .o file with -o, though they will create one. | ||
13345 | ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' | ||
13346 | rm -f conftest2.* | ||
13347 | if { { case "(($ac_try" in | ||
13348 | *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | ||
13349 | *) ac_try_echo=$ac_try;; | ||
13350 | esac | ||
13351 | eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" | ||
13352 | $as_echo "$ac_try_echo"; } >&5 | ||
13353 | (eval "$ac_try") 2>&5 | ||
13354 | ac_status=$? | ||
13355 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
13356 | test $ac_status = 0; } && | ||
13357 | test -f conftest2.$ac_objext && { { case "(($ac_try" in | ||
13358 | *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | ||
13359 | *) ac_try_echo=$ac_try;; | ||
13360 | esac | ||
13361 | eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" | ||
13362 | $as_echo "$ac_try_echo"; } >&5 | ||
13363 | (eval "$ac_try") 2>&5 | ||
13364 | ac_status=$? | ||
13365 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
13366 | test $ac_status = 0; }; | ||
13367 | then | ||
13368 | eval ac_cv_prog_cc_${ac_cc}_c_o=yes | ||
13369 | if test "x$CC" != xcc; then | ||
13370 | # Test first that cc exists at all. | ||
13371 | if { ac_try='cc -c conftest.$ac_ext >&5' | ||
13372 | { { case "(($ac_try" in | ||
13373 | *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | ||
13374 | *) ac_try_echo=$ac_try;; | ||
13375 | esac | ||
13376 | eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" | ||
13377 | $as_echo "$ac_try_echo"; } >&5 | ||
13378 | (eval "$ac_try") 2>&5 | ||
13379 | ac_status=$? | ||
13380 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
13381 | test $ac_status = 0; }; }; then | ||
13382 | ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' | ||
13383 | rm -f conftest2.* | ||
13384 | if { { case "(($ac_try" in | ||
13385 | *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | ||
13386 | *) ac_try_echo=$ac_try;; | ||
13387 | esac | ||
13388 | eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" | ||
13389 | $as_echo "$ac_try_echo"; } >&5 | ||
13390 | (eval "$ac_try") 2>&5 | ||
13391 | ac_status=$? | ||
13392 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
13393 | test $ac_status = 0; } && | ||
13394 | test -f conftest2.$ac_objext && { { case "(($ac_try" in | ||
13395 | *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | ||
13396 | *) ac_try_echo=$ac_try;; | ||
13397 | esac | ||
13398 | eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" | ||
13399 | $as_echo "$ac_try_echo"; } >&5 | ||
13400 | (eval "$ac_try") 2>&5 | ||
13401 | ac_status=$? | ||
13402 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 | ||
13403 | test $ac_status = 0; }; | ||
13404 | then | ||
13405 | # cc works too. | ||
13406 | : | ||
13407 | else | ||
13408 | # cc exists but doesn't like -o. | ||
13409 | eval ac_cv_prog_cc_${ac_cc}_c_o=no | ||
13410 | fi | ||
13411 | fi | ||
13412 | fi | ||
13413 | else | ||
13414 | eval ac_cv_prog_cc_${ac_cc}_c_o=no | ||
13415 | fi | ||
13416 | rm -f core conftest* | ||
13417 | |||
13418 | fi | ||
13419 | if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then | ||
13420 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | ||
13421 | $as_echo "yes" >&6; } | ||
13422 | else | ||
13423 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | ||
13424 | $as_echo "no" >&6; } | ||
13425 | |||
13426 | $as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h | ||
13427 | |||
13428 | fi | ||
13429 | |||
13430 | # FIXME: we rely on the cache variable name because | ||
13431 | # there is no other way. | ||
13432 | set dummy $CC | ||
13433 | am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` | ||
13434 | eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o | ||
13435 | if test "$am_t" != yes; then | ||
13436 | # Losing compiler, so override with the script. | ||
13437 | # FIXME: It is wrong to rewrite CC. | ||
13438 | # But if we don't then we get into trouble of one sort or another. | ||
13439 | # A longer-term fix would be to have automake use am__CC in this case, | ||
13440 | # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" | ||
13441 | CC="$am_aux_dir/compile $CC" | ||
13442 | fi | ||
13443 | |||
13444 | |||
13445 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 | ||
13446 | $as_echo_n "checking for an ANSI C-conforming const... " >&6; } | ||
13447 | if test "${ac_cv_c_const+set}" = set; then : | ||
13448 | $as_echo_n "(cached) " >&6 | ||
13449 | else | ||
13450 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
13451 | /* end confdefs.h. */ | ||
13452 | |||
13453 | int | ||
13454 | main () | ||
13455 | { | ||
13456 | /* FIXME: Include the comments suggested by Paul. */ | ||
13457 | #ifndef __cplusplus | ||
13458 | /* Ultrix mips cc rejects this. */ | ||
13459 | typedef int charset[2]; | ||
13460 | const charset cs; | ||
13461 | /* SunOS 4.1.1 cc rejects this. */ | ||
13462 | char const *const *pcpcc; | ||
13463 | char **ppc; | ||
13464 | /* NEC SVR4.0.2 mips cc rejects this. */ | ||
13465 | struct point {int x, y;}; | ||
13466 | static struct point const zero = {0,0}; | ||
13467 | /* AIX XL C 1.02.0.0 rejects this. | ||
13468 | It does not let you subtract one const X* pointer from another in | ||
13469 | an arm of an if-expression whose if-part is not a constant | ||
13470 | expression */ | ||
13471 | const char *g = "string"; | ||
13472 | pcpcc = &g + (g ? g-g : 0); | ||
13473 | /* HPUX 7.0 cc rejects these. */ | ||
13474 | ++pcpcc; | ||
13475 | ppc = (char**) pcpcc; | ||
13476 | pcpcc = (char const *const *) ppc; | ||
13477 | { /* SCO 3.2v4 cc rejects this. */ | ||
13478 | char *t; | ||
13479 | char const *s = 0 ? (char *) 0 : (char const *) 0; | ||
13480 | |||
13481 | *t++ = 0; | ||
13482 | if (s) return 0; | ||
13483 | } | ||
13484 | { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ | ||
13485 | int x[] = {25, 17}; | ||
13486 | const int *foo = &x[0]; | ||
13487 | ++foo; | ||
13488 | } | ||
13489 | { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ | ||
13490 | typedef const int *iptr; | ||
13491 | iptr p = 0; | ||
13492 | ++p; | ||
13493 | } | ||
13494 | { /* AIX XL C 1.02.0.0 rejects this saying | ||
13495 | "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ | ||
13496 | struct s { int j; const int *ap[3]; }; | ||
13497 | struct s *b; b->j = 5; | ||
13498 | } | ||
13499 | { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ | ||
13500 | const int foo = 10; | ||
13501 | if (!foo) return 0; | ||
13502 | } | ||
13503 | return !cs[0] && !zero.x; | ||
13504 | #endif | ||
13505 | |||
13506 | ; | ||
13507 | return 0; | ||
13508 | } | ||
13509 | _ACEOF | ||
13510 | if ac_fn_c_try_compile "$LINENO"; then : | ||
13511 | ac_cv_c_const=yes | ||
13512 | else | ||
13513 | ac_cv_c_const=no | ||
13514 | fi | ||
13515 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
13516 | fi | ||
13517 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 | ||
13518 | $as_echo "$ac_cv_c_const" >&6; } | ||
13519 | if test $ac_cv_c_const = no; then | ||
13520 | |||
13521 | $as_echo "#define const /**/" >>confdefs.h | ||
13522 | |||
13523 | fi | ||
13524 | |||
13525 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 | ||
13526 | $as_echo_n "checking for inline... " >&6; } | ||
13527 | if test "${ac_cv_c_inline+set}" = set; then : | ||
13528 | $as_echo_n "(cached) " >&6 | ||
13529 | else | ||
13530 | ac_cv_c_inline=no | ||
13531 | for ac_kw in inline __inline__ __inline; do | ||
13532 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
13533 | /* end confdefs.h. */ | ||
13534 | #ifndef __cplusplus | ||
13535 | typedef int foo_t; | ||
13536 | static $ac_kw foo_t static_foo () {return 0; } | ||
13537 | $ac_kw foo_t foo () {return 0; } | ||
13538 | #endif | ||
13539 | |||
13540 | _ACEOF | ||
13541 | if ac_fn_c_try_compile "$LINENO"; then : | ||
13542 | ac_cv_c_inline=$ac_kw | ||
13543 | fi | ||
13544 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
13545 | test "$ac_cv_c_inline" != no && break | ||
13546 | done | ||
13547 | |||
13548 | fi | ||
13549 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 | ||
13550 | $as_echo "$ac_cv_c_inline" >&6; } | ||
13551 | |||
13552 | case $ac_cv_c_inline in | ||
13553 | inline | yes) ;; | ||
13554 | *) | ||
13555 | case $ac_cv_c_inline in | ||
13556 | no) ac_val=;; | ||
13557 | *) ac_val=$ac_cv_c_inline;; | ||
13558 | esac | ||
13559 | cat >>confdefs.h <<_ACEOF | ||
13560 | #ifndef __cplusplus | ||
13561 | #define inline $ac_val | ||
13562 | #endif | ||
13563 | _ACEOF | ||
13564 | ;; | ||
13565 | esac | ||
13566 | |||
13567 | case $ac_cv_prog_cc_stdc in #( | ||
13568 | no) : | ||
13569 | ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; #( | ||
13570 | *) : | ||
13571 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5 | ||
13572 | $as_echo_n "checking for $CC option to accept ISO C99... " >&6; } | ||
13573 | if test "${ac_cv_prog_cc_c99+set}" = set; then : | ||
13574 | $as_echo_n "(cached) " >&6 | ||
13575 | else | ||
13576 | ac_cv_prog_cc_c99=no | ||
13577 | ac_save_CC=$CC | ||
13578 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
13579 | /* end confdefs.h. */ | ||
13580 | #include <stdarg.h> | ||
13581 | #include <stdbool.h> | ||
13582 | #include <stdlib.h> | ||
13583 | #include <wchar.h> | ||
13584 | #include <stdio.h> | ||
13585 | |||
13586 | // Check varargs macros. These examples are taken from C99 6.10.3.5. | ||
13587 | #define debug(...) fprintf (stderr, __VA_ARGS__) | ||
13588 | #define showlist(...) puts (#__VA_ARGS__) | ||
13589 | #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) | ||
13590 | static void | ||
13591 | test_varargs_macros (void) | ||
13592 | { | ||
13593 | int x = 1234; | ||
13594 | int y = 5678; | ||
13595 | debug ("Flag"); | ||
13596 | debug ("X = %d\n", x); | ||
13597 | showlist (The first, second, and third items.); | ||
13598 | report (x>y, "x is %d but y is %d", x, y); | ||
13599 | } | ||
13600 | |||
13601 | // Check long long types. | ||
13602 | #define BIG64 18446744073709551615ull | ||
13603 | #define BIG32 4294967295ul | ||
13604 | #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) | ||
13605 | #if !BIG_OK | ||
13606 | your preprocessor is broken; | ||
13607 | #endif | ||
13608 | #if BIG_OK | ||
13609 | #else | ||
13610 | your preprocessor is broken; | ||
13611 | #endif | ||
13612 | static long long int bignum = -9223372036854775807LL; | ||
13613 | static unsigned long long int ubignum = BIG64; | ||
13614 | |||
13615 | struct incomplete_array | ||
13616 | { | ||
13617 | int datasize; | ||
13618 | double data[]; | ||
13619 | }; | ||
13620 | |||
13621 | struct named_init { | ||
13622 | int number; | ||
13623 | const wchar_t *name; | ||
13624 | double average; | ||
13625 | }; | ||
13626 | |||
13627 | typedef const char *ccp; | ||
13628 | |||
13629 | static inline int | ||
13630 | test_restrict (ccp restrict text) | ||
13631 | { | ||
13632 | // See if C++-style comments work. | ||
13633 | // Iterate through items via the restricted pointer. | ||
13634 | // Also check for declarations in for loops. | ||
13635 | for (unsigned int i = 0; *(text+i) != '\0'; ++i) | ||
13636 | continue; | ||
13637 | return 0; | ||
13638 | } | ||
13639 | |||
13640 | // Check varargs and va_copy. | ||
13641 | static void | ||
13642 | test_varargs (const char *format, ...) | ||
13643 | { | ||
13644 | va_list args; | ||
13645 | va_start (args, format); | ||
13646 | va_list args_copy; | ||
13647 | va_copy (args_copy, args); | ||
13648 | |||
13649 | const char *str; | ||
13650 | int number; | ||
13651 | float fnumber; | ||
13652 | |||
13653 | while (*format) | ||
13654 | { | ||
13655 | switch (*format++) | ||
13656 | { | ||
13657 | case 's': // string | ||
13658 | str = va_arg (args_copy, const char *); | ||
13659 | break; | ||
13660 | case 'd': // int | ||
13661 | number = va_arg (args_copy, int); | ||
13662 | break; | ||
13663 | case 'f': // float | ||
13664 | fnumber = va_arg (args_copy, double); | ||
13665 | break; | ||
13666 | default: | ||
13667 | break; | ||
13668 | } | ||
13669 | } | ||
13670 | va_end (args_copy); | ||
13671 | va_end (args); | ||
13672 | } | ||
13673 | |||
13674 | int | ||
13675 | main () | ||
13676 | { | ||
13677 | |||
13678 | // Check bool. | ||
13679 | _Bool success = false; | ||
13680 | |||
13681 | // Check restrict. | ||
13682 | if (test_restrict ("String literal") == 0) | ||
13683 | success = true; | ||
13684 | char *restrict newvar = "Another string"; | ||
13685 | |||
13686 | // Check varargs. | ||
13687 | test_varargs ("s, d' f .", "string", 65, 34.234); | ||
13688 | test_varargs_macros (); | ||
13689 | |||
13690 | // Check flexible array members. | ||
13691 | struct incomplete_array *ia = | ||
13692 | malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); | ||
13693 | ia->datasize = 10; | ||
13694 | for (int i = 0; i < ia->datasize; ++i) | ||
13695 | ia->data[i] = i * 1.234; | ||
13696 | |||
13697 | // Check named initializers. | ||
13698 | struct named_init ni = { | ||
13699 | .number = 34, | ||
13700 | .name = L"Test wide string", | ||
13701 | .average = 543.34343, | ||
13702 | }; | ||
13703 | |||
13704 | ni.number = 58; | ||
13705 | |||
13706 | int dynamic_array[ni.number]; | ||
13707 | dynamic_array[ni.number - 1] = 543; | ||
13708 | |||
13709 | // work around unused variable warnings | ||
13710 | return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' | ||
13711 | || dynamic_array[ni.number - 1] != 543); | ||
13712 | |||
13713 | ; | ||
13714 | return 0; | ||
13715 | } | ||
13716 | _ACEOF | ||
13717 | for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99 | ||
13718 | do | ||
13719 | CC="$ac_save_CC $ac_arg" | ||
13720 | if ac_fn_c_try_compile "$LINENO"; then : | ||
13721 | ac_cv_prog_cc_c99=$ac_arg | ||
13722 | fi | ||
13723 | rm -f core conftest.err conftest.$ac_objext | ||
13724 | test "x$ac_cv_prog_cc_c99" != "xno" && break | ||
13725 | done | ||
13726 | rm -f conftest.$ac_ext | ||
13727 | CC=$ac_save_CC | ||
13728 | |||
13729 | fi | ||
13730 | # AC_CACHE_VAL | ||
13731 | case "x$ac_cv_prog_cc_c99" in | ||
13732 | x) | ||
13733 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 | ||
13734 | $as_echo "none needed" >&6; } ;; | ||
13735 | xno) | ||
13736 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 | ||
13737 | $as_echo "unsupported" >&6; } ;; | ||
13738 | *) | ||
13739 | CC="$CC $ac_cv_prog_cc_c99" | ||
13740 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 | ||
13741 | $as_echo "$ac_cv_prog_cc_c99" >&6; } ;; | ||
13742 | esac | ||
13743 | if test "x$ac_cv_prog_cc_c99" != xno; then : | ||
13744 | ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 | ||
13745 | else | ||
13746 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 | ||
13747 | $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } | ||
13748 | if test "${ac_cv_prog_cc_c89+set}" = set; then : | ||
13749 | $as_echo_n "(cached) " >&6 | ||
13750 | else | ||
13751 | ac_cv_prog_cc_c89=no | ||
13752 | ac_save_CC=$CC | ||
13753 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
13754 | /* end confdefs.h. */ | ||
13755 | #include <stdarg.h> | ||
13756 | #include <stdio.h> | ||
13757 | #include <sys/types.h> | ||
13758 | #include <sys/stat.h> | ||
13759 | /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ | ||
13760 | struct buf { int x; }; | ||
13761 | FILE * (*rcsopen) (struct buf *, struct stat *, int); | ||
13762 | static char *e (p, i) | ||
13763 | char **p; | ||
13764 | int i; | ||
13765 | { | ||
13766 | return p[i]; | ||
13767 | } | ||
13768 | static char *f (char * (*g) (char **, int), char **p, ...) | ||
13769 | { | ||
13770 | char *s; | ||
13771 | va_list v; | ||
13772 | va_start (v,p); | ||
13773 | s = g (p, va_arg (v,int)); | ||
13774 | va_end (v); | ||
13775 | return s; | ||
13776 | } | ||
13777 | |||
13778 | /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has | ||
13779 | function prototypes and stuff, but not '\xHH' hex character constants. | ||
13780 | These don't provoke an error unfortunately, instead are silently treated | ||
13781 | as 'x'. The following induces an error, until -std is added to get | ||
13782 | proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an | ||
13783 | array size at least. It's necessary to write '\x00'==0 to get something | ||
13784 | that's true only with -std. */ | ||
13785 | int osf4_cc_array ['\x00' == 0 ? 1 : -1]; | ||
13786 | |||
13787 | /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters | ||
13788 | inside strings and character constants. */ | ||
13789 | #define FOO(x) 'x' | ||
13790 | int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; | ||
13791 | |||
13792 | int test (int i, double x); | ||
13793 | struct s1 {int (*f) (int a);}; | ||
13794 | struct s2 {int (*f) (double a);}; | ||
13795 | int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); | ||
13796 | int argc; | ||
13797 | char **argv; | ||
13798 | int | ||
13799 | main () | ||
13800 | { | ||
13801 | return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; | ||
13802 | ; | ||
13803 | return 0; | ||
13804 | } | ||
13805 | _ACEOF | ||
13806 | for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ | ||
13807 | -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" | ||
13808 | do | ||
13809 | CC="$ac_save_CC $ac_arg" | ||
13810 | if ac_fn_c_try_compile "$LINENO"; then : | ||
13811 | ac_cv_prog_cc_c89=$ac_arg | ||
13812 | fi | ||
13813 | rm -f core conftest.err conftest.$ac_objext | ||
13814 | test "x$ac_cv_prog_cc_c89" != "xno" && break | ||
13815 | done | ||
13816 | rm -f conftest.$ac_ext | ||
13817 | CC=$ac_save_CC | ||
13818 | |||
13819 | fi | ||
13820 | # AC_CACHE_VAL | ||
13821 | case "x$ac_cv_prog_cc_c89" in | ||
13822 | x) | ||
13823 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 | ||
13824 | $as_echo "none needed" >&6; } ;; | ||
13825 | xno) | ||
13826 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 | ||
13827 | $as_echo "unsupported" >&6; } ;; | ||
13828 | *) | ||
13829 | CC="$CC $ac_cv_prog_cc_c89" | ||
13830 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 | ||
13831 | $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; | ||
13832 | esac | ||
13833 | if test "x$ac_cv_prog_cc_c89" != xno; then : | ||
13834 | ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 | ||
13835 | else | ||
13836 | ac_cv_prog_cc_stdc=no | ||
13837 | fi | ||
13838 | |||
13839 | fi | ||
13840 | ;; | ||
13841 | esac | ||
13842 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO Standard C" >&5 | ||
13843 | $as_echo_n "checking for $CC option to accept ISO Standard C... " >&6; } | ||
13844 | if test "${ac_cv_prog_cc_stdc+set}" = set; then : | ||
13845 | $as_echo_n "(cached) " >&6 | ||
13846 | fi | ||
13847 | |||
13848 | case $ac_cv_prog_cc_stdc in #( | ||
13849 | no) : | ||
13850 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 | ||
13851 | $as_echo "unsupported" >&6; } ;; #( | ||
13852 | '') : | ||
13853 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 | ||
13854 | $as_echo "none needed" >&6; } ;; #( | ||
13855 | *) : | ||
13856 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_stdc" >&5 | ||
13857 | $as_echo "$ac_cv_prog_cc_stdc" >&6; } ;; | ||
13858 | esac | ||
13859 | |||
13860 | |||
13861 | |||
13862 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __attribute__" >&5 | ||
13863 | $as_echo_n "checking for __attribute__... " >&6; } | ||
13864 | |||
13865 | if test "${ac_cv___attribute__+set}" = set; then : | ||
13866 | $as_echo_n "(cached) " >&6 | ||
13867 | else | ||
13868 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
13869 | /* end confdefs.h. */ | ||
13870 | |||
13871 | #include <stdlib.h> | ||
13872 | |||
13873 | int func(int x); | ||
13874 | int foo(int x __attribute__ ((unused))) | ||
13875 | { | ||
13876 | exit(1); | ||
13877 | } | ||
13878 | |||
13879 | int | ||
13880 | main () | ||
13881 | { | ||
13882 | |||
13883 | ; | ||
13884 | return 0; | ||
13885 | } | ||
13886 | _ACEOF | ||
13887 | if ac_fn_c_try_compile "$LINENO"; then : | ||
13888 | ac_cv___attribute__="yes" | ||
13889 | else | ||
13890 | ac_cv___attribute__="no" | ||
13891 | |||
13892 | fi | ||
13893 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext | ||
13894 | fi | ||
13895 | |||
13896 | |||
13897 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv___attribute__" >&5 | ||
13898 | $as_echo "$ac_cv___attribute__" >&6; } | ||
13899 | |||
13900 | if test "x${ac_cv___attribute__}" = "xyes" ; then | ||
13901 | |||
13902 | $as_echo "#define HAVE___ATTRIBUTE__ 1" >>confdefs.h | ||
13903 | |||
13904 | |||
13905 | $as_echo "#define __UNUSED__ __attribute__((unused))" >>confdefs.h | ||
13906 | |||
13907 | else | ||
13908 | |||
13909 | $as_echo "#define __UNUSED__ /**/" >>confdefs.h | ||
13910 | |||
13911 | fi | ||
13912 | |||
13913 | |||
13914 | |||
13915 | # Check whether the null pointer is zero on this arch | ||
13916 | if test "$cross_compiling" = yes; then : | ||
13917 | |||
13918 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Cannot check when cross-compiling -- assuming null is okay" >&5 | ||
13919 | $as_echo "$as_me: WARNING: Cannot check when cross-compiling -- assuming null is okay" >&2;} | ||
13920 | have_null="yes" | ||
13921 | |||
13922 | else | ||
13923 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
13924 | /* end confdefs.h. */ | ||
13925 | |||
13926 | #include <stdlib.h> | ||
13927 | #include <inttypes.h> | ||
13928 | int main (int argc, char **argv) { | ||
13929 | void *foo = NULL; | ||
13930 | uintptr_t bar = (uintptr_t)foo; | ||
13931 | return (uintptr_t)foo; | ||
13932 | } | ||
13933 | |||
13934 | _ACEOF | ||
13935 | if ac_fn_c_try_run "$LINENO"; then : | ||
13936 | have_null="yes" | ||
13937 | else | ||
13938 | have_null="no" | ||
13939 | fi | ||
13940 | rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ | ||
13941 | conftest.$ac_objext conftest.beam conftest.$ac_ext | ||
13942 | fi | ||
13943 | |||
13944 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking value of the null pointer" >&5 | ||
13945 | $as_echo_n "checking value of the null pointer... " >&6; } | ||
13946 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_null}" >&5 | ||
13947 | $as_echo "${have_null}" >&6; } | ||
13948 | |||
13949 | if test ! "x${have_null}" = "xyes" ; then | ||
13950 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your system is a bit too funny, eet might not work properly" >&5 | ||
13951 | $as_echo "$as_me: WARNING: Your system is a bit too funny, eet might not work properly" >&2;} | ||
13952 | fi | ||
13953 | |||
13954 | # These are needed for fmemopen/open_memstream | ||
13955 | |||
13956 | $as_echo "#define _GNU_SOURCE /**/" >>confdefs.h | ||
13957 | |||
13958 | |||
13959 | EET_CPPFLAGS="" | ||
13960 | EET_CFLAGS="" | ||
13961 | case "$host_os" in | ||
13962 | mingw32ce*) | ||
13963 | EET_CPPFLAGS="-D_WIN32_WCE=0x0420" | ||
13964 | ;; | ||
13965 | mingw*) | ||
13966 | EET_CPPFLAGS="-D_WIN32_WINNT=0x0501" | ||
13967 | ;; | ||
13968 | esac | ||
13969 | |||
13970 | |||
13971 | |||
13972 | |||
13973 | ### Checks for linker characteristics | ||
13974 | |||
13975 | # use --enable-auto-import on Windows | ||
13976 | |||
13977 | lt_enable_auto_import="" | ||
13978 | case "$host_os" in | ||
13979 | mingw*) | ||
13980 | lt_enable_auto_import="-Wl,--enable-auto-import" | ||
13981 | ;; | ||
13982 | esac | ||
13983 | |||
13984 | |||
13985 | case "${host_os}" in | ||
13986 | openbsd*) | ||
13987 | ;; | ||
13988 | *) | ||
13989 | |||
13990 | |||
13991 | CFLAGS_save="${CFLAGS}" | ||
13992 | CFLAGS="${CFLAGS} -Wl,--as-needed" | ||
13993 | |||
13994 | ac_ext=c | ||
13995 | ac_cpp='$CPP $CPPFLAGS' | ||
13996 | ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' | ||
13997 | ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | ||
13998 | ac_compiler_gnu=$ac_cv_c_compiler_gnu | ||
13999 | |||
14000 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wl,--as-needed" >&5 | ||
14001 | $as_echo_n "checking whether the compiler supports -Wl,--as-needed... " >&6; } | ||
14002 | |||
14003 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14004 | /* end confdefs.h. */ | ||
14005 | |||
14006 | int | ||
14007 | main () | ||
14008 | { | ||
14009 | |||
14010 | ; | ||
14011 | return 0; | ||
14012 | } | ||
14013 | _ACEOF | ||
14014 | if ac_fn_c_try_link "$LINENO"; then : | ||
14015 | have_flag="yes" | ||
14016 | else | ||
14017 | have_flag="no" | ||
14018 | fi | ||
14019 | rm -f core conftest.err conftest.$ac_objext \ | ||
14020 | conftest$ac_exeext conftest.$ac_ext | ||
14021 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${have_flag}" >&5 | ||
14022 | $as_echo "${have_flag}" >&6; } | ||
14023 | |||
14024 | if test "x${have_flag}" = "xno" ; then | ||
14025 | CFLAGS="${CFLAGS_save}" | ||
14026 | fi | ||
14027 | ac_ext=c | ||
14028 | ac_cpp='$CPP $CPPFLAGS' | ||
14029 | ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' | ||
14030 | ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' | ||
14031 | ac_compiler_gnu=$ac_cv_c_compiler_gnu | ||
14032 | |||
14033 | |||
14034 | |||
14035 | ;; | ||
14036 | esac | ||
14037 | |||
14038 | |||
14039 | ### Checks for library functions | ||
14040 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 | ||
14041 | $as_echo_n "checking for library containing strerror... " >&6; } | ||
14042 | if test "${ac_cv_search_strerror+set}" = set; then : | ||
14043 | $as_echo_n "(cached) " >&6 | ||
14044 | else | ||
14045 | ac_func_search_save_LIBS=$LIBS | ||
14046 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14047 | /* end confdefs.h. */ | ||
14048 | |||
14049 | /* Override any GCC internal prototype to avoid an error. | ||
14050 | Use char because int might match the return type of a GCC | ||
14051 | builtin and then its argument prototype would still apply. */ | ||
14052 | #ifdef __cplusplus | ||
14053 | extern "C" | ||
14054 | #endif | ||
14055 | char strerror (); | ||
14056 | int | ||
14057 | main () | ||
14058 | { | ||
14059 | return strerror (); | ||
14060 | ; | ||
14061 | return 0; | ||
14062 | } | ||
14063 | _ACEOF | ||
14064 | for ac_lib in '' cposix; do | ||
14065 | if test -z "$ac_lib"; then | ||
14066 | ac_res="none required" | ||
14067 | else | ||
14068 | ac_res=-l$ac_lib | ||
14069 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
14070 | fi | ||
14071 | if ac_fn_c_try_link "$LINENO"; then : | ||
14072 | ac_cv_search_strerror=$ac_res | ||
14073 | fi | ||
14074 | rm -f core conftest.err conftest.$ac_objext \ | ||
14075 | conftest$ac_exeext | ||
14076 | if test "${ac_cv_search_strerror+set}" = set; then : | ||
14077 | break | ||
14078 | fi | ||
14079 | done | ||
14080 | if test "${ac_cv_search_strerror+set}" = set; then : | ||
14081 | |||
14082 | else | ||
14083 | ac_cv_search_strerror=no | ||
14084 | fi | ||
14085 | rm conftest.$ac_ext | ||
14086 | LIBS=$ac_func_search_save_LIBS | ||
14087 | fi | ||
14088 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5 | ||
14089 | $as_echo "$ac_cv_search_strerror" >&6; } | ||
14090 | ac_res=$ac_cv_search_strerror | ||
14091 | if test "$ac_res" != no; then : | ||
14092 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
14093 | |||
14094 | fi | ||
14095 | |||
14096 | # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works | ||
14097 | # for constant arguments. Useless! | ||
14098 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 | ||
14099 | $as_echo_n "checking for working alloca.h... " >&6; } | ||
14100 | if test "${ac_cv_working_alloca_h+set}" = set; then : | ||
14101 | $as_echo_n "(cached) " >&6 | ||
14102 | else | ||
14103 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14104 | /* end confdefs.h. */ | ||
14105 | #include <alloca.h> | ||
14106 | int | ||
14107 | main () | ||
14108 | { | ||
14109 | char *p = (char *) alloca (2 * sizeof (int)); | ||
14110 | if (p) return 0; | ||
14111 | ; | ||
14112 | return 0; | ||
14113 | } | ||
14114 | _ACEOF | ||
14115 | if ac_fn_c_try_link "$LINENO"; then : | ||
14116 | ac_cv_working_alloca_h=yes | ||
14117 | else | ||
14118 | ac_cv_working_alloca_h=no | ||
14119 | fi | ||
14120 | rm -f core conftest.err conftest.$ac_objext \ | ||
14121 | conftest$ac_exeext conftest.$ac_ext | ||
14122 | fi | ||
14123 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 | ||
14124 | $as_echo "$ac_cv_working_alloca_h" >&6; } | ||
14125 | if test $ac_cv_working_alloca_h = yes; then | ||
14126 | |||
14127 | $as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h | ||
14128 | |||
14129 | fi | ||
14130 | |||
14131 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 | ||
14132 | $as_echo_n "checking for alloca... " >&6; } | ||
14133 | if test "${ac_cv_func_alloca_works+set}" = set; then : | ||
14134 | $as_echo_n "(cached) " >&6 | ||
14135 | else | ||
14136 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14137 | /* end confdefs.h. */ | ||
14138 | #ifdef __GNUC__ | ||
14139 | # define alloca __builtin_alloca | ||
14140 | #else | ||
14141 | # ifdef _MSC_VER | ||
14142 | # include <malloc.h> | ||
14143 | # define alloca _alloca | ||
14144 | # else | ||
14145 | # ifdef HAVE_ALLOCA_H | ||
14146 | # include <alloca.h> | ||
14147 | # else | ||
14148 | # ifdef _AIX | ||
14149 | #pragma alloca | ||
14150 | # else | ||
14151 | # ifndef alloca /* predefined by HP cc +Olibcalls */ | ||
14152 | char *alloca (); | ||
14153 | # endif | ||
14154 | # endif | ||
14155 | # endif | ||
14156 | # endif | ||
14157 | #endif | ||
14158 | |||
14159 | int | ||
14160 | main () | ||
14161 | { | ||
14162 | char *p = (char *) alloca (1); | ||
14163 | if (p) return 0; | ||
14164 | ; | ||
14165 | return 0; | ||
14166 | } | ||
14167 | _ACEOF | ||
14168 | if ac_fn_c_try_link "$LINENO"; then : | ||
14169 | ac_cv_func_alloca_works=yes | ||
14170 | else | ||
14171 | ac_cv_func_alloca_works=no | ||
14172 | fi | ||
14173 | rm -f core conftest.err conftest.$ac_objext \ | ||
14174 | conftest$ac_exeext conftest.$ac_ext | ||
14175 | fi | ||
14176 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 | ||
14177 | $as_echo "$ac_cv_func_alloca_works" >&6; } | ||
14178 | |||
14179 | if test $ac_cv_func_alloca_works = yes; then | ||
14180 | |||
14181 | $as_echo "#define HAVE_ALLOCA 1" >>confdefs.h | ||
14182 | |||
14183 | else | ||
14184 | # The SVR3 libPW and SVR4 libucb both contain incompatible functions | ||
14185 | # that cause trouble. Some versions do not even contain alloca or | ||
14186 | # contain a buggy version. If you still want to use their alloca, | ||
14187 | # use ar to extract alloca.o from them instead of compiling alloca.c. | ||
14188 | |||
14189 | ALLOCA=\${LIBOBJDIR}alloca.$ac_objext | ||
14190 | |||
14191 | $as_echo "#define C_ALLOCA 1" >>confdefs.h | ||
14192 | |||
14193 | |||
14194 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 | ||
14195 | $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } | ||
14196 | if test "${ac_cv_os_cray+set}" = set; then : | ||
14197 | $as_echo_n "(cached) " >&6 | ||
14198 | else | ||
14199 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14200 | /* end confdefs.h. */ | ||
14201 | #if defined CRAY && ! defined CRAY2 | ||
14202 | webecray | ||
14203 | #else | ||
14204 | wenotbecray | ||
14205 | #endif | ||
14206 | |||
14207 | _ACEOF | ||
14208 | if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | | ||
14209 | $EGREP "webecray" >/dev/null 2>&1; then : | ||
14210 | ac_cv_os_cray=yes | ||
14211 | else | ||
14212 | ac_cv_os_cray=no | ||
14213 | fi | ||
14214 | rm -f conftest* | ||
14215 | |||
14216 | fi | ||
14217 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 | ||
14218 | $as_echo "$ac_cv_os_cray" >&6; } | ||
14219 | if test $ac_cv_os_cray = yes; then | ||
14220 | for ac_func in _getb67 GETB67 getb67; do | ||
14221 | as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` | ||
14222 | ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" | ||
14223 | if eval test \"x\$"$as_ac_var"\" = x"yes"; then : | ||
14224 | |||
14225 | cat >>confdefs.h <<_ACEOF | ||
14226 | #define CRAY_STACKSEG_END $ac_func | ||
14227 | _ACEOF | ||
14228 | |||
14229 | break | ||
14230 | fi | ||
14231 | |||
14232 | done | ||
14233 | fi | ||
14234 | |||
14235 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 | ||
14236 | $as_echo_n "checking stack direction for C alloca... " >&6; } | ||
14237 | if test "${ac_cv_c_stack_direction+set}" = set; then : | ||
14238 | $as_echo_n "(cached) " >&6 | ||
14239 | else | ||
14240 | if test "$cross_compiling" = yes; then : | ||
14241 | ac_cv_c_stack_direction=0 | ||
14242 | else | ||
14243 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14244 | /* end confdefs.h. */ | ||
14245 | $ac_includes_default | ||
14246 | int | ||
14247 | find_stack_direction () | ||
14248 | { | ||
14249 | static char *addr = 0; | ||
14250 | auto char dummy; | ||
14251 | if (addr == 0) | ||
14252 | { | ||
14253 | addr = &dummy; | ||
14254 | return find_stack_direction (); | ||
14255 | } | ||
14256 | else | ||
14257 | return (&dummy > addr) ? 1 : -1; | ||
14258 | } | ||
14259 | |||
14260 | int | ||
14261 | main () | ||
14262 | { | ||
14263 | return find_stack_direction () < 0; | ||
14264 | } | ||
14265 | _ACEOF | ||
14266 | if ac_fn_c_try_run "$LINENO"; then : | ||
14267 | ac_cv_c_stack_direction=1 | ||
14268 | else | ||
14269 | ac_cv_c_stack_direction=-1 | ||
14270 | fi | ||
14271 | rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ | ||
14272 | conftest.$ac_objext conftest.beam conftest.$ac_ext | ||
14273 | fi | ||
14274 | |||
14275 | fi | ||
14276 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 | ||
14277 | $as_echo "$ac_cv_c_stack_direction" >&6; } | ||
14278 | cat >>confdefs.h <<_ACEOF | ||
14279 | #define STACK_DIRECTION $ac_cv_c_stack_direction | ||
14280 | _ACEOF | ||
14281 | |||
14282 | |||
14283 | fi | ||
14284 | |||
14285 | |||
14286 | for ac_func in fmemopen open_memstream realpath | ||
14287 | do : | ||
14288 | as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` | ||
14289 | ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" | ||
14290 | if eval test \"x\$"$as_ac_var"\" = x"yes"; then : | ||
14291 | cat >>confdefs.h <<_ACEOF | ||
14292 | #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 | ||
14293 | _ACEOF | ||
14294 | |||
14295 | fi | ||
14296 | done | ||
14297 | |||
14298 | |||
14299 | |||
14300 | |||
14301 | ac_fn_c_check_header_mongrel "$LINENO" "fnmatch.h" "ac_cv_header_fnmatch_h" "$ac_includes_default" | ||
14302 | if test "x$ac_cv_header_fnmatch_h" = x""yes; then : | ||
14303 | _efl_have_fnmatch="yes" | ||
14304 | else | ||
14305 | _efl_have_fnmatch="no" | ||
14306 | fi | ||
14307 | |||
14308 | |||
14309 | |||
14310 | if test "x${_efl_have_fnmatch}" = "xyes" ; then | ||
14311 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing fnmatch" >&5 | ||
14312 | $as_echo_n "checking for library containing fnmatch... " >&6; } | ||
14313 | if test "${ac_cv_search_fnmatch+set}" = set; then : | ||
14314 | $as_echo_n "(cached) " >&6 | ||
14315 | else | ||
14316 | ac_func_search_save_LIBS=$LIBS | ||
14317 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14318 | /* end confdefs.h. */ | ||
14319 | |||
14320 | /* Override any GCC internal prototype to avoid an error. | ||
14321 | Use char because int might match the return type of a GCC | ||
14322 | builtin and then its argument prototype would still apply. */ | ||
14323 | #ifdef __cplusplus | ||
14324 | extern "C" | ||
14325 | #endif | ||
14326 | char fnmatch (); | ||
14327 | int | ||
14328 | main () | ||
14329 | { | ||
14330 | return fnmatch (); | ||
14331 | ; | ||
14332 | return 0; | ||
14333 | } | ||
14334 | _ACEOF | ||
14335 | for ac_lib in '' fnmatch evil iberty; do | ||
14336 | if test -z "$ac_lib"; then | ||
14337 | ac_res="none required" | ||
14338 | else | ||
14339 | ac_res=-l$ac_lib | ||
14340 | LIBS="-l$ac_lib $ac_func_search_save_LIBS" | ||
14341 | fi | ||
14342 | if ac_fn_c_try_link "$LINENO"; then : | ||
14343 | ac_cv_search_fnmatch=$ac_res | ||
14344 | fi | ||
14345 | rm -f core conftest.err conftest.$ac_objext \ | ||
14346 | conftest$ac_exeext | ||
14347 | if test "${ac_cv_search_fnmatch+set}" = set; then : | ||
14348 | break | ||
14349 | fi | ||
14350 | done | ||
14351 | if test "${ac_cv_search_fnmatch+set}" = set; then : | ||
14352 | |||
14353 | else | ||
14354 | ac_cv_search_fnmatch=no | ||
14355 | fi | ||
14356 | rm conftest.$ac_ext | ||
14357 | LIBS=$ac_func_search_save_LIBS | ||
14358 | fi | ||
14359 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fnmatch" >&5 | ||
14360 | $as_echo "$ac_cv_search_fnmatch" >&6; } | ||
14361 | ac_res=$ac_cv_search_fnmatch | ||
14362 | if test "$ac_res" != no; then : | ||
14363 | test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" | ||
14364 | _efl_have_fnmatch="yes" | ||
14365 | else | ||
14366 | _efl_have_fnmatch="no" | ||
14367 | fi | ||
14368 | |||
14369 | fi | ||
14370 | |||
14371 | EFL_FNMATCH_LIBS="" | ||
14372 | |||
14373 | if (! test "x${ac_cv_search_fnmatch}" = "xnone required") && (! test "x${ac_cv_search_fnmatch}" = "xno") && (! test "x${ac_cv_search_fnmatch}" = "x-levil") ; then | ||
14374 | EFL_FNMATCH_LIBS=${ac_cv_search_fnmatch} | ||
14375 | fi | ||
14376 | |||
14377 | if test "x${_efl_have_fnmatch}" != "xyes" -a "x${enable_exotic}" = "xyes"; then | ||
14378 | LDFLAGS_SAVE="$LDFLAGS" | ||
14379 | LDFLAGS="$LDFLAGS $EXOTIC_LIBS" | ||
14380 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fnmatch in -lexotic" >&5 | ||
14381 | $as_echo_n "checking for fnmatch in -lexotic... " >&6; } | ||
14382 | if test "${ac_cv_lib_exotic_fnmatch+set}" = set; then : | ||
14383 | $as_echo_n "(cached) " >&6 | ||
14384 | else | ||
14385 | ac_check_lib_save_LIBS=$LIBS | ||
14386 | LIBS="-lexotic $LIBS" | ||
14387 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
14388 | /* end confdefs.h. */ | ||
14389 | |||
14390 | /* Override any GCC internal prototype to avoid an error. | ||
14391 | Use char because int might match the return type of a GCC | ||
14392 | builtin and then its argument prototype would still apply. */ | ||
14393 | #ifdef __cplusplus | ||
14394 | extern "C" | ||
14395 | #endif | ||
14396 | char fnmatch (); | ||
14397 | int | ||
14398 | main () | ||
14399 | { | ||
14400 | return fnmatch (); | ||
14401 | ; | ||
14402 | return 0; | ||
14403 | } | ||
14404 | _ACEOF | ||
14405 | if ac_fn_c_try_link "$LINENO"; then : | ||
14406 | ac_cv_lib_exotic_fnmatch=yes | ||
14407 | else | ||
14408 | ac_cv_lib_exotic_fnmatch=no | ||
14409 | fi | ||
14410 | rm -f core conftest.err conftest.$ac_objext \ | ||
14411 | conftest$ac_exeext conftest.$ac_ext | ||
14412 | LIBS=$ac_check_lib_save_LIBS | ||
14413 | fi | ||
14414 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_exotic_fnmatch" >&5 | ||
14415 | $as_echo "$ac_cv_lib_exotic_fnmatch" >&6; } | ||
14416 | if test "x$ac_cv_lib_exotic_fnmatch" = x""yes; then : | ||
14417 | _efl_have_fnmatch="yes" | ||
14418 | else | ||
14419 | _efl_have_fnmatch="no" | ||
14420 | fi | ||
14421 | |||
14422 | |||
14423 | if test "x${_efl_have_fnmatch}" = "xyes"; then | ||
14424 | EFL_FNMATCH_LIBS="exotic" | ||
14425 | fi | ||
14426 | fi | ||
14427 | |||
14428 | |||
14429 | |||
14430 | if test "x$_efl_have_fnmatch" = "xyes"; then : | ||
14431 | |||
14432 | else | ||
14433 | as_fn_error $? "Cannot find fnmatch()" "$LINENO" 5 | ||
14434 | fi | ||
14435 | |||
14436 | |||
14437 | |||
14438 | |||
14439 | |||
14440 | |||
14441 | ac_config_files="$ac_config_files Makefile eet.pc doc/Makefile doc/Doxyfile doc/eet.dox src/Makefile src/lib/Makefile src/bin/Makefile src/tests/Makefile src/examples/Makefile eet.spec" | ||
14442 | |||
14443 | cat >confcache <<\_ACEOF | ||
14444 | # This file is a shell script that caches the results of configure | ||
14445 | # tests run on this system so they can be shared between configure | ||
14446 | # scripts and configure runs, see configure's option --config-cache. | ||
14447 | # It is not useful on other systems. If it contains results you don't | ||
14448 | # want to keep, you may remove or edit it. | ||
14449 | # | ||
14450 | # config.status only pays attention to the cache file if you give it | ||
14451 | # the --recheck option to rerun configure. | ||
14452 | # | ||
14453 | # `ac_cv_env_foo' variables (set or unset) will be overridden when | ||
14454 | # loading this file, other *unset* `ac_cv_foo' will be assigned the | ||
14455 | # following values. | ||
14456 | |||
14457 | _ACEOF | ||
14458 | |||
14459 | # The following way of writing the cache mishandles newlines in values, | ||
14460 | # but we know of no workaround that is simple, portable, and efficient. | ||
14461 | # So, we kill variables containing newlines. | ||
14462 | # Ultrix sh set writes to stderr and can't be redirected directly, | ||
14463 | # and sets the high bit in the cache file unless we assign to the vars. | ||
14464 | ( | ||
14465 | for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do | ||
14466 | eval ac_val=\$$ac_var | ||
14467 | case $ac_val in #( | ||
14468 | *${as_nl}*) | ||
14469 | case $ac_var in #( | ||
14470 | *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 | ||
14471 | $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; | ||
14472 | esac | ||
14473 | case $ac_var in #( | ||
14474 | _ | IFS | as_nl) ;; #( | ||
14475 | BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( | ||
14476 | *) { eval $ac_var=; unset $ac_var;} ;; | ||
14477 | esac ;; | ||
14478 | esac | ||
14479 | done | ||
14480 | |||
14481 | (set) 2>&1 | | ||
14482 | case $as_nl`(ac_space=' '; set) 2>&1` in #( | ||
14483 | *${as_nl}ac_space=\ *) | ||
14484 | # `set' does not quote correctly, so add quotes: double-quote | ||
14485 | # substitution turns \\\\ into \\, and sed turns \\ into \. | ||
14486 | sed -n \ | ||
14487 | "s/'/'\\\\''/g; | ||
14488 | s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" | ||
14489 | ;; #( | ||
14490 | *) | ||
14491 | # `set' quotes correctly as required by POSIX, so do not add quotes. | ||
14492 | sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" | ||
14493 | ;; | ||
14494 | esac | | ||
14495 | sort | ||
14496 | ) | | ||
14497 | sed ' | ||
14498 | /^ac_cv_env_/b end | ||
14499 | t clear | ||
14500 | :clear | ||
14501 | s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ | ||
14502 | t end | ||
14503 | s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ | ||
14504 | :end' >>confcache | ||
14505 | if diff "$cache_file" confcache >/dev/null 2>&1; then :; else | ||
14506 | if test -w "$cache_file"; then | ||
14507 | test "x$cache_file" != "x/dev/null" && | ||
14508 | { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 | ||
14509 | $as_echo "$as_me: updating cache $cache_file" >&6;} | ||
14510 | cat confcache >$cache_file | ||
14511 | else | ||
14512 | { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 | ||
14513 | $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} | ||
14514 | fi | ||
14515 | fi | ||
14516 | rm -f confcache | ||
14517 | |||
14518 | test "x$prefix" = xNONE && prefix=$ac_default_prefix | ||
14519 | # Let make expand exec_prefix. | ||
14520 | test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' | ||
14521 | |||
14522 | DEFS=-DHAVE_CONFIG_H | ||
14523 | |||
14524 | ac_libobjs= | ||
14525 | ac_ltlibobjs= | ||
14526 | U= | ||
14527 | for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue | ||
14528 | # 1. Remove the extension, and $U if already installed. | ||
14529 | ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' | ||
14530 | ac_i=`$as_echo "$ac_i" | sed "$ac_script"` | ||
14531 | # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR | ||
14532 | # will be set to the directory where LIBOBJS objects are built. | ||
14533 | as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" | ||
14534 | as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' | ||
14535 | done | ||
14536 | LIBOBJS=$ac_libobjs | ||
14537 | |||
14538 | LTLIBOBJS=$ac_ltlibobjs | ||
14539 | |||
14540 | |||
14541 | if test -n "$EXEEXT"; then | ||
14542 | am__EXEEXT_TRUE= | ||
14543 | am__EXEEXT_FALSE='#' | ||
14544 | else | ||
14545 | am__EXEEXT_TRUE='#' | ||
14546 | am__EXEEXT_FALSE= | ||
14547 | fi | ||
14548 | |||
14549 | if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then | ||
14550 | as_fn_error $? "conditional \"AMDEP\" was never defined. | ||
14551 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 | ||
14552 | fi | ||
14553 | if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then | ||
14554 | as_fn_error $? "conditional \"am__fastdepCC\" was never defined. | ||
14555 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 | ||
14556 | fi | ||
14557 | if test -z "${EET_AMALGAMATION_TRUE}" && test -z "${EET_AMALGAMATION_FALSE}"; then | ||
14558 | as_fn_error $? "conditional \"EET_AMALGAMATION\" was never defined. | ||
14559 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 | ||
14560 | fi | ||
14561 | if test -z "${BUILD_EET_TRUE}" && test -z "${BUILD_EET_FALSE}"; then | ||
14562 | as_fn_error $? "conditional \"BUILD_EET\" was never defined. | ||
14563 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 | ||
14564 | fi | ||
14565 | if test -z "${INSTALL_EXAMPLES_TRUE}" && test -z "${INSTALL_EXAMPLES_FALSE}"; then | ||
14566 | as_fn_error $? "conditional \"INSTALL_EXAMPLES\" was never defined. | ||
14567 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 | ||
14568 | fi | ||
14569 | if test -z "${BUILD_EXAMPLES_TRUE}" && test -z "${BUILD_EXAMPLES_FALSE}"; then | ||
14570 | as_fn_error $? "conditional \"BUILD_EXAMPLES\" was never defined. | ||
14571 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 | ||
14572 | fi | ||
14573 | if test -z "${EFL_ENABLE_TESTS_TRUE}" && test -z "${EFL_ENABLE_TESTS_FALSE}"; then | ||
14574 | as_fn_error $? "conditional \"EFL_ENABLE_TESTS\" was never defined. | ||
14575 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 | ||
14576 | fi | ||
14577 | if test -z "${EFL_ENABLE_COVERAGE_TRUE}" && test -z "${EFL_ENABLE_COVERAGE_FALSE}"; then | ||
14578 | as_fn_error $? "conditional \"EFL_ENABLE_COVERAGE\" was never defined. | ||
14579 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 | ||
14580 | fi | ||
14581 | if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then | ||
14582 | as_fn_error $? "conditional \"am__fastdepCC\" was never defined. | ||
14583 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 | ||
14584 | fi | ||
14585 | if test -z "${EFL_BUILD_DOC_TRUE}" && test -z "${EFL_BUILD_DOC_FALSE}"; then | ||
14586 | as_fn_error $? "conditional \"EFL_BUILD_DOC\" was never defined. | ||
14587 | Usually this means the macro was only invoked conditionally." "$LINENO" 5 | ||
14588 | fi | ||
14589 | |||
14590 | : ${CONFIG_STATUS=./config.status} | ||
14591 | ac_write_fail=0 | ||
14592 | ac_clean_files_save=$ac_clean_files | ||
14593 | ac_clean_files="$ac_clean_files $CONFIG_STATUS" | ||
14594 | { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 | ||
14595 | $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} | ||
14596 | as_write_fail=0 | ||
14597 | cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 | ||
14598 | #! $SHELL | ||
14599 | # Generated by $as_me. | ||
14600 | # Run this file to recreate the current configuration. | ||
14601 | # Compiler output produced by configure, useful for debugging | ||
14602 | # configure, is in config.log if it exists. | ||
14603 | |||
14604 | debug=false | ||
14605 | ac_cs_recheck=false | ||
14606 | ac_cs_silent=false | ||
14607 | |||
14608 | SHELL=\${CONFIG_SHELL-$SHELL} | ||
14609 | export SHELL | ||
14610 | _ASEOF | ||
14611 | cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 | ||
14612 | ## -------------------- ## | ||
14613 | ## M4sh Initialization. ## | ||
14614 | ## -------------------- ## | ||
14615 | |||
14616 | # Be more Bourne compatible | ||
14617 | DUALCASE=1; export DUALCASE # for MKS sh | ||
14618 | if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : | ||
14619 | emulate sh | ||
14620 | NULLCMD=: | ||
14621 | # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which | ||
14622 | # is contrary to our usage. Disable this feature. | ||
14623 | alias -g '${1+"$@"}'='"$@"' | ||
14624 | setopt NO_GLOB_SUBST | ||
14625 | else | ||
14626 | case `(set -o) 2>/dev/null` in #( | ||
14627 | *posix*) : | ||
14628 | set -o posix ;; #( | ||
14629 | *) : | ||
14630 | ;; | ||
14631 | esac | ||
14632 | fi | ||
14633 | |||
14634 | |||
14635 | as_nl=' | ||
14636 | ' | ||
14637 | export as_nl | ||
14638 | # Printing a long string crashes Solaris 7 /usr/bin/printf. | ||
14639 | as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' | ||
14640 | as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo | ||
14641 | as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo | ||
14642 | # Prefer a ksh shell builtin over an external printf program on Solaris, | ||
14643 | # but without wasting forks for bash or zsh. | ||
14644 | if test -z "$BASH_VERSION$ZSH_VERSION" \ | ||
14645 | && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then | ||
14646 | as_echo='print -r --' | ||
14647 | as_echo_n='print -rn --' | ||
14648 | elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then | ||
14649 | as_echo='printf %s\n' | ||
14650 | as_echo_n='printf %s' | ||
14651 | else | ||
14652 | if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then | ||
14653 | as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' | ||
14654 | as_echo_n='/usr/ucb/echo -n' | ||
14655 | else | ||
14656 | as_echo_body='eval expr "X$1" : "X\\(.*\\)"' | ||
14657 | as_echo_n_body='eval | ||
14658 | arg=$1; | ||
14659 | case $arg in #( | ||
14660 | *"$as_nl"*) | ||
14661 | expr "X$arg" : "X\\(.*\\)$as_nl"; | ||
14662 | arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; | ||
14663 | esac; | ||
14664 | expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" | ||
14665 | ' | ||
14666 | export as_echo_n_body | ||
14667 | as_echo_n='sh -c $as_echo_n_body as_echo' | ||
14668 | fi | ||
14669 | export as_echo_body | ||
14670 | as_echo='sh -c $as_echo_body as_echo' | ||
14671 | fi | ||
14672 | |||
14673 | # The user is always right. | ||
14674 | if test "${PATH_SEPARATOR+set}" != set; then | ||
14675 | PATH_SEPARATOR=: | ||
14676 | (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { | ||
14677 | (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || | ||
14678 | PATH_SEPARATOR=';' | ||
14679 | } | ||
14680 | fi | ||
14681 | |||
14682 | |||
14683 | # IFS | ||
14684 | # We need space, tab and new line, in precisely that order. Quoting is | ||
14685 | # there to prevent editors from complaining about space-tab. | ||
14686 | # (If _AS_PATH_WALK were called with IFS unset, it would disable word | ||
14687 | # splitting by setting IFS to empty value.) | ||
14688 | IFS=" "" $as_nl" | ||
14689 | |||
14690 | # Find who we are. Look in the path if we contain no directory separator. | ||
14691 | case $0 in #(( | ||
14692 | *[\\/]* ) as_myself=$0 ;; | ||
14693 | *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
14694 | for as_dir in $PATH | ||
14695 | do | ||
14696 | IFS=$as_save_IFS | ||
14697 | test -z "$as_dir" && as_dir=. | ||
14698 | test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break | ||
14699 | done | ||
14700 | IFS=$as_save_IFS | ||
14701 | |||
14702 | ;; | ||
14703 | esac | ||
14704 | # We did not find ourselves, most probably we were run as `sh COMMAND' | ||
14705 | # in which case we are not to be found in the path. | ||
14706 | if test "x$as_myself" = x; then | ||
14707 | as_myself=$0 | ||
14708 | fi | ||
14709 | if test ! -f "$as_myself"; then | ||
14710 | $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 | ||
14711 | exit 1 | ||
14712 | fi | ||
14713 | |||
14714 | # Unset variables that we do not need and which cause bugs (e.g. in | ||
14715 | # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" | ||
14716 | # suppresses any "Segmentation fault" message there. '((' could | ||
14717 | # trigger a bug in pdksh 5.2.14. | ||
14718 | for as_var in BASH_ENV ENV MAIL MAILPATH | ||
14719 | do eval test x\${$as_var+set} = xset \ | ||
14720 | && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : | ||
14721 | done | ||
14722 | PS1='$ ' | ||
14723 | PS2='> ' | ||
14724 | PS4='+ ' | ||
14725 | |||
14726 | # NLS nuisances. | ||
14727 | LC_ALL=C | ||
14728 | export LC_ALL | ||
14729 | LANGUAGE=C | ||
14730 | export LANGUAGE | ||
14731 | |||
14732 | # CDPATH. | ||
14733 | (unset CDPATH) >/dev/null 2>&1 && unset CDPATH | ||
14734 | |||
14735 | |||
14736 | # as_fn_error STATUS ERROR [LINENO LOG_FD] | ||
14737 | # ---------------------------------------- | ||
14738 | # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are | ||
14739 | # provided, also output the error to LOG_FD, referencing LINENO. Then exit the | ||
14740 | # script with STATUS, using 1 if that was 0. | ||
14741 | as_fn_error () | ||
14742 | { | ||
14743 | as_status=$1; test $as_status -eq 0 && as_status=1 | ||
14744 | if test "$4"; then | ||
14745 | as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack | ||
14746 | $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 | ||
14747 | fi | ||
14748 | $as_echo "$as_me: error: $2" >&2 | ||
14749 | as_fn_exit $as_status | ||
14750 | } # as_fn_error | ||
14751 | |||
14752 | |||
14753 | # as_fn_set_status STATUS | ||
14754 | # ----------------------- | ||
14755 | # Set $? to STATUS, without forking. | ||
14756 | as_fn_set_status () | ||
14757 | { | ||
14758 | return $1 | ||
14759 | } # as_fn_set_status | ||
14760 | |||
14761 | # as_fn_exit STATUS | ||
14762 | # ----------------- | ||
14763 | # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. | ||
14764 | as_fn_exit () | ||
14765 | { | ||
14766 | set +e | ||
14767 | as_fn_set_status $1 | ||
14768 | exit $1 | ||
14769 | } # as_fn_exit | ||
14770 | |||
14771 | # as_fn_unset VAR | ||
14772 | # --------------- | ||
14773 | # Portably unset VAR. | ||
14774 | as_fn_unset () | ||
14775 | { | ||
14776 | { eval $1=; unset $1;} | ||
14777 | } | ||
14778 | as_unset=as_fn_unset | ||
14779 | # as_fn_append VAR VALUE | ||
14780 | # ---------------------- | ||
14781 | # Append the text in VALUE to the end of the definition contained in VAR. Take | ||
14782 | # advantage of any shell optimizations that allow amortized linear growth over | ||
14783 | # repeated appends, instead of the typical quadratic growth present in naive | ||
14784 | # implementations. | ||
14785 | if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : | ||
14786 | eval 'as_fn_append () | ||
14787 | { | ||
14788 | eval $1+=\$2 | ||
14789 | }' | ||
14790 | else | ||
14791 | as_fn_append () | ||
14792 | { | ||
14793 | eval $1=\$$1\$2 | ||
14794 | } | ||
14795 | fi # as_fn_append | ||
14796 | |||
14797 | # as_fn_arith ARG... | ||
14798 | # ------------------ | ||
14799 | # Perform arithmetic evaluation on the ARGs, and store the result in the | ||
14800 | # global $as_val. Take advantage of shells that can avoid forks. The arguments | ||
14801 | # must be portable across $(()) and expr. | ||
14802 | if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : | ||
14803 | eval 'as_fn_arith () | ||
14804 | { | ||
14805 | as_val=$(( $* )) | ||
14806 | }' | ||
14807 | else | ||
14808 | as_fn_arith () | ||
14809 | { | ||
14810 | as_val=`expr "$@" || test $? -eq 1` | ||
14811 | } | ||
14812 | fi # as_fn_arith | ||
14813 | |||
14814 | |||
14815 | if expr a : '\(a\)' >/dev/null 2>&1 && | ||
14816 | test "X`expr 00001 : '.*\(...\)'`" = X001; then | ||
14817 | as_expr=expr | ||
14818 | else | ||
14819 | as_expr=false | ||
14820 | fi | ||
14821 | |||
14822 | if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then | ||
14823 | as_basename=basename | ||
14824 | else | ||
14825 | as_basename=false | ||
14826 | fi | ||
14827 | |||
14828 | if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then | ||
14829 | as_dirname=dirname | ||
14830 | else | ||
14831 | as_dirname=false | ||
14832 | fi | ||
14833 | |||
14834 | as_me=`$as_basename -- "$0" || | ||
14835 | $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ | ||
14836 | X"$0" : 'X\(//\)$' \| \ | ||
14837 | X"$0" : 'X\(/\)' \| . 2>/dev/null || | ||
14838 | $as_echo X/"$0" | | ||
14839 | sed '/^.*\/\([^/][^/]*\)\/*$/{ | ||
14840 | s//\1/ | ||
14841 | q | ||
14842 | } | ||
14843 | /^X\/\(\/\/\)$/{ | ||
14844 | s//\1/ | ||
14845 | q | ||
14846 | } | ||
14847 | /^X\/\(\/\).*/{ | ||
14848 | s//\1/ | ||
14849 | q | ||
14850 | } | ||
14851 | s/.*/./; q'` | ||
14852 | |||
14853 | # Avoid depending upon Character Ranges. | ||
14854 | as_cr_letters='abcdefghijklmnopqrstuvwxyz' | ||
14855 | as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' | ||
14856 | as_cr_Letters=$as_cr_letters$as_cr_LETTERS | ||
14857 | as_cr_digits='0123456789' | ||
14858 | as_cr_alnum=$as_cr_Letters$as_cr_digits | ||
14859 | |||
14860 | ECHO_C= ECHO_N= ECHO_T= | ||
14861 | case `echo -n x` in #((((( | ||
14862 | -n*) | ||
14863 | case `echo 'xy\c'` in | ||
14864 | *c*) ECHO_T=' ';; # ECHO_T is single tab character. | ||
14865 | xy) ECHO_C='\c';; | ||
14866 | *) echo `echo ksh88 bug on AIX 6.1` > /dev/null | ||
14867 | ECHO_T=' ';; | ||
14868 | esac;; | ||
14869 | *) | ||
14870 | ECHO_N='-n';; | ||
14871 | esac | ||
14872 | |||
14873 | rm -f conf$$ conf$$.exe conf$$.file | ||
14874 | if test -d conf$$.dir; then | ||
14875 | rm -f conf$$.dir/conf$$.file | ||
14876 | else | ||
14877 | rm -f conf$$.dir | ||
14878 | mkdir conf$$.dir 2>/dev/null | ||
14879 | fi | ||
14880 | if (echo >conf$$.file) 2>/dev/null; then | ||
14881 | if ln -s conf$$.file conf$$ 2>/dev/null; then | ||
14882 | as_ln_s='ln -s' | ||
14883 | # ... but there are two gotchas: | ||
14884 | # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. | ||
14885 | # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. | ||
14886 | # In both cases, we have to default to `cp -p'. | ||
14887 | ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || | ||
14888 | as_ln_s='cp -p' | ||
14889 | elif ln conf$$.file conf$$ 2>/dev/null; then | ||
14890 | as_ln_s=ln | ||
14891 | else | ||
14892 | as_ln_s='cp -p' | ||
14893 | fi | ||
14894 | else | ||
14895 | as_ln_s='cp -p' | ||
14896 | fi | ||
14897 | rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file | ||
14898 | rmdir conf$$.dir 2>/dev/null | ||
14899 | |||
14900 | |||
14901 | # as_fn_mkdir_p | ||
14902 | # ------------- | ||
14903 | # Create "$as_dir" as a directory, including parents if necessary. | ||
14904 | as_fn_mkdir_p () | ||
14905 | { | ||
14906 | |||
14907 | case $as_dir in #( | ||
14908 | -*) as_dir=./$as_dir;; | ||
14909 | esac | ||
14910 | test -d "$as_dir" || eval $as_mkdir_p || { | ||
14911 | as_dirs= | ||
14912 | while :; do | ||
14913 | case $as_dir in #( | ||
14914 | *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( | ||
14915 | *) as_qdir=$as_dir;; | ||
14916 | esac | ||
14917 | as_dirs="'$as_qdir' $as_dirs" | ||
14918 | as_dir=`$as_dirname -- "$as_dir" || | ||
14919 | $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ | ||
14920 | X"$as_dir" : 'X\(//\)[^/]' \| \ | ||
14921 | X"$as_dir" : 'X\(//\)$' \| \ | ||
14922 | X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || | ||
14923 | $as_echo X"$as_dir" | | ||
14924 | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ | ||
14925 | s//\1/ | ||
14926 | q | ||
14927 | } | ||
14928 | /^X\(\/\/\)[^/].*/{ | ||
14929 | s//\1/ | ||
14930 | q | ||
14931 | } | ||
14932 | /^X\(\/\/\)$/{ | ||
14933 | s//\1/ | ||
14934 | q | ||
14935 | } | ||
14936 | /^X\(\/\).*/{ | ||
14937 | s//\1/ | ||
14938 | q | ||
14939 | } | ||
14940 | s/.*/./; q'` | ||
14941 | test -d "$as_dir" && break | ||
14942 | done | ||
14943 | test -z "$as_dirs" || eval "mkdir $as_dirs" | ||
14944 | } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" | ||
14945 | |||
14946 | |||
14947 | } # as_fn_mkdir_p | ||
14948 | if mkdir -p . 2>/dev/null; then | ||
14949 | as_mkdir_p='mkdir -p "$as_dir"' | ||
14950 | else | ||
14951 | test -d ./-p && rmdir ./-p | ||
14952 | as_mkdir_p=false | ||
14953 | fi | ||
14954 | |||
14955 | if test -x / >/dev/null 2>&1; then | ||
14956 | as_test_x='test -x' | ||
14957 | else | ||
14958 | if ls -dL / >/dev/null 2>&1; then | ||
14959 | as_ls_L_option=L | ||
14960 | else | ||
14961 | as_ls_L_option= | ||
14962 | fi | ||
14963 | as_test_x=' | ||
14964 | eval sh -c '\'' | ||
14965 | if test -d "$1"; then | ||
14966 | test -d "$1/."; | ||
14967 | else | ||
14968 | case $1 in #( | ||
14969 | -*)set "./$1";; | ||
14970 | esac; | ||
14971 | case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( | ||
14972 | ???[sx]*):;;*)false;;esac;fi | ||
14973 | '\'' sh | ||
14974 | ' | ||
14975 | fi | ||
14976 | as_executable_p=$as_test_x | ||
14977 | |||
14978 | # Sed expression to map a string onto a valid CPP name. | ||
14979 | as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" | ||
14980 | |||
14981 | # Sed expression to map a string onto a valid variable name. | ||
14982 | as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" | ||
14983 | |||
14984 | |||
14985 | exec 6>&1 | ||
14986 | ## ----------------------------------- ## | ||
14987 | ## Main body of $CONFIG_STATUS script. ## | ||
14988 | ## ----------------------------------- ## | ||
14989 | _ASEOF | ||
14990 | test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 | ||
14991 | |||
14992 | cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 | ||
14993 | # Save the log message, to keep $0 and so on meaningful, and to | ||
14994 | # report actual input values of CONFIG_FILES etc. instead of their | ||
14995 | # values after options handling. | ||
14996 | ac_log=" | ||
14997 | This file was extended by eet $as_me 1.6.0-alpha, which was | ||
14998 | generated by GNU Autoconf 2.67. Invocation command line was | ||
14999 | |||
15000 | CONFIG_FILES = $CONFIG_FILES | ||
15001 | CONFIG_HEADERS = $CONFIG_HEADERS | ||
15002 | CONFIG_LINKS = $CONFIG_LINKS | ||
15003 | CONFIG_COMMANDS = $CONFIG_COMMANDS | ||
15004 | $ $0 $@ | ||
15005 | |||
15006 | on `(hostname || uname -n) 2>/dev/null | sed 1q` | ||
15007 | " | ||
15008 | |||
15009 | _ACEOF | ||
15010 | |||
15011 | case $ac_config_files in *" | ||
15012 | "*) set x $ac_config_files; shift; ac_config_files=$*;; | ||
15013 | esac | ||
15014 | |||
15015 | case $ac_config_headers in *" | ||
15016 | "*) set x $ac_config_headers; shift; ac_config_headers=$*;; | ||
15017 | esac | ||
15018 | |||
15019 | |||
15020 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 | ||
15021 | # Files that config.status was made for. | ||
15022 | config_files="$ac_config_files" | ||
15023 | config_headers="$ac_config_headers" | ||
15024 | config_commands="$ac_config_commands" | ||
15025 | |||
15026 | _ACEOF | ||
15027 | |||
15028 | cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 | ||
15029 | ac_cs_usage="\ | ||
15030 | \`$as_me' instantiates files and other configuration actions | ||
15031 | from templates according to the current configuration. Unless the files | ||
15032 | and actions are specified as TAGs, all are instantiated by default. | ||
15033 | |||
15034 | Usage: $0 [OPTION]... [TAG]... | ||
15035 | |||
15036 | -h, --help print this help, then exit | ||
15037 | -V, --version print version number and configuration settings, then exit | ||
15038 | --config print configuration, then exit | ||
15039 | -q, --quiet, --silent | ||
15040 | do not print progress messages | ||
15041 | -d, --debug don't remove temporary files | ||
15042 | --recheck update $as_me by reconfiguring in the same conditions | ||
15043 | --file=FILE[:TEMPLATE] | ||
15044 | instantiate the configuration file FILE | ||
15045 | --header=FILE[:TEMPLATE] | ||
15046 | instantiate the configuration header FILE | ||
15047 | |||
15048 | Configuration files: | ||
15049 | $config_files | ||
15050 | |||
15051 | Configuration headers: | ||
15052 | $config_headers | ||
15053 | |||
15054 | Configuration commands: | ||
15055 | $config_commands | ||
15056 | |||
15057 | Report bugs to <enlightenment-devel@lists.sourceforge.net>." | ||
15058 | |||
15059 | _ACEOF | ||
15060 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 | ||
15061 | ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" | ||
15062 | ac_cs_version="\\ | ||
15063 | eet config.status 1.6.0-alpha | ||
15064 | configured by $0, generated by GNU Autoconf 2.67, | ||
15065 | with options \\"\$ac_cs_config\\" | ||
15066 | |||
15067 | Copyright (C) 2010 Free Software Foundation, Inc. | ||
15068 | This config.status script is free software; the Free Software Foundation | ||
15069 | gives unlimited permission to copy, distribute and modify it." | ||
15070 | |||
15071 | ac_pwd='$ac_pwd' | ||
15072 | srcdir='$srcdir' | ||
15073 | INSTALL='$INSTALL' | ||
15074 | MKDIR_P='$MKDIR_P' | ||
15075 | AWK='$AWK' | ||
15076 | test -n "\$AWK" || AWK=awk | ||
15077 | _ACEOF | ||
15078 | |||
15079 | cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 | ||
15080 | # The default lists apply if the user does not specify any file. | ||
15081 | ac_need_defaults=: | ||
15082 | while test $# != 0 | ||
15083 | do | ||
15084 | case $1 in | ||
15085 | --*=?*) | ||
15086 | ac_option=`expr "X$1" : 'X\([^=]*\)='` | ||
15087 | ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` | ||
15088 | ac_shift=: | ||
15089 | ;; | ||
15090 | --*=) | ||
15091 | ac_option=`expr "X$1" : 'X\([^=]*\)='` | ||
15092 | ac_optarg= | ||
15093 | ac_shift=: | ||
15094 | ;; | ||
15095 | *) | ||
15096 | ac_option=$1 | ||
15097 | ac_optarg=$2 | ||
15098 | ac_shift=shift | ||
15099 | ;; | ||
15100 | esac | ||
15101 | |||
15102 | case $ac_option in | ||
15103 | # Handling of the options. | ||
15104 | -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) | ||
15105 | ac_cs_recheck=: ;; | ||
15106 | --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) | ||
15107 | $as_echo "$ac_cs_version"; exit ;; | ||
15108 | --config | --confi | --conf | --con | --co | --c ) | ||
15109 | $as_echo "$ac_cs_config"; exit ;; | ||
15110 | --debug | --debu | --deb | --de | --d | -d ) | ||
15111 | debug=: ;; | ||
15112 | --file | --fil | --fi | --f ) | ||
15113 | $ac_shift | ||
15114 | case $ac_optarg in | ||
15115 | *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; | ||
15116 | '') as_fn_error $? "missing file argument" ;; | ||
15117 | esac | ||
15118 | as_fn_append CONFIG_FILES " '$ac_optarg'" | ||
15119 | ac_need_defaults=false;; | ||
15120 | --header | --heade | --head | --hea ) | ||
15121 | $ac_shift | ||
15122 | case $ac_optarg in | ||
15123 | *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; | ||
15124 | esac | ||
15125 | as_fn_append CONFIG_HEADERS " '$ac_optarg'" | ||
15126 | ac_need_defaults=false;; | ||
15127 | --he | --h) | ||
15128 | # Conflict between --help and --header | ||
15129 | as_fn_error $? "ambiguous option: \`$1' | ||
15130 | Try \`$0 --help' for more information.";; | ||
15131 | --help | --hel | -h ) | ||
15132 | $as_echo "$ac_cs_usage"; exit ;; | ||
15133 | -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | ||
15134 | | -silent | --silent | --silen | --sile | --sil | --si | --s) | ||
15135 | ac_cs_silent=: ;; | ||
15136 | |||
15137 | # This is an error. | ||
15138 | -*) as_fn_error $? "unrecognized option: \`$1' | ||
15139 | Try \`$0 --help' for more information." ;; | ||
15140 | |||
15141 | *) as_fn_append ac_config_targets " $1" | ||
15142 | ac_need_defaults=false ;; | ||
15143 | |||
15144 | esac | ||
15145 | shift | ||
15146 | done | ||
15147 | |||
15148 | ac_configure_extra_args= | ||
15149 | |||
15150 | if $ac_cs_silent; then | ||
15151 | exec 6>/dev/null | ||
15152 | ac_configure_extra_args="$ac_configure_extra_args --silent" | ||
15153 | fi | ||
15154 | |||
15155 | _ACEOF | ||
15156 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 | ||
15157 | if \$ac_cs_recheck; then | ||
15158 | set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion | ||
15159 | shift | ||
15160 | \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 | ||
15161 | CONFIG_SHELL='$SHELL' | ||
15162 | export CONFIG_SHELL | ||
15163 | exec "\$@" | ||
15164 | fi | ||
15165 | |||
15166 | _ACEOF | ||
15167 | cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 | ||
15168 | exec 5>>config.log | ||
15169 | { | ||
15170 | echo | ||
15171 | sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX | ||
15172 | ## Running $as_me. ## | ||
15173 | _ASBOX | ||
15174 | $as_echo "$ac_log" | ||
15175 | } >&5 | ||
15176 | |||
15177 | _ACEOF | ||
15178 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 | ||
15179 | # | ||
15180 | # INIT-COMMANDS | ||
15181 | # | ||
15182 | AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" | ||
15183 | |||
15184 | |||
15185 | # The HP-UX ksh and POSIX shell print the target directory to stdout | ||
15186 | # if CDPATH is set. | ||
15187 | (unset CDPATH) >/dev/null 2>&1 && unset CDPATH | ||
15188 | |||
15189 | sed_quote_subst='$sed_quote_subst' | ||
15190 | double_quote_subst='$double_quote_subst' | ||
15191 | delay_variable_subst='$delay_variable_subst' | ||
15192 | AS='`$ECHO "X$AS" | $Xsed -e "$delay_single_quote_subst"`' | ||
15193 | DLLTOOL='`$ECHO "X$DLLTOOL" | $Xsed -e "$delay_single_quote_subst"`' | ||
15194 | OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' | ||
15195 | macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' | ||
15196 | macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' | ||
15197 | enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' | ||
15198 | enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' | ||
15199 | pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' | ||
15200 | enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' | ||
15201 | host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' | ||
15202 | host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' | ||
15203 | host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' | ||
15204 | build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' | ||
15205 | build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' | ||
15206 | build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' | ||
15207 | SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' | ||
15208 | Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' | ||
15209 | GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' | ||
15210 | EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' | ||
15211 | FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' | ||
15212 | LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' | ||
15213 | NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' | ||
15214 | LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' | ||
15215 | max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' | ||
15216 | ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' | ||
15217 | exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' | ||
15218 | lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' | ||
15219 | lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' | ||
15220 | lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' | ||
15221 | reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' | ||
15222 | reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' | ||
15223 | deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' | ||
15224 | file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' | ||
15225 | AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' | ||
15226 | AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' | ||
15227 | STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' | ||
15228 | RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' | ||
15229 | old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' | ||
15230 | old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' | ||
15231 | old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' | ||
15232 | CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' | ||
15233 | CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' | ||
15234 | compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' | ||
15235 | GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' | ||
15236 | lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' | ||
15237 | lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' | ||
15238 | 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"`' | ||
15239 | 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"`' | ||
15240 | objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' | ||
15241 | SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' | ||
15242 | ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' | ||
15243 | MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' | ||
15244 | lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' | ||
15245 | lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' | ||
15246 | lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' | ||
15247 | lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' | ||
15248 | lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' | ||
15249 | need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' | ||
15250 | DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' | ||
15251 | NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' | ||
15252 | LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' | ||
15253 | OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' | ||
15254 | OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' | ||
15255 | libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' | ||
15256 | shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' | ||
15257 | extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' | ||
15258 | archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' | ||
15259 | enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' | ||
15260 | export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' | ||
15261 | whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' | ||
15262 | compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' | ||
15263 | old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' | ||
15264 | old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' | ||
15265 | archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' | ||
15266 | archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' | ||
15267 | module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' | ||
15268 | module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' | ||
15269 | with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' | ||
15270 | allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' | ||
15271 | no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' | ||
15272 | hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' | ||
15273 | hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' | ||
15274 | hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' | ||
15275 | hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' | ||
15276 | hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' | ||
15277 | hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' | ||
15278 | hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' | ||
15279 | hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' | ||
15280 | inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' | ||
15281 | link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' | ||
15282 | fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' | ||
15283 | always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' | ||
15284 | export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' | ||
15285 | exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' | ||
15286 | include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' | ||
15287 | prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' | ||
15288 | file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' | ||
15289 | variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' | ||
15290 | need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' | ||
15291 | need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' | ||
15292 | version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' | ||
15293 | runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' | ||
15294 | shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' | ||
15295 | shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' | ||
15296 | libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' | ||
15297 | library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' | ||
15298 | soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' | ||
15299 | postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' | ||
15300 | postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' | ||
15301 | finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' | ||
15302 | finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' | ||
15303 | hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' | ||
15304 | sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' | ||
15305 | sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' | ||
15306 | hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' | ||
15307 | enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' | ||
15308 | enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' | ||
15309 | enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' | ||
15310 | old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' | ||
15311 | striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' | ||
15312 | |||
15313 | LTCC='$LTCC' | ||
15314 | LTCFLAGS='$LTCFLAGS' | ||
15315 | compiler='$compiler_DEFAULT' | ||
15316 | |||
15317 | # Quote evaled strings. | ||
15318 | for var in SED \ | ||
15319 | GREP \ | ||
15320 | EGREP \ | ||
15321 | FGREP \ | ||
15322 | LD \ | ||
15323 | NM \ | ||
15324 | LN_S \ | ||
15325 | lt_SP2NL \ | ||
15326 | lt_NL2SP \ | ||
15327 | reload_flag \ | ||
15328 | deplibs_check_method \ | ||
15329 | file_magic_cmd \ | ||
15330 | AR \ | ||
15331 | AR_FLAGS \ | ||
15332 | STRIP \ | ||
15333 | RANLIB \ | ||
15334 | CC \ | ||
15335 | CFLAGS \ | ||
15336 | compiler \ | ||
15337 | lt_cv_sys_global_symbol_pipe \ | ||
15338 | lt_cv_sys_global_symbol_to_cdecl \ | ||
15339 | lt_cv_sys_global_symbol_to_c_name_address \ | ||
15340 | lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ | ||
15341 | SHELL \ | ||
15342 | ECHO \ | ||
15343 | lt_prog_compiler_no_builtin_flag \ | ||
15344 | lt_prog_compiler_wl \ | ||
15345 | lt_prog_compiler_pic \ | ||
15346 | lt_prog_compiler_static \ | ||
15347 | lt_cv_prog_compiler_c_o \ | ||
15348 | need_locks \ | ||
15349 | DSYMUTIL \ | ||
15350 | NMEDIT \ | ||
15351 | LIPO \ | ||
15352 | OTOOL \ | ||
15353 | OTOOL64 \ | ||
15354 | shrext_cmds \ | ||
15355 | export_dynamic_flag_spec \ | ||
15356 | whole_archive_flag_spec \ | ||
15357 | compiler_needs_object \ | ||
15358 | with_gnu_ld \ | ||
15359 | allow_undefined_flag \ | ||
15360 | no_undefined_flag \ | ||
15361 | hardcode_libdir_flag_spec \ | ||
15362 | hardcode_libdir_flag_spec_ld \ | ||
15363 | hardcode_libdir_separator \ | ||
15364 | fix_srcfile_path \ | ||
15365 | exclude_expsyms \ | ||
15366 | include_expsyms \ | ||
15367 | file_list_spec \ | ||
15368 | variables_saved_for_relink \ | ||
15369 | libname_spec \ | ||
15370 | library_names_spec \ | ||
15371 | soname_spec \ | ||
15372 | finish_eval \ | ||
15373 | old_striplib \ | ||
15374 | striplib; do | ||
15375 | case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in | ||
15376 | *[\\\\\\\`\\"\\\$]*) | ||
15377 | eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" | ||
15378 | ;; | ||
15379 | *) | ||
15380 | eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" | ||
15381 | ;; | ||
15382 | esac | ||
15383 | done | ||
15384 | |||
15385 | # Double-quote double-evaled strings. | ||
15386 | for var in reload_cmds \ | ||
15387 | old_postinstall_cmds \ | ||
15388 | old_postuninstall_cmds \ | ||
15389 | old_archive_cmds \ | ||
15390 | extract_expsyms_cmds \ | ||
15391 | old_archive_from_new_cmds \ | ||
15392 | old_archive_from_expsyms_cmds \ | ||
15393 | archive_cmds \ | ||
15394 | archive_expsym_cmds \ | ||
15395 | module_cmds \ | ||
15396 | module_expsym_cmds \ | ||
15397 | export_symbols_cmds \ | ||
15398 | prelink_cmds \ | ||
15399 | postinstall_cmds \ | ||
15400 | postuninstall_cmds \ | ||
15401 | finish_cmds \ | ||
15402 | sys_lib_search_path_spec \ | ||
15403 | sys_lib_dlsearch_path_spec; do | ||
15404 | case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in | ||
15405 | *[\\\\\\\`\\"\\\$]*) | ||
15406 | eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" | ||
15407 | ;; | ||
15408 | *) | ||
15409 | eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" | ||
15410 | ;; | ||
15411 | esac | ||
15412 | done | ||
15413 | |||
15414 | # Fix-up fallback echo if it was mangled by the above quoting rules. | ||
15415 | case \$lt_ECHO in | ||
15416 | *'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` | ||
15417 | ;; | ||
15418 | esac | ||
15419 | |||
15420 | ac_aux_dir='$ac_aux_dir' | ||
15421 | xsi_shell='$xsi_shell' | ||
15422 | lt_shell_append='$lt_shell_append' | ||
15423 | |||
15424 | # See if we are running on zsh, and set the options which allow our | ||
15425 | # commands through without removal of \ escapes INIT. | ||
15426 | if test -n "\${ZSH_VERSION+set}" ; then | ||
15427 | setopt NO_GLOB_SUBST | ||
15428 | fi | ||
15429 | |||
15430 | |||
15431 | PACKAGE='$PACKAGE' | ||
15432 | VERSION='$VERSION' | ||
15433 | TIMESTAMP='$TIMESTAMP' | ||
15434 | RM='$RM' | ||
15435 | ofile='$ofile' | ||
15436 | |||
15437 | |||
15438 | |||
15439 | |||
15440 | _ACEOF | ||
15441 | |||
15442 | cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 | ||
15443 | |||
15444 | # Handling of arguments. | ||
15445 | for ac_config_target in $ac_config_targets | ||
15446 | do | ||
15447 | case $ac_config_target in | ||
15448 | "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; | ||
15449 | "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; | ||
15450 | "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; | ||
15451 | "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; | ||
15452 | "eet.pc") CONFIG_FILES="$CONFIG_FILES eet.pc" ;; | ||
15453 | "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; | ||
15454 | "doc/Doxyfile") CONFIG_FILES="$CONFIG_FILES doc/Doxyfile" ;; | ||
15455 | "doc/eet.dox") CONFIG_FILES="$CONFIG_FILES doc/eet.dox" ;; | ||
15456 | "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; | ||
15457 | "src/lib/Makefile") CONFIG_FILES="$CONFIG_FILES src/lib/Makefile" ;; | ||
15458 | "src/bin/Makefile") CONFIG_FILES="$CONFIG_FILES src/bin/Makefile" ;; | ||
15459 | "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;; | ||
15460 | "src/examples/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/Makefile" ;; | ||
15461 | "eet.spec") CONFIG_FILES="$CONFIG_FILES eet.spec" ;; | ||
15462 | |||
15463 | *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; | ||
15464 | esac | ||
15465 | done | ||
15466 | |||
15467 | |||
15468 | # If the user did not use the arguments to specify the items to instantiate, | ||
15469 | # then the envvar interface is used. Set only those that are not. | ||
15470 | # We use the long form for the default assignment because of an extremely | ||
15471 | # bizarre bug on SunOS 4.1.3. | ||
15472 | if $ac_need_defaults; then | ||
15473 | test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files | ||
15474 | test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers | ||
15475 | test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands | ||
15476 | fi | ||
15477 | |||
15478 | # Have a temporary directory for convenience. Make it in the build tree | ||
15479 | # simply because there is no reason against having it here, and in addition, | ||
15480 | # creating and moving files from /tmp can sometimes cause problems. | ||
15481 | # Hook for its removal unless debugging. | ||
15482 | # Note that there is a small window in which the directory will not be cleaned: | ||
15483 | # after its creation but before its name has been assigned to `$tmp'. | ||
15484 | $debug || | ||
15485 | { | ||
15486 | tmp= | ||
15487 | trap 'exit_status=$? | ||
15488 | { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status | ||
15489 | ' 0 | ||
15490 | trap 'as_fn_exit 1' 1 2 13 15 | ||
15491 | } | ||
15492 | # Create a (secure) tmp directory for tmp files. | ||
15493 | |||
15494 | { | ||
15495 | tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && | ||
15496 | test -n "$tmp" && test -d "$tmp" | ||
15497 | } || | ||
15498 | { | ||
15499 | tmp=./conf$$-$RANDOM | ||
15500 | (umask 077 && mkdir "$tmp") | ||
15501 | } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 | ||
15502 | |||
15503 | # Set up the scripts for CONFIG_FILES section. | ||
15504 | # No need to generate them if there are no CONFIG_FILES. | ||
15505 | # This happens for instance with `./config.status config.h'. | ||
15506 | if test -n "$CONFIG_FILES"; then | ||
15507 | |||
15508 | |||
15509 | ac_cr=`echo X | tr X '\015'` | ||
15510 | # On cygwin, bash can eat \r inside `` if the user requested igncr. | ||
15511 | # But we know of no other shell where ac_cr would be empty at this | ||
15512 | # point, so we can use a bashism as a fallback. | ||
15513 | if test "x$ac_cr" = x; then | ||
15514 | eval ac_cr=\$\'\\r\' | ||
15515 | fi | ||
15516 | ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` | ||
15517 | if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then | ||
15518 | ac_cs_awk_cr='\\r' | ||
15519 | else | ||
15520 | ac_cs_awk_cr=$ac_cr | ||
15521 | fi | ||
15522 | |||
15523 | echo 'BEGIN {' >"$tmp/subs1.awk" && | ||
15524 | _ACEOF | ||
15525 | |||
15526 | |||
15527 | { | ||
15528 | echo "cat >conf$$subs.awk <<_ACEOF" && | ||
15529 | echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && | ||
15530 | echo "_ACEOF" | ||
15531 | } >conf$$subs.sh || | ||
15532 | as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 | ||
15533 | ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` | ||
15534 | ac_delim='%!_!# ' | ||
15535 | for ac_last_try in false false false false false :; do | ||
15536 | . ./conf$$subs.sh || | ||
15537 | as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 | ||
15538 | |||
15539 | ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` | ||
15540 | if test $ac_delim_n = $ac_delim_num; then | ||
15541 | break | ||
15542 | elif $ac_last_try; then | ||
15543 | as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 | ||
15544 | else | ||
15545 | ac_delim="$ac_delim!$ac_delim _$ac_delim!! " | ||
15546 | fi | ||
15547 | done | ||
15548 | rm -f conf$$subs.sh | ||
15549 | |||
15550 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 | ||
15551 | cat >>"\$tmp/subs1.awk" <<\\_ACAWK && | ||
15552 | _ACEOF | ||
15553 | sed -n ' | ||
15554 | h | ||
15555 | s/^/S["/; s/!.*/"]=/ | ||
15556 | p | ||
15557 | g | ||
15558 | s/^[^!]*!// | ||
15559 | :repl | ||
15560 | t repl | ||
15561 | s/'"$ac_delim"'$// | ||
15562 | t delim | ||
15563 | :nl | ||
15564 | h | ||
15565 | s/\(.\{148\}\)..*/\1/ | ||
15566 | t more1 | ||
15567 | s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ | ||
15568 | p | ||
15569 | n | ||
15570 | b repl | ||
15571 | :more1 | ||
15572 | s/["\\]/\\&/g; s/^/"/; s/$/"\\/ | ||
15573 | p | ||
15574 | g | ||
15575 | s/.\{148\}// | ||
15576 | t nl | ||
15577 | :delim | ||
15578 | h | ||
15579 | s/\(.\{148\}\)..*/\1/ | ||
15580 | t more2 | ||
15581 | s/["\\]/\\&/g; s/^/"/; s/$/"/ | ||
15582 | p | ||
15583 | b | ||
15584 | :more2 | ||
15585 | s/["\\]/\\&/g; s/^/"/; s/$/"\\/ | ||
15586 | p | ||
15587 | g | ||
15588 | s/.\{148\}// | ||
15589 | t delim | ||
15590 | ' <conf$$subs.awk | sed ' | ||
15591 | /^[^""]/{ | ||
15592 | N | ||
15593 | s/\n// | ||
15594 | } | ||
15595 | ' >>$CONFIG_STATUS || ac_write_fail=1 | ||
15596 | rm -f conf$$subs.awk | ||
15597 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 | ||
15598 | _ACAWK | ||
15599 | cat >>"\$tmp/subs1.awk" <<_ACAWK && | ||
15600 | for (key in S) S_is_set[key] = 1 | ||
15601 | FS = "" | ||
15602 | |||
15603 | } | ||
15604 | { | ||
15605 | line = $ 0 | ||
15606 | nfields = split(line, field, "@") | ||
15607 | substed = 0 | ||
15608 | len = length(field[1]) | ||
15609 | for (i = 2; i < nfields; i++) { | ||
15610 | key = field[i] | ||
15611 | keylen = length(key) | ||
15612 | if (S_is_set[key]) { | ||
15613 | value = S[key] | ||
15614 | line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) | ||
15615 | len += length(value) + length(field[++i]) | ||
15616 | substed = 1 | ||
15617 | } else | ||
15618 | len += 1 + keylen | ||
15619 | } | ||
15620 | |||
15621 | print line | ||
15622 | } | ||
15623 | |||
15624 | _ACAWK | ||
15625 | _ACEOF | ||
15626 | cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 | ||
15627 | if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then | ||
15628 | sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" | ||
15629 | else | ||
15630 | cat | ||
15631 | fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ | ||
15632 | || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 | ||
15633 | _ACEOF | ||
15634 | |||
15635 | # VPATH may cause trouble with some makes, so we remove sole $(srcdir), | ||
15636 | # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and | ||
15637 | # trailing colons and then remove the whole line if VPATH becomes empty | ||
15638 | # (actually we leave an empty line to preserve line numbers). | ||
15639 | if test "x$srcdir" = x.; then | ||
15640 | ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ | ||
15641 | h | ||
15642 | s/// | ||
15643 | s/^/:/ | ||
15644 | s/[ ]*$/:/ | ||
15645 | s/:\$(srcdir):/:/g | ||
15646 | s/:\${srcdir}:/:/g | ||
15647 | s/:@srcdir@:/:/g | ||
15648 | s/^:*// | ||
15649 | s/:*$// | ||
15650 | x | ||
15651 | s/\(=[ ]*\).*/\1/ | ||
15652 | G | ||
15653 | s/\n// | ||
15654 | s/^[^=]*=[ ]*$// | ||
15655 | }' | ||
15656 | fi | ||
15657 | |||
15658 | cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 | ||
15659 | fi # test -n "$CONFIG_FILES" | ||
15660 | |||
15661 | # Set up the scripts for CONFIG_HEADERS section. | ||
15662 | # No need to generate them if there are no CONFIG_HEADERS. | ||
15663 | # This happens for instance with `./config.status Makefile'. | ||
15664 | if test -n "$CONFIG_HEADERS"; then | ||
15665 | cat >"$tmp/defines.awk" <<\_ACAWK || | ||
15666 | BEGIN { | ||
15667 | _ACEOF | ||
15668 | |||
15669 | # Transform confdefs.h into an awk script `defines.awk', embedded as | ||
15670 | # here-document in config.status, that substitutes the proper values into | ||
15671 | # config.h.in to produce config.h. | ||
15672 | |||
15673 | # Create a delimiter string that does not exist in confdefs.h, to ease | ||
15674 | # handling of long lines. | ||
15675 | ac_delim='%!_!# ' | ||
15676 | for ac_last_try in false false :; do | ||
15677 | ac_t=`sed -n "/$ac_delim/p" confdefs.h` | ||
15678 | if test -z "$ac_t"; then | ||
15679 | break | ||
15680 | elif $ac_last_try; then | ||
15681 | as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 | ||
15682 | else | ||
15683 | ac_delim="$ac_delim!$ac_delim _$ac_delim!! " | ||
15684 | fi | ||
15685 | done | ||
15686 | |||
15687 | # For the awk script, D is an array of macro values keyed by name, | ||
15688 | # likewise P contains macro parameters if any. Preserve backslash | ||
15689 | # newline sequences. | ||
15690 | |||
15691 | ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* | ||
15692 | sed -n ' | ||
15693 | s/.\{148\}/&'"$ac_delim"'/g | ||
15694 | t rset | ||
15695 | :rset | ||
15696 | s/^[ ]*#[ ]*define[ ][ ]*/ / | ||
15697 | t def | ||
15698 | d | ||
15699 | :def | ||
15700 | s/\\$// | ||
15701 | t bsnl | ||
15702 | s/["\\]/\\&/g | ||
15703 | s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ | ||
15704 | D["\1"]=" \3"/p | ||
15705 | s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p | ||
15706 | d | ||
15707 | :bsnl | ||
15708 | s/["\\]/\\&/g | ||
15709 | s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ | ||
15710 | D["\1"]=" \3\\\\\\n"\\/p | ||
15711 | t cont | ||
15712 | s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p | ||
15713 | t cont | ||
15714 | d | ||
15715 | :cont | ||
15716 | n | ||
15717 | s/.\{148\}/&'"$ac_delim"'/g | ||
15718 | t clear | ||
15719 | :clear | ||
15720 | s/\\$// | ||
15721 | t bsnlc | ||
15722 | s/["\\]/\\&/g; s/^/"/; s/$/"/p | ||
15723 | d | ||
15724 | :bsnlc | ||
15725 | s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p | ||
15726 | b cont | ||
15727 | ' <confdefs.h | sed ' | ||
15728 | s/'"$ac_delim"'/"\\\ | ||
15729 | "/g' >>$CONFIG_STATUS || ac_write_fail=1 | ||
15730 | |||
15731 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 | ||
15732 | for (key in D) D_is_set[key] = 1 | ||
15733 | FS = "" | ||
15734 | } | ||
15735 | /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { | ||
15736 | line = \$ 0 | ||
15737 | split(line, arg, " ") | ||
15738 | if (arg[1] == "#") { | ||
15739 | defundef = arg[2] | ||
15740 | mac1 = arg[3] | ||
15741 | } else { | ||
15742 | defundef = substr(arg[1], 2) | ||
15743 | mac1 = arg[2] | ||
15744 | } | ||
15745 | split(mac1, mac2, "(") #) | ||
15746 | macro = mac2[1] | ||
15747 | prefix = substr(line, 1, index(line, defundef) - 1) | ||
15748 | if (D_is_set[macro]) { | ||
15749 | # Preserve the white space surrounding the "#". | ||
15750 | print prefix "define", macro P[macro] D[macro] | ||
15751 | next | ||
15752 | } else { | ||
15753 | # Replace #undef with comments. This is necessary, for example, | ||
15754 | # in the case of _POSIX_SOURCE, which is predefined and required | ||
15755 | # on some systems where configure will not decide to define it. | ||
15756 | if (defundef == "undef") { | ||
15757 | print "/*", prefix defundef, macro, "*/" | ||
15758 | next | ||
15759 | } | ||
15760 | } | ||
15761 | } | ||
15762 | { print } | ||
15763 | _ACAWK | ||
15764 | _ACEOF | ||
15765 | cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 | ||
15766 | as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 | ||
15767 | fi # test -n "$CONFIG_HEADERS" | ||
15768 | |||
15769 | |||
15770 | eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" | ||
15771 | shift | ||
15772 | for ac_tag | ||
15773 | do | ||
15774 | case $ac_tag in | ||
15775 | :[FHLC]) ac_mode=$ac_tag; continue;; | ||
15776 | esac | ||
15777 | case $ac_mode$ac_tag in | ||
15778 | :[FHL]*:*);; | ||
15779 | :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; | ||
15780 | :[FH]-) ac_tag=-:-;; | ||
15781 | :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; | ||
15782 | esac | ||
15783 | ac_save_IFS=$IFS | ||
15784 | IFS=: | ||
15785 | set x $ac_tag | ||
15786 | IFS=$ac_save_IFS | ||
15787 | shift | ||
15788 | ac_file=$1 | ||
15789 | shift | ||
15790 | |||
15791 | case $ac_mode in | ||
15792 | :L) ac_source=$1;; | ||
15793 | :[FH]) | ||
15794 | ac_file_inputs= | ||
15795 | for ac_f | ||
15796 | do | ||
15797 | case $ac_f in | ||
15798 | -) ac_f="$tmp/stdin";; | ||
15799 | *) # Look for the file first in the build tree, then in the source tree | ||
15800 | # (if the path is not absolute). The absolute path cannot be DOS-style, | ||
15801 | # because $ac_f cannot contain `:'. | ||
15802 | test -f "$ac_f" || | ||
15803 | case $ac_f in | ||
15804 | [\\/$]*) false;; | ||
15805 | *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; | ||
15806 | esac || | ||
15807 | as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; | ||
15808 | esac | ||
15809 | case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac | ||
15810 | as_fn_append ac_file_inputs " '$ac_f'" | ||
15811 | done | ||
15812 | |||
15813 | # Let's still pretend it is `configure' which instantiates (i.e., don't | ||
15814 | # use $as_me), people would be surprised to read: | ||
15815 | # /* config.h. Generated by config.status. */ | ||
15816 | configure_input='Generated from '` | ||
15817 | $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' | ||
15818 | `' by configure.' | ||
15819 | if test x"$ac_file" != x-; then | ||
15820 | configure_input="$ac_file. $configure_input" | ||
15821 | { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 | ||
15822 | $as_echo "$as_me: creating $ac_file" >&6;} | ||
15823 | fi | ||
15824 | # Neutralize special characters interpreted by sed in replacement strings. | ||
15825 | case $configure_input in #( | ||
15826 | *\&* | *\|* | *\\* ) | ||
15827 | ac_sed_conf_input=`$as_echo "$configure_input" | | ||
15828 | sed 's/[\\\\&|]/\\\\&/g'`;; #( | ||
15829 | *) ac_sed_conf_input=$configure_input;; | ||
15830 | esac | ||
15831 | |||
15832 | case $ac_tag in | ||
15833 | *:-:* | *:-) cat >"$tmp/stdin" \ | ||
15834 | || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; | ||
15835 | esac | ||
15836 | ;; | ||
15837 | esac | ||
15838 | |||
15839 | ac_dir=`$as_dirname -- "$ac_file" || | ||
15840 | $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ | ||
15841 | X"$ac_file" : 'X\(//\)[^/]' \| \ | ||
15842 | X"$ac_file" : 'X\(//\)$' \| \ | ||
15843 | X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || | ||
15844 | $as_echo X"$ac_file" | | ||
15845 | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ | ||
15846 | s//\1/ | ||
15847 | q | ||
15848 | } | ||
15849 | /^X\(\/\/\)[^/].*/{ | ||
15850 | s//\1/ | ||
15851 | q | ||
15852 | } | ||
15853 | /^X\(\/\/\)$/{ | ||
15854 | s//\1/ | ||
15855 | q | ||
15856 | } | ||
15857 | /^X\(\/\).*/{ | ||
15858 | s//\1/ | ||
15859 | q | ||
15860 | } | ||
15861 | s/.*/./; q'` | ||
15862 | as_dir="$ac_dir"; as_fn_mkdir_p | ||
15863 | ac_builddir=. | ||
15864 | |||
15865 | case "$ac_dir" in | ||
15866 | .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; | ||
15867 | *) | ||
15868 | ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` | ||
15869 | # A ".." for each directory in $ac_dir_suffix. | ||
15870 | ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` | ||
15871 | case $ac_top_builddir_sub in | ||
15872 | "") ac_top_builddir_sub=. ac_top_build_prefix= ;; | ||
15873 | *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; | ||
15874 | esac ;; | ||
15875 | esac | ||
15876 | ac_abs_top_builddir=$ac_pwd | ||
15877 | ac_abs_builddir=$ac_pwd$ac_dir_suffix | ||
15878 | # for backward compatibility: | ||
15879 | ac_top_builddir=$ac_top_build_prefix | ||
15880 | |||
15881 | case $srcdir in | ||
15882 | .) # We are building in place. | ||
15883 | ac_srcdir=. | ||
15884 | ac_top_srcdir=$ac_top_builddir_sub | ||
15885 | ac_abs_top_srcdir=$ac_pwd ;; | ||
15886 | [\\/]* | ?:[\\/]* ) # Absolute name. | ||
15887 | ac_srcdir=$srcdir$ac_dir_suffix; | ||
15888 | ac_top_srcdir=$srcdir | ||
15889 | ac_abs_top_srcdir=$srcdir ;; | ||
15890 | *) # Relative name. | ||
15891 | ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix | ||
15892 | ac_top_srcdir=$ac_top_build_prefix$srcdir | ||
15893 | ac_abs_top_srcdir=$ac_pwd/$srcdir ;; | ||
15894 | esac | ||
15895 | ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix | ||
15896 | |||
15897 | |||
15898 | case $ac_mode in | ||
15899 | :F) | ||
15900 | # | ||
15901 | # CONFIG_FILE | ||
15902 | # | ||
15903 | |||
15904 | case $INSTALL in | ||
15905 | [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; | ||
15906 | *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; | ||
15907 | esac | ||
15908 | ac_MKDIR_P=$MKDIR_P | ||
15909 | case $MKDIR_P in | ||
15910 | [\\/$]* | ?:[\\/]* ) ;; | ||
15911 | */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; | ||
15912 | esac | ||
15913 | _ACEOF | ||
15914 | |||
15915 | cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 | ||
15916 | # If the template does not know about datarootdir, expand it. | ||
15917 | # FIXME: This hack should be removed a few years after 2.60. | ||
15918 | ac_datarootdir_hack=; ac_datarootdir_seen= | ||
15919 | ac_sed_dataroot=' | ||
15920 | /datarootdir/ { | ||
15921 | p | ||
15922 | q | ||
15923 | } | ||
15924 | /@datadir@/p | ||
15925 | /@docdir@/p | ||
15926 | /@infodir@/p | ||
15927 | /@localedir@/p | ||
15928 | /@mandir@/p' | ||
15929 | case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in | ||
15930 | *datarootdir*) ac_datarootdir_seen=yes;; | ||
15931 | *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) | ||
15932 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 | ||
15933 | $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} | ||
15934 | _ACEOF | ||
15935 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 | ||
15936 | ac_datarootdir_hack=' | ||
15937 | s&@datadir@&$datadir&g | ||
15938 | s&@docdir@&$docdir&g | ||
15939 | s&@infodir@&$infodir&g | ||
15940 | s&@localedir@&$localedir&g | ||
15941 | s&@mandir@&$mandir&g | ||
15942 | s&\\\${datarootdir}&$datarootdir&g' ;; | ||
15943 | esac | ||
15944 | _ACEOF | ||
15945 | |||
15946 | # Neutralize VPATH when `$srcdir' = `.'. | ||
15947 | # Shell code in configure.ac might set extrasub. | ||
15948 | # FIXME: do we really want to maintain this feature? | ||
15949 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 | ||
15950 | ac_sed_extra="$ac_vpsub | ||
15951 | $extrasub | ||
15952 | _ACEOF | ||
15953 | cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 | ||
15954 | :t | ||
15955 | /@[a-zA-Z_][a-zA-Z_0-9]*@/!b | ||
15956 | s|@configure_input@|$ac_sed_conf_input|;t t | ||
15957 | s&@top_builddir@&$ac_top_builddir_sub&;t t | ||
15958 | s&@top_build_prefix@&$ac_top_build_prefix&;t t | ||
15959 | s&@srcdir@&$ac_srcdir&;t t | ||
15960 | s&@abs_srcdir@&$ac_abs_srcdir&;t t | ||
15961 | s&@top_srcdir@&$ac_top_srcdir&;t t | ||
15962 | s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t | ||
15963 | s&@builddir@&$ac_builddir&;t t | ||
15964 | s&@abs_builddir@&$ac_abs_builddir&;t t | ||
15965 | s&@abs_top_builddir@&$ac_abs_top_builddir&;t t | ||
15966 | s&@INSTALL@&$ac_INSTALL&;t t | ||
15967 | s&@MKDIR_P@&$ac_MKDIR_P&;t t | ||
15968 | $ac_datarootdir_hack | ||
15969 | " | ||
15970 | eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ | ||
15971 | || as_fn_error $? "could not create $ac_file" "$LINENO" 5 | ||
15972 | |||
15973 | test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && | ||
15974 | { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && | ||
15975 | { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && | ||
15976 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' | ||
15977 | which seems to be undefined. Please make sure it is defined" >&5 | ||
15978 | $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' | ||
15979 | which seems to be undefined. Please make sure it is defined" >&2;} | ||
15980 | |||
15981 | rm -f "$tmp/stdin" | ||
15982 | case $ac_file in | ||
15983 | -) cat "$tmp/out" && rm -f "$tmp/out";; | ||
15984 | *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; | ||
15985 | esac \ | ||
15986 | || as_fn_error $? "could not create $ac_file" "$LINENO" 5 | ||
15987 | ;; | ||
15988 | :H) | ||
15989 | # | ||
15990 | # CONFIG_HEADER | ||
15991 | # | ||
15992 | if test x"$ac_file" != x-; then | ||
15993 | { | ||
15994 | $as_echo "/* $configure_input */" \ | ||
15995 | && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" | ||
15996 | } >"$tmp/config.h" \ | ||
15997 | || as_fn_error $? "could not create $ac_file" "$LINENO" 5 | ||
15998 | if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then | ||
15999 | { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 | ||
16000 | $as_echo "$as_me: $ac_file is unchanged" >&6;} | ||
16001 | else | ||
16002 | rm -f "$ac_file" | ||
16003 | mv "$tmp/config.h" "$ac_file" \ | ||
16004 | || as_fn_error $? "could not create $ac_file" "$LINENO" 5 | ||
16005 | fi | ||
16006 | else | ||
16007 | $as_echo "/* $configure_input */" \ | ||
16008 | && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ | ||
16009 | || as_fn_error $? "could not create -" "$LINENO" 5 | ||
16010 | fi | ||
16011 | # Compute "$ac_file"'s index in $config_headers. | ||
16012 | _am_arg="$ac_file" | ||
16013 | _am_stamp_count=1 | ||
16014 | for _am_header in $config_headers :; do | ||
16015 | case $_am_header in | ||
16016 | $_am_arg | $_am_arg:* ) | ||
16017 | break ;; | ||
16018 | * ) | ||
16019 | _am_stamp_count=`expr $_am_stamp_count + 1` ;; | ||
16020 | esac | ||
16021 | done | ||
16022 | echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || | ||
16023 | $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ | ||
16024 | X"$_am_arg" : 'X\(//\)[^/]' \| \ | ||
16025 | X"$_am_arg" : 'X\(//\)$' \| \ | ||
16026 | X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || | ||
16027 | $as_echo X"$_am_arg" | | ||
16028 | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ | ||
16029 | s//\1/ | ||
16030 | q | ||
16031 | } | ||
16032 | /^X\(\/\/\)[^/].*/{ | ||
16033 | s//\1/ | ||
16034 | q | ||
16035 | } | ||
16036 | /^X\(\/\/\)$/{ | ||
16037 | s//\1/ | ||
16038 | q | ||
16039 | } | ||
16040 | /^X\(\/\).*/{ | ||
16041 | s//\1/ | ||
16042 | q | ||
16043 | } | ||
16044 | s/.*/./; q'`/stamp-h$_am_stamp_count | ||
16045 | ;; | ||
16046 | |||
16047 | :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 | ||
16048 | $as_echo "$as_me: executing $ac_file commands" >&6;} | ||
16049 | ;; | ||
16050 | esac | ||
16051 | |||
16052 | |||
16053 | case $ac_file$ac_mode in | ||
16054 | "depfiles":C) test x"$AMDEP_TRUE" != x"" || { | ||
16055 | # Autoconf 2.62 quotes --file arguments for eval, but not when files | ||
16056 | # are listed without --file. Let's play safe and only enable the eval | ||
16057 | # if we detect the quoting. | ||
16058 | case $CONFIG_FILES in | ||
16059 | *\'*) eval set x "$CONFIG_FILES" ;; | ||
16060 | *) set x $CONFIG_FILES ;; | ||
16061 | esac | ||
16062 | shift | ||
16063 | for mf | ||
16064 | do | ||
16065 | # Strip MF so we end up with the name of the file. | ||
16066 | mf=`echo "$mf" | sed -e 's/:.*$//'` | ||
16067 | # Check whether this is an Automake generated Makefile or not. | ||
16068 | # We used to match only the files named `Makefile.in', but | ||
16069 | # some people rename them; so instead we look at the file content. | ||
16070 | # Grep'ing the first line is not enough: some people post-process | ||
16071 | # each Makefile.in and add a new line on top of each file to say so. | ||
16072 | # Grep'ing the whole file is not good either: AIX grep has a line | ||
16073 | # limit of 2048, but all sed's we know have understand at least 4000. | ||
16074 | if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then | ||
16075 | dirpart=`$as_dirname -- "$mf" || | ||
16076 | $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ | ||
16077 | X"$mf" : 'X\(//\)[^/]' \| \ | ||
16078 | X"$mf" : 'X\(//\)$' \| \ | ||
16079 | X"$mf" : 'X\(/\)' \| . 2>/dev/null || | ||
16080 | $as_echo X"$mf" | | ||
16081 | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ | ||
16082 | s//\1/ | ||
16083 | q | ||
16084 | } | ||
16085 | /^X\(\/\/\)[^/].*/{ | ||
16086 | s//\1/ | ||
16087 | q | ||
16088 | } | ||
16089 | /^X\(\/\/\)$/{ | ||
16090 | s//\1/ | ||
16091 | q | ||
16092 | } | ||
16093 | /^X\(\/\).*/{ | ||
16094 | s//\1/ | ||
16095 | q | ||
16096 | } | ||
16097 | s/.*/./; q'` | ||
16098 | else | ||
16099 | continue | ||
16100 | fi | ||
16101 | # Extract the definition of DEPDIR, am__include, and am__quote | ||
16102 | # from the Makefile without running `make'. | ||
16103 | DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` | ||
16104 | test -z "$DEPDIR" && continue | ||
16105 | am__include=`sed -n 's/^am__include = //p' < "$mf"` | ||
16106 | test -z "am__include" && continue | ||
16107 | am__quote=`sed -n 's/^am__quote = //p' < "$mf"` | ||
16108 | # When using ansi2knr, U may be empty or an underscore; expand it | ||
16109 | U=`sed -n 's/^U = //p' < "$mf"` | ||
16110 | # Find all dependency output files, they are included files with | ||
16111 | # $(DEPDIR) in their names. We invoke sed twice because it is the | ||
16112 | # simplest approach to changing $(DEPDIR) to its actual value in the | ||
16113 | # expansion. | ||
16114 | for file in `sed -n " | ||
16115 | s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ | ||
16116 | sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do | ||
16117 | # Make sure the directory exists. | ||
16118 | test -f "$dirpart/$file" && continue | ||
16119 | fdir=`$as_dirname -- "$file" || | ||
16120 | $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ | ||
16121 | X"$file" : 'X\(//\)[^/]' \| \ | ||
16122 | X"$file" : 'X\(//\)$' \| \ | ||
16123 | X"$file" : 'X\(/\)' \| . 2>/dev/null || | ||
16124 | $as_echo X"$file" | | ||
16125 | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ | ||
16126 | s//\1/ | ||
16127 | q | ||
16128 | } | ||
16129 | /^X\(\/\/\)[^/].*/{ | ||
16130 | s//\1/ | ||
16131 | q | ||
16132 | } | ||
16133 | /^X\(\/\/\)$/{ | ||
16134 | s//\1/ | ||
16135 | q | ||
16136 | } | ||
16137 | /^X\(\/\).*/{ | ||
16138 | s//\1/ | ||
16139 | q | ||
16140 | } | ||
16141 | s/.*/./; q'` | ||
16142 | as_dir=$dirpart/$fdir; as_fn_mkdir_p | ||
16143 | # echo "creating $dirpart/$file" | ||
16144 | echo '# dummy' > "$dirpart/$file" | ||
16145 | done | ||
16146 | done | ||
16147 | } | ||
16148 | ;; | ||
16149 | "libtool":C) | ||
16150 | |||
16151 | # See if we are running on zsh, and set the options which allow our | ||
16152 | # commands through without removal of \ escapes. | ||
16153 | if test -n "${ZSH_VERSION+set}" ; then | ||
16154 | setopt NO_GLOB_SUBST | ||
16155 | fi | ||
16156 | |||
16157 | cfgfile="${ofile}T" | ||
16158 | trap "$RM \"$cfgfile\"; exit 1" 1 2 15 | ||
16159 | $RM "$cfgfile" | ||
16160 | |||
16161 | cat <<_LT_EOF >> "$cfgfile" | ||
16162 | #! $SHELL | ||
16163 | |||
16164 | # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. | ||
16165 | # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION | ||
16166 | # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: | ||
16167 | # NOTE: Changes made to this file will be lost: look at ltmain.sh. | ||
16168 | # | ||
16169 | # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, | ||
16170 | # 2006, 2007, 2008 Free Software Foundation, Inc. | ||
16171 | # Written by Gordon Matzigkeit, 1996 | ||
16172 | # | ||
16173 | # This file is part of GNU Libtool. | ||
16174 | # | ||
16175 | # GNU Libtool is free software; you can redistribute it and/or | ||
16176 | # modify it under the terms of the GNU General Public License as | ||
16177 | # published by the Free Software Foundation; either version 2 of | ||
16178 | # the License, or (at your option) any later version. | ||
16179 | # | ||
16180 | # As a special exception to the GNU General Public License, | ||
16181 | # if you distribute this file as part of a program or library that | ||
16182 | # is built using GNU Libtool, you may include this file under the | ||
16183 | # same distribution terms that you use for the rest of that program. | ||
16184 | # | ||
16185 | # GNU Libtool is distributed in the hope that it will be useful, | ||
16186 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
16187 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16188 | # GNU General Public License for more details. | ||
16189 | # | ||
16190 | # You should have received a copy of the GNU General Public License | ||
16191 | # along with GNU Libtool; see the file COPYING. If not, a copy | ||
16192 | # can be downloaded from http://www.gnu.org/licenses/gpl.html, or | ||
16193 | # obtained by writing to the Free Software Foundation, Inc., | ||
16194 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | ||
16195 | |||
16196 | |||
16197 | # The names of the tagged configurations supported by this script. | ||
16198 | available_tags="" | ||
16199 | |||
16200 | # ### BEGIN LIBTOOL CONFIG | ||
16201 | |||
16202 | # Assembler program. | ||
16203 | AS=$AS | ||
16204 | |||
16205 | # DLL creation program. | ||
16206 | DLLTOOL=$DLLTOOL | ||
16207 | |||
16208 | # Object dumper program. | ||
16209 | OBJDUMP=$OBJDUMP | ||
16210 | |||
16211 | # Which release of libtool.m4 was used? | ||
16212 | macro_version=$macro_version | ||
16213 | macro_revision=$macro_revision | ||
16214 | |||
16215 | # Whether or not to build shared libraries. | ||
16216 | build_libtool_libs=$enable_shared | ||
16217 | |||
16218 | # Whether or not to build static libraries. | ||
16219 | build_old_libs=$enable_static | ||
16220 | |||
16221 | # What type of objects to build. | ||
16222 | pic_mode=$pic_mode | ||
16223 | |||
16224 | # Whether or not to optimize for fast installation. | ||
16225 | fast_install=$enable_fast_install | ||
16226 | |||
16227 | # The host system. | ||
16228 | host_alias=$host_alias | ||
16229 | host=$host | ||
16230 | host_os=$host_os | ||
16231 | |||
16232 | # The build system. | ||
16233 | build_alias=$build_alias | ||
16234 | build=$build | ||
16235 | build_os=$build_os | ||
16236 | |||
16237 | # A sed program that does not truncate output. | ||
16238 | SED=$lt_SED | ||
16239 | |||
16240 | # Sed that helps us avoid accidentally triggering echo(1) options like -n. | ||
16241 | Xsed="\$SED -e 1s/^X//" | ||
16242 | |||
16243 | # A grep program that handles long lines. | ||
16244 | GREP=$lt_GREP | ||
16245 | |||
16246 | # An ERE matcher. | ||
16247 | EGREP=$lt_EGREP | ||
16248 | |||
16249 | # A literal string matcher. | ||
16250 | FGREP=$lt_FGREP | ||
16251 | |||
16252 | # A BSD- or MS-compatible name lister. | ||
16253 | NM=$lt_NM | ||
16254 | |||
16255 | # Whether we need soft or hard links. | ||
16256 | LN_S=$lt_LN_S | ||
16257 | |||
16258 | # What is the maximum length of a command? | ||
16259 | max_cmd_len=$max_cmd_len | ||
16260 | |||
16261 | # Object file suffix (normally "o"). | ||
16262 | objext=$ac_objext | ||
16263 | |||
16264 | # Executable file suffix (normally ""). | ||
16265 | exeext=$exeext | ||
16266 | |||
16267 | # whether the shell understands "unset". | ||
16268 | lt_unset=$lt_unset | ||
16269 | |||
16270 | # turn spaces into newlines. | ||
16271 | SP2NL=$lt_lt_SP2NL | ||
16272 | |||
16273 | # turn newlines into spaces. | ||
16274 | NL2SP=$lt_lt_NL2SP | ||
16275 | |||
16276 | # How to create reloadable object files. | ||
16277 | reload_flag=$lt_reload_flag | ||
16278 | reload_cmds=$lt_reload_cmds | ||
16279 | |||
16280 | # Method to check whether dependent libraries are shared objects. | ||
16281 | deplibs_check_method=$lt_deplibs_check_method | ||
16282 | |||
16283 | # Command to use when deplibs_check_method == "file_magic". | ||
16284 | file_magic_cmd=$lt_file_magic_cmd | ||
16285 | |||
16286 | # The archiver. | ||
16287 | AR=$lt_AR | ||
16288 | AR_FLAGS=$lt_AR_FLAGS | ||
16289 | |||
16290 | # A symbol stripping program. | ||
16291 | STRIP=$lt_STRIP | ||
16292 | |||
16293 | # Commands used to install an old-style archive. | ||
16294 | RANLIB=$lt_RANLIB | ||
16295 | old_postinstall_cmds=$lt_old_postinstall_cmds | ||
16296 | old_postuninstall_cmds=$lt_old_postuninstall_cmds | ||
16297 | |||
16298 | # A C compiler. | ||
16299 | LTCC=$lt_CC | ||
16300 | |||
16301 | # LTCC compiler flags. | ||
16302 | LTCFLAGS=$lt_CFLAGS | ||
16303 | |||
16304 | # Take the output of nm and produce a listing of raw symbols and C names. | ||
16305 | global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe | ||
16306 | |||
16307 | # Transform the output of nm in a proper C declaration. | ||
16308 | global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl | ||
16309 | |||
16310 | # Transform the output of nm in a C name address pair. | ||
16311 | global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address | ||
16312 | |||
16313 | # Transform the output of nm in a C name address pair when lib prefix is needed. | ||
16314 | global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix | ||
16315 | |||
16316 | # The name of the directory that contains temporary libtool files. | ||
16317 | objdir=$objdir | ||
16318 | |||
16319 | # Shell to use when invoking shell scripts. | ||
16320 | SHELL=$lt_SHELL | ||
16321 | |||
16322 | # An echo program that does not interpret backslashes. | ||
16323 | ECHO=$lt_ECHO | ||
16324 | |||
16325 | # Used to examine libraries when file_magic_cmd begins with "file". | ||
16326 | MAGIC_CMD=$MAGIC_CMD | ||
16327 | |||
16328 | # Must we lock files when doing compilation? | ||
16329 | need_locks=$lt_need_locks | ||
16330 | |||
16331 | # Tool to manipulate archived DWARF debug symbol files on Mac OS X. | ||
16332 | DSYMUTIL=$lt_DSYMUTIL | ||
16333 | |||
16334 | # Tool to change global to local symbols on Mac OS X. | ||
16335 | NMEDIT=$lt_NMEDIT | ||
16336 | |||
16337 | # Tool to manipulate fat objects and archives on Mac OS X. | ||
16338 | LIPO=$lt_LIPO | ||
16339 | |||
16340 | # ldd/readelf like tool for Mach-O binaries on Mac OS X. | ||
16341 | OTOOL=$lt_OTOOL | ||
16342 | |||
16343 | # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. | ||
16344 | OTOOL64=$lt_OTOOL64 | ||
16345 | |||
16346 | # Old archive suffix (normally "a"). | ||
16347 | libext=$libext | ||
16348 | |||
16349 | # Shared library suffix (normally ".so"). | ||
16350 | shrext_cmds=$lt_shrext_cmds | ||
16351 | |||
16352 | # The commands to extract the exported symbol list from a shared archive. | ||
16353 | extract_expsyms_cmds=$lt_extract_expsyms_cmds | ||
16354 | |||
16355 | # Variables whose values should be saved in libtool wrapper scripts and | ||
16356 | # restored at link time. | ||
16357 | variables_saved_for_relink=$lt_variables_saved_for_relink | ||
16358 | |||
16359 | # Do we need the "lib" prefix for modules? | ||
16360 | need_lib_prefix=$need_lib_prefix | ||
16361 | |||
16362 | # Do we need a version for libraries? | ||
16363 | need_version=$need_version | ||
16364 | |||
16365 | # Library versioning type. | ||
16366 | version_type=$version_type | ||
16367 | |||
16368 | # Shared library runtime path variable. | ||
16369 | runpath_var=$runpath_var | ||
16370 | |||
16371 | # Shared library path variable. | ||
16372 | shlibpath_var=$shlibpath_var | ||
16373 | |||
16374 | # Is shlibpath searched before the hard-coded library search path? | ||
16375 | shlibpath_overrides_runpath=$shlibpath_overrides_runpath | ||
16376 | |||
16377 | # Format of library name prefix. | ||
16378 | libname_spec=$lt_libname_spec | ||
16379 | |||
16380 | # List of archive names. First name is the real one, the rest are links. | ||
16381 | # The last name is the one that the linker finds with -lNAME | ||
16382 | library_names_spec=$lt_library_names_spec | ||
16383 | |||
16384 | # The coded name of the library, if different from the real name. | ||
16385 | soname_spec=$lt_soname_spec | ||
16386 | |||
16387 | # Command to use after installation of a shared archive. | ||
16388 | postinstall_cmds=$lt_postinstall_cmds | ||
16389 | |||
16390 | # Command to use after uninstallation of a shared archive. | ||
16391 | postuninstall_cmds=$lt_postuninstall_cmds | ||
16392 | |||
16393 | # Commands used to finish a libtool library installation in a directory. | ||
16394 | finish_cmds=$lt_finish_cmds | ||
16395 | |||
16396 | # As "finish_cmds", except a single script fragment to be evaled but | ||
16397 | # not shown. | ||
16398 | finish_eval=$lt_finish_eval | ||
16399 | |||
16400 | # Whether we should hardcode library paths into libraries. | ||
16401 | hardcode_into_libs=$hardcode_into_libs | ||
16402 | |||
16403 | # Compile-time system search path for libraries. | ||
16404 | sys_lib_search_path_spec=$lt_sys_lib_search_path_spec | ||
16405 | |||
16406 | # Run-time system search path for libraries. | ||
16407 | sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec | ||
16408 | |||
16409 | # Whether dlopen is supported. | ||
16410 | dlopen_support=$enable_dlopen | ||
16411 | |||
16412 | # Whether dlopen of programs is supported. | ||
16413 | dlopen_self=$enable_dlopen_self | ||
16414 | |||
16415 | # Whether dlopen of statically linked programs is supported. | ||
16416 | dlopen_self_static=$enable_dlopen_self_static | ||
16417 | |||
16418 | # Commands to strip libraries. | ||
16419 | old_striplib=$lt_old_striplib | ||
16420 | striplib=$lt_striplib | ||
16421 | |||
16422 | |||
16423 | # The linker used to build libraries. | ||
16424 | LD=$lt_LD | ||
16425 | |||
16426 | # Commands used to build an old-style archive. | ||
16427 | old_archive_cmds=$lt_old_archive_cmds | ||
16428 | |||
16429 | # A language specific compiler. | ||
16430 | CC=$lt_compiler | ||
16431 | |||
16432 | # Is the compiler the GNU compiler? | ||
16433 | with_gcc=$GCC | ||
16434 | |||
16435 | # Compiler flag to turn off builtin functions. | ||
16436 | no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag | ||
16437 | |||
16438 | # How to pass a linker flag through the compiler. | ||
16439 | wl=$lt_lt_prog_compiler_wl | ||
16440 | |||
16441 | # Additional compiler flags for building library objects. | ||
16442 | pic_flag=$lt_lt_prog_compiler_pic | ||
16443 | |||
16444 | # Compiler flag to prevent dynamic linking. | ||
16445 | link_static_flag=$lt_lt_prog_compiler_static | ||
16446 | |||
16447 | # Does compiler simultaneously support -c and -o options? | ||
16448 | compiler_c_o=$lt_lt_cv_prog_compiler_c_o | ||
16449 | |||
16450 | # Whether or not to add -lc for building shared libraries. | ||
16451 | build_libtool_need_lc=$archive_cmds_need_lc | ||
16452 | |||
16453 | # Whether or not to disallow shared libs when runtime libs are static. | ||
16454 | allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes | ||
16455 | |||
16456 | # Compiler flag to allow reflexive dlopens. | ||
16457 | export_dynamic_flag_spec=$lt_export_dynamic_flag_spec | ||
16458 | |||
16459 | # Compiler flag to generate shared objects directly from archives. | ||
16460 | whole_archive_flag_spec=$lt_whole_archive_flag_spec | ||
16461 | |||
16462 | # Whether the compiler copes with passing no objects directly. | ||
16463 | compiler_needs_object=$lt_compiler_needs_object | ||
16464 | |||
16465 | # Create an old-style archive from a shared archive. | ||
16466 | old_archive_from_new_cmds=$lt_old_archive_from_new_cmds | ||
16467 | |||
16468 | # Create a temporary old-style archive to link instead of a shared archive. | ||
16469 | old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds | ||
16470 | |||
16471 | # Commands used to build a shared archive. | ||
16472 | archive_cmds=$lt_archive_cmds | ||
16473 | archive_expsym_cmds=$lt_archive_expsym_cmds | ||
16474 | |||
16475 | # Commands used to build a loadable module if different from building | ||
16476 | # a shared archive. | ||
16477 | module_cmds=$lt_module_cmds | ||
16478 | module_expsym_cmds=$lt_module_expsym_cmds | ||
16479 | |||
16480 | # Whether we are building with GNU ld or not. | ||
16481 | with_gnu_ld=$lt_with_gnu_ld | ||
16482 | |||
16483 | # Flag that allows shared libraries with undefined symbols to be built. | ||
16484 | allow_undefined_flag=$lt_allow_undefined_flag | ||
16485 | |||
16486 | # Flag that enforces no undefined symbols. | ||
16487 | no_undefined_flag=$lt_no_undefined_flag | ||
16488 | |||
16489 | # Flag to hardcode \$libdir into a binary during linking. | ||
16490 | # This must work even if \$libdir does not exist | ||
16491 | hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec | ||
16492 | |||
16493 | # If ld is used when linking, flag to hardcode \$libdir into a binary | ||
16494 | # during linking. This must work even if \$libdir does not exist. | ||
16495 | hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld | ||
16496 | |||
16497 | # Whether we need a single "-rpath" flag with a separated argument. | ||
16498 | hardcode_libdir_separator=$lt_hardcode_libdir_separator | ||
16499 | |||
16500 | # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes | ||
16501 | # DIR into the resulting binary. | ||
16502 | hardcode_direct=$hardcode_direct | ||
16503 | |||
16504 | # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes | ||
16505 | # DIR into the resulting binary and the resulting library dependency is | ||
16506 | # "absolute",i.e impossible to change by setting \${shlibpath_var} if the | ||
16507 | # library is relocated. | ||
16508 | hardcode_direct_absolute=$hardcode_direct_absolute | ||
16509 | |||
16510 | # Set to "yes" if using the -LDIR flag during linking hardcodes DIR | ||
16511 | # into the resulting binary. | ||
16512 | hardcode_minus_L=$hardcode_minus_L | ||
16513 | |||
16514 | # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR | ||
16515 | # into the resulting binary. | ||
16516 | hardcode_shlibpath_var=$hardcode_shlibpath_var | ||
16517 | |||
16518 | # Set to "yes" if building a shared library automatically hardcodes DIR | ||
16519 | # into the library and all subsequent libraries and executables linked | ||
16520 | # against it. | ||
16521 | hardcode_automatic=$hardcode_automatic | ||
16522 | |||
16523 | # Set to yes if linker adds runtime paths of dependent libraries | ||
16524 | # to runtime path list. | ||
16525 | inherit_rpath=$inherit_rpath | ||
16526 | |||
16527 | # Whether libtool must link a program against all its dependency libraries. | ||
16528 | link_all_deplibs=$link_all_deplibs | ||
16529 | |||
16530 | # Fix the shell variable \$srcfile for the compiler. | ||
16531 | fix_srcfile_path=$lt_fix_srcfile_path | ||
16532 | |||
16533 | # Set to "yes" if exported symbols are required. | ||
16534 | always_export_symbols=$always_export_symbols | ||
16535 | |||
16536 | # The commands to list exported symbols. | ||
16537 | export_symbols_cmds=$lt_export_symbols_cmds | ||
16538 | |||
16539 | # Symbols that should not be listed in the preloaded symbols. | ||
16540 | exclude_expsyms=$lt_exclude_expsyms | ||
16541 | |||
16542 | # Symbols that must always be exported. | ||
16543 | include_expsyms=$lt_include_expsyms | ||
16544 | |||
16545 | # Commands necessary for linking programs (against libraries) with templates. | ||
16546 | prelink_cmds=$lt_prelink_cmds | ||
16547 | |||
16548 | # Specify filename containing input files. | ||
16549 | file_list_spec=$lt_file_list_spec | ||
16550 | |||
16551 | # How to hardcode a shared library path into an executable. | ||
16552 | hardcode_action=$hardcode_action | ||
16553 | |||
16554 | # ### END LIBTOOL CONFIG | ||
16555 | |||
16556 | _LT_EOF | ||
16557 | |||
16558 | case $host_os in | ||
16559 | aix3*) | ||
16560 | cat <<\_LT_EOF >> "$cfgfile" | ||
16561 | # AIX sometimes has problems with the GCC collect2 program. For some | ||
16562 | # reason, if we set the COLLECT_NAMES environment variable, the problems | ||
16563 | # vanish in a puff of smoke. | ||
16564 | if test "X${COLLECT_NAMES+set}" != Xset; then | ||
16565 | COLLECT_NAMES= | ||
16566 | export COLLECT_NAMES | ||
16567 | fi | ||
16568 | _LT_EOF | ||
16569 | ;; | ||
16570 | esac | ||
16571 | |||
16572 | |||
16573 | ltmain="$ac_aux_dir/ltmain.sh" | ||
16574 | |||
16575 | |||
16576 | # We use sed instead of cat because bash on DJGPP gets confused if | ||
16577 | # if finds mixed CR/LF and LF-only lines. Since sed operates in | ||
16578 | # text mode, it properly converts lines to CR/LF. This bash problem | ||
16579 | # is reportedly fixed, but why not run on old versions too? | ||
16580 | sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ | ||
16581 | || (rm -f "$cfgfile"; exit 1) | ||
16582 | |||
16583 | case $xsi_shell in | ||
16584 | yes) | ||
16585 | cat << \_LT_EOF >> "$cfgfile" | ||
16586 | |||
16587 | # func_dirname file append nondir_replacement | ||
16588 | # Compute the dirname of FILE. If nonempty, add APPEND to the result, | ||
16589 | # otherwise set result to NONDIR_REPLACEMENT. | ||
16590 | func_dirname () | ||
16591 | { | ||
16592 | case ${1} in | ||
16593 | */*) func_dirname_result="${1%/*}${2}" ;; | ||
16594 | * ) func_dirname_result="${3}" ;; | ||
16595 | esac | ||
16596 | } | ||
16597 | |||
16598 | # func_basename file | ||
16599 | func_basename () | ||
16600 | { | ||
16601 | func_basename_result="${1##*/}" | ||
16602 | } | ||
16603 | |||
16604 | # func_dirname_and_basename file append nondir_replacement | ||
16605 | # perform func_basename and func_dirname in a single function | ||
16606 | # call: | ||
16607 | # dirname: Compute the dirname of FILE. If nonempty, | ||
16608 | # add APPEND to the result, otherwise set result | ||
16609 | # to NONDIR_REPLACEMENT. | ||
16610 | # value returned in "$func_dirname_result" | ||
16611 | # basename: Compute filename of FILE. | ||
16612 | # value retuned in "$func_basename_result" | ||
16613 | # Implementation must be kept synchronized with func_dirname | ||
16614 | # and func_basename. For efficiency, we do not delegate to | ||
16615 | # those functions but instead duplicate the functionality here. | ||
16616 | func_dirname_and_basename () | ||
16617 | { | ||
16618 | case ${1} in | ||
16619 | */*) func_dirname_result="${1%/*}${2}" ;; | ||
16620 | * ) func_dirname_result="${3}" ;; | ||
16621 | esac | ||
16622 | func_basename_result="${1##*/}" | ||
16623 | } | ||
16624 | |||
16625 | # func_stripname prefix suffix name | ||
16626 | # strip PREFIX and SUFFIX off of NAME. | ||
16627 | # PREFIX and SUFFIX must not contain globbing or regex special | ||
16628 | # characters, hashes, percent signs, but SUFFIX may contain a leading | ||
16629 | # dot (in which case that matches only a dot). | ||
16630 | func_stripname () | ||
16631 | { | ||
16632 | # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are | ||
16633 | # positional parameters, so assign one to ordinary parameter first. | ||
16634 | func_stripname_result=${3} | ||
16635 | func_stripname_result=${func_stripname_result#"${1}"} | ||
16636 | func_stripname_result=${func_stripname_result%"${2}"} | ||
16637 | } | ||
16638 | |||
16639 | # func_opt_split | ||
16640 | func_opt_split () | ||
16641 | { | ||
16642 | func_opt_split_opt=${1%%=*} | ||
16643 | func_opt_split_arg=${1#*=} | ||
16644 | } | ||
16645 | |||
16646 | # func_lo2o object | ||
16647 | func_lo2o () | ||
16648 | { | ||
16649 | case ${1} in | ||
16650 | *.lo) func_lo2o_result=${1%.lo}.${objext} ;; | ||
16651 | *) func_lo2o_result=${1} ;; | ||
16652 | esac | ||
16653 | } | ||
16654 | |||
16655 | # func_xform libobj-or-source | ||
16656 | func_xform () | ||
16657 | { | ||
16658 | func_xform_result=${1%.*}.lo | ||
16659 | } | ||
16660 | |||
16661 | # func_arith arithmetic-term... | ||
16662 | func_arith () | ||
16663 | { | ||
16664 | func_arith_result=$(( $* )) | ||
16665 | } | ||
16666 | |||
16667 | # func_len string | ||
16668 | # STRING may not start with a hyphen. | ||
16669 | func_len () | ||
16670 | { | ||
16671 | func_len_result=${#1} | ||
16672 | } | ||
16673 | |||
16674 | _LT_EOF | ||
16675 | ;; | ||
16676 | *) # Bourne compatible functions. | ||
16677 | cat << \_LT_EOF >> "$cfgfile" | ||
16678 | |||
16679 | # func_dirname file append nondir_replacement | ||
16680 | # Compute the dirname of FILE. If nonempty, add APPEND to the result, | ||
16681 | # otherwise set result to NONDIR_REPLACEMENT. | ||
16682 | func_dirname () | ||
16683 | { | ||
16684 | # Extract subdirectory from the argument. | ||
16685 | func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` | ||
16686 | if test "X$func_dirname_result" = "X${1}"; then | ||
16687 | func_dirname_result="${3}" | ||
16688 | else | ||
16689 | func_dirname_result="$func_dirname_result${2}" | ||
16690 | fi | ||
16691 | } | ||
16692 | |||
16693 | # func_basename file | ||
16694 | func_basename () | ||
16695 | { | ||
16696 | func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` | ||
16697 | } | ||
16698 | |||
16699 | |||
16700 | # func_stripname prefix suffix name | ||
16701 | # strip PREFIX and SUFFIX off of NAME. | ||
16702 | # PREFIX and SUFFIX must not contain globbing or regex special | ||
16703 | # characters, hashes, percent signs, but SUFFIX may contain a leading | ||
16704 | # dot (in which case that matches only a dot). | ||
16705 | # func_strip_suffix prefix name | ||
16706 | func_stripname () | ||
16707 | { | ||
16708 | case ${2} in | ||
16709 | .*) func_stripname_result=`$ECHO "X${3}" \ | ||
16710 | | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; | ||
16711 | *) func_stripname_result=`$ECHO "X${3}" \ | ||
16712 | | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; | ||
16713 | esac | ||
16714 | } | ||
16715 | |||
16716 | # sed scripts: | ||
16717 | my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' | ||
16718 | my_sed_long_arg='1s/^-[^=]*=//' | ||
16719 | |||
16720 | # func_opt_split | ||
16721 | func_opt_split () | ||
16722 | { | ||
16723 | func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` | ||
16724 | func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` | ||
16725 | } | ||
16726 | |||
16727 | # func_lo2o object | ||
16728 | func_lo2o () | ||
16729 | { | ||
16730 | func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` | ||
16731 | } | ||
16732 | |||
16733 | # func_xform libobj-or-source | ||
16734 | func_xform () | ||
16735 | { | ||
16736 | func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` | ||
16737 | } | ||
16738 | |||
16739 | # func_arith arithmetic-term... | ||
16740 | func_arith () | ||
16741 | { | ||
16742 | func_arith_result=`expr "$@"` | ||
16743 | } | ||
16744 | |||
16745 | # func_len string | ||
16746 | # STRING may not start with a hyphen. | ||
16747 | func_len () | ||
16748 | { | ||
16749 | func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` | ||
16750 | } | ||
16751 | |||
16752 | _LT_EOF | ||
16753 | esac | ||
16754 | |||
16755 | case $lt_shell_append in | ||
16756 | yes) | ||
16757 | cat << \_LT_EOF >> "$cfgfile" | ||
16758 | |||
16759 | # func_append var value | ||
16760 | # Append VALUE to the end of shell variable VAR. | ||
16761 | func_append () | ||
16762 | { | ||
16763 | eval "$1+=\$2" | ||
16764 | } | ||
16765 | _LT_EOF | ||
16766 | ;; | ||
16767 | *) | ||
16768 | cat << \_LT_EOF >> "$cfgfile" | ||
16769 | |||
16770 | # func_append var value | ||
16771 | # Append VALUE to the end of shell variable VAR. | ||
16772 | func_append () | ||
16773 | { | ||
16774 | eval "$1=\$$1\$2" | ||
16775 | } | ||
16776 | |||
16777 | _LT_EOF | ||
16778 | ;; | ||
16779 | esac | ||
16780 | |||
16781 | |||
16782 | sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ | ||
16783 | || (rm -f "$cfgfile"; exit 1) | ||
16784 | |||
16785 | mv -f "$cfgfile" "$ofile" || | ||
16786 | (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") | ||
16787 | chmod +x "$ofile" | ||
16788 | |||
16789 | ;; | ||
16790 | |||
16791 | esac | ||
16792 | done # for ac_tag | ||
16793 | |||
16794 | |||
16795 | as_fn_exit 0 | ||
16796 | _ACEOF | ||
16797 | ac_clean_files=$ac_clean_files_save | ||
16798 | |||
16799 | test $ac_write_fail = 0 || | ||
16800 | as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 | ||
16801 | |||
16802 | |||
16803 | # configure is writing to config.log, and then calls config.status. | ||
16804 | # config.status does its own redirection, appending to config.log. | ||
16805 | # Unfortunately, on DOS this fails, as config.log is still kept open | ||
16806 | # by configure, so config.status won't be able to write to it; its | ||
16807 | # output is simply discarded. So we exec the FD to /dev/null, | ||
16808 | # effectively closing config.log, so it can be properly (re)opened and | ||
16809 | # appended to by config.status. When coming back to configure, we | ||
16810 | # need to make the FD available again. | ||
16811 | if test "$no_create" != yes; then | ||
16812 | ac_cs_success=: | ||
16813 | ac_config_status_args= | ||
16814 | test "$silent" = yes && | ||
16815 | ac_config_status_args="$ac_config_status_args --quiet" | ||
16816 | exec 5>/dev/null | ||
16817 | $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false | ||
16818 | exec 5>>config.log | ||
16819 | # Use ||, not &&, to avoid exiting from the if with $? = 1, which | ||
16820 | # would make configure fail if this is the last instruction. | ||
16821 | $ac_cs_success || as_fn_exit 1 | ||
16822 | fi | ||
16823 | if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then | ||
16824 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 | ||
16825 | $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} | ||
16826 | fi | ||
16827 | |||
16828 | |||
16829 | |||
16830 | ##################################################################### | ||
16831 | ## Info | ||
16832 | |||
16833 | echo | ||
16834 | echo | ||
16835 | echo | ||
16836 | echo "------------------------------------------------------------------------" | ||
16837 | echo "$PACKAGE_NAME $PACKAGE_VERSION" | ||
16838 | echo "------------------------------------------------------------------------" | ||
16839 | echo | ||
16840 | echo "Configuration Options Summary:" | ||
16841 | echo | ||
16842 | echo " Amalgamation.........: ${do_amalgamation}" | ||
16843 | echo " Secure layer.........: ${secure_layer}" | ||
16844 | if test "x${have_gnutls}" = "xyes" || test "x${have_openssl}" = "xyes" ; then | ||
16845 | echo " Cipher support.....: ${have_cipher}" | ||
16846 | echo " Signature..........: ${have_signature}" | ||
16847 | fi | ||
16848 | echo | ||
16849 | echo " Old eet file format..: ${old_eet_file_format}" | ||
16850 | echo | ||
16851 | echo " Tests................: ${enable_tests}" | ||
16852 | echo " Coverage.............: ${enable_coverage}" | ||
16853 | echo | ||
16854 | echo " Build eet............: $have_eet" | ||
16855 | echo | ||
16856 | echo " Documentation........: ${build_doc}" | ||
16857 | if test "x${build_doc}" = "xyes" ; then | ||
16858 | echo " Building...........: make doc" | ||
16859 | fi | ||
16860 | echo " Examples.............: ${build_examples}" | ||
16861 | if test "x${build_examples}" = "xyes" ; then | ||
16862 | echo " Install............: ${install_examples}" | ||
16863 | fi | ||
16864 | echo | ||
16865 | echo "Compilation............: make (or gmake)" | ||
16866 | echo " CPPFLAGS.............: $CPPFLAGS" | ||
16867 | echo " CFLAGS...............: $CFLAGS" | ||
16868 | echo " LDFLAGS..............: $LDFLAGS" | ||
16869 | echo | ||
16870 | echo "Installation...........: make install (as root if needed, with 'su' or 'sudo')" | ||
16871 | echo " prefix...............: $prefix" | ||
16872 | echo | ||
diff --git a/libraries/eet/configure.ac b/libraries/eet/configure.ac deleted file mode 100644 index eb3c7e5..0000000 --- a/libraries/eet/configure.ac +++ /dev/null | |||
@@ -1,549 +0,0 @@ | |||
1 | ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## | ||
2 | ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## | ||
3 | m4_define([v_maj], [1]) | ||
4 | m4_define([v_min], [6]) | ||
5 | m4_define([v_mic], [0]) | ||
6 | m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v '\(export\|Unversioned directory\)' || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n'])) | ||
7 | m4_if(v_rev, [0], [m4_define([v_rev], m4_esyscmd([git log 2> /dev/null | (grep -m1 git-svn-id || echo 0) | sed -e 's/.*@\([0-9]*\).*/\1/' | tr -d '\n']))]) | ||
8 | ##-- When released, remove the dnl on the below line | ||
9 | m4_undefine([v_rev]) | ||
10 | ##-- When doing snapshots - change soname. remove dnl on below line | ||
11 | dnl m4_define([relname], [ver-pre-svn-05]) | ||
12 | dnl m4_define([v_rel], [-release relname]) | ||
13 | ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## | ||
14 | m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], [m4_define([v_ver], [v_maj.v_min.v_mic])]) | ||
15 | m4_define([lt_cur], m4_eval(v_maj + v_min)) | ||
16 | m4_define([lt_rev], v_mic) | ||
17 | m4_define([lt_age], v_min) | ||
18 | ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## | ||
19 | ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## | ||
20 | |||
21 | AC_INIT([eet], [v_ver]-alpha, [enlightenment-devel@lists.sourceforge.net]) | ||
22 | AC_PREREQ([2.52]) | ||
23 | AC_CONFIG_SRCDIR([configure.ac]) | ||
24 | AC_CONFIG_MACRO_DIR([m4]) | ||
25 | |||
26 | AC_CONFIG_HEADERS([config.h]) | ||
27 | AH_TOP([ | ||
28 | #ifndef EFL_CONFIG_H__ | ||
29 | #define EFL_CONFIG_H__ | ||
30 | ]) | ||
31 | AH_BOTTOM([ | ||
32 | #endif /* EFL_CONFIG_H__ */ | ||
33 | ]) | ||
34 | |||
35 | AM_INIT_AUTOMAKE([1.6 dist-bzip2]) | ||
36 | m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) | ||
37 | |||
38 | AC_LIBTOOL_WIN32_DLL | ||
39 | define([AC_LIBTOOL_LANG_CXX_CONFIG], [:])dnl | ||
40 | define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl | ||
41 | AC_PROG_LIBTOOL | ||
42 | |||
43 | ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## | ||
44 | ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## | ||
45 | m4_ifdef([v_rev], , [m4_define([v_rev], [0])]) | ||
46 | m4_ifdef([v_rel], , [m4_define([v_rel], [])]) | ||
47 | AC_DEFINE_UNQUOTED(VMAJ, [v_maj], [Major version]) | ||
48 | AC_DEFINE_UNQUOTED(VMIN, [v_min], [Minor version]) | ||
49 | AC_DEFINE_UNQUOTED(VMIC, [v_mic], [Micro version]) | ||
50 | AC_DEFINE_UNQUOTED(VREV, [v_rev], [Revison]) | ||
51 | version_info="lt_cur:lt_rev:lt_age" | ||
52 | release_info="v_rel" | ||
53 | AC_SUBST(version_info) | ||
54 | AC_SUBST(release_info) | ||
55 | ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## | ||
56 | ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## | ||
57 | VMAJ=v_maj | ||
58 | AC_SUBST(VMAJ) | ||
59 | |||
60 | |||
61 | ### Needed information | ||
62 | |||
63 | AC_CANONICAL_BUILD | ||
64 | AC_CANONICAL_HOST | ||
65 | |||
66 | ### Default options with respect to host | ||
67 | |||
68 | want_gnutls="auto" | ||
69 | want_openssl="auto" | ||
70 | want_cipher="yes" | ||
71 | want_signature="yes" | ||
72 | |||
73 | requirement_eet="" | ||
74 | |||
75 | |||
76 | ### Additional options to configure | ||
77 | |||
78 | # Amalgamation | ||
79 | |||
80 | AC_ARG_ENABLE([amalgamation], | ||
81 | [AC_HELP_STRING([--enable-amalgamation], [enable generation of one single file with all source code in it, helps compiler optimizations.])], | ||
82 | [if test "x${enableval}" = "xyes"; then | ||
83 | do_amalgamation="yes" | ||
84 | else | ||
85 | do_amalgamation="no" | ||
86 | fi | ||
87 | ], | ||
88 | [do_amalgamation="no"] | ||
89 | ) | ||
90 | AM_CONDITIONAL(EET_AMALGAMATION, test "x${do_amalgamation}" = "xyes") | ||
91 | |||
92 | EFL_ENABLE_BIN([eet]) | ||
93 | |||
94 | # Old eet file format support | ||
95 | |||
96 | old_eet_file_format="yes" | ||
97 | AC_ARG_ENABLE(old-eet-file-format, | ||
98 | [AC_HELP_STRING( | ||
99 | [--disable-old-eet-file-format], | ||
100 | [disable old eet file format support. [[default=enabled]]] | ||
101 | )], | ||
102 | [old_eet_file_format=$enableval] | ||
103 | ) | ||
104 | AC_MSG_CHECKING([whether to support old eet file format]) | ||
105 | AC_MSG_RESULT([${old_eet_file_format}]) | ||
106 | |||
107 | if test "x${old_eet_file_format}" = "xyes" ; then | ||
108 | AC_DEFINE(EET_OLD_EET_FILE_FORMAT, 1, [support old eet file format]) | ||
109 | else | ||
110 | AC_DEFINE(EET_OLD_EET_FILE_FORMAT, 0, [support old eet file format]) | ||
111 | fi | ||
112 | |||
113 | # Openssl support | ||
114 | |||
115 | AC_ARG_ENABLE([openssl], | ||
116 | [AC_HELP_STRING([--disable-openssl], [disable openssl eet support])], | ||
117 | [want_openssl=$enableval] | ||
118 | ) | ||
119 | AC_MSG_CHECKING([whether to use OpenSSL]) | ||
120 | AC_MSG_RESULT([${want_openssl}]) | ||
121 | |||
122 | # Cryptography support | ||
123 | |||
124 | AC_ARG_ENABLE([cipher], | ||
125 | [AC_HELP_STRING([--disable-cipher], [disable cipher support for eet API])], | ||
126 | [want_cipher=$enableval] | ||
127 | ) | ||
128 | AC_MSG_CHECKING([whether to use cipher]) | ||
129 | AC_MSG_RESULT([${want_cipher}]) | ||
130 | |||
131 | AC_ARG_ENABLE([signature], | ||
132 | [AC_HELP_STRING([--disable-signature], [disable signature file support for eet])], | ||
133 | [want_signature=$enableval] | ||
134 | ) | ||
135 | AC_MSG_CHECKING([whether to use signature]) | ||
136 | AC_MSG_RESULT([${want_signature}]) | ||
137 | |||
138 | # Assert or fail. | ||
139 | prefer_assert="no" | ||
140 | AC_ARG_ENABLE([assert], | ||
141 | [AC_HELP_STRING([--enable-assert], [enable assert, [[default=disabled]]])], | ||
142 | [prefer_assert=$enableval] | ||
143 | ) | ||
144 | |||
145 | # Examples | ||
146 | |||
147 | AC_ARG_ENABLE([install-examples], | ||
148 | [AC_HELP_STRING([--disable-install-examples], | ||
149 | [disable installing examples (compiled or just source). @<:@default==enabled@:>@])], | ||
150 | [ | ||
151 | if test "x${enableval}" = "xyes" ; then | ||
152 | install_examples="yes" | ||
153 | else | ||
154 | install_examples="no" | ||
155 | fi | ||
156 | ], | ||
157 | [install_examples="yes"]) | ||
158 | AM_CONDITIONAL([INSTALL_EXAMPLES], [test "x${install_examples}" = "xyes"]) | ||
159 | |||
160 | AC_ARG_ENABLE([build-examples], | ||
161 | [AC_HELP_STRING([--enable-build-examples], | ||
162 | [enable building examples. @<:@default==disabled@:>@])], | ||
163 | [ | ||
164 | if test "x${enableval}" = "xyes" ; then | ||
165 | build_examples="yes" | ||
166 | else | ||
167 | build_examples="no" | ||
168 | fi | ||
169 | ], | ||
170 | [build_examples="no"]) | ||
171 | AM_CONDITIONAL([BUILD_EXAMPLES], [test "x${build_examples}" = "xyes"]) | ||
172 | |||
173 | # Unit tests, coverage and benchmarking | ||
174 | |||
175 | EFL_CHECK_TESTS([enable_tests="yes"], [enable_tests="no"]) | ||
176 | EFL_CHECK_COVERAGE([${enable_tests}], [enable_coverage="yes"], [enable_coverage="no"]) | ||
177 | |||
178 | if test "x${prefer_assert}" = "xno"; then | ||
179 | DEBUG_CFLAGS="-DNDEBUG" | ||
180 | else | ||
181 | # use debug symbols and set DEBUG if coverage support is enabled | ||
182 | DEBUG_CFLAGS="${EFL_DEBUG_CFLAGS}" | ||
183 | fi | ||
184 | AC_SUBST(DEBUG_CFLAGS) | ||
185 | |||
186 | |||
187 | ### Checks for programs | ||
188 | AC_PROG_CC | ||
189 | |||
190 | # pkg-config | ||
191 | PKG_PROG_PKG_CONFIG | ||
192 | |||
193 | # Check whether pkg-config supports Requires.private | ||
194 | if $PKG_CONFIG --atleast-pkgconfig-version 0.22; then | ||
195 | pkgconfig_requires_private="Requires.private" | ||
196 | else | ||
197 | pkgconfig_requires_private="Requires" | ||
198 | fi | ||
199 | AC_SUBST(pkgconfig_requires_private) | ||
200 | |||
201 | |||
202 | # doxygen program for documentation building | ||
203 | |||
204 | EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"]) | ||
205 | |||
206 | ### Checks for libraries | ||
207 | |||
208 | # Evil library for compilation on Windows | ||
209 | |||
210 | EFL_EET_BUILD="" | ||
211 | case "$host_os" in | ||
212 | mingw*) | ||
213 | PKG_CHECK_MODULES([EVIL], [evil >= 1.0.0]) | ||
214 | AC_DEFINE(HAVE_EVIL, 1, [Set to 1 if Evil library is installed]) | ||
215 | requirement_eet="evil ${requirement_eet}" | ||
216 | EFL_EET_BUILD="-DEFL_EET_BUILD" | ||
217 | ;; | ||
218 | esac | ||
219 | AC_SUBST(EFL_EET_BUILD) | ||
220 | |||
221 | EET_LIBS="" | ||
222 | case "$host_os" in | ||
223 | mingw32ce*) | ||
224 | EET_LIBS="-lws2" | ||
225 | ;; | ||
226 | mingw*) | ||
227 | EET_LIBS="-lws2_32" | ||
228 | ;; | ||
229 | esac | ||
230 | AC_SUBST(EET_LIBS) | ||
231 | |||
232 | # Eina library | ||
233 | |||
234 | PKG_CHECK_MODULES(EINA, [eina >= 1.2.0]) | ||
235 | requirement_eet="eina >= 1.2.0 ${requirement_eet}" | ||
236 | |||
237 | ### Checks for portability layer | ||
238 | |||
239 | PKG_CHECK_MODULES([EXOTIC], | ||
240 | [exotic], | ||
241 | [enable_exotic="yes"], | ||
242 | [enable_exotic="no"]) | ||
243 | |||
244 | if test "x${enable_exotic}" = "xyes"; then | ||
245 | requirement_eet="exotic ${requirement_eet}" | ||
246 | |||
247 | AC_DEFINE([HAVE_EXOTIC_H], [1], [Define to 1 if you have Exotic.]) | ||
248 | fi | ||
249 | |||
250 | # Gnutls support | ||
251 | |||
252 | AC_ARG_ENABLE([gnutls], | ||
253 | [AC_HELP_STRING([--disable-gnutls], [disable gnutls eet support])], | ||
254 | [want_gnutls=$enableval] | ||
255 | ) | ||
256 | AC_MSG_CHECKING([whether to use Gnutls]) | ||
257 | AC_MSG_RESULT([${want_gnutls}]) | ||
258 | |||
259 | # Gnutls library | ||
260 | have_gnutls="no" | ||
261 | if test "x${want_gnutls}" = "xyes" || test "x${want_gnutls}" = "xauto" ; then | ||
262 | PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.7.6], | ||
263 | [ | ||
264 | have_gnutls="yes" | ||
265 | want_openssl="no" | ||
266 | AC_DEFINE(HAVE_GNUTLS, 1, [Have Gnutls support]) | ||
267 | requirement_eet="gnutls ${requirement_eet}" | ||
268 | ], | ||
269 | [have_gnutls="no"]) | ||
270 | if test "x${have_gnutls}" = "xyes" ; then | ||
271 | AC_PATH_GENERIC([libgcrypt], [], [have_gnutls="yes"], [have_gnutls="no"]) | ||
272 | if test "x${have_gnutls}" = "xyes" ; then | ||
273 | GNUTLS_CFLAGS="${GNUTLS_CFLAGS} ${LIBGCRYPT_CFLAGS}" | ||
274 | GNUTLS_LIBS="${GNUTLS_LIBS} ${LIBGCRYPT_LIBS}" | ||
275 | fi | ||
276 | fi | ||
277 | fi | ||
278 | |||
279 | # Specific GNUTLS improvement | ||
280 | |||
281 | new_gnutls_api="yes" | ||
282 | AC_ARG_ENABLE(new-gnutls-api, | ||
283 | [AC_HELP_STRING( | ||
284 | [--disable-new-gnutls-api], | ||
285 | [enable use of gnutls_x509_crt_verify_hash. [[default=enable]]] | ||
286 | )], | ||
287 | [new_gnutls_api=$enableval] | ||
288 | ) | ||
289 | AC_MSG_CHECKING([whether to use gnutls_x509_crt_verify_hash]) | ||
290 | AC_MSG_RESULT([${new_gnutls_api}]) | ||
291 | |||
292 | if test "x${new_gnutls_api}" = "xyes" ; then | ||
293 | tmp_CFLAGS="${CFLAGS}" | ||
294 | tmp_LIBS="${LIBS}" | ||
295 | CFLAGS="${GNUTLS_CFLAGS}" | ||
296 | LIBS="${GNUTLS_LIBS}" | ||
297 | AC_CHECK_LIB(gnutls, gnutls_x509_crt_verify_hash, | ||
298 | [ new_gnutls_api="yes" ], | ||
299 | [ new_gnutls_api="no" ] | ||
300 | ) | ||
301 | CFLAGS="${tmp_CFLAGS}" | ||
302 | LIBS="${tmp_LIBS}" | ||
303 | |||
304 | if test "x${new_gnutls_api}" = "xyes"; then | ||
305 | AC_DEFINE(EET_USE_NEW_GNUTLS_API, 1, [use gnutls_x509_crt_verify_hash]) | ||
306 | fi | ||
307 | fi | ||
308 | |||
309 | use_gnutls_privkey_sign_data="no" | ||
310 | if test "x${want_gnutls}" = "xyes" -o "x${want_gnutls}" = "xauto"; then | ||
311 | tmp_CFLAGS="${CFLAGS}" | ||
312 | tmp_LIBS="${LIBS}" | ||
313 | CFLAGS="${GNUTLS_CFLAGS}" | ||
314 | LIBS="${GNUTLS_LIBS}" | ||
315 | AC_CHECK_LIB(gnutls, gnutls_privkey_sign_data, | ||
316 | [ use_gnutls_privkey_sign_data="yes" ], | ||
317 | [ use_gnutls_privkey_sign_data="no" ] | ||
318 | ) | ||
319 | CFLAGS="${tmp_CFLAGS}" | ||
320 | LIBS="${tmp_LIBS}" | ||
321 | |||
322 | if test "x${use_gnutls_privkey_sign_data}" = "xyes"; then | ||
323 | AC_DEFINE(EET_USE_NEW_PRIVKEY_SIGN_DATA, 1, [use gnutls_privkey_sign_data]) | ||
324 | fi | ||
325 | fi | ||
326 | AC_MSG_CHECKING([whether to use gnutls_privkey_sign_data]) | ||
327 | AC_MSG_RESULT([${use_gnutls_privkey_sign_data}]) | ||
328 | |||
329 | use_gnutls_pubkey_verify_hash="no" | ||
330 | if test "x${want_gnutls}" = "xyes" -o "x${want_gnutls}" = "xauto"; then | ||
331 | tmp_CFLAGS="${CFLAGS}" | ||
332 | tmp_LIBS="${LIBS}" | ||
333 | CFLAGS="${GNUTLS_CFLAGS}" | ||
334 | LIBS="${GNUTLS_LIBS}" | ||
335 | AC_CHECK_LIB(gnutls, gnutls_pubkey_verify_hash, | ||
336 | [ use_gnutls_pubkey_verify_hash="yes" ], | ||
337 | [ use_gnutls_pubkey_verify_hash="no" ] | ||
338 | ) | ||
339 | CFLAGS="${tmp_CFLAGS}" | ||
340 | LIBS="${tmp_LIBS}" | ||
341 | |||
342 | if test "x${use_gnutls_pubkey_verify_hash}" = "xyes"; then | ||
343 | AC_DEFINE(EET_USE_NEW_PUBKEY_VERIFY_HASH, 1, [use gnutls_pubkey_verify_hash]) | ||
344 | fi | ||
345 | fi | ||
346 | AC_MSG_CHECKING([whether to use gnutls_pubkey_verify_hash]) | ||
347 | AC_MSG_RESULT([${use_gnutls_pubkey_verify_hash}]) | ||
348 | |||
349 | # Openssl library | ||
350 | have_openssl="no" | ||
351 | if test "x${want_openssl}" = "xyes" || test "x${want_openssl}" = "xauto" ; then | ||
352 | PKG_CHECK_MODULES(OPENSSL, openssl, | ||
353 | [ | ||
354 | have_openssl="yes" | ||
355 | AC_DEFINE(HAVE_OPENSSL, 1, [Have Openssl support]) | ||
356 | requirement_eet="openssl ${requirement_eet}" | ||
357 | ], | ||
358 | [have_openssl="no"]) | ||
359 | fi | ||
360 | |||
361 | if test "x${have_gnutls}" = "xyes" ; then | ||
362 | secure_layer="GnuTLS" | ||
363 | elif test "x${have_openssl}" = "xyes" ; then | ||
364 | secure_layer="OpenSSL" | ||
365 | else | ||
366 | secure_layer="no" | ||
367 | fi | ||
368 | |||
369 | have_cipher="no" | ||
370 | if test "x${have_gnutls}" = "xyes" && test "x${want_cipher}" = "xyes" ; then | ||
371 | have_cipher="yes" | ||
372 | AC_DEFINE(HAVE_CIPHER, 1, [Have cipher support built in eet]) | ||
373 | elif test "x${have_openssl}" = "xyes" && test "x${want_cipher}" = "xyes" ; then | ||
374 | have_cipher="yes" | ||
375 | AC_DEFINE(HAVE_CIPHER, 1, [Have cipher support built in eet]) | ||
376 | fi | ||
377 | |||
378 | AC_MSG_CHECKING(whether to activate cipher support in eet) | ||
379 | AC_MSG_RESULT(${have_cipher}) | ||
380 | |||
381 | have_signature="no" | ||
382 | if test "x${have_gnutls}" = "xyes" && test "x${want_signature}" = "xyes" ; then | ||
383 | have_signature="yes" | ||
384 | AC_DEFINE(HAVE_SIGNATURE, 1, [Have signature support for eet file]) | ||
385 | elif test "x${have_openssl}" = "xyes" && test "x${want_signature}" = "xyes" ; then | ||
386 | have_signature="yes" | ||
387 | AC_DEFINE(HAVE_SIGNATURE, 1, [Have signature support for eet file]) | ||
388 | fi | ||
389 | |||
390 | AC_MSG_CHECKING(whether to activate signature support in eet) | ||
391 | AC_MSG_RESULT(${have_signature}) | ||
392 | |||
393 | ### Checks for header files | ||
394 | |||
395 | AC_CHECK_HEADER([zlib.h], | ||
396 | [dummy="yes"], | ||
397 | [AC_MSG_ERROR("Cannot find zlib.h. Make sure your CFLAGS environment variable contains include lines for the location of this file")]) | ||
398 | |||
399 | AC_CHECK_HEADER([jpeglib.h], | ||
400 | [dummy="yes"], | ||
401 | [AC_MSG_ERROR("Cannot find jpeglib.h. Make sure your CFLAGS environment variable contains include lines for the location of this file")]) | ||
402 | |||
403 | AC_CHECK_HEADERS(netinet/in.h unistd.h) | ||
404 | EFL_CHECK_PATH_MAX | ||
405 | |||
406 | ### Checks for types | ||
407 | |||
408 | |||
409 | ### Checks for structures | ||
410 | |||
411 | |||
412 | ### Checks for compiler characteristics | ||
413 | AM_PROG_CC_C_O | ||
414 | AC_C_CONST | ||
415 | AC_C_INLINE | ||
416 | AC_PROG_CC_STDC | ||
417 | AC_C___ATTRIBUTE__ | ||
418 | |||
419 | # Check whether the null pointer is zero on this arch | ||
420 | AC_TRY_RUN( | ||
421 | [ | ||
422 | #include <stdlib.h> | ||
423 | #include <inttypes.h> | ||
424 | int main (int argc, char **argv) { | ||
425 | void *foo = NULL; | ||
426 | uintptr_t bar = (uintptr_t)foo; | ||
427 | return (uintptr_t)foo; | ||
428 | } | ||
429 | ], | ||
430 | [have_null="yes"], | ||
431 | [have_null="no"], | ||
432 | [ | ||
433 | AC_MSG_WARN([Cannot check when cross-compiling -- assuming null is okay]) | ||
434 | have_null="yes" | ||
435 | ]) | ||
436 | AC_MSG_CHECKING([value of the null pointer]) | ||
437 | AC_MSG_RESULT([${have_null}]) | ||
438 | |||
439 | if test ! "x${have_null}" = "xyes" ; then | ||
440 | AC_MSG_WARN([Your system is a bit too funny, eet might not work properly]) | ||
441 | fi | ||
442 | |||
443 | # These are needed for fmemopen/open_memstream | ||
444 | AC_DEFINE(_GNU_SOURCE, , [Enable GNU extensions]) | ||
445 | |||
446 | EET_CPPFLAGS="" | ||
447 | EET_CFLAGS="" | ||
448 | case "$host_os" in | ||
449 | mingw32ce*) | ||
450 | EET_CPPFLAGS="-D_WIN32_WCE=0x0420" | ||
451 | ;; | ||
452 | mingw*) | ||
453 | EET_CPPFLAGS="-D_WIN32_WINNT=0x0501" | ||
454 | ;; | ||
455 | esac | ||
456 | AC_SUBST(EET_CPPFLAGS) | ||
457 | AC_SUBST(EET_CFLAGS) | ||
458 | |||
459 | |||
460 | ### Checks for linker characteristics | ||
461 | |||
462 | # use --enable-auto-import on Windows | ||
463 | |||
464 | lt_enable_auto_import="" | ||
465 | case "$host_os" in | ||
466 | mingw*) | ||
467 | lt_enable_auto_import="-Wl,--enable-auto-import" | ||
468 | ;; | ||
469 | esac | ||
470 | AC_SUBST(lt_enable_auto_import) | ||
471 | |||
472 | case "${host_os}" in | ||
473 | openbsd*) | ||
474 | ;; | ||
475 | *) | ||
476 | EFL_LINKER_FLAG([-Wl,--as-needed]) | ||
477 | ;; | ||
478 | esac | ||
479 | |||
480 | |||
481 | ### Checks for library functions | ||
482 | AC_ISC_POSIX | ||
483 | AC_FUNC_ALLOCA | ||
484 | |||
485 | AC_CHECK_FUNCS(fmemopen open_memstream realpath) | ||
486 | |||
487 | EFL_CHECK_FNMATCH([], [AC_MSG_ERROR([Cannot find fnmatch()])]) | ||
488 | |||
489 | |||
490 | AC_SUBST(requirement_eet) | ||
491 | |||
492 | AC_OUTPUT([ | ||
493 | Makefile | ||
494 | eet.pc | ||
495 | doc/Makefile | ||
496 | doc/Doxyfile | ||
497 | doc/eet.dox | ||
498 | src/Makefile | ||
499 | src/lib/Makefile | ||
500 | src/bin/Makefile | ||
501 | src/tests/Makefile | ||
502 | src/examples/Makefile | ||
503 | eet.spec | ||
504 | ]) | ||
505 | |||
506 | |||
507 | ##################################################################### | ||
508 | ## Info | ||
509 | |||
510 | echo | ||
511 | echo | ||
512 | echo | ||
513 | echo "------------------------------------------------------------------------" | ||
514 | echo "$PACKAGE_NAME $PACKAGE_VERSION" | ||
515 | echo "------------------------------------------------------------------------" | ||
516 | echo | ||
517 | echo "Configuration Options Summary:" | ||
518 | echo | ||
519 | echo " Amalgamation.........: ${do_amalgamation}" | ||
520 | echo " Secure layer.........: ${secure_layer}" | ||
521 | if test "x${have_gnutls}" = "xyes" || test "x${have_openssl}" = "xyes" ; then | ||
522 | echo " Cipher support.....: ${have_cipher}" | ||
523 | echo " Signature..........: ${have_signature}" | ||
524 | fi | ||
525 | echo | ||
526 | echo " Old eet file format..: ${old_eet_file_format}" | ||
527 | echo | ||
528 | echo " Tests................: ${enable_tests}" | ||
529 | echo " Coverage.............: ${enable_coverage}" | ||
530 | echo | ||
531 | echo " Build eet............: $have_eet" | ||
532 | echo | ||
533 | echo " Documentation........: ${build_doc}" | ||
534 | if test "x${build_doc}" = "xyes" ; then | ||
535 | echo " Building...........: make doc" | ||
536 | fi | ||
537 | echo " Examples.............: ${build_examples}" | ||
538 | if test "x${build_examples}" = "xyes" ; then | ||
539 | echo " Install............: ${install_examples}" | ||
540 | fi | ||
541 | echo | ||
542 | echo "Compilation............: make (or gmake)" | ||
543 | echo " CPPFLAGS.............: $CPPFLAGS" | ||
544 | echo " CFLAGS...............: $CFLAGS" | ||
545 | echo " LDFLAGS..............: $LDFLAGS" | ||
546 | echo | ||
547 | echo "Installation...........: make install (as root if needed, with 'su' or 'sudo')" | ||
548 | echo " prefix...............: $prefix" | ||
549 | echo | ||
diff --git a/libraries/eet/depcomp b/libraries/eet/depcomp deleted file mode 100755 index df8eea7..0000000 --- a/libraries/eet/depcomp +++ /dev/null | |||
@@ -1,630 +0,0 @@ | |||
1 | #! /bin/sh | ||
2 | # depcomp - compile a program generating dependencies as side-effects | ||
3 | |||
4 | scriptversion=2009-04-28.21; # UTC | ||
5 | |||
6 | # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free | ||
7 | # Software Foundation, Inc. | ||
8 | |||
9 | # This program is free software; you can redistribute it and/or modify | ||
10 | # it under the terms of the GNU General Public License as published by | ||
11 | # the Free Software Foundation; either version 2, or (at your option) | ||
12 | # any later version. | ||
13 | |||
14 | # This program is distributed in the hope that it will be useful, | ||
15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
17 | # GNU General Public License for more details. | ||
18 | |||
19 | # You should have received a copy of the GNU General Public License | ||
20 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
21 | |||
22 | # As a special exception to the GNU General Public License, if you | ||
23 | # distribute this file as part of a program that contains a | ||
24 | # configuration script generated by Autoconf, you may include it under | ||
25 | # the same distribution terms that you use for the rest of that program. | ||
26 | |||
27 | # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. | ||
28 | |||
29 | case $1 in | ||
30 | '') | ||
31 | echo "$0: No command. Try \`$0 --help' for more information." 1>&2 | ||
32 | exit 1; | ||
33 | ;; | ||
34 | -h | --h*) | ||
35 | cat <<\EOF | ||
36 | Usage: depcomp [--help] [--version] PROGRAM [ARGS] | ||
37 | |||
38 | Run PROGRAMS ARGS to compile a file, generating dependencies | ||
39 | as side-effects. | ||
40 | |||
41 | Environment variables: | ||
42 | depmode Dependency tracking mode. | ||
43 | source Source file read by `PROGRAMS ARGS'. | ||
44 | object Object file output by `PROGRAMS ARGS'. | ||
45 | DEPDIR directory where to store dependencies. | ||
46 | depfile Dependency file to output. | ||
47 | tmpdepfile Temporary file to use when outputing dependencies. | ||
48 | libtool Whether libtool is used (yes/no). | ||
49 | |||
50 | Report bugs to <bug-automake@gnu.org>. | ||
51 | EOF | ||
52 | exit $? | ||
53 | ;; | ||
54 | -v | --v*) | ||
55 | echo "depcomp $scriptversion" | ||
56 | exit $? | ||
57 | ;; | ||
58 | esac | ||
59 | |||
60 | if test -z "$depmode" || test -z "$source" || test -z "$object"; then | ||
61 | echo "depcomp: Variables source, object and depmode must be set" 1>&2 | ||
62 | exit 1 | ||
63 | fi | ||
64 | |||
65 | # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. | ||
66 | depfile=${depfile-`echo "$object" | | ||
67 | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} | ||
68 | tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} | ||
69 | |||
70 | rm -f "$tmpdepfile" | ||
71 | |||
72 | # Some modes work just like other modes, but use different flags. We | ||
73 | # parameterize here, but still list the modes in the big case below, | ||
74 | # to make depend.m4 easier to write. Note that we *cannot* use a case | ||
75 | # here, because this file can only contain one case statement. | ||
76 | if test "$depmode" = hp; then | ||
77 | # HP compiler uses -M and no extra arg. | ||
78 | gccflag=-M | ||
79 | depmode=gcc | ||
80 | fi | ||
81 | |||
82 | if test "$depmode" = dashXmstdout; then | ||
83 | # This is just like dashmstdout with a different argument. | ||
84 | dashmflag=-xM | ||
85 | depmode=dashmstdout | ||
86 | fi | ||
87 | |||
88 | cygpath_u="cygpath -u -f -" | ||
89 | if test "$depmode" = msvcmsys; then | ||
90 | # This is just like msvisualcpp but w/o cygpath translation. | ||
91 | # Just convert the backslash-escaped backslashes to single forward | ||
92 | # slashes to satisfy depend.m4 | ||
93 | cygpath_u="sed s,\\\\\\\\,/,g" | ||
94 | depmode=msvisualcpp | ||
95 | fi | ||
96 | |||
97 | case "$depmode" in | ||
98 | gcc3) | ||
99 | ## gcc 3 implements dependency tracking that does exactly what | ||
100 | ## we want. Yay! Note: for some reason libtool 1.4 doesn't like | ||
101 | ## it if -MD -MP comes after the -MF stuff. Hmm. | ||
102 | ## Unfortunately, FreeBSD c89 acceptance of flags depends upon | ||
103 | ## the command line argument order; so add the flags where they | ||
104 | ## appear in depend2.am. Note that the slowdown incurred here | ||
105 | ## affects only configure: in makefiles, %FASTDEP% shortcuts this. | ||
106 | for arg | ||
107 | do | ||
108 | case $arg in | ||
109 | -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; | ||
110 | *) set fnord "$@" "$arg" ;; | ||
111 | esac | ||
112 | shift # fnord | ||
113 | shift # $arg | ||
114 | done | ||
115 | "$@" | ||
116 | stat=$? | ||
117 | if test $stat -eq 0; then : | ||
118 | else | ||
119 | rm -f "$tmpdepfile" | ||
120 | exit $stat | ||
121 | fi | ||
122 | mv "$tmpdepfile" "$depfile" | ||
123 | ;; | ||
124 | |||
125 | gcc) | ||
126 | ## There are various ways to get dependency output from gcc. Here's | ||
127 | ## why we pick this rather obscure method: | ||
128 | ## - Don't want to use -MD because we'd like the dependencies to end | ||
129 | ## up in a subdir. Having to rename by hand is ugly. | ||
130 | ## (We might end up doing this anyway to support other compilers.) | ||
131 | ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like | ||
132 | ## -MM, not -M (despite what the docs say). | ||
133 | ## - Using -M directly means running the compiler twice (even worse | ||
134 | ## than renaming). | ||
135 | if test -z "$gccflag"; then | ||
136 | gccflag=-MD, | ||
137 | fi | ||
138 | "$@" -Wp,"$gccflag$tmpdepfile" | ||
139 | stat=$? | ||
140 | if test $stat -eq 0; then : | ||
141 | else | ||
142 | rm -f "$tmpdepfile" | ||
143 | exit $stat | ||
144 | fi | ||
145 | rm -f "$depfile" | ||
146 | echo "$object : \\" > "$depfile" | ||
147 | alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz | ||
148 | ## The second -e expression handles DOS-style file names with drive letters. | ||
149 | sed -e 's/^[^:]*: / /' \ | ||
150 | -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" | ||
151 | ## This next piece of magic avoids the `deleted header file' problem. | ||
152 | ## The problem is that when a header file which appears in a .P file | ||
153 | ## is deleted, the dependency causes make to die (because there is | ||
154 | ## typically no way to rebuild the header). We avoid this by adding | ||
155 | ## dummy dependencies for each header file. Too bad gcc doesn't do | ||
156 | ## this for us directly. | ||
157 | tr ' ' ' | ||
158 | ' < "$tmpdepfile" | | ||
159 | ## Some versions of gcc put a space before the `:'. On the theory | ||
160 | ## that the space means something, we add a space to the output as | ||
161 | ## well. | ||
162 | ## Some versions of the HPUX 10.20 sed can't process this invocation | ||
163 | ## correctly. Breaking it into two sed invocations is a workaround. | ||
164 | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" | ||
165 | rm -f "$tmpdepfile" | ||
166 | ;; | ||
167 | |||
168 | hp) | ||
169 | # This case exists only to let depend.m4 do its work. It works by | ||
170 | # looking at the text of this script. This case will never be run, | ||
171 | # since it is checked for above. | ||
172 | exit 1 | ||
173 | ;; | ||
174 | |||
175 | sgi) | ||
176 | if test "$libtool" = yes; then | ||
177 | "$@" "-Wp,-MDupdate,$tmpdepfile" | ||
178 | else | ||
179 | "$@" -MDupdate "$tmpdepfile" | ||
180 | fi | ||
181 | stat=$? | ||
182 | if test $stat -eq 0; then : | ||
183 | else | ||
184 | rm -f "$tmpdepfile" | ||
185 | exit $stat | ||
186 | fi | ||
187 | rm -f "$depfile" | ||
188 | |||
189 | if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files | ||
190 | echo "$object : \\" > "$depfile" | ||
191 | |||
192 | # Clip off the initial element (the dependent). Don't try to be | ||
193 | # clever and replace this with sed code, as IRIX sed won't handle | ||
194 | # lines with more than a fixed number of characters (4096 in | ||
195 | # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; | ||
196 | # the IRIX cc adds comments like `#:fec' to the end of the | ||
197 | # dependency line. | ||
198 | tr ' ' ' | ||
199 | ' < "$tmpdepfile" \ | ||
200 | | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ | ||
201 | tr ' | ||
202 | ' ' ' >> "$depfile" | ||
203 | echo >> "$depfile" | ||
204 | |||
205 | # The second pass generates a dummy entry for each header file. | ||
206 | tr ' ' ' | ||
207 | ' < "$tmpdepfile" \ | ||
208 | | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ | ||
209 | >> "$depfile" | ||
210 | else | ||
211 | # The sourcefile does not contain any dependencies, so just | ||
212 | # store a dummy comment line, to avoid errors with the Makefile | ||
213 | # "include basename.Plo" scheme. | ||
214 | echo "#dummy" > "$depfile" | ||
215 | fi | ||
216 | rm -f "$tmpdepfile" | ||
217 | ;; | ||
218 | |||
219 | aix) | ||
220 | # The C for AIX Compiler uses -M and outputs the dependencies | ||
221 | # in a .u file. In older versions, this file always lives in the | ||
222 | # current directory. Also, the AIX compiler puts `$object:' at the | ||
223 | # start of each line; $object doesn't have directory information. | ||
224 | # Version 6 uses the directory in both cases. | ||
225 | dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` | ||
226 | test "x$dir" = "x$object" && dir= | ||
227 | base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` | ||
228 | if test "$libtool" = yes; then | ||
229 | tmpdepfile1=$dir$base.u | ||
230 | tmpdepfile2=$base.u | ||
231 | tmpdepfile3=$dir.libs/$base.u | ||
232 | "$@" -Wc,-M | ||
233 | else | ||
234 | tmpdepfile1=$dir$base.u | ||
235 | tmpdepfile2=$dir$base.u | ||
236 | tmpdepfile3=$dir$base.u | ||
237 | "$@" -M | ||
238 | fi | ||
239 | stat=$? | ||
240 | |||
241 | if test $stat -eq 0; then : | ||
242 | else | ||
243 | rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" | ||
244 | exit $stat | ||
245 | fi | ||
246 | |||
247 | for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" | ||
248 | do | ||
249 | test -f "$tmpdepfile" && break | ||
250 | done | ||
251 | if test -f "$tmpdepfile"; then | ||
252 | # Each line is of the form `foo.o: dependent.h'. | ||
253 | # Do two passes, one to just change these to | ||
254 | # `$object: dependent.h' and one to simply `dependent.h:'. | ||
255 | sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" | ||
256 | # That's a tab and a space in the []. | ||
257 | sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" | ||
258 | else | ||
259 | # The sourcefile does not contain any dependencies, so just | ||
260 | # store a dummy comment line, to avoid errors with the Makefile | ||
261 | # "include basename.Plo" scheme. | ||
262 | echo "#dummy" > "$depfile" | ||
263 | fi | ||
264 | rm -f "$tmpdepfile" | ||
265 | ;; | ||
266 | |||
267 | icc) | ||
268 | # Intel's C compiler understands `-MD -MF file'. However on | ||
269 | # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c | ||
270 | # ICC 7.0 will fill foo.d with something like | ||
271 | # foo.o: sub/foo.c | ||
272 | # foo.o: sub/foo.h | ||
273 | # which is wrong. We want: | ||
274 | # sub/foo.o: sub/foo.c | ||
275 | # sub/foo.o: sub/foo.h | ||
276 | # sub/foo.c: | ||
277 | # sub/foo.h: | ||
278 | # ICC 7.1 will output | ||
279 | # foo.o: sub/foo.c sub/foo.h | ||
280 | # and will wrap long lines using \ : | ||
281 | # foo.o: sub/foo.c ... \ | ||
282 | # sub/foo.h ... \ | ||
283 | # ... | ||
284 | |||
285 | "$@" -MD -MF "$tmpdepfile" | ||
286 | stat=$? | ||
287 | if test $stat -eq 0; then : | ||
288 | else | ||
289 | rm -f "$tmpdepfile" | ||
290 | exit $stat | ||
291 | fi | ||
292 | rm -f "$depfile" | ||
293 | # Each line is of the form `foo.o: dependent.h', | ||
294 | # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. | ||
295 | # Do two passes, one to just change these to | ||
296 | # `$object: dependent.h' and one to simply `dependent.h:'. | ||
297 | sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" | ||
298 | # Some versions of the HPUX 10.20 sed can't process this invocation | ||
299 | # correctly. Breaking it into two sed invocations is a workaround. | ||
300 | sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | | ||
301 | sed -e 's/$/ :/' >> "$depfile" | ||
302 | rm -f "$tmpdepfile" | ||
303 | ;; | ||
304 | |||
305 | hp2) | ||
306 | # The "hp" stanza above does not work with aCC (C++) and HP's ia64 | ||
307 | # compilers, which have integrated preprocessors. The correct option | ||
308 | # to use with these is +Maked; it writes dependencies to a file named | ||
309 | # 'foo.d', which lands next to the object file, wherever that | ||
310 | # happens to be. | ||
311 | # Much of this is similar to the tru64 case; see comments there. | ||
312 | dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` | ||
313 | test "x$dir" = "x$object" && dir= | ||
314 | base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` | ||
315 | if test "$libtool" = yes; then | ||
316 | tmpdepfile1=$dir$base.d | ||
317 | tmpdepfile2=$dir.libs/$base.d | ||
318 | "$@" -Wc,+Maked | ||
319 | else | ||
320 | tmpdepfile1=$dir$base.d | ||
321 | tmpdepfile2=$dir$base.d | ||
322 | "$@" +Maked | ||
323 | fi | ||
324 | stat=$? | ||
325 | if test $stat -eq 0; then : | ||
326 | else | ||
327 | rm -f "$tmpdepfile1" "$tmpdepfile2" | ||
328 | exit $stat | ||
329 | fi | ||
330 | |||
331 | for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" | ||
332 | do | ||
333 | test -f "$tmpdepfile" && break | ||
334 | done | ||
335 | if test -f "$tmpdepfile"; then | ||
336 | sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" | ||
337 | # Add `dependent.h:' lines. | ||
338 | sed -ne '2,${ | ||
339 | s/^ *// | ||
340 | s/ \\*$// | ||
341 | s/$/:/ | ||
342 | p | ||
343 | }' "$tmpdepfile" >> "$depfile" | ||
344 | else | ||
345 | echo "#dummy" > "$depfile" | ||
346 | fi | ||
347 | rm -f "$tmpdepfile" "$tmpdepfile2" | ||
348 | ;; | ||
349 | |||
350 | tru64) | ||
351 | # The Tru64 compiler uses -MD to generate dependencies as a side | ||
352 | # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. | ||
353 | # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put | ||
354 | # dependencies in `foo.d' instead, so we check for that too. | ||
355 | # Subdirectories are respected. | ||
356 | dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` | ||
357 | test "x$dir" = "x$object" && dir= | ||
358 | base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` | ||
359 | |||
360 | if test "$libtool" = yes; then | ||
361 | # With Tru64 cc, shared objects can also be used to make a | ||
362 | # static library. This mechanism is used in libtool 1.4 series to | ||
363 | # handle both shared and static libraries in a single compilation. | ||
364 | # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. | ||
365 | # | ||
366 | # With libtool 1.5 this exception was removed, and libtool now | ||
367 | # generates 2 separate objects for the 2 libraries. These two | ||
368 | # compilations output dependencies in $dir.libs/$base.o.d and | ||
369 | # in $dir$base.o.d. We have to check for both files, because | ||
370 | # one of the two compilations can be disabled. We should prefer | ||
371 | # $dir$base.o.d over $dir.libs/$base.o.d because the latter is | ||
372 | # automatically cleaned when .libs/ is deleted, while ignoring | ||
373 | # the former would cause a distcleancheck panic. | ||
374 | tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 | ||
375 | tmpdepfile2=$dir$base.o.d # libtool 1.5 | ||
376 | tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 | ||
377 | tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 | ||
378 | "$@" -Wc,-MD | ||
379 | else | ||
380 | tmpdepfile1=$dir$base.o.d | ||
381 | tmpdepfile2=$dir$base.d | ||
382 | tmpdepfile3=$dir$base.d | ||
383 | tmpdepfile4=$dir$base.d | ||
384 | "$@" -MD | ||
385 | fi | ||
386 | |||
387 | stat=$? | ||
388 | if test $stat -eq 0; then : | ||
389 | else | ||
390 | rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" | ||
391 | exit $stat | ||
392 | fi | ||
393 | |||
394 | for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" | ||
395 | do | ||
396 | test -f "$tmpdepfile" && break | ||
397 | done | ||
398 | if test -f "$tmpdepfile"; then | ||
399 | sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" | ||
400 | # That's a tab and a space in the []. | ||
401 | sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" | ||
402 | else | ||
403 | echo "#dummy" > "$depfile" | ||
404 | fi | ||
405 | rm -f "$tmpdepfile" | ||
406 | ;; | ||
407 | |||
408 | #nosideeffect) | ||
409 | # This comment above is used by automake to tell side-effect | ||
410 | # dependency tracking mechanisms from slower ones. | ||
411 | |||
412 | dashmstdout) | ||
413 | # Important note: in order to support this mode, a compiler *must* | ||
414 | # always write the preprocessed file to stdout, regardless of -o. | ||
415 | "$@" || exit $? | ||
416 | |||
417 | # Remove the call to Libtool. | ||
418 | if test "$libtool" = yes; then | ||
419 | while test "X$1" != 'X--mode=compile'; do | ||
420 | shift | ||
421 | done | ||
422 | shift | ||
423 | fi | ||
424 | |||
425 | # Remove `-o $object'. | ||
426 | IFS=" " | ||
427 | for arg | ||
428 | do | ||
429 | case $arg in | ||
430 | -o) | ||
431 | shift | ||
432 | ;; | ||
433 | $object) | ||
434 | shift | ||
435 | ;; | ||
436 | *) | ||
437 | set fnord "$@" "$arg" | ||
438 | shift # fnord | ||
439 | shift # $arg | ||
440 | ;; | ||
441 | esac | ||
442 | done | ||
443 | |||
444 | test -z "$dashmflag" && dashmflag=-M | ||
445 | # Require at least two characters before searching for `:' | ||
446 | # in the target name. This is to cope with DOS-style filenames: | ||
447 | # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. | ||
448 | "$@" $dashmflag | | ||
449 | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" | ||
450 | rm -f "$depfile" | ||
451 | cat < "$tmpdepfile" > "$depfile" | ||
452 | tr ' ' ' | ||
453 | ' < "$tmpdepfile" | \ | ||
454 | ## Some versions of the HPUX 10.20 sed can't process this invocation | ||
455 | ## correctly. Breaking it into two sed invocations is a workaround. | ||
456 | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" | ||
457 | rm -f "$tmpdepfile" | ||
458 | ;; | ||
459 | |||
460 | dashXmstdout) | ||
461 | # This case only exists to satisfy depend.m4. It is never actually | ||
462 | # run, as this mode is specially recognized in the preamble. | ||
463 | exit 1 | ||
464 | ;; | ||
465 | |||
466 | makedepend) | ||
467 | "$@" || exit $? | ||
468 | # Remove any Libtool call | ||
469 | if test "$libtool" = yes; then | ||
470 | while test "X$1" != 'X--mode=compile'; do | ||
471 | shift | ||
472 | done | ||
473 | shift | ||
474 | fi | ||
475 | # X makedepend | ||
476 | shift | ||
477 | cleared=no eat=no | ||
478 | for arg | ||
479 | do | ||
480 | case $cleared in | ||
481 | no) | ||
482 | set ""; shift | ||
483 | cleared=yes ;; | ||
484 | esac | ||
485 | if test $eat = yes; then | ||
486 | eat=no | ||
487 | continue | ||
488 | fi | ||
489 | case "$arg" in | ||
490 | -D*|-I*) | ||
491 | set fnord "$@" "$arg"; shift ;; | ||
492 | # Strip any option that makedepend may not understand. Remove | ||
493 | # the object too, otherwise makedepend will parse it as a source file. | ||
494 | -arch) | ||
495 | eat=yes ;; | ||
496 | -*|$object) | ||
497 | ;; | ||
498 | *) | ||
499 | set fnord "$@" "$arg"; shift ;; | ||
500 | esac | ||
501 | done | ||
502 | obj_suffix=`echo "$object" | sed 's/^.*\././'` | ||
503 | touch "$tmpdepfile" | ||
504 | ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" | ||
505 | rm -f "$depfile" | ||
506 | cat < "$tmpdepfile" > "$depfile" | ||
507 | sed '1,2d' "$tmpdepfile" | tr ' ' ' | ||
508 | ' | \ | ||
509 | ## Some versions of the HPUX 10.20 sed can't process this invocation | ||
510 | ## correctly. Breaking it into two sed invocations is a workaround. | ||
511 | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" | ||
512 | rm -f "$tmpdepfile" "$tmpdepfile".bak | ||
513 | ;; | ||
514 | |||
515 | cpp) | ||
516 | # Important note: in order to support this mode, a compiler *must* | ||
517 | # always write the preprocessed file to stdout. | ||
518 | "$@" || exit $? | ||
519 | |||
520 | # Remove the call to Libtool. | ||
521 | if test "$libtool" = yes; then | ||
522 | while test "X$1" != 'X--mode=compile'; do | ||
523 | shift | ||
524 | done | ||
525 | shift | ||
526 | fi | ||
527 | |||
528 | # Remove `-o $object'. | ||
529 | IFS=" " | ||
530 | for arg | ||
531 | do | ||
532 | case $arg in | ||
533 | -o) | ||
534 | shift | ||
535 | ;; | ||
536 | $object) | ||
537 | shift | ||
538 | ;; | ||
539 | *) | ||
540 | set fnord "$@" "$arg" | ||
541 | shift # fnord | ||
542 | shift # $arg | ||
543 | ;; | ||
544 | esac | ||
545 | done | ||
546 | |||
547 | "$@" -E | | ||
548 | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | ||
549 | -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | | ||
550 | sed '$ s: \\$::' > "$tmpdepfile" | ||
551 | rm -f "$depfile" | ||
552 | echo "$object : \\" > "$depfile" | ||
553 | cat < "$tmpdepfile" >> "$depfile" | ||
554 | sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" | ||
555 | rm -f "$tmpdepfile" | ||
556 | ;; | ||
557 | |||
558 | msvisualcpp) | ||
559 | # Important note: in order to support this mode, a compiler *must* | ||
560 | # always write the preprocessed file to stdout. | ||
561 | "$@" || exit $? | ||
562 | |||
563 | # Remove the call to Libtool. | ||
564 | if test "$libtool" = yes; then | ||
565 | while test "X$1" != 'X--mode=compile'; do | ||
566 | shift | ||
567 | done | ||
568 | shift | ||
569 | fi | ||
570 | |||
571 | IFS=" " | ||
572 | for arg | ||
573 | do | ||
574 | case "$arg" in | ||
575 | -o) | ||
576 | shift | ||
577 | ;; | ||
578 | $object) | ||
579 | shift | ||
580 | ;; | ||
581 | "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") | ||
582 | set fnord "$@" | ||
583 | shift | ||
584 | shift | ||
585 | ;; | ||
586 | *) | ||
587 | set fnord "$@" "$arg" | ||
588 | shift | ||
589 | shift | ||
590 | ;; | ||
591 | esac | ||
592 | done | ||
593 | "$@" -E 2>/dev/null | | ||
594 | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" | ||
595 | rm -f "$depfile" | ||
596 | echo "$object : \\" > "$depfile" | ||
597 | sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" | ||
598 | echo " " >> "$depfile" | ||
599 | sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" | ||
600 | rm -f "$tmpdepfile" | ||
601 | ;; | ||
602 | |||
603 | msvcmsys) | ||
604 | # This case exists only to let depend.m4 do its work. It works by | ||
605 | # looking at the text of this script. This case will never be run, | ||
606 | # since it is checked for above. | ||
607 | exit 1 | ||
608 | ;; | ||
609 | |||
610 | none) | ||
611 | exec "$@" | ||
612 | ;; | ||
613 | |||
614 | *) | ||
615 | echo "Unknown depmode $depmode" 1>&2 | ||
616 | exit 1 | ||
617 | ;; | ||
618 | esac | ||
619 | |||
620 | exit 0 | ||
621 | |||
622 | # Local Variables: | ||
623 | # mode: shell-script | ||
624 | # sh-indentation: 2 | ||
625 | # eval: (add-hook 'write-file-hooks 'time-stamp) | ||
626 | # time-stamp-start: "scriptversion=" | ||
627 | # time-stamp-format: "%:y-%02m-%02d.%02H" | ||
628 | # time-stamp-time-zone: "UTC" | ||
629 | # time-stamp-end: "; # UTC" | ||
630 | # End: | ||
diff --git a/libraries/eet/doc/Doxyfile b/libraries/eet/doc/Doxyfile deleted file mode 100644 index 26a32a7..0000000 --- a/libraries/eet/doc/Doxyfile +++ /dev/null | |||
@@ -1,1694 +0,0 @@ | |||
1 | # Doxyfile 1.7.3 | ||
2 | |||
3 | # This file describes the settings to be used by the documentation system | ||
4 | # doxygen (www.doxygen.org) for a project. | ||
5 | # | ||
6 | # All text after a hash (#) is considered a comment and will be ignored. | ||
7 | # The format is: | ||
8 | # TAG = value [value, ...] | ||
9 | # For lists items can also be appended using: | ||
10 | # TAG += value [value, ...] | ||
11 | # Values that contain spaces should be placed between quotes (" "). | ||
12 | |||
13 | #--------------------------------------------------------------------------- | ||
14 | # Project related configuration options | ||
15 | #--------------------------------------------------------------------------- | ||
16 | |||
17 | # This tag specifies the encoding used for all characters in the config file | ||
18 | # that follow. The default is UTF-8 which is also the encoding used for all | ||
19 | # text before the first occurrence of this tag. Doxygen uses libiconv (or the | ||
20 | # iconv built into libc) for the transcoding. See | ||
21 | # http://www.gnu.org/software/libiconv for the list of possible encodings. | ||
22 | |||
23 | DOXYFILE_ENCODING = UTF-8 | ||
24 | |||
25 | # The PROJECT_NAME tag is a single word (or a sequence of words surrounded | ||
26 | # by quotes) that should identify the project. | ||
27 | |||
28 | PROJECT_NAME = Eet | ||
29 | |||
30 | # The PROJECT_NUMBER tag can be used to enter a project or revision number. | ||
31 | # This could be handy for archiving the generated documentation or | ||
32 | # if some version control system is used. | ||
33 | |||
34 | PROJECT_NUMBER = 1.6.0-alpha | ||
35 | |||
36 | # Using the PROJECT_BRIEF tag one can provide an optional one line description for a project that appears at the top of each page and should give viewer a quick idea about the purpose of the project. Keep the description short. | ||
37 | |||
38 | PROJECT_BRIEF = | ||
39 | |||
40 | # With the PROJECT_LOGO tag one can specify an logo or icon that is | ||
41 | # included in the documentation. The maximum height of the logo should not | ||
42 | # exceed 55 pixels and the maximum width should not exceed 200 pixels. | ||
43 | # Doxygen will copy the logo to the output directory. | ||
44 | |||
45 | PROJECT_LOGO = | ||
46 | |||
47 | # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) | ||
48 | # base path where the generated documentation will be put. | ||
49 | # If a relative path is entered, it will be relative to the location | ||
50 | # where doxygen was started. If left blank the current directory will be used. | ||
51 | |||
52 | OUTPUT_DIRECTORY = . | ||
53 | |||
54 | # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create | ||
55 | # 4096 sub-directories (in 2 levels) under the output directory of each output | ||
56 | # format and will distribute the generated files over these directories. | ||
57 | # Enabling this option can be useful when feeding doxygen a huge amount of | ||
58 | # source files, where putting all generated files in the same directory would | ||
59 | # otherwise cause performance problems for the file system. | ||
60 | |||
61 | CREATE_SUBDIRS = NO | ||
62 | |||
63 | # The OUTPUT_LANGUAGE tag is used to specify the language in which all | ||
64 | # documentation generated by doxygen is written. Doxygen will use this | ||
65 | # information to generate all constant output in the proper language. | ||
66 | # The default language is English, other supported languages are: | ||
67 | # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, | ||
68 | # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, | ||
69 | # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English | ||
70 | # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, | ||
71 | # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, | ||
72 | # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. | ||
73 | |||
74 | OUTPUT_LANGUAGE = English | ||
75 | |||
76 | # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will | ||
77 | # include brief member descriptions after the members that are listed in | ||
78 | # the file and class documentation (similar to JavaDoc). | ||
79 | # Set to NO to disable this. | ||
80 | |||
81 | BRIEF_MEMBER_DESC = YES | ||
82 | |||
83 | # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend | ||
84 | # the brief description of a member or function before the detailed description. | ||
85 | # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the | ||
86 | # brief descriptions will be completely suppressed. | ||
87 | |||
88 | REPEAT_BRIEF = YES | ||
89 | |||
90 | # This tag implements a quasi-intelligent brief description abbreviator | ||
91 | # that is used to form the text in various listings. Each string | ||
92 | # in this list, if found as the leading text of the brief description, will be | ||
93 | # stripped from the text and the result after processing the whole list, is | ||
94 | # used as the annotated text. Otherwise, the brief description is used as-is. | ||
95 | # If left blank, the following values are used ("$name" is automatically | ||
96 | # replaced with the name of the entity): "The $name class" "The $name widget" | ||
97 | # "The $name file" "is" "provides" "specifies" "contains" | ||
98 | # "represents" "a" "an" "the" | ||
99 | |||
100 | ABBREVIATE_BRIEF = | ||
101 | |||
102 | # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then | ||
103 | # Doxygen will generate a detailed section even if there is only a brief | ||
104 | # description. | ||
105 | |||
106 | ALWAYS_DETAILED_SEC = NO | ||
107 | |||
108 | # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all | ||
109 | # inherited members of a class in the documentation of that class as if those | ||
110 | # members were ordinary class members. Constructors, destructors and assignment | ||
111 | # operators of the base classes will not be shown. | ||
112 | |||
113 | INLINE_INHERITED_MEMB = NO | ||
114 | |||
115 | # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full | ||
116 | # path before files name in the file list and in the header files. If set | ||
117 | # to NO the shortest path that makes the file name unique will be used. | ||
118 | |||
119 | FULL_PATH_NAMES = NO | ||
120 | |||
121 | # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag | ||
122 | # can be used to strip a user-defined part of the path. Stripping is | ||
123 | # only done if one of the specified strings matches the left-hand part of | ||
124 | # the path. The tag can be used to show relative paths in the file list. | ||
125 | # If left blank the directory from which doxygen is run is used as the | ||
126 | # path to strip. | ||
127 | |||
128 | STRIP_FROM_PATH = | ||
129 | |||
130 | # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of | ||
131 | # the path mentioned in the documentation of a class, which tells | ||
132 | # the reader which header file to include in order to use a class. | ||
133 | # If left blank only the name of the header file containing the class | ||
134 | # definition is used. Otherwise one should specify the include paths that | ||
135 | # are normally passed to the compiler using the -I flag. | ||
136 | |||
137 | STRIP_FROM_INC_PATH = | ||
138 | |||
139 | # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter | ||
140 | # (but less readable) file names. This can be useful if your file system | ||
141 | # doesn't support long names like on DOS, Mac, or CD-ROM. | ||
142 | |||
143 | SHORT_NAMES = NO | ||
144 | |||
145 | # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen | ||
146 | # will interpret the first line (until the first dot) of a JavaDoc-style | ||
147 | # comment as the brief description. If set to NO, the JavaDoc | ||
148 | # comments will behave just like regular Qt-style comments | ||
149 | # (thus requiring an explicit @brief command for a brief description.) | ||
150 | |||
151 | JAVADOC_AUTOBRIEF = YES | ||
152 | |||
153 | # If the QT_AUTOBRIEF tag is set to YES then Doxygen will | ||
154 | # interpret the first line (until the first dot) of a Qt-style | ||
155 | # comment as the brief description. If set to NO, the comments | ||
156 | # will behave just like regular Qt-style comments (thus requiring | ||
157 | # an explicit \brief command for a brief description.) | ||
158 | |||
159 | QT_AUTOBRIEF = NO | ||
160 | |||
161 | # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen | ||
162 | # treat a multi-line C++ special comment block (i.e. a block of //! or /// | ||
163 | # comments) as a brief description. This used to be the default behaviour. | ||
164 | # The new default is to treat a multi-line C++ comment block as a detailed | ||
165 | # description. Set this tag to YES if you prefer the old behaviour instead. | ||
166 | |||
167 | MULTILINE_CPP_IS_BRIEF = NO | ||
168 | |||
169 | # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented | ||
170 | # member inherits the documentation from any documented member that it | ||
171 | # re-implements. | ||
172 | |||
173 | INHERIT_DOCS = YES | ||
174 | |||
175 | # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce | ||
176 | # a new page for each member. If set to NO, the documentation of a member will | ||
177 | # be part of the file/class/namespace that contains it. | ||
178 | |||
179 | SEPARATE_MEMBER_PAGES = NO | ||
180 | |||
181 | # The TAB_SIZE tag can be used to set the number of spaces in a tab. | ||
182 | # Doxygen uses this value to replace tabs by spaces in code fragments. | ||
183 | |||
184 | TAB_SIZE = 8 | ||
185 | |||
186 | # This tag can be used to specify a number of aliases that acts | ||
187 | # as commands in the documentation. An alias has the form "name=value". | ||
188 | # For example adding "sideeffect=\par Side Effects:\n" will allow you to | ||
189 | # put the command \sideeffect (or @sideeffect) in the documentation, which | ||
190 | # will result in a user-defined paragraph with heading "Side Effects:". | ||
191 | # You can put \n's in the value part of an alias to insert newlines. | ||
192 | |||
193 | ALIASES = | ||
194 | |||
195 | # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C | ||
196 | # sources only. Doxygen will then generate output that is more tailored for C. | ||
197 | # For instance, some of the names that are used will be different. The list | ||
198 | # of all members will be omitted, etc. | ||
199 | |||
200 | OPTIMIZE_OUTPUT_FOR_C = YES | ||
201 | |||
202 | # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java | ||
203 | # sources only. Doxygen will then generate output that is more tailored for | ||
204 | # Java. For instance, namespaces will be presented as packages, qualified | ||
205 | # scopes will look different, etc. | ||
206 | |||
207 | OPTIMIZE_OUTPUT_JAVA = NO | ||
208 | |||
209 | # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran | ||
210 | # sources only. Doxygen will then generate output that is more tailored for | ||
211 | # Fortran. | ||
212 | |||
213 | OPTIMIZE_FOR_FORTRAN = NO | ||
214 | |||
215 | # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL | ||
216 | # sources. Doxygen will then generate output that is tailored for | ||
217 | # VHDL. | ||
218 | |||
219 | OPTIMIZE_OUTPUT_VHDL = NO | ||
220 | |||
221 | # Doxygen selects the parser to use depending on the extension of the files it | ||
222 | # parses. With this tag you can assign which parser to use for a given extension. | ||
223 | # Doxygen has a built-in mapping, but you can override or extend it using this | ||
224 | # tag. The format is ext=language, where ext is a file extension, and language | ||
225 | # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, | ||
226 | # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make | ||
227 | # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C | ||
228 | # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions | ||
229 | # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. | ||
230 | |||
231 | EXTENSION_MAPPING = | ||
232 | |||
233 | # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want | ||
234 | # to include (a tag file for) the STL sources as input, then you should | ||
235 | # set this tag to YES in order to let doxygen match functions declarations and | ||
236 | # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. | ||
237 | # func(std::string) {}). This also makes the inheritance and collaboration | ||
238 | # diagrams that involve STL classes more complete and accurate. | ||
239 | |||
240 | BUILTIN_STL_SUPPORT = NO | ||
241 | |||
242 | # If you use Microsoft's C++/CLI language, you should set this option to YES to | ||
243 | # enable parsing support. | ||
244 | |||
245 | CPP_CLI_SUPPORT = NO | ||
246 | |||
247 | # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. | ||
248 | # Doxygen will parse them like normal C++ but will assume all classes use public | ||
249 | # instead of private inheritance when no explicit protection keyword is present. | ||
250 | |||
251 | SIP_SUPPORT = NO | ||
252 | |||
253 | # For Microsoft's IDL there are propget and propput attributes to indicate getter | ||
254 | # and setter methods for a property. Setting this option to YES (the default) | ||
255 | # will make doxygen replace the get and set methods by a property in the | ||
256 | # documentation. This will only work if the methods are indeed getting or | ||
257 | # setting a simple type. If this is not the case, or you want to show the | ||
258 | # methods anyway, you should set this option to NO. | ||
259 | |||
260 | IDL_PROPERTY_SUPPORT = YES | ||
261 | |||
262 | # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC | ||
263 | # tag is set to YES, then doxygen will reuse the documentation of the first | ||
264 | # member in the group (if any) for the other members of the group. By default | ||
265 | # all members of a group must be documented explicitly. | ||
266 | |||
267 | DISTRIBUTE_GROUP_DOC = NO | ||
268 | |||
269 | # Set the SUBGROUPING tag to YES (the default) to allow class member groups of | ||
270 | # the same type (for instance a group of public functions) to be put as a | ||
271 | # subgroup of that type (e.g. under the Public Functions section). Set it to | ||
272 | # NO to prevent subgrouping. Alternatively, this can be done per class using | ||
273 | # the \nosubgrouping command. | ||
274 | |||
275 | SUBGROUPING = YES | ||
276 | |||
277 | # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum | ||
278 | # is documented as struct, union, or enum with the name of the typedef. So | ||
279 | # typedef struct TypeS {} TypeT, will appear in the documentation as a struct | ||
280 | # with name TypeT. When disabled the typedef will appear as a member of a file, | ||
281 | # namespace, or class. And the struct will be named TypeS. This can typically | ||
282 | # be useful for C code in case the coding convention dictates that all compound | ||
283 | # types are typedef'ed and only the typedef is referenced, never the tag name. | ||
284 | |||
285 | TYPEDEF_HIDES_STRUCT = NO | ||
286 | |||
287 | # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to | ||
288 | # determine which symbols to keep in memory and which to flush to disk. | ||
289 | # When the cache is full, less often used symbols will be written to disk. | ||
290 | # For small to medium size projects (<1000 input files) the default value is | ||
291 | # probably good enough. For larger projects a too small cache size can cause | ||
292 | # doxygen to be busy swapping symbols to and from disk most of the time | ||
293 | # causing a significant performance penalty. | ||
294 | # If the system has enough physical memory increasing the cache will improve the | ||
295 | # performance by keeping more symbols in memory. Note that the value works on | ||
296 | # a logarithmic scale so increasing the size by one will roughly double the | ||
297 | # memory usage. The cache size is given by this formula: | ||
298 | # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, | ||
299 | # corresponding to a cache size of 2^16 = 65536 symbols | ||
300 | |||
301 | SYMBOL_CACHE_SIZE = 0 | ||
302 | |||
303 | #--------------------------------------------------------------------------- | ||
304 | # Build related configuration options | ||
305 | #--------------------------------------------------------------------------- | ||
306 | |||
307 | # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in | ||
308 | # documentation are documented, even if no documentation was available. | ||
309 | # Private class members and static file members will be hidden unless | ||
310 | # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES | ||
311 | |||
312 | EXTRACT_ALL = NO | ||
313 | |||
314 | # If the EXTRACT_PRIVATE tag is set to YES all private members of a class | ||
315 | # will be included in the documentation. | ||
316 | |||
317 | EXTRACT_PRIVATE = NO | ||
318 | |||
319 | # If the EXTRACT_STATIC tag is set to YES all static members of a file | ||
320 | # will be included in the documentation. | ||
321 | |||
322 | EXTRACT_STATIC = NO | ||
323 | |||
324 | # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) | ||
325 | # defined locally in source files will be included in the documentation. | ||
326 | # If set to NO only classes defined in header files are included. | ||
327 | |||
328 | EXTRACT_LOCAL_CLASSES = NO | ||
329 | |||
330 | # This flag is only useful for Objective-C code. When set to YES local | ||
331 | # methods, which are defined in the implementation section but not in | ||
332 | # the interface are included in the documentation. | ||
333 | # If set to NO (the default) only methods in the interface are included. | ||
334 | |||
335 | EXTRACT_LOCAL_METHODS = NO | ||
336 | |||
337 | # If this flag is set to YES, the members of anonymous namespaces will be | ||
338 | # extracted and appear in the documentation as a namespace called | ||
339 | # 'anonymous_namespace{file}', where file will be replaced with the base | ||
340 | # name of the file that contains the anonymous namespace. By default | ||
341 | # anonymous namespaces are hidden. | ||
342 | |||
343 | EXTRACT_ANON_NSPACES = NO | ||
344 | |||
345 | # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all | ||
346 | # undocumented members of documented classes, files or namespaces. | ||
347 | # If set to NO (the default) these members will be included in the | ||
348 | # various overviews, but no documentation section is generated. | ||
349 | # This option has no effect if EXTRACT_ALL is enabled. | ||
350 | |||
351 | HIDE_UNDOC_MEMBERS = NO | ||
352 | |||
353 | # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all | ||
354 | # undocumented classes that are normally visible in the class hierarchy. | ||
355 | # If set to NO (the default) these classes will be included in the various | ||
356 | # overviews. This option has no effect if EXTRACT_ALL is enabled. | ||
357 | |||
358 | HIDE_UNDOC_CLASSES = NO | ||
359 | |||
360 | # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all | ||
361 | # friend (class|struct|union) declarations. | ||
362 | # If set to NO (the default) these declarations will be included in the | ||
363 | # documentation. | ||
364 | |||
365 | HIDE_FRIEND_COMPOUNDS = NO | ||
366 | |||
367 | # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any | ||
368 | # documentation blocks found inside the body of a function. | ||
369 | # If set to NO (the default) these blocks will be appended to the | ||
370 | # function's detailed documentation block. | ||
371 | |||
372 | HIDE_IN_BODY_DOCS = NO | ||
373 | |||
374 | # The INTERNAL_DOCS tag determines if documentation | ||
375 | # that is typed after a \internal command is included. If the tag is set | ||
376 | # to NO (the default) then the documentation will be excluded. | ||
377 | # Set it to YES to include the internal documentation. | ||
378 | |||
379 | INTERNAL_DOCS = NO | ||
380 | |||
381 | # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate | ||
382 | # file names in lower-case letters. If set to YES upper-case letters are also | ||
383 | # allowed. This is useful if you have classes or files whose names only differ | ||
384 | # in case and if your file system supports case sensitive file names. Windows | ||
385 | # and Mac users are advised to set this option to NO. | ||
386 | |||
387 | CASE_SENSE_NAMES = YES | ||
388 | |||
389 | # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen | ||
390 | # will show members with their full class and namespace scopes in the | ||
391 | # documentation. If set to YES the scope will be hidden. | ||
392 | |||
393 | HIDE_SCOPE_NAMES = NO | ||
394 | |||
395 | # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen | ||
396 | # will put a list of the files that are included by a file in the documentation | ||
397 | # of that file. | ||
398 | |||
399 | SHOW_INCLUDE_FILES = NO | ||
400 | |||
401 | # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen | ||
402 | # will list include files with double quotes in the documentation | ||
403 | # rather than with sharp brackets. | ||
404 | |||
405 | FORCE_LOCAL_INCLUDES = NO | ||
406 | |||
407 | # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] | ||
408 | # is inserted in the documentation for inline members. | ||
409 | |||
410 | INLINE_INFO = YES | ||
411 | |||
412 | # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen | ||
413 | # will sort the (detailed) documentation of file and class members | ||
414 | # alphabetically by member name. If set to NO the members will appear in | ||
415 | # declaration order. | ||
416 | |||
417 | SORT_MEMBER_DOCS = NO | ||
418 | |||
419 | # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the | ||
420 | # brief documentation of file, namespace and class members alphabetically | ||
421 | # by member name. If set to NO (the default) the members will appear in | ||
422 | # declaration order. | ||
423 | |||
424 | SORT_BRIEF_DOCS = NO | ||
425 | |||
426 | # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen | ||
427 | # will sort the (brief and detailed) documentation of class members so that | ||
428 | # constructors and destructors are listed first. If set to NO (the default) | ||
429 | # the constructors will appear in the respective orders defined by | ||
430 | # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. | ||
431 | # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO | ||
432 | # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. | ||
433 | |||
434 | SORT_MEMBERS_CTORS_1ST = NO | ||
435 | |||
436 | # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the | ||
437 | # hierarchy of group names into alphabetical order. If set to NO (the default) | ||
438 | # the group names will appear in their defined order. | ||
439 | |||
440 | SORT_GROUP_NAMES = NO | ||
441 | |||
442 | # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be | ||
443 | # sorted by fully-qualified names, including namespaces. If set to | ||
444 | # NO (the default), the class list will be sorted only by class name, | ||
445 | # not including the namespace part. | ||
446 | # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. | ||
447 | # Note: This option applies only to the class list, not to the | ||
448 | # alphabetical list. | ||
449 | |||
450 | SORT_BY_SCOPE_NAME = NO | ||
451 | |||
452 | # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper type resolution of all parameters of a function it will reject a | ||
453 | # match between the prototype and the implementation of a member function even if there is only one candidate or it is obvious which candidate to choose by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen | ||
454 | # will still accept a match between prototype and implementation in such cases. | ||
455 | |||
456 | STRICT_PROTO_MATCHING = NO | ||
457 | |||
458 | # The GENERATE_TODOLIST tag can be used to enable (YES) or | ||
459 | # disable (NO) the todo list. This list is created by putting \todo | ||
460 | # commands in the documentation. | ||
461 | |||
462 | GENERATE_TODOLIST = YES | ||
463 | |||
464 | # The GENERATE_TESTLIST tag can be used to enable (YES) or | ||
465 | # disable (NO) the test list. This list is created by putting \test | ||
466 | # commands in the documentation. | ||
467 | |||
468 | GENERATE_TESTLIST = YES | ||
469 | |||
470 | # The GENERATE_BUGLIST tag can be used to enable (YES) or | ||
471 | # disable (NO) the bug list. This list is created by putting \bug | ||
472 | # commands in the documentation. | ||
473 | |||
474 | GENERATE_BUGLIST = YES | ||
475 | |||
476 | # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or | ||
477 | # disable (NO) the deprecated list. This list is created by putting | ||
478 | # \deprecated commands in the documentation. | ||
479 | |||
480 | GENERATE_DEPRECATEDLIST= YES | ||
481 | |||
482 | # The ENABLED_SECTIONS tag can be used to enable conditional | ||
483 | # documentation sections, marked by \if sectionname ... \endif. | ||
484 | |||
485 | ENABLED_SECTIONS = | ||
486 | |||
487 | # The MAX_INITIALIZER_LINES tag determines the maximum number of lines | ||
488 | # the initial value of a variable or macro consists of for it to appear in | ||
489 | # the documentation. If the initializer consists of more lines than specified | ||
490 | # here it will be hidden. Use a value of 0 to hide initializers completely. | ||
491 | # The appearance of the initializer of individual variables and macros in the | ||
492 | # documentation can be controlled using \showinitializer or \hideinitializer | ||
493 | # command in the documentation regardless of this setting. | ||
494 | |||
495 | MAX_INITIALIZER_LINES = 30 | ||
496 | |||
497 | # Set the SHOW_USED_FILES tag to NO to disable the list of files generated | ||
498 | # at the bottom of the documentation of classes and structs. If set to YES the | ||
499 | # list will mention the files that were used to generate the documentation. | ||
500 | |||
501 | SHOW_USED_FILES = NO | ||
502 | |||
503 | # If the sources in your project are distributed over multiple directories | ||
504 | # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy | ||
505 | # in the documentation. The default is NO. | ||
506 | |||
507 | SHOW_DIRECTORIES = NO | ||
508 | |||
509 | # Set the SHOW_FILES tag to NO to disable the generation of the Files page. | ||
510 | # This will remove the Files entry from the Quick Index and from the | ||
511 | # Folder Tree View (if specified). The default is YES. | ||
512 | |||
513 | SHOW_FILES = YES | ||
514 | |||
515 | # Set the SHOW_NAMESPACES tag to NO to disable the generation of the | ||
516 | # Namespaces page. | ||
517 | # This will remove the Namespaces entry from the Quick Index | ||
518 | # and from the Folder Tree View (if specified). The default is YES. | ||
519 | |||
520 | SHOW_NAMESPACES = YES | ||
521 | |||
522 | # The FILE_VERSION_FILTER tag can be used to specify a program or script that | ||
523 | # doxygen should invoke to get the current version for each file (typically from | ||
524 | # the version control system). Doxygen will invoke the program by executing (via | ||
525 | # popen()) the command <command> <input-file>, where <command> is the value of | ||
526 | # the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file | ||
527 | # provided by doxygen. Whatever the program writes to standard output | ||
528 | # is used as the file version. See the manual for examples. | ||
529 | |||
530 | FILE_VERSION_FILTER = | ||
531 | |||
532 | # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed | ||
533 | # by doxygen. The layout file controls the global structure of the generated | ||
534 | # output files in an output format independent way. The create the layout file | ||
535 | # that represents doxygen's defaults, run doxygen with the -l option. | ||
536 | # You can optionally specify a file name after the option, if omitted | ||
537 | # DoxygenLayout.xml will be used as the name of the layout file. | ||
538 | |||
539 | LAYOUT_FILE = | ||
540 | |||
541 | #--------------------------------------------------------------------------- | ||
542 | # configuration options related to warning and progress messages | ||
543 | #--------------------------------------------------------------------------- | ||
544 | |||
545 | # The QUIET tag can be used to turn on/off the messages that are generated | ||
546 | # by doxygen. Possible values are YES and NO. If left blank NO is used. | ||
547 | |||
548 | QUIET = NO | ||
549 | |||
550 | # The WARNINGS tag can be used to turn on/off the warning messages that are | ||
551 | # generated by doxygen. Possible values are YES and NO. If left blank | ||
552 | # NO is used. | ||
553 | |||
554 | WARNINGS = YES | ||
555 | |||
556 | # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings | ||
557 | # for undocumented members. If EXTRACT_ALL is set to YES then this flag will | ||
558 | # automatically be disabled. | ||
559 | |||
560 | WARN_IF_UNDOCUMENTED = YES | ||
561 | |||
562 | # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for | ||
563 | # potential errors in the documentation, such as not documenting some | ||
564 | # parameters in a documented function, or documenting parameters that | ||
565 | # don't exist or using markup commands wrongly. | ||
566 | |||
567 | WARN_IF_DOC_ERROR = YES | ||
568 | |||
569 | # The WARN_NO_PARAMDOC option can be enabled to get warnings for | ||
570 | # functions that are documented, but have no documentation for their parameters | ||
571 | # or return value. If set to NO (the default) doxygen will only warn about | ||
572 | # wrong or incomplete parameter documentation, but not about the absence of | ||
573 | # documentation. | ||
574 | |||
575 | WARN_NO_PARAMDOC = YES | ||
576 | |||
577 | # The WARN_FORMAT tag determines the format of the warning messages that | ||
578 | # doxygen can produce. The string should contain the $file, $line, and $text | ||
579 | # tags, which will be replaced by the file and line number from which the | ||
580 | # warning originated and the warning text. Optionally the format may contain | ||
581 | # $version, which will be replaced by the version of the file (if it could | ||
582 | # be obtained via FILE_VERSION_FILTER) | ||
583 | |||
584 | WARN_FORMAT = "$file:$line: $text" | ||
585 | |||
586 | # The WARN_LOGFILE tag can be used to specify a file to which warning | ||
587 | # and error messages should be written. If left blank the output is written | ||
588 | # to stderr. | ||
589 | |||
590 | WARN_LOGFILE = | ||
591 | |||
592 | #--------------------------------------------------------------------------- | ||
593 | # configuration options related to the input files | ||
594 | #--------------------------------------------------------------------------- | ||
595 | |||
596 | # The INPUT tag can be used to specify the files and/or directories that contain | ||
597 | # documented source files. You may enter file names like "myfile.cpp" or | ||
598 | # directories like "/usr/src/myproject". Separate the files or directories | ||
599 | # with spaces. | ||
600 | |||
601 | INPUT = ./eet.dox \ | ||
602 | ./examples.dox \ | ||
603 | ../src/lib | ||
604 | |||
605 | # This tag can be used to specify the character encoding of the source files | ||
606 | # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is | ||
607 | # also the default input encoding. Doxygen uses libiconv (or the iconv built | ||
608 | # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for | ||
609 | # the list of possible encodings. | ||
610 | |||
611 | INPUT_ENCODING = UTF-8 | ||
612 | |||
613 | # If the value of the INPUT tag contains directories, you can use the | ||
614 | # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp | ||
615 | # and *.h) to filter out the source-files in the directories. If left | ||
616 | # blank the following patterns are tested: | ||
617 | # *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh | ||
618 | # *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py | ||
619 | # *.f90 *.f *.for *.vhd *.vhdl | ||
620 | |||
621 | FILE_PATTERNS = *.c \ | ||
622 | *.h | ||
623 | |||
624 | # The RECURSIVE tag can be used to turn specify whether or not subdirectories | ||
625 | # should be searched for input files as well. Possible values are YES and NO. | ||
626 | # If left blank NO is used. | ||
627 | |||
628 | RECURSIVE = YES | ||
629 | |||
630 | # The EXCLUDE tag can be used to specify files and/or directories that should | ||
631 | # excluded from the INPUT source files. This way you can easily exclude a | ||
632 | # subdirectory from a directory tree whose root is specified with the INPUT tag. | ||
633 | |||
634 | EXCLUDE = ../src/lib/eet_amalgamation.c | ||
635 | |||
636 | # The EXCLUDE_SYMLINKS tag can be used select whether or not files or | ||
637 | # directories that are symbolic links (a Unix file system feature) are excluded | ||
638 | # from the input. | ||
639 | |||
640 | EXCLUDE_SYMLINKS = NO | ||
641 | |||
642 | # If the value of the INPUT tag contains directories, you can use the | ||
643 | # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude | ||
644 | # certain files from those directories. Note that the wildcards are matched | ||
645 | # against the file with absolute path, so to exclude all test directories | ||
646 | # for example use the pattern */test/* | ||
647 | |||
648 | EXCLUDE_PATTERNS = | ||
649 | |||
650 | # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names | ||
651 | # (namespaces, classes, functions, etc.) that should be excluded from the | ||
652 | # output. The symbol name can be a fully qualified name, a word, or if the | ||
653 | # wildcard * is used, a substring. Examples: ANamespace, AClass, | ||
654 | # AClass::ANamespace, ANamespace::*Test | ||
655 | |||
656 | EXCLUDE_SYMBOLS = | ||
657 | |||
658 | # The EXAMPLE_PATH tag can be used to specify one or more files or | ||
659 | # directories that contain example code fragments that are included (see | ||
660 | # the \include command). | ||
661 | |||
662 | EXAMPLE_PATH = ../src/examples | ||
663 | |||
664 | # If the value of the EXAMPLE_PATH tag contains directories, you can use the | ||
665 | # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp | ||
666 | # and *.h) to filter out the source-files in the directories. If left | ||
667 | # blank all files are included. | ||
668 | |||
669 | EXAMPLE_PATTERNS = *.c,*.h,*.x | ||
670 | |||
671 | # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be | ||
672 | # searched for input files to be used with the \include or \dontinclude | ||
673 | # commands irrespective of the value of the RECURSIVE tag. | ||
674 | # Possible values are YES and NO. If left blank NO is used. | ||
675 | |||
676 | EXAMPLE_RECURSIVE = NO | ||
677 | |||
678 | # The IMAGE_PATH tag can be used to specify one or more files or | ||
679 | # directories that contain image that are included in the documentation (see | ||
680 | # the \image command). | ||
681 | |||
682 | IMAGE_PATH = ../doc/img | ||
683 | |||
684 | # The INPUT_FILTER tag can be used to specify a program that doxygen should | ||
685 | # invoke to filter for each input file. Doxygen will invoke the filter program | ||
686 | # by executing (via popen()) the command <filter> <input-file>, where <filter> | ||
687 | # is the value of the INPUT_FILTER tag, and <input-file> is the name of an | ||
688 | # input file. Doxygen will then use the output that the filter program writes | ||
689 | # to standard output. | ||
690 | # If FILTER_PATTERNS is specified, this tag will be | ||
691 | # ignored. | ||
692 | |||
693 | INPUT_FILTER = | ||
694 | |||
695 | # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern | ||
696 | # basis. | ||
697 | # Doxygen will compare the file name with each pattern and apply the | ||
698 | # filter if there is a match. | ||
699 | # The filters are a list of the form: | ||
700 | # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further | ||
701 | # info on how filters are used. If FILTER_PATTERNS is empty or if | ||
702 | # non of the patterns match the file name, INPUT_FILTER is applied. | ||
703 | |||
704 | FILTER_PATTERNS = | ||
705 | |||
706 | # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using | ||
707 | # INPUT_FILTER) will be used to filter the input files when producing source | ||
708 | # files to browse (i.e. when SOURCE_BROWSER is set to YES). | ||
709 | |||
710 | FILTER_SOURCE_FILES = NO | ||
711 | |||
712 | # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file | ||
713 | # pattern. A pattern will override the setting for FILTER_PATTERN (if any) | ||
714 | # and it is also possible to disable source filtering for a specific pattern | ||
715 | # using *.ext= (so without naming a filter). This option only has effect when | ||
716 | # FILTER_SOURCE_FILES is enabled. | ||
717 | |||
718 | FILTER_SOURCE_PATTERNS = | ||
719 | |||
720 | #--------------------------------------------------------------------------- | ||
721 | # configuration options related to source browsing | ||
722 | #--------------------------------------------------------------------------- | ||
723 | |||
724 | # If the SOURCE_BROWSER tag is set to YES then a list of source files will | ||
725 | # be generated. Documented entities will be cross-referenced with these sources. | ||
726 | # Note: To get rid of all source code in the generated output, make sure also | ||
727 | # VERBATIM_HEADERS is set to NO. | ||
728 | |||
729 | SOURCE_BROWSER = NO | ||
730 | |||
731 | # Setting the INLINE_SOURCES tag to YES will include the body | ||
732 | # of functions and classes directly in the documentation. | ||
733 | |||
734 | INLINE_SOURCES = NO | ||
735 | |||
736 | # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct | ||
737 | # doxygen to hide any special comment blocks from generated source code | ||
738 | # fragments. Normal C and C++ comments will always remain visible. | ||
739 | |||
740 | STRIP_CODE_COMMENTS = YES | ||
741 | |||
742 | # If the REFERENCED_BY_RELATION tag is set to YES | ||
743 | # then for each documented function all documented | ||
744 | # functions referencing it will be listed. | ||
745 | |||
746 | REFERENCED_BY_RELATION = YES | ||
747 | |||
748 | # If the REFERENCES_RELATION tag is set to YES | ||
749 | # then for each documented function all documented entities | ||
750 | # called/used by that function will be listed. | ||
751 | |||
752 | REFERENCES_RELATION = YES | ||
753 | |||
754 | # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) | ||
755 | # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from | ||
756 | # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will | ||
757 | # link to the source code. | ||
758 | # Otherwise they will link to the documentation. | ||
759 | |||
760 | REFERENCES_LINK_SOURCE = YES | ||
761 | |||
762 | # If the USE_HTAGS tag is set to YES then the references to source code | ||
763 | # will point to the HTML generated by the htags(1) tool instead of doxygen | ||
764 | # built-in source browser. The htags tool is part of GNU's global source | ||
765 | # tagging system (see http://www.gnu.org/software/global/global.html). You | ||
766 | # will need version 4.8.6 or higher. | ||
767 | |||
768 | USE_HTAGS = NO | ||
769 | |||
770 | # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen | ||
771 | # will generate a verbatim copy of the header file for each class for | ||
772 | # which an include is specified. Set to NO to disable this. | ||
773 | |||
774 | VERBATIM_HEADERS = NO | ||
775 | |||
776 | #--------------------------------------------------------------------------- | ||
777 | # configuration options related to the alphabetical class index | ||
778 | #--------------------------------------------------------------------------- | ||
779 | |||
780 | # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index | ||
781 | # of all compounds will be generated. Enable this if the project | ||
782 | # contains a lot of classes, structs, unions or interfaces. | ||
783 | |||
784 | ALPHABETICAL_INDEX = YES | ||
785 | |||
786 | # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then | ||
787 | # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns | ||
788 | # in which this list will be split (can be a number in the range [1..20]) | ||
789 | |||
790 | COLS_IN_ALPHA_INDEX = 2 | ||
791 | |||
792 | # In case all classes in a project start with a common prefix, all | ||
793 | # classes will be put under the same header in the alphabetical index. | ||
794 | # The IGNORE_PREFIX tag can be used to specify one or more prefixes that | ||
795 | # should be ignored while generating the index headers. | ||
796 | |||
797 | IGNORE_PREFIX = eet_ \ | ||
798 | _eet_ \ | ||
799 | Eet_ \ | ||
800 | _Eet_ \ | ||
801 | EET_ \ | ||
802 | _EET_ | ||
803 | |||
804 | #--------------------------------------------------------------------------- | ||
805 | # configuration options related to the HTML output | ||
806 | #--------------------------------------------------------------------------- | ||
807 | |||
808 | # If the GENERATE_HTML tag is set to YES (the default) Doxygen will | ||
809 | # generate HTML output. | ||
810 | |||
811 | GENERATE_HTML = YES | ||
812 | |||
813 | # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. | ||
814 | # If a relative path is entered the value of OUTPUT_DIRECTORY will be | ||
815 | # put in front of it. If left blank `html' will be used as the default path. | ||
816 | |||
817 | HTML_OUTPUT = html | ||
818 | |||
819 | # The HTML_FILE_EXTENSION tag can be used to specify the file extension for | ||
820 | # each generated HTML page (for example: .htm,.php,.asp). If it is left blank | ||
821 | # doxygen will generate files with .html extension. | ||
822 | |||
823 | HTML_FILE_EXTENSION = .html | ||
824 | |||
825 | # The HTML_HEADER tag can be used to specify a personal HTML header for | ||
826 | # each generated HTML page. If it is left blank doxygen will generate a | ||
827 | # standard header. | ||
828 | |||
829 | HTML_HEADER = ./head.html | ||
830 | |||
831 | # The HTML_FOOTER tag can be used to specify a personal HTML footer for | ||
832 | # each generated HTML page. If it is left blank doxygen will generate a | ||
833 | # standard footer. | ||
834 | |||
835 | HTML_FOOTER = ./foot.html | ||
836 | |||
837 | # The HTML_STYLESHEET tag can be used to specify a user-defined cascading | ||
838 | # style sheet that is used by each HTML page. It can be used to | ||
839 | # fine-tune the look of the HTML output. If the tag is left blank doxygen | ||
840 | # will generate a default style sheet. Note that doxygen will try to copy | ||
841 | # the style sheet file to the HTML output directory, so don't put your own | ||
842 | # stylesheet in the HTML output directory as well, or it will be erased! | ||
843 | |||
844 | HTML_STYLESHEET = ./e.css | ||
845 | |||
846 | # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. | ||
847 | # Doxygen will adjust the colors in the stylesheet and background images | ||
848 | # according to this color. Hue is specified as an angle on a colorwheel, | ||
849 | # see http://en.wikipedia.org/wiki/Hue for more information. | ||
850 | # For instance the value 0 represents red, 60 is yellow, 120 is green, | ||
851 | # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. | ||
852 | # The allowed range is 0 to 359. | ||
853 | |||
854 | HTML_COLORSTYLE_HUE = 220 | ||
855 | |||
856 | # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of | ||
857 | # the colors in the HTML output. For a value of 0 the output will use | ||
858 | # grayscales only. A value of 255 will produce the most vivid colors. | ||
859 | |||
860 | HTML_COLORSTYLE_SAT = 100 | ||
861 | |||
862 | # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to | ||
863 | # the luminance component of the colors in the HTML output. Values below | ||
864 | # 100 gradually make the output lighter, whereas values above 100 make | ||
865 | # the output darker. The value divided by 100 is the actual gamma applied, | ||
866 | # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, | ||
867 | # and 100 does not change the gamma. | ||
868 | |||
869 | HTML_COLORSTYLE_GAMMA = 80 | ||
870 | |||
871 | # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML | ||
872 | # page will contain the date and time when the page was generated. Setting | ||
873 | # this to NO can help when comparing the output of multiple runs. | ||
874 | |||
875 | HTML_TIMESTAMP = YES | ||
876 | |||
877 | # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, | ||
878 | # files or namespaces will be aligned in HTML using tables. If set to | ||
879 | # NO a bullet list will be used. | ||
880 | |||
881 | HTML_ALIGN_MEMBERS = YES | ||
882 | |||
883 | # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML | ||
884 | # documentation will contain sections that can be hidden and shown after the | ||
885 | # page has loaded. For this to work a browser that supports | ||
886 | # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox | ||
887 | # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). | ||
888 | |||
889 | HTML_DYNAMIC_SECTIONS = YES | ||
890 | |||
891 | # If the GENERATE_DOCSET tag is set to YES, additional index files | ||
892 | # will be generated that can be used as input for Apple's Xcode 3 | ||
893 | # integrated development environment, introduced with OSX 10.5 (Leopard). | ||
894 | # To create a documentation set, doxygen will generate a Makefile in the | ||
895 | # HTML output directory. Running make will produce the docset in that | ||
896 | # directory and running "make install" will install the docset in | ||
897 | # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find | ||
898 | # it at startup. | ||
899 | # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html | ||
900 | # for more information. | ||
901 | |||
902 | GENERATE_DOCSET = YES | ||
903 | |||
904 | # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the | ||
905 | # feed. A documentation feed provides an umbrella under which multiple | ||
906 | # documentation sets from a single provider (such as a company or product suite) | ||
907 | # can be grouped. | ||
908 | |||
909 | DOCSET_FEEDNAME = "Doxygen generated docs" | ||
910 | |||
911 | # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that | ||
912 | # should uniquely identify the documentation set bundle. This should be a | ||
913 | # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen | ||
914 | # will append .docset to the name. | ||
915 | |||
916 | DOCSET_BUNDLE_ID = org.enlightenment.Eet | ||
917 | |||
918 | # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify | ||
919 | # the documentation publisher. This should be a reverse domain-name style | ||
920 | # string, e.g. com.mycompany.MyDocSet.documentation. | ||
921 | |||
922 | DOCSET_PUBLISHER_ID = org.enlightenment.Eet | ||
923 | |||
924 | # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. | ||
925 | |||
926 | DOCSET_PUBLISHER_NAME = Enlightenment | ||
927 | |||
928 | # If the GENERATE_HTMLHELP tag is set to YES, additional index files | ||
929 | # will be generated that can be used as input for tools like the | ||
930 | # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) | ||
931 | # of the generated HTML documentation. | ||
932 | |||
933 | GENERATE_HTMLHELP = YES | ||
934 | |||
935 | # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can | ||
936 | # be used to specify the file name of the resulting .chm file. You | ||
937 | # can add a path in front of the file if the result should not be | ||
938 | # written to the html output directory. | ||
939 | |||
940 | CHM_FILE = | ||
941 | |||
942 | # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can | ||
943 | # be used to specify the location (absolute path including file name) of | ||
944 | # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run | ||
945 | # the HTML help compiler on the generated index.hhp. | ||
946 | |||
947 | HHC_LOCATION = | ||
948 | |||
949 | # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag | ||
950 | # controls if a separate .chi index file is generated (YES) or that | ||
951 | # it should be included in the master .chm file (NO). | ||
952 | |||
953 | GENERATE_CHI = NO | ||
954 | |||
955 | # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING | ||
956 | # is used to encode HtmlHelp index (hhk), content (hhc) and project file | ||
957 | # content. | ||
958 | |||
959 | CHM_INDEX_ENCODING = | ||
960 | |||
961 | # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag | ||
962 | # controls whether a binary table of contents is generated (YES) or a | ||
963 | # normal table of contents (NO) in the .chm file. | ||
964 | |||
965 | BINARY_TOC = NO | ||
966 | |||
967 | # The TOC_EXPAND flag can be set to YES to add extra items for group members | ||
968 | # to the contents of the HTML help documentation and to the tree view. | ||
969 | |||
970 | TOC_EXPAND = NO | ||
971 | |||
972 | # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and | ||
973 | # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated | ||
974 | # that can be used as input for Qt's qhelpgenerator to generate a | ||
975 | # Qt Compressed Help (.qch) of the generated HTML documentation. | ||
976 | |||
977 | GENERATE_QHP = NO | ||
978 | |||
979 | # If the QHG_LOCATION tag is specified, the QCH_FILE tag can | ||
980 | # be used to specify the file name of the resulting .qch file. | ||
981 | # The path specified is relative to the HTML output folder. | ||
982 | |||
983 | QCH_FILE = | ||
984 | |||
985 | # The QHP_NAMESPACE tag specifies the namespace to use when generating | ||
986 | # Qt Help Project output. For more information please see | ||
987 | # http://doc.trolltech.com/qthelpproject.html#namespace | ||
988 | |||
989 | QHP_NAMESPACE = org.enlightenment.Eet | ||
990 | |||
991 | # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating | ||
992 | # Qt Help Project output. For more information please see | ||
993 | # http://doc.trolltech.com/qthelpproject.html#virtual-folders | ||
994 | |||
995 | QHP_VIRTUAL_FOLDER = doc | ||
996 | |||
997 | # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to | ||
998 | # add. For more information please see | ||
999 | # http://doc.trolltech.com/qthelpproject.html#custom-filters | ||
1000 | |||
1001 | QHP_CUST_FILTER_NAME = | ||
1002 | |||
1003 | # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the | ||
1004 | # custom filter to add. For more information please see | ||
1005 | # <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters"> | ||
1006 | # Qt Help Project / Custom Filters</a>. | ||
1007 | |||
1008 | QHP_CUST_FILTER_ATTRS = | ||
1009 | |||
1010 | # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this | ||
1011 | # project's | ||
1012 | # filter section matches. | ||
1013 | # <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes"> | ||
1014 | # Qt Help Project / Filter Attributes</a>. | ||
1015 | |||
1016 | QHP_SECT_FILTER_ATTRS = | ||
1017 | |||
1018 | # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can | ||
1019 | # be used to specify the location of Qt's qhelpgenerator. | ||
1020 | # If non-empty doxygen will try to run qhelpgenerator on the generated | ||
1021 | # .qhp file. | ||
1022 | |||
1023 | QHG_LOCATION = | ||
1024 | |||
1025 | # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files | ||
1026 | # will be generated, which together with the HTML files, form an Eclipse help | ||
1027 | # plugin. To install this plugin and make it available under the help contents | ||
1028 | # menu in Eclipse, the contents of the directory containing the HTML and XML | ||
1029 | # files needs to be copied into the plugins directory of eclipse. The name of | ||
1030 | # the directory within the plugins directory should be the same as | ||
1031 | # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before | ||
1032 | # the help appears. | ||
1033 | |||
1034 | GENERATE_ECLIPSEHELP = NO | ||
1035 | |||
1036 | # A unique identifier for the eclipse help plugin. When installing the plugin | ||
1037 | # the directory name containing the HTML and XML files should also have | ||
1038 | # this name. | ||
1039 | |||
1040 | ECLIPSE_DOC_ID = org.enlightenment.Eet | ||
1041 | |||
1042 | # The DISABLE_INDEX tag can be used to turn on/off the condensed index at | ||
1043 | # top of each HTML page. The value NO (the default) enables the index and | ||
1044 | # the value YES disables it. | ||
1045 | |||
1046 | DISABLE_INDEX = YES | ||
1047 | |||
1048 | # This tag can be used to set the number of enum values (range [0,1..20]) | ||
1049 | # that doxygen will group on one line in the generated HTML documentation. | ||
1050 | # Note that a value of 0 will completely suppress the enum values from appearing in the overview section. | ||
1051 | |||
1052 | ENUM_VALUES_PER_LINE = 1 | ||
1053 | |||
1054 | # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index | ||
1055 | # structure should be generated to display hierarchical information. | ||
1056 | # If the tag value is set to YES, a side panel will be generated | ||
1057 | # containing a tree-like index structure (just like the one that | ||
1058 | # is generated for HTML Help). For this to work a browser that supports | ||
1059 | # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). | ||
1060 | # Windows users are probably better off using the HTML help feature. | ||
1061 | |||
1062 | GENERATE_TREEVIEW = NO | ||
1063 | |||
1064 | # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, | ||
1065 | # and Class Hierarchy pages using a tree view instead of an ordered list. | ||
1066 | |||
1067 | USE_INLINE_TREES = NO | ||
1068 | |||
1069 | # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be | ||
1070 | # used to set the initial width (in pixels) of the frame in which the tree | ||
1071 | # is shown. | ||
1072 | |||
1073 | TREEVIEW_WIDTH = 250 | ||
1074 | |||
1075 | # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open | ||
1076 | # links to external symbols imported via tag files in a separate window. | ||
1077 | |||
1078 | EXT_LINKS_IN_WINDOW = NO | ||
1079 | |||
1080 | # Use this tag to change the font size of Latex formulas included | ||
1081 | # as images in the HTML documentation. The default is 10. Note that | ||
1082 | # when you change the font size after a successful doxygen run you need | ||
1083 | # to manually remove any form_*.png images from the HTML output directory | ||
1084 | # to force them to be regenerated. | ||
1085 | |||
1086 | FORMULA_FONTSIZE = 10 | ||
1087 | |||
1088 | # Use the FORMULA_TRANPARENT tag to determine whether or not the images | ||
1089 | # generated for formulas are transparent PNGs. Transparent PNGs are | ||
1090 | # not supported properly for IE 6.0, but are supported on all modern browsers. | ||
1091 | # Note that when changing this option you need to delete any form_*.png files | ||
1092 | # in the HTML output before the changes have effect. | ||
1093 | |||
1094 | FORMULA_TRANSPARENT = YES | ||
1095 | |||
1096 | # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax | ||
1097 | # (see http://www.mathjax.org) which uses client side Javascript for the | ||
1098 | # rendering instead of using prerendered bitmaps. Use this if you do not | ||
1099 | # have LaTeX installed or if you want to formulas look prettier in the HTML | ||
1100 | # output. When enabled you also need to install MathJax separately and | ||
1101 | # configure the path to it using the MATHJAX_RELPATH option. | ||
1102 | |||
1103 | USE_MATHJAX = NO | ||
1104 | |||
1105 | # When MathJax is enabled you need to specify the location relative to the | ||
1106 | # HTML output directory using the MATHJAX_RELPATH option. The destination | ||
1107 | # directory should contain the MathJax.js script. For instance, if the mathjax | ||
1108 | # directory is located at the same level as the HTML output directory, then | ||
1109 | # MATHJAX_RELPATH should be ../mathjax. The default value points to the mathjax.org site, so you can quickly see the result without installing | ||
1110 | # MathJax, but it is strongly recommended to install a local copy of MathJax | ||
1111 | # before deployment. | ||
1112 | |||
1113 | MATHJAX_RELPATH = http://www.mathjax.org/mathjax | ||
1114 | |||
1115 | # When the SEARCHENGINE tag is enabled doxygen will generate a search box | ||
1116 | # for the HTML output. The underlying search engine uses javascript | ||
1117 | # and DHTML and should work on any modern browser. Note that when using | ||
1118 | # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets | ||
1119 | # (GENERATE_DOCSET) there is already a search function so this one should | ||
1120 | # typically be disabled. For large projects the javascript based search engine | ||
1121 | # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. | ||
1122 | |||
1123 | SEARCHENGINE = NO | ||
1124 | |||
1125 | # When the SERVER_BASED_SEARCH tag is enabled the search engine will be | ||
1126 | # implemented using a PHP enabled web server instead of at the web client | ||
1127 | # using Javascript. Doxygen will generate the search PHP script and index | ||
1128 | # file to put on the web server. The advantage of the server | ||
1129 | # based approach is that it scales better to large projects and allows | ||
1130 | # full text search. The disadvantages are that it is more difficult to setup | ||
1131 | # and does not have live searching capabilities. | ||
1132 | |||
1133 | SERVER_BASED_SEARCH = NO | ||
1134 | |||
1135 | #--------------------------------------------------------------------------- | ||
1136 | # configuration options related to the LaTeX output | ||
1137 | #--------------------------------------------------------------------------- | ||
1138 | |||
1139 | # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will | ||
1140 | # generate Latex output. | ||
1141 | |||
1142 | GENERATE_LATEX = YES | ||
1143 | |||
1144 | # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. | ||
1145 | # If a relative path is entered the value of OUTPUT_DIRECTORY will be | ||
1146 | # put in front of it. If left blank `latex' will be used as the default path. | ||
1147 | |||
1148 | LATEX_OUTPUT = latex | ||
1149 | |||
1150 | # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be | ||
1151 | # invoked. If left blank `latex' will be used as the default command name. | ||
1152 | # Note that when enabling USE_PDFLATEX this option is only used for | ||
1153 | # generating bitmaps for formulas in the HTML output, but not in the | ||
1154 | # Makefile that is written to the output directory. | ||
1155 | |||
1156 | LATEX_CMD_NAME = latex | ||
1157 | |||
1158 | # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to | ||
1159 | # generate index for LaTeX. If left blank `makeindex' will be used as the | ||
1160 | # default command name. | ||
1161 | |||
1162 | MAKEINDEX_CMD_NAME = makeindex | ||
1163 | |||
1164 | # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact | ||
1165 | # LaTeX documents. This may be useful for small projects and may help to | ||
1166 | # save some trees in general. | ||
1167 | |||
1168 | COMPACT_LATEX = NO | ||
1169 | |||
1170 | # The PAPER_TYPE tag can be used to set the paper type that is used | ||
1171 | # by the printer. Possible values are: a4, letter, legal and | ||
1172 | # executive. If left blank a4wide will be used. | ||
1173 | |||
1174 | PAPER_TYPE = a4wide | ||
1175 | |||
1176 | # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX | ||
1177 | # packages that should be included in the LaTeX output. | ||
1178 | |||
1179 | EXTRA_PACKAGES = | ||
1180 | |||
1181 | # The LATEX_HEADER tag can be used to specify a personal LaTeX header for | ||
1182 | # the generated latex document. The header should contain everything until | ||
1183 | # the first chapter. If it is left blank doxygen will generate a | ||
1184 | # standard header. Notice: only use this tag if you know what you are doing! | ||
1185 | |||
1186 | LATEX_HEADER = | ||
1187 | |||
1188 | # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated | ||
1189 | # is prepared for conversion to pdf (using ps2pdf). The pdf file will | ||
1190 | # contain links (just like the HTML output) instead of page references | ||
1191 | # This makes the output suitable for online browsing using a pdf viewer. | ||
1192 | |||
1193 | PDF_HYPERLINKS = YES | ||
1194 | |||
1195 | # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of | ||
1196 | # plain latex in the generated Makefile. Set this option to YES to get a | ||
1197 | # higher quality PDF documentation. | ||
1198 | |||
1199 | USE_PDFLATEX = YES | ||
1200 | |||
1201 | # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. | ||
1202 | # command to the generated LaTeX files. This will instruct LaTeX to keep | ||
1203 | # running if errors occur, instead of asking the user for help. | ||
1204 | # This option is also used when generating formulas in HTML. | ||
1205 | |||
1206 | LATEX_BATCHMODE = NO | ||
1207 | |||
1208 | # If LATEX_HIDE_INDICES is set to YES then doxygen will not | ||
1209 | # include the index chapters (such as File Index, Compound Index, etc.) | ||
1210 | # in the output. | ||
1211 | |||
1212 | LATEX_HIDE_INDICES = NO | ||
1213 | |||
1214 | # If LATEX_SOURCE_CODE is set to YES then doxygen will include | ||
1215 | # source code with syntax highlighting in the LaTeX output. | ||
1216 | # Note that which sources are shown also depends on other settings | ||
1217 | # such as SOURCE_BROWSER. | ||
1218 | |||
1219 | LATEX_SOURCE_CODE = NO | ||
1220 | |||
1221 | #--------------------------------------------------------------------------- | ||
1222 | # configuration options related to the RTF output | ||
1223 | #--------------------------------------------------------------------------- | ||
1224 | |||
1225 | # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output | ||
1226 | # The RTF output is optimized for Word 97 and may not look very pretty with | ||
1227 | # other RTF readers or editors. | ||
1228 | |||
1229 | GENERATE_RTF = NO | ||
1230 | |||
1231 | # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. | ||
1232 | # If a relative path is entered the value of OUTPUT_DIRECTORY will be | ||
1233 | # put in front of it. If left blank `rtf' will be used as the default path. | ||
1234 | |||
1235 | RTF_OUTPUT = rtf | ||
1236 | |||
1237 | # If the COMPACT_RTF tag is set to YES Doxygen generates more compact | ||
1238 | # RTF documents. This may be useful for small projects and may help to | ||
1239 | # save some trees in general. | ||
1240 | |||
1241 | COMPACT_RTF = NO | ||
1242 | |||
1243 | # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated | ||
1244 | # will contain hyperlink fields. The RTF file will | ||
1245 | # contain links (just like the HTML output) instead of page references. | ||
1246 | # This makes the output suitable for online browsing using WORD or other | ||
1247 | # programs which support those fields. | ||
1248 | # Note: wordpad (write) and others do not support links. | ||
1249 | |||
1250 | RTF_HYPERLINKS = NO | ||
1251 | |||
1252 | # Load stylesheet definitions from file. Syntax is similar to doxygen's | ||
1253 | # config file, i.e. a series of assignments. You only have to provide | ||
1254 | # replacements, missing definitions are set to their default value. | ||
1255 | |||
1256 | RTF_STYLESHEET_FILE = | ||
1257 | |||
1258 | # Set optional variables used in the generation of an rtf document. | ||
1259 | # Syntax is similar to doxygen's config file. | ||
1260 | |||
1261 | RTF_EXTENSIONS_FILE = | ||
1262 | |||
1263 | #--------------------------------------------------------------------------- | ||
1264 | # configuration options related to the man page output | ||
1265 | #--------------------------------------------------------------------------- | ||
1266 | |||
1267 | # If the GENERATE_MAN tag is set to YES (the default) Doxygen will | ||
1268 | # generate man pages | ||
1269 | |||
1270 | GENERATE_MAN = NO | ||
1271 | |||
1272 | # The MAN_OUTPUT tag is used to specify where the man pages will be put. | ||
1273 | # If a relative path is entered the value of OUTPUT_DIRECTORY will be | ||
1274 | # put in front of it. If left blank `man' will be used as the default path. | ||
1275 | |||
1276 | MAN_OUTPUT = man | ||
1277 | |||
1278 | # The MAN_EXTENSION tag determines the extension that is added to | ||
1279 | # the generated man pages (default is the subroutine's section .3) | ||
1280 | |||
1281 | MAN_EXTENSION = .3 | ||
1282 | |||
1283 | # If the MAN_LINKS tag is set to YES and Doxygen generates man output, | ||
1284 | # then it will generate one additional man file for each entity | ||
1285 | # documented in the real man page(s). These additional files | ||
1286 | # only source the real man page, but without them the man command | ||
1287 | # would be unable to find the correct page. The default is NO. | ||
1288 | |||
1289 | MAN_LINKS = YES | ||
1290 | |||
1291 | #--------------------------------------------------------------------------- | ||
1292 | # configuration options related to the XML output | ||
1293 | #--------------------------------------------------------------------------- | ||
1294 | |||
1295 | # If the GENERATE_XML tag is set to YES Doxygen will | ||
1296 | # generate an XML file that captures the structure of | ||
1297 | # the code including all documentation. | ||
1298 | |||
1299 | GENERATE_XML = NO | ||
1300 | |||
1301 | # The XML_OUTPUT tag is used to specify where the XML pages will be put. | ||
1302 | # If a relative path is entered the value of OUTPUT_DIRECTORY will be | ||
1303 | # put in front of it. If left blank `xml' will be used as the default path. | ||
1304 | |||
1305 | XML_OUTPUT = xml | ||
1306 | |||
1307 | # The XML_SCHEMA tag can be used to specify an XML schema, | ||
1308 | # which can be used by a validating XML parser to check the | ||
1309 | # syntax of the XML files. | ||
1310 | |||
1311 | XML_SCHEMA = | ||
1312 | |||
1313 | # The XML_DTD tag can be used to specify an XML DTD, | ||
1314 | # which can be used by a validating XML parser to check the | ||
1315 | # syntax of the XML files. | ||
1316 | |||
1317 | XML_DTD = | ||
1318 | |||
1319 | # If the XML_PROGRAMLISTING tag is set to YES Doxygen will | ||
1320 | # dump the program listings (including syntax highlighting | ||
1321 | # and cross-referencing information) to the XML output. Note that | ||
1322 | # enabling this will significantly increase the size of the XML output. | ||
1323 | |||
1324 | XML_PROGRAMLISTING = YES | ||
1325 | |||
1326 | #--------------------------------------------------------------------------- | ||
1327 | # configuration options for the AutoGen Definitions output | ||
1328 | #--------------------------------------------------------------------------- | ||
1329 | |||
1330 | # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will | ||
1331 | # generate an AutoGen Definitions (see autogen.sf.net) file | ||
1332 | # that captures the structure of the code including all | ||
1333 | # documentation. Note that this feature is still experimental | ||
1334 | # and incomplete at the moment. | ||
1335 | |||
1336 | GENERATE_AUTOGEN_DEF = NO | ||
1337 | |||
1338 | #--------------------------------------------------------------------------- | ||
1339 | # configuration options related to the Perl module output | ||
1340 | #--------------------------------------------------------------------------- | ||
1341 | |||
1342 | # If the GENERATE_PERLMOD tag is set to YES Doxygen will | ||
1343 | # generate a Perl module file that captures the structure of | ||
1344 | # the code including all documentation. Note that this | ||
1345 | # feature is still experimental and incomplete at the | ||
1346 | # moment. | ||
1347 | |||
1348 | GENERATE_PERLMOD = NO | ||
1349 | |||
1350 | # If the PERLMOD_LATEX tag is set to YES Doxygen will generate | ||
1351 | # the necessary Makefile rules, Perl scripts and LaTeX code to be able | ||
1352 | # to generate PDF and DVI output from the Perl module output. | ||
1353 | |||
1354 | PERLMOD_LATEX = NO | ||
1355 | |||
1356 | # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be | ||
1357 | # nicely formatted so it can be parsed by a human reader. | ||
1358 | # This is useful | ||
1359 | # if you want to understand what is going on. | ||
1360 | # On the other hand, if this | ||
1361 | # tag is set to NO the size of the Perl module output will be much smaller | ||
1362 | # and Perl will parse it just the same. | ||
1363 | |||
1364 | PERLMOD_PRETTY = YES | ||
1365 | |||
1366 | # The names of the make variables in the generated doxyrules.make file | ||
1367 | # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. | ||
1368 | # This is useful so different doxyrules.make files included by the same | ||
1369 | # Makefile don't overwrite each other's variables. | ||
1370 | |||
1371 | PERLMOD_MAKEVAR_PREFIX = | ||
1372 | |||
1373 | #--------------------------------------------------------------------------- | ||
1374 | # Configuration options related to the preprocessor | ||
1375 | #--------------------------------------------------------------------------- | ||
1376 | |||
1377 | # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will | ||
1378 | # evaluate all C-preprocessor directives found in the sources and include | ||
1379 | # files. | ||
1380 | |||
1381 | ENABLE_PREPROCESSING = YES | ||
1382 | |||
1383 | # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro | ||
1384 | # names in the source code. If set to NO (the default) only conditional | ||
1385 | # compilation will be performed. Macro expansion can be done in a controlled | ||
1386 | # way by setting EXPAND_ONLY_PREDEF to YES. | ||
1387 | |||
1388 | MACRO_EXPANSION = YES | ||
1389 | |||
1390 | # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES | ||
1391 | # then the macro expansion is limited to the macros specified with the | ||
1392 | # PREDEFINED and EXPAND_AS_DEFINED tags. | ||
1393 | |||
1394 | EXPAND_ONLY_PREDEF = YES | ||
1395 | |||
1396 | # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files | ||
1397 | # in the INCLUDE_PATH (see below) will be search if a #include is found. | ||
1398 | |||
1399 | SEARCH_INCLUDES = NO | ||
1400 | |||
1401 | # The INCLUDE_PATH tag can be used to specify one or more directories that | ||
1402 | # contain include files that are not input files but should be processed by | ||
1403 | # the preprocessor. | ||
1404 | |||
1405 | INCLUDE_PATH = | ||
1406 | |||
1407 | # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard | ||
1408 | # patterns (like *.h and *.hpp) to filter out the header-files in the | ||
1409 | # directories. If left blank, the patterns specified with FILE_PATTERNS will | ||
1410 | # be used. | ||
1411 | |||
1412 | INCLUDE_FILE_PATTERNS = | ||
1413 | |||
1414 | # The PREDEFINED tag can be used to specify one or more macro names that | ||
1415 | # are defined before the preprocessor is started (similar to the -D option of | ||
1416 | # gcc). The argument of the tag is a list of macros of the form: name | ||
1417 | # or name=definition (no spaces). If the definition and the = are | ||
1418 | # omitted =1 is assumed. To prevent a macro definition from being | ||
1419 | # undefined via #undef or recursively expanded use the := operator | ||
1420 | # instead of the = operator. | ||
1421 | |||
1422 | PREDEFINED = EINA_MAGIC_DEBUG \ | ||
1423 | __UNUSED__= \ | ||
1424 | EINA_ARG_NONNULL()= \ | ||
1425 | EINA_MALLOC= \ | ||
1426 | EINA_WARN_UNUSED_RESULT= \ | ||
1427 | EAPI= \ | ||
1428 | EINA_PURE= \ | ||
1429 | EINA_CONST= | ||
1430 | |||
1431 | # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then | ||
1432 | # this tag can be used to specify a list of macro names that should be expanded. | ||
1433 | # The macro definition that is found in the sources will be used. | ||
1434 | # Use the PREDEFINED tag if you want to use a different macro definition that overrules the definition found in the source code. | ||
1435 | |||
1436 | EXPAND_AS_DEFINED = | ||
1437 | |||
1438 | # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then | ||
1439 | # doxygen's preprocessor will remove all references to function-like macros | ||
1440 | # that are alone on a line, have an all uppercase name, and do not end with a | ||
1441 | # semicolon, because these will confuse the parser if not removed. | ||
1442 | |||
1443 | SKIP_FUNCTION_MACROS = YES | ||
1444 | |||
1445 | #--------------------------------------------------------------------------- | ||
1446 | # Configuration::additions related to external references | ||
1447 | #--------------------------------------------------------------------------- | ||
1448 | |||
1449 | # The TAGFILES option can be used to specify one or more tagfiles. | ||
1450 | # Optionally an initial location of the external documentation | ||
1451 | # can be added for each tagfile. The format of a tag file without | ||
1452 | # this location is as follows: | ||
1453 | # | ||
1454 | # TAGFILES = file1 file2 ... | ||
1455 | # Adding location for the tag files is done as follows: | ||
1456 | # | ||
1457 | # TAGFILES = file1=loc1 "file2 = loc2" ... | ||
1458 | # where "loc1" and "loc2" can be relative or absolute paths or | ||
1459 | # URLs. If a location is present for each tag, the installdox tool | ||
1460 | # does not have to be run to correct the links. | ||
1461 | # Note that each tag file must have a unique name | ||
1462 | # (where the name does NOT include the path) | ||
1463 | # If a tag file is not located in the directory in which doxygen | ||
1464 | # is run, you must also specify the path to the tagfile here. | ||
1465 | |||
1466 | TAGFILES = | ||
1467 | |||
1468 | # When a file name is specified after GENERATE_TAGFILE, doxygen will create | ||
1469 | # a tag file that is based on the input files it reads. | ||
1470 | |||
1471 | GENERATE_TAGFILE = | ||
1472 | |||
1473 | # If the ALLEXTERNALS tag is set to YES all external classes will be listed | ||
1474 | # in the class index. If set to NO only the inherited external classes | ||
1475 | # will be listed. | ||
1476 | |||
1477 | ALLEXTERNALS = NO | ||
1478 | |||
1479 | # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed | ||
1480 | # in the modules index. If set to NO, only the current project's groups will | ||
1481 | # be listed. | ||
1482 | |||
1483 | EXTERNAL_GROUPS = YES | ||
1484 | |||
1485 | # The PERL_PATH should be the absolute path and name of the perl script | ||
1486 | # interpreter (i.e. the result of `which perl'). | ||
1487 | |||
1488 | PERL_PATH = /usr/bin/perl | ||
1489 | |||
1490 | #--------------------------------------------------------------------------- | ||
1491 | # Configuration options related to the dot tool | ||
1492 | #--------------------------------------------------------------------------- | ||
1493 | |||
1494 | # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will | ||
1495 | # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base | ||
1496 | # or super classes. Setting the tag to NO turns the diagrams off. Note that | ||
1497 | # this option also works with HAVE_DOT disabled, but it is recommended to | ||
1498 | # install and use dot, since it yields more powerful graphs. | ||
1499 | |||
1500 | CLASS_DIAGRAMS = NO | ||
1501 | |||
1502 | # You can define message sequence charts within doxygen comments using the \msc | ||
1503 | # command. Doxygen will then run the mscgen tool (see | ||
1504 | # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the | ||
1505 | # documentation. The MSCGEN_PATH tag allows you to specify the directory where | ||
1506 | # the mscgen tool resides. If left empty the tool is assumed to be found in the | ||
1507 | # default search path. | ||
1508 | |||
1509 | MSCGEN_PATH = | ||
1510 | |||
1511 | # If set to YES, the inheritance and collaboration graphs will hide | ||
1512 | # inheritance and usage relations if the target is undocumented | ||
1513 | # or is not a class. | ||
1514 | |||
1515 | HIDE_UNDOC_RELATIONS = YES | ||
1516 | |||
1517 | # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is | ||
1518 | # available from the path. This tool is part of Graphviz, a graph visualization | ||
1519 | # toolkit from AT&T and Lucent Bell Labs. The other options in this section | ||
1520 | # have no effect if this option is set to NO (the default) | ||
1521 | |||
1522 | HAVE_DOT = NO | ||
1523 | |||
1524 | # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is | ||
1525 | # allowed to run in parallel. When set to 0 (the default) doxygen will | ||
1526 | # base this on the number of processors available in the system. You can set it | ||
1527 | # explicitly to a value larger than 0 to get control over the balance | ||
1528 | # between CPU load and processing speed. | ||
1529 | |||
1530 | DOT_NUM_THREADS = 0 | ||
1531 | |||
1532 | # By default doxygen will write a font called Helvetica to the output | ||
1533 | # directory and reference it in all dot files that doxygen generates. | ||
1534 | # When you want a differently looking font you can specify the font name | ||
1535 | # using DOT_FONTNAME. You need to make sure dot is able to find the font, | ||
1536 | # which can be done by putting it in a standard location or by setting the | ||
1537 | # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory | ||
1538 | # containing the font. | ||
1539 | |||
1540 | DOT_FONTNAME = Helvetica | ||
1541 | |||
1542 | # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. | ||
1543 | # The default size is 10pt. | ||
1544 | |||
1545 | DOT_FONTSIZE = 10 | ||
1546 | |||
1547 | # By default doxygen will tell dot to use the output directory to look for the | ||
1548 | # FreeSans.ttf font (which doxygen will put there itself). If you specify a | ||
1549 | # different font using DOT_FONTNAME you can set the path where dot | ||
1550 | # can find it using this tag. | ||
1551 | |||
1552 | DOT_FONTPATH = | ||
1553 | |||
1554 | # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen | ||
1555 | # will generate a graph for each documented class showing the direct and | ||
1556 | # indirect inheritance relations. Setting this tag to YES will force the | ||
1557 | # the CLASS_DIAGRAMS tag to NO. | ||
1558 | |||
1559 | CLASS_GRAPH = NO | ||
1560 | |||
1561 | # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen | ||
1562 | # will generate a graph for each documented class showing the direct and | ||
1563 | # indirect implementation dependencies (inheritance, containment, and | ||
1564 | # class references variables) of the class with other documented classes. | ||
1565 | |||
1566 | COLLABORATION_GRAPH = NO | ||
1567 | |||
1568 | # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen | ||
1569 | # will generate a graph for groups, showing the direct groups dependencies | ||
1570 | |||
1571 | GROUP_GRAPHS = YES | ||
1572 | |||
1573 | # If the UML_LOOK tag is set to YES doxygen will generate inheritance and | ||
1574 | # collaboration diagrams in a style similar to the OMG's Unified Modeling | ||
1575 | # Language. | ||
1576 | |||
1577 | UML_LOOK = NO | ||
1578 | |||
1579 | # If set to YES, the inheritance and collaboration graphs will show the | ||
1580 | # relations between templates and their instances. | ||
1581 | |||
1582 | TEMPLATE_RELATIONS = NO | ||
1583 | |||
1584 | # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT | ||
1585 | # tags are set to YES then doxygen will generate a graph for each documented | ||
1586 | # file showing the direct and indirect include dependencies of the file with | ||
1587 | # other documented files. | ||
1588 | |||
1589 | INCLUDE_GRAPH = NO | ||
1590 | |||
1591 | # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and | ||
1592 | # HAVE_DOT tags are set to YES then doxygen will generate a graph for each | ||
1593 | # documented header file showing the documented files that directly or | ||
1594 | # indirectly include this file. | ||
1595 | |||
1596 | INCLUDED_BY_GRAPH = NO | ||
1597 | |||
1598 | # If the CALL_GRAPH and HAVE_DOT options are set to YES then | ||
1599 | # doxygen will generate a call dependency graph for every global function | ||
1600 | # or class method. Note that enabling this option will significantly increase | ||
1601 | # the time of a run. So in most cases it will be better to enable call graphs | ||
1602 | # for selected functions only using the \callgraph command. | ||
1603 | |||
1604 | CALL_GRAPH = NO | ||
1605 | |||
1606 | # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then | ||
1607 | # doxygen will generate a caller dependency graph for every global function | ||
1608 | # or class method. Note that enabling this option will significantly increase | ||
1609 | # the time of a run. So in most cases it will be better to enable caller | ||
1610 | # graphs for selected functions only using the \callergraph command. | ||
1611 | |||
1612 | CALLER_GRAPH = NO | ||
1613 | |||
1614 | # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen | ||
1615 | # will generate a graphical hierarchy of all classes instead of a textual one. | ||
1616 | |||
1617 | GRAPHICAL_HIERARCHY = NO | ||
1618 | |||
1619 | # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES | ||
1620 | # then doxygen will show the dependencies a directory has on other directories | ||
1621 | # in a graphical way. The dependency relations are determined by the #include | ||
1622 | # relations between the files in the directories. | ||
1623 | |||
1624 | DIRECTORY_GRAPH = YES | ||
1625 | |||
1626 | # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images | ||
1627 | # generated by dot. Possible values are png, svg, gif or svg. | ||
1628 | # If left blank png will be used. | ||
1629 | |||
1630 | DOT_IMAGE_FORMAT = png | ||
1631 | |||
1632 | # The tag DOT_PATH can be used to specify the path where the dot tool can be | ||
1633 | # found. If left blank, it is assumed the dot tool can be found in the path. | ||
1634 | |||
1635 | DOT_PATH = | ||
1636 | |||
1637 | # The DOTFILE_DIRS tag can be used to specify one or more directories that | ||
1638 | # contain dot files that are included in the documentation (see the | ||
1639 | # \dotfile command). | ||
1640 | |||
1641 | DOTFILE_DIRS = | ||
1642 | |||
1643 | # The MSCFILE_DIRS tag can be used to specify one or more directories that | ||
1644 | # contain msc files that are included in the documentation (see the | ||
1645 | # \mscfile command). | ||
1646 | |||
1647 | MSCFILE_DIRS = | ||
1648 | |||
1649 | # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of | ||
1650 | # nodes that will be shown in the graph. If the number of nodes in a graph | ||
1651 | # becomes larger than this value, doxygen will truncate the graph, which is | ||
1652 | # visualized by representing a node as a red box. Note that doxygen if the | ||
1653 | # number of direct children of the root node in a graph is already larger than | ||
1654 | # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note | ||
1655 | # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. | ||
1656 | |||
1657 | DOT_GRAPH_MAX_NODES = 50 | ||
1658 | |||
1659 | # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the | ||
1660 | # graphs generated by dot. A depth value of 3 means that only nodes reachable | ||
1661 | # from the root by following a path via at most 3 edges will be shown. Nodes | ||
1662 | # that lay further from the root node will be omitted. Note that setting this | ||
1663 | # option to 1 or 2 may greatly reduce the computation time needed for large | ||
1664 | # code bases. Also note that the size of a graph can be further restricted by | ||
1665 | # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. | ||
1666 | |||
1667 | MAX_DOT_GRAPH_DEPTH = 0 | ||
1668 | |||
1669 | # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent | ||
1670 | # background. This is disabled by default, because dot on Windows does not | ||
1671 | # seem to support this out of the box. Warning: Depending on the platform used, | ||
1672 | # enabling this option may lead to badly anti-aliased labels on the edges of | ||
1673 | # a graph (i.e. they become hard to read). | ||
1674 | |||
1675 | DOT_TRANSPARENT = YES | ||
1676 | |||
1677 | # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output | ||
1678 | # files in one run (i.e. multiple -o and -T options on the command line). This | ||
1679 | # makes dot run faster, but since only newer versions of dot (>1.8.10) | ||
1680 | # support this, this feature is disabled by default. | ||
1681 | |||
1682 | DOT_MULTI_TARGETS = NO | ||
1683 | |||
1684 | # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will | ||
1685 | # generate a legend page explaining the meaning of the various boxes and | ||
1686 | # arrows in the dot generated graphs. | ||
1687 | |||
1688 | GENERATE_LEGEND = YES | ||
1689 | |||
1690 | # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will | ||
1691 | # remove the intermediate dot files that are used to generate | ||
1692 | # the various graphs. | ||
1693 | |||
1694 | DOT_CLEANUP = YES | ||
diff --git a/libraries/eet/doc/Doxyfile.in b/libraries/eet/doc/Doxyfile.in deleted file mode 100644 index 8c427f8..0000000 --- a/libraries/eet/doc/Doxyfile.in +++ /dev/null | |||
@@ -1,1694 +0,0 @@ | |||
1 | # Doxyfile 1.7.3 | ||
2 | |||
3 | # This file describes the settings to be used by the documentation system | ||
4 | # doxygen (www.doxygen.org) for a project. | ||
5 | # | ||
6 | # All text after a hash (#) is considered a comment and will be ignored. | ||
7 | # The format is: | ||
8 | # TAG = value [value, ...] | ||
9 | # For lists items can also be appended using: | ||
10 | # TAG += value [value, ...] | ||
11 | # Values that contain spaces should be placed between quotes (" "). | ||
12 | |||
13 | #--------------------------------------------------------------------------- | ||
14 | # Project related configuration options | ||
15 | #--------------------------------------------------------------------------- | ||
16 | |||
17 | # This tag specifies the encoding used for all characters in the config file | ||
18 | # that follow. The default is UTF-8 which is also the encoding used for all | ||
19 | # text before the first occurrence of this tag. Doxygen uses libiconv (or the | ||
20 | # iconv built into libc) for the transcoding. See | ||
21 | # http://www.gnu.org/software/libiconv for the list of possible encodings. | ||
22 | |||
23 | DOXYFILE_ENCODING = UTF-8 | ||
24 | |||
25 | # The PROJECT_NAME tag is a single word (or a sequence of words surrounded | ||
26 | # by quotes) that should identify the project. | ||
27 | |||
28 | PROJECT_NAME = Eet | ||
29 | |||
30 | # The PROJECT_NUMBER tag can be used to enter a project or revision number. | ||
31 | # This could be handy for archiving the generated documentation or | ||
32 | # if some version control system is used. | ||
33 | |||
34 | PROJECT_NUMBER = @PACKAGE_VERSION@ | ||
35 | |||
36 | # Using the PROJECT_BRIEF tag one can provide an optional one line description for a project that appears at the top of each page and should give viewer a quick idea about the purpose of the project. Keep the description short. | ||
37 | |||
38 | PROJECT_BRIEF = | ||
39 | |||
40 | # With the PROJECT_LOGO tag one can specify an logo or icon that is | ||
41 | # included in the documentation. The maximum height of the logo should not | ||
42 | # exceed 55 pixels and the maximum width should not exceed 200 pixels. | ||
43 | # Doxygen will copy the logo to the output directory. | ||
44 | |||
45 | PROJECT_LOGO = | ||
46 | |||
47 | # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) | ||
48 | # base path where the generated documentation will be put. | ||
49 | # If a relative path is entered, it will be relative to the location | ||
50 | # where doxygen was started. If left blank the current directory will be used. | ||
51 | |||
52 | OUTPUT_DIRECTORY = . | ||
53 | |||
54 | # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create | ||
55 | # 4096 sub-directories (in 2 levels) under the output directory of each output | ||
56 | # format and will distribute the generated files over these directories. | ||
57 | # Enabling this option can be useful when feeding doxygen a huge amount of | ||
58 | # source files, where putting all generated files in the same directory would | ||
59 | # otherwise cause performance problems for the file system. | ||
60 | |||
61 | CREATE_SUBDIRS = NO | ||
62 | |||
63 | # The OUTPUT_LANGUAGE tag is used to specify the language in which all | ||
64 | # documentation generated by doxygen is written. Doxygen will use this | ||
65 | # information to generate all constant output in the proper language. | ||
66 | # The default language is English, other supported languages are: | ||
67 | # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, | ||
68 | # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, | ||
69 | # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English | ||
70 | # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, | ||
71 | # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, | ||
72 | # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. | ||
73 | |||
74 | OUTPUT_LANGUAGE = English | ||
75 | |||
76 | # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will | ||
77 | # include brief member descriptions after the members that are listed in | ||
78 | # the file and class documentation (similar to JavaDoc). | ||
79 | # Set to NO to disable this. | ||
80 | |||
81 | BRIEF_MEMBER_DESC = YES | ||
82 | |||
83 | # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend | ||
84 | # the brief description of a member or function before the detailed description. | ||
85 | # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the | ||
86 | # brief descriptions will be completely suppressed. | ||
87 | |||
88 | REPEAT_BRIEF = YES | ||
89 | |||
90 | # This tag implements a quasi-intelligent brief description abbreviator | ||
91 | # that is used to form the text in various listings. Each string | ||
92 | # in this list, if found as the leading text of the brief description, will be | ||
93 | # stripped from the text and the result after processing the whole list, is | ||
94 | # used as the annotated text. Otherwise, the brief description is used as-is. | ||
95 | # If left blank, the following values are used ("$name" is automatically | ||
96 | # replaced with the name of the entity): "The $name class" "The $name widget" | ||
97 | # "The $name file" "is" "provides" "specifies" "contains" | ||
98 | # "represents" "a" "an" "the" | ||
99 | |||
100 | ABBREVIATE_BRIEF = | ||
101 | |||
102 | # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then | ||
103 | # Doxygen will generate a detailed section even if there is only a brief | ||
104 | # description. | ||
105 | |||
106 | ALWAYS_DETAILED_SEC = NO | ||
107 | |||
108 | # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all | ||
109 | # inherited members of a class in the documentation of that class as if those | ||
110 | # members were ordinary class members. Constructors, destructors and assignment | ||
111 | # operators of the base classes will not be shown. | ||
112 | |||
113 | INLINE_INHERITED_MEMB = NO | ||
114 | |||
115 | # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full | ||
116 | # path before files name in the file list and in the header files. If set | ||
117 | # to NO the shortest path that makes the file name unique will be used. | ||
118 | |||
119 | FULL_PATH_NAMES = NO | ||
120 | |||
121 | # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag | ||
122 | # can be used to strip a user-defined part of the path. Stripping is | ||
123 | # only done if one of the specified strings matches the left-hand part of | ||
124 | # the path. The tag can be used to show relative paths in the file list. | ||
125 | # If left blank the directory from which doxygen is run is used as the | ||
126 | # path to strip. | ||
127 | |||
128 | STRIP_FROM_PATH = | ||
129 | |||
130 | # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of | ||
131 | # the path mentioned in the documentation of a class, which tells | ||
132 | # the reader which header file to include in order to use a class. | ||
133 | # If left blank only the name of the header file containing the class | ||
134 | # definition is used. Otherwise one should specify the include paths that | ||
135 | # are normally passed to the compiler using the -I flag. | ||
136 | |||
137 | STRIP_FROM_INC_PATH = | ||
138 | |||
139 | # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter | ||
140 | # (but less readable) file names. This can be useful if your file system | ||
141 | # doesn't support long names like on DOS, Mac, or CD-ROM. | ||
142 | |||
143 | SHORT_NAMES = NO | ||
144 | |||
145 | # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen | ||
146 | # will interpret the first line (until the first dot) of a JavaDoc-style | ||
147 | # comment as the brief description. If set to NO, the JavaDoc | ||
148 | # comments will behave just like regular Qt-style comments | ||
149 | # (thus requiring an explicit @brief command for a brief description.) | ||
150 | |||
151 | JAVADOC_AUTOBRIEF = YES | ||
152 | |||
153 | # If the QT_AUTOBRIEF tag is set to YES then Doxygen will | ||
154 | # interpret the first line (until the first dot) of a Qt-style | ||
155 | # comment as the brief description. If set to NO, the comments | ||
156 | # will behave just like regular Qt-style comments (thus requiring | ||
157 | # an explicit \brief command for a brief description.) | ||
158 | |||
159 | QT_AUTOBRIEF = NO | ||
160 | |||
161 | # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen | ||
162 | # treat a multi-line C++ special comment block (i.e. a block of //! or /// | ||
163 | # comments) as a brief description. This used to be the default behaviour. | ||
164 | # The new default is to treat a multi-line C++ comment block as a detailed | ||
165 | # description. Set this tag to YES if you prefer the old behaviour instead. | ||
166 | |||
167 | MULTILINE_CPP_IS_BRIEF = NO | ||
168 | |||
169 | # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented | ||
170 | # member inherits the documentation from any documented member that it | ||
171 | # re-implements. | ||
172 | |||
173 | INHERIT_DOCS = YES | ||
174 | |||
175 | # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce | ||
176 | # a new page for each member. If set to NO, the documentation of a member will | ||
177 | # be part of the file/class/namespace that contains it. | ||
178 | |||
179 | SEPARATE_MEMBER_PAGES = NO | ||
180 | |||
181 | # The TAB_SIZE tag can be used to set the number of spaces in a tab. | ||
182 | # Doxygen uses this value to replace tabs by spaces in code fragments. | ||
183 | |||
184 | TAB_SIZE = 8 | ||
185 | |||
186 | # This tag can be used to specify a number of aliases that acts | ||
187 | # as commands in the documentation. An alias has the form "name=value". | ||
188 | # For example adding "sideeffect=\par Side Effects:\n" will allow you to | ||
189 | # put the command \sideeffect (or @sideeffect) in the documentation, which | ||
190 | # will result in a user-defined paragraph with heading "Side Effects:". | ||
191 | # You can put \n's in the value part of an alias to insert newlines. | ||
192 | |||
193 | ALIASES = | ||
194 | |||
195 | # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C | ||
196 | # sources only. Doxygen will then generate output that is more tailored for C. | ||
197 | # For instance, some of the names that are used will be different. The list | ||
198 | # of all members will be omitted, etc. | ||
199 | |||
200 | OPTIMIZE_OUTPUT_FOR_C = YES | ||
201 | |||
202 | # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java | ||
203 | # sources only. Doxygen will then generate output that is more tailored for | ||
204 | # Java. For instance, namespaces will be presented as packages, qualified | ||
205 | # scopes will look different, etc. | ||
206 | |||
207 | OPTIMIZE_OUTPUT_JAVA = NO | ||
208 | |||
209 | # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran | ||
210 | # sources only. Doxygen will then generate output that is more tailored for | ||
211 | # Fortran. | ||
212 | |||
213 | OPTIMIZE_FOR_FORTRAN = NO | ||
214 | |||
215 | # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL | ||
216 | # sources. Doxygen will then generate output that is tailored for | ||
217 | # VHDL. | ||
218 | |||
219 | OPTIMIZE_OUTPUT_VHDL = NO | ||
220 | |||
221 | # Doxygen selects the parser to use depending on the extension of the files it | ||
222 | # parses. With this tag you can assign which parser to use for a given extension. | ||
223 | # Doxygen has a built-in mapping, but you can override or extend it using this | ||
224 | # tag. The format is ext=language, where ext is a file extension, and language | ||
225 | # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, | ||
226 | # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make | ||
227 | # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C | ||
228 | # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions | ||
229 | # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. | ||
230 | |||
231 | EXTENSION_MAPPING = | ||
232 | |||
233 | # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want | ||
234 | # to include (a tag file for) the STL sources as input, then you should | ||
235 | # set this tag to YES in order to let doxygen match functions declarations and | ||
236 | # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. | ||
237 | # func(std::string) {}). This also makes the inheritance and collaboration | ||
238 | # diagrams that involve STL classes more complete and accurate. | ||
239 | |||
240 | BUILTIN_STL_SUPPORT = NO | ||
241 | |||
242 | # If you use Microsoft's C++/CLI language, you should set this option to YES to | ||
243 | # enable parsing support. | ||
244 | |||
245 | CPP_CLI_SUPPORT = NO | ||
246 | |||
247 | # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. | ||
248 | # Doxygen will parse them like normal C++ but will assume all classes use public | ||
249 | # instead of private inheritance when no explicit protection keyword is present. | ||
250 | |||
251 | SIP_SUPPORT = NO | ||
252 | |||
253 | # For Microsoft's IDL there are propget and propput attributes to indicate getter | ||
254 | # and setter methods for a property. Setting this option to YES (the default) | ||
255 | # will make doxygen replace the get and set methods by a property in the | ||
256 | # documentation. This will only work if the methods are indeed getting or | ||
257 | # setting a simple type. If this is not the case, or you want to show the | ||
258 | # methods anyway, you should set this option to NO. | ||
259 | |||
260 | IDL_PROPERTY_SUPPORT = YES | ||
261 | |||
262 | # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC | ||
263 | # tag is set to YES, then doxygen will reuse the documentation of the first | ||
264 | # member in the group (if any) for the other members of the group. By default | ||
265 | # all members of a group must be documented explicitly. | ||
266 | |||
267 | DISTRIBUTE_GROUP_DOC = NO | ||
268 | |||
269 | # Set the SUBGROUPING tag to YES (the default) to allow class member groups of | ||
270 | # the same type (for instance a group of public functions) to be put as a | ||
271 | # subgroup of that type (e.g. under the Public Functions section). Set it to | ||
272 | # NO to prevent subgrouping. Alternatively, this can be done per class using | ||
273 | # the \nosubgrouping command. | ||
274 | |||
275 | SUBGROUPING = YES | ||
276 | |||
277 | # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum | ||
278 | # is documented as struct, union, or enum with the name of the typedef. So | ||
279 | # typedef struct TypeS {} TypeT, will appear in the documentation as a struct | ||
280 | # with name TypeT. When disabled the typedef will appear as a member of a file, | ||
281 | # namespace, or class. And the struct will be named TypeS. This can typically | ||
282 | # be useful for C code in case the coding convention dictates that all compound | ||
283 | # types are typedef'ed and only the typedef is referenced, never the tag name. | ||
284 | |||
285 | TYPEDEF_HIDES_STRUCT = NO | ||
286 | |||
287 | # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to | ||
288 | # determine which symbols to keep in memory and which to flush to disk. | ||
289 | # When the cache is full, less often used symbols will be written to disk. | ||
290 | # For small to medium size projects (<1000 input files) the default value is | ||
291 | # probably good enough. For larger projects a too small cache size can cause | ||
292 | # doxygen to be busy swapping symbols to and from disk most of the time | ||
293 | # causing a significant performance penalty. | ||
294 | # If the system has enough physical memory increasing the cache will improve the | ||
295 | # performance by keeping more symbols in memory. Note that the value works on | ||
296 | # a logarithmic scale so increasing the size by one will roughly double the | ||
297 | # memory usage. The cache size is given by this formula: | ||
298 | # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, | ||
299 | # corresponding to a cache size of 2^16 = 65536 symbols | ||
300 | |||
301 | SYMBOL_CACHE_SIZE = 0 | ||
302 | |||
303 | #--------------------------------------------------------------------------- | ||
304 | # Build related configuration options | ||
305 | #--------------------------------------------------------------------------- | ||
306 | |||
307 | # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in | ||
308 | # documentation are documented, even if no documentation was available. | ||
309 | # Private class members and static file members will be hidden unless | ||
310 | # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES | ||
311 | |||
312 | EXTRACT_ALL = NO | ||
313 | |||
314 | # If the EXTRACT_PRIVATE tag is set to YES all private members of a class | ||
315 | # will be included in the documentation. | ||
316 | |||
317 | EXTRACT_PRIVATE = NO | ||
318 | |||
319 | # If the EXTRACT_STATIC tag is set to YES all static members of a file | ||
320 | # will be included in the documentation. | ||
321 | |||
322 | EXTRACT_STATIC = NO | ||
323 | |||
324 | # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) | ||
325 | # defined locally in source files will be included in the documentation. | ||
326 | # If set to NO only classes defined in header files are included. | ||
327 | |||
328 | EXTRACT_LOCAL_CLASSES = NO | ||
329 | |||
330 | # This flag is only useful for Objective-C code. When set to YES local | ||
331 | # methods, which are defined in the implementation section but not in | ||
332 | # the interface are included in the documentation. | ||
333 | # If set to NO (the default) only methods in the interface are included. | ||
334 | |||
335 | EXTRACT_LOCAL_METHODS = NO | ||
336 | |||
337 | # If this flag is set to YES, the members of anonymous namespaces will be | ||
338 | # extracted and appear in the documentation as a namespace called | ||
339 | # 'anonymous_namespace{file}', where file will be replaced with the base | ||
340 | # name of the file that contains the anonymous namespace. By default | ||
341 | # anonymous namespaces are hidden. | ||
342 | |||
343 | EXTRACT_ANON_NSPACES = NO | ||
344 | |||
345 | # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all | ||
346 | # undocumented members of documented classes, files or namespaces. | ||
347 | # If set to NO (the default) these members will be included in the | ||
348 | # various overviews, but no documentation section is generated. | ||
349 | # This option has no effect if EXTRACT_ALL is enabled. | ||
350 | |||
351 | HIDE_UNDOC_MEMBERS = NO | ||
352 | |||
353 | # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all | ||
354 | # undocumented classes that are normally visible in the class hierarchy. | ||
355 | # If set to NO (the default) these classes will be included in the various | ||
356 | # overviews. This option has no effect if EXTRACT_ALL is enabled. | ||
357 | |||
358 | HIDE_UNDOC_CLASSES = NO | ||
359 | |||
360 | # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all | ||
361 | # friend (class|struct|union) declarations. | ||
362 | # If set to NO (the default) these declarations will be included in the | ||
363 | # documentation. | ||
364 | |||
365 | HIDE_FRIEND_COMPOUNDS = NO | ||
366 | |||
367 | # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any | ||
368 | # documentation blocks found inside the body of a function. | ||
369 | # If set to NO (the default) these blocks will be appended to the | ||
370 | # function's detailed documentation block. | ||
371 | |||
372 | HIDE_IN_BODY_DOCS = NO | ||
373 | |||
374 | # The INTERNAL_DOCS tag determines if documentation | ||
375 | # that is typed after a \internal command is included. If the tag is set | ||
376 | # to NO (the default) then the documentation will be excluded. | ||
377 | # Set it to YES to include the internal documentation. | ||
378 | |||
379 | INTERNAL_DOCS = NO | ||
380 | |||
381 | # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate | ||
382 | # file names in lower-case letters. If set to YES upper-case letters are also | ||
383 | # allowed. This is useful if you have classes or files whose names only differ | ||
384 | # in case and if your file system supports case sensitive file names. Windows | ||
385 | # and Mac users are advised to set this option to NO. | ||
386 | |||
387 | CASE_SENSE_NAMES = YES | ||
388 | |||
389 | # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen | ||
390 | # will show members with their full class and namespace scopes in the | ||
391 | # documentation. If set to YES the scope will be hidden. | ||
392 | |||
393 | HIDE_SCOPE_NAMES = NO | ||
394 | |||
395 | # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen | ||
396 | # will put a list of the files that are included by a file in the documentation | ||
397 | # of that file. | ||
398 | |||
399 | SHOW_INCLUDE_FILES = NO | ||
400 | |||
401 | # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen | ||
402 | # will list include files with double quotes in the documentation | ||
403 | # rather than with sharp brackets. | ||
404 | |||
405 | FORCE_LOCAL_INCLUDES = NO | ||
406 | |||
407 | # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] | ||
408 | # is inserted in the documentation for inline members. | ||
409 | |||
410 | INLINE_INFO = YES | ||
411 | |||
412 | # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen | ||
413 | # will sort the (detailed) documentation of file and class members | ||
414 | # alphabetically by member name. If set to NO the members will appear in | ||
415 | # declaration order. | ||
416 | |||
417 | SORT_MEMBER_DOCS = NO | ||
418 | |||
419 | # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the | ||
420 | # brief documentation of file, namespace and class members alphabetically | ||
421 | # by member name. If set to NO (the default) the members will appear in | ||
422 | # declaration order. | ||
423 | |||
424 | SORT_BRIEF_DOCS = NO | ||
425 | |||
426 | # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen | ||
427 | # will sort the (brief and detailed) documentation of class members so that | ||
428 | # constructors and destructors are listed first. If set to NO (the default) | ||
429 | # the constructors will appear in the respective orders defined by | ||
430 | # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. | ||
431 | # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO | ||
432 | # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. | ||
433 | |||
434 | SORT_MEMBERS_CTORS_1ST = NO | ||
435 | |||
436 | # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the | ||
437 | # hierarchy of group names into alphabetical order. If set to NO (the default) | ||
438 | # the group names will appear in their defined order. | ||
439 | |||
440 | SORT_GROUP_NAMES = NO | ||
441 | |||
442 | # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be | ||
443 | # sorted by fully-qualified names, including namespaces. If set to | ||
444 | # NO (the default), the class list will be sorted only by class name, | ||
445 | # not including the namespace part. | ||
446 | # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. | ||
447 | # Note: This option applies only to the class list, not to the | ||
448 | # alphabetical list. | ||
449 | |||
450 | SORT_BY_SCOPE_NAME = NO | ||
451 | |||
452 | # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper type resolution of all parameters of a function it will reject a | ||
453 | # match between the prototype and the implementation of a member function even if there is only one candidate or it is obvious which candidate to choose by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen | ||
454 | # will still accept a match between prototype and implementation in such cases. | ||
455 | |||
456 | STRICT_PROTO_MATCHING = NO | ||
457 | |||
458 | # The GENERATE_TODOLIST tag can be used to enable (YES) or | ||
459 | # disable (NO) the todo list. This list is created by putting \todo | ||
460 | # commands in the documentation. | ||
461 | |||
462 | GENERATE_TODOLIST = YES | ||
463 | |||
464 | # The GENERATE_TESTLIST tag can be used to enable (YES) or | ||
465 | # disable (NO) the test list. This list is created by putting \test | ||
466 | # commands in the documentation. | ||
467 | |||
468 | GENERATE_TESTLIST = YES | ||
469 | |||
470 | # The GENERATE_BUGLIST tag can be used to enable (YES) or | ||
471 | # disable (NO) the bug list. This list is created by putting \bug | ||
472 | # commands in the documentation. | ||
473 | |||
474 | GENERATE_BUGLIST = YES | ||
475 | |||
476 | # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or | ||
477 | # disable (NO) the deprecated list. This list is created by putting | ||
478 | # \deprecated commands in the documentation. | ||
479 | |||
480 | GENERATE_DEPRECATEDLIST= YES | ||
481 | |||
482 | # The ENABLED_SECTIONS tag can be used to enable conditional | ||
483 | # documentation sections, marked by \if sectionname ... \endif. | ||
484 | |||
485 | ENABLED_SECTIONS = | ||
486 | |||
487 | # The MAX_INITIALIZER_LINES tag determines the maximum number of lines | ||
488 | # the initial value of a variable or macro consists of for it to appear in | ||
489 | # the documentation. If the initializer consists of more lines than specified | ||
490 | # here it will be hidden. Use a value of 0 to hide initializers completely. | ||
491 | # The appearance of the initializer of individual variables and macros in the | ||
492 | # documentation can be controlled using \showinitializer or \hideinitializer | ||
493 | # command in the documentation regardless of this setting. | ||
494 | |||
495 | MAX_INITIALIZER_LINES = 30 | ||
496 | |||
497 | # Set the SHOW_USED_FILES tag to NO to disable the list of files generated | ||
498 | # at the bottom of the documentation of classes and structs. If set to YES the | ||
499 | # list will mention the files that were used to generate the documentation. | ||
500 | |||
501 | SHOW_USED_FILES = NO | ||
502 | |||
503 | # If the sources in your project are distributed over multiple directories | ||
504 | # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy | ||
505 | # in the documentation. The default is NO. | ||
506 | |||
507 | SHOW_DIRECTORIES = NO | ||
508 | |||
509 | # Set the SHOW_FILES tag to NO to disable the generation of the Files page. | ||
510 | # This will remove the Files entry from the Quick Index and from the | ||
511 | # Folder Tree View (if specified). The default is YES. | ||
512 | |||
513 | SHOW_FILES = YES | ||
514 | |||
515 | # Set the SHOW_NAMESPACES tag to NO to disable the generation of the | ||
516 | # Namespaces page. | ||
517 | # This will remove the Namespaces entry from the Quick Index | ||
518 | # and from the Folder Tree View (if specified). The default is YES. | ||
519 | |||
520 | SHOW_NAMESPACES = YES | ||
521 | |||
522 | # The FILE_VERSION_FILTER tag can be used to specify a program or script that | ||
523 | # doxygen should invoke to get the current version for each file (typically from | ||
524 | # the version control system). Doxygen will invoke the program by executing (via | ||
525 | # popen()) the command <command> <input-file>, where <command> is the value of | ||
526 | # the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file | ||
527 | # provided by doxygen. Whatever the program writes to standard output | ||
528 | # is used as the file version. See the manual for examples. | ||
529 | |||
530 | FILE_VERSION_FILTER = | ||
531 | |||
532 | # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed | ||
533 | # by doxygen. The layout file controls the global structure of the generated | ||
534 | # output files in an output format independent way. The create the layout file | ||
535 | # that represents doxygen's defaults, run doxygen with the -l option. | ||
536 | # You can optionally specify a file name after the option, if omitted | ||
537 | # DoxygenLayout.xml will be used as the name of the layout file. | ||
538 | |||
539 | LAYOUT_FILE = | ||
540 | |||
541 | #--------------------------------------------------------------------------- | ||
542 | # configuration options related to warning and progress messages | ||
543 | #--------------------------------------------------------------------------- | ||
544 | |||
545 | # The QUIET tag can be used to turn on/off the messages that are generated | ||
546 | # by doxygen. Possible values are YES and NO. If left blank NO is used. | ||
547 | |||
548 | QUIET = NO | ||
549 | |||
550 | # The WARNINGS tag can be used to turn on/off the warning messages that are | ||
551 | # generated by doxygen. Possible values are YES and NO. If left blank | ||
552 | # NO is used. | ||
553 | |||
554 | WARNINGS = YES | ||
555 | |||
556 | # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings | ||
557 | # for undocumented members. If EXTRACT_ALL is set to YES then this flag will | ||
558 | # automatically be disabled. | ||
559 | |||
560 | WARN_IF_UNDOCUMENTED = YES | ||
561 | |||
562 | # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for | ||
563 | # potential errors in the documentation, such as not documenting some | ||
564 | # parameters in a documented function, or documenting parameters that | ||
565 | # don't exist or using markup commands wrongly. | ||
566 | |||
567 | WARN_IF_DOC_ERROR = YES | ||
568 | |||
569 | # The WARN_NO_PARAMDOC option can be enabled to get warnings for | ||
570 | # functions that are documented, but have no documentation for their parameters | ||
571 | # or return value. If set to NO (the default) doxygen will only warn about | ||
572 | # wrong or incomplete parameter documentation, but not about the absence of | ||
573 | # documentation. | ||
574 | |||
575 | WARN_NO_PARAMDOC = YES | ||
576 | |||
577 | # The WARN_FORMAT tag determines the format of the warning messages that | ||
578 | # doxygen can produce. The string should contain the $file, $line, and $text | ||
579 | # tags, which will be replaced by the file and line number from which the | ||
580 | # warning originated and the warning text. Optionally the format may contain | ||
581 | # $version, which will be replaced by the version of the file (if it could | ||
582 | # be obtained via FILE_VERSION_FILTER) | ||
583 | |||
584 | WARN_FORMAT = "$file:$line: $text" | ||
585 | |||
586 | # The WARN_LOGFILE tag can be used to specify a file to which warning | ||
587 | # and error messages should be written. If left blank the output is written | ||
588 | # to stderr. | ||
589 | |||
590 | WARN_LOGFILE = | ||
591 | |||
592 | #--------------------------------------------------------------------------- | ||
593 | # configuration options related to the input files | ||
594 | #--------------------------------------------------------------------------- | ||
595 | |||
596 | # The INPUT tag can be used to specify the files and/or directories that contain | ||
597 | # documented source files. You may enter file names like "myfile.cpp" or | ||
598 | # directories like "/usr/src/myproject". Separate the files or directories | ||
599 | # with spaces. | ||
600 | |||
601 | INPUT = @builddir@/eet.dox \ | ||
602 | @srcdir@/examples.dox \ | ||
603 | @top_srcdir@/src/lib | ||
604 | |||
605 | # This tag can be used to specify the character encoding of the source files | ||
606 | # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is | ||
607 | # also the default input encoding. Doxygen uses libiconv (or the iconv built | ||
608 | # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for | ||
609 | # the list of possible encodings. | ||
610 | |||
611 | INPUT_ENCODING = UTF-8 | ||
612 | |||
613 | # If the value of the INPUT tag contains directories, you can use the | ||
614 | # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp | ||
615 | # and *.h) to filter out the source-files in the directories. If left | ||
616 | # blank the following patterns are tested: | ||
617 | # *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh | ||
618 | # *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py | ||
619 | # *.f90 *.f *.for *.vhd *.vhdl | ||
620 | |||
621 | FILE_PATTERNS = *.c \ | ||
622 | *.h | ||
623 | |||
624 | # The RECURSIVE tag can be used to turn specify whether or not subdirectories | ||
625 | # should be searched for input files as well. Possible values are YES and NO. | ||
626 | # If left blank NO is used. | ||
627 | |||
628 | RECURSIVE = YES | ||
629 | |||
630 | # The EXCLUDE tag can be used to specify files and/or directories that should | ||
631 | # excluded from the INPUT source files. This way you can easily exclude a | ||
632 | # subdirectory from a directory tree whose root is specified with the INPUT tag. | ||
633 | |||
634 | EXCLUDE = @top_builddir@/src/lib/eet_amalgamation.c | ||
635 | |||
636 | # The EXCLUDE_SYMLINKS tag can be used select whether or not files or | ||
637 | # directories that are symbolic links (a Unix file system feature) are excluded | ||
638 | # from the input. | ||
639 | |||
640 | EXCLUDE_SYMLINKS = NO | ||
641 | |||
642 | # If the value of the INPUT tag contains directories, you can use the | ||
643 | # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude | ||
644 | # certain files from those directories. Note that the wildcards are matched | ||
645 | # against the file with absolute path, so to exclude all test directories | ||
646 | # for example use the pattern */test/* | ||
647 | |||
648 | EXCLUDE_PATTERNS = | ||
649 | |||
650 | # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names | ||
651 | # (namespaces, classes, functions, etc.) that should be excluded from the | ||
652 | # output. The symbol name can be a fully qualified name, a word, or if the | ||
653 | # wildcard * is used, a substring. Examples: ANamespace, AClass, | ||
654 | # AClass::ANamespace, ANamespace::*Test | ||
655 | |||
656 | EXCLUDE_SYMBOLS = | ||
657 | |||
658 | # The EXAMPLE_PATH tag can be used to specify one or more files or | ||
659 | # directories that contain example code fragments that are included (see | ||
660 | # the \include command). | ||
661 | |||
662 | EXAMPLE_PATH = @top_srcdir@/src/examples | ||
663 | |||
664 | # If the value of the EXAMPLE_PATH tag contains directories, you can use the | ||
665 | # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp | ||
666 | # and *.h) to filter out the source-files in the directories. If left | ||
667 | # blank all files are included. | ||
668 | |||
669 | EXAMPLE_PATTERNS = *.c,*.h,*.x | ||
670 | |||
671 | # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be | ||
672 | # searched for input files to be used with the \include or \dontinclude | ||
673 | # commands irrespective of the value of the RECURSIVE tag. | ||
674 | # Possible values are YES and NO. If left blank NO is used. | ||
675 | |||
676 | EXAMPLE_RECURSIVE = NO | ||
677 | |||
678 | # The IMAGE_PATH tag can be used to specify one or more files or | ||
679 | # directories that contain image that are included in the documentation (see | ||
680 | # the \image command). | ||
681 | |||
682 | IMAGE_PATH = @top_srcdir@/doc/img | ||
683 | |||
684 | # The INPUT_FILTER tag can be used to specify a program that doxygen should | ||
685 | # invoke to filter for each input file. Doxygen will invoke the filter program | ||
686 | # by executing (via popen()) the command <filter> <input-file>, where <filter> | ||
687 | # is the value of the INPUT_FILTER tag, and <input-file> is the name of an | ||
688 | # input file. Doxygen will then use the output that the filter program writes | ||
689 | # to standard output. | ||
690 | # If FILTER_PATTERNS is specified, this tag will be | ||
691 | # ignored. | ||
692 | |||
693 | INPUT_FILTER = | ||
694 | |||
695 | # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern | ||
696 | # basis. | ||
697 | # Doxygen will compare the file name with each pattern and apply the | ||
698 | # filter if there is a match. | ||
699 | # The filters are a list of the form: | ||
700 | # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further | ||
701 | # info on how filters are used. If FILTER_PATTERNS is empty or if | ||
702 | # non of the patterns match the file name, INPUT_FILTER is applied. | ||
703 | |||
704 | FILTER_PATTERNS = | ||
705 | |||
706 | # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using | ||
707 | # INPUT_FILTER) will be used to filter the input files when producing source | ||
708 | # files to browse (i.e. when SOURCE_BROWSER is set to YES). | ||
709 | |||
710 | FILTER_SOURCE_FILES = NO | ||
711 | |||
712 | # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file | ||
713 | # pattern. A pattern will override the setting for FILTER_PATTERN (if any) | ||
714 | # and it is also possible to disable source filtering for a specific pattern | ||
715 | # using *.ext= (so without naming a filter). This option only has effect when | ||
716 | # FILTER_SOURCE_FILES is enabled. | ||
717 | |||
718 | FILTER_SOURCE_PATTERNS = | ||
719 | |||
720 | #--------------------------------------------------------------------------- | ||
721 | # configuration options related to source browsing | ||
722 | #--------------------------------------------------------------------------- | ||
723 | |||
724 | # If the SOURCE_BROWSER tag is set to YES then a list of source files will | ||
725 | # be generated. Documented entities will be cross-referenced with these sources. | ||
726 | # Note: To get rid of all source code in the generated output, make sure also | ||
727 | # VERBATIM_HEADERS is set to NO. | ||
728 | |||
729 | SOURCE_BROWSER = NO | ||
730 | |||
731 | # Setting the INLINE_SOURCES tag to YES will include the body | ||
732 | # of functions and classes directly in the documentation. | ||
733 | |||
734 | INLINE_SOURCES = NO | ||
735 | |||
736 | # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct | ||
737 | # doxygen to hide any special comment blocks from generated source code | ||
738 | # fragments. Normal C and C++ comments will always remain visible. | ||
739 | |||
740 | STRIP_CODE_COMMENTS = YES | ||
741 | |||
742 | # If the REFERENCED_BY_RELATION tag is set to YES | ||
743 | # then for each documented function all documented | ||
744 | # functions referencing it will be listed. | ||
745 | |||
746 | REFERENCED_BY_RELATION = YES | ||
747 | |||
748 | # If the REFERENCES_RELATION tag is set to YES | ||
749 | # then for each documented function all documented entities | ||
750 | # called/used by that function will be listed. | ||
751 | |||
752 | REFERENCES_RELATION = YES | ||
753 | |||
754 | # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) | ||
755 | # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from | ||
756 | # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will | ||
757 | # link to the source code. | ||
758 | # Otherwise they will link to the documentation. | ||
759 | |||
760 | REFERENCES_LINK_SOURCE = YES | ||
761 | |||
762 | # If the USE_HTAGS tag is set to YES then the references to source code | ||
763 | # will point to the HTML generated by the htags(1) tool instead of doxygen | ||
764 | # built-in source browser. The htags tool is part of GNU's global source | ||
765 | # tagging system (see http://www.gnu.org/software/global/global.html). You | ||
766 | # will need version 4.8.6 or higher. | ||
767 | |||
768 | USE_HTAGS = NO | ||
769 | |||
770 | # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen | ||
771 | # will generate a verbatim copy of the header file for each class for | ||
772 | # which an include is specified. Set to NO to disable this. | ||
773 | |||
774 | VERBATIM_HEADERS = NO | ||
775 | |||
776 | #--------------------------------------------------------------------------- | ||
777 | # configuration options related to the alphabetical class index | ||
778 | #--------------------------------------------------------------------------- | ||
779 | |||
780 | # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index | ||
781 | # of all compounds will be generated. Enable this if the project | ||
782 | # contains a lot of classes, structs, unions or interfaces. | ||
783 | |||
784 | ALPHABETICAL_INDEX = YES | ||
785 | |||
786 | # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then | ||
787 | # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns | ||
788 | # in which this list will be split (can be a number in the range [1..20]) | ||
789 | |||
790 | COLS_IN_ALPHA_INDEX = 2 | ||
791 | |||
792 | # In case all classes in a project start with a common prefix, all | ||
793 | # classes will be put under the same header in the alphabetical index. | ||
794 | # The IGNORE_PREFIX tag can be used to specify one or more prefixes that | ||
795 | # should be ignored while generating the index headers. | ||
796 | |||
797 | IGNORE_PREFIX = eet_ \ | ||
798 | _eet_ \ | ||
799 | Eet_ \ | ||
800 | _Eet_ \ | ||
801 | EET_ \ | ||
802 | _EET_ | ||
803 | |||
804 | #--------------------------------------------------------------------------- | ||
805 | # configuration options related to the HTML output | ||
806 | #--------------------------------------------------------------------------- | ||
807 | |||
808 | # If the GENERATE_HTML tag is set to YES (the default) Doxygen will | ||
809 | # generate HTML output. | ||
810 | |||
811 | GENERATE_HTML = YES | ||
812 | |||
813 | # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. | ||
814 | # If a relative path is entered the value of OUTPUT_DIRECTORY will be | ||
815 | # put in front of it. If left blank `html' will be used as the default path. | ||
816 | |||
817 | HTML_OUTPUT = html | ||
818 | |||
819 | # The HTML_FILE_EXTENSION tag can be used to specify the file extension for | ||
820 | # each generated HTML page (for example: .htm,.php,.asp). If it is left blank | ||
821 | # doxygen will generate files with .html extension. | ||
822 | |||
823 | HTML_FILE_EXTENSION = .html | ||
824 | |||
825 | # The HTML_HEADER tag can be used to specify a personal HTML header for | ||
826 | # each generated HTML page. If it is left blank doxygen will generate a | ||
827 | # standard header. | ||
828 | |||
829 | HTML_HEADER = @srcdir@/head.html | ||
830 | |||
831 | # The HTML_FOOTER tag can be used to specify a personal HTML footer for | ||
832 | # each generated HTML page. If it is left blank doxygen will generate a | ||
833 | # standard footer. | ||
834 | |||
835 | HTML_FOOTER = @srcdir@/foot.html | ||
836 | |||
837 | # The HTML_STYLESHEET tag can be used to specify a user-defined cascading | ||
838 | # style sheet that is used by each HTML page. It can be used to | ||
839 | # fine-tune the look of the HTML output. If the tag is left blank doxygen | ||
840 | # will generate a default style sheet. Note that doxygen will try to copy | ||
841 | # the style sheet file to the HTML output directory, so don't put your own | ||
842 | # stylesheet in the HTML output directory as well, or it will be erased! | ||
843 | |||
844 | HTML_STYLESHEET = @srcdir@/e.css | ||
845 | |||
846 | # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. | ||
847 | # Doxygen will adjust the colors in the stylesheet and background images | ||
848 | # according to this color. Hue is specified as an angle on a colorwheel, | ||
849 | # see http://en.wikipedia.org/wiki/Hue for more information. | ||
850 | # For instance the value 0 represents red, 60 is yellow, 120 is green, | ||
851 | # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. | ||
852 | # The allowed range is 0 to 359. | ||
853 | |||
854 | HTML_COLORSTYLE_HUE = 220 | ||
855 | |||
856 | # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of | ||
857 | # the colors in the HTML output. For a value of 0 the output will use | ||
858 | # grayscales only. A value of 255 will produce the most vivid colors. | ||
859 | |||
860 | HTML_COLORSTYLE_SAT = 100 | ||
861 | |||
862 | # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to | ||
863 | # the luminance component of the colors in the HTML output. Values below | ||
864 | # 100 gradually make the output lighter, whereas values above 100 make | ||
865 | # the output darker. The value divided by 100 is the actual gamma applied, | ||
866 | # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, | ||
867 | # and 100 does not change the gamma. | ||
868 | |||
869 | HTML_COLORSTYLE_GAMMA = 80 | ||
870 | |||
871 | # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML | ||
872 | # page will contain the date and time when the page was generated. Setting | ||
873 | # this to NO can help when comparing the output of multiple runs. | ||
874 | |||
875 | HTML_TIMESTAMP = YES | ||
876 | |||
877 | # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, | ||
878 | # files or namespaces will be aligned in HTML using tables. If set to | ||
879 | # NO a bullet list will be used. | ||
880 | |||
881 | HTML_ALIGN_MEMBERS = YES | ||
882 | |||
883 | # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML | ||
884 | # documentation will contain sections that can be hidden and shown after the | ||
885 | # page has loaded. For this to work a browser that supports | ||
886 | # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox | ||
887 | # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). | ||
888 | |||
889 | HTML_DYNAMIC_SECTIONS = YES | ||
890 | |||
891 | # If the GENERATE_DOCSET tag is set to YES, additional index files | ||
892 | # will be generated that can be used as input for Apple's Xcode 3 | ||
893 | # integrated development environment, introduced with OSX 10.5 (Leopard). | ||
894 | # To create a documentation set, doxygen will generate a Makefile in the | ||
895 | # HTML output directory. Running make will produce the docset in that | ||
896 | # directory and running "make install" will install the docset in | ||
897 | # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find | ||
898 | # it at startup. | ||
899 | # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html | ||
900 | # for more information. | ||
901 | |||
902 | GENERATE_DOCSET = YES | ||
903 | |||
904 | # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the | ||
905 | # feed. A documentation feed provides an umbrella under which multiple | ||
906 | # documentation sets from a single provider (such as a company or product suite) | ||
907 | # can be grouped. | ||
908 | |||
909 | DOCSET_FEEDNAME = "Doxygen generated docs" | ||
910 | |||
911 | # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that | ||
912 | # should uniquely identify the documentation set bundle. This should be a | ||
913 | # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen | ||
914 | # will append .docset to the name. | ||
915 | |||
916 | DOCSET_BUNDLE_ID = org.enlightenment.Eet | ||
917 | |||
918 | # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify | ||
919 | # the documentation publisher. This should be a reverse domain-name style | ||
920 | # string, e.g. com.mycompany.MyDocSet.documentation. | ||
921 | |||
922 | DOCSET_PUBLISHER_ID = org.enlightenment.Eet | ||
923 | |||
924 | # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. | ||
925 | |||
926 | DOCSET_PUBLISHER_NAME = Enlightenment | ||
927 | |||
928 | # If the GENERATE_HTMLHELP tag is set to YES, additional index files | ||
929 | # will be generated that can be used as input for tools like the | ||
930 | # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) | ||
931 | # of the generated HTML documentation. | ||
932 | |||
933 | GENERATE_HTMLHELP = YES | ||
934 | |||
935 | # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can | ||
936 | # be used to specify the file name of the resulting .chm file. You | ||
937 | # can add a path in front of the file if the result should not be | ||
938 | # written to the html output directory. | ||
939 | |||
940 | CHM_FILE = | ||
941 | |||
942 | # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can | ||
943 | # be used to specify the location (absolute path including file name) of | ||
944 | # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run | ||
945 | # the HTML help compiler on the generated index.hhp. | ||
946 | |||
947 | HHC_LOCATION = | ||
948 | |||
949 | # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag | ||
950 | # controls if a separate .chi index file is generated (YES) or that | ||
951 | # it should be included in the master .chm file (NO). | ||
952 | |||
953 | GENERATE_CHI = NO | ||
954 | |||
955 | # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING | ||
956 | # is used to encode HtmlHelp index (hhk), content (hhc) and project file | ||
957 | # content. | ||
958 | |||
959 | CHM_INDEX_ENCODING = | ||
960 | |||
961 | # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag | ||
962 | # controls whether a binary table of contents is generated (YES) or a | ||
963 | # normal table of contents (NO) in the .chm file. | ||
964 | |||
965 | BINARY_TOC = NO | ||
966 | |||
967 | # The TOC_EXPAND flag can be set to YES to add extra items for group members | ||
968 | # to the contents of the HTML help documentation and to the tree view. | ||
969 | |||
970 | TOC_EXPAND = NO | ||
971 | |||
972 | # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and | ||
973 | # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated | ||
974 | # that can be used as input for Qt's qhelpgenerator to generate a | ||
975 | # Qt Compressed Help (.qch) of the generated HTML documentation. | ||
976 | |||
977 | GENERATE_QHP = NO | ||
978 | |||
979 | # If the QHG_LOCATION tag is specified, the QCH_FILE tag can | ||
980 | # be used to specify the file name of the resulting .qch file. | ||
981 | # The path specified is relative to the HTML output folder. | ||
982 | |||
983 | QCH_FILE = | ||
984 | |||
985 | # The QHP_NAMESPACE tag specifies the namespace to use when generating | ||
986 | # Qt Help Project output. For more information please see | ||
987 | # http://doc.trolltech.com/qthelpproject.html#namespace | ||
988 | |||
989 | QHP_NAMESPACE = org.enlightenment.Eet | ||
990 | |||
991 | # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating | ||
992 | # Qt Help Project output. For more information please see | ||
993 | # http://doc.trolltech.com/qthelpproject.html#virtual-folders | ||
994 | |||
995 | QHP_VIRTUAL_FOLDER = doc | ||
996 | |||
997 | # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to | ||
998 | # add. For more information please see | ||
999 | # http://doc.trolltech.com/qthelpproject.html#custom-filters | ||
1000 | |||
1001 | QHP_CUST_FILTER_NAME = | ||
1002 | |||
1003 | # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the | ||
1004 | # custom filter to add. For more information please see | ||
1005 | # <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters"> | ||
1006 | # Qt Help Project / Custom Filters</a>. | ||
1007 | |||
1008 | QHP_CUST_FILTER_ATTRS = | ||
1009 | |||
1010 | # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this | ||
1011 | # project's | ||
1012 | # filter section matches. | ||
1013 | # <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes"> | ||
1014 | # Qt Help Project / Filter Attributes</a>. | ||
1015 | |||
1016 | QHP_SECT_FILTER_ATTRS = | ||
1017 | |||
1018 | # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can | ||
1019 | # be used to specify the location of Qt's qhelpgenerator. | ||
1020 | # If non-empty doxygen will try to run qhelpgenerator on the generated | ||
1021 | # .qhp file. | ||
1022 | |||
1023 | QHG_LOCATION = | ||
1024 | |||
1025 | # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files | ||
1026 | # will be generated, which together with the HTML files, form an Eclipse help | ||
1027 | # plugin. To install this plugin and make it available under the help contents | ||
1028 | # menu in Eclipse, the contents of the directory containing the HTML and XML | ||
1029 | # files needs to be copied into the plugins directory of eclipse. The name of | ||
1030 | # the directory within the plugins directory should be the same as | ||
1031 | # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before | ||
1032 | # the help appears. | ||
1033 | |||
1034 | GENERATE_ECLIPSEHELP = NO | ||
1035 | |||
1036 | # A unique identifier for the eclipse help plugin. When installing the plugin | ||
1037 | # the directory name containing the HTML and XML files should also have | ||
1038 | # this name. | ||
1039 | |||
1040 | ECLIPSE_DOC_ID = org.enlightenment.Eet | ||
1041 | |||
1042 | # The DISABLE_INDEX tag can be used to turn on/off the condensed index at | ||
1043 | # top of each HTML page. The value NO (the default) enables the index and | ||
1044 | # the value YES disables it. | ||
1045 | |||
1046 | DISABLE_INDEX = YES | ||
1047 | |||
1048 | # This tag can be used to set the number of enum values (range [0,1..20]) | ||
1049 | # that doxygen will group on one line in the generated HTML documentation. | ||
1050 | # Note that a value of 0 will completely suppress the enum values from appearing in the overview section. | ||
1051 | |||
1052 | ENUM_VALUES_PER_LINE = 1 | ||
1053 | |||
1054 | # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index | ||
1055 | # structure should be generated to display hierarchical information. | ||
1056 | # If the tag value is set to YES, a side panel will be generated | ||
1057 | # containing a tree-like index structure (just like the one that | ||
1058 | # is generated for HTML Help). For this to work a browser that supports | ||
1059 | # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). | ||
1060 | # Windows users are probably better off using the HTML help feature. | ||
1061 | |||
1062 | GENERATE_TREEVIEW = NO | ||
1063 | |||
1064 | # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, | ||
1065 | # and Class Hierarchy pages using a tree view instead of an ordered list. | ||
1066 | |||
1067 | USE_INLINE_TREES = NO | ||
1068 | |||
1069 | # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be | ||
1070 | # used to set the initial width (in pixels) of the frame in which the tree | ||
1071 | # is shown. | ||
1072 | |||
1073 | TREEVIEW_WIDTH = 250 | ||
1074 | |||
1075 | # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open | ||
1076 | # links to external symbols imported via tag files in a separate window. | ||
1077 | |||
1078 | EXT_LINKS_IN_WINDOW = NO | ||
1079 | |||
1080 | # Use this tag to change the font size of Latex formulas included | ||
1081 | # as images in the HTML documentation. The default is 10. Note that | ||
1082 | # when you change the font size after a successful doxygen run you need | ||
1083 | # to manually remove any form_*.png images from the HTML output directory | ||
1084 | # to force them to be regenerated. | ||
1085 | |||
1086 | FORMULA_FONTSIZE = 10 | ||
1087 | |||
1088 | # Use the FORMULA_TRANPARENT tag to determine whether or not the images | ||
1089 | # generated for formulas are transparent PNGs. Transparent PNGs are | ||
1090 | # not supported properly for IE 6.0, but are supported on all modern browsers. | ||
1091 | # Note that when changing this option you need to delete any form_*.png files | ||
1092 | # in the HTML output before the changes have effect. | ||
1093 | |||
1094 | FORMULA_TRANSPARENT = YES | ||
1095 | |||
1096 | # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax | ||
1097 | # (see http://www.mathjax.org) which uses client side Javascript for the | ||
1098 | # rendering instead of using prerendered bitmaps. Use this if you do not | ||
1099 | # have LaTeX installed or if you want to formulas look prettier in the HTML | ||
1100 | # output. When enabled you also need to install MathJax separately and | ||
1101 | # configure the path to it using the MATHJAX_RELPATH option. | ||
1102 | |||
1103 | USE_MATHJAX = NO | ||
1104 | |||
1105 | # When MathJax is enabled you need to specify the location relative to the | ||
1106 | # HTML output directory using the MATHJAX_RELPATH option. The destination | ||
1107 | # directory should contain the MathJax.js script. For instance, if the mathjax | ||
1108 | # directory is located at the same level as the HTML output directory, then | ||
1109 | # MATHJAX_RELPATH should be ../mathjax. The default value points to the mathjax.org site, so you can quickly see the result without installing | ||
1110 | # MathJax, but it is strongly recommended to install a local copy of MathJax | ||
1111 | # before deployment. | ||
1112 | |||
1113 | MATHJAX_RELPATH = http://www.mathjax.org/mathjax | ||
1114 | |||
1115 | # When the SEARCHENGINE tag is enabled doxygen will generate a search box | ||
1116 | # for the HTML output. The underlying search engine uses javascript | ||
1117 | # and DHTML and should work on any modern browser. Note that when using | ||
1118 | # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets | ||
1119 | # (GENERATE_DOCSET) there is already a search function so this one should | ||
1120 | # typically be disabled. For large projects the javascript based search engine | ||
1121 | # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. | ||
1122 | |||
1123 | SEARCHENGINE = NO | ||
1124 | |||
1125 | # When the SERVER_BASED_SEARCH tag is enabled the search engine will be | ||
1126 | # implemented using a PHP enabled web server instead of at the web client | ||
1127 | # using Javascript. Doxygen will generate the search PHP script and index | ||
1128 | # file to put on the web server. The advantage of the server | ||
1129 | # based approach is that it scales better to large projects and allows | ||
1130 | # full text search. The disadvantages are that it is more difficult to setup | ||
1131 | # and does not have live searching capabilities. | ||
1132 | |||
1133 | SERVER_BASED_SEARCH = NO | ||
1134 | |||
1135 | #--------------------------------------------------------------------------- | ||
1136 | # configuration options related to the LaTeX output | ||
1137 | #--------------------------------------------------------------------------- | ||
1138 | |||
1139 | # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will | ||
1140 | # generate Latex output. | ||
1141 | |||
1142 | GENERATE_LATEX = YES | ||
1143 | |||
1144 | # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. | ||
1145 | # If a relative path is entered the value of OUTPUT_DIRECTORY will be | ||
1146 | # put in front of it. If left blank `latex' will be used as the default path. | ||
1147 | |||
1148 | LATEX_OUTPUT = latex | ||
1149 | |||
1150 | # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be | ||
1151 | # invoked. If left blank `latex' will be used as the default command name. | ||
1152 | # Note that when enabling USE_PDFLATEX this option is only used for | ||
1153 | # generating bitmaps for formulas in the HTML output, but not in the | ||
1154 | # Makefile that is written to the output directory. | ||
1155 | |||
1156 | LATEX_CMD_NAME = latex | ||
1157 | |||
1158 | # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to | ||
1159 | # generate index for LaTeX. If left blank `makeindex' will be used as the | ||
1160 | # default command name. | ||
1161 | |||
1162 | MAKEINDEX_CMD_NAME = makeindex | ||
1163 | |||
1164 | # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact | ||
1165 | # LaTeX documents. This may be useful for small projects and may help to | ||
1166 | # save some trees in general. | ||
1167 | |||
1168 | COMPACT_LATEX = NO | ||
1169 | |||
1170 | # The PAPER_TYPE tag can be used to set the paper type that is used | ||
1171 | # by the printer. Possible values are: a4, letter, legal and | ||
1172 | # executive. If left blank a4wide will be used. | ||
1173 | |||
1174 | PAPER_TYPE = a4wide | ||
1175 | |||
1176 | # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX | ||
1177 | # packages that should be included in the LaTeX output. | ||
1178 | |||
1179 | EXTRA_PACKAGES = | ||
1180 | |||
1181 | # The LATEX_HEADER tag can be used to specify a personal LaTeX header for | ||
1182 | # the generated latex document. The header should contain everything until | ||
1183 | # the first chapter. If it is left blank doxygen will generate a | ||
1184 | # standard header. Notice: only use this tag if you know what you are doing! | ||
1185 | |||
1186 | LATEX_HEADER = | ||
1187 | |||
1188 | # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated | ||
1189 | # is prepared for conversion to pdf (using ps2pdf). The pdf file will | ||
1190 | # contain links (just like the HTML output) instead of page references | ||
1191 | # This makes the output suitable for online browsing using a pdf viewer. | ||
1192 | |||
1193 | PDF_HYPERLINKS = YES | ||
1194 | |||
1195 | # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of | ||
1196 | # plain latex in the generated Makefile. Set this option to YES to get a | ||
1197 | # higher quality PDF documentation. | ||
1198 | |||
1199 | USE_PDFLATEX = YES | ||
1200 | |||
1201 | # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. | ||
1202 | # command to the generated LaTeX files. This will instruct LaTeX to keep | ||
1203 | # running if errors occur, instead of asking the user for help. | ||
1204 | # This option is also used when generating formulas in HTML. | ||
1205 | |||
1206 | LATEX_BATCHMODE = NO | ||
1207 | |||
1208 | # If LATEX_HIDE_INDICES is set to YES then doxygen will not | ||
1209 | # include the index chapters (such as File Index, Compound Index, etc.) | ||
1210 | # in the output. | ||
1211 | |||
1212 | LATEX_HIDE_INDICES = NO | ||
1213 | |||
1214 | # If LATEX_SOURCE_CODE is set to YES then doxygen will include | ||
1215 | # source code with syntax highlighting in the LaTeX output. | ||
1216 | # Note that which sources are shown also depends on other settings | ||
1217 | # such as SOURCE_BROWSER. | ||
1218 | |||
1219 | LATEX_SOURCE_CODE = NO | ||
1220 | |||
1221 | #--------------------------------------------------------------------------- | ||
1222 | # configuration options related to the RTF output | ||
1223 | #--------------------------------------------------------------------------- | ||
1224 | |||
1225 | # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output | ||
1226 | # The RTF output is optimized for Word 97 and may not look very pretty with | ||
1227 | # other RTF readers or editors. | ||
1228 | |||
1229 | GENERATE_RTF = NO | ||
1230 | |||
1231 | # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. | ||
1232 | # If a relative path is entered the value of OUTPUT_DIRECTORY will be | ||
1233 | # put in front of it. If left blank `rtf' will be used as the default path. | ||
1234 | |||
1235 | RTF_OUTPUT = rtf | ||
1236 | |||
1237 | # If the COMPACT_RTF tag is set to YES Doxygen generates more compact | ||
1238 | # RTF documents. This may be useful for small projects and may help to | ||
1239 | # save some trees in general. | ||
1240 | |||
1241 | COMPACT_RTF = NO | ||
1242 | |||
1243 | # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated | ||
1244 | # will contain hyperlink fields. The RTF file will | ||
1245 | # contain links (just like the HTML output) instead of page references. | ||
1246 | # This makes the output suitable for online browsing using WORD or other | ||
1247 | # programs which support those fields. | ||
1248 | # Note: wordpad (write) and others do not support links. | ||
1249 | |||
1250 | RTF_HYPERLINKS = NO | ||
1251 | |||
1252 | # Load stylesheet definitions from file. Syntax is similar to doxygen's | ||
1253 | # config file, i.e. a series of assignments. You only have to provide | ||
1254 | # replacements, missing definitions are set to their default value. | ||
1255 | |||
1256 | RTF_STYLESHEET_FILE = | ||
1257 | |||
1258 | # Set optional variables used in the generation of an rtf document. | ||
1259 | # Syntax is similar to doxygen's config file. | ||
1260 | |||
1261 | RTF_EXTENSIONS_FILE = | ||
1262 | |||
1263 | #--------------------------------------------------------------------------- | ||
1264 | # configuration options related to the man page output | ||
1265 | #--------------------------------------------------------------------------- | ||
1266 | |||
1267 | # If the GENERATE_MAN tag is set to YES (the default) Doxygen will | ||
1268 | # generate man pages | ||
1269 | |||
1270 | GENERATE_MAN = NO | ||
1271 | |||
1272 | # The MAN_OUTPUT tag is used to specify where the man pages will be put. | ||
1273 | # If a relative path is entered the value of OUTPUT_DIRECTORY will be | ||
1274 | # put in front of it. If left blank `man' will be used as the default path. | ||
1275 | |||
1276 | MAN_OUTPUT = man | ||
1277 | |||
1278 | # The MAN_EXTENSION tag determines the extension that is added to | ||
1279 | # the generated man pages (default is the subroutine's section .3) | ||
1280 | |||
1281 | MAN_EXTENSION = .3 | ||
1282 | |||
1283 | # If the MAN_LINKS tag is set to YES and Doxygen generates man output, | ||
1284 | # then it will generate one additional man file for each entity | ||
1285 | # documented in the real man page(s). These additional files | ||
1286 | # only source the real man page, but without them the man command | ||
1287 | # would be unable to find the correct page. The default is NO. | ||
1288 | |||
1289 | MAN_LINKS = YES | ||
1290 | |||
1291 | #--------------------------------------------------------------------------- | ||
1292 | # configuration options related to the XML output | ||
1293 | #--------------------------------------------------------------------------- | ||
1294 | |||
1295 | # If the GENERATE_XML tag is set to YES Doxygen will | ||
1296 | # generate an XML file that captures the structure of | ||
1297 | # the code including all documentation. | ||
1298 | |||
1299 | GENERATE_XML = NO | ||
1300 | |||
1301 | # The XML_OUTPUT tag is used to specify where the XML pages will be put. | ||
1302 | # If a relative path is entered the value of OUTPUT_DIRECTORY will be | ||
1303 | # put in front of it. If left blank `xml' will be used as the default path. | ||
1304 | |||
1305 | XML_OUTPUT = xml | ||
1306 | |||
1307 | # The XML_SCHEMA tag can be used to specify an XML schema, | ||
1308 | # which can be used by a validating XML parser to check the | ||
1309 | # syntax of the XML files. | ||
1310 | |||
1311 | XML_SCHEMA = | ||
1312 | |||
1313 | # The XML_DTD tag can be used to specify an XML DTD, | ||
1314 | # which can be used by a validating XML parser to check the | ||
1315 | # syntax of the XML files. | ||
1316 | |||
1317 | XML_DTD = | ||
1318 | |||
1319 | # If the XML_PROGRAMLISTING tag is set to YES Doxygen will | ||
1320 | # dump the program listings (including syntax highlighting | ||
1321 | # and cross-referencing information) to the XML output. Note that | ||
1322 | # enabling this will significantly increase the size of the XML output. | ||
1323 | |||
1324 | XML_PROGRAMLISTING = YES | ||
1325 | |||
1326 | #--------------------------------------------------------------------------- | ||
1327 | # configuration options for the AutoGen Definitions output | ||
1328 | #--------------------------------------------------------------------------- | ||
1329 | |||
1330 | # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will | ||
1331 | # generate an AutoGen Definitions (see autogen.sf.net) file | ||
1332 | # that captures the structure of the code including all | ||
1333 | # documentation. Note that this feature is still experimental | ||
1334 | # and incomplete at the moment. | ||
1335 | |||
1336 | GENERATE_AUTOGEN_DEF = NO | ||
1337 | |||
1338 | #--------------------------------------------------------------------------- | ||
1339 | # configuration options related to the Perl module output | ||
1340 | #--------------------------------------------------------------------------- | ||
1341 | |||
1342 | # If the GENERATE_PERLMOD tag is set to YES Doxygen will | ||
1343 | # generate a Perl module file that captures the structure of | ||
1344 | # the code including all documentation. Note that this | ||
1345 | # feature is still experimental and incomplete at the | ||
1346 | # moment. | ||
1347 | |||
1348 | GENERATE_PERLMOD = NO | ||
1349 | |||
1350 | # If the PERLMOD_LATEX tag is set to YES Doxygen will generate | ||
1351 | # the necessary Makefile rules, Perl scripts and LaTeX code to be able | ||
1352 | # to generate PDF and DVI output from the Perl module output. | ||
1353 | |||
1354 | PERLMOD_LATEX = NO | ||
1355 | |||
1356 | # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be | ||
1357 | # nicely formatted so it can be parsed by a human reader. | ||
1358 | # This is useful | ||
1359 | # if you want to understand what is going on. | ||
1360 | # On the other hand, if this | ||
1361 | # tag is set to NO the size of the Perl module output will be much smaller | ||
1362 | # and Perl will parse it just the same. | ||
1363 | |||
1364 | PERLMOD_PRETTY = YES | ||
1365 | |||
1366 | # The names of the make variables in the generated doxyrules.make file | ||
1367 | # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. | ||
1368 | # This is useful so different doxyrules.make files included by the same | ||
1369 | # Makefile don't overwrite each other's variables. | ||
1370 | |||
1371 | PERLMOD_MAKEVAR_PREFIX = | ||
1372 | |||
1373 | #--------------------------------------------------------------------------- | ||
1374 | # Configuration options related to the preprocessor | ||
1375 | #--------------------------------------------------------------------------- | ||
1376 | |||
1377 | # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will | ||
1378 | # evaluate all C-preprocessor directives found in the sources and include | ||
1379 | # files. | ||
1380 | |||
1381 | ENABLE_PREPROCESSING = YES | ||
1382 | |||
1383 | # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro | ||
1384 | # names in the source code. If set to NO (the default) only conditional | ||
1385 | # compilation will be performed. Macro expansion can be done in a controlled | ||
1386 | # way by setting EXPAND_ONLY_PREDEF to YES. | ||
1387 | |||
1388 | MACRO_EXPANSION = YES | ||
1389 | |||
1390 | # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES | ||
1391 | # then the macro expansion is limited to the macros specified with the | ||
1392 | # PREDEFINED and EXPAND_AS_DEFINED tags. | ||
1393 | |||
1394 | EXPAND_ONLY_PREDEF = YES | ||
1395 | |||
1396 | # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files | ||
1397 | # in the INCLUDE_PATH (see below) will be search if a #include is found. | ||
1398 | |||
1399 | SEARCH_INCLUDES = NO | ||
1400 | |||
1401 | # The INCLUDE_PATH tag can be used to specify one or more directories that | ||
1402 | # contain include files that are not input files but should be processed by | ||
1403 | # the preprocessor. | ||
1404 | |||
1405 | INCLUDE_PATH = | ||
1406 | |||
1407 | # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard | ||
1408 | # patterns (like *.h and *.hpp) to filter out the header-files in the | ||
1409 | # directories. If left blank, the patterns specified with FILE_PATTERNS will | ||
1410 | # be used. | ||
1411 | |||
1412 | INCLUDE_FILE_PATTERNS = | ||
1413 | |||
1414 | # The PREDEFINED tag can be used to specify one or more macro names that | ||
1415 | # are defined before the preprocessor is started (similar to the -D option of | ||
1416 | # gcc). The argument of the tag is a list of macros of the form: name | ||
1417 | # or name=definition (no spaces). If the definition and the = are | ||
1418 | # omitted =1 is assumed. To prevent a macro definition from being | ||
1419 | # undefined via #undef or recursively expanded use the := operator | ||
1420 | # instead of the = operator. | ||
1421 | |||
1422 | PREDEFINED = EINA_MAGIC_DEBUG \ | ||
1423 | __UNUSED__= \ | ||
1424 | EINA_ARG_NONNULL()= \ | ||
1425 | EINA_MALLOC= \ | ||
1426 | EINA_WARN_UNUSED_RESULT= \ | ||
1427 | EAPI= \ | ||
1428 | EINA_PURE= \ | ||
1429 | EINA_CONST= | ||
1430 | |||
1431 | # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then | ||
1432 | # this tag can be used to specify a list of macro names that should be expanded. | ||
1433 | # The macro definition that is found in the sources will be used. | ||
1434 | # Use the PREDEFINED tag if you want to use a different macro definition that overrules the definition found in the source code. | ||
1435 | |||
1436 | EXPAND_AS_DEFINED = | ||
1437 | |||
1438 | # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then | ||
1439 | # doxygen's preprocessor will remove all references to function-like macros | ||
1440 | # that are alone on a line, have an all uppercase name, and do not end with a | ||
1441 | # semicolon, because these will confuse the parser if not removed. | ||
1442 | |||
1443 | SKIP_FUNCTION_MACROS = YES | ||
1444 | |||
1445 | #--------------------------------------------------------------------------- | ||
1446 | # Configuration::additions related to external references | ||
1447 | #--------------------------------------------------------------------------- | ||
1448 | |||
1449 | # The TAGFILES option can be used to specify one or more tagfiles. | ||
1450 | # Optionally an initial location of the external documentation | ||
1451 | # can be added for each tagfile. The format of a tag file without | ||
1452 | # this location is as follows: | ||
1453 | # | ||
1454 | # TAGFILES = file1 file2 ... | ||
1455 | # Adding location for the tag files is done as follows: | ||
1456 | # | ||
1457 | # TAGFILES = file1=loc1 "file2 = loc2" ... | ||
1458 | # where "loc1" and "loc2" can be relative or absolute paths or | ||
1459 | # URLs. If a location is present for each tag, the installdox tool | ||
1460 | # does not have to be run to correct the links. | ||
1461 | # Note that each tag file must have a unique name | ||
1462 | # (where the name does NOT include the path) | ||
1463 | # If a tag file is not located in the directory in which doxygen | ||
1464 | # is run, you must also specify the path to the tagfile here. | ||
1465 | |||
1466 | TAGFILES = | ||
1467 | |||
1468 | # When a file name is specified after GENERATE_TAGFILE, doxygen will create | ||
1469 | # a tag file that is based on the input files it reads. | ||
1470 | |||
1471 | GENERATE_TAGFILE = | ||
1472 | |||
1473 | # If the ALLEXTERNALS tag is set to YES all external classes will be listed | ||
1474 | # in the class index. If set to NO only the inherited external classes | ||
1475 | # will be listed. | ||
1476 | |||
1477 | ALLEXTERNALS = NO | ||
1478 | |||
1479 | # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed | ||
1480 | # in the modules index. If set to NO, only the current project's groups will | ||
1481 | # be listed. | ||
1482 | |||
1483 | EXTERNAL_GROUPS = YES | ||
1484 | |||
1485 | # The PERL_PATH should be the absolute path and name of the perl script | ||
1486 | # interpreter (i.e. the result of `which perl'). | ||
1487 | |||
1488 | PERL_PATH = /usr/bin/perl | ||
1489 | |||
1490 | #--------------------------------------------------------------------------- | ||
1491 | # Configuration options related to the dot tool | ||
1492 | #--------------------------------------------------------------------------- | ||
1493 | |||
1494 | # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will | ||
1495 | # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base | ||
1496 | # or super classes. Setting the tag to NO turns the diagrams off. Note that | ||
1497 | # this option also works with HAVE_DOT disabled, but it is recommended to | ||
1498 | # install and use dot, since it yields more powerful graphs. | ||
1499 | |||
1500 | CLASS_DIAGRAMS = NO | ||
1501 | |||
1502 | # You can define message sequence charts within doxygen comments using the \msc | ||
1503 | # command. Doxygen will then run the mscgen tool (see | ||
1504 | # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the | ||
1505 | # documentation. The MSCGEN_PATH tag allows you to specify the directory where | ||
1506 | # the mscgen tool resides. If left empty the tool is assumed to be found in the | ||
1507 | # default search path. | ||
1508 | |||
1509 | MSCGEN_PATH = | ||
1510 | |||
1511 | # If set to YES, the inheritance and collaboration graphs will hide | ||
1512 | # inheritance and usage relations if the target is undocumented | ||
1513 | # or is not a class. | ||
1514 | |||
1515 | HIDE_UNDOC_RELATIONS = YES | ||
1516 | |||
1517 | # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is | ||
1518 | # available from the path. This tool is part of Graphviz, a graph visualization | ||
1519 | # toolkit from AT&T and Lucent Bell Labs. The other options in this section | ||
1520 | # have no effect if this option is set to NO (the default) | ||
1521 | |||
1522 | HAVE_DOT = NO | ||
1523 | |||
1524 | # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is | ||
1525 | # allowed to run in parallel. When set to 0 (the default) doxygen will | ||
1526 | # base this on the number of processors available in the system. You can set it | ||
1527 | # explicitly to a value larger than 0 to get control over the balance | ||
1528 | # between CPU load and processing speed. | ||
1529 | |||
1530 | DOT_NUM_THREADS = 0 | ||
1531 | |||
1532 | # By default doxygen will write a font called Helvetica to the output | ||
1533 | # directory and reference it in all dot files that doxygen generates. | ||
1534 | # When you want a differently looking font you can specify the font name | ||
1535 | # using DOT_FONTNAME. You need to make sure dot is able to find the font, | ||
1536 | # which can be done by putting it in a standard location or by setting the | ||
1537 | # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory | ||
1538 | # containing the font. | ||
1539 | |||
1540 | DOT_FONTNAME = Helvetica | ||
1541 | |||
1542 | # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. | ||
1543 | # The default size is 10pt. | ||
1544 | |||
1545 | DOT_FONTSIZE = 10 | ||
1546 | |||
1547 | # By default doxygen will tell dot to use the output directory to look for the | ||
1548 | # FreeSans.ttf font (which doxygen will put there itself). If you specify a | ||
1549 | # different font using DOT_FONTNAME you can set the path where dot | ||
1550 | # can find it using this tag. | ||
1551 | |||
1552 | DOT_FONTPATH = | ||
1553 | |||
1554 | # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen | ||
1555 | # will generate a graph for each documented class showing the direct and | ||
1556 | # indirect inheritance relations. Setting this tag to YES will force the | ||
1557 | # the CLASS_DIAGRAMS tag to NO. | ||
1558 | |||
1559 | CLASS_GRAPH = NO | ||
1560 | |||
1561 | # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen | ||
1562 | # will generate a graph for each documented class showing the direct and | ||
1563 | # indirect implementation dependencies (inheritance, containment, and | ||
1564 | # class references variables) of the class with other documented classes. | ||
1565 | |||
1566 | COLLABORATION_GRAPH = NO | ||
1567 | |||
1568 | # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen | ||
1569 | # will generate a graph for groups, showing the direct groups dependencies | ||
1570 | |||
1571 | GROUP_GRAPHS = YES | ||
1572 | |||
1573 | # If the UML_LOOK tag is set to YES doxygen will generate inheritance and | ||
1574 | # collaboration diagrams in a style similar to the OMG's Unified Modeling | ||
1575 | # Language. | ||
1576 | |||
1577 | UML_LOOK = NO | ||
1578 | |||
1579 | # If set to YES, the inheritance and collaboration graphs will show the | ||
1580 | # relations between templates and their instances. | ||
1581 | |||
1582 | TEMPLATE_RELATIONS = NO | ||
1583 | |||
1584 | # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT | ||
1585 | # tags are set to YES then doxygen will generate a graph for each documented | ||
1586 | # file showing the direct and indirect include dependencies of the file with | ||
1587 | # other documented files. | ||
1588 | |||
1589 | INCLUDE_GRAPH = NO | ||
1590 | |||
1591 | # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and | ||
1592 | # HAVE_DOT tags are set to YES then doxygen will generate a graph for each | ||
1593 | # documented header file showing the documented files that directly or | ||
1594 | # indirectly include this file. | ||
1595 | |||
1596 | INCLUDED_BY_GRAPH = NO | ||
1597 | |||
1598 | # If the CALL_GRAPH and HAVE_DOT options are set to YES then | ||
1599 | # doxygen will generate a call dependency graph for every global function | ||
1600 | # or class method. Note that enabling this option will significantly increase | ||
1601 | # the time of a run. So in most cases it will be better to enable call graphs | ||
1602 | # for selected functions only using the \callgraph command. | ||
1603 | |||
1604 | CALL_GRAPH = NO | ||
1605 | |||
1606 | # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then | ||
1607 | # doxygen will generate a caller dependency graph for every global function | ||
1608 | # or class method. Note that enabling this option will significantly increase | ||
1609 | # the time of a run. So in most cases it will be better to enable caller | ||
1610 | # graphs for selected functions only using the \callergraph command. | ||
1611 | |||
1612 | CALLER_GRAPH = NO | ||
1613 | |||
1614 | # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen | ||
1615 | # will generate a graphical hierarchy of all classes instead of a textual one. | ||
1616 | |||
1617 | GRAPHICAL_HIERARCHY = NO | ||
1618 | |||
1619 | # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES | ||
1620 | # then doxygen will show the dependencies a directory has on other directories | ||
1621 | # in a graphical way. The dependency relations are determined by the #include | ||
1622 | # relations between the files in the directories. | ||
1623 | |||
1624 | DIRECTORY_GRAPH = YES | ||
1625 | |||
1626 | # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images | ||
1627 | # generated by dot. Possible values are png, svg, gif or svg. | ||
1628 | # If left blank png will be used. | ||
1629 | |||
1630 | DOT_IMAGE_FORMAT = png | ||
1631 | |||
1632 | # The tag DOT_PATH can be used to specify the path where the dot tool can be | ||
1633 | # found. If left blank, it is assumed the dot tool can be found in the path. | ||
1634 | |||
1635 | DOT_PATH = | ||
1636 | |||
1637 | # The DOTFILE_DIRS tag can be used to specify one or more directories that | ||
1638 | # contain dot files that are included in the documentation (see the | ||
1639 | # \dotfile command). | ||
1640 | |||
1641 | DOTFILE_DIRS = | ||
1642 | |||
1643 | # The MSCFILE_DIRS tag can be used to specify one or more directories that | ||
1644 | # contain msc files that are included in the documentation (see the | ||
1645 | # \mscfile command). | ||
1646 | |||
1647 | MSCFILE_DIRS = | ||
1648 | |||
1649 | # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of | ||
1650 | # nodes that will be shown in the graph. If the number of nodes in a graph | ||
1651 | # becomes larger than this value, doxygen will truncate the graph, which is | ||
1652 | # visualized by representing a node as a red box. Note that doxygen if the | ||
1653 | # number of direct children of the root node in a graph is already larger than | ||
1654 | # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note | ||
1655 | # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. | ||
1656 | |||
1657 | DOT_GRAPH_MAX_NODES = 50 | ||
1658 | |||
1659 | # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the | ||
1660 | # graphs generated by dot. A depth value of 3 means that only nodes reachable | ||
1661 | # from the root by following a path via at most 3 edges will be shown. Nodes | ||
1662 | # that lay further from the root node will be omitted. Note that setting this | ||
1663 | # option to 1 or 2 may greatly reduce the computation time needed for large | ||
1664 | # code bases. Also note that the size of a graph can be further restricted by | ||
1665 | # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. | ||
1666 | |||
1667 | MAX_DOT_GRAPH_DEPTH = 0 | ||
1668 | |||
1669 | # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent | ||
1670 | # background. This is disabled by default, because dot on Windows does not | ||
1671 | # seem to support this out of the box. Warning: Depending on the platform used, | ||
1672 | # enabling this option may lead to badly anti-aliased labels on the edges of | ||
1673 | # a graph (i.e. they become hard to read). | ||
1674 | |||
1675 | DOT_TRANSPARENT = YES | ||
1676 | |||
1677 | # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output | ||
1678 | # files in one run (i.e. multiple -o and -T options on the command line). This | ||
1679 | # makes dot run faster, but since only newer versions of dot (>1.8.10) | ||
1680 | # support this, this feature is disabled by default. | ||
1681 | |||
1682 | DOT_MULTI_TARGETS = NO | ||
1683 | |||
1684 | # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will | ||
1685 | # generate a legend page explaining the meaning of the various boxes and | ||
1686 | # arrows in the dot generated graphs. | ||
1687 | |||
1688 | GENERATE_LEGEND = YES | ||
1689 | |||
1690 | # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will | ||
1691 | # remove the intermediate dot files that are used to generate | ||
1692 | # the various graphs. | ||
1693 | |||
1694 | DOT_CLEANUP = YES | ||
diff --git a/libraries/eet/doc/Makefile.am b/libraries/eet/doc/Makefile.am deleted file mode 100644 index 4eeb438..0000000 --- a/libraries/eet/doc/Makefile.am +++ /dev/null | |||
@@ -1,40 +0,0 @@ | |||
1 | |||
2 | MAINTAINERCLEANFILES = Makefile.in eet.dox | ||
3 | |||
4 | .PHONY: doc | ||
5 | |||
6 | PACKAGE_DOCNAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc | ||
7 | |||
8 | if EFL_BUILD_DOC | ||
9 | |||
10 | doc-clean: | ||
11 | rm -rf html/ latex/ xml/ $(PACKAGE_DOCNAME).tar* | ||
12 | |||
13 | doc: doc-clean | ||
14 | $(efl_doxygen) | ||
15 | cp $(srcdir)/img/* html/ | ||
16 | rm -rf $(PACKAGE_DOCNAME).tar* | ||
17 | mkdir -p $(PACKAGE_DOCNAME)/doc | ||
18 | cp -R html/ latex/ $(PACKAGE_DOCNAME)/doc | ||
19 | tar cf $(PACKAGE_DOCNAME).tar $(PACKAGE_DOCNAME)/ | ||
20 | bzip2 -9 $(PACKAGE_DOCNAME).tar | ||
21 | rm -rf $(PACKAGE_DOCNAME)/ | ||
22 | mv $(PACKAGE_DOCNAME).tar.bz2 $(top_builddir) | ||
23 | @echo "Documentation Package: $(PACKAGE_DOCNAME).tar.bz2" | ||
24 | @echo "Documentation HTML: doc/html" | ||
25 | |||
26 | clean-local: doc-clean | ||
27 | |||
28 | else | ||
29 | |||
30 | doc: | ||
31 | @echo "Documentation not built. Run ./configure --help" | ||
32 | |||
33 | endif | ||
34 | |||
35 | EXTRA_DIST = $(builddir)/Doxyfile \ | ||
36 | $(srcdir)/e.css \ | ||
37 | $(srcdir)/foot.html \ | ||
38 | $(srcdir)/head.html \ | ||
39 | $(wildcard $(srcdir)/img/*.*) \ | ||
40 | $(srcdir)/eet.dox.in | ||
diff --git a/libraries/eet/doc/Makefile.in b/libraries/eet/doc/Makefile.in deleted file mode 100644 index 25de7ec..0000000 --- a/libraries/eet/doc/Makefile.in +++ /dev/null | |||
@@ -1,443 +0,0 @@ | |||
1 | # Makefile.in generated by automake 1.11.1 from Makefile.am. | ||
2 | # @configure_input@ | ||
3 | |||
4 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, | ||
5 | # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, | ||
6 | # Inc. | ||
7 | # This Makefile.in is free software; the Free Software Foundation | ||
8 | # gives unlimited permission to copy and/or distribute it, | ||
9 | # with or without modifications, as long as this notice is preserved. | ||
10 | |||
11 | # This program is distributed in the hope that it will be useful, | ||
12 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | ||
13 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | ||
14 | # PARTICULAR PURPOSE. | ||
15 | |||
16 | @SET_MAKE@ | ||
17 | VPATH = @srcdir@ | ||
18 | pkgdatadir = $(datadir)/@PACKAGE@ | ||
19 | pkgincludedir = $(includedir)/@PACKAGE@ | ||
20 | pkglibdir = $(libdir)/@PACKAGE@ | ||
21 | pkglibexecdir = $(libexecdir)/@PACKAGE@ | ||
22 | am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | ||
23 | install_sh_DATA = $(install_sh) -c -m 644 | ||
24 | install_sh_PROGRAM = $(install_sh) -c | ||
25 | install_sh_SCRIPT = $(install_sh) -c | ||
26 | INSTALL_HEADER = $(INSTALL_DATA) | ||
27 | transform = $(program_transform_name) | ||
28 | NORMAL_INSTALL = : | ||
29 | PRE_INSTALL = : | ||
30 | POST_INSTALL = : | ||
31 | NORMAL_UNINSTALL = : | ||
32 | PRE_UNINSTALL = : | ||
33 | POST_UNINSTALL = : | ||
34 | build_triplet = @build@ | ||
35 | host_triplet = @host@ | ||
36 | subdir = doc | ||
37 | DIST_COMMON = $(srcdir)/Doxyfile.in $(srcdir)/Makefile.am \ | ||
38 | $(srcdir)/Makefile.in $(srcdir)/eet.dox.in | ||
39 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | ||
40 | am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \ | ||
41 | $(top_srcdir)/m4/ac_path_generic.m4 \ | ||
42 | $(top_srcdir)/m4/efl_binary.m4 \ | ||
43 | $(top_srcdir)/m4/efl_compiler_flag.m4 \ | ||
44 | $(top_srcdir)/m4/efl_coverage.m4 \ | ||
45 | $(top_srcdir)/m4/efl_doxygen.m4 \ | ||
46 | $(top_srcdir)/m4/efl_fnmatch.m4 \ | ||
47 | $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ | ||
48 | $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ | ||
49 | $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ | ||
50 | $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac | ||
51 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | ||
52 | $(ACLOCAL_M4) | ||
53 | mkinstalldirs = $(install_sh) -d | ||
54 | CONFIG_HEADER = $(top_builddir)/config.h | ||
55 | CONFIG_CLEAN_FILES = Doxyfile eet.dox | ||
56 | CONFIG_CLEAN_VPATH_FILES = | ||
57 | AM_V_GEN = $(am__v_GEN_$(V)) | ||
58 | am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) | ||
59 | am__v_GEN_0 = @echo " GEN " $@; | ||
60 | AM_V_at = $(am__v_at_$(V)) | ||
61 | am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) | ||
62 | am__v_at_0 = @ | ||
63 | SOURCES = | ||
64 | DIST_SOURCES = | ||
65 | DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | ||
66 | ACLOCAL = @ACLOCAL@ | ||
67 | ALLOCA = @ALLOCA@ | ||
68 | AMTAR = @AMTAR@ | ||
69 | AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ | ||
70 | AR = @AR@ | ||
71 | AS = @AS@ | ||
72 | AUTOCONF = @AUTOCONF@ | ||
73 | AUTOHEADER = @AUTOHEADER@ | ||
74 | AUTOMAKE = @AUTOMAKE@ | ||
75 | AWK = @AWK@ | ||
76 | CC = @CC@ | ||
77 | CCDEPMODE = @CCDEPMODE@ | ||
78 | CFLAGS = @CFLAGS@ | ||
79 | CHECK_CFLAGS = @CHECK_CFLAGS@ | ||
80 | CHECK_LIBS = @CHECK_LIBS@ | ||
81 | CPP = @CPP@ | ||
82 | CPPFLAGS = @CPPFLAGS@ | ||
83 | CYGPATH_W = @CYGPATH_W@ | ||
84 | DEBUG_CFLAGS = @DEBUG_CFLAGS@ | ||
85 | DEFS = @DEFS@ | ||
86 | DEPDIR = @DEPDIR@ | ||
87 | DLLTOOL = @DLLTOOL@ | ||
88 | DSYMUTIL = @DSYMUTIL@ | ||
89 | DUMPBIN = @DUMPBIN@ | ||
90 | ECHO_C = @ECHO_C@ | ||
91 | ECHO_N = @ECHO_N@ | ||
92 | ECHO_T = @ECHO_T@ | ||
93 | EET_CFLAGS = @EET_CFLAGS@ | ||
94 | EET_CPPFLAGS = @EET_CPPFLAGS@ | ||
95 | EET_LIBS = @EET_LIBS@ | ||
96 | EET_PRG = @EET_PRG@ | ||
97 | EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@ | ||
98 | EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@ | ||
99 | EFL_EET_BUILD = @EFL_EET_BUILD@ | ||
100 | EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@ | ||
101 | EGREP = @EGREP@ | ||
102 | EINA_CFLAGS = @EINA_CFLAGS@ | ||
103 | EINA_LIBS = @EINA_LIBS@ | ||
104 | EVIL_CFLAGS = @EVIL_CFLAGS@ | ||
105 | EVIL_LIBS = @EVIL_LIBS@ | ||
106 | EXEEXT = @EXEEXT@ | ||
107 | EXOTIC_CFLAGS = @EXOTIC_CFLAGS@ | ||
108 | EXOTIC_LIBS = @EXOTIC_LIBS@ | ||
109 | FGREP = @FGREP@ | ||
110 | GNUTLS_CFLAGS = @GNUTLS_CFLAGS@ | ||
111 | GNUTLS_LIBS = @GNUTLS_LIBS@ | ||
112 | GREP = @GREP@ | ||
113 | INSTALL = @INSTALL@ | ||
114 | INSTALL_DATA = @INSTALL_DATA@ | ||
115 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ | ||
116 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ | ||
117 | INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | ||
118 | LD = @LD@ | ||
119 | LDFLAGS = @LDFLAGS@ | ||
120 | LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@ | ||
121 | LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@ | ||
122 | LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@ | ||
123 | LIBOBJS = @LIBOBJS@ | ||
124 | LIBS = @LIBS@ | ||
125 | LIBTOOL = @LIBTOOL@ | ||
126 | LIPO = @LIPO@ | ||
127 | LN_S = @LN_S@ | ||
128 | LTLIBOBJS = @LTLIBOBJS@ | ||
129 | MAKEINFO = @MAKEINFO@ | ||
130 | MKDIR_P = @MKDIR_P@ | ||
131 | NM = @NM@ | ||
132 | NMEDIT = @NMEDIT@ | ||
133 | OBJDUMP = @OBJDUMP@ | ||
134 | OBJEXT = @OBJEXT@ | ||
135 | OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ | ||
136 | OPENSSL_LIBS = @OPENSSL_LIBS@ | ||
137 | OTOOL = @OTOOL@ | ||
138 | OTOOL64 = @OTOOL64@ | ||
139 | PACKAGE = @PACKAGE@ | ||
140 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | ||
141 | PACKAGE_NAME = @PACKAGE_NAME@ | ||
142 | PACKAGE_STRING = @PACKAGE_STRING@ | ||
143 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ | ||
144 | PACKAGE_URL = @PACKAGE_URL@ | ||
145 | PACKAGE_VERSION = @PACKAGE_VERSION@ | ||
146 | PATH_SEPARATOR = @PATH_SEPARATOR@ | ||
147 | PKG_CONFIG = @PKG_CONFIG@ | ||
148 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ | ||
149 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ | ||
150 | RANLIB = @RANLIB@ | ||
151 | SED = @SED@ | ||
152 | SET_MAKE = @SET_MAKE@ | ||
153 | SHELL = @SHELL@ | ||
154 | STRIP = @STRIP@ | ||
155 | VERSION = @VERSION@ | ||
156 | VMAJ = @VMAJ@ | ||
157 | abs_builddir = @abs_builddir@ | ||
158 | abs_srcdir = @abs_srcdir@ | ||
159 | abs_top_builddir = @abs_top_builddir@ | ||
160 | abs_top_srcdir = @abs_top_srcdir@ | ||
161 | ac_ct_CC = @ac_ct_CC@ | ||
162 | ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ | ||
163 | am__include = @am__include@ | ||
164 | am__leading_dot = @am__leading_dot@ | ||
165 | am__quote = @am__quote@ | ||
166 | am__tar = @am__tar@ | ||
167 | am__untar = @am__untar@ | ||
168 | bindir = @bindir@ | ||
169 | build = @build@ | ||
170 | build_alias = @build_alias@ | ||
171 | build_cpu = @build_cpu@ | ||
172 | build_os = @build_os@ | ||
173 | build_vendor = @build_vendor@ | ||
174 | builddir = @builddir@ | ||
175 | datadir = @datadir@ | ||
176 | datarootdir = @datarootdir@ | ||
177 | docdir = @docdir@ | ||
178 | dvidir = @dvidir@ | ||
179 | efl_doxygen = @efl_doxygen@ | ||
180 | efl_have_doxygen = @efl_have_doxygen@ | ||
181 | exec_prefix = @exec_prefix@ | ||
182 | have_lcov = @have_lcov@ | ||
183 | host = @host@ | ||
184 | host_alias = @host_alias@ | ||
185 | host_cpu = @host_cpu@ | ||
186 | host_os = @host_os@ | ||
187 | host_vendor = @host_vendor@ | ||
188 | htmldir = @htmldir@ | ||
189 | includedir = @includedir@ | ||
190 | infodir = @infodir@ | ||
191 | install_sh = @install_sh@ | ||
192 | libdir = @libdir@ | ||
193 | libexecdir = @libexecdir@ | ||
194 | localedir = @localedir@ | ||
195 | localstatedir = @localstatedir@ | ||
196 | lt_ECHO = @lt_ECHO@ | ||
197 | lt_enable_auto_import = @lt_enable_auto_import@ | ||
198 | mandir = @mandir@ | ||
199 | mkdir_p = @mkdir_p@ | ||
200 | oldincludedir = @oldincludedir@ | ||
201 | pdfdir = @pdfdir@ | ||
202 | pkgconfig_requires_private = @pkgconfig_requires_private@ | ||
203 | prefix = @prefix@ | ||
204 | program_transform_name = @program_transform_name@ | ||
205 | psdir = @psdir@ | ||
206 | release_info = @release_info@ | ||
207 | requirement_eet = @requirement_eet@ | ||
208 | sbindir = @sbindir@ | ||
209 | sharedstatedir = @sharedstatedir@ | ||
210 | srcdir = @srcdir@ | ||
211 | sysconfdir = @sysconfdir@ | ||
212 | target_alias = @target_alias@ | ||
213 | top_build_prefix = @top_build_prefix@ | ||
214 | top_builddir = @top_builddir@ | ||
215 | top_srcdir = @top_srcdir@ | ||
216 | version_info = @version_info@ | ||
217 | MAINTAINERCLEANFILES = Makefile.in eet.dox | ||
218 | PACKAGE_DOCNAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc | ||
219 | EXTRA_DIST = $(builddir)/Doxyfile \ | ||
220 | $(srcdir)/e.css \ | ||
221 | $(srcdir)/foot.html \ | ||
222 | $(srcdir)/head.html \ | ||
223 | $(wildcard $(srcdir)/img/*.*) \ | ||
224 | $(srcdir)/eet.dox.in | ||
225 | |||
226 | all: all-am | ||
227 | |||
228 | .SUFFIXES: | ||
229 | $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) | ||
230 | @for dep in $?; do \ | ||
231 | case '$(am__configure_deps)' in \ | ||
232 | *$$dep*) \ | ||
233 | ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ | ||
234 | && { if test -f $@; then exit 0; else break; fi; }; \ | ||
235 | exit 1;; \ | ||
236 | esac; \ | ||
237 | done; \ | ||
238 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ | ||
239 | $(am__cd) $(top_srcdir) && \ | ||
240 | $(AUTOMAKE) --gnu doc/Makefile | ||
241 | .PRECIOUS: Makefile | ||
242 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | ||
243 | @case '$?' in \ | ||
244 | *config.status*) \ | ||
245 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ | ||
246 | *) \ | ||
247 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | ||
248 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | ||
249 | esac; | ||
250 | |||
251 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | ||
252 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
253 | |||
254 | $(top_srcdir)/configure: $(am__configure_deps) | ||
255 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
256 | $(ACLOCAL_M4): $(am__aclocal_m4_deps) | ||
257 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
258 | $(am__aclocal_m4_deps): | ||
259 | Doxyfile: $(top_builddir)/config.status $(srcdir)/Doxyfile.in | ||
260 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ | ||
261 | eet.dox: $(top_builddir)/config.status $(srcdir)/eet.dox.in | ||
262 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ | ||
263 | |||
264 | mostlyclean-libtool: | ||
265 | -rm -f *.lo | ||
266 | |||
267 | clean-libtool: | ||
268 | -rm -rf .libs _libs | ||
269 | tags: TAGS | ||
270 | TAGS: | ||
271 | |||
272 | ctags: CTAGS | ||
273 | CTAGS: | ||
274 | |||
275 | |||
276 | distdir: $(DISTFILES) | ||
277 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||
278 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||
279 | list='$(DISTFILES)'; \ | ||
280 | dist_files=`for file in $$list; do echo $$file; done | \ | ||
281 | sed -e "s|^$$srcdirstrip/||;t" \ | ||
282 | -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | ||
283 | case $$dist_files in \ | ||
284 | */*) $(MKDIR_P) `echo "$$dist_files" | \ | ||
285 | sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | ||
286 | sort -u` ;; \ | ||
287 | esac; \ | ||
288 | for file in $$dist_files; do \ | ||
289 | if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | ||
290 | if test -d $$d/$$file; then \ | ||
291 | dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | ||
292 | if test -d "$(distdir)/$$file"; then \ | ||
293 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||
294 | fi; \ | ||
295 | if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | ||
296 | cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | ||
297 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||
298 | fi; \ | ||
299 | cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | ||
300 | else \ | ||
301 | test -f "$(distdir)/$$file" \ | ||
302 | || cp -p $$d/$$file "$(distdir)/$$file" \ | ||
303 | || exit 1; \ | ||
304 | fi; \ | ||
305 | done | ||
306 | check-am: all-am | ||
307 | check: check-am | ||
308 | all-am: Makefile | ||
309 | installdirs: | ||
310 | install: install-am | ||
311 | install-exec: install-exec-am | ||
312 | install-data: install-data-am | ||
313 | uninstall: uninstall-am | ||
314 | |||
315 | install-am: all-am | ||
316 | @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | ||
317 | |||
318 | installcheck: installcheck-am | ||
319 | install-strip: | ||
320 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||
321 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||
322 | `test -z '$(STRIP)' || \ | ||
323 | echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install | ||
324 | mostlyclean-generic: | ||
325 | |||
326 | clean-generic: | ||
327 | |||
328 | distclean-generic: | ||
329 | -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | ||
330 | -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) | ||
331 | |||
332 | maintainer-clean-generic: | ||
333 | @echo "This command is intended for maintainers to use" | ||
334 | @echo "it deletes files that may require special tools to rebuild." | ||
335 | -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) | ||
336 | @EFL_BUILD_DOC_FALSE@clean-local: | ||
337 | clean: clean-am | ||
338 | |||
339 | clean-am: clean-generic clean-libtool clean-local mostlyclean-am | ||
340 | |||
341 | distclean: distclean-am | ||
342 | -rm -f Makefile | ||
343 | distclean-am: clean-am distclean-generic | ||
344 | |||
345 | dvi: dvi-am | ||
346 | |||
347 | dvi-am: | ||
348 | |||
349 | html: html-am | ||
350 | |||
351 | html-am: | ||
352 | |||
353 | info: info-am | ||
354 | |||
355 | info-am: | ||
356 | |||
357 | install-data-am: | ||
358 | |||
359 | install-dvi: install-dvi-am | ||
360 | |||
361 | install-dvi-am: | ||
362 | |||
363 | install-exec-am: | ||
364 | |||
365 | install-html: install-html-am | ||
366 | |||
367 | install-html-am: | ||
368 | |||
369 | install-info: install-info-am | ||
370 | |||
371 | install-info-am: | ||
372 | |||
373 | install-man: | ||
374 | |||
375 | install-pdf: install-pdf-am | ||
376 | |||
377 | install-pdf-am: | ||
378 | |||
379 | install-ps: install-ps-am | ||
380 | |||
381 | install-ps-am: | ||
382 | |||
383 | installcheck-am: | ||
384 | |||
385 | maintainer-clean: maintainer-clean-am | ||
386 | -rm -f Makefile | ||
387 | maintainer-clean-am: distclean-am maintainer-clean-generic | ||
388 | |||
389 | mostlyclean: mostlyclean-am | ||
390 | |||
391 | mostlyclean-am: mostlyclean-generic mostlyclean-libtool | ||
392 | |||
393 | pdf: pdf-am | ||
394 | |||
395 | pdf-am: | ||
396 | |||
397 | ps: ps-am | ||
398 | |||
399 | ps-am: | ||
400 | |||
401 | uninstall-am: | ||
402 | |||
403 | .MAKE: install-am install-strip | ||
404 | |||
405 | .PHONY: all all-am check check-am clean clean-generic clean-libtool \ | ||
406 | clean-local distclean distclean-generic distclean-libtool \ | ||
407 | distdir dvi dvi-am html html-am info info-am install \ | ||
408 | install-am install-data install-data-am install-dvi \ | ||
409 | install-dvi-am install-exec install-exec-am install-html \ | ||
410 | install-html-am install-info install-info-am install-man \ | ||
411 | install-pdf install-pdf-am install-ps install-ps-am \ | ||
412 | install-strip installcheck installcheck-am installdirs \ | ||
413 | maintainer-clean maintainer-clean-generic mostlyclean \ | ||
414 | mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ | ||
415 | uninstall uninstall-am | ||
416 | |||
417 | |||
418 | .PHONY: doc | ||
419 | |||
420 | @EFL_BUILD_DOC_TRUE@doc-clean: | ||
421 | @EFL_BUILD_DOC_TRUE@ rm -rf html/ latex/ xml/ $(PACKAGE_DOCNAME).tar* | ||
422 | |||
423 | @EFL_BUILD_DOC_TRUE@doc: doc-clean | ||
424 | @EFL_BUILD_DOC_TRUE@ $(efl_doxygen) | ||
425 | @EFL_BUILD_DOC_TRUE@ cp $(srcdir)/img/* html/ | ||
426 | @EFL_BUILD_DOC_TRUE@ rm -rf $(PACKAGE_DOCNAME).tar* | ||
427 | @EFL_BUILD_DOC_TRUE@ mkdir -p $(PACKAGE_DOCNAME)/doc | ||
428 | @EFL_BUILD_DOC_TRUE@ cp -R html/ latex/ $(PACKAGE_DOCNAME)/doc | ||
429 | @EFL_BUILD_DOC_TRUE@ tar cf $(PACKAGE_DOCNAME).tar $(PACKAGE_DOCNAME)/ | ||
430 | @EFL_BUILD_DOC_TRUE@ bzip2 -9 $(PACKAGE_DOCNAME).tar | ||
431 | @EFL_BUILD_DOC_TRUE@ rm -rf $(PACKAGE_DOCNAME)/ | ||
432 | @EFL_BUILD_DOC_TRUE@ mv $(PACKAGE_DOCNAME).tar.bz2 $(top_builddir) | ||
433 | @EFL_BUILD_DOC_TRUE@ @echo "Documentation Package: $(PACKAGE_DOCNAME).tar.bz2" | ||
434 | @EFL_BUILD_DOC_TRUE@ @echo "Documentation HTML: doc/html" | ||
435 | |||
436 | @EFL_BUILD_DOC_TRUE@clean-local: doc-clean | ||
437 | |||
438 | @EFL_BUILD_DOC_FALSE@doc: | ||
439 | @EFL_BUILD_DOC_FALSE@ @echo "Documentation not built. Run ./configure --help" | ||
440 | |||
441 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | ||
442 | # Otherwise a system limit (for SysV at least) may be exceeded. | ||
443 | .NOEXPORT: | ||
diff --git a/libraries/eet/doc/e.css b/libraries/eet/doc/e.css deleted file mode 100644 index 07ebd1e..0000000 --- a/libraries/eet/doc/e.css +++ /dev/null | |||
@@ -1,436 +0,0 @@ | |||
1 | /* | ||
2 | Author: | ||
3 | Andres Blanc <andresblanc@gmail.com> | ||
4 | DaveMDS Andreoli <dave@gurumeditation.it> | ||
5 | |||
6 | Supported Browsers: | ||
7 | ie7, opera9, konqueror4 and firefox3 | ||
8 | |||
9 | Please use a different file for ie6, ie5, etc. hacks. | ||
10 | */ | ||
11 | |||
12 | |||
13 | /* Necessary to place the footer at the bottom of the page */ | ||
14 | html, body { | ||
15 | height: 100%; | ||
16 | margin: 0px; | ||
17 | padding: 0px; | ||
18 | } | ||
19 | |||
20 | #container { | ||
21 | min-height: 100%; | ||
22 | height: auto !important; | ||
23 | height: 100%; | ||
24 | margin: 0 auto -53px; | ||
25 | } | ||
26 | |||
27 | #footer, #push { | ||
28 | height: 53px; | ||
29 | } | ||
30 | |||
31 | |||
32 | * html #container { | ||
33 | height: 100%; | ||
34 | } | ||
35 | |||
36 | /* Prevent floating elements overflowing containers */ | ||
37 | .clear { | ||
38 | clear: both; | ||
39 | width: 0px; | ||
40 | height: 0px; | ||
41 | } | ||
42 | |||
43 | /* Flexible & centered layout from 750 to 960 pixels */ | ||
44 | .layout { | ||
45 | max-width: 960px; | ||
46 | min-width: 760px; | ||
47 | margin-left: auto; | ||
48 | margin-right: auto; | ||
49 | } | ||
50 | |||
51 | body { | ||
52 | /*font-family: Lucida Grande, Helvetica, sans-serif;*/ | ||
53 | font-family: "Bitstream Vera","Vera","Trebuchet MS",Trebuchet,Tahoma,sans-serif | ||
54 | } | ||
55 | |||
56 | /* Prevent design overflowing the viewport in small resolutions */ | ||
57 | #container { | ||
58 | padding-right: 17px; | ||
59 | padding-left: 17px; | ||
60 | background-image: url(head_bg.png); | ||
61 | background-repeat: repeat-x; | ||
62 | } | ||
63 | |||
64 | #header { | ||
65 | width: 100%; | ||
66 | height: 102px; | ||
67 | } | ||
68 | |||
69 | #header h1 { | ||
70 | width: 63px; | ||
71 | height: 63px; | ||
72 | background-image: url(e.png); | ||
73 | background-repeat: no-repeat; | ||
74 | position: absolute; | ||
75 | margin: 0px; | ||
76 | } | ||
77 | |||
78 | #header h1 span { | ||
79 | display: none; | ||
80 | } | ||
81 | |||
82 | #header h2 { | ||
83 | display: none; | ||
84 | } | ||
85 | |||
86 | /* .menu-container is used to set properties common to .menu and .submenu */ | ||
87 | #header .menu-container { | ||
88 | } | ||
89 | |||
90 | #header .menu-container ul { | ||
91 | list-style-type: none; | ||
92 | list-style-position: inside; | ||
93 | margin: 0; | ||
94 | } | ||
95 | |||
96 | #header .menu-container li { | ||
97 | display: block; | ||
98 | float: right; | ||
99 | } | ||
100 | |||
101 | #header .menu { | ||
102 | height: 63px; | ||
103 | display: block; | ||
104 | background-image: url(menu_bg.png); | ||
105 | background-repeat: repeat-x; | ||
106 | } | ||
107 | |||
108 | #header .menu ul { | ||
109 | height: 100%; | ||
110 | display: block; | ||
111 | background-image: url(menu_bg_last.png); | ||
112 | background-repeat: no-repeat; | ||
113 | background-position: top right; | ||
114 | padding-right: 17px; | ||
115 | } | ||
116 | |||
117 | #header .menu li { | ||
118 | height: 100%; | ||
119 | text-align: center; | ||
120 | background-image: url(menu_bg_unsel.png); | ||
121 | background-repeat: no-repeat; | ||
122 | } | ||
123 | |||
124 | #header .menu a { | ||
125 | height: 100%; | ||
126 | display: block; | ||
127 | color: #cdcdcd; | ||
128 | text-decoration: none; | ||
129 | font-size: 10pt; | ||
130 | line-height: 59px; | ||
131 | text-align: center; | ||
132 | padding: 0px 15px 0px 15px; | ||
133 | } | ||
134 | |||
135 | #header .menu li:hover { | ||
136 | background-image: url(menu_bg_hover.png); | ||
137 | background-repeat: no-repeat; | ||
138 | } | ||
139 | |||
140 | #header .menu li:hover a { | ||
141 | color: #FFFFFF; | ||
142 | } | ||
143 | |||
144 | #header .menu li.current { | ||
145 | background-image: url(menu_bg_current.png); | ||
146 | background-repeat: no-repeat; | ||
147 | } | ||
148 | |||
149 | #header .menu li.current a { | ||
150 | color: #646464; | ||
151 | } | ||
152 | |||
153 | |||
154 | /* Hide all the submenus but the current */ | ||
155 | #header .submenu ul { | ||
156 | display: none; | ||
157 | } | ||
158 | |||
159 | #header .submenu .current { | ||
160 | display: block; | ||
161 | } | ||
162 | |||
163 | #header .submenu { | ||
164 | font: bold 10px verdana,'Bitstream Vera Sans',helvetica,arial,sans-serif; | ||
165 | margin-top: 10px; | ||
166 | } | ||
167 | |||
168 | #header .submenu a { | ||
169 | color: #888888; | ||
170 | text-decoration: none; | ||
171 | font-size: 0.9em; | ||
172 | line-height: 15px; | ||
173 | padding:0px 5px 0px 5px; | ||
174 | } | ||
175 | |||
176 | #header .submenu a:hover { | ||
177 | color: #444444; | ||
178 | } | ||
179 | |||
180 | #header .submenu li { | ||
181 | border-left: 1px solid #DDDDDD; | ||
182 | } | ||
183 | |||
184 | #header .submenu li:last-child { | ||
185 | border-left: 0; | ||
186 | } | ||
187 | |||
188 | #header .doxytitle { | ||
189 | position: absolute; | ||
190 | font-size: 1.8em; | ||
191 | font-weight: bold; | ||
192 | color: #444444; | ||
193 | line-height: 35px; | ||
194 | } | ||
195 | |||
196 | #header small { | ||
197 | font-size: 0.4em; | ||
198 | } | ||
199 | |||
200 | #footer { | ||
201 | background-image: url(foot_bg.png); | ||
202 | width: 100%; | ||
203 | } | ||
204 | |||
205 | #footer table { | ||
206 | width: 100%; | ||
207 | text-align: center; | ||
208 | white-space: nowrap; | ||
209 | padding: 5px 30px 5px 30px; | ||
210 | font-size: 0.8em; | ||
211 | font-family: "Bitstream Vera","Vera","Trebuchet MS",Trebuchet,Tahoma,sans-serif; | ||
212 | color: #888888; | ||
213 | } | ||
214 | |||
215 | #footer td.copyright { | ||
216 | width: 100%; | ||
217 | } | ||
218 | |||
219 | /* | ||
220 | Author: | ||
221 | Andres Blanc <andresblanc@gmail.com> | ||
222 | DaveMDS Andreoli <dave@gurumeditation.it> | ||
223 | |||
224 | Supported Browsers: | ||
225 | ie7, opera9, konqueror4 and firefox3 | ||
226 | |||
227 | Please use a different file for ie6, ie5, etc. hacks. | ||
228 | */ | ||
229 | |||
230 | |||
231 | /* Necessary to place the footer at the bottom of the page */ | ||
232 | html, body { | ||
233 | height: 100%; | ||
234 | margin: 0px; | ||
235 | padding: 0px; | ||
236 | } | ||
237 | |||
238 | #container { | ||
239 | min-height: 100%; | ||
240 | height: auto !important; | ||
241 | height: 100%; | ||
242 | margin: 0 auto -53px; | ||
243 | } | ||
244 | |||
245 | #footer, #push { | ||
246 | height: 53px; | ||
247 | } | ||
248 | |||
249 | |||
250 | * html #container { | ||
251 | height: 100%; | ||
252 | } | ||
253 | |||
254 | /* Prevent floating elements overflowing containers */ | ||
255 | .clear { | ||
256 | clear: both; | ||
257 | width: 0px; | ||
258 | height: 0px; | ||
259 | } | ||
260 | |||
261 | /* Flexible & centered layout from 750 to 960 pixels */ | ||
262 | .layout { | ||
263 | max-width: 960px; | ||
264 | min-width: 760px; | ||
265 | margin-left: auto; | ||
266 | margin-right: auto; | ||
267 | } | ||
268 | |||
269 | body { | ||
270 | /*font-family: Lucida Grande, Helvetica, sans-serif;*/ | ||
271 | font-family: "Bitstream Vera","Vera","Trebuchet MS",Trebuchet,Tahoma,sans-serif | ||
272 | } | ||
273 | |||
274 | /* Prevent design overflowing the viewport in small resolutions */ | ||
275 | #container { | ||
276 | padding-right: 17px; | ||
277 | padding-left: 17px; | ||
278 | background-image: url(head_bg.png); | ||
279 | background-repeat: repeat-x; | ||
280 | } | ||
281 | |||
282 | #header { | ||
283 | width: 100%; | ||
284 | height: 102px; | ||
285 | } | ||
286 | |||
287 | #header h1 { | ||
288 | width: 63px; | ||
289 | height: 63px; | ||
290 | background-image: url(e.png); | ||
291 | background-repeat: no-repeat; | ||
292 | position: absolute; | ||
293 | margin: 0px; | ||
294 | } | ||
295 | |||
296 | #header h1 span { | ||
297 | display: none; | ||
298 | } | ||
299 | |||
300 | #header h2 { | ||
301 | display: none; | ||
302 | } | ||
303 | |||
304 | /* .menu-container is used to set properties common to .menu and .submenu */ | ||
305 | #header .menu-container { | ||
306 | } | ||
307 | |||
308 | #header .menu-container ul { | ||
309 | list-style-type: none; | ||
310 | list-style-position: inside; | ||
311 | margin: 0; | ||
312 | } | ||
313 | |||
314 | #header .menu-container li { | ||
315 | display: block; | ||
316 | float: right; | ||
317 | } | ||
318 | |||
319 | #header .menu { | ||
320 | height: 63px; | ||
321 | display: block; | ||
322 | background-image: url(menu_bg.png); | ||
323 | background-repeat: repeat-x; | ||
324 | } | ||
325 | |||
326 | #header .menu ul { | ||
327 | height: 100%; | ||
328 | display: block; | ||
329 | background-image: url(menu_bg_last.png); | ||
330 | background-repeat: no-repeat; | ||
331 | background-position: top right; | ||
332 | padding-right: 17px; | ||
333 | } | ||
334 | |||
335 | #header .menu li { | ||
336 | height: 100%; | ||
337 | text-align: center; | ||
338 | background-image: url(menu_bg_unsel.png); | ||
339 | background-repeat: no-repeat; | ||
340 | } | ||
341 | |||
342 | #header .menu a { | ||
343 | height: 100%; | ||
344 | display: block; | ||
345 | color: #cdcdcd; | ||
346 | text-decoration: none; | ||
347 | font-size: 10pt; | ||
348 | line-height: 59px; | ||
349 | text-align: center; | ||
350 | padding: 0px 15px 0px 15px; | ||
351 | } | ||
352 | |||
353 | #header .menu li:hover { | ||
354 | background-image: url(menu_bg_hover.png); | ||
355 | background-repeat: no-repeat; | ||
356 | } | ||
357 | |||
358 | #header .menu li:hover a { | ||
359 | color: #FFFFFF; | ||
360 | } | ||
361 | |||
362 | #header .menu li.current { | ||
363 | background-image: url(menu_bg_current.png); | ||
364 | background-repeat: no-repeat; | ||
365 | } | ||
366 | |||
367 | #header .menu li.current a { | ||
368 | color: #646464; | ||
369 | } | ||
370 | |||
371 | |||
372 | /* Hide all the submenus but the current */ | ||
373 | #header .submenu ul { | ||
374 | display: none; | ||
375 | } | ||
376 | |||
377 | #header .submenu .current { | ||
378 | display: block; | ||
379 | } | ||
380 | |||
381 | #header .submenu { | ||
382 | font: bold 10px verdana,'Bitstream Vera Sans',helvetica,arial,sans-serif; | ||
383 | margin-top: 10px; | ||
384 | } | ||
385 | |||
386 | #header .submenu a { | ||
387 | color: #888888; | ||
388 | text-decoration: none; | ||
389 | font-size: 0.9em; | ||
390 | line-height: 15px; | ||
391 | padding:0px 5px 0px 5px; | ||
392 | } | ||
393 | |||
394 | #header .submenu a:hover { | ||
395 | color: #444444; | ||
396 | } | ||
397 | |||
398 | #header .submenu li { | ||
399 | border-left: 1px solid #DDDDDD; | ||
400 | } | ||
401 | |||
402 | #header .submenu li:last-child { | ||
403 | border-left: 0; | ||
404 | } | ||
405 | |||
406 | #header .doxytitle { | ||
407 | position: absolute; | ||
408 | font-size: 1.8em; | ||
409 | font-weight: bold; | ||
410 | color: #444444; | ||
411 | line-height: 35px; | ||
412 | } | ||
413 | |||
414 | #header small { | ||
415 | font-size: 0.4em; | ||
416 | } | ||
417 | |||
418 | #footer { | ||
419 | background-image: url(foot_bg.png); | ||
420 | width: 100%; | ||
421 | } | ||
422 | |||
423 | #footer table { | ||
424 | width: 100%; | ||
425 | text-align: center; | ||
426 | white-space: nowrap; | ||
427 | padding: 5px 30px 5px 30px; | ||
428 | font-size: 0.8em; | ||
429 | font-family: "Bitstream Vera","Vera","Trebuchet MS",Trebuchet,Tahoma,sans-serif; | ||
430 | color: #888888; | ||
431 | } | ||
432 | |||
433 | #footer td.copyright { | ||
434 | width: 100%; | ||
435 | } | ||
436 | |||
diff --git a/libraries/eet/doc/eet.dox.in b/libraries/eet/doc/eet.dox.in deleted file mode 100644 index e69de29..0000000 --- a/libraries/eet/doc/eet.dox.in +++ /dev/null | |||
diff --git a/libraries/eet/doc/foot.html b/libraries/eet/doc/foot.html deleted file mode 100644 index 3a96978..0000000 --- a/libraries/eet/doc/foot.html +++ /dev/null | |||
@@ -1,20 +0,0 @@ | |||
1 | |||
2 | <div id="push"></div> | ||
3 | </div> <!-- #content --> | ||
4 | </div> <!-- .layout --> | ||
5 | |||
6 | </div> <!-- #container --> | ||
7 | |||
8 | |||
9 | <div id="footer"> | ||
10 | <table><tr> | ||
11 | <td class="poweredby"><img src="doxygen.png"></td> | ||
12 | <td>Samsung Electronics is supporting the EFL Documentation Project</td> | ||
13 | <td class="copyright">Copyright ©$year Enlightenment</td> | ||
14 | <td class="generated">Docs generated $datetime</td> | ||
15 | </tr></table> | ||
16 | </div> | ||
17 | |||
18 | |||
19 | </body> | ||
20 | </html> | ||
diff --git a/libraries/eet/doc/head.html b/libraries/eet/doc/head.html deleted file mode 100644 index 519631b..0000000 --- a/libraries/eet/doc/head.html +++ /dev/null | |||
@@ -1,65 +0,0 @@ | |||
1 | <html> | ||
2 | <head> | ||
3 | <title>$title</title> | ||
4 | <meta http-equiv="content-type" content="text/html;charset=UTF-8"> | ||
5 | <meta name="author" content="Andres Blanc" > | ||
6 | |||
7 | <link rel="icon" href="img/favicon.png" type="image/x-icon"> | ||
8 | <link rel="shortcut icon" href="img/favicon.png" type="image/x-icon"> | ||
9 | <link rel="icon" href="img/favicon.png" type="image/ico"> | ||
10 | <link rel="shortcut icon" href="img/favicon.png" type="image/ico"> | ||
11 | |||
12 | <link rel="stylesheet" type="text/css" media="screen" href="e.css"> | ||
13 | <link rel="stylesheet" type="text/css" media="screen" href="edoxy.css"> | ||
14 | </head> | ||
15 | |||
16 | <body> | ||
17 | |||
18 | <div id="container"> | ||
19 | |||
20 | <div id="header"> | ||
21 | <div class="layout"> | ||
22 | |||
23 | <h1><span>Enlightenment</span></h1> | ||
24 | <h2><span>Beauty at your fingertips</span></h2> | ||
25 | |||
26 | <div class="menu-container"> | ||
27 | <div class="menu"> | ||
28 | <ul> | ||
29 | <li class="current"><a href="http://web.enlightenment.org/p.php?p=docs">Docs</a></li> | ||
30 | <li><a href="http://trac.enlightenment.org/e">Tracker</a></li> | ||
31 | <li><a href="http://www.enlightenment.org/p.php?p=contact">Contact</a></li> | ||
32 | <li><a href="http://www.enlightenment.org/p.php?p=contribute">Contribute</a></li> | ||
33 | <li><a href="http://www.enlightenment.org/p.php?p=support">Support</a></li> | ||
34 | <li><a href="http://www.enlightenment.org/p.php?p=download">Download</a></li> | ||
35 | <li><a href="http://www.enlightenment.org/p.php?p=about">About</a></li> | ||
36 | <li><a href="http://www.enlightenment.org/p.php?p=news">News</a></li> | ||
37 | <li><a href="http://www.enlightenment.org/">Home</a></li> | ||
38 | </ul> | ||
39 | </div> | ||
40 | </div> | ||
41 | |||
42 | <div class="doxytitle"> | ||
43 | $projectname Documentation <small>at $date</small> | ||
44 | </div> | ||
45 | |||
46 | <div class="menu-container"> | ||
47 | <div class="submenu"> | ||
48 | <ul class="current"> | ||
49 | <li><a href="Examples.html">Examples</a></li> | ||
50 | <li><a href="files.html">Files</a></li> | ||
51 | <li><a href="modules.html">Modules</a></li> | ||
52 | <li><a href="globals.html">Globals</a></li> | ||
53 | <li><a href="pages.html">Related Pages</a></li> | ||
54 | <li class="current"><a href="index.html">Main Page</a></li> | ||
55 | </ul> | ||
56 | </div> | ||
57 | </div> | ||
58 | |||
59 | |||
60 | <div class="clear"></div> | ||
61 | </div> | ||
62 | </div> | ||
63 | |||
64 | <div id="content"> | ||
65 | <div class="layout"> | ||
diff --git a/libraries/eet/doc/img/e.png b/libraries/eet/doc/img/e.png deleted file mode 100755 index b3884a5..0000000 --- a/libraries/eet/doc/img/e.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/libraries/eet/doc/img/e_big.png b/libraries/eet/doc/img/e_big.png deleted file mode 100755 index d42aeb4..0000000 --- a/libraries/eet/doc/img/e_big.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/libraries/eet/doc/img/edoxy.css b/libraries/eet/doc/img/edoxy.css deleted file mode 100755 index 616a0c5..0000000 --- a/libraries/eet/doc/img/edoxy.css +++ /dev/null | |||
@@ -1,966 +0,0 @@ | |||
1 | /* | ||
2 | * This file contain a custom doxygen style to match e.org graphics | ||
3 | */ | ||
4 | |||
5 | |||
6 | |||
7 | /* BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { | ||
8 | font-family: Geneva, Arial, Helvetica, sans-serif; | ||
9 | }*/ | ||
10 | BODY, TD { | ||
11 | font-size: 12px; | ||
12 | } | ||
13 | H1 { | ||
14 | text-align: center; | ||
15 | font-size: 160%; | ||
16 | } | ||
17 | H2 { | ||
18 | font-size: 120%; | ||
19 | } | ||
20 | H3 { | ||
21 | font-size: 100%; | ||
22 | } | ||
23 | CAPTION { | ||
24 | font-weight: bold | ||
25 | } | ||
26 | DIV.qindex { | ||
27 | width: 100%; | ||
28 | background-color: #e8eef2; | ||
29 | border: 1px solid #84b0c7; | ||
30 | text-align: center; | ||
31 | margin: 2px; | ||
32 | padding: 2px; | ||
33 | line-height: 140%; | ||
34 | } | ||
35 | DIV.navpath { | ||
36 | width: 100%; | ||
37 | background-color: #e8eef2; | ||
38 | border: 1px solid #84b0c7; | ||
39 | text-align: center; | ||
40 | margin: 2px; | ||
41 | padding: 2px; | ||
42 | line-height: 140%; | ||
43 | } | ||
44 | DIV.navtab { | ||
45 | background-color: #e8eef2; | ||
46 | border: 1px solid #84b0c7; | ||
47 | text-align: center; | ||
48 | margin: 2px; | ||
49 | margin-right: 15px; | ||
50 | padding: 2px; | ||
51 | } | ||
52 | TD.navtab { | ||
53 | font-size: 70%; | ||
54 | } | ||
55 | A.qindex { | ||
56 | text-decoration: none; | ||
57 | font-weight: bold; | ||
58 | color: #1A419D; | ||
59 | } | ||
60 | A.qindex:visited { | ||
61 | text-decoration: none; | ||
62 | font-weight: bold; | ||
63 | color: #1A419D | ||
64 | } | ||
65 | A.qindex:hover { | ||
66 | text-decoration: none; | ||
67 | background-color: #ddddff; | ||
68 | } | ||
69 | A.qindexHL { | ||
70 | text-decoration: none; | ||
71 | font-weight: bold; | ||
72 | background-color: #6666cc; | ||
73 | color: #ffffff; | ||
74 | border: 1px double #9295C2; | ||
75 | } | ||
76 | A.qindexHL:hover { | ||
77 | text-decoration: none; | ||
78 | background-color: #6666cc; | ||
79 | color: #ffffff; | ||
80 | } | ||
81 | A.qindexHL:visited { | ||
82 | text-decoration: none; | ||
83 | background-color: #6666cc; | ||
84 | color: #ffffff | ||
85 | } | ||
86 | A.el { | ||
87 | text-decoration: none; | ||
88 | font-weight: bold | ||
89 | } | ||
90 | A.elRef { | ||
91 | font-weight: bold | ||
92 | } | ||
93 | A.code:link { | ||
94 | text-decoration: none; | ||
95 | font-weight: normal; | ||
96 | color: #0000FF | ||
97 | } | ||
98 | A.code:visited { | ||
99 | text-decoration: none; | ||
100 | font-weight: normal; | ||
101 | color: #0000FF | ||
102 | } | ||
103 | A.codeRef:link { | ||
104 | font-weight: normal; | ||
105 | color: #0000FF | ||
106 | } | ||
107 | A.codeRef:visited { | ||
108 | font-weight: normal; | ||
109 | color: #0000FF | ||
110 | } | ||
111 | A:hover, A:visited:hover { | ||
112 | text-decoration: none; | ||
113 | /* background-color: #f2f2ff; */ | ||
114 | color: #000055; | ||
115 | } | ||
116 | A.anchor { | ||
117 | color: #000; | ||
118 | } | ||
119 | DL.el { | ||
120 | margin-left: -1cm | ||
121 | } | ||
122 | .fragment { | ||
123 | font-family: monospace, fixed; | ||
124 | font-size: 95%; | ||
125 | } | ||
126 | PRE.fragment { | ||
127 | border: 1px solid #CCCCCC; | ||
128 | background-color: #f5f5f5; | ||
129 | margin-top: 4px; | ||
130 | margin-bottom: 4px; | ||
131 | margin-left: 2px; | ||
132 | margin-right: 8px; | ||
133 | padding-left: 6px; | ||
134 | padding-right: 6px; | ||
135 | padding-top: 4px; | ||
136 | padding-bottom: 4px; | ||
137 | } | ||
138 | DIV.ah { | ||
139 | background-color: black; | ||
140 | font-weight: bold; | ||
141 | color: #ffffff; | ||
142 | margin-bottom: 3px; | ||
143 | margin-top: 3px | ||
144 | } | ||
145 | |||
146 | DIV.groupHeader { | ||
147 | margin-left: 16px; | ||
148 | margin-top: 12px; | ||
149 | margin-bottom: 6px; | ||
150 | font-weight: bold; | ||
151 | } | ||
152 | DIV.groupText { | ||
153 | margin-left: 16px; | ||
154 | font-style: italic; | ||
155 | font-size: 90% | ||
156 | } | ||
157 | /*BODY { | ||
158 | background: white; | ||
159 | color: black; | ||
160 | margin-right: 20px; | ||
161 | margin-left: 20px; | ||
162 | }*/ | ||
163 | TD.indexkey { | ||
164 | background-color: #e8eef2; | ||
165 | font-weight: bold; | ||
166 | padding-right : 10px; | ||
167 | padding-top : 2px; | ||
168 | padding-left : 10px; | ||
169 | padding-bottom : 2px; | ||
170 | margin-left : 0px; | ||
171 | margin-right : 0px; | ||
172 | margin-top : 2px; | ||
173 | margin-bottom : 2px; | ||
174 | border: 1px solid #CCCCCC; | ||
175 | } | ||
176 | TD.indexvalue { | ||
177 | background-color: #e8eef2; | ||
178 | font-style: italic; | ||
179 | padding-right : 10px; | ||
180 | padding-top : 2px; | ||
181 | padding-left : 10px; | ||
182 | padding-bottom : 2px; | ||
183 | margin-left : 0px; | ||
184 | margin-right : 0px; | ||
185 | margin-top : 2px; | ||
186 | margin-bottom : 2px; | ||
187 | border: 1px solid #CCCCCC; | ||
188 | } | ||
189 | TR.memlist { | ||
190 | background-color: #f0f0f0; | ||
191 | } | ||
192 | P.formulaDsp { | ||
193 | text-align: center; | ||
194 | } | ||
195 | IMG.formulaDsp { | ||
196 | } | ||
197 | IMG.formulaInl { | ||
198 | vertical-align: middle; | ||
199 | } | ||
200 | SPAN.keyword { color: #008000 } | ||
201 | SPAN.keywordtype { color: #604020 } | ||
202 | SPAN.keywordflow { color: #e08000 } | ||
203 | SPAN.comment { color: #800000 } | ||
204 | SPAN.preprocessor { color: #806020 } | ||
205 | SPAN.stringliteral { color: #002080 } | ||
206 | SPAN.charliteral { color: #008080 } | ||
207 | SPAN.vhdldigit { color: #ff00ff } | ||
208 | SPAN.vhdlchar { color: #000000 } | ||
209 | SPAN.vhdlkeyword { color: #700070 } | ||
210 | SPAN.vhdllogic { color: #ff0000 } | ||
211 | |||
212 | .mdescLeft { | ||
213 | padding: 0px 8px 4px 8px; | ||
214 | font-size: 80%; | ||
215 | font-style: italic; | ||
216 | background-color: #FAFAFA; | ||
217 | border-top: 1px none #E0E0E0; | ||
218 | border-right: 1px none #E0E0E0; | ||
219 | border-bottom: 1px none #E0E0E0; | ||
220 | border-left: 1px none #E0E0E0; | ||
221 | margin: 0px; | ||
222 | } | ||
223 | .mdescRight { | ||
224 | padding: 0px 8px 4px 8px; | ||
225 | font-size: 80%; | ||
226 | font-style: italic; | ||
227 | background-color: #FAFAFA; | ||
228 | border-top: 1px none #E0E0E0; | ||
229 | border-right: 1px none #E0E0E0; | ||
230 | border-bottom: 1px none #E0E0E0; | ||
231 | border-left: 1px none #E0E0E0; | ||
232 | margin: 0px; | ||
233 | } | ||
234 | .memItemLeft { | ||
235 | padding: 1px 0px 0px 8px; | ||
236 | margin: 4px; | ||
237 | border-top-width: 1px; | ||
238 | border-right-width: 1px; | ||
239 | border-bottom-width: 1px; | ||
240 | border-left-width: 1px; | ||
241 | border-top-color: #E0E0E0; | ||
242 | border-right-color: #E0E0E0; | ||
243 | border-bottom-color: #E0E0E0; | ||
244 | border-left-color: #E0E0E0; | ||
245 | border-top-style: solid; | ||
246 | border-right-style: none; | ||
247 | border-bottom-style: none; | ||
248 | border-left-style: none; | ||
249 | background-color: #FAFAFA; | ||
250 | font-size: 80%; | ||
251 | } | ||
252 | .memItemRight { | ||
253 | padding: 1px 8px 0px 8px; | ||
254 | margin: 4px; | ||
255 | border-top-width: 1px; | ||
256 | border-right-width: 1px; | ||
257 | border-bottom-width: 1px; | ||
258 | border-left-width: 1px; | ||
259 | border-top-color: #E0E0E0; | ||
260 | border-right-color: #E0E0E0; | ||
261 | border-bottom-color: #E0E0E0; | ||
262 | border-left-color: #E0E0E0; | ||
263 | border-top-style: solid; | ||
264 | border-right-style: none; | ||
265 | border-bottom-style: none; | ||
266 | border-left-style: none; | ||
267 | background-color: #FAFAFA; | ||
268 | font-size: 80%; | ||
269 | } | ||
270 | .memTemplItemLeft { | ||
271 | padding: 1px 0px 0px 8px; | ||
272 | margin: 4px; | ||
273 | border-top-width: 1px; | ||
274 | border-right-width: 1px; | ||
275 | border-bottom-width: 1px; | ||
276 | border-left-width: 1px; | ||
277 | border-top-color: #E0E0E0; | ||
278 | border-right-color: #E0E0E0; | ||
279 | border-bottom-color: #E0E0E0; | ||
280 | border-left-color: #E0E0E0; | ||
281 | border-top-style: none; | ||
282 | border-right-style: none; | ||
283 | border-bottom-style: none; | ||
284 | border-left-style: none; | ||
285 | background-color: #FAFAFA; | ||
286 | font-size: 80%; | ||
287 | } | ||
288 | .memTemplItemRight { | ||
289 | padding: 1px 8px 0px 8px; | ||
290 | margin: 4px; | ||
291 | border-top-width: 1px; | ||
292 | border-right-width: 1px; | ||
293 | border-bottom-width: 1px; | ||
294 | border-left-width: 1px; | ||
295 | border-top-color: #E0E0E0; | ||
296 | border-right-color: #E0E0E0; | ||
297 | border-bottom-color: #E0E0E0; | ||
298 | border-left-color: #E0E0E0; | ||
299 | border-top-style: none; | ||
300 | border-right-style: none; | ||
301 | border-bottom-style: none; | ||
302 | border-left-style: none; | ||
303 | background-color: #FAFAFA; | ||
304 | font-size: 80%; | ||
305 | } | ||
306 | .memTemplParams { | ||
307 | padding: 1px 0px 0px 8px; | ||
308 | margin: 4px; | ||
309 | border-top-width: 1px; | ||
310 | border-right-width: 1px; | ||
311 | border-bottom-width: 1px; | ||
312 | border-left-width: 1px; | ||
313 | border-top-color: #E0E0E0; | ||
314 | border-right-color: #E0E0E0; | ||
315 | border-bottom-color: #E0E0E0; | ||
316 | border-left-color: #E0E0E0; | ||
317 | border-top-style: solid; | ||
318 | border-right-style: none; | ||
319 | border-bottom-style: none; | ||
320 | border-left-style: none; | ||
321 | color: #606060; | ||
322 | background-color: #FAFAFA; | ||
323 | font-size: 80%; | ||
324 | } | ||
325 | .search { | ||
326 | color: #003399; | ||
327 | font-weight: bold; | ||
328 | } | ||
329 | FORM.search { | ||
330 | margin-bottom: 0px; | ||
331 | margin-top: 0px; | ||
332 | } | ||
333 | INPUT.search { | ||
334 | font-size: 75%; | ||
335 | color: #000080; | ||
336 | font-weight: normal; | ||
337 | background-color: #e8eef2; | ||
338 | } | ||
339 | TD.tiny { | ||
340 | font-size: 75%; | ||
341 | } | ||
342 | a { | ||
343 | color: #1A41A8; | ||
344 | } | ||
345 | a:visited { | ||
346 | color: #2A3798; | ||
347 | } | ||
348 | .dirtab { | ||
349 | padding: 4px; | ||
350 | border-collapse: collapse; | ||
351 | border: 1px solid #84b0c7; | ||
352 | } | ||
353 | TH.dirtab { | ||
354 | background: #e8eef2; | ||
355 | font-weight: bold; | ||
356 | } | ||
357 | HR { | ||
358 | height: 1px; | ||
359 | border: none; | ||
360 | border-top: 1px solid black; | ||
361 | } | ||
362 | |||
363 | /* Style for detailed member documentation */ | ||
364 | .memtemplate { | ||
365 | font-size: 80%; | ||
366 | color: #606060; | ||
367 | font-weight: normal; | ||
368 | margin-left: 3px; | ||
369 | } | ||
370 | .memnav { | ||
371 | background-color: #e8eef2; | ||
372 | border: 1px solid #84b0c7; | ||
373 | text-align: center; | ||
374 | margin: 2px; | ||
375 | margin-right: 15px; | ||
376 | padding: 2px; | ||
377 | } | ||
378 | .memitem { | ||
379 | padding: 4px; | ||
380 | background-color: #eef3f5; | ||
381 | border-width: 1px; | ||
382 | border-style: solid; | ||
383 | border-color: #dedeee; | ||
384 | -moz-border-radius: 8px 8px 8px 8px; | ||
385 | } | ||
386 | .memname { | ||
387 | white-space: nowrap; | ||
388 | font-weight: bold; | ||
389 | } | ||
390 | .memdoc{ | ||
391 | padding-left: 10px; | ||
392 | } | ||
393 | .memproto { | ||
394 | background-color: #d5e1e8; | ||
395 | width: 100%; | ||
396 | border-width: 1px; | ||
397 | border-style: solid; | ||
398 | border-color: #84b0c7; | ||
399 | font-weight: bold; | ||
400 | -moz-border-radius: 8px 8px 8px 8px; | ||
401 | } | ||
402 | .paramkey { | ||
403 | text-align: right; | ||
404 | } | ||
405 | .paramtype { | ||
406 | white-space: nowrap; | ||
407 | } | ||
408 | .paramname { | ||
409 | color: #602020; | ||
410 | font-style: italic; | ||
411 | white-space: nowrap; | ||
412 | } | ||
413 | /* End Styling for detailed member documentation */ | ||
414 | |||
415 | /* for the tree view */ | ||
416 | .ftvtree { | ||
417 | font-family: sans-serif; | ||
418 | margin:0.5em; | ||
419 | } | ||
420 | /* these are for tree view when used as main index */ | ||
421 | .directory { | ||
422 | font-size: 9pt; | ||
423 | font-weight: bold; | ||
424 | } | ||
425 | .directory h3 { | ||
426 | margin: 0px; | ||
427 | margin-top: 1em; | ||
428 | font-size: 11pt; | ||
429 | } | ||
430 | |||
431 | /* The following two styles can be used to replace the root node title */ | ||
432 | /* with an image of your choice. Simply uncomment the next two styles, */ | ||
433 | /* specify the name of your image and be sure to set 'height' to the */ | ||
434 | /* proper pixel height of your image. */ | ||
435 | |||
436 | /* .directory h3.swap { */ | ||
437 | /* height: 61px; */ | ||
438 | /* background-repeat: no-repeat; */ | ||
439 | /* background-image: url("yourimage.gif"); */ | ||
440 | /* } */ | ||
441 | /* .directory h3.swap span { */ | ||
442 | /* display: none; */ | ||
443 | /* } */ | ||
444 | |||
445 | .directory > h3 { | ||
446 | margin-top: 0; | ||
447 | } | ||
448 | .directory p { | ||
449 | margin: 0px; | ||
450 | white-space: nowrap; | ||
451 | } | ||
452 | .directory div { | ||
453 | display: none; | ||
454 | margin: 0px; | ||
455 | } | ||
456 | .directory img { | ||
457 | vertical-align: -30%; | ||
458 | } | ||
459 | /* these are for tree view when not used as main index */ | ||
460 | .directory-alt { | ||
461 | font-size: 100%; | ||
462 | font-weight: bold; | ||
463 | } | ||
464 | .directory-alt h3 { | ||
465 | margin: 0px; | ||
466 | margin-top: 1em; | ||
467 | font-size: 11pt; | ||
468 | } | ||
469 | .directory-alt > h3 { | ||
470 | margin-top: 0; | ||
471 | } | ||
472 | .directory-alt p { | ||
473 | margin: 0px; | ||
474 | white-space: nowrap; | ||
475 | } | ||
476 | .directory-alt div { | ||
477 | display: none; | ||
478 | margin: 0px; | ||
479 | } | ||
480 | .directory-alt img { | ||
481 | vertical-align: -30%; | ||
482 | } | ||
483 | |||
484 | /* | ||
485 | * This file contain a custom doxygen style to match e.org graphics | ||
486 | */ | ||
487 | |||
488 | |||
489 | |||
490 | /* BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { | ||
491 | font-family: Geneva, Arial, Helvetica, sans-serif; | ||
492 | }*/ | ||
493 | BODY, TD { | ||
494 | font-size: 12px; | ||
495 | } | ||
496 | H1 { | ||
497 | text-align: center; | ||
498 | font-size: 160%; | ||
499 | } | ||
500 | H2 { | ||
501 | font-size: 120%; | ||
502 | } | ||
503 | H3 { | ||
504 | font-size: 100%; | ||
505 | } | ||
506 | CAPTION { | ||
507 | font-weight: bold | ||
508 | } | ||
509 | DIV.qindex { | ||
510 | width: 100%; | ||
511 | background-color: #e8eef2; | ||
512 | border: 1px solid #84b0c7; | ||
513 | text-align: center; | ||
514 | margin: 2px; | ||
515 | padding: 2px; | ||
516 | line-height: 140%; | ||
517 | } | ||
518 | DIV.navpath { | ||
519 | width: 100%; | ||
520 | background-color: #e8eef2; | ||
521 | border: 1px solid #84b0c7; | ||
522 | text-align: center; | ||
523 | margin: 2px; | ||
524 | padding: 2px; | ||
525 | line-height: 140%; | ||
526 | } | ||
527 | DIV.navtab { | ||
528 | background-color: #e8eef2; | ||
529 | border: 1px solid #84b0c7; | ||
530 | text-align: center; | ||
531 | margin: 2px; | ||
532 | margin-right: 15px; | ||
533 | padding: 2px; | ||
534 | } | ||
535 | TD.navtab { | ||
536 | font-size: 70%; | ||
537 | } | ||
538 | A.qindex { | ||
539 | text-decoration: none; | ||
540 | font-weight: bold; | ||
541 | color: #1A419D; | ||
542 | } | ||
543 | A.qindex:visited { | ||
544 | text-decoration: none; | ||
545 | font-weight: bold; | ||
546 | color: #1A419D | ||
547 | } | ||
548 | A.qindex:hover { | ||
549 | text-decoration: none; | ||
550 | background-color: #ddddff; | ||
551 | } | ||
552 | A.qindexHL { | ||
553 | text-decoration: none; | ||
554 | font-weight: bold; | ||
555 | background-color: #6666cc; | ||
556 | color: #ffffff; | ||
557 | border: 1px double #9295C2; | ||
558 | } | ||
559 | A.qindexHL:hover { | ||
560 | text-decoration: none; | ||
561 | background-color: #6666cc; | ||
562 | color: #ffffff; | ||
563 | } | ||
564 | A.qindexHL:visited { | ||
565 | text-decoration: none; | ||
566 | background-color: #6666cc; | ||
567 | color: #ffffff | ||
568 | } | ||
569 | A.el { | ||
570 | text-decoration: none; | ||
571 | font-weight: bold | ||
572 | } | ||
573 | A.elRef { | ||
574 | font-weight: bold | ||
575 | } | ||
576 | A.code:link { | ||
577 | text-decoration: none; | ||
578 | font-weight: normal; | ||
579 | color: #0000FF | ||
580 | } | ||
581 | A.code:visited { | ||
582 | text-decoration: none; | ||
583 | font-weight: normal; | ||
584 | color: #0000FF | ||
585 | } | ||
586 | A.codeRef:link { | ||
587 | font-weight: normal; | ||
588 | color: #0000FF | ||
589 | } | ||
590 | A.codeRef:visited { | ||
591 | font-weight: normal; | ||
592 | color: #0000FF | ||
593 | } | ||
594 | A:hover, A:visited:hover { | ||
595 | text-decoration: none; | ||
596 | /* background-color: #f2f2ff; */ | ||
597 | color: #000055; | ||
598 | } | ||
599 | A.anchor { | ||
600 | color: #000; | ||
601 | } | ||
602 | DL.el { | ||
603 | margin-left: -1cm | ||
604 | } | ||
605 | .fragment { | ||
606 | font-family: monospace, fixed; | ||
607 | font-size: 95%; | ||
608 | } | ||
609 | PRE.fragment { | ||
610 | border: 1px solid #CCCCCC; | ||
611 | background-color: #f5f5f5; | ||
612 | margin-top: 4px; | ||
613 | margin-bottom: 4px; | ||
614 | margin-left: 2px; | ||
615 | margin-right: 8px; | ||
616 | padding-left: 6px; | ||
617 | padding-right: 6px; | ||
618 | padding-top: 4px; | ||
619 | padding-bottom: 4px; | ||
620 | } | ||
621 | DIV.ah { | ||
622 | background-color: black; | ||
623 | font-weight: bold; | ||
624 | color: #ffffff; | ||
625 | margin-bottom: 3px; | ||
626 | margin-top: 3px | ||
627 | } | ||
628 | |||
629 | DIV.groupHeader { | ||
630 | margin-left: 16px; | ||
631 | margin-top: 12px; | ||
632 | margin-bottom: 6px; | ||
633 | font-weight: bold; | ||
634 | } | ||
635 | DIV.groupText { | ||
636 | margin-left: 16px; | ||
637 | font-style: italic; | ||
638 | font-size: 90% | ||
639 | } | ||
640 | /*BODY { | ||
641 | background: white; | ||
642 | color: black; | ||
643 | margin-right: 20px; | ||
644 | margin-left: 20px; | ||
645 | }*/ | ||
646 | TD.indexkey { | ||
647 | background-color: #e8eef2; | ||
648 | font-weight: bold; | ||
649 | padding-right : 10px; | ||
650 | padding-top : 2px; | ||
651 | padding-left : 10px; | ||
652 | padding-bottom : 2px; | ||
653 | margin-left : 0px; | ||
654 | margin-right : 0px; | ||
655 | margin-top : 2px; | ||
656 | margin-bottom : 2px; | ||
657 | border: 1px solid #CCCCCC; | ||
658 | } | ||
659 | TD.indexvalue { | ||
660 | background-color: #e8eef2; | ||
661 | font-style: italic; | ||
662 | padding-right : 10px; | ||
663 | padding-top : 2px; | ||
664 | padding-left : 10px; | ||
665 | padding-bottom : 2px; | ||
666 | margin-left : 0px; | ||
667 | margin-right : 0px; | ||
668 | margin-top : 2px; | ||
669 | margin-bottom : 2px; | ||
670 | border: 1px solid #CCCCCC; | ||
671 | } | ||
672 | TR.memlist { | ||
673 | background-color: #f0f0f0; | ||
674 | } | ||
675 | P.formulaDsp { | ||
676 | text-align: center; | ||
677 | } | ||
678 | IMG.formulaDsp { | ||
679 | } | ||
680 | IMG.formulaInl { | ||
681 | vertical-align: middle; | ||
682 | } | ||
683 | SPAN.keyword { color: #008000 } | ||
684 | SPAN.keywordtype { color: #604020 } | ||
685 | SPAN.keywordflow { color: #e08000 } | ||
686 | SPAN.comment { color: #800000 } | ||
687 | SPAN.preprocessor { color: #806020 } | ||
688 | SPAN.stringliteral { color: #002080 } | ||
689 | SPAN.charliteral { color: #008080 } | ||
690 | SPAN.vhdldigit { color: #ff00ff } | ||
691 | SPAN.vhdlchar { color: #000000 } | ||
692 | SPAN.vhdlkeyword { color: #700070 } | ||
693 | SPAN.vhdllogic { color: #ff0000 } | ||
694 | |||
695 | .mdescLeft { | ||
696 | padding: 0px 8px 4px 8px; | ||
697 | font-size: 80%; | ||
698 | font-style: italic; | ||
699 | background-color: #FAFAFA; | ||
700 | border-top: 1px none #E0E0E0; | ||
701 | border-right: 1px none #E0E0E0; | ||
702 | border-bottom: 1px none #E0E0E0; | ||
703 | border-left: 1px none #E0E0E0; | ||
704 | margin: 0px; | ||
705 | } | ||
706 | .mdescRight { | ||
707 | padding: 0px 8px 4px 8px; | ||
708 | font-size: 80%; | ||
709 | font-style: italic; | ||
710 | background-color: #FAFAFA; | ||
711 | border-top: 1px none #E0E0E0; | ||
712 | border-right: 1px none #E0E0E0; | ||
713 | border-bottom: 1px none #E0E0E0; | ||
714 | border-left: 1px none #E0E0E0; | ||
715 | margin: 0px; | ||
716 | } | ||
717 | .memItemLeft { | ||
718 | padding: 1px 0px 0px 8px; | ||
719 | margin: 4px; | ||
720 | border-top-width: 1px; | ||
721 | border-right-width: 1px; | ||
722 | border-bottom-width: 1px; | ||
723 | border-left-width: 1px; | ||
724 | border-top-color: #E0E0E0; | ||
725 | border-right-color: #E0E0E0; | ||
726 | border-bottom-color: #E0E0E0; | ||
727 | border-left-color: #E0E0E0; | ||
728 | border-top-style: solid; | ||
729 | border-right-style: none; | ||
730 | border-bottom-style: none; | ||
731 | border-left-style: none; | ||
732 | background-color: #FAFAFA; | ||
733 | font-size: 80%; | ||
734 | } | ||
735 | .memItemRight { | ||
736 | padding: 1px 8px 0px 8px; | ||
737 | margin: 4px; | ||
738 | border-top-width: 1px; | ||
739 | border-right-width: 1px; | ||
740 | border-bottom-width: 1px; | ||
741 | border-left-width: 1px; | ||
742 | border-top-color: #E0E0E0; | ||
743 | border-right-color: #E0E0E0; | ||
744 | border-bottom-color: #E0E0E0; | ||
745 | border-left-color: #E0E0E0; | ||
746 | border-top-style: solid; | ||
747 | border-right-style: none; | ||
748 | border-bottom-style: none; | ||
749 | border-left-style: none; | ||
750 | background-color: #FAFAFA; | ||
751 | font-size: 80%; | ||
752 | } | ||
753 | .memTemplItemLeft { | ||
754 | padding: 1px 0px 0px 8px; | ||
755 | margin: 4px; | ||
756 | border-top-width: 1px; | ||
757 | border-right-width: 1px; | ||
758 | border-bottom-width: 1px; | ||
759 | border-left-width: 1px; | ||
760 | border-top-color: #E0E0E0; | ||
761 | border-right-color: #E0E0E0; | ||
762 | border-bottom-color: #E0E0E0; | ||
763 | border-left-color: #E0E0E0; | ||
764 | border-top-style: none; | ||
765 | border-right-style: none; | ||
766 | border-bottom-style: none; | ||
767 | border-left-style: none; | ||
768 | background-color: #FAFAFA; | ||
769 | font-size: 80%; | ||
770 | } | ||
771 | .memTemplItemRight { | ||
772 | padding: 1px 8px 0px 8px; | ||
773 | margin: 4px; | ||
774 | border-top-width: 1px; | ||
775 | border-right-width: 1px; | ||
776 | border-bottom-width: 1px; | ||
777 | border-left-width: 1px; | ||
778 | border-top-color: #E0E0E0; | ||
779 | border-right-color: #E0E0E0; | ||
780 | border-bottom-color: #E0E0E0; | ||
781 | border-left-color: #E0E0E0; | ||
782 | border-top-style: none; | ||
783 | border-right-style: none; | ||
784 | border-bottom-style: none; | ||
785 | border-left-style: none; | ||
786 | background-color: #FAFAFA; | ||
787 | font-size: 80%; | ||
788 | } | ||
789 | .memTemplParams { | ||
790 | padding: 1px 0px 0px 8px; | ||
791 | margin: 4px; | ||
792 | border-top-width: 1px; | ||
793 | border-right-width: 1px; | ||
794 | border-bottom-width: 1px; | ||
795 | border-left-width: 1px; | ||
796 | border-top-color: #E0E0E0; | ||
797 | border-right-color: #E0E0E0; | ||
798 | border-bottom-color: #E0E0E0; | ||
799 | border-left-color: #E0E0E0; | ||
800 | border-top-style: solid; | ||
801 | border-right-style: none; | ||
802 | border-bottom-style: none; | ||
803 | border-left-style: none; | ||
804 | color: #606060; | ||
805 | background-color: #FAFAFA; | ||
806 | font-size: 80%; | ||
807 | } | ||
808 | .search { | ||
809 | color: #003399; | ||
810 | font-weight: bold; | ||
811 | } | ||
812 | FORM.search { | ||
813 | margin-bottom: 0px; | ||
814 | margin-top: 0px; | ||
815 | } | ||
816 | INPUT.search { | ||
817 | font-size: 75%; | ||
818 | color: #000080; | ||
819 | font-weight: normal; | ||
820 | background-color: #e8eef2; | ||
821 | } | ||
822 | TD.tiny { | ||
823 | font-size: 75%; | ||
824 | } | ||
825 | a { | ||
826 | color: #1A41A8; | ||
827 | } | ||
828 | a:visited { | ||
829 | color: #2A3798; | ||
830 | } | ||
831 | .dirtab { | ||
832 | padding: 4px; | ||
833 | border-collapse: collapse; | ||
834 | border: 1px solid #84b0c7; | ||
835 | } | ||
836 | TH.dirtab { | ||
837 | background: #e8eef2; | ||
838 | font-weight: bold; | ||
839 | } | ||
840 | HR { | ||
841 | height: 1px; | ||
842 | border: none; | ||
843 | border-top: 1px solid black; | ||
844 | } | ||
845 | |||
846 | /* Style for detailed member documentation */ | ||
847 | .memtemplate { | ||
848 | font-size: 80%; | ||
849 | color: #606060; | ||
850 | font-weight: normal; | ||
851 | margin-left: 3px; | ||
852 | } | ||
853 | .memnav { | ||
854 | background-color: #e8eef2; | ||
855 | border: 1px solid #84b0c7; | ||
856 | text-align: center; | ||
857 | margin: 2px; | ||
858 | margin-right: 15px; | ||
859 | padding: 2px; | ||
860 | } | ||
861 | .memitem { | ||
862 | padding: 4px; | ||
863 | background-color: #eef3f5; | ||
864 | border-width: 1px; | ||
865 | border-style: solid; | ||
866 | border-color: #dedeee; | ||
867 | -moz-border-radius: 8px 8px 8px 8px; | ||
868 | } | ||
869 | .memname { | ||
870 | white-space: nowrap; | ||
871 | font-weight: bold; | ||
872 | } | ||
873 | .memdoc{ | ||
874 | padding-left: 10px; | ||
875 | } | ||
876 | .memproto { | ||
877 | background-color: #d5e1e8; | ||
878 | width: 100%; | ||
879 | border-width: 1px; | ||
880 | border-style: solid; | ||
881 | border-color: #84b0c7; | ||
882 | font-weight: bold; | ||
883 | -moz-border-radius: 8px 8px 8px 8px; | ||
884 | } | ||
885 | .paramkey { | ||
886 | text-align: right; | ||
887 | } | ||
888 | .paramtype { | ||
889 | white-space: nowrap; | ||
890 | } | ||
891 | .paramname { | ||
892 | color: #602020; | ||
893 | font-style: italic; | ||
894 | white-space: nowrap; | ||
895 | } | ||
896 | /* End Styling for detailed member documentation */ | ||
897 | |||
898 | /* for the tree view */ | ||
899 | .ftvtree { | ||
900 | font-family: sans-serif; | ||
901 | margin:0.5em; | ||
902 | } | ||
903 | /* these are for tree view when used as main index */ | ||
904 | .directory { | ||
905 | font-size: 9pt; | ||
906 | font-weight: bold; | ||
907 | } | ||
908 | .directory h3 { | ||
909 | margin: 0px; | ||
910 | margin-top: 1em; | ||
911 | font-size: 11pt; | ||
912 | } | ||
913 | |||
914 | /* The following two styles can be used to replace the root node title */ | ||
915 | /* with an image of your choice. Simply uncomment the next two styles, */ | ||
916 | /* specify the name of your image and be sure to set 'height' to the */ | ||
917 | /* proper pixel height of your image. */ | ||
918 | |||
919 | /* .directory h3.swap { */ | ||
920 | /* height: 61px; */ | ||
921 | /* background-repeat: no-repeat; */ | ||
922 | /* background-image: url("yourimage.gif"); */ | ||
923 | /* } */ | ||
924 | /* .directory h3.swap span { */ | ||
925 | /* display: none; */ | ||
926 | /* } */ | ||
927 | |||
928 | .directory > h3 { | ||
929 | margin-top: 0; | ||
930 | } | ||
931 | .directory p { | ||
932 | margin: 0px; | ||
933 | white-space: nowrap; | ||
934 | } | ||
935 | .directory div { | ||
936 | display: none; | ||
937 | margin: 0px; | ||
938 | } | ||
939 | .directory img { | ||
940 | vertical-align: -30%; | ||
941 | } | ||
942 | /* these are for tree view when not used as main index */ | ||
943 | .directory-alt { | ||
944 | font-size: 100%; | ||
945 | font-weight: bold; | ||
946 | } | ||
947 | .directory-alt h3 { | ||
948 | margin: 0px; | ||
949 | margin-top: 1em; | ||
950 | font-size: 11pt; | ||
951 | } | ||
952 | .directory-alt > h3 { | ||
953 | margin-top: 0; | ||
954 | } | ||
955 | .directory-alt p { | ||
956 | margin: 0px; | ||
957 | white-space: nowrap; | ||
958 | } | ||
959 | .directory-alt div { | ||
960 | display: none; | ||
961 | margin: 0px; | ||
962 | } | ||
963 | .directory-alt img { | ||
964 | vertical-align: -30%; | ||
965 | } | ||
966 | |||
diff --git a/libraries/eet/doc/img/eet.png b/libraries/eet/doc/img/eet.png deleted file mode 100644 index 47597a8..0000000 --- a/libraries/eet/doc/img/eet.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/libraries/eet/doc/img/foot_bg.png b/libraries/eet/doc/img/foot_bg.png deleted file mode 100755 index b24f3a4..0000000 --- a/libraries/eet/doc/img/foot_bg.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/libraries/eet/doc/img/head_bg.png b/libraries/eet/doc/img/head_bg.png deleted file mode 100755 index 081dc13..0000000 --- a/libraries/eet/doc/img/head_bg.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/libraries/eet/doc/img/hilite.png b/libraries/eet/doc/img/hilite.png deleted file mode 100644 index 88a4381..0000000 --- a/libraries/eet/doc/img/hilite.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/libraries/eet/doc/img/menu_bg.png b/libraries/eet/doc/img/menu_bg.png deleted file mode 100755 index e978743..0000000 --- a/libraries/eet/doc/img/menu_bg.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/libraries/eet/doc/img/menu_bg_current.png b/libraries/eet/doc/img/menu_bg_current.png deleted file mode 100755 index de97c92..0000000 --- a/libraries/eet/doc/img/menu_bg_current.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/libraries/eet/doc/img/menu_bg_hover.png b/libraries/eet/doc/img/menu_bg_hover.png deleted file mode 100755 index 3fd851d..0000000 --- a/libraries/eet/doc/img/menu_bg_hover.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/libraries/eet/doc/img/menu_bg_last.png b/libraries/eet/doc/img/menu_bg_last.png deleted file mode 100755 index 88c116c..0000000 --- a/libraries/eet/doc/img/menu_bg_last.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/libraries/eet/doc/img/menu_bg_unsel.png b/libraries/eet/doc/img/menu_bg_unsel.png deleted file mode 100755 index 50e5fd8..0000000 --- a/libraries/eet/doc/img/menu_bg_unsel.png +++ /dev/null | |||
Binary files differ | |||
diff --git a/libraries/eet/eet.pc.in b/libraries/eet/eet.pc.in deleted file mode 100644 index f7a3bf1..0000000 --- a/libraries/eet/eet.pc.in +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
1 | prefix=@prefix@ | ||
2 | exec_prefix=@exec_prefix@ | ||
3 | libdir=@libdir@ | ||
4 | includedir=@includedir@ | ||
5 | |||
6 | Name: eet | ||
7 | Description: Library for speedy data storage, retrieval, and compression | ||
8 | @pkgconfig_requires_private@: @requirement_eet@ | ||
9 | Version: @VERSION@ | ||
10 | Libs: -L${libdir} -leet | ||
11 | Libs.private: @EET_LIBS@ @EFL_FNMATCH_LIBS@ @LIBGCRYPT_LIBS@ -ljpeg -lz -lm | ||
12 | Cflags: -I${includedir}/eet-@VMAJ@ | ||
13 | Cflags.private: @LIBGCRYPT_CFLAGS@ | ||
diff --git a/libraries/eet/eet.spec b/libraries/eet/eet.spec deleted file mode 100644 index a357773..0000000 --- a/libraries/eet/eet.spec +++ /dev/null | |||
@@ -1,76 +0,0 @@ | |||
1 | %{!?_rel:%{expand:%%global _rel 0.enl%{?dist}}} | ||
2 | %define _missing_doc_files_terminate_build 0 | ||
3 | |||
4 | Summary: Library for speedy data storage, retrieval, and compression. | ||
5 | Name: eet | ||
6 | Version: 1.6.0-alpha | ||
7 | Release: %{_rel} | ||
8 | License: BSD | ||
9 | Group: System Environment/Libraries | ||
10 | Source: http://download.enlightenment.org/releases/%{name}-%{version}.tar.gz | ||
11 | Packager: %{?_packager:%{_packager}}%{!?_packager:Michael Jennings <mej@eterm.org>} | ||
12 | Vendor: %{?_vendorinfo:%{_vendorinfo}}%{!?_vendorinfo:The Enlightenment Project (http://www.enlightenment.org/)} | ||
13 | Distribution: %{?_distribution:%{_distribution}}%{!?_distribution:%{_vendor}} | ||
14 | URL: http://www.enlightenment.org/ | ||
15 | BuildRequires: libjpeg-devel zlib-devel | ||
16 | BuildRoot: %{_tmppath}/%{name}-%{version}-root | ||
17 | |||
18 | %description | ||
19 | Eet is a tiny library designed to write an arbitrary set of chunks of | ||
20 | data to a file and optionally compress each chunk (very much like a | ||
21 | zip file) and allow fast random-access reading of the file later | ||
22 | on. It does not do zip as a zip itself has more complexity than is | ||
23 | needed, and it was much simpler to implement this once here. | ||
24 | |||
25 | It also can encode and decode data structures in memory, as well as | ||
26 | image data for saving to eet files or sending across the network to | ||
27 | other machines, or just writing to arbitrary files on the system. All | ||
28 | data is encoded in a platform independent way and can be written and | ||
29 | read by any architecture. | ||
30 | |||
31 | %package devel | ||
32 | Summary: Eet headers, static libraries, documentation and test programs | ||
33 | Group: System Environment/Libraries | ||
34 | Requires: %{name} = %{version} | ||
35 | Requires: libjpeg-devel, zlib-devel | ||
36 | |||
37 | %description devel | ||
38 | Headers, static libraries, test programs and documentation for Eet | ||
39 | |||
40 | %prep | ||
41 | %setup -q | ||
42 | |||
43 | %build | ||
44 | %{configure} --prefix=%{_prefix} | ||
45 | ### use this if you have build problems | ||
46 | #./configure --prefix=%{_prefix} | ||
47 | %{__make} %{?_smp_mflags} %{?mflags} | ||
48 | |||
49 | %install | ||
50 | %{__make} %{?mflags_install} DESTDIR=$RPM_BUILD_ROOT install | ||
51 | |||
52 | %clean | ||
53 | test "x$RPM_BUILD_ROOT" != "x/" && rm -rf $RPM_BUILD_ROOT | ||
54 | |||
55 | %post | ||
56 | /sbin/ldconfig | ||
57 | |||
58 | %postun | ||
59 | /sbin/ldconfig | ||
60 | |||
61 | %files | ||
62 | %defattr(-, root, root) | ||
63 | %doc AUTHORS COPYING COPYING-PLAIN README | ||
64 | %{_libdir}/*.so.* | ||
65 | |||
66 | %files devel | ||
67 | %defattr(-, root, root) | ||
68 | %{_bindir}/eet* | ||
69 | %{_libdir}/pkgconfig/* | ||
70 | %{_includedir}/* | ||
71 | %{_libdir}/*.a | ||
72 | %{_libdir}/*.so | ||
73 | %{_datadir}/eet | ||
74 | %{_libdir}/*.la | ||
75 | |||
76 | %changelog | ||
diff --git a/libraries/eet/eet.spec.in b/libraries/eet/eet.spec.in deleted file mode 100644 index 5a91f60..0000000 --- a/libraries/eet/eet.spec.in +++ /dev/null | |||
@@ -1,76 +0,0 @@ | |||
1 | %{!?_rel:%{expand:%%global _rel 0.enl%{?dist}}} | ||
2 | %define _missing_doc_files_terminate_build 0 | ||
3 | |||
4 | Summary: Library for speedy data storage, retrieval, and compression. | ||
5 | Name: @PACKAGE@ | ||
6 | Version: @VERSION@ | ||
7 | Release: %{_rel} | ||
8 | License: BSD | ||
9 | Group: System Environment/Libraries | ||
10 | Source: http://download.enlightenment.org/releases/%{name}-%{version}.tar.gz | ||
11 | Packager: %{?_packager:%{_packager}}%{!?_packager:Michael Jennings <mej@eterm.org>} | ||
12 | Vendor: %{?_vendorinfo:%{_vendorinfo}}%{!?_vendorinfo:The Enlightenment Project (http://www.enlightenment.org/)} | ||
13 | Distribution: %{?_distribution:%{_distribution}}%{!?_distribution:%{_vendor}} | ||
14 | URL: http://www.enlightenment.org/ | ||
15 | BuildRequires: libjpeg-devel zlib-devel | ||
16 | BuildRoot: %{_tmppath}/%{name}-%{version}-root | ||
17 | |||
18 | %description | ||
19 | Eet is a tiny library designed to write an arbitrary set of chunks of | ||
20 | data to a file and optionally compress each chunk (very much like a | ||
21 | zip file) and allow fast random-access reading of the file later | ||
22 | on. It does not do zip as a zip itself has more complexity than is | ||
23 | needed, and it was much simpler to implement this once here. | ||
24 | |||
25 | It also can encode and decode data structures in memory, as well as | ||
26 | image data for saving to eet files or sending across the network to | ||
27 | other machines, or just writing to arbitrary files on the system. All | ||
28 | data is encoded in a platform independent way and can be written and | ||
29 | read by any architecture. | ||
30 | |||
31 | %package devel | ||
32 | Summary: Eet headers, static libraries, documentation and test programs | ||
33 | Group: System Environment/Libraries | ||
34 | Requires: %{name} = %{version} | ||
35 | Requires: libjpeg-devel, zlib-devel | ||
36 | |||
37 | %description devel | ||
38 | Headers, static libraries, test programs and documentation for Eet | ||
39 | |||
40 | %prep | ||
41 | %setup -q | ||
42 | |||
43 | %build | ||
44 | %{configure} --prefix=%{_prefix} | ||
45 | ### use this if you have build problems | ||
46 | #./configure --prefix=%{_prefix} | ||
47 | %{__make} %{?_smp_mflags} %{?mflags} | ||
48 | |||
49 | %install | ||
50 | %{__make} %{?mflags_install} DESTDIR=$RPM_BUILD_ROOT install | ||
51 | |||
52 | %clean | ||
53 | test "x$RPM_BUILD_ROOT" != "x/" && rm -rf $RPM_BUILD_ROOT | ||
54 | |||
55 | %post | ||
56 | /sbin/ldconfig | ||
57 | |||
58 | %postun | ||
59 | /sbin/ldconfig | ||
60 | |||
61 | %files | ||
62 | %defattr(-, root, root) | ||
63 | %doc AUTHORS COPYING COPYING-PLAIN README | ||
64 | %{_libdir}/*.so.* | ||
65 | |||
66 | %files devel | ||
67 | %defattr(-, root, root) | ||
68 | %{_bindir}/eet* | ||
69 | %{_libdir}/pkgconfig/* | ||
70 | %{_includedir}/* | ||
71 | %{_libdir}/*.a | ||
72 | %{_libdir}/*.so | ||
73 | %{_datadir}/eet | ||
74 | %{_libdir}/*.la | ||
75 | |||
76 | %changelog | ||
diff --git a/libraries/eet/install-sh b/libraries/eet/install-sh deleted file mode 100755 index 6781b98..0000000 --- a/libraries/eet/install-sh +++ /dev/null | |||
@@ -1,520 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | # install - install a program, script, or datafile | ||
3 | |||
4 | scriptversion=2009-04-28.21; # UTC | ||
5 | |||
6 | # This originates from X11R5 (mit/util/scripts/install.sh), which was | ||
7 | # later released in X11R6 (xc/config/util/install.sh) with the | ||
8 | # following copyright and license. | ||
9 | # | ||
10 | # Copyright (C) 1994 X Consortium | ||
11 | # | ||
12 | # Permission is hereby granted, free of charge, to any person obtaining a copy | ||
13 | # of this software and associated documentation files (the "Software"), to | ||
14 | # deal in the Software without restriction, including without limitation the | ||
15 | # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or | ||
16 | # sell copies of the Software, and to permit persons to whom the Software is | ||
17 | # furnished to do so, subject to the following conditions: | ||
18 | # | ||
19 | # The above copyright notice and this permission notice shall be included in | ||
20 | # all copies or substantial portions of the Software. | ||
21 | # | ||
22 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
23 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
24 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
25 | # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN | ||
26 | # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- | ||
27 | # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
28 | # | ||
29 | # Except as contained in this notice, the name of the X Consortium shall not | ||
30 | # be used in advertising or otherwise to promote the sale, use or other deal- | ||
31 | # ings in this Software without prior written authorization from the X Consor- | ||
32 | # tium. | ||
33 | # | ||
34 | # | ||
35 | # FSF changes to this file are in the public domain. | ||
36 | # | ||
37 | # Calling this script install-sh is preferred over install.sh, to prevent | ||
38 | # `make' implicit rules from creating a file called install from it | ||
39 | # when there is no Makefile. | ||
40 | # | ||
41 | # This script is compatible with the BSD install script, but was written | ||
42 | # from scratch. | ||
43 | |||
44 | nl=' | ||
45 | ' | ||
46 | IFS=" "" $nl" | ||
47 | |||
48 | # set DOITPROG to echo to test this script | ||
49 | |||
50 | # Don't use :- since 4.3BSD and earlier shells don't like it. | ||
51 | doit=${DOITPROG-} | ||
52 | if test -z "$doit"; then | ||
53 | doit_exec=exec | ||
54 | else | ||
55 | doit_exec=$doit | ||
56 | fi | ||
57 | |||
58 | # Put in absolute file names if you don't have them in your path; | ||
59 | # or use environment vars. | ||
60 | |||
61 | chgrpprog=${CHGRPPROG-chgrp} | ||
62 | chmodprog=${CHMODPROG-chmod} | ||
63 | chownprog=${CHOWNPROG-chown} | ||
64 | cmpprog=${CMPPROG-cmp} | ||
65 | cpprog=${CPPROG-cp} | ||
66 | mkdirprog=${MKDIRPROG-mkdir} | ||
67 | mvprog=${MVPROG-mv} | ||
68 | rmprog=${RMPROG-rm} | ||
69 | stripprog=${STRIPPROG-strip} | ||
70 | |||
71 | posix_glob='?' | ||
72 | initialize_posix_glob=' | ||
73 | test "$posix_glob" != "?" || { | ||
74 | if (set -f) 2>/dev/null; then | ||
75 | posix_glob= | ||
76 | else | ||
77 | posix_glob=: | ||
78 | fi | ||
79 | } | ||
80 | ' | ||
81 | |||
82 | posix_mkdir= | ||
83 | |||
84 | # Desired mode of installed file. | ||
85 | mode=0755 | ||
86 | |||
87 | chgrpcmd= | ||
88 | chmodcmd=$chmodprog | ||
89 | chowncmd= | ||
90 | mvcmd=$mvprog | ||
91 | rmcmd="$rmprog -f" | ||
92 | stripcmd= | ||
93 | |||
94 | src= | ||
95 | dst= | ||
96 | dir_arg= | ||
97 | dst_arg= | ||
98 | |||
99 | copy_on_change=false | ||
100 | no_target_directory= | ||
101 | |||
102 | usage="\ | ||
103 | Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE | ||
104 | or: $0 [OPTION]... SRCFILES... DIRECTORY | ||
105 | or: $0 [OPTION]... -t DIRECTORY SRCFILES... | ||
106 | or: $0 [OPTION]... -d DIRECTORIES... | ||
107 | |||
108 | In the 1st form, copy SRCFILE to DSTFILE. | ||
109 | In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. | ||
110 | In the 4th, create DIRECTORIES. | ||
111 | |||
112 | Options: | ||
113 | --help display this help and exit. | ||
114 | --version display version info and exit. | ||
115 | |||
116 | -c (ignored) | ||
117 | -C install only if different (preserve the last data modification time) | ||
118 | -d create directories instead of installing files. | ||
119 | -g GROUP $chgrpprog installed files to GROUP. | ||
120 | -m MODE $chmodprog installed files to MODE. | ||
121 | -o USER $chownprog installed files to USER. | ||
122 | -s $stripprog installed files. | ||
123 | -t DIRECTORY install into DIRECTORY. | ||
124 | -T report an error if DSTFILE is a directory. | ||
125 | |||
126 | Environment variables override the default commands: | ||
127 | CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG | ||
128 | RMPROG STRIPPROG | ||
129 | " | ||
130 | |||
131 | while test $# -ne 0; do | ||
132 | case $1 in | ||
133 | -c) ;; | ||
134 | |||
135 | -C) copy_on_change=true;; | ||
136 | |||
137 | -d) dir_arg=true;; | ||
138 | |||
139 | -g) chgrpcmd="$chgrpprog $2" | ||
140 | shift;; | ||
141 | |||
142 | --help) echo "$usage"; exit $?;; | ||
143 | |||
144 | -m) mode=$2 | ||
145 | case $mode in | ||
146 | *' '* | *' '* | *' | ||
147 | '* | *'*'* | *'?'* | *'['*) | ||
148 | echo "$0: invalid mode: $mode" >&2 | ||
149 | exit 1;; | ||
150 | esac | ||
151 | shift;; | ||
152 | |||
153 | -o) chowncmd="$chownprog $2" | ||
154 | shift;; | ||
155 | |||
156 | -s) stripcmd=$stripprog;; | ||
157 | |||
158 | -t) dst_arg=$2 | ||
159 | shift;; | ||
160 | |||
161 | -T) no_target_directory=true;; | ||
162 | |||
163 | --version) echo "$0 $scriptversion"; exit $?;; | ||
164 | |||
165 | --) shift | ||
166 | break;; | ||
167 | |||
168 | -*) echo "$0: invalid option: $1" >&2 | ||
169 | exit 1;; | ||
170 | |||
171 | *) break;; | ||
172 | esac | ||
173 | shift | ||
174 | done | ||
175 | |||
176 | if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then | ||
177 | # When -d is used, all remaining arguments are directories to create. | ||
178 | # When -t is used, the destination is already specified. | ||
179 | # Otherwise, the last argument is the destination. Remove it from $@. | ||
180 | for arg | ||
181 | do | ||
182 | if test -n "$dst_arg"; then | ||
183 | # $@ is not empty: it contains at least $arg. | ||
184 | set fnord "$@" "$dst_arg" | ||
185 | shift # fnord | ||
186 | fi | ||
187 | shift # arg | ||
188 | dst_arg=$arg | ||
189 | done | ||
190 | fi | ||
191 | |||
192 | if test $# -eq 0; then | ||
193 | if test -z "$dir_arg"; then | ||
194 | echo "$0: no input file specified." >&2 | ||
195 | exit 1 | ||
196 | fi | ||
197 | # It's OK to call `install-sh -d' without argument. | ||
198 | # This can happen when creating conditional directories. | ||
199 | exit 0 | ||
200 | fi | ||
201 | |||
202 | if test -z "$dir_arg"; then | ||
203 | trap '(exit $?); exit' 1 2 13 15 | ||
204 | |||
205 | # Set umask so as not to create temps with too-generous modes. | ||
206 | # However, 'strip' requires both read and write access to temps. | ||
207 | case $mode in | ||
208 | # Optimize common cases. | ||
209 | *644) cp_umask=133;; | ||
210 | *755) cp_umask=22;; | ||
211 | |||
212 | *[0-7]) | ||
213 | if test -z "$stripcmd"; then | ||
214 | u_plus_rw= | ||
215 | else | ||
216 | u_plus_rw='% 200' | ||
217 | fi | ||
218 | cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; | ||
219 | *) | ||
220 | if test -z "$stripcmd"; then | ||
221 | u_plus_rw= | ||
222 | else | ||
223 | u_plus_rw=,u+rw | ||
224 | fi | ||
225 | cp_umask=$mode$u_plus_rw;; | ||
226 | esac | ||
227 | fi | ||
228 | |||
229 | for src | ||
230 | do | ||
231 | # Protect names starting with `-'. | ||
232 | case $src in | ||
233 | -*) src=./$src;; | ||
234 | esac | ||
235 | |||
236 | if test -n "$dir_arg"; then | ||
237 | dst=$src | ||
238 | dstdir=$dst | ||
239 | test -d "$dstdir" | ||
240 | dstdir_status=$? | ||
241 | else | ||
242 | |||
243 | # Waiting for this to be detected by the "$cpprog $src $dsttmp" command | ||
244 | # might cause directories to be created, which would be especially bad | ||
245 | # if $src (and thus $dsttmp) contains '*'. | ||
246 | if test ! -f "$src" && test ! -d "$src"; then | ||
247 | echo "$0: $src does not exist." >&2 | ||
248 | exit 1 | ||
249 | fi | ||
250 | |||
251 | if test -z "$dst_arg"; then | ||
252 | echo "$0: no destination specified." >&2 | ||
253 | exit 1 | ||
254 | fi | ||
255 | |||
256 | dst=$dst_arg | ||
257 | # Protect names starting with `-'. | ||
258 | case $dst in | ||
259 | -*) dst=./$dst;; | ||
260 | esac | ||
261 | |||
262 | # If destination is a directory, append the input filename; won't work | ||
263 | # if double slashes aren't ignored. | ||
264 | if test -d "$dst"; then | ||
265 | if test -n "$no_target_directory"; then | ||
266 | echo "$0: $dst_arg: Is a directory" >&2 | ||
267 | exit 1 | ||
268 | fi | ||
269 | dstdir=$dst | ||
270 | dst=$dstdir/`basename "$src"` | ||
271 | dstdir_status=0 | ||
272 | else | ||
273 | # Prefer dirname, but fall back on a substitute if dirname fails. | ||
274 | dstdir=` | ||
275 | (dirname "$dst") 2>/dev/null || | ||
276 | expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ | ||
277 | X"$dst" : 'X\(//\)[^/]' \| \ | ||
278 | X"$dst" : 'X\(//\)$' \| \ | ||
279 | X"$dst" : 'X\(/\)' \| . 2>/dev/null || | ||
280 | echo X"$dst" | | ||
281 | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ | ||
282 | s//\1/ | ||
283 | q | ||
284 | } | ||
285 | /^X\(\/\/\)[^/].*/{ | ||
286 | s//\1/ | ||
287 | q | ||
288 | } | ||
289 | /^X\(\/\/\)$/{ | ||
290 | s//\1/ | ||
291 | q | ||
292 | } | ||
293 | /^X\(\/\).*/{ | ||
294 | s//\1/ | ||
295 | q | ||
296 | } | ||
297 | s/.*/./; q' | ||
298 | ` | ||
299 | |||
300 | test -d "$dstdir" | ||
301 | dstdir_status=$? | ||
302 | fi | ||
303 | fi | ||
304 | |||
305 | obsolete_mkdir_used=false | ||
306 | |||
307 | if test $dstdir_status != 0; then | ||
308 | case $posix_mkdir in | ||
309 | '') | ||
310 | # Create intermediate dirs using mode 755 as modified by the umask. | ||
311 | # This is like FreeBSD 'install' as of 1997-10-28. | ||
312 | umask=`umask` | ||
313 | case $stripcmd.$umask in | ||
314 | # Optimize common cases. | ||
315 | *[2367][2367]) mkdir_umask=$umask;; | ||
316 | .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; | ||
317 | |||
318 | *[0-7]) | ||
319 | mkdir_umask=`expr $umask + 22 \ | ||
320 | - $umask % 100 % 40 + $umask % 20 \ | ||
321 | - $umask % 10 % 4 + $umask % 2 | ||
322 | `;; | ||
323 | *) mkdir_umask=$umask,go-w;; | ||
324 | esac | ||
325 | |||
326 | # With -d, create the new directory with the user-specified mode. | ||
327 | # Otherwise, rely on $mkdir_umask. | ||
328 | if test -n "$dir_arg"; then | ||
329 | mkdir_mode=-m$mode | ||
330 | else | ||
331 | mkdir_mode= | ||
332 | fi | ||
333 | |||
334 | posix_mkdir=false | ||
335 | case $umask in | ||
336 | *[123567][0-7][0-7]) | ||
337 | # POSIX mkdir -p sets u+wx bits regardless of umask, which | ||
338 | # is incompatible with FreeBSD 'install' when (umask & 300) != 0. | ||
339 | ;; | ||
340 | *) | ||
341 | tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ | ||
342 | trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 | ||
343 | |||
344 | if (umask $mkdir_umask && | ||
345 | exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 | ||
346 | then | ||
347 | if test -z "$dir_arg" || { | ||
348 | # Check for POSIX incompatibilities with -m. | ||
349 | # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or | ||
350 | # other-writeable bit of parent directory when it shouldn't. | ||
351 | # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. | ||
352 | ls_ld_tmpdir=`ls -ld "$tmpdir"` | ||
353 | case $ls_ld_tmpdir in | ||
354 | d????-?r-*) different_mode=700;; | ||
355 | d????-?--*) different_mode=755;; | ||
356 | *) false;; | ||
357 | esac && | ||
358 | $mkdirprog -m$different_mode -p -- "$tmpdir" && { | ||
359 | ls_ld_tmpdir_1=`ls -ld "$tmpdir"` | ||
360 | test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" | ||
361 | } | ||
362 | } | ||
363 | then posix_mkdir=: | ||
364 | fi | ||
365 | rmdir "$tmpdir/d" "$tmpdir" | ||
366 | else | ||
367 | # Remove any dirs left behind by ancient mkdir implementations. | ||
368 | rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null | ||
369 | fi | ||
370 | trap '' 0;; | ||
371 | esac;; | ||
372 | esac | ||
373 | |||
374 | if | ||
375 | $posix_mkdir && ( | ||
376 | umask $mkdir_umask && | ||
377 | $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" | ||
378 | ) | ||
379 | then : | ||
380 | else | ||
381 | |||
382 | # The umask is ridiculous, or mkdir does not conform to POSIX, | ||
383 | # or it failed possibly due to a race condition. Create the | ||
384 | # directory the slow way, step by step, checking for races as we go. | ||
385 | |||
386 | case $dstdir in | ||
387 | /*) prefix='/';; | ||
388 | -*) prefix='./';; | ||
389 | *) prefix='';; | ||
390 | esac | ||
391 | |||
392 | eval "$initialize_posix_glob" | ||
393 | |||
394 | oIFS=$IFS | ||
395 | IFS=/ | ||
396 | $posix_glob set -f | ||
397 | set fnord $dstdir | ||
398 | shift | ||
399 | $posix_glob set +f | ||
400 | IFS=$oIFS | ||
401 | |||
402 | prefixes= | ||
403 | |||
404 | for d | ||
405 | do | ||
406 | test -z "$d" && continue | ||
407 | |||
408 | prefix=$prefix$d | ||
409 | if test -d "$prefix"; then | ||
410 | prefixes= | ||
411 | else | ||
412 | if $posix_mkdir; then | ||
413 | (umask=$mkdir_umask && | ||
414 | $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break | ||
415 | # Don't fail if two instances are running concurrently. | ||
416 | test -d "$prefix" || exit 1 | ||
417 | else | ||
418 | case $prefix in | ||
419 | *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; | ||
420 | *) qprefix=$prefix;; | ||
421 | esac | ||
422 | prefixes="$prefixes '$qprefix'" | ||
423 | fi | ||
424 | fi | ||
425 | prefix=$prefix/ | ||
426 | done | ||
427 | |||
428 | if test -n "$prefixes"; then | ||
429 | # Don't fail if two instances are running concurrently. | ||
430 | (umask $mkdir_umask && | ||
431 | eval "\$doit_exec \$mkdirprog $prefixes") || | ||
432 | test -d "$dstdir" || exit 1 | ||
433 | obsolete_mkdir_used=true | ||
434 | fi | ||
435 | fi | ||
436 | fi | ||
437 | |||
438 | if test -n "$dir_arg"; then | ||
439 | { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && | ||
440 | { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && | ||
441 | { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || | ||
442 | test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 | ||
443 | else | ||
444 | |||
445 | # Make a couple of temp file names in the proper directory. | ||
446 | dsttmp=$dstdir/_inst.$$_ | ||
447 | rmtmp=$dstdir/_rm.$$_ | ||
448 | |||
449 | # Trap to clean up those temp files at exit. | ||
450 | trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 | ||
451 | |||
452 | # Copy the file name to the temp name. | ||
453 | (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && | ||
454 | |||
455 | # and set any options; do chmod last to preserve setuid bits. | ||
456 | # | ||
457 | # If any of these fail, we abort the whole thing. If we want to | ||
458 | # ignore errors from any of these, just make sure not to ignore | ||
459 | # errors from the above "$doit $cpprog $src $dsttmp" command. | ||
460 | # | ||
461 | { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && | ||
462 | { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && | ||
463 | { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && | ||
464 | { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && | ||
465 | |||
466 | # If -C, don't bother to copy if it wouldn't change the file. | ||
467 | if $copy_on_change && | ||
468 | old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && | ||
469 | new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && | ||
470 | |||
471 | eval "$initialize_posix_glob" && | ||
472 | $posix_glob set -f && | ||
473 | set X $old && old=:$2:$4:$5:$6 && | ||
474 | set X $new && new=:$2:$4:$5:$6 && | ||
475 | $posix_glob set +f && | ||
476 | |||
477 | test "$old" = "$new" && | ||
478 | $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 | ||
479 | then | ||
480 | rm -f "$dsttmp" | ||
481 | else | ||
482 | # Rename the file to the real destination. | ||
483 | $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || | ||
484 | |||
485 | # The rename failed, perhaps because mv can't rename something else | ||
486 | # to itself, or perhaps because mv is so ancient that it does not | ||
487 | # support -f. | ||
488 | { | ||
489 | # Now remove or move aside any old file at destination location. | ||
490 | # We try this two ways since rm can't unlink itself on some | ||
491 | # systems and the destination file might be busy for other | ||
492 | # reasons. In this case, the final cleanup might fail but the new | ||
493 | # file should still install successfully. | ||
494 | { | ||
495 | test ! -f "$dst" || | ||
496 | $doit $rmcmd -f "$dst" 2>/dev/null || | ||
497 | { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && | ||
498 | { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } | ||
499 | } || | ||
500 | { echo "$0: cannot unlink or rename $dst" >&2 | ||
501 | (exit 1); exit 1 | ||
502 | } | ||
503 | } && | ||
504 | |||
505 | # Now rename the file to the real destination. | ||
506 | $doit $mvcmd "$dsttmp" "$dst" | ||
507 | } | ||
508 | fi || exit 1 | ||
509 | |||
510 | trap '' 0 | ||
511 | fi | ||
512 | done | ||
513 | |||
514 | # Local variables: | ||
515 | # eval: (add-hook 'write-file-hooks 'time-stamp) | ||
516 | # time-stamp-start: "scriptversion=" | ||
517 | # time-stamp-format: "%:y-%02m-%02d.%02H" | ||
518 | # time-stamp-time-zone: "UTC" | ||
519 | # time-stamp-end: "; # UTC" | ||
520 | # End: | ||
diff --git a/libraries/eet/ltmain.sh b/libraries/eet/ltmain.sh deleted file mode 100755 index fa4b1e1..0000000 --- a/libraries/eet/ltmain.sh +++ /dev/null | |||
@@ -1,8413 +0,0 @@ | |||
1 | # Generated from ltmain.m4sh. | ||
2 | |||
3 | # ltmain.sh (GNU libtool) 2.2.6b | ||
4 | # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 | ||
5 | |||
6 | # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. | ||
7 | # This is free software; see the source for copying conditions. There is NO | ||
8 | # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
9 | |||
10 | # GNU Libtool is free software; you can redistribute it and/or modify | ||
11 | # it under the terms of the GNU General Public License as published by | ||
12 | # the Free Software Foundation; either version 2 of the License, or | ||
13 | # (at your option) any later version. | ||
14 | # | ||
15 | # As a special exception to the GNU General Public License, | ||
16 | # if you distribute this file as part of a program or library that | ||
17 | # is built using GNU Libtool, you may include this file under the | ||
18 | # same distribution terms that you use for the rest of that program. | ||
19 | # | ||
20 | # GNU Libtool is distributed in the hope that it will be useful, but | ||
21 | # WITHOUT ANY WARRANTY; without even the implied warranty of | ||
22 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
23 | # General Public License for more details. | ||
24 | # | ||
25 | # You should have received a copy of the GNU General Public License | ||
26 | # along with GNU Libtool; see the file COPYING. If not, a copy | ||
27 | # can be downloaded from http://www.gnu.org/licenses/gpl.html, | ||
28 | # or obtained by writing to the Free Software Foundation, Inc., | ||
29 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | ||
30 | |||
31 | # Usage: $progname [OPTION]... [MODE-ARG]... | ||
32 | # | ||
33 | # Provide generalized library-building support services. | ||
34 | # | ||
35 | # --config show all configuration variables | ||
36 | # --debug enable verbose shell tracing | ||
37 | # -n, --dry-run display commands without modifying any files | ||
38 | # --features display basic configuration information and exit | ||
39 | # --mode=MODE use operation mode MODE | ||
40 | # --preserve-dup-deps don't remove duplicate dependency libraries | ||
41 | # --quiet, --silent don't print informational messages | ||
42 | # --tag=TAG use configuration variables from tag TAG | ||
43 | # -v, --verbose print informational messages (default) | ||
44 | # --version print version information | ||
45 | # -h, --help print short or long help message | ||
46 | # | ||
47 | # MODE must be one of the following: | ||
48 | # | ||
49 | # clean remove files from the build directory | ||
50 | # compile compile a source file into a libtool object | ||
51 | # execute automatically set library path, then run a program | ||
52 | # finish complete the installation of libtool libraries | ||
53 | # install install libraries or executables | ||
54 | # link create a library or an executable | ||
55 | # uninstall remove libraries from an installed directory | ||
56 | # | ||
57 | # MODE-ARGS vary depending on the MODE. | ||
58 | # Try `$progname --help --mode=MODE' for a more detailed description of MODE. | ||
59 | # | ||
60 | # When reporting a bug, please describe a test case to reproduce it and | ||
61 | # include the following information: | ||
62 | # | ||
63 | # host-triplet: $host | ||
64 | # shell: $SHELL | ||
65 | # compiler: $LTCC | ||
66 | # compiler flags: $LTCFLAGS | ||
67 | # linker: $LD (gnu? $with_gnu_ld) | ||
68 | # $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu3 | ||
69 | # automake: $automake_version | ||
70 | # autoconf: $autoconf_version | ||
71 | # | ||
72 | # Report bugs to <bug-libtool@gnu.org>. | ||
73 | |||
74 | PROGRAM=ltmain.sh | ||
75 | PACKAGE=libtool | ||
76 | VERSION="2.2.6b Debian-2.2.6b-2ubuntu3" | ||
77 | TIMESTAMP="" | ||
78 | package_revision=1.3017 | ||
79 | |||
80 | # Be Bourne compatible | ||
81 | if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then | ||
82 | emulate sh | ||
83 | NULLCMD=: | ||
84 | # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which | ||
85 | # is contrary to our usage. Disable this feature. | ||
86 | alias -g '${1+"$@"}'='"$@"' | ||
87 | setopt NO_GLOB_SUBST | ||
88 | else | ||
89 | case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac | ||
90 | fi | ||
91 | BIN_SH=xpg4; export BIN_SH # for Tru64 | ||
92 | DUALCASE=1; export DUALCASE # for MKS sh | ||
93 | |||
94 | # NLS nuisances: We save the old values to restore during execute mode. | ||
95 | # Only set LANG and LC_ALL to C if already set. | ||
96 | # These must not be set unconditionally because not all systems understand | ||
97 | # e.g. LANG=C (notably SCO). | ||
98 | lt_user_locale= | ||
99 | lt_safe_locale= | ||
100 | for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES | ||
101 | do | ||
102 | eval "if test \"\${$lt_var+set}\" = set; then | ||
103 | save_$lt_var=\$$lt_var | ||
104 | $lt_var=C | ||
105 | export $lt_var | ||
106 | lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" | ||
107 | lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" | ||
108 | fi" | ||
109 | done | ||
110 | |||
111 | $lt_unset CDPATH | ||
112 | |||
113 | |||
114 | |||
115 | |||
116 | |||
117 | : ${CP="cp -f"} | ||
118 | : ${ECHO="echo"} | ||
119 | : ${EGREP="/bin/grep -E"} | ||
120 | : ${FGREP="/bin/grep -F"} | ||
121 | : ${GREP="/bin/grep"} | ||
122 | : ${LN_S="ln -s"} | ||
123 | : ${MAKE="make"} | ||
124 | : ${MKDIR="mkdir"} | ||
125 | : ${MV="mv -f"} | ||
126 | : ${RM="rm -f"} | ||
127 | : ${SED="/bin/sed"} | ||
128 | : ${SHELL="${CONFIG_SHELL-/bin/sh}"} | ||
129 | : ${Xsed="$SED -e 1s/^X//"} | ||
130 | |||
131 | # Global variables: | ||
132 | EXIT_SUCCESS=0 | ||
133 | EXIT_FAILURE=1 | ||
134 | EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. | ||
135 | EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. | ||
136 | |||
137 | exit_status=$EXIT_SUCCESS | ||
138 | |||
139 | # Make sure IFS has a sensible default | ||
140 | lt_nl=' | ||
141 | ' | ||
142 | IFS=" $lt_nl" | ||
143 | |||
144 | dirname="s,/[^/]*$,," | ||
145 | basename="s,^.*/,," | ||
146 | |||
147 | # func_dirname_and_basename file append nondir_replacement | ||
148 | # perform func_basename and func_dirname in a single function | ||
149 | # call: | ||
150 | # dirname: Compute the dirname of FILE. If nonempty, | ||
151 | # add APPEND to the result, otherwise set result | ||
152 | # to NONDIR_REPLACEMENT. | ||
153 | # value returned in "$func_dirname_result" | ||
154 | # basename: Compute filename of FILE. | ||
155 | # value retuned in "$func_basename_result" | ||
156 | # Implementation must be kept synchronized with func_dirname | ||
157 | # and func_basename. For efficiency, we do not delegate to | ||
158 | # those functions but instead duplicate the functionality here. | ||
159 | func_dirname_and_basename () | ||
160 | { | ||
161 | # Extract subdirectory from the argument. | ||
162 | func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` | ||
163 | if test "X$func_dirname_result" = "X${1}"; then | ||
164 | func_dirname_result="${3}" | ||
165 | else | ||
166 | func_dirname_result="$func_dirname_result${2}" | ||
167 | fi | ||
168 | func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` | ||
169 | } | ||
170 | |||
171 | # Generated shell functions inserted here. | ||
172 | |||
173 | # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh | ||
174 | # is ksh but when the shell is invoked as "sh" and the current value of | ||
175 | # the _XPG environment variable is not equal to 1 (one), the special | ||
176 | # positional parameter $0, within a function call, is the name of the | ||
177 | # function. | ||
178 | progpath="$0" | ||
179 | |||
180 | # The name of this program: | ||
181 | # In the unlikely event $progname began with a '-', it would play havoc with | ||
182 | # func_echo (imagine progname=-n), so we prepend ./ in that case: | ||
183 | func_dirname_and_basename "$progpath" | ||
184 | progname=$func_basename_result | ||
185 | case $progname in | ||
186 | -*) progname=./$progname ;; | ||
187 | esac | ||
188 | |||
189 | # Make sure we have an absolute path for reexecution: | ||
190 | case $progpath in | ||
191 | [\\/]*|[A-Za-z]:\\*) ;; | ||
192 | *[\\/]*) | ||
193 | progdir=$func_dirname_result | ||
194 | progdir=`cd "$progdir" && pwd` | ||
195 | progpath="$progdir/$progname" | ||
196 | ;; | ||
197 | *) | ||
198 | save_IFS="$IFS" | ||
199 | IFS=: | ||
200 | for progdir in $PATH; do | ||
201 | IFS="$save_IFS" | ||
202 | test -x "$progdir/$progname" && break | ||
203 | done | ||
204 | IFS="$save_IFS" | ||
205 | test -n "$progdir" || progdir=`pwd` | ||
206 | progpath="$progdir/$progname" | ||
207 | ;; | ||
208 | esac | ||
209 | |||
210 | # Sed substitution that helps us do robust quoting. It backslashifies | ||
211 | # metacharacters that are still active within double-quoted strings. | ||
212 | Xsed="${SED}"' -e 1s/^X//' | ||
213 | sed_quote_subst='s/\([`"$\\]\)/\\\1/g' | ||
214 | |||
215 | # Same as above, but do not quote variable references. | ||
216 | double_quote_subst='s/\(["`\\]\)/\\\1/g' | ||
217 | |||
218 | # Re-`\' parameter expansions in output of double_quote_subst that were | ||
219 | # `\'-ed in input to the same. If an odd number of `\' preceded a '$' | ||
220 | # in input to double_quote_subst, that '$' was protected from expansion. | ||
221 | # Since each input `\' is now two `\'s, look for any number of runs of | ||
222 | # four `\'s followed by two `\'s and then a '$'. `\' that '$'. | ||
223 | bs='\\' | ||
224 | bs2='\\\\' | ||
225 | bs4='\\\\\\\\' | ||
226 | dollar='\$' | ||
227 | sed_double_backslash="\ | ||
228 | s/$bs4/&\\ | ||
229 | /g | ||
230 | s/^$bs2$dollar/$bs&/ | ||
231 | s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g | ||
232 | s/\n//g" | ||
233 | |||
234 | # Standard options: | ||
235 | opt_dry_run=false | ||
236 | opt_help=false | ||
237 | opt_quiet=false | ||
238 | opt_verbose=false | ||
239 | opt_warning=: | ||
240 | |||
241 | # func_echo arg... | ||
242 | # Echo program name prefixed message, along with the current mode | ||
243 | # name if it has been set yet. | ||
244 | func_echo () | ||
245 | { | ||
246 | $ECHO "$progname${mode+: }$mode: $*" | ||
247 | } | ||
248 | |||
249 | # func_verbose arg... | ||
250 | # Echo program name prefixed message in verbose mode only. | ||
251 | func_verbose () | ||
252 | { | ||
253 | $opt_verbose && func_echo ${1+"$@"} | ||
254 | |||
255 | # A bug in bash halts the script if the last line of a function | ||
256 | # fails when set -e is in force, so we need another command to | ||
257 | # work around that: | ||
258 | : | ||
259 | } | ||
260 | |||
261 | # func_error arg... | ||
262 | # Echo program name prefixed message to standard error. | ||
263 | func_error () | ||
264 | { | ||
265 | $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 | ||
266 | } | ||
267 | |||
268 | # func_warning arg... | ||
269 | # Echo program name prefixed warning message to standard error. | ||
270 | func_warning () | ||
271 | { | ||
272 | $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 | ||
273 | |||
274 | # bash bug again: | ||
275 | : | ||
276 | } | ||
277 | |||
278 | # func_fatal_error arg... | ||
279 | # Echo program name prefixed message to standard error, and exit. | ||
280 | func_fatal_error () | ||
281 | { | ||
282 | func_error ${1+"$@"} | ||
283 | exit $EXIT_FAILURE | ||
284 | } | ||
285 | |||
286 | # func_fatal_help arg... | ||
287 | # Echo program name prefixed message to standard error, followed by | ||
288 | # a help hint, and exit. | ||
289 | func_fatal_help () | ||
290 | { | ||
291 | func_error ${1+"$@"} | ||
292 | func_fatal_error "$help" | ||
293 | } | ||
294 | help="Try \`$progname --help' for more information." ## default | ||
295 | |||
296 | |||
297 | # func_grep expression filename | ||
298 | # Check whether EXPRESSION matches any line of FILENAME, without output. | ||
299 | func_grep () | ||
300 | { | ||
301 | $GREP "$1" "$2" >/dev/null 2>&1 | ||
302 | } | ||
303 | |||
304 | |||
305 | # func_mkdir_p directory-path | ||
306 | # Make sure the entire path to DIRECTORY-PATH is available. | ||
307 | func_mkdir_p () | ||
308 | { | ||
309 | my_directory_path="$1" | ||
310 | my_dir_list= | ||
311 | |||
312 | if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then | ||
313 | |||
314 | # Protect directory names starting with `-' | ||
315 | case $my_directory_path in | ||
316 | -*) my_directory_path="./$my_directory_path" ;; | ||
317 | esac | ||
318 | |||
319 | # While some portion of DIR does not yet exist... | ||
320 | while test ! -d "$my_directory_path"; do | ||
321 | # ...make a list in topmost first order. Use a colon delimited | ||
322 | # list incase some portion of path contains whitespace. | ||
323 | my_dir_list="$my_directory_path:$my_dir_list" | ||
324 | |||
325 | # If the last portion added has no slash in it, the list is done | ||
326 | case $my_directory_path in */*) ;; *) break ;; esac | ||
327 | |||
328 | # ...otherwise throw away the child directory and loop | ||
329 | my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` | ||
330 | done | ||
331 | my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` | ||
332 | |||
333 | save_mkdir_p_IFS="$IFS"; IFS=':' | ||
334 | for my_dir in $my_dir_list; do | ||
335 | IFS="$save_mkdir_p_IFS" | ||
336 | # mkdir can fail with a `File exist' error if two processes | ||
337 | # try to create one of the directories concurrently. Don't | ||
338 | # stop in that case! | ||
339 | $MKDIR "$my_dir" 2>/dev/null || : | ||
340 | done | ||
341 | IFS="$save_mkdir_p_IFS" | ||
342 | |||
343 | # Bail out if we (or some other process) failed to create a directory. | ||
344 | test -d "$my_directory_path" || \ | ||
345 | func_fatal_error "Failed to create \`$1'" | ||
346 | fi | ||
347 | } | ||
348 | |||
349 | |||
350 | # func_mktempdir [string] | ||
351 | # Make a temporary directory that won't clash with other running | ||
352 | # libtool processes, and avoids race conditions if possible. If | ||
353 | # given, STRING is the basename for that directory. | ||
354 | func_mktempdir () | ||
355 | { | ||
356 | my_template="${TMPDIR-/tmp}/${1-$progname}" | ||
357 | |||
358 | if test "$opt_dry_run" = ":"; then | ||
359 | # Return a directory name, but don't create it in dry-run mode | ||
360 | my_tmpdir="${my_template}-$$" | ||
361 | else | ||
362 | |||
363 | # If mktemp works, use that first and foremost | ||
364 | my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` | ||
365 | |||
366 | if test ! -d "$my_tmpdir"; then | ||
367 | # Failing that, at least try and use $RANDOM to avoid a race | ||
368 | my_tmpdir="${my_template}-${RANDOM-0}$$" | ||
369 | |||
370 | save_mktempdir_umask=`umask` | ||
371 | umask 0077 | ||
372 | $MKDIR "$my_tmpdir" | ||
373 | umask $save_mktempdir_umask | ||
374 | fi | ||
375 | |||
376 | # If we're not in dry-run mode, bomb out on failure | ||
377 | test -d "$my_tmpdir" || \ | ||
378 | func_fatal_error "cannot create temporary directory \`$my_tmpdir'" | ||
379 | fi | ||
380 | |||
381 | $ECHO "X$my_tmpdir" | $Xsed | ||
382 | } | ||
383 | |||
384 | |||
385 | # func_quote_for_eval arg | ||
386 | # Aesthetically quote ARG to be evaled later. | ||
387 | # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT | ||
388 | # is double-quoted, suitable for a subsequent eval, whereas | ||
389 | # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters | ||
390 | # which are still active within double quotes backslashified. | ||
391 | func_quote_for_eval () | ||
392 | { | ||
393 | case $1 in | ||
394 | *[\\\`\"\$]*) | ||
395 | func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; | ||
396 | *) | ||
397 | func_quote_for_eval_unquoted_result="$1" ;; | ||
398 | esac | ||
399 | |||
400 | case $func_quote_for_eval_unquoted_result in | ||
401 | # Double-quote args containing shell metacharacters to delay | ||
402 | # word splitting, command substitution and and variable | ||
403 | # expansion for a subsequent eval. | ||
404 | # Many Bourne shells cannot handle close brackets correctly | ||
405 | # in scan sets, so we specify it separately. | ||
406 | *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | ||
407 | func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" | ||
408 | ;; | ||
409 | *) | ||
410 | func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" | ||
411 | esac | ||
412 | } | ||
413 | |||
414 | |||
415 | # func_quote_for_expand arg | ||
416 | # Aesthetically quote ARG to be evaled later; same as above, | ||
417 | # but do not quote variable references. | ||
418 | func_quote_for_expand () | ||
419 | { | ||
420 | case $1 in | ||
421 | *[\\\`\"]*) | ||
422 | my_arg=`$ECHO "X$1" | $Xsed \ | ||
423 | -e "$double_quote_subst" -e "$sed_double_backslash"` ;; | ||
424 | *) | ||
425 | my_arg="$1" ;; | ||
426 | esac | ||
427 | |||
428 | case $my_arg in | ||
429 | # Double-quote args containing shell metacharacters to delay | ||
430 | # word splitting and command substitution for a subsequent eval. | ||
431 | # Many Bourne shells cannot handle close brackets correctly | ||
432 | # in scan sets, so we specify it separately. | ||
433 | *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") | ||
434 | my_arg="\"$my_arg\"" | ||
435 | ;; | ||
436 | esac | ||
437 | |||
438 | func_quote_for_expand_result="$my_arg" | ||
439 | } | ||
440 | |||
441 | |||
442 | # func_show_eval cmd [fail_exp] | ||
443 | # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is | ||
444 | # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP | ||
445 | # is given, then evaluate it. | ||
446 | func_show_eval () | ||
447 | { | ||
448 | my_cmd="$1" | ||
449 | my_fail_exp="${2-:}" | ||
450 | |||
451 | ${opt_silent-false} || { | ||
452 | func_quote_for_expand "$my_cmd" | ||
453 | eval "func_echo $func_quote_for_expand_result" | ||
454 | } | ||
455 | |||
456 | if ${opt_dry_run-false}; then :; else | ||
457 | eval "$my_cmd" | ||
458 | my_status=$? | ||
459 | if test "$my_status" -eq 0; then :; else | ||
460 | eval "(exit $my_status); $my_fail_exp" | ||
461 | fi | ||
462 | fi | ||
463 | } | ||
464 | |||
465 | |||
466 | # func_show_eval_locale cmd [fail_exp] | ||
467 | # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is | ||
468 | # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP | ||
469 | # is given, then evaluate it. Use the saved locale for evaluation. | ||
470 | func_show_eval_locale () | ||
471 | { | ||
472 | my_cmd="$1" | ||
473 | my_fail_exp="${2-:}" | ||
474 | |||
475 | ${opt_silent-false} || { | ||
476 | func_quote_for_expand "$my_cmd" | ||
477 | eval "func_echo $func_quote_for_expand_result" | ||
478 | } | ||
479 | |||
480 | if ${opt_dry_run-false}; then :; else | ||
481 | eval "$lt_user_locale | ||
482 | $my_cmd" | ||
483 | my_status=$? | ||
484 | eval "$lt_safe_locale" | ||
485 | if test "$my_status" -eq 0; then :; else | ||
486 | eval "(exit $my_status); $my_fail_exp" | ||
487 | fi | ||
488 | fi | ||
489 | } | ||
490 | |||
491 | |||
492 | |||
493 | |||
494 | |||
495 | # func_version | ||
496 | # Echo version message to standard output and exit. | ||
497 | func_version () | ||
498 | { | ||
499 | $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { | ||
500 | s/^# // | ||
501 | s/^# *$// | ||
502 | s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ | ||
503 | p | ||
504 | }' < "$progpath" | ||
505 | exit $? | ||
506 | } | ||
507 | |||
508 | # func_usage | ||
509 | # Echo short help message to standard output and exit. | ||
510 | func_usage () | ||
511 | { | ||
512 | $SED -n '/^# Usage:/,/# -h/ { | ||
513 | s/^# // | ||
514 | s/^# *$// | ||
515 | s/\$progname/'$progname'/ | ||
516 | p | ||
517 | }' < "$progpath" | ||
518 | $ECHO | ||
519 | $ECHO "run \`$progname --help | more' for full usage" | ||
520 | exit $? | ||
521 | } | ||
522 | |||
523 | # func_help | ||
524 | # Echo long help message to standard output and exit. | ||
525 | func_help () | ||
526 | { | ||
527 | $SED -n '/^# Usage:/,/# Report bugs to/ { | ||
528 | s/^# // | ||
529 | s/^# *$// | ||
530 | s*\$progname*'$progname'* | ||
531 | s*\$host*'"$host"'* | ||
532 | s*\$SHELL*'"$SHELL"'* | ||
533 | s*\$LTCC*'"$LTCC"'* | ||
534 | s*\$LTCFLAGS*'"$LTCFLAGS"'* | ||
535 | s*\$LD*'"$LD"'* | ||
536 | s/\$with_gnu_ld/'"$with_gnu_ld"'/ | ||
537 | s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ | ||
538 | s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ | ||
539 | p | ||
540 | }' < "$progpath" | ||
541 | exit $? | ||
542 | } | ||
543 | |||
544 | # func_missing_arg argname | ||
545 | # Echo program name prefixed message to standard error and set global | ||
546 | # exit_cmd. | ||
547 | func_missing_arg () | ||
548 | { | ||
549 | func_error "missing argument for $1" | ||
550 | exit_cmd=exit | ||
551 | } | ||
552 | |||
553 | exit_cmd=: | ||
554 | |||
555 | |||
556 | |||
557 | |||
558 | |||
559 | # Check that we have a working $ECHO. | ||
560 | if test "X$1" = X--no-reexec; then | ||
561 | # Discard the --no-reexec flag, and continue. | ||
562 | shift | ||
563 | elif test "X$1" = X--fallback-echo; then | ||
564 | # Avoid inline document here, it may be left over | ||
565 | : | ||
566 | elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then | ||
567 | # Yippee, $ECHO works! | ||
568 | : | ||
569 | else | ||
570 | # Restart under the correct shell, and then maybe $ECHO will work. | ||
571 | exec $SHELL "$progpath" --no-reexec ${1+"$@"} | ||
572 | fi | ||
573 | |||
574 | if test "X$1" = X--fallback-echo; then | ||
575 | # used as fallback echo | ||
576 | shift | ||
577 | cat <<EOF | ||
578 | $* | ||
579 | EOF | ||
580 | exit $EXIT_SUCCESS | ||
581 | fi | ||
582 | |||
583 | magic="%%%MAGIC variable%%%" | ||
584 | magic_exe="%%%MAGIC EXE variable%%%" | ||
585 | |||
586 | # Global variables. | ||
587 | # $mode is unset | ||
588 | nonopt= | ||
589 | execute_dlfiles= | ||
590 | preserve_args= | ||
591 | lo2o="s/\\.lo\$/.${objext}/" | ||
592 | o2lo="s/\\.${objext}\$/.lo/" | ||
593 | extracted_archives= | ||
594 | extracted_serial=0 | ||
595 | |||
596 | opt_dry_run=false | ||
597 | opt_duplicate_deps=false | ||
598 | opt_silent=false | ||
599 | opt_debug=: | ||
600 | |||
601 | # If this variable is set in any of the actions, the command in it | ||
602 | # will be execed at the end. This prevents here-documents from being | ||
603 | # left over by shells. | ||
604 | exec_cmd= | ||
605 | |||
606 | # func_fatal_configuration arg... | ||
607 | # Echo program name prefixed message to standard error, followed by | ||
608 | # a configuration failure hint, and exit. | ||
609 | func_fatal_configuration () | ||
610 | { | ||
611 | func_error ${1+"$@"} | ||
612 | func_error "See the $PACKAGE documentation for more information." | ||
613 | func_fatal_error "Fatal configuration error." | ||
614 | } | ||
615 | |||
616 | |||
617 | # func_config | ||
618 | # Display the configuration for all the tags in this script. | ||
619 | func_config () | ||
620 | { | ||
621 | re_begincf='^# ### BEGIN LIBTOOL' | ||
622 | re_endcf='^# ### END LIBTOOL' | ||
623 | |||
624 | # Default configuration. | ||
625 | $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" | ||
626 | |||
627 | # Now print the configurations for the tags. | ||
628 | for tagname in $taglist; do | ||
629 | $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" | ||
630 | done | ||
631 | |||
632 | exit $? | ||
633 | } | ||
634 | |||
635 | # func_features | ||
636 | # Display the features supported by this script. | ||
637 | func_features () | ||
638 | { | ||
639 | $ECHO "host: $host" | ||
640 | if test "$build_libtool_libs" = yes; then | ||
641 | $ECHO "enable shared libraries" | ||
642 | else | ||
643 | $ECHO "disable shared libraries" | ||
644 | fi | ||
645 | if test "$build_old_libs" = yes; then | ||
646 | $ECHO "enable static libraries" | ||
647 | else | ||
648 | $ECHO "disable static libraries" | ||
649 | fi | ||
650 | |||
651 | exit $? | ||
652 | } | ||
653 | |||
654 | # func_enable_tag tagname | ||
655 | # Verify that TAGNAME is valid, and either flag an error and exit, or | ||
656 | # enable the TAGNAME tag. We also add TAGNAME to the global $taglist | ||
657 | # variable here. | ||
658 | func_enable_tag () | ||
659 | { | ||
660 | # Global variable: | ||
661 | tagname="$1" | ||
662 | |||
663 | re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" | ||
664 | re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" | ||
665 | sed_extractcf="/$re_begincf/,/$re_endcf/p" | ||
666 | |||
667 | # Validate tagname. | ||
668 | case $tagname in | ||
669 | *[!-_A-Za-z0-9,/]*) | ||
670 | func_fatal_error "invalid tag name: $tagname" | ||
671 | ;; | ||
672 | esac | ||
673 | |||
674 | # Don't test for the "default" C tag, as we know it's | ||
675 | # there but not specially marked. | ||
676 | case $tagname in | ||
677 | CC) ;; | ||
678 | *) | ||
679 | if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then | ||
680 | taglist="$taglist $tagname" | ||
681 | |||
682 | # Evaluate the configuration. Be careful to quote the path | ||
683 | # and the sed script, to avoid splitting on whitespace, but | ||
684 | # also don't use non-portable quotes within backquotes within | ||
685 | # quotes we have to do it in 2 steps: | ||
686 | extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` | ||
687 | eval "$extractedcf" | ||
688 | else | ||
689 | func_error "ignoring unknown tag $tagname" | ||
690 | fi | ||
691 | ;; | ||
692 | esac | ||
693 | } | ||
694 | |||
695 | # Parse options once, thoroughly. This comes as soon as possible in | ||
696 | # the script to make things like `libtool --version' happen quickly. | ||
697 | { | ||
698 | |||
699 | # Shorthand for --mode=foo, only valid as the first argument | ||
700 | case $1 in | ||
701 | clean|clea|cle|cl) | ||
702 | shift; set dummy --mode clean ${1+"$@"}; shift | ||
703 | ;; | ||
704 | compile|compil|compi|comp|com|co|c) | ||
705 | shift; set dummy --mode compile ${1+"$@"}; shift | ||
706 | ;; | ||
707 | execute|execut|execu|exec|exe|ex|e) | ||
708 | shift; set dummy --mode execute ${1+"$@"}; shift | ||
709 | ;; | ||
710 | finish|finis|fini|fin|fi|f) | ||
711 | shift; set dummy --mode finish ${1+"$@"}; shift | ||
712 | ;; | ||
713 | install|instal|insta|inst|ins|in|i) | ||
714 | shift; set dummy --mode install ${1+"$@"}; shift | ||
715 | ;; | ||
716 | link|lin|li|l) | ||
717 | shift; set dummy --mode link ${1+"$@"}; shift | ||
718 | ;; | ||
719 | uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) | ||
720 | shift; set dummy --mode uninstall ${1+"$@"}; shift | ||
721 | ;; | ||
722 | esac | ||
723 | |||
724 | # Parse non-mode specific arguments: | ||
725 | while test "$#" -gt 0; do | ||
726 | opt="$1" | ||
727 | shift | ||
728 | |||
729 | case $opt in | ||
730 | --config) func_config ;; | ||
731 | |||
732 | --debug) preserve_args="$preserve_args $opt" | ||
733 | func_echo "enabling shell trace mode" | ||
734 | opt_debug='set -x' | ||
735 | $opt_debug | ||
736 | ;; | ||
737 | |||
738 | -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break | ||
739 | execute_dlfiles="$execute_dlfiles $1" | ||
740 | shift | ||
741 | ;; | ||
742 | |||
743 | --dry-run | -n) opt_dry_run=: ;; | ||
744 | --features) func_features ;; | ||
745 | --finish) mode="finish" ;; | ||
746 | |||
747 | --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break | ||
748 | case $1 in | ||
749 | # Valid mode arguments: | ||
750 | clean) ;; | ||
751 | compile) ;; | ||
752 | execute) ;; | ||
753 | finish) ;; | ||
754 | install) ;; | ||
755 | link) ;; | ||
756 | relink) ;; | ||
757 | uninstall) ;; | ||
758 | |||
759 | # Catch anything else as an error | ||
760 | *) func_error "invalid argument for $opt" | ||
761 | exit_cmd=exit | ||
762 | break | ||
763 | ;; | ||
764 | esac | ||
765 | |||
766 | mode="$1" | ||
767 | shift | ||
768 | ;; | ||
769 | |||
770 | --preserve-dup-deps) | ||
771 | opt_duplicate_deps=: ;; | ||
772 | |||
773 | --quiet|--silent) preserve_args="$preserve_args $opt" | ||
774 | opt_silent=: | ||
775 | ;; | ||
776 | |||
777 | --verbose| -v) preserve_args="$preserve_args $opt" | ||
778 | opt_silent=false | ||
779 | ;; | ||
780 | |||
781 | --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break | ||
782 | preserve_args="$preserve_args $opt $1" | ||
783 | func_enable_tag "$1" # tagname is set here | ||
784 | shift | ||
785 | ;; | ||
786 | |||
787 | # Separate optargs to long options: | ||
788 | -dlopen=*|--mode=*|--tag=*) | ||
789 | func_opt_split "$opt" | ||
790 | set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} | ||
791 | shift | ||
792 | ;; | ||
793 | |||
794 | -\?|-h) func_usage ;; | ||
795 | --help) opt_help=: ;; | ||
796 | --version) func_version ;; | ||
797 | |||
798 | -*) func_fatal_help "unrecognized option \`$opt'" ;; | ||
799 | |||
800 | *) nonopt="$opt" | ||
801 | break | ||
802 | ;; | ||
803 | esac | ||
804 | done | ||
805 | |||
806 | |||
807 | case $host in | ||
808 | *cygwin* | *mingw* | *pw32* | *cegcc*) | ||
809 | # don't eliminate duplications in $postdeps and $predeps | ||
810 | opt_duplicate_compiler_generated_deps=: | ||
811 | ;; | ||
812 | *) | ||
813 | opt_duplicate_compiler_generated_deps=$opt_duplicate_deps | ||
814 | ;; | ||
815 | esac | ||
816 | |||
817 | # Having warned about all mis-specified options, bail out if | ||
818 | # anything was wrong. | ||
819 | $exit_cmd $EXIT_FAILURE | ||
820 | } | ||
821 | |||
822 | # func_check_version_match | ||
823 | # Ensure that we are using m4 macros, and libtool script from the same | ||
824 | # release of libtool. | ||
825 | func_check_version_match () | ||
826 | { | ||
827 | if test "$package_revision" != "$macro_revision"; then | ||
828 | if test "$VERSION" != "$macro_version"; then | ||
829 | if test -z "$macro_version"; then | ||
830 | cat >&2 <<_LT_EOF | ||
831 | $progname: Version mismatch error. This is $PACKAGE $VERSION, but the | ||
832 | $progname: definition of this LT_INIT comes from an older release. | ||
833 | $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION | ||
834 | $progname: and run autoconf again. | ||
835 | _LT_EOF | ||
836 | else | ||
837 | cat >&2 <<_LT_EOF | ||
838 | $progname: Version mismatch error. This is $PACKAGE $VERSION, but the | ||
839 | $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. | ||
840 | $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION | ||
841 | $progname: and run autoconf again. | ||
842 | _LT_EOF | ||
843 | fi | ||
844 | else | ||
845 | cat >&2 <<_LT_EOF | ||
846 | $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, | ||
847 | $progname: but the definition of this LT_INIT comes from revision $macro_revision. | ||
848 | $progname: You should recreate aclocal.m4 with macros from revision $package_revision | ||
849 | $progname: of $PACKAGE $VERSION and run autoconf again. | ||
850 | _LT_EOF | ||
851 | fi | ||
852 | |||
853 | exit $EXIT_MISMATCH | ||
854 | fi | ||
855 | } | ||
856 | |||
857 | |||
858 | ## ----------- ## | ||
859 | ## Main. ## | ||
860 | ## ----------- ## | ||
861 | |||
862 | $opt_help || { | ||
863 | # Sanity checks first: | ||
864 | func_check_version_match | ||
865 | |||
866 | if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then | ||
867 | func_fatal_configuration "not configured to build any kind of library" | ||
868 | fi | ||
869 | |||
870 | test -z "$mode" && func_fatal_error "error: you must specify a MODE." | ||
871 | |||
872 | |||
873 | # Darwin sucks | ||
874 | eval std_shrext=\"$shrext_cmds\" | ||
875 | |||
876 | |||
877 | # Only execute mode is allowed to have -dlopen flags. | ||
878 | if test -n "$execute_dlfiles" && test "$mode" != execute; then | ||
879 | func_error "unrecognized option \`-dlopen'" | ||
880 | $ECHO "$help" 1>&2 | ||
881 | exit $EXIT_FAILURE | ||
882 | fi | ||
883 | |||
884 | # Change the help message to a mode-specific one. | ||
885 | generic_help="$help" | ||
886 | help="Try \`$progname --help --mode=$mode' for more information." | ||
887 | } | ||
888 | |||
889 | |||
890 | # func_lalib_p file | ||
891 | # True iff FILE is a libtool `.la' library or `.lo' object file. | ||
892 | # This function is only a basic sanity check; it will hardly flush out | ||
893 | # determined imposters. | ||
894 | func_lalib_p () | ||
895 | { | ||
896 | test -f "$1" && | ||
897 | $SED -e 4q "$1" 2>/dev/null \ | ||
898 | | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 | ||
899 | } | ||
900 | |||
901 | # func_lalib_unsafe_p file | ||
902 | # True iff FILE is a libtool `.la' library or `.lo' object file. | ||
903 | # This function implements the same check as func_lalib_p without | ||
904 | # resorting to external programs. To this end, it redirects stdin and | ||
905 | # closes it afterwards, without saving the original file descriptor. | ||
906 | # As a safety measure, use it only where a negative result would be | ||
907 | # fatal anyway. Works if `file' does not exist. | ||
908 | func_lalib_unsafe_p () | ||
909 | { | ||
910 | lalib_p=no | ||
911 | if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then | ||
912 | for lalib_p_l in 1 2 3 4 | ||
913 | do | ||
914 | read lalib_p_line | ||
915 | case "$lalib_p_line" in | ||
916 | \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; | ||
917 | esac | ||
918 | done | ||
919 | exec 0<&5 5<&- | ||
920 | fi | ||
921 | test "$lalib_p" = yes | ||
922 | } | ||
923 | |||
924 | # func_ltwrapper_script_p file | ||
925 | # True iff FILE is a libtool wrapper script | ||
926 | # This function is only a basic sanity check; it will hardly flush out | ||
927 | # determined imposters. | ||
928 | func_ltwrapper_script_p () | ||
929 | { | ||
930 | func_lalib_p "$1" | ||
931 | } | ||
932 | |||
933 | # func_ltwrapper_executable_p file | ||
934 | # True iff FILE is a libtool wrapper executable | ||
935 | # This function is only a basic sanity check; it will hardly flush out | ||
936 | # determined imposters. | ||
937 | func_ltwrapper_executable_p () | ||
938 | { | ||
939 | func_ltwrapper_exec_suffix= | ||
940 | case $1 in | ||
941 | *.exe) ;; | ||
942 | *) func_ltwrapper_exec_suffix=.exe ;; | ||
943 | esac | ||
944 | $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 | ||
945 | } | ||
946 | |||
947 | # func_ltwrapper_scriptname file | ||
948 | # Assumes file is an ltwrapper_executable | ||
949 | # uses $file to determine the appropriate filename for a | ||
950 | # temporary ltwrapper_script. | ||
951 | func_ltwrapper_scriptname () | ||
952 | { | ||
953 | func_ltwrapper_scriptname_result="" | ||
954 | if func_ltwrapper_executable_p "$1"; then | ||
955 | func_dirname_and_basename "$1" "" "." | ||
956 | func_stripname '' '.exe' "$func_basename_result" | ||
957 | func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" | ||
958 | fi | ||
959 | } | ||
960 | |||
961 | # func_ltwrapper_p file | ||
962 | # True iff FILE is a libtool wrapper script or wrapper executable | ||
963 | # This function is only a basic sanity check; it will hardly flush out | ||
964 | # determined imposters. | ||
965 | func_ltwrapper_p () | ||
966 | { | ||
967 | func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" | ||
968 | } | ||
969 | |||
970 | |||
971 | # func_execute_cmds commands fail_cmd | ||
972 | # Execute tilde-delimited COMMANDS. | ||
973 | # If FAIL_CMD is given, eval that upon failure. | ||
974 | # FAIL_CMD may read-access the current command in variable CMD! | ||
975 | func_execute_cmds () | ||
976 | { | ||
977 | $opt_debug | ||
978 | save_ifs=$IFS; IFS='~' | ||
979 | for cmd in $1; do | ||
980 | IFS=$save_ifs | ||
981 | eval cmd=\"$cmd\" | ||
982 | func_show_eval "$cmd" "${2-:}" | ||
983 | done | ||
984 | IFS=$save_ifs | ||
985 | } | ||
986 | |||
987 | |||
988 | # func_source file | ||
989 | # Source FILE, adding directory component if necessary. | ||
990 | # Note that it is not necessary on cygwin/mingw to append a dot to | ||
991 | # FILE even if both FILE and FILE.exe exist: automatic-append-.exe | ||
992 | # behavior happens only for exec(3), not for open(2)! Also, sourcing | ||
993 | # `FILE.' does not work on cygwin managed mounts. | ||
994 | func_source () | ||
995 | { | ||
996 | $opt_debug | ||
997 | case $1 in | ||
998 | */* | *\\*) . "$1" ;; | ||
999 | *) . "./$1" ;; | ||
1000 | esac | ||
1001 | } | ||
1002 | |||
1003 | |||
1004 | # func_infer_tag arg | ||
1005 | # Infer tagged configuration to use if any are available and | ||
1006 | # if one wasn't chosen via the "--tag" command line option. | ||
1007 | # Only attempt this if the compiler in the base compile | ||
1008 | # command doesn't match the default compiler. | ||
1009 | # arg is usually of the form 'gcc ...' | ||
1010 | func_infer_tag () | ||
1011 | { | ||
1012 | $opt_debug | ||
1013 | if test -n "$available_tags" && test -z "$tagname"; then | ||
1014 | CC_quoted= | ||
1015 | for arg in $CC; do | ||
1016 | func_quote_for_eval "$arg" | ||
1017 | CC_quoted="$CC_quoted $func_quote_for_eval_result" | ||
1018 | done | ||
1019 | case $@ in | ||
1020 | # Blanks in the command may have been stripped by the calling shell, | ||
1021 | # but not from the CC environment variable when configure was run. | ||
1022 | " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; | ||
1023 | # Blanks at the start of $base_compile will cause this to fail | ||
1024 | # if we don't check for them as well. | ||
1025 | *) | ||
1026 | for z in $available_tags; do | ||
1027 | if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then | ||
1028 | # Evaluate the configuration. | ||
1029 | eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" | ||
1030 | CC_quoted= | ||
1031 | for arg in $CC; do | ||
1032 | # Double-quote args containing other shell metacharacters. | ||
1033 | func_quote_for_eval "$arg" | ||
1034 | CC_quoted="$CC_quoted $func_quote_for_eval_result" | ||
1035 | done | ||
1036 | case "$@ " in | ||
1037 | " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) | ||
1038 | # The compiler in the base compile command matches | ||
1039 | # the one in the tagged configuration. | ||
1040 | # Assume this is the tagged configuration we want. | ||
1041 | tagname=$z | ||
1042 | break | ||
1043 | ;; | ||
1044 | esac | ||
1045 | fi | ||
1046 | done | ||
1047 | # If $tagname still isn't set, then no tagged configuration | ||
1048 | # was found and let the user know that the "--tag" command | ||
1049 | # line option must be used. | ||
1050 | if test -z "$tagname"; then | ||
1051 | func_echo "unable to infer tagged configuration" | ||
1052 | func_fatal_error "specify a tag with \`--tag'" | ||
1053 | # else | ||
1054 | # func_verbose "using $tagname tagged configuration" | ||
1055 | fi | ||
1056 | ;; | ||
1057 | esac | ||
1058 | fi | ||
1059 | } | ||
1060 | |||
1061 | |||
1062 | |||
1063 | # func_write_libtool_object output_name pic_name nonpic_name | ||
1064 | # Create a libtool object file (analogous to a ".la" file), | ||
1065 | # but don't create it if we're doing a dry run. | ||
1066 | func_write_libtool_object () | ||
1067 | { | ||
1068 | write_libobj=${1} | ||
1069 | if test "$build_libtool_libs" = yes; then | ||
1070 | write_lobj=\'${2}\' | ||
1071 | else | ||
1072 | write_lobj=none | ||
1073 | fi | ||
1074 | |||
1075 | if test "$build_old_libs" = yes; then | ||
1076 | write_oldobj=\'${3}\' | ||
1077 | else | ||
1078 | write_oldobj=none | ||
1079 | fi | ||
1080 | |||
1081 | $opt_dry_run || { | ||
1082 | cat >${write_libobj}T <<EOF | ||
1083 | # $write_libobj - a libtool object file | ||
1084 | # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION | ||
1085 | # | ||
1086 | # Please DO NOT delete this file! | ||
1087 | # It is necessary for linking the library. | ||
1088 | |||
1089 | # Name of the PIC object. | ||
1090 | pic_object=$write_lobj | ||
1091 | |||
1092 | # Name of the non-PIC object | ||
1093 | non_pic_object=$write_oldobj | ||
1094 | |||
1095 | EOF | ||
1096 | $MV "${write_libobj}T" "${write_libobj}" | ||
1097 | } | ||
1098 | } | ||
1099 | |||
1100 | # func_mode_compile arg... | ||
1101 | func_mode_compile () | ||
1102 | { | ||
1103 | $opt_debug | ||
1104 | # Get the compilation command and the source file. | ||
1105 | base_compile= | ||
1106 | srcfile="$nonopt" # always keep a non-empty value in "srcfile" | ||
1107 | suppress_opt=yes | ||
1108 | suppress_output= | ||
1109 | arg_mode=normal | ||
1110 | libobj= | ||
1111 | later= | ||
1112 | pie_flag= | ||
1113 | |||
1114 | for arg | ||
1115 | do | ||
1116 | case $arg_mode in | ||
1117 | arg ) | ||
1118 | # do not "continue". Instead, add this to base_compile | ||
1119 | lastarg="$arg" | ||
1120 | arg_mode=normal | ||
1121 | ;; | ||
1122 | |||
1123 | target ) | ||
1124 | libobj="$arg" | ||
1125 | arg_mode=normal | ||
1126 | continue | ||
1127 | ;; | ||
1128 | |||
1129 | normal ) | ||
1130 | # Accept any command-line options. | ||
1131 | case $arg in | ||
1132 | -o) | ||
1133 | test -n "$libobj" && \ | ||
1134 | func_fatal_error "you cannot specify \`-o' more than once" | ||
1135 | arg_mode=target | ||
1136 | continue | ||
1137 | ;; | ||
1138 | |||
1139 | -pie | -fpie | -fPIE) | ||
1140 | pie_flag="$pie_flag $arg" | ||
1141 | continue | ||
1142 | ;; | ||
1143 | |||
1144 | -shared | -static | -prefer-pic | -prefer-non-pic) | ||
1145 | later="$later $arg" | ||
1146 | continue | ||
1147 | ;; | ||
1148 | |||
1149 | -no-suppress) | ||
1150 | suppress_opt=no | ||
1151 | continue | ||
1152 | ;; | ||
1153 | |||
1154 | -Xcompiler) | ||
1155 | arg_mode=arg # the next one goes into the "base_compile" arg list | ||
1156 | continue # The current "srcfile" will either be retained or | ||
1157 | ;; # replaced later. I would guess that would be a bug. | ||
1158 | |||
1159 | -Wc,*) | ||
1160 | func_stripname '-Wc,' '' "$arg" | ||
1161 | args=$func_stripname_result | ||
1162 | lastarg= | ||
1163 | save_ifs="$IFS"; IFS=',' | ||
1164 | for arg in $args; do | ||
1165 | IFS="$save_ifs" | ||
1166 | func_quote_for_eval "$arg" | ||
1167 | lastarg="$lastarg $func_quote_for_eval_result" | ||
1168 | done | ||
1169 | IFS="$save_ifs" | ||
1170 | func_stripname ' ' '' "$lastarg" | ||
1171 | lastarg=$func_stripname_result | ||
1172 | |||
1173 | # Add the arguments to base_compile. | ||
1174 | base_compile="$base_compile $lastarg" | ||
1175 | continue | ||
1176 | ;; | ||
1177 | |||
1178 | *) | ||
1179 | # Accept the current argument as the source file. | ||
1180 | # The previous "srcfile" becomes the current argument. | ||
1181 | # | ||
1182 | lastarg="$srcfile" | ||
1183 | srcfile="$arg" | ||
1184 | ;; | ||
1185 | esac # case $arg | ||
1186 | ;; | ||
1187 | esac # case $arg_mode | ||
1188 | |||
1189 | # Aesthetically quote the previous argument. | ||
1190 | func_quote_for_eval "$lastarg" | ||
1191 | base_compile="$base_compile $func_quote_for_eval_result" | ||
1192 | done # for arg | ||
1193 | |||
1194 | case $arg_mode in | ||
1195 | arg) | ||
1196 | func_fatal_error "you must specify an argument for -Xcompile" | ||
1197 | ;; | ||
1198 | target) | ||
1199 | func_fatal_error "you must specify a target with \`-o'" | ||
1200 | ;; | ||
1201 | *) | ||
1202 | # Get the name of the library object. | ||
1203 | test -z "$libobj" && { | ||
1204 | func_basename "$srcfile" | ||
1205 | libobj="$func_basename_result" | ||
1206 | } | ||
1207 | ;; | ||
1208 | esac | ||
1209 | |||
1210 | # Recognize several different file suffixes. | ||
1211 | # If the user specifies -o file.o, it is replaced with file.lo | ||
1212 | case $libobj in | ||
1213 | *.[cCFSifmso] | \ | ||
1214 | *.ada | *.adb | *.ads | *.asm | \ | ||
1215 | *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ | ||
1216 | *.[fF][09]? | *.for | *.java | *.obj | *.sx) | ||
1217 | func_xform "$libobj" | ||
1218 | libobj=$func_xform_result | ||
1219 | ;; | ||
1220 | esac | ||
1221 | |||
1222 | case $libobj in | ||
1223 | *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; | ||
1224 | *) | ||
1225 | func_fatal_error "cannot determine name of library object from \`$libobj'" | ||
1226 | ;; | ||
1227 | esac | ||
1228 | |||
1229 | func_infer_tag $base_compile | ||
1230 | |||
1231 | for arg in $later; do | ||
1232 | case $arg in | ||
1233 | -shared) | ||
1234 | test "$build_libtool_libs" != yes && \ | ||
1235 | func_fatal_configuration "can not build a shared library" | ||
1236 | build_old_libs=no | ||
1237 | continue | ||
1238 | ;; | ||
1239 | |||
1240 | -static) | ||
1241 | build_libtool_libs=no | ||
1242 | build_old_libs=yes | ||
1243 | continue | ||
1244 | ;; | ||
1245 | |||
1246 | -prefer-pic) | ||
1247 | pic_mode=yes | ||
1248 | continue | ||
1249 | ;; | ||
1250 | |||
1251 | -prefer-non-pic) | ||
1252 | pic_mode=no | ||
1253 | continue | ||
1254 | ;; | ||
1255 | esac | ||
1256 | done | ||
1257 | |||
1258 | func_quote_for_eval "$libobj" | ||
1259 | test "X$libobj" != "X$func_quote_for_eval_result" \ | ||
1260 | && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ | ||
1261 | && func_warning "libobj name \`$libobj' may not contain shell special characters." | ||
1262 | func_dirname_and_basename "$obj" "/" "" | ||
1263 | objname="$func_basename_result" | ||
1264 | xdir="$func_dirname_result" | ||
1265 | lobj=${xdir}$objdir/$objname | ||
1266 | |||
1267 | test -z "$base_compile" && \ | ||
1268 | func_fatal_help "you must specify a compilation command" | ||
1269 | |||
1270 | # Delete any leftover library objects. | ||
1271 | if test "$build_old_libs" = yes; then | ||
1272 | removelist="$obj $lobj $libobj ${libobj}T" | ||
1273 | else | ||
1274 | removelist="$lobj $libobj ${libobj}T" | ||
1275 | fi | ||
1276 | |||
1277 | # On Cygwin there's no "real" PIC flag so we must build both object types | ||
1278 | case $host_os in | ||
1279 | cygwin* | mingw* | pw32* | os2* | cegcc*) | ||
1280 | pic_mode=default | ||
1281 | ;; | ||
1282 | esac | ||
1283 | if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then | ||
1284 | # non-PIC code in shared libraries is not supported | ||
1285 | pic_mode=default | ||
1286 | fi | ||
1287 | |||
1288 | # Calculate the filename of the output object if compiler does | ||
1289 | # not support -o with -c | ||
1290 | if test "$compiler_c_o" = no; then | ||
1291 | output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} | ||
1292 | lockfile="$output_obj.lock" | ||
1293 | else | ||
1294 | output_obj= | ||
1295 | need_locks=no | ||
1296 | lockfile= | ||
1297 | fi | ||
1298 | |||
1299 | # Lock this critical section if it is needed | ||
1300 | # We use this script file to make the link, it avoids creating a new file | ||
1301 | if test "$need_locks" = yes; then | ||
1302 | until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do | ||
1303 | func_echo "Waiting for $lockfile to be removed" | ||
1304 | sleep 2 | ||
1305 | done | ||
1306 | elif test "$need_locks" = warn; then | ||
1307 | if test -f "$lockfile"; then | ||
1308 | $ECHO "\ | ||
1309 | *** ERROR, $lockfile exists and contains: | ||
1310 | `cat $lockfile 2>/dev/null` | ||
1311 | |||
1312 | This indicates that another process is trying to use the same | ||
1313 | temporary object file, and libtool could not work around it because | ||
1314 | your compiler does not support \`-c' and \`-o' together. If you | ||
1315 | repeat this compilation, it may succeed, by chance, but you had better | ||
1316 | avoid parallel builds (make -j) in this platform, or get a better | ||
1317 | compiler." | ||
1318 | |||
1319 | $opt_dry_run || $RM $removelist | ||
1320 | exit $EXIT_FAILURE | ||
1321 | fi | ||
1322 | removelist="$removelist $output_obj" | ||
1323 | $ECHO "$srcfile" > "$lockfile" | ||
1324 | fi | ||
1325 | |||
1326 | $opt_dry_run || $RM $removelist | ||
1327 | removelist="$removelist $lockfile" | ||
1328 | trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 | ||
1329 | |||
1330 | if test -n "$fix_srcfile_path"; then | ||
1331 | eval srcfile=\"$fix_srcfile_path\" | ||
1332 | fi | ||
1333 | func_quote_for_eval "$srcfile" | ||
1334 | qsrcfile=$func_quote_for_eval_result | ||
1335 | |||
1336 | # Only build a PIC object if we are building libtool libraries. | ||
1337 | if test "$build_libtool_libs" = yes; then | ||
1338 | # Without this assignment, base_compile gets emptied. | ||
1339 | fbsd_hideous_sh_bug=$base_compile | ||
1340 | |||
1341 | if test "$pic_mode" != no; then | ||
1342 | command="$base_compile $qsrcfile $pic_flag" | ||
1343 | else | ||
1344 | # Don't build PIC code | ||
1345 | command="$base_compile $qsrcfile" | ||
1346 | fi | ||
1347 | |||
1348 | func_mkdir_p "$xdir$objdir" | ||
1349 | |||
1350 | if test -z "$output_obj"; then | ||
1351 | # Place PIC objects in $objdir | ||
1352 | command="$command -o $lobj" | ||
1353 | fi | ||
1354 | |||
1355 | func_show_eval_locale "$command" \ | ||
1356 | 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' | ||
1357 | |||
1358 | if test "$need_locks" = warn && | ||
1359 | test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then | ||
1360 | $ECHO "\ | ||
1361 | *** ERROR, $lockfile contains: | ||
1362 | `cat $lockfile 2>/dev/null` | ||
1363 | |||
1364 | but it should contain: | ||
1365 | $srcfile | ||
1366 | |||
1367 | This indicates that another process is trying to use the same | ||
1368 | temporary object file, and libtool could not work around it because | ||
1369 | your compiler does not support \`-c' and \`-o' together. If you | ||
1370 | repeat this compilation, it may succeed, by chance, but you had better | ||
1371 | avoid parallel builds (make -j) in this platform, or get a better | ||
1372 | compiler." | ||
1373 | |||
1374 | $opt_dry_run || $RM $removelist | ||
1375 | exit $EXIT_FAILURE | ||
1376 | fi | ||
1377 | |||
1378 | # Just move the object if needed, then go on to compile the next one | ||
1379 | if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then | ||
1380 | func_show_eval '$MV "$output_obj" "$lobj"' \ | ||
1381 | 'error=$?; $opt_dry_run || $RM $removelist; exit $error' | ||
1382 | fi | ||
1383 | |||
1384 | # Allow error messages only from the first compilation. | ||
1385 | if test "$suppress_opt" = yes; then | ||
1386 | suppress_output=' >/dev/null 2>&1' | ||
1387 | fi | ||
1388 | fi | ||
1389 | |||
1390 | # Only build a position-dependent object if we build old libraries. | ||
1391 | if test "$build_old_libs" = yes; then | ||
1392 | if test "$pic_mode" != yes; then | ||
1393 | # Don't build PIC code | ||
1394 | command="$base_compile $qsrcfile$pie_flag" | ||
1395 | else | ||
1396 | command="$base_compile $qsrcfile $pic_flag" | ||
1397 | fi | ||
1398 | if test "$compiler_c_o" = yes; then | ||
1399 | command="$command -o $obj" | ||
1400 | fi | ||
1401 | |||
1402 | # Suppress compiler output if we already did a PIC compilation. | ||
1403 | command="$command$suppress_output" | ||
1404 | func_show_eval_locale "$command" \ | ||
1405 | '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' | ||
1406 | |||
1407 | if test "$need_locks" = warn && | ||
1408 | test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then | ||
1409 | $ECHO "\ | ||
1410 | *** ERROR, $lockfile contains: | ||
1411 | `cat $lockfile 2>/dev/null` | ||
1412 | |||
1413 | but it should contain: | ||
1414 | $srcfile | ||
1415 | |||
1416 | This indicates that another process is trying to use the same | ||
1417 | temporary object file, and libtool could not work around it because | ||
1418 | your compiler does not support \`-c' and \`-o' together. If you | ||
1419 | repeat this compilation, it may succeed, by chance, but you had better | ||
1420 | avoid parallel builds (make -j) in this platform, or get a better | ||
1421 | compiler." | ||
1422 | |||
1423 | $opt_dry_run || $RM $removelist | ||
1424 | exit $EXIT_FAILURE | ||
1425 | fi | ||
1426 | |||
1427 | # Just move the object if needed | ||
1428 | if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then | ||
1429 | func_show_eval '$MV "$output_obj" "$obj"' \ | ||
1430 | 'error=$?; $opt_dry_run || $RM $removelist; exit $error' | ||
1431 | fi | ||
1432 | fi | ||
1433 | |||
1434 | $opt_dry_run || { | ||
1435 | func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" | ||
1436 | |||
1437 | # Unlock the critical section if it was locked | ||
1438 | if test "$need_locks" != no; then | ||
1439 | removelist=$lockfile | ||
1440 | $RM "$lockfile" | ||
1441 | fi | ||
1442 | } | ||
1443 | |||
1444 | exit $EXIT_SUCCESS | ||
1445 | } | ||
1446 | |||
1447 | $opt_help || { | ||
1448 | test "$mode" = compile && func_mode_compile ${1+"$@"} | ||
1449 | } | ||
1450 | |||
1451 | func_mode_help () | ||
1452 | { | ||
1453 | # We need to display help for each of the modes. | ||
1454 | case $mode in | ||
1455 | "") | ||
1456 | # Generic help is extracted from the usage comments | ||
1457 | # at the start of this file. | ||
1458 | func_help | ||
1459 | ;; | ||
1460 | |||
1461 | clean) | ||
1462 | $ECHO \ | ||
1463 | "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... | ||
1464 | |||
1465 | Remove files from the build directory. | ||
1466 | |||
1467 | RM is the name of the program to use to delete files associated with each FILE | ||
1468 | (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed | ||
1469 | to RM. | ||
1470 | |||
1471 | If FILE is a libtool library, object or program, all the files associated | ||
1472 | with it are deleted. Otherwise, only FILE itself is deleted using RM." | ||
1473 | ;; | ||
1474 | |||
1475 | compile) | ||
1476 | $ECHO \ | ||
1477 | "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE | ||
1478 | |||
1479 | Compile a source file into a libtool library object. | ||
1480 | |||
1481 | This mode accepts the following additional options: | ||
1482 | |||
1483 | -o OUTPUT-FILE set the output file name to OUTPUT-FILE | ||
1484 | -no-suppress do not suppress compiler output for multiple passes | ||
1485 | -prefer-pic try to building PIC objects only | ||
1486 | -prefer-non-pic try to building non-PIC objects only | ||
1487 | -shared do not build a \`.o' file suitable for static linking | ||
1488 | -static only build a \`.o' file suitable for static linking | ||
1489 | |||
1490 | COMPILE-COMMAND is a command to be used in creating a \`standard' object file | ||
1491 | from the given SOURCEFILE. | ||
1492 | |||
1493 | The output file name is determined by removing the directory component from | ||
1494 | SOURCEFILE, then substituting the C source code suffix \`.c' with the | ||
1495 | library object suffix, \`.lo'." | ||
1496 | ;; | ||
1497 | |||
1498 | execute) | ||
1499 | $ECHO \ | ||
1500 | "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... | ||
1501 | |||
1502 | Automatically set library path, then run a program. | ||
1503 | |||
1504 | This mode accepts the following additional options: | ||
1505 | |||
1506 | -dlopen FILE add the directory containing FILE to the library path | ||
1507 | |||
1508 | This mode sets the library path environment variable according to \`-dlopen' | ||
1509 | flags. | ||
1510 | |||
1511 | If any of the ARGS are libtool executable wrappers, then they are translated | ||
1512 | into their corresponding uninstalled binary, and any of their required library | ||
1513 | directories are added to the library path. | ||
1514 | |||
1515 | Then, COMMAND is executed, with ARGS as arguments." | ||
1516 | ;; | ||
1517 | |||
1518 | finish) | ||
1519 | $ECHO \ | ||
1520 | "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... | ||
1521 | |||
1522 | Complete the installation of libtool libraries. | ||
1523 | |||
1524 | Each LIBDIR is a directory that contains libtool libraries. | ||
1525 | |||
1526 | The commands that this mode executes may require superuser privileges. Use | ||
1527 | the \`--dry-run' option if you just want to see what would be executed." | ||
1528 | ;; | ||
1529 | |||
1530 | install) | ||
1531 | $ECHO \ | ||
1532 | "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... | ||
1533 | |||
1534 | Install executables or libraries. | ||
1535 | |||
1536 | INSTALL-COMMAND is the installation command. The first component should be | ||
1537 | either the \`install' or \`cp' program. | ||
1538 | |||
1539 | The following components of INSTALL-COMMAND are treated specially: | ||
1540 | |||
1541 | -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation | ||
1542 | |||
1543 | The rest of the components are interpreted as arguments to that command (only | ||
1544 | BSD-compatible install options are recognized)." | ||
1545 | ;; | ||
1546 | |||
1547 | link) | ||
1548 | $ECHO \ | ||
1549 | "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... | ||
1550 | |||
1551 | Link object files or libraries together to form another library, or to | ||
1552 | create an executable program. | ||
1553 | |||
1554 | LINK-COMMAND is a command using the C compiler that you would use to create | ||
1555 | a program from several object files. | ||
1556 | |||
1557 | The following components of LINK-COMMAND are treated specially: | ||
1558 | |||
1559 | -all-static do not do any dynamic linking at all | ||
1560 | -avoid-version do not add a version suffix if possible | ||
1561 | -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime | ||
1562 | -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols | ||
1563 | -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) | ||
1564 | -export-symbols SYMFILE | ||
1565 | try to export only the symbols listed in SYMFILE | ||
1566 | -export-symbols-regex REGEX | ||
1567 | try to export only the symbols matching REGEX | ||
1568 | -LLIBDIR search LIBDIR for required installed libraries | ||
1569 | -lNAME OUTPUT-FILE requires the installed library libNAME | ||
1570 | -module build a library that can dlopened | ||
1571 | -no-fast-install disable the fast-install mode | ||
1572 | -no-install link a not-installable executable | ||
1573 | -no-undefined declare that a library does not refer to external symbols | ||
1574 | -o OUTPUT-FILE create OUTPUT-FILE from the specified objects | ||
1575 | -objectlist FILE Use a list of object files found in FILE to specify objects | ||
1576 | -precious-files-regex REGEX | ||
1577 | don't remove output files matching REGEX | ||
1578 | -release RELEASE specify package release information | ||
1579 | -rpath LIBDIR the created library will eventually be installed in LIBDIR | ||
1580 | -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries | ||
1581 | -shared only do dynamic linking of libtool libraries | ||
1582 | -shrext SUFFIX override the standard shared library file extension | ||
1583 | -static do not do any dynamic linking of uninstalled libtool libraries | ||
1584 | -static-libtool-libs | ||
1585 | do not do any dynamic linking of libtool libraries | ||
1586 | -version-info CURRENT[:REVISION[:AGE]] | ||
1587 | specify library version info [each variable defaults to 0] | ||
1588 | -weak LIBNAME declare that the target provides the LIBNAME interface | ||
1589 | |||
1590 | All other options (arguments beginning with \`-') are ignored. | ||
1591 | |||
1592 | Every other argument is treated as a filename. Files ending in \`.la' are | ||
1593 | treated as uninstalled libtool libraries, other files are standard or library | ||
1594 | object files. | ||
1595 | |||
1596 | If the OUTPUT-FILE ends in \`.la', then a libtool library is created, | ||
1597 | only library objects (\`.lo' files) may be specified, and \`-rpath' is | ||
1598 | required, except when creating a convenience library. | ||
1599 | |||
1600 | If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created | ||
1601 | using \`ar' and \`ranlib', or on Windows using \`lib'. | ||
1602 | |||
1603 | If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file | ||
1604 | is created, otherwise an executable program is created." | ||
1605 | ;; | ||
1606 | |||
1607 | uninstall) | ||
1608 | $ECHO \ | ||
1609 | "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... | ||
1610 | |||
1611 | Remove libraries from an installation directory. | ||
1612 | |||
1613 | RM is the name of the program to use to delete files associated with each FILE | ||
1614 | (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed | ||
1615 | to RM. | ||
1616 | |||
1617 | If FILE is a libtool library, all the files associated with it are deleted. | ||
1618 | Otherwise, only FILE itself is deleted using RM." | ||
1619 | ;; | ||
1620 | |||
1621 | *) | ||
1622 | func_fatal_help "invalid operation mode \`$mode'" | ||
1623 | ;; | ||
1624 | esac | ||
1625 | |||
1626 | $ECHO | ||
1627 | $ECHO "Try \`$progname --help' for more information about other modes." | ||
1628 | |||
1629 | exit $? | ||
1630 | } | ||
1631 | |||
1632 | # Now that we've collected a possible --mode arg, show help if necessary | ||
1633 | $opt_help && func_mode_help | ||
1634 | |||
1635 | |||
1636 | # func_mode_execute arg... | ||
1637 | func_mode_execute () | ||
1638 | { | ||
1639 | $opt_debug | ||
1640 | # The first argument is the command name. | ||
1641 | cmd="$nonopt" | ||
1642 | test -z "$cmd" && \ | ||
1643 | func_fatal_help "you must specify a COMMAND" | ||
1644 | |||
1645 | # Handle -dlopen flags immediately. | ||
1646 | for file in $execute_dlfiles; do | ||
1647 | test -f "$file" \ | ||
1648 | || func_fatal_help "\`$file' is not a file" | ||
1649 | |||
1650 | dir= | ||
1651 | case $file in | ||
1652 | *.la) | ||
1653 | # Check to see that this really is a libtool archive. | ||
1654 | func_lalib_unsafe_p "$file" \ | ||
1655 | || func_fatal_help "\`$lib' is not a valid libtool archive" | ||
1656 | |||
1657 | # Read the libtool library. | ||
1658 | dlname= | ||
1659 | library_names= | ||
1660 | func_source "$file" | ||
1661 | |||
1662 | # Skip this library if it cannot be dlopened. | ||
1663 | if test -z "$dlname"; then | ||
1664 | # Warn if it was a shared library. | ||
1665 | test -n "$library_names" && \ | ||
1666 | func_warning "\`$file' was not linked with \`-export-dynamic'" | ||
1667 | continue | ||
1668 | fi | ||
1669 | |||
1670 | func_dirname "$file" "" "." | ||
1671 | dir="$func_dirname_result" | ||
1672 | |||
1673 | if test -f "$dir/$objdir/$dlname"; then | ||
1674 | dir="$dir/$objdir" | ||
1675 | else | ||
1676 | if test ! -f "$dir/$dlname"; then | ||
1677 | func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" | ||
1678 | fi | ||
1679 | fi | ||
1680 | ;; | ||
1681 | |||
1682 | *.lo) | ||
1683 | # Just add the directory containing the .lo file. | ||
1684 | func_dirname "$file" "" "." | ||
1685 | dir="$func_dirname_result" | ||
1686 | ;; | ||
1687 | |||
1688 | *) | ||
1689 | func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" | ||
1690 | continue | ||
1691 | ;; | ||
1692 | esac | ||
1693 | |||
1694 | # Get the absolute pathname. | ||
1695 | absdir=`cd "$dir" && pwd` | ||
1696 | test -n "$absdir" && dir="$absdir" | ||
1697 | |||
1698 | # Now add the directory to shlibpath_var. | ||
1699 | if eval "test -z \"\$$shlibpath_var\""; then | ||
1700 | eval "$shlibpath_var=\"\$dir\"" | ||
1701 | else | ||
1702 | eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" | ||
1703 | fi | ||
1704 | done | ||
1705 | |||
1706 | # This variable tells wrapper scripts just to set shlibpath_var | ||
1707 | # rather than running their programs. | ||
1708 | libtool_execute_magic="$magic" | ||
1709 | |||
1710 | # Check if any of the arguments is a wrapper script. | ||
1711 | args= | ||
1712 | for file | ||
1713 | do | ||
1714 | case $file in | ||
1715 | -*) ;; | ||
1716 | *) | ||
1717 | # Do a test to see if this is really a libtool program. | ||
1718 | if func_ltwrapper_script_p "$file"; then | ||
1719 | func_source "$file" | ||
1720 | # Transform arg to wrapped name. | ||
1721 | file="$progdir/$program" | ||
1722 | elif func_ltwrapper_executable_p "$file"; then | ||
1723 | func_ltwrapper_scriptname "$file" | ||
1724 | func_source "$func_ltwrapper_scriptname_result" | ||
1725 | # Transform arg to wrapped name. | ||
1726 | file="$progdir/$program" | ||
1727 | fi | ||
1728 | ;; | ||
1729 | esac | ||
1730 | # Quote arguments (to preserve shell metacharacters). | ||
1731 | func_quote_for_eval "$file" | ||
1732 | args="$args $func_quote_for_eval_result" | ||
1733 | done | ||
1734 | |||
1735 | if test "X$opt_dry_run" = Xfalse; then | ||
1736 | if test -n "$shlibpath_var"; then | ||
1737 | # Export the shlibpath_var. | ||
1738 | eval "export $shlibpath_var" | ||
1739 | fi | ||
1740 | |||
1741 | # Restore saved environment variables | ||
1742 | for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES | ||
1743 | do | ||
1744 | eval "if test \"\${save_$lt_var+set}\" = set; then | ||
1745 | $lt_var=\$save_$lt_var; export $lt_var | ||
1746 | else | ||
1747 | $lt_unset $lt_var | ||
1748 | fi" | ||
1749 | done | ||
1750 | |||
1751 | # Now prepare to actually exec the command. | ||
1752 | exec_cmd="\$cmd$args" | ||
1753 | else | ||
1754 | # Display what would be done. | ||
1755 | if test -n "$shlibpath_var"; then | ||
1756 | eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" | ||
1757 | $ECHO "export $shlibpath_var" | ||
1758 | fi | ||
1759 | $ECHO "$cmd$args" | ||
1760 | exit $EXIT_SUCCESS | ||
1761 | fi | ||
1762 | } | ||
1763 | |||
1764 | test "$mode" = execute && func_mode_execute ${1+"$@"} | ||
1765 | |||
1766 | |||
1767 | # func_mode_finish arg... | ||
1768 | func_mode_finish () | ||
1769 | { | ||
1770 | $opt_debug | ||
1771 | libdirs="$nonopt" | ||
1772 | admincmds= | ||
1773 | |||
1774 | if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then | ||
1775 | for dir | ||
1776 | do | ||
1777 | libdirs="$libdirs $dir" | ||
1778 | done | ||
1779 | |||
1780 | for libdir in $libdirs; do | ||
1781 | if test -n "$finish_cmds"; then | ||
1782 | # Do each command in the finish commands. | ||
1783 | func_execute_cmds "$finish_cmds" 'admincmds="$admincmds | ||
1784 | '"$cmd"'"' | ||
1785 | fi | ||
1786 | if test -n "$finish_eval"; then | ||
1787 | # Do the single finish_eval. | ||
1788 | eval cmds=\"$finish_eval\" | ||
1789 | $opt_dry_run || eval "$cmds" || admincmds="$admincmds | ||
1790 | $cmds" | ||
1791 | fi | ||
1792 | done | ||
1793 | fi | ||
1794 | |||
1795 | # Exit here if they wanted silent mode. | ||
1796 | $opt_silent && exit $EXIT_SUCCESS | ||
1797 | |||
1798 | $ECHO "X----------------------------------------------------------------------" | $Xsed | ||
1799 | $ECHO "Libraries have been installed in:" | ||
1800 | for libdir in $libdirs; do | ||
1801 | $ECHO " $libdir" | ||
1802 | done | ||
1803 | $ECHO | ||
1804 | $ECHO "If you ever happen to want to link against installed libraries" | ||
1805 | $ECHO "in a given directory, LIBDIR, you must either use libtool, and" | ||
1806 | $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" | ||
1807 | $ECHO "flag during linking and do at least one of the following:" | ||
1808 | if test -n "$shlibpath_var"; then | ||
1809 | $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" | ||
1810 | $ECHO " during execution" | ||
1811 | fi | ||
1812 | if test -n "$runpath_var"; then | ||
1813 | $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" | ||
1814 | $ECHO " during linking" | ||
1815 | fi | ||
1816 | if test -n "$hardcode_libdir_flag_spec"; then | ||
1817 | libdir=LIBDIR | ||
1818 | eval flag=\"$hardcode_libdir_flag_spec\" | ||
1819 | |||
1820 | $ECHO " - use the \`$flag' linker flag" | ||
1821 | fi | ||
1822 | if test -n "$admincmds"; then | ||
1823 | $ECHO " - have your system administrator run these commands:$admincmds" | ||
1824 | fi | ||
1825 | if test -f /etc/ld.so.conf; then | ||
1826 | $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" | ||
1827 | fi | ||
1828 | $ECHO | ||
1829 | |||
1830 | $ECHO "See any operating system documentation about shared libraries for" | ||
1831 | case $host in | ||
1832 | solaris2.[6789]|solaris2.1[0-9]) | ||
1833 | $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" | ||
1834 | $ECHO "pages." | ||
1835 | ;; | ||
1836 | *) | ||
1837 | $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." | ||
1838 | ;; | ||
1839 | esac | ||
1840 | $ECHO "X----------------------------------------------------------------------" | $Xsed | ||
1841 | exit $EXIT_SUCCESS | ||
1842 | } | ||
1843 | |||
1844 | test "$mode" = finish && func_mode_finish ${1+"$@"} | ||
1845 | |||
1846 | |||
1847 | # func_mode_install arg... | ||
1848 | func_mode_install () | ||
1849 | { | ||
1850 | $opt_debug | ||
1851 | # There may be an optional sh(1) argument at the beginning of | ||
1852 | # install_prog (especially on Windows NT). | ||
1853 | if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || | ||
1854 | # Allow the use of GNU shtool's install command. | ||
1855 | $ECHO "X$nonopt" | $GREP shtool >/dev/null; then | ||
1856 | # Aesthetically quote it. | ||
1857 | func_quote_for_eval "$nonopt" | ||
1858 | install_prog="$func_quote_for_eval_result " | ||
1859 | arg=$1 | ||
1860 | shift | ||
1861 | else | ||
1862 | install_prog= | ||
1863 | arg=$nonopt | ||
1864 | fi | ||
1865 | |||
1866 | # The real first argument should be the name of the installation program. | ||
1867 | # Aesthetically quote it. | ||
1868 | func_quote_for_eval "$arg" | ||
1869 | install_prog="$install_prog$func_quote_for_eval_result" | ||
1870 | |||
1871 | # We need to accept at least all the BSD install flags. | ||
1872 | dest= | ||
1873 | files= | ||
1874 | opts= | ||
1875 | prev= | ||
1876 | install_type= | ||
1877 | isdir=no | ||
1878 | stripme= | ||
1879 | for arg | ||
1880 | do | ||
1881 | if test -n "$dest"; then | ||
1882 | files="$files $dest" | ||
1883 | dest=$arg | ||
1884 | continue | ||
1885 | fi | ||
1886 | |||
1887 | case $arg in | ||
1888 | -d) isdir=yes ;; | ||
1889 | -f) | ||
1890 | case " $install_prog " in | ||
1891 | *[\\\ /]cp\ *) ;; | ||
1892 | *) prev=$arg ;; | ||
1893 | esac | ||
1894 | ;; | ||
1895 | -g | -m | -o) | ||
1896 | prev=$arg | ||
1897 | ;; | ||
1898 | -s) | ||
1899 | stripme=" -s" | ||
1900 | continue | ||
1901 | ;; | ||
1902 | -*) | ||
1903 | ;; | ||
1904 | *) | ||
1905 | # If the previous option needed an argument, then skip it. | ||
1906 | if test -n "$prev"; then | ||
1907 | prev= | ||
1908 | else | ||
1909 | dest=$arg | ||
1910 | continue | ||
1911 | fi | ||
1912 | ;; | ||
1913 | esac | ||
1914 | |||
1915 | # Aesthetically quote the argument. | ||
1916 | func_quote_for_eval "$arg" | ||
1917 | install_prog="$install_prog $func_quote_for_eval_result" | ||
1918 | done | ||
1919 | |||
1920 | test -z "$install_prog" && \ | ||
1921 | func_fatal_help "you must specify an install program" | ||
1922 | |||
1923 | test -n "$prev" && \ | ||
1924 | func_fatal_help "the \`$prev' option requires an argument" | ||
1925 | |||
1926 | if test -z "$files"; then | ||
1927 | if test -z "$dest"; then | ||
1928 | func_fatal_help "no file or destination specified" | ||
1929 | else | ||
1930 | func_fatal_help "you must specify a destination" | ||
1931 | fi | ||
1932 | fi | ||
1933 | |||
1934 | # Strip any trailing slash from the destination. | ||
1935 | func_stripname '' '/' "$dest" | ||
1936 | dest=$func_stripname_result | ||
1937 | |||
1938 | # Check to see that the destination is a directory. | ||
1939 | test -d "$dest" && isdir=yes | ||
1940 | if test "$isdir" = yes; then | ||
1941 | destdir="$dest" | ||
1942 | destname= | ||
1943 | else | ||
1944 | func_dirname_and_basename "$dest" "" "." | ||
1945 | destdir="$func_dirname_result" | ||
1946 | destname="$func_basename_result" | ||
1947 | |||
1948 | # Not a directory, so check to see that there is only one file specified. | ||
1949 | set dummy $files; shift | ||
1950 | test "$#" -gt 1 && \ | ||
1951 | func_fatal_help "\`$dest' is not a directory" | ||
1952 | fi | ||
1953 | case $destdir in | ||
1954 | [\\/]* | [A-Za-z]:[\\/]*) ;; | ||
1955 | *) | ||
1956 | for file in $files; do | ||
1957 | case $file in | ||
1958 | *.lo) ;; | ||
1959 | *) | ||
1960 | func_fatal_help "\`$destdir' must be an absolute directory name" | ||
1961 | ;; | ||
1962 | esac | ||
1963 | done | ||
1964 | ;; | ||
1965 | esac | ||
1966 | |||
1967 | # This variable tells wrapper scripts just to set variables rather | ||
1968 | # than running their programs. | ||
1969 | libtool_install_magic="$magic" | ||
1970 | |||
1971 | staticlibs= | ||
1972 | future_libdirs= | ||
1973 | current_libdirs= | ||
1974 | for file in $files; do | ||
1975 | |||
1976 | # Do each installation. | ||
1977 | case $file in | ||
1978 | *.$libext) | ||
1979 | # Do the static libraries later. | ||
1980 | staticlibs="$staticlibs $file" | ||
1981 | ;; | ||
1982 | |||
1983 | *.la) | ||
1984 | # Check to see that this really is a libtool archive. | ||
1985 | func_lalib_unsafe_p "$file" \ | ||
1986 | || func_fatal_help "\`$file' is not a valid libtool archive" | ||
1987 | |||
1988 | library_names= | ||
1989 | old_library= | ||
1990 | relink_command= | ||
1991 | func_source "$file" | ||
1992 | |||
1993 | # Add the libdir to current_libdirs if it is the destination. | ||
1994 | if test "X$destdir" = "X$libdir"; then | ||
1995 | case "$current_libdirs " in | ||
1996 | *" $libdir "*) ;; | ||
1997 | *) current_libdirs="$current_libdirs $libdir" ;; | ||
1998 | esac | ||
1999 | else | ||
2000 | # Note the libdir as a future libdir. | ||
2001 | case "$future_libdirs " in | ||
2002 | *" $libdir "*) ;; | ||
2003 | *) future_libdirs="$future_libdirs $libdir" ;; | ||
2004 | esac | ||
2005 | fi | ||
2006 | |||
2007 | func_dirname "$file" "/" "" | ||
2008 | dir="$func_dirname_result" | ||
2009 | dir="$dir$objdir" | ||
2010 | |||
2011 | if test -n "$relink_command"; then | ||
2012 | # Determine the prefix the user has applied to our future dir. | ||
2013 | inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` | ||
2014 | |||
2015 | # Don't allow the user to place us outside of our expected | ||
2016 | # location b/c this prevents finding dependent libraries that | ||
2017 | # are installed to the same prefix. | ||
2018 | # At present, this check doesn't affect windows .dll's that | ||
2019 | # are installed into $libdir/../bin (currently, that works fine) | ||
2020 | # but it's something to keep an eye on. | ||
2021 | test "$inst_prefix_dir" = "$destdir" && \ | ||
2022 | func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" | ||
2023 | |||
2024 | if test -n "$inst_prefix_dir"; then | ||
2025 | # Stick the inst_prefix_dir data into the link command. | ||
2026 | relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` | ||
2027 | else | ||
2028 | relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` | ||
2029 | fi | ||
2030 | |||
2031 | func_warning "relinking \`$file'" | ||
2032 | func_show_eval "$relink_command" \ | ||
2033 | 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' | ||
2034 | fi | ||
2035 | |||
2036 | # See the names of the shared library. | ||
2037 | set dummy $library_names; shift | ||
2038 | if test -n "$1"; then | ||
2039 | realname="$1" | ||
2040 | shift | ||
2041 | |||
2042 | srcname="$realname" | ||
2043 | test -n "$relink_command" && srcname="$realname"T | ||
2044 | |||
2045 | # Install the shared library and build the symlinks. | ||
2046 | func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ | ||
2047 | 'exit $?' | ||
2048 | tstripme="$stripme" | ||
2049 | case $host_os in | ||
2050 | cygwin* | mingw* | pw32* | cegcc*) | ||
2051 | case $realname in | ||
2052 | *.dll.a) | ||
2053 | tstripme="" | ||
2054 | ;; | ||
2055 | esac | ||
2056 | ;; | ||
2057 | esac | ||
2058 | if test -n "$tstripme" && test -n "$striplib"; then | ||
2059 | func_show_eval "$striplib $destdir/$realname" 'exit $?' | ||
2060 | fi | ||
2061 | |||
2062 | if test "$#" -gt 0; then | ||
2063 | # Delete the old symlinks, and create new ones. | ||
2064 | # Try `ln -sf' first, because the `ln' binary might depend on | ||
2065 | # the symlink we replace! Solaris /bin/ln does not understand -f, | ||
2066 | # so we also need to try rm && ln -s. | ||
2067 | for linkname | ||
2068 | do | ||
2069 | test "$linkname" != "$realname" \ | ||
2070 | && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" | ||
2071 | done | ||
2072 | fi | ||
2073 | |||
2074 | # Do each command in the postinstall commands. | ||
2075 | lib="$destdir/$realname" | ||
2076 | func_execute_cmds "$postinstall_cmds" 'exit $?' | ||
2077 | fi | ||
2078 | |||
2079 | # Install the pseudo-library for information purposes. | ||
2080 | func_basename "$file" | ||
2081 | name="$func_basename_result" | ||
2082 | instname="$dir/$name"i | ||
2083 | func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' | ||
2084 | |||
2085 | # Maybe install the static library, too. | ||
2086 | test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" | ||
2087 | ;; | ||
2088 | |||
2089 | *.lo) | ||
2090 | # Install (i.e. copy) a libtool object. | ||
2091 | |||
2092 | # Figure out destination file name, if it wasn't already specified. | ||
2093 | if test -n "$destname"; then | ||
2094 | destfile="$destdir/$destname" | ||
2095 | else | ||
2096 | func_basename "$file" | ||
2097 | destfile="$func_basename_result" | ||
2098 | destfile="$destdir/$destfile" | ||
2099 | fi | ||
2100 | |||
2101 | # Deduce the name of the destination old-style object file. | ||
2102 | case $destfile in | ||
2103 | *.lo) | ||
2104 | func_lo2o "$destfile" | ||
2105 | staticdest=$func_lo2o_result | ||
2106 | ;; | ||
2107 | *.$objext) | ||
2108 | staticdest="$destfile" | ||
2109 | destfile= | ||
2110 | ;; | ||
2111 | *) | ||
2112 | func_fatal_help "cannot copy a libtool object to \`$destfile'" | ||
2113 | ;; | ||
2114 | esac | ||
2115 | |||
2116 | # Install the libtool object if requested. | ||
2117 | test -n "$destfile" && \ | ||
2118 | func_show_eval "$install_prog $file $destfile" 'exit $?' | ||
2119 | |||
2120 | # Install the old object if enabled. | ||
2121 | if test "$build_old_libs" = yes; then | ||
2122 | # Deduce the name of the old-style object file. | ||
2123 | func_lo2o "$file" | ||
2124 | staticobj=$func_lo2o_result | ||
2125 | func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' | ||
2126 | fi | ||
2127 | exit $EXIT_SUCCESS | ||
2128 | ;; | ||
2129 | |||
2130 | *) | ||
2131 | # Figure out destination file name, if it wasn't already specified. | ||
2132 | if test -n "$destname"; then | ||
2133 | destfile="$destdir/$destname" | ||
2134 | else | ||
2135 | func_basename "$file" | ||
2136 | destfile="$func_basename_result" | ||
2137 | destfile="$destdir/$destfile" | ||
2138 | fi | ||
2139 | |||
2140 | # If the file is missing, and there is a .exe on the end, strip it | ||
2141 | # because it is most likely a libtool script we actually want to | ||
2142 | # install | ||
2143 | stripped_ext="" | ||
2144 | case $file in | ||
2145 | *.exe) | ||
2146 | if test ! -f "$file"; then | ||
2147 | func_stripname '' '.exe' "$file" | ||
2148 | file=$func_stripname_result | ||
2149 | stripped_ext=".exe" | ||
2150 | fi | ||
2151 | ;; | ||
2152 | esac | ||
2153 | |||
2154 | # Do a test to see if this is really a libtool program. | ||
2155 | case $host in | ||
2156 | *cygwin* | *mingw*) | ||
2157 | if func_ltwrapper_executable_p "$file"; then | ||
2158 | func_ltwrapper_scriptname "$file" | ||
2159 | wrapper=$func_ltwrapper_scriptname_result | ||
2160 | else | ||
2161 | func_stripname '' '.exe' "$file" | ||
2162 | wrapper=$func_stripname_result | ||
2163 | fi | ||
2164 | ;; | ||
2165 | *) | ||
2166 | wrapper=$file | ||
2167 | ;; | ||
2168 | esac | ||
2169 | if func_ltwrapper_script_p "$wrapper"; then | ||
2170 | notinst_deplibs= | ||
2171 | relink_command= | ||
2172 | |||
2173 | func_source "$wrapper" | ||
2174 | |||
2175 | # Check the variables that should have been set. | ||
2176 | test -z "$generated_by_libtool_version" && \ | ||
2177 | func_fatal_error "invalid libtool wrapper script \`$wrapper'" | ||
2178 | |||
2179 | finalize=yes | ||
2180 | for lib in $notinst_deplibs; do | ||
2181 | # Check to see that each library is installed. | ||
2182 | libdir= | ||
2183 | if test -f "$lib"; then | ||
2184 | func_source "$lib" | ||
2185 | fi | ||
2186 | libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test | ||
2187 | if test -n "$libdir" && test ! -f "$libfile"; then | ||
2188 | func_warning "\`$lib' has not been installed in \`$libdir'" | ||
2189 | finalize=no | ||
2190 | fi | ||
2191 | done | ||
2192 | |||
2193 | relink_command= | ||
2194 | func_source "$wrapper" | ||
2195 | |||
2196 | outputname= | ||
2197 | if test "$fast_install" = no && test -n "$relink_command"; then | ||
2198 | $opt_dry_run || { | ||
2199 | if test "$finalize" = yes; then | ||
2200 | tmpdir=`func_mktempdir` | ||
2201 | func_basename "$file$stripped_ext" | ||
2202 | file="$func_basename_result" | ||
2203 | outputname="$tmpdir/$file" | ||
2204 | # Replace the output file specification. | ||
2205 | relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` | ||
2206 | |||
2207 | $opt_silent || { | ||
2208 | func_quote_for_expand "$relink_command" | ||
2209 | eval "func_echo $func_quote_for_expand_result" | ||
2210 | } | ||
2211 | if eval "$relink_command"; then : | ||
2212 | else | ||
2213 | func_error "error: relink \`$file' with the above command before installing it" | ||
2214 | $opt_dry_run || ${RM}r "$tmpdir" | ||
2215 | continue | ||
2216 | fi | ||
2217 | file="$outputname" | ||
2218 | else | ||
2219 | func_warning "cannot relink \`$file'" | ||
2220 | fi | ||
2221 | } | ||
2222 | else | ||
2223 | # Install the binary that we compiled earlier. | ||
2224 | file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` | ||
2225 | fi | ||
2226 | fi | ||
2227 | |||
2228 | # remove .exe since cygwin /usr/bin/install will append another | ||
2229 | # one anyway | ||
2230 | case $install_prog,$host in | ||
2231 | */usr/bin/install*,*cygwin*) | ||
2232 | case $file:$destfile in | ||
2233 | *.exe:*.exe) | ||
2234 | # this is ok | ||
2235 | ;; | ||
2236 | *.exe:*) | ||
2237 | destfile=$destfile.exe | ||
2238 | ;; | ||
2239 | *:*.exe) | ||
2240 | func_stripname '' '.exe' "$destfile" | ||
2241 | destfile=$func_stripname_result | ||
2242 | ;; | ||
2243 | esac | ||
2244 | ;; | ||
2245 | esac | ||
2246 | func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' | ||
2247 | $opt_dry_run || if test -n "$outputname"; then | ||
2248 | ${RM}r "$tmpdir" | ||
2249 | fi | ||
2250 | ;; | ||
2251 | esac | ||
2252 | done | ||
2253 | |||
2254 | for file in $staticlibs; do | ||
2255 | func_basename "$file" | ||
2256 | name="$func_basename_result" | ||
2257 | |||
2258 | # Set up the ranlib parameters. | ||
2259 | oldlib="$destdir/$name" | ||
2260 | |||
2261 | func_show_eval "$install_prog \$file \$oldlib" 'exit $?' | ||
2262 | |||
2263 | if test -n "$stripme" && test -n "$old_striplib"; then | ||
2264 | func_show_eval "$old_striplib $oldlib" 'exit $?' | ||
2265 | fi | ||
2266 | |||
2267 | # Do each command in the postinstall commands. | ||
2268 | func_execute_cmds "$old_postinstall_cmds" 'exit $?' | ||
2269 | done | ||
2270 | |||
2271 | test -n "$future_libdirs" && \ | ||
2272 | func_warning "remember to run \`$progname --finish$future_libdirs'" | ||
2273 | |||
2274 | if test -n "$current_libdirs"; then | ||
2275 | # Maybe just do a dry run. | ||
2276 | $opt_dry_run && current_libdirs=" -n$current_libdirs" | ||
2277 | exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' | ||
2278 | else | ||
2279 | exit $EXIT_SUCCESS | ||
2280 | fi | ||
2281 | } | ||
2282 | |||
2283 | test "$mode" = install && func_mode_install ${1+"$@"} | ||
2284 | |||
2285 | |||
2286 | # func_generate_dlsyms outputname originator pic_p | ||
2287 | # Extract symbols from dlprefiles and create ${outputname}S.o with | ||
2288 | # a dlpreopen symbol table. | ||
2289 | func_generate_dlsyms () | ||
2290 | { | ||
2291 | $opt_debug | ||
2292 | my_outputname="$1" | ||
2293 | my_originator="$2" | ||
2294 | my_pic_p="${3-no}" | ||
2295 | my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` | ||
2296 | my_dlsyms= | ||
2297 | |||
2298 | if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then | ||
2299 | if test -n "$NM" && test -n "$global_symbol_pipe"; then | ||
2300 | my_dlsyms="${my_outputname}S.c" | ||
2301 | else | ||
2302 | func_error "not configured to extract global symbols from dlpreopened files" | ||
2303 | fi | ||
2304 | fi | ||
2305 | |||
2306 | if test -n "$my_dlsyms"; then | ||
2307 | case $my_dlsyms in | ||
2308 | "") ;; | ||
2309 | *.c) | ||
2310 | # Discover the nlist of each of the dlfiles. | ||
2311 | nlist="$output_objdir/${my_outputname}.nm" | ||
2312 | |||
2313 | func_show_eval "$RM $nlist ${nlist}S ${nlist}T" | ||
2314 | |||
2315 | # Parse the name list into a source file. | ||
2316 | func_verbose "creating $output_objdir/$my_dlsyms" | ||
2317 | |||
2318 | $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ | ||
2319 | /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ | ||
2320 | /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ | ||
2321 | |||
2322 | #ifdef __cplusplus | ||
2323 | extern \"C\" { | ||
2324 | #endif | ||
2325 | |||
2326 | /* External symbol declarations for the compiler. */\ | ||
2327 | " | ||
2328 | |||
2329 | if test "$dlself" = yes; then | ||
2330 | func_verbose "generating symbol list for \`$output'" | ||
2331 | |||
2332 | $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" | ||
2333 | |||
2334 | # Add our own program objects to the symbol list. | ||
2335 | progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` | ||
2336 | for progfile in $progfiles; do | ||
2337 | func_verbose "extracting global C symbols from \`$progfile'" | ||
2338 | $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" | ||
2339 | done | ||
2340 | |||
2341 | if test -n "$exclude_expsyms"; then | ||
2342 | $opt_dry_run || { | ||
2343 | eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' | ||
2344 | eval '$MV "$nlist"T "$nlist"' | ||
2345 | } | ||
2346 | fi | ||
2347 | |||
2348 | if test -n "$export_symbols_regex"; then | ||
2349 | $opt_dry_run || { | ||
2350 | eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' | ||
2351 | eval '$MV "$nlist"T "$nlist"' | ||
2352 | } | ||
2353 | fi | ||
2354 | |||
2355 | # Prepare the list of exported symbols | ||
2356 | if test -z "$export_symbols"; then | ||
2357 | export_symbols="$output_objdir/$outputname.exp" | ||
2358 | $opt_dry_run || { | ||
2359 | $RM $export_symbols | ||
2360 | eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' | ||
2361 | case $host in | ||
2362 | *cygwin* | *mingw* | *cegcc* ) | ||
2363 | eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' | ||
2364 | eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' | ||
2365 | ;; | ||
2366 | esac | ||
2367 | } | ||
2368 | else | ||
2369 | $opt_dry_run || { | ||
2370 | eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' | ||
2371 | eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' | ||
2372 | eval '$MV "$nlist"T "$nlist"' | ||
2373 | case $host in | ||
2374 | *cygwin | *mingw* | *cegcc* ) | ||
2375 | eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' | ||
2376 | eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' | ||
2377 | ;; | ||
2378 | esac | ||
2379 | } | ||
2380 | fi | ||
2381 | fi | ||
2382 | |||
2383 | for dlprefile in $dlprefiles; do | ||
2384 | func_verbose "extracting global C symbols from \`$dlprefile'" | ||
2385 | func_basename "$dlprefile" | ||
2386 | name="$func_basename_result" | ||
2387 | $opt_dry_run || { | ||
2388 | eval '$ECHO ": $name " >> "$nlist"' | ||
2389 | eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" | ||
2390 | } | ||
2391 | done | ||
2392 | |||
2393 | $opt_dry_run || { | ||
2394 | # Make sure we have at least an empty file. | ||
2395 | test -f "$nlist" || : > "$nlist" | ||
2396 | |||
2397 | if test -n "$exclude_expsyms"; then | ||
2398 | $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T | ||
2399 | $MV "$nlist"T "$nlist" | ||
2400 | fi | ||
2401 | |||
2402 | # Try sorting and uniquifying the output. | ||
2403 | if $GREP -v "^: " < "$nlist" | | ||
2404 | if sort -k 3 </dev/null >/dev/null 2>&1; then | ||
2405 | sort -k 3 | ||
2406 | else | ||
2407 | sort +2 | ||
2408 | fi | | ||
2409 | uniq > "$nlist"S; then | ||
2410 | : | ||
2411 | else | ||
2412 | $GREP -v "^: " < "$nlist" > "$nlist"S | ||
2413 | fi | ||
2414 | |||
2415 | if test -f "$nlist"S; then | ||
2416 | eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' | ||
2417 | else | ||
2418 | $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" | ||
2419 | fi | ||
2420 | |||
2421 | $ECHO >> "$output_objdir/$my_dlsyms" "\ | ||
2422 | |||
2423 | /* The mapping between symbol names and symbols. */ | ||
2424 | typedef struct { | ||
2425 | const char *name; | ||
2426 | void *address; | ||
2427 | } lt_dlsymlist; | ||
2428 | " | ||
2429 | case $host in | ||
2430 | *cygwin* | *mingw* | *cegcc* ) | ||
2431 | $ECHO >> "$output_objdir/$my_dlsyms" "\ | ||
2432 | /* DATA imports from DLLs on WIN32 con't be const, because | ||
2433 | runtime relocations are performed -- see ld's documentation | ||
2434 | on pseudo-relocs. */" | ||
2435 | lt_dlsym_const= ;; | ||
2436 | *osf5*) | ||
2437 | echo >> "$output_objdir/$my_dlsyms" "\ | ||
2438 | /* This system does not cope well with relocations in const data */" | ||
2439 | lt_dlsym_const= ;; | ||
2440 | *) | ||
2441 | lt_dlsym_const=const ;; | ||
2442 | esac | ||
2443 | |||
2444 | $ECHO >> "$output_objdir/$my_dlsyms" "\ | ||
2445 | extern $lt_dlsym_const lt_dlsymlist | ||
2446 | lt_${my_prefix}_LTX_preloaded_symbols[]; | ||
2447 | $lt_dlsym_const lt_dlsymlist | ||
2448 | lt_${my_prefix}_LTX_preloaded_symbols[] = | ||
2449 | {\ | ||
2450 | { \"$my_originator\", (void *) 0 }," | ||
2451 | |||
2452 | case $need_lib_prefix in | ||
2453 | no) | ||
2454 | eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" | ||
2455 | ;; | ||
2456 | *) | ||
2457 | eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" | ||
2458 | ;; | ||
2459 | esac | ||
2460 | $ECHO >> "$output_objdir/$my_dlsyms" "\ | ||
2461 | {0, (void *) 0} | ||
2462 | }; | ||
2463 | |||
2464 | /* This works around a problem in FreeBSD linker */ | ||
2465 | #ifdef FREEBSD_WORKAROUND | ||
2466 | static const void *lt_preloaded_setup() { | ||
2467 | return lt_${my_prefix}_LTX_preloaded_symbols; | ||
2468 | } | ||
2469 | #endif | ||
2470 | |||
2471 | #ifdef __cplusplus | ||
2472 | } | ||
2473 | #endif\ | ||
2474 | " | ||
2475 | } # !$opt_dry_run | ||
2476 | |||
2477 | pic_flag_for_symtable= | ||
2478 | case "$compile_command " in | ||
2479 | *" -static "*) ;; | ||
2480 | *) | ||
2481 | case $host in | ||
2482 | # compiling the symbol table file with pic_flag works around | ||
2483 | # a FreeBSD bug that causes programs to crash when -lm is | ||
2484 | # linked before any other PIC object. But we must not use | ||
2485 | # pic_flag when linking with -static. The problem exists in | ||
2486 | # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. | ||
2487 | *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) | ||
2488 | pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; | ||
2489 | *-*-hpux*) | ||
2490 | pic_flag_for_symtable=" $pic_flag" ;; | ||
2491 | *) | ||
2492 | if test "X$my_pic_p" != Xno; then | ||
2493 | pic_flag_for_symtable=" $pic_flag" | ||
2494 | fi | ||
2495 | ;; | ||
2496 | esac | ||
2497 | ;; | ||
2498 | esac | ||
2499 | symtab_cflags= | ||
2500 | for arg in $LTCFLAGS; do | ||
2501 | case $arg in | ||
2502 | -pie | -fpie | -fPIE) ;; | ||
2503 | *) symtab_cflags="$symtab_cflags $arg" ;; | ||
2504 | esac | ||
2505 | done | ||
2506 | |||
2507 | # Now compile the dynamic symbol file. | ||
2508 | func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' | ||
2509 | |||
2510 | # Clean up the generated files. | ||
2511 | func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' | ||
2512 | |||
2513 | # Transform the symbol file into the correct name. | ||
2514 | symfileobj="$output_objdir/${my_outputname}S.$objext" | ||
2515 | case $host in | ||
2516 | *cygwin* | *mingw* | *cegcc* ) | ||
2517 | if test -f "$output_objdir/$my_outputname.def"; then | ||
2518 | compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` | ||
2519 | finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` | ||
2520 | else | ||
2521 | compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` | ||
2522 | finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` | ||
2523 | fi | ||
2524 | ;; | ||
2525 | *) | ||
2526 | compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` | ||
2527 | finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` | ||
2528 | ;; | ||
2529 | esac | ||
2530 | ;; | ||
2531 | *) | ||
2532 | func_fatal_error "unknown suffix for \`$my_dlsyms'" | ||
2533 | ;; | ||
2534 | esac | ||
2535 | else | ||
2536 | # We keep going just in case the user didn't refer to | ||
2537 | # lt_preloaded_symbols. The linker will fail if global_symbol_pipe | ||
2538 | # really was required. | ||
2539 | |||
2540 | # Nullify the symbol file. | ||
2541 | compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` | ||
2542 | finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` | ||
2543 | fi | ||
2544 | } | ||
2545 | |||
2546 | # func_win32_libid arg | ||
2547 | # return the library type of file 'arg' | ||
2548 | # | ||
2549 | # Need a lot of goo to handle *both* DLLs and import libs | ||
2550 | # Has to be a shell function in order to 'eat' the argument | ||
2551 | # that is supplied when $file_magic_command is called. | ||
2552 | func_win32_libid () | ||
2553 | { | ||
2554 | $opt_debug | ||
2555 | win32_libid_type="unknown" | ||
2556 | win32_fileres=`file -L $1 2>/dev/null` | ||
2557 | case $win32_fileres in | ||
2558 | *ar\ archive\ import\ library*) # definitely import | ||
2559 | win32_libid_type="x86 archive import" | ||
2560 | ;; | ||
2561 | *ar\ archive*) # could be an import, or static | ||
2562 | if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | | ||
2563 | $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then | ||
2564 | win32_nmres=`eval $NM -f posix -A $1 | | ||
2565 | $SED -n -e ' | ||
2566 | 1,100{ | ||
2567 | / I /{ | ||
2568 | s,.*,import, | ||
2569 | p | ||
2570 | q | ||
2571 | } | ||
2572 | }'` | ||
2573 | case $win32_nmres in | ||
2574 | import*) win32_libid_type="x86 archive import";; | ||
2575 | *) win32_libid_type="x86 archive static";; | ||
2576 | esac | ||
2577 | fi | ||
2578 | ;; | ||
2579 | *DLL*) | ||
2580 | win32_libid_type="x86 DLL" | ||
2581 | ;; | ||
2582 | *executable*) # but shell scripts are "executable" too... | ||
2583 | case $win32_fileres in | ||
2584 | *MS\ Windows\ PE\ Intel*) | ||
2585 | win32_libid_type="x86 DLL" | ||
2586 | ;; | ||
2587 | esac | ||
2588 | ;; | ||
2589 | esac | ||
2590 | $ECHO "$win32_libid_type" | ||
2591 | } | ||
2592 | |||
2593 | |||
2594 | |||
2595 | # func_extract_an_archive dir oldlib | ||
2596 | func_extract_an_archive () | ||
2597 | { | ||
2598 | $opt_debug | ||
2599 | f_ex_an_ar_dir="$1"; shift | ||
2600 | f_ex_an_ar_oldlib="$1" | ||
2601 | func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' | ||
2602 | if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then | ||
2603 | : | ||
2604 | else | ||
2605 | func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" | ||
2606 | fi | ||
2607 | } | ||
2608 | |||
2609 | |||
2610 | # func_extract_archives gentop oldlib ... | ||
2611 | func_extract_archives () | ||
2612 | { | ||
2613 | $opt_debug | ||
2614 | my_gentop="$1"; shift | ||
2615 | my_oldlibs=${1+"$@"} | ||
2616 | my_oldobjs="" | ||
2617 | my_xlib="" | ||
2618 | my_xabs="" | ||
2619 | my_xdir="" | ||
2620 | |||
2621 | for my_xlib in $my_oldlibs; do | ||
2622 | # Extract the objects. | ||
2623 | case $my_xlib in | ||
2624 | [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; | ||
2625 | *) my_xabs=`pwd`"/$my_xlib" ;; | ||
2626 | esac | ||
2627 | func_basename "$my_xlib" | ||
2628 | my_xlib="$func_basename_result" | ||
2629 | my_xlib_u=$my_xlib | ||
2630 | while :; do | ||
2631 | case " $extracted_archives " in | ||
2632 | *" $my_xlib_u "*) | ||
2633 | func_arith $extracted_serial + 1 | ||
2634 | extracted_serial=$func_arith_result | ||
2635 | my_xlib_u=lt$extracted_serial-$my_xlib ;; | ||
2636 | *) break ;; | ||
2637 | esac | ||
2638 | done | ||
2639 | extracted_archives="$extracted_archives $my_xlib_u" | ||
2640 | my_xdir="$my_gentop/$my_xlib_u" | ||
2641 | |||
2642 | func_mkdir_p "$my_xdir" | ||
2643 | |||
2644 | case $host in | ||
2645 | *-darwin*) | ||
2646 | func_verbose "Extracting $my_xabs" | ||
2647 | # Do not bother doing anything if just a dry run | ||
2648 | $opt_dry_run || { | ||
2649 | darwin_orig_dir=`pwd` | ||
2650 | cd $my_xdir || exit $? | ||
2651 | darwin_archive=$my_xabs | ||
2652 | darwin_curdir=`pwd` | ||
2653 | darwin_base_archive=`basename "$darwin_archive"` | ||
2654 | darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` | ||
2655 | if test -n "$darwin_arches"; then | ||
2656 | darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` | ||
2657 | darwin_arch= | ||
2658 | func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" | ||
2659 | for darwin_arch in $darwin_arches ; do | ||
2660 | func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" | ||
2661 | $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" | ||
2662 | cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" | ||
2663 | func_extract_an_archive "`pwd`" "${darwin_base_archive}" | ||
2664 | cd "$darwin_curdir" | ||
2665 | $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" | ||
2666 | done # $darwin_arches | ||
2667 | ## Okay now we've a bunch of thin objects, gotta fatten them up :) | ||
2668 | darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` | ||
2669 | darwin_file= | ||
2670 | darwin_files= | ||
2671 | for darwin_file in $darwin_filelist; do | ||
2672 | darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` | ||
2673 | $LIPO -create -output "$darwin_file" $darwin_files | ||
2674 | done # $darwin_filelist | ||
2675 | $RM -rf unfat-$$ | ||
2676 | cd "$darwin_orig_dir" | ||
2677 | else | ||
2678 | cd $darwin_orig_dir | ||
2679 | func_extract_an_archive "$my_xdir" "$my_xabs" | ||
2680 | fi # $darwin_arches | ||
2681 | } # !$opt_dry_run | ||
2682 | ;; | ||
2683 | *) | ||
2684 | func_extract_an_archive "$my_xdir" "$my_xabs" | ||
2685 | ;; | ||
2686 | esac | ||
2687 | my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` | ||
2688 | done | ||
2689 | |||
2690 | func_extract_archives_result="$my_oldobjs" | ||
2691 | } | ||
2692 | |||
2693 | |||
2694 | |||
2695 | # func_emit_wrapper_part1 [arg=no] | ||
2696 | # | ||
2697 | # Emit the first part of a libtool wrapper script on stdout. | ||
2698 | # For more information, see the description associated with | ||
2699 | # func_emit_wrapper(), below. | ||
2700 | func_emit_wrapper_part1 () | ||
2701 | { | ||
2702 | func_emit_wrapper_part1_arg1=no | ||
2703 | if test -n "$1" ; then | ||
2704 | func_emit_wrapper_part1_arg1=$1 | ||
2705 | fi | ||
2706 | |||
2707 | $ECHO "\ | ||
2708 | #! $SHELL | ||
2709 | |||
2710 | # $output - temporary wrapper script for $objdir/$outputname | ||
2711 | # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION | ||
2712 | # | ||
2713 | # The $output program cannot be directly executed until all the libtool | ||
2714 | # libraries that it depends on are installed. | ||
2715 | # | ||
2716 | # This wrapper script should never be moved out of the build directory. | ||
2717 | # If it is, it will not operate correctly. | ||
2718 | |||
2719 | # Sed substitution that helps us do robust quoting. It backslashifies | ||
2720 | # metacharacters that are still active within double-quoted strings. | ||
2721 | Xsed='${SED} -e 1s/^X//' | ||
2722 | sed_quote_subst='$sed_quote_subst' | ||
2723 | |||
2724 | # Be Bourne compatible | ||
2725 | if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then | ||
2726 | emulate sh | ||
2727 | NULLCMD=: | ||
2728 | # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which | ||
2729 | # is contrary to our usage. Disable this feature. | ||
2730 | alias -g '\${1+\"\$@\"}'='\"\$@\"' | ||
2731 | setopt NO_GLOB_SUBST | ||
2732 | else | ||
2733 | case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac | ||
2734 | fi | ||
2735 | BIN_SH=xpg4; export BIN_SH # for Tru64 | ||
2736 | DUALCASE=1; export DUALCASE # for MKS sh | ||
2737 | |||
2738 | # The HP-UX ksh and POSIX shell print the target directory to stdout | ||
2739 | # if CDPATH is set. | ||
2740 | (unset CDPATH) >/dev/null 2>&1 && unset CDPATH | ||
2741 | |||
2742 | relink_command=\"$relink_command\" | ||
2743 | |||
2744 | # This environment variable determines our operation mode. | ||
2745 | if test \"\$libtool_install_magic\" = \"$magic\"; then | ||
2746 | # install mode needs the following variables: | ||
2747 | generated_by_libtool_version='$macro_version' | ||
2748 | notinst_deplibs='$notinst_deplibs' | ||
2749 | else | ||
2750 | # When we are sourced in execute mode, \$file and \$ECHO are already set. | ||
2751 | if test \"\$libtool_execute_magic\" != \"$magic\"; then | ||
2752 | ECHO=\"$qecho\" | ||
2753 | file=\"\$0\" | ||
2754 | # Make sure echo works. | ||
2755 | if test \"X\$1\" = X--no-reexec; then | ||
2756 | # Discard the --no-reexec flag, and continue. | ||
2757 | shift | ||
2758 | elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then | ||
2759 | # Yippee, \$ECHO works! | ||
2760 | : | ||
2761 | else | ||
2762 | # Restart under the correct shell, and then maybe \$ECHO will work. | ||
2763 | exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} | ||
2764 | fi | ||
2765 | fi\ | ||
2766 | " | ||
2767 | $ECHO "\ | ||
2768 | |||
2769 | # Find the directory that this script lives in. | ||
2770 | thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` | ||
2771 | test \"x\$thisdir\" = \"x\$file\" && thisdir=. | ||
2772 | |||
2773 | # Follow symbolic links until we get to the real thisdir. | ||
2774 | file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` | ||
2775 | while test -n \"\$file\"; do | ||
2776 | destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` | ||
2777 | |||
2778 | # If there was a directory component, then change thisdir. | ||
2779 | if test \"x\$destdir\" != \"x\$file\"; then | ||
2780 | case \"\$destdir\" in | ||
2781 | [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; | ||
2782 | *) thisdir=\"\$thisdir/\$destdir\" ;; | ||
2783 | esac | ||
2784 | fi | ||
2785 | |||
2786 | file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` | ||
2787 | file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` | ||
2788 | done | ||
2789 | " | ||
2790 | } | ||
2791 | # end: func_emit_wrapper_part1 | ||
2792 | |||
2793 | # func_emit_wrapper_part2 [arg=no] | ||
2794 | # | ||
2795 | # Emit the second part of a libtool wrapper script on stdout. | ||
2796 | # For more information, see the description associated with | ||
2797 | # func_emit_wrapper(), below. | ||
2798 | func_emit_wrapper_part2 () | ||
2799 | { | ||
2800 | func_emit_wrapper_part2_arg1=no | ||
2801 | if test -n "$1" ; then | ||
2802 | func_emit_wrapper_part2_arg1=$1 | ||
2803 | fi | ||
2804 | |||
2805 | $ECHO "\ | ||
2806 | |||
2807 | # Usually 'no', except on cygwin/mingw when embedded into | ||
2808 | # the cwrapper. | ||
2809 | WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 | ||
2810 | if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then | ||
2811 | # special case for '.' | ||
2812 | if test \"\$thisdir\" = \".\"; then | ||
2813 | thisdir=\`pwd\` | ||
2814 | fi | ||
2815 | # remove .libs from thisdir | ||
2816 | case \"\$thisdir\" in | ||
2817 | *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; | ||
2818 | $objdir ) thisdir=. ;; | ||
2819 | esac | ||
2820 | fi | ||
2821 | |||
2822 | # Try to get the absolute directory name. | ||
2823 | absdir=\`cd \"\$thisdir\" && pwd\` | ||
2824 | test -n \"\$absdir\" && thisdir=\"\$absdir\" | ||
2825 | " | ||
2826 | |||
2827 | if test "$fast_install" = yes; then | ||
2828 | $ECHO "\ | ||
2829 | program=lt-'$outputname'$exeext | ||
2830 | progdir=\"\$thisdir/$objdir\" | ||
2831 | |||
2832 | if test ! -f \"\$progdir/\$program\" || | ||
2833 | { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ | ||
2834 | test \"X\$file\" != \"X\$progdir/\$program\"; }; then | ||
2835 | |||
2836 | file=\"\$\$-\$program\" | ||
2837 | |||
2838 | if test ! -d \"\$progdir\"; then | ||
2839 | $MKDIR \"\$progdir\" | ||
2840 | else | ||
2841 | $RM \"\$progdir/\$file\" | ||
2842 | fi" | ||
2843 | |||
2844 | $ECHO "\ | ||
2845 | |||
2846 | # relink executable if necessary | ||
2847 | if test -n \"\$relink_command\"; then | ||
2848 | if relink_command_output=\`eval \$relink_command 2>&1\`; then : | ||
2849 | else | ||
2850 | $ECHO \"\$relink_command_output\" >&2 | ||
2851 | $RM \"\$progdir/\$file\" | ||
2852 | exit 1 | ||
2853 | fi | ||
2854 | fi | ||
2855 | |||
2856 | $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || | ||
2857 | { $RM \"\$progdir/\$program\"; | ||
2858 | $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } | ||
2859 | $RM \"\$progdir/\$file\" | ||
2860 | fi" | ||
2861 | else | ||
2862 | $ECHO "\ | ||
2863 | program='$outputname' | ||
2864 | progdir=\"\$thisdir/$objdir\" | ||
2865 | " | ||
2866 | fi | ||
2867 | |||
2868 | $ECHO "\ | ||
2869 | |||
2870 | if test -f \"\$progdir/\$program\"; then" | ||
2871 | |||
2872 | # Export our shlibpath_var if we have one. | ||
2873 | if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then | ||
2874 | $ECHO "\ | ||
2875 | # Add our own library path to $shlibpath_var | ||
2876 | $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" | ||
2877 | |||
2878 | # Some systems cannot cope with colon-terminated $shlibpath_var | ||
2879 | # The second colon is a workaround for a bug in BeOS R4 sed | ||
2880 | $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` | ||
2881 | |||
2882 | export $shlibpath_var | ||
2883 | " | ||
2884 | fi | ||
2885 | |||
2886 | # fixup the dll searchpath if we need to. | ||
2887 | if test -n "$dllsearchpath"; then | ||
2888 | $ECHO "\ | ||
2889 | # Add the dll search path components to the executable PATH | ||
2890 | PATH=$dllsearchpath:\$PATH | ||
2891 | " | ||
2892 | fi | ||
2893 | |||
2894 | $ECHO "\ | ||
2895 | if test \"\$libtool_execute_magic\" != \"$magic\"; then | ||
2896 | # Run the actual program with our arguments. | ||
2897 | " | ||
2898 | case $host in | ||
2899 | # Backslashes separate directories on plain windows | ||
2900 | *-*-mingw | *-*-os2* | *-cegcc*) | ||
2901 | $ECHO "\ | ||
2902 | exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} | ||
2903 | " | ||
2904 | ;; | ||
2905 | |||
2906 | *) | ||
2907 | $ECHO "\ | ||
2908 | exec \"\$progdir/\$program\" \${1+\"\$@\"} | ||
2909 | " | ||
2910 | ;; | ||
2911 | esac | ||
2912 | $ECHO "\ | ||
2913 | \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 | ||
2914 | exit 1 | ||
2915 | fi | ||
2916 | else | ||
2917 | # The program doesn't exist. | ||
2918 | \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 | ||
2919 | \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 | ||
2920 | $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 | ||
2921 | exit 1 | ||
2922 | fi | ||
2923 | fi\ | ||
2924 | " | ||
2925 | } | ||
2926 | # end: func_emit_wrapper_part2 | ||
2927 | |||
2928 | |||
2929 | # func_emit_wrapper [arg=no] | ||
2930 | # | ||
2931 | # Emit a libtool wrapper script on stdout. | ||
2932 | # Don't directly open a file because we may want to | ||
2933 | # incorporate the script contents within a cygwin/mingw | ||
2934 | # wrapper executable. Must ONLY be called from within | ||
2935 | # func_mode_link because it depends on a number of variables | ||
2936 | # set therein. | ||
2937 | # | ||
2938 | # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR | ||
2939 | # variable will take. If 'yes', then the emitted script | ||
2940 | # will assume that the directory in which it is stored is | ||
2941 | # the $objdir directory. This is a cygwin/mingw-specific | ||
2942 | # behavior. | ||
2943 | func_emit_wrapper () | ||
2944 | { | ||
2945 | func_emit_wrapper_arg1=no | ||
2946 | if test -n "$1" ; then | ||
2947 | func_emit_wrapper_arg1=$1 | ||
2948 | fi | ||
2949 | |||
2950 | # split this up so that func_emit_cwrapperexe_src | ||
2951 | # can call each part independently. | ||
2952 | func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" | ||
2953 | func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" | ||
2954 | } | ||
2955 | |||
2956 | |||
2957 | # func_to_host_path arg | ||
2958 | # | ||
2959 | # Convert paths to host format when used with build tools. | ||
2960 | # Intended for use with "native" mingw (where libtool itself | ||
2961 | # is running under the msys shell), or in the following cross- | ||
2962 | # build environments: | ||
2963 | # $build $host | ||
2964 | # mingw (msys) mingw [e.g. native] | ||
2965 | # cygwin mingw | ||
2966 | # *nix + wine mingw | ||
2967 | # where wine is equipped with the `winepath' executable. | ||
2968 | # In the native mingw case, the (msys) shell automatically | ||
2969 | # converts paths for any non-msys applications it launches, | ||
2970 | # but that facility isn't available from inside the cwrapper. | ||
2971 | # Similar accommodations are necessary for $host mingw and | ||
2972 | # $build cygwin. Calling this function does no harm for other | ||
2973 | # $host/$build combinations not listed above. | ||
2974 | # | ||
2975 | # ARG is the path (on $build) that should be converted to | ||
2976 | # the proper representation for $host. The result is stored | ||
2977 | # in $func_to_host_path_result. | ||
2978 | func_to_host_path () | ||
2979 | { | ||
2980 | func_to_host_path_result="$1" | ||
2981 | if test -n "$1" ; then | ||
2982 | case $host in | ||
2983 | *mingw* ) | ||
2984 | lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' | ||
2985 | case $build in | ||
2986 | *mingw* ) # actually, msys | ||
2987 | # awkward: cmd appends spaces to result | ||
2988 | lt_sed_strip_trailing_spaces="s/[ ]*\$//" | ||
2989 | func_to_host_path_tmp1=`( cmd //c echo "$1" |\ | ||
2990 | $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` | ||
2991 | func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ | ||
2992 | $SED -e "$lt_sed_naive_backslashify"` | ||
2993 | ;; | ||
2994 | *cygwin* ) | ||
2995 | func_to_host_path_tmp1=`cygpath -w "$1"` | ||
2996 | func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ | ||
2997 | $SED -e "$lt_sed_naive_backslashify"` | ||
2998 | ;; | ||
2999 | * ) | ||
3000 | # Unfortunately, winepath does not exit with a non-zero | ||
3001 | # error code, so we are forced to check the contents of | ||
3002 | # stdout. On the other hand, if the command is not | ||
3003 | # found, the shell will set an exit code of 127 and print | ||
3004 | # *an error message* to stdout. So we must check for both | ||
3005 | # error code of zero AND non-empty stdout, which explains | ||
3006 | # the odd construction: | ||
3007 | func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` | ||
3008 | if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then | ||
3009 | func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ | ||
3010 | $SED -e "$lt_sed_naive_backslashify"` | ||
3011 | else | ||
3012 | # Allow warning below. | ||
3013 | func_to_host_path_result="" | ||
3014 | fi | ||
3015 | ;; | ||
3016 | esac | ||
3017 | if test -z "$func_to_host_path_result" ; then | ||
3018 | func_error "Could not determine host path corresponding to" | ||
3019 | func_error " '$1'" | ||
3020 | func_error "Continuing, but uninstalled executables may not work." | ||
3021 | # Fallback: | ||
3022 | func_to_host_path_result="$1" | ||
3023 | fi | ||
3024 | ;; | ||
3025 | esac | ||
3026 | fi | ||
3027 | } | ||
3028 | # end: func_to_host_path | ||
3029 | |||
3030 | # func_to_host_pathlist arg | ||
3031 | # | ||
3032 | # Convert pathlists to host format when used with build tools. | ||
3033 | # See func_to_host_path(), above. This function supports the | ||
3034 | # following $build/$host combinations (but does no harm for | ||
3035 | # combinations not listed here): | ||
3036 | # $build $host | ||
3037 | # mingw (msys) mingw [e.g. native] | ||
3038 | # cygwin mingw | ||
3039 | # *nix + wine mingw | ||
3040 | # | ||
3041 | # Path separators are also converted from $build format to | ||
3042 | # $host format. If ARG begins or ends with a path separator | ||
3043 | # character, it is preserved (but converted to $host format) | ||
3044 | # on output. | ||
3045 | # | ||
3046 | # ARG is a pathlist (on $build) that should be converted to | ||
3047 | # the proper representation on $host. The result is stored | ||
3048 | # in $func_to_host_pathlist_result. | ||
3049 | func_to_host_pathlist () | ||
3050 | { | ||
3051 | func_to_host_pathlist_result="$1" | ||
3052 | if test -n "$1" ; then | ||
3053 | case $host in | ||
3054 | *mingw* ) | ||
3055 | lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' | ||
3056 | # Remove leading and trailing path separator characters from | ||
3057 | # ARG. msys behavior is inconsistent here, cygpath turns them | ||
3058 | # into '.;' and ';.', and winepath ignores them completely. | ||
3059 | func_to_host_pathlist_tmp2="$1" | ||
3060 | # Once set for this call, this variable should not be | ||
3061 | # reassigned. It is used in tha fallback case. | ||
3062 | func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ | ||
3063 | $SED -e 's|^:*||' -e 's|:*$||'` | ||
3064 | case $build in | ||
3065 | *mingw* ) # Actually, msys. | ||
3066 | # Awkward: cmd appends spaces to result. | ||
3067 | lt_sed_strip_trailing_spaces="s/[ ]*\$//" | ||
3068 | func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ | ||
3069 | $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` | ||
3070 | func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ | ||
3071 | $SED -e "$lt_sed_naive_backslashify"` | ||
3072 | ;; | ||
3073 | *cygwin* ) | ||
3074 | func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` | ||
3075 | func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ | ||
3076 | $SED -e "$lt_sed_naive_backslashify"` | ||
3077 | ;; | ||
3078 | * ) | ||
3079 | # unfortunately, winepath doesn't convert pathlists | ||
3080 | func_to_host_pathlist_result="" | ||
3081 | func_to_host_pathlist_oldIFS=$IFS | ||
3082 | IFS=: | ||
3083 | for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do | ||
3084 | IFS=$func_to_host_pathlist_oldIFS | ||
3085 | if test -n "$func_to_host_pathlist_f" ; then | ||
3086 | func_to_host_path "$func_to_host_pathlist_f" | ||
3087 | if test -n "$func_to_host_path_result" ; then | ||
3088 | if test -z "$func_to_host_pathlist_result" ; then | ||
3089 | func_to_host_pathlist_result="$func_to_host_path_result" | ||
3090 | else | ||
3091 | func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" | ||
3092 | fi | ||
3093 | fi | ||
3094 | fi | ||
3095 | IFS=: | ||
3096 | done | ||
3097 | IFS=$func_to_host_pathlist_oldIFS | ||
3098 | ;; | ||
3099 | esac | ||
3100 | if test -z "$func_to_host_pathlist_result" ; then | ||
3101 | func_error "Could not determine the host path(s) corresponding to" | ||
3102 | func_error " '$1'" | ||
3103 | func_error "Continuing, but uninstalled executables may not work." | ||
3104 | # Fallback. This may break if $1 contains DOS-style drive | ||
3105 | # specifications. The fix is not to complicate the expression | ||
3106 | # below, but for the user to provide a working wine installation | ||
3107 | # with winepath so that path translation in the cross-to-mingw | ||
3108 | # case works properly. | ||
3109 | lt_replace_pathsep_nix_to_dos="s|:|;|g" | ||
3110 | func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ | ||
3111 | $SED -e "$lt_replace_pathsep_nix_to_dos"` | ||
3112 | fi | ||
3113 | # Now, add the leading and trailing path separators back | ||
3114 | case "$1" in | ||
3115 | :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" | ||
3116 | ;; | ||
3117 | esac | ||
3118 | case "$1" in | ||
3119 | *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" | ||
3120 | ;; | ||
3121 | esac | ||
3122 | ;; | ||
3123 | esac | ||
3124 | fi | ||
3125 | } | ||
3126 | # end: func_to_host_pathlist | ||
3127 | |||
3128 | # func_emit_cwrapperexe_src | ||
3129 | # emit the source code for a wrapper executable on stdout | ||
3130 | # Must ONLY be called from within func_mode_link because | ||
3131 | # it depends on a number of variable set therein. | ||
3132 | func_emit_cwrapperexe_src () | ||
3133 | { | ||
3134 | cat <<EOF | ||
3135 | |||
3136 | /* $cwrappersource - temporary wrapper executable for $objdir/$outputname | ||
3137 | Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION | ||
3138 | |||
3139 | The $output program cannot be directly executed until all the libtool | ||
3140 | libraries that it depends on are installed. | ||
3141 | |||
3142 | This wrapper executable should never be moved out of the build directory. | ||
3143 | If it is, it will not operate correctly. | ||
3144 | |||
3145 | Currently, it simply execs the wrapper *script* "$SHELL $output", | ||
3146 | but could eventually absorb all of the scripts functionality and | ||
3147 | exec $objdir/$outputname directly. | ||
3148 | */ | ||
3149 | EOF | ||
3150 | cat <<"EOF" | ||
3151 | #include <stdio.h> | ||
3152 | #include <stdlib.h> | ||
3153 | #ifdef _MSC_VER | ||
3154 | # include <direct.h> | ||
3155 | # include <process.h> | ||
3156 | # include <io.h> | ||
3157 | # define setmode _setmode | ||
3158 | #else | ||
3159 | # include <unistd.h> | ||
3160 | # include <stdint.h> | ||
3161 | # ifdef __CYGWIN__ | ||
3162 | # include <io.h> | ||
3163 | # define HAVE_SETENV | ||
3164 | # ifdef __STRICT_ANSI__ | ||
3165 | char *realpath (const char *, char *); | ||
3166 | int putenv (char *); | ||
3167 | int setenv (const char *, const char *, int); | ||
3168 | # endif | ||
3169 | # endif | ||
3170 | #endif | ||
3171 | #include <malloc.h> | ||
3172 | #include <stdarg.h> | ||
3173 | #include <assert.h> | ||
3174 | #include <string.h> | ||
3175 | #include <ctype.h> | ||
3176 | #include <errno.h> | ||
3177 | #include <fcntl.h> | ||
3178 | #include <sys/stat.h> | ||
3179 | |||
3180 | #if defined(PATH_MAX) | ||
3181 | # define LT_PATHMAX PATH_MAX | ||
3182 | #elif defined(MAXPATHLEN) | ||
3183 | # define LT_PATHMAX MAXPATHLEN | ||
3184 | #else | ||
3185 | # define LT_PATHMAX 1024 | ||
3186 | #endif | ||
3187 | |||
3188 | #ifndef S_IXOTH | ||
3189 | # define S_IXOTH 0 | ||
3190 | #endif | ||
3191 | #ifndef S_IXGRP | ||
3192 | # define S_IXGRP 0 | ||
3193 | #endif | ||
3194 | |||
3195 | #ifdef _MSC_VER | ||
3196 | # define S_IXUSR _S_IEXEC | ||
3197 | # define stat _stat | ||
3198 | # ifndef _INTPTR_T_DEFINED | ||
3199 | # define intptr_t int | ||
3200 | # endif | ||
3201 | #endif | ||
3202 | |||
3203 | #ifndef DIR_SEPARATOR | ||
3204 | # define DIR_SEPARATOR '/' | ||
3205 | # define PATH_SEPARATOR ':' | ||
3206 | #endif | ||
3207 | |||
3208 | #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ | ||
3209 | defined (__OS2__) | ||
3210 | # define HAVE_DOS_BASED_FILE_SYSTEM | ||
3211 | # define FOPEN_WB "wb" | ||
3212 | # ifndef DIR_SEPARATOR_2 | ||
3213 | # define DIR_SEPARATOR_2 '\\' | ||
3214 | # endif | ||
3215 | # ifndef PATH_SEPARATOR_2 | ||
3216 | # define PATH_SEPARATOR_2 ';' | ||
3217 | # endif | ||
3218 | #endif | ||
3219 | |||
3220 | #ifndef DIR_SEPARATOR_2 | ||
3221 | # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) | ||
3222 | #else /* DIR_SEPARATOR_2 */ | ||
3223 | # define IS_DIR_SEPARATOR(ch) \ | ||
3224 | (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) | ||
3225 | #endif /* DIR_SEPARATOR_2 */ | ||
3226 | |||
3227 | #ifndef PATH_SEPARATOR_2 | ||
3228 | # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) | ||
3229 | #else /* PATH_SEPARATOR_2 */ | ||
3230 | # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) | ||
3231 | #endif /* PATH_SEPARATOR_2 */ | ||
3232 | |||
3233 | #ifdef __CYGWIN__ | ||
3234 | # define FOPEN_WB "wb" | ||
3235 | #endif | ||
3236 | |||
3237 | #ifndef FOPEN_WB | ||
3238 | # define FOPEN_WB "w" | ||
3239 | #endif | ||
3240 | #ifndef _O_BINARY | ||
3241 | # define _O_BINARY 0 | ||
3242 | #endif | ||
3243 | |||
3244 | #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) | ||
3245 | #define XFREE(stale) do { \ | ||
3246 | if (stale) { free ((void *) stale); stale = 0; } \ | ||
3247 | } while (0) | ||
3248 | |||
3249 | #undef LTWRAPPER_DEBUGPRINTF | ||
3250 | #if defined DEBUGWRAPPER | ||
3251 | # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args | ||
3252 | static void | ||
3253 | ltwrapper_debugprintf (const char *fmt, ...) | ||
3254 | { | ||
3255 | va_list args; | ||
3256 | va_start (args, fmt); | ||
3257 | (void) vfprintf (stderr, fmt, args); | ||
3258 | va_end (args); | ||
3259 | } | ||
3260 | #else | ||
3261 | # define LTWRAPPER_DEBUGPRINTF(args) | ||
3262 | #endif | ||
3263 | |||
3264 | const char *program_name = NULL; | ||
3265 | |||
3266 | void *xmalloc (size_t num); | ||
3267 | char *xstrdup (const char *string); | ||
3268 | const char *base_name (const char *name); | ||
3269 | char *find_executable (const char *wrapper); | ||
3270 | char *chase_symlinks (const char *pathspec); | ||
3271 | int make_executable (const char *path); | ||
3272 | int check_executable (const char *path); | ||
3273 | char *strendzap (char *str, const char *pat); | ||
3274 | void lt_fatal (const char *message, ...); | ||
3275 | void lt_setenv (const char *name, const char *value); | ||
3276 | char *lt_extend_str (const char *orig_value, const char *add, int to_end); | ||
3277 | void lt_opt_process_env_set (const char *arg); | ||
3278 | void lt_opt_process_env_prepend (const char *arg); | ||
3279 | void lt_opt_process_env_append (const char *arg); | ||
3280 | int lt_split_name_value (const char *arg, char** name, char** value); | ||
3281 | void lt_update_exe_path (const char *name, const char *value); | ||
3282 | void lt_update_lib_path (const char *name, const char *value); | ||
3283 | |||
3284 | static const char *script_text_part1 = | ||
3285 | EOF | ||
3286 | |||
3287 | func_emit_wrapper_part1 yes | | ||
3288 | $SED -e 's/\([\\"]\)/\\\1/g' \ | ||
3289 | -e 's/^/ "/' -e 's/$/\\n"/' | ||
3290 | echo ";" | ||
3291 | cat <<EOF | ||
3292 | |||
3293 | static const char *script_text_part2 = | ||
3294 | EOF | ||
3295 | func_emit_wrapper_part2 yes | | ||
3296 | $SED -e 's/\([\\"]\)/\\\1/g' \ | ||
3297 | -e 's/^/ "/' -e 's/$/\\n"/' | ||
3298 | echo ";" | ||
3299 | |||
3300 | cat <<EOF | ||
3301 | const char * MAGIC_EXE = "$magic_exe"; | ||
3302 | const char * LIB_PATH_VARNAME = "$shlibpath_var"; | ||
3303 | EOF | ||
3304 | |||
3305 | if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then | ||
3306 | func_to_host_pathlist "$temp_rpath" | ||
3307 | cat <<EOF | ||
3308 | const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result"; | ||
3309 | EOF | ||
3310 | else | ||
3311 | cat <<"EOF" | ||
3312 | const char * LIB_PATH_VALUE = ""; | ||
3313 | EOF | ||
3314 | fi | ||
3315 | |||
3316 | if test -n "$dllsearchpath"; then | ||
3317 | func_to_host_pathlist "$dllsearchpath:" | ||
3318 | cat <<EOF | ||
3319 | const char * EXE_PATH_VARNAME = "PATH"; | ||
3320 | const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result"; | ||
3321 | EOF | ||
3322 | else | ||
3323 | cat <<"EOF" | ||
3324 | const char * EXE_PATH_VARNAME = ""; | ||
3325 | const char * EXE_PATH_VALUE = ""; | ||
3326 | EOF | ||
3327 | fi | ||
3328 | |||
3329 | if test "$fast_install" = yes; then | ||
3330 | cat <<EOF | ||
3331 | const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */ | ||
3332 | EOF | ||
3333 | else | ||
3334 | cat <<EOF | ||
3335 | const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */ | ||
3336 | EOF | ||
3337 | fi | ||
3338 | |||
3339 | |||
3340 | cat <<"EOF" | ||
3341 | |||
3342 | #define LTWRAPPER_OPTION_PREFIX "--lt-" | ||
3343 | #define LTWRAPPER_OPTION_PREFIX_LENGTH 5 | ||
3344 | |||
3345 | static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH; | ||
3346 | static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; | ||
3347 | |||
3348 | static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; | ||
3349 | |||
3350 | static const size_t env_set_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 7; | ||
3351 | static const char *env_set_opt = LTWRAPPER_OPTION_PREFIX "env-set"; | ||
3352 | /* argument is putenv-style "foo=bar", value of foo is set to bar */ | ||
3353 | |||
3354 | static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11; | ||
3355 | static const char *env_prepend_opt = LTWRAPPER_OPTION_PREFIX "env-prepend"; | ||
3356 | /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */ | ||
3357 | |||
3358 | static const size_t env_append_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 10; | ||
3359 | static const char *env_append_opt = LTWRAPPER_OPTION_PREFIX "env-append"; | ||
3360 | /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */ | ||
3361 | |||
3362 | int | ||
3363 | main (int argc, char *argv[]) | ||
3364 | { | ||
3365 | char **newargz; | ||
3366 | int newargc; | ||
3367 | char *tmp_pathspec; | ||
3368 | char *actual_cwrapper_path; | ||
3369 | char *actual_cwrapper_name; | ||
3370 | char *target_name; | ||
3371 | char *lt_argv_zero; | ||
3372 | intptr_t rval = 127; | ||
3373 | |||
3374 | int i; | ||
3375 | |||
3376 | program_name = (char *) xstrdup (base_name (argv[0])); | ||
3377 | LTWRAPPER_DEBUGPRINTF (("(main) argv[0] : %s\n", argv[0])); | ||
3378 | LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name)); | ||
3379 | |||
3380 | /* very simple arg parsing; don't want to rely on getopt */ | ||
3381 | for (i = 1; i < argc; i++) | ||
3382 | { | ||
3383 | if (strcmp (argv[i], dumpscript_opt) == 0) | ||
3384 | { | ||
3385 | EOF | ||
3386 | case "$host" in | ||
3387 | *mingw* | *cygwin* ) | ||
3388 | # make stdout use "unix" line endings | ||
3389 | echo " setmode(1,_O_BINARY);" | ||
3390 | ;; | ||
3391 | esac | ||
3392 | |||
3393 | cat <<"EOF" | ||
3394 | printf ("%s", script_text_part1); | ||
3395 | printf ("%s", script_text_part2); | ||
3396 | return 0; | ||
3397 | } | ||
3398 | } | ||
3399 | |||
3400 | newargz = XMALLOC (char *, argc + 1); | ||
3401 | tmp_pathspec = find_executable (argv[0]); | ||
3402 | if (tmp_pathspec == NULL) | ||
3403 | lt_fatal ("Couldn't find %s", argv[0]); | ||
3404 | LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n", | ||
3405 | tmp_pathspec)); | ||
3406 | |||
3407 | actual_cwrapper_path = chase_symlinks (tmp_pathspec); | ||
3408 | LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n", | ||
3409 | actual_cwrapper_path)); | ||
3410 | XFREE (tmp_pathspec); | ||
3411 | |||
3412 | actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path)); | ||
3413 | strendzap (actual_cwrapper_path, actual_cwrapper_name); | ||
3414 | |||
3415 | /* wrapper name transforms */ | ||
3416 | strendzap (actual_cwrapper_name, ".exe"); | ||
3417 | tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1); | ||
3418 | XFREE (actual_cwrapper_name); | ||
3419 | actual_cwrapper_name = tmp_pathspec; | ||
3420 | tmp_pathspec = 0; | ||
3421 | |||
3422 | /* target_name transforms -- use actual target program name; might have lt- prefix */ | ||
3423 | target_name = xstrdup (base_name (TARGET_PROGRAM_NAME)); | ||
3424 | strendzap (target_name, ".exe"); | ||
3425 | tmp_pathspec = lt_extend_str (target_name, ".exe", 1); | ||
3426 | XFREE (target_name); | ||
3427 | target_name = tmp_pathspec; | ||
3428 | tmp_pathspec = 0; | ||
3429 | |||
3430 | LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n", | ||
3431 | target_name)); | ||
3432 | EOF | ||
3433 | |||
3434 | cat <<EOF | ||
3435 | newargz[0] = | ||
3436 | XMALLOC (char, (strlen (actual_cwrapper_path) + | ||
3437 | strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1)); | ||
3438 | strcpy (newargz[0], actual_cwrapper_path); | ||
3439 | strcat (newargz[0], "$objdir"); | ||
3440 | strcat (newargz[0], "/"); | ||
3441 | EOF | ||
3442 | |||
3443 | cat <<"EOF" | ||
3444 | /* stop here, and copy so we don't have to do this twice */ | ||
3445 | tmp_pathspec = xstrdup (newargz[0]); | ||
3446 | |||
3447 | /* do NOT want the lt- prefix here, so use actual_cwrapper_name */ | ||
3448 | strcat (newargz[0], actual_cwrapper_name); | ||
3449 | |||
3450 | /* DO want the lt- prefix here if it exists, so use target_name */ | ||
3451 | lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1); | ||
3452 | XFREE (tmp_pathspec); | ||
3453 | tmp_pathspec = NULL; | ||
3454 | EOF | ||
3455 | |||
3456 | case $host_os in | ||
3457 | mingw*) | ||
3458 | cat <<"EOF" | ||
3459 | { | ||
3460 | char* p; | ||
3461 | while ((p = strchr (newargz[0], '\\')) != NULL) | ||
3462 | { | ||
3463 | *p = '/'; | ||
3464 | } | ||
3465 | while ((p = strchr (lt_argv_zero, '\\')) != NULL) | ||
3466 | { | ||
3467 | *p = '/'; | ||
3468 | } | ||
3469 | } | ||
3470 | EOF | ||
3471 | ;; | ||
3472 | esac | ||
3473 | |||
3474 | cat <<"EOF" | ||
3475 | XFREE (target_name); | ||
3476 | XFREE (actual_cwrapper_path); | ||
3477 | XFREE (actual_cwrapper_name); | ||
3478 | |||
3479 | lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ | ||
3480 | lt_setenv ("DUALCASE", "1"); /* for MSK sh */ | ||
3481 | lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); | ||
3482 | lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); | ||
3483 | |||
3484 | newargc=0; | ||
3485 | for (i = 1; i < argc; i++) | ||
3486 | { | ||
3487 | if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0) | ||
3488 | { | ||
3489 | if (argv[i][env_set_opt_len] == '=') | ||
3490 | { | ||
3491 | const char *p = argv[i] + env_set_opt_len + 1; | ||
3492 | lt_opt_process_env_set (p); | ||
3493 | } | ||
3494 | else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc) | ||
3495 | { | ||
3496 | lt_opt_process_env_set (argv[++i]); /* don't copy */ | ||
3497 | } | ||
3498 | else | ||
3499 | lt_fatal ("%s missing required argument", env_set_opt); | ||
3500 | continue; | ||
3501 | } | ||
3502 | if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0) | ||
3503 | { | ||
3504 | if (argv[i][env_prepend_opt_len] == '=') | ||
3505 | { | ||
3506 | const char *p = argv[i] + env_prepend_opt_len + 1; | ||
3507 | lt_opt_process_env_prepend (p); | ||
3508 | } | ||
3509 | else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc) | ||
3510 | { | ||
3511 | lt_opt_process_env_prepend (argv[++i]); /* don't copy */ | ||
3512 | } | ||
3513 | else | ||
3514 | lt_fatal ("%s missing required argument", env_prepend_opt); | ||
3515 | continue; | ||
3516 | } | ||
3517 | if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0) | ||
3518 | { | ||
3519 | if (argv[i][env_append_opt_len] == '=') | ||
3520 | { | ||
3521 | const char *p = argv[i] + env_append_opt_len + 1; | ||
3522 | lt_opt_process_env_append (p); | ||
3523 | } | ||
3524 | else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc) | ||
3525 | { | ||
3526 | lt_opt_process_env_append (argv[++i]); /* don't copy */ | ||
3527 | } | ||
3528 | else | ||
3529 | lt_fatal ("%s missing required argument", env_append_opt); | ||
3530 | continue; | ||
3531 | } | ||
3532 | if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0) | ||
3533 | { | ||
3534 | /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX | ||
3535 | namespace, but it is not one of the ones we know about and | ||
3536 | have already dealt with, above (inluding dump-script), then | ||
3537 | report an error. Otherwise, targets might begin to believe | ||
3538 | they are allowed to use options in the LTWRAPPER_OPTION_PREFIX | ||
3539 | namespace. The first time any user complains about this, we'll | ||
3540 | need to make LTWRAPPER_OPTION_PREFIX a configure-time option | ||
3541 | or a configure.ac-settable value. | ||
3542 | */ | ||
3543 | lt_fatal ("Unrecognized option in %s namespace: '%s'", | ||
3544 | ltwrapper_option_prefix, argv[i]); | ||
3545 | } | ||
3546 | /* otherwise ... */ | ||
3547 | newargz[++newargc] = xstrdup (argv[i]); | ||
3548 | } | ||
3549 | newargz[++newargc] = NULL; | ||
3550 | |||
3551 | LTWRAPPER_DEBUGPRINTF (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>"))); | ||
3552 | for (i = 0; i < newargc; i++) | ||
3553 | { | ||
3554 | LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>"))); | ||
3555 | } | ||
3556 | |||
3557 | EOF | ||
3558 | |||
3559 | case $host_os in | ||
3560 | mingw*) | ||
3561 | cat <<"EOF" | ||
3562 | /* execv doesn't actually work on mingw as expected on unix */ | ||
3563 | rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); | ||
3564 | if (rval == -1) | ||
3565 | { | ||
3566 | /* failed to start process */ | ||
3567 | LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); | ||
3568 | return 127; | ||
3569 | } | ||
3570 | return rval; | ||
3571 | EOF | ||
3572 | ;; | ||
3573 | *) | ||
3574 | cat <<"EOF" | ||
3575 | execv (lt_argv_zero, newargz); | ||
3576 | return rval; /* =127, but avoids unused variable warning */ | ||
3577 | EOF | ||
3578 | ;; | ||
3579 | esac | ||
3580 | |||
3581 | cat <<"EOF" | ||
3582 | } | ||
3583 | |||
3584 | void * | ||
3585 | xmalloc (size_t num) | ||
3586 | { | ||
3587 | void *p = (void *) malloc (num); | ||
3588 | if (!p) | ||
3589 | lt_fatal ("Memory exhausted"); | ||
3590 | |||
3591 | return p; | ||
3592 | } | ||
3593 | |||
3594 | char * | ||
3595 | xstrdup (const char *string) | ||
3596 | { | ||
3597 | return string ? strcpy ((char *) xmalloc (strlen (string) + 1), | ||
3598 | string) : NULL; | ||
3599 | } | ||
3600 | |||
3601 | const char * | ||
3602 | base_name (const char *name) | ||
3603 | { | ||
3604 | const char *base; | ||
3605 | |||
3606 | #if defined (HAVE_DOS_BASED_FILE_SYSTEM) | ||
3607 | /* Skip over the disk name in MSDOS pathnames. */ | ||
3608 | if (isalpha ((unsigned char) name[0]) && name[1] == ':') | ||
3609 | name += 2; | ||
3610 | #endif | ||
3611 | |||
3612 | for (base = name; *name; name++) | ||
3613 | if (IS_DIR_SEPARATOR (*name)) | ||
3614 | base = name + 1; | ||
3615 | return base; | ||
3616 | } | ||
3617 | |||
3618 | int | ||
3619 | check_executable (const char *path) | ||
3620 | { | ||
3621 | struct stat st; | ||
3622 | |||
3623 | LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", | ||
3624 | path ? (*path ? path : "EMPTY!") : "NULL!")); | ||
3625 | if ((!path) || (!*path)) | ||
3626 | return 0; | ||
3627 | |||
3628 | if ((stat (path, &st) >= 0) | ||
3629 | && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) | ||
3630 | return 1; | ||
3631 | else | ||
3632 | return 0; | ||
3633 | } | ||
3634 | |||
3635 | int | ||
3636 | make_executable (const char *path) | ||
3637 | { | ||
3638 | int rval = 0; | ||
3639 | struct stat st; | ||
3640 | |||
3641 | LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", | ||
3642 | path ? (*path ? path : "EMPTY!") : "NULL!")); | ||
3643 | if ((!path) || (!*path)) | ||
3644 | return 0; | ||
3645 | |||
3646 | if (stat (path, &st) >= 0) | ||
3647 | { | ||
3648 | rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); | ||
3649 | } | ||
3650 | return rval; | ||
3651 | } | ||
3652 | |||
3653 | /* Searches for the full path of the wrapper. Returns | ||
3654 | newly allocated full path name if found, NULL otherwise | ||
3655 | Does not chase symlinks, even on platforms that support them. | ||
3656 | */ | ||
3657 | char * | ||
3658 | find_executable (const char *wrapper) | ||
3659 | { | ||
3660 | int has_slash = 0; | ||
3661 | const char *p; | ||
3662 | const char *p_next; | ||
3663 | /* static buffer for getcwd */ | ||
3664 | char tmp[LT_PATHMAX + 1]; | ||
3665 | int tmp_len; | ||
3666 | char *concat_name; | ||
3667 | |||
3668 | LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", | ||
3669 | wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); | ||
3670 | |||
3671 | if ((wrapper == NULL) || (*wrapper == '\0')) | ||
3672 | return NULL; | ||
3673 | |||
3674 | /* Absolute path? */ | ||
3675 | #if defined (HAVE_DOS_BASED_FILE_SYSTEM) | ||
3676 | if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') | ||
3677 | { | ||
3678 | concat_name = xstrdup (wrapper); | ||
3679 | if (check_executable (concat_name)) | ||
3680 | return concat_name; | ||
3681 | XFREE (concat_name); | ||
3682 | } | ||
3683 | else | ||
3684 | { | ||
3685 | #endif | ||
3686 | if (IS_DIR_SEPARATOR (wrapper[0])) | ||
3687 | { | ||
3688 | concat_name = xstrdup (wrapper); | ||
3689 | if (check_executable (concat_name)) | ||
3690 | return concat_name; | ||
3691 | XFREE (concat_name); | ||
3692 | } | ||
3693 | #if defined (HAVE_DOS_BASED_FILE_SYSTEM) | ||
3694 | } | ||
3695 | #endif | ||
3696 | |||
3697 | for (p = wrapper; *p; p++) | ||
3698 | if (*p == '/') | ||
3699 | { | ||
3700 | has_slash = 1; | ||
3701 | break; | ||
3702 | } | ||
3703 | if (!has_slash) | ||
3704 | { | ||
3705 | /* no slashes; search PATH */ | ||
3706 | const char *path = getenv ("PATH"); | ||
3707 | if (path != NULL) | ||
3708 | { | ||
3709 | for (p = path; *p; p = p_next) | ||
3710 | { | ||
3711 | const char *q; | ||
3712 | size_t p_len; | ||
3713 | for (q = p; *q; q++) | ||
3714 | if (IS_PATH_SEPARATOR (*q)) | ||
3715 | break; | ||
3716 | p_len = q - p; | ||
3717 | p_next = (*q == '\0' ? q : q + 1); | ||
3718 | if (p_len == 0) | ||
3719 | { | ||
3720 | /* empty path: current directory */ | ||
3721 | if (getcwd (tmp, LT_PATHMAX) == NULL) | ||
3722 | lt_fatal ("getcwd failed"); | ||
3723 | tmp_len = strlen (tmp); | ||
3724 | concat_name = | ||
3725 | XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); | ||
3726 | memcpy (concat_name, tmp, tmp_len); | ||
3727 | concat_name[tmp_len] = '/'; | ||
3728 | strcpy (concat_name + tmp_len + 1, wrapper); | ||
3729 | } | ||
3730 | else | ||
3731 | { | ||
3732 | concat_name = | ||
3733 | XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); | ||
3734 | memcpy (concat_name, p, p_len); | ||
3735 | concat_name[p_len] = '/'; | ||
3736 | strcpy (concat_name + p_len + 1, wrapper); | ||
3737 | } | ||
3738 | if (check_executable (concat_name)) | ||
3739 | return concat_name; | ||
3740 | XFREE (concat_name); | ||
3741 | } | ||
3742 | } | ||
3743 | /* not found in PATH; assume curdir */ | ||
3744 | } | ||
3745 | /* Relative path | not found in path: prepend cwd */ | ||
3746 | if (getcwd (tmp, LT_PATHMAX) == NULL) | ||
3747 | lt_fatal ("getcwd failed"); | ||
3748 | tmp_len = strlen (tmp); | ||
3749 | concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); | ||
3750 | memcpy (concat_name, tmp, tmp_len); | ||
3751 | concat_name[tmp_len] = '/'; | ||
3752 | strcpy (concat_name + tmp_len + 1, wrapper); | ||
3753 | |||
3754 | if (check_executable (concat_name)) | ||
3755 | return concat_name; | ||
3756 | XFREE (concat_name); | ||
3757 | return NULL; | ||
3758 | } | ||
3759 | |||
3760 | char * | ||
3761 | chase_symlinks (const char *pathspec) | ||
3762 | { | ||
3763 | #ifndef S_ISLNK | ||
3764 | return xstrdup (pathspec); | ||
3765 | #else | ||
3766 | char buf[LT_PATHMAX]; | ||
3767 | struct stat s; | ||
3768 | char *tmp_pathspec = xstrdup (pathspec); | ||
3769 | char *p; | ||
3770 | int has_symlinks = 0; | ||
3771 | while (strlen (tmp_pathspec) && !has_symlinks) | ||
3772 | { | ||
3773 | LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", | ||
3774 | tmp_pathspec)); | ||
3775 | if (lstat (tmp_pathspec, &s) == 0) | ||
3776 | { | ||
3777 | if (S_ISLNK (s.st_mode) != 0) | ||
3778 | { | ||
3779 | has_symlinks = 1; | ||
3780 | break; | ||
3781 | } | ||
3782 | |||
3783 | /* search backwards for last DIR_SEPARATOR */ | ||
3784 | p = tmp_pathspec + strlen (tmp_pathspec) - 1; | ||
3785 | while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) | ||
3786 | p--; | ||
3787 | if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) | ||
3788 | { | ||
3789 | /* no more DIR_SEPARATORS left */ | ||
3790 | break; | ||
3791 | } | ||
3792 | *p = '\0'; | ||
3793 | } | ||
3794 | else | ||
3795 | { | ||
3796 | char *errstr = strerror (errno); | ||
3797 | lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); | ||
3798 | } | ||
3799 | } | ||
3800 | XFREE (tmp_pathspec); | ||
3801 | |||
3802 | if (!has_symlinks) | ||
3803 | { | ||
3804 | return xstrdup (pathspec); | ||
3805 | } | ||
3806 | |||
3807 | tmp_pathspec = realpath (pathspec, buf); | ||
3808 | if (tmp_pathspec == 0) | ||
3809 | { | ||
3810 | lt_fatal ("Could not follow symlinks for %s", pathspec); | ||
3811 | } | ||
3812 | return xstrdup (tmp_pathspec); | ||
3813 | #endif | ||
3814 | } | ||
3815 | |||
3816 | char * | ||
3817 | strendzap (char *str, const char *pat) | ||
3818 | { | ||
3819 | size_t len, patlen; | ||
3820 | |||
3821 | assert (str != NULL); | ||
3822 | assert (pat != NULL); | ||
3823 | |||
3824 | len = strlen (str); | ||
3825 | patlen = strlen (pat); | ||
3826 | |||
3827 | if (patlen <= len) | ||
3828 | { | ||
3829 | str += len - patlen; | ||
3830 | if (strcmp (str, pat) == 0) | ||
3831 | *str = '\0'; | ||
3832 | } | ||
3833 | return str; | ||
3834 | } | ||
3835 | |||
3836 | static void | ||
3837 | lt_error_core (int exit_status, const char *mode, | ||
3838 | const char *message, va_list ap) | ||
3839 | { | ||
3840 | fprintf (stderr, "%s: %s: ", program_name, mode); | ||
3841 | vfprintf (stderr, message, ap); | ||
3842 | fprintf (stderr, ".\n"); | ||
3843 | |||
3844 | if (exit_status >= 0) | ||
3845 | exit (exit_status); | ||
3846 | } | ||
3847 | |||
3848 | void | ||
3849 | lt_fatal (const char *message, ...) | ||
3850 | { | ||
3851 | va_list ap; | ||
3852 | va_start (ap, message); | ||
3853 | lt_error_core (EXIT_FAILURE, "FATAL", message, ap); | ||
3854 | va_end (ap); | ||
3855 | } | ||
3856 | |||
3857 | void | ||
3858 | lt_setenv (const char *name, const char *value) | ||
3859 | { | ||
3860 | LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", | ||
3861 | (name ? name : "<NULL>"), | ||
3862 | (value ? value : "<NULL>"))); | ||
3863 | { | ||
3864 | #ifdef HAVE_SETENV | ||
3865 | /* always make a copy, for consistency with !HAVE_SETENV */ | ||
3866 | char *str = xstrdup (value); | ||
3867 | setenv (name, str, 1); | ||
3868 | #else | ||
3869 | int len = strlen (name) + 1 + strlen (value) + 1; | ||
3870 | char *str = XMALLOC (char, len); | ||
3871 | sprintf (str, "%s=%s", name, value); | ||
3872 | if (putenv (str) != EXIT_SUCCESS) | ||
3873 | { | ||
3874 | XFREE (str); | ||
3875 | } | ||
3876 | #endif | ||
3877 | } | ||
3878 | } | ||
3879 | |||
3880 | char * | ||
3881 | lt_extend_str (const char *orig_value, const char *add, int to_end) | ||
3882 | { | ||
3883 | char *new_value; | ||
3884 | if (orig_value && *orig_value) | ||
3885 | { | ||
3886 | int orig_value_len = strlen (orig_value); | ||
3887 | int add_len = strlen (add); | ||
3888 | new_value = XMALLOC (char, add_len + orig_value_len + 1); | ||
3889 | if (to_end) | ||
3890 | { | ||
3891 | strcpy (new_value, orig_value); | ||
3892 | strcpy (new_value + orig_value_len, add); | ||
3893 | } | ||
3894 | else | ||
3895 | { | ||
3896 | strcpy (new_value, add); | ||
3897 | strcpy (new_value + add_len, orig_value); | ||
3898 | } | ||
3899 | } | ||
3900 | else | ||
3901 | { | ||
3902 | new_value = xstrdup (add); | ||
3903 | } | ||
3904 | return new_value; | ||
3905 | } | ||
3906 | |||
3907 | int | ||
3908 | lt_split_name_value (const char *arg, char** name, char** value) | ||
3909 | { | ||
3910 | const char *p; | ||
3911 | int len; | ||
3912 | if (!arg || !*arg) | ||
3913 | return 1; | ||
3914 | |||
3915 | p = strchr (arg, (int)'='); | ||
3916 | |||
3917 | if (!p) | ||
3918 | return 1; | ||
3919 | |||
3920 | *value = xstrdup (++p); | ||
3921 | |||
3922 | len = strlen (arg) - strlen (*value); | ||
3923 | *name = XMALLOC (char, len); | ||
3924 | strncpy (*name, arg, len-1); | ||
3925 | (*name)[len - 1] = '\0'; | ||
3926 | |||
3927 | return 0; | ||
3928 | } | ||
3929 | |||
3930 | void | ||
3931 | lt_opt_process_env_set (const char *arg) | ||
3932 | { | ||
3933 | char *name = NULL; | ||
3934 | char *value = NULL; | ||
3935 | |||
3936 | if (lt_split_name_value (arg, &name, &value) != 0) | ||
3937 | { | ||
3938 | XFREE (name); | ||
3939 | XFREE (value); | ||
3940 | lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); | ||
3941 | } | ||
3942 | |||
3943 | lt_setenv (name, value); | ||
3944 | XFREE (name); | ||
3945 | XFREE (value); | ||
3946 | } | ||
3947 | |||
3948 | void | ||
3949 | lt_opt_process_env_prepend (const char *arg) | ||
3950 | { | ||
3951 | char *name = NULL; | ||
3952 | char *value = NULL; | ||
3953 | char *new_value = NULL; | ||
3954 | |||
3955 | if (lt_split_name_value (arg, &name, &value) != 0) | ||
3956 | { | ||
3957 | XFREE (name); | ||
3958 | XFREE (value); | ||
3959 | lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); | ||
3960 | } | ||
3961 | |||
3962 | new_value = lt_extend_str (getenv (name), value, 0); | ||
3963 | lt_setenv (name, new_value); | ||
3964 | XFREE (new_value); | ||
3965 | XFREE (name); | ||
3966 | XFREE (value); | ||
3967 | } | ||
3968 | |||
3969 | void | ||
3970 | lt_opt_process_env_append (const char *arg) | ||
3971 | { | ||
3972 | char *name = NULL; | ||
3973 | char *value = NULL; | ||
3974 | char *new_value = NULL; | ||
3975 | |||
3976 | if (lt_split_name_value (arg, &name, &value) != 0) | ||
3977 | { | ||
3978 | XFREE (name); | ||
3979 | XFREE (value); | ||
3980 | lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); | ||
3981 | } | ||
3982 | |||
3983 | new_value = lt_extend_str (getenv (name), value, 1); | ||
3984 | lt_setenv (name, new_value); | ||
3985 | XFREE (new_value); | ||
3986 | XFREE (name); | ||
3987 | XFREE (value); | ||
3988 | } | ||
3989 | |||
3990 | void | ||
3991 | lt_update_exe_path (const char *name, const char *value) | ||
3992 | { | ||
3993 | LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", | ||
3994 | (name ? name : "<NULL>"), | ||
3995 | (value ? value : "<NULL>"))); | ||
3996 | |||
3997 | if (name && *name && value && *value) | ||
3998 | { | ||
3999 | char *new_value = lt_extend_str (getenv (name), value, 0); | ||
4000 | /* some systems can't cope with a ':'-terminated path #' */ | ||
4001 | int len = strlen (new_value); | ||
4002 | while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) | ||
4003 | { | ||
4004 | new_value[len-1] = '\0'; | ||
4005 | } | ||
4006 | lt_setenv (name, new_value); | ||
4007 | XFREE (new_value); | ||
4008 | } | ||
4009 | } | ||
4010 | |||
4011 | void | ||
4012 | lt_update_lib_path (const char *name, const char *value) | ||
4013 | { | ||
4014 | LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", | ||
4015 | (name ? name : "<NULL>"), | ||
4016 | (value ? value : "<NULL>"))); | ||
4017 | |||
4018 | if (name && *name && value && *value) | ||
4019 | { | ||
4020 | char *new_value = lt_extend_str (getenv (name), value, 0); | ||
4021 | lt_setenv (name, new_value); | ||
4022 | XFREE (new_value); | ||
4023 | } | ||
4024 | } | ||
4025 | |||
4026 | |||
4027 | EOF | ||
4028 | } | ||
4029 | # end: func_emit_cwrapperexe_src | ||
4030 | |||
4031 | # func_mode_link arg... | ||
4032 | func_mode_link () | ||
4033 | { | ||
4034 | $opt_debug | ||
4035 | case $host in | ||
4036 | *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) | ||
4037 | # It is impossible to link a dll without this setting, and | ||
4038 | # we shouldn't force the makefile maintainer to figure out | ||
4039 | # which system we are compiling for in order to pass an extra | ||
4040 | # flag for every libtool invocation. | ||
4041 | # allow_undefined=no | ||
4042 | |||
4043 | # FIXME: Unfortunately, there are problems with the above when trying | ||
4044 | # to make a dll which has undefined symbols, in which case not | ||
4045 | # even a static library is built. For now, we need to specify | ||
4046 | # -no-undefined on the libtool link line when we can be certain | ||
4047 | # that all symbols are satisfied, otherwise we get a static library. | ||
4048 | allow_undefined=yes | ||
4049 | ;; | ||
4050 | *) | ||
4051 | allow_undefined=yes | ||
4052 | ;; | ||
4053 | esac | ||
4054 | libtool_args=$nonopt | ||
4055 | base_compile="$nonopt $@" | ||
4056 | compile_command=$nonopt | ||
4057 | finalize_command=$nonopt | ||
4058 | |||
4059 | compile_rpath= | ||
4060 | finalize_rpath= | ||
4061 | compile_shlibpath= | ||
4062 | finalize_shlibpath= | ||
4063 | convenience= | ||
4064 | old_convenience= | ||
4065 | deplibs= | ||
4066 | old_deplibs= | ||
4067 | compiler_flags= | ||
4068 | linker_flags= | ||
4069 | dllsearchpath= | ||
4070 | lib_search_path=`pwd` | ||
4071 | inst_prefix_dir= | ||
4072 | new_inherited_linker_flags= | ||
4073 | |||
4074 | avoid_version=no | ||
4075 | dlfiles= | ||
4076 | dlprefiles= | ||
4077 | dlself=no | ||
4078 | export_dynamic=no | ||
4079 | export_symbols= | ||
4080 | export_symbols_regex= | ||
4081 | generated= | ||
4082 | libobjs= | ||
4083 | ltlibs= | ||
4084 | module=no | ||
4085 | no_install=no | ||
4086 | objs= | ||
4087 | non_pic_objects= | ||
4088 | precious_files_regex= | ||
4089 | prefer_static_libs=no | ||
4090 | preload=no | ||
4091 | prev= | ||
4092 | prevarg= | ||
4093 | release= | ||
4094 | rpath= | ||
4095 | xrpath= | ||
4096 | perm_rpath= | ||
4097 | temp_rpath= | ||
4098 | thread_safe=no | ||
4099 | vinfo= | ||
4100 | vinfo_number=no | ||
4101 | weak_libs= | ||
4102 | single_module="${wl}-single_module" | ||
4103 | func_infer_tag $base_compile | ||
4104 | |||
4105 | # We need to know -static, to get the right output filenames. | ||
4106 | for arg | ||
4107 | do | ||
4108 | case $arg in | ||
4109 | -shared) | ||
4110 | test "$build_libtool_libs" != yes && \ | ||
4111 | func_fatal_configuration "can not build a shared library" | ||
4112 | build_old_libs=no | ||
4113 | break | ||
4114 | ;; | ||
4115 | -all-static | -static | -static-libtool-libs) | ||
4116 | case $arg in | ||
4117 | -all-static) | ||
4118 | if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then | ||
4119 | func_warning "complete static linking is impossible in this configuration" | ||
4120 | fi | ||
4121 | if test -n "$link_static_flag"; then | ||
4122 | dlopen_self=$dlopen_self_static | ||
4123 | fi | ||
4124 | prefer_static_libs=yes | ||
4125 | ;; | ||
4126 | -static) | ||
4127 | if test -z "$pic_flag" && test -n "$link_static_flag"; then | ||
4128 | dlopen_self=$dlopen_self_static | ||
4129 | fi | ||
4130 | prefer_static_libs=built | ||
4131 | ;; | ||
4132 | -static-libtool-libs) | ||
4133 | if test -z "$pic_flag" && test -n "$link_static_flag"; then | ||
4134 | dlopen_self=$dlopen_self_static | ||
4135 | fi | ||
4136 | prefer_static_libs=yes | ||
4137 | ;; | ||
4138 | esac | ||
4139 | build_libtool_libs=no | ||
4140 | build_old_libs=yes | ||
4141 | break | ||
4142 | ;; | ||
4143 | esac | ||
4144 | done | ||
4145 | |||
4146 | # See if our shared archives depend on static archives. | ||
4147 | test -n "$old_archive_from_new_cmds" && build_old_libs=yes | ||
4148 | |||
4149 | # Go through the arguments, transforming them on the way. | ||
4150 | while test "$#" -gt 0; do | ||
4151 | arg="$1" | ||
4152 | shift | ||
4153 | func_quote_for_eval "$arg" | ||
4154 | qarg=$func_quote_for_eval_unquoted_result | ||
4155 | func_append libtool_args " $func_quote_for_eval_result" | ||
4156 | |||
4157 | # If the previous option needs an argument, assign it. | ||
4158 | if test -n "$prev"; then | ||
4159 | case $prev in | ||
4160 | output) | ||
4161 | func_append compile_command " @OUTPUT@" | ||
4162 | func_append finalize_command " @OUTPUT@" | ||
4163 | ;; | ||
4164 | esac | ||
4165 | |||
4166 | case $prev in | ||
4167 | dlfiles|dlprefiles) | ||
4168 | if test "$preload" = no; then | ||
4169 | # Add the symbol object into the linking commands. | ||
4170 | func_append compile_command " @SYMFILE@" | ||
4171 | func_append finalize_command " @SYMFILE@" | ||
4172 | preload=yes | ||
4173 | fi | ||
4174 | case $arg in | ||
4175 | *.la | *.lo) ;; # We handle these cases below. | ||
4176 | force) | ||
4177 | if test "$dlself" = no; then | ||
4178 | dlself=needless | ||
4179 | export_dynamic=yes | ||
4180 | fi | ||
4181 | prev= | ||
4182 | continue | ||
4183 | ;; | ||
4184 | self) | ||
4185 | if test "$prev" = dlprefiles; then | ||
4186 | dlself=yes | ||
4187 | elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then | ||
4188 | dlself=yes | ||
4189 | else | ||
4190 | dlself=needless | ||
4191 | export_dynamic=yes | ||
4192 | fi | ||
4193 | prev= | ||
4194 | continue | ||
4195 | ;; | ||
4196 | *) | ||
4197 | if test "$prev" = dlfiles; then | ||
4198 | dlfiles="$dlfiles $arg" | ||
4199 | else | ||
4200 | dlprefiles="$dlprefiles $arg" | ||
4201 | fi | ||
4202 | prev= | ||
4203 | continue | ||
4204 | ;; | ||
4205 | esac | ||
4206 | ;; | ||
4207 | expsyms) | ||
4208 | export_symbols="$arg" | ||
4209 | test -f "$arg" \ | ||
4210 | || func_fatal_error "symbol file \`$arg' does not exist" | ||
4211 | prev= | ||
4212 | continue | ||
4213 | ;; | ||
4214 | expsyms_regex) | ||
4215 | export_symbols_regex="$arg" | ||
4216 | prev= | ||
4217 | continue | ||
4218 | ;; | ||
4219 | framework) | ||
4220 | case $host in | ||
4221 | *-*-darwin*) | ||
4222 | case "$deplibs " in | ||
4223 | *" $qarg.ltframework "*) ;; | ||
4224 | *) deplibs="$deplibs $qarg.ltframework" # this is fixed later | ||
4225 | ;; | ||
4226 | esac | ||
4227 | ;; | ||
4228 | esac | ||
4229 | prev= | ||
4230 | continue | ||
4231 | ;; | ||
4232 | inst_prefix) | ||
4233 | inst_prefix_dir="$arg" | ||
4234 | prev= | ||
4235 | continue | ||
4236 | ;; | ||
4237 | objectlist) | ||
4238 | if test -f "$arg"; then | ||
4239 | save_arg=$arg | ||
4240 | moreargs= | ||
4241 | for fil in `cat "$save_arg"` | ||
4242 | do | ||
4243 | # moreargs="$moreargs $fil" | ||
4244 | arg=$fil | ||
4245 | # A libtool-controlled object. | ||
4246 | |||
4247 | # Check to see that this really is a libtool object. | ||
4248 | if func_lalib_unsafe_p "$arg"; then | ||
4249 | pic_object= | ||
4250 | non_pic_object= | ||
4251 | |||
4252 | # Read the .lo file | ||
4253 | func_source "$arg" | ||
4254 | |||
4255 | if test -z "$pic_object" || | ||
4256 | test -z "$non_pic_object" || | ||
4257 | test "$pic_object" = none && | ||
4258 | test "$non_pic_object" = none; then | ||
4259 | func_fatal_error "cannot find name of object for \`$arg'" | ||
4260 | fi | ||
4261 | |||
4262 | # Extract subdirectory from the argument. | ||
4263 | func_dirname "$arg" "/" "" | ||
4264 | xdir="$func_dirname_result" | ||
4265 | |||
4266 | if test "$pic_object" != none; then | ||
4267 | # Prepend the subdirectory the object is found in. | ||
4268 | pic_object="$xdir$pic_object" | ||
4269 | |||
4270 | if test "$prev" = dlfiles; then | ||
4271 | if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then | ||
4272 | dlfiles="$dlfiles $pic_object" | ||
4273 | prev= | ||
4274 | continue | ||
4275 | else | ||
4276 | # If libtool objects are unsupported, then we need to preload. | ||
4277 | prev=dlprefiles | ||
4278 | fi | ||
4279 | fi | ||
4280 | |||
4281 | # CHECK ME: I think I busted this. -Ossama | ||
4282 | if test "$prev" = dlprefiles; then | ||
4283 | # Preload the old-style object. | ||
4284 | dlprefiles="$dlprefiles $pic_object" | ||
4285 | prev= | ||
4286 | fi | ||
4287 | |||
4288 | # A PIC object. | ||
4289 | func_append libobjs " $pic_object" | ||
4290 | arg="$pic_object" | ||
4291 | fi | ||
4292 | |||
4293 | # Non-PIC object. | ||
4294 | if test "$non_pic_object" != none; then | ||
4295 | # Prepend the subdirectory the object is found in. | ||
4296 | non_pic_object="$xdir$non_pic_object" | ||
4297 | |||
4298 | # A standard non-PIC object | ||
4299 | func_append non_pic_objects " $non_pic_object" | ||
4300 | if test -z "$pic_object" || test "$pic_object" = none ; then | ||
4301 | arg="$non_pic_object" | ||
4302 | fi | ||
4303 | else | ||
4304 | # If the PIC object exists, use it instead. | ||
4305 | # $xdir was prepended to $pic_object above. | ||
4306 | non_pic_object="$pic_object" | ||
4307 | func_append non_pic_objects " $non_pic_object" | ||
4308 | fi | ||
4309 | else | ||
4310 | # Only an error if not doing a dry-run. | ||
4311 | if $opt_dry_run; then | ||
4312 | # Extract subdirectory from the argument. | ||
4313 | func_dirname "$arg" "/" "" | ||
4314 | xdir="$func_dirname_result" | ||
4315 | |||
4316 | func_lo2o "$arg" | ||
4317 | pic_object=$xdir$objdir/$func_lo2o_result | ||
4318 | non_pic_object=$xdir$func_lo2o_result | ||
4319 | func_append libobjs " $pic_object" | ||
4320 | func_append non_pic_objects " $non_pic_object" | ||
4321 | else | ||
4322 | func_fatal_error "\`$arg' is not a valid libtool object" | ||
4323 | fi | ||
4324 | fi | ||
4325 | done | ||
4326 | else | ||
4327 | func_fatal_error "link input file \`$arg' does not exist" | ||
4328 | fi | ||
4329 | arg=$save_arg | ||
4330 | prev= | ||
4331 | continue | ||
4332 | ;; | ||
4333 | precious_regex) | ||
4334 | precious_files_regex="$arg" | ||
4335 | prev= | ||
4336 | continue | ||
4337 | ;; | ||
4338 | release) | ||
4339 | release="-$arg" | ||
4340 | prev= | ||
4341 | continue | ||
4342 | ;; | ||
4343 | rpath | xrpath) | ||
4344 | # We need an absolute path. | ||
4345 | case $arg in | ||
4346 | [\\/]* | [A-Za-z]:[\\/]*) ;; | ||
4347 | *) | ||
4348 | func_fatal_error "only absolute run-paths are allowed" | ||
4349 | ;; | ||
4350 | esac | ||
4351 | if test "$prev" = rpath; then | ||
4352 | case "$rpath " in | ||
4353 | *" $arg "*) ;; | ||
4354 | *) rpath="$rpath $arg" ;; | ||
4355 | esac | ||
4356 | else | ||
4357 | case "$xrpath " in | ||
4358 | *" $arg "*) ;; | ||
4359 | *) xrpath="$xrpath $arg" ;; | ||
4360 | esac | ||
4361 | fi | ||
4362 | prev= | ||
4363 | continue | ||
4364 | ;; | ||
4365 | shrext) | ||
4366 | shrext_cmds="$arg" | ||
4367 | prev= | ||
4368 | continue | ||
4369 | ;; | ||
4370 | weak) | ||
4371 | weak_libs="$weak_libs $arg" | ||
4372 | prev= | ||
4373 | continue | ||
4374 | ;; | ||
4375 | xcclinker) | ||
4376 | linker_flags="$linker_flags $qarg" | ||
4377 | compiler_flags="$compiler_flags $qarg" | ||
4378 | prev= | ||
4379 | func_append compile_command " $qarg" | ||
4380 | func_append finalize_command " $qarg" | ||
4381 | continue | ||
4382 | ;; | ||
4383 | xcompiler) | ||
4384 | compiler_flags="$compiler_flags $qarg" | ||
4385 | prev= | ||
4386 | func_append compile_command " $qarg" | ||
4387 | func_append finalize_command " $qarg" | ||
4388 | continue | ||
4389 | ;; | ||
4390 | xlinker) | ||
4391 | linker_flags="$linker_flags $qarg" | ||
4392 | compiler_flags="$compiler_flags $wl$qarg" | ||
4393 | prev= | ||
4394 | func_append compile_command " $wl$qarg" | ||
4395 | func_append finalize_command " $wl$qarg" | ||
4396 | continue | ||
4397 | ;; | ||
4398 | *) | ||
4399 | eval "$prev=\"\$arg\"" | ||
4400 | prev= | ||
4401 | continue | ||
4402 | ;; | ||
4403 | esac | ||
4404 | fi # test -n "$prev" | ||
4405 | |||
4406 | prevarg="$arg" | ||
4407 | |||
4408 | case $arg in | ||
4409 | -all-static) | ||
4410 | if test -n "$link_static_flag"; then | ||
4411 | # See comment for -static flag below, for more details. | ||
4412 | func_append compile_command " $link_static_flag" | ||
4413 | func_append finalize_command " $link_static_flag" | ||
4414 | fi | ||
4415 | continue | ||
4416 | ;; | ||
4417 | |||
4418 | -allow-undefined) | ||
4419 | # FIXME: remove this flag sometime in the future. | ||
4420 | func_fatal_error "\`-allow-undefined' must not be used because it is the default" | ||
4421 | ;; | ||
4422 | |||
4423 | -avoid-version) | ||
4424 | avoid_version=yes | ||
4425 | continue | ||
4426 | ;; | ||
4427 | |||
4428 | -dlopen) | ||
4429 | prev=dlfiles | ||
4430 | continue | ||
4431 | ;; | ||
4432 | |||
4433 | -dlpreopen) | ||
4434 | prev=dlprefiles | ||
4435 | continue | ||
4436 | ;; | ||
4437 | |||
4438 | -export-dynamic) | ||
4439 | export_dynamic=yes | ||
4440 | continue | ||
4441 | ;; | ||
4442 | |||
4443 | -export-symbols | -export-symbols-regex) | ||
4444 | if test -n "$export_symbols" || test -n "$export_symbols_regex"; then | ||
4445 | func_fatal_error "more than one -exported-symbols argument is not allowed" | ||
4446 | fi | ||
4447 | if test "X$arg" = "X-export-symbols"; then | ||
4448 | prev=expsyms | ||
4449 | else | ||
4450 | prev=expsyms_regex | ||
4451 | fi | ||
4452 | continue | ||
4453 | ;; | ||
4454 | |||
4455 | -framework) | ||
4456 | prev=framework | ||
4457 | continue | ||
4458 | ;; | ||
4459 | |||
4460 | -inst-prefix-dir) | ||
4461 | prev=inst_prefix | ||
4462 | continue | ||
4463 | ;; | ||
4464 | |||
4465 | # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* | ||
4466 | # so, if we see these flags be careful not to treat them like -L | ||
4467 | -L[A-Z][A-Z]*:*) | ||
4468 | case $with_gcc/$host in | ||
4469 | no/*-*-irix* | /*-*-irix*) | ||
4470 | func_append compile_command " $arg" | ||
4471 | func_append finalize_command " $arg" | ||
4472 | ;; | ||
4473 | esac | ||
4474 | continue | ||
4475 | ;; | ||
4476 | |||
4477 | -L*) | ||
4478 | func_stripname '-L' '' "$arg" | ||
4479 | dir=$func_stripname_result | ||
4480 | if test -z "$dir"; then | ||
4481 | if test "$#" -gt 0; then | ||
4482 | func_fatal_error "require no space between \`-L' and \`$1'" | ||
4483 | else | ||
4484 | func_fatal_error "need path for \`-L' option" | ||
4485 | fi | ||
4486 | fi | ||
4487 | # We need an absolute path. | ||
4488 | case $dir in | ||
4489 | [\\/]* | [A-Za-z]:[\\/]*) ;; | ||
4490 | *) | ||
4491 | absdir=`cd "$dir" && pwd` | ||
4492 | test -z "$absdir" && \ | ||
4493 | func_fatal_error "cannot determine absolute directory name of \`$dir'" | ||
4494 | dir="$absdir" | ||
4495 | ;; | ||
4496 | esac | ||
4497 | case "$deplibs " in | ||
4498 | *" -L$dir "*) ;; | ||
4499 | *) | ||
4500 | deplibs="$deplibs -L$dir" | ||
4501 | lib_search_path="$lib_search_path $dir" | ||
4502 | ;; | ||
4503 | esac | ||
4504 | case $host in | ||
4505 | *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) | ||
4506 | testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` | ||
4507 | case :$dllsearchpath: in | ||
4508 | *":$dir:"*) ;; | ||
4509 | ::) dllsearchpath=$dir;; | ||
4510 | *) dllsearchpath="$dllsearchpath:$dir";; | ||
4511 | esac | ||
4512 | case :$dllsearchpath: in | ||
4513 | *":$testbindir:"*) ;; | ||
4514 | ::) dllsearchpath=$testbindir;; | ||
4515 | *) dllsearchpath="$dllsearchpath:$testbindir";; | ||
4516 | esac | ||
4517 | ;; | ||
4518 | esac | ||
4519 | continue | ||
4520 | ;; | ||
4521 | |||
4522 | -l*) | ||
4523 | if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then | ||
4524 | case $host in | ||
4525 | *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) | ||
4526 | # These systems don't actually have a C or math library (as such) | ||
4527 | continue | ||
4528 | ;; | ||
4529 | *-*-os2*) | ||
4530 | # These systems don't actually have a C library (as such) | ||
4531 | test "X$arg" = "X-lc" && continue | ||
4532 | ;; | ||
4533 | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) | ||
4534 | # Do not include libc due to us having libc/libc_r. | ||
4535 | test "X$arg" = "X-lc" && continue | ||
4536 | ;; | ||
4537 | *-*-rhapsody* | *-*-darwin1.[012]) | ||
4538 | # Rhapsody C and math libraries are in the System framework | ||
4539 | deplibs="$deplibs System.ltframework" | ||
4540 | continue | ||
4541 | ;; | ||
4542 | *-*-sco3.2v5* | *-*-sco5v6*) | ||
4543 | # Causes problems with __ctype | ||
4544 | test "X$arg" = "X-lc" && continue | ||
4545 | ;; | ||
4546 | *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) | ||
4547 | # Compiler inserts libc in the correct place for threads to work | ||
4548 | test "X$arg" = "X-lc" && continue | ||
4549 | ;; | ||
4550 | esac | ||
4551 | elif test "X$arg" = "X-lc_r"; then | ||
4552 | case $host in | ||
4553 | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) | ||
4554 | # Do not include libc_r directly, use -pthread flag. | ||
4555 | continue | ||
4556 | ;; | ||
4557 | esac | ||
4558 | fi | ||
4559 | deplibs="$deplibs $arg" | ||
4560 | continue | ||
4561 | ;; | ||
4562 | |||
4563 | -module) | ||
4564 | module=yes | ||
4565 | continue | ||
4566 | ;; | ||
4567 | |||
4568 | # Tru64 UNIX uses -model [arg] to determine the layout of C++ | ||
4569 | # classes, name mangling, and exception handling. | ||
4570 | # Darwin uses the -arch flag to determine output architecture. | ||
4571 | -model|-arch|-isysroot) | ||
4572 | compiler_flags="$compiler_flags $arg" | ||
4573 | func_append compile_command " $arg" | ||
4574 | func_append finalize_command " $arg" | ||
4575 | prev=xcompiler | ||
4576 | continue | ||
4577 | ;; | ||
4578 | |||
4579 | -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) | ||
4580 | compiler_flags="$compiler_flags $arg" | ||
4581 | func_append compile_command " $arg" | ||
4582 | func_append finalize_command " $arg" | ||
4583 | case "$new_inherited_linker_flags " in | ||
4584 | *" $arg "*) ;; | ||
4585 | * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; | ||
4586 | esac | ||
4587 | continue | ||
4588 | ;; | ||
4589 | |||
4590 | -multi_module) | ||
4591 | single_module="${wl}-multi_module" | ||
4592 | continue | ||
4593 | ;; | ||
4594 | |||
4595 | -no-fast-install) | ||
4596 | fast_install=no | ||
4597 | continue | ||
4598 | ;; | ||
4599 | |||
4600 | -no-install) | ||
4601 | case $host in | ||
4602 | *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) | ||
4603 | # The PATH hackery in wrapper scripts is required on Windows | ||
4604 | # and Darwin in order for the loader to find any dlls it needs. | ||
4605 | func_warning "\`-no-install' is ignored for $host" | ||
4606 | func_warning "assuming \`-no-fast-install' instead" | ||
4607 | fast_install=no | ||
4608 | ;; | ||
4609 | *) no_install=yes ;; | ||
4610 | esac | ||
4611 | continue | ||
4612 | ;; | ||
4613 | |||
4614 | -no-undefined) | ||
4615 | allow_undefined=no | ||
4616 | continue | ||
4617 | ;; | ||
4618 | |||
4619 | -objectlist) | ||
4620 | prev=objectlist | ||
4621 | continue | ||
4622 | ;; | ||
4623 | |||
4624 | -o) prev=output ;; | ||
4625 | |||
4626 | -precious-files-regex) | ||
4627 | prev=precious_regex | ||
4628 | continue | ||
4629 | ;; | ||
4630 | |||
4631 | -release) | ||
4632 | prev=release | ||
4633 | continue | ||
4634 | ;; | ||
4635 | |||
4636 | -rpath) | ||
4637 | prev=rpath | ||
4638 | continue | ||
4639 | ;; | ||
4640 | |||
4641 | -R) | ||
4642 | prev=xrpath | ||
4643 | continue | ||
4644 | ;; | ||
4645 | |||
4646 | -R*) | ||
4647 | func_stripname '-R' '' "$arg" | ||
4648 | dir=$func_stripname_result | ||
4649 | # We need an absolute path. | ||
4650 | case $dir in | ||
4651 | [\\/]* | [A-Za-z]:[\\/]*) ;; | ||
4652 | *) | ||
4653 | func_fatal_error "only absolute run-paths are allowed" | ||
4654 | ;; | ||
4655 | esac | ||
4656 | case "$xrpath " in | ||
4657 | *" $dir "*) ;; | ||
4658 | *) xrpath="$xrpath $dir" ;; | ||
4659 | esac | ||
4660 | continue | ||
4661 | ;; | ||
4662 | |||
4663 | -shared) | ||
4664 | # The effects of -shared are defined in a previous loop. | ||
4665 | continue | ||
4666 | ;; | ||
4667 | |||
4668 | -shrext) | ||
4669 | prev=shrext | ||
4670 | continue | ||
4671 | ;; | ||
4672 | |||
4673 | -static | -static-libtool-libs) | ||
4674 | # The effects of -static are defined in a previous loop. | ||
4675 | # We used to do the same as -all-static on platforms that | ||
4676 | # didn't have a PIC flag, but the assumption that the effects | ||
4677 | # would be equivalent was wrong. It would break on at least | ||
4678 | # Digital Unix and AIX. | ||
4679 | continue | ||
4680 | ;; | ||
4681 | |||
4682 | -thread-safe) | ||
4683 | thread_safe=yes | ||
4684 | continue | ||
4685 | ;; | ||
4686 | |||
4687 | -version-info) | ||
4688 | prev=vinfo | ||
4689 | continue | ||
4690 | ;; | ||
4691 | |||
4692 | -version-number) | ||
4693 | prev=vinfo | ||
4694 | vinfo_number=yes | ||
4695 | continue | ||
4696 | ;; | ||
4697 | |||
4698 | -weak) | ||
4699 | prev=weak | ||
4700 | continue | ||
4701 | ;; | ||
4702 | |||
4703 | -Wc,*) | ||
4704 | func_stripname '-Wc,' '' "$arg" | ||
4705 | args=$func_stripname_result | ||
4706 | arg= | ||
4707 | save_ifs="$IFS"; IFS=',' | ||
4708 | for flag in $args; do | ||
4709 | IFS="$save_ifs" | ||
4710 | func_quote_for_eval "$flag" | ||
4711 | arg="$arg $wl$func_quote_for_eval_result" | ||
4712 | compiler_flags="$compiler_flags $func_quote_for_eval_result" | ||
4713 | done | ||
4714 | IFS="$save_ifs" | ||
4715 | func_stripname ' ' '' "$arg" | ||
4716 | arg=$func_stripname_result | ||
4717 | ;; | ||
4718 | |||
4719 | -Wl,*) | ||
4720 | func_stripname '-Wl,' '' "$arg" | ||
4721 | args=$func_stripname_result | ||
4722 | arg= | ||
4723 | save_ifs="$IFS"; IFS=',' | ||
4724 | for flag in $args; do | ||
4725 | IFS="$save_ifs" | ||
4726 | func_quote_for_eval "$flag" | ||
4727 | arg="$arg $wl$func_quote_for_eval_result" | ||
4728 | compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" | ||
4729 | linker_flags="$linker_flags $func_quote_for_eval_result" | ||
4730 | done | ||
4731 | IFS="$save_ifs" | ||
4732 | func_stripname ' ' '' "$arg" | ||
4733 | arg=$func_stripname_result | ||
4734 | ;; | ||
4735 | |||
4736 | -Xcompiler) | ||
4737 | prev=xcompiler | ||
4738 | continue | ||
4739 | ;; | ||
4740 | |||
4741 | -Xlinker) | ||
4742 | prev=xlinker | ||
4743 | continue | ||
4744 | ;; | ||
4745 | |||
4746 | -XCClinker) | ||
4747 | prev=xcclinker | ||
4748 | continue | ||
4749 | ;; | ||
4750 | |||
4751 | # -msg_* for osf cc | ||
4752 | -msg_*) | ||
4753 | func_quote_for_eval "$arg" | ||
4754 | arg="$func_quote_for_eval_result" | ||
4755 | ;; | ||
4756 | |||
4757 | # -64, -mips[0-9] enable 64-bit mode on the SGI compiler | ||
4758 | # -r[0-9][0-9]* specifies the processor on the SGI compiler | ||
4759 | # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler | ||
4760 | # +DA*, +DD* enable 64-bit mode on the HP compiler | ||
4761 | # -q* pass through compiler args for the IBM compiler | ||
4762 | # -m*, -t[45]*, -txscale* pass through architecture-specific | ||
4763 | # compiler args for GCC | ||
4764 | # -F/path gives path to uninstalled frameworks, gcc on darwin | ||
4765 | # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC | ||
4766 | # @file GCC response files | ||
4767 | -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ | ||
4768 | -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) | ||
4769 | func_quote_for_eval "$arg" | ||
4770 | arg="$func_quote_for_eval_result" | ||
4771 | func_append compile_command " $arg" | ||
4772 | func_append finalize_command " $arg" | ||
4773 | compiler_flags="$compiler_flags $arg" | ||
4774 | continue | ||
4775 | ;; | ||
4776 | |||
4777 | # Some other compiler flag. | ||
4778 | -* | +*) | ||
4779 | func_quote_for_eval "$arg" | ||
4780 | arg="$func_quote_for_eval_result" | ||
4781 | ;; | ||
4782 | |||
4783 | *.$objext) | ||
4784 | # A standard object. | ||
4785 | objs="$objs $arg" | ||
4786 | ;; | ||
4787 | |||
4788 | *.lo) | ||
4789 | # A libtool-controlled object. | ||
4790 | |||
4791 | # Check to see that this really is a libtool object. | ||
4792 | if func_lalib_unsafe_p "$arg"; then | ||
4793 | pic_object= | ||
4794 | non_pic_object= | ||
4795 | |||
4796 | # Read the .lo file | ||
4797 | func_source "$arg" | ||
4798 | |||
4799 | if test -z "$pic_object" || | ||
4800 | test -z "$non_pic_object" || | ||
4801 | test "$pic_object" = none && | ||
4802 | test "$non_pic_object" = none; then | ||
4803 | func_fatal_error "cannot find name of object for \`$arg'" | ||
4804 | fi | ||
4805 | |||
4806 | # Extract subdirectory from the argument. | ||
4807 | func_dirname "$arg" "/" "" | ||
4808 | xdir="$func_dirname_result" | ||
4809 | |||
4810 | if test "$pic_object" != none; then | ||
4811 | # Prepend the subdirectory the object is found in. | ||
4812 | pic_object="$xdir$pic_object" | ||
4813 | |||
4814 | if test "$prev" = dlfiles; then | ||
4815 | if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then | ||
4816 | dlfiles="$dlfiles $pic_object" | ||
4817 | prev= | ||
4818 | continue | ||
4819 | else | ||
4820 | # If libtool objects are unsupported, then we need to preload. | ||
4821 | prev=dlprefiles | ||
4822 | fi | ||
4823 | fi | ||
4824 | |||
4825 | # CHECK ME: I think I busted this. -Ossama | ||
4826 | if test "$prev" = dlprefiles; then | ||
4827 | # Preload the old-style object. | ||
4828 | dlprefiles="$dlprefiles $pic_object" | ||
4829 | prev= | ||
4830 | fi | ||
4831 | |||
4832 | # A PIC object. | ||
4833 | func_append libobjs " $pic_object" | ||
4834 | arg="$pic_object" | ||
4835 | fi | ||
4836 | |||
4837 | # Non-PIC object. | ||
4838 | if test "$non_pic_object" != none; then | ||
4839 | # Prepend the subdirectory the object is found in. | ||
4840 | non_pic_object="$xdir$non_pic_object" | ||
4841 | |||
4842 | # A standard non-PIC object | ||
4843 | func_append non_pic_objects " $non_pic_object" | ||
4844 | if test -z "$pic_object" || test "$pic_object" = none ; then | ||
4845 | arg="$non_pic_object" | ||
4846 | fi | ||
4847 | else | ||
4848 | # If the PIC object exists, use it instead. | ||
4849 | # $xdir was prepended to $pic_object above. | ||
4850 | non_pic_object="$pic_object" | ||
4851 | func_append non_pic_objects " $non_pic_object" | ||
4852 | fi | ||
4853 | else | ||
4854 | # Only an error if not doing a dry-run. | ||
4855 | if $opt_dry_run; then | ||
4856 | # Extract subdirectory from the argument. | ||
4857 | func_dirname "$arg" "/" "" | ||
4858 | xdir="$func_dirname_result" | ||
4859 | |||
4860 | func_lo2o "$arg" | ||
4861 | pic_object=$xdir$objdir/$func_lo2o_result | ||
4862 | non_pic_object=$xdir$func_lo2o_result | ||
4863 | func_append libobjs " $pic_object" | ||
4864 | func_append non_pic_objects " $non_pic_object" | ||
4865 | else | ||
4866 | func_fatal_error "\`$arg' is not a valid libtool object" | ||
4867 | fi | ||
4868 | fi | ||
4869 | ;; | ||
4870 | |||
4871 | *.$libext) | ||
4872 | # An archive. | ||
4873 | deplibs="$deplibs $arg" | ||
4874 | old_deplibs="$old_deplibs $arg" | ||
4875 | continue | ||
4876 | ;; | ||
4877 | |||
4878 | *.la) | ||
4879 | # A libtool-controlled library. | ||
4880 | |||
4881 | if test "$prev" = dlfiles; then | ||
4882 | # This library was specified with -dlopen. | ||
4883 | dlfiles="$dlfiles $arg" | ||
4884 | prev= | ||
4885 | elif test "$prev" = dlprefiles; then | ||
4886 | # The library was specified with -dlpreopen. | ||
4887 | dlprefiles="$dlprefiles $arg" | ||
4888 | prev= | ||
4889 | else | ||
4890 | deplibs="$deplibs $arg" | ||
4891 | fi | ||
4892 | continue | ||
4893 | ;; | ||
4894 | |||
4895 | # Some other compiler argument. | ||
4896 | *) | ||
4897 | # Unknown arguments in both finalize_command and compile_command need | ||
4898 | # to be aesthetically quoted because they are evaled later. | ||
4899 | func_quote_for_eval "$arg" | ||
4900 | arg="$func_quote_for_eval_result" | ||
4901 | ;; | ||
4902 | esac # arg | ||
4903 | |||
4904 | # Now actually substitute the argument into the commands. | ||
4905 | if test -n "$arg"; then | ||
4906 | func_append compile_command " $arg" | ||
4907 | func_append finalize_command " $arg" | ||
4908 | fi | ||
4909 | done # argument parsing loop | ||
4910 | |||
4911 | test -n "$prev" && \ | ||
4912 | func_fatal_help "the \`$prevarg' option requires an argument" | ||
4913 | |||
4914 | if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then | ||
4915 | eval arg=\"$export_dynamic_flag_spec\" | ||
4916 | func_append compile_command " $arg" | ||
4917 | func_append finalize_command " $arg" | ||
4918 | fi | ||
4919 | |||
4920 | oldlibs= | ||
4921 | # calculate the name of the file, without its directory | ||
4922 | func_basename "$output" | ||
4923 | outputname="$func_basename_result" | ||
4924 | libobjs_save="$libobjs" | ||
4925 | |||
4926 | if test -n "$shlibpath_var"; then | ||
4927 | # get the directories listed in $shlibpath_var | ||
4928 | eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` | ||
4929 | else | ||
4930 | shlib_search_path= | ||
4931 | fi | ||
4932 | eval sys_lib_search_path=\"$sys_lib_search_path_spec\" | ||
4933 | eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" | ||
4934 | |||
4935 | func_dirname "$output" "/" "" | ||
4936 | output_objdir="$func_dirname_result$objdir" | ||
4937 | # Create the object directory. | ||
4938 | func_mkdir_p "$output_objdir" | ||
4939 | |||
4940 | # Determine the type of output | ||
4941 | case $output in | ||
4942 | "") | ||
4943 | func_fatal_help "you must specify an output file" | ||
4944 | ;; | ||
4945 | *.$libext) linkmode=oldlib ;; | ||
4946 | *.lo | *.$objext) linkmode=obj ;; | ||
4947 | *.la) linkmode=lib ;; | ||
4948 | *) linkmode=prog ;; # Anything else should be a program. | ||
4949 | esac | ||
4950 | |||
4951 | specialdeplibs= | ||
4952 | |||
4953 | libs= | ||
4954 | # Find all interdependent deplibs by searching for libraries | ||
4955 | # that are linked more than once (e.g. -la -lb -la) | ||
4956 | for deplib in $deplibs; do | ||
4957 | if $opt_duplicate_deps ; then | ||
4958 | case "$libs " in | ||
4959 | *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; | ||
4960 | esac | ||
4961 | fi | ||
4962 | libs="$libs $deplib" | ||
4963 | done | ||
4964 | |||
4965 | if test "$linkmode" = lib; then | ||
4966 | libs="$predeps $libs $compiler_lib_search_path $postdeps" | ||
4967 | |||
4968 | # Compute libraries that are listed more than once in $predeps | ||
4969 | # $postdeps and mark them as special (i.e., whose duplicates are | ||
4970 | # not to be eliminated). | ||
4971 | pre_post_deps= | ||
4972 | if $opt_duplicate_compiler_generated_deps; then | ||
4973 | for pre_post_dep in $predeps $postdeps; do | ||
4974 | case "$pre_post_deps " in | ||
4975 | *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; | ||
4976 | esac | ||
4977 | pre_post_deps="$pre_post_deps $pre_post_dep" | ||
4978 | done | ||
4979 | fi | ||
4980 | pre_post_deps= | ||
4981 | fi | ||
4982 | |||
4983 | deplibs= | ||
4984 | newdependency_libs= | ||
4985 | newlib_search_path= | ||
4986 | need_relink=no # whether we're linking any uninstalled libtool libraries | ||
4987 | notinst_deplibs= # not-installed libtool libraries | ||
4988 | notinst_path= # paths that contain not-installed libtool libraries | ||
4989 | |||
4990 | case $linkmode in | ||
4991 | lib) | ||
4992 | passes="conv dlpreopen link" | ||
4993 | for file in $dlfiles $dlprefiles; do | ||
4994 | case $file in | ||
4995 | *.la) ;; | ||
4996 | *) | ||
4997 | func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" | ||
4998 | ;; | ||
4999 | esac | ||
5000 | done | ||
5001 | ;; | ||
5002 | prog) | ||
5003 | compile_deplibs= | ||
5004 | finalize_deplibs= | ||
5005 | alldeplibs=no | ||
5006 | newdlfiles= | ||
5007 | newdlprefiles= | ||
5008 | passes="conv scan dlopen dlpreopen link" | ||
5009 | ;; | ||
5010 | *) passes="conv" | ||
5011 | ;; | ||
5012 | esac | ||
5013 | |||
5014 | for pass in $passes; do | ||
5015 | # The preopen pass in lib mode reverses $deplibs; put it back here | ||
5016 | # so that -L comes before libs that need it for instance... | ||
5017 | if test "$linkmode,$pass" = "lib,link"; then | ||
5018 | ## FIXME: Find the place where the list is rebuilt in the wrong | ||
5019 | ## order, and fix it there properly | ||
5020 | tmp_deplibs= | ||
5021 | for deplib in $deplibs; do | ||
5022 | tmp_deplibs="$deplib $tmp_deplibs" | ||
5023 | done | ||
5024 | deplibs="$tmp_deplibs" | ||
5025 | fi | ||
5026 | |||
5027 | if test "$linkmode,$pass" = "lib,link" || | ||
5028 | test "$linkmode,$pass" = "prog,scan"; then | ||
5029 | libs="$deplibs" | ||
5030 | deplibs= | ||
5031 | fi | ||
5032 | if test "$linkmode" = prog; then | ||
5033 | case $pass in | ||
5034 | dlopen) libs="$dlfiles" ;; | ||
5035 | dlpreopen) libs="$dlprefiles" ;; | ||
5036 | link) | ||
5037 | libs="$deplibs %DEPLIBS%" | ||
5038 | test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" | ||
5039 | ;; | ||
5040 | esac | ||
5041 | fi | ||
5042 | if test "$linkmode,$pass" = "lib,dlpreopen"; then | ||
5043 | # Collect and forward deplibs of preopened libtool libs | ||
5044 | for lib in $dlprefiles; do | ||
5045 | # Ignore non-libtool-libs | ||
5046 | dependency_libs= | ||
5047 | case $lib in | ||
5048 | *.la) func_source "$lib" ;; | ||
5049 | esac | ||
5050 | |||
5051 | # Collect preopened libtool deplibs, except any this library | ||
5052 | # has declared as weak libs | ||
5053 | for deplib in $dependency_libs; do | ||
5054 | deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` | ||
5055 | case " $weak_libs " in | ||
5056 | *" $deplib_base "*) ;; | ||
5057 | *) deplibs="$deplibs $deplib" ;; | ||
5058 | esac | ||
5059 | done | ||
5060 | done | ||
5061 | libs="$dlprefiles" | ||
5062 | fi | ||
5063 | if test "$pass" = dlopen; then | ||
5064 | # Collect dlpreopened libraries | ||
5065 | save_deplibs="$deplibs" | ||
5066 | deplibs= | ||
5067 | fi | ||
5068 | |||
5069 | for deplib in $libs; do | ||
5070 | lib= | ||
5071 | found=no | ||
5072 | case $deplib in | ||
5073 | -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) | ||
5074 | if test "$linkmode,$pass" = "prog,link"; then | ||
5075 | compile_deplibs="$deplib $compile_deplibs" | ||
5076 | finalize_deplibs="$deplib $finalize_deplibs" | ||
5077 | else | ||
5078 | compiler_flags="$compiler_flags $deplib" | ||
5079 | if test "$linkmode" = lib ; then | ||
5080 | case "$new_inherited_linker_flags " in | ||
5081 | *" $deplib "*) ;; | ||
5082 | * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; | ||
5083 | esac | ||
5084 | fi | ||
5085 | fi | ||
5086 | continue | ||
5087 | ;; | ||
5088 | -l*) | ||
5089 | if test "$linkmode" != lib && test "$linkmode" != prog; then | ||
5090 | func_warning "\`-l' is ignored for archives/objects" | ||
5091 | continue | ||
5092 | fi | ||
5093 | func_stripname '-l' '' "$deplib" | ||
5094 | name=$func_stripname_result | ||
5095 | if test "$linkmode" = lib; then | ||
5096 | searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" | ||
5097 | else | ||
5098 | searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" | ||
5099 | fi | ||
5100 | for searchdir in $searchdirs; do | ||
5101 | for search_ext in .la $std_shrext .so .a; do | ||
5102 | # Search the libtool library | ||
5103 | lib="$searchdir/lib${name}${search_ext}" | ||
5104 | if test -f "$lib"; then | ||
5105 | if test "$search_ext" = ".la"; then | ||
5106 | found=yes | ||
5107 | else | ||
5108 | found=no | ||
5109 | fi | ||
5110 | break 2 | ||
5111 | fi | ||
5112 | done | ||
5113 | done | ||
5114 | if test "$found" != yes; then | ||
5115 | # deplib doesn't seem to be a libtool library | ||
5116 | if test "$linkmode,$pass" = "prog,link"; then | ||
5117 | compile_deplibs="$deplib $compile_deplibs" | ||
5118 | finalize_deplibs="$deplib $finalize_deplibs" | ||
5119 | else | ||
5120 | deplibs="$deplib $deplibs" | ||
5121 | test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" | ||
5122 | fi | ||
5123 | continue | ||
5124 | else # deplib is a libtool library | ||
5125 | # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, | ||
5126 | # We need to do some special things here, and not later. | ||
5127 | if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then | ||
5128 | case " $predeps $postdeps " in | ||
5129 | *" $deplib "*) | ||
5130 | if func_lalib_p "$lib"; then | ||
5131 | library_names= | ||
5132 | old_library= | ||
5133 | func_source "$lib" | ||
5134 | for l in $old_library $library_names; do | ||
5135 | ll="$l" | ||
5136 | done | ||
5137 | if test "X$ll" = "X$old_library" ; then # only static version available | ||
5138 | found=no | ||
5139 | func_dirname "$lib" "" "." | ||
5140 | ladir="$func_dirname_result" | ||
5141 | lib=$ladir/$old_library | ||
5142 | if test "$linkmode,$pass" = "prog,link"; then | ||
5143 | compile_deplibs="$deplib $compile_deplibs" | ||
5144 | finalize_deplibs="$deplib $finalize_deplibs" | ||
5145 | else | ||
5146 | deplibs="$deplib $deplibs" | ||
5147 | test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" | ||
5148 | fi | ||
5149 | continue | ||
5150 | fi | ||
5151 | fi | ||
5152 | ;; | ||
5153 | *) ;; | ||
5154 | esac | ||
5155 | fi | ||
5156 | fi | ||
5157 | ;; # -l | ||
5158 | *.ltframework) | ||
5159 | if test "$linkmode,$pass" = "prog,link"; then | ||
5160 | compile_deplibs="$deplib $compile_deplibs" | ||
5161 | finalize_deplibs="$deplib $finalize_deplibs" | ||
5162 | else | ||
5163 | deplibs="$deplib $deplibs" | ||
5164 | if test "$linkmode" = lib ; then | ||
5165 | case "$new_inherited_linker_flags " in | ||
5166 | *" $deplib "*) ;; | ||
5167 | * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; | ||
5168 | esac | ||
5169 | fi | ||
5170 | fi | ||
5171 | continue | ||
5172 | ;; | ||
5173 | -L*) | ||
5174 | case $linkmode in | ||
5175 | lib) | ||
5176 | deplibs="$deplib $deplibs" | ||
5177 | test "$pass" = conv && continue | ||
5178 | newdependency_libs="$deplib $newdependency_libs" | ||
5179 | func_stripname '-L' '' "$deplib" | ||
5180 | newlib_search_path="$newlib_search_path $func_stripname_result" | ||
5181 | ;; | ||
5182 | prog) | ||
5183 | if test "$pass" = conv; then | ||
5184 | deplibs="$deplib $deplibs" | ||
5185 | continue | ||
5186 | fi | ||
5187 | if test "$pass" = scan; then | ||
5188 | deplibs="$deplib $deplibs" | ||
5189 | else | ||
5190 | compile_deplibs="$deplib $compile_deplibs" | ||
5191 | finalize_deplibs="$deplib $finalize_deplibs" | ||
5192 | fi | ||
5193 | func_stripname '-L' '' "$deplib" | ||
5194 | newlib_search_path="$newlib_search_path $func_stripname_result" | ||
5195 | ;; | ||
5196 | *) | ||
5197 | func_warning "\`-L' is ignored for archives/objects" | ||
5198 | ;; | ||
5199 | esac # linkmode | ||
5200 | continue | ||
5201 | ;; # -L | ||
5202 | -R*) | ||
5203 | if test "$pass" = link; then | ||
5204 | func_stripname '-R' '' "$deplib" | ||
5205 | dir=$func_stripname_result | ||
5206 | # Make sure the xrpath contains only unique directories. | ||
5207 | case "$xrpath " in | ||
5208 | *" $dir "*) ;; | ||
5209 | *) xrpath="$xrpath $dir" ;; | ||
5210 | esac | ||
5211 | fi | ||
5212 | deplibs="$deplib $deplibs" | ||
5213 | continue | ||
5214 | ;; | ||
5215 | *.la) lib="$deplib" ;; | ||
5216 | *.$libext) | ||
5217 | if test "$pass" = conv; then | ||
5218 | deplibs="$deplib $deplibs" | ||
5219 | continue | ||
5220 | fi | ||
5221 | case $linkmode in | ||
5222 | lib) | ||
5223 | # Linking convenience modules into shared libraries is allowed, | ||
5224 | # but linking other static libraries is non-portable. | ||
5225 | case " $dlpreconveniencelibs " in | ||
5226 | *" $deplib "*) ;; | ||
5227 | *) | ||
5228 | valid_a_lib=no | ||
5229 | case $deplibs_check_method in | ||
5230 | match_pattern*) | ||
5231 | set dummy $deplibs_check_method; shift | ||
5232 | match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` | ||
5233 | if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ | ||
5234 | | $EGREP "$match_pattern_regex" > /dev/null; then | ||
5235 | valid_a_lib=yes | ||
5236 | fi | ||
5237 | ;; | ||
5238 | pass_all) | ||
5239 | valid_a_lib=yes | ||
5240 | ;; | ||
5241 | esac | ||
5242 | if test "$valid_a_lib" != yes; then | ||
5243 | $ECHO | ||
5244 | $ECHO "*** Warning: Trying to link with static lib archive $deplib." | ||
5245 | $ECHO "*** I have the capability to make that library automatically link in when" | ||
5246 | $ECHO "*** you link to this library. But I can only do this if you have a" | ||
5247 | $ECHO "*** shared version of the library, which you do not appear to have" | ||
5248 | $ECHO "*** because the file extensions .$libext of this argument makes me believe" | ||
5249 | $ECHO "*** that it is just a static archive that I should not use here." | ||
5250 | else | ||
5251 | $ECHO | ||
5252 | $ECHO "*** Warning: Linking the shared library $output against the" | ||
5253 | $ECHO "*** static library $deplib is not portable!" | ||
5254 | deplibs="$deplib $deplibs" | ||
5255 | fi | ||
5256 | ;; | ||
5257 | esac | ||
5258 | continue | ||
5259 | ;; | ||
5260 | prog) | ||
5261 | if test "$pass" != link; then | ||
5262 | deplibs="$deplib $deplibs" | ||
5263 | else | ||
5264 | compile_deplibs="$deplib $compile_deplibs" | ||
5265 | finalize_deplibs="$deplib $finalize_deplibs" | ||
5266 | fi | ||
5267 | continue | ||
5268 | ;; | ||
5269 | esac # linkmode | ||
5270 | ;; # *.$libext | ||
5271 | *.lo | *.$objext) | ||
5272 | if test "$pass" = conv; then | ||
5273 | deplibs="$deplib $deplibs" | ||
5274 | elif test "$linkmode" = prog; then | ||
5275 | if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then | ||
5276 | # If there is no dlopen support or we're linking statically, | ||
5277 | # we need to preload. | ||
5278 | newdlprefiles="$newdlprefiles $deplib" | ||
5279 | compile_deplibs="$deplib $compile_deplibs" | ||
5280 | finalize_deplibs="$deplib $finalize_deplibs" | ||
5281 | else | ||
5282 | newdlfiles="$newdlfiles $deplib" | ||
5283 | fi | ||
5284 | fi | ||
5285 | continue | ||
5286 | ;; | ||
5287 | %DEPLIBS%) | ||
5288 | alldeplibs=yes | ||
5289 | continue | ||
5290 | ;; | ||
5291 | esac # case $deplib | ||
5292 | |||
5293 | if test "$found" = yes || test -f "$lib"; then : | ||
5294 | else | ||
5295 | func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" | ||
5296 | fi | ||
5297 | |||
5298 | # Check to see that this really is a libtool archive. | ||
5299 | func_lalib_unsafe_p "$lib" \ | ||
5300 | || func_fatal_error "\`$lib' is not a valid libtool archive" | ||
5301 | |||
5302 | func_dirname "$lib" "" "." | ||
5303 | ladir="$func_dirname_result" | ||
5304 | |||
5305 | dlname= | ||
5306 | dlopen= | ||
5307 | dlpreopen= | ||
5308 | libdir= | ||
5309 | library_names= | ||
5310 | old_library= | ||
5311 | inherited_linker_flags= | ||
5312 | # If the library was installed with an old release of libtool, | ||
5313 | # it will not redefine variables installed, or shouldnotlink | ||
5314 | installed=yes | ||
5315 | shouldnotlink=no | ||
5316 | avoidtemprpath= | ||
5317 | |||
5318 | |||
5319 | # Read the .la file | ||
5320 | func_source "$lib" | ||
5321 | |||
5322 | # Convert "-framework foo" to "foo.ltframework" | ||
5323 | if test -n "$inherited_linker_flags"; then | ||
5324 | tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` | ||
5325 | for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do | ||
5326 | case " $new_inherited_linker_flags " in | ||
5327 | *" $tmp_inherited_linker_flag "*) ;; | ||
5328 | *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; | ||
5329 | esac | ||
5330 | done | ||
5331 | fi | ||
5332 | dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` | ||
5333 | if test "$linkmode,$pass" = "lib,link" || | ||
5334 | test "$linkmode,$pass" = "prog,scan" || | ||
5335 | { test "$linkmode" != prog && test "$linkmode" != lib; }; then | ||
5336 | test -n "$dlopen" && dlfiles="$dlfiles $dlopen" | ||
5337 | test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" | ||
5338 | fi | ||
5339 | |||
5340 | if test "$pass" = conv; then | ||
5341 | # Only check for convenience libraries | ||
5342 | deplibs="$lib $deplibs" | ||
5343 | if test -z "$libdir"; then | ||
5344 | if test -z "$old_library"; then | ||
5345 | func_fatal_error "cannot find name of link library for \`$lib'" | ||
5346 | fi | ||
5347 | # It is a libtool convenience library, so add in its objects. | ||
5348 | convenience="$convenience $ladir/$objdir/$old_library" | ||
5349 | old_convenience="$old_convenience $ladir/$objdir/$old_library" | ||
5350 | tmp_libs= | ||
5351 | for deplib in $dependency_libs; do | ||
5352 | deplibs="$deplib $deplibs" | ||
5353 | if $opt_duplicate_deps ; then | ||
5354 | case "$tmp_libs " in | ||
5355 | *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; | ||
5356 | esac | ||
5357 | fi | ||
5358 | tmp_libs="$tmp_libs $deplib" | ||
5359 | done | ||
5360 | elif test "$linkmode" != prog && test "$linkmode" != lib; then | ||
5361 | func_fatal_error "\`$lib' is not a convenience library" | ||
5362 | fi | ||
5363 | continue | ||
5364 | fi # $pass = conv | ||
5365 | |||
5366 | |||
5367 | # Get the name of the library we link against. | ||
5368 | linklib= | ||
5369 | for l in $old_library $library_names; do | ||
5370 | linklib="$l" | ||
5371 | done | ||
5372 | if test -z "$linklib"; then | ||
5373 | func_fatal_error "cannot find name of link library for \`$lib'" | ||
5374 | fi | ||
5375 | |||
5376 | # This library was specified with -dlopen. | ||
5377 | if test "$pass" = dlopen; then | ||
5378 | if test -z "$libdir"; then | ||
5379 | func_fatal_error "cannot -dlopen a convenience library: \`$lib'" | ||
5380 | fi | ||
5381 | if test -z "$dlname" || | ||
5382 | test "$dlopen_support" != yes || | ||
5383 | test "$build_libtool_libs" = no; then | ||
5384 | # If there is no dlname, no dlopen support or we're linking | ||
5385 | # statically, we need to preload. We also need to preload any | ||
5386 | # dependent libraries so libltdl's deplib preloader doesn't | ||
5387 | # bomb out in the load deplibs phase. | ||
5388 | dlprefiles="$dlprefiles $lib $dependency_libs" | ||
5389 | else | ||
5390 | newdlfiles="$newdlfiles $lib" | ||
5391 | fi | ||
5392 | continue | ||
5393 | fi # $pass = dlopen | ||
5394 | |||
5395 | # We need an absolute path. | ||
5396 | case $ladir in | ||
5397 | [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; | ||
5398 | *) | ||
5399 | abs_ladir=`cd "$ladir" && pwd` | ||
5400 | if test -z "$abs_ladir"; then | ||
5401 | func_warning "cannot determine absolute directory name of \`$ladir'" | ||
5402 | func_warning "passing it literally to the linker, although it might fail" | ||
5403 | abs_ladir="$ladir" | ||
5404 | fi | ||
5405 | ;; | ||
5406 | esac | ||
5407 | func_basename "$lib" | ||
5408 | laname="$func_basename_result" | ||
5409 | |||
5410 | # Find the relevant object directory and library name. | ||
5411 | if test "X$installed" = Xyes; then | ||
5412 | if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then | ||
5413 | func_warning "library \`$lib' was moved." | ||
5414 | dir="$ladir" | ||
5415 | absdir="$abs_ladir" | ||
5416 | libdir="$abs_ladir" | ||
5417 | else | ||
5418 | dir="$libdir" | ||
5419 | absdir="$libdir" | ||
5420 | fi | ||
5421 | test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes | ||
5422 | else | ||
5423 | if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then | ||
5424 | dir="$ladir" | ||
5425 | absdir="$abs_ladir" | ||
5426 | # Remove this search path later | ||
5427 | notinst_path="$notinst_path $abs_ladir" | ||
5428 | else | ||
5429 | dir="$ladir/$objdir" | ||
5430 | absdir="$abs_ladir/$objdir" | ||
5431 | # Remove this search path later | ||
5432 | notinst_path="$notinst_path $abs_ladir" | ||
5433 | fi | ||
5434 | fi # $installed = yes | ||
5435 | func_stripname 'lib' '.la' "$laname" | ||
5436 | name=$func_stripname_result | ||
5437 | |||
5438 | # This library was specified with -dlpreopen. | ||
5439 | if test "$pass" = dlpreopen; then | ||
5440 | if test -z "$libdir" && test "$linkmode" = prog; then | ||
5441 | func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" | ||
5442 | fi | ||
5443 | # Prefer using a static library (so that no silly _DYNAMIC symbols | ||
5444 | # are required to link). | ||
5445 | if test -n "$old_library"; then | ||
5446 | newdlprefiles="$newdlprefiles $dir/$old_library" | ||
5447 | # Keep a list of preopened convenience libraries to check | ||
5448 | # that they are being used correctly in the link pass. | ||
5449 | test -z "$libdir" && \ | ||
5450 | dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" | ||
5451 | # Otherwise, use the dlname, so that lt_dlopen finds it. | ||
5452 | elif test -n "$dlname"; then | ||
5453 | newdlprefiles="$newdlprefiles $dir/$dlname" | ||
5454 | else | ||
5455 | newdlprefiles="$newdlprefiles $dir/$linklib" | ||
5456 | fi | ||
5457 | fi # $pass = dlpreopen | ||
5458 | |||
5459 | if test -z "$libdir"; then | ||
5460 | # Link the convenience library | ||
5461 | if test "$linkmode" = lib; then | ||
5462 | deplibs="$dir/$old_library $deplibs" | ||
5463 | elif test "$linkmode,$pass" = "prog,link"; then | ||
5464 | compile_deplibs="$dir/$old_library $compile_deplibs" | ||
5465 | finalize_deplibs="$dir/$old_library $finalize_deplibs" | ||
5466 | else | ||
5467 | deplibs="$lib $deplibs" # used for prog,scan pass | ||
5468 | fi | ||
5469 | continue | ||
5470 | fi | ||
5471 | |||
5472 | |||
5473 | if test "$linkmode" = prog && test "$pass" != link; then | ||
5474 | newlib_search_path="$newlib_search_path $ladir" | ||
5475 | deplibs="$lib $deplibs" | ||
5476 | |||
5477 | linkalldeplibs=no | ||
5478 | if test "$link_all_deplibs" != no || test -z "$library_names" || | ||
5479 | test "$build_libtool_libs" = no; then | ||
5480 | linkalldeplibs=yes | ||
5481 | fi | ||
5482 | |||
5483 | tmp_libs= | ||
5484 | for deplib in $dependency_libs; do | ||
5485 | case $deplib in | ||
5486 | -L*) func_stripname '-L' '' "$deplib" | ||
5487 | newlib_search_path="$newlib_search_path $func_stripname_result" | ||
5488 | ;; | ||
5489 | esac | ||
5490 | # Need to link against all dependency_libs? | ||
5491 | if test "$linkalldeplibs" = yes; then | ||
5492 | deplibs="$deplib $deplibs" | ||
5493 | else | ||
5494 | # Need to hardcode shared library paths | ||
5495 | # or/and link against static libraries | ||
5496 | newdependency_libs="$deplib $newdependency_libs" | ||
5497 | fi | ||
5498 | if $opt_duplicate_deps ; then | ||
5499 | case "$tmp_libs " in | ||
5500 | *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; | ||
5501 | esac | ||
5502 | fi | ||
5503 | tmp_libs="$tmp_libs $deplib" | ||
5504 | done # for deplib | ||
5505 | continue | ||
5506 | fi # $linkmode = prog... | ||
5507 | |||
5508 | if test "$linkmode,$pass" = "prog,link"; then | ||
5509 | if test -n "$library_names" && | ||
5510 | { { test "$prefer_static_libs" = no || | ||
5511 | test "$prefer_static_libs,$installed" = "built,yes"; } || | ||
5512 | test -z "$old_library"; }; then | ||
5513 | # We need to hardcode the library path | ||
5514 | if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then | ||
5515 | # Make sure the rpath contains only unique directories. | ||
5516 | case "$temp_rpath:" in | ||
5517 | *"$absdir:"*) ;; | ||
5518 | *) temp_rpath="$temp_rpath$absdir:" ;; | ||
5519 | esac | ||
5520 | fi | ||
5521 | |||
5522 | # Hardcode the library path. | ||
5523 | # Skip directories that are in the system default run-time | ||
5524 | # search path. | ||
5525 | case " $sys_lib_dlsearch_path " in | ||
5526 | *" $absdir "*) ;; | ||
5527 | *) | ||
5528 | case "$compile_rpath " in | ||
5529 | *" $absdir "*) ;; | ||
5530 | *) compile_rpath="$compile_rpath $absdir" | ||
5531 | esac | ||
5532 | ;; | ||
5533 | esac | ||
5534 | case " $sys_lib_dlsearch_path " in | ||
5535 | *" $libdir "*) ;; | ||
5536 | *) | ||
5537 | case "$finalize_rpath " in | ||
5538 | *" $libdir "*) ;; | ||
5539 | *) finalize_rpath="$finalize_rpath $libdir" | ||
5540 | esac | ||
5541 | ;; | ||
5542 | esac | ||
5543 | fi # $linkmode,$pass = prog,link... | ||
5544 | |||
5545 | if test "$alldeplibs" = yes && | ||
5546 | { test "$deplibs_check_method" = pass_all || | ||
5547 | { test "$build_libtool_libs" = yes && | ||
5548 | test -n "$library_names"; }; }; then | ||
5549 | # We only need to search for static libraries | ||
5550 | continue | ||
5551 | fi | ||
5552 | fi | ||
5553 | |||
5554 | link_static=no # Whether the deplib will be linked statically | ||
5555 | use_static_libs=$prefer_static_libs | ||
5556 | if test "$use_static_libs" = built && test "$installed" = yes; then | ||
5557 | use_static_libs=no | ||
5558 | fi | ||
5559 | if test -n "$library_names" && | ||
5560 | { test "$use_static_libs" = no || test -z "$old_library"; }; then | ||
5561 | case $host in | ||
5562 | *cygwin* | *mingw* | *cegcc*) | ||
5563 | # No point in relinking DLLs because paths are not encoded | ||
5564 | notinst_deplibs="$notinst_deplibs $lib" | ||
5565 | need_relink=no | ||
5566 | ;; | ||
5567 | *) | ||
5568 | if test "$installed" = no; then | ||
5569 | notinst_deplibs="$notinst_deplibs $lib" | ||
5570 | need_relink=yes | ||
5571 | fi | ||
5572 | ;; | ||
5573 | esac | ||
5574 | # This is a shared library | ||
5575 | |||
5576 | # Warn about portability, can't link against -module's on some | ||
5577 | # systems (darwin). Don't bleat about dlopened modules though! | ||
5578 | dlopenmodule="" | ||
5579 | for dlpremoduletest in $dlprefiles; do | ||
5580 | if test "X$dlpremoduletest" = "X$lib"; then | ||
5581 | dlopenmodule="$dlpremoduletest" | ||
5582 | break | ||
5583 | fi | ||
5584 | done | ||
5585 | if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then | ||
5586 | $ECHO | ||
5587 | if test "$linkmode" = prog; then | ||
5588 | $ECHO "*** Warning: Linking the executable $output against the loadable module" | ||
5589 | else | ||
5590 | $ECHO "*** Warning: Linking the shared library $output against the loadable module" | ||
5591 | fi | ||
5592 | $ECHO "*** $linklib is not portable!" | ||
5593 | fi | ||
5594 | if test "$linkmode" = lib && | ||
5595 | test "$hardcode_into_libs" = yes; then | ||
5596 | # Hardcode the library path. | ||
5597 | # Skip directories that are in the system default run-time | ||
5598 | # search path. | ||
5599 | case " $sys_lib_dlsearch_path " in | ||
5600 | *" $absdir "*) ;; | ||
5601 | *) | ||
5602 | case "$compile_rpath " in | ||
5603 | *" $absdir "*) ;; | ||
5604 | *) compile_rpath="$compile_rpath $absdir" | ||
5605 | esac | ||
5606 | ;; | ||
5607 | esac | ||
5608 | case " $sys_lib_dlsearch_path " in | ||
5609 | *" $libdir "*) ;; | ||
5610 | *) | ||
5611 | case "$finalize_rpath " in | ||
5612 | *" $libdir "*) ;; | ||
5613 | *) finalize_rpath="$finalize_rpath $libdir" | ||
5614 | esac | ||
5615 | ;; | ||
5616 | esac | ||
5617 | fi | ||
5618 | |||
5619 | if test -n "$old_archive_from_expsyms_cmds"; then | ||
5620 | # figure out the soname | ||
5621 | set dummy $library_names | ||
5622 | shift | ||
5623 | realname="$1" | ||
5624 | shift | ||
5625 | libname=`eval "\\$ECHO \"$libname_spec\""` | ||
5626 | # use dlname if we got it. it's perfectly good, no? | ||
5627 | if test -n "$dlname"; then | ||
5628 | soname="$dlname" | ||
5629 | elif test -n "$soname_spec"; then | ||
5630 | # bleh windows | ||
5631 | case $host in | ||
5632 | *cygwin* | mingw* | *cegcc*) | ||
5633 | func_arith $current - $age | ||
5634 | major=$func_arith_result | ||
5635 | versuffix="-$major" | ||
5636 | ;; | ||
5637 | esac | ||
5638 | eval soname=\"$soname_spec\" | ||
5639 | else | ||
5640 | soname="$realname" | ||
5641 | fi | ||
5642 | |||
5643 | # Make a new name for the extract_expsyms_cmds to use | ||
5644 | soroot="$soname" | ||
5645 | func_basename "$soroot" | ||
5646 | soname="$func_basename_result" | ||
5647 | func_stripname 'lib' '.dll' "$soname" | ||
5648 | newlib=libimp-$func_stripname_result.a | ||
5649 | |||
5650 | # If the library has no export list, then create one now | ||
5651 | if test -f "$output_objdir/$soname-def"; then : | ||
5652 | else | ||
5653 | func_verbose "extracting exported symbol list from \`$soname'" | ||
5654 | func_execute_cmds "$extract_expsyms_cmds" 'exit $?' | ||
5655 | fi | ||
5656 | |||
5657 | # Create $newlib | ||
5658 | if test -f "$output_objdir/$newlib"; then :; else | ||
5659 | func_verbose "generating import library for \`$soname'" | ||
5660 | func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' | ||
5661 | fi | ||
5662 | # make sure the library variables are pointing to the new library | ||
5663 | dir=$output_objdir | ||
5664 | linklib=$newlib | ||
5665 | fi # test -n "$old_archive_from_expsyms_cmds" | ||
5666 | |||
5667 | if test "$linkmode" = prog || test "$mode" != relink; then | ||
5668 | add_shlibpath= | ||
5669 | add_dir= | ||
5670 | add= | ||
5671 | lib_linked=yes | ||
5672 | case $hardcode_action in | ||
5673 | immediate | unsupported) | ||
5674 | if test "$hardcode_direct" = no; then | ||
5675 | add="$dir/$linklib" | ||
5676 | case $host in | ||
5677 | *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; | ||
5678 | *-*-sysv4*uw2*) add_dir="-L$dir" ;; | ||
5679 | *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ | ||
5680 | *-*-unixware7*) add_dir="-L$dir" ;; | ||
5681 | *-*-darwin* ) | ||
5682 | # if the lib is a (non-dlopened) module then we can not | ||
5683 | # link against it, someone is ignoring the earlier warnings | ||
5684 | if /usr/bin/file -L $add 2> /dev/null | | ||
5685 | $GREP ": [^:]* bundle" >/dev/null ; then | ||
5686 | if test "X$dlopenmodule" != "X$lib"; then | ||
5687 | $ECHO "*** Warning: lib $linklib is a module, not a shared library" | ||
5688 | if test -z "$old_library" ; then | ||
5689 | $ECHO | ||
5690 | $ECHO "*** And there doesn't seem to be a static archive available" | ||
5691 | $ECHO "*** The link will probably fail, sorry" | ||
5692 | else | ||
5693 | add="$dir/$old_library" | ||
5694 | fi | ||
5695 | elif test -n "$old_library"; then | ||
5696 | add="$dir/$old_library" | ||
5697 | fi | ||
5698 | fi | ||
5699 | esac | ||
5700 | elif test "$hardcode_minus_L" = no; then | ||
5701 | case $host in | ||
5702 | *-*-sunos*) add_shlibpath="$dir" ;; | ||
5703 | esac | ||
5704 | add_dir="-L$dir" | ||
5705 | add="-l$name" | ||
5706 | elif test "$hardcode_shlibpath_var" = no; then | ||
5707 | add_shlibpath="$dir" | ||
5708 | add="-l$name" | ||
5709 | else | ||
5710 | lib_linked=no | ||
5711 | fi | ||
5712 | ;; | ||
5713 | relink) | ||
5714 | if test "$hardcode_direct" = yes && | ||
5715 | test "$hardcode_direct_absolute" = no; then | ||
5716 | add="$dir/$linklib" | ||
5717 | elif test "$hardcode_minus_L" = yes; then | ||
5718 | add_dir="-L$dir" | ||
5719 | # Try looking first in the location we're being installed to. | ||
5720 | if test -n "$inst_prefix_dir"; then | ||
5721 | case $libdir in | ||
5722 | [\\/]*) | ||
5723 | add_dir="$add_dir -L$inst_prefix_dir$libdir" | ||
5724 | ;; | ||
5725 | esac | ||
5726 | fi | ||
5727 | add="-l$name" | ||
5728 | elif test "$hardcode_shlibpath_var" = yes; then | ||
5729 | add_shlibpath="$dir" | ||
5730 | add="-l$name" | ||
5731 | else | ||
5732 | lib_linked=no | ||
5733 | fi | ||
5734 | ;; | ||
5735 | *) lib_linked=no ;; | ||
5736 | esac | ||
5737 | |||
5738 | if test "$lib_linked" != yes; then | ||
5739 | func_fatal_configuration "unsupported hardcode properties" | ||
5740 | fi | ||
5741 | |||
5742 | if test -n "$add_shlibpath"; then | ||
5743 | case :$compile_shlibpath: in | ||
5744 | *":$add_shlibpath:"*) ;; | ||
5745 | *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; | ||
5746 | esac | ||
5747 | fi | ||
5748 | if test "$linkmode" = prog; then | ||
5749 | test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" | ||
5750 | test -n "$add" && compile_deplibs="$add $compile_deplibs" | ||
5751 | else | ||
5752 | test -n "$add_dir" && deplibs="$add_dir $deplibs" | ||
5753 | test -n "$add" && deplibs="$add $deplibs" | ||
5754 | if test "$hardcode_direct" != yes && | ||
5755 | test "$hardcode_minus_L" != yes && | ||
5756 | test "$hardcode_shlibpath_var" = yes; then | ||
5757 | case :$finalize_shlibpath: in | ||
5758 | *":$libdir:"*) ;; | ||
5759 | *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; | ||
5760 | esac | ||
5761 | fi | ||
5762 | fi | ||
5763 | fi | ||
5764 | |||
5765 | if test "$linkmode" = prog || test "$mode" = relink; then | ||
5766 | add_shlibpath= | ||
5767 | add_dir= | ||
5768 | add= | ||
5769 | # Finalize command for both is simple: just hardcode it. | ||
5770 | if test "$hardcode_direct" = yes && | ||
5771 | test "$hardcode_direct_absolute" = no; then | ||
5772 | add="$libdir/$linklib" | ||
5773 | elif test "$hardcode_minus_L" = yes; then | ||
5774 | add_dir="-L$libdir" | ||
5775 | add="-l$name" | ||
5776 | elif test "$hardcode_shlibpath_var" = yes; then | ||
5777 | case :$finalize_shlibpath: in | ||
5778 | *":$libdir:"*) ;; | ||
5779 | *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; | ||
5780 | esac | ||
5781 | add="-l$name" | ||
5782 | elif test "$hardcode_automatic" = yes; then | ||
5783 | if test -n "$inst_prefix_dir" && | ||
5784 | test -f "$inst_prefix_dir$libdir/$linklib" ; then | ||
5785 | add="$inst_prefix_dir$libdir/$linklib" | ||
5786 | else | ||
5787 | add="$libdir/$linklib" | ||
5788 | fi | ||
5789 | else | ||
5790 | # We cannot seem to hardcode it, guess we'll fake it. | ||
5791 | add_dir="-L$libdir" | ||
5792 | # Try looking first in the location we're being installed to. | ||
5793 | if test -n "$inst_prefix_dir"; then | ||
5794 | case $libdir in | ||
5795 | [\\/]*) | ||
5796 | add_dir="$add_dir -L$inst_prefix_dir$libdir" | ||
5797 | ;; | ||
5798 | esac | ||
5799 | fi | ||
5800 | add="-l$name" | ||
5801 | fi | ||
5802 | |||
5803 | if test "$linkmode" = prog; then | ||
5804 | test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" | ||
5805 | test -n "$add" && finalize_deplibs="$add $finalize_deplibs" | ||
5806 | else | ||
5807 | test -n "$add_dir" && deplibs="$add_dir $deplibs" | ||
5808 | test -n "$add" && deplibs="$add $deplibs" | ||
5809 | fi | ||
5810 | fi | ||
5811 | elif test "$linkmode" = prog; then | ||
5812 | # Here we assume that one of hardcode_direct or hardcode_minus_L | ||
5813 | # is not unsupported. This is valid on all known static and | ||
5814 | # shared platforms. | ||
5815 | if test "$hardcode_direct" != unsupported; then | ||
5816 | test -n "$old_library" && linklib="$old_library" | ||
5817 | compile_deplibs="$dir/$linklib $compile_deplibs" | ||
5818 | finalize_deplibs="$dir/$linklib $finalize_deplibs" | ||
5819 | else | ||
5820 | compile_deplibs="-l$name -L$dir $compile_deplibs" | ||
5821 | finalize_deplibs="-l$name -L$dir $finalize_deplibs" | ||
5822 | fi | ||
5823 | elif test "$build_libtool_libs" = yes; then | ||
5824 | # Not a shared library | ||
5825 | if test "$deplibs_check_method" != pass_all; then | ||
5826 | # We're trying link a shared library against a static one | ||
5827 | # but the system doesn't support it. | ||
5828 | |||
5829 | # Just print a warning and add the library to dependency_libs so | ||
5830 | # that the program can be linked against the static library. | ||
5831 | $ECHO | ||
5832 | $ECHO "*** Warning: This system can not link to static lib archive $lib." | ||
5833 | $ECHO "*** I have the capability to make that library automatically link in when" | ||
5834 | $ECHO "*** you link to this library. But I can only do this if you have a" | ||
5835 | $ECHO "*** shared version of the library, which you do not appear to have." | ||
5836 | if test "$module" = yes; then | ||
5837 | $ECHO "*** But as you try to build a module library, libtool will still create " | ||
5838 | $ECHO "*** a static module, that should work as long as the dlopening application" | ||
5839 | $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." | ||
5840 | if test -z "$global_symbol_pipe"; then | ||
5841 | $ECHO | ||
5842 | $ECHO "*** However, this would only work if libtool was able to extract symbol" | ||
5843 | $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" | ||
5844 | $ECHO "*** not find such a program. So, this module is probably useless." | ||
5845 | $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." | ||
5846 | fi | ||
5847 | if test "$build_old_libs" = no; then | ||
5848 | build_libtool_libs=module | ||
5849 | build_old_libs=yes | ||
5850 | else | ||
5851 | build_libtool_libs=no | ||
5852 | fi | ||
5853 | fi | ||
5854 | else | ||
5855 | deplibs="$dir/$old_library $deplibs" | ||
5856 | link_static=yes | ||
5857 | fi | ||
5858 | fi # link shared/static library? | ||
5859 | |||
5860 | if test "$linkmode" = lib; then | ||
5861 | if test -n "$dependency_libs" && | ||
5862 | { test "$hardcode_into_libs" != yes || | ||
5863 | test "$build_old_libs" = yes || | ||
5864 | test "$link_static" = yes; }; then | ||
5865 | # Extract -R from dependency_libs | ||
5866 | temp_deplibs= | ||
5867 | for libdir in $dependency_libs; do | ||
5868 | case $libdir in | ||
5869 | -R*) func_stripname '-R' '' "$libdir" | ||
5870 | temp_xrpath=$func_stripname_result | ||
5871 | case " $xrpath " in | ||
5872 | *" $temp_xrpath "*) ;; | ||
5873 | *) xrpath="$xrpath $temp_xrpath";; | ||
5874 | esac;; | ||
5875 | *) temp_deplibs="$temp_deplibs $libdir";; | ||
5876 | esac | ||
5877 | done | ||
5878 | dependency_libs="$temp_deplibs" | ||
5879 | fi | ||
5880 | |||
5881 | newlib_search_path="$newlib_search_path $absdir" | ||
5882 | # Link against this library | ||
5883 | test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" | ||
5884 | # ... and its dependency_libs | ||
5885 | tmp_libs= | ||
5886 | for deplib in $dependency_libs; do | ||
5887 | newdependency_libs="$deplib $newdependency_libs" | ||
5888 | if $opt_duplicate_deps ; then | ||
5889 | case "$tmp_libs " in | ||
5890 | *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; | ||
5891 | esac | ||
5892 | fi | ||
5893 | tmp_libs="$tmp_libs $deplib" | ||
5894 | done | ||
5895 | |||
5896 | if test "$link_all_deplibs" != no; then | ||
5897 | # Add the search paths of all dependency libraries | ||
5898 | for deplib in $dependency_libs; do | ||
5899 | path= | ||
5900 | case $deplib in | ||
5901 | -L*) path="$deplib" ;; | ||
5902 | *.la) | ||
5903 | func_dirname "$deplib" "" "." | ||
5904 | dir="$func_dirname_result" | ||
5905 | # We need an absolute path. | ||
5906 | case $dir in | ||
5907 | [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; | ||
5908 | *) | ||
5909 | absdir=`cd "$dir" && pwd` | ||
5910 | if test -z "$absdir"; then | ||
5911 | func_warning "cannot determine absolute directory name of \`$dir'" | ||
5912 | absdir="$dir" | ||
5913 | fi | ||
5914 | ;; | ||
5915 | esac | ||
5916 | if $GREP "^installed=no" $deplib > /dev/null; then | ||
5917 | case $host in | ||
5918 | *-*-darwin*) | ||
5919 | depdepl= | ||
5920 | eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` | ||
5921 | if test -n "$deplibrary_names" ; then | ||
5922 | for tmp in $deplibrary_names ; do | ||
5923 | depdepl=$tmp | ||
5924 | done | ||
5925 | if test -f "$absdir/$objdir/$depdepl" ; then | ||
5926 | depdepl="$absdir/$objdir/$depdepl" | ||
5927 | darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` | ||
5928 | if test -z "$darwin_install_name"; then | ||
5929 | darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` | ||
5930 | fi | ||
5931 | compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" | ||
5932 | linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" | ||
5933 | path= | ||
5934 | fi | ||
5935 | fi | ||
5936 | ;; | ||
5937 | *) | ||
5938 | path="-L$absdir/$objdir" | ||
5939 | ;; | ||
5940 | esac | ||
5941 | else | ||
5942 | eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` | ||
5943 | test -z "$libdir" && \ | ||
5944 | func_fatal_error "\`$deplib' is not a valid libtool archive" | ||
5945 | test "$absdir" != "$libdir" && \ | ||
5946 | func_warning "\`$deplib' seems to be moved" | ||
5947 | |||
5948 | path="-L$absdir" | ||
5949 | fi | ||
5950 | ;; | ||
5951 | esac | ||
5952 | case " $deplibs " in | ||
5953 | *" $path "*) ;; | ||
5954 | *) deplibs="$path $deplibs" ;; | ||
5955 | esac | ||
5956 | done | ||
5957 | fi # link_all_deplibs != no | ||
5958 | fi # linkmode = lib | ||
5959 | done # for deplib in $libs | ||
5960 | if test "$pass" = link; then | ||
5961 | if test "$linkmode" = "prog"; then | ||
5962 | compile_deplibs="$new_inherited_linker_flags $compile_deplibs" | ||
5963 | finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" | ||
5964 | else | ||
5965 | compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` | ||
5966 | fi | ||
5967 | fi | ||
5968 | dependency_libs="$newdependency_libs" | ||
5969 | if test "$pass" = dlpreopen; then | ||
5970 | # Link the dlpreopened libraries before other libraries | ||
5971 | for deplib in $save_deplibs; do | ||
5972 | deplibs="$deplib $deplibs" | ||
5973 | done | ||
5974 | fi | ||
5975 | if test "$pass" != dlopen; then | ||
5976 | if test "$pass" != conv; then | ||
5977 | # Make sure lib_search_path contains only unique directories. | ||
5978 | lib_search_path= | ||
5979 | for dir in $newlib_search_path; do | ||
5980 | case "$lib_search_path " in | ||
5981 | *" $dir "*) ;; | ||
5982 | *) lib_search_path="$lib_search_path $dir" ;; | ||
5983 | esac | ||
5984 | done | ||
5985 | newlib_search_path= | ||
5986 | fi | ||
5987 | |||
5988 | if test "$linkmode,$pass" != "prog,link"; then | ||
5989 | vars="deplibs" | ||
5990 | else | ||
5991 | vars="compile_deplibs finalize_deplibs" | ||
5992 | fi | ||
5993 | for var in $vars dependency_libs; do | ||
5994 | # Add libraries to $var in reverse order | ||
5995 | eval tmp_libs=\"\$$var\" | ||
5996 | new_libs= | ||
5997 | for deplib in $tmp_libs; do | ||
5998 | # FIXME: Pedantically, this is the right thing to do, so | ||
5999 | # that some nasty dependency loop isn't accidentally | ||
6000 | # broken: | ||
6001 | #new_libs="$deplib $new_libs" | ||
6002 | # Pragmatically, this seems to cause very few problems in | ||
6003 | # practice: | ||
6004 | case $deplib in | ||
6005 | -L*) new_libs="$deplib $new_libs" ;; | ||
6006 | -R*) ;; | ||
6007 | *) | ||
6008 | # And here is the reason: when a library appears more | ||
6009 | # than once as an explicit dependence of a library, or | ||
6010 | # is implicitly linked in more than once by the | ||
6011 | # compiler, it is considered special, and multiple | ||
6012 | # occurrences thereof are not removed. Compare this | ||
6013 | # with having the same library being listed as a | ||
6014 | # dependency of multiple other libraries: in this case, | ||
6015 | # we know (pedantically, we assume) the library does not | ||
6016 | # need to be listed more than once, so we keep only the | ||
6017 | # last copy. This is not always right, but it is rare | ||
6018 | # enough that we require users that really mean to play | ||
6019 | # such unportable linking tricks to link the library | ||
6020 | # using -Wl,-lname, so that libtool does not consider it | ||
6021 | # for duplicate removal. | ||
6022 | case " $specialdeplibs " in | ||
6023 | *" $deplib "*) new_libs="$deplib $new_libs" ;; | ||
6024 | *) | ||
6025 | case " $new_libs " in | ||
6026 | *" $deplib "*) ;; | ||
6027 | *) new_libs="$deplib $new_libs" ;; | ||
6028 | esac | ||
6029 | ;; | ||
6030 | esac | ||
6031 | ;; | ||
6032 | esac | ||
6033 | done | ||
6034 | tmp_libs= | ||
6035 | for deplib in $new_libs; do | ||
6036 | case $deplib in | ||
6037 | -L*) | ||
6038 | case " $tmp_libs " in | ||
6039 | *" $deplib "*) ;; | ||
6040 | *) tmp_libs="$tmp_libs $deplib" ;; | ||
6041 | esac | ||
6042 | ;; | ||
6043 | *) tmp_libs="$tmp_libs $deplib" ;; | ||
6044 | esac | ||
6045 | done | ||
6046 | eval $var=\"$tmp_libs\" | ||
6047 | done # for var | ||
6048 | fi | ||
6049 | # Last step: remove runtime libs from dependency_libs | ||
6050 | # (they stay in deplibs) | ||
6051 | tmp_libs= | ||
6052 | for i in $dependency_libs ; do | ||
6053 | case " $predeps $postdeps $compiler_lib_search_path " in | ||
6054 | *" $i "*) | ||
6055 | i="" | ||
6056 | ;; | ||
6057 | esac | ||
6058 | if test -n "$i" ; then | ||
6059 | tmp_libs="$tmp_libs $i" | ||
6060 | fi | ||
6061 | done | ||
6062 | dependency_libs=$tmp_libs | ||
6063 | done # for pass | ||
6064 | if test "$linkmode" = prog; then | ||
6065 | dlfiles="$newdlfiles" | ||
6066 | fi | ||
6067 | if test "$linkmode" = prog || test "$linkmode" = lib; then | ||
6068 | dlprefiles="$newdlprefiles" | ||
6069 | fi | ||
6070 | |||
6071 | case $linkmode in | ||
6072 | oldlib) | ||
6073 | if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then | ||
6074 | func_warning "\`-dlopen' is ignored for archives" | ||
6075 | fi | ||
6076 | |||
6077 | case " $deplibs" in | ||
6078 | *\ -l* | *\ -L*) | ||
6079 | func_warning "\`-l' and \`-L' are ignored for archives" ;; | ||
6080 | esac | ||
6081 | |||
6082 | test -n "$rpath" && \ | ||
6083 | func_warning "\`-rpath' is ignored for archives" | ||
6084 | |||
6085 | test -n "$xrpath" && \ | ||
6086 | func_warning "\`-R' is ignored for archives" | ||
6087 | |||
6088 | test -n "$vinfo" && \ | ||
6089 | func_warning "\`-version-info/-version-number' is ignored for archives" | ||
6090 | |||
6091 | test -n "$release" && \ | ||
6092 | func_warning "\`-release' is ignored for archives" | ||
6093 | |||
6094 | test -n "$export_symbols$export_symbols_regex" && \ | ||
6095 | func_warning "\`-export-symbols' is ignored for archives" | ||
6096 | |||
6097 | # Now set the variables for building old libraries. | ||
6098 | build_libtool_libs=no | ||
6099 | oldlibs="$output" | ||
6100 | objs="$objs$old_deplibs" | ||
6101 | ;; | ||
6102 | |||
6103 | lib) | ||
6104 | # Make sure we only generate libraries of the form `libNAME.la'. | ||
6105 | case $outputname in | ||
6106 | lib*) | ||
6107 | func_stripname 'lib' '.la' "$outputname" | ||
6108 | name=$func_stripname_result | ||
6109 | eval shared_ext=\"$shrext_cmds\" | ||
6110 | eval libname=\"$libname_spec\" | ||
6111 | ;; | ||
6112 | *) | ||
6113 | test "$module" = no && \ | ||
6114 | func_fatal_help "libtool library \`$output' must begin with \`lib'" | ||
6115 | |||
6116 | if test "$need_lib_prefix" != no; then | ||
6117 | # Add the "lib" prefix for modules if required | ||
6118 | func_stripname '' '.la' "$outputname" | ||
6119 | name=$func_stripname_result | ||
6120 | eval shared_ext=\"$shrext_cmds\" | ||
6121 | eval libname=\"$libname_spec\" | ||
6122 | else | ||
6123 | func_stripname '' '.la' "$outputname" | ||
6124 | libname=$func_stripname_result | ||
6125 | fi | ||
6126 | ;; | ||
6127 | esac | ||
6128 | |||
6129 | if test -n "$objs"; then | ||
6130 | if test "$deplibs_check_method" != pass_all; then | ||
6131 | func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" | ||
6132 | else | ||
6133 | $ECHO | ||
6134 | $ECHO "*** Warning: Linking the shared library $output against the non-libtool" | ||
6135 | $ECHO "*** objects $objs is not portable!" | ||
6136 | libobjs="$libobjs $objs" | ||
6137 | fi | ||
6138 | fi | ||
6139 | |||
6140 | test "$dlself" != no && \ | ||
6141 | func_warning "\`-dlopen self' is ignored for libtool libraries" | ||
6142 | |||
6143 | set dummy $rpath | ||
6144 | shift | ||
6145 | test "$#" -gt 1 && \ | ||
6146 | func_warning "ignoring multiple \`-rpath's for a libtool library" | ||
6147 | |||
6148 | install_libdir="$1" | ||
6149 | |||
6150 | oldlibs= | ||
6151 | if test -z "$rpath"; then | ||
6152 | if test "$build_libtool_libs" = yes; then | ||
6153 | # Building a libtool convenience library. | ||
6154 | # Some compilers have problems with a `.al' extension so | ||
6155 | # convenience libraries should have the same extension an | ||
6156 | # archive normally would. | ||
6157 | oldlibs="$output_objdir/$libname.$libext $oldlibs" | ||
6158 | build_libtool_libs=convenience | ||
6159 | build_old_libs=yes | ||
6160 | fi | ||
6161 | |||
6162 | test -n "$vinfo" && \ | ||
6163 | func_warning "\`-version-info/-version-number' is ignored for convenience libraries" | ||
6164 | |||
6165 | test -n "$release" && \ | ||
6166 | func_warning "\`-release' is ignored for convenience libraries" | ||
6167 | else | ||
6168 | |||
6169 | # Parse the version information argument. | ||
6170 | save_ifs="$IFS"; IFS=':' | ||
6171 | set dummy $vinfo 0 0 0 | ||
6172 | shift | ||
6173 | IFS="$save_ifs" | ||
6174 | |||
6175 | test -n "$7" && \ | ||
6176 | func_fatal_help "too many parameters to \`-version-info'" | ||
6177 | |||
6178 | # convert absolute version numbers to libtool ages | ||
6179 | # this retains compatibility with .la files and attempts | ||
6180 | # to make the code below a bit more comprehensible | ||
6181 | |||
6182 | case $vinfo_number in | ||
6183 | yes) | ||
6184 | number_major="$1" | ||
6185 | number_minor="$2" | ||
6186 | number_revision="$3" | ||
6187 | # | ||
6188 | # There are really only two kinds -- those that | ||
6189 | # use the current revision as the major version | ||
6190 | # and those that subtract age and use age as | ||
6191 | # a minor version. But, then there is irix | ||
6192 | # which has an extra 1 added just for fun | ||
6193 | # | ||
6194 | case $version_type in | ||
6195 | darwin|linux|osf|windows|none) | ||
6196 | func_arith $number_major + $number_minor | ||
6197 | current=$func_arith_result | ||
6198 | age="$number_minor" | ||
6199 | revision="$number_revision" | ||
6200 | ;; | ||
6201 | freebsd-aout|freebsd-elf|sunos) | ||
6202 | current="$number_major" | ||
6203 | revision="$number_minor" | ||
6204 | age="0" | ||
6205 | ;; | ||
6206 | irix|nonstopux) | ||
6207 | func_arith $number_major + $number_minor | ||
6208 | current=$func_arith_result | ||
6209 | age="$number_minor" | ||
6210 | revision="$number_minor" | ||
6211 | lt_irix_increment=no | ||
6212 | ;; | ||
6213 | *) | ||
6214 | func_fatal_configuration "$modename: unknown library version type \`$version_type'" | ||
6215 | ;; | ||
6216 | esac | ||
6217 | ;; | ||
6218 | no) | ||
6219 | current="$1" | ||
6220 | revision="$2" | ||
6221 | age="$3" | ||
6222 | ;; | ||
6223 | esac | ||
6224 | |||
6225 | # Check that each of the things are valid numbers. | ||
6226 | case $current in | ||
6227 | 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; | ||
6228 | *) | ||
6229 | func_error "CURRENT \`$current' must be a nonnegative integer" | ||
6230 | func_fatal_error "\`$vinfo' is not valid version information" | ||
6231 | ;; | ||
6232 | esac | ||
6233 | |||
6234 | case $revision in | ||
6235 | 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; | ||
6236 | *) | ||
6237 | func_error "REVISION \`$revision' must be a nonnegative integer" | ||
6238 | func_fatal_error "\`$vinfo' is not valid version information" | ||
6239 | ;; | ||
6240 | esac | ||
6241 | |||
6242 | case $age in | ||
6243 | 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; | ||
6244 | *) | ||
6245 | func_error "AGE \`$age' must be a nonnegative integer" | ||
6246 | func_fatal_error "\`$vinfo' is not valid version information" | ||
6247 | ;; | ||
6248 | esac | ||
6249 | |||
6250 | if test "$age" -gt "$current"; then | ||
6251 | func_error "AGE \`$age' is greater than the current interface number \`$current'" | ||
6252 | func_fatal_error "\`$vinfo' is not valid version information" | ||
6253 | fi | ||
6254 | |||
6255 | # Calculate the version variables. | ||
6256 | major= | ||
6257 | versuffix= | ||
6258 | verstring= | ||
6259 | case $version_type in | ||
6260 | none) ;; | ||
6261 | |||
6262 | darwin) | ||
6263 | # Like Linux, but with the current version available in | ||
6264 | # verstring for coding it into the library header | ||
6265 | func_arith $current - $age | ||
6266 | major=.$func_arith_result | ||
6267 | versuffix="$major.$age.$revision" | ||
6268 | # Darwin ld doesn't like 0 for these options... | ||
6269 | func_arith $current + 1 | ||
6270 | minor_current=$func_arith_result | ||
6271 | xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" | ||
6272 | verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" | ||
6273 | ;; | ||
6274 | |||
6275 | freebsd-aout) | ||
6276 | major=".$current" | ||
6277 | versuffix=".$current.$revision"; | ||
6278 | ;; | ||
6279 | |||
6280 | freebsd-elf) | ||
6281 | major=".$current" | ||
6282 | versuffix=".$current" | ||
6283 | ;; | ||
6284 | |||
6285 | irix | nonstopux) | ||
6286 | if test "X$lt_irix_increment" = "Xno"; then | ||
6287 | func_arith $current - $age | ||
6288 | else | ||
6289 | func_arith $current - $age + 1 | ||
6290 | fi | ||
6291 | major=$func_arith_result | ||
6292 | |||
6293 | case $version_type in | ||
6294 | nonstopux) verstring_prefix=nonstopux ;; | ||
6295 | *) verstring_prefix=sgi ;; | ||
6296 | esac | ||
6297 | verstring="$verstring_prefix$major.$revision" | ||
6298 | |||
6299 | # Add in all the interfaces that we are compatible with. | ||
6300 | loop=$revision | ||
6301 | while test "$loop" -ne 0; do | ||
6302 | func_arith $revision - $loop | ||
6303 | iface=$func_arith_result | ||
6304 | func_arith $loop - 1 | ||
6305 | loop=$func_arith_result | ||
6306 | verstring="$verstring_prefix$major.$iface:$verstring" | ||
6307 | done | ||
6308 | |||
6309 | # Before this point, $major must not contain `.'. | ||
6310 | major=.$major | ||
6311 | versuffix="$major.$revision" | ||
6312 | ;; | ||
6313 | |||
6314 | linux) | ||
6315 | func_arith $current - $age | ||
6316 | major=.$func_arith_result | ||
6317 | versuffix="$major.$age.$revision" | ||
6318 | ;; | ||
6319 | |||
6320 | osf) | ||
6321 | func_arith $current - $age | ||
6322 | major=.$func_arith_result | ||
6323 | versuffix=".$current.$age.$revision" | ||
6324 | verstring="$current.$age.$revision" | ||
6325 | |||
6326 | # Add in all the interfaces that we are compatible with. | ||
6327 | loop=$age | ||
6328 | while test "$loop" -ne 0; do | ||
6329 | func_arith $current - $loop | ||
6330 | iface=$func_arith_result | ||
6331 | func_arith $loop - 1 | ||
6332 | loop=$func_arith_result | ||
6333 | verstring="$verstring:${iface}.0" | ||
6334 | done | ||
6335 | |||
6336 | # Make executables depend on our current version. | ||
6337 | verstring="$verstring:${current}.0" | ||
6338 | ;; | ||
6339 | |||
6340 | qnx) | ||
6341 | major=".$current" | ||
6342 | versuffix=".$current" | ||
6343 | ;; | ||
6344 | |||
6345 | sunos) | ||
6346 | major=".$current" | ||
6347 | versuffix=".$current.$revision" | ||
6348 | ;; | ||
6349 | |||
6350 | windows) | ||
6351 | # Use '-' rather than '.', since we only want one | ||
6352 | # extension on DOS 8.3 filesystems. | ||
6353 | func_arith $current - $age | ||
6354 | major=$func_arith_result | ||
6355 | versuffix="-$major" | ||
6356 | ;; | ||
6357 | |||
6358 | *) | ||
6359 | func_fatal_configuration "unknown library version type \`$version_type'" | ||
6360 | ;; | ||
6361 | esac | ||
6362 | |||
6363 | # Clear the version info if we defaulted, and they specified a release. | ||
6364 | if test -z "$vinfo" && test -n "$release"; then | ||
6365 | major= | ||
6366 | case $version_type in | ||
6367 | darwin) | ||
6368 | # we can't check for "0.0" in archive_cmds due to quoting | ||
6369 | # problems, so we reset it completely | ||
6370 | verstring= | ||
6371 | ;; | ||
6372 | *) | ||
6373 | verstring="0.0" | ||
6374 | ;; | ||
6375 | esac | ||
6376 | if test "$need_version" = no; then | ||
6377 | versuffix= | ||
6378 | else | ||
6379 | versuffix=".0.0" | ||
6380 | fi | ||
6381 | fi | ||
6382 | |||
6383 | # Remove version info from name if versioning should be avoided | ||
6384 | if test "$avoid_version" = yes && test "$need_version" = no; then | ||
6385 | major= | ||
6386 | versuffix= | ||
6387 | verstring="" | ||
6388 | fi | ||
6389 | |||
6390 | # Check to see if the archive will have undefined symbols. | ||
6391 | if test "$allow_undefined" = yes; then | ||
6392 | if test "$allow_undefined_flag" = unsupported; then | ||
6393 | func_warning "undefined symbols not allowed in $host shared libraries" | ||
6394 | build_libtool_libs=no | ||
6395 | build_old_libs=yes | ||
6396 | fi | ||
6397 | else | ||
6398 | # Don't allow undefined symbols. | ||
6399 | allow_undefined_flag="$no_undefined_flag" | ||
6400 | fi | ||
6401 | |||
6402 | fi | ||
6403 | |||
6404 | func_generate_dlsyms "$libname" "$libname" "yes" | ||
6405 | libobjs="$libobjs $symfileobj" | ||
6406 | test "X$libobjs" = "X " && libobjs= | ||
6407 | |||
6408 | if test "$mode" != relink; then | ||
6409 | # Remove our outputs, but don't remove object files since they | ||
6410 | # may have been created when compiling PIC objects. | ||
6411 | removelist= | ||
6412 | tempremovelist=`$ECHO "$output_objdir/*"` | ||
6413 | for p in $tempremovelist; do | ||
6414 | case $p in | ||
6415 | *.$objext | *.gcno) | ||
6416 | ;; | ||
6417 | $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) | ||
6418 | if test "X$precious_files_regex" != "X"; then | ||
6419 | if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 | ||
6420 | then | ||
6421 | continue | ||
6422 | fi | ||
6423 | fi | ||
6424 | removelist="$removelist $p" | ||
6425 | ;; | ||
6426 | *) ;; | ||
6427 | esac | ||
6428 | done | ||
6429 | test -n "$removelist" && \ | ||
6430 | func_show_eval "${RM}r \$removelist" | ||
6431 | fi | ||
6432 | |||
6433 | # Now set the variables for building old libraries. | ||
6434 | if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then | ||
6435 | oldlibs="$oldlibs $output_objdir/$libname.$libext" | ||
6436 | |||
6437 | # Transform .lo files to .o files. | ||
6438 | oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` | ||
6439 | fi | ||
6440 | |||
6441 | # Eliminate all temporary directories. | ||
6442 | #for path in $notinst_path; do | ||
6443 | # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` | ||
6444 | # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` | ||
6445 | # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` | ||
6446 | #done | ||
6447 | |||
6448 | if test -n "$xrpath"; then | ||
6449 | # If the user specified any rpath flags, then add them. | ||
6450 | temp_xrpath= | ||
6451 | for libdir in $xrpath; do | ||
6452 | temp_xrpath="$temp_xrpath -R$libdir" | ||
6453 | case "$finalize_rpath " in | ||
6454 | *" $libdir "*) ;; | ||
6455 | *) finalize_rpath="$finalize_rpath $libdir" ;; | ||
6456 | esac | ||
6457 | done | ||
6458 | if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then | ||
6459 | dependency_libs="$temp_xrpath $dependency_libs" | ||
6460 | fi | ||
6461 | fi | ||
6462 | |||
6463 | # Make sure dlfiles contains only unique files that won't be dlpreopened | ||
6464 | old_dlfiles="$dlfiles" | ||
6465 | dlfiles= | ||
6466 | for lib in $old_dlfiles; do | ||
6467 | case " $dlprefiles $dlfiles " in | ||
6468 | *" $lib "*) ;; | ||
6469 | *) dlfiles="$dlfiles $lib" ;; | ||
6470 | esac | ||
6471 | done | ||
6472 | |||
6473 | # Make sure dlprefiles contains only unique files | ||
6474 | old_dlprefiles="$dlprefiles" | ||
6475 | dlprefiles= | ||
6476 | for lib in $old_dlprefiles; do | ||
6477 | case "$dlprefiles " in | ||
6478 | *" $lib "*) ;; | ||
6479 | *) dlprefiles="$dlprefiles $lib" ;; | ||
6480 | esac | ||
6481 | done | ||
6482 | |||
6483 | if test "$build_libtool_libs" = yes; then | ||
6484 | if test -n "$rpath"; then | ||
6485 | case $host in | ||
6486 | *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) | ||
6487 | # these systems don't actually have a c library (as such)! | ||
6488 | ;; | ||
6489 | *-*-rhapsody* | *-*-darwin1.[012]) | ||
6490 | # Rhapsody C library is in the System framework | ||
6491 | deplibs="$deplibs System.ltframework" | ||
6492 | ;; | ||
6493 | *-*-netbsd*) | ||
6494 | # Don't link with libc until the a.out ld.so is fixed. | ||
6495 | ;; | ||
6496 | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) | ||
6497 | # Do not include libc due to us having libc/libc_r. | ||
6498 | ;; | ||
6499 | *-*-sco3.2v5* | *-*-sco5v6*) | ||
6500 | # Causes problems with __ctype | ||
6501 | ;; | ||
6502 | *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) | ||
6503 | # Compiler inserts libc in the correct place for threads to work | ||
6504 | ;; | ||
6505 | *) | ||
6506 | # Add libc to deplibs on all other systems if necessary. | ||
6507 | if test "$build_libtool_need_lc" = "yes"; then | ||
6508 | deplibs="$deplibs -lc" | ||
6509 | fi | ||
6510 | ;; | ||
6511 | esac | ||
6512 | fi | ||
6513 | |||
6514 | # Transform deplibs into only deplibs that can be linked in shared. | ||
6515 | name_save=$name | ||
6516 | libname_save=$libname | ||
6517 | release_save=$release | ||
6518 | versuffix_save=$versuffix | ||
6519 | major_save=$major | ||
6520 | # I'm not sure if I'm treating the release correctly. I think | ||
6521 | # release should show up in the -l (ie -lgmp5) so we don't want to | ||
6522 | # add it in twice. Is that correct? | ||
6523 | release="" | ||
6524 | versuffix="" | ||
6525 | major="" | ||
6526 | newdeplibs= | ||
6527 | droppeddeps=no | ||
6528 | case $deplibs_check_method in | ||
6529 | pass_all) | ||
6530 | # Don't check for shared/static. Everything works. | ||
6531 | # This might be a little naive. We might want to check | ||
6532 | # whether the library exists or not. But this is on | ||
6533 | # osf3 & osf4 and I'm not really sure... Just | ||
6534 | # implementing what was already the behavior. | ||
6535 | newdeplibs=$deplibs | ||
6536 | ;; | ||
6537 | test_compile) | ||
6538 | # This code stresses the "libraries are programs" paradigm to its | ||
6539 | # limits. Maybe even breaks it. We compile a program, linking it | ||
6540 | # against the deplibs as a proxy for the library. Then we can check | ||
6541 | # whether they linked in statically or dynamically with ldd. | ||
6542 | $opt_dry_run || $RM conftest.c | ||
6543 | cat > conftest.c <<EOF | ||
6544 | int main() { return 0; } | ||
6545 | EOF | ||
6546 | $opt_dry_run || $RM conftest | ||
6547 | if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then | ||
6548 | ldd_output=`ldd conftest` | ||
6549 | for i in $deplibs; do | ||
6550 | case $i in | ||
6551 | -l*) | ||
6552 | func_stripname -l '' "$i" | ||
6553 | name=$func_stripname_result | ||
6554 | if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then | ||
6555 | case " $predeps $postdeps " in | ||
6556 | *" $i "*) | ||
6557 | newdeplibs="$newdeplibs $i" | ||
6558 | i="" | ||
6559 | ;; | ||
6560 | esac | ||
6561 | fi | ||
6562 | if test -n "$i" ; then | ||
6563 | libname=`eval "\\$ECHO \"$libname_spec\""` | ||
6564 | deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` | ||
6565 | set dummy $deplib_matches; shift | ||
6566 | deplib_match=$1 | ||
6567 | if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then | ||
6568 | newdeplibs="$newdeplibs $i" | ||
6569 | else | ||
6570 | droppeddeps=yes | ||
6571 | $ECHO | ||
6572 | $ECHO "*** Warning: dynamic linker does not accept needed library $i." | ||
6573 | $ECHO "*** I have the capability to make that library automatically link in when" | ||
6574 | $ECHO "*** you link to this library. But I can only do this if you have a" | ||
6575 | $ECHO "*** shared version of the library, which I believe you do not have" | ||
6576 | $ECHO "*** because a test_compile did reveal that the linker did not use it for" | ||
6577 | $ECHO "*** its dynamic dependency list that programs get resolved with at runtime." | ||
6578 | fi | ||
6579 | fi | ||
6580 | ;; | ||
6581 | *) | ||
6582 | newdeplibs="$newdeplibs $i" | ||
6583 | ;; | ||
6584 | esac | ||
6585 | done | ||
6586 | else | ||
6587 | # Error occurred in the first compile. Let's try to salvage | ||
6588 | # the situation: Compile a separate program for each library. | ||
6589 | for i in $deplibs; do | ||
6590 | case $i in | ||
6591 | -l*) | ||
6592 | func_stripname -l '' "$i" | ||
6593 | name=$func_stripname_result | ||
6594 | $opt_dry_run || $RM conftest | ||
6595 | if $LTCC $LTCFLAGS -o conftest conftest.c $i; then | ||
6596 | ldd_output=`ldd conftest` | ||
6597 | if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then | ||
6598 | case " $predeps $postdeps " in | ||
6599 | *" $i "*) | ||
6600 | newdeplibs="$newdeplibs $i" | ||
6601 | i="" | ||
6602 | ;; | ||
6603 | esac | ||
6604 | fi | ||
6605 | if test -n "$i" ; then | ||
6606 | libname=`eval "\\$ECHO \"$libname_spec\""` | ||
6607 | deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` | ||
6608 | set dummy $deplib_matches; shift | ||
6609 | deplib_match=$1 | ||
6610 | if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then | ||
6611 | newdeplibs="$newdeplibs $i" | ||
6612 | else | ||
6613 | droppeddeps=yes | ||
6614 | $ECHO | ||
6615 | $ECHO "*** Warning: dynamic linker does not accept needed library $i." | ||
6616 | $ECHO "*** I have the capability to make that library automatically link in when" | ||
6617 | $ECHO "*** you link to this library. But I can only do this if you have a" | ||
6618 | $ECHO "*** shared version of the library, which you do not appear to have" | ||
6619 | $ECHO "*** because a test_compile did reveal that the linker did not use this one" | ||
6620 | $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime." | ||
6621 | fi | ||
6622 | fi | ||
6623 | else | ||
6624 | droppeddeps=yes | ||
6625 | $ECHO | ||
6626 | $ECHO "*** Warning! Library $i is needed by this library but I was not able to" | ||
6627 | $ECHO "*** make it link in! You will probably need to install it or some" | ||
6628 | $ECHO "*** library that it depends on before this library will be fully" | ||
6629 | $ECHO "*** functional. Installing it before continuing would be even better." | ||
6630 | fi | ||
6631 | ;; | ||
6632 | *) | ||
6633 | newdeplibs="$newdeplibs $i" | ||
6634 | ;; | ||
6635 | esac | ||
6636 | done | ||
6637 | fi | ||
6638 | ;; | ||
6639 | file_magic*) | ||
6640 | set dummy $deplibs_check_method; shift | ||
6641 | file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` | ||
6642 | for a_deplib in $deplibs; do | ||
6643 | case $a_deplib in | ||
6644 | -l*) | ||
6645 | func_stripname -l '' "$a_deplib" | ||
6646 | name=$func_stripname_result | ||
6647 | if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then | ||
6648 | case " $predeps $postdeps " in | ||
6649 | *" $a_deplib "*) | ||
6650 | newdeplibs="$newdeplibs $a_deplib" | ||
6651 | a_deplib="" | ||
6652 | ;; | ||
6653 | esac | ||
6654 | fi | ||
6655 | if test -n "$a_deplib" ; then | ||
6656 | libname=`eval "\\$ECHO \"$libname_spec\""` | ||
6657 | for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do | ||
6658 | potential_libs=`ls $i/$libname[.-]* 2>/dev/null` | ||
6659 | for potent_lib in $potential_libs; do | ||
6660 | # Follow soft links. | ||
6661 | if ls -lLd "$potent_lib" 2>/dev/null | | ||
6662 | $GREP " -> " >/dev/null; then | ||
6663 | continue | ||
6664 | fi | ||
6665 | # The statement above tries to avoid entering an | ||
6666 | # endless loop below, in case of cyclic links. | ||
6667 | # We might still enter an endless loop, since a link | ||
6668 | # loop can be closed while we follow links, | ||
6669 | # but so what? | ||
6670 | potlib="$potent_lib" | ||
6671 | while test -h "$potlib" 2>/dev/null; do | ||
6672 | potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` | ||
6673 | case $potliblink in | ||
6674 | [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; | ||
6675 | *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; | ||
6676 | esac | ||
6677 | done | ||
6678 | if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | | ||
6679 | $SED -e 10q | | ||
6680 | $EGREP "$file_magic_regex" > /dev/null; then | ||
6681 | newdeplibs="$newdeplibs $a_deplib" | ||
6682 | a_deplib="" | ||
6683 | break 2 | ||
6684 | fi | ||
6685 | done | ||
6686 | done | ||
6687 | fi | ||
6688 | if test -n "$a_deplib" ; then | ||
6689 | droppeddeps=yes | ||
6690 | $ECHO | ||
6691 | $ECHO "*** Warning: linker path does not have real file for library $a_deplib." | ||
6692 | $ECHO "*** I have the capability to make that library automatically link in when" | ||
6693 | $ECHO "*** you link to this library. But I can only do this if you have a" | ||
6694 | $ECHO "*** shared version of the library, which you do not appear to have" | ||
6695 | $ECHO "*** because I did check the linker path looking for a file starting" | ||
6696 | if test -z "$potlib" ; then | ||
6697 | $ECHO "*** with $libname but no candidates were found. (...for file magic test)" | ||
6698 | else | ||
6699 | $ECHO "*** with $libname and none of the candidates passed a file format test" | ||
6700 | $ECHO "*** using a file magic. Last file checked: $potlib" | ||
6701 | fi | ||
6702 | fi | ||
6703 | ;; | ||
6704 | *) | ||
6705 | # Add a -L argument. | ||
6706 | newdeplibs="$newdeplibs $a_deplib" | ||
6707 | ;; | ||
6708 | esac | ||
6709 | done # Gone through all deplibs. | ||
6710 | ;; | ||
6711 | match_pattern*) | ||
6712 | set dummy $deplibs_check_method; shift | ||
6713 | match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` | ||
6714 | for a_deplib in $deplibs; do | ||
6715 | case $a_deplib in | ||
6716 | -l*) | ||
6717 | func_stripname -l '' "$a_deplib" | ||
6718 | name=$func_stripname_result | ||
6719 | if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then | ||
6720 | case " $predeps $postdeps " in | ||
6721 | *" $a_deplib "*) | ||
6722 | newdeplibs="$newdeplibs $a_deplib" | ||
6723 | a_deplib="" | ||
6724 | ;; | ||
6725 | esac | ||
6726 | fi | ||
6727 | if test -n "$a_deplib" ; then | ||
6728 | libname=`eval "\\$ECHO \"$libname_spec\""` | ||
6729 | for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do | ||
6730 | potential_libs=`ls $i/$libname[.-]* 2>/dev/null` | ||
6731 | for potent_lib in $potential_libs; do | ||
6732 | potlib="$potent_lib" # see symlink-check above in file_magic test | ||
6733 | if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ | ||
6734 | $EGREP "$match_pattern_regex" > /dev/null; then | ||
6735 | newdeplibs="$newdeplibs $a_deplib" | ||
6736 | a_deplib="" | ||
6737 | break 2 | ||
6738 | fi | ||
6739 | done | ||
6740 | done | ||
6741 | fi | ||
6742 | if test -n "$a_deplib" ; then | ||
6743 | droppeddeps=yes | ||
6744 | $ECHO | ||
6745 | $ECHO "*** Warning: linker path does not have real file for library $a_deplib." | ||
6746 | $ECHO "*** I have the capability to make that library automatically link in when" | ||
6747 | $ECHO "*** you link to this library. But I can only do this if you have a" | ||
6748 | $ECHO "*** shared version of the library, which you do not appear to have" | ||
6749 | $ECHO "*** because I did check the linker path looking for a file starting" | ||
6750 | if test -z "$potlib" ; then | ||
6751 | $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" | ||
6752 | else | ||
6753 | $ECHO "*** with $libname and none of the candidates passed a file format test" | ||
6754 | $ECHO "*** using a regex pattern. Last file checked: $potlib" | ||
6755 | fi | ||
6756 | fi | ||
6757 | ;; | ||
6758 | *) | ||
6759 | # Add a -L argument. | ||
6760 | newdeplibs="$newdeplibs $a_deplib" | ||
6761 | ;; | ||
6762 | esac | ||
6763 | done # Gone through all deplibs. | ||
6764 | ;; | ||
6765 | none | unknown | *) | ||
6766 | newdeplibs="" | ||
6767 | tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ | ||
6768 | -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` | ||
6769 | if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then | ||
6770 | for i in $predeps $postdeps ; do | ||
6771 | # can't use Xsed below, because $i might contain '/' | ||
6772 | tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` | ||
6773 | done | ||
6774 | fi | ||
6775 | if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | | ||
6776 | $GREP . >/dev/null; then | ||
6777 | $ECHO | ||
6778 | if test "X$deplibs_check_method" = "Xnone"; then | ||
6779 | $ECHO "*** Warning: inter-library dependencies are not supported in this platform." | ||
6780 | else | ||
6781 | $ECHO "*** Warning: inter-library dependencies are not known to be supported." | ||
6782 | fi | ||
6783 | $ECHO "*** All declared inter-library dependencies are being dropped." | ||
6784 | droppeddeps=yes | ||
6785 | fi | ||
6786 | ;; | ||
6787 | esac | ||
6788 | versuffix=$versuffix_save | ||
6789 | major=$major_save | ||
6790 | release=$release_save | ||
6791 | libname=$libname_save | ||
6792 | name=$name_save | ||
6793 | |||
6794 | case $host in | ||
6795 | *-*-rhapsody* | *-*-darwin1.[012]) | ||
6796 | # On Rhapsody replace the C library with the System framework | ||
6797 | newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` | ||
6798 | ;; | ||
6799 | esac | ||
6800 | |||
6801 | if test "$droppeddeps" = yes; then | ||
6802 | if test "$module" = yes; then | ||
6803 | $ECHO | ||
6804 | $ECHO "*** Warning: libtool could not satisfy all declared inter-library" | ||
6805 | $ECHO "*** dependencies of module $libname. Therefore, libtool will create" | ||
6806 | $ECHO "*** a static module, that should work as long as the dlopening" | ||
6807 | $ECHO "*** application is linked with the -dlopen flag." | ||
6808 | if test -z "$global_symbol_pipe"; then | ||
6809 | $ECHO | ||
6810 | $ECHO "*** However, this would only work if libtool was able to extract symbol" | ||
6811 | $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" | ||
6812 | $ECHO "*** not find such a program. So, this module is probably useless." | ||
6813 | $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." | ||
6814 | fi | ||
6815 | if test "$build_old_libs" = no; then | ||
6816 | oldlibs="$output_objdir/$libname.$libext" | ||
6817 | build_libtool_libs=module | ||
6818 | build_old_libs=yes | ||
6819 | else | ||
6820 | build_libtool_libs=no | ||
6821 | fi | ||
6822 | else | ||
6823 | $ECHO "*** The inter-library dependencies that have been dropped here will be" | ||
6824 | $ECHO "*** automatically added whenever a program is linked with this library" | ||
6825 | $ECHO "*** or is declared to -dlopen it." | ||
6826 | |||
6827 | if test "$allow_undefined" = no; then | ||
6828 | $ECHO | ||
6829 | $ECHO "*** Since this library must not contain undefined symbols," | ||
6830 | $ECHO "*** because either the platform does not support them or" | ||
6831 | $ECHO "*** it was explicitly requested with -no-undefined," | ||
6832 | $ECHO "*** libtool will only create a static version of it." | ||
6833 | if test "$build_old_libs" = no; then | ||
6834 | oldlibs="$output_objdir/$libname.$libext" | ||
6835 | build_libtool_libs=module | ||
6836 | build_old_libs=yes | ||
6837 | else | ||
6838 | build_libtool_libs=no | ||
6839 | fi | ||
6840 | fi | ||
6841 | fi | ||
6842 | fi | ||
6843 | # Done checking deplibs! | ||
6844 | deplibs=$newdeplibs | ||
6845 | fi | ||
6846 | # Time to change all our "foo.ltframework" stuff back to "-framework foo" | ||
6847 | case $host in | ||
6848 | *-*-darwin*) | ||
6849 | newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` | ||
6850 | new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` | ||
6851 | deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` | ||
6852 | ;; | ||
6853 | esac | ||
6854 | |||
6855 | # move library search paths that coincide with paths to not yet | ||
6856 | # installed libraries to the beginning of the library search list | ||
6857 | new_libs= | ||
6858 | for path in $notinst_path; do | ||
6859 | case " $new_libs " in | ||
6860 | *" -L$path/$objdir "*) ;; | ||
6861 | *) | ||
6862 | case " $deplibs " in | ||
6863 | *" -L$path/$objdir "*) | ||
6864 | new_libs="$new_libs -L$path/$objdir" ;; | ||
6865 | esac | ||
6866 | ;; | ||
6867 | esac | ||
6868 | done | ||
6869 | for deplib in $deplibs; do | ||
6870 | case $deplib in | ||
6871 | -L*) | ||
6872 | case " $new_libs " in | ||
6873 | *" $deplib "*) ;; | ||
6874 | *) new_libs="$new_libs $deplib" ;; | ||
6875 | esac | ||
6876 | ;; | ||
6877 | *) new_libs="$new_libs $deplib" ;; | ||
6878 | esac | ||
6879 | done | ||
6880 | deplibs="$new_libs" | ||
6881 | |||
6882 | # All the library-specific variables (install_libdir is set above). | ||
6883 | library_names= | ||
6884 | old_library= | ||
6885 | dlname= | ||
6886 | |||
6887 | # Test again, we may have decided not to build it any more | ||
6888 | if test "$build_libtool_libs" = yes; then | ||
6889 | if test "$hardcode_into_libs" = yes; then | ||
6890 | # Hardcode the library paths | ||
6891 | hardcode_libdirs= | ||
6892 | dep_rpath= | ||
6893 | rpath="$finalize_rpath" | ||
6894 | test "$mode" != relink && rpath="$compile_rpath$rpath" | ||
6895 | for libdir in $rpath; do | ||
6896 | if test -n "$hardcode_libdir_flag_spec"; then | ||
6897 | if test -n "$hardcode_libdir_separator"; then | ||
6898 | if test -z "$hardcode_libdirs"; then | ||
6899 | hardcode_libdirs="$libdir" | ||
6900 | else | ||
6901 | # Just accumulate the unique libdirs. | ||
6902 | case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in | ||
6903 | *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) | ||
6904 | ;; | ||
6905 | *) | ||
6906 | hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" | ||
6907 | ;; | ||
6908 | esac | ||
6909 | fi | ||
6910 | else | ||
6911 | eval flag=\"$hardcode_libdir_flag_spec\" | ||
6912 | dep_rpath="$dep_rpath $flag" | ||
6913 | fi | ||
6914 | elif test -n "$runpath_var"; then | ||
6915 | case "$perm_rpath " in | ||
6916 | *" $libdir "*) ;; | ||
6917 | *) perm_rpath="$perm_rpath $libdir" ;; | ||
6918 | esac | ||
6919 | fi | ||
6920 | done | ||
6921 | # Substitute the hardcoded libdirs into the rpath. | ||
6922 | if test -n "$hardcode_libdir_separator" && | ||
6923 | test -n "$hardcode_libdirs"; then | ||
6924 | libdir="$hardcode_libdirs" | ||
6925 | if test -n "$hardcode_libdir_flag_spec_ld"; then | ||
6926 | eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" | ||
6927 | else | ||
6928 | eval dep_rpath=\"$hardcode_libdir_flag_spec\" | ||
6929 | fi | ||
6930 | fi | ||
6931 | if test -n "$runpath_var" && test -n "$perm_rpath"; then | ||
6932 | # We should set the runpath_var. | ||
6933 | rpath= | ||
6934 | for dir in $perm_rpath; do | ||
6935 | rpath="$rpath$dir:" | ||
6936 | done | ||
6937 | eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" | ||
6938 | fi | ||
6939 | test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" | ||
6940 | fi | ||
6941 | |||
6942 | shlibpath="$finalize_shlibpath" | ||
6943 | test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" | ||
6944 | if test -n "$shlibpath"; then | ||
6945 | eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" | ||
6946 | fi | ||
6947 | |||
6948 | # Get the real and link names of the library. | ||
6949 | eval shared_ext=\"$shrext_cmds\" | ||
6950 | eval library_names=\"$library_names_spec\" | ||
6951 | set dummy $library_names | ||
6952 | shift | ||
6953 | realname="$1" | ||
6954 | shift | ||
6955 | |||
6956 | if test -n "$soname_spec"; then | ||
6957 | eval soname=\"$soname_spec\" | ||
6958 | else | ||
6959 | soname="$realname" | ||
6960 | fi | ||
6961 | if test -z "$dlname"; then | ||
6962 | dlname=$soname | ||
6963 | fi | ||
6964 | |||
6965 | lib="$output_objdir/$realname" | ||
6966 | linknames= | ||
6967 | for link | ||
6968 | do | ||
6969 | linknames="$linknames $link" | ||
6970 | done | ||
6971 | |||
6972 | # Use standard objects if they are pic | ||
6973 | test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` | ||
6974 | test "X$libobjs" = "X " && libobjs= | ||
6975 | |||
6976 | delfiles= | ||
6977 | if test -n "$export_symbols" && test -n "$include_expsyms"; then | ||
6978 | $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" | ||
6979 | export_symbols="$output_objdir/$libname.uexp" | ||
6980 | delfiles="$delfiles $export_symbols" | ||
6981 | fi | ||
6982 | |||
6983 | orig_export_symbols= | ||
6984 | case $host_os in | ||
6985 | cygwin* | mingw* | cegcc*) | ||
6986 | if test -n "$export_symbols" && test -z "$export_symbols_regex"; then | ||
6987 | # exporting using user supplied symfile | ||
6988 | if test "x`$SED 1q $export_symbols`" != xEXPORTS; then | ||
6989 | # and it's NOT already a .def file. Must figure out | ||
6990 | # which of the given symbols are data symbols and tag | ||
6991 | # them as such. So, trigger use of export_symbols_cmds. | ||
6992 | # export_symbols gets reassigned inside the "prepare | ||
6993 | # the list of exported symbols" if statement, so the | ||
6994 | # include_expsyms logic still works. | ||
6995 | orig_export_symbols="$export_symbols" | ||
6996 | export_symbols= | ||
6997 | always_export_symbols=yes | ||
6998 | fi | ||
6999 | fi | ||
7000 | ;; | ||
7001 | esac | ||
7002 | |||
7003 | # Prepare the list of exported symbols | ||
7004 | if test -z "$export_symbols"; then | ||
7005 | if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then | ||
7006 | func_verbose "generating symbol list for \`$libname.la'" | ||
7007 | export_symbols="$output_objdir/$libname.exp" | ||
7008 | $opt_dry_run || $RM $export_symbols | ||
7009 | cmds=$export_symbols_cmds | ||
7010 | save_ifs="$IFS"; IFS='~' | ||
7011 | for cmd in $cmds; do | ||
7012 | IFS="$save_ifs" | ||
7013 | eval cmd=\"$cmd\" | ||
7014 | func_len " $cmd" | ||
7015 | len=$func_len_result | ||
7016 | if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then | ||
7017 | func_show_eval "$cmd" 'exit $?' | ||
7018 | skipped_export=false | ||
7019 | else | ||
7020 | # The command line is too long to execute in one step. | ||
7021 | func_verbose "using reloadable object file for export list..." | ||
7022 | skipped_export=: | ||
7023 | # Break out early, otherwise skipped_export may be | ||
7024 | # set to false by a later but shorter cmd. | ||
7025 | break | ||
7026 | fi | ||
7027 | done | ||
7028 | IFS="$save_ifs" | ||
7029 | if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then | ||
7030 | func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' | ||
7031 | func_show_eval '$MV "${export_symbols}T" "$export_symbols"' | ||
7032 | fi | ||
7033 | fi | ||
7034 | fi | ||
7035 | |||
7036 | if test -n "$export_symbols" && test -n "$include_expsyms"; then | ||
7037 | tmp_export_symbols="$export_symbols" | ||
7038 | test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" | ||
7039 | $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' | ||
7040 | fi | ||
7041 | |||
7042 | if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then | ||
7043 | # The given exports_symbols file has to be filtered, so filter it. | ||
7044 | func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" | ||
7045 | # FIXME: $output_objdir/$libname.filter potentially contains lots of | ||
7046 | # 's' commands which not all seds can handle. GNU sed should be fine | ||
7047 | # though. Also, the filter scales superlinearly with the number of | ||
7048 | # global variables. join(1) would be nice here, but unfortunately | ||
7049 | # isn't a blessed tool. | ||
7050 | $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter | ||
7051 | delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" | ||
7052 | export_symbols=$output_objdir/$libname.def | ||
7053 | $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols | ||
7054 | fi | ||
7055 | |||
7056 | tmp_deplibs= | ||
7057 | for test_deplib in $deplibs; do | ||
7058 | case " $convenience " in | ||
7059 | *" $test_deplib "*) ;; | ||
7060 | *) | ||
7061 | tmp_deplibs="$tmp_deplibs $test_deplib" | ||
7062 | ;; | ||
7063 | esac | ||
7064 | done | ||
7065 | deplibs="$tmp_deplibs" | ||
7066 | |||
7067 | if test -n "$convenience"; then | ||
7068 | if test -n "$whole_archive_flag_spec" && | ||
7069 | test "$compiler_needs_object" = yes && | ||
7070 | test -z "$libobjs"; then | ||
7071 | # extract the archives, so we have objects to list. | ||
7072 | # TODO: could optimize this to just extract one archive. | ||
7073 | whole_archive_flag_spec= | ||
7074 | fi | ||
7075 | if test -n "$whole_archive_flag_spec"; then | ||
7076 | save_libobjs=$libobjs | ||
7077 | eval libobjs=\"\$libobjs $whole_archive_flag_spec\" | ||
7078 | test "X$libobjs" = "X " && libobjs= | ||
7079 | else | ||
7080 | gentop="$output_objdir/${outputname}x" | ||
7081 | generated="$generated $gentop" | ||
7082 | |||
7083 | func_extract_archives $gentop $convenience | ||
7084 | libobjs="$libobjs $func_extract_archives_result" | ||
7085 | test "X$libobjs" = "X " && libobjs= | ||
7086 | fi | ||
7087 | fi | ||
7088 | |||
7089 | if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then | ||
7090 | eval flag=\"$thread_safe_flag_spec\" | ||
7091 | linker_flags="$linker_flags $flag" | ||
7092 | fi | ||
7093 | |||
7094 | # Make a backup of the uninstalled library when relinking | ||
7095 | if test "$mode" = relink; then | ||
7096 | $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? | ||
7097 | fi | ||
7098 | |||
7099 | # Do each of the archive commands. | ||
7100 | if test "$module" = yes && test -n "$module_cmds" ; then | ||
7101 | if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then | ||
7102 | eval test_cmds=\"$module_expsym_cmds\" | ||
7103 | cmds=$module_expsym_cmds | ||
7104 | else | ||
7105 | eval test_cmds=\"$module_cmds\" | ||
7106 | cmds=$module_cmds | ||
7107 | fi | ||
7108 | else | ||
7109 | if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then | ||
7110 | eval test_cmds=\"$archive_expsym_cmds\" | ||
7111 | cmds=$archive_expsym_cmds | ||
7112 | else | ||
7113 | eval test_cmds=\"$archive_cmds\" | ||
7114 | cmds=$archive_cmds | ||
7115 | fi | ||
7116 | fi | ||
7117 | |||
7118 | if test "X$skipped_export" != "X:" && | ||
7119 | func_len " $test_cmds" && | ||
7120 | len=$func_len_result && | ||
7121 | test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then | ||
7122 | : | ||
7123 | else | ||
7124 | # The command line is too long to link in one step, link piecewise | ||
7125 | # or, if using GNU ld and skipped_export is not :, use a linker | ||
7126 | # script. | ||
7127 | |||
7128 | # Save the value of $output and $libobjs because we want to | ||
7129 | # use them later. If we have whole_archive_flag_spec, we | ||
7130 | # want to use save_libobjs as it was before | ||
7131 | # whole_archive_flag_spec was expanded, because we can't | ||
7132 | # assume the linker understands whole_archive_flag_spec. | ||
7133 | # This may have to be revisited, in case too many | ||
7134 | # convenience libraries get linked in and end up exceeding | ||
7135 | # the spec. | ||
7136 | if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then | ||
7137 | save_libobjs=$libobjs | ||
7138 | fi | ||
7139 | save_output=$output | ||
7140 | output_la=`$ECHO "X$output" | $Xsed -e "$basename"` | ||
7141 | |||
7142 | # Clear the reloadable object creation command queue and | ||
7143 | # initialize k to one. | ||
7144 | test_cmds= | ||
7145 | concat_cmds= | ||
7146 | objlist= | ||
7147 | last_robj= | ||
7148 | k=1 | ||
7149 | |||
7150 | if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then | ||
7151 | output=${output_objdir}/${output_la}.lnkscript | ||
7152 | func_verbose "creating GNU ld script: $output" | ||
7153 | $ECHO 'INPUT (' > $output | ||
7154 | for obj in $save_libobjs | ||
7155 | do | ||
7156 | $ECHO "$obj" >> $output | ||
7157 | done | ||
7158 | $ECHO ')' >> $output | ||
7159 | delfiles="$delfiles $output" | ||
7160 | elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then | ||
7161 | output=${output_objdir}/${output_la}.lnk | ||
7162 | func_verbose "creating linker input file list: $output" | ||
7163 | : > $output | ||
7164 | set x $save_libobjs | ||
7165 | shift | ||
7166 | firstobj= | ||
7167 | if test "$compiler_needs_object" = yes; then | ||
7168 | firstobj="$1 " | ||
7169 | shift | ||
7170 | fi | ||
7171 | for obj | ||
7172 | do | ||
7173 | $ECHO "$obj" >> $output | ||
7174 | done | ||
7175 | delfiles="$delfiles $output" | ||
7176 | output=$firstobj\"$file_list_spec$output\" | ||
7177 | else | ||
7178 | if test -n "$save_libobjs"; then | ||
7179 | func_verbose "creating reloadable object files..." | ||
7180 | output=$output_objdir/$output_la-${k}.$objext | ||
7181 | eval test_cmds=\"$reload_cmds\" | ||
7182 | func_len " $test_cmds" | ||
7183 | len0=$func_len_result | ||
7184 | len=$len0 | ||
7185 | |||
7186 | # Loop over the list of objects to be linked. | ||
7187 | for obj in $save_libobjs | ||
7188 | do | ||
7189 | func_len " $obj" | ||
7190 | func_arith $len + $func_len_result | ||
7191 | len=$func_arith_result | ||
7192 | if test "X$objlist" = X || | ||
7193 | test "$len" -lt "$max_cmd_len"; then | ||
7194 | func_append objlist " $obj" | ||
7195 | else | ||
7196 | # The command $test_cmds is almost too long, add a | ||
7197 | # command to the queue. | ||
7198 | if test "$k" -eq 1 ; then | ||
7199 | # The first file doesn't have a previous command to add. | ||
7200 | eval concat_cmds=\"$reload_cmds $objlist $last_robj\" | ||
7201 | else | ||
7202 | # All subsequent reloadable object files will link in | ||
7203 | # the last one created. | ||
7204 | eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" | ||
7205 | fi | ||
7206 | last_robj=$output_objdir/$output_la-${k}.$objext | ||
7207 | func_arith $k + 1 | ||
7208 | k=$func_arith_result | ||
7209 | output=$output_objdir/$output_la-${k}.$objext | ||
7210 | objlist=$obj | ||
7211 | func_len " $last_robj" | ||
7212 | func_arith $len0 + $func_len_result | ||
7213 | len=$func_arith_result | ||
7214 | fi | ||
7215 | done | ||
7216 | # Handle the remaining objects by creating one last | ||
7217 | # reloadable object file. All subsequent reloadable object | ||
7218 | # files will link in the last one created. | ||
7219 | test -z "$concat_cmds" || concat_cmds=$concat_cmds~ | ||
7220 | eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" | ||
7221 | if test -n "$last_robj"; then | ||
7222 | eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" | ||
7223 | fi | ||
7224 | delfiles="$delfiles $output" | ||
7225 | |||
7226 | else | ||
7227 | output= | ||
7228 | fi | ||
7229 | |||
7230 | if ${skipped_export-false}; then | ||
7231 | func_verbose "generating symbol list for \`$libname.la'" | ||
7232 | export_symbols="$output_objdir/$libname.exp" | ||
7233 | $opt_dry_run || $RM $export_symbols | ||
7234 | libobjs=$output | ||
7235 | # Append the command to create the export file. | ||
7236 | test -z "$concat_cmds" || concat_cmds=$concat_cmds~ | ||
7237 | eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" | ||
7238 | if test -n "$last_robj"; then | ||
7239 | eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" | ||
7240 | fi | ||
7241 | fi | ||
7242 | |||
7243 | test -n "$save_libobjs" && | ||
7244 | func_verbose "creating a temporary reloadable object file: $output" | ||
7245 | |||
7246 | # Loop through the commands generated above and execute them. | ||
7247 | save_ifs="$IFS"; IFS='~' | ||
7248 | for cmd in $concat_cmds; do | ||
7249 | IFS="$save_ifs" | ||
7250 | $opt_silent || { | ||
7251 | func_quote_for_expand "$cmd" | ||
7252 | eval "func_echo $func_quote_for_expand_result" | ||
7253 | } | ||
7254 | $opt_dry_run || eval "$cmd" || { | ||
7255 | lt_exit=$? | ||
7256 | |||
7257 | # Restore the uninstalled library and exit | ||
7258 | if test "$mode" = relink; then | ||
7259 | ( cd "$output_objdir" && \ | ||
7260 | $RM "${realname}T" && \ | ||
7261 | $MV "${realname}U" "$realname" ) | ||
7262 | fi | ||
7263 | |||
7264 | exit $lt_exit | ||
7265 | } | ||
7266 | done | ||
7267 | IFS="$save_ifs" | ||
7268 | |||
7269 | if test -n "$export_symbols_regex" && ${skipped_export-false}; then | ||
7270 | func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' | ||
7271 | func_show_eval '$MV "${export_symbols}T" "$export_symbols"' | ||
7272 | fi | ||
7273 | fi | ||
7274 | |||
7275 | if ${skipped_export-false}; then | ||
7276 | if test -n "$export_symbols" && test -n "$include_expsyms"; then | ||
7277 | tmp_export_symbols="$export_symbols" | ||
7278 | test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" | ||
7279 | $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' | ||
7280 | fi | ||
7281 | |||
7282 | if test -n "$orig_export_symbols"; then | ||
7283 | # The given exports_symbols file has to be filtered, so filter it. | ||
7284 | func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" | ||
7285 | # FIXME: $output_objdir/$libname.filter potentially contains lots of | ||
7286 | # 's' commands which not all seds can handle. GNU sed should be fine | ||
7287 | # though. Also, the filter scales superlinearly with the number of | ||
7288 | # global variables. join(1) would be nice here, but unfortunately | ||
7289 | # isn't a blessed tool. | ||
7290 | $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter | ||
7291 | delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" | ||
7292 | export_symbols=$output_objdir/$libname.def | ||
7293 | $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols | ||
7294 | fi | ||
7295 | fi | ||
7296 | |||
7297 | libobjs=$output | ||
7298 | # Restore the value of output. | ||
7299 | output=$save_output | ||
7300 | |||
7301 | if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then | ||
7302 | eval libobjs=\"\$libobjs $whole_archive_flag_spec\" | ||
7303 | test "X$libobjs" = "X " && libobjs= | ||
7304 | fi | ||
7305 | # Expand the library linking commands again to reset the | ||
7306 | # value of $libobjs for piecewise linking. | ||
7307 | |||
7308 | # Do each of the archive commands. | ||
7309 | if test "$module" = yes && test -n "$module_cmds" ; then | ||
7310 | if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then | ||
7311 | cmds=$module_expsym_cmds | ||
7312 | else | ||
7313 | cmds=$module_cmds | ||
7314 | fi | ||
7315 | else | ||
7316 | if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then | ||
7317 | cmds=$archive_expsym_cmds | ||
7318 | else | ||
7319 | cmds=$archive_cmds | ||
7320 | fi | ||
7321 | fi | ||
7322 | fi | ||
7323 | |||
7324 | if test -n "$delfiles"; then | ||
7325 | # Append the command to remove temporary files to $cmds. | ||
7326 | eval cmds=\"\$cmds~\$RM $delfiles\" | ||
7327 | fi | ||
7328 | |||
7329 | # Add any objects from preloaded convenience libraries | ||
7330 | if test -n "$dlprefiles"; then | ||
7331 | gentop="$output_objdir/${outputname}x" | ||
7332 | generated="$generated $gentop" | ||
7333 | |||
7334 | func_extract_archives $gentop $dlprefiles | ||
7335 | libobjs="$libobjs $func_extract_archives_result" | ||
7336 | test "X$libobjs" = "X " && libobjs= | ||
7337 | fi | ||
7338 | |||
7339 | save_ifs="$IFS"; IFS='~' | ||
7340 | for cmd in $cmds; do | ||
7341 | IFS="$save_ifs" | ||
7342 | eval cmd=\"$cmd\" | ||
7343 | $opt_silent || { | ||
7344 | func_quote_for_expand "$cmd" | ||
7345 | eval "func_echo $func_quote_for_expand_result" | ||
7346 | } | ||
7347 | $opt_dry_run || eval "$cmd" || { | ||
7348 | lt_exit=$? | ||
7349 | |||
7350 | # Restore the uninstalled library and exit | ||
7351 | if test "$mode" = relink; then | ||
7352 | ( cd "$output_objdir" && \ | ||
7353 | $RM "${realname}T" && \ | ||
7354 | $MV "${realname}U" "$realname" ) | ||
7355 | fi | ||
7356 | |||
7357 | exit $lt_exit | ||
7358 | } | ||
7359 | done | ||
7360 | IFS="$save_ifs" | ||
7361 | |||
7362 | # Restore the uninstalled library and exit | ||
7363 | if test "$mode" = relink; then | ||
7364 | $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? | ||
7365 | |||
7366 | if test -n "$convenience"; then | ||
7367 | if test -z "$whole_archive_flag_spec"; then | ||
7368 | func_show_eval '${RM}r "$gentop"' | ||
7369 | fi | ||
7370 | fi | ||
7371 | |||
7372 | exit $EXIT_SUCCESS | ||
7373 | fi | ||
7374 | |||
7375 | # Create links to the real library. | ||
7376 | for linkname in $linknames; do | ||
7377 | if test "$realname" != "$linkname"; then | ||
7378 | func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' | ||
7379 | fi | ||
7380 | done | ||
7381 | |||
7382 | # If -module or -export-dynamic was specified, set the dlname. | ||
7383 | if test "$module" = yes || test "$export_dynamic" = yes; then | ||
7384 | # On all known operating systems, these are identical. | ||
7385 | dlname="$soname" | ||
7386 | fi | ||
7387 | fi | ||
7388 | ;; | ||
7389 | |||
7390 | obj) | ||
7391 | if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then | ||
7392 | func_warning "\`-dlopen' is ignored for objects" | ||
7393 | fi | ||
7394 | |||
7395 | case " $deplibs" in | ||
7396 | *\ -l* | *\ -L*) | ||
7397 | func_warning "\`-l' and \`-L' are ignored for objects" ;; | ||
7398 | esac | ||
7399 | |||
7400 | test -n "$rpath" && \ | ||
7401 | func_warning "\`-rpath' is ignored for objects" | ||
7402 | |||
7403 | test -n "$xrpath" && \ | ||
7404 | func_warning "\`-R' is ignored for objects" | ||
7405 | |||
7406 | test -n "$vinfo" && \ | ||
7407 | func_warning "\`-version-info' is ignored for objects" | ||
7408 | |||
7409 | test -n "$release" && \ | ||
7410 | func_warning "\`-release' is ignored for objects" | ||
7411 | |||
7412 | case $output in | ||
7413 | *.lo) | ||
7414 | test -n "$objs$old_deplibs" && \ | ||
7415 | func_fatal_error "cannot build library object \`$output' from non-libtool objects" | ||
7416 | |||
7417 | libobj=$output | ||
7418 | func_lo2o "$libobj" | ||
7419 | obj=$func_lo2o_result | ||
7420 | ;; | ||
7421 | *) | ||
7422 | libobj= | ||
7423 | obj="$output" | ||
7424 | ;; | ||
7425 | esac | ||
7426 | |||
7427 | # Delete the old objects. | ||
7428 | $opt_dry_run || $RM $obj $libobj | ||
7429 | |||
7430 | # Objects from convenience libraries. This assumes | ||
7431 | # single-version convenience libraries. Whenever we create | ||
7432 | # different ones for PIC/non-PIC, this we'll have to duplicate | ||
7433 | # the extraction. | ||
7434 | reload_conv_objs= | ||
7435 | gentop= | ||
7436 | # reload_cmds runs $LD directly, so let us get rid of | ||
7437 | # -Wl from whole_archive_flag_spec and hope we can get by with | ||
7438 | # turning comma into space.. | ||
7439 | wl= | ||
7440 | |||
7441 | if test -n "$convenience"; then | ||
7442 | if test -n "$whole_archive_flag_spec"; then | ||
7443 | eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" | ||
7444 | reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` | ||
7445 | else | ||
7446 | gentop="$output_objdir/${obj}x" | ||
7447 | generated="$generated $gentop" | ||
7448 | |||
7449 | func_extract_archives $gentop $convenience | ||
7450 | reload_conv_objs="$reload_objs $func_extract_archives_result" | ||
7451 | fi | ||
7452 | fi | ||
7453 | |||
7454 | # Create the old-style object. | ||
7455 | 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 | ||
7456 | |||
7457 | output="$obj" | ||
7458 | func_execute_cmds "$reload_cmds" 'exit $?' | ||
7459 | |||
7460 | # Exit if we aren't doing a library object file. | ||
7461 | if test -z "$libobj"; then | ||
7462 | if test -n "$gentop"; then | ||
7463 | func_show_eval '${RM}r "$gentop"' | ||
7464 | fi | ||
7465 | |||
7466 | exit $EXIT_SUCCESS | ||
7467 | fi | ||
7468 | |||
7469 | if test "$build_libtool_libs" != yes; then | ||
7470 | if test -n "$gentop"; then | ||
7471 | func_show_eval '${RM}r "$gentop"' | ||
7472 | fi | ||
7473 | |||
7474 | # Create an invalid libtool object if no PIC, so that we don't | ||
7475 | # accidentally link it into a program. | ||
7476 | # $show "echo timestamp > $libobj" | ||
7477 | # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? | ||
7478 | exit $EXIT_SUCCESS | ||
7479 | fi | ||
7480 | |||
7481 | if test -n "$pic_flag" || test "$pic_mode" != default; then | ||
7482 | # Only do commands if we really have different PIC objects. | ||
7483 | reload_objs="$libobjs $reload_conv_objs" | ||
7484 | output="$libobj" | ||
7485 | func_execute_cmds "$reload_cmds" 'exit $?' | ||
7486 | fi | ||
7487 | |||
7488 | if test -n "$gentop"; then | ||
7489 | func_show_eval '${RM}r "$gentop"' | ||
7490 | fi | ||
7491 | |||
7492 | exit $EXIT_SUCCESS | ||
7493 | ;; | ||
7494 | |||
7495 | prog) | ||
7496 | case $host in | ||
7497 | *cygwin*) func_stripname '' '.exe' "$output" | ||
7498 | output=$func_stripname_result.exe;; | ||
7499 | esac | ||
7500 | test -n "$vinfo" && \ | ||
7501 | func_warning "\`-version-info' is ignored for programs" | ||
7502 | |||
7503 | test -n "$release" && \ | ||
7504 | func_warning "\`-release' is ignored for programs" | ||
7505 | |||
7506 | test "$preload" = yes \ | ||
7507 | && test "$dlopen_support" = unknown \ | ||
7508 | && test "$dlopen_self" = unknown \ | ||
7509 | && test "$dlopen_self_static" = unknown && \ | ||
7510 | func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." | ||
7511 | |||
7512 | case $host in | ||
7513 | *-*-rhapsody* | *-*-darwin1.[012]) | ||
7514 | # On Rhapsody replace the C library is the System framework | ||
7515 | compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` | ||
7516 | finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` | ||
7517 | ;; | ||
7518 | esac | ||
7519 | |||
7520 | case $host in | ||
7521 | *-*-darwin*) | ||
7522 | # Don't allow lazy linking, it breaks C++ global constructors | ||
7523 | # But is supposedly fixed on 10.4 or later (yay!). | ||
7524 | if test "$tagname" = CXX ; then | ||
7525 | case ${MACOSX_DEPLOYMENT_TARGET-10.0} in | ||
7526 | 10.[0123]) | ||
7527 | compile_command="$compile_command ${wl}-bind_at_load" | ||
7528 | finalize_command="$finalize_command ${wl}-bind_at_load" | ||
7529 | ;; | ||
7530 | esac | ||
7531 | fi | ||
7532 | # Time to change all our "foo.ltframework" stuff back to "-framework foo" | ||
7533 | compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` | ||
7534 | finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` | ||
7535 | ;; | ||
7536 | esac | ||
7537 | |||
7538 | |||
7539 | # move library search paths that coincide with paths to not yet | ||
7540 | # installed libraries to the beginning of the library search list | ||
7541 | new_libs= | ||
7542 | for path in $notinst_path; do | ||
7543 | case " $new_libs " in | ||
7544 | *" -L$path/$objdir "*) ;; | ||
7545 | *) | ||
7546 | case " $compile_deplibs " in | ||
7547 | *" -L$path/$objdir "*) | ||
7548 | new_libs="$new_libs -L$path/$objdir" ;; | ||
7549 | esac | ||
7550 | ;; | ||
7551 | esac | ||
7552 | done | ||
7553 | for deplib in $compile_deplibs; do | ||
7554 | case $deplib in | ||
7555 | -L*) | ||
7556 | case " $new_libs " in | ||
7557 | *" $deplib "*) ;; | ||
7558 | *) new_libs="$new_libs $deplib" ;; | ||
7559 | esac | ||
7560 | ;; | ||
7561 | *) new_libs="$new_libs $deplib" ;; | ||
7562 | esac | ||
7563 | done | ||
7564 | compile_deplibs="$new_libs" | ||
7565 | |||
7566 | |||
7567 | compile_command="$compile_command $compile_deplibs" | ||
7568 | finalize_command="$finalize_command $finalize_deplibs" | ||
7569 | |||
7570 | if test -n "$rpath$xrpath"; then | ||
7571 | # If the user specified any rpath flags, then add them. | ||
7572 | for libdir in $rpath $xrpath; do | ||
7573 | # This is the magic to use -rpath. | ||
7574 | case "$finalize_rpath " in | ||
7575 | *" $libdir "*) ;; | ||
7576 | *) finalize_rpath="$finalize_rpath $libdir" ;; | ||
7577 | esac | ||
7578 | done | ||
7579 | fi | ||
7580 | |||
7581 | # Now hardcode the library paths | ||
7582 | rpath= | ||
7583 | hardcode_libdirs= | ||
7584 | for libdir in $compile_rpath $finalize_rpath; do | ||
7585 | if test -n "$hardcode_libdir_flag_spec"; then | ||
7586 | if test -n "$hardcode_libdir_separator"; then | ||
7587 | if test -z "$hardcode_libdirs"; then | ||
7588 | hardcode_libdirs="$libdir" | ||
7589 | else | ||
7590 | # Just accumulate the unique libdirs. | ||
7591 | case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in | ||
7592 | *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) | ||
7593 | ;; | ||
7594 | *) | ||
7595 | hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" | ||
7596 | ;; | ||
7597 | esac | ||
7598 | fi | ||
7599 | else | ||
7600 | eval flag=\"$hardcode_libdir_flag_spec\" | ||
7601 | rpath="$rpath $flag" | ||
7602 | fi | ||
7603 | elif test -n "$runpath_var"; then | ||
7604 | case "$perm_rpath " in | ||
7605 | *" $libdir "*) ;; | ||
7606 | *) perm_rpath="$perm_rpath $libdir" ;; | ||
7607 | esac | ||
7608 | fi | ||
7609 | case $host in | ||
7610 | *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) | ||
7611 | testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` | ||
7612 | case :$dllsearchpath: in | ||
7613 | *":$libdir:"*) ;; | ||
7614 | ::) dllsearchpath=$libdir;; | ||
7615 | *) dllsearchpath="$dllsearchpath:$libdir";; | ||
7616 | esac | ||
7617 | case :$dllsearchpath: in | ||
7618 | *":$testbindir:"*) ;; | ||
7619 | ::) dllsearchpath=$testbindir;; | ||
7620 | *) dllsearchpath="$dllsearchpath:$testbindir";; | ||
7621 | esac | ||
7622 | ;; | ||
7623 | esac | ||
7624 | done | ||
7625 | # Substitute the hardcoded libdirs into the rpath. | ||
7626 | if test -n "$hardcode_libdir_separator" && | ||
7627 | test -n "$hardcode_libdirs"; then | ||
7628 | libdir="$hardcode_libdirs" | ||
7629 | eval rpath=\" $hardcode_libdir_flag_spec\" | ||
7630 | fi | ||
7631 | compile_rpath="$rpath" | ||
7632 | |||
7633 | rpath= | ||
7634 | hardcode_libdirs= | ||
7635 | for libdir in $finalize_rpath; do | ||
7636 | if test -n "$hardcode_libdir_flag_spec"; then | ||
7637 | if test -n "$hardcode_libdir_separator"; then | ||
7638 | if test -z "$hardcode_libdirs"; then | ||
7639 | hardcode_libdirs="$libdir" | ||
7640 | else | ||
7641 | # Just accumulate the unique libdirs. | ||
7642 | case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in | ||
7643 | *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) | ||
7644 | ;; | ||
7645 | *) | ||
7646 | hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" | ||
7647 | ;; | ||
7648 | esac | ||
7649 | fi | ||
7650 | else | ||
7651 | eval flag=\"$hardcode_libdir_flag_spec\" | ||
7652 | rpath="$rpath $flag" | ||
7653 | fi | ||
7654 | elif test -n "$runpath_var"; then | ||
7655 | case "$finalize_perm_rpath " in | ||
7656 | *" $libdir "*) ;; | ||
7657 | *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; | ||
7658 | esac | ||
7659 | fi | ||
7660 | done | ||
7661 | # Substitute the hardcoded libdirs into the rpath. | ||
7662 | if test -n "$hardcode_libdir_separator" && | ||
7663 | test -n "$hardcode_libdirs"; then | ||
7664 | libdir="$hardcode_libdirs" | ||
7665 | eval rpath=\" $hardcode_libdir_flag_spec\" | ||
7666 | fi | ||
7667 | finalize_rpath="$rpath" | ||
7668 | |||
7669 | if test -n "$libobjs" && test "$build_old_libs" = yes; then | ||
7670 | # Transform all the library objects into standard objects. | ||
7671 | compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` | ||
7672 | finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` | ||
7673 | fi | ||
7674 | |||
7675 | func_generate_dlsyms "$outputname" "@PROGRAM@" "no" | ||
7676 | |||
7677 | # template prelinking step | ||
7678 | if test -n "$prelink_cmds"; then | ||
7679 | func_execute_cmds "$prelink_cmds" 'exit $?' | ||
7680 | fi | ||
7681 | |||
7682 | wrappers_required=yes | ||
7683 | case $host in | ||
7684 | *cygwin* | *mingw* ) | ||
7685 | if test "$build_libtool_libs" != yes; then | ||
7686 | wrappers_required=no | ||
7687 | fi | ||
7688 | ;; | ||
7689 | *cegcc) | ||
7690 | # Disable wrappers for cegcc, we are cross compiling anyway. | ||
7691 | wrappers_required=no | ||
7692 | ;; | ||
7693 | *) | ||
7694 | if test "$need_relink" = no || test "$build_libtool_libs" != yes; then | ||
7695 | wrappers_required=no | ||
7696 | fi | ||
7697 | ;; | ||
7698 | esac | ||
7699 | if test "$wrappers_required" = no; then | ||
7700 | # Replace the output file specification. | ||
7701 | compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` | ||
7702 | link_command="$compile_command$compile_rpath" | ||
7703 | |||
7704 | # We have no uninstalled library dependencies, so finalize right now. | ||
7705 | exit_status=0 | ||
7706 | func_show_eval "$link_command" 'exit_status=$?' | ||
7707 | |||
7708 | # Delete the generated files. | ||
7709 | if test -f "$output_objdir/${outputname}S.${objext}"; then | ||
7710 | func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' | ||
7711 | fi | ||
7712 | |||
7713 | exit $exit_status | ||
7714 | fi | ||
7715 | |||
7716 | if test -n "$compile_shlibpath$finalize_shlibpath"; then | ||
7717 | compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" | ||
7718 | fi | ||
7719 | if test -n "$finalize_shlibpath"; then | ||
7720 | finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" | ||
7721 | fi | ||
7722 | |||
7723 | compile_var= | ||
7724 | finalize_var= | ||
7725 | if test -n "$runpath_var"; then | ||
7726 | if test -n "$perm_rpath"; then | ||
7727 | # We should set the runpath_var. | ||
7728 | rpath= | ||
7729 | for dir in $perm_rpath; do | ||
7730 | rpath="$rpath$dir:" | ||
7731 | done | ||
7732 | compile_var="$runpath_var=\"$rpath\$$runpath_var\" " | ||
7733 | fi | ||
7734 | if test -n "$finalize_perm_rpath"; then | ||
7735 | # We should set the runpath_var. | ||
7736 | rpath= | ||
7737 | for dir in $finalize_perm_rpath; do | ||
7738 | rpath="$rpath$dir:" | ||
7739 | done | ||
7740 | finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " | ||
7741 | fi | ||
7742 | fi | ||
7743 | |||
7744 | if test "$no_install" = yes; then | ||
7745 | # We don't need to create a wrapper script. | ||
7746 | link_command="$compile_var$compile_command$compile_rpath" | ||
7747 | # Replace the output file specification. | ||
7748 | link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` | ||
7749 | # Delete the old output file. | ||
7750 | $opt_dry_run || $RM $output | ||
7751 | # Link the executable and exit | ||
7752 | func_show_eval "$link_command" 'exit $?' | ||
7753 | exit $EXIT_SUCCESS | ||
7754 | fi | ||
7755 | |||
7756 | if test "$hardcode_action" = relink; then | ||
7757 | # Fast installation is not supported | ||
7758 | link_command="$compile_var$compile_command$compile_rpath" | ||
7759 | relink_command="$finalize_var$finalize_command$finalize_rpath" | ||
7760 | |||
7761 | func_warning "this platform does not like uninstalled shared libraries" | ||
7762 | func_warning "\`$output' will be relinked during installation" | ||
7763 | else | ||
7764 | if test "$fast_install" != no; then | ||
7765 | link_command="$finalize_var$compile_command$finalize_rpath" | ||
7766 | if test "$fast_install" = yes; then | ||
7767 | relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` | ||
7768 | else | ||
7769 | # fast_install is set to needless | ||
7770 | relink_command= | ||
7771 | fi | ||
7772 | else | ||
7773 | link_command="$compile_var$compile_command$compile_rpath" | ||
7774 | relink_command="$finalize_var$finalize_command$finalize_rpath" | ||
7775 | fi | ||
7776 | fi | ||
7777 | |||
7778 | # Replace the output file specification. | ||
7779 | link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` | ||
7780 | |||
7781 | # Delete the old output files. | ||
7782 | $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname | ||
7783 | |||
7784 | func_show_eval "$link_command" 'exit $?' | ||
7785 | |||
7786 | # Now create the wrapper script. | ||
7787 | func_verbose "creating $output" | ||
7788 | |||
7789 | # Quote the relink command for shipping. | ||
7790 | if test -n "$relink_command"; then | ||
7791 | # Preserve any variables that may affect compiler behavior | ||
7792 | for var in $variables_saved_for_relink; do | ||
7793 | if eval test -z \"\${$var+set}\"; then | ||
7794 | relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" | ||
7795 | elif eval var_value=\$$var; test -z "$var_value"; then | ||
7796 | relink_command="$var=; export $var; $relink_command" | ||
7797 | else | ||
7798 | func_quote_for_eval "$var_value" | ||
7799 | relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" | ||
7800 | fi | ||
7801 | done | ||
7802 | relink_command="(cd `pwd`; $relink_command)" | ||
7803 | relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` | ||
7804 | fi | ||
7805 | |||
7806 | # Quote $ECHO for shipping. | ||
7807 | if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then | ||
7808 | case $progpath in | ||
7809 | [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; | ||
7810 | *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; | ||
7811 | esac | ||
7812 | qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` | ||
7813 | else | ||
7814 | qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` | ||
7815 | fi | ||
7816 | |||
7817 | # Only actually do things if not in dry run mode. | ||
7818 | $opt_dry_run || { | ||
7819 | # win32 will think the script is a binary if it has | ||
7820 | # a .exe suffix, so we strip it off here. | ||
7821 | case $output in | ||
7822 | *.exe) func_stripname '' '.exe' "$output" | ||
7823 | output=$func_stripname_result ;; | ||
7824 | esac | ||
7825 | # test for cygwin because mv fails w/o .exe extensions | ||
7826 | case $host in | ||
7827 | *cygwin*) | ||
7828 | exeext=.exe | ||
7829 | func_stripname '' '.exe' "$outputname" | ||
7830 | outputname=$func_stripname_result ;; | ||
7831 | *) exeext= ;; | ||
7832 | esac | ||
7833 | case $host in | ||
7834 | *cygwin* | *mingw* ) | ||
7835 | func_dirname_and_basename "$output" "" "." | ||
7836 | output_name=$func_basename_result | ||
7837 | output_path=$func_dirname_result | ||
7838 | cwrappersource="$output_path/$objdir/lt-$output_name.c" | ||
7839 | cwrapper="$output_path/$output_name.exe" | ||
7840 | $RM $cwrappersource $cwrapper | ||
7841 | trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 | ||
7842 | |||
7843 | func_emit_cwrapperexe_src > $cwrappersource | ||
7844 | |||
7845 | # The wrapper executable is built using the $host compiler, | ||
7846 | # because it contains $host paths and files. If cross- | ||
7847 | # compiling, it, like the target executable, must be | ||
7848 | # executed on the $host or under an emulation environment. | ||
7849 | $opt_dry_run || { | ||
7850 | $LTCC $LTCFLAGS -o $cwrapper $cwrappersource | ||
7851 | $STRIP $cwrapper | ||
7852 | } | ||
7853 | |||
7854 | # Now, create the wrapper script for func_source use: | ||
7855 | func_ltwrapper_scriptname $cwrapper | ||
7856 | $RM $func_ltwrapper_scriptname_result | ||
7857 | trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 | ||
7858 | $opt_dry_run || { | ||
7859 | # note: this script will not be executed, so do not chmod. | ||
7860 | if test "x$build" = "x$host" ; then | ||
7861 | $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result | ||
7862 | else | ||
7863 | func_emit_wrapper no > $func_ltwrapper_scriptname_result | ||
7864 | fi | ||
7865 | } | ||
7866 | ;; | ||
7867 | * ) | ||
7868 | $RM $output | ||
7869 | trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 | ||
7870 | |||
7871 | func_emit_wrapper no > $output | ||
7872 | chmod +x $output | ||
7873 | ;; | ||
7874 | esac | ||
7875 | } | ||
7876 | exit $EXIT_SUCCESS | ||
7877 | ;; | ||
7878 | esac | ||
7879 | |||
7880 | # See if we need to build an old-fashioned archive. | ||
7881 | for oldlib in $oldlibs; do | ||
7882 | |||
7883 | if test "$build_libtool_libs" = convenience; then | ||
7884 | oldobjs="$libobjs_save $symfileobj" | ||
7885 | addlibs="$convenience" | ||
7886 | build_libtool_libs=no | ||
7887 | else | ||
7888 | if test "$build_libtool_libs" = module; then | ||
7889 | oldobjs="$libobjs_save" | ||
7890 | build_libtool_libs=no | ||
7891 | else | ||
7892 | oldobjs="$old_deplibs $non_pic_objects" | ||
7893 | if test "$preload" = yes && test -f "$symfileobj"; then | ||
7894 | oldobjs="$oldobjs $symfileobj" | ||
7895 | fi | ||
7896 | fi | ||
7897 | addlibs="$old_convenience" | ||
7898 | fi | ||
7899 | |||
7900 | if test -n "$addlibs"; then | ||
7901 | gentop="$output_objdir/${outputname}x" | ||
7902 | generated="$generated $gentop" | ||
7903 | |||
7904 | func_extract_archives $gentop $addlibs | ||
7905 | oldobjs="$oldobjs $func_extract_archives_result" | ||
7906 | fi | ||
7907 | |||
7908 | # Do each command in the archive commands. | ||
7909 | if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then | ||
7910 | cmds=$old_archive_from_new_cmds | ||
7911 | else | ||
7912 | |||
7913 | # Add any objects from preloaded convenience libraries | ||
7914 | if test -n "$dlprefiles"; then | ||
7915 | gentop="$output_objdir/${outputname}x" | ||
7916 | generated="$generated $gentop" | ||
7917 | |||
7918 | func_extract_archives $gentop $dlprefiles | ||
7919 | oldobjs="$oldobjs $func_extract_archives_result" | ||
7920 | fi | ||
7921 | |||
7922 | # POSIX demands no paths to be encoded in archives. We have | ||
7923 | # to avoid creating archives with duplicate basenames if we | ||
7924 | # might have to extract them afterwards, e.g., when creating a | ||
7925 | # static archive out of a convenience library, or when linking | ||
7926 | # the entirety of a libtool archive into another (currently | ||
7927 | # not supported by libtool). | ||
7928 | if (for obj in $oldobjs | ||
7929 | do | ||
7930 | func_basename "$obj" | ||
7931 | $ECHO "$func_basename_result" | ||
7932 | done | sort | sort -uc >/dev/null 2>&1); then | ||
7933 | : | ||
7934 | else | ||
7935 | $ECHO "copying selected object files to avoid basename conflicts..." | ||
7936 | gentop="$output_objdir/${outputname}x" | ||
7937 | generated="$generated $gentop" | ||
7938 | func_mkdir_p "$gentop" | ||
7939 | save_oldobjs=$oldobjs | ||
7940 | oldobjs= | ||
7941 | counter=1 | ||
7942 | for obj in $save_oldobjs | ||
7943 | do | ||
7944 | func_basename "$obj" | ||
7945 | objbase="$func_basename_result" | ||
7946 | case " $oldobjs " in | ||
7947 | " ") oldobjs=$obj ;; | ||
7948 | *[\ /]"$objbase "*) | ||
7949 | while :; do | ||
7950 | # Make sure we don't pick an alternate name that also | ||
7951 | # overlaps. | ||
7952 | newobj=lt$counter-$objbase | ||
7953 | func_arith $counter + 1 | ||
7954 | counter=$func_arith_result | ||
7955 | case " $oldobjs " in | ||
7956 | *[\ /]"$newobj "*) ;; | ||
7957 | *) if test ! -f "$gentop/$newobj"; then break; fi ;; | ||
7958 | esac | ||
7959 | done | ||
7960 | func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" | ||
7961 | oldobjs="$oldobjs $gentop/$newobj" | ||
7962 | ;; | ||
7963 | *) oldobjs="$oldobjs $obj" ;; | ||
7964 | esac | ||
7965 | done | ||
7966 | fi | ||
7967 | eval cmds=\"$old_archive_cmds\" | ||
7968 | |||
7969 | func_len " $cmds" | ||
7970 | len=$func_len_result | ||
7971 | if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then | ||
7972 | cmds=$old_archive_cmds | ||
7973 | else | ||
7974 | # the command line is too long to link in one step, link in parts | ||
7975 | func_verbose "using piecewise archive linking..." | ||
7976 | save_RANLIB=$RANLIB | ||
7977 | RANLIB=: | ||
7978 | objlist= | ||
7979 | concat_cmds= | ||
7980 | save_oldobjs=$oldobjs | ||
7981 | oldobjs= | ||
7982 | # Is there a better way of finding the last object in the list? | ||
7983 | for obj in $save_oldobjs | ||
7984 | do | ||
7985 | last_oldobj=$obj | ||
7986 | done | ||
7987 | eval test_cmds=\"$old_archive_cmds\" | ||
7988 | func_len " $test_cmds" | ||
7989 | len0=$func_len_result | ||
7990 | len=$len0 | ||
7991 | for obj in $save_oldobjs | ||
7992 | do | ||
7993 | func_len " $obj" | ||
7994 | func_arith $len + $func_len_result | ||
7995 | len=$func_arith_result | ||
7996 | func_append objlist " $obj" | ||
7997 | if test "$len" -lt "$max_cmd_len"; then | ||
7998 | : | ||
7999 | else | ||
8000 | # the above command should be used before it gets too long | ||
8001 | oldobjs=$objlist | ||
8002 | if test "$obj" = "$last_oldobj" ; then | ||
8003 | RANLIB=$save_RANLIB | ||
8004 | fi | ||
8005 | test -z "$concat_cmds" || concat_cmds=$concat_cmds~ | ||
8006 | eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" | ||
8007 | objlist= | ||
8008 | len=$len0 | ||
8009 | fi | ||
8010 | done | ||
8011 | RANLIB=$save_RANLIB | ||
8012 | oldobjs=$objlist | ||
8013 | if test "X$oldobjs" = "X" ; then | ||
8014 | eval cmds=\"\$concat_cmds\" | ||
8015 | else | ||
8016 | eval cmds=\"\$concat_cmds~\$old_archive_cmds\" | ||
8017 | fi | ||
8018 | fi | ||
8019 | fi | ||
8020 | func_execute_cmds "$cmds" 'exit $?' | ||
8021 | done | ||
8022 | |||
8023 | test -n "$generated" && \ | ||
8024 | func_show_eval "${RM}r$generated" | ||
8025 | |||
8026 | # Now create the libtool archive. | ||
8027 | case $output in | ||
8028 | *.la) | ||
8029 | old_library= | ||
8030 | test "$build_old_libs" = yes && old_library="$libname.$libext" | ||
8031 | func_verbose "creating $output" | ||
8032 | |||
8033 | # Preserve any variables that may affect compiler behavior | ||
8034 | for var in $variables_saved_for_relink; do | ||
8035 | if eval test -z \"\${$var+set}\"; then | ||
8036 | relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" | ||
8037 | elif eval var_value=\$$var; test -z "$var_value"; then | ||
8038 | relink_command="$var=; export $var; $relink_command" | ||
8039 | else | ||
8040 | func_quote_for_eval "$var_value" | ||
8041 | relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" | ||
8042 | fi | ||
8043 | done | ||
8044 | # Quote the link command for shipping. | ||
8045 | relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" | ||
8046 | relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` | ||
8047 | if test "$hardcode_automatic" = yes ; then | ||
8048 | relink_command= | ||
8049 | fi | ||
8050 | |||
8051 | # Only create the output if not a dry run. | ||
8052 | $opt_dry_run || { | ||
8053 | for installed in no yes; do | ||
8054 | if test "$installed" = yes; then | ||
8055 | if test -z "$install_libdir"; then | ||
8056 | break | ||
8057 | fi | ||
8058 | output="$output_objdir/$outputname"i | ||
8059 | # Replace all uninstalled libtool libraries with the installed ones | ||
8060 | newdependency_libs= | ||
8061 | for deplib in $dependency_libs; do | ||
8062 | case $deplib in | ||
8063 | *.la) | ||
8064 | func_basename "$deplib" | ||
8065 | name="$func_basename_result" | ||
8066 | eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` | ||
8067 | test -z "$libdir" && \ | ||
8068 | func_fatal_error "\`$deplib' is not a valid libtool archive" | ||
8069 | newdependency_libs="$newdependency_libs $libdir/$name" | ||
8070 | ;; | ||
8071 | *) newdependency_libs="$newdependency_libs $deplib" ;; | ||
8072 | esac | ||
8073 | done | ||
8074 | dependency_libs="$newdependency_libs" | ||
8075 | newdlfiles= | ||
8076 | |||
8077 | for lib in $dlfiles; do | ||
8078 | case $lib in | ||
8079 | *.la) | ||
8080 | func_basename "$lib" | ||
8081 | name="$func_basename_result" | ||
8082 | eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` | ||
8083 | test -z "$libdir" && \ | ||
8084 | func_fatal_error "\`$lib' is not a valid libtool archive" | ||
8085 | newdlfiles="$newdlfiles $libdir/$name" | ||
8086 | ;; | ||
8087 | *) newdlfiles="$newdlfiles $lib" ;; | ||
8088 | esac | ||
8089 | done | ||
8090 | dlfiles="$newdlfiles" | ||
8091 | newdlprefiles= | ||
8092 | for lib in $dlprefiles; do | ||
8093 | case $lib in | ||
8094 | *.la) | ||
8095 | # Only pass preopened files to the pseudo-archive (for | ||
8096 | # eventual linking with the app. that links it) if we | ||
8097 | # didn't already link the preopened objects directly into | ||
8098 | # the library: | ||
8099 | func_basename "$lib" | ||
8100 | name="$func_basename_result" | ||
8101 | eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` | ||
8102 | test -z "$libdir" && \ | ||
8103 | func_fatal_error "\`$lib' is not a valid libtool archive" | ||
8104 | newdlprefiles="$newdlprefiles $libdir/$name" | ||
8105 | ;; | ||
8106 | esac | ||
8107 | done | ||
8108 | dlprefiles="$newdlprefiles" | ||
8109 | else | ||
8110 | newdlfiles= | ||
8111 | for lib in $dlfiles; do | ||
8112 | case $lib in | ||
8113 | [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; | ||
8114 | *) abs=`pwd`"/$lib" ;; | ||
8115 | esac | ||
8116 | newdlfiles="$newdlfiles $abs" | ||
8117 | done | ||
8118 | dlfiles="$newdlfiles" | ||
8119 | newdlprefiles= | ||
8120 | for lib in $dlprefiles; do | ||
8121 | case $lib in | ||
8122 | [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; | ||
8123 | *) abs=`pwd`"/$lib" ;; | ||
8124 | esac | ||
8125 | newdlprefiles="$newdlprefiles $abs" | ||
8126 | done | ||
8127 | dlprefiles="$newdlprefiles" | ||
8128 | fi | ||
8129 | $RM $output | ||
8130 | # place dlname in correct position for cygwin | ||
8131 | tdlname=$dlname | ||
8132 | case $host,$output,$installed,$module,$dlname in | ||
8133 | *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; | ||
8134 | esac | ||
8135 | $ECHO > $output "\ | ||
8136 | # $outputname - a libtool library file | ||
8137 | # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION | ||
8138 | # | ||
8139 | # Please DO NOT delete this file! | ||
8140 | # It is necessary for linking the library. | ||
8141 | |||
8142 | # The name that we can dlopen(3). | ||
8143 | dlname='$tdlname' | ||
8144 | |||
8145 | # Names of this library. | ||
8146 | library_names='$library_names' | ||
8147 | |||
8148 | # The name of the static archive. | ||
8149 | old_library='$old_library' | ||
8150 | |||
8151 | # Linker flags that can not go in dependency_libs. | ||
8152 | inherited_linker_flags='$new_inherited_linker_flags' | ||
8153 | |||
8154 | # Libraries that this one depends upon. | ||
8155 | dependency_libs='$dependency_libs' | ||
8156 | |||
8157 | # Names of additional weak libraries provided by this library | ||
8158 | weak_library_names='$weak_libs' | ||
8159 | |||
8160 | # Version information for $libname. | ||
8161 | current=$current | ||
8162 | age=$age | ||
8163 | revision=$revision | ||
8164 | |||
8165 | # Is this an already installed library? | ||
8166 | installed=$installed | ||
8167 | |||
8168 | # Should we warn about portability when linking against -modules? | ||
8169 | shouldnotlink=$module | ||
8170 | |||
8171 | # Files to dlopen/dlpreopen | ||
8172 | dlopen='$dlfiles' | ||
8173 | dlpreopen='$dlprefiles' | ||
8174 | |||
8175 | # Directory that this library needs to be installed in: | ||
8176 | libdir='$install_libdir'" | ||
8177 | if test "$installed" = no && test "$need_relink" = yes; then | ||
8178 | $ECHO >> $output "\ | ||
8179 | relink_command=\"$relink_command\"" | ||
8180 | fi | ||
8181 | done | ||
8182 | } | ||
8183 | |||
8184 | # Do a symbolic link so that the libtool archive can be found in | ||
8185 | # LD_LIBRARY_PATH before the program is installed. | ||
8186 | func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' | ||
8187 | ;; | ||
8188 | esac | ||
8189 | exit $EXIT_SUCCESS | ||
8190 | } | ||
8191 | |||
8192 | { test "$mode" = link || test "$mode" = relink; } && | ||
8193 | func_mode_link ${1+"$@"} | ||
8194 | |||
8195 | |||
8196 | # func_mode_uninstall arg... | ||
8197 | func_mode_uninstall () | ||
8198 | { | ||
8199 | $opt_debug | ||
8200 | RM="$nonopt" | ||
8201 | files= | ||
8202 | rmforce= | ||
8203 | exit_status=0 | ||
8204 | |||
8205 | # This variable tells wrapper scripts just to set variables rather | ||
8206 | # than running their programs. | ||
8207 | libtool_install_magic="$magic" | ||
8208 | |||
8209 | for arg | ||
8210 | do | ||
8211 | case $arg in | ||
8212 | -f) RM="$RM $arg"; rmforce=yes ;; | ||
8213 | -*) RM="$RM $arg" ;; | ||
8214 | *) files="$files $arg" ;; | ||
8215 | esac | ||
8216 | done | ||
8217 | |||
8218 | test -z "$RM" && \ | ||
8219 | func_fatal_help "you must specify an RM program" | ||
8220 | |||
8221 | rmdirs= | ||
8222 | |||
8223 | origobjdir="$objdir" | ||
8224 | for file in $files; do | ||
8225 | func_dirname "$file" "" "." | ||
8226 | dir="$func_dirname_result" | ||
8227 | if test "X$dir" = X.; then | ||
8228 | objdir="$origobjdir" | ||
8229 | else | ||
8230 | objdir="$dir/$origobjdir" | ||
8231 | fi | ||
8232 | func_basename "$file" | ||
8233 | name="$func_basename_result" | ||
8234 | test "$mode" = uninstall && objdir="$dir" | ||
8235 | |||
8236 | # Remember objdir for removal later, being careful to avoid duplicates | ||
8237 | if test "$mode" = clean; then | ||
8238 | case " $rmdirs " in | ||
8239 | *" $objdir "*) ;; | ||
8240 | *) rmdirs="$rmdirs $objdir" ;; | ||
8241 | esac | ||
8242 | fi | ||
8243 | |||
8244 | # Don't error if the file doesn't exist and rm -f was used. | ||
8245 | if { test -L "$file"; } >/dev/null 2>&1 || | ||
8246 | { test -h "$file"; } >/dev/null 2>&1 || | ||
8247 | test -f "$file"; then | ||
8248 | : | ||
8249 | elif test -d "$file"; then | ||
8250 | exit_status=1 | ||
8251 | continue | ||
8252 | elif test "$rmforce" = yes; then | ||
8253 | continue | ||
8254 | fi | ||
8255 | |||
8256 | rmfiles="$file" | ||
8257 | |||
8258 | case $name in | ||
8259 | *.la) | ||
8260 | # Possibly a libtool archive, so verify it. | ||
8261 | if func_lalib_p "$file"; then | ||
8262 | func_source $dir/$name | ||
8263 | |||
8264 | # Delete the libtool libraries and symlinks. | ||
8265 | for n in $library_names; do | ||
8266 | rmfiles="$rmfiles $objdir/$n" | ||
8267 | done | ||
8268 | test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" | ||
8269 | |||
8270 | case "$mode" in | ||
8271 | clean) | ||
8272 | case " $library_names " in | ||
8273 | # " " in the beginning catches empty $dlname | ||
8274 | *" $dlname "*) ;; | ||
8275 | *) rmfiles="$rmfiles $objdir/$dlname" ;; | ||
8276 | esac | ||
8277 | test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" | ||
8278 | ;; | ||
8279 | uninstall) | ||
8280 | if test -n "$library_names"; then | ||
8281 | # Do each command in the postuninstall commands. | ||
8282 | func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' | ||
8283 | fi | ||
8284 | |||
8285 | if test -n "$old_library"; then | ||
8286 | # Do each command in the old_postuninstall commands. | ||
8287 | func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' | ||
8288 | fi | ||
8289 | # FIXME: should reinstall the best remaining shared library. | ||
8290 | ;; | ||
8291 | esac | ||
8292 | fi | ||
8293 | ;; | ||
8294 | |||
8295 | *.lo) | ||
8296 | # Possibly a libtool object, so verify it. | ||
8297 | if func_lalib_p "$file"; then | ||
8298 | |||
8299 | # Read the .lo file | ||
8300 | func_source $dir/$name | ||
8301 | |||
8302 | # Add PIC object to the list of files to remove. | ||
8303 | if test -n "$pic_object" && | ||
8304 | test "$pic_object" != none; then | ||
8305 | rmfiles="$rmfiles $dir/$pic_object" | ||
8306 | fi | ||
8307 | |||
8308 | # Add non-PIC object to the list of files to remove. | ||
8309 | if test -n "$non_pic_object" && | ||
8310 | test "$non_pic_object" != none; then | ||
8311 | rmfiles="$rmfiles $dir/$non_pic_object" | ||
8312 | fi | ||
8313 | fi | ||
8314 | ;; | ||
8315 | |||
8316 | *) | ||
8317 | if test "$mode" = clean ; then | ||
8318 | noexename=$name | ||
8319 | case $file in | ||
8320 | *.exe) | ||
8321 | func_stripname '' '.exe' "$file" | ||
8322 | file=$func_stripname_result | ||
8323 | func_stripname '' '.exe' "$name" | ||
8324 | noexename=$func_stripname_result | ||
8325 | # $file with .exe has already been added to rmfiles, | ||
8326 | # add $file without .exe | ||
8327 | rmfiles="$rmfiles $file" | ||
8328 | ;; | ||
8329 | esac | ||
8330 | # Do a test to see if this is a libtool program. | ||
8331 | if func_ltwrapper_p "$file"; then | ||
8332 | if func_ltwrapper_executable_p "$file"; then | ||
8333 | func_ltwrapper_scriptname "$file" | ||
8334 | relink_command= | ||
8335 | func_source $func_ltwrapper_scriptname_result | ||
8336 | rmfiles="$rmfiles $func_ltwrapper_scriptname_result" | ||
8337 | else | ||
8338 | relink_command= | ||
8339 | func_source $dir/$noexename | ||
8340 | fi | ||
8341 | |||
8342 | # note $name still contains .exe if it was in $file originally | ||
8343 | # as does the version of $file that was added into $rmfiles | ||
8344 | rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" | ||
8345 | if test "$fast_install" = yes && test -n "$relink_command"; then | ||
8346 | rmfiles="$rmfiles $objdir/lt-$name" | ||
8347 | fi | ||
8348 | if test "X$noexename" != "X$name" ; then | ||
8349 | rmfiles="$rmfiles $objdir/lt-${noexename}.c" | ||
8350 | fi | ||
8351 | fi | ||
8352 | fi | ||
8353 | ;; | ||
8354 | esac | ||
8355 | func_show_eval "$RM $rmfiles" 'exit_status=1' | ||
8356 | done | ||
8357 | objdir="$origobjdir" | ||
8358 | |||
8359 | # Try to remove the ${objdir}s in the directories where we deleted files | ||
8360 | for dir in $rmdirs; do | ||
8361 | if test -d "$dir"; then | ||
8362 | func_show_eval "rmdir $dir >/dev/null 2>&1" | ||
8363 | fi | ||
8364 | done | ||
8365 | |||
8366 | exit $exit_status | ||
8367 | } | ||
8368 | |||
8369 | { test "$mode" = uninstall || test "$mode" = clean; } && | ||
8370 | func_mode_uninstall ${1+"$@"} | ||
8371 | |||
8372 | test -z "$mode" && { | ||
8373 | help="$generic_help" | ||
8374 | func_fatal_help "you must specify a MODE" | ||
8375 | } | ||
8376 | |||
8377 | test -z "$exec_cmd" && \ | ||
8378 | func_fatal_help "invalid operation mode \`$mode'" | ||
8379 | |||
8380 | if test -n "$exec_cmd"; then | ||
8381 | eval exec "$exec_cmd" | ||
8382 | exit $EXIT_FAILURE | ||
8383 | fi | ||
8384 | |||
8385 | exit $exit_status | ||
8386 | |||
8387 | |||
8388 | # The TAGs below are defined such that we never get into a situation | ||
8389 | # in which we disable both kinds of libraries. Given conflicting | ||
8390 | # choices, we go for a static library, that is the most portable, | ||
8391 | # since we can't tell whether shared libraries were disabled because | ||
8392 | # the user asked for that or because the platform doesn't support | ||
8393 | # them. This is particularly important on AIX, because we don't | ||
8394 | # support having both static and shared libraries enabled at the same | ||
8395 | # time on that platform, so we default to a shared-only configuration. | ||
8396 | # If a disable-shared tag is given, we'll fallback to a static-only | ||
8397 | # configuration. But we'll never go from static-only to shared-only. | ||
8398 | |||
8399 | # ### BEGIN LIBTOOL TAG CONFIG: disable-shared | ||
8400 | build_libtool_libs=no | ||
8401 | build_old_libs=yes | ||
8402 | # ### END LIBTOOL TAG CONFIG: disable-shared | ||
8403 | |||
8404 | # ### BEGIN LIBTOOL TAG CONFIG: disable-static | ||
8405 | build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` | ||
8406 | # ### END LIBTOOL TAG CONFIG: disable-static | ||
8407 | |||
8408 | # Local Variables: | ||
8409 | # mode:shell-script | ||
8410 | # sh-indentation:2 | ||
8411 | # End: | ||
8412 | # vi:sw=2 | ||
8413 | |||
diff --git a/libraries/eet/m4/ac_attribute.m4 b/libraries/eet/m4/ac_attribute.m4 deleted file mode 100644 index 23479a9..0000000 --- a/libraries/eet/m4/ac_attribute.m4 +++ /dev/null | |||
@@ -1,47 +0,0 @@ | |||
1 | dnl Copyright (C) 2004-2008 Kim Woelders | ||
2 | dnl Copyright (C) 2008 Vincent Torri <vtorri at univ-evry dot fr> | ||
3 | dnl That code is public domain and can be freely used or copied. | ||
4 | dnl Originally snatched from somewhere... | ||
5 | |||
6 | dnl Macro for checking if the compiler supports __attribute__ | ||
7 | |||
8 | dnl Usage: AC_C___ATTRIBUTE__ | ||
9 | dnl call AC_DEFINE for HAVE___ATTRIBUTE__ and __UNUSED__ | ||
10 | dnl if the compiler supports __attribute__, HAVE___ATTRIBUTE__ is | ||
11 | dnl defined to 1 and __UNUSED__ is defined to __attribute__((unused)) | ||
12 | dnl otherwise, HAVE___ATTRIBUTE__ is not defined and __UNUSED__ is | ||
13 | dnl defined to nothing. | ||
14 | |||
15 | AC_DEFUN([AC_C___ATTRIBUTE__], | ||
16 | [ | ||
17 | |||
18 | AC_MSG_CHECKING([for __attribute__]) | ||
19 | |||
20 | AC_CACHE_VAL([ac_cv___attribute__], | ||
21 | [AC_TRY_COMPILE( | ||
22 | [ | ||
23 | #include <stdlib.h> | ||
24 | |||
25 | int func(int x); | ||
26 | int foo(int x __attribute__ ((unused))) | ||
27 | { | ||
28 | exit(1); | ||
29 | } | ||
30 | ], | ||
31 | [], | ||
32 | [ac_cv___attribute__="yes"], | ||
33 | [ac_cv___attribute__="no"] | ||
34 | )]) | ||
35 | |||
36 | AC_MSG_RESULT($ac_cv___attribute__) | ||
37 | |||
38 | if test "x${ac_cv___attribute__}" = "xyes" ; then | ||
39 | AC_DEFINE([HAVE___ATTRIBUTE__], [1], [Define to 1 if your compiler has __attribute__]) | ||
40 | AC_DEFINE([__UNUSED__], [__attribute__((unused))], [Macro declaring a function argument to be unused]) | ||
41 | else | ||
42 | AC_DEFINE([__UNUSED__], [], [Macro declaring a function argument to be unused]) | ||
43 | fi | ||
44 | |||
45 | ]) | ||
46 | |||
47 | dnl End of ac_attribute.m4 | ||
diff --git a/libraries/eet/m4/ac_path_generic.m4 b/libraries/eet/m4/ac_path_generic.m4 deleted file mode 100644 index d427241..0000000 --- a/libraries/eet/m4/ac_path_generic.m4 +++ /dev/null | |||
@@ -1,137 +0,0 @@ | |||
1 | dnl @synopsis AC_PATH_GENERIC(LIBRARY [, MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) | ||
2 | dnl | ||
3 | dnl Runs a LIBRARY-config script and defines LIBRARY_CFLAGS and LIBRARY_LIBS | ||
4 | dnl | ||
5 | dnl The script must support `--cflags' and `--libs' args. | ||
6 | dnl If MINIMUM-VERSION is specified, the script must also support the | ||
7 | dnl `--version' arg. | ||
8 | dnl If the `--with-library-[exec-]prefix' arguments to ./configure are given, | ||
9 | dnl it must also support `--prefix' and `--exec-prefix'. | ||
10 | dnl (In other words, it must be like gtk-config.) | ||
11 | dnl | ||
12 | dnl For example: | ||
13 | dnl | ||
14 | dnl AC_PATH_GENERIC(Foo, 1.0.0) | ||
15 | dnl | ||
16 | dnl would run `foo-config --version' and check that it is at least 1.0.0 | ||
17 | dnl | ||
18 | dnl If so, the following would then be defined: | ||
19 | dnl | ||
20 | dnl FOO_CFLAGS to `foo-config --cflags` | ||
21 | dnl FOO_LIBS to `foo-config --libs` | ||
22 | dnl | ||
23 | dnl At present there is no support for additional "MODULES" (see AM_PATH_GTK) | ||
24 | dnl (shamelessly stolen from gtk.m4 and then hacked around a fair amount) | ||
25 | dnl | ||
26 | dnl @author Angus Lees <gusl@cse.unsw.edu.au> | ||
27 | |||
28 | AC_DEFUN([AC_PATH_GENERIC], | ||
29 | [dnl | ||
30 | dnl we're going to need uppercase, lowercase and user-friendly versions of the | ||
31 | dnl string `LIBRARY' | ||
32 | pushdef([UP], translit([$1], [a-z], [A-Z]))dnl | ||
33 | pushdef([DOWN], translit([$1], [A-Z], [a-z]))dnl | ||
34 | |||
35 | dnl | ||
36 | dnl Get the cflags and libraries from the LIBRARY-config script | ||
37 | dnl | ||
38 | AC_ARG_WITH(DOWN-prefix, | ||
39 | [ --with-]DOWN[-prefix=PFX Prefix where $1 is installed (optional)], | ||
40 | DOWN[]_config_prefix="$withval", DOWN[]_config_prefix="") | ||
41 | AC_ARG_WITH(DOWN-exec-prefix, | ||
42 | [ --with-]DOWN[-exec-prefix=PFX Exec prefix where $1 is installed (optional)], | ||
43 | DOWN[]_config_exec_prefix="$withval", DOWN[]_config_exec_prefix="") | ||
44 | |||
45 | if test x$DOWN[]_config_exec_prefix != x ; then | ||
46 | DOWN[]_config_args="$DOWN[]_config_args --exec-prefix=$DOWN[]_config_exec_prefix" | ||
47 | if test x${UP[]_CONFIG+set} != xset ; then | ||
48 | UP[]_CONFIG=$DOWN[]_config_exec_prefix/bin/DOWN-config | ||
49 | fi | ||
50 | fi | ||
51 | if test x$DOWN[]_config_prefix != x ; then | ||
52 | DOWN[]_config_args="$DOWN[]_config_args --prefix=$DOWN[]_config_prefix" | ||
53 | if test x${UP[]_CONFIG+set} != xset ; then | ||
54 | UP[]_CONFIG=$DOWN[]_config_prefix/bin/DOWN-config | ||
55 | fi | ||
56 | fi | ||
57 | |||
58 | AC_PATH_PROG(UP[]_CONFIG, DOWN-config, no) | ||
59 | ifelse([$2], , | ||
60 | AC_MSG_CHECKING(for $1), | ||
61 | AC_MSG_CHECKING(for $1 - version >= $2) | ||
62 | ) | ||
63 | no_[]DOWN="" | ||
64 | if test "$UP[]_CONFIG" = "no" ; then | ||
65 | no_[]DOWN=yes | ||
66 | else | ||
67 | UP[]_CFLAGS="`$UP[]_CONFIG $DOWN[]_config_args --cflags`" | ||
68 | UP[]_LIBS="`$UP[]_CONFIG $DOWN[]_config_args --libs`" | ||
69 | ifelse([$2], , ,[ | ||
70 | DOWN[]_config_major_version=`$UP[]_CONFIG $DOWN[]_config_args \ | ||
71 | --version | sed 's/[[^0-9]]*\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\).*/\1/'` | ||
72 | DOWN[]_config_minor_version=`$UP[]_CONFIG $DOWN[]_config_args \ | ||
73 | --version | sed 's/[[^0-9]]*\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\).*/\2/'` | ||
74 | DOWN[]_config_micro_version=`$UP[]_CONFIG $DOWN[]_config_args \ | ||
75 | --version | sed 's/[[^0-9]]*\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\).*/\3/'` | ||
76 | DOWN[]_wanted_major_version="regexp($2, [\<\([0-9]*\)], [\1])" | ||
77 | DOWN[]_wanted_minor_version="regexp($2, [\<\([0-9]*\)\.\([0-9]*\)], [\2])" | ||
78 | DOWN[]_wanted_micro_version="regexp($2, [\<\([0-9]*\).\([0-9]*\).\([0-9]*\)], [\3])" | ||
79 | |||
80 | # Compare wanted version to what config script returned. | ||
81 | # If I knew what library was being run, i'd probably also compile | ||
82 | # a test program at this point (which also extracted and tested | ||
83 | # the version in some library-specific way) | ||
84 | if test "$DOWN[]_config_major_version" -lt \ | ||
85 | "$DOWN[]_wanted_major_version" \ | ||
86 | -o \( "$DOWN[]_config_major_version" -eq \ | ||
87 | "$DOWN[]_wanted_major_version" \ | ||
88 | -a "$DOWN[]_config_minor_version" -lt \ | ||
89 | "$DOWN[]_wanted_minor_version" \) \ | ||
90 | -o \( "$DOWN[]_config_major_version" -eq \ | ||
91 | "$DOWN[]_wanted_major_version" \ | ||
92 | -a "$DOWN[]_config_minor_version" -eq \ | ||
93 | "$DOWN[]_wanted_minor_version" \ | ||
94 | -a "$DOWN[]_config_micro_version" -lt \ | ||
95 | "$DOWN[]_wanted_micro_version" \) ; then | ||
96 | # older version found | ||
97 | no_[]DOWN=yes | ||
98 | echo -n "*** An old version of $1 " | ||
99 | echo -n "($DOWN[]_config_major_version" | ||
100 | echo -n ".$DOWN[]_config_minor_version" | ||
101 | echo ".$DOWN[]_config_micro_version) was found." | ||
102 | echo -n "*** You need a version of $1 newer than " | ||
103 | echo -n "$DOWN[]_wanted_major_version" | ||
104 | echo -n ".$DOWN[]_wanted_minor_version" | ||
105 | echo ".$DOWN[]_wanted_micro_version." | ||
106 | echo "***" | ||
107 | echo "*** If you have already installed a sufficiently new version, this error" | ||
108 | echo "*** probably means that the wrong copy of the DOWN-config shell script is" | ||
109 | echo "*** being found. The easiest way to fix this is to remove the old version" | ||
110 | echo "*** of $1, but you can also set the UP[]_CONFIG environment to point to the" | ||
111 | echo "*** correct copy of DOWN-config. (In this case, you will have to" | ||
112 | echo "*** modify your LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf" | ||
113 | echo "*** so that the correct libraries are found at run-time)" | ||
114 | fi | ||
115 | ]) | ||
116 | fi | ||
117 | if test "x$no_[]DOWN" = x ; then | ||
118 | AC_MSG_RESULT(yes) | ||
119 | ifelse([$3], , :, [$3]) | ||
120 | else | ||
121 | AC_MSG_RESULT(no) | ||
122 | if test "$UP[]_CONFIG" = "no" ; then | ||
123 | echo "*** The DOWN-config script installed by $1 could not be found" | ||
124 | echo "*** If $1 was installed in PREFIX, make sure PREFIX/bin is in" | ||
125 | echo "*** your path, or set the UP[]_CONFIG environment variable to the" | ||
126 | echo "*** full path to DOWN-config." | ||
127 | fi | ||
128 | UP[]_CFLAGS="" | ||
129 | UP[]_LIBS="" | ||
130 | ifelse([$4], , :, [$4]) | ||
131 | fi | ||
132 | AC_SUBST(UP[]_CFLAGS) | ||
133 | AC_SUBST(UP[]_LIBS) | ||
134 | |||
135 | popdef([UP]) | ||
136 | popdef([DOWN]) | ||
137 | ]) | ||
diff --git a/libraries/eet/m4/efl_binary.m4 b/libraries/eet/m4/efl_binary.m4 deleted file mode 100644 index fc2f200..0000000 --- a/libraries/eet/m4/efl_binary.m4 +++ /dev/null | |||
@@ -1,79 +0,0 @@ | |||
1 | dnl Copyright (C) 2010 Vincent Torri <vtorri at univ-evry dot fr> | ||
2 | dnl That code is public domain and can be freely used or copied. | ||
3 | |||
4 | dnl Macro that checks if a binary is built or not | ||
5 | |||
6 | dnl Usage: EFL_ENABLE_BIN(binary) | ||
7 | dnl Call AC_SUBST(BINARY_PRG) (BINARY is the uppercase of binary, - being transformed into _) | ||
8 | dnl Define have_binary (- is transformed into _) | ||
9 | dnl Define conditional BUILD_BINARY (BINARY is the uppercase of binary, - being transformed into _) | ||
10 | |||
11 | AC_DEFUN([EFL_ENABLE_BIN], | ||
12 | [ | ||
13 | |||
14 | m4_pushdef([UP], m4_translit([[$1]], [-a-z], [_A-Z]))dnl | ||
15 | m4_pushdef([DOWN], m4_translit([[$1]], [-A-Z], [_a-z]))dnl | ||
16 | |||
17 | have_[]m4_defn([DOWN])="yes" | ||
18 | |||
19 | dnl configure option | ||
20 | |||
21 | AC_ARG_ENABLE([$1], | ||
22 | [AC_HELP_STRING([--disable-$1], [disable building of ]DOWN)], | ||
23 | [ | ||
24 | if test "x${enableval}" = "xyes" ; then | ||
25 | have_[]m4_defn([DOWN])="yes" | ||
26 | else | ||
27 | have_[]m4_defn([DOWN])="no" | ||
28 | fi | ||
29 | ]) | ||
30 | |||
31 | AC_MSG_CHECKING([whether to build ]DOWN[ binary]) | ||
32 | AC_MSG_RESULT([$have_[]m4_defn([DOWN])]) | ||
33 | |||
34 | if test "x$have_[]m4_defn([DOWN])" = "xyes"; then | ||
35 | UP[]_PRG=DOWN[${EXEEXT}] | ||
36 | fi | ||
37 | |||
38 | AC_SUBST(UP[]_PRG) | ||
39 | |||
40 | AM_CONDITIONAL(BUILD_[]UP, test "x$have_[]m4_defn([DOWN])" = "xyes") | ||
41 | |||
42 | AS_IF([test "x$have_[]m4_defn([DOWN])" = "xyes"], [$2], [$3]) | ||
43 | |||
44 | ]) | ||
45 | |||
46 | dnl Macro that specifies the binary to be used | ||
47 | |||
48 | dnl Usage: EFL_WITH_BIN(binary, package, msg) | ||
49 | dnl Call AC_SUBST(BINARY_PRG) (BINARY is the uppercase of binary, - being transformed into _) | ||
50 | dnl Define with_binary (- is transformed into _) | ||
51 | dnl Define conditional BUILD_BINARY (BINARY is the uppercase of binary, - being transformed into _) | ||
52 | |||
53 | AC_DEFUN([EFL_WITH_BIN], | ||
54 | [ | ||
55 | |||
56 | m4_pushdef([UP], m4_translit([[$1]], [-a-z], [_A-Z]))dnl | ||
57 | m4_pushdef([DOWN], m4_translit([[$1]], [-A-Z], [_a-z]))dnl | ||
58 | |||
59 | AC_REQUIRE([PKG_PROG_PKG_CONFIG]) | ||
60 | AC_MSG_NOTICE([$PKG_CONFIG]) | ||
61 | |||
62 | with_[]m4_defn([DOWN])=m4_esyscmd($PKG_CONFIG --variable=prefix $2)/bin/m4_defn([DOWN]) | ||
63 | |||
64 | dnl configure option | ||
65 | |||
66 | AC_ARG_WITH([$1], | ||
67 | [AC_HELP_STRING([--with-$1-bin=PATH], [specify a specific path to ]DOWN)], | ||
68 | [ | ||
69 | with_[]m4_defn([DOWN])=$withval | ||
70 | _efl_msg="( explicitely set)" | ||
71 | ]) | ||
72 | |||
73 | AC_MSG_NOTICE([$msg: ]m4_defn([DOWN])[$_efl_msg]) | ||
74 | |||
75 | AC_SUBST(with_[]m4_defn([DOWN])) | ||
76 | |||
77 | AS_IF([test "x$have_[]m4_defn([DOWN])" = "xyes"], [$4], [$5]) | ||
78 | |||
79 | ]) | ||
diff --git a/libraries/eet/m4/efl_compiler_flag.m4 b/libraries/eet/m4/efl_compiler_flag.m4 deleted file mode 100644 index 618c6a6..0000000 --- a/libraries/eet/m4/efl_compiler_flag.m4 +++ /dev/null | |||
@@ -1,57 +0,0 @@ | |||
1 | dnl Copyright (C) 2010 Vincent Torri <vtorri at univ-evry dot fr> | ||
2 | dnl and Albin Tonnerre <albin dot tonnerre at gmail dot com> | ||
3 | dnl That code is public domain and can be freely used or copied. | ||
4 | |||
5 | dnl Macro that checks if a compiler flag is supported by the compiler. | ||
6 | |||
7 | dnl Usage: EFL_COMPILER_FLAG(flag) | ||
8 | dnl flag is added to CFLAGS if supported. | ||
9 | |||
10 | AC_DEFUN([EFL_COMPILER_FLAG], | ||
11 | [ | ||
12 | |||
13 | CFLAGS_save="${CFLAGS}" | ||
14 | CFLAGS="${CFLAGS} $1" | ||
15 | |||
16 | AC_LANG_PUSH([C]) | ||
17 | AC_MSG_CHECKING([whether the compiler supports $1]) | ||
18 | |||
19 | AC_COMPILE_IFELSE( | ||
20 | [AC_LANG_PROGRAM([[]])], | ||
21 | [have_flag="yes"], | ||
22 | [have_flag="no"]) | ||
23 | AC_MSG_RESULT([${have_flag}]) | ||
24 | |||
25 | if test "x${have_flag}" = "xno" ; then | ||
26 | CFLAGS="${CFLAGS_save}" | ||
27 | fi | ||
28 | AC_LANG_POP([C]) | ||
29 | |||
30 | ]) | ||
31 | |||
32 | dnl Macro that checks if a linker flag is supported by the compiler. | ||
33 | |||
34 | dnl Usage: EFL_LINKER_FLAG(flag) | ||
35 | dnl flag is added to CFLAGS if supported (will be passed to ld anyway). | ||
36 | |||
37 | AC_DEFUN([EFL_LINKER_FLAG], | ||
38 | [ | ||
39 | |||
40 | CFLAGS_save="${CFLAGS}" | ||
41 | CFLAGS="${CFLAGS} $1" | ||
42 | |||
43 | AC_LANG_PUSH([C]) | ||
44 | AC_MSG_CHECKING([whether the compiler supports $1]) | ||
45 | |||
46 | AC_LINK_IFELSE( | ||
47 | [AC_LANG_PROGRAM([[]])], | ||
48 | [have_flag="yes"], | ||
49 | [have_flag="no"]) | ||
50 | AC_MSG_RESULT([${have_flag}]) | ||
51 | |||
52 | if test "x${have_flag}" = "xno" ; then | ||
53 | CFLAGS="${CFLAGS_save}" | ||
54 | fi | ||
55 | AC_LANG_POP([C]) | ||
56 | |||
57 | ]) | ||
diff --git a/libraries/eet/m4/efl_coverage.m4 b/libraries/eet/m4/efl_coverage.m4 deleted file mode 100644 index 85d0321..0000000 --- a/libraries/eet/m4/efl_coverage.m4 +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | dnl Copyright (C) 2008 Vincent Torri <vtorri at univ-evry dot fr> | ||
2 | dnl That code is public domain and can be freely used or copied. | ||
3 | |||
4 | dnl Macro that check if coverage support is wanted and, if yes, if | ||
5 | dnl lcov is available. | ||
6 | |||
7 | dnl Usage: EFL_CHECK_COVERAGE(tests [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) | ||
8 | dnl The parameter 'tests' is used if a dependency is needed. If set to "yes", | ||
9 | dnl the dependency is available. | ||
10 | dnl Defines EFL_COVERAGE_CFLAGS and EFL_COVERAGE_LIBS variables | ||
11 | dnl Defines the automake conditionnal EFL_ENABLE_COVERAGE | ||
12 | |||
13 | AC_DEFUN([EFL_CHECK_COVERAGE], | ||
14 | [ | ||
15 | |||
16 | dnl configure option | ||
17 | |||
18 | AC_ARG_ENABLE([coverage], | ||
19 | [AC_HELP_STRING([--enable-coverage], [enable coverage profiling instrumentation @<:@default=disabled@:>@])], | ||
20 | [ | ||
21 | if test "x${enableval}" = "xyes" ; then | ||
22 | _efl_enable_coverage="yes" | ||
23 | else | ||
24 | _efl_enable_coverage="no" | ||
25 | fi | ||
26 | ], | ||
27 | [_efl_enable_coverage="no"]) | ||
28 | |||
29 | AC_MSG_CHECKING([whether to use profiling instrumentation]) | ||
30 | AC_MSG_RESULT([$_efl_enable_coverage]) | ||
31 | |||
32 | dnl lcov check | ||
33 | |||
34 | if test "x$_efl_enable_coverage" = "xyes" && test ! "x$1" = "xyes" ; then | ||
35 | AC_MSG_WARN([Coverage report requested but tests not being built, disable profiling instrumentation.]) | ||
36 | AC_MSG_WARN([Run configure with --enable-tests]) | ||
37 | _efl_enable_coverage="no" | ||
38 | fi | ||
39 | |||
40 | if test "x$_efl_enable_coverage" = "xyes" ; then | ||
41 | AC_CHECK_PROG(have_lcov, [lcov], [yes], [no]) | ||
42 | if test "x$have_lcov" = "xyes" ; then | ||
43 | EFL_COVERAGE_CFLAGS="-fprofile-arcs -ftest-coverage" | ||
44 | EFL_COVERAGE_LIBS="-lgcov" | ||
45 | # remove any optimisation flag and force debug symbols | ||
46 | EFL_DEBUG_CFLAGS="-g -O0 -DDEBUG" | ||
47 | else | ||
48 | AC_MSG_WARN([lcov is not found, disable profiling instrumentation]) | ||
49 | _efl_enable_coverage="no" | ||
50 | fi | ||
51 | fi | ||
52 | |||
53 | dnl Substitution | ||
54 | AC_SUBST(EFL_COVERAGE_CFLAGS) | ||
55 | AC_SUBST(EFL_COVERAGE_LIBS) | ||
56 | |||
57 | AM_CONDITIONAL(EFL_ENABLE_COVERAGE, test "x${_efl_enable_coverage}" = "xyes") | ||
58 | |||
59 | AS_IF([test "x$_efl_enable_coverage" = "xyes"], [$2], [$3]) | ||
60 | ]) | ||
61 | |||
62 | dnl End of efl_coverage.m4 | ||
diff --git a/libraries/eet/m4/efl_doxygen.m4 b/libraries/eet/m4/efl_doxygen.m4 deleted file mode 100644 index 7324af3..0000000 --- a/libraries/eet/m4/efl_doxygen.m4 +++ /dev/null | |||
@@ -1,94 +0,0 @@ | |||
1 | dnl Copyright (C) 2008 Vincent Torri <vtorri at univ-evry dot fr> | ||
2 | dnl That code is public domain and can be freely used or copied. | ||
3 | |||
4 | dnl Macro that check if doxygen is available or not. | ||
5 | |||
6 | dnl EFL_CHECK_DOXYGEN([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) | ||
7 | dnl Test for the doxygen program | ||
8 | dnl Defines efl_doxygen | ||
9 | dnl Defines the automake conditionnal EFL_BUILD_DOC | ||
10 | dnl | ||
11 | AC_DEFUN([EFL_CHECK_DOXYGEN], | ||
12 | [ | ||
13 | |||
14 | dnl | ||
15 | dnl Disable the build of the documentation | ||
16 | dnl | ||
17 | AC_ARG_ENABLE([doc], | ||
18 | [AC_HELP_STRING( | ||
19 | [--disable-doc], | ||
20 | [Disable documentation build @<:@default=enabled@:>@])], | ||
21 | [ | ||
22 | if test "x${enableval}" = "xyes" ; then | ||
23 | efl_enable_doc="yes" | ||
24 | else | ||
25 | efl_enable_doc="no" | ||
26 | fi | ||
27 | ], | ||
28 | [efl_enable_doc="yes"]) | ||
29 | |||
30 | AC_MSG_CHECKING([whether to build documentation]) | ||
31 | AC_MSG_RESULT([${efl_enable_doc}]) | ||
32 | |||
33 | if test "x${efl_enable_doc}" = "xyes" ; then | ||
34 | |||
35 | dnl Specify the file name, without path | ||
36 | |||
37 | efl_doxygen="doxygen" | ||
38 | |||
39 | AC_ARG_WITH([doxygen], | ||
40 | [AC_HELP_STRING( | ||
41 | [--with-doxygen=FILE], | ||
42 | [doxygen program to use @<:@default=doxygen@:>@])], | ||
43 | |||
44 | dnl Check the given doxygen program. | ||
45 | |||
46 | [efl_doxygen=${withval} | ||
47 | AC_CHECK_PROG([efl_have_doxygen], | ||
48 | [${efl_doxygen}], | ||
49 | [yes], | ||
50 | [no]) | ||
51 | if test "x${efl_have_doxygen}" = "xno" ; then | ||
52 | echo "WARNING:" | ||
53 | echo "The doxygen program you specified:" | ||
54 | echo "${efl_doxygen}" | ||
55 | echo "was not found. Please check the path and make sure " | ||
56 | echo "the program exists and is executable." | ||
57 | AC_MSG_WARN([no doxygen detected. Documentation will not be built]) | ||
58 | fi | ||
59 | ], | ||
60 | [AC_CHECK_PROG([efl_have_doxygen], | ||
61 | [${efl_doxygen}], | ||
62 | [yes], | ||
63 | [no]) | ||
64 | if test "x${efl_have_doxygen}" = "xno" ; then | ||
65 | echo "WARNING:" | ||
66 | echo "The doxygen program was not found in your execute path." | ||
67 | echo "You may have doxygen installed somewhere not covered by your path." | ||
68 | echo "" | ||
69 | echo "If this is the case make sure you have the packages installed, AND" | ||
70 | echo "that the doxygen program is in your execute path (see your" | ||
71 | echo "shell manual page on setting the \$PATH environment variable), OR" | ||
72 | echo "alternatively, specify the program to use with --with-doxygen." | ||
73 | AC_MSG_WARN([no doxygen detected. Documentation will not be built]) | ||
74 | fi | ||
75 | ]) | ||
76 | else | ||
77 | efl_have_doxygen="no" | ||
78 | fi | ||
79 | |||
80 | dnl | ||
81 | dnl Substitution | ||
82 | dnl | ||
83 | AC_SUBST([efl_doxygen]) | ||
84 | |||
85 | if ! test "x${efl_have_doxygen}" = "xyes" ; then | ||
86 | efl_enable_doc="no" | ||
87 | fi | ||
88 | |||
89 | AM_CONDITIONAL(EFL_BUILD_DOC, test "x${efl_have_doxygen}" = "xyes") | ||
90 | |||
91 | AS_IF([test "x$efl_have_doxygen" = "xyes"], [$1], [$2]) | ||
92 | ]) | ||
93 | |||
94 | dnl End of efl_doxygen.m4 | ||
diff --git a/libraries/eet/m4/efl_fnmatch.m4 b/libraries/eet/m4/efl_fnmatch.m4 deleted file mode 100644 index b5555ee..0000000 --- a/libraries/eet/m4/efl_fnmatch.m4 +++ /dev/null | |||
@@ -1,43 +0,0 @@ | |||
1 | dnl Copyright (C) 2010 Vincent Torri <vtorri at univ-evry dot fr> | ||
2 | dnl That code is public domain and can be freely used or copied. | ||
3 | |||
4 | dnl Macro that check if fnmatch functions are available or not. | ||
5 | |||
6 | dnl Usage: EFL_CHECK_FNMATCH([, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) | ||
7 | dnl Call AC_SUBST(EFL_FNMATCH_LIBS) | ||
8 | |||
9 | AC_DEFUN([EFL_CHECK_FNMATCH], | ||
10 | [ | ||
11 | |||
12 | AC_CHECK_HEADER([fnmatch.h], [_efl_have_fnmatch="yes"], [_efl_have_fnmatch="no"]) | ||
13 | |||
14 | if test "x${_efl_have_fnmatch}" = "xyes" ; then | ||
15 | AC_SEARCH_LIBS([fnmatch], | ||
16 | [fnmatch evil iberty], | ||
17 | [_efl_have_fnmatch="yes"], | ||
18 | [_efl_have_fnmatch="no"]) | ||
19 | fi | ||
20 | |||
21 | EFL_FNMATCH_LIBS="" | ||
22 | |||
23 | if (! test "x${ac_cv_search_fnmatch}" = "xnone required") && (! test "x${ac_cv_search_fnmatch}" = "xno") && (! test "x${ac_cv_search_fnmatch}" = "x-levil") ; then | ||
24 | EFL_FNMATCH_LIBS=${ac_cv_search_fnmatch} | ||
25 | fi | ||
26 | |||
27 | if test "x${_efl_have_fnmatch}" != "xyes" -a "x${enable_exotic}" = "xyes"; then | ||
28 | LDFLAGS_SAVE="$LDFLAGS" | ||
29 | LDFLAGS="$LDFLAGS $EXOTIC_LIBS" | ||
30 | AC_CHECK_LIB([exotic], [fnmatch], | ||
31 | [_efl_have_fnmatch="yes"], | ||
32 | [_efl_have_fnmatch="no"]) | ||
33 | |||
34 | if test "x${_efl_have_fnmatch}" = "xyes"; then | ||
35 | EFL_FNMATCH_LIBS="exotic" | ||
36 | fi | ||
37 | fi | ||
38 | |||
39 | AC_SUBST(EFL_FNMATCH_LIBS) | ||
40 | |||
41 | AS_IF([test "x$_efl_have_fnmatch" = "xyes"], [$1], [$2]) | ||
42 | |||
43 | ]) | ||
diff --git a/libraries/eet/m4/efl_path_max.m4 b/libraries/eet/m4/efl_path_max.m4 deleted file mode 100644 index f57bfd2..0000000 --- a/libraries/eet/m4/efl_path_max.m4 +++ /dev/null | |||
@@ -1,36 +0,0 @@ | |||
1 | dnl Check for PATH_MAX in limits.h, and define a default value if not found | ||
2 | dnl This is a workaround for systems not providing PATH_MAX, like GNU/Hurd | ||
3 | |||
4 | dnl EFL_CHECK_PATH_MAX([DEFAULT_VALUE_IF_NOT_FOUND]) | ||
5 | dnl | ||
6 | dnl If PATH_MAX is not defined in <limits.h>, defines it | ||
7 | dnl to DEFAULT_VALUE_IF_NOT_FOUND if it exists, or fallback | ||
8 | dnl to using 4096 | ||
9 | |||
10 | AC_DEFUN([EFL_CHECK_PATH_MAX], | ||
11 | [ | ||
12 | |||
13 | default_max=m4_default([$1], "4096") | ||
14 | AC_LANG_PUSH([C]) | ||
15 | |||
16 | AC_MSG_CHECKING([for PATH_MAX in limits.h]) | ||
17 | AC_COMPILE_IFELSE( | ||
18 | [AC_LANG_PROGRAM( | ||
19 | [[ | ||
20 | #include <limits.h> | ||
21 | ]], | ||
22 | [[ | ||
23 | int i = PATH_MAX; | ||
24 | ]])], | ||
25 | [AC_MSG_RESULT([yes])], | ||
26 | [ | ||
27 | AC_DEFINE_UNQUOTED([PATH_MAX], | ||
28 | [${default_max}], | ||
29 | [default value since PATH_MAX is not defined]) | ||
30 | AC_MSG_RESULT([no: using ${default_max}]) | ||
31 | ]) | ||
32 | |||
33 | AC_LANG_POP([C]) | ||
34 | |||
35 | ]) | ||
36 | dnl end of efl_path_max.m4 | ||
diff --git a/libraries/eet/m4/efl_tests.m4 b/libraries/eet/m4/efl_tests.m4 deleted file mode 100644 index 3a4dfe2..0000000 --- a/libraries/eet/m4/efl_tests.m4 +++ /dev/null | |||
@@ -1,43 +0,0 @@ | |||
1 | dnl Copyright (C) 2008 Vincent Torri <vtorri at univ-evry dot fr> | ||
2 | dnl That code is public domain and can be freely used or copied. | ||
3 | |||
4 | dnl Macro that check if tests programs are wanted and if yes, if | ||
5 | dnl the Check library is available. | ||
6 | |||
7 | dnl Usage: EFL_CHECK_TESTS([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) | ||
8 | dnl Define the automake conditionnal EFL_ENABLE_TESTS | ||
9 | |||
10 | AC_DEFUN([EFL_CHECK_TESTS], | ||
11 | [ | ||
12 | |||
13 | dnl configure option | ||
14 | |||
15 | AC_ARG_ENABLE([tests], | ||
16 | [AC_HELP_STRING([--enable-tests], [enable tests @<:@default=disabled@:>@])], | ||
17 | [ | ||
18 | if test "x${enableval}" = "xyes" ; then | ||
19 | _efl_enable_tests="yes" | ||
20 | else | ||
21 | _efl_enable_tests="no" | ||
22 | fi | ||
23 | ], | ||
24 | [_efl_enable_tests="no"]) | ||
25 | |||
26 | AC_MSG_CHECKING([whether tests are built]) | ||
27 | AC_MSG_RESULT([${_efl_enable_tests}]) | ||
28 | |||
29 | AC_REQUIRE([PKG_PROG_PKG_CONFIG]) | ||
30 | |||
31 | if test "x${_efl_enable_tests}" = "xyes" ; then | ||
32 | PKG_CHECK_MODULES([CHECK], | ||
33 | [check >= 0.9.5], | ||
34 | [dummy="yes"], | ||
35 | [_efl_enable_tests="no"]) | ||
36 | fi | ||
37 | |||
38 | AM_CONDITIONAL(EFL_ENABLE_TESTS, test "x${_efl_enable_tests}" = "xyes") | ||
39 | |||
40 | AS_IF([test "x$_efl_enable_tests" = "xyes"], [$1], [$2]) | ||
41 | ]) | ||
42 | |||
43 | dnl End of efl_tests.m4 | ||
diff --git a/libraries/eet/m4/libtool.m4 b/libraries/eet/m4/libtool.m4 deleted file mode 100644 index a3fee53..0000000 --- a/libraries/eet/m4/libtool.m4 +++ /dev/null | |||
@@ -1,7377 +0,0 @@ | |||
1 | # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- | ||
2 | # | ||
3 | # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, | ||
4 | # 2006, 2007, 2008 Free Software Foundation, Inc. | ||
5 | # Written by Gordon Matzigkeit, 1996 | ||
6 | # | ||
7 | # This file is free software; the Free Software Foundation gives | ||
8 | # unlimited permission to copy and/or distribute it, with or without | ||
9 | # modifications, as long as this notice is preserved. | ||
10 | |||
11 | m4_define([_LT_COPYING], [dnl | ||
12 | # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, | ||
13 | # 2006, 2007, 2008 Free Software Foundation, Inc. | ||
14 | # Written by Gordon Matzigkeit, 1996 | ||
15 | # | ||
16 | # This file is part of GNU Libtool. | ||
17 | # | ||
18 | # GNU Libtool is free software; you can redistribute it and/or | ||
19 | # modify it under the terms of the GNU General Public License as | ||
20 | # published by the Free Software Foundation; either version 2 of | ||
21 | # the License, or (at your option) any later version. | ||
22 | # | ||
23 | # As a special exception to the GNU General Public License, | ||
24 | # if you distribute this file as part of a program or library that | ||
25 | # is built using GNU Libtool, you may include this file under the | ||
26 | # same distribution terms that you use for the rest of that program. | ||
27 | # | ||
28 | # GNU Libtool is distributed in the hope that it will be useful, | ||
29 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
30 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
31 | # GNU General Public License for more details. | ||
32 | # | ||
33 | # You should have received a copy of the GNU General Public License | ||
34 | # along with GNU Libtool; see the file COPYING. If not, a copy | ||
35 | # can be downloaded from http://www.gnu.org/licenses/gpl.html, or | ||
36 | # obtained by writing to the Free Software Foundation, Inc., | ||
37 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | ||
38 | ]) | ||
39 | |||
40 | # serial 56 LT_INIT | ||
41 | |||
42 | |||
43 | # LT_PREREQ(VERSION) | ||
44 | # ------------------ | ||
45 | # Complain and exit if this libtool version is less that VERSION. | ||
46 | m4_defun([LT_PREREQ], | ||
47 | [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, | ||
48 | [m4_default([$3], | ||
49 | [m4_fatal([Libtool version $1 or higher is required], | ||
50 | 63)])], | ||
51 | [$2])]) | ||
52 | |||
53 | |||
54 | # _LT_CHECK_BUILDDIR | ||
55 | # ------------------ | ||
56 | # Complain if the absolute build directory name contains unusual characters | ||
57 | m4_defun([_LT_CHECK_BUILDDIR], | ||
58 | [case `pwd` in | ||
59 | *\ * | *\ *) | ||
60 | AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; | ||
61 | esac | ||
62 | ]) | ||
63 | |||
64 | |||
65 | # LT_INIT([OPTIONS]) | ||
66 | # ------------------ | ||
67 | AC_DEFUN([LT_INIT], | ||
68 | [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT | ||
69 | AC_BEFORE([$0], [LT_LANG])dnl | ||
70 | AC_BEFORE([$0], [LT_OUTPUT])dnl | ||
71 | AC_BEFORE([$0], [LTDL_INIT])dnl | ||
72 | m4_require([_LT_CHECK_BUILDDIR])dnl | ||
73 | |||
74 | dnl Autoconf doesn't catch unexpanded LT_ macros by default: | ||
75 | m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl | ||
76 | m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl | ||
77 | dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 | ||
78 | dnl unless we require an AC_DEFUNed macro: | ||
79 | AC_REQUIRE([LTOPTIONS_VERSION])dnl | ||
80 | AC_REQUIRE([LTSUGAR_VERSION])dnl | ||
81 | AC_REQUIRE([LTVERSION_VERSION])dnl | ||
82 | AC_REQUIRE([LTOBSOLETE_VERSION])dnl | ||
83 | m4_require([_LT_PROG_LTMAIN])dnl | ||
84 | |||
85 | dnl Parse OPTIONS | ||
86 | _LT_SET_OPTIONS([$0], [$1]) | ||
87 | |||
88 | # This can be used to rebuild libtool when needed | ||
89 | LIBTOOL_DEPS="$ltmain" | ||
90 | |||
91 | # Always use our own libtool. | ||
92 | LIBTOOL='$(SHELL) $(top_builddir)/libtool' | ||
93 | AC_SUBST(LIBTOOL)dnl | ||
94 | |||
95 | _LT_SETUP | ||
96 | |||
97 | # Only expand once: | ||
98 | m4_define([LT_INIT]) | ||
99 | ])# LT_INIT | ||
100 | |||
101 | # Old names: | ||
102 | AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) | ||
103 | AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) | ||
104 | dnl aclocal-1.4 backwards compatibility: | ||
105 | dnl AC_DEFUN([AC_PROG_LIBTOOL], []) | ||
106 | dnl AC_DEFUN([AM_PROG_LIBTOOL], []) | ||
107 | |||
108 | |||
109 | # _LT_CC_BASENAME(CC) | ||
110 | # ------------------- | ||
111 | # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. | ||
112 | m4_defun([_LT_CC_BASENAME], | ||
113 | [for cc_temp in $1""; do | ||
114 | case $cc_temp in | ||
115 | compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; | ||
116 | distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; | ||
117 | \-*) ;; | ||
118 | *) break;; | ||
119 | esac | ||
120 | done | ||
121 | cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` | ||
122 | ]) | ||
123 | |||
124 | |||
125 | # _LT_FILEUTILS_DEFAULTS | ||
126 | # ---------------------- | ||
127 | # It is okay to use these file commands and assume they have been set | ||
128 | # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. | ||
129 | m4_defun([_LT_FILEUTILS_DEFAULTS], | ||
130 | [: ${CP="cp -f"} | ||
131 | : ${MV="mv -f"} | ||
132 | : ${RM="rm -f"} | ||
133 | ])# _LT_FILEUTILS_DEFAULTS | ||
134 | |||
135 | |||
136 | # _LT_SETUP | ||
137 | # --------- | ||
138 | m4_defun([_LT_SETUP], | ||
139 | [AC_REQUIRE([AC_CANONICAL_HOST])dnl | ||
140 | AC_REQUIRE([AC_CANONICAL_BUILD])dnl | ||
141 | _LT_DECL([], [host_alias], [0], [The host system])dnl | ||
142 | _LT_DECL([], [host], [0])dnl | ||
143 | _LT_DECL([], [host_os], [0])dnl | ||
144 | dnl | ||
145 | _LT_DECL([], [build_alias], [0], [The build system])dnl | ||
146 | _LT_DECL([], [build], [0])dnl | ||
147 | _LT_DECL([], [build_os], [0])dnl | ||
148 | dnl | ||
149 | AC_REQUIRE([AC_PROG_CC])dnl | ||
150 | AC_REQUIRE([LT_PATH_LD])dnl | ||
151 | AC_REQUIRE([LT_PATH_NM])dnl | ||
152 | dnl | ||
153 | AC_REQUIRE([AC_PROG_LN_S])dnl | ||
154 | test -z "$LN_S" && LN_S="ln -s" | ||
155 | _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl | ||
156 | dnl | ||
157 | AC_REQUIRE([LT_CMD_MAX_LEN])dnl | ||
158 | _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl | ||
159 | _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl | ||
160 | dnl | ||
161 | m4_require([_LT_FILEUTILS_DEFAULTS])dnl | ||
162 | m4_require([_LT_CHECK_SHELL_FEATURES])dnl | ||
163 | m4_require([_LT_CMD_RELOAD])dnl | ||
164 | m4_require([_LT_CHECK_MAGIC_METHOD])dnl | ||
165 | m4_require([_LT_CMD_OLD_ARCHIVE])dnl | ||
166 | m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl | ||
167 | |||
168 | _LT_CONFIG_LIBTOOL_INIT([ | ||
169 | # See if we are running on zsh, and set the options which allow our | ||
170 | # commands through without removal of \ escapes INIT. | ||
171 | if test -n "\${ZSH_VERSION+set}" ; then | ||
172 | setopt NO_GLOB_SUBST | ||
173 | fi | ||
174 | ]) | ||
175 | if test -n "${ZSH_VERSION+set}" ; then | ||
176 | setopt NO_GLOB_SUBST | ||
177 | fi | ||
178 | |||
179 | _LT_CHECK_OBJDIR | ||
180 | |||
181 | m4_require([_LT_TAG_COMPILER])dnl | ||
182 | _LT_PROG_ECHO_BACKSLASH | ||
183 | |||
184 | case $host_os in | ||
185 | aix3*) | ||
186 | # AIX sometimes has problems with the GCC collect2 program. For some | ||
187 | # reason, if we set the COLLECT_NAMES environment variable, the problems | ||
188 | # vanish in a puff of smoke. | ||
189 | if test "X${COLLECT_NAMES+set}" != Xset; then | ||
190 | COLLECT_NAMES= | ||
191 | export COLLECT_NAMES | ||
192 | fi | ||
193 | ;; | ||
194 | esac | ||
195 | |||
196 | # Sed substitution that helps us do robust quoting. It backslashifies | ||
197 | # metacharacters that are still active within double-quoted strings. | ||
198 | sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' | ||
199 | |||
200 | # Same as above, but do not quote variable references. | ||
201 | double_quote_subst='s/\([["`\\]]\)/\\\1/g' | ||
202 | |||
203 | # Sed substitution to delay expansion of an escaped shell variable in a | ||
204 | # double_quote_subst'ed string. | ||
205 | delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' | ||
206 | |||
207 | # Sed substitution to delay expansion of an escaped single quote. | ||
208 | delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' | ||
209 | |||
210 | # Sed substitution to avoid accidental globbing in evaled expressions | ||
211 | no_glob_subst='s/\*/\\\*/g' | ||
212 | |||
213 | # Global variables: | ||
214 | ofile=libtool | ||
215 | can_build_shared=yes | ||
216 | |||
217 | # All known linkers require a `.a' archive for static linking (except MSVC, | ||
218 | # which needs '.lib'). | ||
219 | libext=a | ||
220 | |||
221 | with_gnu_ld="$lt_cv_prog_gnu_ld" | ||
222 | |||
223 | old_CC="$CC" | ||
224 | old_CFLAGS="$CFLAGS" | ||
225 | |||
226 | # Set sane defaults for various variables | ||
227 | test -z "$CC" && CC=cc | ||
228 | test -z "$LTCC" && LTCC=$CC | ||
229 | test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS | ||
230 | test -z "$LD" && LD=ld | ||
231 | test -z "$ac_objext" && ac_objext=o | ||
232 | |||
233 | _LT_CC_BASENAME([$compiler]) | ||
234 | |||
235 | # Only perform the check for file, if the check method requires it | ||
236 | test -z "$MAGIC_CMD" && MAGIC_CMD=file | ||
237 | case $deplibs_check_method in | ||
238 | file_magic*) | ||
239 | if test "$file_magic_cmd" = '$MAGIC_CMD'; then | ||
240 | _LT_PATH_MAGIC | ||
241 | fi | ||
242 | ;; | ||
243 | esac | ||
244 | |||
245 | # Use C for the default configuration in the libtool script | ||
246 | LT_SUPPORTED_TAG([CC]) | ||
247 | _LT_LANG_C_CONFIG | ||
248 | _LT_LANG_DEFAULT_CONFIG | ||
249 | _LT_CONFIG_COMMANDS | ||
250 | ])# _LT_SETUP | ||
251 | |||
252 | |||
253 | # _LT_PROG_LTMAIN | ||
254 | # --------------- | ||
255 | # Note that this code is called both from `configure', and `config.status' | ||
256 | # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, | ||
257 | # `config.status' has no value for ac_aux_dir unless we are using Automake, | ||
258 | # so we pass a copy along to make sure it has a sensible value anyway. | ||
259 | m4_defun([_LT_PROG_LTMAIN], | ||
260 | [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl | ||
261 | _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) | ||
262 | ltmain="$ac_aux_dir/ltmain.sh" | ||
263 | ])# _LT_PROG_LTMAIN | ||
264 | |||
265 | |||
266 | ## ------------------------------------- ## | ||
267 | ## Accumulate code for creating libtool. ## | ||
268 | ## ------------------------------------- ## | ||
269 | |||
270 | # So that we can recreate a full libtool script including additional | ||
271 | # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS | ||
272 | # in macros and then make a single call at the end using the `libtool' | ||
273 | # label. | ||
274 | |||
275 | |||
276 | # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) | ||
277 | # ---------------------------------------- | ||
278 | # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. | ||
279 | m4_define([_LT_CONFIG_LIBTOOL_INIT], | ||
280 | [m4_ifval([$1], | ||
281 | [m4_append([_LT_OUTPUT_LIBTOOL_INIT], | ||
282 | [$1 | ||
283 | ])])]) | ||
284 | |||
285 | # Initialize. | ||
286 | m4_define([_LT_OUTPUT_LIBTOOL_INIT]) | ||
287 | |||
288 | |||
289 | # _LT_CONFIG_LIBTOOL([COMMANDS]) | ||
290 | # ------------------------------ | ||
291 | # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. | ||
292 | m4_define([_LT_CONFIG_LIBTOOL], | ||
293 | [m4_ifval([$1], | ||
294 | [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], | ||
295 | [$1 | ||
296 | ])])]) | ||
297 | |||
298 | # Initialize. | ||
299 | m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) | ||
300 | |||
301 | |||
302 | # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) | ||
303 | # ----------------------------------------------------- | ||
304 | m4_defun([_LT_CONFIG_SAVE_COMMANDS], | ||
305 | [_LT_CONFIG_LIBTOOL([$1]) | ||
306 | _LT_CONFIG_LIBTOOL_INIT([$2]) | ||
307 | ]) | ||
308 | |||
309 | |||
310 | # _LT_FORMAT_COMMENT([COMMENT]) | ||
311 | # ----------------------------- | ||
312 | # Add leading comment marks to the start of each line, and a trailing | ||
313 | # full-stop to the whole comment if one is not present already. | ||
314 | m4_define([_LT_FORMAT_COMMENT], | ||
315 | [m4_ifval([$1], [ | ||
316 | m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], | ||
317 | [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) | ||
318 | )]) | ||
319 | |||
320 | |||
321 | |||
322 | ## ------------------------ ## | ||
323 | ## FIXME: Eliminate VARNAME ## | ||
324 | ## ------------------------ ## | ||
325 | |||
326 | |||
327 | # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) | ||
328 | # ------------------------------------------------------------------- | ||
329 | # CONFIGNAME is the name given to the value in the libtool script. | ||
330 | # VARNAME is the (base) name used in the configure script. | ||
331 | # VALUE may be 0, 1 or 2 for a computed quote escaped value based on | ||
332 | # VARNAME. Any other value will be used directly. | ||
333 | m4_define([_LT_DECL], | ||
334 | [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], | ||
335 | [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], | ||
336 | [m4_ifval([$1], [$1], [$2])]) | ||
337 | lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) | ||
338 | m4_ifval([$4], | ||
339 | [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) | ||
340 | lt_dict_add_subkey([lt_decl_dict], [$2], | ||
341 | [tagged?], [m4_ifval([$5], [yes], [no])])]) | ||
342 | ]) | ||
343 | |||
344 | |||
345 | # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) | ||
346 | # -------------------------------------------------------- | ||
347 | m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) | ||
348 | |||
349 | |||
350 | # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) | ||
351 | # ------------------------------------------------ | ||
352 | m4_define([lt_decl_tag_varnames], | ||
353 | [_lt_decl_filter([tagged?], [yes], $@)]) | ||
354 | |||
355 | |||
356 | # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) | ||
357 | # --------------------------------------------------------- | ||
358 | m4_define([_lt_decl_filter], | ||
359 | [m4_case([$#], | ||
360 | [0], [m4_fatal([$0: too few arguments: $#])], | ||
361 | [1], [m4_fatal([$0: too few arguments: $#: $1])], | ||
362 | [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], | ||
363 | [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], | ||
364 | [lt_dict_filter([lt_decl_dict], $@)])[]dnl | ||
365 | ]) | ||
366 | |||
367 | |||
368 | # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) | ||
369 | # -------------------------------------------------- | ||
370 | m4_define([lt_decl_quote_varnames], | ||
371 | [_lt_decl_filter([value], [1], $@)]) | ||
372 | |||
373 | |||
374 | # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) | ||
375 | # --------------------------------------------------- | ||
376 | m4_define([lt_decl_dquote_varnames], | ||
377 | [_lt_decl_filter([value], [2], $@)]) | ||
378 | |||
379 | |||
380 | # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) | ||
381 | # --------------------------------------------------- | ||
382 | m4_define([lt_decl_varnames_tagged], | ||
383 | [m4_assert([$# <= 2])dnl | ||
384 | _$0(m4_quote(m4_default([$1], [[, ]])), | ||
385 | m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), | ||
386 | m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) | ||
387 | m4_define([_lt_decl_varnames_tagged], | ||
388 | [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) | ||
389 | |||
390 | |||
391 | # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) | ||
392 | # ------------------------------------------------ | ||
393 | m4_define([lt_decl_all_varnames], | ||
394 | [_$0(m4_quote(m4_default([$1], [[, ]])), | ||
395 | m4_if([$2], [], | ||
396 | m4_quote(lt_decl_varnames), | ||
397 | m4_quote(m4_shift($@))))[]dnl | ||
398 | ]) | ||
399 | m4_define([_lt_decl_all_varnames], | ||
400 | [lt_join($@, lt_decl_varnames_tagged([$1], | ||
401 | lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl | ||
402 | ]) | ||
403 | |||
404 | |||
405 | # _LT_CONFIG_STATUS_DECLARE([VARNAME]) | ||
406 | # ------------------------------------ | ||
407 | # Quote a variable value, and forward it to `config.status' so that its | ||
408 | # declaration there will have the same value as in `configure'. VARNAME | ||
409 | # must have a single quote delimited value for this to work. | ||
410 | m4_define([_LT_CONFIG_STATUS_DECLARE], | ||
411 | [$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) | ||
412 | |||
413 | |||
414 | # _LT_CONFIG_STATUS_DECLARATIONS | ||
415 | # ------------------------------ | ||
416 | # We delimit libtool config variables with single quotes, so when | ||
417 | # we write them to config.status, we have to be sure to quote all | ||
418 | # embedded single quotes properly. In configure, this macro expands | ||
419 | # each variable declared with _LT_DECL (and _LT_TAGDECL) into: | ||
420 | # | ||
421 | # <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`' | ||
422 | m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], | ||
423 | [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), | ||
424 | [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) | ||
425 | |||
426 | |||
427 | # _LT_LIBTOOL_TAGS | ||
428 | # ---------------- | ||
429 | # Output comment and list of tags supported by the script | ||
430 | m4_defun([_LT_LIBTOOL_TAGS], | ||
431 | [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl | ||
432 | available_tags="_LT_TAGS"dnl | ||
433 | ]) | ||
434 | |||
435 | |||
436 | # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) | ||
437 | # ----------------------------------- | ||
438 | # Extract the dictionary values for VARNAME (optionally with TAG) and | ||
439 | # expand to a commented shell variable setting: | ||
440 | # | ||
441 | # # Some comment about what VAR is for. | ||
442 | # visible_name=$lt_internal_name | ||
443 | m4_define([_LT_LIBTOOL_DECLARE], | ||
444 | [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], | ||
445 | [description])))[]dnl | ||
446 | m4_pushdef([_libtool_name], | ||
447 | m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl | ||
448 | m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), | ||
449 | [0], [_libtool_name=[$]$1], | ||
450 | [1], [_libtool_name=$lt_[]$1], | ||
451 | [2], [_libtool_name=$lt_[]$1], | ||
452 | [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl | ||
453 | m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl | ||
454 | ]) | ||
455 | |||
456 | |||
457 | # _LT_LIBTOOL_CONFIG_VARS | ||
458 | # ----------------------- | ||
459 | # Produce commented declarations of non-tagged libtool config variables | ||
460 | # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' | ||
461 | # script. Tagged libtool config variables (even for the LIBTOOL CONFIG | ||
462 | # section) are produced by _LT_LIBTOOL_TAG_VARS. | ||
463 | m4_defun([_LT_LIBTOOL_CONFIG_VARS], | ||
464 | [m4_foreach([_lt_var], | ||
465 | m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), | ||
466 | [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) | ||
467 | |||
468 | |||
469 | # _LT_LIBTOOL_TAG_VARS(TAG) | ||
470 | # ------------------------- | ||
471 | m4_define([_LT_LIBTOOL_TAG_VARS], | ||
472 | [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), | ||
473 | [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) | ||
474 | |||
475 | |||
476 | # _LT_TAGVAR(VARNAME, [TAGNAME]) | ||
477 | # ------------------------------ | ||
478 | m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) | ||
479 | |||
480 | |||
481 | # _LT_CONFIG_COMMANDS | ||
482 | # ------------------- | ||
483 | # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of | ||
484 | # variables for single and double quote escaping we saved from calls | ||
485 | # to _LT_DECL, we can put quote escaped variables declarations | ||
486 | # into `config.status', and then the shell code to quote escape them in | ||
487 | # for loops in `config.status'. Finally, any additional code accumulated | ||
488 | # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. | ||
489 | m4_defun([_LT_CONFIG_COMMANDS], | ||
490 | [AC_PROVIDE_IFELSE([LT_OUTPUT], | ||
491 | dnl If the libtool generation code has been placed in $CONFIG_LT, | ||
492 | dnl instead of duplicating it all over again into config.status, | ||
493 | dnl then we will have config.status run $CONFIG_LT later, so it | ||
494 | dnl needs to know what name is stored there: | ||
495 | [AC_CONFIG_COMMANDS([libtool], | ||
496 | [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], | ||
497 | dnl If the libtool generation code is destined for config.status, | ||
498 | dnl expand the accumulated commands and init code now: | ||
499 | [AC_CONFIG_COMMANDS([libtool], | ||
500 | [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) | ||
501 | ])#_LT_CONFIG_COMMANDS | ||
502 | |||
503 | |||
504 | # Initialize. | ||
505 | m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], | ||
506 | [ | ||
507 | |||
508 | # The HP-UX ksh and POSIX shell print the target directory to stdout | ||
509 | # if CDPATH is set. | ||
510 | (unset CDPATH) >/dev/null 2>&1 && unset CDPATH | ||
511 | |||
512 | sed_quote_subst='$sed_quote_subst' | ||
513 | double_quote_subst='$double_quote_subst' | ||
514 | delay_variable_subst='$delay_variable_subst' | ||
515 | _LT_CONFIG_STATUS_DECLARATIONS | ||
516 | LTCC='$LTCC' | ||
517 | LTCFLAGS='$LTCFLAGS' | ||
518 | compiler='$compiler_DEFAULT' | ||
519 | |||
520 | # Quote evaled strings. | ||
521 | for var in lt_decl_all_varnames([[ \ | ||
522 | ]], lt_decl_quote_varnames); do | ||
523 | case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in | ||
524 | *[[\\\\\\\`\\"\\\$]]*) | ||
525 | eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" | ||
526 | ;; | ||
527 | *) | ||
528 | eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" | ||
529 | ;; | ||
530 | esac | ||
531 | done | ||
532 | |||
533 | # Double-quote double-evaled strings. | ||
534 | for var in lt_decl_all_varnames([[ \ | ||
535 | ]], lt_decl_dquote_varnames); do | ||
536 | case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in | ||
537 | *[[\\\\\\\`\\"\\\$]]*) | ||
538 | eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" | ||
539 | ;; | ||
540 | *) | ||
541 | eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" | ||
542 | ;; | ||
543 | esac | ||
544 | done | ||
545 | |||
546 | # Fix-up fallback echo if it was mangled by the above quoting rules. | ||
547 | case \$lt_ECHO in | ||
548 | *'\\\[$]0 --fallback-echo"')dnl " | ||
549 | lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` | ||
550 | ;; | ||
551 | esac | ||
552 | |||
553 | _LT_OUTPUT_LIBTOOL_INIT | ||
554 | ]) | ||
555 | |||
556 | |||
557 | # LT_OUTPUT | ||
558 | # --------- | ||
559 | # This macro allows early generation of the libtool script (before | ||
560 | # AC_OUTPUT is called), incase it is used in configure for compilation | ||
561 | # tests. | ||
562 | AC_DEFUN([LT_OUTPUT], | ||
563 | [: ${CONFIG_LT=./config.lt} | ||
564 | AC_MSG_NOTICE([creating $CONFIG_LT]) | ||
565 | cat >"$CONFIG_LT" <<_LTEOF | ||
566 | #! $SHELL | ||
567 | # Generated by $as_me. | ||
568 | # Run this file to recreate a libtool stub with the current configuration. | ||
569 | |||
570 | lt_cl_silent=false | ||
571 | SHELL=\${CONFIG_SHELL-$SHELL} | ||
572 | _LTEOF | ||
573 | |||
574 | cat >>"$CONFIG_LT" <<\_LTEOF | ||
575 | AS_SHELL_SANITIZE | ||
576 | _AS_PREPARE | ||
577 | |||
578 | exec AS_MESSAGE_FD>&1 | ||
579 | exec AS_MESSAGE_LOG_FD>>config.log | ||
580 | { | ||
581 | echo | ||
582 | AS_BOX([Running $as_me.]) | ||
583 | } >&AS_MESSAGE_LOG_FD | ||
584 | |||
585 | lt_cl_help="\ | ||
586 | \`$as_me' creates a local libtool stub from the current configuration, | ||
587 | for use in further configure time tests before the real libtool is | ||
588 | generated. | ||
589 | |||
590 | Usage: $[0] [[OPTIONS]] | ||
591 | |||
592 | -h, --help print this help, then exit | ||
593 | -V, --version print version number, then exit | ||
594 | -q, --quiet do not print progress messages | ||
595 | -d, --debug don't remove temporary files | ||
596 | |||
597 | Report bugs to <bug-libtool@gnu.org>." | ||
598 | |||
599 | lt_cl_version="\ | ||
600 | m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl | ||
601 | m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) | ||
602 | configured by $[0], generated by m4_PACKAGE_STRING. | ||
603 | |||
604 | Copyright (C) 2008 Free Software Foundation, Inc. | ||
605 | This config.lt script is free software; the Free Software Foundation | ||
606 | gives unlimited permision to copy, distribute and modify it." | ||
607 | |||
608 | while test $[#] != 0 | ||
609 | do | ||
610 | case $[1] in | ||
611 | --version | --v* | -V ) | ||
612 | echo "$lt_cl_version"; exit 0 ;; | ||
613 | --help | --h* | -h ) | ||
614 | echo "$lt_cl_help"; exit 0 ;; | ||
615 | --debug | --d* | -d ) | ||
616 | debug=: ;; | ||
617 | --quiet | --q* | --silent | --s* | -q ) | ||
618 | lt_cl_silent=: ;; | ||
619 | |||
620 | -*) AC_MSG_ERROR([unrecognized option: $[1] | ||
621 | Try \`$[0] --help' for more information.]) ;; | ||
622 | |||
623 | *) AC_MSG_ERROR([unrecognized argument: $[1] | ||
624 | Try \`$[0] --help' for more information.]) ;; | ||
625 | esac | ||
626 | shift | ||
627 | done | ||
628 | |||
629 | if $lt_cl_silent; then | ||
630 | exec AS_MESSAGE_FD>/dev/null | ||
631 | fi | ||
632 | _LTEOF | ||
633 | |||
634 | cat >>"$CONFIG_LT" <<_LTEOF | ||
635 | _LT_OUTPUT_LIBTOOL_COMMANDS_INIT | ||
636 | _LTEOF | ||
637 | |||
638 | cat >>"$CONFIG_LT" <<\_LTEOF | ||
639 | AC_MSG_NOTICE([creating $ofile]) | ||
640 | _LT_OUTPUT_LIBTOOL_COMMANDS | ||
641 | AS_EXIT(0) | ||
642 | _LTEOF | ||
643 | chmod +x "$CONFIG_LT" | ||
644 | |||
645 | # configure is writing to config.log, but config.lt does its own redirection, | ||
646 | # appending to config.log, which fails on DOS, as config.log is still kept | ||
647 | # open by configure. Here we exec the FD to /dev/null, effectively closing | ||
648 | # config.log, so it can be properly (re)opened and appended to by config.lt. | ||
649 | if test "$no_create" != yes; then | ||
650 | lt_cl_success=: | ||
651 | test "$silent" = yes && | ||
652 | lt_config_lt_args="$lt_config_lt_args --quiet" | ||
653 | exec AS_MESSAGE_LOG_FD>/dev/null | ||
654 | $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false | ||
655 | exec AS_MESSAGE_LOG_FD>>config.log | ||
656 | $lt_cl_success || AS_EXIT(1) | ||
657 | fi | ||
658 | ])# LT_OUTPUT | ||
659 | |||
660 | |||
661 | # _LT_CONFIG(TAG) | ||
662 | # --------------- | ||
663 | # If TAG is the built-in tag, create an initial libtool script with a | ||
664 | # default configuration from the untagged config vars. Otherwise add code | ||
665 | # to config.status for appending the configuration named by TAG from the | ||
666 | # matching tagged config vars. | ||
667 | m4_defun([_LT_CONFIG], | ||
668 | [m4_require([_LT_FILEUTILS_DEFAULTS])dnl | ||
669 | _LT_CONFIG_SAVE_COMMANDS([ | ||
670 | m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl | ||
671 | m4_if(_LT_TAG, [C], [ | ||
672 | # See if we are running on zsh, and set the options which allow our | ||
673 | # commands through without removal of \ escapes. | ||
674 | if test -n "${ZSH_VERSION+set}" ; then | ||
675 | setopt NO_GLOB_SUBST | ||
676 | fi | ||
677 | |||
678 | cfgfile="${ofile}T" | ||
679 | trap "$RM \"$cfgfile\"; exit 1" 1 2 15 | ||
680 | $RM "$cfgfile" | ||
681 | |||
682 | cat <<_LT_EOF >> "$cfgfile" | ||
683 | #! $SHELL | ||
684 | |||
685 | # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. | ||
686 | # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION | ||
687 | # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: | ||
688 | # NOTE: Changes made to this file will be lost: look at ltmain.sh. | ||
689 | # | ||
690 | _LT_COPYING | ||
691 | _LT_LIBTOOL_TAGS | ||
692 | |||
693 | # ### BEGIN LIBTOOL CONFIG | ||
694 | _LT_LIBTOOL_CONFIG_VARS | ||
695 | _LT_LIBTOOL_TAG_VARS | ||
696 | # ### END LIBTOOL CONFIG | ||
697 | |||
698 | _LT_EOF | ||
699 | |||
700 | case $host_os in | ||
701 | aix3*) | ||
702 | cat <<\_LT_EOF >> "$cfgfile" | ||
703 | # AIX sometimes has problems with the GCC collect2 program. For some | ||
704 | # reason, if we set the COLLECT_NAMES environment variable, the problems | ||
705 | # vanish in a puff of smoke. | ||
706 | if test "X${COLLECT_NAMES+set}" != Xset; then | ||
707 | COLLECT_NAMES= | ||
708 | export COLLECT_NAMES | ||
709 | fi | ||
710 | _LT_EOF | ||
711 | ;; | ||
712 | esac | ||
713 | |||
714 | _LT_PROG_LTMAIN | ||
715 | |||
716 | # We use sed instead of cat because bash on DJGPP gets confused if | ||
717 | # if finds mixed CR/LF and LF-only lines. Since sed operates in | ||
718 | # text mode, it properly converts lines to CR/LF. This bash problem | ||
719 | # is reportedly fixed, but why not run on old versions too? | ||
720 | sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ | ||
721 | || (rm -f "$cfgfile"; exit 1) | ||
722 | |||
723 | _LT_PROG_XSI_SHELLFNS | ||
724 | |||
725 | sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ | ||
726 | || (rm -f "$cfgfile"; exit 1) | ||
727 | |||
728 | mv -f "$cfgfile" "$ofile" || | ||
729 | (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") | ||
730 | chmod +x "$ofile" | ||
731 | ], | ||
732 | [cat <<_LT_EOF >> "$ofile" | ||
733 | |||
734 | dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded | ||
735 | dnl in a comment (ie after a #). | ||
736 | # ### BEGIN LIBTOOL TAG CONFIG: $1 | ||
737 | _LT_LIBTOOL_TAG_VARS(_LT_TAG) | ||
738 | # ### END LIBTOOL TAG CONFIG: $1 | ||
739 | _LT_EOF | ||
740 | ])dnl /m4_if | ||
741 | ], | ||
742 | [m4_if([$1], [], [ | ||
743 | PACKAGE='$PACKAGE' | ||
744 | VERSION='$VERSION' | ||
745 | TIMESTAMP='$TIMESTAMP' | ||
746 | RM='$RM' | ||
747 | ofile='$ofile'], []) | ||
748 | ])dnl /_LT_CONFIG_SAVE_COMMANDS | ||
749 | ])# _LT_CONFIG | ||
750 | |||
751 | |||
752 | # LT_SUPPORTED_TAG(TAG) | ||
753 | # --------------------- | ||
754 | # Trace this macro to discover what tags are supported by the libtool | ||
755 | # --tag option, using: | ||
756 | # autoconf --trace 'LT_SUPPORTED_TAG:$1' | ||
757 | AC_DEFUN([LT_SUPPORTED_TAG], []) | ||
758 | |||
759 | |||
760 | # C support is built-in for now | ||
761 | m4_define([_LT_LANG_C_enabled], []) | ||
762 | m4_define([_LT_TAGS], []) | ||
763 | |||
764 | |||
765 | # LT_LANG(LANG) | ||
766 | # ------------- | ||
767 | # Enable libtool support for the given language if not already enabled. | ||
768 | AC_DEFUN([LT_LANG], | ||
769 | [AC_BEFORE([$0], [LT_OUTPUT])dnl | ||
770 | m4_case([$1], | ||
771 | [C], [_LT_LANG(C)], | ||
772 | [C++], [_LT_LANG(CXX)], | ||
773 | [Java], [_LT_LANG(GCJ)], | ||
774 | [Fortran 77], [_LT_LANG(F77)], | ||
775 | [Fortran], [_LT_LANG(FC)], | ||
776 | [Windows Resource], [_LT_LANG(RC)], | ||
777 | [m4_ifdef([_LT_LANG_]$1[_CONFIG], | ||
778 | [_LT_LANG($1)], | ||
779 | [m4_fatal([$0: unsupported language: "$1"])])])dnl | ||
780 | ])# LT_LANG | ||
781 | |||
782 | |||
783 | # _LT_LANG(LANGNAME) | ||
784 | # ------------------ | ||
785 | m4_defun([_LT_LANG], | ||
786 | [m4_ifdef([_LT_LANG_]$1[_enabled], [], | ||
787 | [LT_SUPPORTED_TAG([$1])dnl | ||
788 | m4_append([_LT_TAGS], [$1 ])dnl | ||
789 | m4_define([_LT_LANG_]$1[_enabled], [])dnl | ||
790 | _LT_LANG_$1_CONFIG($1)])dnl | ||
791 | ])# _LT_LANG | ||
792 | |||
793 | |||
794 | # _LT_LANG_DEFAULT_CONFIG | ||
795 | # ----------------------- | ||
796 | m4_defun([_LT_LANG_DEFAULT_CONFIG], | ||
797 | [AC_PROVIDE_IFELSE([AC_PROG_CXX], | ||
798 | [LT_LANG(CXX)], | ||
799 | [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) | ||
800 | |||
801 | AC_PROVIDE_IFELSE([AC_PROG_F77], | ||
802 | [LT_LANG(F77)], | ||
803 | [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) | ||
804 | |||
805 | AC_PROVIDE_IFELSE([AC_PROG_FC], | ||
806 | [LT_LANG(FC)], | ||
807 | [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) | ||
808 | |||
809 | dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal | ||
810 | dnl pulling things in needlessly. | ||
811 | AC_PROVIDE_IFELSE([AC_PROG_GCJ], | ||
812 | [LT_LANG(GCJ)], | ||
813 | [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], | ||
814 | [LT_LANG(GCJ)], | ||
815 | [AC_PROVIDE_IFELSE([LT_PROG_GCJ], | ||
816 | [LT_LANG(GCJ)], | ||
817 | [m4_ifdef([AC_PROG_GCJ], | ||
818 | [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) | ||
819 | m4_ifdef([A][M_PROG_GCJ], | ||
820 | [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) | ||
821 | m4_ifdef([LT_PROG_GCJ], | ||
822 | [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) | ||
823 | |||
824 | AC_PROVIDE_IFELSE([LT_PROG_RC], | ||
825 | [LT_LANG(RC)], | ||
826 | [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) | ||
827 | ])# _LT_LANG_DEFAULT_CONFIG | ||
828 | |||
829 | # Obsolete macros: | ||
830 | AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) | ||
831 | AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) | ||
832 | AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) | ||
833 | AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) | ||
834 | dnl aclocal-1.4 backwards compatibility: | ||
835 | dnl AC_DEFUN([AC_LIBTOOL_CXX], []) | ||
836 | dnl AC_DEFUN([AC_LIBTOOL_F77], []) | ||
837 | dnl AC_DEFUN([AC_LIBTOOL_FC], []) | ||
838 | dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) | ||
839 | |||
840 | |||
841 | # _LT_TAG_COMPILER | ||
842 | # ---------------- | ||
843 | m4_defun([_LT_TAG_COMPILER], | ||
844 | [AC_REQUIRE([AC_PROG_CC])dnl | ||
845 | |||
846 | _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl | ||
847 | _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl | ||
848 | _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl | ||
849 | _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl | ||
850 | |||
851 | # If no C compiler was specified, use CC. | ||
852 | LTCC=${LTCC-"$CC"} | ||
853 | |||
854 | # If no C compiler flags were specified, use CFLAGS. | ||
855 | LTCFLAGS=${LTCFLAGS-"$CFLAGS"} | ||
856 | |||
857 | # Allow CC to be a program name with arguments. | ||
858 | compiler=$CC | ||
859 | ])# _LT_TAG_COMPILER | ||
860 | |||
861 | |||
862 | # _LT_COMPILER_BOILERPLATE | ||
863 | # ------------------------ | ||
864 | # Check for compiler boilerplate output or warnings with | ||
865 | # the simple compiler test code. | ||
866 | m4_defun([_LT_COMPILER_BOILERPLATE], | ||
867 | [m4_require([_LT_DECL_SED])dnl | ||
868 | ac_outfile=conftest.$ac_objext | ||
869 | echo "$lt_simple_compile_test_code" >conftest.$ac_ext | ||
870 | eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err | ||
871 | _lt_compiler_boilerplate=`cat conftest.err` | ||
872 | $RM conftest* | ||
873 | ])# _LT_COMPILER_BOILERPLATE | ||
874 | |||
875 | |||
876 | # _LT_LINKER_BOILERPLATE | ||
877 | # ---------------------- | ||
878 | # Check for linker boilerplate output or warnings with | ||
879 | # the simple link test code. | ||
880 | m4_defun([_LT_LINKER_BOILERPLATE], | ||
881 | [m4_require([_LT_DECL_SED])dnl | ||
882 | ac_outfile=conftest.$ac_objext | ||
883 | echo "$lt_simple_link_test_code" >conftest.$ac_ext | ||
884 | eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err | ||
885 | _lt_linker_boilerplate=`cat conftest.err` | ||
886 | $RM -r conftest* | ||
887 | ])# _LT_LINKER_BOILERPLATE | ||
888 | |||
889 | # _LT_REQUIRED_DARWIN_CHECKS | ||
890 | # ------------------------- | ||
891 | m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ | ||
892 | case $host_os in | ||
893 | rhapsody* | darwin*) | ||
894 | AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) | ||
895 | AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) | ||
896 | AC_CHECK_TOOL([LIPO], [lipo], [:]) | ||
897 | AC_CHECK_TOOL([OTOOL], [otool], [:]) | ||
898 | AC_CHECK_TOOL([OTOOL64], [otool64], [:]) | ||
899 | _LT_DECL([], [DSYMUTIL], [1], | ||
900 | [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) | ||
901 | _LT_DECL([], [NMEDIT], [1], | ||
902 | [Tool to change global to local symbols on Mac OS X]) | ||
903 | _LT_DECL([], [LIPO], [1], | ||
904 | [Tool to manipulate fat objects and archives on Mac OS X]) | ||
905 | _LT_DECL([], [OTOOL], [1], | ||
906 | [ldd/readelf like tool for Mach-O binaries on Mac OS X]) | ||
907 | _LT_DECL([], [OTOOL64], [1], | ||
908 | [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) | ||
909 | |||
910 | AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], | ||
911 | [lt_cv_apple_cc_single_mod=no | ||
912 | if test -z "${LT_MULTI_MODULE}"; then | ||
913 | # By default we will add the -single_module flag. You can override | ||
914 | # by either setting the environment variable LT_MULTI_MODULE | ||
915 | # non-empty at configure time, or by adding -multi_module to the | ||
916 | # link flags. | ||
917 | rm -rf libconftest.dylib* | ||
918 | echo "int foo(void){return 1;}" > conftest.c | ||
919 | echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ | ||
920 | -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD | ||
921 | $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ | ||
922 | -dynamiclib -Wl,-single_module conftest.c 2>conftest.err | ||
923 | _lt_result=$? | ||
924 | if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then | ||
925 | lt_cv_apple_cc_single_mod=yes | ||
926 | else | ||
927 | cat conftest.err >&AS_MESSAGE_LOG_FD | ||
928 | fi | ||
929 | rm -rf libconftest.dylib* | ||
930 | rm -f conftest.* | ||
931 | fi]) | ||
932 | AC_CACHE_CHECK([for -exported_symbols_list linker flag], | ||
933 | [lt_cv_ld_exported_symbols_list], | ||
934 | [lt_cv_ld_exported_symbols_list=no | ||
935 | save_LDFLAGS=$LDFLAGS | ||
936 | echo "_main" > conftest.sym | ||
937 | LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" | ||
938 | AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], | ||
939 | [lt_cv_ld_exported_symbols_list=yes], | ||
940 | [lt_cv_ld_exported_symbols_list=no]) | ||
941 | LDFLAGS="$save_LDFLAGS" | ||
942 | ]) | ||
943 | case $host_os in | ||
944 | rhapsody* | darwin1.[[012]]) | ||
945 | _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; | ||
946 | darwin1.*) | ||
947 | _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; | ||
948 | darwin*) # darwin 5.x on | ||
949 | # if running on 10.5 or later, the deployment target defaults | ||
950 | # to the OS version, if on x86, and 10.4, the deployment | ||
951 | # target defaults to 10.4. Don't you love it? | ||
952 | case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in | ||
953 | 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) | ||
954 | _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; | ||
955 | 10.[[012]]*) | ||
956 | _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; | ||
957 | 10.*) | ||
958 | _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; | ||
959 | esac | ||
960 | ;; | ||
961 | esac | ||
962 | if test "$lt_cv_apple_cc_single_mod" = "yes"; then | ||
963 | _lt_dar_single_mod='$single_module' | ||
964 | fi | ||
965 | if test "$lt_cv_ld_exported_symbols_list" = "yes"; then | ||
966 | _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' | ||
967 | else | ||
968 | _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' | ||
969 | fi | ||
970 | if test "$DSYMUTIL" != ":"; then | ||
971 | _lt_dsymutil='~$DSYMUTIL $lib || :' | ||
972 | else | ||
973 | _lt_dsymutil= | ||
974 | fi | ||
975 | ;; | ||
976 | esac | ||
977 | ]) | ||
978 | |||
979 | |||
980 | # _LT_DARWIN_LINKER_FEATURES | ||
981 | # -------------------------- | ||
982 | # Checks for linker and compiler features on darwin | ||
983 | m4_defun([_LT_DARWIN_LINKER_FEATURES], | ||
984 | [ | ||
985 | m4_require([_LT_REQUIRED_DARWIN_CHECKS]) | ||
986 | _LT_TAGVAR(archive_cmds_need_lc, $1)=no | ||
987 | _LT_TAGVAR(hardcode_direct, $1)=no | ||
988 | _LT_TAGVAR(hardcode_automatic, $1)=yes | ||
989 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported | ||
990 | _LT_TAGVAR(whole_archive_flag_spec, $1)='' | ||
991 | _LT_TAGVAR(link_all_deplibs, $1)=yes | ||
992 | _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" | ||
993 | case $cc_basename in | ||
994 | ifort*) _lt_dar_can_shared=yes ;; | ||
995 | *) _lt_dar_can_shared=$GCC ;; | ||
996 | esac | ||
997 | if test "$_lt_dar_can_shared" = "yes"; then | ||
998 | output_verbose_link_cmd=echo | ||
999 | _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}" | ||
1000 | _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" | ||
1001 | _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}" | ||
1002 | _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" | ||
1003 | m4_if([$1], [CXX], | ||
1004 | [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then | ||
1005 | _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" | ||
1006 | _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" | ||
1007 | fi | ||
1008 | ],[]) | ||
1009 | else | ||
1010 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
1011 | fi | ||
1012 | ]) | ||
1013 | |||
1014 | # _LT_SYS_MODULE_PATH_AIX | ||
1015 | # ----------------------- | ||
1016 | # Links a minimal program and checks the executable | ||
1017 | # for the system default hardcoded library path. In most cases, | ||
1018 | # this is /usr/lib:/lib, but when the MPI compilers are used | ||
1019 | # the location of the communication and MPI libs are included too. | ||
1020 | # If we don't find anything, use the default library path according | ||
1021 | # to the aix ld manual. | ||
1022 | m4_defun([_LT_SYS_MODULE_PATH_AIX], | ||
1023 | [m4_require([_LT_DECL_SED])dnl | ||
1024 | AC_LINK_IFELSE(AC_LANG_PROGRAM,[ | ||
1025 | lt_aix_libpath_sed=' | ||
1026 | /Import File Strings/,/^$/ { | ||
1027 | /^0/ { | ||
1028 | s/^0 *\(.*\)$/\1/ | ||
1029 | p | ||
1030 | } | ||
1031 | }' | ||
1032 | aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | ||
1033 | # Check for a 64-bit object if we didn't find anything. | ||
1034 | if test -z "$aix_libpath"; then | ||
1035 | aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | ||
1036 | fi],[]) | ||
1037 | if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi | ||
1038 | ])# _LT_SYS_MODULE_PATH_AIX | ||
1039 | |||
1040 | |||
1041 | # _LT_SHELL_INIT(ARG) | ||
1042 | # ------------------- | ||
1043 | m4_define([_LT_SHELL_INIT], | ||
1044 | [ifdef([AC_DIVERSION_NOTICE], | ||
1045 | [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], | ||
1046 | [AC_DIVERT_PUSH(NOTICE)]) | ||
1047 | $1 | ||
1048 | AC_DIVERT_POP | ||
1049 | ])# _LT_SHELL_INIT | ||
1050 | |||
1051 | |||
1052 | # _LT_PROG_ECHO_BACKSLASH | ||
1053 | # ----------------------- | ||
1054 | # Add some code to the start of the generated configure script which | ||
1055 | # will find an echo command which doesn't interpret backslashes. | ||
1056 | m4_defun([_LT_PROG_ECHO_BACKSLASH], | ||
1057 | [_LT_SHELL_INIT([ | ||
1058 | # Check that we are running under the correct shell. | ||
1059 | SHELL=${CONFIG_SHELL-/bin/sh} | ||
1060 | |||
1061 | case X$lt_ECHO in | ||
1062 | X*--fallback-echo) | ||
1063 | # Remove one level of quotation (which was required for Make). | ||
1064 | ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` | ||
1065 | ;; | ||
1066 | esac | ||
1067 | |||
1068 | ECHO=${lt_ECHO-echo} | ||
1069 | if test "X[$]1" = X--no-reexec; then | ||
1070 | # Discard the --no-reexec flag, and continue. | ||
1071 | shift | ||
1072 | elif test "X[$]1" = X--fallback-echo; then | ||
1073 | # Avoid inline document here, it may be left over | ||
1074 | : | ||
1075 | elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then | ||
1076 | # Yippee, $ECHO works! | ||
1077 | : | ||
1078 | else | ||
1079 | # Restart under the correct shell. | ||
1080 | exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} | ||
1081 | fi | ||
1082 | |||
1083 | if test "X[$]1" = X--fallback-echo; then | ||
1084 | # used as fallback echo | ||
1085 | shift | ||
1086 | cat <<_LT_EOF | ||
1087 | [$]* | ||
1088 | _LT_EOF | ||
1089 | exit 0 | ||
1090 | fi | ||
1091 | |||
1092 | # The HP-UX ksh and POSIX shell print the target directory to stdout | ||
1093 | # if CDPATH is set. | ||
1094 | (unset CDPATH) >/dev/null 2>&1 && unset CDPATH | ||
1095 | |||
1096 | if test -z "$lt_ECHO"; then | ||
1097 | if test "X${echo_test_string+set}" != Xset; then | ||
1098 | # find a string as large as possible, as long as the shell can cope with it | ||
1099 | for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do | ||
1100 | # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... | ||
1101 | if { echo_test_string=`eval $cmd`; } 2>/dev/null && | ||
1102 | { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null | ||
1103 | then | ||
1104 | break | ||
1105 | fi | ||
1106 | done | ||
1107 | fi | ||
1108 | |||
1109 | if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && | ||
1110 | echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && | ||
1111 | test "X$echo_testing_string" = "X$echo_test_string"; then | ||
1112 | : | ||
1113 | else | ||
1114 | # The Solaris, AIX, and Digital Unix default echo programs unquote | ||
1115 | # backslashes. This makes it impossible to quote backslashes using | ||
1116 | # echo "$something" | sed 's/\\/\\\\/g' | ||
1117 | # | ||
1118 | # So, first we look for a working echo in the user's PATH. | ||
1119 | |||
1120 | lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR | ||
1121 | for dir in $PATH /usr/ucb; do | ||
1122 | IFS="$lt_save_ifs" | ||
1123 | if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && | ||
1124 | test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && | ||
1125 | echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && | ||
1126 | test "X$echo_testing_string" = "X$echo_test_string"; then | ||
1127 | ECHO="$dir/echo" | ||
1128 | break | ||
1129 | fi | ||
1130 | done | ||
1131 | IFS="$lt_save_ifs" | ||
1132 | |||
1133 | if test "X$ECHO" = Xecho; then | ||
1134 | # We didn't find a better echo, so look for alternatives. | ||
1135 | if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && | ||
1136 | echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && | ||
1137 | test "X$echo_testing_string" = "X$echo_test_string"; then | ||
1138 | # This shell has a builtin print -r that does the trick. | ||
1139 | ECHO='print -r' | ||
1140 | elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && | ||
1141 | test "X$CONFIG_SHELL" != X/bin/ksh; then | ||
1142 | # If we have ksh, try running configure again with it. | ||
1143 | ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} | ||
1144 | export ORIGINAL_CONFIG_SHELL | ||
1145 | CONFIG_SHELL=/bin/ksh | ||
1146 | export CONFIG_SHELL | ||
1147 | exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} | ||
1148 | else | ||
1149 | # Try using printf. | ||
1150 | ECHO='printf %s\n' | ||
1151 | if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && | ||
1152 | echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && | ||
1153 | test "X$echo_testing_string" = "X$echo_test_string"; then | ||
1154 | # Cool, printf works | ||
1155 | : | ||
1156 | elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && | ||
1157 | test "X$echo_testing_string" = 'X\t' && | ||
1158 | echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && | ||
1159 | test "X$echo_testing_string" = "X$echo_test_string"; then | ||
1160 | CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL | ||
1161 | export CONFIG_SHELL | ||
1162 | SHELL="$CONFIG_SHELL" | ||
1163 | export SHELL | ||
1164 | ECHO="$CONFIG_SHELL [$]0 --fallback-echo" | ||
1165 | elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && | ||
1166 | test "X$echo_testing_string" = 'X\t' && | ||
1167 | echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && | ||
1168 | test "X$echo_testing_string" = "X$echo_test_string"; then | ||
1169 | ECHO="$CONFIG_SHELL [$]0 --fallback-echo" | ||
1170 | else | ||
1171 | # maybe with a smaller string... | ||
1172 | prev=: | ||
1173 | |||
1174 | for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do | ||
1175 | if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null | ||
1176 | then | ||
1177 | break | ||
1178 | fi | ||
1179 | prev="$cmd" | ||
1180 | done | ||
1181 | |||
1182 | if test "$prev" != 'sed 50q "[$]0"'; then | ||
1183 | echo_test_string=`eval $prev` | ||
1184 | export echo_test_string | ||
1185 | exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} | ||
1186 | else | ||
1187 | # Oops. We lost completely, so just stick with echo. | ||
1188 | ECHO=echo | ||
1189 | fi | ||
1190 | fi | ||
1191 | fi | ||
1192 | fi | ||
1193 | fi | ||
1194 | fi | ||
1195 | |||
1196 | # Copy echo and quote the copy suitably for passing to libtool from | ||
1197 | # the Makefile, instead of quoting the original, which is used later. | ||
1198 | lt_ECHO=$ECHO | ||
1199 | if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then | ||
1200 | lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" | ||
1201 | fi | ||
1202 | |||
1203 | AC_SUBST(lt_ECHO) | ||
1204 | ]) | ||
1205 | _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) | ||
1206 | _LT_DECL([], [ECHO], [1], | ||
1207 | [An echo program that does not interpret backslashes]) | ||
1208 | ])# _LT_PROG_ECHO_BACKSLASH | ||
1209 | |||
1210 | |||
1211 | # _LT_ENABLE_LOCK | ||
1212 | # --------------- | ||
1213 | m4_defun([_LT_ENABLE_LOCK], | ||
1214 | [AC_ARG_ENABLE([libtool-lock], | ||
1215 | [AS_HELP_STRING([--disable-libtool-lock], | ||
1216 | [avoid locking (might break parallel builds)])]) | ||
1217 | test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes | ||
1218 | |||
1219 | # Some flags need to be propagated to the compiler or linker for good | ||
1220 | # libtool support. | ||
1221 | case $host in | ||
1222 | ia64-*-hpux*) | ||
1223 | # Find out which ABI we are using. | ||
1224 | echo 'int i;' > conftest.$ac_ext | ||
1225 | if AC_TRY_EVAL(ac_compile); then | ||
1226 | case `/usr/bin/file conftest.$ac_objext` in | ||
1227 | *ELF-32*) | ||
1228 | HPUX_IA64_MODE="32" | ||
1229 | ;; | ||
1230 | *ELF-64*) | ||
1231 | HPUX_IA64_MODE="64" | ||
1232 | ;; | ||
1233 | esac | ||
1234 | fi | ||
1235 | rm -rf conftest* | ||
1236 | ;; | ||
1237 | *-*-irix6*) | ||
1238 | # Find out which ABI we are using. | ||
1239 | echo '[#]line __oline__ "configure"' > conftest.$ac_ext | ||
1240 | if AC_TRY_EVAL(ac_compile); then | ||
1241 | if test "$lt_cv_prog_gnu_ld" = yes; then | ||
1242 | case `/usr/bin/file conftest.$ac_objext` in | ||
1243 | *32-bit*) | ||
1244 | LD="${LD-ld} -melf32bsmip" | ||
1245 | ;; | ||
1246 | *N32*) | ||
1247 | LD="${LD-ld} -melf32bmipn32" | ||
1248 | ;; | ||
1249 | *64-bit*) | ||
1250 | LD="${LD-ld} -melf64bmip" | ||
1251 | ;; | ||
1252 | esac | ||
1253 | else | ||
1254 | case `/usr/bin/file conftest.$ac_objext` in | ||
1255 | *32-bit*) | ||
1256 | LD="${LD-ld} -32" | ||
1257 | ;; | ||
1258 | *N32*) | ||
1259 | LD="${LD-ld} -n32" | ||
1260 | ;; | ||
1261 | *64-bit*) | ||
1262 | LD="${LD-ld} -64" | ||
1263 | ;; | ||
1264 | esac | ||
1265 | fi | ||
1266 | fi | ||
1267 | rm -rf conftest* | ||
1268 | ;; | ||
1269 | |||
1270 | x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ | ||
1271 | s390*-*linux*|s390*-*tpf*|sparc*-*linux*) | ||
1272 | # Find out which ABI we are using. | ||
1273 | echo 'int i;' > conftest.$ac_ext | ||
1274 | if AC_TRY_EVAL(ac_compile); then | ||
1275 | case `/usr/bin/file conftest.o` in | ||
1276 | *32-bit*) | ||
1277 | case $host in | ||
1278 | x86_64-*kfreebsd*-gnu) | ||
1279 | LD="${LD-ld} -m elf_i386_fbsd" | ||
1280 | ;; | ||
1281 | x86_64-*linux*) | ||
1282 | LD="${LD-ld} -m elf_i386" | ||
1283 | ;; | ||
1284 | ppc64-*linux*|powerpc64-*linux*) | ||
1285 | LD="${LD-ld} -m elf32ppclinux" | ||
1286 | ;; | ||
1287 | s390x-*linux*) | ||
1288 | LD="${LD-ld} -m elf_s390" | ||
1289 | ;; | ||
1290 | sparc64-*linux*) | ||
1291 | LD="${LD-ld} -m elf32_sparc" | ||
1292 | ;; | ||
1293 | esac | ||
1294 | ;; | ||
1295 | *64-bit*) | ||
1296 | case $host in | ||
1297 | x86_64-*kfreebsd*-gnu) | ||
1298 | LD="${LD-ld} -m elf_x86_64_fbsd" | ||
1299 | ;; | ||
1300 | x86_64-*linux*) | ||
1301 | LD="${LD-ld} -m elf_x86_64" | ||
1302 | ;; | ||
1303 | ppc*-*linux*|powerpc*-*linux*) | ||
1304 | LD="${LD-ld} -m elf64ppc" | ||
1305 | ;; | ||
1306 | s390*-*linux*|s390*-*tpf*) | ||
1307 | LD="${LD-ld} -m elf64_s390" | ||
1308 | ;; | ||
1309 | sparc*-*linux*) | ||
1310 | LD="${LD-ld} -m elf64_sparc" | ||
1311 | ;; | ||
1312 | esac | ||
1313 | ;; | ||
1314 | esac | ||
1315 | fi | ||
1316 | rm -rf conftest* | ||
1317 | ;; | ||
1318 | |||
1319 | *-*-sco3.2v5*) | ||
1320 | # On SCO OpenServer 5, we need -belf to get full-featured binaries. | ||
1321 | SAVE_CFLAGS="$CFLAGS" | ||
1322 | CFLAGS="$CFLAGS -belf" | ||
1323 | AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, | ||
1324 | [AC_LANG_PUSH(C) | ||
1325 | AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) | ||
1326 | AC_LANG_POP]) | ||
1327 | if test x"$lt_cv_cc_needs_belf" != x"yes"; then | ||
1328 | # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf | ||
1329 | CFLAGS="$SAVE_CFLAGS" | ||
1330 | fi | ||
1331 | ;; | ||
1332 | sparc*-*solaris*) | ||
1333 | # Find out which ABI we are using. | ||
1334 | echo 'int i;' > conftest.$ac_ext | ||
1335 | if AC_TRY_EVAL(ac_compile); then | ||
1336 | case `/usr/bin/file conftest.o` in | ||
1337 | *64-bit*) | ||
1338 | case $lt_cv_prog_gnu_ld in | ||
1339 | yes*) LD="${LD-ld} -m elf64_sparc" ;; | ||
1340 | *) | ||
1341 | if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then | ||
1342 | LD="${LD-ld} -64" | ||
1343 | fi | ||
1344 | ;; | ||
1345 | esac | ||
1346 | ;; | ||
1347 | esac | ||
1348 | fi | ||
1349 | rm -rf conftest* | ||
1350 | ;; | ||
1351 | esac | ||
1352 | |||
1353 | need_locks="$enable_libtool_lock" | ||
1354 | ])# _LT_ENABLE_LOCK | ||
1355 | |||
1356 | |||
1357 | # _LT_CMD_OLD_ARCHIVE | ||
1358 | # ------------------- | ||
1359 | m4_defun([_LT_CMD_OLD_ARCHIVE], | ||
1360 | [AC_CHECK_TOOL(AR, ar, false) | ||
1361 | test -z "$AR" && AR=ar | ||
1362 | test -z "$AR_FLAGS" && AR_FLAGS=cru | ||
1363 | _LT_DECL([], [AR], [1], [The archiver]) | ||
1364 | _LT_DECL([], [AR_FLAGS], [1]) | ||
1365 | |||
1366 | AC_CHECK_TOOL(STRIP, strip, :) | ||
1367 | test -z "$STRIP" && STRIP=: | ||
1368 | _LT_DECL([], [STRIP], [1], [A symbol stripping program]) | ||
1369 | |||
1370 | AC_CHECK_TOOL(RANLIB, ranlib, :) | ||
1371 | test -z "$RANLIB" && RANLIB=: | ||
1372 | _LT_DECL([], [RANLIB], [1], | ||
1373 | [Commands used to install an old-style archive]) | ||
1374 | |||
1375 | # Determine commands to create old-style static archives. | ||
1376 | old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' | ||
1377 | old_postinstall_cmds='chmod 644 $oldlib' | ||
1378 | old_postuninstall_cmds= | ||
1379 | |||
1380 | if test -n "$RANLIB"; then | ||
1381 | case $host_os in | ||
1382 | openbsd*) | ||
1383 | old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" | ||
1384 | ;; | ||
1385 | *) | ||
1386 | old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" | ||
1387 | ;; | ||
1388 | esac | ||
1389 | old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" | ||
1390 | fi | ||
1391 | _LT_DECL([], [old_postinstall_cmds], [2]) | ||
1392 | _LT_DECL([], [old_postuninstall_cmds], [2]) | ||
1393 | _LT_TAGDECL([], [old_archive_cmds], [2], | ||
1394 | [Commands used to build an old-style archive]) | ||
1395 | ])# _LT_CMD_OLD_ARCHIVE | ||
1396 | |||
1397 | |||
1398 | # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, | ||
1399 | # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) | ||
1400 | # ---------------------------------------------------------------- | ||
1401 | # Check whether the given compiler option works | ||
1402 | AC_DEFUN([_LT_COMPILER_OPTION], | ||
1403 | [m4_require([_LT_FILEUTILS_DEFAULTS])dnl | ||
1404 | m4_require([_LT_DECL_SED])dnl | ||
1405 | AC_CACHE_CHECK([$1], [$2], | ||
1406 | [$2=no | ||
1407 | m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) | ||
1408 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | ||
1409 | lt_compiler_flag="$3" | ||
1410 | # Insert the option either (1) after the last *FLAGS variable, or | ||
1411 | # (2) before a word containing "conftest.", or (3) at the end. | ||
1412 | # Note that $ac_compile itself does not contain backslashes and begins | ||
1413 | # with a dollar sign (not a hyphen), so the echo should work correctly. | ||
1414 | # The option is referenced via a variable to avoid confusing sed. | ||
1415 | lt_compile=`echo "$ac_compile" | $SED \ | ||
1416 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ | ||
1417 | -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ | ||
1418 | -e 's:$: $lt_compiler_flag:'` | ||
1419 | (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) | ||
1420 | (eval "$lt_compile" 2>conftest.err) | ||
1421 | ac_status=$? | ||
1422 | cat conftest.err >&AS_MESSAGE_LOG_FD | ||
1423 | echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD | ||
1424 | if (exit $ac_status) && test -s "$ac_outfile"; then | ||
1425 | # The compiler can only warn and ignore the option if not recognized | ||
1426 | # So say no if there are warnings other than the usual output. | ||
1427 | $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp | ||
1428 | $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 | ||
1429 | if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then | ||
1430 | $2=yes | ||
1431 | fi | ||
1432 | fi | ||
1433 | $RM conftest* | ||
1434 | ]) | ||
1435 | |||
1436 | if test x"[$]$2" = xyes; then | ||
1437 | m4_if([$5], , :, [$5]) | ||
1438 | else | ||
1439 | m4_if([$6], , :, [$6]) | ||
1440 | fi | ||
1441 | ])# _LT_COMPILER_OPTION | ||
1442 | |||
1443 | # Old name: | ||
1444 | AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) | ||
1445 | dnl aclocal-1.4 backwards compatibility: | ||
1446 | dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) | ||
1447 | |||
1448 | |||
1449 | # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, | ||
1450 | # [ACTION-SUCCESS], [ACTION-FAILURE]) | ||
1451 | # ---------------------------------------------------- | ||
1452 | # Check whether the given linker option works | ||
1453 | AC_DEFUN([_LT_LINKER_OPTION], | ||
1454 | [m4_require([_LT_FILEUTILS_DEFAULTS])dnl | ||
1455 | m4_require([_LT_DECL_SED])dnl | ||
1456 | AC_CACHE_CHECK([$1], [$2], | ||
1457 | [$2=no | ||
1458 | save_LDFLAGS="$LDFLAGS" | ||
1459 | LDFLAGS="$LDFLAGS $3" | ||
1460 | echo "$lt_simple_link_test_code" > conftest.$ac_ext | ||
1461 | if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then | ||
1462 | # The linker can only warn and ignore the option if not recognized | ||
1463 | # So say no if there are warnings | ||
1464 | if test -s conftest.err; then | ||
1465 | # Append any errors to the config.log. | ||
1466 | cat conftest.err 1>&AS_MESSAGE_LOG_FD | ||
1467 | $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp | ||
1468 | $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 | ||
1469 | if diff conftest.exp conftest.er2 >/dev/null; then | ||
1470 | $2=yes | ||
1471 | fi | ||
1472 | else | ||
1473 | $2=yes | ||
1474 | fi | ||
1475 | fi | ||
1476 | $RM -r conftest* | ||
1477 | LDFLAGS="$save_LDFLAGS" | ||
1478 | ]) | ||
1479 | |||
1480 | if test x"[$]$2" = xyes; then | ||
1481 | m4_if([$4], , :, [$4]) | ||
1482 | else | ||
1483 | m4_if([$5], , :, [$5]) | ||
1484 | fi | ||
1485 | ])# _LT_LINKER_OPTION | ||
1486 | |||
1487 | # Old name: | ||
1488 | AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) | ||
1489 | dnl aclocal-1.4 backwards compatibility: | ||
1490 | dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) | ||
1491 | |||
1492 | |||
1493 | # LT_CMD_MAX_LEN | ||
1494 | #--------------- | ||
1495 | AC_DEFUN([LT_CMD_MAX_LEN], | ||
1496 | [AC_REQUIRE([AC_CANONICAL_HOST])dnl | ||
1497 | # find the maximum length of command line arguments | ||
1498 | AC_MSG_CHECKING([the maximum length of command line arguments]) | ||
1499 | AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl | ||
1500 | i=0 | ||
1501 | teststring="ABCD" | ||
1502 | |||
1503 | case $build_os in | ||
1504 | msdosdjgpp*) | ||
1505 | # On DJGPP, this test can blow up pretty badly due to problems in libc | ||
1506 | # (any single argument exceeding 2000 bytes causes a buffer overrun | ||
1507 | # during glob expansion). Even if it were fixed, the result of this | ||
1508 | # check would be larger than it should be. | ||
1509 | lt_cv_sys_max_cmd_len=12288; # 12K is about right | ||
1510 | ;; | ||
1511 | |||
1512 | gnu*) | ||
1513 | # Under GNU Hurd, this test is not required because there is | ||
1514 | # no limit to the length of command line arguments. | ||
1515 | # Libtool will interpret -1 as no limit whatsoever | ||
1516 | lt_cv_sys_max_cmd_len=-1; | ||
1517 | ;; | ||
1518 | |||
1519 | cygwin* | mingw* | cegcc*) | ||
1520 | # On Win9x/ME, this test blows up -- it succeeds, but takes | ||
1521 | # about 5 minutes as the teststring grows exponentially. | ||
1522 | # Worse, since 9x/ME are not pre-emptively multitasking, | ||
1523 | # you end up with a "frozen" computer, even though with patience | ||
1524 | # the test eventually succeeds (with a max line length of 256k). | ||
1525 | # Instead, let's just punt: use the minimum linelength reported by | ||
1526 | # all of the supported platforms: 8192 (on NT/2K/XP). | ||
1527 | lt_cv_sys_max_cmd_len=8192; | ||
1528 | ;; | ||
1529 | |||
1530 | amigaos*) | ||
1531 | # On AmigaOS with pdksh, this test takes hours, literally. | ||
1532 | # So we just punt and use a minimum line length of 8192. | ||
1533 | lt_cv_sys_max_cmd_len=8192; | ||
1534 | ;; | ||
1535 | |||
1536 | netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) | ||
1537 | # This has been around since 386BSD, at least. Likely further. | ||
1538 | if test -x /sbin/sysctl; then | ||
1539 | lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` | ||
1540 | elif test -x /usr/sbin/sysctl; then | ||
1541 | lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` | ||
1542 | else | ||
1543 | lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs | ||
1544 | fi | ||
1545 | # And add a safety zone | ||
1546 | lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` | ||
1547 | lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` | ||
1548 | ;; | ||
1549 | |||
1550 | interix*) | ||
1551 | # We know the value 262144 and hardcode it with a safety zone (like BSD) | ||
1552 | lt_cv_sys_max_cmd_len=196608 | ||
1553 | ;; | ||
1554 | |||
1555 | osf*) | ||
1556 | # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure | ||
1557 | # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not | ||
1558 | # nice to cause kernel panics so lets avoid the loop below. | ||
1559 | # First set a reasonable default. | ||
1560 | lt_cv_sys_max_cmd_len=16384 | ||
1561 | # | ||
1562 | if test -x /sbin/sysconfig; then | ||
1563 | case `/sbin/sysconfig -q proc exec_disable_arg_limit` in | ||
1564 | *1*) lt_cv_sys_max_cmd_len=-1 ;; | ||
1565 | esac | ||
1566 | fi | ||
1567 | ;; | ||
1568 | sco3.2v5*) | ||
1569 | lt_cv_sys_max_cmd_len=102400 | ||
1570 | ;; | ||
1571 | sysv5* | sco5v6* | sysv4.2uw2*) | ||
1572 | kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` | ||
1573 | if test -n "$kargmax"; then | ||
1574 | lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` | ||
1575 | else | ||
1576 | lt_cv_sys_max_cmd_len=32768 | ||
1577 | fi | ||
1578 | ;; | ||
1579 | *) | ||
1580 | lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` | ||
1581 | if test -n "$lt_cv_sys_max_cmd_len"; then | ||
1582 | lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` | ||
1583 | lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` | ||
1584 | else | ||
1585 | # Make teststring a little bigger before we do anything with it. | ||
1586 | # a 1K string should be a reasonable start. | ||
1587 | for i in 1 2 3 4 5 6 7 8 ; do | ||
1588 | teststring=$teststring$teststring | ||
1589 | done | ||
1590 | SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} | ||
1591 | # If test is not a shell built-in, we'll probably end up computing a | ||
1592 | # maximum length that is only half of the actual maximum length, but | ||
1593 | # we can't tell. | ||
1594 | while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ | ||
1595 | = "XX$teststring$teststring"; } >/dev/null 2>&1 && | ||
1596 | test $i != 17 # 1/2 MB should be enough | ||
1597 | do | ||
1598 | i=`expr $i + 1` | ||
1599 | teststring=$teststring$teststring | ||
1600 | done | ||
1601 | # Only check the string length outside the loop. | ||
1602 | lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` | ||
1603 | teststring= | ||
1604 | # Add a significant safety factor because C++ compilers can tack on | ||
1605 | # massive amounts of additional arguments before passing them to the | ||
1606 | # linker. It appears as though 1/2 is a usable value. | ||
1607 | lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` | ||
1608 | fi | ||
1609 | ;; | ||
1610 | esac | ||
1611 | ]) | ||
1612 | if test -n $lt_cv_sys_max_cmd_len ; then | ||
1613 | AC_MSG_RESULT($lt_cv_sys_max_cmd_len) | ||
1614 | else | ||
1615 | AC_MSG_RESULT(none) | ||
1616 | fi | ||
1617 | max_cmd_len=$lt_cv_sys_max_cmd_len | ||
1618 | _LT_DECL([], [max_cmd_len], [0], | ||
1619 | [What is the maximum length of a command?]) | ||
1620 | ])# LT_CMD_MAX_LEN | ||
1621 | |||
1622 | # Old name: | ||
1623 | AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) | ||
1624 | dnl aclocal-1.4 backwards compatibility: | ||
1625 | dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) | ||
1626 | |||
1627 | |||
1628 | # _LT_HEADER_DLFCN | ||
1629 | # ---------------- | ||
1630 | m4_defun([_LT_HEADER_DLFCN], | ||
1631 | [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl | ||
1632 | ])# _LT_HEADER_DLFCN | ||
1633 | |||
1634 | |||
1635 | # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, | ||
1636 | # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) | ||
1637 | # ---------------------------------------------------------------- | ||
1638 | m4_defun([_LT_TRY_DLOPEN_SELF], | ||
1639 | [m4_require([_LT_HEADER_DLFCN])dnl | ||
1640 | if test "$cross_compiling" = yes; then : | ||
1641 | [$4] | ||
1642 | else | ||
1643 | lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 | ||
1644 | lt_status=$lt_dlunknown | ||
1645 | cat > conftest.$ac_ext <<_LT_EOF | ||
1646 | [#line __oline__ "configure" | ||
1647 | #include "confdefs.h" | ||
1648 | |||
1649 | #if HAVE_DLFCN_H | ||
1650 | #include <dlfcn.h> | ||
1651 | #endif | ||
1652 | |||
1653 | #include <stdio.h> | ||
1654 | |||
1655 | #ifdef RTLD_GLOBAL | ||
1656 | # define LT_DLGLOBAL RTLD_GLOBAL | ||
1657 | #else | ||
1658 | # ifdef DL_GLOBAL | ||
1659 | # define LT_DLGLOBAL DL_GLOBAL | ||
1660 | # else | ||
1661 | # define LT_DLGLOBAL 0 | ||
1662 | # endif | ||
1663 | #endif | ||
1664 | |||
1665 | /* We may have to define LT_DLLAZY_OR_NOW in the command line if we | ||
1666 | find out it does not work in some platform. */ | ||
1667 | #ifndef LT_DLLAZY_OR_NOW | ||
1668 | # ifdef RTLD_LAZY | ||
1669 | # define LT_DLLAZY_OR_NOW RTLD_LAZY | ||
1670 | # else | ||
1671 | # ifdef DL_LAZY | ||
1672 | # define LT_DLLAZY_OR_NOW DL_LAZY | ||
1673 | # else | ||
1674 | # ifdef RTLD_NOW | ||
1675 | # define LT_DLLAZY_OR_NOW RTLD_NOW | ||
1676 | # else | ||
1677 | # ifdef DL_NOW | ||
1678 | # define LT_DLLAZY_OR_NOW DL_NOW | ||
1679 | # else | ||
1680 | # define LT_DLLAZY_OR_NOW 0 | ||
1681 | # endif | ||
1682 | # endif | ||
1683 | # endif | ||
1684 | # endif | ||
1685 | #endif | ||
1686 | |||
1687 | void fnord() { int i=42;} | ||
1688 | int main () | ||
1689 | { | ||
1690 | void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); | ||
1691 | int status = $lt_dlunknown; | ||
1692 | |||
1693 | if (self) | ||
1694 | { | ||
1695 | if (dlsym (self,"fnord")) status = $lt_dlno_uscore; | ||
1696 | else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; | ||
1697 | /* dlclose (self); */ | ||
1698 | } | ||
1699 | else | ||
1700 | puts (dlerror ()); | ||
1701 | |||
1702 | return status; | ||
1703 | }] | ||
1704 | _LT_EOF | ||
1705 | if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then | ||
1706 | (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null | ||
1707 | lt_status=$? | ||
1708 | case x$lt_status in | ||
1709 | x$lt_dlno_uscore) $1 ;; | ||
1710 | x$lt_dlneed_uscore) $2 ;; | ||
1711 | x$lt_dlunknown|x*) $3 ;; | ||
1712 | esac | ||
1713 | else : | ||
1714 | # compilation failed | ||
1715 | $3 | ||
1716 | fi | ||
1717 | fi | ||
1718 | rm -fr conftest* | ||
1719 | ])# _LT_TRY_DLOPEN_SELF | ||
1720 | |||
1721 | |||
1722 | # LT_SYS_DLOPEN_SELF | ||
1723 | # ------------------ | ||
1724 | AC_DEFUN([LT_SYS_DLOPEN_SELF], | ||
1725 | [m4_require([_LT_HEADER_DLFCN])dnl | ||
1726 | if test "x$enable_dlopen" != xyes; then | ||
1727 | enable_dlopen=unknown | ||
1728 | enable_dlopen_self=unknown | ||
1729 | enable_dlopen_self_static=unknown | ||
1730 | else | ||
1731 | lt_cv_dlopen=no | ||
1732 | lt_cv_dlopen_libs= | ||
1733 | |||
1734 | case $host_os in | ||
1735 | beos*) | ||
1736 | lt_cv_dlopen="load_add_on" | ||
1737 | lt_cv_dlopen_libs= | ||
1738 | lt_cv_dlopen_self=yes | ||
1739 | ;; | ||
1740 | |||
1741 | mingw* | pw32* | cegcc*) | ||
1742 | lt_cv_dlopen="LoadLibrary" | ||
1743 | lt_cv_dlopen_libs= | ||
1744 | ;; | ||
1745 | |||
1746 | cygwin*) | ||
1747 | lt_cv_dlopen="dlopen" | ||
1748 | lt_cv_dlopen_libs= | ||
1749 | ;; | ||
1750 | |||
1751 | darwin*) | ||
1752 | # if libdl is installed we need to link against it | ||
1753 | AC_CHECK_LIB([dl], [dlopen], | ||
1754 | [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ | ||
1755 | lt_cv_dlopen="dyld" | ||
1756 | lt_cv_dlopen_libs= | ||
1757 | lt_cv_dlopen_self=yes | ||
1758 | ]) | ||
1759 | ;; | ||
1760 | |||
1761 | *) | ||
1762 | AC_CHECK_FUNC([shl_load], | ||
1763 | [lt_cv_dlopen="shl_load"], | ||
1764 | [AC_CHECK_LIB([dld], [shl_load], | ||
1765 | [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], | ||
1766 | [AC_CHECK_FUNC([dlopen], | ||
1767 | [lt_cv_dlopen="dlopen"], | ||
1768 | [AC_CHECK_LIB([dl], [dlopen], | ||
1769 | [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], | ||
1770 | [AC_CHECK_LIB([svld], [dlopen], | ||
1771 | [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], | ||
1772 | [AC_CHECK_LIB([dld], [dld_link], | ||
1773 | [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) | ||
1774 | ]) | ||
1775 | ]) | ||
1776 | ]) | ||
1777 | ]) | ||
1778 | ]) | ||
1779 | ;; | ||
1780 | esac | ||
1781 | |||
1782 | if test "x$lt_cv_dlopen" != xno; then | ||
1783 | enable_dlopen=yes | ||
1784 | else | ||
1785 | enable_dlopen=no | ||
1786 | fi | ||
1787 | |||
1788 | case $lt_cv_dlopen in | ||
1789 | dlopen) | ||
1790 | save_CPPFLAGS="$CPPFLAGS" | ||
1791 | test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" | ||
1792 | |||
1793 | save_LDFLAGS="$LDFLAGS" | ||
1794 | wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" | ||
1795 | |||
1796 | save_LIBS="$LIBS" | ||
1797 | LIBS="$lt_cv_dlopen_libs $LIBS" | ||
1798 | |||
1799 | AC_CACHE_CHECK([whether a program can dlopen itself], | ||
1800 | lt_cv_dlopen_self, [dnl | ||
1801 | _LT_TRY_DLOPEN_SELF( | ||
1802 | lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, | ||
1803 | lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) | ||
1804 | ]) | ||
1805 | |||
1806 | if test "x$lt_cv_dlopen_self" = xyes; then | ||
1807 | wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" | ||
1808 | AC_CACHE_CHECK([whether a statically linked program can dlopen itself], | ||
1809 | lt_cv_dlopen_self_static, [dnl | ||
1810 | _LT_TRY_DLOPEN_SELF( | ||
1811 | lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, | ||
1812 | lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) | ||
1813 | ]) | ||
1814 | fi | ||
1815 | |||
1816 | CPPFLAGS="$save_CPPFLAGS" | ||
1817 | LDFLAGS="$save_LDFLAGS" | ||
1818 | LIBS="$save_LIBS" | ||
1819 | ;; | ||
1820 | esac | ||
1821 | |||
1822 | case $lt_cv_dlopen_self in | ||
1823 | yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; | ||
1824 | *) enable_dlopen_self=unknown ;; | ||
1825 | esac | ||
1826 | |||
1827 | case $lt_cv_dlopen_self_static in | ||
1828 | yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; | ||
1829 | *) enable_dlopen_self_static=unknown ;; | ||
1830 | esac | ||
1831 | fi | ||
1832 | _LT_DECL([dlopen_support], [enable_dlopen], [0], | ||
1833 | [Whether dlopen is supported]) | ||
1834 | _LT_DECL([dlopen_self], [enable_dlopen_self], [0], | ||
1835 | [Whether dlopen of programs is supported]) | ||
1836 | _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], | ||
1837 | [Whether dlopen of statically linked programs is supported]) | ||
1838 | ])# LT_SYS_DLOPEN_SELF | ||
1839 | |||
1840 | # Old name: | ||
1841 | AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) | ||
1842 | dnl aclocal-1.4 backwards compatibility: | ||
1843 | dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) | ||
1844 | |||
1845 | |||
1846 | # _LT_COMPILER_C_O([TAGNAME]) | ||
1847 | # --------------------------- | ||
1848 | # Check to see if options -c and -o are simultaneously supported by compiler. | ||
1849 | # This macro does not hard code the compiler like AC_PROG_CC_C_O. | ||
1850 | m4_defun([_LT_COMPILER_C_O], | ||
1851 | [m4_require([_LT_DECL_SED])dnl | ||
1852 | m4_require([_LT_FILEUTILS_DEFAULTS])dnl | ||
1853 | m4_require([_LT_TAG_COMPILER])dnl | ||
1854 | AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], | ||
1855 | [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], | ||
1856 | [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no | ||
1857 | $RM -r conftest 2>/dev/null | ||
1858 | mkdir conftest | ||
1859 | cd conftest | ||
1860 | mkdir out | ||
1861 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | ||
1862 | |||
1863 | lt_compiler_flag="-o out/conftest2.$ac_objext" | ||
1864 | # Insert the option either (1) after the last *FLAGS variable, or | ||
1865 | # (2) before a word containing "conftest.", or (3) at the end. | ||
1866 | # Note that $ac_compile itself does not contain backslashes and begins | ||
1867 | # with a dollar sign (not a hyphen), so the echo should work correctly. | ||
1868 | lt_compile=`echo "$ac_compile" | $SED \ | ||
1869 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ | ||
1870 | -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ | ||
1871 | -e 's:$: $lt_compiler_flag:'` | ||
1872 | (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) | ||
1873 | (eval "$lt_compile" 2>out/conftest.err) | ||
1874 | ac_status=$? | ||
1875 | cat out/conftest.err >&AS_MESSAGE_LOG_FD | ||
1876 | echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD | ||
1877 | if (exit $ac_status) && test -s out/conftest2.$ac_objext | ||
1878 | then | ||
1879 | # The compiler can only warn and ignore the option if not recognized | ||
1880 | # So say no if there are warnings | ||
1881 | $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp | ||
1882 | $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 | ||
1883 | if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then | ||
1884 | _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes | ||
1885 | fi | ||
1886 | fi | ||
1887 | chmod u+w . 2>&AS_MESSAGE_LOG_FD | ||
1888 | $RM conftest* | ||
1889 | # SGI C++ compiler will create directory out/ii_files/ for | ||
1890 | # template instantiation | ||
1891 | test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files | ||
1892 | $RM out/* && rmdir out | ||
1893 | cd .. | ||
1894 | $RM -r conftest | ||
1895 | $RM conftest* | ||
1896 | ]) | ||
1897 | _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], | ||
1898 | [Does compiler simultaneously support -c and -o options?]) | ||
1899 | ])# _LT_COMPILER_C_O | ||
1900 | |||
1901 | |||
1902 | # _LT_COMPILER_FILE_LOCKS([TAGNAME]) | ||
1903 | # ---------------------------------- | ||
1904 | # Check to see if we can do hard links to lock some files if needed | ||
1905 | m4_defun([_LT_COMPILER_FILE_LOCKS], | ||
1906 | [m4_require([_LT_ENABLE_LOCK])dnl | ||
1907 | m4_require([_LT_FILEUTILS_DEFAULTS])dnl | ||
1908 | _LT_COMPILER_C_O([$1]) | ||
1909 | |||
1910 | hard_links="nottested" | ||
1911 | if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then | ||
1912 | # do not overwrite the value of need_locks provided by the user | ||
1913 | AC_MSG_CHECKING([if we can lock with hard links]) | ||
1914 | hard_links=yes | ||
1915 | $RM conftest* | ||
1916 | ln conftest.a conftest.b 2>/dev/null && hard_links=no | ||
1917 | touch conftest.a | ||
1918 | ln conftest.a conftest.b 2>&5 || hard_links=no | ||
1919 | ln conftest.a conftest.b 2>/dev/null && hard_links=no | ||
1920 | AC_MSG_RESULT([$hard_links]) | ||
1921 | if test "$hard_links" = no; then | ||
1922 | AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) | ||
1923 | need_locks=warn | ||
1924 | fi | ||
1925 | else | ||
1926 | need_locks=no | ||
1927 | fi | ||
1928 | _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) | ||
1929 | ])# _LT_COMPILER_FILE_LOCKS | ||
1930 | |||
1931 | |||
1932 | # _LT_CHECK_OBJDIR | ||
1933 | # ---------------- | ||
1934 | m4_defun([_LT_CHECK_OBJDIR], | ||
1935 | [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], | ||
1936 | [rm -f .libs 2>/dev/null | ||
1937 | mkdir .libs 2>/dev/null | ||
1938 | if test -d .libs; then | ||
1939 | lt_cv_objdir=.libs | ||
1940 | else | ||
1941 | # MS-DOS does not allow filenames that begin with a dot. | ||
1942 | lt_cv_objdir=_libs | ||
1943 | fi | ||
1944 | rmdir .libs 2>/dev/null]) | ||
1945 | objdir=$lt_cv_objdir | ||
1946 | _LT_DECL([], [objdir], [0], | ||
1947 | [The name of the directory that contains temporary libtool files])dnl | ||
1948 | m4_pattern_allow([LT_OBJDIR])dnl | ||
1949 | AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", | ||
1950 | [Define to the sub-directory in which libtool stores uninstalled libraries.]) | ||
1951 | ])# _LT_CHECK_OBJDIR | ||
1952 | |||
1953 | |||
1954 | # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) | ||
1955 | # -------------------------------------- | ||
1956 | # Check hardcoding attributes. | ||
1957 | m4_defun([_LT_LINKER_HARDCODE_LIBPATH], | ||
1958 | [AC_MSG_CHECKING([how to hardcode library paths into programs]) | ||
1959 | _LT_TAGVAR(hardcode_action, $1)= | ||
1960 | if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || | ||
1961 | test -n "$_LT_TAGVAR(runpath_var, $1)" || | ||
1962 | test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then | ||
1963 | |||
1964 | # We can hardcode non-existent directories. | ||
1965 | if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && | ||
1966 | # If the only mechanism to avoid hardcoding is shlibpath_var, we | ||
1967 | # have to relink, otherwise we might link with an installed library | ||
1968 | # when we should be linking with a yet-to-be-installed one | ||
1969 | ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && | ||
1970 | test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then | ||
1971 | # Linking always hardcodes the temporary library directory. | ||
1972 | _LT_TAGVAR(hardcode_action, $1)=relink | ||
1973 | else | ||
1974 | # We can link without hardcoding, and we can hardcode nonexisting dirs. | ||
1975 | _LT_TAGVAR(hardcode_action, $1)=immediate | ||
1976 | fi | ||
1977 | else | ||
1978 | # We cannot hardcode anything, or else we can only hardcode existing | ||
1979 | # directories. | ||
1980 | _LT_TAGVAR(hardcode_action, $1)=unsupported | ||
1981 | fi | ||
1982 | AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) | ||
1983 | |||
1984 | if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || | ||
1985 | test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then | ||
1986 | # Fast installation is not supported | ||
1987 | enable_fast_install=no | ||
1988 | elif test "$shlibpath_overrides_runpath" = yes || | ||
1989 | test "$enable_shared" = no; then | ||
1990 | # Fast installation is not necessary | ||
1991 | enable_fast_install=needless | ||
1992 | fi | ||
1993 | _LT_TAGDECL([], [hardcode_action], [0], | ||
1994 | [How to hardcode a shared library path into an executable]) | ||
1995 | ])# _LT_LINKER_HARDCODE_LIBPATH | ||
1996 | |||
1997 | |||
1998 | # _LT_CMD_STRIPLIB | ||
1999 | # ---------------- | ||
2000 | m4_defun([_LT_CMD_STRIPLIB], | ||
2001 | [m4_require([_LT_DECL_EGREP]) | ||
2002 | striplib= | ||
2003 | old_striplib= | ||
2004 | AC_MSG_CHECKING([whether stripping libraries is possible]) | ||
2005 | if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then | ||
2006 | test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" | ||
2007 | test -z "$striplib" && striplib="$STRIP --strip-unneeded" | ||
2008 | AC_MSG_RESULT([yes]) | ||
2009 | else | ||
2010 | # FIXME - insert some real tests, host_os isn't really good enough | ||
2011 | case $host_os in | ||
2012 | darwin*) | ||
2013 | if test -n "$STRIP" ; then | ||
2014 | striplib="$STRIP -x" | ||
2015 | old_striplib="$STRIP -S" | ||
2016 | AC_MSG_RESULT([yes]) | ||
2017 | else | ||
2018 | AC_MSG_RESULT([no]) | ||
2019 | fi | ||
2020 | ;; | ||
2021 | *) | ||
2022 | AC_MSG_RESULT([no]) | ||
2023 | ;; | ||
2024 | esac | ||
2025 | fi | ||
2026 | _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) | ||
2027 | _LT_DECL([], [striplib], [1]) | ||
2028 | ])# _LT_CMD_STRIPLIB | ||
2029 | |||
2030 | |||
2031 | # _LT_SYS_DYNAMIC_LINKER([TAG]) | ||
2032 | # ----------------------------- | ||
2033 | # PORTME Fill in your ld.so characteristics | ||
2034 | m4_defun([_LT_SYS_DYNAMIC_LINKER], | ||
2035 | [AC_REQUIRE([AC_CANONICAL_HOST])dnl | ||
2036 | m4_require([_LT_DECL_EGREP])dnl | ||
2037 | m4_require([_LT_FILEUTILS_DEFAULTS])dnl | ||
2038 | m4_require([_LT_DECL_OBJDUMP])dnl | ||
2039 | m4_require([_LT_DECL_SED])dnl | ||
2040 | AC_MSG_CHECKING([dynamic linker characteristics]) | ||
2041 | m4_if([$1], | ||
2042 | [], [ | ||
2043 | if test "$GCC" = yes; then | ||
2044 | case $host_os in | ||
2045 | darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; | ||
2046 | *) lt_awk_arg="/^libraries:/" ;; | ||
2047 | esac | ||
2048 | lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` | ||
2049 | if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then | ||
2050 | # if the path contains ";" then we assume it to be the separator | ||
2051 | # otherwise default to the standard path separator (i.e. ":") - it is | ||
2052 | # assumed that no part of a normal pathname contains ";" but that should | ||
2053 | # okay in the real world where ";" in dirpaths is itself problematic. | ||
2054 | lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` | ||
2055 | else | ||
2056 | lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` | ||
2057 | fi | ||
2058 | # Ok, now we have the path, separated by spaces, we can step through it | ||
2059 | # and add multilib dir if necessary. | ||
2060 | lt_tmp_lt_search_path_spec= | ||
2061 | lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` | ||
2062 | for lt_sys_path in $lt_search_path_spec; do | ||
2063 | if test -d "$lt_sys_path/$lt_multi_os_dir"; then | ||
2064 | lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" | ||
2065 | else | ||
2066 | test -d "$lt_sys_path" && \ | ||
2067 | lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" | ||
2068 | fi | ||
2069 | done | ||
2070 | lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' | ||
2071 | BEGIN {RS=" "; FS="/|\n";} { | ||
2072 | lt_foo=""; | ||
2073 | lt_count=0; | ||
2074 | for (lt_i = NF; lt_i > 0; lt_i--) { | ||
2075 | if ($lt_i != "" && $lt_i != ".") { | ||
2076 | if ($lt_i == "..") { | ||
2077 | lt_count++; | ||
2078 | } else { | ||
2079 | if (lt_count == 0) { | ||
2080 | lt_foo="/" $lt_i lt_foo; | ||
2081 | } else { | ||
2082 | lt_count--; | ||
2083 | } | ||
2084 | } | ||
2085 | } | ||
2086 | } | ||
2087 | if (lt_foo != "") { lt_freq[[lt_foo]]++; } | ||
2088 | if (lt_freq[[lt_foo]] == 1) { print lt_foo; } | ||
2089 | }'` | ||
2090 | sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` | ||
2091 | else | ||
2092 | sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" | ||
2093 | fi]) | ||
2094 | library_names_spec= | ||
2095 | libname_spec='lib$name' | ||
2096 | soname_spec= | ||
2097 | shrext_cmds=".so" | ||
2098 | postinstall_cmds= | ||
2099 | postuninstall_cmds= | ||
2100 | finish_cmds= | ||
2101 | finish_eval= | ||
2102 | shlibpath_var= | ||
2103 | shlibpath_overrides_runpath=unknown | ||
2104 | version_type=none | ||
2105 | dynamic_linker="$host_os ld.so" | ||
2106 | sys_lib_dlsearch_path_spec="/lib /usr/lib" | ||
2107 | need_lib_prefix=unknown | ||
2108 | hardcode_into_libs=no | ||
2109 | |||
2110 | # when you set need_version to no, make sure it does not cause -set_version | ||
2111 | # flags to be left without arguments | ||
2112 | need_version=unknown | ||
2113 | |||
2114 | case $host_os in | ||
2115 | aix3*) | ||
2116 | version_type=linux | ||
2117 | library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' | ||
2118 | shlibpath_var=LIBPATH | ||
2119 | |||
2120 | # AIX 3 has no versioning support, so we append a major version to the name. | ||
2121 | soname_spec='${libname}${release}${shared_ext}$major' | ||
2122 | ;; | ||
2123 | |||
2124 | aix[[4-9]]*) | ||
2125 | version_type=linux | ||
2126 | need_lib_prefix=no | ||
2127 | need_version=no | ||
2128 | hardcode_into_libs=yes | ||
2129 | if test "$host_cpu" = ia64; then | ||
2130 | # AIX 5 supports IA64 | ||
2131 | library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' | ||
2132 | shlibpath_var=LD_LIBRARY_PATH | ||
2133 | else | ||
2134 | # With GCC up to 2.95.x, collect2 would create an import file | ||
2135 | # for dependence libraries. The import file would start with | ||
2136 | # the line `#! .'. This would cause the generated library to | ||
2137 | # depend on `.', always an invalid library. This was fixed in | ||
2138 | # development snapshots of GCC prior to 3.0. | ||
2139 | case $host_os in | ||
2140 | aix4 | aix4.[[01]] | aix4.[[01]].*) | ||
2141 | if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' | ||
2142 | echo ' yes ' | ||
2143 | echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then | ||
2144 | : | ||
2145 | else | ||
2146 | can_build_shared=no | ||
2147 | fi | ||
2148 | ;; | ||
2149 | esac | ||
2150 | # AIX (on Power*) has no versioning support, so currently we can not hardcode correct | ||
2151 | # soname into executable. Probably we can add versioning support to | ||
2152 | # collect2, so additional links can be useful in future. | ||
2153 | if test "$aix_use_runtimelinking" = yes; then | ||
2154 | # If using run time linking (on AIX 4.2 or later) use lib<name>.so | ||
2155 | # instead of lib<name>.a to let people know that these are not | ||
2156 | # typical AIX shared libraries. | ||
2157 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
2158 | else | ||
2159 | # We preserve .a as extension for shared libraries through AIX4.2 | ||
2160 | # and later when we are not doing run time linking. | ||
2161 | library_names_spec='${libname}${release}.a $libname.a' | ||
2162 | soname_spec='${libname}${release}${shared_ext}$major' | ||
2163 | fi | ||
2164 | shlibpath_var=LIBPATH | ||
2165 | fi | ||
2166 | ;; | ||
2167 | |||
2168 | amigaos*) | ||
2169 | case $host_cpu in | ||
2170 | powerpc) | ||
2171 | # Since July 2007 AmigaOS4 officially supports .so libraries. | ||
2172 | # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. | ||
2173 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
2174 | ;; | ||
2175 | m68k) | ||
2176 | library_names_spec='$libname.ixlibrary $libname.a' | ||
2177 | # Create ${libname}_ixlibrary.a entries in /sys/libs. | ||
2178 | 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' | ||
2179 | ;; | ||
2180 | esac | ||
2181 | ;; | ||
2182 | |||
2183 | beos*) | ||
2184 | library_names_spec='${libname}${shared_ext}' | ||
2185 | dynamic_linker="$host_os ld.so" | ||
2186 | shlibpath_var=LIBRARY_PATH | ||
2187 | ;; | ||
2188 | |||
2189 | bsdi[[45]]*) | ||
2190 | version_type=linux | ||
2191 | need_version=no | ||
2192 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
2193 | soname_spec='${libname}${release}${shared_ext}$major' | ||
2194 | finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' | ||
2195 | shlibpath_var=LD_LIBRARY_PATH | ||
2196 | sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" | ||
2197 | sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" | ||
2198 | # the default ld.so.conf also contains /usr/contrib/lib and | ||
2199 | # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow | ||
2200 | # libtool to hard-code these into programs | ||
2201 | ;; | ||
2202 | |||
2203 | cygwin* | mingw* | pw32* | cegcc*) | ||
2204 | version_type=windows | ||
2205 | shrext_cmds=".dll" | ||
2206 | need_version=no | ||
2207 | need_lib_prefix=no | ||
2208 | |||
2209 | case $GCC,$host_os in | ||
2210 | yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) | ||
2211 | library_names_spec='$libname.dll.a' | ||
2212 | # DLL is installed to $(libdir)/../bin by postinstall_cmds | ||
2213 | postinstall_cmds='base_file=`basename \${file}`~ | ||
2214 | dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ | ||
2215 | dldir=$destdir/`dirname \$dlpath`~ | ||
2216 | test -d \$dldir || mkdir -p \$dldir~ | ||
2217 | $install_prog $dir/$dlname \$dldir/$dlname~ | ||
2218 | chmod a+x \$dldir/$dlname~ | ||
2219 | if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then | ||
2220 | eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; | ||
2221 | fi' | ||
2222 | postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ | ||
2223 | dlpath=$dir/\$dldll~ | ||
2224 | $RM \$dlpath' | ||
2225 | shlibpath_overrides_runpath=yes | ||
2226 | |||
2227 | case $host_os in | ||
2228 | cygwin*) | ||
2229 | # Cygwin DLLs use 'cyg' prefix rather than 'lib' | ||
2230 | soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' | ||
2231 | sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" | ||
2232 | ;; | ||
2233 | mingw* | cegcc*) | ||
2234 | # MinGW DLLs use traditional 'lib' prefix | ||
2235 | soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' | ||
2236 | sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` | ||
2237 | if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then | ||
2238 | # It is most probably a Windows format PATH printed by | ||
2239 | # mingw gcc, but we are running on Cygwin. Gcc prints its search | ||
2240 | # path with ; separators, and with drive letters. We can handle the | ||
2241 | # drive letters (cygwin fileutils understands them), so leave them, | ||
2242 | # especially as we might pass files found there to a mingw objdump, | ||
2243 | # which wouldn't understand a cygwinified path. Ahh. | ||
2244 | sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` | ||
2245 | else | ||
2246 | sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` | ||
2247 | fi | ||
2248 | ;; | ||
2249 | pw32*) | ||
2250 | # pw32 DLLs use 'pw' prefix rather than 'lib' | ||
2251 | library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' | ||
2252 | ;; | ||
2253 | esac | ||
2254 | ;; | ||
2255 | |||
2256 | *) | ||
2257 | library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' | ||
2258 | ;; | ||
2259 | esac | ||
2260 | dynamic_linker='Win32 ld.exe' | ||
2261 | # FIXME: first we should search . and the directory the executable is in | ||
2262 | shlibpath_var=PATH | ||
2263 | ;; | ||
2264 | |||
2265 | darwin* | rhapsody*) | ||
2266 | dynamic_linker="$host_os dyld" | ||
2267 | version_type=darwin | ||
2268 | need_lib_prefix=no | ||
2269 | need_version=no | ||
2270 | library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' | ||
2271 | soname_spec='${libname}${release}${major}$shared_ext' | ||
2272 | shlibpath_overrides_runpath=yes | ||
2273 | shlibpath_var=DYLD_LIBRARY_PATH | ||
2274 | shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' | ||
2275 | m4_if([$1], [],[ | ||
2276 | sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) | ||
2277 | sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' | ||
2278 | ;; | ||
2279 | |||
2280 | dgux*) | ||
2281 | version_type=linux | ||
2282 | need_lib_prefix=no | ||
2283 | need_version=no | ||
2284 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' | ||
2285 | soname_spec='${libname}${release}${shared_ext}$major' | ||
2286 | shlibpath_var=LD_LIBRARY_PATH | ||
2287 | ;; | ||
2288 | |||
2289 | freebsd1*) | ||
2290 | dynamic_linker=no | ||
2291 | ;; | ||
2292 | |||
2293 | freebsd* | dragonfly*) | ||
2294 | # DragonFly does not have aout. When/if they implement a new | ||
2295 | # versioning mechanism, adjust this. | ||
2296 | if test -x /usr/bin/objformat; then | ||
2297 | objformat=`/usr/bin/objformat` | ||
2298 | else | ||
2299 | case $host_os in | ||
2300 | freebsd[[123]]*) objformat=aout ;; | ||
2301 | *) objformat=elf ;; | ||
2302 | esac | ||
2303 | fi | ||
2304 | version_type=freebsd-$objformat | ||
2305 | case $version_type in | ||
2306 | freebsd-elf*) | ||
2307 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' | ||
2308 | need_version=no | ||
2309 | need_lib_prefix=no | ||
2310 | ;; | ||
2311 | freebsd-*) | ||
2312 | library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' | ||
2313 | need_version=yes | ||
2314 | ;; | ||
2315 | esac | ||
2316 | shlibpath_var=LD_LIBRARY_PATH | ||
2317 | case $host_os in | ||
2318 | freebsd2*) | ||
2319 | shlibpath_overrides_runpath=yes | ||
2320 | ;; | ||
2321 | freebsd3.[[01]]* | freebsdelf3.[[01]]*) | ||
2322 | shlibpath_overrides_runpath=yes | ||
2323 | hardcode_into_libs=yes | ||
2324 | ;; | ||
2325 | freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ | ||
2326 | freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) | ||
2327 | shlibpath_overrides_runpath=no | ||
2328 | hardcode_into_libs=yes | ||
2329 | ;; | ||
2330 | *) # from 4.6 on, and DragonFly | ||
2331 | shlibpath_overrides_runpath=yes | ||
2332 | hardcode_into_libs=yes | ||
2333 | ;; | ||
2334 | esac | ||
2335 | ;; | ||
2336 | |||
2337 | gnu*) | ||
2338 | version_type=linux | ||
2339 | need_lib_prefix=no | ||
2340 | need_version=no | ||
2341 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' | ||
2342 | soname_spec='${libname}${release}${shared_ext}$major' | ||
2343 | shlibpath_var=LD_LIBRARY_PATH | ||
2344 | hardcode_into_libs=yes | ||
2345 | ;; | ||
2346 | |||
2347 | hpux9* | hpux10* | hpux11*) | ||
2348 | # Give a soname corresponding to the major version so that dld.sl refuses to | ||
2349 | # link against other versions. | ||
2350 | version_type=sunos | ||
2351 | need_lib_prefix=no | ||
2352 | need_version=no | ||
2353 | case $host_cpu in | ||
2354 | ia64*) | ||
2355 | shrext_cmds='.so' | ||
2356 | hardcode_into_libs=yes | ||
2357 | dynamic_linker="$host_os dld.so" | ||
2358 | shlibpath_var=LD_LIBRARY_PATH | ||
2359 | shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. | ||
2360 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
2361 | soname_spec='${libname}${release}${shared_ext}$major' | ||
2362 | if test "X$HPUX_IA64_MODE" = X32; then | ||
2363 | sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" | ||
2364 | else | ||
2365 | sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" | ||
2366 | fi | ||
2367 | sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec | ||
2368 | ;; | ||
2369 | hppa*64*) | ||
2370 | shrext_cmds='.sl' | ||
2371 | hardcode_into_libs=yes | ||
2372 | dynamic_linker="$host_os dld.sl" | ||
2373 | shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH | ||
2374 | shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. | ||
2375 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
2376 | soname_spec='${libname}${release}${shared_ext}$major' | ||
2377 | sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" | ||
2378 | sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec | ||
2379 | ;; | ||
2380 | *) | ||
2381 | shrext_cmds='.sl' | ||
2382 | dynamic_linker="$host_os dld.sl" | ||
2383 | shlibpath_var=SHLIB_PATH | ||
2384 | shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH | ||
2385 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
2386 | soname_spec='${libname}${release}${shared_ext}$major' | ||
2387 | ;; | ||
2388 | esac | ||
2389 | # HP-UX runs *really* slowly unless shared libraries are mode 555. | ||
2390 | postinstall_cmds='chmod 555 $lib' | ||
2391 | ;; | ||
2392 | |||
2393 | interix[[3-9]]*) | ||
2394 | version_type=linux | ||
2395 | need_lib_prefix=no | ||
2396 | need_version=no | ||
2397 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' | ||
2398 | soname_spec='${libname}${release}${shared_ext}$major' | ||
2399 | dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' | ||
2400 | shlibpath_var=LD_LIBRARY_PATH | ||
2401 | shlibpath_overrides_runpath=no | ||
2402 | hardcode_into_libs=yes | ||
2403 | ;; | ||
2404 | |||
2405 | irix5* | irix6* | nonstopux*) | ||
2406 | case $host_os in | ||
2407 | nonstopux*) version_type=nonstopux ;; | ||
2408 | *) | ||
2409 | if test "$lt_cv_prog_gnu_ld" = yes; then | ||
2410 | version_type=linux | ||
2411 | else | ||
2412 | version_type=irix | ||
2413 | fi ;; | ||
2414 | esac | ||
2415 | need_lib_prefix=no | ||
2416 | need_version=no | ||
2417 | soname_spec='${libname}${release}${shared_ext}$major' | ||
2418 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' | ||
2419 | case $host_os in | ||
2420 | irix5* | nonstopux*) | ||
2421 | libsuff= shlibsuff= | ||
2422 | ;; | ||
2423 | *) | ||
2424 | case $LD in # libtool.m4 will add one of these switches to LD | ||
2425 | *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") | ||
2426 | libsuff= shlibsuff= libmagic=32-bit;; | ||
2427 | *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") | ||
2428 | libsuff=32 shlibsuff=N32 libmagic=N32;; | ||
2429 | *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") | ||
2430 | libsuff=64 shlibsuff=64 libmagic=64-bit;; | ||
2431 | *) libsuff= shlibsuff= libmagic=never-match;; | ||
2432 | esac | ||
2433 | ;; | ||
2434 | esac | ||
2435 | shlibpath_var=LD_LIBRARY${shlibsuff}_PATH | ||
2436 | shlibpath_overrides_runpath=no | ||
2437 | sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" | ||
2438 | sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" | ||
2439 | hardcode_into_libs=yes | ||
2440 | ;; | ||
2441 | |||
2442 | # No shared lib support for Linux oldld, aout, or coff. | ||
2443 | linux*oldld* | linux*aout* | linux*coff*) | ||
2444 | dynamic_linker=no | ||
2445 | ;; | ||
2446 | |||
2447 | # This must be Linux ELF. | ||
2448 | linux* | k*bsd*-gnu | kopensolaris*-gnu) | ||
2449 | version_type=linux | ||
2450 | need_lib_prefix=no | ||
2451 | need_version=no | ||
2452 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
2453 | soname_spec='${libname}${release}${shared_ext}$major' | ||
2454 | finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' | ||
2455 | shlibpath_var=LD_LIBRARY_PATH | ||
2456 | shlibpath_overrides_runpath=no | ||
2457 | # Some binutils ld are patched to set DT_RUNPATH | ||
2458 | save_LDFLAGS=$LDFLAGS | ||
2459 | save_libdir=$libdir | ||
2460 | eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ | ||
2461 | LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" | ||
2462 | AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], | ||
2463 | [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], | ||
2464 | [shlibpath_overrides_runpath=yes])]) | ||
2465 | LDFLAGS=$save_LDFLAGS | ||
2466 | libdir=$save_libdir | ||
2467 | |||
2468 | # This implies no fast_install, which is unacceptable. | ||
2469 | # Some rework will be needed to allow for fast_install | ||
2470 | # before this can be enabled. | ||
2471 | hardcode_into_libs=yes | ||
2472 | |||
2473 | # Append ld.so.conf contents to the search path | ||
2474 | if test -f /etc/ld.so.conf; then | ||
2475 | 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' ' '` | ||
2476 | sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" | ||
2477 | fi | ||
2478 | |||
2479 | # We used to test for /lib/ld.so.1 and disable shared libraries on | ||
2480 | # powerpc, because MkLinux only supported shared libraries with the | ||
2481 | # GNU dynamic linker. Since this was broken with cross compilers, | ||
2482 | # most powerpc-linux boxes support dynamic linking these days and | ||
2483 | # people can always --disable-shared, the test was removed, and we | ||
2484 | # assume the GNU/Linux dynamic linker is in use. | ||
2485 | dynamic_linker='GNU/Linux ld.so' | ||
2486 | ;; | ||
2487 | |||
2488 | netbsdelf*-gnu) | ||
2489 | version_type=linux | ||
2490 | need_lib_prefix=no | ||
2491 | need_version=no | ||
2492 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' | ||
2493 | soname_spec='${libname}${release}${shared_ext}$major' | ||
2494 | shlibpath_var=LD_LIBRARY_PATH | ||
2495 | shlibpath_overrides_runpath=no | ||
2496 | hardcode_into_libs=yes | ||
2497 | dynamic_linker='NetBSD ld.elf_so' | ||
2498 | ;; | ||
2499 | |||
2500 | netbsd*) | ||
2501 | version_type=sunos | ||
2502 | need_lib_prefix=no | ||
2503 | need_version=no | ||
2504 | if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then | ||
2505 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' | ||
2506 | finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' | ||
2507 | dynamic_linker='NetBSD (a.out) ld.so' | ||
2508 | else | ||
2509 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' | ||
2510 | soname_spec='${libname}${release}${shared_ext}$major' | ||
2511 | dynamic_linker='NetBSD ld.elf_so' | ||
2512 | fi | ||
2513 | shlibpath_var=LD_LIBRARY_PATH | ||
2514 | shlibpath_overrides_runpath=yes | ||
2515 | hardcode_into_libs=yes | ||
2516 | ;; | ||
2517 | |||
2518 | newsos6) | ||
2519 | version_type=linux | ||
2520 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
2521 | shlibpath_var=LD_LIBRARY_PATH | ||
2522 | shlibpath_overrides_runpath=yes | ||
2523 | ;; | ||
2524 | |||
2525 | *nto* | *qnx*) | ||
2526 | version_type=qnx | ||
2527 | need_lib_prefix=no | ||
2528 | need_version=no | ||
2529 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
2530 | soname_spec='${libname}${release}${shared_ext}$major' | ||
2531 | shlibpath_var=LD_LIBRARY_PATH | ||
2532 | shlibpath_overrides_runpath=no | ||
2533 | hardcode_into_libs=yes | ||
2534 | dynamic_linker='ldqnx.so' | ||
2535 | ;; | ||
2536 | |||
2537 | openbsd*) | ||
2538 | version_type=sunos | ||
2539 | sys_lib_dlsearch_path_spec="/usr/lib" | ||
2540 | need_lib_prefix=no | ||
2541 | # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. | ||
2542 | case $host_os in | ||
2543 | openbsd3.3 | openbsd3.3.*) need_version=yes ;; | ||
2544 | *) need_version=no ;; | ||
2545 | esac | ||
2546 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' | ||
2547 | finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' | ||
2548 | shlibpath_var=LD_LIBRARY_PATH | ||
2549 | if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then | ||
2550 | case $host_os in | ||
2551 | openbsd2.[[89]] | openbsd2.[[89]].*) | ||
2552 | shlibpath_overrides_runpath=no | ||
2553 | ;; | ||
2554 | *) | ||
2555 | shlibpath_overrides_runpath=yes | ||
2556 | ;; | ||
2557 | esac | ||
2558 | else | ||
2559 | shlibpath_overrides_runpath=yes | ||
2560 | fi | ||
2561 | ;; | ||
2562 | |||
2563 | os2*) | ||
2564 | libname_spec='$name' | ||
2565 | shrext_cmds=".dll" | ||
2566 | need_lib_prefix=no | ||
2567 | library_names_spec='$libname${shared_ext} $libname.a' | ||
2568 | dynamic_linker='OS/2 ld.exe' | ||
2569 | shlibpath_var=LIBPATH | ||
2570 | ;; | ||
2571 | |||
2572 | osf3* | osf4* | osf5*) | ||
2573 | version_type=osf | ||
2574 | need_lib_prefix=no | ||
2575 | need_version=no | ||
2576 | soname_spec='${libname}${release}${shared_ext}$major' | ||
2577 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
2578 | shlibpath_var=LD_LIBRARY_PATH | ||
2579 | sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" | ||
2580 | sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" | ||
2581 | ;; | ||
2582 | |||
2583 | rdos*) | ||
2584 | dynamic_linker=no | ||
2585 | ;; | ||
2586 | |||
2587 | solaris*) | ||
2588 | version_type=linux | ||
2589 | need_lib_prefix=no | ||
2590 | need_version=no | ||
2591 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
2592 | soname_spec='${libname}${release}${shared_ext}$major' | ||
2593 | shlibpath_var=LD_LIBRARY_PATH | ||
2594 | shlibpath_overrides_runpath=yes | ||
2595 | hardcode_into_libs=yes | ||
2596 | # ldd complains unless libraries are executable | ||
2597 | postinstall_cmds='chmod +x $lib' | ||
2598 | ;; | ||
2599 | |||
2600 | sunos4*) | ||
2601 | version_type=sunos | ||
2602 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' | ||
2603 | finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' | ||
2604 | shlibpath_var=LD_LIBRARY_PATH | ||
2605 | shlibpath_overrides_runpath=yes | ||
2606 | if test "$with_gnu_ld" = yes; then | ||
2607 | need_lib_prefix=no | ||
2608 | fi | ||
2609 | need_version=yes | ||
2610 | ;; | ||
2611 | |||
2612 | sysv4 | sysv4.3*) | ||
2613 | version_type=linux | ||
2614 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
2615 | soname_spec='${libname}${release}${shared_ext}$major' | ||
2616 | shlibpath_var=LD_LIBRARY_PATH | ||
2617 | case $host_vendor in | ||
2618 | sni) | ||
2619 | shlibpath_overrides_runpath=no | ||
2620 | need_lib_prefix=no | ||
2621 | runpath_var=LD_RUN_PATH | ||
2622 | ;; | ||
2623 | siemens) | ||
2624 | need_lib_prefix=no | ||
2625 | ;; | ||
2626 | motorola) | ||
2627 | need_lib_prefix=no | ||
2628 | need_version=no | ||
2629 | shlibpath_overrides_runpath=no | ||
2630 | sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' | ||
2631 | ;; | ||
2632 | esac | ||
2633 | ;; | ||
2634 | |||
2635 | sysv4*MP*) | ||
2636 | if test -d /usr/nec ;then | ||
2637 | version_type=linux | ||
2638 | library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' | ||
2639 | soname_spec='$libname${shared_ext}.$major' | ||
2640 | shlibpath_var=LD_LIBRARY_PATH | ||
2641 | fi | ||
2642 | ;; | ||
2643 | |||
2644 | sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) | ||
2645 | version_type=freebsd-elf | ||
2646 | need_lib_prefix=no | ||
2647 | need_version=no | ||
2648 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' | ||
2649 | soname_spec='${libname}${release}${shared_ext}$major' | ||
2650 | shlibpath_var=LD_LIBRARY_PATH | ||
2651 | shlibpath_overrides_runpath=yes | ||
2652 | hardcode_into_libs=yes | ||
2653 | if test "$with_gnu_ld" = yes; then | ||
2654 | sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' | ||
2655 | else | ||
2656 | sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' | ||
2657 | case $host_os in | ||
2658 | sco3.2v5*) | ||
2659 | sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" | ||
2660 | ;; | ||
2661 | esac | ||
2662 | fi | ||
2663 | sys_lib_dlsearch_path_spec='/usr/lib' | ||
2664 | ;; | ||
2665 | |||
2666 | tpf*) | ||
2667 | # TPF is a cross-target only. Preferred cross-host = GNU/Linux. | ||
2668 | version_type=linux | ||
2669 | need_lib_prefix=no | ||
2670 | need_version=no | ||
2671 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
2672 | shlibpath_var=LD_LIBRARY_PATH | ||
2673 | shlibpath_overrides_runpath=no | ||
2674 | hardcode_into_libs=yes | ||
2675 | ;; | ||
2676 | |||
2677 | uts4*) | ||
2678 | version_type=linux | ||
2679 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' | ||
2680 | soname_spec='${libname}${release}${shared_ext}$major' | ||
2681 | shlibpath_var=LD_LIBRARY_PATH | ||
2682 | ;; | ||
2683 | |||
2684 | *) | ||
2685 | dynamic_linker=no | ||
2686 | ;; | ||
2687 | esac | ||
2688 | AC_MSG_RESULT([$dynamic_linker]) | ||
2689 | test "$dynamic_linker" = no && can_build_shared=no | ||
2690 | |||
2691 | variables_saved_for_relink="PATH $shlibpath_var $runpath_var" | ||
2692 | if test "$GCC" = yes; then | ||
2693 | variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" | ||
2694 | fi | ||
2695 | |||
2696 | if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then | ||
2697 | sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" | ||
2698 | fi | ||
2699 | if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then | ||
2700 | sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" | ||
2701 | fi | ||
2702 | |||
2703 | _LT_DECL([], [variables_saved_for_relink], [1], | ||
2704 | [Variables whose values should be saved in libtool wrapper scripts and | ||
2705 | restored at link time]) | ||
2706 | _LT_DECL([], [need_lib_prefix], [0], | ||
2707 | [Do we need the "lib" prefix for modules?]) | ||
2708 | _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) | ||
2709 | _LT_DECL([], [version_type], [0], [Library versioning type]) | ||
2710 | _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) | ||
2711 | _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) | ||
2712 | _LT_DECL([], [shlibpath_overrides_runpath], [0], | ||
2713 | [Is shlibpath searched before the hard-coded library search path?]) | ||
2714 | _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) | ||
2715 | _LT_DECL([], [library_names_spec], [1], | ||
2716 | [[List of archive names. First name is the real one, the rest are links. | ||
2717 | The last name is the one that the linker finds with -lNAME]]) | ||
2718 | _LT_DECL([], [soname_spec], [1], | ||
2719 | [[The coded name of the library, if different from the real name]]) | ||
2720 | _LT_DECL([], [postinstall_cmds], [2], | ||
2721 | [Command to use after installation of a shared archive]) | ||
2722 | _LT_DECL([], [postuninstall_cmds], [2], | ||
2723 | [Command to use after uninstallation of a shared archive]) | ||
2724 | _LT_DECL([], [finish_cmds], [2], | ||
2725 | [Commands used to finish a libtool library installation in a directory]) | ||
2726 | _LT_DECL([], [finish_eval], [1], | ||
2727 | [[As "finish_cmds", except a single script fragment to be evaled but | ||
2728 | not shown]]) | ||
2729 | _LT_DECL([], [hardcode_into_libs], [0], | ||
2730 | [Whether we should hardcode library paths into libraries]) | ||
2731 | _LT_DECL([], [sys_lib_search_path_spec], [2], | ||
2732 | [Compile-time system search path for libraries]) | ||
2733 | _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], | ||
2734 | [Run-time system search path for libraries]) | ||
2735 | ])# _LT_SYS_DYNAMIC_LINKER | ||
2736 | |||
2737 | |||
2738 | # _LT_PATH_TOOL_PREFIX(TOOL) | ||
2739 | # -------------------------- | ||
2740 | # find a file program which can recognize shared library | ||
2741 | AC_DEFUN([_LT_PATH_TOOL_PREFIX], | ||
2742 | [m4_require([_LT_DECL_EGREP])dnl | ||
2743 | AC_MSG_CHECKING([for $1]) | ||
2744 | AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, | ||
2745 | [case $MAGIC_CMD in | ||
2746 | [[\\/*] | ?:[\\/]*]) | ||
2747 | lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. | ||
2748 | ;; | ||
2749 | *) | ||
2750 | lt_save_MAGIC_CMD="$MAGIC_CMD" | ||
2751 | lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR | ||
2752 | dnl $ac_dummy forces splitting on constant user-supplied paths. | ||
2753 | dnl POSIX.2 word splitting is done only on the output of word expansions, | ||
2754 | dnl not every word. This closes a longstanding sh security hole. | ||
2755 | ac_dummy="m4_if([$2], , $PATH, [$2])" | ||
2756 | for ac_dir in $ac_dummy; do | ||
2757 | IFS="$lt_save_ifs" | ||
2758 | test -z "$ac_dir" && ac_dir=. | ||
2759 | if test -f $ac_dir/$1; then | ||
2760 | lt_cv_path_MAGIC_CMD="$ac_dir/$1" | ||
2761 | if test -n "$file_magic_test_file"; then | ||
2762 | case $deplibs_check_method in | ||
2763 | "file_magic "*) | ||
2764 | file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` | ||
2765 | MAGIC_CMD="$lt_cv_path_MAGIC_CMD" | ||
2766 | if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | | ||
2767 | $EGREP "$file_magic_regex" > /dev/null; then | ||
2768 | : | ||
2769 | else | ||
2770 | cat <<_LT_EOF 1>&2 | ||
2771 | |||
2772 | *** Warning: the command libtool uses to detect shared libraries, | ||
2773 | *** $file_magic_cmd, produces output that libtool cannot recognize. | ||
2774 | *** The result is that libtool may fail to recognize shared libraries | ||
2775 | *** as such. This will affect the creation of libtool libraries that | ||
2776 | *** depend on shared libraries, but programs linked with such libtool | ||
2777 | *** libraries will work regardless of this problem. Nevertheless, you | ||
2778 | *** may want to report the problem to your system manager and/or to | ||
2779 | *** bug-libtool@gnu.org | ||
2780 | |||
2781 | _LT_EOF | ||
2782 | fi ;; | ||
2783 | esac | ||
2784 | fi | ||
2785 | break | ||
2786 | fi | ||
2787 | done | ||
2788 | IFS="$lt_save_ifs" | ||
2789 | MAGIC_CMD="$lt_save_MAGIC_CMD" | ||
2790 | ;; | ||
2791 | esac]) | ||
2792 | MAGIC_CMD="$lt_cv_path_MAGIC_CMD" | ||
2793 | if test -n "$MAGIC_CMD"; then | ||
2794 | AC_MSG_RESULT($MAGIC_CMD) | ||
2795 | else | ||
2796 | AC_MSG_RESULT(no) | ||
2797 | fi | ||
2798 | _LT_DECL([], [MAGIC_CMD], [0], | ||
2799 | [Used to examine libraries when file_magic_cmd begins with "file"])dnl | ||
2800 | ])# _LT_PATH_TOOL_PREFIX | ||
2801 | |||
2802 | # Old name: | ||
2803 | AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) | ||
2804 | dnl aclocal-1.4 backwards compatibility: | ||
2805 | dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) | ||
2806 | |||
2807 | |||
2808 | # _LT_PATH_MAGIC | ||
2809 | # -------------- | ||
2810 | # find a file program which can recognize a shared library | ||
2811 | m4_defun([_LT_PATH_MAGIC], | ||
2812 | [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) | ||
2813 | if test -z "$lt_cv_path_MAGIC_CMD"; then | ||
2814 | if test -n "$ac_tool_prefix"; then | ||
2815 | _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) | ||
2816 | else | ||
2817 | MAGIC_CMD=: | ||
2818 | fi | ||
2819 | fi | ||
2820 | ])# _LT_PATH_MAGIC | ||
2821 | |||
2822 | |||
2823 | # LT_PATH_LD | ||
2824 | # ---------- | ||
2825 | # find the pathname to the GNU or non-GNU linker | ||
2826 | AC_DEFUN([LT_PATH_LD], | ||
2827 | [AC_REQUIRE([AC_PROG_CC])dnl | ||
2828 | AC_REQUIRE([AC_CANONICAL_HOST])dnl | ||
2829 | AC_REQUIRE([AC_CANONICAL_BUILD])dnl | ||
2830 | m4_require([_LT_DECL_SED])dnl | ||
2831 | m4_require([_LT_DECL_EGREP])dnl | ||
2832 | |||
2833 | AC_ARG_WITH([gnu-ld], | ||
2834 | [AS_HELP_STRING([--with-gnu-ld], | ||
2835 | [assume the C compiler uses GNU ld @<:@default=no@:>@])], | ||
2836 | [test "$withval" = no || with_gnu_ld=yes], | ||
2837 | [with_gnu_ld=no])dnl | ||
2838 | |||
2839 | ac_prog=ld | ||
2840 | if test "$GCC" = yes; then | ||
2841 | # Check if gcc -print-prog-name=ld gives a path. | ||
2842 | AC_MSG_CHECKING([for ld used by $CC]) | ||
2843 | case $host in | ||
2844 | *-*-mingw*) | ||
2845 | # gcc leaves a trailing carriage return which upsets mingw | ||
2846 | ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; | ||
2847 | *) | ||
2848 | ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; | ||
2849 | esac | ||
2850 | case $ac_prog in | ||
2851 | # Accept absolute paths. | ||
2852 | [[\\/]]* | ?:[[\\/]]*) | ||
2853 | re_direlt='/[[^/]][[^/]]*/\.\./' | ||
2854 | # Canonicalize the pathname of ld | ||
2855 | ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` | ||
2856 | while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do | ||
2857 | ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` | ||
2858 | done | ||
2859 | test -z "$LD" && LD="$ac_prog" | ||
2860 | ;; | ||
2861 | "") | ||
2862 | # If it fails, then pretend we aren't using GCC. | ||
2863 | ac_prog=ld | ||
2864 | ;; | ||
2865 | *) | ||
2866 | # If it is relative, then search for the first ld in PATH. | ||
2867 | with_gnu_ld=unknown | ||
2868 | ;; | ||
2869 | esac | ||
2870 | elif test "$with_gnu_ld" = yes; then | ||
2871 | AC_MSG_CHECKING([for GNU ld]) | ||
2872 | else | ||
2873 | AC_MSG_CHECKING([for non-GNU ld]) | ||
2874 | fi | ||
2875 | AC_CACHE_VAL(lt_cv_path_LD, | ||
2876 | [if test -z "$LD"; then | ||
2877 | lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR | ||
2878 | for ac_dir in $PATH; do | ||
2879 | IFS="$lt_save_ifs" | ||
2880 | test -z "$ac_dir" && ac_dir=. | ||
2881 | if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then | ||
2882 | lt_cv_path_LD="$ac_dir/$ac_prog" | ||
2883 | # Check to see if the program is GNU ld. I'd rather use --version, | ||
2884 | # but apparently some variants of GNU ld only accept -v. | ||
2885 | # Break only if it was the GNU/non-GNU ld that we prefer. | ||
2886 | case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in | ||
2887 | *GNU* | *'with BFD'*) | ||
2888 | test "$with_gnu_ld" != no && break | ||
2889 | ;; | ||
2890 | *) | ||
2891 | test "$with_gnu_ld" != yes && break | ||
2892 | ;; | ||
2893 | esac | ||
2894 | fi | ||
2895 | done | ||
2896 | IFS="$lt_save_ifs" | ||
2897 | else | ||
2898 | lt_cv_path_LD="$LD" # Let the user override the test with a path. | ||
2899 | fi]) | ||
2900 | LD="$lt_cv_path_LD" | ||
2901 | if test -n "$LD"; then | ||
2902 | AC_MSG_RESULT($LD) | ||
2903 | else | ||
2904 | AC_MSG_RESULT(no) | ||
2905 | fi | ||
2906 | test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) | ||
2907 | _LT_PATH_LD_GNU | ||
2908 | AC_SUBST([LD]) | ||
2909 | |||
2910 | _LT_TAGDECL([], [LD], [1], [The linker used to build libraries]) | ||
2911 | ])# LT_PATH_LD | ||
2912 | |||
2913 | # Old names: | ||
2914 | AU_ALIAS([AM_PROG_LD], [LT_PATH_LD]) | ||
2915 | AU_ALIAS([AC_PROG_LD], [LT_PATH_LD]) | ||
2916 | dnl aclocal-1.4 backwards compatibility: | ||
2917 | dnl AC_DEFUN([AM_PROG_LD], []) | ||
2918 | dnl AC_DEFUN([AC_PROG_LD], []) | ||
2919 | |||
2920 | |||
2921 | # _LT_PATH_LD_GNU | ||
2922 | #- -------------- | ||
2923 | m4_defun([_LT_PATH_LD_GNU], | ||
2924 | [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, | ||
2925 | [# I'd rather use --version here, but apparently some GNU lds only accept -v. | ||
2926 | case `$LD -v 2>&1 </dev/null` in | ||
2927 | *GNU* | *'with BFD'*) | ||
2928 | lt_cv_prog_gnu_ld=yes | ||
2929 | ;; | ||
2930 | *) | ||
2931 | lt_cv_prog_gnu_ld=no | ||
2932 | ;; | ||
2933 | esac]) | ||
2934 | with_gnu_ld=$lt_cv_prog_gnu_ld | ||
2935 | ])# _LT_PATH_LD_GNU | ||
2936 | |||
2937 | |||
2938 | # _LT_CMD_RELOAD | ||
2939 | # -------------- | ||
2940 | # find reload flag for linker | ||
2941 | # -- PORTME Some linkers may need a different reload flag. | ||
2942 | m4_defun([_LT_CMD_RELOAD], | ||
2943 | [AC_CACHE_CHECK([for $LD option to reload object files], | ||
2944 | lt_cv_ld_reload_flag, | ||
2945 | [lt_cv_ld_reload_flag='-r']) | ||
2946 | reload_flag=$lt_cv_ld_reload_flag | ||
2947 | case $reload_flag in | ||
2948 | "" | " "*) ;; | ||
2949 | *) reload_flag=" $reload_flag" ;; | ||
2950 | esac | ||
2951 | reload_cmds='$LD$reload_flag -o $output$reload_objs' | ||
2952 | case $host_os in | ||
2953 | darwin*) | ||
2954 | if test "$GCC" = yes; then | ||
2955 | reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' | ||
2956 | else | ||
2957 | reload_cmds='$LD$reload_flag -o $output$reload_objs' | ||
2958 | fi | ||
2959 | ;; | ||
2960 | esac | ||
2961 | _LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl | ||
2962 | _LT_DECL([], [reload_cmds], [2])dnl | ||
2963 | ])# _LT_CMD_RELOAD | ||
2964 | |||
2965 | |||
2966 | # _LT_CHECK_MAGIC_METHOD | ||
2967 | # ---------------------- | ||
2968 | # how to check for library dependencies | ||
2969 | # -- PORTME fill in with the dynamic library characteristics | ||
2970 | m4_defun([_LT_CHECK_MAGIC_METHOD], | ||
2971 | [m4_require([_LT_DECL_EGREP]) | ||
2972 | m4_require([_LT_DECL_OBJDUMP]) | ||
2973 | AC_CACHE_CHECK([how to recognize dependent libraries], | ||
2974 | lt_cv_deplibs_check_method, | ||
2975 | [lt_cv_file_magic_cmd='$MAGIC_CMD' | ||
2976 | lt_cv_file_magic_test_file= | ||
2977 | lt_cv_deplibs_check_method='unknown' | ||
2978 | # Need to set the preceding variable on all platforms that support | ||
2979 | # interlibrary dependencies. | ||
2980 | # 'none' -- dependencies not supported. | ||
2981 | # `unknown' -- same as none, but documents that we really don't know. | ||
2982 | # 'pass_all' -- all dependencies passed with no checks. | ||
2983 | # 'test_compile' -- check by making test program. | ||
2984 | # 'file_magic [[regex]]' -- check by looking for files in library path | ||
2985 | # which responds to the $file_magic_cmd with a given extended regex. | ||
2986 | # If you have `file' or equivalent on your system and you're not sure | ||
2987 | # whether `pass_all' will *always* work, you probably want this one. | ||
2988 | |||
2989 | case $host_os in | ||
2990 | aix[[4-9]]*) | ||
2991 | lt_cv_deplibs_check_method=pass_all | ||
2992 | ;; | ||
2993 | |||
2994 | beos*) | ||
2995 | lt_cv_deplibs_check_method=pass_all | ||
2996 | ;; | ||
2997 | |||
2998 | bsdi[[45]]*) | ||
2999 | lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' | ||
3000 | lt_cv_file_magic_cmd='/usr/bin/file -L' | ||
3001 | lt_cv_file_magic_test_file=/shlib/libc.so | ||
3002 | ;; | ||
3003 | |||
3004 | cygwin*) | ||
3005 | # func_win32_libid is a shell function defined in ltmain.sh | ||
3006 | lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' | ||
3007 | lt_cv_file_magic_cmd='func_win32_libid' | ||
3008 | ;; | ||
3009 | |||
3010 | mingw* | pw32*) | ||
3011 | # Base MSYS/MinGW do not provide the 'file' command needed by | ||
3012 | # func_win32_libid shell function, so use a weaker test based on 'objdump', | ||
3013 | # unless we find 'file', for example because we are cross-compiling. | ||
3014 | if ( file / ) >/dev/null 2>&1; then | ||
3015 | lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' | ||
3016 | lt_cv_file_magic_cmd='func_win32_libid' | ||
3017 | else | ||
3018 | lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' | ||
3019 | lt_cv_file_magic_cmd='$OBJDUMP -f' | ||
3020 | fi | ||
3021 | ;; | ||
3022 | |||
3023 | cegcc) | ||
3024 | # use the weaker test based on 'objdump'. See mingw*. | ||
3025 | lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' | ||
3026 | lt_cv_file_magic_cmd='$OBJDUMP -f' | ||
3027 | ;; | ||
3028 | |||
3029 | darwin* | rhapsody*) | ||
3030 | lt_cv_deplibs_check_method=pass_all | ||
3031 | ;; | ||
3032 | |||
3033 | freebsd* | dragonfly*) | ||
3034 | if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then | ||
3035 | case $host_cpu in | ||
3036 | i*86 ) | ||
3037 | # Not sure whether the presence of OpenBSD here was a mistake. | ||
3038 | # Let's accept both of them until this is cleared up. | ||
3039 | lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' | ||
3040 | lt_cv_file_magic_cmd=/usr/bin/file | ||
3041 | lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` | ||
3042 | ;; | ||
3043 | esac | ||
3044 | else | ||
3045 | lt_cv_deplibs_check_method=pass_all | ||
3046 | fi | ||
3047 | ;; | ||
3048 | |||
3049 | gnu*) | ||
3050 | lt_cv_deplibs_check_method=pass_all | ||
3051 | ;; | ||
3052 | |||
3053 | hpux10.20* | hpux11*) | ||
3054 | lt_cv_file_magic_cmd=/usr/bin/file | ||
3055 | case $host_cpu in | ||
3056 | ia64*) | ||
3057 | lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' | ||
3058 | lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so | ||
3059 | ;; | ||
3060 | hppa*64*) | ||
3061 | [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]'] | ||
3062 | lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl | ||
3063 | ;; | ||
3064 | *) | ||
3065 | lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' | ||
3066 | lt_cv_file_magic_test_file=/usr/lib/libc.sl | ||
3067 | ;; | ||
3068 | esac | ||
3069 | ;; | ||
3070 | |||
3071 | interix[[3-9]]*) | ||
3072 | # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here | ||
3073 | lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' | ||
3074 | ;; | ||
3075 | |||
3076 | irix5* | irix6* | nonstopux*) | ||
3077 | case $LD in | ||
3078 | *-32|*"-32 ") libmagic=32-bit;; | ||
3079 | *-n32|*"-n32 ") libmagic=N32;; | ||
3080 | *-64|*"-64 ") libmagic=64-bit;; | ||
3081 | *) libmagic=never-match;; | ||
3082 | esac | ||
3083 | lt_cv_deplibs_check_method=pass_all | ||
3084 | ;; | ||
3085 | |||
3086 | # This must be Linux ELF. | ||
3087 | linux* | k*bsd*-gnu | kopensolaris*-gnu) | ||
3088 | lt_cv_deplibs_check_method=pass_all | ||
3089 | ;; | ||
3090 | |||
3091 | netbsd* | netbsdelf*-gnu) | ||
3092 | if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then | ||
3093 | lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' | ||
3094 | else | ||
3095 | lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' | ||
3096 | fi | ||
3097 | ;; | ||
3098 | |||
3099 | newos6*) | ||
3100 | lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' | ||
3101 | lt_cv_file_magic_cmd=/usr/bin/file | ||
3102 | lt_cv_file_magic_test_file=/usr/lib/libnls.so | ||
3103 | ;; | ||
3104 | |||
3105 | *nto* | *qnx*) | ||
3106 | lt_cv_deplibs_check_method=pass_all | ||
3107 | ;; | ||
3108 | |||
3109 | openbsd*) | ||
3110 | if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then | ||
3111 | lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' | ||
3112 | else | ||
3113 | lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' | ||
3114 | fi | ||
3115 | ;; | ||
3116 | |||
3117 | osf3* | osf4* | osf5*) | ||
3118 | lt_cv_deplibs_check_method=pass_all | ||
3119 | ;; | ||
3120 | |||
3121 | rdos*) | ||
3122 | lt_cv_deplibs_check_method=pass_all | ||
3123 | ;; | ||
3124 | |||
3125 | solaris*) | ||
3126 | lt_cv_deplibs_check_method=pass_all | ||
3127 | ;; | ||
3128 | |||
3129 | sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) | ||
3130 | lt_cv_deplibs_check_method=pass_all | ||
3131 | ;; | ||
3132 | |||
3133 | sysv4 | sysv4.3*) | ||
3134 | case $host_vendor in | ||
3135 | motorola) | ||
3136 | lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' | ||
3137 | lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` | ||
3138 | ;; | ||
3139 | ncr) | ||
3140 | lt_cv_deplibs_check_method=pass_all | ||
3141 | ;; | ||
3142 | sequent) | ||
3143 | lt_cv_file_magic_cmd='/bin/file' | ||
3144 | lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' | ||
3145 | ;; | ||
3146 | sni) | ||
3147 | lt_cv_file_magic_cmd='/bin/file' | ||
3148 | lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" | ||
3149 | lt_cv_file_magic_test_file=/lib/libc.so | ||
3150 | ;; | ||
3151 | siemens) | ||
3152 | lt_cv_deplibs_check_method=pass_all | ||
3153 | ;; | ||
3154 | pc) | ||
3155 | lt_cv_deplibs_check_method=pass_all | ||
3156 | ;; | ||
3157 | esac | ||
3158 | ;; | ||
3159 | |||
3160 | tpf*) | ||
3161 | lt_cv_deplibs_check_method=pass_all | ||
3162 | ;; | ||
3163 | esac | ||
3164 | ]) | ||
3165 | file_magic_cmd=$lt_cv_file_magic_cmd | ||
3166 | deplibs_check_method=$lt_cv_deplibs_check_method | ||
3167 | test -z "$deplibs_check_method" && deplibs_check_method=unknown | ||
3168 | |||
3169 | _LT_DECL([], [deplibs_check_method], [1], | ||
3170 | [Method to check whether dependent libraries are shared objects]) | ||
3171 | _LT_DECL([], [file_magic_cmd], [1], | ||
3172 | [Command to use when deplibs_check_method == "file_magic"]) | ||
3173 | ])# _LT_CHECK_MAGIC_METHOD | ||
3174 | |||
3175 | |||
3176 | # LT_PATH_NM | ||
3177 | # ---------- | ||
3178 | # find the pathname to a BSD- or MS-compatible name lister | ||
3179 | AC_DEFUN([LT_PATH_NM], | ||
3180 | [AC_REQUIRE([AC_PROG_CC])dnl | ||
3181 | AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, | ||
3182 | [if test -n "$NM"; then | ||
3183 | # Let the user override the test. | ||
3184 | lt_cv_path_NM="$NM" | ||
3185 | else | ||
3186 | lt_nm_to_check="${ac_tool_prefix}nm" | ||
3187 | if test -n "$ac_tool_prefix" && test "$build" = "$host"; then | ||
3188 | lt_nm_to_check="$lt_nm_to_check nm" | ||
3189 | fi | ||
3190 | for lt_tmp_nm in $lt_nm_to_check; do | ||
3191 | lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR | ||
3192 | for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do | ||
3193 | IFS="$lt_save_ifs" | ||
3194 | test -z "$ac_dir" && ac_dir=. | ||
3195 | tmp_nm="$ac_dir/$lt_tmp_nm" | ||
3196 | if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then | ||
3197 | # Check to see if the nm accepts a BSD-compat flag. | ||
3198 | # Adding the `sed 1q' prevents false positives on HP-UX, which says: | ||
3199 | # nm: unknown option "B" ignored | ||
3200 | # Tru64's nm complains that /dev/null is an invalid object file | ||
3201 | case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in | ||
3202 | */dev/null* | *'Invalid file or object type'*) | ||
3203 | lt_cv_path_NM="$tmp_nm -B" | ||
3204 | break | ||
3205 | ;; | ||
3206 | *) | ||
3207 | case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in | ||
3208 | */dev/null*) | ||
3209 | lt_cv_path_NM="$tmp_nm -p" | ||
3210 | break | ||
3211 | ;; | ||
3212 | *) | ||
3213 | lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but | ||
3214 | continue # so that we can try to find one that supports BSD flags | ||
3215 | ;; | ||
3216 | esac | ||
3217 | ;; | ||
3218 | esac | ||
3219 | fi | ||
3220 | done | ||
3221 | IFS="$lt_save_ifs" | ||
3222 | done | ||
3223 | : ${lt_cv_path_NM=no} | ||
3224 | fi]) | ||
3225 | if test "$lt_cv_path_NM" != "no"; then | ||
3226 | NM="$lt_cv_path_NM" | ||
3227 | else | ||
3228 | # Didn't find any BSD compatible name lister, look for dumpbin. | ||
3229 | AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) | ||
3230 | AC_SUBST([DUMPBIN]) | ||
3231 | if test "$DUMPBIN" != ":"; then | ||
3232 | NM="$DUMPBIN" | ||
3233 | fi | ||
3234 | fi | ||
3235 | test -z "$NM" && NM=nm | ||
3236 | AC_SUBST([NM]) | ||
3237 | _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl | ||
3238 | |||
3239 | AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], | ||
3240 | [lt_cv_nm_interface="BSD nm" | ||
3241 | echo "int some_variable = 0;" > conftest.$ac_ext | ||
3242 | (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) | ||
3243 | (eval "$ac_compile" 2>conftest.err) | ||
3244 | cat conftest.err >&AS_MESSAGE_LOG_FD | ||
3245 | (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) | ||
3246 | (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) | ||
3247 | cat conftest.err >&AS_MESSAGE_LOG_FD | ||
3248 | (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) | ||
3249 | cat conftest.out >&AS_MESSAGE_LOG_FD | ||
3250 | if $GREP 'External.*some_variable' conftest.out > /dev/null; then | ||
3251 | lt_cv_nm_interface="MS dumpbin" | ||
3252 | fi | ||
3253 | rm -f conftest*]) | ||
3254 | ])# LT_PATH_NM | ||
3255 | |||
3256 | # Old names: | ||
3257 | AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) | ||
3258 | AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) | ||
3259 | dnl aclocal-1.4 backwards compatibility: | ||
3260 | dnl AC_DEFUN([AM_PROG_NM], []) | ||
3261 | dnl AC_DEFUN([AC_PROG_NM], []) | ||
3262 | |||
3263 | |||
3264 | # LT_LIB_M | ||
3265 | # -------- | ||
3266 | # check for math library | ||
3267 | AC_DEFUN([LT_LIB_M], | ||
3268 | [AC_REQUIRE([AC_CANONICAL_HOST])dnl | ||
3269 | LIBM= | ||
3270 | case $host in | ||
3271 | *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) | ||
3272 | # These system don't have libm, or don't need it | ||
3273 | ;; | ||
3274 | *-ncr-sysv4.3*) | ||
3275 | AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") | ||
3276 | AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") | ||
3277 | ;; | ||
3278 | *) | ||
3279 | AC_CHECK_LIB(m, cos, LIBM="-lm") | ||
3280 | ;; | ||
3281 | esac | ||
3282 | AC_SUBST([LIBM]) | ||
3283 | ])# LT_LIB_M | ||
3284 | |||
3285 | # Old name: | ||
3286 | AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) | ||
3287 | dnl aclocal-1.4 backwards compatibility: | ||
3288 | dnl AC_DEFUN([AC_CHECK_LIBM], []) | ||
3289 | |||
3290 | |||
3291 | # _LT_COMPILER_NO_RTTI([TAGNAME]) | ||
3292 | # ------------------------------- | ||
3293 | m4_defun([_LT_COMPILER_NO_RTTI], | ||
3294 | [m4_require([_LT_TAG_COMPILER])dnl | ||
3295 | |||
3296 | _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= | ||
3297 | |||
3298 | if test "$GCC" = yes; then | ||
3299 | _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' | ||
3300 | |||
3301 | _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], | ||
3302 | lt_cv_prog_compiler_rtti_exceptions, | ||
3303 | [-fno-rtti -fno-exceptions], [], | ||
3304 | [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) | ||
3305 | fi | ||
3306 | _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], | ||
3307 | [Compiler flag to turn off builtin functions]) | ||
3308 | ])# _LT_COMPILER_NO_RTTI | ||
3309 | |||
3310 | |||
3311 | # _LT_CMD_GLOBAL_SYMBOLS | ||
3312 | # ---------------------- | ||
3313 | m4_defun([_LT_CMD_GLOBAL_SYMBOLS], | ||
3314 | [AC_REQUIRE([AC_CANONICAL_HOST])dnl | ||
3315 | AC_REQUIRE([AC_PROG_CC])dnl | ||
3316 | AC_REQUIRE([LT_PATH_NM])dnl | ||
3317 | AC_REQUIRE([LT_PATH_LD])dnl | ||
3318 | m4_require([_LT_DECL_SED])dnl | ||
3319 | m4_require([_LT_DECL_EGREP])dnl | ||
3320 | m4_require([_LT_TAG_COMPILER])dnl | ||
3321 | |||
3322 | # Check for command to grab the raw symbol name followed by C symbol from nm. | ||
3323 | AC_MSG_CHECKING([command to parse $NM output from $compiler object]) | ||
3324 | AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], | ||
3325 | [ | ||
3326 | # These are sane defaults that work on at least a few old systems. | ||
3327 | # [They come from Ultrix. What could be older than Ultrix?!! ;)] | ||
3328 | |||
3329 | # Character class describing NM global symbol codes. | ||
3330 | symcode='[[BCDEGRST]]' | ||
3331 | |||
3332 | # Regexp to match symbols that can be accessed directly from C. | ||
3333 | sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' | ||
3334 | |||
3335 | # Define system-specific variables. | ||
3336 | case $host_os in | ||
3337 | aix*) | ||
3338 | symcode='[[BCDT]]' | ||
3339 | ;; | ||
3340 | cygwin* | mingw* | pw32* | cegcc*) | ||
3341 | symcode='[[ABCDGISTW]]' | ||
3342 | ;; | ||
3343 | hpux*) | ||
3344 | if test "$host_cpu" = ia64; then | ||
3345 | symcode='[[ABCDEGRST]]' | ||
3346 | fi | ||
3347 | ;; | ||
3348 | irix* | nonstopux*) | ||
3349 | symcode='[[BCDEGRST]]' | ||
3350 | ;; | ||
3351 | osf*) | ||
3352 | symcode='[[BCDEGQRST]]' | ||
3353 | ;; | ||
3354 | solaris*) | ||
3355 | symcode='[[BDRT]]' | ||
3356 | ;; | ||
3357 | sco3.2v5*) | ||
3358 | symcode='[[DT]]' | ||
3359 | ;; | ||
3360 | sysv4.2uw2*) | ||
3361 | symcode='[[DT]]' | ||
3362 | ;; | ||
3363 | sysv5* | sco5v6* | unixware* | OpenUNIX*) | ||
3364 | symcode='[[ABDT]]' | ||
3365 | ;; | ||
3366 | sysv4) | ||
3367 | symcode='[[DFNSTU]]' | ||
3368 | ;; | ||
3369 | esac | ||
3370 | |||
3371 | # If we're using GNU nm, then use its standard symbol codes. | ||
3372 | case `$NM -V 2>&1` in | ||
3373 | *GNU* | *'with BFD'*) | ||
3374 | symcode='[[ABCDGIRSTW]]' ;; | ||
3375 | esac | ||
3376 | |||
3377 | # Transform an extracted symbol line into a proper C declaration. | ||
3378 | # Some systems (esp. on ia64) link data and code symbols differently, | ||
3379 | # so use this general approach. | ||
3380 | lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" | ||
3381 | |||
3382 | # Transform an extracted symbol line into symbol name and symbol address | ||
3383 | lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" | ||
3384 | 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'" | ||
3385 | |||
3386 | # Handle CRLF in mingw tool chain | ||
3387 | opt_cr= | ||
3388 | case $build_os in | ||
3389 | mingw*) | ||
3390 | opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp | ||
3391 | ;; | ||
3392 | esac | ||
3393 | |||
3394 | # Try without a prefix underscore, then with it. | ||
3395 | for ac_symprfx in "" "_"; do | ||
3396 | |||
3397 | # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. | ||
3398 | symxfrm="\\1 $ac_symprfx\\2 \\2" | ||
3399 | |||
3400 | # Write the raw and C identifiers. | ||
3401 | if test "$lt_cv_nm_interface" = "MS dumpbin"; then | ||
3402 | # Fake it for dumpbin and say T for any non-static function | ||
3403 | # and D for any global variable. | ||
3404 | # Also find C++ and __fastcall symbols from MSVC++, | ||
3405 | # which start with @ or ?. | ||
3406 | lt_cv_sys_global_symbol_pipe="$AWK ['"\ | ||
3407 | " {last_section=section; section=\$ 3};"\ | ||
3408 | " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ | ||
3409 | " \$ 0!~/External *\|/{next};"\ | ||
3410 | " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ | ||
3411 | " {if(hide[section]) next};"\ | ||
3412 | " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ | ||
3413 | " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ | ||
3414 | " s[1]~/^[@?]/{print s[1], s[1]; next};"\ | ||
3415 | " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ | ||
3416 | " ' prfx=^$ac_symprfx]" | ||
3417 | else | ||
3418 | lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" | ||
3419 | fi | ||
3420 | |||
3421 | # Check to see that the pipe works correctly. | ||
3422 | pipe_works=no | ||
3423 | |||
3424 | rm -f conftest* | ||
3425 | cat > conftest.$ac_ext <<_LT_EOF | ||
3426 | #ifdef __cplusplus | ||
3427 | extern "C" { | ||
3428 | #endif | ||
3429 | char nm_test_var; | ||
3430 | void nm_test_func(void); | ||
3431 | void nm_test_func(void){} | ||
3432 | #ifdef __cplusplus | ||
3433 | } | ||
3434 | #endif | ||
3435 | int main(){nm_test_var='a';nm_test_func();return(0);} | ||
3436 | _LT_EOF | ||
3437 | |||
3438 | if AC_TRY_EVAL(ac_compile); then | ||
3439 | # Now try to grab the symbols. | ||
3440 | nlist=conftest.nm | ||
3441 | if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then | ||
3442 | # Try sorting and uniquifying the output. | ||
3443 | if sort "$nlist" | uniq > "$nlist"T; then | ||
3444 | mv -f "$nlist"T "$nlist" | ||
3445 | else | ||
3446 | rm -f "$nlist"T | ||
3447 | fi | ||
3448 | |||
3449 | # Make sure that we snagged all the symbols we need. | ||
3450 | if $GREP ' nm_test_var$' "$nlist" >/dev/null; then | ||
3451 | if $GREP ' nm_test_func$' "$nlist" >/dev/null; then | ||
3452 | cat <<_LT_EOF > conftest.$ac_ext | ||
3453 | #ifdef __cplusplus | ||
3454 | extern "C" { | ||
3455 | #endif | ||
3456 | |||
3457 | _LT_EOF | ||
3458 | # Now generate the symbol file. | ||
3459 | eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' | ||
3460 | |||
3461 | cat <<_LT_EOF >> conftest.$ac_ext | ||
3462 | |||
3463 | /* The mapping between symbol names and symbols. */ | ||
3464 | const struct { | ||
3465 | const char *name; | ||
3466 | void *address; | ||
3467 | } | ||
3468 | lt__PROGRAM__LTX_preloaded_symbols[[]] = | ||
3469 | { | ||
3470 | { "@PROGRAM@", (void *) 0 }, | ||
3471 | _LT_EOF | ||
3472 | $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext | ||
3473 | cat <<\_LT_EOF >> conftest.$ac_ext | ||
3474 | {0, (void *) 0} | ||
3475 | }; | ||
3476 | |||
3477 | /* This works around a problem in FreeBSD linker */ | ||
3478 | #ifdef FREEBSD_WORKAROUND | ||
3479 | static const void *lt_preloaded_setup() { | ||
3480 | return lt__PROGRAM__LTX_preloaded_symbols; | ||
3481 | } | ||
3482 | #endif | ||
3483 | |||
3484 | #ifdef __cplusplus | ||
3485 | } | ||
3486 | #endif | ||
3487 | _LT_EOF | ||
3488 | # Now try linking the two files. | ||
3489 | mv conftest.$ac_objext conftstm.$ac_objext | ||
3490 | lt_save_LIBS="$LIBS" | ||
3491 | lt_save_CFLAGS="$CFLAGS" | ||
3492 | LIBS="conftstm.$ac_objext" | ||
3493 | CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" | ||
3494 | if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then | ||
3495 | pipe_works=yes | ||
3496 | fi | ||
3497 | LIBS="$lt_save_LIBS" | ||
3498 | CFLAGS="$lt_save_CFLAGS" | ||
3499 | else | ||
3500 | echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD | ||
3501 | fi | ||
3502 | else | ||
3503 | echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD | ||
3504 | fi | ||
3505 | else | ||
3506 | echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD | ||
3507 | fi | ||
3508 | else | ||
3509 | echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD | ||
3510 | cat conftest.$ac_ext >&5 | ||
3511 | fi | ||
3512 | rm -rf conftest* conftst* | ||
3513 | |||
3514 | # Do not use the global_symbol_pipe unless it works. | ||
3515 | if test "$pipe_works" = yes; then | ||
3516 | break | ||
3517 | else | ||
3518 | lt_cv_sys_global_symbol_pipe= | ||
3519 | fi | ||
3520 | done | ||
3521 | ]) | ||
3522 | if test -z "$lt_cv_sys_global_symbol_pipe"; then | ||
3523 | lt_cv_sys_global_symbol_to_cdecl= | ||
3524 | fi | ||
3525 | if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then | ||
3526 | AC_MSG_RESULT(failed) | ||
3527 | else | ||
3528 | AC_MSG_RESULT(ok) | ||
3529 | fi | ||
3530 | |||
3531 | _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], | ||
3532 | [Take the output of nm and produce a listing of raw symbols and C names]) | ||
3533 | _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], | ||
3534 | [Transform the output of nm in a proper C declaration]) | ||
3535 | _LT_DECL([global_symbol_to_c_name_address], | ||
3536 | [lt_cv_sys_global_symbol_to_c_name_address], [1], | ||
3537 | [Transform the output of nm in a C name address pair]) | ||
3538 | _LT_DECL([global_symbol_to_c_name_address_lib_prefix], | ||
3539 | [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], | ||
3540 | [Transform the output of nm in a C name address pair when lib prefix is needed]) | ||
3541 | ]) # _LT_CMD_GLOBAL_SYMBOLS | ||
3542 | |||
3543 | |||
3544 | # _LT_COMPILER_PIC([TAGNAME]) | ||
3545 | # --------------------------- | ||
3546 | m4_defun([_LT_COMPILER_PIC], | ||
3547 | [m4_require([_LT_TAG_COMPILER])dnl | ||
3548 | _LT_TAGVAR(lt_prog_compiler_wl, $1)= | ||
3549 | _LT_TAGVAR(lt_prog_compiler_pic, $1)= | ||
3550 | _LT_TAGVAR(lt_prog_compiler_static, $1)= | ||
3551 | |||
3552 | AC_MSG_CHECKING([for $compiler option to produce PIC]) | ||
3553 | m4_if([$1], [CXX], [ | ||
3554 | # C++ specific cases for pic, static, wl, etc. | ||
3555 | if test "$GXX" = yes; then | ||
3556 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
3557 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' | ||
3558 | |||
3559 | case $host_os in | ||
3560 | aix*) | ||
3561 | # All AIX code is PIC. | ||
3562 | if test "$host_cpu" = ia64; then | ||
3563 | # AIX 5 now supports IA64 processor | ||
3564 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' | ||
3565 | fi | ||
3566 | ;; | ||
3567 | |||
3568 | amigaos*) | ||
3569 | case $host_cpu in | ||
3570 | powerpc) | ||
3571 | # see comment about AmigaOS4 .so support | ||
3572 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' | ||
3573 | ;; | ||
3574 | m68k) | ||
3575 | # FIXME: we need at least 68020 code to build shared libraries, but | ||
3576 | # adding the `-m68020' flag to GCC prevents building anything better, | ||
3577 | # like `-m68040'. | ||
3578 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' | ||
3579 | ;; | ||
3580 | esac | ||
3581 | ;; | ||
3582 | |||
3583 | beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) | ||
3584 | # PIC is the default for these OSes. | ||
3585 | ;; | ||
3586 | mingw* | cygwin* | os2* | pw32* | cegcc*) | ||
3587 | # This hack is so that the source file can tell whether it is being | ||
3588 | # built for inclusion in a dll (and should export symbols for example). | ||
3589 | # Although the cygwin gcc ignores -fPIC, still need this for old-style | ||
3590 | # (--disable-auto-import) libraries | ||
3591 | m4_if([$1], [GCJ], [], | ||
3592 | [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) | ||
3593 | ;; | ||
3594 | darwin* | rhapsody*) | ||
3595 | # PIC is the default on this platform | ||
3596 | # Common symbols not allowed in MH_DYLIB files | ||
3597 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' | ||
3598 | ;; | ||
3599 | *djgpp*) | ||
3600 | # DJGPP does not support shared libraries at all | ||
3601 | _LT_TAGVAR(lt_prog_compiler_pic, $1)= | ||
3602 | ;; | ||
3603 | interix[[3-9]]*) | ||
3604 | # Interix 3.x gcc -fpic/-fPIC options generate broken code. | ||
3605 | # Instead, we relocate shared libraries at runtime. | ||
3606 | ;; | ||
3607 | sysv4*MP*) | ||
3608 | if test -d /usr/nec; then | ||
3609 | _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic | ||
3610 | fi | ||
3611 | ;; | ||
3612 | hpux*) | ||
3613 | # PIC is the default for 64-bit PA HP-UX, but not for 32-bit | ||
3614 | # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag | ||
3615 | # sets the default TLS model and affects inlining. | ||
3616 | case $host_cpu in | ||
3617 | hppa*64*) | ||
3618 | ;; | ||
3619 | *) | ||
3620 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' | ||
3621 | ;; | ||
3622 | esac | ||
3623 | ;; | ||
3624 | *qnx* | *nto*) | ||
3625 | # QNX uses GNU C++, but need to define -shared option too, otherwise | ||
3626 | # it will coredump. | ||
3627 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' | ||
3628 | ;; | ||
3629 | *) | ||
3630 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' | ||
3631 | ;; | ||
3632 | esac | ||
3633 | else | ||
3634 | case $host_os in | ||
3635 | aix[[4-9]]*) | ||
3636 | # All AIX code is PIC. | ||
3637 | if test "$host_cpu" = ia64; then | ||
3638 | # AIX 5 now supports IA64 processor | ||
3639 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' | ||
3640 | else | ||
3641 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' | ||
3642 | fi | ||
3643 | ;; | ||
3644 | chorus*) | ||
3645 | case $cc_basename in | ||
3646 | cxch68*) | ||
3647 | # Green Hills C++ Compiler | ||
3648 | # _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" | ||
3649 | ;; | ||
3650 | esac | ||
3651 | ;; | ||
3652 | dgux*) | ||
3653 | case $cc_basename in | ||
3654 | ec++*) | ||
3655 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' | ||
3656 | ;; | ||
3657 | ghcx*) | ||
3658 | # Green Hills C++ Compiler | ||
3659 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' | ||
3660 | ;; | ||
3661 | *) | ||
3662 | ;; | ||
3663 | esac | ||
3664 | ;; | ||
3665 | freebsd* | dragonfly*) | ||
3666 | # FreeBSD uses GNU C++ | ||
3667 | ;; | ||
3668 | hpux9* | hpux10* | hpux11*) | ||
3669 | case $cc_basename in | ||
3670 | CC*) | ||
3671 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
3672 | _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' | ||
3673 | if test "$host_cpu" != ia64; then | ||
3674 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' | ||
3675 | fi | ||
3676 | ;; | ||
3677 | aCC*) | ||
3678 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
3679 | _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' | ||
3680 | case $host_cpu in | ||
3681 | hppa*64*|ia64*) | ||
3682 | # +Z the default | ||
3683 | ;; | ||
3684 | *) | ||
3685 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' | ||
3686 | ;; | ||
3687 | esac | ||
3688 | ;; | ||
3689 | *) | ||
3690 | ;; | ||
3691 | esac | ||
3692 | ;; | ||
3693 | interix*) | ||
3694 | # This is c89, which is MS Visual C++ (no shared libs) | ||
3695 | # Anyone wants to do a port? | ||
3696 | ;; | ||
3697 | irix5* | irix6* | nonstopux*) | ||
3698 | case $cc_basename in | ||
3699 | CC*) | ||
3700 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
3701 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' | ||
3702 | # CC pic flag -KPIC is the default. | ||
3703 | ;; | ||
3704 | *) | ||
3705 | ;; | ||
3706 | esac | ||
3707 | ;; | ||
3708 | linux* | k*bsd*-gnu | kopensolaris*-gnu) | ||
3709 | case $cc_basename in | ||
3710 | KCC*) | ||
3711 | # KAI C++ Compiler | ||
3712 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' | ||
3713 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' | ||
3714 | ;; | ||
3715 | ecpc* ) | ||
3716 | # old Intel C++ for x86_64 which still supported -KPIC. | ||
3717 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
3718 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' | ||
3719 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' | ||
3720 | ;; | ||
3721 | icpc* ) | ||
3722 | # Intel C++, used to be incompatible with GCC. | ||
3723 | # ICC 10 doesn't accept -KPIC any more. | ||
3724 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
3725 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' | ||
3726 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' | ||
3727 | ;; | ||
3728 | pgCC* | pgcpp*) | ||
3729 | # Portland Group C++ compiler | ||
3730 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
3731 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' | ||
3732 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' | ||
3733 | ;; | ||
3734 | cxx*) | ||
3735 | # Compaq C++ | ||
3736 | # Make sure the PIC flag is empty. It appears that all Alpha | ||
3737 | # Linux and Compaq Tru64 Unix objects are PIC. | ||
3738 | _LT_TAGVAR(lt_prog_compiler_pic, $1)= | ||
3739 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' | ||
3740 | ;; | ||
3741 | xlc* | xlC*) | ||
3742 | # IBM XL 8.0 on PPC | ||
3743 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
3744 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' | ||
3745 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' | ||
3746 | ;; | ||
3747 | *) | ||
3748 | case `$CC -V 2>&1 | sed 5q` in | ||
3749 | *Sun\ C*) | ||
3750 | # Sun C++ 5.9 | ||
3751 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' | ||
3752 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' | ||
3753 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' | ||
3754 | ;; | ||
3755 | esac | ||
3756 | ;; | ||
3757 | esac | ||
3758 | ;; | ||
3759 | lynxos*) | ||
3760 | ;; | ||
3761 | m88k*) | ||
3762 | ;; | ||
3763 | mvs*) | ||
3764 | case $cc_basename in | ||
3765 | cxx*) | ||
3766 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' | ||
3767 | ;; | ||
3768 | *) | ||
3769 | ;; | ||
3770 | esac | ||
3771 | ;; | ||
3772 | netbsd* | netbsdelf*-gnu) | ||
3773 | ;; | ||
3774 | *qnx* | *nto*) | ||
3775 | # QNX uses GNU C++, but need to define -shared option too, otherwise | ||
3776 | # it will coredump. | ||
3777 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' | ||
3778 | ;; | ||
3779 | osf3* | osf4* | osf5*) | ||
3780 | case $cc_basename in | ||
3781 | KCC*) | ||
3782 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' | ||
3783 | ;; | ||
3784 | RCC*) | ||
3785 | # Rational C++ 2.4.1 | ||
3786 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' | ||
3787 | ;; | ||
3788 | cxx*) | ||
3789 | # Digital/Compaq C++ | ||
3790 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
3791 | # Make sure the PIC flag is empty. It appears that all Alpha | ||
3792 | # Linux and Compaq Tru64 Unix objects are PIC. | ||
3793 | _LT_TAGVAR(lt_prog_compiler_pic, $1)= | ||
3794 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' | ||
3795 | ;; | ||
3796 | *) | ||
3797 | ;; | ||
3798 | esac | ||
3799 | ;; | ||
3800 | psos*) | ||
3801 | ;; | ||
3802 | solaris*) | ||
3803 | case $cc_basename in | ||
3804 | CC*) | ||
3805 | # Sun C++ 4.2, 5.x and Centerline C++ | ||
3806 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' | ||
3807 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' | ||
3808 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' | ||
3809 | ;; | ||
3810 | gcx*) | ||
3811 | # Green Hills C++ Compiler | ||
3812 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' | ||
3813 | ;; | ||
3814 | *) | ||
3815 | ;; | ||
3816 | esac | ||
3817 | ;; | ||
3818 | sunos4*) | ||
3819 | case $cc_basename in | ||
3820 | CC*) | ||
3821 | # Sun C++ 4.x | ||
3822 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' | ||
3823 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' | ||
3824 | ;; | ||
3825 | lcc*) | ||
3826 | # Lucid | ||
3827 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' | ||
3828 | ;; | ||
3829 | *) | ||
3830 | ;; | ||
3831 | esac | ||
3832 | ;; | ||
3833 | sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) | ||
3834 | case $cc_basename in | ||
3835 | CC*) | ||
3836 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
3837 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' | ||
3838 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' | ||
3839 | ;; | ||
3840 | esac | ||
3841 | ;; | ||
3842 | tandem*) | ||
3843 | case $cc_basename in | ||
3844 | NCC*) | ||
3845 | # NonStop-UX NCC 3.20 | ||
3846 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' | ||
3847 | ;; | ||
3848 | *) | ||
3849 | ;; | ||
3850 | esac | ||
3851 | ;; | ||
3852 | vxworks*) | ||
3853 | ;; | ||
3854 | *) | ||
3855 | _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no | ||
3856 | ;; | ||
3857 | esac | ||
3858 | fi | ||
3859 | ], | ||
3860 | [ | ||
3861 | if test "$GCC" = yes; then | ||
3862 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
3863 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' | ||
3864 | |||
3865 | case $host_os in | ||
3866 | aix*) | ||
3867 | # All AIX code is PIC. | ||
3868 | if test "$host_cpu" = ia64; then | ||
3869 | # AIX 5 now supports IA64 processor | ||
3870 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' | ||
3871 | fi | ||
3872 | ;; | ||
3873 | |||
3874 | amigaos*) | ||
3875 | case $host_cpu in | ||
3876 | powerpc) | ||
3877 | # see comment about AmigaOS4 .so support | ||
3878 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' | ||
3879 | ;; | ||
3880 | m68k) | ||
3881 | # FIXME: we need at least 68020 code to build shared libraries, but | ||
3882 | # adding the `-m68020' flag to GCC prevents building anything better, | ||
3883 | # like `-m68040'. | ||
3884 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' | ||
3885 | ;; | ||
3886 | esac | ||
3887 | ;; | ||
3888 | |||
3889 | beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) | ||
3890 | # PIC is the default for these OSes. | ||
3891 | ;; | ||
3892 | |||
3893 | mingw* | cygwin* | pw32* | os2* | cegcc*) | ||
3894 | # This hack is so that the source file can tell whether it is being | ||
3895 | # built for inclusion in a dll (and should export symbols for example). | ||
3896 | # Although the cygwin gcc ignores -fPIC, still need this for old-style | ||
3897 | # (--disable-auto-import) libraries | ||
3898 | m4_if([$1], [GCJ], [], | ||
3899 | [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) | ||
3900 | ;; | ||
3901 | |||
3902 | darwin* | rhapsody*) | ||
3903 | # PIC is the default on this platform | ||
3904 | # Common symbols not allowed in MH_DYLIB files | ||
3905 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' | ||
3906 | ;; | ||
3907 | |||
3908 | hpux*) | ||
3909 | # PIC is the default for 64-bit PA HP-UX, but not for 32-bit | ||
3910 | # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag | ||
3911 | # sets the default TLS model and affects inlining. | ||
3912 | case $host_cpu in | ||
3913 | hppa*64*) | ||
3914 | # +Z the default | ||
3915 | ;; | ||
3916 | *) | ||
3917 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' | ||
3918 | ;; | ||
3919 | esac | ||
3920 | ;; | ||
3921 | |||
3922 | interix[[3-9]]*) | ||
3923 | # Interix 3.x gcc -fpic/-fPIC options generate broken code. | ||
3924 | # Instead, we relocate shared libraries at runtime. | ||
3925 | ;; | ||
3926 | |||
3927 | msdosdjgpp*) | ||
3928 | # Just because we use GCC doesn't mean we suddenly get shared libraries | ||
3929 | # on systems that don't support them. | ||
3930 | _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no | ||
3931 | enable_shared=no | ||
3932 | ;; | ||
3933 | |||
3934 | *nto* | *qnx*) | ||
3935 | # QNX uses GNU C++, but need to define -shared option too, otherwise | ||
3936 | # it will coredump. | ||
3937 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' | ||
3938 | ;; | ||
3939 | |||
3940 | sysv4*MP*) | ||
3941 | if test -d /usr/nec; then | ||
3942 | _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic | ||
3943 | fi | ||
3944 | ;; | ||
3945 | |||
3946 | *) | ||
3947 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' | ||
3948 | ;; | ||
3949 | esac | ||
3950 | else | ||
3951 | # PORTME Check for flag to pass linker flags through the system compiler. | ||
3952 | case $host_os in | ||
3953 | aix*) | ||
3954 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
3955 | if test "$host_cpu" = ia64; then | ||
3956 | # AIX 5 now supports IA64 processor | ||
3957 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' | ||
3958 | else | ||
3959 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' | ||
3960 | fi | ||
3961 | ;; | ||
3962 | |||
3963 | mingw* | cygwin* | pw32* | os2* | cegcc*) | ||
3964 | # This hack is so that the source file can tell whether it is being | ||
3965 | # built for inclusion in a dll (and should export symbols for example). | ||
3966 | m4_if([$1], [GCJ], [], | ||
3967 | [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) | ||
3968 | ;; | ||
3969 | |||
3970 | hpux9* | hpux10* | hpux11*) | ||
3971 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
3972 | # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but | ||
3973 | # not for PA HP-UX. | ||
3974 | case $host_cpu in | ||
3975 | hppa*64*|ia64*) | ||
3976 | # +Z the default | ||
3977 | ;; | ||
3978 | *) | ||
3979 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' | ||
3980 | ;; | ||
3981 | esac | ||
3982 | # Is there a better lt_prog_compiler_static that works with the bundled CC? | ||
3983 | _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' | ||
3984 | ;; | ||
3985 | |||
3986 | irix5* | irix6* | nonstopux*) | ||
3987 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
3988 | # PIC (with -KPIC) is the default. | ||
3989 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' | ||
3990 | ;; | ||
3991 | |||
3992 | linux* | k*bsd*-gnu | kopensolaris*-gnu) | ||
3993 | case $cc_basename in | ||
3994 | # old Intel for x86_64 which still supported -KPIC. | ||
3995 | ecc*) | ||
3996 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
3997 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' | ||
3998 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' | ||
3999 | ;; | ||
4000 | # icc used to be incompatible with GCC. | ||
4001 | # ICC 10 doesn't accept -KPIC any more. | ||
4002 | icc* | ifort*) | ||
4003 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
4004 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' | ||
4005 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' | ||
4006 | ;; | ||
4007 | # Lahey Fortran 8.1. | ||
4008 | lf95*) | ||
4009 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
4010 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' | ||
4011 | _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' | ||
4012 | ;; | ||
4013 | pgcc* | pgf77* | pgf90* | pgf95*) | ||
4014 | # Portland Group compilers (*not* the Pentium gcc compiler, | ||
4015 | # which looks to be a dead project) | ||
4016 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
4017 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' | ||
4018 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' | ||
4019 | ;; | ||
4020 | ccc*) | ||
4021 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
4022 | # All Alpha code is PIC. | ||
4023 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' | ||
4024 | ;; | ||
4025 | xl*) | ||
4026 | # IBM XL C 8.0/Fortran 10.1 on PPC | ||
4027 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
4028 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' | ||
4029 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' | ||
4030 | ;; | ||
4031 | *) | ||
4032 | case `$CC -V 2>&1 | sed 5q` in | ||
4033 | *Sun\ C*) | ||
4034 | # Sun C 5.9 | ||
4035 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' | ||
4036 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' | ||
4037 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
4038 | ;; | ||
4039 | *Sun\ F*) | ||
4040 | # Sun Fortran 8.3 passes all unrecognized flags to the linker | ||
4041 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' | ||
4042 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' | ||
4043 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='' | ||
4044 | ;; | ||
4045 | esac | ||
4046 | ;; | ||
4047 | esac | ||
4048 | ;; | ||
4049 | |||
4050 | newsos6) | ||
4051 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' | ||
4052 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' | ||
4053 | ;; | ||
4054 | |||
4055 | *nto* | *qnx*) | ||
4056 | # QNX uses GNU C++, but need to define -shared option too, otherwise | ||
4057 | # it will coredump. | ||
4058 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' | ||
4059 | ;; | ||
4060 | |||
4061 | osf3* | osf4* | osf5*) | ||
4062 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
4063 | # All OSF/1 code is PIC. | ||
4064 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' | ||
4065 | ;; | ||
4066 | |||
4067 | rdos*) | ||
4068 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' | ||
4069 | ;; | ||
4070 | |||
4071 | solaris*) | ||
4072 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' | ||
4073 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' | ||
4074 | case $cc_basename in | ||
4075 | f77* | f90* | f95*) | ||
4076 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; | ||
4077 | *) | ||
4078 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; | ||
4079 | esac | ||
4080 | ;; | ||
4081 | |||
4082 | sunos4*) | ||
4083 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' | ||
4084 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' | ||
4085 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' | ||
4086 | ;; | ||
4087 | |||
4088 | sysv4 | sysv4.2uw2* | sysv4.3*) | ||
4089 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
4090 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' | ||
4091 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' | ||
4092 | ;; | ||
4093 | |||
4094 | sysv4*MP*) | ||
4095 | if test -d /usr/nec ;then | ||
4096 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' | ||
4097 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' | ||
4098 | fi | ||
4099 | ;; | ||
4100 | |||
4101 | sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) | ||
4102 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
4103 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' | ||
4104 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' | ||
4105 | ;; | ||
4106 | |||
4107 | unicos*) | ||
4108 | _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | ||
4109 | _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no | ||
4110 | ;; | ||
4111 | |||
4112 | uts4*) | ||
4113 | _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' | ||
4114 | _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' | ||
4115 | ;; | ||
4116 | |||
4117 | *) | ||
4118 | _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no | ||
4119 | ;; | ||
4120 | esac | ||
4121 | fi | ||
4122 | ]) | ||
4123 | case $host_os in | ||
4124 | # For platforms which do not support PIC, -DPIC is meaningless: | ||
4125 | *djgpp*) | ||
4126 | _LT_TAGVAR(lt_prog_compiler_pic, $1)= | ||
4127 | ;; | ||
4128 | *) | ||
4129 | _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" | ||
4130 | ;; | ||
4131 | esac | ||
4132 | AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) | ||
4133 | _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], | ||
4134 | [How to pass a linker flag through the compiler]) | ||
4135 | |||
4136 | # | ||
4137 | # Check to make sure the PIC flag actually works. | ||
4138 | # | ||
4139 | if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then | ||
4140 | _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], | ||
4141 | [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], | ||
4142 | [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], | ||
4143 | [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in | ||
4144 | "" | " "*) ;; | ||
4145 | *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; | ||
4146 | esac], | ||
4147 | [_LT_TAGVAR(lt_prog_compiler_pic, $1)= | ||
4148 | _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) | ||
4149 | fi | ||
4150 | _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], | ||
4151 | [Additional compiler flags for building library objects]) | ||
4152 | |||
4153 | # | ||
4154 | # Check to make sure the static flag actually works. | ||
4155 | # | ||
4156 | wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" | ||
4157 | _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], | ||
4158 | _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), | ||
4159 | $lt_tmp_static_flag, | ||
4160 | [], | ||
4161 | [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) | ||
4162 | _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], | ||
4163 | [Compiler flag to prevent dynamic linking]) | ||
4164 | ])# _LT_COMPILER_PIC | ||
4165 | |||
4166 | |||
4167 | # _LT_LINKER_SHLIBS([TAGNAME]) | ||
4168 | # ---------------------------- | ||
4169 | # See if the linker supports building shared libraries. | ||
4170 | m4_defun([_LT_LINKER_SHLIBS], | ||
4171 | [AC_REQUIRE([LT_PATH_LD])dnl | ||
4172 | AC_REQUIRE([LT_PATH_NM])dnl | ||
4173 | m4_require([_LT_FILEUTILS_DEFAULTS])dnl | ||
4174 | m4_require([_LT_DECL_EGREP])dnl | ||
4175 | m4_require([_LT_DECL_SED])dnl | ||
4176 | m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl | ||
4177 | m4_require([_LT_TAG_COMPILER])dnl | ||
4178 | AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) | ||
4179 | m4_if([$1], [CXX], [ | ||
4180 | _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' | ||
4181 | case $host_os in | ||
4182 | aix[[4-9]]*) | ||
4183 | # If we're using GNU nm, then we don't want the "-C" option. | ||
4184 | # -C means demangle to AIX nm, but means don't demangle with GNU nm | ||
4185 | if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then | ||
4186 | _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' | ||
4187 | else | ||
4188 | _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' | ||
4189 | fi | ||
4190 | ;; | ||
4191 | pw32*) | ||
4192 | _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" | ||
4193 | ;; | ||
4194 | cygwin* | mingw* | cegcc*) | ||
4195 | _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' | ||
4196 | ;; | ||
4197 | linux* | k*bsd*-gnu) | ||
4198 | _LT_TAGVAR(link_all_deplibs, $1)=no | ||
4199 | ;; | ||
4200 | *) | ||
4201 | _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' | ||
4202 | ;; | ||
4203 | esac | ||
4204 | _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] | ||
4205 | ], [ | ||
4206 | runpath_var= | ||
4207 | _LT_TAGVAR(allow_undefined_flag, $1)= | ||
4208 | _LT_TAGVAR(always_export_symbols, $1)=no | ||
4209 | _LT_TAGVAR(archive_cmds, $1)= | ||
4210 | _LT_TAGVAR(archive_expsym_cmds, $1)= | ||
4211 | _LT_TAGVAR(compiler_needs_object, $1)=no | ||
4212 | _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no | ||
4213 | _LT_TAGVAR(export_dynamic_flag_spec, $1)= | ||
4214 | _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' | ||
4215 | _LT_TAGVAR(hardcode_automatic, $1)=no | ||
4216 | _LT_TAGVAR(hardcode_direct, $1)=no | ||
4217 | _LT_TAGVAR(hardcode_direct_absolute, $1)=no | ||
4218 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= | ||
4219 | _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= | ||
4220 | _LT_TAGVAR(hardcode_libdir_separator, $1)= | ||
4221 | _LT_TAGVAR(hardcode_minus_L, $1)=no | ||
4222 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported | ||
4223 | _LT_TAGVAR(inherit_rpath, $1)=no | ||
4224 | _LT_TAGVAR(link_all_deplibs, $1)=unknown | ||
4225 | _LT_TAGVAR(module_cmds, $1)= | ||
4226 | _LT_TAGVAR(module_expsym_cmds, $1)= | ||
4227 | _LT_TAGVAR(old_archive_from_new_cmds, $1)= | ||
4228 | _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= | ||
4229 | _LT_TAGVAR(thread_safe_flag_spec, $1)= | ||
4230 | _LT_TAGVAR(whole_archive_flag_spec, $1)= | ||
4231 | # include_expsyms should be a list of space-separated symbols to be *always* | ||
4232 | # included in the symbol list | ||
4233 | _LT_TAGVAR(include_expsyms, $1)= | ||
4234 | # exclude_expsyms can be an extended regexp of symbols to exclude | ||
4235 | # it will be wrapped by ` (' and `)$', so one must not match beginning or | ||
4236 | # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', | ||
4237 | # as well as any symbol that contains `d'. | ||
4238 | _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] | ||
4239 | # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out | ||
4240 | # platforms (ab)use it in PIC code, but their linkers get confused if | ||
4241 | # the symbol is explicitly referenced. Since portable code cannot | ||
4242 | # rely on this symbol name, it's probably fine to never include it in | ||
4243 | # preloaded symbol tables. | ||
4244 | # Exclude shared library initialization/finalization symbols. | ||
4245 | dnl Note also adjust exclude_expsyms for C++ above. | ||
4246 | extract_expsyms_cmds= | ||
4247 | |||
4248 | case $host_os in | ||
4249 | cygwin* | mingw* | pw32* | cegcc*) | ||
4250 | # FIXME: the MSVC++ port hasn't been tested in a loooong time | ||
4251 | # When not using gcc, we currently assume that we are using | ||
4252 | # Microsoft Visual C++. | ||
4253 | if test "$GCC" != yes; then | ||
4254 | with_gnu_ld=no | ||
4255 | fi | ||
4256 | ;; | ||
4257 | interix*) | ||
4258 | # we just hope/assume this is gcc and not c89 (= MSVC++) | ||
4259 | with_gnu_ld=yes | ||
4260 | ;; | ||
4261 | openbsd*) | ||
4262 | with_gnu_ld=no | ||
4263 | ;; | ||
4264 | linux* | k*bsd*-gnu) | ||
4265 | _LT_TAGVAR(link_all_deplibs, $1)=no | ||
4266 | ;; | ||
4267 | esac | ||
4268 | |||
4269 | _LT_TAGVAR(ld_shlibs, $1)=yes | ||
4270 | if test "$with_gnu_ld" = yes; then | ||
4271 | # If archive_cmds runs LD, not CC, wlarc should be empty | ||
4272 | wlarc='${wl}' | ||
4273 | |||
4274 | # Set some defaults for GNU ld with shared library support. These | ||
4275 | # are reset later if shared libraries are not supported. Putting them | ||
4276 | # here allows them to be overridden if necessary. | ||
4277 | runpath_var=LD_RUN_PATH | ||
4278 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' | ||
4279 | _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' | ||
4280 | # ancient GNU ld didn't support --whole-archive et. al. | ||
4281 | if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then | ||
4282 | _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' | ||
4283 | else | ||
4284 | _LT_TAGVAR(whole_archive_flag_spec, $1)= | ||
4285 | fi | ||
4286 | supports_anon_versioning=no | ||
4287 | case `$LD -v 2>&1` in | ||
4288 | *GNU\ gold*) supports_anon_versioning=yes ;; | ||
4289 | *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 | ||
4290 | *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... | ||
4291 | *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... | ||
4292 | *\ 2.11.*) ;; # other 2.11 versions | ||
4293 | *) supports_anon_versioning=yes ;; | ||
4294 | esac | ||
4295 | |||
4296 | # See if GNU ld supports shared libraries. | ||
4297 | case $host_os in | ||
4298 | aix[[3-9]]*) | ||
4299 | # On AIX/PPC, the GNU linker is very broken | ||
4300 | if test "$host_cpu" != ia64; then | ||
4301 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
4302 | cat <<_LT_EOF 1>&2 | ||
4303 | |||
4304 | *** Warning: the GNU linker, at least up to release 2.9.1, is reported | ||
4305 | *** to be unable to reliably create shared libraries on AIX. | ||
4306 | *** Therefore, libtool is disabling shared libraries support. If you | ||
4307 | *** really care for shared libraries, you may want to modify your PATH | ||
4308 | *** so that a non-GNU linker is found, and then restart. | ||
4309 | |||
4310 | _LT_EOF | ||
4311 | fi | ||
4312 | ;; | ||
4313 | |||
4314 | amigaos*) | ||
4315 | case $host_cpu in | ||
4316 | powerpc) | ||
4317 | # see comment about AmigaOS4 .so support | ||
4318 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | ||
4319 | _LT_TAGVAR(archive_expsym_cmds, $1)='' | ||
4320 | ;; | ||
4321 | m68k) | ||
4322 | _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' | ||
4323 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' | ||
4324 | _LT_TAGVAR(hardcode_minus_L, $1)=yes | ||
4325 | ;; | ||
4326 | esac | ||
4327 | ;; | ||
4328 | |||
4329 | beos*) | ||
4330 | if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then | ||
4331 | _LT_TAGVAR(allow_undefined_flag, $1)=unsupported | ||
4332 | # Joseph Beckenbach <jrb3@best.com> says some releases of gcc | ||
4333 | # support --undefined. This deserves some investigation. FIXME | ||
4334 | _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | ||
4335 | else | ||
4336 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
4337 | fi | ||
4338 | ;; | ||
4339 | |||
4340 | cygwin* | mingw* | pw32* | cegcc*) | ||
4341 | # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, | ||
4342 | # as there is no search path for DLLs. | ||
4343 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' | ||
4344 | _LT_TAGVAR(allow_undefined_flag, $1)=unsupported | ||
4345 | _LT_TAGVAR(always_export_symbols, $1)=no | ||
4346 | _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes | ||
4347 | _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' | ||
4348 | |||
4349 | if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then | ||
4350 | _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' | ||
4351 | # If the export-symbols file already is a .def file (1st line | ||
4352 | # is EXPORTS), use it as is; otherwise, prepend... | ||
4353 | _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then | ||
4354 | cp $export_symbols $output_objdir/$soname.def; | ||
4355 | else | ||
4356 | echo EXPORTS > $output_objdir/$soname.def; | ||
4357 | cat $export_symbols >> $output_objdir/$soname.def; | ||
4358 | fi~ | ||
4359 | $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' | ||
4360 | else | ||
4361 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
4362 | fi | ||
4363 | ;; | ||
4364 | |||
4365 | interix[[3-9]]*) | ||
4366 | _LT_TAGVAR(hardcode_direct, $1)=no | ||
4367 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
4368 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' | ||
4369 | _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' | ||
4370 | # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. | ||
4371 | # Instead, shared libraries are loaded at an image base (0x10000000 by | ||
4372 | # default) and relocated if they conflict, which is a slow very memory | ||
4373 | # consuming and fragmenting process. To avoid this, we pick a random, | ||
4374 | # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link | ||
4375 | # time. Moving up from 0x10000000 also allows more sbrk(2) space. | ||
4376 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' | ||
4377 | _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' | ||
4378 | ;; | ||
4379 | |||
4380 | gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) | ||
4381 | tmp_diet=no | ||
4382 | if test "$host_os" = linux-dietlibc; then | ||
4383 | case $cc_basename in | ||
4384 | diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) | ||
4385 | esac | ||
4386 | fi | ||
4387 | if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ | ||
4388 | && test "$tmp_diet" = no | ||
4389 | then | ||
4390 | tmp_addflag= | ||
4391 | tmp_sharedflag='-shared' | ||
4392 | case $cc_basename,$host_cpu in | ||
4393 | pgcc*) # Portland Group C compiler | ||
4394 | _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' | ||
4395 | tmp_addflag=' $pic_flag' | ||
4396 | ;; | ||
4397 | pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers | ||
4398 | _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' | ||
4399 | tmp_addflag=' $pic_flag -Mnomain' ;; | ||
4400 | ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 | ||
4401 | tmp_addflag=' -i_dynamic' ;; | ||
4402 | efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 | ||
4403 | tmp_addflag=' -i_dynamic -nofor_main' ;; | ||
4404 | ifc* | ifort*) # Intel Fortran compiler | ||
4405 | tmp_addflag=' -nofor_main' ;; | ||
4406 | lf95*) # Lahey Fortran 8.1 | ||
4407 | _LT_TAGVAR(whole_archive_flag_spec, $1)= | ||
4408 | tmp_sharedflag='--shared' ;; | ||
4409 | xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) | ||
4410 | tmp_sharedflag='-qmkshrobj' | ||
4411 | tmp_addflag= ;; | ||
4412 | esac | ||
4413 | case `$CC -V 2>&1 | sed 5q` in | ||
4414 | *Sun\ C*) # Sun C 5.9 | ||
4415 | _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' | ||
4416 | _LT_TAGVAR(compiler_needs_object, $1)=yes | ||
4417 | tmp_sharedflag='-G' ;; | ||
4418 | *Sun\ F*) # Sun Fortran 8.3 | ||
4419 | tmp_sharedflag='-G' ;; | ||
4420 | esac | ||
4421 | _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | ||
4422 | |||
4423 | if test "x$supports_anon_versioning" = xyes; then | ||
4424 | _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ | ||
4425 | cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ | ||
4426 | echo "local: *; };" >> $output_objdir/$libname.ver~ | ||
4427 | $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' | ||
4428 | fi | ||
4429 | |||
4430 | case $cc_basename in | ||
4431 | xlf*) | ||
4432 | # IBM XL Fortran 10.1 on PPC cannot create shared libs itself | ||
4433 | _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' | ||
4434 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= | ||
4435 | _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' | ||
4436 | _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' | ||
4437 | if test "x$supports_anon_versioning" = xyes; then | ||
4438 | _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ | ||
4439 | cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ | ||
4440 | echo "local: *; };" >> $output_objdir/$libname.ver~ | ||
4441 | $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' | ||
4442 | fi | ||
4443 | ;; | ||
4444 | esac | ||
4445 | else | ||
4446 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
4447 | fi | ||
4448 | ;; | ||
4449 | |||
4450 | netbsd* | netbsdelf*-gnu) | ||
4451 | if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then | ||
4452 | _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' | ||
4453 | wlarc= | ||
4454 | else | ||
4455 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | ||
4456 | _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' | ||
4457 | fi | ||
4458 | ;; | ||
4459 | |||
4460 | solaris*) | ||
4461 | if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then | ||
4462 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
4463 | cat <<_LT_EOF 1>&2 | ||
4464 | |||
4465 | *** Warning: The releases 2.8.* of the GNU linker cannot reliably | ||
4466 | *** create shared libraries on Solaris systems. Therefore, libtool | ||
4467 | *** is disabling shared libraries support. We urge you to upgrade GNU | ||
4468 | *** binutils to release 2.9.1 or newer. Another option is to modify | ||
4469 | *** your PATH or compiler configuration so that the native linker is | ||
4470 | *** used, and then restart. | ||
4471 | |||
4472 | _LT_EOF | ||
4473 | elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then | ||
4474 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | ||
4475 | _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' | ||
4476 | else | ||
4477 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
4478 | fi | ||
4479 | ;; | ||
4480 | |||
4481 | sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) | ||
4482 | case `$LD -v 2>&1` in | ||
4483 | *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) | ||
4484 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
4485 | cat <<_LT_EOF 1>&2 | ||
4486 | |||
4487 | *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not | ||
4488 | *** reliably create shared libraries on SCO systems. Therefore, libtool | ||
4489 | *** is disabling shared libraries support. We urge you to upgrade GNU | ||
4490 | *** binutils to release 2.16.91.0.3 or newer. Another option is to modify | ||
4491 | *** your PATH or compiler configuration so that the native linker is | ||
4492 | *** used, and then restart. | ||
4493 | |||
4494 | _LT_EOF | ||
4495 | ;; | ||
4496 | *) | ||
4497 | # For security reasons, it is highly recommended that you always | ||
4498 | # use absolute paths for naming shared libraries, and exclude the | ||
4499 | # DT_RUNPATH tag from executables and libraries. But doing so | ||
4500 | # requires that you compile everything twice, which is a pain. | ||
4501 | if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then | ||
4502 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' | ||
4503 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | ||
4504 | _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' | ||
4505 | else | ||
4506 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
4507 | fi | ||
4508 | ;; | ||
4509 | esac | ||
4510 | ;; | ||
4511 | |||
4512 | sunos4*) | ||
4513 | _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' | ||
4514 | wlarc= | ||
4515 | _LT_TAGVAR(hardcode_direct, $1)=yes | ||
4516 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
4517 | ;; | ||
4518 | |||
4519 | *) | ||
4520 | if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then | ||
4521 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | ||
4522 | _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' | ||
4523 | else | ||
4524 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
4525 | fi | ||
4526 | ;; | ||
4527 | esac | ||
4528 | |||
4529 | if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then | ||
4530 | runpath_var= | ||
4531 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= | ||
4532 | _LT_TAGVAR(export_dynamic_flag_spec, $1)= | ||
4533 | _LT_TAGVAR(whole_archive_flag_spec, $1)= | ||
4534 | fi | ||
4535 | else | ||
4536 | # PORTME fill in a description of your system's linker (not GNU ld) | ||
4537 | case $host_os in | ||
4538 | aix3*) | ||
4539 | _LT_TAGVAR(allow_undefined_flag, $1)=unsupported | ||
4540 | _LT_TAGVAR(always_export_symbols, $1)=yes | ||
4541 | _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' | ||
4542 | # Note: this linker hardcodes the directories in LIBPATH if there | ||
4543 | # are no directories specified by -L. | ||
4544 | _LT_TAGVAR(hardcode_minus_L, $1)=yes | ||
4545 | if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then | ||
4546 | # Neither direct hardcoding nor static linking is supported with a | ||
4547 | # broken collect2. | ||
4548 | _LT_TAGVAR(hardcode_direct, $1)=unsupported | ||
4549 | fi | ||
4550 | ;; | ||
4551 | |||
4552 | aix[[4-9]]*) | ||
4553 | if test "$host_cpu" = ia64; then | ||
4554 | # On IA64, the linker does run time linking by default, so we don't | ||
4555 | # have to do anything special. | ||
4556 | aix_use_runtimelinking=no | ||
4557 | exp_sym_flag='-Bexport' | ||
4558 | no_entry_flag="" | ||
4559 | else | ||
4560 | # If we're using GNU nm, then we don't want the "-C" option. | ||
4561 | # -C means demangle to AIX nm, but means don't demangle with GNU nm | ||
4562 | if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then | ||
4563 | _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' | ||
4564 | else | ||
4565 | _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' | ||
4566 | fi | ||
4567 | aix_use_runtimelinking=no | ||
4568 | |||
4569 | # Test if we are trying to use run time linking or normal | ||
4570 | # AIX style linking. If -brtl is somewhere in LDFLAGS, we | ||
4571 | # need to do runtime linking. | ||
4572 | case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) | ||
4573 | for ld_flag in $LDFLAGS; do | ||
4574 | if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then | ||
4575 | aix_use_runtimelinking=yes | ||
4576 | break | ||
4577 | fi | ||
4578 | done | ||
4579 | ;; | ||
4580 | esac | ||
4581 | |||
4582 | exp_sym_flag='-bexport' | ||
4583 | no_entry_flag='-bnoentry' | ||
4584 | fi | ||
4585 | |||
4586 | # When large executables or shared objects are built, AIX ld can | ||
4587 | # have problems creating the table of contents. If linking a library | ||
4588 | # or program results in "error TOC overflow" add -mminimal-toc to | ||
4589 | # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not | ||
4590 | # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. | ||
4591 | |||
4592 | _LT_TAGVAR(archive_cmds, $1)='' | ||
4593 | _LT_TAGVAR(hardcode_direct, $1)=yes | ||
4594 | _LT_TAGVAR(hardcode_direct_absolute, $1)=yes | ||
4595 | _LT_TAGVAR(hardcode_libdir_separator, $1)=':' | ||
4596 | _LT_TAGVAR(link_all_deplibs, $1)=yes | ||
4597 | _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' | ||
4598 | |||
4599 | if test "$GCC" = yes; then | ||
4600 | case $host_os in aix4.[[012]]|aix4.[[012]].*) | ||
4601 | # We only want to do this on AIX 4.2 and lower, the check | ||
4602 | # below for broken collect2 doesn't work under 4.3+ | ||
4603 | collect2name=`${CC} -print-prog-name=collect2` | ||
4604 | if test -f "$collect2name" && | ||
4605 | strings "$collect2name" | $GREP resolve_lib_name >/dev/null | ||
4606 | then | ||
4607 | # We have reworked collect2 | ||
4608 | : | ||
4609 | else | ||
4610 | # We have old collect2 | ||
4611 | _LT_TAGVAR(hardcode_direct, $1)=unsupported | ||
4612 | # It fails to find uninstalled libraries when the uninstalled | ||
4613 | # path is not listed in the libpath. Setting hardcode_minus_L | ||
4614 | # to unsupported forces relinking | ||
4615 | _LT_TAGVAR(hardcode_minus_L, $1)=yes | ||
4616 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' | ||
4617 | _LT_TAGVAR(hardcode_libdir_separator, $1)= | ||
4618 | fi | ||
4619 | ;; | ||
4620 | esac | ||
4621 | shared_flag='-shared' | ||
4622 | if test "$aix_use_runtimelinking" = yes; then | ||
4623 | shared_flag="$shared_flag "'${wl}-G' | ||
4624 | fi | ||
4625 | _LT_TAGVAR(link_all_deplibs, $1)=no | ||
4626 | else | ||
4627 | # not using gcc | ||
4628 | if test "$host_cpu" = ia64; then | ||
4629 | # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release | ||
4630 | # chokes on -Wl,-G. The following line is correct: | ||
4631 | shared_flag='-G' | ||
4632 | else | ||
4633 | if test "$aix_use_runtimelinking" = yes; then | ||
4634 | shared_flag='${wl}-G' | ||
4635 | else | ||
4636 | shared_flag='${wl}-bM:SRE' | ||
4637 | fi | ||
4638 | fi | ||
4639 | fi | ||
4640 | |||
4641 | _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' | ||
4642 | # It seems that -bexpall does not export symbols beginning with | ||
4643 | # underscore (_), so it is better to generate a list of symbols to export. | ||
4644 | _LT_TAGVAR(always_export_symbols, $1)=yes | ||
4645 | if test "$aix_use_runtimelinking" = yes; then | ||
4646 | # Warning - without using the other runtime loading flags (-brtl), | ||
4647 | # -berok will link without error, but may produce a broken library. | ||
4648 | _LT_TAGVAR(allow_undefined_flag, $1)='-berok' | ||
4649 | # Determine the default libpath from the value encoded in an | ||
4650 | # empty executable. | ||
4651 | _LT_SYS_MODULE_PATH_AIX | ||
4652 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" | ||
4653 | _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" | ||
4654 | else | ||
4655 | if test "$host_cpu" = ia64; then | ||
4656 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' | ||
4657 | _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" | ||
4658 | _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" | ||
4659 | else | ||
4660 | # Determine the default libpath from the value encoded in an | ||
4661 | # empty executable. | ||
4662 | _LT_SYS_MODULE_PATH_AIX | ||
4663 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" | ||
4664 | # Warning - without using the other run time loading flags, | ||
4665 | # -berok will link without error, but may produce a broken library. | ||
4666 | _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' | ||
4667 | _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' | ||
4668 | # Exported symbols can be pulled into shared objects from archives | ||
4669 | _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' | ||
4670 | _LT_TAGVAR(archive_cmds_need_lc, $1)=yes | ||
4671 | # This is similar to how AIX traditionally builds its shared libraries. | ||
4672 | _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' | ||
4673 | fi | ||
4674 | fi | ||
4675 | ;; | ||
4676 | |||
4677 | amigaos*) | ||
4678 | case $host_cpu in | ||
4679 | powerpc) | ||
4680 | # see comment about AmigaOS4 .so support | ||
4681 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | ||
4682 | _LT_TAGVAR(archive_expsym_cmds, $1)='' | ||
4683 | ;; | ||
4684 | m68k) | ||
4685 | _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' | ||
4686 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' | ||
4687 | _LT_TAGVAR(hardcode_minus_L, $1)=yes | ||
4688 | ;; | ||
4689 | esac | ||
4690 | ;; | ||
4691 | |||
4692 | bsdi[[45]]*) | ||
4693 | _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic | ||
4694 | ;; | ||
4695 | |||
4696 | cygwin* | mingw* | pw32* | cegcc*) | ||
4697 | # When not using gcc, we currently assume that we are using | ||
4698 | # Microsoft Visual C++. | ||
4699 | # hardcode_libdir_flag_spec is actually meaningless, as there is | ||
4700 | # no search path for DLLs. | ||
4701 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' | ||
4702 | _LT_TAGVAR(allow_undefined_flag, $1)=unsupported | ||
4703 | # Tell ltmain to make .lib files, not .a files. | ||
4704 | libext=lib | ||
4705 | # Tell ltmain to make .dll files, not .so files. | ||
4706 | shrext_cmds=".dll" | ||
4707 | # FIXME: Setting linknames here is a bad hack. | ||
4708 | _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' | ||
4709 | # The linker will automatically build a .lib file if we build a DLL. | ||
4710 | _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' | ||
4711 | # FIXME: Should let the user specify the lib program. | ||
4712 | _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' | ||
4713 | _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' | ||
4714 | _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes | ||
4715 | ;; | ||
4716 | |||
4717 | darwin* | rhapsody*) | ||
4718 | _LT_DARWIN_LINKER_FEATURES($1) | ||
4719 | ;; | ||
4720 | |||
4721 | dgux*) | ||
4722 | _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' | ||
4723 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' | ||
4724 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
4725 | ;; | ||
4726 | |||
4727 | freebsd1*) | ||
4728 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
4729 | ;; | ||
4730 | |||
4731 | # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor | ||
4732 | # support. Future versions do this automatically, but an explicit c++rt0.o | ||
4733 | # does not break anything, and helps significantly (at the cost of a little | ||
4734 | # extra space). | ||
4735 | freebsd2.2*) | ||
4736 | _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' | ||
4737 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' | ||
4738 | _LT_TAGVAR(hardcode_direct, $1)=yes | ||
4739 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
4740 | ;; | ||
4741 | |||
4742 | # Unfortunately, older versions of FreeBSD 2 do not have this feature. | ||
4743 | freebsd2*) | ||
4744 | _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' | ||
4745 | _LT_TAGVAR(hardcode_direct, $1)=yes | ||
4746 | _LT_TAGVAR(hardcode_minus_L, $1)=yes | ||
4747 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
4748 | ;; | ||
4749 | |||
4750 | # FreeBSD 3 and greater uses gcc -shared to do shared libraries. | ||
4751 | freebsd* | dragonfly*) | ||
4752 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' | ||
4753 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' | ||
4754 | _LT_TAGVAR(hardcode_direct, $1)=yes | ||
4755 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
4756 | ;; | ||
4757 | |||
4758 | hpux9*) | ||
4759 | if test "$GCC" = yes; then | ||
4760 | _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' | ||
4761 | else | ||
4762 | _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' | ||
4763 | fi | ||
4764 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' | ||
4765 | _LT_TAGVAR(hardcode_libdir_separator, $1)=: | ||
4766 | _LT_TAGVAR(hardcode_direct, $1)=yes | ||
4767 | |||
4768 | # hardcode_minus_L: Not really in the search PATH, | ||
4769 | # but as the default location of the library. | ||
4770 | _LT_TAGVAR(hardcode_minus_L, $1)=yes | ||
4771 | _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' | ||
4772 | ;; | ||
4773 | |||
4774 | hpux10*) | ||
4775 | if test "$GCC" = yes -a "$with_gnu_ld" = no; then | ||
4776 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' | ||
4777 | else | ||
4778 | _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' | ||
4779 | fi | ||
4780 | if test "$with_gnu_ld" = no; then | ||
4781 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' | ||
4782 | _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' | ||
4783 | _LT_TAGVAR(hardcode_libdir_separator, $1)=: | ||
4784 | _LT_TAGVAR(hardcode_direct, $1)=yes | ||
4785 | _LT_TAGVAR(hardcode_direct_absolute, $1)=yes | ||
4786 | _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' | ||
4787 | # hardcode_minus_L: Not really in the search PATH, | ||
4788 | # but as the default location of the library. | ||
4789 | _LT_TAGVAR(hardcode_minus_L, $1)=yes | ||
4790 | fi | ||
4791 | ;; | ||
4792 | |||
4793 | hpux11*) | ||
4794 | if test "$GCC" = yes -a "$with_gnu_ld" = no; then | ||
4795 | case $host_cpu in | ||
4796 | hppa*64*) | ||
4797 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
4798 | ;; | ||
4799 | ia64*) | ||
4800 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' | ||
4801 | ;; | ||
4802 | *) | ||
4803 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' | ||
4804 | ;; | ||
4805 | esac | ||
4806 | else | ||
4807 | case $host_cpu in | ||
4808 | hppa*64*) | ||
4809 | _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
4810 | ;; | ||
4811 | ia64*) | ||
4812 | _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' | ||
4813 | ;; | ||
4814 | *) | ||
4815 | _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' | ||
4816 | ;; | ||
4817 | esac | ||
4818 | fi | ||
4819 | if test "$with_gnu_ld" = no; then | ||
4820 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' | ||
4821 | _LT_TAGVAR(hardcode_libdir_separator, $1)=: | ||
4822 | |||
4823 | case $host_cpu in | ||
4824 | hppa*64*|ia64*) | ||
4825 | _LT_TAGVAR(hardcode_direct, $1)=no | ||
4826 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
4827 | ;; | ||
4828 | *) | ||
4829 | _LT_TAGVAR(hardcode_direct, $1)=yes | ||
4830 | _LT_TAGVAR(hardcode_direct_absolute, $1)=yes | ||
4831 | _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' | ||
4832 | |||
4833 | # hardcode_minus_L: Not really in the search PATH, | ||
4834 | # but as the default location of the library. | ||
4835 | _LT_TAGVAR(hardcode_minus_L, $1)=yes | ||
4836 | ;; | ||
4837 | esac | ||
4838 | fi | ||
4839 | ;; | ||
4840 | |||
4841 | irix5* | irix6* | nonstopux*) | ||
4842 | if test "$GCC" = yes; then | ||
4843 | _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' | ||
4844 | # Try to use the -exported_symbol ld option, if it does not | ||
4845 | # work, assume that -exports_file does not work either and | ||
4846 | # implicitly export all symbols. | ||
4847 | save_LDFLAGS="$LDFLAGS" | ||
4848 | LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" | ||
4849 | AC_LINK_IFELSE(int foo(void) {}, | ||
4850 | _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' | ||
4851 | ) | ||
4852 | LDFLAGS="$save_LDFLAGS" | ||
4853 | else | ||
4854 | _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' | ||
4855 | _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' | ||
4856 | fi | ||
4857 | _LT_TAGVAR(archive_cmds_need_lc, $1)='no' | ||
4858 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' | ||
4859 | _LT_TAGVAR(hardcode_libdir_separator, $1)=: | ||
4860 | _LT_TAGVAR(inherit_rpath, $1)=yes | ||
4861 | _LT_TAGVAR(link_all_deplibs, $1)=yes | ||
4862 | ;; | ||
4863 | |||
4864 | netbsd* | netbsdelf*-gnu) | ||
4865 | if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then | ||
4866 | _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out | ||
4867 | else | ||
4868 | _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF | ||
4869 | fi | ||
4870 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' | ||
4871 | _LT_TAGVAR(hardcode_direct, $1)=yes | ||
4872 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
4873 | ;; | ||
4874 | |||
4875 | newsos6) | ||
4876 | _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' | ||
4877 | _LT_TAGVAR(hardcode_direct, $1)=yes | ||
4878 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' | ||
4879 | _LT_TAGVAR(hardcode_libdir_separator, $1)=: | ||
4880 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
4881 | ;; | ||
4882 | |||
4883 | *nto* | *qnx*) | ||
4884 | ;; | ||
4885 | |||
4886 | openbsd*) | ||
4887 | if test -f /usr/libexec/ld.so; then | ||
4888 | _LT_TAGVAR(hardcode_direct, $1)=yes | ||
4889 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
4890 | _LT_TAGVAR(hardcode_direct_absolute, $1)=yes | ||
4891 | if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then | ||
4892 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' | ||
4893 | _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' | ||
4894 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' | ||
4895 | _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' | ||
4896 | else | ||
4897 | case $host_os in | ||
4898 | openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) | ||
4899 | _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' | ||
4900 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' | ||
4901 | ;; | ||
4902 | *) | ||
4903 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' | ||
4904 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' | ||
4905 | ;; | ||
4906 | esac | ||
4907 | fi | ||
4908 | else | ||
4909 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
4910 | fi | ||
4911 | ;; | ||
4912 | |||
4913 | os2*) | ||
4914 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' | ||
4915 | _LT_TAGVAR(hardcode_minus_L, $1)=yes | ||
4916 | _LT_TAGVAR(allow_undefined_flag, $1)=unsupported | ||
4917 | _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' | ||
4918 | _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' | ||
4919 | ;; | ||
4920 | |||
4921 | osf3*) | ||
4922 | if test "$GCC" = yes; then | ||
4923 | _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' | ||
4924 | _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' | ||
4925 | else | ||
4926 | _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' | ||
4927 | _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' | ||
4928 | fi | ||
4929 | _LT_TAGVAR(archive_cmds_need_lc, $1)='no' | ||
4930 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' | ||
4931 | _LT_TAGVAR(hardcode_libdir_separator, $1)=: | ||
4932 | ;; | ||
4933 | |||
4934 | osf4* | osf5*) # as osf3* with the addition of -msym flag | ||
4935 | if test "$GCC" = yes; then | ||
4936 | _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' | ||
4937 | _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' | ||
4938 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' | ||
4939 | else | ||
4940 | _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' | ||
4941 | _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' | ||
4942 | _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~ | ||
4943 | $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' | ||
4944 | |||
4945 | # Both c and cxx compiler support -rpath directly | ||
4946 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' | ||
4947 | fi | ||
4948 | _LT_TAGVAR(archive_cmds_need_lc, $1)='no' | ||
4949 | _LT_TAGVAR(hardcode_libdir_separator, $1)=: | ||
4950 | ;; | ||
4951 | |||
4952 | solaris*) | ||
4953 | _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' | ||
4954 | if test "$GCC" = yes; then | ||
4955 | wlarc='${wl}' | ||
4956 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
4957 | _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ | ||
4958 | $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' | ||
4959 | else | ||
4960 | case `$CC -V 2>&1` in | ||
4961 | *"Compilers 5.0"*) | ||
4962 | wlarc='' | ||
4963 | _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' | ||
4964 | _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ | ||
4965 | $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' | ||
4966 | ;; | ||
4967 | *) | ||
4968 | wlarc='${wl}' | ||
4969 | _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' | ||
4970 | _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ | ||
4971 | $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' | ||
4972 | ;; | ||
4973 | esac | ||
4974 | fi | ||
4975 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' | ||
4976 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
4977 | case $host_os in | ||
4978 | solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; | ||
4979 | *) | ||
4980 | # The compiler driver will combine and reorder linker options, | ||
4981 | # but understands `-z linker_flag'. GCC discards it without `$wl', | ||
4982 | # but is careful enough not to reorder. | ||
4983 | # Supported since Solaris 2.6 (maybe 2.5.1?) | ||
4984 | if test "$GCC" = yes; then | ||
4985 | _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' | ||
4986 | else | ||
4987 | _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' | ||
4988 | fi | ||
4989 | ;; | ||
4990 | esac | ||
4991 | _LT_TAGVAR(link_all_deplibs, $1)=yes | ||
4992 | ;; | ||
4993 | |||
4994 | sunos4*) | ||
4995 | if test "x$host_vendor" = xsequent; then | ||
4996 | # Use $CC to link under sequent, because it throws in some extra .o | ||
4997 | # files that make .init and .fini sections work. | ||
4998 | _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' | ||
4999 | else | ||
5000 | _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' | ||
5001 | fi | ||
5002 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' | ||
5003 | _LT_TAGVAR(hardcode_direct, $1)=yes | ||
5004 | _LT_TAGVAR(hardcode_minus_L, $1)=yes | ||
5005 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
5006 | ;; | ||
5007 | |||
5008 | sysv4) | ||
5009 | case $host_vendor in | ||
5010 | sni) | ||
5011 | _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' | ||
5012 | _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? | ||
5013 | ;; | ||
5014 | siemens) | ||
5015 | ## LD is ld it makes a PLAMLIB | ||
5016 | ## CC just makes a GrossModule. | ||
5017 | _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' | ||
5018 | _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' | ||
5019 | _LT_TAGVAR(hardcode_direct, $1)=no | ||
5020 | ;; | ||
5021 | motorola) | ||
5022 | _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' | ||
5023 | _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie | ||
5024 | ;; | ||
5025 | esac | ||
5026 | runpath_var='LD_RUN_PATH' | ||
5027 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
5028 | ;; | ||
5029 | |||
5030 | sysv4.3*) | ||
5031 | _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' | ||
5032 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
5033 | _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' | ||
5034 | ;; | ||
5035 | |||
5036 | sysv4*MP*) | ||
5037 | if test -d /usr/nec; then | ||
5038 | _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' | ||
5039 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
5040 | runpath_var=LD_RUN_PATH | ||
5041 | hardcode_runpath_var=yes | ||
5042 | _LT_TAGVAR(ld_shlibs, $1)=yes | ||
5043 | fi | ||
5044 | ;; | ||
5045 | |||
5046 | sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) | ||
5047 | _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' | ||
5048 | _LT_TAGVAR(archive_cmds_need_lc, $1)=no | ||
5049 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
5050 | runpath_var='LD_RUN_PATH' | ||
5051 | |||
5052 | if test "$GCC" = yes; then | ||
5053 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
5054 | _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
5055 | else | ||
5056 | _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
5057 | _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
5058 | fi | ||
5059 | ;; | ||
5060 | |||
5061 | sysv5* | sco3.2v5* | sco5v6*) | ||
5062 | # Note: We can NOT use -z defs as we might desire, because we do not | ||
5063 | # link with -lc, and that would cause any symbols used from libc to | ||
5064 | # always be unresolved, which means just about no library would | ||
5065 | # ever link correctly. If we're not using GNU ld we use -z text | ||
5066 | # though, which does catch some bad symbols but isn't as heavy-handed | ||
5067 | # as -z defs. | ||
5068 | _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' | ||
5069 | _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' | ||
5070 | _LT_TAGVAR(archive_cmds_need_lc, $1)=no | ||
5071 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
5072 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' | ||
5073 | _LT_TAGVAR(hardcode_libdir_separator, $1)=':' | ||
5074 | _LT_TAGVAR(link_all_deplibs, $1)=yes | ||
5075 | _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' | ||
5076 | runpath_var='LD_RUN_PATH' | ||
5077 | |||
5078 | if test "$GCC" = yes; then | ||
5079 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
5080 | _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
5081 | else | ||
5082 | _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
5083 | _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
5084 | fi | ||
5085 | ;; | ||
5086 | |||
5087 | uts4*) | ||
5088 | _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' | ||
5089 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' | ||
5090 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
5091 | ;; | ||
5092 | |||
5093 | *) | ||
5094 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
5095 | ;; | ||
5096 | esac | ||
5097 | |||
5098 | if test x$host_vendor = xsni; then | ||
5099 | case $host in | ||
5100 | sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) | ||
5101 | _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' | ||
5102 | ;; | ||
5103 | esac | ||
5104 | fi | ||
5105 | fi | ||
5106 | ]) | ||
5107 | AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) | ||
5108 | test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no | ||
5109 | |||
5110 | _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld | ||
5111 | |||
5112 | _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl | ||
5113 | _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl | ||
5114 | _LT_DECL([], [extract_expsyms_cmds], [2], | ||
5115 | [The commands to extract the exported symbol list from a shared archive]) | ||
5116 | |||
5117 | # | ||
5118 | # Do we need to explicitly link libc? | ||
5119 | # | ||
5120 | case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in | ||
5121 | x|xyes) | ||
5122 | # Assume -lc should be added | ||
5123 | _LT_TAGVAR(archive_cmds_need_lc, $1)=yes | ||
5124 | |||
5125 | if test "$enable_shared" = yes && test "$GCC" = yes; then | ||
5126 | case $_LT_TAGVAR(archive_cmds, $1) in | ||
5127 | *'~'*) | ||
5128 | # FIXME: we may have to deal with multi-command sequences. | ||
5129 | ;; | ||
5130 | '$CC '*) | ||
5131 | # Test whether the compiler implicitly links with -lc since on some | ||
5132 | # systems, -lgcc has to come before -lc. If gcc already passes -lc | ||
5133 | # to ld, don't add -lc before -lgcc. | ||
5134 | AC_MSG_CHECKING([whether -lc should be explicitly linked in]) | ||
5135 | $RM conftest* | ||
5136 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | ||
5137 | |||
5138 | if AC_TRY_EVAL(ac_compile) 2>conftest.err; then | ||
5139 | soname=conftest | ||
5140 | lib=conftest | ||
5141 | libobjs=conftest.$ac_objext | ||
5142 | deplibs= | ||
5143 | wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) | ||
5144 | pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) | ||
5145 | compiler_flags=-v | ||
5146 | linker_flags=-v | ||
5147 | verstring= | ||
5148 | output_objdir=. | ||
5149 | libname=conftest | ||
5150 | lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) | ||
5151 | _LT_TAGVAR(allow_undefined_flag, $1)= | ||
5152 | if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) | ||
5153 | then | ||
5154 | _LT_TAGVAR(archive_cmds_need_lc, $1)=no | ||
5155 | else | ||
5156 | _LT_TAGVAR(archive_cmds_need_lc, $1)=yes | ||
5157 | fi | ||
5158 | _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag | ||
5159 | else | ||
5160 | cat conftest.err 1>&5 | ||
5161 | fi | ||
5162 | $RM conftest* | ||
5163 | AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) | ||
5164 | ;; | ||
5165 | esac | ||
5166 | fi | ||
5167 | ;; | ||
5168 | esac | ||
5169 | |||
5170 | _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], | ||
5171 | [Whether or not to add -lc for building shared libraries]) | ||
5172 | _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], | ||
5173 | [enable_shared_with_static_runtimes], [0], | ||
5174 | [Whether or not to disallow shared libs when runtime libs are static]) | ||
5175 | _LT_TAGDECL([], [export_dynamic_flag_spec], [1], | ||
5176 | [Compiler flag to allow reflexive dlopens]) | ||
5177 | _LT_TAGDECL([], [whole_archive_flag_spec], [1], | ||
5178 | [Compiler flag to generate shared objects directly from archives]) | ||
5179 | _LT_TAGDECL([], [compiler_needs_object], [1], | ||
5180 | [Whether the compiler copes with passing no objects directly]) | ||
5181 | _LT_TAGDECL([], [old_archive_from_new_cmds], [2], | ||
5182 | [Create an old-style archive from a shared archive]) | ||
5183 | _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], | ||
5184 | [Create a temporary old-style archive to link instead of a shared archive]) | ||
5185 | _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) | ||
5186 | _LT_TAGDECL([], [archive_expsym_cmds], [2]) | ||
5187 | _LT_TAGDECL([], [module_cmds], [2], | ||
5188 | [Commands used to build a loadable module if different from building | ||
5189 | a shared archive.]) | ||
5190 | _LT_TAGDECL([], [module_expsym_cmds], [2]) | ||
5191 | _LT_TAGDECL([], [with_gnu_ld], [1], | ||
5192 | [Whether we are building with GNU ld or not]) | ||
5193 | _LT_TAGDECL([], [allow_undefined_flag], [1], | ||
5194 | [Flag that allows shared libraries with undefined symbols to be built]) | ||
5195 | _LT_TAGDECL([], [no_undefined_flag], [1], | ||
5196 | [Flag that enforces no undefined symbols]) | ||
5197 | _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], | ||
5198 | [Flag to hardcode $libdir into a binary during linking. | ||
5199 | This must work even if $libdir does not exist]) | ||
5200 | _LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], | ||
5201 | [[If ld is used when linking, flag to hardcode $libdir into a binary | ||
5202 | during linking. This must work even if $libdir does not exist]]) | ||
5203 | _LT_TAGDECL([], [hardcode_libdir_separator], [1], | ||
5204 | [Whether we need a single "-rpath" flag with a separated argument]) | ||
5205 | _LT_TAGDECL([], [hardcode_direct], [0], | ||
5206 | [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes | ||
5207 | DIR into the resulting binary]) | ||
5208 | _LT_TAGDECL([], [hardcode_direct_absolute], [0], | ||
5209 | [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes | ||
5210 | DIR into the resulting binary and the resulting library dependency is | ||
5211 | "absolute", i.e impossible to change by setting ${shlibpath_var} if the | ||
5212 | library is relocated]) | ||
5213 | _LT_TAGDECL([], [hardcode_minus_L], [0], | ||
5214 | [Set to "yes" if using the -LDIR flag during linking hardcodes DIR | ||
5215 | into the resulting binary]) | ||
5216 | _LT_TAGDECL([], [hardcode_shlibpath_var], [0], | ||
5217 | [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR | ||
5218 | into the resulting binary]) | ||
5219 | _LT_TAGDECL([], [hardcode_automatic], [0], | ||
5220 | [Set to "yes" if building a shared library automatically hardcodes DIR | ||
5221 | into the library and all subsequent libraries and executables linked | ||
5222 | against it]) | ||
5223 | _LT_TAGDECL([], [inherit_rpath], [0], | ||
5224 | [Set to yes if linker adds runtime paths of dependent libraries | ||
5225 | to runtime path list]) | ||
5226 | _LT_TAGDECL([], [link_all_deplibs], [0], | ||
5227 | [Whether libtool must link a program against all its dependency libraries]) | ||
5228 | _LT_TAGDECL([], [fix_srcfile_path], [1], | ||
5229 | [Fix the shell variable $srcfile for the compiler]) | ||
5230 | _LT_TAGDECL([], [always_export_symbols], [0], | ||
5231 | [Set to "yes" if exported symbols are required]) | ||
5232 | _LT_TAGDECL([], [export_symbols_cmds], [2], | ||
5233 | [The commands to list exported symbols]) | ||
5234 | _LT_TAGDECL([], [exclude_expsyms], [1], | ||
5235 | [Symbols that should not be listed in the preloaded symbols]) | ||
5236 | _LT_TAGDECL([], [include_expsyms], [1], | ||
5237 | [Symbols that must always be exported]) | ||
5238 | _LT_TAGDECL([], [prelink_cmds], [2], | ||
5239 | [Commands necessary for linking programs (against libraries) with templates]) | ||
5240 | _LT_TAGDECL([], [file_list_spec], [1], | ||
5241 | [Specify filename containing input files]) | ||
5242 | dnl FIXME: Not yet implemented | ||
5243 | dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], | ||
5244 | dnl [Compiler flag to generate thread safe objects]) | ||
5245 | ])# _LT_LINKER_SHLIBS | ||
5246 | |||
5247 | |||
5248 | # _LT_LANG_C_CONFIG([TAG]) | ||
5249 | # ------------------------ | ||
5250 | # Ensure that the configuration variables for a C compiler are suitably | ||
5251 | # defined. These variables are subsequently used by _LT_CONFIG to write | ||
5252 | # the compiler configuration to `libtool'. | ||
5253 | m4_defun([_LT_LANG_C_CONFIG], | ||
5254 | [m4_require([_LT_DECL_EGREP])dnl | ||
5255 | lt_save_CC="$CC" | ||
5256 | AC_LANG_PUSH(C) | ||
5257 | |||
5258 | # Source file extension for C test sources. | ||
5259 | ac_ext=c | ||
5260 | |||
5261 | # Object file extension for compiled C test sources. | ||
5262 | objext=o | ||
5263 | _LT_TAGVAR(objext, $1)=$objext | ||
5264 | |||
5265 | # Code to be used in simple compile tests | ||
5266 | lt_simple_compile_test_code="int some_variable = 0;" | ||
5267 | |||
5268 | # Code to be used in simple link tests | ||
5269 | lt_simple_link_test_code='int main(){return(0);}' | ||
5270 | |||
5271 | _LT_TAG_COMPILER | ||
5272 | # Save the default compiler, since it gets overwritten when the other | ||
5273 | # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. | ||
5274 | compiler_DEFAULT=$CC | ||
5275 | |||
5276 | # save warnings/boilerplate of simple test code | ||
5277 | _LT_COMPILER_BOILERPLATE | ||
5278 | _LT_LINKER_BOILERPLATE | ||
5279 | |||
5280 | ## CAVEAT EMPTOR: | ||
5281 | ## There is no encapsulation within the following macros, do not change | ||
5282 | ## the running order or otherwise move them around unless you know exactly | ||
5283 | ## what you are doing... | ||
5284 | if test -n "$compiler"; then | ||
5285 | _LT_COMPILER_NO_RTTI($1) | ||
5286 | _LT_COMPILER_PIC($1) | ||
5287 | _LT_COMPILER_C_O($1) | ||
5288 | _LT_COMPILER_FILE_LOCKS($1) | ||
5289 | _LT_LINKER_SHLIBS($1) | ||
5290 | _LT_SYS_DYNAMIC_LINKER($1) | ||
5291 | _LT_LINKER_HARDCODE_LIBPATH($1) | ||
5292 | LT_SYS_DLOPEN_SELF | ||
5293 | _LT_CMD_STRIPLIB | ||
5294 | |||
5295 | # Report which library types will actually be built | ||
5296 | AC_MSG_CHECKING([if libtool supports shared libraries]) | ||
5297 | AC_MSG_RESULT([$can_build_shared]) | ||
5298 | |||
5299 | AC_MSG_CHECKING([whether to build shared libraries]) | ||
5300 | test "$can_build_shared" = "no" && enable_shared=no | ||
5301 | |||
5302 | # On AIX, shared libraries and static libraries use the same namespace, and | ||
5303 | # are all built from PIC. | ||
5304 | case $host_os in | ||
5305 | aix3*) | ||
5306 | test "$enable_shared" = yes && enable_static=no | ||
5307 | if test -n "$RANLIB"; then | ||
5308 | archive_cmds="$archive_cmds~\$RANLIB \$lib" | ||
5309 | postinstall_cmds='$RANLIB $lib' | ||
5310 | fi | ||
5311 | ;; | ||
5312 | |||
5313 | aix[[4-9]]*) | ||
5314 | if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then | ||
5315 | test "$enable_shared" = yes && enable_static=no | ||
5316 | fi | ||
5317 | ;; | ||
5318 | esac | ||
5319 | AC_MSG_RESULT([$enable_shared]) | ||
5320 | |||
5321 | AC_MSG_CHECKING([whether to build static libraries]) | ||
5322 | # Make sure either enable_shared or enable_static is yes. | ||
5323 | test "$enable_shared" = yes || enable_static=yes | ||
5324 | AC_MSG_RESULT([$enable_static]) | ||
5325 | |||
5326 | _LT_CONFIG($1) | ||
5327 | fi | ||
5328 | AC_LANG_POP | ||
5329 | CC="$lt_save_CC" | ||
5330 | ])# _LT_LANG_C_CONFIG | ||
5331 | |||
5332 | |||
5333 | # _LT_PROG_CXX | ||
5334 | # ------------ | ||
5335 | # Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ | ||
5336 | # compiler, we have our own version here. | ||
5337 | m4_defun([_LT_PROG_CXX], | ||
5338 | [ | ||
5339 | pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) | ||
5340 | AC_PROG_CXX | ||
5341 | if test -n "$CXX" && ( test "X$CXX" != "Xno" && | ||
5342 | ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || | ||
5343 | (test "X$CXX" != "Xg++"))) ; then | ||
5344 | AC_PROG_CXXCPP | ||
5345 | else | ||
5346 | _lt_caught_CXX_error=yes | ||
5347 | fi | ||
5348 | popdef([AC_MSG_ERROR]) | ||
5349 | ])# _LT_PROG_CXX | ||
5350 | |||
5351 | dnl aclocal-1.4 backwards compatibility: | ||
5352 | dnl AC_DEFUN([_LT_PROG_CXX], []) | ||
5353 | |||
5354 | |||
5355 | # _LT_LANG_CXX_CONFIG([TAG]) | ||
5356 | # -------------------------- | ||
5357 | # Ensure that the configuration variables for a C++ compiler are suitably | ||
5358 | # defined. These variables are subsequently used by _LT_CONFIG to write | ||
5359 | # the compiler configuration to `libtool'. | ||
5360 | m4_defun([_LT_LANG_CXX_CONFIG], | ||
5361 | [AC_REQUIRE([_LT_PROG_CXX])dnl | ||
5362 | m4_require([_LT_FILEUTILS_DEFAULTS])dnl | ||
5363 | m4_require([_LT_DECL_EGREP])dnl | ||
5364 | |||
5365 | AC_LANG_PUSH(C++) | ||
5366 | _LT_TAGVAR(archive_cmds_need_lc, $1)=no | ||
5367 | _LT_TAGVAR(allow_undefined_flag, $1)= | ||
5368 | _LT_TAGVAR(always_export_symbols, $1)=no | ||
5369 | _LT_TAGVAR(archive_expsym_cmds, $1)= | ||
5370 | _LT_TAGVAR(compiler_needs_object, $1)=no | ||
5371 | _LT_TAGVAR(export_dynamic_flag_spec, $1)= | ||
5372 | _LT_TAGVAR(hardcode_direct, $1)=no | ||
5373 | _LT_TAGVAR(hardcode_direct_absolute, $1)=no | ||
5374 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= | ||
5375 | _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= | ||
5376 | _LT_TAGVAR(hardcode_libdir_separator, $1)= | ||
5377 | _LT_TAGVAR(hardcode_minus_L, $1)=no | ||
5378 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported | ||
5379 | _LT_TAGVAR(hardcode_automatic, $1)=no | ||
5380 | _LT_TAGVAR(inherit_rpath, $1)=no | ||
5381 | _LT_TAGVAR(module_cmds, $1)= | ||
5382 | _LT_TAGVAR(module_expsym_cmds, $1)= | ||
5383 | _LT_TAGVAR(link_all_deplibs, $1)=unknown | ||
5384 | _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds | ||
5385 | _LT_TAGVAR(no_undefined_flag, $1)= | ||
5386 | _LT_TAGVAR(whole_archive_flag_spec, $1)= | ||
5387 | _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no | ||
5388 | |||
5389 | # Source file extension for C++ test sources. | ||
5390 | ac_ext=cpp | ||
5391 | |||
5392 | # Object file extension for compiled C++ test sources. | ||
5393 | objext=o | ||
5394 | _LT_TAGVAR(objext, $1)=$objext | ||
5395 | |||
5396 | # No sense in running all these tests if we already determined that | ||
5397 | # the CXX compiler isn't working. Some variables (like enable_shared) | ||
5398 | # are currently assumed to apply to all compilers on this platform, | ||
5399 | # and will be corrupted by setting them based on a non-working compiler. | ||
5400 | if test "$_lt_caught_CXX_error" != yes; then | ||
5401 | # Code to be used in simple compile tests | ||
5402 | lt_simple_compile_test_code="int some_variable = 0;" | ||
5403 | |||
5404 | # Code to be used in simple link tests | ||
5405 | lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' | ||
5406 | |||
5407 | # ltmain only uses $CC for tagged configurations so make sure $CC is set. | ||
5408 | _LT_TAG_COMPILER | ||
5409 | |||
5410 | # save warnings/boilerplate of simple test code | ||
5411 | _LT_COMPILER_BOILERPLATE | ||
5412 | _LT_LINKER_BOILERPLATE | ||
5413 | |||
5414 | # Allow CC to be a program name with arguments. | ||
5415 | lt_save_CC=$CC | ||
5416 | lt_save_LD=$LD | ||
5417 | lt_save_GCC=$GCC | ||
5418 | GCC=$GXX | ||
5419 | lt_save_with_gnu_ld=$with_gnu_ld | ||
5420 | lt_save_path_LD=$lt_cv_path_LD | ||
5421 | if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then | ||
5422 | lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx | ||
5423 | else | ||
5424 | $as_unset lt_cv_prog_gnu_ld | ||
5425 | fi | ||
5426 | if test -n "${lt_cv_path_LDCXX+set}"; then | ||
5427 | lt_cv_path_LD=$lt_cv_path_LDCXX | ||
5428 | else | ||
5429 | $as_unset lt_cv_path_LD | ||
5430 | fi | ||
5431 | test -z "${LDCXX+set}" || LD=$LDCXX | ||
5432 | CC=${CXX-"c++"} | ||
5433 | compiler=$CC | ||
5434 | _LT_TAGVAR(compiler, $1)=$CC | ||
5435 | _LT_CC_BASENAME([$compiler]) | ||
5436 | |||
5437 | if test -n "$compiler"; then | ||
5438 | # We don't want -fno-exception when compiling C++ code, so set the | ||
5439 | # no_builtin_flag separately | ||
5440 | if test "$GXX" = yes; then | ||
5441 | _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' | ||
5442 | else | ||
5443 | _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= | ||
5444 | fi | ||
5445 | |||
5446 | if test "$GXX" = yes; then | ||
5447 | # Set up default GNU C++ configuration | ||
5448 | |||
5449 | LT_PATH_LD | ||
5450 | |||
5451 | # Check if GNU C++ uses GNU ld as the underlying linker, since the | ||
5452 | # archiving commands below assume that GNU ld is being used. | ||
5453 | if test "$with_gnu_ld" = yes; then | ||
5454 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' | ||
5455 | _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' | ||
5456 | |||
5457 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' | ||
5458 | _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' | ||
5459 | |||
5460 | # If archive_cmds runs LD, not CC, wlarc should be empty | ||
5461 | # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to | ||
5462 | # investigate it a little bit more. (MM) | ||
5463 | wlarc='${wl}' | ||
5464 | |||
5465 | # ancient GNU ld didn't support --whole-archive et. al. | ||
5466 | if eval "`$CC -print-prog-name=ld` --help 2>&1" | | ||
5467 | $GREP 'no-whole-archive' > /dev/null; then | ||
5468 | _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' | ||
5469 | else | ||
5470 | _LT_TAGVAR(whole_archive_flag_spec, $1)= | ||
5471 | fi | ||
5472 | else | ||
5473 | with_gnu_ld=no | ||
5474 | wlarc= | ||
5475 | |||
5476 | # A generic and very simple default shared library creation | ||
5477 | # command for GNU C++ for the case where it uses the native | ||
5478 | # linker, instead of GNU ld. If possible, this setting should | ||
5479 | # overridden to take advantage of the native linker features on | ||
5480 | # the platform it is being used on. | ||
5481 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' | ||
5482 | fi | ||
5483 | |||
5484 | # Commands to make compiler produce verbose output that lists | ||
5485 | # what "hidden" libraries, object files and flags are used when | ||
5486 | # linking a shared library. | ||
5487 | output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' | ||
5488 | |||
5489 | else | ||
5490 | GXX=no | ||
5491 | with_gnu_ld=no | ||
5492 | wlarc= | ||
5493 | fi | ||
5494 | |||
5495 | # PORTME: fill in a description of your system's C++ link characteristics | ||
5496 | AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) | ||
5497 | _LT_TAGVAR(ld_shlibs, $1)=yes | ||
5498 | case $host_os in | ||
5499 | aix3*) | ||
5500 | # FIXME: insert proper C++ library support | ||
5501 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
5502 | ;; | ||
5503 | aix[[4-9]]*) | ||
5504 | if test "$host_cpu" = ia64; then | ||
5505 | # On IA64, the linker does run time linking by default, so we don't | ||
5506 | # have to do anything special. | ||
5507 | aix_use_runtimelinking=no | ||
5508 | exp_sym_flag='-Bexport' | ||
5509 | no_entry_flag="" | ||
5510 | else | ||
5511 | aix_use_runtimelinking=no | ||
5512 | |||
5513 | # Test if we are trying to use run time linking or normal | ||
5514 | # AIX style linking. If -brtl is somewhere in LDFLAGS, we | ||
5515 | # need to do runtime linking. | ||
5516 | case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) | ||
5517 | for ld_flag in $LDFLAGS; do | ||
5518 | case $ld_flag in | ||
5519 | *-brtl*) | ||
5520 | aix_use_runtimelinking=yes | ||
5521 | break | ||
5522 | ;; | ||
5523 | esac | ||
5524 | done | ||
5525 | ;; | ||
5526 | esac | ||
5527 | |||
5528 | exp_sym_flag='-bexport' | ||
5529 | no_entry_flag='-bnoentry' | ||
5530 | fi | ||
5531 | |||
5532 | # When large executables or shared objects are built, AIX ld can | ||
5533 | # have problems creating the table of contents. If linking a library | ||
5534 | # or program results in "error TOC overflow" add -mminimal-toc to | ||
5535 | # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not | ||
5536 | # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. | ||
5537 | |||
5538 | _LT_TAGVAR(archive_cmds, $1)='' | ||
5539 | _LT_TAGVAR(hardcode_direct, $1)=yes | ||
5540 | _LT_TAGVAR(hardcode_direct_absolute, $1)=yes | ||
5541 | _LT_TAGVAR(hardcode_libdir_separator, $1)=':' | ||
5542 | _LT_TAGVAR(link_all_deplibs, $1)=yes | ||
5543 | _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' | ||
5544 | |||
5545 | if test "$GXX" = yes; then | ||
5546 | case $host_os in aix4.[[012]]|aix4.[[012]].*) | ||
5547 | # We only want to do this on AIX 4.2 and lower, the check | ||
5548 | # below for broken collect2 doesn't work under 4.3+ | ||
5549 | collect2name=`${CC} -print-prog-name=collect2` | ||
5550 | if test -f "$collect2name" && | ||
5551 | strings "$collect2name" | $GREP resolve_lib_name >/dev/null | ||
5552 | then | ||
5553 | # We have reworked collect2 | ||
5554 | : | ||
5555 | else | ||
5556 | # We have old collect2 | ||
5557 | _LT_TAGVAR(hardcode_direct, $1)=unsupported | ||
5558 | # It fails to find uninstalled libraries when the uninstalled | ||
5559 | # path is not listed in the libpath. Setting hardcode_minus_L | ||
5560 | # to unsupported forces relinking | ||
5561 | _LT_TAGVAR(hardcode_minus_L, $1)=yes | ||
5562 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' | ||
5563 | _LT_TAGVAR(hardcode_libdir_separator, $1)= | ||
5564 | fi | ||
5565 | esac | ||
5566 | shared_flag='-shared' | ||
5567 | if test "$aix_use_runtimelinking" = yes; then | ||
5568 | shared_flag="$shared_flag "'${wl}-G' | ||
5569 | fi | ||
5570 | else | ||
5571 | # not using gcc | ||
5572 | if test "$host_cpu" = ia64; then | ||
5573 | # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release | ||
5574 | # chokes on -Wl,-G. The following line is correct: | ||
5575 | shared_flag='-G' | ||
5576 | else | ||
5577 | if test "$aix_use_runtimelinking" = yes; then | ||
5578 | shared_flag='${wl}-G' | ||
5579 | else | ||
5580 | shared_flag='${wl}-bM:SRE' | ||
5581 | fi | ||
5582 | fi | ||
5583 | fi | ||
5584 | |||
5585 | _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' | ||
5586 | # It seems that -bexpall does not export symbols beginning with | ||
5587 | # underscore (_), so it is better to generate a list of symbols to | ||
5588 | # export. | ||
5589 | _LT_TAGVAR(always_export_symbols, $1)=yes | ||
5590 | if test "$aix_use_runtimelinking" = yes; then | ||
5591 | # Warning - without using the other runtime loading flags (-brtl), | ||
5592 | # -berok will link without error, but may produce a broken library. | ||
5593 | _LT_TAGVAR(allow_undefined_flag, $1)='-berok' | ||
5594 | # Determine the default libpath from the value encoded in an empty | ||
5595 | # executable. | ||
5596 | _LT_SYS_MODULE_PATH_AIX | ||
5597 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" | ||
5598 | |||
5599 | _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" | ||
5600 | else | ||
5601 | if test "$host_cpu" = ia64; then | ||
5602 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' | ||
5603 | _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" | ||
5604 | _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" | ||
5605 | else | ||
5606 | # Determine the default libpath from the value encoded in an | ||
5607 | # empty executable. | ||
5608 | _LT_SYS_MODULE_PATH_AIX | ||
5609 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" | ||
5610 | # Warning - without using the other run time loading flags, | ||
5611 | # -berok will link without error, but may produce a broken library. | ||
5612 | _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' | ||
5613 | _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' | ||
5614 | # Exported symbols can be pulled into shared objects from archives | ||
5615 | _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' | ||
5616 | _LT_TAGVAR(archive_cmds_need_lc, $1)=yes | ||
5617 | # This is similar to how AIX traditionally builds its shared | ||
5618 | # libraries. | ||
5619 | _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' | ||
5620 | fi | ||
5621 | fi | ||
5622 | ;; | ||
5623 | |||
5624 | beos*) | ||
5625 | if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then | ||
5626 | _LT_TAGVAR(allow_undefined_flag, $1)=unsupported | ||
5627 | # Joseph Beckenbach <jrb3@best.com> says some releases of gcc | ||
5628 | # support --undefined. This deserves some investigation. FIXME | ||
5629 | _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | ||
5630 | else | ||
5631 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
5632 | fi | ||
5633 | ;; | ||
5634 | |||
5635 | chorus*) | ||
5636 | case $cc_basename in | ||
5637 | *) | ||
5638 | # FIXME: insert proper C++ library support | ||
5639 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
5640 | ;; | ||
5641 | esac | ||
5642 | ;; | ||
5643 | |||
5644 | cygwin* | mingw* | pw32* | cegcc*) | ||
5645 | # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, | ||
5646 | # as there is no search path for DLLs. | ||
5647 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' | ||
5648 | _LT_TAGVAR(allow_undefined_flag, $1)=unsupported | ||
5649 | _LT_TAGVAR(always_export_symbols, $1)=no | ||
5650 | _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes | ||
5651 | |||
5652 | if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then | ||
5653 | _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' | ||
5654 | # If the export-symbols file already is a .def file (1st line | ||
5655 | # is EXPORTS), use it as is; otherwise, prepend... | ||
5656 | _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then | ||
5657 | cp $export_symbols $output_objdir/$soname.def; | ||
5658 | else | ||
5659 | echo EXPORTS > $output_objdir/$soname.def; | ||
5660 | cat $export_symbols >> $output_objdir/$soname.def; | ||
5661 | fi~ | ||
5662 | $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' | ||
5663 | else | ||
5664 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
5665 | fi | ||
5666 | ;; | ||
5667 | darwin* | rhapsody*) | ||
5668 | _LT_DARWIN_LINKER_FEATURES($1) | ||
5669 | ;; | ||
5670 | |||
5671 | dgux*) | ||
5672 | case $cc_basename in | ||
5673 | ec++*) | ||
5674 | # FIXME: insert proper C++ library support | ||
5675 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
5676 | ;; | ||
5677 | ghcx*) | ||
5678 | # Green Hills C++ Compiler | ||
5679 | # FIXME: insert proper C++ library support | ||
5680 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
5681 | ;; | ||
5682 | *) | ||
5683 | # FIXME: insert proper C++ library support | ||
5684 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
5685 | ;; | ||
5686 | esac | ||
5687 | ;; | ||
5688 | |||
5689 | freebsd[[12]]*) | ||
5690 | # C++ shared libraries reported to be fairly broken before | ||
5691 | # switch to ELF | ||
5692 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
5693 | ;; | ||
5694 | |||
5695 | freebsd-elf*) | ||
5696 | _LT_TAGVAR(archive_cmds_need_lc, $1)=no | ||
5697 | ;; | ||
5698 | |||
5699 | freebsd* | dragonfly*) | ||
5700 | # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF | ||
5701 | # conventions | ||
5702 | _LT_TAGVAR(ld_shlibs, $1)=yes | ||
5703 | ;; | ||
5704 | |||
5705 | gnu*) | ||
5706 | ;; | ||
5707 | |||
5708 | hpux9*) | ||
5709 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' | ||
5710 | _LT_TAGVAR(hardcode_libdir_separator, $1)=: | ||
5711 | _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' | ||
5712 | _LT_TAGVAR(hardcode_direct, $1)=yes | ||
5713 | _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, | ||
5714 | # but as the default | ||
5715 | # location of the library. | ||
5716 | |||
5717 | case $cc_basename in | ||
5718 | CC*) | ||
5719 | # FIXME: insert proper C++ library support | ||
5720 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
5721 | ;; | ||
5722 | aCC*) | ||
5723 | _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${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' | ||
5724 | # Commands to make compiler produce verbose output that lists | ||
5725 | # what "hidden" libraries, object files and flags are used when | ||
5726 | # linking a shared library. | ||
5727 | # | ||
5728 | # There doesn't appear to be a way to prevent this compiler from | ||
5729 | # explicitly linking system object files so we need to strip them | ||
5730 | # from the output so that they don't get included in the library | ||
5731 | # dependencies. | ||
5732 | 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' | ||
5733 | ;; | ||
5734 | *) | ||
5735 | if test "$GXX" = yes; then | ||
5736 | _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' | ||
5737 | else | ||
5738 | # FIXME: insert proper C++ library support | ||
5739 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
5740 | fi | ||
5741 | ;; | ||
5742 | esac | ||
5743 | ;; | ||
5744 | |||
5745 | hpux10*|hpux11*) | ||
5746 | if test $with_gnu_ld = no; then | ||
5747 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' | ||
5748 | _LT_TAGVAR(hardcode_libdir_separator, $1)=: | ||
5749 | |||
5750 | case $host_cpu in | ||
5751 | hppa*64*|ia64*) | ||
5752 | ;; | ||
5753 | *) | ||
5754 | _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' | ||
5755 | ;; | ||
5756 | esac | ||
5757 | fi | ||
5758 | case $host_cpu in | ||
5759 | hppa*64*|ia64*) | ||
5760 | _LT_TAGVAR(hardcode_direct, $1)=no | ||
5761 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
5762 | ;; | ||
5763 | *) | ||
5764 | _LT_TAGVAR(hardcode_direct, $1)=yes | ||
5765 | _LT_TAGVAR(hardcode_direct_absolute, $1)=yes | ||
5766 | _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, | ||
5767 | # but as the default | ||
5768 | # location of the library. | ||
5769 | ;; | ||
5770 | esac | ||
5771 | |||
5772 | case $cc_basename in | ||
5773 | CC*) | ||
5774 | # FIXME: insert proper C++ library support | ||
5775 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
5776 | ;; | ||
5777 | aCC*) | ||
5778 | case $host_cpu in | ||
5779 | hppa*64*) | ||
5780 | _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' | ||
5781 | ;; | ||
5782 | ia64*) | ||
5783 | _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' | ||
5784 | ;; | ||
5785 | *) | ||
5786 | _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' | ||
5787 | ;; | ||
5788 | esac | ||
5789 | # Commands to make compiler produce verbose output that lists | ||
5790 | # what "hidden" libraries, object files and flags are used when | ||
5791 | # linking a shared library. | ||
5792 | # | ||
5793 | # There doesn't appear to be a way to prevent this compiler from | ||
5794 | # explicitly linking system object files so we need to strip them | ||
5795 | # from the output so that they don't get included in the library | ||
5796 | # dependencies. | ||
5797 | 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' | ||
5798 | ;; | ||
5799 | *) | ||
5800 | if test "$GXX" = yes; then | ||
5801 | if test $with_gnu_ld = no; then | ||
5802 | case $host_cpu in | ||
5803 | hppa*64*) | ||
5804 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' | ||
5805 | ;; | ||
5806 | ia64*) | ||
5807 | _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' | ||
5808 | ;; | ||
5809 | *) | ||
5810 | _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' | ||
5811 | ;; | ||
5812 | esac | ||
5813 | fi | ||
5814 | else | ||
5815 | # FIXME: insert proper C++ library support | ||
5816 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
5817 | fi | ||
5818 | ;; | ||
5819 | esac | ||
5820 | ;; | ||
5821 | |||
5822 | interix[[3-9]]*) | ||
5823 | _LT_TAGVAR(hardcode_direct, $1)=no | ||
5824 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
5825 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' | ||
5826 | _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' | ||
5827 | # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. | ||
5828 | # Instead, shared libraries are loaded at an image base (0x10000000 by | ||
5829 | # default) and relocated if they conflict, which is a slow very memory | ||
5830 | # consuming and fragmenting process. To avoid this, we pick a random, | ||
5831 | # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link | ||
5832 | # time. Moving up from 0x10000000 also allows more sbrk(2) space. | ||
5833 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' | ||
5834 | _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' | ||
5835 | ;; | ||
5836 | irix5* | irix6*) | ||
5837 | case $cc_basename in | ||
5838 | CC*) | ||
5839 | # SGI C++ | ||
5840 | _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' | ||
5841 | |||
5842 | # Archives containing C++ object files must be created using | ||
5843 | # "CC -ar", where "CC" is the IRIX C++ compiler. This is | ||
5844 | # necessary to make sure instantiated templates are included | ||
5845 | # in the archive. | ||
5846 | _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' | ||
5847 | ;; | ||
5848 | *) | ||
5849 | if test "$GXX" = yes; then | ||
5850 | if test "$with_gnu_ld" = no; then | ||
5851 | _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' | ||
5852 | else | ||
5853 | _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' | ||
5854 | fi | ||
5855 | fi | ||
5856 | _LT_TAGVAR(link_all_deplibs, $1)=yes | ||
5857 | ;; | ||
5858 | esac | ||
5859 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' | ||
5860 | _LT_TAGVAR(hardcode_libdir_separator, $1)=: | ||
5861 | _LT_TAGVAR(inherit_rpath, $1)=yes | ||
5862 | ;; | ||
5863 | |||
5864 | linux* | k*bsd*-gnu | kopensolaris*-gnu) | ||
5865 | case $cc_basename in | ||
5866 | KCC*) | ||
5867 | # Kuck and Associates, Inc. (KAI) C++ Compiler | ||
5868 | |||
5869 | # KCC will only create a shared library if the output file | ||
5870 | # ends with ".so" (or ".sl" for HP-UX), so rename the library | ||
5871 | # to its proper name (with version) after linking. | ||
5872 | _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' | ||
5873 | _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' | ||
5874 | # Commands to make compiler produce verbose output that lists | ||
5875 | # what "hidden" libraries, object files and flags are used when | ||
5876 | # linking a shared library. | ||
5877 | # | ||
5878 | # There doesn't appear to be a way to prevent this compiler from | ||
5879 | # explicitly linking system object files so we need to strip them | ||
5880 | # from the output so that they don't get included in the library | ||
5881 | # dependencies. | ||
5882 | 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' | ||
5883 | |||
5884 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' | ||
5885 | _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' | ||
5886 | |||
5887 | # Archives containing C++ object files must be created using | ||
5888 | # "CC -Bstatic", where "CC" is the KAI C++ compiler. | ||
5889 | _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' | ||
5890 | ;; | ||
5891 | icpc* | ecpc* ) | ||
5892 | # Intel C++ | ||
5893 | with_gnu_ld=yes | ||
5894 | # version 8.0 and above of icpc choke on multiply defined symbols | ||
5895 | # if we add $predep_objects and $postdep_objects, however 7.1 and | ||
5896 | # earlier do not add the objects themselves. | ||
5897 | case `$CC -V 2>&1` in | ||
5898 | *"Version 7."*) | ||
5899 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' | ||
5900 | _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' | ||
5901 | ;; | ||
5902 | *) # Version 8.0 or newer | ||
5903 | tmp_idyn= | ||
5904 | case $host_cpu in | ||
5905 | ia64*) tmp_idyn=' -i_dynamic';; | ||
5906 | esac | ||
5907 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | ||
5908 | _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' | ||
5909 | ;; | ||
5910 | esac | ||
5911 | _LT_TAGVAR(archive_cmds_need_lc, $1)=no | ||
5912 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' | ||
5913 | _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' | ||
5914 | _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' | ||
5915 | ;; | ||
5916 | pgCC* | pgcpp*) | ||
5917 | # Portland Group C++ compiler | ||
5918 | case `$CC -V` in | ||
5919 | *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) | ||
5920 | _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ | ||
5921 | rm -rf $tpldir~ | ||
5922 | $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ | ||
5923 | compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' | ||
5924 | _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ | ||
5925 | rm -rf $tpldir~ | ||
5926 | $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ | ||
5927 | $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ | ||
5928 | $RANLIB $oldlib' | ||
5929 | _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ | ||
5930 | rm -rf $tpldir~ | ||
5931 | $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ | ||
5932 | $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' | ||
5933 | _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ | ||
5934 | rm -rf $tpldir~ | ||
5935 | $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ | ||
5936 | $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' | ||
5937 | ;; | ||
5938 | *) # Version 6 will use weak symbols | ||
5939 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' | ||
5940 | _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' | ||
5941 | ;; | ||
5942 | esac | ||
5943 | |||
5944 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' | ||
5945 | _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' | ||
5946 | _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' | ||
5947 | ;; | ||
5948 | cxx*) | ||
5949 | # Compaq C++ | ||
5950 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' | ||
5951 | _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' | ||
5952 | |||
5953 | runpath_var=LD_RUN_PATH | ||
5954 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' | ||
5955 | _LT_TAGVAR(hardcode_libdir_separator, $1)=: | ||
5956 | |||
5957 | # Commands to make compiler produce verbose output that lists | ||
5958 | # what "hidden" libraries, object files and flags are used when | ||
5959 | # linking a shared library. | ||
5960 | # | ||
5961 | # There doesn't appear to be a way to prevent this compiler from | ||
5962 | # explicitly linking system object files so we need to strip them | ||
5963 | # from the output so that they don't get included in the library | ||
5964 | # dependencies. | ||
5965 | 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' | ||
5966 | ;; | ||
5967 | xl*) | ||
5968 | # IBM XL 8.0 on PPC, with GNU ld | ||
5969 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' | ||
5970 | _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' | ||
5971 | _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | ||
5972 | if test "x$supports_anon_versioning" = xyes; then | ||
5973 | _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ | ||
5974 | cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ | ||
5975 | echo "local: *; };" >> $output_objdir/$libname.ver~ | ||
5976 | $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' | ||
5977 | fi | ||
5978 | ;; | ||
5979 | *) | ||
5980 | case `$CC -V 2>&1 | sed 5q` in | ||
5981 | *Sun\ C*) | ||
5982 | # Sun C++ 5.9 | ||
5983 | _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' | ||
5984 | _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' | ||
5985 | _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' | ||
5986 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' | ||
5987 | _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' | ||
5988 | _LT_TAGVAR(compiler_needs_object, $1)=yes | ||
5989 | |||
5990 | # Not sure whether something based on | ||
5991 | # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | ||
5992 | # would be better. | ||
5993 | output_verbose_link_cmd='echo' | ||
5994 | |||
5995 | # Archives containing C++ object files must be created using | ||
5996 | # "CC -xar", where "CC" is the Sun C++ compiler. This is | ||
5997 | # necessary to make sure instantiated templates are included | ||
5998 | # in the archive. | ||
5999 | _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' | ||
6000 | ;; | ||
6001 | esac | ||
6002 | ;; | ||
6003 | esac | ||
6004 | ;; | ||
6005 | |||
6006 | lynxos*) | ||
6007 | # FIXME: insert proper C++ library support | ||
6008 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
6009 | ;; | ||
6010 | |||
6011 | m88k*) | ||
6012 | # FIXME: insert proper C++ library support | ||
6013 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
6014 | ;; | ||
6015 | |||
6016 | mvs*) | ||
6017 | case $cc_basename in | ||
6018 | cxx*) | ||
6019 | # FIXME: insert proper C++ library support | ||
6020 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
6021 | ;; | ||
6022 | *) | ||
6023 | # FIXME: insert proper C++ library support | ||
6024 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
6025 | ;; | ||
6026 | esac | ||
6027 | ;; | ||
6028 | |||
6029 | netbsd*) | ||
6030 | if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then | ||
6031 | _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' | ||
6032 | wlarc= | ||
6033 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' | ||
6034 | _LT_TAGVAR(hardcode_direct, $1)=yes | ||
6035 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
6036 | fi | ||
6037 | # Workaround some broken pre-1.5 toolchains | ||
6038 | output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' | ||
6039 | ;; | ||
6040 | |||
6041 | *nto* | *qnx*) | ||
6042 | _LT_TAGVAR(ld_shlibs, $1)=yes | ||
6043 | ;; | ||
6044 | |||
6045 | openbsd2*) | ||
6046 | # C++ shared libraries are fairly broken | ||
6047 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
6048 | ;; | ||
6049 | |||
6050 | openbsd*) | ||
6051 | if test -f /usr/libexec/ld.so; then | ||
6052 | _LT_TAGVAR(hardcode_direct, $1)=yes | ||
6053 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
6054 | _LT_TAGVAR(hardcode_direct_absolute, $1)=yes | ||
6055 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' | ||
6056 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' | ||
6057 | if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then | ||
6058 | _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' | ||
6059 | _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' | ||
6060 | _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' | ||
6061 | fi | ||
6062 | output_verbose_link_cmd=echo | ||
6063 | else | ||
6064 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
6065 | fi | ||
6066 | ;; | ||
6067 | |||
6068 | osf3* | osf4* | osf5*) | ||
6069 | case $cc_basename in | ||
6070 | KCC*) | ||
6071 | # Kuck and Associates, Inc. (KAI) C++ Compiler | ||
6072 | |||
6073 | # KCC will only create a shared library if the output file | ||
6074 | # ends with ".so" (or ".sl" for HP-UX), so rename the library | ||
6075 | # to its proper name (with version) after linking. | ||
6076 | _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' | ||
6077 | |||
6078 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' | ||
6079 | _LT_TAGVAR(hardcode_libdir_separator, $1)=: | ||
6080 | |||
6081 | # Archives containing C++ object files must be created using | ||
6082 | # the KAI C++ compiler. | ||
6083 | case $host in | ||
6084 | osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; | ||
6085 | *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; | ||
6086 | esac | ||
6087 | ;; | ||
6088 | RCC*) | ||
6089 | # Rational C++ 2.4.1 | ||
6090 | # FIXME: insert proper C++ library support | ||
6091 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
6092 | ;; | ||
6093 | cxx*) | ||
6094 | case $host in | ||
6095 | osf3*) | ||
6096 | _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' | ||
6097 | _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' | ||
6098 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' | ||
6099 | ;; | ||
6100 | *) | ||
6101 | _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' | ||
6102 | _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' | ||
6103 | _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ | ||
6104 | echo "-hidden">> $lib.exp~ | ||
6105 | $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~ | ||
6106 | $RM $lib.exp' | ||
6107 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' | ||
6108 | ;; | ||
6109 | esac | ||
6110 | |||
6111 | _LT_TAGVAR(hardcode_libdir_separator, $1)=: | ||
6112 | |||
6113 | # Commands to make compiler produce verbose output that lists | ||
6114 | # what "hidden" libraries, object files and flags are used when | ||
6115 | # linking a shared library. | ||
6116 | # | ||
6117 | # There doesn't appear to be a way to prevent this compiler from | ||
6118 | # explicitly linking system object files so we need to strip them | ||
6119 | # from the output so that they don't get included in the library | ||
6120 | # dependencies. | ||
6121 | 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' | ||
6122 | ;; | ||
6123 | *) | ||
6124 | if test "$GXX" = yes && test "$with_gnu_ld" = no; then | ||
6125 | _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' | ||
6126 | case $host in | ||
6127 | osf3*) | ||
6128 | _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' | ||
6129 | ;; | ||
6130 | *) | ||
6131 | _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' | ||
6132 | ;; | ||
6133 | esac | ||
6134 | |||
6135 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' | ||
6136 | _LT_TAGVAR(hardcode_libdir_separator, $1)=: | ||
6137 | |||
6138 | # Commands to make compiler produce verbose output that lists | ||
6139 | # what "hidden" libraries, object files and flags are used when | ||
6140 | # linking a shared library. | ||
6141 | output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' | ||
6142 | |||
6143 | else | ||
6144 | # FIXME: insert proper C++ library support | ||
6145 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
6146 | fi | ||
6147 | ;; | ||
6148 | esac | ||
6149 | ;; | ||
6150 | |||
6151 | psos*) | ||
6152 | # FIXME: insert proper C++ library support | ||
6153 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
6154 | ;; | ||
6155 | |||
6156 | sunos4*) | ||
6157 | case $cc_basename in | ||
6158 | CC*) | ||
6159 | # Sun C++ 4.x | ||
6160 | # FIXME: insert proper C++ library support | ||
6161 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
6162 | ;; | ||
6163 | lcc*) | ||
6164 | # Lucid | ||
6165 | # FIXME: insert proper C++ library support | ||
6166 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
6167 | ;; | ||
6168 | *) | ||
6169 | # FIXME: insert proper C++ library support | ||
6170 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
6171 | ;; | ||
6172 | esac | ||
6173 | ;; | ||
6174 | |||
6175 | solaris*) | ||
6176 | case $cc_basename in | ||
6177 | CC*) | ||
6178 | # Sun C++ 4.2, 5.x and Centerline C++ | ||
6179 | _LT_TAGVAR(archive_cmds_need_lc,$1)=yes | ||
6180 | _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' | ||
6181 | _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' | ||
6182 | _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ | ||
6183 | $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' | ||
6184 | |||
6185 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' | ||
6186 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
6187 | case $host_os in | ||
6188 | solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; | ||
6189 | *) | ||
6190 | # The compiler driver will combine and reorder linker options, | ||
6191 | # but understands `-z linker_flag'. | ||
6192 | # Supported since Solaris 2.6 (maybe 2.5.1?) | ||
6193 | _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' | ||
6194 | ;; | ||
6195 | esac | ||
6196 | _LT_TAGVAR(link_all_deplibs, $1)=yes | ||
6197 | |||
6198 | output_verbose_link_cmd='echo' | ||
6199 | |||
6200 | # Archives containing C++ object files must be created using | ||
6201 | # "CC -xar", where "CC" is the Sun C++ compiler. This is | ||
6202 | # necessary to make sure instantiated templates are included | ||
6203 | # in the archive. | ||
6204 | _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' | ||
6205 | ;; | ||
6206 | gcx*) | ||
6207 | # Green Hills C++ Compiler | ||
6208 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' | ||
6209 | |||
6210 | # The C++ compiler must be used to create the archive. | ||
6211 | _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' | ||
6212 | ;; | ||
6213 | *) | ||
6214 | # GNU C++ compiler with Solaris linker | ||
6215 | if test "$GXX" = yes && test "$with_gnu_ld" = no; then | ||
6216 | _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' | ||
6217 | if $CC --version | $GREP -v '^2\.7' > /dev/null; then | ||
6218 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' | ||
6219 | _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ | ||
6220 | $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' | ||
6221 | |||
6222 | # Commands to make compiler produce verbose output that lists | ||
6223 | # what "hidden" libraries, object files and flags are used when | ||
6224 | # linking a shared library. | ||
6225 | output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' | ||
6226 | else | ||
6227 | # g++ 2.7 appears to require `-G' NOT `-shared' on this | ||
6228 | # platform. | ||
6229 | _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' | ||
6230 | _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ | ||
6231 | $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' | ||
6232 | |||
6233 | # Commands to make compiler produce verbose output that lists | ||
6234 | # what "hidden" libraries, object files and flags are used when | ||
6235 | # linking a shared library. | ||
6236 | output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' | ||
6237 | fi | ||
6238 | |||
6239 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' | ||
6240 | case $host_os in | ||
6241 | solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; | ||
6242 | *) | ||
6243 | _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' | ||
6244 | ;; | ||
6245 | esac | ||
6246 | fi | ||
6247 | ;; | ||
6248 | esac | ||
6249 | ;; | ||
6250 | |||
6251 | sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) | ||
6252 | _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' | ||
6253 | _LT_TAGVAR(archive_cmds_need_lc, $1)=no | ||
6254 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
6255 | runpath_var='LD_RUN_PATH' | ||
6256 | |||
6257 | case $cc_basename in | ||
6258 | CC*) | ||
6259 | _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
6260 | _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
6261 | ;; | ||
6262 | *) | ||
6263 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
6264 | _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
6265 | ;; | ||
6266 | esac | ||
6267 | ;; | ||
6268 | |||
6269 | sysv5* | sco3.2v5* | sco5v6*) | ||
6270 | # Note: We can NOT use -z defs as we might desire, because we do not | ||
6271 | # link with -lc, and that would cause any symbols used from libc to | ||
6272 | # always be unresolved, which means just about no library would | ||
6273 | # ever link correctly. If we're not using GNU ld we use -z text | ||
6274 | # though, which does catch some bad symbols but isn't as heavy-handed | ||
6275 | # as -z defs. | ||
6276 | _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' | ||
6277 | _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' | ||
6278 | _LT_TAGVAR(archive_cmds_need_lc, $1)=no | ||
6279 | _LT_TAGVAR(hardcode_shlibpath_var, $1)=no | ||
6280 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' | ||
6281 | _LT_TAGVAR(hardcode_libdir_separator, $1)=':' | ||
6282 | _LT_TAGVAR(link_all_deplibs, $1)=yes | ||
6283 | _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' | ||
6284 | runpath_var='LD_RUN_PATH' | ||
6285 | |||
6286 | case $cc_basename in | ||
6287 | CC*) | ||
6288 | _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
6289 | _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
6290 | ;; | ||
6291 | *) | ||
6292 | _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
6293 | _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' | ||
6294 | ;; | ||
6295 | esac | ||
6296 | ;; | ||
6297 | |||
6298 | tandem*) | ||
6299 | case $cc_basename in | ||
6300 | NCC*) | ||
6301 | # NonStop-UX NCC 3.20 | ||
6302 | # FIXME: insert proper C++ library support | ||
6303 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
6304 | ;; | ||
6305 | *) | ||
6306 | # FIXME: insert proper C++ library support | ||
6307 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
6308 | ;; | ||
6309 | esac | ||
6310 | ;; | ||
6311 | |||
6312 | vxworks*) | ||
6313 | # FIXME: insert proper C++ library support | ||
6314 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
6315 | ;; | ||
6316 | |||
6317 | *) | ||
6318 | # FIXME: insert proper C++ library support | ||
6319 | _LT_TAGVAR(ld_shlibs, $1)=no | ||
6320 | ;; | ||
6321 | esac | ||
6322 | |||
6323 | AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) | ||
6324 | test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no | ||
6325 | |||
6326 | _LT_TAGVAR(GCC, $1)="$GXX" | ||
6327 | _LT_TAGVAR(LD, $1)="$LD" | ||
6328 | |||
6329 | ## CAVEAT EMPTOR: | ||
6330 | ## There is no encapsulation within the following macros, do not change | ||
6331 | ## the running order or otherwise move them around unless you know exactly | ||
6332 | ## what you are doing... | ||
6333 | _LT_SYS_HIDDEN_LIBDEPS($1) | ||
6334 | _LT_COMPILER_PIC($1) | ||
6335 | _LT_COMPILER_C_O($1) | ||
6336 | _LT_COMPILER_FILE_LOCKS($1) | ||
6337 | _LT_LINKER_SHLIBS($1) | ||
6338 | _LT_SYS_DYNAMIC_LINKER($1) | ||
6339 | _LT_LINKER_HARDCODE_LIBPATH($1) | ||
6340 | |||
6341 | _LT_CONFIG($1) | ||
6342 | fi # test -n "$compiler" | ||
6343 | |||
6344 | CC=$lt_save_CC | ||
6345 | LDCXX=$LD | ||
6346 | LD=$lt_save_LD | ||
6347 | GCC=$lt_save_GCC | ||
6348 | with_gnu_ld=$lt_save_with_gnu_ld | ||
6349 | lt_cv_path_LDCXX=$lt_cv_path_LD | ||
6350 | lt_cv_path_LD=$lt_save_path_LD | ||
6351 | lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld | ||
6352 | lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld | ||
6353 | fi # test "$_lt_caught_CXX_error" != yes | ||
6354 | |||
6355 | AC_LANG_POP | ||
6356 | ])# _LT_LANG_CXX_CONFIG | ||
6357 | |||
6358 | |||
6359 | # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) | ||
6360 | # --------------------------------- | ||
6361 | # Figure out "hidden" library dependencies from verbose | ||
6362 | # compiler output when linking a shared library. | ||
6363 | # Parse the compiler output and extract the necessary | ||
6364 | # objects, libraries and library flags. | ||
6365 | m4_defun([_LT_SYS_HIDDEN_LIBDEPS], | ||
6366 | [m4_require([_LT_FILEUTILS_DEFAULTS])dnl | ||
6367 | # Dependencies to place before and after the object being linked: | ||
6368 | _LT_TAGVAR(predep_objects, $1)= | ||
6369 | _LT_TAGVAR(postdep_objects, $1)= | ||
6370 | _LT_TAGVAR(predeps, $1)= | ||
6371 | _LT_TAGVAR(postdeps, $1)= | ||
6372 | _LT_TAGVAR(compiler_lib_search_path, $1)= | ||
6373 | |||
6374 | dnl we can't use the lt_simple_compile_test_code here, | ||
6375 | dnl because it contains code intended for an executable, | ||
6376 | dnl not a library. It's possible we should let each | ||
6377 | dnl tag define a new lt_????_link_test_code variable, | ||
6378 | dnl but it's only used here... | ||
6379 | m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF | ||
6380 | int a; | ||
6381 | void foo (void) { a = 0; } | ||
6382 | _LT_EOF | ||
6383 | ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF | ||
6384 | class Foo | ||
6385 | { | ||
6386 | public: | ||
6387 | Foo (void) { a = 0; } | ||
6388 | private: | ||
6389 | int a; | ||
6390 | }; | ||
6391 | _LT_EOF | ||
6392 | ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF | ||
6393 | subroutine foo | ||
6394 | implicit none | ||
6395 | integer*4 a | ||
6396 | a=0 | ||
6397 | return | ||
6398 | end | ||
6399 | _LT_EOF | ||
6400 | ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF | ||
6401 | subroutine foo | ||
6402 | implicit none | ||
6403 | integer a | ||
6404 | a=0 | ||
6405 | return | ||
6406 | end | ||
6407 | _LT_EOF | ||
6408 | ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF | ||
6409 | public class foo { | ||
6410 | private int a; | ||
6411 | public void bar (void) { | ||
6412 | a = 0; | ||
6413 | } | ||
6414 | }; | ||
6415 | _LT_EOF | ||
6416 | ]) | ||
6417 | dnl Parse the compiler output and extract the necessary | ||
6418 | dnl objects, libraries and library flags. | ||
6419 | if AC_TRY_EVAL(ac_compile); then | ||
6420 | # Parse the compiler output and extract the necessary | ||
6421 | # objects, libraries and library flags. | ||
6422 | |||
6423 | # Sentinel used to keep track of whether or not we are before | ||
6424 | # the conftest object file. | ||
6425 | pre_test_object_deps_done=no | ||
6426 | |||
6427 | for p in `eval "$output_verbose_link_cmd"`; do | ||
6428 | case $p in | ||
6429 | |||
6430 | -L* | -R* | -l*) | ||
6431 | # Some compilers place space between "-{L,R}" and the path. | ||
6432 | # Remove the space. | ||
6433 | if test $p = "-L" || | ||
6434 | test $p = "-R"; then | ||
6435 | prev=$p | ||
6436 | continue | ||
6437 | else | ||
6438 | prev= | ||
6439 | fi | ||
6440 | |||
6441 | if test "$pre_test_object_deps_done" = no; then | ||
6442 | case $p in | ||
6443 | -L* | -R*) | ||
6444 | # Internal compiler library paths should come after those | ||
6445 | # provided the user. The postdeps already come after the | ||
6446 | # user supplied libs so there is no need to process them. | ||
6447 | if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then | ||
6448 | _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" | ||
6449 | else | ||
6450 | _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" | ||
6451 | fi | ||
6452 | ;; | ||
6453 | # The "-l" case would never come before the object being | ||
6454 | # linked, so don't bother handling this case. | ||
6455 | esac | ||
6456 | else | ||
6457 | if test -z "$_LT_TAGVAR(postdeps, $1)"; then | ||
6458 | _LT_TAGVAR(postdeps, $1)="${prev}${p}" | ||
6459 | else | ||
6460 | _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" | ||
6461 | fi | ||
6462 | fi | ||
6463 | ;; | ||
6464 | |||
6465 | *.$objext) | ||
6466 | # This assumes that the test object file only shows up | ||
6467 | # once in the compiler output. | ||
6468 | if test "$p" = "conftest.$objext"; then | ||
6469 | pre_test_object_deps_done=yes | ||
6470 | continue | ||
6471 | fi | ||
6472 | |||
6473 | if test "$pre_test_object_deps_done" = no; then | ||
6474 | if test -z "$_LT_TAGVAR(predep_objects, $1)"; then | ||
6475 | _LT_TAGVAR(predep_objects, $1)="$p" | ||
6476 | else | ||
6477 | _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" | ||
6478 | fi | ||
6479 | else | ||
6480 | if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then | ||
6481 | _LT_TAGVAR(postdep_objects, $1)="$p" | ||
6482 | else | ||
6483 | _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" | ||
6484 | fi | ||
6485 | fi | ||
6486 | ;; | ||
6487 | |||
6488 | *) ;; # Ignore the rest. | ||
6489 | |||
6490 | esac | ||
6491 | done | ||
6492 | |||
6493 | # Clean up. | ||
6494 | rm -f a.out a.exe | ||
6495 | else | ||
6496 | echo "libtool.m4: error: problem compiling $1 test program" | ||
6497 | fi | ||
6498 | |||
6499 | $RM -f confest.$objext | ||
6500 | |||
6501 | # PORTME: override above test on systems where it is broken | ||
6502 | m4_if([$1], [CXX], | ||
6503 | [case $host_os in | ||
6504 | interix[[3-9]]*) | ||
6505 | # Interix 3.5 installs completely hosed .la files for C++, so rather than | ||
6506 | # hack all around it, let's just trust "g++" to DTRT. | ||
6507 | _LT_TAGVAR(predep_objects,$1)= | ||
6508 | _LT_TAGVAR(postdep_objects,$1)= | ||
6509 | _LT_TAGVAR(postdeps,$1)= | ||
6510 | ;; | ||
6511 | |||
6512 | linux*) | ||
6513 | case `$CC -V 2>&1 | sed 5q` in | ||
6514 | *Sun\ C*) | ||
6515 | # Sun C++ 5.9 | ||
6516 | |||
6517 | # The more standards-conforming stlport4 library is | ||
6518 | # incompatible with the Cstd library. Avoid specifying | ||
6519 | # it if it's in CXXFLAGS. Ignore libCrun as | ||
6520 | # -library=stlport4 depends on it. | ||
6521 | case " $CXX $CXXFLAGS " in | ||
6522 | *" -library=stlport4 "*) | ||
6523 | solaris_use_stlport4=yes | ||
6524 | ;; | ||
6525 | esac | ||
6526 | |||
6527 | if test "$solaris_use_stlport4" != yes; then | ||
6528 | _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' | ||
6529 | fi | ||
6530 | ;; | ||
6531 | esac | ||
6532 | ;; | ||
6533 | |||
6534 | solaris*) | ||
6535 | case $cc_basename in | ||
6536 | CC*) | ||
6537 | # The more standards-conforming stlport4 library is | ||
6538 | # incompatible with the Cstd library. Avoid specifying | ||
6539 | # it if it's in CXXFLAGS. Ignore libCrun as | ||
6540 | # -library=stlport4 depends on it. | ||
6541 | case " $CXX $CXXFLAGS " in | ||
6542 | *" -library=stlport4 "*) | ||
6543 | solaris_use_stlport4=yes | ||
6544 | ;; | ||
6545 | esac | ||
6546 | |||
6547 | # Adding this requires a known-good setup of shared libraries for | ||
6548 | # Sun compiler versions before 5.6, else PIC objects from an old | ||
6549 | # archive will be linked into the output, leading to subtle bugs. | ||
6550 | if test "$solaris_use_stlport4" != yes; then | ||
6551 | _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' | ||
6552 | fi | ||
6553 | ;; | ||
6554 | esac | ||
6555 | ;; | ||
6556 | esac | ||
6557 | ]) | ||
6558 | |||
6559 | case " $_LT_TAGVAR(postdeps, $1) " in | ||
6560 | *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; | ||
6561 | esac | ||
6562 | _LT_TAGVAR(compiler_lib_search_dirs, $1)= | ||
6563 | if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then | ||
6564 | _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` | ||
6565 | fi | ||
6566 | _LT_TAGDECL([], [compiler_lib_search_dirs], [1], | ||
6567 | [The directories searched by this compiler when creating a shared library]) | ||
6568 | _LT_TAGDECL([], [predep_objects], [1], | ||
6569 | [Dependencies to place before and after the objects being linked to | ||
6570 | create a shared library]) | ||
6571 | _LT_TAGDECL([], [postdep_objects], [1]) | ||
6572 | _LT_TAGDECL([], [predeps], [1]) | ||
6573 | _LT_TAGDECL([], [postdeps], [1]) | ||
6574 | _LT_TAGDECL([], [compiler_lib_search_path], [1], | ||
6575 | [The library search path used internally by the compiler when linking | ||
6576 | a shared library]) | ||
6577 | ])# _LT_SYS_HIDDEN_LIBDEPS | ||
6578 | |||
6579 | |||
6580 | # _LT_PROG_F77 | ||
6581 | # ------------ | ||
6582 | # Since AC_PROG_F77 is broken, in that it returns the empty string | ||
6583 | # if there is no fortran compiler, we have our own version here. | ||
6584 | m4_defun([_LT_PROG_F77], | ||
6585 | [ | ||
6586 | pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) | ||
6587 | AC_PROG_F77 | ||
6588 | if test -z "$F77" || test "X$F77" = "Xno"; then | ||
6589 | _lt_disable_F77=yes | ||
6590 | fi | ||
6591 | popdef([AC_MSG_ERROR]) | ||
6592 | ])# _LT_PROG_F77 | ||
6593 | |||
6594 | dnl aclocal-1.4 backwards compatibility: | ||
6595 | dnl AC_DEFUN([_LT_PROG_F77], []) | ||
6596 | |||
6597 | |||
6598 | # _LT_LANG_F77_CONFIG([TAG]) | ||
6599 | # -------------------------- | ||
6600 | # Ensure that the configuration variables for a Fortran 77 compiler are | ||
6601 | # suitably defined. These variables are subsequently used by _LT_CONFIG | ||
6602 | # to write the compiler configuration to `libtool'. | ||
6603 | m4_defun([_LT_LANG_F77_CONFIG], | ||
6604 | [AC_REQUIRE([_LT_PROG_F77])dnl | ||
6605 | AC_LANG_PUSH(Fortran 77) | ||
6606 | |||
6607 | _LT_TAGVAR(archive_cmds_need_lc, $1)=no | ||
6608 | _LT_TAGVAR(allow_undefined_flag, $1)= | ||
6609 | _LT_TAGVAR(always_export_symbols, $1)=no | ||
6610 | _LT_TAGVAR(archive_expsym_cmds, $1)= | ||
6611 | _LT_TAGVAR(export_dynamic_flag_spec, $1)= | ||
6612 | _LT_TAGVAR(hardcode_direct, $1)=no | ||
6613 | _LT_TAGVAR(hardcode_direct_absolute, $1)=no | ||
6614 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= | ||
6615 | _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= | ||
6616 | _LT_TAGVAR(hardcode_libdir_separator, $1)= | ||
6617 | _LT_TAGVAR(hardcode_minus_L, $1)=no | ||
6618 | _LT_TAGVAR(hardcode_automatic, $1)=no | ||
6619 | _LT_TAGVAR(inherit_rpath, $1)=no | ||
6620 | _LT_TAGVAR(module_cmds, $1)= | ||
6621 | _LT_TAGVAR(module_expsym_cmds, $1)= | ||
6622 | _LT_TAGVAR(link_all_deplibs, $1)=unknown | ||
6623 | _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds | ||
6624 | _LT_TAGVAR(no_undefined_flag, $1)= | ||
6625 | _LT_TAGVAR(whole_archive_flag_spec, $1)= | ||
6626 | _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no | ||
6627 | |||
6628 | # Source file extension for f77 test sources. | ||
6629 | ac_ext=f | ||
6630 | |||
6631 | # Object file extension for compiled f77 test sources. | ||
6632 | objext=o | ||
6633 | _LT_TAGVAR(objext, $1)=$objext | ||
6634 | |||
6635 | # No sense in running all these tests if we already determined that | ||
6636 | # the F77 compiler isn't working. Some variables (like enable_shared) | ||
6637 | # are currently assumed to apply to all compilers on this platform, | ||
6638 | # and will be corrupted by setting them based on a non-working compiler. | ||
6639 | if test "$_lt_disable_F77" != yes; then | ||
6640 | # Code to be used in simple compile tests | ||
6641 | lt_simple_compile_test_code="\ | ||
6642 | subroutine t | ||
6643 | return | ||
6644 | end | ||
6645 | " | ||
6646 | |||
6647 | # Code to be used in simple link tests | ||
6648 | lt_simple_link_test_code="\ | ||
6649 | program t | ||
6650 | end | ||
6651 | " | ||
6652 | |||
6653 | # ltmain only uses $CC for tagged configurations so make sure $CC is set. | ||
6654 | _LT_TAG_COMPILER | ||
6655 | |||
6656 | # save warnings/boilerplate of simple test code | ||
6657 | _LT_COMPILER_BOILERPLATE | ||
6658 | _LT_LINKER_BOILERPLATE | ||
6659 | |||
6660 | # Allow CC to be a program name with arguments. | ||
6661 | lt_save_CC="$CC" | ||
6662 | lt_save_GCC=$GCC | ||
6663 | CC=${F77-"f77"} | ||
6664 | compiler=$CC | ||
6665 | _LT_TAGVAR(compiler, $1)=$CC | ||
6666 | _LT_CC_BASENAME([$compiler]) | ||
6667 | GCC=$G77 | ||
6668 | if test -n "$compiler"; then | ||
6669 | AC_MSG_CHECKING([if libtool supports shared libraries]) | ||
6670 | AC_MSG_RESULT([$can_build_shared]) | ||
6671 | |||
6672 | AC_MSG_CHECKING([whether to build shared libraries]) | ||
6673 | test "$can_build_shared" = "no" && enable_shared=no | ||
6674 | |||
6675 | # On AIX, shared libraries and static libraries use the same namespace, and | ||
6676 | # are all built from PIC. | ||
6677 | case $host_os in | ||
6678 | aix3*) | ||
6679 | test "$enable_shared" = yes && enable_static=no | ||
6680 | if test -n "$RANLIB"; then | ||
6681 | archive_cmds="$archive_cmds~\$RANLIB \$lib" | ||
6682 | postinstall_cmds='$RANLIB $lib' | ||
6683 | fi | ||
6684 | ;; | ||
6685 | aix[[4-9]]*) | ||
6686 | if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then | ||
6687 | test "$enable_shared" = yes && enable_static=no | ||
6688 | fi | ||
6689 | ;; | ||
6690 | esac | ||
6691 | AC_MSG_RESULT([$enable_shared]) | ||
6692 | |||
6693 | AC_MSG_CHECKING([whether to build static libraries]) | ||
6694 | # Make sure either enable_shared or enable_static is yes. | ||
6695 | test "$enable_shared" = yes || enable_static=yes | ||
6696 | AC_MSG_RESULT([$enable_static]) | ||
6697 | |||
6698 | _LT_TAGVAR(GCC, $1)="$G77" | ||
6699 | _LT_TAGVAR(LD, $1)="$LD" | ||
6700 | |||
6701 | ## CAVEAT EMPTOR: | ||
6702 | ## There is no encapsulation within the following macros, do not change | ||
6703 | ## the running order or otherwise move them around unless you know exactly | ||
6704 | ## what you are doing... | ||
6705 | _LT_COMPILER_PIC($1) | ||
6706 | _LT_COMPILER_C_O($1) | ||
6707 | _LT_COMPILER_FILE_LOCKS($1) | ||
6708 | _LT_LINKER_SHLIBS($1) | ||
6709 | _LT_SYS_DYNAMIC_LINKER($1) | ||
6710 | _LT_LINKER_HARDCODE_LIBPATH($1) | ||
6711 | |||
6712 | _LT_CONFIG($1) | ||
6713 | fi # test -n "$compiler" | ||
6714 | |||
6715 | GCC=$lt_save_GCC | ||
6716 | CC="$lt_save_CC" | ||
6717 | fi # test "$_lt_disable_F77" != yes | ||
6718 | |||
6719 | AC_LANG_POP | ||
6720 | ])# _LT_LANG_F77_CONFIG | ||
6721 | |||
6722 | |||
6723 | # _LT_PROG_FC | ||
6724 | # ----------- | ||
6725 | # Since AC_PROG_FC is broken, in that it returns the empty string | ||
6726 | # if there is no fortran compiler, we have our own version here. | ||
6727 | m4_defun([_LT_PROG_FC], | ||
6728 | [ | ||
6729 | pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) | ||
6730 | AC_PROG_FC | ||
6731 | if test -z "$FC" || test "X$FC" = "Xno"; then | ||
6732 | _lt_disable_FC=yes | ||
6733 | fi | ||
6734 | popdef([AC_MSG_ERROR]) | ||
6735 | ])# _LT_PROG_FC | ||
6736 | |||
6737 | dnl aclocal-1.4 backwards compatibility: | ||
6738 | dnl AC_DEFUN([_LT_PROG_FC], []) | ||
6739 | |||
6740 | |||
6741 | # _LT_LANG_FC_CONFIG([TAG]) | ||
6742 | # ------------------------- | ||
6743 | # Ensure that the configuration variables for a Fortran compiler are | ||
6744 | # suitably defined. These variables are subsequently used by _LT_CONFIG | ||
6745 | # to write the compiler configuration to `libtool'. | ||
6746 | m4_defun([_LT_LANG_FC_CONFIG], | ||
6747 | [AC_REQUIRE([_LT_PROG_FC])dnl | ||
6748 | AC_LANG_PUSH(Fortran) | ||
6749 | |||
6750 | _LT_TAGVAR(archive_cmds_need_lc, $1)=no | ||
6751 | _LT_TAGVAR(allow_undefined_flag, $1)= | ||
6752 | _LT_TAGVAR(always_export_symbols, $1)=no | ||
6753 | _LT_TAGVAR(archive_expsym_cmds, $1)= | ||
6754 | _LT_TAGVAR(export_dynamic_flag_spec, $1)= | ||
6755 | _LT_TAGVAR(hardcode_direct, $1)=no | ||
6756 | _LT_TAGVAR(hardcode_direct_absolute, $1)=no | ||
6757 | _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= | ||
6758 | _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= | ||
6759 | _LT_TAGVAR(hardcode_libdir_separator, $1)= | ||
6760 | _LT_TAGVAR(hardcode_minus_L, $1)=no | ||
6761 | _LT_TAGVAR(hardcode_automatic, $1)=no | ||
6762 | _LT_TAGVAR(inherit_rpath, $1)=no | ||
6763 | _LT_TAGVAR(module_cmds, $1)= | ||
6764 | _LT_TAGVAR(module_expsym_cmds, $1)= | ||
6765 | _LT_TAGVAR(link_all_deplibs, $1)=unknown | ||
6766 | _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds | ||
6767 | _LT_TAGVAR(no_undefined_flag, $1)= | ||
6768 | _LT_TAGVAR(whole_archive_flag_spec, $1)= | ||
6769 | _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no | ||
6770 | |||
6771 | # Source file extension for fc test sources. | ||
6772 | ac_ext=${ac_fc_srcext-f} | ||
6773 | |||
6774 | # Object file extension for compiled fc test sources. | ||
6775 | objext=o | ||
6776 | _LT_TAGVAR(objext, $1)=$objext | ||
6777 | |||
6778 | # No sense in running all these tests if we already determined that | ||
6779 | # the FC compiler isn't working. Some variables (like enable_shared) | ||
6780 | # are currently assumed to apply to all compilers on this platform, | ||
6781 | # and will be corrupted by setting them based on a non-working compiler. | ||
6782 | if test "$_lt_disable_FC" != yes; then | ||
6783 | # Code to be used in simple compile tests | ||
6784 | lt_simple_compile_test_code="\ | ||
6785 | subroutine t | ||
6786 | return | ||
6787 | end | ||
6788 | " | ||
6789 | |||
6790 | # Code to be used in simple link tests | ||
6791 | lt_simple_link_test_code="\ | ||
6792 | program t | ||
6793 | end | ||
6794 | " | ||
6795 | |||
6796 | # ltmain only uses $CC for tagged configurations so make sure $CC is set. | ||
6797 | _LT_TAG_COMPILER | ||
6798 | |||
6799 | # save warnings/boilerplate of simple test code | ||
6800 | _LT_COMPILER_BOILERPLATE | ||
6801 | _LT_LINKER_BOILERPLATE | ||
6802 | |||
6803 | # Allow CC to be a program name with arguments. | ||
6804 | lt_save_CC="$CC" | ||
6805 | lt_save_GCC=$GCC | ||
6806 | CC=${FC-"f95"} | ||
6807 | compiler=$CC | ||
6808 | GCC=$ac_cv_fc_compiler_gnu | ||
6809 | |||
6810 | _LT_TAGVAR(compiler, $1)=$CC | ||
6811 | _LT_CC_BASENAME([$compiler]) | ||
6812 | |||
6813 | if test -n "$compiler"; then | ||
6814 | AC_MSG_CHECKING([if libtool supports shared libraries]) | ||
6815 | AC_MSG_RESULT([$can_build_shared]) | ||
6816 | |||
6817 | AC_MSG_CHECKING([whether to build shared libraries]) | ||
6818 | test "$can_build_shared" = "no" && enable_shared=no | ||
6819 | |||
6820 | # On AIX, shared libraries and static libraries use the same namespace, and | ||
6821 | # are all built from PIC. | ||
6822 | case $host_os in | ||
6823 | aix3*) | ||
6824 | test "$enable_shared" = yes && enable_static=no | ||
6825 | if test -n "$RANLIB"; then | ||
6826 | archive_cmds="$archive_cmds~\$RANLIB \$lib" | ||
6827 | postinstall_cmds='$RANLIB $lib' | ||
6828 | fi | ||
6829 | ;; | ||
6830 | aix[[4-9]]*) | ||
6831 | if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then | ||
6832 | test "$enable_shared" = yes && enable_static=no | ||
6833 | fi | ||
6834 | ;; | ||
6835 | esac | ||
6836 | AC_MSG_RESULT([$enable_shared]) | ||
6837 | |||
6838 | AC_MSG_CHECKING([whether to build static libraries]) | ||
6839 | # Make sure either enable_shared or enable_static is yes. | ||
6840 | test "$enable_shared" = yes || enable_static=yes | ||
6841 | AC_MSG_RESULT([$enable_static]) | ||
6842 | |||
6843 | _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" | ||
6844 | _LT_TAGVAR(LD, $1)="$LD" | ||
6845 | |||
6846 | ## CAVEAT EMPTOR: | ||
6847 | ## There is no encapsulation within the following macros, do not change | ||
6848 | ## the running order or otherwise move them around unless you know exactly | ||
6849 | ## what you are doing... | ||
6850 | _LT_SYS_HIDDEN_LIBDEPS($1) | ||
6851 | _LT_COMPILER_PIC($1) | ||
6852 | _LT_COMPILER_C_O($1) | ||
6853 | _LT_COMPILER_FILE_LOCKS($1) | ||
6854 | _LT_LINKER_SHLIBS($1) | ||
6855 | _LT_SYS_DYNAMIC_LINKER($1) | ||
6856 | _LT_LINKER_HARDCODE_LIBPATH($1) | ||
6857 | |||
6858 | _LT_CONFIG($1) | ||
6859 | fi # test -n "$compiler" | ||
6860 | |||
6861 | GCC=$lt_save_GCC | ||
6862 | CC="$lt_save_CC" | ||
6863 | fi # test "$_lt_disable_FC" != yes | ||
6864 | |||
6865 | AC_LANG_POP | ||
6866 | ])# _LT_LANG_FC_CONFIG | ||
6867 | |||
6868 | |||
6869 | # _LT_LANG_GCJ_CONFIG([TAG]) | ||
6870 | # -------------------------- | ||
6871 | # Ensure that the configuration variables for the GNU Java Compiler compiler | ||
6872 | # are suitably defined. These variables are subsequently used by _LT_CONFIG | ||
6873 | # to write the compiler configuration to `libtool'. | ||
6874 | m4_defun([_LT_LANG_GCJ_CONFIG], | ||
6875 | [AC_REQUIRE([LT_PROG_GCJ])dnl | ||
6876 | AC_LANG_SAVE | ||
6877 | |||
6878 | # Source file extension for Java test sources. | ||
6879 | ac_ext=java | ||
6880 | |||
6881 | # Object file extension for compiled Java test sources. | ||
6882 | objext=o | ||
6883 | _LT_TAGVAR(objext, $1)=$objext | ||
6884 | |||
6885 | # Code to be used in simple compile tests | ||
6886 | lt_simple_compile_test_code="class foo {}" | ||
6887 | |||
6888 | # Code to be used in simple link tests | ||
6889 | lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' | ||
6890 | |||
6891 | # ltmain only uses $CC for tagged configurations so make sure $CC is set. | ||
6892 | _LT_TAG_COMPILER | ||
6893 | |||
6894 | # save warnings/boilerplate of simple test code | ||
6895 | _LT_COMPILER_BOILERPLATE | ||
6896 | _LT_LINKER_BOILERPLATE | ||
6897 | |||
6898 | # Allow CC to be a program name with arguments. | ||
6899 | lt_save_CC="$CC" | ||
6900 | lt_save_GCC=$GCC | ||
6901 | GCC=yes | ||
6902 | CC=${GCJ-"gcj"} | ||
6903 | compiler=$CC | ||
6904 | _LT_TAGVAR(compiler, $1)=$CC | ||
6905 | _LT_TAGVAR(LD, $1)="$LD" | ||
6906 | _LT_CC_BASENAME([$compiler]) | ||
6907 | |||
6908 | # GCJ did not exist at the time GCC didn't implicitly link libc in. | ||
6909 | _LT_TAGVAR(archive_cmds_need_lc, $1)=no | ||
6910 | |||
6911 | _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds | ||
6912 | |||
6913 | ## CAVEAT EMPTOR: | ||
6914 | ## There is no encapsulation within the following macros, do not change | ||
6915 | ## the running order or otherwise move them around unless you know exactly | ||
6916 | ## what you are doing... | ||
6917 | if test -n "$compiler"; then | ||
6918 | _LT_COMPILER_NO_RTTI($1) | ||
6919 | _LT_COMPILER_PIC($1) | ||
6920 | _LT_COMPILER_C_O($1) | ||
6921 | _LT_COMPILER_FILE_LOCKS($1) | ||
6922 | _LT_LINKER_SHLIBS($1) | ||
6923 | _LT_LINKER_HARDCODE_LIBPATH($1) | ||
6924 | |||
6925 | _LT_CONFIG($1) | ||
6926 | fi | ||
6927 | |||
6928 | AC_LANG_RESTORE | ||
6929 | |||
6930 | GCC=$lt_save_GCC | ||
6931 | CC="$lt_save_CC" | ||
6932 | ])# _LT_LANG_GCJ_CONFIG | ||
6933 | |||
6934 | |||
6935 | # _LT_LANG_RC_CONFIG([TAG]) | ||
6936 | # ------------------------- | ||
6937 | # Ensure that the configuration variables for the Windows resource compiler | ||
6938 | # are suitably defined. These variables are subsequently used by _LT_CONFIG | ||
6939 | # to write the compiler configuration to `libtool'. | ||
6940 | m4_defun([_LT_LANG_RC_CONFIG], | ||
6941 | [AC_REQUIRE([LT_PROG_RC])dnl | ||
6942 | AC_LANG_SAVE | ||
6943 | |||
6944 | # Source file extension for RC test sources. | ||
6945 | ac_ext=rc | ||
6946 | |||
6947 | # Object file extension for compiled RC test sources. | ||
6948 | objext=o | ||
6949 | _LT_TAGVAR(objext, $1)=$objext | ||
6950 | |||
6951 | # Code to be used in simple compile tests | ||
6952 | lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' | ||
6953 | |||
6954 | # Code to be used in simple link tests | ||
6955 | lt_simple_link_test_code="$lt_simple_compile_test_code" | ||
6956 | |||
6957 | # ltmain only uses $CC for tagged configurations so make sure $CC is set. | ||
6958 | _LT_TAG_COMPILER | ||
6959 | |||
6960 | # save warnings/boilerplate of simple test code | ||
6961 | _LT_COMPILER_BOILERPLATE | ||
6962 | _LT_LINKER_BOILERPLATE | ||
6963 | |||
6964 | # Allow CC to be a program name with arguments. | ||
6965 | lt_save_CC="$CC" | ||
6966 | lt_save_GCC=$GCC | ||
6967 | GCC= | ||
6968 | CC=${RC-"windres"} | ||
6969 | compiler=$CC | ||
6970 | _LT_TAGVAR(compiler, $1)=$CC | ||
6971 | _LT_CC_BASENAME([$compiler]) | ||
6972 | _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes | ||
6973 | |||
6974 | if test -n "$compiler"; then | ||
6975 | : | ||
6976 | _LT_CONFIG($1) | ||
6977 | fi | ||
6978 | |||
6979 | GCC=$lt_save_GCC | ||
6980 | AC_LANG_RESTORE | ||
6981 | CC="$lt_save_CC" | ||
6982 | ])# _LT_LANG_RC_CONFIG | ||
6983 | |||
6984 | |||
6985 | # LT_PROG_GCJ | ||
6986 | # ----------- | ||
6987 | AC_DEFUN([LT_PROG_GCJ], | ||
6988 | [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], | ||
6989 | [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], | ||
6990 | [AC_CHECK_TOOL(GCJ, gcj,) | ||
6991 | test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" | ||
6992 | AC_SUBST(GCJFLAGS)])])[]dnl | ||
6993 | ]) | ||
6994 | |||
6995 | # Old name: | ||
6996 | AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) | ||
6997 | dnl aclocal-1.4 backwards compatibility: | ||
6998 | dnl AC_DEFUN([LT_AC_PROG_GCJ], []) | ||
6999 | |||
7000 | |||
7001 | # LT_PROG_RC | ||
7002 | # ---------- | ||
7003 | AC_DEFUN([LT_PROG_RC], | ||
7004 | [AC_CHECK_TOOL(RC, windres,) | ||
7005 | ]) | ||
7006 | |||
7007 | # Old name: | ||
7008 | AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) | ||
7009 | dnl aclocal-1.4 backwards compatibility: | ||
7010 | dnl AC_DEFUN([LT_AC_PROG_RC], []) | ||
7011 | |||
7012 | |||
7013 | # _LT_DECL_EGREP | ||
7014 | # -------------- | ||
7015 | # If we don't have a new enough Autoconf to choose the best grep | ||
7016 | # available, choose the one first in the user's PATH. | ||
7017 | m4_defun([_LT_DECL_EGREP], | ||
7018 | [AC_REQUIRE([AC_PROG_EGREP])dnl | ||
7019 | AC_REQUIRE([AC_PROG_FGREP])dnl | ||
7020 | test -z "$GREP" && GREP=grep | ||
7021 | _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) | ||
7022 | _LT_DECL([], [EGREP], [1], [An ERE matcher]) | ||
7023 | _LT_DECL([], [FGREP], [1], [A literal string matcher]) | ||
7024 | dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too | ||
7025 | AC_SUBST([GREP]) | ||
7026 | ]) | ||
7027 | |||
7028 | |||
7029 | # _LT_DECL_OBJDUMP | ||
7030 | # -------------- | ||
7031 | # If we don't have a new enough Autoconf to choose the best objdump | ||
7032 | # available, choose the one first in the user's PATH. | ||
7033 | m4_defun([_LT_DECL_OBJDUMP], | ||
7034 | [AC_CHECK_TOOL(OBJDUMP, objdump, false) | ||
7035 | test -z "$OBJDUMP" && OBJDUMP=objdump | ||
7036 | _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) | ||
7037 | AC_SUBST([OBJDUMP]) | ||
7038 | ]) | ||
7039 | |||
7040 | |||
7041 | # _LT_DECL_SED | ||
7042 | # ------------ | ||
7043 | # Check for a fully-functional sed program, that truncates | ||
7044 | # as few characters as possible. Prefer GNU sed if found. | ||
7045 | m4_defun([_LT_DECL_SED], | ||
7046 | [AC_PROG_SED | ||
7047 | test -z "$SED" && SED=sed | ||
7048 | Xsed="$SED -e 1s/^X//" | ||
7049 | _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) | ||
7050 | _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], | ||
7051 | [Sed that helps us avoid accidentally triggering echo(1) options like -n]) | ||
7052 | ])# _LT_DECL_SED | ||
7053 | |||
7054 | m4_ifndef([AC_PROG_SED], [ | ||
7055 | ############################################################ | ||
7056 | # NOTE: This macro has been submitted for inclusion into # | ||
7057 | # GNU Autoconf as AC_PROG_SED. When it is available in # | ||
7058 | # a released version of Autoconf we should remove this # | ||
7059 | # macro and use it instead. # | ||
7060 | ############################################################ | ||
7061 | |||
7062 | m4_defun([AC_PROG_SED], | ||
7063 | [AC_MSG_CHECKING([for a sed that does not truncate output]) | ||
7064 | AC_CACHE_VAL(lt_cv_path_SED, | ||
7065 | [# Loop through the user's path and test for sed and gsed. | ||
7066 | # Then use that list of sed's as ones to test for truncation. | ||
7067 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
7068 | for as_dir in $PATH | ||
7069 | do | ||
7070 | IFS=$as_save_IFS | ||
7071 | test -z "$as_dir" && as_dir=. | ||
7072 | for lt_ac_prog in sed gsed; do | ||
7073 | for ac_exec_ext in '' $ac_executable_extensions; do | ||
7074 | if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then | ||
7075 | lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" | ||
7076 | fi | ||
7077 | done | ||
7078 | done | ||
7079 | done | ||
7080 | IFS=$as_save_IFS | ||
7081 | lt_ac_max=0 | ||
7082 | lt_ac_count=0 | ||
7083 | # Add /usr/xpg4/bin/sed as it is typically found on Solaris | ||
7084 | # along with /bin/sed that truncates output. | ||
7085 | for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do | ||
7086 | test ! -f $lt_ac_sed && continue | ||
7087 | cat /dev/null > conftest.in | ||
7088 | lt_ac_count=0 | ||
7089 | echo $ECHO_N "0123456789$ECHO_C" >conftest.in | ||
7090 | # Check for GNU sed and select it if it is found. | ||
7091 | if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then | ||
7092 | lt_cv_path_SED=$lt_ac_sed | ||
7093 | break | ||
7094 | fi | ||
7095 | while true; do | ||
7096 | cat conftest.in conftest.in >conftest.tmp | ||
7097 | mv conftest.tmp conftest.in | ||
7098 | cp conftest.in conftest.nl | ||
7099 | echo >>conftest.nl | ||
7100 | $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break | ||
7101 | cmp -s conftest.out conftest.nl || break | ||
7102 | # 10000 chars as input seems more than enough | ||
7103 | test $lt_ac_count -gt 10 && break | ||
7104 | lt_ac_count=`expr $lt_ac_count + 1` | ||
7105 | if test $lt_ac_count -gt $lt_ac_max; then | ||
7106 | lt_ac_max=$lt_ac_count | ||
7107 | lt_cv_path_SED=$lt_ac_sed | ||
7108 | fi | ||
7109 | done | ||
7110 | done | ||
7111 | ]) | ||
7112 | SED=$lt_cv_path_SED | ||
7113 | AC_SUBST([SED]) | ||
7114 | AC_MSG_RESULT([$SED]) | ||
7115 | ])#AC_PROG_SED | ||
7116 | ])#m4_ifndef | ||
7117 | |||
7118 | # Old name: | ||
7119 | AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) | ||
7120 | dnl aclocal-1.4 backwards compatibility: | ||
7121 | dnl AC_DEFUN([LT_AC_PROG_SED], []) | ||
7122 | |||
7123 | |||
7124 | # _LT_CHECK_SHELL_FEATURES | ||
7125 | # ------------------------ | ||
7126 | # Find out whether the shell is Bourne or XSI compatible, | ||
7127 | # or has some other useful features. | ||
7128 | m4_defun([_LT_CHECK_SHELL_FEATURES], | ||
7129 | [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) | ||
7130 | # Try some XSI features | ||
7131 | xsi_shell=no | ||
7132 | ( _lt_dummy="a/b/c" | ||
7133 | test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ | ||
7134 | = c,a/b,, \ | ||
7135 | && eval 'test $(( 1 + 1 )) -eq 2 \ | ||
7136 | && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ | ||
7137 | && xsi_shell=yes | ||
7138 | AC_MSG_RESULT([$xsi_shell]) | ||
7139 | _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) | ||
7140 | |||
7141 | AC_MSG_CHECKING([whether the shell understands "+="]) | ||
7142 | lt_shell_append=no | ||
7143 | ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ | ||
7144 | >/dev/null 2>&1 \ | ||
7145 | && lt_shell_append=yes | ||
7146 | AC_MSG_RESULT([$lt_shell_append]) | ||
7147 | _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) | ||
7148 | |||
7149 | if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then | ||
7150 | lt_unset=unset | ||
7151 | else | ||
7152 | lt_unset=false | ||
7153 | fi | ||
7154 | _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl | ||
7155 | |||
7156 | # test EBCDIC or ASCII | ||
7157 | case `echo X|tr X '\101'` in | ||
7158 | A) # ASCII based system | ||
7159 | # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr | ||
7160 | lt_SP2NL='tr \040 \012' | ||
7161 | lt_NL2SP='tr \015\012 \040\040' | ||
7162 | ;; | ||
7163 | *) # EBCDIC based system | ||
7164 | lt_SP2NL='tr \100 \n' | ||
7165 | lt_NL2SP='tr \r\n \100\100' | ||
7166 | ;; | ||
7167 | esac | ||
7168 | _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl | ||
7169 | _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl | ||
7170 | ])# _LT_CHECK_SHELL_FEATURES | ||
7171 | |||
7172 | |||
7173 | # _LT_PROG_XSI_SHELLFNS | ||
7174 | # --------------------- | ||
7175 | # Bourne and XSI compatible variants of some useful shell functions. | ||
7176 | m4_defun([_LT_PROG_XSI_SHELLFNS], | ||
7177 | [case $xsi_shell in | ||
7178 | yes) | ||
7179 | cat << \_LT_EOF >> "$cfgfile" | ||
7180 | |||
7181 | # func_dirname file append nondir_replacement | ||
7182 | # Compute the dirname of FILE. If nonempty, add APPEND to the result, | ||
7183 | # otherwise set result to NONDIR_REPLACEMENT. | ||
7184 | func_dirname () | ||
7185 | { | ||
7186 | case ${1} in | ||
7187 | */*) func_dirname_result="${1%/*}${2}" ;; | ||
7188 | * ) func_dirname_result="${3}" ;; | ||
7189 | esac | ||
7190 | } | ||
7191 | |||
7192 | # func_basename file | ||
7193 | func_basename () | ||
7194 | { | ||
7195 | func_basename_result="${1##*/}" | ||
7196 | } | ||
7197 | |||
7198 | # func_dirname_and_basename file append nondir_replacement | ||
7199 | # perform func_basename and func_dirname in a single function | ||
7200 | # call: | ||
7201 | # dirname: Compute the dirname of FILE. If nonempty, | ||
7202 | # add APPEND to the result, otherwise set result | ||
7203 | # to NONDIR_REPLACEMENT. | ||
7204 | # value returned in "$func_dirname_result" | ||
7205 | # basename: Compute filename of FILE. | ||
7206 | # value retuned in "$func_basename_result" | ||
7207 | # Implementation must be kept synchronized with func_dirname | ||
7208 | # and func_basename. For efficiency, we do not delegate to | ||
7209 | # those functions but instead duplicate the functionality here. | ||
7210 | func_dirname_and_basename () | ||
7211 | { | ||
7212 | case ${1} in | ||
7213 | */*) func_dirname_result="${1%/*}${2}" ;; | ||
7214 | * ) func_dirname_result="${3}" ;; | ||
7215 | esac | ||
7216 | func_basename_result="${1##*/}" | ||
7217 | } | ||
7218 | |||
7219 | # func_stripname prefix suffix name | ||
7220 | # strip PREFIX and SUFFIX off of NAME. | ||
7221 | # PREFIX and SUFFIX must not contain globbing or regex special | ||
7222 | # characters, hashes, percent signs, but SUFFIX may contain a leading | ||
7223 | # dot (in which case that matches only a dot). | ||
7224 | func_stripname () | ||
7225 | { | ||
7226 | # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are | ||
7227 | # positional parameters, so assign one to ordinary parameter first. | ||
7228 | func_stripname_result=${3} | ||
7229 | func_stripname_result=${func_stripname_result#"${1}"} | ||
7230 | func_stripname_result=${func_stripname_result%"${2}"} | ||
7231 | } | ||
7232 | |||
7233 | # func_opt_split | ||
7234 | func_opt_split () | ||
7235 | { | ||
7236 | func_opt_split_opt=${1%%=*} | ||
7237 | func_opt_split_arg=${1#*=} | ||
7238 | } | ||
7239 | |||
7240 | # func_lo2o object | ||
7241 | func_lo2o () | ||
7242 | { | ||
7243 | case ${1} in | ||
7244 | *.lo) func_lo2o_result=${1%.lo}.${objext} ;; | ||
7245 | *) func_lo2o_result=${1} ;; | ||
7246 | esac | ||
7247 | } | ||
7248 | |||
7249 | # func_xform libobj-or-source | ||
7250 | func_xform () | ||
7251 | { | ||
7252 | func_xform_result=${1%.*}.lo | ||
7253 | } | ||
7254 | |||
7255 | # func_arith arithmetic-term... | ||
7256 | func_arith () | ||
7257 | { | ||
7258 | func_arith_result=$(( $[*] )) | ||
7259 | } | ||
7260 | |||
7261 | # func_len string | ||
7262 | # STRING may not start with a hyphen. | ||
7263 | func_len () | ||
7264 | { | ||
7265 | func_len_result=${#1} | ||
7266 | } | ||
7267 | |||
7268 | _LT_EOF | ||
7269 | ;; | ||
7270 | *) # Bourne compatible functions. | ||
7271 | cat << \_LT_EOF >> "$cfgfile" | ||
7272 | |||
7273 | # func_dirname file append nondir_replacement | ||
7274 | # Compute the dirname of FILE. If nonempty, add APPEND to the result, | ||
7275 | # otherwise set result to NONDIR_REPLACEMENT. | ||
7276 | func_dirname () | ||
7277 | { | ||
7278 | # Extract subdirectory from the argument. | ||
7279 | func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` | ||
7280 | if test "X$func_dirname_result" = "X${1}"; then | ||
7281 | func_dirname_result="${3}" | ||
7282 | else | ||
7283 | func_dirname_result="$func_dirname_result${2}" | ||
7284 | fi | ||
7285 | } | ||
7286 | |||
7287 | # func_basename file | ||
7288 | func_basename () | ||
7289 | { | ||
7290 | func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` | ||
7291 | } | ||
7292 | |||
7293 | dnl func_dirname_and_basename | ||
7294 | dnl A portable version of this function is already defined in general.m4sh | ||
7295 | dnl so there is no need for it here. | ||
7296 | |||
7297 | # func_stripname prefix suffix name | ||
7298 | # strip PREFIX and SUFFIX off of NAME. | ||
7299 | # PREFIX and SUFFIX must not contain globbing or regex special | ||
7300 | # characters, hashes, percent signs, but SUFFIX may contain a leading | ||
7301 | # dot (in which case that matches only a dot). | ||
7302 | # func_strip_suffix prefix name | ||
7303 | func_stripname () | ||
7304 | { | ||
7305 | case ${2} in | ||
7306 | .*) func_stripname_result=`$ECHO "X${3}" \ | ||
7307 | | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; | ||
7308 | *) func_stripname_result=`$ECHO "X${3}" \ | ||
7309 | | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; | ||
7310 | esac | ||
7311 | } | ||
7312 | |||
7313 | # sed scripts: | ||
7314 | my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' | ||
7315 | my_sed_long_arg='1s/^-[[^=]]*=//' | ||
7316 | |||
7317 | # func_opt_split | ||
7318 | func_opt_split () | ||
7319 | { | ||
7320 | func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` | ||
7321 | func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` | ||
7322 | } | ||
7323 | |||
7324 | # func_lo2o object | ||
7325 | func_lo2o () | ||
7326 | { | ||
7327 | func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` | ||
7328 | } | ||
7329 | |||
7330 | # func_xform libobj-or-source | ||
7331 | func_xform () | ||
7332 | { | ||
7333 | func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` | ||
7334 | } | ||
7335 | |||
7336 | # func_arith arithmetic-term... | ||
7337 | func_arith () | ||
7338 | { | ||
7339 | func_arith_result=`expr "$[@]"` | ||
7340 | } | ||
7341 | |||
7342 | # func_len string | ||
7343 | # STRING may not start with a hyphen. | ||
7344 | func_len () | ||
7345 | { | ||
7346 | func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` | ||
7347 | } | ||
7348 | |||
7349 | _LT_EOF | ||
7350 | esac | ||
7351 | |||
7352 | case $lt_shell_append in | ||
7353 | yes) | ||
7354 | cat << \_LT_EOF >> "$cfgfile" | ||
7355 | |||
7356 | # func_append var value | ||
7357 | # Append VALUE to the end of shell variable VAR. | ||
7358 | func_append () | ||
7359 | { | ||
7360 | eval "$[1]+=\$[2]" | ||
7361 | } | ||
7362 | _LT_EOF | ||
7363 | ;; | ||
7364 | *) | ||
7365 | cat << \_LT_EOF >> "$cfgfile" | ||
7366 | |||
7367 | # func_append var value | ||
7368 | # Append VALUE to the end of shell variable VAR. | ||
7369 | func_append () | ||
7370 | { | ||
7371 | eval "$[1]=\$$[1]\$[2]" | ||
7372 | } | ||
7373 | |||
7374 | _LT_EOF | ||
7375 | ;; | ||
7376 | esac | ||
7377 | ]) | ||
diff --git a/libraries/eet/m4/ltoptions.m4 b/libraries/eet/m4/ltoptions.m4 deleted file mode 100644 index 34151a3..0000000 --- a/libraries/eet/m4/ltoptions.m4 +++ /dev/null | |||
@@ -1,368 +0,0 @@ | |||
1 | # Helper functions for option handling. -*- Autoconf -*- | ||
2 | # | ||
3 | # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. | ||
4 | # Written by Gary V. Vaughan, 2004 | ||
5 | # | ||
6 | # This file is free software; the Free Software Foundation gives | ||
7 | # unlimited permission to copy and/or distribute it, with or without | ||
8 | # modifications, as long as this notice is preserved. | ||
9 | |||
10 | # serial 6 ltoptions.m4 | ||
11 | |||
12 | # This is to help aclocal find these macros, as it can't see m4_define. | ||
13 | AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) | ||
14 | |||
15 | |||
16 | # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) | ||
17 | # ------------------------------------------ | ||
18 | m4_define([_LT_MANGLE_OPTION], | ||
19 | [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) | ||
20 | |||
21 | |||
22 | # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) | ||
23 | # --------------------------------------- | ||
24 | # Set option OPTION-NAME for macro MACRO-NAME, and if there is a | ||
25 | # matching handler defined, dispatch to it. Other OPTION-NAMEs are | ||
26 | # saved as a flag. | ||
27 | m4_define([_LT_SET_OPTION], | ||
28 | [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl | ||
29 | m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), | ||
30 | _LT_MANGLE_DEFUN([$1], [$2]), | ||
31 | [m4_warning([Unknown $1 option `$2'])])[]dnl | ||
32 | ]) | ||
33 | |||
34 | |||
35 | # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) | ||
36 | # ------------------------------------------------------------ | ||
37 | # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. | ||
38 | m4_define([_LT_IF_OPTION], | ||
39 | [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) | ||
40 | |||
41 | |||
42 | # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) | ||
43 | # ------------------------------------------------------- | ||
44 | # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME | ||
45 | # are set. | ||
46 | m4_define([_LT_UNLESS_OPTIONS], | ||
47 | [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), | ||
48 | [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), | ||
49 | [m4_define([$0_found])])])[]dnl | ||
50 | m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 | ||
51 | ])[]dnl | ||
52 | ]) | ||
53 | |||
54 | |||
55 | # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) | ||
56 | # ---------------------------------------- | ||
57 | # OPTION-LIST is a space-separated list of Libtool options associated | ||
58 | # with MACRO-NAME. If any OPTION has a matching handler declared with | ||
59 | # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about | ||
60 | # the unknown option and exit. | ||
61 | m4_defun([_LT_SET_OPTIONS], | ||
62 | [# Set options | ||
63 | m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), | ||
64 | [_LT_SET_OPTION([$1], _LT_Option)]) | ||
65 | |||
66 | m4_if([$1],[LT_INIT],[ | ||
67 | dnl | ||
68 | dnl Simply set some default values (i.e off) if boolean options were not | ||
69 | dnl specified: | ||
70 | _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no | ||
71 | ]) | ||
72 | _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no | ||
73 | ]) | ||
74 | dnl | ||
75 | dnl If no reference was made to various pairs of opposing options, then | ||
76 | dnl we run the default mode handler for the pair. For example, if neither | ||
77 | dnl `shared' nor `disable-shared' was passed, we enable building of shared | ||
78 | dnl archives by default: | ||
79 | _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) | ||
80 | _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) | ||
81 | _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) | ||
82 | _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], | ||
83 | [_LT_ENABLE_FAST_INSTALL]) | ||
84 | ]) | ||
85 | ])# _LT_SET_OPTIONS | ||
86 | |||
87 | |||
88 | ## --------------------------------- ## | ||
89 | ## Macros to handle LT_INIT options. ## | ||
90 | ## --------------------------------- ## | ||
91 | |||
92 | # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) | ||
93 | # ----------------------------------------- | ||
94 | m4_define([_LT_MANGLE_DEFUN], | ||
95 | [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) | ||
96 | |||
97 | |||
98 | # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) | ||
99 | # ----------------------------------------------- | ||
100 | m4_define([LT_OPTION_DEFINE], | ||
101 | [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl | ||
102 | ])# LT_OPTION_DEFINE | ||
103 | |||
104 | |||
105 | # dlopen | ||
106 | # ------ | ||
107 | LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes | ||
108 | ]) | ||
109 | |||
110 | AU_DEFUN([AC_LIBTOOL_DLOPEN], | ||
111 | [_LT_SET_OPTION([LT_INIT], [dlopen]) | ||
112 | AC_DIAGNOSE([obsolete], | ||
113 | [$0: Remove this warning and the call to _LT_SET_OPTION when you | ||
114 | put the `dlopen' option into LT_INIT's first parameter.]) | ||
115 | ]) | ||
116 | |||
117 | dnl aclocal-1.4 backwards compatibility: | ||
118 | dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) | ||
119 | |||
120 | |||
121 | # win32-dll | ||
122 | # --------- | ||
123 | # Declare package support for building win32 dll's. | ||
124 | LT_OPTION_DEFINE([LT_INIT], [win32-dll], | ||
125 | [enable_win32_dll=yes | ||
126 | |||
127 | case $host in | ||
128 | *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) | ||
129 | AC_CHECK_TOOL(AS, as, false) | ||
130 | AC_CHECK_TOOL(DLLTOOL, dlltool, false) | ||
131 | AC_CHECK_TOOL(OBJDUMP, objdump, false) | ||
132 | ;; | ||
133 | esac | ||
134 | |||
135 | test -z "$AS" && AS=as | ||
136 | _LT_DECL([], [AS], [0], [Assembler program])dnl | ||
137 | |||
138 | test -z "$DLLTOOL" && DLLTOOL=dlltool | ||
139 | _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl | ||
140 | |||
141 | test -z "$OBJDUMP" && OBJDUMP=objdump | ||
142 | _LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl | ||
143 | ])# win32-dll | ||
144 | |||
145 | AU_DEFUN([AC_LIBTOOL_WIN32_DLL], | ||
146 | [AC_REQUIRE([AC_CANONICAL_HOST])dnl | ||
147 | _LT_SET_OPTION([LT_INIT], [win32-dll]) | ||
148 | AC_DIAGNOSE([obsolete], | ||
149 | [$0: Remove this warning and the call to _LT_SET_OPTION when you | ||
150 | put the `win32-dll' option into LT_INIT's first parameter.]) | ||
151 | ]) | ||
152 | |||
153 | dnl aclocal-1.4 backwards compatibility: | ||
154 | dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) | ||
155 | |||
156 | |||
157 | # _LT_ENABLE_SHARED([DEFAULT]) | ||
158 | # ---------------------------- | ||
159 | # implement the --enable-shared flag, and supports the `shared' and | ||
160 | # `disable-shared' LT_INIT options. | ||
161 | # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. | ||
162 | m4_define([_LT_ENABLE_SHARED], | ||
163 | [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl | ||
164 | AC_ARG_ENABLE([shared], | ||
165 | [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], | ||
166 | [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], | ||
167 | [p=${PACKAGE-default} | ||
168 | case $enableval in | ||
169 | yes) enable_shared=yes ;; | ||
170 | no) enable_shared=no ;; | ||
171 | *) | ||
172 | enable_shared=no | ||
173 | # Look at the argument we got. We use all the common list separators. | ||
174 | lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," | ||
175 | for pkg in $enableval; do | ||
176 | IFS="$lt_save_ifs" | ||
177 | if test "X$pkg" = "X$p"; then | ||
178 | enable_shared=yes | ||
179 | fi | ||
180 | done | ||
181 | IFS="$lt_save_ifs" | ||
182 | ;; | ||
183 | esac], | ||
184 | [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) | ||
185 | |||
186 | _LT_DECL([build_libtool_libs], [enable_shared], [0], | ||
187 | [Whether or not to build shared libraries]) | ||
188 | ])# _LT_ENABLE_SHARED | ||
189 | |||
190 | LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) | ||
191 | LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) | ||
192 | |||
193 | # Old names: | ||
194 | AC_DEFUN([AC_ENABLE_SHARED], | ||
195 | [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) | ||
196 | ]) | ||
197 | |||
198 | AC_DEFUN([AC_DISABLE_SHARED], | ||
199 | [_LT_SET_OPTION([LT_INIT], [disable-shared]) | ||
200 | ]) | ||
201 | |||
202 | AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) | ||
203 | AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) | ||
204 | |||
205 | dnl aclocal-1.4 backwards compatibility: | ||
206 | dnl AC_DEFUN([AM_ENABLE_SHARED], []) | ||
207 | dnl AC_DEFUN([AM_DISABLE_SHARED], []) | ||
208 | |||
209 | |||
210 | |||
211 | # _LT_ENABLE_STATIC([DEFAULT]) | ||
212 | # ---------------------------- | ||
213 | # implement the --enable-static flag, and support the `static' and | ||
214 | # `disable-static' LT_INIT options. | ||
215 | # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. | ||
216 | m4_define([_LT_ENABLE_STATIC], | ||
217 | [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl | ||
218 | AC_ARG_ENABLE([static], | ||
219 | [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], | ||
220 | [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], | ||
221 | [p=${PACKAGE-default} | ||
222 | case $enableval in | ||
223 | yes) enable_static=yes ;; | ||
224 | no) enable_static=no ;; | ||
225 | *) | ||
226 | enable_static=no | ||
227 | # Look at the argument we got. We use all the common list separators. | ||
228 | lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," | ||
229 | for pkg in $enableval; do | ||
230 | IFS="$lt_save_ifs" | ||
231 | if test "X$pkg" = "X$p"; then | ||
232 | enable_static=yes | ||
233 | fi | ||
234 | done | ||
235 | IFS="$lt_save_ifs" | ||
236 | ;; | ||
237 | esac], | ||
238 | [enable_static=]_LT_ENABLE_STATIC_DEFAULT) | ||
239 | |||
240 | _LT_DECL([build_old_libs], [enable_static], [0], | ||
241 | [Whether or not to build static libraries]) | ||
242 | ])# _LT_ENABLE_STATIC | ||
243 | |||
244 | LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) | ||
245 | LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) | ||
246 | |||
247 | # Old names: | ||
248 | AC_DEFUN([AC_ENABLE_STATIC], | ||
249 | [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) | ||
250 | ]) | ||
251 | |||
252 | AC_DEFUN([AC_DISABLE_STATIC], | ||
253 | [_LT_SET_OPTION([LT_INIT], [disable-static]) | ||
254 | ]) | ||
255 | |||
256 | AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) | ||
257 | AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) | ||
258 | |||
259 | dnl aclocal-1.4 backwards compatibility: | ||
260 | dnl AC_DEFUN([AM_ENABLE_STATIC], []) | ||
261 | dnl AC_DEFUN([AM_DISABLE_STATIC], []) | ||
262 | |||
263 | |||
264 | |||
265 | # _LT_ENABLE_FAST_INSTALL([DEFAULT]) | ||
266 | # ---------------------------------- | ||
267 | # implement the --enable-fast-install flag, and support the `fast-install' | ||
268 | # and `disable-fast-install' LT_INIT options. | ||
269 | # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. | ||
270 | m4_define([_LT_ENABLE_FAST_INSTALL], | ||
271 | [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl | ||
272 | AC_ARG_ENABLE([fast-install], | ||
273 | [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], | ||
274 | [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], | ||
275 | [p=${PACKAGE-default} | ||
276 | case $enableval in | ||
277 | yes) enable_fast_install=yes ;; | ||
278 | no) enable_fast_install=no ;; | ||
279 | *) | ||
280 | enable_fast_install=no | ||
281 | # Look at the argument we got. We use all the common list separators. | ||
282 | lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," | ||
283 | for pkg in $enableval; do | ||
284 | IFS="$lt_save_ifs" | ||
285 | if test "X$pkg" = "X$p"; then | ||
286 | enable_fast_install=yes | ||
287 | fi | ||
288 | done | ||
289 | IFS="$lt_save_ifs" | ||
290 | ;; | ||
291 | esac], | ||
292 | [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) | ||
293 | |||
294 | _LT_DECL([fast_install], [enable_fast_install], [0], | ||
295 | [Whether or not to optimize for fast installation])dnl | ||
296 | ])# _LT_ENABLE_FAST_INSTALL | ||
297 | |||
298 | LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) | ||
299 | LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) | ||
300 | |||
301 | # Old names: | ||
302 | AU_DEFUN([AC_ENABLE_FAST_INSTALL], | ||
303 | [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) | ||
304 | AC_DIAGNOSE([obsolete], | ||
305 | [$0: Remove this warning and the call to _LT_SET_OPTION when you put | ||
306 | the `fast-install' option into LT_INIT's first parameter.]) | ||
307 | ]) | ||
308 | |||
309 | AU_DEFUN([AC_DISABLE_FAST_INSTALL], | ||
310 | [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) | ||
311 | AC_DIAGNOSE([obsolete], | ||
312 | [$0: Remove this warning and the call to _LT_SET_OPTION when you put | ||
313 | the `disable-fast-install' option into LT_INIT's first parameter.]) | ||
314 | ]) | ||
315 | |||
316 | dnl aclocal-1.4 backwards compatibility: | ||
317 | dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) | ||
318 | dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) | ||
319 | |||
320 | |||
321 | # _LT_WITH_PIC([MODE]) | ||
322 | # -------------------- | ||
323 | # implement the --with-pic flag, and support the `pic-only' and `no-pic' | ||
324 | # LT_INIT options. | ||
325 | # MODE is either `yes' or `no'. If omitted, it defaults to `both'. | ||
326 | m4_define([_LT_WITH_PIC], | ||
327 | [AC_ARG_WITH([pic], | ||
328 | [AS_HELP_STRING([--with-pic], | ||
329 | [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], | ||
330 | [pic_mode="$withval"], | ||
331 | [pic_mode=default]) | ||
332 | |||
333 | test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) | ||
334 | |||
335 | _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl | ||
336 | ])# _LT_WITH_PIC | ||
337 | |||
338 | LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) | ||
339 | LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) | ||
340 | |||
341 | # Old name: | ||
342 | AU_DEFUN([AC_LIBTOOL_PICMODE], | ||
343 | [_LT_SET_OPTION([LT_INIT], [pic-only]) | ||
344 | AC_DIAGNOSE([obsolete], | ||
345 | [$0: Remove this warning and the call to _LT_SET_OPTION when you | ||
346 | put the `pic-only' option into LT_INIT's first parameter.]) | ||
347 | ]) | ||
348 | |||
349 | dnl aclocal-1.4 backwards compatibility: | ||
350 | dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) | ||
351 | |||
352 | ## ----------------- ## | ||
353 | ## LTDL_INIT Options ## | ||
354 | ## ----------------- ## | ||
355 | |||
356 | m4_define([_LTDL_MODE], []) | ||
357 | LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], | ||
358 | [m4_define([_LTDL_MODE], [nonrecursive])]) | ||
359 | LT_OPTION_DEFINE([LTDL_INIT], [recursive], | ||
360 | [m4_define([_LTDL_MODE], [recursive])]) | ||
361 | LT_OPTION_DEFINE([LTDL_INIT], [subproject], | ||
362 | [m4_define([_LTDL_MODE], [subproject])]) | ||
363 | |||
364 | m4_define([_LTDL_TYPE], []) | ||
365 | LT_OPTION_DEFINE([LTDL_INIT], [installable], | ||
366 | [m4_define([_LTDL_TYPE], [installable])]) | ||
367 | LT_OPTION_DEFINE([LTDL_INIT], [convenience], | ||
368 | [m4_define([_LTDL_TYPE], [convenience])]) | ||
diff --git a/libraries/eet/m4/ltsugar.m4 b/libraries/eet/m4/ltsugar.m4 deleted file mode 100644 index 9000a05..0000000 --- a/libraries/eet/m4/ltsugar.m4 +++ /dev/null | |||
@@ -1,123 +0,0 @@ | |||
1 | # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- | ||
2 | # | ||
3 | # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. | ||
4 | # Written by Gary V. Vaughan, 2004 | ||
5 | # | ||
6 | # This file is free software; the Free Software Foundation gives | ||
7 | # unlimited permission to copy and/or distribute it, with or without | ||
8 | # modifications, as long as this notice is preserved. | ||
9 | |||
10 | # serial 6 ltsugar.m4 | ||
11 | |||
12 | # This is to help aclocal find these macros, as it can't see m4_define. | ||
13 | AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) | ||
14 | |||
15 | |||
16 | # lt_join(SEP, ARG1, [ARG2...]) | ||
17 | # ----------------------------- | ||
18 | # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their | ||
19 | # associated separator. | ||
20 | # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier | ||
21 | # versions in m4sugar had bugs. | ||
22 | m4_define([lt_join], | ||
23 | [m4_if([$#], [1], [], | ||
24 | [$#], [2], [[$2]], | ||
25 | [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) | ||
26 | m4_define([_lt_join], | ||
27 | [m4_if([$#$2], [2], [], | ||
28 | [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) | ||
29 | |||
30 | |||
31 | # lt_car(LIST) | ||
32 | # lt_cdr(LIST) | ||
33 | # ------------ | ||
34 | # Manipulate m4 lists. | ||
35 | # These macros are necessary as long as will still need to support | ||
36 | # Autoconf-2.59 which quotes differently. | ||
37 | m4_define([lt_car], [[$1]]) | ||
38 | m4_define([lt_cdr], | ||
39 | [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], | ||
40 | [$#], 1, [], | ||
41 | [m4_dquote(m4_shift($@))])]) | ||
42 | m4_define([lt_unquote], $1) | ||
43 | |||
44 | |||
45 | # lt_append(MACRO-NAME, STRING, [SEPARATOR]) | ||
46 | # ------------------------------------------ | ||
47 | # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. | ||
48 | # Note that neither SEPARATOR nor STRING are expanded; they are appended | ||
49 | # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). | ||
50 | # No SEPARATOR is output if MACRO-NAME was previously undefined (different | ||
51 | # than defined and empty). | ||
52 | # | ||
53 | # This macro is needed until we can rely on Autoconf 2.62, since earlier | ||
54 | # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. | ||
55 | m4_define([lt_append], | ||
56 | [m4_define([$1], | ||
57 | m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) | ||
58 | |||
59 | |||
60 | |||
61 | # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) | ||
62 | # ---------------------------------------------------------- | ||
63 | # Produce a SEP delimited list of all paired combinations of elements of | ||
64 | # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list | ||
65 | # has the form PREFIXmINFIXSUFFIXn. | ||
66 | # Needed until we can rely on m4_combine added in Autoconf 2.62. | ||
67 | m4_define([lt_combine], | ||
68 | [m4_if(m4_eval([$# > 3]), [1], | ||
69 | [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl | ||
70 | [[m4_foreach([_Lt_prefix], [$2], | ||
71 | [m4_foreach([_Lt_suffix], | ||
72 | ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, | ||
73 | [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) | ||
74 | |||
75 | |||
76 | # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) | ||
77 | # ----------------------------------------------------------------------- | ||
78 | # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited | ||
79 | # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. | ||
80 | m4_define([lt_if_append_uniq], | ||
81 | [m4_ifdef([$1], | ||
82 | [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], | ||
83 | [lt_append([$1], [$2], [$3])$4], | ||
84 | [$5])], | ||
85 | [lt_append([$1], [$2], [$3])$4])]) | ||
86 | |||
87 | |||
88 | # lt_dict_add(DICT, KEY, VALUE) | ||
89 | # ----------------------------- | ||
90 | m4_define([lt_dict_add], | ||
91 | [m4_define([$1($2)], [$3])]) | ||
92 | |||
93 | |||
94 | # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) | ||
95 | # -------------------------------------------- | ||
96 | m4_define([lt_dict_add_subkey], | ||
97 | [m4_define([$1($2:$3)], [$4])]) | ||
98 | |||
99 | |||
100 | # lt_dict_fetch(DICT, KEY, [SUBKEY]) | ||
101 | # ---------------------------------- | ||
102 | m4_define([lt_dict_fetch], | ||
103 | [m4_ifval([$3], | ||
104 | m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), | ||
105 | m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) | ||
106 | |||
107 | |||
108 | # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) | ||
109 | # ----------------------------------------------------------------- | ||
110 | m4_define([lt_if_dict_fetch], | ||
111 | [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], | ||
112 | [$5], | ||
113 | [$6])]) | ||
114 | |||
115 | |||
116 | # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) | ||
117 | # -------------------------------------------------------------- | ||
118 | m4_define([lt_dict_filter], | ||
119 | [m4_if([$5], [], [], | ||
120 | [lt_join(m4_quote(m4_default([$4], [[, ]])), | ||
121 | lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), | ||
122 | [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl | ||
123 | ]) | ||
diff --git a/libraries/eet/m4/ltversion.m4 b/libraries/eet/m4/ltversion.m4 deleted file mode 100644 index f3c5309..0000000 --- a/libraries/eet/m4/ltversion.m4 +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
1 | # ltversion.m4 -- version numbers -*- Autoconf -*- | ||
2 | # | ||
3 | # Copyright (C) 2004 Free Software Foundation, Inc. | ||
4 | # Written by Scott James Remnant, 2004 | ||
5 | # | ||
6 | # This file is free software; the Free Software Foundation gives | ||
7 | # unlimited permission to copy and/or distribute it, with or without | ||
8 | # modifications, as long as this notice is preserved. | ||
9 | |||
10 | # Generated from ltversion.in. | ||
11 | |||
12 | # serial 3017 ltversion.m4 | ||
13 | # This file is part of GNU Libtool | ||
14 | |||
15 | m4_define([LT_PACKAGE_VERSION], [2.2.6b]) | ||
16 | m4_define([LT_PACKAGE_REVISION], [1.3017]) | ||
17 | |||
18 | AC_DEFUN([LTVERSION_VERSION], | ||
19 | [macro_version='2.2.6b' | ||
20 | macro_revision='1.3017' | ||
21 | _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) | ||
22 | _LT_DECL(, macro_revision, 0) | ||
23 | ]) | ||
diff --git a/libraries/eet/m4/lt~obsolete.m4 b/libraries/eet/m4/lt~obsolete.m4 deleted file mode 100644 index 637bb20..0000000 --- a/libraries/eet/m4/lt~obsolete.m4 +++ /dev/null | |||
@@ -1,92 +0,0 @@ | |||
1 | # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- | ||
2 | # | ||
3 | # Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. | ||
4 | # Written by Scott James Remnant, 2004. | ||
5 | # | ||
6 | # This file is free software; the Free Software Foundation gives | ||
7 | # unlimited permission to copy and/or distribute it, with or without | ||
8 | # modifications, as long as this notice is preserved. | ||
9 | |||
10 | # serial 4 lt~obsolete.m4 | ||
11 | |||
12 | # These exist entirely to fool aclocal when bootstrapping libtool. | ||
13 | # | ||
14 | # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) | ||
15 | # which have later been changed to m4_define as they aren't part of the | ||
16 | # exported API, or moved to Autoconf or Automake where they belong. | ||
17 | # | ||
18 | # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN | ||
19 | # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us | ||
20 | # using a macro with the same name in our local m4/libtool.m4 it'll | ||
21 | # pull the old libtool.m4 in (it doesn't see our shiny new m4_define | ||
22 | # and doesn't know about Autoconf macros at all.) | ||
23 | # | ||
24 | # So we provide this file, which has a silly filename so it's always | ||
25 | # included after everything else. This provides aclocal with the | ||
26 | # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything | ||
27 | # because those macros already exist, or will be overwritten later. | ||
28 | # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. | ||
29 | # | ||
30 | # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. | ||
31 | # Yes, that means every name once taken will need to remain here until | ||
32 | # we give up compatibility with versions before 1.7, at which point | ||
33 | # we need to keep only those names which we still refer to. | ||
34 | |||
35 | # This is to help aclocal find these macros, as it can't see m4_define. | ||
36 | AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) | ||
37 | |||
38 | m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) | ||
39 | m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) | ||
40 | m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) | ||
41 | m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) | ||
42 | m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) | ||
43 | m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) | ||
44 | m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) | ||
45 | m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) | ||
46 | m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) | ||
47 | m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) | ||
48 | m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) | ||
49 | m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) | ||
50 | m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) | ||
51 | m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) | ||
52 | m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) | ||
53 | m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) | ||
54 | m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) | ||
55 | m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) | ||
56 | m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) | ||
57 | m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) | ||
58 | m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) | ||
59 | m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) | ||
60 | m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) | ||
61 | m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) | ||
62 | m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) | ||
63 | m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) | ||
64 | m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) | ||
65 | m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) | ||
66 | m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) | ||
67 | m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) | ||
68 | m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) | ||
69 | m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) | ||
70 | m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) | ||
71 | m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) | ||
72 | m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) | ||
73 | m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) | ||
74 | m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) | ||
75 | m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) | ||
76 | m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) | ||
77 | m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) | ||
78 | m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) | ||
79 | m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) | ||
80 | m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) | ||
81 | m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) | ||
82 | m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) | ||
83 | m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) | ||
84 | m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) | ||
85 | m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) | ||
86 | m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) | ||
87 | m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) | ||
88 | m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) | ||
89 | m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) | ||
90 | m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) | ||
91 | m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) | ||
92 | m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) | ||
diff --git a/libraries/eet/missing b/libraries/eet/missing deleted file mode 100755 index 28055d2..0000000 --- a/libraries/eet/missing +++ /dev/null | |||
@@ -1,376 +0,0 @@ | |||
1 | #! /bin/sh | ||
2 | # Common stub for a few missing GNU programs while installing. | ||
3 | |||
4 | scriptversion=2009-04-28.21; # UTC | ||
5 | |||
6 | # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, | ||
7 | # 2008, 2009 Free Software Foundation, Inc. | ||
8 | # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. | ||
9 | |||
10 | # This program is free software; you can redistribute it and/or modify | ||
11 | # it under the terms of the GNU General Public License as published by | ||
12 | # the Free Software Foundation; either version 2, or (at your option) | ||
13 | # any later version. | ||
14 | |||
15 | # This program is distributed in the hope that it will be useful, | ||
16 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
17 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
18 | # GNU General Public License for more details. | ||
19 | |||
20 | # You should have received a copy of the GNU General Public License | ||
21 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
22 | |||
23 | # As a special exception to the GNU General Public License, if you | ||
24 | # distribute this file as part of a program that contains a | ||
25 | # configuration script generated by Autoconf, you may include it under | ||
26 | # the same distribution terms that you use for the rest of that program. | ||
27 | |||
28 | if test $# -eq 0; then | ||
29 | echo 1>&2 "Try \`$0 --help' for more information" | ||
30 | exit 1 | ||
31 | fi | ||
32 | |||
33 | run=: | ||
34 | sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' | ||
35 | sed_minuso='s/.* -o \([^ ]*\).*/\1/p' | ||
36 | |||
37 | # In the cases where this matters, `missing' is being run in the | ||
38 | # srcdir already. | ||
39 | if test -f configure.ac; then | ||
40 | configure_ac=configure.ac | ||
41 | else | ||
42 | configure_ac=configure.in | ||
43 | fi | ||
44 | |||
45 | msg="missing on your system" | ||
46 | |||
47 | case $1 in | ||
48 | --run) | ||
49 | # Try to run requested program, and just exit if it succeeds. | ||
50 | run= | ||
51 | shift | ||
52 | "$@" && exit 0 | ||
53 | # Exit code 63 means version mismatch. This often happens | ||
54 | # when the user try to use an ancient version of a tool on | ||
55 | # a file that requires a minimum version. In this case we | ||
56 | # we should proceed has if the program had been absent, or | ||
57 | # if --run hadn't been passed. | ||
58 | if test $? = 63; then | ||
59 | run=: | ||
60 | msg="probably too old" | ||
61 | fi | ||
62 | ;; | ||
63 | |||
64 | -h|--h|--he|--hel|--help) | ||
65 | echo "\ | ||
66 | $0 [OPTION]... PROGRAM [ARGUMENT]... | ||
67 | |||
68 | Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an | ||
69 | error status if there is no known handling for PROGRAM. | ||
70 | |||
71 | Options: | ||
72 | -h, --help display this help and exit | ||
73 | -v, --version output version information and exit | ||
74 | --run try to run the given command, and emulate it if it fails | ||
75 | |||
76 | Supported PROGRAM values: | ||
77 | aclocal touch file \`aclocal.m4' | ||
78 | autoconf touch file \`configure' | ||
79 | autoheader touch file \`config.h.in' | ||
80 | autom4te touch the output file, or create a stub one | ||
81 | automake touch all \`Makefile.in' files | ||
82 | bison create \`y.tab.[ch]', if possible, from existing .[ch] | ||
83 | flex create \`lex.yy.c', if possible, from existing .c | ||
84 | help2man touch the output file | ||
85 | lex create \`lex.yy.c', if possible, from existing .c | ||
86 | makeinfo touch the output file | ||
87 | tar try tar, gnutar, gtar, then tar without non-portable flags | ||
88 | yacc create \`y.tab.[ch]', if possible, from existing .[ch] | ||
89 | |||
90 | Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and | ||
91 | \`g' are ignored when checking the name. | ||
92 | |||
93 | Send bug reports to <bug-automake@gnu.org>." | ||
94 | exit $? | ||
95 | ;; | ||
96 | |||
97 | -v|--v|--ve|--ver|--vers|--versi|--versio|--version) | ||
98 | echo "missing $scriptversion (GNU Automake)" | ||
99 | exit $? | ||
100 | ;; | ||
101 | |||
102 | -*) | ||
103 | echo 1>&2 "$0: Unknown \`$1' option" | ||
104 | echo 1>&2 "Try \`$0 --help' for more information" | ||
105 | exit 1 | ||
106 | ;; | ||
107 | |||
108 | esac | ||
109 | |||
110 | # normalize program name to check for. | ||
111 | program=`echo "$1" | sed ' | ||
112 | s/^gnu-//; t | ||
113 | s/^gnu//; t | ||
114 | s/^g//; t'` | ||
115 | |||
116 | # Now exit if we have it, but it failed. Also exit now if we | ||
117 | # don't have it and --version was passed (most likely to detect | ||
118 | # the program). This is about non-GNU programs, so use $1 not | ||
119 | # $program. | ||
120 | case $1 in | ||
121 | lex*|yacc*) | ||
122 | # Not GNU programs, they don't have --version. | ||
123 | ;; | ||
124 | |||
125 | tar*) | ||
126 | if test -n "$run"; then | ||
127 | echo 1>&2 "ERROR: \`tar' requires --run" | ||
128 | exit 1 | ||
129 | elif test "x$2" = "x--version" || test "x$2" = "x--help"; then | ||
130 | exit 1 | ||
131 | fi | ||
132 | ;; | ||
133 | |||
134 | *) | ||
135 | if test -z "$run" && ($1 --version) > /dev/null 2>&1; then | ||
136 | # We have it, but it failed. | ||
137 | exit 1 | ||
138 | elif test "x$2" = "x--version" || test "x$2" = "x--help"; then | ||
139 | # Could not run --version or --help. This is probably someone | ||
140 | # running `$TOOL --version' or `$TOOL --help' to check whether | ||
141 | # $TOOL exists and not knowing $TOOL uses missing. | ||
142 | exit 1 | ||
143 | fi | ||
144 | ;; | ||
145 | esac | ||
146 | |||
147 | # If it does not exist, or fails to run (possibly an outdated version), | ||
148 | # try to emulate it. | ||
149 | case $program in | ||
150 | aclocal*) | ||
151 | echo 1>&2 "\ | ||
152 | WARNING: \`$1' is $msg. You should only need it if | ||
153 | you modified \`acinclude.m4' or \`${configure_ac}'. You might want | ||
154 | to install the \`Automake' and \`Perl' packages. Grab them from | ||
155 | any GNU archive site." | ||
156 | touch aclocal.m4 | ||
157 | ;; | ||
158 | |||
159 | autoconf*) | ||
160 | echo 1>&2 "\ | ||
161 | WARNING: \`$1' is $msg. You should only need it if | ||
162 | you modified \`${configure_ac}'. You might want to install the | ||
163 | \`Autoconf' and \`GNU m4' packages. Grab them from any GNU | ||
164 | archive site." | ||
165 | touch configure | ||
166 | ;; | ||
167 | |||
168 | autoheader*) | ||
169 | echo 1>&2 "\ | ||
170 | WARNING: \`$1' is $msg. You should only need it if | ||
171 | you modified \`acconfig.h' or \`${configure_ac}'. You might want | ||
172 | to install the \`Autoconf' and \`GNU m4' packages. Grab them | ||
173 | from any GNU archive site." | ||
174 | files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` | ||
175 | test -z "$files" && files="config.h" | ||
176 | touch_files= | ||
177 | for f in $files; do | ||
178 | case $f in | ||
179 | *:*) touch_files="$touch_files "`echo "$f" | | ||
180 | sed -e 's/^[^:]*://' -e 's/:.*//'`;; | ||
181 | *) touch_files="$touch_files $f.in";; | ||
182 | esac | ||
183 | done | ||
184 | touch $touch_files | ||
185 | ;; | ||
186 | |||
187 | automake*) | ||
188 | echo 1>&2 "\ | ||
189 | WARNING: \`$1' is $msg. You should only need it if | ||
190 | you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. | ||
191 | You might want to install the \`Automake' and \`Perl' packages. | ||
192 | Grab them from any GNU archive site." | ||
193 | find . -type f -name Makefile.am -print | | ||
194 | sed 's/\.am$/.in/' | | ||
195 | while read f; do touch "$f"; done | ||
196 | ;; | ||
197 | |||
198 | autom4te*) | ||
199 | echo 1>&2 "\ | ||
200 | WARNING: \`$1' is needed, but is $msg. | ||
201 | You might have modified some files without having the | ||
202 | proper tools for further handling them. | ||
203 | You can get \`$1' as part of \`Autoconf' from any GNU | ||
204 | archive site." | ||
205 | |||
206 | file=`echo "$*" | sed -n "$sed_output"` | ||
207 | test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` | ||
208 | if test -f "$file"; then | ||
209 | touch $file | ||
210 | else | ||
211 | test -z "$file" || exec >$file | ||
212 | echo "#! /bin/sh" | ||
213 | echo "# Created by GNU Automake missing as a replacement of" | ||
214 | echo "# $ $@" | ||
215 | echo "exit 0" | ||
216 | chmod +x $file | ||
217 | exit 1 | ||
218 | fi | ||
219 | ;; | ||
220 | |||
221 | bison*|yacc*) | ||
222 | echo 1>&2 "\ | ||
223 | WARNING: \`$1' $msg. You should only need it if | ||
224 | you modified a \`.y' file. You may need the \`Bison' package | ||
225 | in order for those modifications to take effect. You can get | ||
226 | \`Bison' from any GNU archive site." | ||
227 | rm -f y.tab.c y.tab.h | ||
228 | if test $# -ne 1; then | ||
229 | eval LASTARG="\${$#}" | ||
230 | case $LASTARG in | ||
231 | *.y) | ||
232 | SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` | ||
233 | if test -f "$SRCFILE"; then | ||
234 | cp "$SRCFILE" y.tab.c | ||
235 | fi | ||
236 | SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` | ||
237 | if test -f "$SRCFILE"; then | ||
238 | cp "$SRCFILE" y.tab.h | ||
239 | fi | ||
240 | ;; | ||
241 | esac | ||
242 | fi | ||
243 | if test ! -f y.tab.h; then | ||
244 | echo >y.tab.h | ||
245 | fi | ||
246 | if test ! -f y.tab.c; then | ||
247 | echo 'main() { return 0; }' >y.tab.c | ||
248 | fi | ||
249 | ;; | ||
250 | |||
251 | lex*|flex*) | ||
252 | echo 1>&2 "\ | ||
253 | WARNING: \`$1' is $msg. You should only need it if | ||
254 | you modified a \`.l' file. You may need the \`Flex' package | ||
255 | in order for those modifications to take effect. You can get | ||
256 | \`Flex' from any GNU archive site." | ||
257 | rm -f lex.yy.c | ||
258 | if test $# -ne 1; then | ||
259 | eval LASTARG="\${$#}" | ||
260 | case $LASTARG in | ||
261 | *.l) | ||
262 | SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` | ||
263 | if test -f "$SRCFILE"; then | ||
264 | cp "$SRCFILE" lex.yy.c | ||
265 | fi | ||
266 | ;; | ||
267 | esac | ||
268 | fi | ||
269 | if test ! -f lex.yy.c; then | ||
270 | echo 'main() { return 0; }' >lex.yy.c | ||
271 | fi | ||
272 | ;; | ||
273 | |||
274 | help2man*) | ||
275 | echo 1>&2 "\ | ||
276 | WARNING: \`$1' is $msg. You should only need it if | ||
277 | you modified a dependency of a manual page. You may need the | ||
278 | \`Help2man' package in order for those modifications to take | ||
279 | effect. You can get \`Help2man' from any GNU archive site." | ||
280 | |||
281 | file=`echo "$*" | sed -n "$sed_output"` | ||
282 | test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` | ||
283 | if test -f "$file"; then | ||
284 | touch $file | ||
285 | else | ||
286 | test -z "$file" || exec >$file | ||
287 | echo ".ab help2man is required to generate this page" | ||
288 | exit $? | ||
289 | fi | ||
290 | ;; | ||
291 | |||
292 | makeinfo*) | ||
293 | echo 1>&2 "\ | ||
294 | WARNING: \`$1' is $msg. You should only need it if | ||
295 | you modified a \`.texi' or \`.texinfo' file, or any other file | ||
296 | indirectly affecting the aspect of the manual. The spurious | ||
297 | call might also be the consequence of using a buggy \`make' (AIX, | ||
298 | DU, IRIX). You might want to install the \`Texinfo' package or | ||
299 | the \`GNU make' package. Grab either from any GNU archive site." | ||
300 | # The file to touch is that specified with -o ... | ||
301 | file=`echo "$*" | sed -n "$sed_output"` | ||
302 | test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` | ||
303 | if test -z "$file"; then | ||
304 | # ... or it is the one specified with @setfilename ... | ||
305 | infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` | ||
306 | file=`sed -n ' | ||
307 | /^@setfilename/{ | ||
308 | s/.* \([^ ]*\) *$/\1/ | ||
309 | p | ||
310 | q | ||
311 | }' $infile` | ||
312 | # ... or it is derived from the source name (dir/f.texi becomes f.info) | ||
313 | test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info | ||
314 | fi | ||
315 | # If the file does not exist, the user really needs makeinfo; | ||
316 | # let's fail without touching anything. | ||
317 | test -f $file || exit 1 | ||
318 | touch $file | ||
319 | ;; | ||
320 | |||
321 | tar*) | ||
322 | shift | ||
323 | |||
324 | # We have already tried tar in the generic part. | ||
325 | # Look for gnutar/gtar before invocation to avoid ugly error | ||
326 | # messages. | ||
327 | if (gnutar --version > /dev/null 2>&1); then | ||
328 | gnutar "$@" && exit 0 | ||
329 | fi | ||
330 | if (gtar --version > /dev/null 2>&1); then | ||
331 | gtar "$@" && exit 0 | ||
332 | fi | ||
333 | firstarg="$1" | ||
334 | if shift; then | ||
335 | case $firstarg in | ||
336 | *o*) | ||
337 | firstarg=`echo "$firstarg" | sed s/o//` | ||
338 | tar "$firstarg" "$@" && exit 0 | ||
339 | ;; | ||
340 | esac | ||
341 | case $firstarg in | ||
342 | *h*) | ||
343 | firstarg=`echo "$firstarg" | sed s/h//` | ||
344 | tar "$firstarg" "$@" && exit 0 | ||
345 | ;; | ||
346 | esac | ||
347 | fi | ||
348 | |||
349 | echo 1>&2 "\ | ||
350 | WARNING: I can't seem to be able to run \`tar' with the given arguments. | ||
351 | You may want to install GNU tar or Free paxutils, or check the | ||
352 | command line arguments." | ||
353 | exit 1 | ||
354 | ;; | ||
355 | |||
356 | *) | ||
357 | echo 1>&2 "\ | ||
358 | WARNING: \`$1' is needed, and is $msg. | ||
359 | You might have modified some files without having the | ||
360 | proper tools for further handling them. Check the \`README' file, | ||
361 | it often tells you about the needed prerequisites for installing | ||
362 | this package. You may also peek at any GNU archive site, in case | ||
363 | some other package would contain this missing \`$1' program." | ||
364 | exit 1 | ||
365 | ;; | ||
366 | esac | ||
367 | |||
368 | exit 0 | ||
369 | |||
370 | # Local variables: | ||
371 | # eval: (add-hook 'write-file-hooks 'time-stamp) | ||
372 | # time-stamp-start: "scriptversion=" | ||
373 | # time-stamp-format: "%:y-%02m-%02d.%02H" | ||
374 | # time-stamp-time-zone: "UTC" | ||
375 | # time-stamp-end: "; # UTC" | ||
376 | # End: | ||
diff --git a/libraries/eet/sha1-for-source.txt b/libraries/eet/sha1-for-source.txt deleted file mode 100644 index ef2cd95..0000000 --- a/libraries/eet/sha1-for-source.txt +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | 754d240f852579fbfa1d3416e85943dfa60e1a10 | ||
diff --git a/libraries/eet/src/Makefile.am b/libraries/eet/src/Makefile.am deleted file mode 100644 index d98d3b6..0000000 --- a/libraries/eet/src/Makefile.am +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | MAINTAINERCLEANFILES = Makefile.in | ||
2 | |||
3 | SUBDIRS = lib bin tests examples | ||
diff --git a/libraries/eet/src/Makefile.in b/libraries/eet/src/Makefile.in deleted file mode 100644 index bfdc4f6..0000000 --- a/libraries/eet/src/Makefile.in +++ /dev/null | |||
@@ -1,608 +0,0 @@ | |||
1 | # Makefile.in generated by automake 1.11.1 from Makefile.am. | ||
2 | # @configure_input@ | ||
3 | |||
4 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, | ||
5 | # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, | ||
6 | # Inc. | ||
7 | # This Makefile.in is free software; the Free Software Foundation | ||
8 | # gives unlimited permission to copy and/or distribute it, | ||
9 | # with or without modifications, as long as this notice is preserved. | ||
10 | |||
11 | # This program is distributed in the hope that it will be useful, | ||
12 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | ||
13 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | ||
14 | # PARTICULAR PURPOSE. | ||
15 | |||
16 | @SET_MAKE@ | ||
17 | VPATH = @srcdir@ | ||
18 | pkgdatadir = $(datadir)/@PACKAGE@ | ||
19 | pkgincludedir = $(includedir)/@PACKAGE@ | ||
20 | pkglibdir = $(libdir)/@PACKAGE@ | ||
21 | pkglibexecdir = $(libexecdir)/@PACKAGE@ | ||
22 | am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | ||
23 | install_sh_DATA = $(install_sh) -c -m 644 | ||
24 | install_sh_PROGRAM = $(install_sh) -c | ||
25 | install_sh_SCRIPT = $(install_sh) -c | ||
26 | INSTALL_HEADER = $(INSTALL_DATA) | ||
27 | transform = $(program_transform_name) | ||
28 | NORMAL_INSTALL = : | ||
29 | PRE_INSTALL = : | ||
30 | POST_INSTALL = : | ||
31 | NORMAL_UNINSTALL = : | ||
32 | PRE_UNINSTALL = : | ||
33 | POST_UNINSTALL = : | ||
34 | build_triplet = @build@ | ||
35 | host_triplet = @host@ | ||
36 | subdir = src | ||
37 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | ||
38 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | ||
39 | am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \ | ||
40 | $(top_srcdir)/m4/ac_path_generic.m4 \ | ||
41 | $(top_srcdir)/m4/efl_binary.m4 \ | ||
42 | $(top_srcdir)/m4/efl_compiler_flag.m4 \ | ||
43 | $(top_srcdir)/m4/efl_coverage.m4 \ | ||
44 | $(top_srcdir)/m4/efl_doxygen.m4 \ | ||
45 | $(top_srcdir)/m4/efl_fnmatch.m4 \ | ||
46 | $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ | ||
47 | $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ | ||
48 | $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ | ||
49 | $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac | ||
50 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | ||
51 | $(ACLOCAL_M4) | ||
52 | mkinstalldirs = $(install_sh) -d | ||
53 | CONFIG_HEADER = $(top_builddir)/config.h | ||
54 | CONFIG_CLEAN_FILES = | ||
55 | CONFIG_CLEAN_VPATH_FILES = | ||
56 | AM_V_GEN = $(am__v_GEN_$(V)) | ||
57 | am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) | ||
58 | am__v_GEN_0 = @echo " GEN " $@; | ||
59 | AM_V_at = $(am__v_at_$(V)) | ||
60 | am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) | ||
61 | am__v_at_0 = @ | ||
62 | SOURCES = | ||
63 | DIST_SOURCES = | ||
64 | RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ | ||
65 | html-recursive info-recursive install-data-recursive \ | ||
66 | install-dvi-recursive install-exec-recursive \ | ||
67 | install-html-recursive install-info-recursive \ | ||
68 | install-pdf-recursive install-ps-recursive install-recursive \ | ||
69 | installcheck-recursive installdirs-recursive pdf-recursive \ | ||
70 | ps-recursive uninstall-recursive | ||
71 | RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ | ||
72 | distclean-recursive maintainer-clean-recursive | ||
73 | AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ | ||
74 | $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ | ||
75 | distdir | ||
76 | ETAGS = etags | ||
77 | CTAGS = ctags | ||
78 | DIST_SUBDIRS = $(SUBDIRS) | ||
79 | DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | ||
80 | am__relativize = \ | ||
81 | dir0=`pwd`; \ | ||
82 | sed_first='s,^\([^/]*\)/.*$$,\1,'; \ | ||
83 | sed_rest='s,^[^/]*/*,,'; \ | ||
84 | sed_last='s,^.*/\([^/]*\)$$,\1,'; \ | ||
85 | sed_butlast='s,/*[^/]*$$,,'; \ | ||
86 | while test -n "$$dir1"; do \ | ||
87 | first=`echo "$$dir1" | sed -e "$$sed_first"`; \ | ||
88 | if test "$$first" != "."; then \ | ||
89 | if test "$$first" = ".."; then \ | ||
90 | dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ | ||
91 | dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ | ||
92 | else \ | ||
93 | first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ | ||
94 | if test "$$first2" = "$$first"; then \ | ||
95 | dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ | ||
96 | else \ | ||
97 | dir2="../$$dir2"; \ | ||
98 | fi; \ | ||
99 | dir0="$$dir0"/"$$first"; \ | ||
100 | fi; \ | ||
101 | fi; \ | ||
102 | dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ | ||
103 | done; \ | ||
104 | reldir="$$dir2" | ||
105 | ACLOCAL = @ACLOCAL@ | ||
106 | ALLOCA = @ALLOCA@ | ||
107 | AMTAR = @AMTAR@ | ||
108 | AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ | ||
109 | AR = @AR@ | ||
110 | AS = @AS@ | ||
111 | AUTOCONF = @AUTOCONF@ | ||
112 | AUTOHEADER = @AUTOHEADER@ | ||
113 | AUTOMAKE = @AUTOMAKE@ | ||
114 | AWK = @AWK@ | ||
115 | CC = @CC@ | ||
116 | CCDEPMODE = @CCDEPMODE@ | ||
117 | CFLAGS = @CFLAGS@ | ||
118 | CHECK_CFLAGS = @CHECK_CFLAGS@ | ||
119 | CHECK_LIBS = @CHECK_LIBS@ | ||
120 | CPP = @CPP@ | ||
121 | CPPFLAGS = @CPPFLAGS@ | ||
122 | CYGPATH_W = @CYGPATH_W@ | ||
123 | DEBUG_CFLAGS = @DEBUG_CFLAGS@ | ||
124 | DEFS = @DEFS@ | ||
125 | DEPDIR = @DEPDIR@ | ||
126 | DLLTOOL = @DLLTOOL@ | ||
127 | DSYMUTIL = @DSYMUTIL@ | ||
128 | DUMPBIN = @DUMPBIN@ | ||
129 | ECHO_C = @ECHO_C@ | ||
130 | ECHO_N = @ECHO_N@ | ||
131 | ECHO_T = @ECHO_T@ | ||
132 | EET_CFLAGS = @EET_CFLAGS@ | ||
133 | EET_CPPFLAGS = @EET_CPPFLAGS@ | ||
134 | EET_LIBS = @EET_LIBS@ | ||
135 | EET_PRG = @EET_PRG@ | ||
136 | EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@ | ||
137 | EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@ | ||
138 | EFL_EET_BUILD = @EFL_EET_BUILD@ | ||
139 | EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@ | ||
140 | EGREP = @EGREP@ | ||
141 | EINA_CFLAGS = @EINA_CFLAGS@ | ||
142 | EINA_LIBS = @EINA_LIBS@ | ||
143 | EVIL_CFLAGS = @EVIL_CFLAGS@ | ||
144 | EVIL_LIBS = @EVIL_LIBS@ | ||
145 | EXEEXT = @EXEEXT@ | ||
146 | EXOTIC_CFLAGS = @EXOTIC_CFLAGS@ | ||
147 | EXOTIC_LIBS = @EXOTIC_LIBS@ | ||
148 | FGREP = @FGREP@ | ||
149 | GNUTLS_CFLAGS = @GNUTLS_CFLAGS@ | ||
150 | GNUTLS_LIBS = @GNUTLS_LIBS@ | ||
151 | GREP = @GREP@ | ||
152 | INSTALL = @INSTALL@ | ||
153 | INSTALL_DATA = @INSTALL_DATA@ | ||
154 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ | ||
155 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ | ||
156 | INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | ||
157 | LD = @LD@ | ||
158 | LDFLAGS = @LDFLAGS@ | ||
159 | LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@ | ||
160 | LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@ | ||
161 | LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@ | ||
162 | LIBOBJS = @LIBOBJS@ | ||
163 | LIBS = @LIBS@ | ||
164 | LIBTOOL = @LIBTOOL@ | ||
165 | LIPO = @LIPO@ | ||
166 | LN_S = @LN_S@ | ||
167 | LTLIBOBJS = @LTLIBOBJS@ | ||
168 | MAKEINFO = @MAKEINFO@ | ||
169 | MKDIR_P = @MKDIR_P@ | ||
170 | NM = @NM@ | ||
171 | NMEDIT = @NMEDIT@ | ||
172 | OBJDUMP = @OBJDUMP@ | ||
173 | OBJEXT = @OBJEXT@ | ||
174 | OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ | ||
175 | OPENSSL_LIBS = @OPENSSL_LIBS@ | ||
176 | OTOOL = @OTOOL@ | ||
177 | OTOOL64 = @OTOOL64@ | ||
178 | PACKAGE = @PACKAGE@ | ||
179 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | ||
180 | PACKAGE_NAME = @PACKAGE_NAME@ | ||
181 | PACKAGE_STRING = @PACKAGE_STRING@ | ||
182 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ | ||
183 | PACKAGE_URL = @PACKAGE_URL@ | ||
184 | PACKAGE_VERSION = @PACKAGE_VERSION@ | ||
185 | PATH_SEPARATOR = @PATH_SEPARATOR@ | ||
186 | PKG_CONFIG = @PKG_CONFIG@ | ||
187 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ | ||
188 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ | ||
189 | RANLIB = @RANLIB@ | ||
190 | SED = @SED@ | ||
191 | SET_MAKE = @SET_MAKE@ | ||
192 | SHELL = @SHELL@ | ||
193 | STRIP = @STRIP@ | ||
194 | VERSION = @VERSION@ | ||
195 | VMAJ = @VMAJ@ | ||
196 | abs_builddir = @abs_builddir@ | ||
197 | abs_srcdir = @abs_srcdir@ | ||
198 | abs_top_builddir = @abs_top_builddir@ | ||
199 | abs_top_srcdir = @abs_top_srcdir@ | ||
200 | ac_ct_CC = @ac_ct_CC@ | ||
201 | ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ | ||
202 | am__include = @am__include@ | ||
203 | am__leading_dot = @am__leading_dot@ | ||
204 | am__quote = @am__quote@ | ||
205 | am__tar = @am__tar@ | ||
206 | am__untar = @am__untar@ | ||
207 | bindir = @bindir@ | ||
208 | build = @build@ | ||
209 | build_alias = @build_alias@ | ||
210 | build_cpu = @build_cpu@ | ||
211 | build_os = @build_os@ | ||
212 | build_vendor = @build_vendor@ | ||
213 | builddir = @builddir@ | ||
214 | datadir = @datadir@ | ||
215 | datarootdir = @datarootdir@ | ||
216 | docdir = @docdir@ | ||
217 | dvidir = @dvidir@ | ||
218 | efl_doxygen = @efl_doxygen@ | ||
219 | efl_have_doxygen = @efl_have_doxygen@ | ||
220 | exec_prefix = @exec_prefix@ | ||
221 | have_lcov = @have_lcov@ | ||
222 | host = @host@ | ||
223 | host_alias = @host_alias@ | ||
224 | host_cpu = @host_cpu@ | ||
225 | host_os = @host_os@ | ||
226 | host_vendor = @host_vendor@ | ||
227 | htmldir = @htmldir@ | ||
228 | includedir = @includedir@ | ||
229 | infodir = @infodir@ | ||
230 | install_sh = @install_sh@ | ||
231 | libdir = @libdir@ | ||
232 | libexecdir = @libexecdir@ | ||
233 | localedir = @localedir@ | ||
234 | localstatedir = @localstatedir@ | ||
235 | lt_ECHO = @lt_ECHO@ | ||
236 | lt_enable_auto_import = @lt_enable_auto_import@ | ||
237 | mandir = @mandir@ | ||
238 | mkdir_p = @mkdir_p@ | ||
239 | oldincludedir = @oldincludedir@ | ||
240 | pdfdir = @pdfdir@ | ||
241 | pkgconfig_requires_private = @pkgconfig_requires_private@ | ||
242 | prefix = @prefix@ | ||
243 | program_transform_name = @program_transform_name@ | ||
244 | psdir = @psdir@ | ||
245 | release_info = @release_info@ | ||
246 | requirement_eet = @requirement_eet@ | ||
247 | sbindir = @sbindir@ | ||
248 | sharedstatedir = @sharedstatedir@ | ||
249 | srcdir = @srcdir@ | ||
250 | sysconfdir = @sysconfdir@ | ||
251 | target_alias = @target_alias@ | ||
252 | top_build_prefix = @top_build_prefix@ | ||
253 | top_builddir = @top_builddir@ | ||
254 | top_srcdir = @top_srcdir@ | ||
255 | version_info = @version_info@ | ||
256 | MAINTAINERCLEANFILES = Makefile.in | ||
257 | SUBDIRS = lib bin tests examples | ||
258 | all: all-recursive | ||
259 | |||
260 | .SUFFIXES: | ||
261 | $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) | ||
262 | @for dep in $?; do \ | ||
263 | case '$(am__configure_deps)' in \ | ||
264 | *$$dep*) \ | ||
265 | ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ | ||
266 | && { if test -f $@; then exit 0; else break; fi; }; \ | ||
267 | exit 1;; \ | ||
268 | esac; \ | ||
269 | done; \ | ||
270 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ | ||
271 | $(am__cd) $(top_srcdir) && \ | ||
272 | $(AUTOMAKE) --gnu src/Makefile | ||
273 | .PRECIOUS: Makefile | ||
274 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | ||
275 | @case '$?' in \ | ||
276 | *config.status*) \ | ||
277 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ | ||
278 | *) \ | ||
279 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | ||
280 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | ||
281 | esac; | ||
282 | |||
283 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | ||
284 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
285 | |||
286 | $(top_srcdir)/configure: $(am__configure_deps) | ||
287 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
288 | $(ACLOCAL_M4): $(am__aclocal_m4_deps) | ||
289 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
290 | $(am__aclocal_m4_deps): | ||
291 | |||
292 | mostlyclean-libtool: | ||
293 | -rm -f *.lo | ||
294 | |||
295 | clean-libtool: | ||
296 | -rm -rf .libs _libs | ||
297 | |||
298 | # This directory's subdirectories are mostly independent; you can cd | ||
299 | # into them and run `make' without going through this Makefile. | ||
300 | # To change the values of `make' variables: instead of editing Makefiles, | ||
301 | # (1) if the variable is set in `config.status', edit `config.status' | ||
302 | # (which will cause the Makefiles to be regenerated when you run `make'); | ||
303 | # (2) otherwise, pass the desired values on the `make' command line. | ||
304 | $(RECURSIVE_TARGETS): | ||
305 | @fail= failcom='exit 1'; \ | ||
306 | for f in x $$MAKEFLAGS; do \ | ||
307 | case $$f in \ | ||
308 | *=* | --[!k]*);; \ | ||
309 | *k*) failcom='fail=yes';; \ | ||
310 | esac; \ | ||
311 | done; \ | ||
312 | dot_seen=no; \ | ||
313 | target=`echo $@ | sed s/-recursive//`; \ | ||
314 | list='$(SUBDIRS)'; for subdir in $$list; do \ | ||
315 | echo "Making $$target in $$subdir"; \ | ||
316 | if test "$$subdir" = "."; then \ | ||
317 | dot_seen=yes; \ | ||
318 | local_target="$$target-am"; \ | ||
319 | else \ | ||
320 | local_target="$$target"; \ | ||
321 | fi; \ | ||
322 | ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ | ||
323 | || eval $$failcom; \ | ||
324 | done; \ | ||
325 | if test "$$dot_seen" = "no"; then \ | ||
326 | $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ | ||
327 | fi; test -z "$$fail" | ||
328 | |||
329 | $(RECURSIVE_CLEAN_TARGETS): | ||
330 | @fail= failcom='exit 1'; \ | ||
331 | for f in x $$MAKEFLAGS; do \ | ||
332 | case $$f in \ | ||
333 | *=* | --[!k]*);; \ | ||
334 | *k*) failcom='fail=yes';; \ | ||
335 | esac; \ | ||
336 | done; \ | ||
337 | dot_seen=no; \ | ||
338 | case "$@" in \ | ||
339 | distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ | ||
340 | *) list='$(SUBDIRS)' ;; \ | ||
341 | esac; \ | ||
342 | rev=''; for subdir in $$list; do \ | ||
343 | if test "$$subdir" = "."; then :; else \ | ||
344 | rev="$$subdir $$rev"; \ | ||
345 | fi; \ | ||
346 | done; \ | ||
347 | rev="$$rev ."; \ | ||
348 | target=`echo $@ | sed s/-recursive//`; \ | ||
349 | for subdir in $$rev; do \ | ||
350 | echo "Making $$target in $$subdir"; \ | ||
351 | if test "$$subdir" = "."; then \ | ||
352 | local_target="$$target-am"; \ | ||
353 | else \ | ||
354 | local_target="$$target"; \ | ||
355 | fi; \ | ||
356 | ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ | ||
357 | || eval $$failcom; \ | ||
358 | done && test -z "$$fail" | ||
359 | tags-recursive: | ||
360 | list='$(SUBDIRS)'; for subdir in $$list; do \ | ||
361 | test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ | ||
362 | done | ||
363 | ctags-recursive: | ||
364 | list='$(SUBDIRS)'; for subdir in $$list; do \ | ||
365 | test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ | ||
366 | done | ||
367 | |||
368 | ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) | ||
369 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||
370 | unique=`for i in $$list; do \ | ||
371 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
372 | done | \ | ||
373 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
374 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
375 | mkid -fID $$unique | ||
376 | tags: TAGS | ||
377 | |||
378 | TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ | ||
379 | $(TAGS_FILES) $(LISP) | ||
380 | set x; \ | ||
381 | here=`pwd`; \ | ||
382 | if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ | ||
383 | include_option=--etags-include; \ | ||
384 | empty_fix=.; \ | ||
385 | else \ | ||
386 | include_option=--include; \ | ||
387 | empty_fix=; \ | ||
388 | fi; \ | ||
389 | list='$(SUBDIRS)'; for subdir in $$list; do \ | ||
390 | if test "$$subdir" = .; then :; else \ | ||
391 | test ! -f $$subdir/TAGS || \ | ||
392 | set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ | ||
393 | fi; \ | ||
394 | done; \ | ||
395 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||
396 | unique=`for i in $$list; do \ | ||
397 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
398 | done | \ | ||
399 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
400 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
401 | shift; \ | ||
402 | if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ | ||
403 | test -n "$$unique" || unique=$$empty_fix; \ | ||
404 | if test $$# -gt 0; then \ | ||
405 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||
406 | "$$@" $$unique; \ | ||
407 | else \ | ||
408 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||
409 | $$unique; \ | ||
410 | fi; \ | ||
411 | fi | ||
412 | ctags: CTAGS | ||
413 | CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ | ||
414 | $(TAGS_FILES) $(LISP) | ||
415 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||
416 | unique=`for i in $$list; do \ | ||
417 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
418 | done | \ | ||
419 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
420 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
421 | test -z "$(CTAGS_ARGS)$$unique" \ | ||
422 | || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ | ||
423 | $$unique | ||
424 | |||
425 | GTAGS: | ||
426 | here=`$(am__cd) $(top_builddir) && pwd` \ | ||
427 | && $(am__cd) $(top_srcdir) \ | ||
428 | && gtags -i $(GTAGS_ARGS) "$$here" | ||
429 | |||
430 | distclean-tags: | ||
431 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | ||
432 | |||
433 | distdir: $(DISTFILES) | ||
434 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||
435 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||
436 | list='$(DISTFILES)'; \ | ||
437 | dist_files=`for file in $$list; do echo $$file; done | \ | ||
438 | sed -e "s|^$$srcdirstrip/||;t" \ | ||
439 | -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | ||
440 | case $$dist_files in \ | ||
441 | */*) $(MKDIR_P) `echo "$$dist_files" | \ | ||
442 | sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | ||
443 | sort -u` ;; \ | ||
444 | esac; \ | ||
445 | for file in $$dist_files; do \ | ||
446 | if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | ||
447 | if test -d $$d/$$file; then \ | ||
448 | dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | ||
449 | if test -d "$(distdir)/$$file"; then \ | ||
450 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||
451 | fi; \ | ||
452 | if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | ||
453 | cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | ||
454 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||
455 | fi; \ | ||
456 | cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | ||
457 | else \ | ||
458 | test -f "$(distdir)/$$file" \ | ||
459 | || cp -p $$d/$$file "$(distdir)/$$file" \ | ||
460 | || exit 1; \ | ||
461 | fi; \ | ||
462 | done | ||
463 | @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | ||
464 | if test "$$subdir" = .; then :; else \ | ||
465 | test -d "$(distdir)/$$subdir" \ | ||
466 | || $(MKDIR_P) "$(distdir)/$$subdir" \ | ||
467 | || exit 1; \ | ||
468 | fi; \ | ||
469 | done | ||
470 | @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | ||
471 | if test "$$subdir" = .; then :; else \ | ||
472 | dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ | ||
473 | $(am__relativize); \ | ||
474 | new_distdir=$$reldir; \ | ||
475 | dir1=$$subdir; dir2="$(top_distdir)"; \ | ||
476 | $(am__relativize); \ | ||
477 | new_top_distdir=$$reldir; \ | ||
478 | echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ | ||
479 | echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ | ||
480 | ($(am__cd) $$subdir && \ | ||
481 | $(MAKE) $(AM_MAKEFLAGS) \ | ||
482 | top_distdir="$$new_top_distdir" \ | ||
483 | distdir="$$new_distdir" \ | ||
484 | am__remove_distdir=: \ | ||
485 | am__skip_length_check=: \ | ||
486 | am__skip_mode_fix=: \ | ||
487 | distdir) \ | ||
488 | || exit 1; \ | ||
489 | fi; \ | ||
490 | done | ||
491 | check-am: all-am | ||
492 | check: check-recursive | ||
493 | all-am: Makefile | ||
494 | installdirs: installdirs-recursive | ||
495 | installdirs-am: | ||
496 | install: install-recursive | ||
497 | install-exec: install-exec-recursive | ||
498 | install-data: install-data-recursive | ||
499 | uninstall: uninstall-recursive | ||
500 | |||
501 | install-am: all-am | ||
502 | @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | ||
503 | |||
504 | installcheck: installcheck-recursive | ||
505 | install-strip: | ||
506 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||
507 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||
508 | `test -z '$(STRIP)' || \ | ||
509 | echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install | ||
510 | mostlyclean-generic: | ||
511 | |||
512 | clean-generic: | ||
513 | |||
514 | distclean-generic: | ||
515 | -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | ||
516 | -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) | ||
517 | |||
518 | maintainer-clean-generic: | ||
519 | @echo "This command is intended for maintainers to use" | ||
520 | @echo "it deletes files that may require special tools to rebuild." | ||
521 | -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) | ||
522 | clean: clean-recursive | ||
523 | |||
524 | clean-am: clean-generic clean-libtool mostlyclean-am | ||
525 | |||
526 | distclean: distclean-recursive | ||
527 | -rm -f Makefile | ||
528 | distclean-am: clean-am distclean-generic distclean-tags | ||
529 | |||
530 | dvi: dvi-recursive | ||
531 | |||
532 | dvi-am: | ||
533 | |||
534 | html: html-recursive | ||
535 | |||
536 | html-am: | ||
537 | |||
538 | info: info-recursive | ||
539 | |||
540 | info-am: | ||
541 | |||
542 | install-data-am: | ||
543 | |||
544 | install-dvi: install-dvi-recursive | ||
545 | |||
546 | install-dvi-am: | ||
547 | |||
548 | install-exec-am: | ||
549 | |||
550 | install-html: install-html-recursive | ||
551 | |||
552 | install-html-am: | ||
553 | |||
554 | install-info: install-info-recursive | ||
555 | |||
556 | install-info-am: | ||
557 | |||
558 | install-man: | ||
559 | |||
560 | install-pdf: install-pdf-recursive | ||
561 | |||
562 | install-pdf-am: | ||
563 | |||
564 | install-ps: install-ps-recursive | ||
565 | |||
566 | install-ps-am: | ||
567 | |||
568 | installcheck-am: | ||
569 | |||
570 | maintainer-clean: maintainer-clean-recursive | ||
571 | -rm -f Makefile | ||
572 | maintainer-clean-am: distclean-am maintainer-clean-generic | ||
573 | |||
574 | mostlyclean: mostlyclean-recursive | ||
575 | |||
576 | mostlyclean-am: mostlyclean-generic mostlyclean-libtool | ||
577 | |||
578 | pdf: pdf-recursive | ||
579 | |||
580 | pdf-am: | ||
581 | |||
582 | ps: ps-recursive | ||
583 | |||
584 | ps-am: | ||
585 | |||
586 | uninstall-am: | ||
587 | |||
588 | .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ | ||
589 | install-am install-strip tags-recursive | ||
590 | |||
591 | .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ | ||
592 | all all-am check check-am clean clean-generic clean-libtool \ | ||
593 | ctags ctags-recursive distclean distclean-generic \ | ||
594 | distclean-libtool distclean-tags distdir dvi dvi-am html \ | ||
595 | html-am info info-am install install-am install-data \ | ||
596 | install-data-am install-dvi install-dvi-am install-exec \ | ||
597 | install-exec-am install-html install-html-am install-info \ | ||
598 | install-info-am install-man install-pdf install-pdf-am \ | ||
599 | install-ps install-ps-am install-strip installcheck \ | ||
600 | installcheck-am installdirs installdirs-am maintainer-clean \ | ||
601 | maintainer-clean-generic mostlyclean mostlyclean-generic \ | ||
602 | mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ | ||
603 | uninstall uninstall-am | ||
604 | |||
605 | |||
606 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | ||
607 | # Otherwise a system limit (for SysV at least) may be exceeded. | ||
608 | .NOEXPORT: | ||
diff --git a/libraries/eet/src/bin/Makefile.am b/libraries/eet/src/bin/Makefile.am deleted file mode 100644 index 89c68f1..0000000 --- a/libraries/eet/src/bin/Makefile.am +++ /dev/null | |||
@@ -1,21 +0,0 @@ | |||
1 | |||
2 | MAINTAINERCLEANFILES = Makefile.in | ||
3 | |||
4 | AM_CPPFLAGS = \ | ||
5 | -I$(top_srcdir) \ | ||
6 | -I$(top_srcdir)/bin \ | ||
7 | -I$(top_srcdir)/src/lib \ | ||
8 | -DPACKAGE_BIN_DIR=\"$(bindir)\" \ | ||
9 | -DPACKAGE_LIB_DIR=\"$(libdir)\" \ | ||
10 | -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ | ||
11 | @EET_CPPFLAGS@ \ | ||
12 | @EINA_CFLAGS@ \ | ||
13 | @EVIL_CFLAGS@ | ||
14 | |||
15 | bin_PROGRAMS = @EET_PRG@ | ||
16 | EXTRA_PROGRAMS = eet | ||
17 | |||
18 | eet_SOURCES = eet_main.c | ||
19 | eet_CFLAGS = @EET_CFLAGS@ | ||
20 | eet_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ @EVIL_LIBS@ @EXOTIC_LIBS@ | ||
21 | eet_LDFLAGS = @lt_enable_auto_import@ | ||
diff --git a/libraries/eet/src/bin/Makefile.in b/libraries/eet/src/bin/Makefile.in deleted file mode 100644 index a7e94cb..0000000 --- a/libraries/eet/src/bin/Makefile.in +++ /dev/null | |||
@@ -1,607 +0,0 @@ | |||
1 | # Makefile.in generated by automake 1.11.1 from Makefile.am. | ||
2 | # @configure_input@ | ||
3 | |||
4 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, | ||
5 | # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, | ||
6 | # Inc. | ||
7 | # This Makefile.in is free software; the Free Software Foundation | ||
8 | # gives unlimited permission to copy and/or distribute it, | ||
9 | # with or without modifications, as long as this notice is preserved. | ||
10 | |||
11 | # This program is distributed in the hope that it will be useful, | ||
12 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | ||
13 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | ||
14 | # PARTICULAR PURPOSE. | ||
15 | |||
16 | @SET_MAKE@ | ||
17 | |||
18 | VPATH = @srcdir@ | ||
19 | pkgdatadir = $(datadir)/@PACKAGE@ | ||
20 | pkgincludedir = $(includedir)/@PACKAGE@ | ||
21 | pkglibdir = $(libdir)/@PACKAGE@ | ||
22 | pkglibexecdir = $(libexecdir)/@PACKAGE@ | ||
23 | am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | ||
24 | install_sh_DATA = $(install_sh) -c -m 644 | ||
25 | install_sh_PROGRAM = $(install_sh) -c | ||
26 | install_sh_SCRIPT = $(install_sh) -c | ||
27 | INSTALL_HEADER = $(INSTALL_DATA) | ||
28 | transform = $(program_transform_name) | ||
29 | NORMAL_INSTALL = : | ||
30 | PRE_INSTALL = : | ||
31 | POST_INSTALL = : | ||
32 | NORMAL_UNINSTALL = : | ||
33 | PRE_UNINSTALL = : | ||
34 | POST_UNINSTALL = : | ||
35 | build_triplet = @build@ | ||
36 | host_triplet = @host@ | ||
37 | EXTRA_PROGRAMS = eet$(EXEEXT) | ||
38 | subdir = src/bin | ||
39 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | ||
40 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | ||
41 | am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \ | ||
42 | $(top_srcdir)/m4/ac_path_generic.m4 \ | ||
43 | $(top_srcdir)/m4/efl_binary.m4 \ | ||
44 | $(top_srcdir)/m4/efl_compiler_flag.m4 \ | ||
45 | $(top_srcdir)/m4/efl_coverage.m4 \ | ||
46 | $(top_srcdir)/m4/efl_doxygen.m4 \ | ||
47 | $(top_srcdir)/m4/efl_fnmatch.m4 \ | ||
48 | $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ | ||
49 | $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ | ||
50 | $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ | ||
51 | $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac | ||
52 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | ||
53 | $(ACLOCAL_M4) | ||
54 | mkinstalldirs = $(install_sh) -d | ||
55 | CONFIG_HEADER = $(top_builddir)/config.h | ||
56 | CONFIG_CLEAN_FILES = | ||
57 | CONFIG_CLEAN_VPATH_FILES = | ||
58 | am__installdirs = "$(DESTDIR)$(bindir)" | ||
59 | PROGRAMS = $(bin_PROGRAMS) | ||
60 | am_eet_OBJECTS = eet-eet_main.$(OBJEXT) | ||
61 | eet_OBJECTS = $(am_eet_OBJECTS) | ||
62 | eet_DEPENDENCIES = $(top_builddir)/src/lib/libeet.la | ||
63 | AM_V_lt = $(am__v_lt_$(V)) | ||
64 | am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) | ||
65 | am__v_lt_0 = --silent | ||
66 | eet_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | ||
67 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(eet_CFLAGS) $(CFLAGS) \ | ||
68 | $(eet_LDFLAGS) $(LDFLAGS) -o $@ | ||
69 | DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) | ||
70 | depcomp = $(SHELL) $(top_srcdir)/depcomp | ||
71 | am__depfiles_maybe = depfiles | ||
72 | am__mv = mv -f | ||
73 | COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ | ||
74 | $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) | ||
75 | LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | ||
76 | $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ | ||
77 | $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ | ||
78 | $(AM_CFLAGS) $(CFLAGS) | ||
79 | AM_V_CC = $(am__v_CC_$(V)) | ||
80 | am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) | ||
81 | am__v_CC_0 = @echo " CC " $@; | ||
82 | AM_V_at = $(am__v_at_$(V)) | ||
83 | am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) | ||
84 | am__v_at_0 = @ | ||
85 | CCLD = $(CC) | ||
86 | LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | ||
87 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ | ||
88 | $(AM_LDFLAGS) $(LDFLAGS) -o $@ | ||
89 | AM_V_CCLD = $(am__v_CCLD_$(V)) | ||
90 | am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) | ||
91 | am__v_CCLD_0 = @echo " CCLD " $@; | ||
92 | AM_V_GEN = $(am__v_GEN_$(V)) | ||
93 | am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) | ||
94 | am__v_GEN_0 = @echo " GEN " $@; | ||
95 | SOURCES = $(eet_SOURCES) | ||
96 | DIST_SOURCES = $(eet_SOURCES) | ||
97 | ETAGS = etags | ||
98 | CTAGS = ctags | ||
99 | DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | ||
100 | ACLOCAL = @ACLOCAL@ | ||
101 | ALLOCA = @ALLOCA@ | ||
102 | AMTAR = @AMTAR@ | ||
103 | AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ | ||
104 | AR = @AR@ | ||
105 | AS = @AS@ | ||
106 | AUTOCONF = @AUTOCONF@ | ||
107 | AUTOHEADER = @AUTOHEADER@ | ||
108 | AUTOMAKE = @AUTOMAKE@ | ||
109 | AWK = @AWK@ | ||
110 | CC = @CC@ | ||
111 | CCDEPMODE = @CCDEPMODE@ | ||
112 | CFLAGS = @CFLAGS@ | ||
113 | CHECK_CFLAGS = @CHECK_CFLAGS@ | ||
114 | CHECK_LIBS = @CHECK_LIBS@ | ||
115 | CPP = @CPP@ | ||
116 | CPPFLAGS = @CPPFLAGS@ | ||
117 | CYGPATH_W = @CYGPATH_W@ | ||
118 | DEBUG_CFLAGS = @DEBUG_CFLAGS@ | ||
119 | DEFS = @DEFS@ | ||
120 | DEPDIR = @DEPDIR@ | ||
121 | DLLTOOL = @DLLTOOL@ | ||
122 | DSYMUTIL = @DSYMUTIL@ | ||
123 | DUMPBIN = @DUMPBIN@ | ||
124 | ECHO_C = @ECHO_C@ | ||
125 | ECHO_N = @ECHO_N@ | ||
126 | ECHO_T = @ECHO_T@ | ||
127 | EET_CFLAGS = @EET_CFLAGS@ | ||
128 | EET_CPPFLAGS = @EET_CPPFLAGS@ | ||
129 | EET_LIBS = @EET_LIBS@ | ||
130 | EET_PRG = @EET_PRG@ | ||
131 | EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@ | ||
132 | EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@ | ||
133 | EFL_EET_BUILD = @EFL_EET_BUILD@ | ||
134 | EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@ | ||
135 | EGREP = @EGREP@ | ||
136 | EINA_CFLAGS = @EINA_CFLAGS@ | ||
137 | EINA_LIBS = @EINA_LIBS@ | ||
138 | EVIL_CFLAGS = @EVIL_CFLAGS@ | ||
139 | EVIL_LIBS = @EVIL_LIBS@ | ||
140 | EXEEXT = @EXEEXT@ | ||
141 | EXOTIC_CFLAGS = @EXOTIC_CFLAGS@ | ||
142 | EXOTIC_LIBS = @EXOTIC_LIBS@ | ||
143 | FGREP = @FGREP@ | ||
144 | GNUTLS_CFLAGS = @GNUTLS_CFLAGS@ | ||
145 | GNUTLS_LIBS = @GNUTLS_LIBS@ | ||
146 | GREP = @GREP@ | ||
147 | INSTALL = @INSTALL@ | ||
148 | INSTALL_DATA = @INSTALL_DATA@ | ||
149 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ | ||
150 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ | ||
151 | INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | ||
152 | LD = @LD@ | ||
153 | LDFLAGS = @LDFLAGS@ | ||
154 | LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@ | ||
155 | LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@ | ||
156 | LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@ | ||
157 | LIBOBJS = @LIBOBJS@ | ||
158 | LIBS = @LIBS@ | ||
159 | LIBTOOL = @LIBTOOL@ | ||
160 | LIPO = @LIPO@ | ||
161 | LN_S = @LN_S@ | ||
162 | LTLIBOBJS = @LTLIBOBJS@ | ||
163 | MAKEINFO = @MAKEINFO@ | ||
164 | MKDIR_P = @MKDIR_P@ | ||
165 | NM = @NM@ | ||
166 | NMEDIT = @NMEDIT@ | ||
167 | OBJDUMP = @OBJDUMP@ | ||
168 | OBJEXT = @OBJEXT@ | ||
169 | OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ | ||
170 | OPENSSL_LIBS = @OPENSSL_LIBS@ | ||
171 | OTOOL = @OTOOL@ | ||
172 | OTOOL64 = @OTOOL64@ | ||
173 | PACKAGE = @PACKAGE@ | ||
174 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | ||
175 | PACKAGE_NAME = @PACKAGE_NAME@ | ||
176 | PACKAGE_STRING = @PACKAGE_STRING@ | ||
177 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ | ||
178 | PACKAGE_URL = @PACKAGE_URL@ | ||
179 | PACKAGE_VERSION = @PACKAGE_VERSION@ | ||
180 | PATH_SEPARATOR = @PATH_SEPARATOR@ | ||
181 | PKG_CONFIG = @PKG_CONFIG@ | ||
182 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ | ||
183 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ | ||
184 | RANLIB = @RANLIB@ | ||
185 | SED = @SED@ | ||
186 | SET_MAKE = @SET_MAKE@ | ||
187 | SHELL = @SHELL@ | ||
188 | STRIP = @STRIP@ | ||
189 | VERSION = @VERSION@ | ||
190 | VMAJ = @VMAJ@ | ||
191 | abs_builddir = @abs_builddir@ | ||
192 | abs_srcdir = @abs_srcdir@ | ||
193 | abs_top_builddir = @abs_top_builddir@ | ||
194 | abs_top_srcdir = @abs_top_srcdir@ | ||
195 | ac_ct_CC = @ac_ct_CC@ | ||
196 | ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ | ||
197 | am__include = @am__include@ | ||
198 | am__leading_dot = @am__leading_dot@ | ||
199 | am__quote = @am__quote@ | ||
200 | am__tar = @am__tar@ | ||
201 | am__untar = @am__untar@ | ||
202 | bindir = @bindir@ | ||
203 | build = @build@ | ||
204 | build_alias = @build_alias@ | ||
205 | build_cpu = @build_cpu@ | ||
206 | build_os = @build_os@ | ||
207 | build_vendor = @build_vendor@ | ||
208 | builddir = @builddir@ | ||
209 | datadir = @datadir@ | ||
210 | datarootdir = @datarootdir@ | ||
211 | docdir = @docdir@ | ||
212 | dvidir = @dvidir@ | ||
213 | efl_doxygen = @efl_doxygen@ | ||
214 | efl_have_doxygen = @efl_have_doxygen@ | ||
215 | exec_prefix = @exec_prefix@ | ||
216 | have_lcov = @have_lcov@ | ||
217 | host = @host@ | ||
218 | host_alias = @host_alias@ | ||
219 | host_cpu = @host_cpu@ | ||
220 | host_os = @host_os@ | ||
221 | host_vendor = @host_vendor@ | ||
222 | htmldir = @htmldir@ | ||
223 | includedir = @includedir@ | ||
224 | infodir = @infodir@ | ||
225 | install_sh = @install_sh@ | ||
226 | libdir = @libdir@ | ||
227 | libexecdir = @libexecdir@ | ||
228 | localedir = @localedir@ | ||
229 | localstatedir = @localstatedir@ | ||
230 | lt_ECHO = @lt_ECHO@ | ||
231 | lt_enable_auto_import = @lt_enable_auto_import@ | ||
232 | mandir = @mandir@ | ||
233 | mkdir_p = @mkdir_p@ | ||
234 | oldincludedir = @oldincludedir@ | ||
235 | pdfdir = @pdfdir@ | ||
236 | pkgconfig_requires_private = @pkgconfig_requires_private@ | ||
237 | prefix = @prefix@ | ||
238 | program_transform_name = @program_transform_name@ | ||
239 | psdir = @psdir@ | ||
240 | release_info = @release_info@ | ||
241 | requirement_eet = @requirement_eet@ | ||
242 | sbindir = @sbindir@ | ||
243 | sharedstatedir = @sharedstatedir@ | ||
244 | srcdir = @srcdir@ | ||
245 | sysconfdir = @sysconfdir@ | ||
246 | target_alias = @target_alias@ | ||
247 | top_build_prefix = @top_build_prefix@ | ||
248 | top_builddir = @top_builddir@ | ||
249 | top_srcdir = @top_srcdir@ | ||
250 | version_info = @version_info@ | ||
251 | MAINTAINERCLEANFILES = Makefile.in | ||
252 | AM_CPPFLAGS = \ | ||
253 | -I$(top_srcdir) \ | ||
254 | -I$(top_srcdir)/bin \ | ||
255 | -I$(top_srcdir)/src/lib \ | ||
256 | -DPACKAGE_BIN_DIR=\"$(bindir)\" \ | ||
257 | -DPACKAGE_LIB_DIR=\"$(libdir)\" \ | ||
258 | -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ | ||
259 | @EET_CPPFLAGS@ \ | ||
260 | @EINA_CFLAGS@ \ | ||
261 | @EVIL_CFLAGS@ | ||
262 | |||
263 | bin_PROGRAMS = @EET_PRG@ | ||
264 | eet_SOURCES = eet_main.c | ||
265 | eet_CFLAGS = @EET_CFLAGS@ | ||
266 | eet_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ @EVIL_LIBS@ @EXOTIC_LIBS@ | ||
267 | eet_LDFLAGS = @lt_enable_auto_import@ | ||
268 | all: all-am | ||
269 | |||
270 | .SUFFIXES: | ||
271 | .SUFFIXES: .c .lo .o .obj | ||
272 | $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) | ||
273 | @for dep in $?; do \ | ||
274 | case '$(am__configure_deps)' in \ | ||
275 | *$$dep*) \ | ||
276 | ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ | ||
277 | && { if test -f $@; then exit 0; else break; fi; }; \ | ||
278 | exit 1;; \ | ||
279 | esac; \ | ||
280 | done; \ | ||
281 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/bin/Makefile'; \ | ||
282 | $(am__cd) $(top_srcdir) && \ | ||
283 | $(AUTOMAKE) --gnu src/bin/Makefile | ||
284 | .PRECIOUS: Makefile | ||
285 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | ||
286 | @case '$?' in \ | ||
287 | *config.status*) \ | ||
288 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ | ||
289 | *) \ | ||
290 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | ||
291 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | ||
292 | esac; | ||
293 | |||
294 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | ||
295 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
296 | |||
297 | $(top_srcdir)/configure: $(am__configure_deps) | ||
298 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
299 | $(ACLOCAL_M4): $(am__aclocal_m4_deps) | ||
300 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
301 | $(am__aclocal_m4_deps): | ||
302 | install-binPROGRAMS: $(bin_PROGRAMS) | ||
303 | @$(NORMAL_INSTALL) | ||
304 | test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" | ||
305 | @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ | ||
306 | for p in $$list; do echo "$$p $$p"; done | \ | ||
307 | sed 's/$(EXEEXT)$$//' | \ | ||
308 | while read p p1; do if test -f $$p || test -f $$p1; \ | ||
309 | then echo "$$p"; echo "$$p"; else :; fi; \ | ||
310 | done | \ | ||
311 | sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ | ||
312 | -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ | ||
313 | sed 'N;N;N;s,\n, ,g' | \ | ||
314 | $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ | ||
315 | { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ | ||
316 | if ($$2 == $$4) files[d] = files[d] " " $$1; \ | ||
317 | else { print "f", $$3 "/" $$4, $$1; } } \ | ||
318 | END { for (d in files) print "f", d, files[d] }' | \ | ||
319 | while read type dir files; do \ | ||
320 | if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ | ||
321 | test -z "$$files" || { \ | ||
322 | echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ | ||
323 | $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ | ||
324 | } \ | ||
325 | ; done | ||
326 | |||
327 | uninstall-binPROGRAMS: | ||
328 | @$(NORMAL_UNINSTALL) | ||
329 | @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ | ||
330 | files=`for p in $$list; do echo "$$p"; done | \ | ||
331 | sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ | ||
332 | -e 's/$$/$(EXEEXT)/' `; \ | ||
333 | test -n "$$list" || exit 0; \ | ||
334 | echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ | ||
335 | cd "$(DESTDIR)$(bindir)" && rm -f $$files | ||
336 | |||
337 | clean-binPROGRAMS: | ||
338 | @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ | ||
339 | echo " rm -f" $$list; \ | ||
340 | rm -f $$list || exit $$?; \ | ||
341 | test -n "$(EXEEXT)" || exit 0; \ | ||
342 | list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ | ||
343 | echo " rm -f" $$list; \ | ||
344 | rm -f $$list | ||
345 | eet$(EXEEXT): $(eet_OBJECTS) $(eet_DEPENDENCIES) | ||
346 | @rm -f eet$(EXEEXT) | ||
347 | $(AM_V_CCLD)$(eet_LINK) $(eet_OBJECTS) $(eet_LDADD) $(LIBS) | ||
348 | |||
349 | mostlyclean-compile: | ||
350 | -rm -f *.$(OBJEXT) | ||
351 | |||
352 | distclean-compile: | ||
353 | -rm -f *.tab.c | ||
354 | |||
355 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eet-eet_main.Po@am__quote@ | ||
356 | |||
357 | .c.o: | ||
358 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< | ||
359 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po | ||
360 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
361 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ | ||
362 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
363 | @am__fastdepCC_FALSE@ $(COMPILE) -c $< | ||
364 | |||
365 | .c.obj: | ||
366 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` | ||
367 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po | ||
368 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
369 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ | ||
370 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
371 | @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` | ||
372 | |||
373 | .c.lo: | ||
374 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< | ||
375 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo | ||
376 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
377 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ | ||
378 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
379 | @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< | ||
380 | |||
381 | eet-eet_main.o: eet_main.c | ||
382 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(eet_CFLAGS) $(CFLAGS) -MT eet-eet_main.o -MD -MP -MF $(DEPDIR)/eet-eet_main.Tpo -c -o eet-eet_main.o `test -f 'eet_main.c' || echo '$(srcdir)/'`eet_main.c | ||
383 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eet-eet_main.Tpo $(DEPDIR)/eet-eet_main.Po | ||
384 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
385 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eet_main.c' object='eet-eet_main.o' libtool=no @AMDEPBACKSLASH@ | ||
386 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
387 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(eet_CFLAGS) $(CFLAGS) -c -o eet-eet_main.o `test -f 'eet_main.c' || echo '$(srcdir)/'`eet_main.c | ||
388 | |||
389 | eet-eet_main.obj: eet_main.c | ||
390 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(eet_CFLAGS) $(CFLAGS) -MT eet-eet_main.obj -MD -MP -MF $(DEPDIR)/eet-eet_main.Tpo -c -o eet-eet_main.obj `if test -f 'eet_main.c'; then $(CYGPATH_W) 'eet_main.c'; else $(CYGPATH_W) '$(srcdir)/eet_main.c'; fi` | ||
391 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/eet-eet_main.Tpo $(DEPDIR)/eet-eet_main.Po | ||
392 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
393 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eet_main.c' object='eet-eet_main.obj' libtool=no @AMDEPBACKSLASH@ | ||
394 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
395 | @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(eet_CFLAGS) $(CFLAGS) -c -o eet-eet_main.obj `if test -f 'eet_main.c'; then $(CYGPATH_W) 'eet_main.c'; else $(CYGPATH_W) '$(srcdir)/eet_main.c'; fi` | ||
396 | |||
397 | mostlyclean-libtool: | ||
398 | -rm -f *.lo | ||
399 | |||
400 | clean-libtool: | ||
401 | -rm -rf .libs _libs | ||
402 | |||
403 | ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) | ||
404 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||
405 | unique=`for i in $$list; do \ | ||
406 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
407 | done | \ | ||
408 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
409 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
410 | mkid -fID $$unique | ||
411 | tags: TAGS | ||
412 | |||
413 | TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ | ||
414 | $(TAGS_FILES) $(LISP) | ||
415 | set x; \ | ||
416 | here=`pwd`; \ | ||
417 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||
418 | unique=`for i in $$list; do \ | ||
419 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
420 | done | \ | ||
421 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
422 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
423 | shift; \ | ||
424 | if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ | ||
425 | test -n "$$unique" || unique=$$empty_fix; \ | ||
426 | if test $$# -gt 0; then \ | ||
427 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||
428 | "$$@" $$unique; \ | ||
429 | else \ | ||
430 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||
431 | $$unique; \ | ||
432 | fi; \ | ||
433 | fi | ||
434 | ctags: CTAGS | ||
435 | CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ | ||
436 | $(TAGS_FILES) $(LISP) | ||
437 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||
438 | unique=`for i in $$list; do \ | ||
439 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
440 | done | \ | ||
441 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
442 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
443 | test -z "$(CTAGS_ARGS)$$unique" \ | ||
444 | || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ | ||
445 | $$unique | ||
446 | |||
447 | GTAGS: | ||
448 | here=`$(am__cd) $(top_builddir) && pwd` \ | ||
449 | && $(am__cd) $(top_srcdir) \ | ||
450 | && gtags -i $(GTAGS_ARGS) "$$here" | ||
451 | |||
452 | distclean-tags: | ||
453 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | ||
454 | |||
455 | distdir: $(DISTFILES) | ||
456 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||
457 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||
458 | list='$(DISTFILES)'; \ | ||
459 | dist_files=`for file in $$list; do echo $$file; done | \ | ||
460 | sed -e "s|^$$srcdirstrip/||;t" \ | ||
461 | -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | ||
462 | case $$dist_files in \ | ||
463 | */*) $(MKDIR_P) `echo "$$dist_files" | \ | ||
464 | sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | ||
465 | sort -u` ;; \ | ||
466 | esac; \ | ||
467 | for file in $$dist_files; do \ | ||
468 | if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | ||
469 | if test -d $$d/$$file; then \ | ||
470 | dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | ||
471 | if test -d "$(distdir)/$$file"; then \ | ||
472 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||
473 | fi; \ | ||
474 | if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | ||
475 | cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | ||
476 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||
477 | fi; \ | ||
478 | cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | ||
479 | else \ | ||
480 | test -f "$(distdir)/$$file" \ | ||
481 | || cp -p $$d/$$file "$(distdir)/$$file" \ | ||
482 | || exit 1; \ | ||
483 | fi; \ | ||
484 | done | ||
485 | check-am: all-am | ||
486 | check: check-am | ||
487 | all-am: Makefile $(PROGRAMS) | ||
488 | installdirs: | ||
489 | for dir in "$(DESTDIR)$(bindir)"; do \ | ||
490 | test -z "$$dir" || $(MKDIR_P) "$$dir"; \ | ||
491 | done | ||
492 | install: install-am | ||
493 | install-exec: install-exec-am | ||
494 | install-data: install-data-am | ||
495 | uninstall: uninstall-am | ||
496 | |||
497 | install-am: all-am | ||
498 | @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | ||
499 | |||
500 | installcheck: installcheck-am | ||
501 | install-strip: | ||
502 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||
503 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||
504 | `test -z '$(STRIP)' || \ | ||
505 | echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install | ||
506 | mostlyclean-generic: | ||
507 | |||
508 | clean-generic: | ||
509 | |||
510 | distclean-generic: | ||
511 | -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | ||
512 | -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) | ||
513 | |||
514 | maintainer-clean-generic: | ||
515 | @echo "This command is intended for maintainers to use" | ||
516 | @echo "it deletes files that may require special tools to rebuild." | ||
517 | -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) | ||
518 | clean: clean-am | ||
519 | |||
520 | clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am | ||
521 | |||
522 | distclean: distclean-am | ||
523 | -rm -rf ./$(DEPDIR) | ||
524 | -rm -f Makefile | ||
525 | distclean-am: clean-am distclean-compile distclean-generic \ | ||
526 | distclean-tags | ||
527 | |||
528 | dvi: dvi-am | ||
529 | |||
530 | dvi-am: | ||
531 | |||
532 | html: html-am | ||
533 | |||
534 | html-am: | ||
535 | |||
536 | info: info-am | ||
537 | |||
538 | info-am: | ||
539 | |||
540 | install-data-am: | ||
541 | |||
542 | install-dvi: install-dvi-am | ||
543 | |||
544 | install-dvi-am: | ||
545 | |||
546 | install-exec-am: install-binPROGRAMS | ||
547 | |||
548 | install-html: install-html-am | ||
549 | |||
550 | install-html-am: | ||
551 | |||
552 | install-info: install-info-am | ||
553 | |||
554 | install-info-am: | ||
555 | |||
556 | install-man: | ||
557 | |||
558 | install-pdf: install-pdf-am | ||
559 | |||
560 | install-pdf-am: | ||
561 | |||
562 | install-ps: install-ps-am | ||
563 | |||
564 | install-ps-am: | ||
565 | |||
566 | installcheck-am: | ||
567 | |||
568 | maintainer-clean: maintainer-clean-am | ||
569 | -rm -rf ./$(DEPDIR) | ||
570 | -rm -f Makefile | ||
571 | maintainer-clean-am: distclean-am maintainer-clean-generic | ||
572 | |||
573 | mostlyclean: mostlyclean-am | ||
574 | |||
575 | mostlyclean-am: mostlyclean-compile mostlyclean-generic \ | ||
576 | mostlyclean-libtool | ||
577 | |||
578 | pdf: pdf-am | ||
579 | |||
580 | pdf-am: | ||
581 | |||
582 | ps: ps-am | ||
583 | |||
584 | ps-am: | ||
585 | |||
586 | uninstall-am: uninstall-binPROGRAMS | ||
587 | |||
588 | .MAKE: install-am install-strip | ||
589 | |||
590 | .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ | ||
591 | clean-generic clean-libtool ctags distclean distclean-compile \ | ||
592 | distclean-generic distclean-libtool distclean-tags distdir dvi \ | ||
593 | dvi-am html html-am info info-am install install-am \ | ||
594 | install-binPROGRAMS install-data install-data-am install-dvi \ | ||
595 | install-dvi-am install-exec install-exec-am install-html \ | ||
596 | install-html-am install-info install-info-am install-man \ | ||
597 | install-pdf install-pdf-am install-ps install-ps-am \ | ||
598 | install-strip installcheck installcheck-am installdirs \ | ||
599 | maintainer-clean maintainer-clean-generic mostlyclean \ | ||
600 | mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ | ||
601 | pdf pdf-am ps ps-am tags uninstall uninstall-am \ | ||
602 | uninstall-binPROGRAMS | ||
603 | |||
604 | |||
605 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | ||
606 | # Otherwise a system limit (for SysV at least) may be exceeded. | ||
607 | .NOEXPORT: | ||
diff --git a/libraries/eet/src/bin/eet_main.c b/libraries/eet/src/bin/eet_main.c deleted file mode 100644 index 8a93d11..0000000 --- a/libraries/eet/src/bin/eet_main.c +++ /dev/null | |||
@@ -1,507 +0,0 @@ | |||
1 | #ifdef HAVE_CONFIG_H | ||
2 | # include <config.h> | ||
3 | #endif /* ifdef HAVE_CONFIG_H */ | ||
4 | |||
5 | #include <stdio.h> | ||
6 | #include <stdlib.h> | ||
7 | #include <string.h> | ||
8 | |||
9 | #ifdef HAVE_UNISTD_H | ||
10 | # include <unistd.h> | ||
11 | #endif /* ifdef HAVE_UNISTD_H */ | ||
12 | |||
13 | #ifdef HAVE_EVIL | ||
14 | # include <Evil.h> | ||
15 | #endif /* ifdef HAVE_EVIL */ | ||
16 | |||
17 | #include <Eet.h> | ||
18 | |||
19 | static int _eet_main_log_dom = -1; | ||
20 | |||
21 | #ifdef EET_DEFAULT_LOG_COLOR | ||
22 | #undef EET_DEFAULT_LOG_COLOR | ||
23 | #endif /* ifdef EET_DEFAULT_LOG_COLOR */ | ||
24 | #define EET_DEFAULT_LOG_COLOR EINA_COLOR_CYAN | ||
25 | #ifdef ERR | ||
26 | #undef ERR | ||
27 | #endif /* ifdef ERR */ | ||
28 | #define ERR(...) EINA_LOG_DOM_ERR(_eet_main_log_dom, __VA_ARGS__) | ||
29 | #ifdef DBG | ||
30 | #undef DBG | ||
31 | #endif /* ifdef DBG */ | ||
32 | #define DBG(...) EINA_LOG_DOM_DBG(_eet_main_log_dom, __VA_ARGS__) | ||
33 | #ifdef INF | ||
34 | #undef INF | ||
35 | #endif /* ifdef INF */ | ||
36 | #define INF(...) EINA_LOG_DOM_INFO(_eet_main_log_dom, __VA_ARGS__) | ||
37 | #ifdef WRN | ||
38 | #undef WRN | ||
39 | #endif /* ifdef WRN */ | ||
40 | #define WRN(...) EINA_LOG_DOM_WARN(_eet_main_log_dom, __VA_ARGS__) | ||
41 | #ifdef CRIT | ||
42 | #undef CRIT | ||
43 | #endif /* ifdef CRIT */ | ||
44 | #define CRIT(...) EINA_LOG_DOM_CRIT(_eet_main_log_dom, __VA_ARGS__) | ||
45 | |||
46 | static void | ||
47 | do_eet_list(const char *file) | ||
48 | { | ||
49 | int i, num; | ||
50 | char **list; | ||
51 | Eet_File *ef; | ||
52 | |||
53 | ef = eet_open(file, EET_FILE_MODE_READ); | ||
54 | if (!ef) | ||
55 | { | ||
56 | ERR("cannot open for reading: %s", file); | ||
57 | exit(-1); | ||
58 | } | ||
59 | |||
60 | list = eet_list(ef, "*", &num); | ||
61 | if (list) | ||
62 | { | ||
63 | for (i = 0; i < num; i++) | ||
64 | printf("%s\n", list[i]); | ||
65 | free(list); | ||
66 | } | ||
67 | |||
68 | eet_close(ef); | ||
69 | } /* do_eet_list */ | ||
70 | |||
71 | static void | ||
72 | do_eet_stats(const char *file) | ||
73 | { | ||
74 | int i, num; | ||
75 | int count[2] = { 0, 0 }; | ||
76 | int size[2] = { 0, 0 }; | ||
77 | char **list; | ||
78 | Eet_File *ef; | ||
79 | Eet_Dictionary *ed; | ||
80 | |||
81 | ef = eet_open(file, EET_FILE_MODE_READ); | ||
82 | if (!ef) | ||
83 | { | ||
84 | ERR("cannot open for reading: %s", file); | ||
85 | exit(-1); | ||
86 | } | ||
87 | |||
88 | printf("*** sections stats ***\n"); | ||
89 | list = eet_list(ef, "*", &num); | ||
90 | if (list) | ||
91 | { | ||
92 | for (i = 0; i < num; i++) | ||
93 | { | ||
94 | const void *ro = NULL; | ||
95 | void *rw = NULL; | ||
96 | int tsize; | ||
97 | |||
98 | ro = eet_read_direct(ef, list[i], &tsize); | ||
99 | if (!ro) rw = eet_read(ef, list[i], &tsize); | ||
100 | printf(rw ? "%s of size %i is compressed.\n" : "%s of size %i is not compressed.\n", list[i], tsize); | ||
101 | count[rw ? 0 : 1]++; | ||
102 | size[rw ? 0 : 1] += tsize; | ||
103 | free(rw); | ||
104 | } | ||
105 | free(list); | ||
106 | } | ||
107 | |||
108 | printf("*** dictionary ***\n"); | ||
109 | ed = eet_dictionary_get(ef); | ||
110 | if (ed) | ||
111 | { | ||
112 | printf("%i strings inside the dictionary.\n", eet_dictionary_count(ed)); | ||
113 | } | ||
114 | else | ||
115 | { | ||
116 | printf("no dictionary in this file.\n"); | ||
117 | } | ||
118 | printf("*** global ***\n"); | ||
119 | printf("%i sections\n", num); | ||
120 | printf("- %i of them are compressed (%02.2f%%) expanding in %i bytes.\n", | ||
121 | count[0], (float) count[0] * 100 / (float) num, size[0]); | ||
122 | printf("- %i of them are directly mappable in memory (%02.2f%%) representing %i bytes.\n", | ||
123 | count[1], (float) count[1] * 100 / (float) num, size[1]); | ||
124 | |||
125 | eet_close(ef); | ||
126 | } | ||
127 | |||
128 | static void | ||
129 | do_eet_extract(const char *file, | ||
130 | const char *key, | ||
131 | const char *out, | ||
132 | const char *crypto_key) | ||
133 | { | ||
134 | Eet_File *ef; | ||
135 | void *data; | ||
136 | int size = 0; | ||
137 | FILE *f = stdout; | ||
138 | |||
139 | ef = eet_open(file, EET_FILE_MODE_READ); | ||
140 | if (!ef) | ||
141 | { | ||
142 | ERR("cannot open for reading: %s", file); | ||
143 | exit(-1); | ||
144 | } | ||
145 | |||
146 | data = eet_read_cipher(ef, key, &size, crypto_key); | ||
147 | if (!data) | ||
148 | { | ||
149 | ERR("cannot read key %s", key); | ||
150 | exit(-1); | ||
151 | } | ||
152 | |||
153 | if (out) | ||
154 | { | ||
155 | f = fopen(out, "wb"); | ||
156 | if (!f) | ||
157 | { | ||
158 | ERR("cannot open %s", out); | ||
159 | exit(-1); | ||
160 | } | ||
161 | } | ||
162 | |||
163 | if (fwrite(data, size, 1, f) != 1) | ||
164 | { | ||
165 | ERR("cannot write to %s", out ? out : "standard output"); | ||
166 | exit(-1); | ||
167 | } | ||
168 | |||
169 | if (out) fclose(f); | ||
170 | free(data); | ||
171 | eet_close(ef); | ||
172 | } /* do_eet_extract */ | ||
173 | |||
174 | static void | ||
175 | do_eet_decode_dump(void *data, | ||
176 | const char *str) | ||
177 | { | ||
178 | fputs(str, (FILE *)data); | ||
179 | } /* do_eet_decode_dump */ | ||
180 | |||
181 | static void | ||
182 | do_eet_decode(const char *file, | ||
183 | const char *key, | ||
184 | const char *out, | ||
185 | const char *crypto_key) | ||
186 | { | ||
187 | Eet_File *ef; | ||
188 | FILE *f = stdout; | ||
189 | |||
190 | ef = eet_open(file, EET_FILE_MODE_READ); | ||
191 | if (!ef) | ||
192 | { | ||
193 | ERR("cannot open for reading: %s", file); | ||
194 | exit(-1); | ||
195 | } | ||
196 | |||
197 | if (out) | ||
198 | { | ||
199 | f = fopen(out, "wb"); | ||
200 | if (!f) | ||
201 | { | ||
202 | ERR("cannot open %s", out); | ||
203 | exit(-1); | ||
204 | } | ||
205 | } | ||
206 | |||
207 | if (!eet_data_dump_cipher(ef, key, crypto_key, do_eet_decode_dump, f)) | ||
208 | { | ||
209 | ERR("cannot write to %s", out ? out : "standard output"); | ||
210 | exit(-1); | ||
211 | } | ||
212 | |||
213 | if (out) fclose(f); | ||
214 | eet_close(ef); | ||
215 | } /* do_eet_decode */ | ||
216 | |||
217 | static void | ||
218 | do_eet_insert(const char *file, | ||
219 | const char *key, | ||
220 | const char *out, | ||
221 | int compress, | ||
222 | const char *crypto_key) | ||
223 | { | ||
224 | Eet_File *ef; | ||
225 | void *data; | ||
226 | int size = 0; | ||
227 | FILE *f; | ||
228 | |||
229 | ef = eet_open(file, EET_FILE_MODE_READ_WRITE); | ||
230 | if (!ef) | ||
231 | ef = eet_open(file, EET_FILE_MODE_WRITE); | ||
232 | |||
233 | if (!ef) | ||
234 | { | ||
235 | ERR("cannot open for read+write: %s", file); | ||
236 | exit(-1); | ||
237 | } | ||
238 | |||
239 | f = fopen(out, "rb"); | ||
240 | if (!f) | ||
241 | { | ||
242 | ERR("cannot open %s", out); | ||
243 | exit(-1); | ||
244 | } | ||
245 | |||
246 | fseek(f, 0, SEEK_END); | ||
247 | size = ftell(f); | ||
248 | rewind(f); | ||
249 | data = malloc(size); | ||
250 | if (!data) | ||
251 | { | ||
252 | ERR("cannot allocate %i bytes", size); | ||
253 | exit(-1); | ||
254 | } | ||
255 | |||
256 | if (fread(data, size, 1, f) != 1) | ||
257 | { | ||
258 | ERR("cannot read file %s", out); | ||
259 | exit(-1); | ||
260 | } | ||
261 | |||
262 | fclose(f); | ||
263 | eet_write_cipher(ef, key, data, size, compress, crypto_key); | ||
264 | free(data); | ||
265 | eet_close(ef); | ||
266 | } /* do_eet_insert */ | ||
267 | |||
268 | static void | ||
269 | do_eet_encode(const char *file, | ||
270 | const char *key, | ||
271 | const char *out, | ||
272 | int compress, | ||
273 | const char *crypto_key) | ||
274 | { | ||
275 | Eet_File *ef; | ||
276 | char *text; | ||
277 | int textlen = 0; | ||
278 | int size = 0; | ||
279 | FILE *f; | ||
280 | |||
281 | ef = eet_open(file, EET_FILE_MODE_READ_WRITE); | ||
282 | if (!ef) | ||
283 | ef = eet_open(file, EET_FILE_MODE_WRITE); | ||
284 | |||
285 | if (!ef) | ||
286 | { | ||
287 | ERR("cannot open for read+write: %s", file); | ||
288 | exit(-1); | ||
289 | } | ||
290 | |||
291 | f = fopen(out, "rb"); | ||
292 | if (!f) | ||
293 | { | ||
294 | ERR("cannot open %s", out); | ||
295 | exit(-1); | ||
296 | } | ||
297 | |||
298 | fseek(f, 0, SEEK_END); | ||
299 | textlen = ftell(f); | ||
300 | rewind(f); | ||
301 | text = malloc(textlen); | ||
302 | if (!text) | ||
303 | { | ||
304 | ERR("cannot allocate %i bytes", size); | ||
305 | exit(-1); | ||
306 | } | ||
307 | |||
308 | if (fread(text, textlen, 1, f) != 1) | ||
309 | { | ||
310 | ERR("cannot read file %s", out); | ||
311 | exit(-1); | ||
312 | } | ||
313 | |||
314 | fclose(f); | ||
315 | if (!eet_data_undump_cipher(ef, key, crypto_key, text, textlen, compress)) | ||
316 | { | ||
317 | ERR("cannot parse %s", out); | ||
318 | exit(-1); | ||
319 | } | ||
320 | |||
321 | free(text); | ||
322 | eet_close(ef); | ||
323 | } /* do_eet_encode */ | ||
324 | |||
325 | static void | ||
326 | do_eet_remove(const char *file, | ||
327 | const char *key) | ||
328 | { | ||
329 | Eet_File *ef; | ||
330 | |||
331 | ef = eet_open(file, EET_FILE_MODE_READ_WRITE); | ||
332 | if (!ef) | ||
333 | { | ||
334 | ERR("cannot open for read+write: %s", file); | ||
335 | exit(-1); | ||
336 | } | ||
337 | |||
338 | eet_delete(ef, key); | ||
339 | eet_close(ef); | ||
340 | } /* do_eet_remove */ | ||
341 | |||
342 | static void | ||
343 | do_eet_check(const char *file) | ||
344 | { | ||
345 | Eet_File *ef; | ||
346 | const void *der; | ||
347 | int der_length; | ||
348 | int sign_length; | ||
349 | |||
350 | ef = eet_open(file, EET_FILE_MODE_READ); | ||
351 | if (!ef) | ||
352 | { | ||
353 | ERR("checking signature of `%s` failed", file); | ||
354 | exit(-1); | ||
355 | } | ||
356 | |||
357 | der = eet_identity_x509(ef, &der_length); | ||
358 | |||
359 | fprintf(stdout, "Certificate length %i.\n", der_length); | ||
360 | eet_identity_certificate_print(der, der_length, stdout); | ||
361 | |||
362 | eet_identity_signature(ef, &sign_length); | ||
363 | fprintf(stdout, "Signature length %i.\n", sign_length); | ||
364 | |||
365 | eet_close(ef); | ||
366 | } /* do_eet_check */ | ||
367 | |||
368 | static void | ||
369 | do_eet_sign(const char *file, | ||
370 | const char *private_key, | ||
371 | const char *public_key) | ||
372 | { | ||
373 | Eet_File *ef; | ||
374 | Eet_Key *key; | ||
375 | |||
376 | ef = eet_open(file, EET_FILE_MODE_READ_WRITE); | ||
377 | if (!ef) | ||
378 | { | ||
379 | ERR("cannot open for read+write: %s.", file); | ||
380 | exit(-1); | ||
381 | } | ||
382 | |||
383 | key = eet_identity_open(public_key, private_key, NULL); | ||
384 | if (!key) | ||
385 | { | ||
386 | ERR("cannot open key '%s:%s'.", public_key, private_key); | ||
387 | exit(-1); | ||
388 | } | ||
389 | |||
390 | fprintf(stdout, "Using the following key to sign `%s`.\n", file); | ||
391 | eet_identity_print(key, stdout); | ||
392 | |||
393 | eet_identity_set(ef, key); | ||
394 | |||
395 | eet_close(ef); | ||
396 | } /* do_eet_sign */ | ||
397 | |||
398 | int | ||
399 | main(int argc, | ||
400 | char **argv) | ||
401 | { | ||
402 | if (!eet_init()) | ||
403 | return -1; | ||
404 | |||
405 | _eet_main_log_dom = eina_log_domain_register("eet_main", EINA_COLOR_CYAN); | ||
406 | if(_eet_main_log_dom < -1) | ||
407 | { | ||
408 | EINA_LOG_ERR("Impossible to create a log domain for eet_main."); | ||
409 | eet_shutdown(); | ||
410 | return -1; | ||
411 | } | ||
412 | |||
413 | if (argc < 2) | ||
414 | { | ||
415 | help: | ||
416 | printf( | ||
417 | "Usage:\n" | ||
418 | " eet -l FILE.EET list all keys in FILE.EET\n" | ||
419 | " eet -x FILE.EET KEY [OUT-FILE] [CRYPTO_KEY] extract data stored in KEY in FILE.EET and write to OUT-FILE or standard output\n" | ||
420 | " eet -d FILE.EET KEY [OUT-FILE] [CRYPTO_KEY] extract and decode data stored in KEY in FILE.EET and write to OUT-FILE or standard output\n" | ||
421 | " eet -i FILE.EET KEY IN-FILE COMPRESS [CRYPTO_KEY] insert data to KEY in FILE.EET from IN-FILE and if COMPRESS is 1, compress it\n" | ||
422 | " eet -e FILE.EET KEY IN-FILE COMPRESS [CRYPTO_KEY] insert and encode to KEY in FILE.EET from IN-FILE and if COMPRESS is 1, compress it\n" | ||
423 | " eet -r FILE.EET KEY remove KEY in FILE.EET\n" | ||
424 | " eet -c FILE.EET report and check the signature information of an eet file\n" | ||
425 | " eet -s FILE.EET PRIVATE_KEY PUBLIC_KEY sign FILE.EET with PRIVATE_KEY and attach PUBLIC_KEY as it's certificate\n" | ||
426 | " eet -t FILE.EET give some statistic about a file\n" | ||
427 | ); | ||
428 | eet_shutdown(); | ||
429 | return -1; | ||
430 | } | ||
431 | |||
432 | if ((!strncmp(argv[1], "-h", 2))) | ||
433 | goto help; | ||
434 | else if ((!strcmp(argv[1], "-l")) && (argc > 2)) | ||
435 | do_eet_list(argv[2]); | ||
436 | else if ((!strcmp(argv[1], "-x")) && (argc > 3)) | ||
437 | { | ||
438 | switch (argc) | ||
439 | { | ||
440 | case 4: | ||
441 | { | ||
442 | do_eet_extract(argv[2], argv[3], NULL, NULL); | ||
443 | break; | ||
444 | } | ||
445 | case 5: | ||
446 | { | ||
447 | do_eet_extract(argv[2], argv[3], argv[4], NULL); | ||
448 | break; | ||
449 | } | ||
450 | default: | ||
451 | { | ||
452 | do_eet_extract(argv[2], argv[3], argv[4], argv[5]); | ||
453 | break; | ||
454 | } | ||
455 | } | ||
456 | } | ||
457 | else if ((!strcmp(argv[1], "-d")) && (argc > 3)) | ||
458 | { | ||
459 | switch (argc) | ||
460 | { | ||
461 | case 4: | ||
462 | { | ||
463 | do_eet_decode(argv[2], argv[3], NULL, NULL); | ||
464 | break; | ||
465 | } | ||
466 | case 5: | ||
467 | { | ||
468 | do_eet_decode(argv[2], argv[3], argv[4], NULL); | ||
469 | break; | ||
470 | } | ||
471 | default: | ||
472 | { | ||
473 | do_eet_decode(argv[2], argv[3], argv[4], argv[5]); | ||
474 | break; | ||
475 | } | ||
476 | } | ||
477 | } | ||
478 | else if ((!strcmp(argv[1], "-i")) && (argc > 5)) | ||
479 | { | ||
480 | if (argc > 6) | ||
481 | do_eet_insert(argv[2], argv[3], argv[4], atoi(argv[5]), argv[6]); | ||
482 | else | ||
483 | do_eet_insert(argv[2], argv[3], argv[4], atoi(argv[5]), NULL); | ||
484 | } | ||
485 | else if ((!strcmp(argv[1], "-e")) && (argc > 5)) | ||
486 | { | ||
487 | if (argc > 6) | ||
488 | do_eet_encode(argv[2], argv[3], argv[4], atoi(argv[5]), argv[6]); | ||
489 | else | ||
490 | do_eet_encode(argv[2], argv[3], argv[4], atoi(argv[5]), NULL); | ||
491 | } | ||
492 | else if ((!strcmp(argv[1], "-r")) && (argc > 3)) | ||
493 | do_eet_remove(argv[2], argv[3]); | ||
494 | else if ((!strcmp(argv[1], "-c")) && (argc > 2)) | ||
495 | do_eet_check(argv[2]); | ||
496 | else if ((!strcmp(argv[1], "-s")) && (argc > 4)) | ||
497 | do_eet_sign(argv[2], argv[3], argv[4]); | ||
498 | else if ((!strcmp(argv[1], "-t")) && (argc > 2)) | ||
499 | do_eet_stats(argv[2]); | ||
500 | else | ||
501 | goto help; | ||
502 | |||
503 | eina_log_domain_unregister(_eet_main_log_dom); | ||
504 | eet_shutdown(); | ||
505 | return 0; | ||
506 | } /* main */ | ||
507 | |||
diff --git a/libraries/eet/src/examples/Makefile.am b/libraries/eet/src/examples/Makefile.am deleted file mode 100644 index 6c5a324..0000000 --- a/libraries/eet/src/examples/Makefile.am +++ /dev/null | |||
@@ -1,50 +0,0 @@ | |||
1 | MAINTAINERCLEANFILES = Makefile.in | ||
2 | |||
3 | examplesdir = $(datadir)/$(PACKAGE)/examples | ||
4 | |||
5 | if BUILD_EXAMPLES | ||
6 | AM_CPPFLAGS = \ | ||
7 | -I. \ | ||
8 | -I$(top_srcdir)/src/lib \ | ||
9 | @EINA_CFLAGS@ | ||
10 | |||
11 | examples_PROGRAMS = eet_basic eet_file eet_data_simple eet_data_nested eet_data_file_descriptor_01 eet_data_file_descriptor_02 eet_data_cipher_decipher | ||
12 | |||
13 | eet_basic_SOURCES = eet-basic.c | ||
14 | eet_basic_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ | ||
15 | |||
16 | eet_file_SOURCES = eet-file.c | ||
17 | eet_file_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ | ||
18 | |||
19 | eet_data_simple_SOURCES = eet-data-simple.c | ||
20 | eet_data_simple_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ | ||
21 | |||
22 | eet_data_nested_SOURCES = eet-data-nested.c | ||
23 | eet_data_nested_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ | ||
24 | |||
25 | eet_data_file_descriptor_01_SOURCES = eet-data-file_descriptor_01.c | ||
26 | eet_data_file_descriptor_01_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ | ||
27 | |||
28 | eet_data_file_descriptor_02_SOURCES = eet-data-file_descriptor_02.c | ||
29 | eet_data_file_descriptor_02_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ | ||
30 | |||
31 | eet_data_cipher_decipher_SOURCES = eet-data-cipher_decipher.c | ||
32 | eet_data_cipher_decipher_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ | ||
33 | |||
34 | endif | ||
35 | |||
36 | filesdir = $(datadir)/$(PACKAGE)/examples | ||
37 | files_DATA = | ||
38 | |||
39 | if INSTALL_EXAMPLES | ||
40 | |||
41 | files_DATA += \ | ||
42 | eet-basic.c \ | ||
43 | eet-file.c \ | ||
44 | eet-data-simple.c \ | ||
45 | eet-data-nested.c \ | ||
46 | eet-data-file_descriptor_01.c \ | ||
47 | eet-data-file_descriptor_02.c \ | ||
48 | eet-data-cipher_decipher.c | ||
49 | |||
50 | endif | ||
diff --git a/libraries/eet/src/examples/Makefile.in b/libraries/eet/src/examples/Makefile.in deleted file mode 100644 index 1e979ab..0000000 --- a/libraries/eet/src/examples/Makefile.in +++ /dev/null | |||
@@ -1,732 +0,0 @@ | |||
1 | # Makefile.in generated by automake 1.11.1 from Makefile.am. | ||
2 | # @configure_input@ | ||
3 | |||
4 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, | ||
5 | # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, | ||
6 | # Inc. | ||
7 | # This Makefile.in is free software; the Free Software Foundation | ||
8 | # gives unlimited permission to copy and/or distribute it, | ||
9 | # with or without modifications, as long as this notice is preserved. | ||
10 | |||
11 | # This program is distributed in the hope that it will be useful, | ||
12 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | ||
13 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | ||
14 | # PARTICULAR PURPOSE. | ||
15 | |||
16 | @SET_MAKE@ | ||
17 | |||
18 | |||
19 | VPATH = @srcdir@ | ||
20 | pkgdatadir = $(datadir)/@PACKAGE@ | ||
21 | pkgincludedir = $(includedir)/@PACKAGE@ | ||
22 | pkglibdir = $(libdir)/@PACKAGE@ | ||
23 | pkglibexecdir = $(libexecdir)/@PACKAGE@ | ||
24 | am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | ||
25 | install_sh_DATA = $(install_sh) -c -m 644 | ||
26 | install_sh_PROGRAM = $(install_sh) -c | ||
27 | install_sh_SCRIPT = $(install_sh) -c | ||
28 | INSTALL_HEADER = $(INSTALL_DATA) | ||
29 | transform = $(program_transform_name) | ||
30 | NORMAL_INSTALL = : | ||
31 | PRE_INSTALL = : | ||
32 | POST_INSTALL = : | ||
33 | NORMAL_UNINSTALL = : | ||
34 | PRE_UNINSTALL = : | ||
35 | POST_UNINSTALL = : | ||
36 | build_triplet = @build@ | ||
37 | host_triplet = @host@ | ||
38 | @BUILD_EXAMPLES_TRUE@examples_PROGRAMS = eet_basic$(EXEEXT) \ | ||
39 | @BUILD_EXAMPLES_TRUE@ eet_file$(EXEEXT) \ | ||
40 | @BUILD_EXAMPLES_TRUE@ eet_data_simple$(EXEEXT) \ | ||
41 | @BUILD_EXAMPLES_TRUE@ eet_data_nested$(EXEEXT) \ | ||
42 | @BUILD_EXAMPLES_TRUE@ eet_data_file_descriptor_01$(EXEEXT) \ | ||
43 | @BUILD_EXAMPLES_TRUE@ eet_data_file_descriptor_02$(EXEEXT) \ | ||
44 | @BUILD_EXAMPLES_TRUE@ eet_data_cipher_decipher$(EXEEXT) | ||
45 | @INSTALL_EXAMPLES_TRUE@am__append_1 = \ | ||
46 | @INSTALL_EXAMPLES_TRUE@eet-basic.c \ | ||
47 | @INSTALL_EXAMPLES_TRUE@eet-file.c \ | ||
48 | @INSTALL_EXAMPLES_TRUE@eet-data-simple.c \ | ||
49 | @INSTALL_EXAMPLES_TRUE@eet-data-nested.c \ | ||
50 | @INSTALL_EXAMPLES_TRUE@eet-data-file_descriptor_01.c \ | ||
51 | @INSTALL_EXAMPLES_TRUE@eet-data-file_descriptor_02.c \ | ||
52 | @INSTALL_EXAMPLES_TRUE@eet-data-cipher_decipher.c | ||
53 | |||
54 | subdir = src/examples | ||
55 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | ||
56 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | ||
57 | am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \ | ||
58 | $(top_srcdir)/m4/ac_path_generic.m4 \ | ||
59 | $(top_srcdir)/m4/efl_binary.m4 \ | ||
60 | $(top_srcdir)/m4/efl_compiler_flag.m4 \ | ||
61 | $(top_srcdir)/m4/efl_coverage.m4 \ | ||
62 | $(top_srcdir)/m4/efl_doxygen.m4 \ | ||
63 | $(top_srcdir)/m4/efl_fnmatch.m4 \ | ||
64 | $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ | ||
65 | $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ | ||
66 | $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ | ||
67 | $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac | ||
68 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | ||
69 | $(ACLOCAL_M4) | ||
70 | mkinstalldirs = $(install_sh) -d | ||
71 | CONFIG_HEADER = $(top_builddir)/config.h | ||
72 | CONFIG_CLEAN_FILES = | ||
73 | CONFIG_CLEAN_VPATH_FILES = | ||
74 | am__installdirs = "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(filesdir)" | ||
75 | PROGRAMS = $(examples_PROGRAMS) | ||
76 | am__eet_basic_SOURCES_DIST = eet-basic.c | ||
77 | @BUILD_EXAMPLES_TRUE@am_eet_basic_OBJECTS = eet-basic.$(OBJEXT) | ||
78 | eet_basic_OBJECTS = $(am_eet_basic_OBJECTS) | ||
79 | @BUILD_EXAMPLES_TRUE@eet_basic_DEPENDENCIES = \ | ||
80 | @BUILD_EXAMPLES_TRUE@ $(top_builddir)/src/lib/libeet.la | ||
81 | AM_V_lt = $(am__v_lt_$(V)) | ||
82 | am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) | ||
83 | am__v_lt_0 = --silent | ||
84 | am__eet_data_cipher_decipher_SOURCES_DIST = \ | ||
85 | eet-data-cipher_decipher.c | ||
86 | @BUILD_EXAMPLES_TRUE@am_eet_data_cipher_decipher_OBJECTS = \ | ||
87 | @BUILD_EXAMPLES_TRUE@ eet-data-cipher_decipher.$(OBJEXT) | ||
88 | eet_data_cipher_decipher_OBJECTS = \ | ||
89 | $(am_eet_data_cipher_decipher_OBJECTS) | ||
90 | @BUILD_EXAMPLES_TRUE@eet_data_cipher_decipher_DEPENDENCIES = \ | ||
91 | @BUILD_EXAMPLES_TRUE@ $(top_builddir)/src/lib/libeet.la | ||
92 | am__eet_data_file_descriptor_01_SOURCES_DIST = \ | ||
93 | eet-data-file_descriptor_01.c | ||
94 | @BUILD_EXAMPLES_TRUE@am_eet_data_file_descriptor_01_OBJECTS = \ | ||
95 | @BUILD_EXAMPLES_TRUE@ eet-data-file_descriptor_01.$(OBJEXT) | ||
96 | eet_data_file_descriptor_01_OBJECTS = \ | ||
97 | $(am_eet_data_file_descriptor_01_OBJECTS) | ||
98 | @BUILD_EXAMPLES_TRUE@eet_data_file_descriptor_01_DEPENDENCIES = \ | ||
99 | @BUILD_EXAMPLES_TRUE@ $(top_builddir)/src/lib/libeet.la | ||
100 | am__eet_data_file_descriptor_02_SOURCES_DIST = \ | ||
101 | eet-data-file_descriptor_02.c | ||
102 | @BUILD_EXAMPLES_TRUE@am_eet_data_file_descriptor_02_OBJECTS = \ | ||
103 | @BUILD_EXAMPLES_TRUE@ eet-data-file_descriptor_02.$(OBJEXT) | ||
104 | eet_data_file_descriptor_02_OBJECTS = \ | ||
105 | $(am_eet_data_file_descriptor_02_OBJECTS) | ||
106 | @BUILD_EXAMPLES_TRUE@eet_data_file_descriptor_02_DEPENDENCIES = \ | ||
107 | @BUILD_EXAMPLES_TRUE@ $(top_builddir)/src/lib/libeet.la | ||
108 | am__eet_data_nested_SOURCES_DIST = eet-data-nested.c | ||
109 | @BUILD_EXAMPLES_TRUE@am_eet_data_nested_OBJECTS = \ | ||
110 | @BUILD_EXAMPLES_TRUE@ eet-data-nested.$(OBJEXT) | ||
111 | eet_data_nested_OBJECTS = $(am_eet_data_nested_OBJECTS) | ||
112 | @BUILD_EXAMPLES_TRUE@eet_data_nested_DEPENDENCIES = \ | ||
113 | @BUILD_EXAMPLES_TRUE@ $(top_builddir)/src/lib/libeet.la | ||
114 | am__eet_data_simple_SOURCES_DIST = eet-data-simple.c | ||
115 | @BUILD_EXAMPLES_TRUE@am_eet_data_simple_OBJECTS = \ | ||
116 | @BUILD_EXAMPLES_TRUE@ eet-data-simple.$(OBJEXT) | ||
117 | eet_data_simple_OBJECTS = $(am_eet_data_simple_OBJECTS) | ||
118 | @BUILD_EXAMPLES_TRUE@eet_data_simple_DEPENDENCIES = \ | ||
119 | @BUILD_EXAMPLES_TRUE@ $(top_builddir)/src/lib/libeet.la | ||
120 | am__eet_file_SOURCES_DIST = eet-file.c | ||
121 | @BUILD_EXAMPLES_TRUE@am_eet_file_OBJECTS = eet-file.$(OBJEXT) | ||
122 | eet_file_OBJECTS = $(am_eet_file_OBJECTS) | ||
123 | @BUILD_EXAMPLES_TRUE@eet_file_DEPENDENCIES = \ | ||
124 | @BUILD_EXAMPLES_TRUE@ $(top_builddir)/src/lib/libeet.la | ||
125 | DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) | ||
126 | depcomp = $(SHELL) $(top_srcdir)/depcomp | ||
127 | am__depfiles_maybe = depfiles | ||
128 | am__mv = mv -f | ||
129 | COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ | ||
130 | $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) | ||
131 | LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | ||
132 | $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ | ||
133 | $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ | ||
134 | $(AM_CFLAGS) $(CFLAGS) | ||
135 | AM_V_CC = $(am__v_CC_$(V)) | ||
136 | am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) | ||
137 | am__v_CC_0 = @echo " CC " $@; | ||
138 | AM_V_at = $(am__v_at_$(V)) | ||
139 | am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) | ||
140 | am__v_at_0 = @ | ||
141 | CCLD = $(CC) | ||
142 | LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | ||
143 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ | ||
144 | $(AM_LDFLAGS) $(LDFLAGS) -o $@ | ||
145 | AM_V_CCLD = $(am__v_CCLD_$(V)) | ||
146 | am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) | ||
147 | am__v_CCLD_0 = @echo " CCLD " $@; | ||
148 | AM_V_GEN = $(am__v_GEN_$(V)) | ||
149 | am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) | ||
150 | am__v_GEN_0 = @echo " GEN " $@; | ||
151 | SOURCES = $(eet_basic_SOURCES) $(eet_data_cipher_decipher_SOURCES) \ | ||
152 | $(eet_data_file_descriptor_01_SOURCES) \ | ||
153 | $(eet_data_file_descriptor_02_SOURCES) \ | ||
154 | $(eet_data_nested_SOURCES) $(eet_data_simple_SOURCES) \ | ||
155 | $(eet_file_SOURCES) | ||
156 | DIST_SOURCES = $(am__eet_basic_SOURCES_DIST) \ | ||
157 | $(am__eet_data_cipher_decipher_SOURCES_DIST) \ | ||
158 | $(am__eet_data_file_descriptor_01_SOURCES_DIST) \ | ||
159 | $(am__eet_data_file_descriptor_02_SOURCES_DIST) \ | ||
160 | $(am__eet_data_nested_SOURCES_DIST) \ | ||
161 | $(am__eet_data_simple_SOURCES_DIST) \ | ||
162 | $(am__eet_file_SOURCES_DIST) | ||
163 | am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; | ||
164 | am__vpath_adj = case $$p in \ | ||
165 | $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ | ||
166 | *) f=$$p;; \ | ||
167 | esac; | ||
168 | am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; | ||
169 | am__install_max = 40 | ||
170 | am__nobase_strip_setup = \ | ||
171 | srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` | ||
172 | am__nobase_strip = \ | ||
173 | for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" | ||
174 | am__nobase_list = $(am__nobase_strip_setup); \ | ||
175 | for p in $$list; do echo "$$p $$p"; done | \ | ||
176 | sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ | ||
177 | $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ | ||
178 | if (++n[$$2] == $(am__install_max)) \ | ||
179 | { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ | ||
180 | END { for (dir in files) print dir, files[dir] }' | ||
181 | am__base_list = \ | ||
182 | sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ | ||
183 | sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | ||
184 | DATA = $(files_DATA) | ||
185 | ETAGS = etags | ||
186 | CTAGS = ctags | ||
187 | DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | ||
188 | ACLOCAL = @ACLOCAL@ | ||
189 | ALLOCA = @ALLOCA@ | ||
190 | AMTAR = @AMTAR@ | ||
191 | AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ | ||
192 | AR = @AR@ | ||
193 | AS = @AS@ | ||
194 | AUTOCONF = @AUTOCONF@ | ||
195 | AUTOHEADER = @AUTOHEADER@ | ||
196 | AUTOMAKE = @AUTOMAKE@ | ||
197 | AWK = @AWK@ | ||
198 | CC = @CC@ | ||
199 | CCDEPMODE = @CCDEPMODE@ | ||
200 | CFLAGS = @CFLAGS@ | ||
201 | CHECK_CFLAGS = @CHECK_CFLAGS@ | ||
202 | CHECK_LIBS = @CHECK_LIBS@ | ||
203 | CPP = @CPP@ | ||
204 | CPPFLAGS = @CPPFLAGS@ | ||
205 | CYGPATH_W = @CYGPATH_W@ | ||
206 | DEBUG_CFLAGS = @DEBUG_CFLAGS@ | ||
207 | DEFS = @DEFS@ | ||
208 | DEPDIR = @DEPDIR@ | ||
209 | DLLTOOL = @DLLTOOL@ | ||
210 | DSYMUTIL = @DSYMUTIL@ | ||
211 | DUMPBIN = @DUMPBIN@ | ||
212 | ECHO_C = @ECHO_C@ | ||
213 | ECHO_N = @ECHO_N@ | ||
214 | ECHO_T = @ECHO_T@ | ||
215 | EET_CFLAGS = @EET_CFLAGS@ | ||
216 | EET_CPPFLAGS = @EET_CPPFLAGS@ | ||
217 | EET_LIBS = @EET_LIBS@ | ||
218 | EET_PRG = @EET_PRG@ | ||
219 | EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@ | ||
220 | EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@ | ||
221 | EFL_EET_BUILD = @EFL_EET_BUILD@ | ||
222 | EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@ | ||
223 | EGREP = @EGREP@ | ||
224 | EINA_CFLAGS = @EINA_CFLAGS@ | ||
225 | EINA_LIBS = @EINA_LIBS@ | ||
226 | EVIL_CFLAGS = @EVIL_CFLAGS@ | ||
227 | EVIL_LIBS = @EVIL_LIBS@ | ||
228 | EXEEXT = @EXEEXT@ | ||
229 | EXOTIC_CFLAGS = @EXOTIC_CFLAGS@ | ||
230 | EXOTIC_LIBS = @EXOTIC_LIBS@ | ||
231 | FGREP = @FGREP@ | ||
232 | GNUTLS_CFLAGS = @GNUTLS_CFLAGS@ | ||
233 | GNUTLS_LIBS = @GNUTLS_LIBS@ | ||
234 | GREP = @GREP@ | ||
235 | INSTALL = @INSTALL@ | ||
236 | INSTALL_DATA = @INSTALL_DATA@ | ||
237 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ | ||
238 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ | ||
239 | INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | ||
240 | LD = @LD@ | ||
241 | LDFLAGS = @LDFLAGS@ | ||
242 | LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@ | ||
243 | LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@ | ||
244 | LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@ | ||
245 | LIBOBJS = @LIBOBJS@ | ||
246 | LIBS = @LIBS@ | ||
247 | LIBTOOL = @LIBTOOL@ | ||
248 | LIPO = @LIPO@ | ||
249 | LN_S = @LN_S@ | ||
250 | LTLIBOBJS = @LTLIBOBJS@ | ||
251 | MAKEINFO = @MAKEINFO@ | ||
252 | MKDIR_P = @MKDIR_P@ | ||
253 | NM = @NM@ | ||
254 | NMEDIT = @NMEDIT@ | ||
255 | OBJDUMP = @OBJDUMP@ | ||
256 | OBJEXT = @OBJEXT@ | ||
257 | OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ | ||
258 | OPENSSL_LIBS = @OPENSSL_LIBS@ | ||
259 | OTOOL = @OTOOL@ | ||
260 | OTOOL64 = @OTOOL64@ | ||
261 | PACKAGE = @PACKAGE@ | ||
262 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | ||
263 | PACKAGE_NAME = @PACKAGE_NAME@ | ||
264 | PACKAGE_STRING = @PACKAGE_STRING@ | ||
265 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ | ||
266 | PACKAGE_URL = @PACKAGE_URL@ | ||
267 | PACKAGE_VERSION = @PACKAGE_VERSION@ | ||
268 | PATH_SEPARATOR = @PATH_SEPARATOR@ | ||
269 | PKG_CONFIG = @PKG_CONFIG@ | ||
270 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ | ||
271 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ | ||
272 | RANLIB = @RANLIB@ | ||
273 | SED = @SED@ | ||
274 | SET_MAKE = @SET_MAKE@ | ||
275 | SHELL = @SHELL@ | ||
276 | STRIP = @STRIP@ | ||
277 | VERSION = @VERSION@ | ||
278 | VMAJ = @VMAJ@ | ||
279 | abs_builddir = @abs_builddir@ | ||
280 | abs_srcdir = @abs_srcdir@ | ||
281 | abs_top_builddir = @abs_top_builddir@ | ||
282 | abs_top_srcdir = @abs_top_srcdir@ | ||
283 | ac_ct_CC = @ac_ct_CC@ | ||
284 | ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ | ||
285 | am__include = @am__include@ | ||
286 | am__leading_dot = @am__leading_dot@ | ||
287 | am__quote = @am__quote@ | ||
288 | am__tar = @am__tar@ | ||
289 | am__untar = @am__untar@ | ||
290 | bindir = @bindir@ | ||
291 | build = @build@ | ||
292 | build_alias = @build_alias@ | ||
293 | build_cpu = @build_cpu@ | ||
294 | build_os = @build_os@ | ||
295 | build_vendor = @build_vendor@ | ||
296 | builddir = @builddir@ | ||
297 | datadir = @datadir@ | ||
298 | datarootdir = @datarootdir@ | ||
299 | docdir = @docdir@ | ||
300 | dvidir = @dvidir@ | ||
301 | efl_doxygen = @efl_doxygen@ | ||
302 | efl_have_doxygen = @efl_have_doxygen@ | ||
303 | exec_prefix = @exec_prefix@ | ||
304 | have_lcov = @have_lcov@ | ||
305 | host = @host@ | ||
306 | host_alias = @host_alias@ | ||
307 | host_cpu = @host_cpu@ | ||
308 | host_os = @host_os@ | ||
309 | host_vendor = @host_vendor@ | ||
310 | htmldir = @htmldir@ | ||
311 | includedir = @includedir@ | ||
312 | infodir = @infodir@ | ||
313 | install_sh = @install_sh@ | ||
314 | libdir = @libdir@ | ||
315 | libexecdir = @libexecdir@ | ||
316 | localedir = @localedir@ | ||
317 | localstatedir = @localstatedir@ | ||
318 | lt_ECHO = @lt_ECHO@ | ||
319 | lt_enable_auto_import = @lt_enable_auto_import@ | ||
320 | mandir = @mandir@ | ||
321 | mkdir_p = @mkdir_p@ | ||
322 | oldincludedir = @oldincludedir@ | ||
323 | pdfdir = @pdfdir@ | ||
324 | pkgconfig_requires_private = @pkgconfig_requires_private@ | ||
325 | prefix = @prefix@ | ||
326 | program_transform_name = @program_transform_name@ | ||
327 | psdir = @psdir@ | ||
328 | release_info = @release_info@ | ||
329 | requirement_eet = @requirement_eet@ | ||
330 | sbindir = @sbindir@ | ||
331 | sharedstatedir = @sharedstatedir@ | ||
332 | srcdir = @srcdir@ | ||
333 | sysconfdir = @sysconfdir@ | ||
334 | target_alias = @target_alias@ | ||
335 | top_build_prefix = @top_build_prefix@ | ||
336 | top_builddir = @top_builddir@ | ||
337 | top_srcdir = @top_srcdir@ | ||
338 | version_info = @version_info@ | ||
339 | MAINTAINERCLEANFILES = Makefile.in | ||
340 | examplesdir = $(datadir)/$(PACKAGE)/examples | ||
341 | @BUILD_EXAMPLES_TRUE@AM_CPPFLAGS = \ | ||
342 | @BUILD_EXAMPLES_TRUE@-I. \ | ||
343 | @BUILD_EXAMPLES_TRUE@-I$(top_srcdir)/src/lib \ | ||
344 | @BUILD_EXAMPLES_TRUE@@EINA_CFLAGS@ | ||
345 | |||
346 | @BUILD_EXAMPLES_TRUE@eet_basic_SOURCES = eet-basic.c | ||
347 | @BUILD_EXAMPLES_TRUE@eet_basic_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ | ||
348 | @BUILD_EXAMPLES_TRUE@eet_file_SOURCES = eet-file.c | ||
349 | @BUILD_EXAMPLES_TRUE@eet_file_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ | ||
350 | @BUILD_EXAMPLES_TRUE@eet_data_simple_SOURCES = eet-data-simple.c | ||
351 | @BUILD_EXAMPLES_TRUE@eet_data_simple_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ | ||
352 | @BUILD_EXAMPLES_TRUE@eet_data_nested_SOURCES = eet-data-nested.c | ||
353 | @BUILD_EXAMPLES_TRUE@eet_data_nested_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ | ||
354 | @BUILD_EXAMPLES_TRUE@eet_data_file_descriptor_01_SOURCES = eet-data-file_descriptor_01.c | ||
355 | @BUILD_EXAMPLES_TRUE@eet_data_file_descriptor_01_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ | ||
356 | @BUILD_EXAMPLES_TRUE@eet_data_file_descriptor_02_SOURCES = eet-data-file_descriptor_02.c | ||
357 | @BUILD_EXAMPLES_TRUE@eet_data_file_descriptor_02_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ | ||
358 | @BUILD_EXAMPLES_TRUE@eet_data_cipher_decipher_SOURCES = eet-data-cipher_decipher.c | ||
359 | @BUILD_EXAMPLES_TRUE@eet_data_cipher_decipher_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ | ||
360 | filesdir = $(datadir)/$(PACKAGE)/examples | ||
361 | files_DATA = $(am__append_1) | ||
362 | all: all-am | ||
363 | |||
364 | .SUFFIXES: | ||
365 | .SUFFIXES: .c .lo .o .obj | ||
366 | $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) | ||
367 | @for dep in $?; do \ | ||
368 | case '$(am__configure_deps)' in \ | ||
369 | *$$dep*) \ | ||
370 | ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ | ||
371 | && { if test -f $@; then exit 0; else break; fi; }; \ | ||
372 | exit 1;; \ | ||
373 | esac; \ | ||
374 | done; \ | ||
375 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/examples/Makefile'; \ | ||
376 | $(am__cd) $(top_srcdir) && \ | ||
377 | $(AUTOMAKE) --gnu src/examples/Makefile | ||
378 | .PRECIOUS: Makefile | ||
379 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | ||
380 | @case '$?' in \ | ||
381 | *config.status*) \ | ||
382 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ | ||
383 | *) \ | ||
384 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | ||
385 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | ||
386 | esac; | ||
387 | |||
388 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | ||
389 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
390 | |||
391 | $(top_srcdir)/configure: $(am__configure_deps) | ||
392 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
393 | $(ACLOCAL_M4): $(am__aclocal_m4_deps) | ||
394 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
395 | $(am__aclocal_m4_deps): | ||
396 | install-examplesPROGRAMS: $(examples_PROGRAMS) | ||
397 | @$(NORMAL_INSTALL) | ||
398 | test -z "$(examplesdir)" || $(MKDIR_P) "$(DESTDIR)$(examplesdir)" | ||
399 | @list='$(examples_PROGRAMS)'; test -n "$(examplesdir)" || list=; \ | ||
400 | for p in $$list; do echo "$$p $$p"; done | \ | ||
401 | sed 's/$(EXEEXT)$$//' | \ | ||
402 | while read p p1; do if test -f $$p || test -f $$p1; \ | ||
403 | then echo "$$p"; echo "$$p"; else :; fi; \ | ||
404 | done | \ | ||
405 | sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ | ||
406 | -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ | ||
407 | sed 'N;N;N;s,\n, ,g' | \ | ||
408 | $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ | ||
409 | { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ | ||
410 | if ($$2 == $$4) files[d] = files[d] " " $$1; \ | ||
411 | else { print "f", $$3 "/" $$4, $$1; } } \ | ||
412 | END { for (d in files) print "f", d, files[d] }' | \ | ||
413 | while read type dir files; do \ | ||
414 | if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ | ||
415 | test -z "$$files" || { \ | ||
416 | echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(examplesdir)$$dir'"; \ | ||
417 | $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(examplesdir)$$dir" || exit $$?; \ | ||
418 | } \ | ||
419 | ; done | ||
420 | |||
421 | uninstall-examplesPROGRAMS: | ||
422 | @$(NORMAL_UNINSTALL) | ||
423 | @list='$(examples_PROGRAMS)'; test -n "$(examplesdir)" || list=; \ | ||
424 | files=`for p in $$list; do echo "$$p"; done | \ | ||
425 | sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ | ||
426 | -e 's/$$/$(EXEEXT)/' `; \ | ||
427 | test -n "$$list" || exit 0; \ | ||
428 | echo " ( cd '$(DESTDIR)$(examplesdir)' && rm -f" $$files ")"; \ | ||
429 | cd "$(DESTDIR)$(examplesdir)" && rm -f $$files | ||
430 | |||
431 | clean-examplesPROGRAMS: | ||
432 | @list='$(examples_PROGRAMS)'; test -n "$$list" || exit 0; \ | ||
433 | echo " rm -f" $$list; \ | ||
434 | rm -f $$list || exit $$?; \ | ||
435 | test -n "$(EXEEXT)" || exit 0; \ | ||
436 | list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ | ||
437 | echo " rm -f" $$list; \ | ||
438 | rm -f $$list | ||
439 | eet_basic$(EXEEXT): $(eet_basic_OBJECTS) $(eet_basic_DEPENDENCIES) | ||
440 | @rm -f eet_basic$(EXEEXT) | ||
441 | $(AM_V_CCLD)$(LINK) $(eet_basic_OBJECTS) $(eet_basic_LDADD) $(LIBS) | ||
442 | eet_data_cipher_decipher$(EXEEXT): $(eet_data_cipher_decipher_OBJECTS) $(eet_data_cipher_decipher_DEPENDENCIES) | ||
443 | @rm -f eet_data_cipher_decipher$(EXEEXT) | ||
444 | $(AM_V_CCLD)$(LINK) $(eet_data_cipher_decipher_OBJECTS) $(eet_data_cipher_decipher_LDADD) $(LIBS) | ||
445 | eet_data_file_descriptor_01$(EXEEXT): $(eet_data_file_descriptor_01_OBJECTS) $(eet_data_file_descriptor_01_DEPENDENCIES) | ||
446 | @rm -f eet_data_file_descriptor_01$(EXEEXT) | ||
447 | $(AM_V_CCLD)$(LINK) $(eet_data_file_descriptor_01_OBJECTS) $(eet_data_file_descriptor_01_LDADD) $(LIBS) | ||
448 | eet_data_file_descriptor_02$(EXEEXT): $(eet_data_file_descriptor_02_OBJECTS) $(eet_data_file_descriptor_02_DEPENDENCIES) | ||
449 | @rm -f eet_data_file_descriptor_02$(EXEEXT) | ||
450 | $(AM_V_CCLD)$(LINK) $(eet_data_file_descriptor_02_OBJECTS) $(eet_data_file_descriptor_02_LDADD) $(LIBS) | ||
451 | eet_data_nested$(EXEEXT): $(eet_data_nested_OBJECTS) $(eet_data_nested_DEPENDENCIES) | ||
452 | @rm -f eet_data_nested$(EXEEXT) | ||
453 | $(AM_V_CCLD)$(LINK) $(eet_data_nested_OBJECTS) $(eet_data_nested_LDADD) $(LIBS) | ||
454 | eet_data_simple$(EXEEXT): $(eet_data_simple_OBJECTS) $(eet_data_simple_DEPENDENCIES) | ||
455 | @rm -f eet_data_simple$(EXEEXT) | ||
456 | $(AM_V_CCLD)$(LINK) $(eet_data_simple_OBJECTS) $(eet_data_simple_LDADD) $(LIBS) | ||
457 | eet_file$(EXEEXT): $(eet_file_OBJECTS) $(eet_file_DEPENDENCIES) | ||
458 | @rm -f eet_file$(EXEEXT) | ||
459 | $(AM_V_CCLD)$(LINK) $(eet_file_OBJECTS) $(eet_file_LDADD) $(LIBS) | ||
460 | |||
461 | mostlyclean-compile: | ||
462 | -rm -f *.$(OBJEXT) | ||
463 | |||
464 | distclean-compile: | ||
465 | -rm -f *.tab.c | ||
466 | |||
467 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eet-basic.Po@am__quote@ | ||
468 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eet-data-cipher_decipher.Po@am__quote@ | ||
469 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eet-data-file_descriptor_01.Po@am__quote@ | ||
470 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eet-data-file_descriptor_02.Po@am__quote@ | ||
471 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eet-data-nested.Po@am__quote@ | ||
472 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eet-data-simple.Po@am__quote@ | ||
473 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eet-file.Po@am__quote@ | ||
474 | |||
475 | .c.o: | ||
476 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< | ||
477 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po | ||
478 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
479 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ | ||
480 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
481 | @am__fastdepCC_FALSE@ $(COMPILE) -c $< | ||
482 | |||
483 | .c.obj: | ||
484 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` | ||
485 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po | ||
486 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
487 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ | ||
488 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
489 | @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` | ||
490 | |||
491 | .c.lo: | ||
492 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< | ||
493 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo | ||
494 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
495 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ | ||
496 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
497 | @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< | ||
498 | |||
499 | mostlyclean-libtool: | ||
500 | -rm -f *.lo | ||
501 | |||
502 | clean-libtool: | ||
503 | -rm -rf .libs _libs | ||
504 | install-filesDATA: $(files_DATA) | ||
505 | @$(NORMAL_INSTALL) | ||
506 | test -z "$(filesdir)" || $(MKDIR_P) "$(DESTDIR)$(filesdir)" | ||
507 | @list='$(files_DATA)'; test -n "$(filesdir)" || list=; \ | ||
508 | for p in $$list; do \ | ||
509 | if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ | ||
510 | echo "$$d$$p"; \ | ||
511 | done | $(am__base_list) | \ | ||
512 | while read files; do \ | ||
513 | echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(filesdir)'"; \ | ||
514 | $(INSTALL_DATA) $$files "$(DESTDIR)$(filesdir)" || exit $$?; \ | ||
515 | done | ||
516 | |||
517 | uninstall-filesDATA: | ||
518 | @$(NORMAL_UNINSTALL) | ||
519 | @list='$(files_DATA)'; test -n "$(filesdir)" || list=; \ | ||
520 | files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ | ||
521 | test -n "$$files" || exit 0; \ | ||
522 | echo " ( cd '$(DESTDIR)$(filesdir)' && rm -f" $$files ")"; \ | ||
523 | cd "$(DESTDIR)$(filesdir)" && rm -f $$files | ||
524 | |||
525 | ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) | ||
526 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||
527 | unique=`for i in $$list; do \ | ||
528 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
529 | done | \ | ||
530 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
531 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
532 | mkid -fID $$unique | ||
533 | tags: TAGS | ||
534 | |||
535 | TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ | ||
536 | $(TAGS_FILES) $(LISP) | ||
537 | set x; \ | ||
538 | here=`pwd`; \ | ||
539 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||
540 | unique=`for i in $$list; do \ | ||
541 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
542 | done | \ | ||
543 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
544 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
545 | shift; \ | ||
546 | if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ | ||
547 | test -n "$$unique" || unique=$$empty_fix; \ | ||
548 | if test $$# -gt 0; then \ | ||
549 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||
550 | "$$@" $$unique; \ | ||
551 | else \ | ||
552 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||
553 | $$unique; \ | ||
554 | fi; \ | ||
555 | fi | ||
556 | ctags: CTAGS | ||
557 | CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ | ||
558 | $(TAGS_FILES) $(LISP) | ||
559 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||
560 | unique=`for i in $$list; do \ | ||
561 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
562 | done | \ | ||
563 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
564 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
565 | test -z "$(CTAGS_ARGS)$$unique" \ | ||
566 | || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ | ||
567 | $$unique | ||
568 | |||
569 | GTAGS: | ||
570 | here=`$(am__cd) $(top_builddir) && pwd` \ | ||
571 | && $(am__cd) $(top_srcdir) \ | ||
572 | && gtags -i $(GTAGS_ARGS) "$$here" | ||
573 | |||
574 | distclean-tags: | ||
575 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | ||
576 | |||
577 | distdir: $(DISTFILES) | ||
578 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||
579 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||
580 | list='$(DISTFILES)'; \ | ||
581 | dist_files=`for file in $$list; do echo $$file; done | \ | ||
582 | sed -e "s|^$$srcdirstrip/||;t" \ | ||
583 | -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | ||
584 | case $$dist_files in \ | ||
585 | */*) $(MKDIR_P) `echo "$$dist_files" | \ | ||
586 | sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | ||
587 | sort -u` ;; \ | ||
588 | esac; \ | ||
589 | for file in $$dist_files; do \ | ||
590 | if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | ||
591 | if test -d $$d/$$file; then \ | ||
592 | dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | ||
593 | if test -d "$(distdir)/$$file"; then \ | ||
594 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||
595 | fi; \ | ||
596 | if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | ||
597 | cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | ||
598 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||
599 | fi; \ | ||
600 | cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | ||
601 | else \ | ||
602 | test -f "$(distdir)/$$file" \ | ||
603 | || cp -p $$d/$$file "$(distdir)/$$file" \ | ||
604 | || exit 1; \ | ||
605 | fi; \ | ||
606 | done | ||
607 | check-am: all-am | ||
608 | check: check-am | ||
609 | all-am: Makefile $(PROGRAMS) $(DATA) | ||
610 | installdirs: | ||
611 | for dir in "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(filesdir)"; do \ | ||
612 | test -z "$$dir" || $(MKDIR_P) "$$dir"; \ | ||
613 | done | ||
614 | install: install-am | ||
615 | install-exec: install-exec-am | ||
616 | install-data: install-data-am | ||
617 | uninstall: uninstall-am | ||
618 | |||
619 | install-am: all-am | ||
620 | @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | ||
621 | |||
622 | installcheck: installcheck-am | ||
623 | install-strip: | ||
624 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||
625 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||
626 | `test -z '$(STRIP)' || \ | ||
627 | echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install | ||
628 | mostlyclean-generic: | ||
629 | |||
630 | clean-generic: | ||
631 | |||
632 | distclean-generic: | ||
633 | -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | ||
634 | -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) | ||
635 | |||
636 | maintainer-clean-generic: | ||
637 | @echo "This command is intended for maintainers to use" | ||
638 | @echo "it deletes files that may require special tools to rebuild." | ||
639 | -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) | ||
640 | clean: clean-am | ||
641 | |||
642 | clean-am: clean-examplesPROGRAMS clean-generic clean-libtool \ | ||
643 | mostlyclean-am | ||
644 | |||
645 | distclean: distclean-am | ||
646 | -rm -rf ./$(DEPDIR) | ||
647 | -rm -f Makefile | ||
648 | distclean-am: clean-am distclean-compile distclean-generic \ | ||
649 | distclean-tags | ||
650 | |||
651 | dvi: dvi-am | ||
652 | |||
653 | dvi-am: | ||
654 | |||
655 | html: html-am | ||
656 | |||
657 | html-am: | ||
658 | |||
659 | info: info-am | ||
660 | |||
661 | info-am: | ||
662 | |||
663 | install-data-am: install-examplesPROGRAMS install-filesDATA | ||
664 | |||
665 | install-dvi: install-dvi-am | ||
666 | |||
667 | install-dvi-am: | ||
668 | |||
669 | install-exec-am: | ||
670 | |||
671 | install-html: install-html-am | ||
672 | |||
673 | install-html-am: | ||
674 | |||
675 | install-info: install-info-am | ||
676 | |||
677 | install-info-am: | ||
678 | |||
679 | install-man: | ||
680 | |||
681 | install-pdf: install-pdf-am | ||
682 | |||
683 | install-pdf-am: | ||
684 | |||
685 | install-ps: install-ps-am | ||
686 | |||
687 | install-ps-am: | ||
688 | |||
689 | installcheck-am: | ||
690 | |||
691 | maintainer-clean: maintainer-clean-am | ||
692 | -rm -rf ./$(DEPDIR) | ||
693 | -rm -f Makefile | ||
694 | maintainer-clean-am: distclean-am maintainer-clean-generic | ||
695 | |||
696 | mostlyclean: mostlyclean-am | ||
697 | |||
698 | mostlyclean-am: mostlyclean-compile mostlyclean-generic \ | ||
699 | mostlyclean-libtool | ||
700 | |||
701 | pdf: pdf-am | ||
702 | |||
703 | pdf-am: | ||
704 | |||
705 | ps: ps-am | ||
706 | |||
707 | ps-am: | ||
708 | |||
709 | uninstall-am: uninstall-examplesPROGRAMS uninstall-filesDATA | ||
710 | |||
711 | .MAKE: install-am install-strip | ||
712 | |||
713 | .PHONY: CTAGS GTAGS all all-am check check-am clean \ | ||
714 | clean-examplesPROGRAMS clean-generic clean-libtool ctags \ | ||
715 | distclean distclean-compile distclean-generic \ | ||
716 | distclean-libtool distclean-tags distdir dvi dvi-am html \ | ||
717 | html-am info info-am install install-am install-data \ | ||
718 | install-data-am install-dvi install-dvi-am \ | ||
719 | install-examplesPROGRAMS install-exec install-exec-am \ | ||
720 | install-filesDATA install-html install-html-am install-info \ | ||
721 | install-info-am install-man install-pdf install-pdf-am \ | ||
722 | install-ps install-ps-am install-strip installcheck \ | ||
723 | installcheck-am installdirs maintainer-clean \ | ||
724 | maintainer-clean-generic mostlyclean mostlyclean-compile \ | ||
725 | mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ | ||
726 | tags uninstall uninstall-am uninstall-examplesPROGRAMS \ | ||
727 | uninstall-filesDATA | ||
728 | |||
729 | |||
730 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | ||
731 | # Otherwise a system limit (for SysV at least) may be exceeded. | ||
732 | .NOEXPORT: | ||
diff --git a/libraries/eet/src/examples/eet-basic.c b/libraries/eet/src/examples/eet-basic.c deleted file mode 100644 index 05ff397..0000000 --- a/libraries/eet/src/examples/eet-basic.c +++ /dev/null | |||
@@ -1,40 +0,0 @@ | |||
1 | #include <Eet.h> | ||
2 | |||
3 | int | ||
4 | main(void) | ||
5 | { | ||
6 | Eet_File *ef; | ||
7 | char *ret; | ||
8 | int size; | ||
9 | char *entries[] = | ||
10 | { | ||
11 | "Entry 1", | ||
12 | "Big text string here compared to others", | ||
13 | "Eet is cool" | ||
14 | }; | ||
15 | |||
16 | eet_init(); | ||
17 | |||
18 | // blindly open an file for output and write strings with their NUL char | ||
19 | ef = eet_open("test.eet", EET_FILE_MODE_WRITE); | ||
20 | eet_write(ef, "Entry 1", entries[0], strlen(entries[0]) + 1, 0); | ||
21 | eet_write(ef, "Entry 2", entries[1], strlen(entries[1]) + 1, 1); | ||
22 | eet_write(ef, "Entry 3", entries[2], strlen(entries[2]) + 1, 0); | ||
23 | eet_close(ef); | ||
24 | |||
25 | // open the file again and blindly get the entries we wrote | ||
26 | ef = eet_open("test.eet", EET_FILE_MODE_READ); | ||
27 | ret = eet_read(ef, "Entry 1", &size); | ||
28 | printf("%s\n", ret); | ||
29 | free(ret); | ||
30 | ret = eet_read(ef, "Entry 2", &size); | ||
31 | printf("%s\n", ret); | ||
32 | free(ret); | ||
33 | ret = eet_read(ef, "Entry 3", &size); | ||
34 | printf("%s\n", ret); | ||
35 | free(ret); | ||
36 | eet_close(ef); | ||
37 | |||
38 | eet_shutdown(); | ||
39 | } | ||
40 | |||
diff --git a/libraries/eet/src/examples/eet-data-cipher_decipher.c b/libraries/eet/src/examples/eet-data-cipher_decipher.c deleted file mode 100644 index 2ef965c..0000000 --- a/libraries/eet/src/examples/eet-data-cipher_decipher.c +++ /dev/null | |||
@@ -1,119 +0,0 @@ | |||
1 | /* | ||
2 | * build: gcc -o eet_data_file_cipher_decipher eet-data-file_cipher_decipher.c `pkg-config --cflags --libs eet eina` | ||
3 | */ | ||
4 | |||
5 | #include <Eina.h> | ||
6 | #include <Eet.h> | ||
7 | #include <stdio.h> | ||
8 | #include <limits.h> | ||
9 | #include <sys/types.h> | ||
10 | #include <sys/stat.h> | ||
11 | #include <unistd.h> | ||
12 | |||
13 | int | ||
14 | main(void) | ||
15 | { | ||
16 | const char *buffer = "Here is a string of data to save !"; | ||
17 | const char *key = "This is a crypto key"; | ||
18 | const char *key_bad = "This is another crypto key"; | ||
19 | |||
20 | char *file = strdup("/tmp/eet_cipher_example_XXXXX"); | ||
21 | Eet_File *ef; | ||
22 | char *test; | ||
23 | int size; | ||
24 | |||
25 | eet_init(); | ||
26 | |||
27 | if (!(file = tmpnam(file))) | ||
28 | { | ||
29 | fprintf( | ||
30 | stderr, "ERROR: could not create temporary file (%s).\n", file); | ||
31 | goto panic; | ||
32 | } | ||
33 | |||
34 | /* Crypt an eet file. */ | ||
35 | ef = eet_open(file, EET_FILE_MODE_WRITE); | ||
36 | if (!ef) | ||
37 | { | ||
38 | fprintf( | ||
39 | stderr, "ERROR: could not access file (%s).\n", file); | ||
40 | goto error; | ||
41 | } | ||
42 | |||
43 | if (!eet_write_cipher(ef, "keys/tests", buffer, strlen(buffer) + 1, 0, key)) | ||
44 | { | ||
45 | fprintf( | ||
46 | stderr, "ERROR: could not access file (%s).\n", file); | ||
47 | goto error; | ||
48 | } | ||
49 | |||
50 | eet_close(ef); | ||
51 | |||
52 | /* Decrypt an eet file. */ | ||
53 | ef = eet_open(file, EET_FILE_MODE_READ); | ||
54 | if (!ef) | ||
55 | { | ||
56 | fprintf( | ||
57 | stderr, "ERROR: could not access file (%s).\n", file); | ||
58 | goto error; | ||
59 | } | ||
60 | |||
61 | test = eet_read_cipher(ef, "keys/tests", &size, key); | ||
62 | if (!test) | ||
63 | { | ||
64 | fprintf( | ||
65 | stderr, "ERROR: could decript contents on file %s, with key %s.\n", | ||
66 | file, key); | ||
67 | goto error; | ||
68 | } | ||
69 | |||
70 | if (size != (int)strlen(buffer) + 1) | ||
71 | { | ||
72 | fprintf( | ||
73 | stderr, "ERROR: something is wrong with the decripted data\n"); | ||
74 | goto error; | ||
75 | } | ||
76 | |||
77 | if (memcmp(test, buffer, strlen(buffer) + 1) != 0) | ||
78 | { | ||
79 | fprintf( | ||
80 | stderr, "ERROR: something is wrong with the decripted data\n"); | ||
81 | goto error; | ||
82 | } | ||
83 | |||
84 | eet_close(ef); | ||
85 | |||
86 | /* Decrypt an eet file, now using our BAD key!! */ | ||
87 | ef = eet_open(file, EET_FILE_MODE_READ); | ||
88 | if (!ef) | ||
89 | { | ||
90 | fprintf( | ||
91 | stderr, "ERROR: could not access file (%s).\n", file); | ||
92 | goto error; | ||
93 | } | ||
94 | |||
95 | test = eet_read_cipher(ef, "keys/tests", &size, key_bad); | ||
96 | |||
97 | if (size == (int)strlen(buffer) + 1) | ||
98 | if (memcmp(test, buffer, strlen(buffer) + 1) == 0) | ||
99 | { | ||
100 | fprintf( | ||
101 | stderr, "ERROR: something is wrong with the contents of %s, as" | ||
102 | " we accessed it with a different key and it decripted our" | ||
103 | " information right.\n", file); | ||
104 | goto error; | ||
105 | } | ||
106 | |||
107 | eet_close(ef); | ||
108 | |||
109 | error: | ||
110 | if (unlink(file) != 0) | ||
111 | { | ||
112 | fprintf( | ||
113 | stderr, "ERROR: could not unlink file (%s).\n", file); | ||
114 | } | ||
115 | |||
116 | panic: | ||
117 | eet_shutdown(); | ||
118 | } | ||
119 | |||
diff --git a/libraries/eet/src/examples/eet-data-file_descriptor_01.c b/libraries/eet/src/examples/eet-data-file_descriptor_01.c deleted file mode 100644 index 4b5b75f..0000000 --- a/libraries/eet/src/examples/eet-data-file_descriptor_01.c +++ /dev/null | |||
@@ -1,529 +0,0 @@ | |||
1 | /* | ||
2 | * build: gcc -o eet_data_file_descriptor eet-data-file_descriptor.c `pkg-config --cflags --libs eet eina` | ||
3 | */ | ||
4 | #include <Eina.h> | ||
5 | #include <Eet.h> | ||
6 | #include <stdio.h> | ||
7 | #include <limits.h> | ||
8 | #include <sys/types.h> | ||
9 | #include <sys/stat.h> | ||
10 | #include <unistd.h> | ||
11 | |||
12 | // complex real-world structures based on elmdentica database | ||
13 | typedef struct | ||
14 | { | ||
15 | const char *screen_name; | ||
16 | const char *name; | ||
17 | const char *message; | ||
18 | unsigned int id; | ||
19 | unsigned int status_id; | ||
20 | unsigned int date; | ||
21 | unsigned int timeline; | ||
22 | } My_Message; | ||
23 | |||
24 | typedef struct | ||
25 | { | ||
26 | const char *dm_to; | ||
27 | const char *message; | ||
28 | } My_Post; | ||
29 | |||
30 | typedef struct | ||
31 | { | ||
32 | unsigned int id; | ||
33 | const char *name; | ||
34 | Eina_List *messages; | ||
35 | My_Post *posts; | ||
36 | int posts_count; | ||
37 | } My_Account; | ||
38 | |||
39 | typedef struct | ||
40 | { | ||
41 | unsigned int version; // it is recommended to use versioned configuration! | ||
42 | Eina_Hash *accounts; | ||
43 | } My_Cache; | ||
44 | |||
45 | // string that represents the entry in eet file, you might like to have | ||
46 | // different profiles or so in the same file, this is possible with | ||
47 | // different strings | ||
48 | static const char MY_CACHE_FILE_ENTRY[] = "cache"; | ||
49 | |||
50 | // keep the descriptor static global, so it can be | ||
51 | // shared by different functions (load/save) of this and only this | ||
52 | // file. | ||
53 | static Eet_Data_Descriptor *_my_cache_descriptor; | ||
54 | static Eet_Data_Descriptor *_my_account_descriptor; | ||
55 | static Eet_Data_Descriptor *_my_message_descriptor; | ||
56 | static Eet_Data_Descriptor *_my_post_descriptor; | ||
57 | |||
58 | // keep file handle alive, so mmap()ed strings are all alive as well | ||
59 | static Eet_File *_my_cache_file = NULL; | ||
60 | static Eet_Dictionary *_my_cache_dict = NULL; | ||
61 | |||
62 | static void | ||
63 | _my_cache_descriptor_init(void) | ||
64 | { | ||
65 | Eet_Data_Descriptor_Class eddc; | ||
66 | |||
67 | // The FILE variant is good for caches and things that are just | ||
68 | // appended, but needs to take care when changing strings and files must | ||
69 | // be kept open so mmap()ed strings will be kept alive. | ||
70 | EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, My_Cache); | ||
71 | _my_cache_descriptor = eet_data_descriptor_file_new(&eddc); | ||
72 | |||
73 | EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, My_Account); | ||
74 | _my_account_descriptor = eet_data_descriptor_file_new(&eddc); | ||
75 | |||
76 | EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, My_Message); | ||
77 | _my_message_descriptor = eet_data_descriptor_file_new(&eddc); | ||
78 | |||
79 | EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, My_Post); | ||
80 | _my_post_descriptor = eet_data_descriptor_file_new(&eddc); | ||
81 | |||
82 | // Describe the members to be saved: | ||
83 | // Use a temporary macro so we don't type a lot, also avoid errors: | ||
84 | |||
85 | #define ADD_BASIC(member, eet_type) \ | ||
86 | EET_DATA_DESCRIPTOR_ADD_BASIC \ | ||
87 | (_my_message_descriptor, My_Message, # member, member, eet_type) | ||
88 | ADD_BASIC(screen_name, EET_T_STRING); | ||
89 | ADD_BASIC(name, EET_T_STRING); | ||
90 | ADD_BASIC(message, EET_T_STRING); | ||
91 | ADD_BASIC(id, EET_T_UINT); | ||
92 | ADD_BASIC(status_id, EET_T_UINT); | ||
93 | ADD_BASIC(date, EET_T_UINT); | ||
94 | ADD_BASIC(timeline, EET_T_UINT); | ||
95 | #undef ADD_BASIC | ||
96 | |||
97 | #define ADD_BASIC(member, eet_type) \ | ||
98 | EET_DATA_DESCRIPTOR_ADD_BASIC \ | ||
99 | (_my_post_descriptor, My_Post, # member, member, eet_type) | ||
100 | ADD_BASIC(dm_to, EET_T_STRING); | ||
101 | ADD_BASIC(message, EET_T_STRING); | ||
102 | #undef ADD_BASIC | ||
103 | |||
104 | #define ADD_BASIC(member, eet_type) \ | ||
105 | EET_DATA_DESCRIPTOR_ADD_BASIC \ | ||
106 | (_my_account_descriptor, My_Account, # member, member, eet_type) | ||
107 | ADD_BASIC(name, EET_T_STRING); | ||
108 | ADD_BASIC(id, EET_T_UINT); | ||
109 | #undef ADD_BASIC | ||
110 | |||
111 | EET_DATA_DESCRIPTOR_ADD_LIST | ||
112 | (_my_account_descriptor, My_Account, "messages", messages, | ||
113 | _my_message_descriptor); | ||
114 | EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY | ||
115 | (_my_account_descriptor, My_Account, "posts", posts, | ||
116 | _my_post_descriptor); | ||
117 | |||
118 | #define ADD_BASIC(member, eet_type) \ | ||
119 | EET_DATA_DESCRIPTOR_ADD_BASIC \ | ||
120 | (_my_cache_descriptor, My_Cache, # member, member, eet_type) | ||
121 | ADD_BASIC(version, EET_T_UINT); | ||
122 | #undef ADD_BASIC | ||
123 | |||
124 | EET_DATA_DESCRIPTOR_ADD_HASH | ||
125 | (_my_cache_descriptor, My_Cache, "accounts", accounts, | ||
126 | _my_account_descriptor); | ||
127 | } /* _my_cache_descriptor_init */ | ||
128 | |||
129 | static void | ||
130 | _my_cache_descriptor_shutdown(void) | ||
131 | { | ||
132 | eet_data_descriptor_free(_my_cache_descriptor); | ||
133 | eet_data_descriptor_free(_my_account_descriptor); | ||
134 | eet_data_descriptor_free(_my_message_descriptor); | ||
135 | eet_data_descriptor_free(_my_post_descriptor); | ||
136 | } /* _my_cache_descriptor_shutdown */ | ||
137 | |||
138 | // need to check if the pointer came from mmaped area in eet_dictionary | ||
139 | // or it was allocated with eina_stringshare_add() | ||
140 | static void | ||
141 | _eet_string_free(const char *str) | ||
142 | { | ||
143 | if (!str) | ||
144 | return; | ||
145 | |||
146 | if ((_my_cache_dict) && (eet_dictionary_string_check(_my_cache_dict, str))) | ||
147 | return; | ||
148 | |||
149 | eina_stringshare_del(str); | ||
150 | } /* _eet_string_free */ | ||
151 | |||
152 | static My_Message * | ||
153 | _my_message_new(const char *message) | ||
154 | { | ||
155 | My_Message *msg = calloc(1, sizeof(My_Message)); | ||
156 | if (!msg) | ||
157 | { | ||
158 | fprintf(stderr, "ERROR: could not calloc My_Message\n"); | ||
159 | return NULL; | ||
160 | } | ||
161 | |||
162 | msg->message = eina_stringshare_add(message); | ||
163 | return msg; | ||
164 | } /* _my_message_new */ | ||
165 | |||
166 | static void | ||
167 | _my_message_free(My_Message *msg) | ||
168 | { | ||
169 | _eet_string_free(msg->screen_name); | ||
170 | _eet_string_free(msg->name); | ||
171 | _eet_string_free(msg->message); | ||
172 | free(msg); | ||
173 | } /* _my_message_free */ | ||
174 | |||
175 | static Eina_Bool | ||
176 | _my_post_add(My_Account *acc, | ||
177 | const char *message) | ||
178 | { | ||
179 | int new_count = acc->posts_count + 1; | ||
180 | My_Post *post = realloc(acc->posts, new_count * sizeof(My_Post)); | ||
181 | if (!post) | ||
182 | { | ||
183 | fprintf(stderr, "ERROR: could add My_Post\n"); | ||
184 | return EINA_FALSE; | ||
185 | } | ||
186 | |||
187 | post[acc->posts_count].message = eina_stringshare_add(message); | ||
188 | post[acc->posts_count].dm_to = NULL; | ||
189 | acc->posts_count = new_count; | ||
190 | acc->posts = post; | ||
191 | return EINA_TRUE; | ||
192 | } /* _my_post_new */ | ||
193 | |||
194 | static void | ||
195 | _my_post_free(My_Post *post) | ||
196 | { | ||
197 | _eet_string_free(post->dm_to); | ||
198 | _eet_string_free(post->message); | ||
199 | } /* _my_post_free */ | ||
200 | |||
201 | static My_Account * | ||
202 | _my_account_new(const char *name) | ||
203 | { | ||
204 | My_Account *acc = calloc(1, sizeof(My_Account)); | ||
205 | if (!acc) | ||
206 | { | ||
207 | fprintf(stderr, "ERROR: could not calloc My_Account\n"); | ||
208 | return NULL; | ||
209 | } | ||
210 | |||
211 | acc->name = eina_stringshare_add(name); | ||
212 | return acc; | ||
213 | } /* _my_account_new */ | ||
214 | |||
215 | static void | ||
216 | _my_account_free(My_Account *acc) | ||
217 | { | ||
218 | My_Message *m; | ||
219 | int i; | ||
220 | |||
221 | _eet_string_free(acc->name); | ||
222 | |||
223 | EINA_LIST_FREE(acc->messages, m) | ||
224 | _my_message_free(m); | ||
225 | |||
226 | for (i = 0; i < acc->posts_count; i++) | ||
227 | _my_post_free(&acc->posts[i]); | ||
228 | free(acc->posts); | ||
229 | |||
230 | free(acc); | ||
231 | } /* _my_account_free */ | ||
232 | |||
233 | static My_Cache * | ||
234 | _my_cache_new(void) | ||
235 | { | ||
236 | My_Cache *my_cache = calloc(1, sizeof(My_Cache)); | ||
237 | if (!my_cache) | ||
238 | { | ||
239 | fprintf(stderr, "ERROR: could not calloc My_Cache\n"); | ||
240 | return NULL; | ||
241 | } | ||
242 | |||
243 | my_cache->accounts = eina_hash_string_small_new(NULL); | ||
244 | |||
245 | my_cache->version = 1; | ||
246 | return my_cache; | ||
247 | } /* _my_cache_new */ | ||
248 | |||
249 | static Eina_Bool | ||
250 | _my_cache_account_free_cb(const Eina_Hash *hash, | ||
251 | const void *key, | ||
252 | void *data, | ||
253 | void *fdata) | ||
254 | { | ||
255 | _my_account_free(data); | ||
256 | return EINA_TRUE; | ||
257 | } | ||
258 | |||
259 | static void | ||
260 | _my_cache_free(My_Cache *my_cache) | ||
261 | { | ||
262 | My_Account *acc; | ||
263 | eina_hash_foreach(my_cache->accounts, _my_cache_account_free_cb, NULL); | ||
264 | eina_hash_free(my_cache->accounts); | ||
265 | free(my_cache); | ||
266 | } /* _my_cache_free */ | ||
267 | |||
268 | static My_Account * | ||
269 | _my_cache_account_find(My_Cache *my_cache, | ||
270 | const char *name) | ||
271 | { | ||
272 | return eina_hash_find(my_cache->accounts, name); | ||
273 | } /* _my_cache_account_find */ | ||
274 | |||
275 | static My_Cache * | ||
276 | _my_cache_load(const char *filename) | ||
277 | { | ||
278 | My_Cache *my_cache; | ||
279 | Eet_File *ef = eet_open(filename, EET_FILE_MODE_READ); | ||
280 | if (!ef) | ||
281 | { | ||
282 | fprintf(stderr, "ERROR: could not open '%s' for read\n", filename); | ||
283 | return NULL; | ||
284 | } | ||
285 | |||
286 | my_cache = eet_data_read(ef, _my_cache_descriptor, MY_CACHE_FILE_ENTRY); | ||
287 | if (!my_cache) | ||
288 | { | ||
289 | eet_close(ef); | ||
290 | return NULL; | ||
291 | } | ||
292 | |||
293 | if (my_cache->version < 1) | ||
294 | { | ||
295 | fprintf(stderr, | ||
296 | "WARNING: version %#x was too old, upgrading it to %#x\n", | ||
297 | my_cache->version, 1); | ||
298 | |||
299 | my_cache->version = 1; | ||
300 | } | ||
301 | |||
302 | if (_my_cache_file) | ||
303 | eet_close(_my_cache_file); | ||
304 | |||
305 | _my_cache_file = ef; | ||
306 | _my_cache_dict = eet_dictionary_get(ef); | ||
307 | |||
308 | return my_cache; | ||
309 | } /* _my_cache_load */ | ||
310 | |||
311 | static Eina_Bool | ||
312 | _my_cache_save(const My_Cache *my_cache, | ||
313 | const char *filename) | ||
314 | { | ||
315 | char tmp[PATH_MAX]; | ||
316 | Eet_File *ef; | ||
317 | Eina_Bool ret; | ||
318 | unsigned int i, len; | ||
319 | struct stat st; | ||
320 | |||
321 | len = eina_strlcpy(tmp, filename, sizeof(tmp)); | ||
322 | if (len + 12 >= (int)sizeof(tmp)) | ||
323 | { | ||
324 | fprintf(stderr, "ERROR: file name is too big: %s\n", filename); | ||
325 | return EINA_FALSE; | ||
326 | } | ||
327 | |||
328 | i = 0; | ||
329 | do | ||
330 | { | ||
331 | snprintf(tmp + len, 12, ".%u", i); | ||
332 | i++; | ||
333 | } | ||
334 | while (stat(tmp, &st) == 0); | ||
335 | |||
336 | ef = eet_open(tmp, EET_FILE_MODE_WRITE); | ||
337 | if (!ef) | ||
338 | { | ||
339 | fprintf(stderr, "ERROR: could not open '%s' for write\n", tmp); | ||
340 | return EINA_FALSE; | ||
341 | } | ||
342 | |||
343 | ret = eet_data_write | ||
344 | (ef, _my_cache_descriptor, MY_CACHE_FILE_ENTRY, my_cache, EINA_TRUE); | ||
345 | |||
346 | // VERY IMPORTANT NOTE: | ||
347 | // after eet_close(), all strings mmaped from file will be GONE, invalid! | ||
348 | // you'll need to free the old cache and open the new one. | ||
349 | // For cache this is okay, as you should be saving not so often or just | ||
350 | // at end. | ||
351 | // | ||
352 | // This is a trade off, you save memory by using mmap()ed strings, but | ||
353 | // you have to care about this. | ||
354 | eet_close(ef); | ||
355 | |||
356 | if (ret) | ||
357 | { | ||
358 | unlink(filename); | ||
359 | rename(tmp, filename); | ||
360 | } | ||
361 | |||
362 | return ret; | ||
363 | } /* _my_cache_save */ | ||
364 | |||
365 | int | ||
366 | main(int argc, | ||
367 | char *argv[]) | ||
368 | { | ||
369 | My_Cache *my_cache; | ||
370 | const Eina_List *l_acc; | ||
371 | Eina_Iterator *it; | ||
372 | My_Account *acc; | ||
373 | int ret = 0; | ||
374 | |||
375 | if (argc < 3) | ||
376 | { | ||
377 | fprintf(stderr, | ||
378 | "Usage:\n\t%s <input> <output> [action] [action-params]\n\n" | ||
379 | "Where actions and their parameters:\n" | ||
380 | "\tacc <name>\n" | ||
381 | "\tpost <account-name> <message>\n" | ||
382 | "\tmessage <account-name> <message>\n" | ||
383 | "\n", | ||
384 | argv[0]); | ||
385 | return -1; | ||
386 | } | ||
387 | |||
388 | eina_init(); | ||
389 | eet_init(); | ||
390 | _my_cache_descriptor_init(); | ||
391 | |||
392 | my_cache = _my_cache_load(argv[1]); | ||
393 | if (!my_cache) | ||
394 | { | ||
395 | printf("creating new cache.\n"); | ||
396 | my_cache = _my_cache_new(); | ||
397 | if (!my_cache) | ||
398 | { | ||
399 | ret = -2; | ||
400 | goto end; | ||
401 | } | ||
402 | } | ||
403 | |||
404 | if (argc > 3) | ||
405 | { | ||
406 | if (strcmp(argv[3], "acc") == 0) | ||
407 | { | ||
408 | if (argc == 5) | ||
409 | { | ||
410 | My_Account *acc = _my_cache_account_find(my_cache, argv[4]); | ||
411 | if (!acc) | ||
412 | { | ||
413 | acc = _my_account_new(argv[4]); | ||
414 | eina_hash_direct_add(my_cache->accounts, acc->name, acc); | ||
415 | } | ||
416 | else | ||
417 | fprintf(stderr, "ERROR: account '%s' already exists.\n", | ||
418 | argv[4]); | ||
419 | } | ||
420 | else | ||
421 | fprintf(stderr, | ||
422 | "ERROR: wrong number of parameters (%d).\n", | ||
423 | argc); | ||
424 | } | ||
425 | else if (strcmp(argv[3], "post") == 0) | ||
426 | { | ||
427 | if (argc == 6) | ||
428 | { | ||
429 | My_Account *acc = _my_cache_account_find(my_cache, argv[4]); | ||
430 | if (acc) | ||
431 | { | ||
432 | _my_post_add(acc, argv[5]); | ||
433 | } | ||
434 | else | ||
435 | fprintf(stderr, "ERROR: unknown account: '%s'\n", argv[4]); | ||
436 | } | ||
437 | else | ||
438 | fprintf(stderr, | ||
439 | "ERROR: wrong number of parameters (%d).\n", | ||
440 | argc); | ||
441 | } | ||
442 | else if (strcmp(argv[3], "message") == 0) | ||
443 | { | ||
444 | if (argc == 6) | ||
445 | { | ||
446 | My_Account *acc = _my_cache_account_find(my_cache, argv[4]); | ||
447 | if (acc) | ||
448 | { | ||
449 | My_Message *msg = _my_message_new(argv[5]); | ||
450 | acc->messages = eina_list_append(acc->messages, msg); | ||
451 | } | ||
452 | else | ||
453 | fprintf(stderr, "ERROR: unknown account: '%s'\n", argv[4]); | ||
454 | } | ||
455 | else | ||
456 | fprintf(stderr, | ||
457 | "ERROR: wrong number of parameters (%d).\n", | ||
458 | argc); | ||
459 | } | ||
460 | else | ||
461 | fprintf(stderr, "ERROR: unknown action '%s'\n", argv[2]); | ||
462 | } | ||
463 | |||
464 | printf("My_Cache:\n" | ||
465 | "\tversion.: %#x\n" | ||
466 | "\taccounts: %u\n", | ||
467 | my_cache->version, | ||
468 | eina_hash_population(my_cache->accounts)); | ||
469 | it = eina_hash_iterator_data_new(my_cache->accounts); | ||
470 | EINA_ITERATOR_FOREACH(it, acc) | ||
471 | { | ||
472 | const My_Post *post; | ||
473 | |||
474 | printf("\t > %-#8x '%.20s' stats: m=%u, p=%u\n", | ||
475 | acc->id, acc->name ? acc->name : "", | ||
476 | eina_list_count(acc->messages), | ||
477 | acc->posts_count); | ||
478 | |||
479 | if (eina_list_count(acc->messages)) | ||
480 | { | ||
481 | const Eina_List *l; | ||
482 | const My_Message *msg; | ||
483 | printf("\t |messages:\n"); | ||
484 | |||
485 | EINA_LIST_FOREACH(acc->messages, l, msg) | ||
486 | { | ||
487 | printf("\t | %-8x '%s' [%s]: '%.20s'\n", | ||
488 | msg->id, | ||
489 | msg->name ? msg->name : "", | ||
490 | msg->screen_name ? msg->screen_name : "", | ||
491 | msg->message ? msg->message : ""); | ||
492 | } | ||
493 | } | ||
494 | |||
495 | if (acc->posts_count) | ||
496 | { | ||
497 | const My_Post *post; | ||
498 | int i; | ||
499 | printf("\t |posts:\n"); | ||
500 | |||
501 | for (i = 0; i < acc->posts_count; i++) | ||
502 | { | ||
503 | post = &acc->posts[i]; | ||
504 | if (post->dm_to) | ||
505 | printf("\t | @%s: '%.20s'\n", post->dm_to, post->message); | ||
506 | else | ||
507 | printf("\t | '%.20s'\n", post->message); | ||
508 | } | ||
509 | } | ||
510 | |||
511 | printf("\n"); | ||
512 | } | ||
513 | eina_iterator_free(it); | ||
514 | |||
515 | if (!_my_cache_save(my_cache, argv[2])) | ||
516 | ret = -3; | ||
517 | |||
518 | _my_cache_free(my_cache); | ||
519 | |||
520 | end: | ||
521 | if (_my_cache_file) | ||
522 | eet_close(_my_cache_file); | ||
523 | _my_cache_descriptor_shutdown(); | ||
524 | eet_shutdown(); | ||
525 | eina_shutdown(); | ||
526 | |||
527 | return ret; | ||
528 | } /* main */ | ||
529 | |||
diff --git a/libraries/eet/src/examples/eet-data-file_descriptor_02.c b/libraries/eet/src/examples/eet-data-file_descriptor_02.c deleted file mode 100644 index 65ba79e..0000000 --- a/libraries/eet/src/examples/eet-data-file_descriptor_02.c +++ /dev/null | |||
@@ -1,944 +0,0 @@ | |||
1 | /* | ||
2 | * build: gcc -o eet_data_file_descriptor_02 eet-data-file_descriptor_02.c `pkg-config --cflags --libs eet eina` | ||
3 | */ | ||
4 | |||
5 | #include <Eina.h> | ||
6 | #include <Eet.h> | ||
7 | #include <stdio.h> | ||
8 | #include <limits.h> | ||
9 | #include <sys/types.h> | ||
10 | #include <sys/stat.h> | ||
11 | #include <unistd.h> | ||
12 | |||
13 | typedef enum _Example_Data_Type Example_Data_Type; | ||
14 | typedef struct _Example_Variant_Type Example_Variant_Type; | ||
15 | typedef struct _Example_Variant Example_Variant; | ||
16 | typedef struct _Example_Union Example_Union; | ||
17 | typedef struct _Example_Struct1 Example_Struct1; | ||
18 | typedef struct _Example_Struct2 Example_Struct2; | ||
19 | typedef struct _Example_Struct3 Example_Struct3; | ||
20 | typedef struct _Example_Lists Example_Lists; | ||
21 | |||
22 | enum _Example_Data_Type | ||
23 | { | ||
24 | EET_UNKNOWN = 0, | ||
25 | EET_STRUCT1, | ||
26 | EET_STRUCT2, | ||
27 | EET_STRUCT3 | ||
28 | }; | ||
29 | |||
30 | struct | ||
31 | { | ||
32 | Example_Data_Type u; | ||
33 | const char *name; | ||
34 | } eet_mapping[] = { | ||
35 | { EET_STRUCT1, "ST1" }, | ||
36 | { EET_STRUCT2, "ST2" }, | ||
37 | { EET_STRUCT3, "ST3" }, | ||
38 | { EET_UNKNOWN, NULL } | ||
39 | }; | ||
40 | |||
41 | struct _Example_Struct1 | ||
42 | { | ||
43 | double val1; | ||
44 | int stuff; | ||
45 | const char *s1; | ||
46 | }; | ||
47 | |||
48 | struct _Example_Struct2 | ||
49 | { | ||
50 | Eina_Bool b1; | ||
51 | unsigned long long v1; | ||
52 | }; | ||
53 | |||
54 | struct _Example_Struct3 | ||
55 | { | ||
56 | int body; | ||
57 | }; | ||
58 | |||
59 | struct _Example_Union | ||
60 | { | ||
61 | Example_Data_Type type; | ||
62 | |||
63 | union { | ||
64 | Example_Struct1 st1; | ||
65 | Example_Struct2 st2; | ||
66 | Example_Struct3 st3; | ||
67 | } u; | ||
68 | }; | ||
69 | |||
70 | struct _Example_Variant_Type | ||
71 | { | ||
72 | const char *type; | ||
73 | Eina_Bool unknow : 1; | ||
74 | }; | ||
75 | |||
76 | struct _Example_Variant | ||
77 | { | ||
78 | Example_Variant_Type t; | ||
79 | |||
80 | void *data; /* differently than the union type, we | ||
81 | * don't need to pre-allocate the memory | ||
82 | * for the field*/ | ||
83 | }; | ||
84 | |||
85 | struct _Example_Lists | ||
86 | { | ||
87 | Eina_List *union_list; | ||
88 | Eina_List *variant_list; | ||
89 | }; | ||
90 | |||
91 | static void | ||
92 | _st1_set(Example_Struct1 *st1, | ||
93 | double v1, | ||
94 | int v2, | ||
95 | const char *v3) | ||
96 | { | ||
97 | st1->val1 = v1; | ||
98 | st1->stuff = v2; | ||
99 | st1->s1 = v3; | ||
100 | } /* _st1_set */ | ||
101 | |||
102 | static void | ||
103 | _st2_set(Example_Struct2 *st2, | ||
104 | Eina_Bool v1, | ||
105 | unsigned long long v2) | ||
106 | { | ||
107 | st2->b1 = v1; | ||
108 | st2->v1 = v2; | ||
109 | } /* _st2_set */ | ||
110 | |||
111 | static void | ||
112 | _st3_set(Example_Struct3 *st3, | ||
113 | int v1) | ||
114 | { | ||
115 | st3->body = v1; | ||
116 | } /* _st3_set */ | ||
117 | |||
118 | static const char * | ||
119 | /* union | ||
120 | type_get() */ | ||
121 | _union_type_get(const void *data, | ||
122 | Eina_Bool *unknow) | ||
123 | { | ||
124 | const Example_Data_Type *u = data; | ||
125 | int i; | ||
126 | |||
127 | if (unknow) | ||
128 | *unknow = EINA_FALSE; | ||
129 | |||
130 | for (i = 0; eet_mapping[i].name != NULL; ++i) | ||
131 | if (*u == eet_mapping[i].u) | ||
132 | return eet_mapping[i].name; | ||
133 | |||
134 | if (unknow) | ||
135 | *unknow = EINA_TRUE; | ||
136 | |||
137 | return NULL; | ||
138 | } /* _union_type_get */ | ||
139 | |||
140 | static Eina_Bool | ||
141 | _union_type_set(const char *type, | ||
142 | void *data, | ||
143 | Eina_Bool unknow) | ||
144 | { | ||
145 | Example_Data_Type *u = data; | ||
146 | int i; | ||
147 | |||
148 | if (unknow) | ||
149 | return EINA_FALSE; | ||
150 | |||
151 | for (i = 0; eet_mapping[i].name != NULL; ++i) | ||
152 | if (strcmp(eet_mapping[i].name, type) == 0) | ||
153 | { | ||
154 | *u = eet_mapping[i].u; | ||
155 | return EINA_TRUE; | ||
156 | } | ||
157 | |||
158 | return EINA_FALSE; | ||
159 | } /* _union_type_set */ | ||
160 | |||
161 | static const char * | ||
162 | _variant_type_get(const void *data, | ||
163 | Eina_Bool *unknow) | ||
164 | { | ||
165 | const Example_Variant_Type *type = data; | ||
166 | int i; | ||
167 | |||
168 | if (unknow) | ||
169 | *unknow = type->unknow; | ||
170 | |||
171 | for (i = 0; eet_mapping[i].name != NULL; ++i) | ||
172 | if (strcmp(type->type, eet_mapping[i].name) == 0) | ||
173 | return eet_mapping[i].name; | ||
174 | |||
175 | if (unknow) | ||
176 | *unknow = EINA_FALSE; | ||
177 | |||
178 | return type->type; | ||
179 | } /* _variant_type_get */ | ||
180 | |||
181 | static Eina_Bool | ||
182 | _variant_type_set(const char *type, | ||
183 | void *data, | ||
184 | Eina_Bool unknow) | ||
185 | { | ||
186 | Example_Variant_Type *vt = data; | ||
187 | |||
188 | vt->type = type; | ||
189 | vt->unknow = unknow; | ||
190 | return EINA_TRUE; | ||
191 | } /* _variant_type_set */ | ||
192 | |||
193 | static Eet_Data_Descriptor * | ||
194 | _st1_dd(void) | ||
195 | { | ||
196 | Eet_Data_Descriptor_Class eddc; | ||
197 | Eet_Data_Descriptor *res; | ||
198 | |||
199 | EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Example_Struct1); | ||
200 | res = eet_data_descriptor_file_new(&eddc); | ||
201 | EET_DATA_DESCRIPTOR_ADD_BASIC( | ||
202 | res, Example_Struct1, "val1", val1, EET_T_DOUBLE); | ||
203 | EET_DATA_DESCRIPTOR_ADD_BASIC( | ||
204 | res, Example_Struct1, "stuff", stuff, EET_T_INT); | ||
205 | EET_DATA_DESCRIPTOR_ADD_BASIC( | ||
206 | res, Example_Struct1, "s1", s1, EET_T_STRING); | ||
207 | |||
208 | return res; | ||
209 | } /* _st1_dd */ | ||
210 | |||
211 | static Eet_Data_Descriptor * | ||
212 | _st2_dd(void) | ||
213 | { | ||
214 | Eet_Data_Descriptor_Class eddc; | ||
215 | Eet_Data_Descriptor *res; | ||
216 | |||
217 | EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Example_Struct2); | ||
218 | res = eet_data_descriptor_file_new(&eddc); | ||
219 | EET_DATA_DESCRIPTOR_ADD_BASIC( | ||
220 | res, Example_Struct2, "b1", b1, EET_T_UCHAR); | ||
221 | EET_DATA_DESCRIPTOR_ADD_BASIC( | ||
222 | res, Example_Struct2, "v1", v1, EET_T_ULONG_LONG); | ||
223 | |||
224 | return res; | ||
225 | } /* _st2_dd */ | ||
226 | |||
227 | static Eet_Data_Descriptor * | ||
228 | _st3_dd(void) | ||
229 | { | ||
230 | Eet_Data_Descriptor_Class eddc; | ||
231 | Eet_Data_Descriptor *res; | ||
232 | |||
233 | EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Example_Struct3); | ||
234 | res = eet_data_descriptor_file_new(&eddc); | ||
235 | EET_DATA_DESCRIPTOR_ADD_BASIC( | ||
236 | res, Example_Struct3, "body", body, EET_T_INT); | ||
237 | |||
238 | return res; | ||
239 | } /* _st3_dd */ | ||
240 | |||
241 | /* string that represents the entry in the eet file. you might like to | ||
242 | * have different profiles or so in the same file, this is possible | ||
243 | * with different strings | ||
244 | */ | ||
245 | static const char CACHE_FILE_ENTRY[] = "cache"; | ||
246 | |||
247 | /* keep the descriptor static global, so it can be shared by different | ||
248 | * functions (load/save) of this and only this file. | ||
249 | */ | ||
250 | static Eet_Data_Descriptor *_lists_descriptor; | ||
251 | static Eet_Data_Descriptor *_struct_1_descriptor; | ||
252 | static Eet_Data_Descriptor *_struct_2_descriptor; | ||
253 | static Eet_Data_Descriptor *_struct_3_descriptor; | ||
254 | static Eet_Data_Descriptor *_union_descriptor; | ||
255 | static Eet_Data_Descriptor *_variant_descriptor; | ||
256 | static Eet_Data_Descriptor *_union_unified_descriptor; | ||
257 | static Eet_Data_Descriptor *_variant_unified_descriptor; | ||
258 | |||
259 | /* keep file handle alive, so mmap()ed strings are all alive as | ||
260 | * well */ | ||
261 | static Eet_File *_cache_file = NULL; | ||
262 | static Eet_Dictionary *_cache_dict = NULL; | ||
263 | |||
264 | static void | ||
265 | /* declaring types */ | ||
266 | _data_descriptors_init(void) | ||
267 | { | ||
268 | Eet_Data_Descriptor_Class eddc; | ||
269 | |||
270 | EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Example_Lists); | ||
271 | _lists_descriptor = eet_data_descriptor_file_new(&eddc); | ||
272 | |||
273 | _struct_1_descriptor = _st1_dd(); | ||
274 | _struct_2_descriptor = _st2_dd(); | ||
275 | _struct_3_descriptor = _st3_dd(); | ||
276 | |||
277 | /* for union */ | ||
278 | EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Example_Union); | ||
279 | _union_descriptor = eet_data_descriptor_file_new(&eddc); | ||
280 | |||
281 | eddc.version = EET_DATA_DESCRIPTOR_CLASS_VERSION; | ||
282 | eddc.func.type_get = _union_type_get; | ||
283 | eddc.func.type_set = _union_type_set; | ||
284 | _union_unified_descriptor = eet_data_descriptor_file_new(&eddc); | ||
285 | |||
286 | EET_DATA_DESCRIPTOR_ADD_MAPPING( | ||
287 | _union_unified_descriptor, "ST1", _struct_1_descriptor); | ||
288 | EET_DATA_DESCRIPTOR_ADD_MAPPING( | ||
289 | _union_unified_descriptor, "ST2", _struct_2_descriptor); | ||
290 | EET_DATA_DESCRIPTOR_ADD_MAPPING( | ||
291 | _union_unified_descriptor, "ST3", _struct_3_descriptor); | ||
292 | |||
293 | EET_DATA_DESCRIPTOR_ADD_UNION( | ||
294 | _union_descriptor, Example_Union, "u", u, type, | ||
295 | _union_unified_descriptor); | ||
296 | |||
297 | EET_DATA_DESCRIPTOR_ADD_LIST( | ||
298 | _lists_descriptor, Example_Lists, "union_list", union_list, | ||
299 | _union_descriptor); | ||
300 | |||
301 | /* for variant */ | ||
302 | EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Example_Variant); | ||
303 | _variant_descriptor = eet_data_descriptor_file_new(&eddc); | ||
304 | |||
305 | eddc.version = EET_DATA_DESCRIPTOR_CLASS_VERSION; | ||
306 | eddc.func.type_get = _variant_type_get; | ||
307 | eddc.func.type_set = _variant_type_set; | ||
308 | _variant_unified_descriptor = eet_data_descriptor_stream_new(&eddc); | ||
309 | |||
310 | EET_DATA_DESCRIPTOR_ADD_MAPPING( | ||
311 | _variant_unified_descriptor, "ST1", _struct_1_descriptor); | ||
312 | EET_DATA_DESCRIPTOR_ADD_MAPPING( | ||
313 | _variant_unified_descriptor, "ST2", _struct_2_descriptor); | ||
314 | EET_DATA_DESCRIPTOR_ADD_MAPPING( | ||
315 | _variant_unified_descriptor, "ST3", _struct_3_descriptor); | ||
316 | |||
317 | EET_DATA_DESCRIPTOR_ADD_VARIANT( | ||
318 | _variant_descriptor, Example_Variant, "data", data, t, | ||
319 | _variant_unified_descriptor); | ||
320 | |||
321 | EET_DATA_DESCRIPTOR_ADD_LIST( | ||
322 | _lists_descriptor, Example_Lists, "variant_list", variant_list, | ||
323 | _variant_descriptor); | ||
324 | } /* _data_descriptors_init */ | ||
325 | |||
326 | static void | ||
327 | _data_descriptors_shutdown(void) | ||
328 | { | ||
329 | eet_data_descriptor_free(_lists_descriptor); | ||
330 | eet_data_descriptor_free(_struct_1_descriptor); | ||
331 | eet_data_descriptor_free(_struct_2_descriptor); | ||
332 | eet_data_descriptor_free(_struct_3_descriptor); | ||
333 | eet_data_descriptor_free(_union_descriptor); | ||
334 | eet_data_descriptor_free(_variant_descriptor); | ||
335 | eet_data_descriptor_free(_union_unified_descriptor); | ||
336 | eet_data_descriptor_free(_variant_unified_descriptor); | ||
337 | } /* _data_descriptors_shutdown */ | ||
338 | |||
339 | /* need to check if the pointer came from mmap()ed area in | ||
340 | * eet_dictionary or it was allocated with eina_stringshare_add() | ||
341 | */ | ||
342 | static void | ||
343 | _string_free(const char *str) | ||
344 | { | ||
345 | if (!str) | ||
346 | return; | ||
347 | |||
348 | if ((_cache_dict) && (eet_dictionary_string_check(_cache_dict, str))) | ||
349 | return; | ||
350 | |||
351 | eina_stringshare_del(str); | ||
352 | } /* _string_free */ | ||
353 | |||
354 | static Example_Union * | ||
355 | _union_1_new(const char *v1, | ||
356 | const char *v2, | ||
357 | const char *v3) | ||
358 | { | ||
359 | Example_Union *un = calloc(1, sizeof(Example_Union)); | ||
360 | if (!un) | ||
361 | { | ||
362 | fprintf( | ||
363 | stderr, "ERROR: could not allocate an Example_Union struct.\n"); | ||
364 | return NULL; | ||
365 | } | ||
366 | |||
367 | un->type = EET_STRUCT1; | ||
368 | _st1_set(&(un->u.st1), atof(v1), atoi(v2), eina_stringshare_add(v3)); | ||
369 | |||
370 | return un; | ||
371 | } | ||
372 | |||
373 | static Example_Union * | ||
374 | _union_2_new(const char *v1, | ||
375 | const char *v2) | ||
376 | { | ||
377 | Example_Union *un = calloc(1, sizeof(Example_Union)); | ||
378 | if (!un) | ||
379 | { | ||
380 | fprintf( | ||
381 | stderr, "ERROR: could not allocate an Example_Union struct.\n"); | ||
382 | return NULL; | ||
383 | } | ||
384 | |||
385 | un->type = EET_STRUCT2; | ||
386 | _st2_set(&(un->u.st2), atoi(v1), atoi(v2)); | ||
387 | |||
388 | return un; | ||
389 | } | ||
390 | |||
391 | static Example_Union * | ||
392 | _union_3_new(const char *v1) | ||
393 | { | ||
394 | Example_Union *un = calloc(1, sizeof(Example_Union)); | ||
395 | if (!un) | ||
396 | { | ||
397 | fprintf( | ||
398 | stderr, "ERROR: could not allocate an Example_Union struct.\n"); | ||
399 | return NULL; | ||
400 | } | ||
401 | |||
402 | un->type = EET_STRUCT3; | ||
403 | _st3_set(&(un->u.st3), atoi(v1)); | ||
404 | |||
405 | return un; | ||
406 | } | ||
407 | |||
408 | static Example_Variant * | ||
409 | _variant_1_new(const char *v1, | ||
410 | const char *v2, | ||
411 | const char *v3) | ||
412 | { | ||
413 | Example_Struct1 *st1; | ||
414 | Example_Variant *va = calloc(1, sizeof(Example_Variant)); | ||
415 | if (!va) | ||
416 | { | ||
417 | fprintf( | ||
418 | stderr, "ERROR: could not allocate an Example_Variant struct.\n"); | ||
419 | return NULL; | ||
420 | } | ||
421 | |||
422 | va = calloc(1, sizeof (Example_Variant)); | ||
423 | va->t.type = eet_mapping[0].name; | ||
424 | st1 = calloc(1, sizeof (Example_Struct1)); | ||
425 | _st1_set(st1, atof(v1), atoi(v2), eina_stringshare_add(v3)); | ||
426 | va->data = st1; | ||
427 | |||
428 | return va; | ||
429 | } | ||
430 | |||
431 | static Example_Variant * | ||
432 | _variant_2_new(const char *v1, | ||
433 | const char *v2) | ||
434 | { | ||
435 | printf("varinant 2 new\n"); | ||
436 | |||
437 | Example_Struct2 *st2; | ||
438 | Example_Variant *va = calloc(1, sizeof(Example_Variant)); | ||
439 | if (!va) | ||
440 | { | ||
441 | fprintf( | ||
442 | stderr, "ERROR: could not allocate an Example_Variant struct.\n"); | ||
443 | return NULL; | ||
444 | } | ||
445 | |||
446 | va = calloc(1, sizeof (Example_Variant)); | ||
447 | |||
448 | va->t.type = eet_mapping[1].name; | ||
449 | |||
450 | printf("type gets %s\n", va->t.type); | ||
451 | |||
452 | st2 = calloc(1, sizeof (Example_Struct2)); | ||
453 | _st2_set(st2, atoi(v1), atoi(v2)); | ||
454 | va->data = st2; | ||
455 | |||
456 | return va; | ||
457 | } | ||
458 | |||
459 | static Example_Variant * | ||
460 | _variant_3_new(const char *v1) | ||
461 | { | ||
462 | Example_Struct3 *st3; | ||
463 | Example_Variant *va = calloc(1, sizeof(Example_Variant)); | ||
464 | if (!va) | ||
465 | { | ||
466 | fprintf( | ||
467 | stderr, "ERROR: could not allocate an Example_Variant struct.\n"); | ||
468 | return NULL; | ||
469 | } | ||
470 | |||
471 | va = calloc(1, sizeof (Example_Variant)); | ||
472 | va->t.type = eet_mapping[2].name; | ||
473 | st3 = calloc(1, sizeof (Example_Struct3)); | ||
474 | _st3_set(st3, atoi(v1)); | ||
475 | va->data = st3; | ||
476 | |||
477 | return va; | ||
478 | } | ||
479 | |||
480 | static Example_Lists * | ||
481 | _data_new(void) | ||
482 | { | ||
483 | Example_Lists *example_lists = calloc(1, sizeof(Example_Lists)); | ||
484 | if (!example_lists) | ||
485 | { | ||
486 | fprintf(stderr, "ERROR: could not allocate a Example_Lists struct.\n"); | ||
487 | return NULL; | ||
488 | } | ||
489 | |||
490 | return example_lists; | ||
491 | } /* _data_new */ | ||
492 | |||
493 | static void | ||
494 | _union_free(Example_Union *un) | ||
495 | { | ||
496 | if (un->type == EET_STRUCT1) | ||
497 | { | ||
498 | Example_Struct1 *st1 = &(un->u.st1); | ||
499 | _string_free(st1->s1); | ||
500 | } | ||
501 | |||
502 | free(un); | ||
503 | } | ||
504 | |||
505 | static void | ||
506 | _variant_free(Example_Variant *va) | ||
507 | { | ||
508 | if (!strcmp(va->t.type, eet_mapping[0].name)) | ||
509 | { | ||
510 | Example_Struct1 *st1 = va->data; | ||
511 | _string_free(st1->s1); | ||
512 | } | ||
513 | |||
514 | free(va->data); | ||
515 | free(va); | ||
516 | } | ||
517 | |||
518 | static void | ||
519 | _data_free(Example_Lists *cache) | ||
520 | { | ||
521 | Example_Union *un; | ||
522 | Example_Variant *va; | ||
523 | |||
524 | EINA_LIST_FREE(cache->union_list, un) | ||
525 | _union_free(un); | ||
526 | |||
527 | EINA_LIST_FREE(cache->variant_list, va) | ||
528 | _variant_free(va); | ||
529 | |||
530 | free(cache); | ||
531 | } /* _data_free */ | ||
532 | |||
533 | static Example_Lists * | ||
534 | _data_load(const char *filename) | ||
535 | { | ||
536 | Example_Lists *data; | ||
537 | Eet_File *ef = eet_open(filename, EET_FILE_MODE_READ); | ||
538 | if (!ef) | ||
539 | { | ||
540 | fprintf(stderr, "ERROR: could not open '%s' for read\n", filename); | ||
541 | return NULL; | ||
542 | } | ||
543 | |||
544 | data = eet_data_read(ef, _lists_descriptor, CACHE_FILE_ENTRY); | ||
545 | if (!data) | ||
546 | { | ||
547 | eet_close(ef); | ||
548 | return NULL; | ||
549 | } | ||
550 | |||
551 | if (_cache_file) | ||
552 | eet_close(_cache_file); | ||
553 | |||
554 | _cache_file = ef; | ||
555 | _cache_dict = eet_dictionary_get(ef); | ||
556 | |||
557 | return data; | ||
558 | } /* _data_load */ | ||
559 | |||
560 | static Eina_Bool | ||
561 | _data_save(const Example_Lists *cache, | ||
562 | const char *filename) | ||
563 | { | ||
564 | char tmp[PATH_MAX]; | ||
565 | Eet_File *ef; | ||
566 | Eina_Bool ret; | ||
567 | unsigned int i, len; | ||
568 | struct stat st; | ||
569 | |||
570 | len = eina_strlcpy(tmp, filename, sizeof(tmp)); | ||
571 | if (len + 12 >= (int)sizeof(tmp)) | ||
572 | { | ||
573 | fprintf(stderr, "ERROR: file name is too big: %s\n", filename); | ||
574 | return EINA_FALSE; | ||
575 | } | ||
576 | |||
577 | i = 0; | ||
578 | do | ||
579 | { | ||
580 | snprintf(tmp + len, 12, ".%u", i); | ||
581 | i++; | ||
582 | } | ||
583 | while (stat(tmp, &st) == 0); | ||
584 | |||
585 | ef = eet_open(tmp, EET_FILE_MODE_WRITE); | ||
586 | if (!ef) | ||
587 | { | ||
588 | fprintf(stderr, "ERROR: could not open '%s' for write\n", tmp); | ||
589 | return EINA_FALSE; | ||
590 | } | ||
591 | |||
592 | ret = eet_data_write | ||
593 | (ef, _lists_descriptor, CACHE_FILE_ENTRY, cache, EINA_TRUE); | ||
594 | |||
595 | eet_close(ef); | ||
596 | |||
597 | if (ret) | ||
598 | { | ||
599 | unlink(filename); | ||
600 | rename(tmp, filename); | ||
601 | } | ||
602 | |||
603 | return ret; | ||
604 | } /* _data_save */ | ||
605 | |||
606 | static void | ||
607 | _print_union(const Example_Union *un) | ||
608 | { | ||
609 | printf("\t | type: %s'\n", eet_mapping[un->type - 1].name); | ||
610 | |||
611 | switch (un->type) | ||
612 | { | ||
613 | case EET_STRUCT1: | ||
614 | printf("\t\t val1: %f\n", un->u.st1.val1); | ||
615 | printf("\t\t stuff: %d\n", un->u.st1.stuff); | ||
616 | printf("\t\t s1: %s\n", un->u.st1.s1); | ||
617 | break; | ||
618 | |||
619 | case EET_STRUCT2: | ||
620 | printf("\t\t val1: %i\n", un->u.st2.b1); | ||
621 | printf("\t\t stuff: %lli\n", un->u.st2.v1); | ||
622 | break; | ||
623 | |||
624 | case EET_STRUCT3: | ||
625 | printf("\t\t val1: %i\n", un->u.st3.body); | ||
626 | break; | ||
627 | |||
628 | default: | ||
629 | return; | ||
630 | } | ||
631 | } | ||
632 | |||
633 | static void | ||
634 | _print_variant(const Example_Variant *va) | ||
635 | { | ||
636 | printf("\t | type: %s'\n", va->t.type); | ||
637 | |||
638 | switch (va->t.type[2]) | ||
639 | { | ||
640 | case '1': | ||
641 | { | ||
642 | Example_Struct1 *st1 = va->data; | ||
643 | |||
644 | printf("\t\t val1: %f\n", st1->val1); | ||
645 | printf("\t\t stuff: %d\n", st1->stuff); | ||
646 | printf("\t\t s1: %s\n", st1->s1); | ||
647 | } | ||
648 | break; | ||
649 | |||
650 | case '2': | ||
651 | { | ||
652 | Example_Struct2 *st2 = va->data; | ||
653 | |||
654 | printf("\t\t val1: %i\n", st2->b1); | ||
655 | printf("\t\t stuff: %lli\n", st2->v1); | ||
656 | } | ||
657 | break; | ||
658 | |||
659 | case '3': | ||
660 | { | ||
661 | Example_Struct3 *st3 = va->data; | ||
662 | |||
663 | printf("\t\t val1: %i\n", st3->body); | ||
664 | } | ||
665 | break; | ||
666 | |||
667 | default: | ||
668 | return; | ||
669 | } | ||
670 | } | ||
671 | |||
672 | int | ||
673 | main(int argc, | ||
674 | char *argv[]) | ||
675 | { | ||
676 | Example_Lists *data_lists; | ||
677 | int ret = 0; | ||
678 | |||
679 | if (argc < 3) | ||
680 | { | ||
681 | fprintf(stderr, | ||
682 | "Usage:\n\t%s <input> <output> [action action-params]\n\n" | ||
683 | "where actions and their parameters are:\n" | ||
684 | "\tunion <type> [fields]\n" | ||
685 | "\tvariant <type> [fields]\n" | ||
686 | "\n", | ||
687 | argv[0]); | ||
688 | return -1; | ||
689 | } | ||
690 | |||
691 | eina_init(); | ||
692 | eet_init(); | ||
693 | _data_descriptors_init(); | ||
694 | |||
695 | data_lists = _data_load(argv[1]); | ||
696 | if (!data_lists) | ||
697 | { | ||
698 | printf("Creating new data lists.\n"); | ||
699 | data_lists = _data_new(); | ||
700 | if (!data_lists) | ||
701 | { | ||
702 | ret = -2; | ||
703 | goto end; | ||
704 | } | ||
705 | } | ||
706 | |||
707 | if (argc > 3) | ||
708 | { | ||
709 | if (strcmp(argv[3], "union") == 0) | ||
710 | { | ||
711 | if (argc > 4) | ||
712 | { | ||
713 | int type = atoi(argv[4]); | ||
714 | Example_Union *un; | ||
715 | |||
716 | if (type < EET_STRUCT1 || type > EET_STRUCT3) | ||
717 | { | ||
718 | fprintf(stderr, | ||
719 | "ERROR: invalid type parameter (%s).\n", | ||
720 | argv[4]); | ||
721 | goto cont; | ||
722 | } | ||
723 | |||
724 | switch (type) | ||
725 | { | ||
726 | case 1: | ||
727 | if (argc != 8) | ||
728 | { | ||
729 | fprintf( | ||
730 | stderr, "ERROR: wrong number of parameters" | ||
731 | " (%d).\n", argc); | ||
732 | goto cont; | ||
733 | } | ||
734 | |||
735 | un = _union_1_new( | ||
736 | argv[5], argv[6], argv[7]); | ||
737 | if (!un) | ||
738 | { | ||
739 | fprintf( | ||
740 | stderr, "ERROR: could not create the " | ||
741 | "requested union.\n"); | ||
742 | goto cont; | ||
743 | } | ||
744 | data_lists->union_list = | ||
745 | eina_list_append(data_lists->union_list, un); | ||
746 | break; | ||
747 | |||
748 | case 2: | ||
749 | if (argc != 7) | ||
750 | { | ||
751 | fprintf( | ||
752 | stderr, "ERROR: wrong number of parameters" | ||
753 | " (%d).\n", argc); | ||
754 | goto cont; | ||
755 | } | ||
756 | |||
757 | un = _union_2_new(argv[5], argv[6]); | ||
758 | if (!un) | ||
759 | { | ||
760 | fprintf( | ||
761 | stderr, "ERROR: could not create the " | ||
762 | "requested union.\n"); | ||
763 | goto cont; | ||
764 | } | ||
765 | data_lists->union_list = | ||
766 | eina_list_append(data_lists->union_list, un); | ||
767 | break; | ||
768 | |||
769 | case 3: | ||
770 | if (argc != 6) | ||
771 | { | ||
772 | fprintf( | ||
773 | stderr, "ERROR: wrong number of parameters" | ||
774 | " (%d).\n", argc); | ||
775 | goto cont; | ||
776 | } | ||
777 | |||
778 | un = _union_3_new(argv[5]); | ||
779 | if (!un) | ||
780 | { | ||
781 | fprintf( | ||
782 | stderr, "ERROR: could not create the " | ||
783 | "requested union.\n"); | ||
784 | goto cont; | ||
785 | } | ||
786 | data_lists->union_list = | ||
787 | eina_list_append(data_lists->union_list, un); | ||
788 | break; | ||
789 | |||
790 | default: | ||
791 | fprintf( | ||
792 | stderr, "ERROR: bad type of of struct passed\n"); | ||
793 | goto cont; | ||
794 | } | ||
795 | } | ||
796 | else | ||
797 | fprintf(stderr, | ||
798 | "ERROR: wrong number of parameters (%d).\n", | ||
799 | argc); | ||
800 | } | ||
801 | else if (strcmp(argv[3], "variant") == 0) | ||
802 | { | ||
803 | if (argc > 4) | ||
804 | { | ||
805 | int type = atoi(argv[4]); | ||
806 | Example_Variant *va; | ||
807 | |||
808 | if (type < EET_STRUCT1 || type > EET_STRUCT3) | ||
809 | { | ||
810 | fprintf(stderr, | ||
811 | "ERROR: invalid type parameter (%s).\n", | ||
812 | argv[4]); | ||
813 | goto cont; | ||
814 | } | ||
815 | |||
816 | switch (type) | ||
817 | { | ||
818 | case 1: | ||
819 | if (argc != 8) | ||
820 | { | ||
821 | fprintf( | ||
822 | stderr, "ERROR: wrong number of parameters" | ||
823 | " (%d).\n", argc); | ||
824 | goto cont; | ||
825 | } | ||
826 | |||
827 | va = _variant_1_new( | ||
828 | argv[5], argv[6], argv[7]); | ||
829 | if (!va) | ||
830 | { | ||
831 | fprintf( | ||
832 | stderr, "ERROR: could not create the " | ||
833 | "requested variant.\n"); | ||
834 | goto cont; | ||
835 | } | ||
836 | data_lists->variant_list = | ||
837 | eina_list_append(data_lists->variant_list, va); | ||
838 | break; | ||
839 | |||
840 | case 2: | ||
841 | if (argc != 7) | ||
842 | { | ||
843 | fprintf( | ||
844 | stderr, "ERROR: wrong number of parameters" | ||
845 | " (%d).\n", argc); | ||
846 | goto cont; | ||
847 | } | ||
848 | |||
849 | va = _variant_2_new(argv[5], argv[6]); | ||
850 | if (!va) | ||
851 | { | ||
852 | fprintf( | ||
853 | stderr, "ERROR: could not create the " | ||
854 | "requested variant.\n"); | ||
855 | goto cont; | ||
856 | } | ||
857 | data_lists->variant_list = | ||
858 | eina_list_append(data_lists->variant_list, va); | ||
859 | break; | ||
860 | |||
861 | case 3: | ||
862 | if (argc != 6) | ||
863 | { | ||
864 | fprintf( | ||
865 | stderr, "ERROR: wrong number of parameters" | ||
866 | " (%d).\n", argc); | ||
867 | goto cont; | ||
868 | } | ||
869 | |||
870 | va = _variant_3_new(argv[5]); | ||
871 | if (!va) | ||
872 | { | ||
873 | fprintf( | ||
874 | stderr, "ERROR: could not create the " | ||
875 | "requested variant.\n"); | ||
876 | goto cont; | ||
877 | } | ||
878 | data_lists->variant_list = | ||
879 | eina_list_append(data_lists->variant_list, va); | ||
880 | break; | ||
881 | |||
882 | default: | ||
883 | fprintf( | ||
884 | stderr, "ERROR: bad type of of struct passed\n"); | ||
885 | goto cont; | ||
886 | } | ||
887 | } | ||
888 | else | ||
889 | fprintf(stderr, | ||
890 | "ERROR: wrong number of parameters (%d).\n", | ||
891 | argc); | ||
892 | } | ||
893 | else | ||
894 | fprintf(stderr, "ERROR: unknown action '%s'\n", argv[3]); | ||
895 | } | ||
896 | |||
897 | cont: | ||
898 | printf("Cached data:\n"); | ||
899 | |||
900 | printf("\tstats: unions=%u, variants=%u\n", | ||
901 | eina_list_count(data_lists->union_list), | ||
902 | eina_list_count(data_lists->variant_list)); | ||
903 | |||
904 | if (eina_list_count(data_lists->union_list)) | ||
905 | { | ||
906 | const Eina_List *l; | ||
907 | const Example_Union *un; | ||
908 | printf("\t * union list:\n"); | ||
909 | |||
910 | EINA_LIST_FOREACH(data_lists->union_list, l, un) | ||
911 | { | ||
912 | _print_union(un); | ||
913 | } | ||
914 | } | ||
915 | |||
916 | if (eina_list_count(data_lists->variant_list)) | ||
917 | { | ||
918 | const Eina_List *l; | ||
919 | const Example_Variant *un; | ||
920 | printf("\t * variant list:\n"); | ||
921 | |||
922 | EINA_LIST_FOREACH(data_lists->variant_list, l, un) | ||
923 | { | ||
924 | _print_variant(un); | ||
925 | } | ||
926 | } | ||
927 | |||
928 | printf("\n"); | ||
929 | |||
930 | if (!_data_save(data_lists, argv[2])) | ||
931 | ret = -3; | ||
932 | |||
933 | _data_free(data_lists); | ||
934 | |||
935 | end: | ||
936 | if (_cache_file) | ||
937 | eet_close(_cache_file); | ||
938 | _data_descriptors_shutdown(); | ||
939 | eet_shutdown(); | ||
940 | eina_shutdown(); | ||
941 | |||
942 | return ret; | ||
943 | } /* main */ | ||
944 | |||
diff --git a/libraries/eet/src/examples/eet-data-nested.c b/libraries/eet/src/examples/eet-data-nested.c deleted file mode 100644 index a6b0e12..0000000 --- a/libraries/eet/src/examples/eet-data-nested.c +++ /dev/null | |||
@@ -1,272 +0,0 @@ | |||
1 | /* | ||
2 | * build: gcc -o eet_data_nested eet-data-nested.c `pkg-config --cflags --libs eet eina` | ||
3 | */ | ||
4 | #include <Eina.h> | ||
5 | #include <Eet.h> | ||
6 | #include <stdio.h> | ||
7 | #include <limits.h> | ||
8 | #include <sys/types.h> | ||
9 | #include <sys/stat.h> | ||
10 | #include <unistd.h> | ||
11 | |||
12 | // The struct that will be loaded and saved. | ||
13 | // note that only the members described in the eet_data_descriptor | ||
14 | // will be automatically handled. The other members will have their | ||
15 | // space reserved and zeroed (as it uses calloc()), but not | ||
16 | // saved or loaded from eet files. | ||
17 | typedef struct | ||
18 | { | ||
19 | unsigned int version; // it is recommended to use versioned configuration! | ||
20 | const char *name; | ||
21 | int id; | ||
22 | int not_saved_value; // example of not saved data inside! | ||
23 | Eina_Bool enabled; | ||
24 | Eina_List *subs; | ||
25 | } My_Conf_Type; | ||
26 | |||
27 | typedef struct | ||
28 | { | ||
29 | const char *server; | ||
30 | int port; | ||
31 | } My_Conf_Subtype; | ||
32 | |||
33 | // string that represents the entry in eet file, you might like to have | ||
34 | // different profiles or so in the same file, this is possible with | ||
35 | // different strings | ||
36 | static const char MY_CONF_FILE_ENTRY[] = "config"; | ||
37 | |||
38 | // keep the descriptor static global, so it can be | ||
39 | // shared by different functions (load/save) of this and only this | ||
40 | // file. | ||
41 | static Eet_Data_Descriptor *_my_conf_descriptor; | ||
42 | static Eet_Data_Descriptor *_my_conf_sub_descriptor; | ||
43 | |||
44 | static void | ||
45 | _my_conf_descriptor_init(void) | ||
46 | { | ||
47 | Eet_Data_Descriptor_Class eddc; | ||
48 | |||
49 | // The class describe the functions to use to create the type and its | ||
50 | // full allocated size. | ||
51 | // | ||
52 | // Eina types are very convenient, so use them to create the descriptor, | ||
53 | // so we get eina_list, eina_hash and eina_stringshare automatically! | ||
54 | // | ||
55 | // The STREAM variant is better for configuration files as the values | ||
56 | // will likely change a lot. | ||
57 | // | ||
58 | // The other variant, FILE, is good for caches and things that are just | ||
59 | // appended, but needs to take care when changing strings and files must | ||
60 | // be kept open so mmap()ed strings will be kept alive. | ||
61 | EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, My_Conf_Type); | ||
62 | _my_conf_descriptor = eet_data_descriptor_stream_new(&eddc); | ||
63 | |||
64 | EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, My_Conf_Subtype); | ||
65 | _my_conf_sub_descriptor = eet_data_descriptor_stream_new(&eddc); | ||
66 | |||
67 | // Describe the members to be saved: | ||
68 | // Use a temporary macro so we don't type a lot, also avoid errors: | ||
69 | #define MY_CONF_ADD_BASIC(member, eet_type) \ | ||
70 | EET_DATA_DESCRIPTOR_ADD_BASIC \ | ||
71 | (_my_conf_descriptor, My_Conf_Type, # member, member, eet_type) | ||
72 | #define MY_CONF_SUB_ADD_BASIC(member, eet_type) \ | ||
73 | EET_DATA_DESCRIPTOR_ADD_BASIC \ | ||
74 | (_my_conf_sub_descriptor, My_Conf_Subtype, # member, member, eet_type) | ||
75 | |||
76 | MY_CONF_SUB_ADD_BASIC(server, EET_T_STRING); | ||
77 | MY_CONF_SUB_ADD_BASIC(port, EET_T_INT); | ||
78 | |||
79 | MY_CONF_ADD_BASIC(version, EET_T_UINT); | ||
80 | MY_CONF_ADD_BASIC(name, EET_T_STRING); | ||
81 | MY_CONF_ADD_BASIC(id, EET_T_INT); | ||
82 | MY_CONF_ADD_BASIC(enabled, EET_T_UCHAR); | ||
83 | |||
84 | // And add the sub descriptor as a linked list at 'subs' in the main struct | ||
85 | EET_DATA_DESCRIPTOR_ADD_LIST | ||
86 | (_my_conf_descriptor, My_Conf_Type, "subs", subs, _my_conf_sub_descriptor); | ||
87 | |||
88 | #undef MY_CONF_ADD_BASIC | ||
89 | #undef MY_CONF_SUB_ADD_BASIC | ||
90 | } /* _my_conf_descriptor_init */ | ||
91 | |||
92 | static void | ||
93 | _my_conf_descriptor_shutdown(void) | ||
94 | { | ||
95 | eet_data_descriptor_free(_my_conf_sub_descriptor); | ||
96 | eet_data_descriptor_free(_my_conf_descriptor); | ||
97 | } /* _my_conf_descriptor_shutdown */ | ||
98 | |||
99 | static My_Conf_Type * | ||
100 | _my_conf_new(void) | ||
101 | { | ||
102 | My_Conf_Type *my_conf = calloc(1, sizeof(My_Conf_Type)); | ||
103 | My_Conf_Subtype *sub; | ||
104 | if (!my_conf) | ||
105 | { | ||
106 | fprintf(stderr, "ERROR: could not calloc My_Conf_Type\n"); | ||
107 | return NULL; | ||
108 | } | ||
109 | |||
110 | my_conf->version = 0x112233; | ||
111 | my_conf->enabled = EINA_TRUE; | ||
112 | |||
113 | sub = calloc(1, sizeof(My_Conf_Subtype)); | ||
114 | if (sub) | ||
115 | { | ||
116 | sub->server = eina_stringshare_add("my-server.com"); | ||
117 | sub->port = 1234; | ||
118 | my_conf->subs = eina_list_append(my_conf->subs, sub); | ||
119 | } | ||
120 | |||
121 | return my_conf; | ||
122 | } /* _my_conf_new */ | ||
123 | |||
124 | static void | ||
125 | _my_conf_free(My_Conf_Type *my_conf) | ||
126 | { | ||
127 | My_Conf_Subtype *sub; | ||
128 | EINA_LIST_FREE(my_conf->subs, sub) | ||
129 | { | ||
130 | eina_stringshare_del(sub->server); | ||
131 | free(sub); | ||
132 | } | ||
133 | |||
134 | eina_stringshare_del(my_conf->name); | ||
135 | free(my_conf); | ||
136 | } /* _my_conf_free */ | ||
137 | |||
138 | static My_Conf_Type * | ||
139 | _my_conf_load(const char *filename) | ||
140 | { | ||
141 | My_Conf_Type *my_conf; | ||
142 | Eet_File *ef = eet_open(filename, EET_FILE_MODE_READ); | ||
143 | if (!ef) | ||
144 | { | ||
145 | fprintf(stderr, "ERROR: could not open '%s' for read\n", filename); | ||
146 | return NULL; | ||
147 | } | ||
148 | |||
149 | my_conf = eet_data_read(ef, _my_conf_descriptor, MY_CONF_FILE_ENTRY); | ||
150 | if (!my_conf) | ||
151 | goto end; | ||
152 | |||
153 | if (my_conf->version < 0x112233) | ||
154 | { | ||
155 | fprintf(stderr, | ||
156 | "WARNING: version %#x was too old, upgrading it to %#x\n", | ||
157 | my_conf->version, 0x112233); | ||
158 | |||
159 | my_conf->version = 0x112233; | ||
160 | my_conf->enabled = EINA_TRUE; | ||
161 | } | ||
162 | |||
163 | end: | ||
164 | eet_close(ef); | ||
165 | return my_conf; | ||
166 | } /* _my_conf_load */ | ||
167 | |||
168 | static Eina_Bool | ||
169 | _my_conf_save(const My_Conf_Type *my_conf, | ||
170 | const char *filename) | ||
171 | { | ||
172 | char tmp[PATH_MAX]; | ||
173 | Eet_File *ef; | ||
174 | Eina_Bool ret; | ||
175 | unsigned int i, len; | ||
176 | struct stat st; | ||
177 | |||
178 | len = eina_strlcpy(tmp, filename, sizeof(tmp)); | ||
179 | if (len + 12 >= (int)sizeof(tmp)) | ||
180 | { | ||
181 | fprintf(stderr, "ERROR: file name is too big: %s\n", filename); | ||
182 | return EINA_FALSE; | ||
183 | } | ||
184 | |||
185 | i = 0; | ||
186 | do | ||
187 | { | ||
188 | snprintf(tmp + len, 12, ".%u", i); | ||
189 | i++; | ||
190 | } | ||
191 | while (stat(tmp, &st) == 0); | ||
192 | |||
193 | ef = eet_open(tmp, EET_FILE_MODE_WRITE); | ||
194 | if (!ef) | ||
195 | { | ||
196 | fprintf(stderr, "ERROR: could not open '%s' for write\n", tmp); | ||
197 | return EINA_FALSE; | ||
198 | } | ||
199 | |||
200 | ret = eet_data_write | ||
201 | (ef, _my_conf_descriptor, MY_CONF_FILE_ENTRY, my_conf, EINA_TRUE); | ||
202 | eet_close(ef); | ||
203 | |||
204 | if (ret) | ||
205 | { | ||
206 | unlink(filename); | ||
207 | rename(tmp, filename); | ||
208 | } | ||
209 | |||
210 | return ret; | ||
211 | } /* _my_conf_save */ | ||
212 | |||
213 | int | ||
214 | main(int argc, | ||
215 | char *argv[]) | ||
216 | { | ||
217 | My_Conf_Type *my_conf; | ||
218 | const My_Conf_Subtype *sub; | ||
219 | const Eina_List *l; | ||
220 | int ret = 0; | ||
221 | |||
222 | if (argc != 3) | ||
223 | { | ||
224 | fprintf(stderr, "Usage:\n\t%s <input> <output>\n\n", argv[0]); | ||
225 | return -1; | ||
226 | } | ||
227 | |||
228 | eina_init(); | ||
229 | eet_init(); | ||
230 | _my_conf_descriptor_init(); | ||
231 | |||
232 | my_conf = _my_conf_load(argv[1]); | ||
233 | if (!my_conf) | ||
234 | { | ||
235 | printf("creating new configuration.\n"); | ||
236 | my_conf = _my_conf_new(); | ||
237 | if (!my_conf) | ||
238 | { | ||
239 | ret = -2; | ||
240 | goto end; | ||
241 | } | ||
242 | } | ||
243 | |||
244 | printf("My_Conf_Type:\n" | ||
245 | "\tversion: %#x\n" | ||
246 | "\tname...: '%s'\n" | ||
247 | "\tid.....: %d\n" | ||
248 | "\tenabled: %hhu\n" | ||
249 | "\tsubs...:\n", | ||
250 | my_conf->version, | ||
251 | my_conf->name ? my_conf->name : "", | ||
252 | my_conf->id, | ||
253 | my_conf->enabled); | ||
254 | |||
255 | EINA_LIST_FOREACH(my_conf->subs, l, sub) | ||
256 | printf("\t\tserver: '%s', port: %d\n", | ||
257 | sub->server ? sub->server : "", | ||
258 | sub->port); | ||
259 | |||
260 | if (!_my_conf_save(my_conf, argv[2])) | ||
261 | ret = -3; | ||
262 | |||
263 | _my_conf_free(my_conf); | ||
264 | |||
265 | end: | ||
266 | _my_conf_descriptor_shutdown(); | ||
267 | eet_shutdown(); | ||
268 | eina_shutdown(); | ||
269 | |||
270 | return ret; | ||
271 | } /* main */ | ||
272 | |||
diff --git a/libraries/eet/src/examples/eet-data-simple.c b/libraries/eet/src/examples/eet-data-simple.c deleted file mode 100644 index 1951fc0..0000000 --- a/libraries/eet/src/examples/eet-data-simple.c +++ /dev/null | |||
@@ -1,224 +0,0 @@ | |||
1 | /* | ||
2 | * build: gcc -o eet_data_simple eet-data-simple.c `pkg-config --cflags --libs eet eina` | ||
3 | */ | ||
4 | #include <Eina.h> | ||
5 | #include <Eet.h> | ||
6 | #include <stdio.h> | ||
7 | #include <limits.h> | ||
8 | #include <sys/types.h> | ||
9 | #include <sys/stat.h> | ||
10 | #include <unistd.h> | ||
11 | |||
12 | // The struct that will be loaded and saved. | ||
13 | // note that only the members described in the eet_data_descriptor | ||
14 | // will be automatically handled. The other members will have their | ||
15 | // space reserved and zeroed (as it uses calloc()), but not | ||
16 | // saved or loaded from eet files. | ||
17 | typedef struct | ||
18 | { | ||
19 | unsigned int version; // it is recommended to use versioned configuration! | ||
20 | const char *name; | ||
21 | int id; | ||
22 | int not_saved_value; // example of not saved data inside! | ||
23 | Eina_Bool enabled; | ||
24 | } My_Conf_Type; | ||
25 | |||
26 | // string that represents the entry in eet file, you might like to have | ||
27 | // different profiles or so in the same file, this is possible with | ||
28 | // different strings | ||
29 | static const char MY_CONF_FILE_ENTRY[] = "config"; | ||
30 | |||
31 | // keep the descriptor static global, so it can be | ||
32 | // shared by different functions (load/save) of this and only this | ||
33 | // file. | ||
34 | static Eet_Data_Descriptor *_my_conf_descriptor; | ||
35 | |||
36 | static void | ||
37 | _my_conf_descriptor_init(void) | ||
38 | { | ||
39 | Eet_Data_Descriptor_Class eddc; | ||
40 | |||
41 | // The class describe the functions to use to create the type and its | ||
42 | // full allocated size. | ||
43 | // | ||
44 | // Eina types are very convenient, so use them to create the descriptor, | ||
45 | // so we get eina_list, eina_hash and eina_stringshare automatically! | ||
46 | // | ||
47 | // The STREAM variant is better for configuration files as the values | ||
48 | // will likely change a lot. | ||
49 | // | ||
50 | // The other variant, FILE, is good for caches and things that are just | ||
51 | // appended, but needs to take care when changing strings and files must | ||
52 | // be kept open so mmap()ed strings will be kept alive. | ||
53 | EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, My_Conf_Type); | ||
54 | _my_conf_descriptor = eet_data_descriptor_stream_new(&eddc); | ||
55 | |||
56 | // Describe the members to be saved: | ||
57 | // Use a temporary macro so we don't type a lot, also avoid errors: | ||
58 | #define MY_CONF_ADD_BASIC(member, eet_type) \ | ||
59 | EET_DATA_DESCRIPTOR_ADD_BASIC \ | ||
60 | (_my_conf_descriptor, My_Conf_Type, # member, member, eet_type) | ||
61 | |||
62 | MY_CONF_ADD_BASIC(version, EET_T_UINT); | ||
63 | MY_CONF_ADD_BASIC(name, EET_T_STRING); | ||
64 | MY_CONF_ADD_BASIC(id, EET_T_INT); | ||
65 | MY_CONF_ADD_BASIC(enabled, EET_T_UCHAR); | ||
66 | |||
67 | #undef MY_CONF_ADD_BASIC | ||
68 | } /* _my_conf_descriptor_init */ | ||
69 | |||
70 | static void | ||
71 | _my_conf_descriptor_shutdown(void) | ||
72 | { | ||
73 | eet_data_descriptor_free(_my_conf_descriptor); | ||
74 | } /* _my_conf_descriptor_shutdown */ | ||
75 | |||
76 | static My_Conf_Type * | ||
77 | _my_conf_new(void) | ||
78 | { | ||
79 | My_Conf_Type *my_conf = calloc(1, sizeof(My_Conf_Type)); | ||
80 | if (!my_conf) | ||
81 | { | ||
82 | fprintf(stderr, "ERROR: could not calloc My_Conf_Type\n"); | ||
83 | return NULL; | ||
84 | } | ||
85 | |||
86 | my_conf->version = 0x112233; | ||
87 | my_conf->enabled = EINA_TRUE; | ||
88 | return my_conf; | ||
89 | } /* _my_conf_new */ | ||
90 | |||
91 | static void | ||
92 | _my_conf_free(My_Conf_Type *my_conf) | ||
93 | { | ||
94 | eina_stringshare_del(my_conf->name); | ||
95 | free(my_conf); | ||
96 | } /* _my_conf_free */ | ||
97 | |||
98 | static My_Conf_Type * | ||
99 | _my_conf_load(const char *filename) | ||
100 | { | ||
101 | My_Conf_Type *my_conf; | ||
102 | Eet_File *ef = eet_open(filename, EET_FILE_MODE_READ); | ||
103 | if (!ef) | ||
104 | { | ||
105 | fprintf(stderr, "ERROR: could not open '%s' for read\n", filename); | ||
106 | return NULL; | ||
107 | } | ||
108 | |||
109 | my_conf = eet_data_read(ef, _my_conf_descriptor, MY_CONF_FILE_ENTRY); | ||
110 | if (!my_conf) | ||
111 | goto end; | ||
112 | |||
113 | if (my_conf->version < 0x112233) | ||
114 | { | ||
115 | fprintf(stderr, | ||
116 | "WARNING: version %#x was too old, upgrading it to %#x\n", | ||
117 | my_conf->version, 0x112233); | ||
118 | |||
119 | my_conf->version = 0x112233; | ||
120 | my_conf->enabled = EINA_TRUE; | ||
121 | } | ||
122 | |||
123 | end: | ||
124 | eet_close(ef); | ||
125 | return my_conf; | ||
126 | } /* _my_conf_load */ | ||
127 | |||
128 | static Eina_Bool | ||
129 | _my_conf_save(const My_Conf_Type *my_conf, | ||
130 | const char *filename) | ||
131 | { | ||
132 | char tmp[PATH_MAX]; | ||
133 | Eet_File *ef; | ||
134 | Eina_Bool ret; | ||
135 | unsigned int i, len; | ||
136 | struct stat st; | ||
137 | |||
138 | len = eina_strlcpy(tmp, filename, sizeof(tmp)); | ||
139 | if (len + 12 >= (int)sizeof(tmp)) | ||
140 | { | ||
141 | fprintf(stderr, "ERROR: file name is too big: %s\n", filename); | ||
142 | return EINA_FALSE; | ||
143 | } | ||
144 | |||
145 | i = 0; | ||
146 | do | ||
147 | { | ||
148 | snprintf(tmp + len, 12, ".%u", i); | ||
149 | i++; | ||
150 | } | ||
151 | while (stat(tmp, &st) == 0); | ||
152 | |||
153 | ef = eet_open(tmp, EET_FILE_MODE_WRITE); | ||
154 | if (!ef) | ||
155 | { | ||
156 | fprintf(stderr, "ERROR: could not open '%s' for write\n", tmp); | ||
157 | return EINA_FALSE; | ||
158 | } | ||
159 | |||
160 | ret = eet_data_write | ||
161 | (ef, _my_conf_descriptor, MY_CONF_FILE_ENTRY, my_conf, EINA_TRUE); | ||
162 | eet_close(ef); | ||
163 | |||
164 | if (ret) | ||
165 | { | ||
166 | unlink(filename); | ||
167 | rename(tmp, filename); | ||
168 | } | ||
169 | |||
170 | return ret; | ||
171 | } /* _my_conf_save */ | ||
172 | |||
173 | int | ||
174 | main(int argc, | ||
175 | char *argv[]) | ||
176 | { | ||
177 | My_Conf_Type *my_conf; | ||
178 | int ret = 0; | ||
179 | |||
180 | if (argc != 3) | ||
181 | { | ||
182 | fprintf(stderr, "Usage:\n\t%s <input> <output>\n\n", argv[0]); | ||
183 | return -1; | ||
184 | } | ||
185 | |||
186 | eina_init(); | ||
187 | eet_init(); | ||
188 | _my_conf_descriptor_init(); | ||
189 | |||
190 | my_conf = _my_conf_load(argv[1]); | ||
191 | if (!my_conf) | ||
192 | { | ||
193 | printf("creating new configuration.\n"); | ||
194 | my_conf = _my_conf_new(); | ||
195 | if (!my_conf) | ||
196 | { | ||
197 | ret = -2; | ||
198 | goto end; | ||
199 | } | ||
200 | } | ||
201 | |||
202 | printf("My_Conf_Type:\n" | ||
203 | "\tversion: %#x\n" | ||
204 | "\tname...: '%s'\n" | ||
205 | "\tid.....: %d\n" | ||
206 | "\tenabled: %hhu\n", | ||
207 | my_conf->version, | ||
208 | my_conf->name ? my_conf->name : "", | ||
209 | my_conf->id, | ||
210 | my_conf->enabled); | ||
211 | |||
212 | if (!_my_conf_save(my_conf, argv[2])) | ||
213 | ret = -3; | ||
214 | |||
215 | _my_conf_free(my_conf); | ||
216 | |||
217 | end: | ||
218 | _my_conf_descriptor_shutdown(); | ||
219 | eet_shutdown(); | ||
220 | eina_shutdown(); | ||
221 | |||
222 | return ret; | ||
223 | } /* main */ | ||
224 | |||
diff --git a/libraries/eet/src/examples/eet-file.c b/libraries/eet/src/examples/eet-file.c deleted file mode 100644 index 740c179..0000000 --- a/libraries/eet/src/examples/eet-file.c +++ /dev/null | |||
@@ -1,127 +0,0 @@ | |||
1 | /* | ||
2 | * build: gcc -o eet_file eet-file.c `pkg-config --cflags --libs eet` | ||
3 | */ | ||
4 | #include <Eet.h> | ||
5 | #include <stdio.h> | ||
6 | #include <string.h> | ||
7 | |||
8 | static int | ||
9 | create_eet_file(void) | ||
10 | { | ||
11 | Eet_File *ef; | ||
12 | char buf[1024], *ptr; | ||
13 | int size, len, i; | ||
14 | const char *some_strings[] = { | ||
15 | "And some more strings", | ||
16 | "spread across several", | ||
17 | "elements of an array!" | ||
18 | }; | ||
19 | const char some_data[] = | ||
20 | "\x1e\xe7\x0f\x42\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x35" | ||
21 | "\x00\x00\x00\xa0\x00\x00\x00\xa0\x00\x00\x00\x24\x00\x00\x00\x11" | ||
22 | "\x00\x00\x00\x00\x2f\x6d\x69\x73\x74\x65\x72\x69\x6f\x75\x73\x2f" | ||
23 | "\x64\x61\x74\x61\x00\x41\x6e\x20\x45\x45\x54\x20\x69\x6e\x73\x69" | ||
24 | "\x64\x65\x20\x6f\x66\x20\x61\x6e\x20\x45\x45\x54\x21\x0a\x54\x68" | ||
25 | "\x69\x73\x20\x77\x61\x73\x6e\x27\x74\x20\x72\x65\x61\x6c\x6c\x79" | ||
26 | "\x20\x75\x73\x65\x66\x75\x6c\x20\x62\x75\x74\x20\x69\x74\x20\x68" | ||
27 | "\x65\x6c\x70\x65\x64\x20\x74\x6f\x20\x73\x68\x6f\x77\x20\x68\x6f" | ||
28 | "\x77\x0a\x74\x6f\x20\x75\x73\x65\x20\x65\x65\x74\x5f\x6d\x65\x6d" | ||
29 | "\x6f\x70\x65\x6e\x5f\x72\x65\x61\x64\x28\x29\x20\x74\x6f\x20\x6f" | ||
30 | "\x70\x65\x6e\x20\x61\x6e\x20\x65\x65\x74\x20\x66\x69\x6c\x65\x20" | ||
31 | "\x66\x72\x6f\x6d\x0a\x64\x61\x74\x61\x20\x61\x6c\x72\x65\x61\x64" | ||
32 | "\x79\x20\x6c\x6f\x61\x64\x65\x64\x20\x69\x6e\x20\x6d\x65\x6d\x6f" | ||
33 | "\x72\x79\x2e\x0a\x00"; | ||
34 | |||
35 | ef = eet_open("/tmp/my_file.eet", EET_FILE_MODE_WRITE); | ||
36 | if (!ef) return 0; | ||
37 | |||
38 | strcpy(buf, "Here is a string of data to save!"); | ||
39 | size = eet_write(ef, "/key/to_store/at", buf, sizeof(buf), 1); | ||
40 | if (!size) | ||
41 | { | ||
42 | fprintf(stderr, "Error writing data!\n"); | ||
43 | eet_close(ef); | ||
44 | return 0; | ||
45 | } | ||
46 | len = strlen(buf); | ||
47 | printf("strlen() = %d, eet_write() = %d\n", len, size); | ||
48 | |||
49 | ptr = buf; | ||
50 | for (i = 0; i < 3; i++) | ||
51 | { | ||
52 | len = strlen(some_strings[i]) + 1; | ||
53 | memcpy(ptr, some_strings[i], len); | ||
54 | ptr += len; | ||
55 | } | ||
56 | eet_write(ef, "/several/strings", buf, sizeof(buf), 1); | ||
57 | eet_sync(ef); | ||
58 | |||
59 | eet_write(ef, "/some/mysterious/data", some_data, sizeof(some_data) - 1, 1); | ||
60 | |||
61 | eet_delete(ef, "/several/strings"); | ||
62 | |||
63 | return eet_close(ef) == EET_ERROR_NONE; | ||
64 | } | ||
65 | |||
66 | int | ||
67 | main(void) | ||
68 | { | ||
69 | Eet_File *ef; | ||
70 | char *ret, **list; | ||
71 | int size, num, i; | ||
72 | |||
73 | eet_init(); | ||
74 | |||
75 | if (!create_eet_file()) | ||
76 | return -1; | ||
77 | |||
78 | ef = eet_open("/tmp/my_file.eet", EET_FILE_MODE_READ); | ||
79 | if (!ef) return -1; | ||
80 | |||
81 | list = eet_list(ef, "*", &num); | ||
82 | if (list) | ||
83 | { | ||
84 | for (i = 0; i < num; i++) | ||
85 | printf("Key stored: %s\n", list[i]); | ||
86 | free(list); | ||
87 | } | ||
88 | |||
89 | ret = eet_read(ef, "/key/to_store/at", &size); | ||
90 | if (ret) | ||
91 | { | ||
92 | printf("Data read (%i bytes):\n%s\n", size, ret); | ||
93 | free(ret); | ||
94 | } | ||
95 | |||
96 | ret = eet_read(ef, "/several/strings", &size); | ||
97 | if (ret) | ||
98 | { | ||
99 | printf("More data read (%i bytes):\n%s\n", size, ret); | ||
100 | free(ret); | ||
101 | } | ||
102 | |||
103 | ret = eet_read(ef, "/some/mysterious/data", &size); | ||
104 | if (ret) | ||
105 | { | ||
106 | Eet_File *ef2; | ||
107 | |||
108 | ef2 = eet_memopen_read(ret, size); | ||
109 | |||
110 | num = eet_num_entries(ef2); | ||
111 | printf("Mysterious data has %d entries\n", num); | ||
112 | |||
113 | printf("Mysterious data:\n%s\n", | ||
114 | (char *)eet_read_direct(ef2, "/mysterious/data", NULL)); | ||
115 | |||
116 | eet_close(ef2); | ||
117 | |||
118 | free(ret); | ||
119 | } | ||
120 | |||
121 | eet_close(ef); | ||
122 | |||
123 | eet_shutdown(); | ||
124 | |||
125 | return 0; | ||
126 | } | ||
127 | |||
diff --git a/libraries/eet/src/lib/Eet.h b/libraries/eet/src/lib/Eet.h deleted file mode 100644 index 7495090..0000000 --- a/libraries/eet/src/lib/Eet.h +++ /dev/null | |||
@@ -1,4180 +0,0 @@ | |||
1 | /** | ||
2 | @brief Eet Data Handling Library Public API Calls | ||
3 | |||
4 | These routines are used for Eet Library interaction | ||
5 | |||
6 | @mainpage Eet Library Documentation | ||
7 | |||
8 | @version 1.5.0 | ||
9 | @date 2000-2012 | ||
10 | |||
11 | Please see the @ref authors page for contact details. | ||
12 | |||
13 | @section toc Table of Contents | ||
14 | |||
15 | @li @ref intro | ||
16 | @li @ref example | ||
17 | @li @ref compiling | ||
18 | @li @ref install | ||
19 | @li @ref next_steps | ||
20 | @li @ref intro_example | ||
21 | |||
22 | @section intro What is Eet? | ||
23 | |||
24 | It is a tiny library designed to write an arbitrary set of chunks of data | ||
25 | to a file and optionally compress each chunk (very much like a zip file) | ||
26 | and allow fast random-access reading of the file later on. It does not | ||
27 | do zip as a zip itself has more complexity than is needed, and it was much | ||
28 | simpler to implement this once here. | ||
29 | |||
30 | Eet is extremely fast, small and simple. Eet files can be very small and | ||
31 | highly compressed, making them very optimal for just sending across the | ||
32 | internet without having to archive, compress or decompress and install them. | ||
33 | They allow for lightning-fast random-access reads once created, making them | ||
34 | perfect for storing data that is written once (or rarely) and read many | ||
35 | times, but the program does not want to have to read it all in at once. | ||
36 | |||
37 | It also can encode and decode data structures in memory, as well as image | ||
38 | data for saving to Eet files or sending across the network to other | ||
39 | machines, or just writing to arbitrary files on the system. All data is | ||
40 | encoded in a platform independent way and can be written and read by any | ||
41 | architecture. | ||
42 | |||
43 | @section example A simple example on using Eet | ||
44 | |||
45 | Here is a simple example on how to use Eet to save a series of strings to a | ||
46 | file and load them again. The advantage of using Eet over just | ||
47 | fprintf() and | ||
48 | fscanf() is that not only can these entries be strings, they need no special | ||
49 | parsing to handle delimiter characters or escaping, they can be binary data, | ||
50 | image data, data structures containing integers, strings, other data | ||
51 | structures, linked lists and much more, without the programmer having to | ||
52 | worry about parsing, and best of all, Eet is very fast. | ||
53 | |||
54 | This is just a very simple example that doesn't show all of the capabilities | ||
55 | of Eet, but it serves to illustrate its simplicity. | ||
56 | |||
57 | @include eet-basic.c | ||
58 | |||
59 | @section compiling How to compile using Eet ? | ||
60 | |||
61 | Eet is a library your application links to. The procedure for this is very | ||
62 | simple. You simply have to compile your application with the appropriate | ||
63 | compiler flags that the @p pkg-config script outputs. For example: | ||
64 | |||
65 | Compiling C or C++ files into object files: | ||
66 | |||
67 | @verbatim | ||
68 | gcc -c -o main.o main.c `pkg-config --cflags eet` | ||
69 | @endverbatim | ||
70 | |||
71 | Linking object files into a binary executable: | ||
72 | |||
73 | @verbatim | ||
74 | gcc -o my_application main.o `pkg-config --libs eet` | ||
75 | @endverbatim | ||
76 | |||
77 | You simply have to make sure that pkg-config is in your shell's PATH (see | ||
78 | the manual page for your appropriate shell) and eet.pc in /usr/lib/pkgconfig | ||
79 | or its path is in the PKG_CONFIG_PATH environment variable. It's that simple | ||
80 | to link and use Eet once you have written your code to use it. | ||
81 | |||
82 | Since the program is linked to Eet, it is now able to use any advertised | ||
83 | API calls to serialize your data. | ||
84 | |||
85 | You should make sure you add any extra compile and link flags to your | ||
86 | compile commands that your application may need as well. The above example | ||
87 | is only guaranteed to make Eet add it's own requirements. | ||
88 | |||
89 | |||
90 | @section install How is it installed? | ||
91 | |||
92 | Simple: | ||
93 | |||
94 | @verbatim | ||
95 | ./configure | ||
96 | make | ||
97 | su - | ||
98 | ... | ||
99 | make install | ||
100 | @endverbatim | ||
101 | |||
102 | @section next_steps Next Steps | ||
103 | |||
104 | After you understood what Eet is and installed it in your system you | ||
105 | should proceed understanding the programming interface. We'd recommend | ||
106 | you to take a while to learn Eina | ||
107 | (http://docs.enlightenment.org/auto/eina/) as it is very convenient | ||
108 | and optimized, and Eet provides integration with it. | ||
109 | |||
110 | Recommended reading: | ||
111 | |||
112 | @li @ref Eet_File_Group to know the basics to open and save files. | ||
113 | @li @ref Eet_Data_Group to know the convenient way to serialize and | ||
114 | parse your data structures automatically. Just create your | ||
115 | descriptors and let Eet do the work for you. | ||
116 | |||
117 | @section intro_example Introductory Examples | ||
118 | |||
119 | @ref Examples | ||
120 | |||
121 | @todo Document data format for images and data structures. | ||
122 | |||
123 | */ | ||
124 | |||
125 | /** | ||
126 | @page authors Authors | ||
127 | @author Carsten Haitzler <raster@@rasterman.com> | ||
128 | @author David Goodlad <dgoodlad@@gmail.com> | ||
129 | @author Cedric Bail <cedric.bail@@free.fr> | ||
130 | @author Arnaud de Turckheim <quarium@@gmail.com> | ||
131 | @author Luis Felipe Strano Moraes <lfelipe@@profusion.mobi> | ||
132 | @author Chidambar Zinnoury <illogict@@online.fr> | ||
133 | @author Vincent Torri <vtorri@@univ-evry.fr> | ||
134 | @author Gustavo Sverzut Barbieri <barbieri@@profusion.mobi> | ||
135 | @author Raphael Kubo da Costa <kubo@@profusion.mobi> | ||
136 | @author Mathieu Taillefumier <mathieu.taillefumier@@free.fr> | ||
137 | @author Albin "Lutin" Tonnerre <albin.tonnerre@@gmail.com> | ||
138 | @author Adam Simpkins <adam@@adamsimpkins.net> | ||
139 | @author Mike Blumenkrantz <michael.blumenkrantz@gmail.com> | ||
140 | |||
141 | Please contact <enlightenment-devel@lists.sourceforge.net> to get in | ||
142 | contact with the developers and maintainers. | ||
143 | */ | ||
144 | |||
145 | #ifndef _EET_H | ||
146 | #define _EET_H | ||
147 | |||
148 | #include <stdlib.h> | ||
149 | #include <stdio.h> | ||
150 | #include <Eina.h> | ||
151 | |||
152 | #ifdef EAPI | ||
153 | # undef EAPI | ||
154 | #endif /* ifdef EAPI */ | ||
155 | |||
156 | #ifdef _WIN32 | ||
157 | # ifdef EFL_EET_BUILD | ||
158 | # ifdef DLL_EXPORT | ||
159 | # define EAPI __declspec(dllexport) | ||
160 | # else /* ifdef DLL_EXPORT */ | ||
161 | # define EAPI | ||
162 | # endif /* ! DLL_EXPORT */ | ||
163 | # else /* ifdef EFL_EET_BUILD */ | ||
164 | # define EAPI __declspec(dllimport) | ||
165 | # endif /* ! EFL_EET_BUILD */ | ||
166 | #else /* ifdef _WIN32 */ | ||
167 | # ifdef __GNUC__ | ||
168 | # if __GNUC__ >= 4 | ||
169 | # define EAPI __attribute__ ((visibility("default"))) | ||
170 | # else /* if __GNUC__ >= 4 */ | ||
171 | # define EAPI | ||
172 | # endif /* if __GNUC__ >= 4 */ | ||
173 | # else /* ifdef __GNUC__ */ | ||
174 | # define EAPI | ||
175 | # endif /* ifdef __GNUC__ */ | ||
176 | #endif /* ! _WIN32 */ | ||
177 | |||
178 | #ifdef __cplusplus | ||
179 | extern "C" { | ||
180 | #endif /* ifdef __cplusplus */ | ||
181 | |||
182 | /** | ||
183 | * @file Eet.h | ||
184 | * @brief The file that provides the eet functions. | ||
185 | * | ||
186 | * This header provides the Eet management functions. | ||
187 | * | ||
188 | */ | ||
189 | |||
190 | #define EET_VERSION_MAJOR 1 | ||
191 | #define EET_VERSION_MINOR 6 | ||
192 | /** | ||
193 | * @typedef Eet_Version | ||
194 | * | ||
195 | * This is the Eet version information structure that can be used at | ||
196 | * runtime to detect which version of eet is being used and adapt | ||
197 | * appropriately as follows for example: | ||
198 | * | ||
199 | * @code | ||
200 | * #if defined(EET_VERSION_MAJOR) && (EET_VERSION_MAJOR >= 1) && defined(EET_VERSION_MINOR) && (EET_VERSION_MINOR > 2) | ||
201 | * printf("Eet version: %i.%i.%i\n", | ||
202 | * eet_version->major, | ||
203 | * eet_version->minor, | ||
204 | * eet_version->micro); | ||
205 | * if (eet_version->revision > 0) | ||
206 | * { | ||
207 | * printf(" Built from SVN revision # %i\n", eet_version->revision); | ||
208 | * } | ||
209 | * #endif | ||
210 | * @endcode | ||
211 | * | ||
212 | * Note the #if check can be dropped if your program refuses to compile or | ||
213 | * work with an Eet version less than 1.3.0. | ||
214 | */ | ||
215 | typedef struct _Eet_Version | ||
216 | { | ||
217 | int major; /** < major (binary or source incompatible changes) */ | ||
218 | int minor; /** < minor (new features, bugfixes, major improvements version) */ | ||
219 | int micro; /** < micro (bugfix, internal improvements, no new features version) */ | ||
220 | int revision; /** < svn revision (0 if a proper rlease or the svn revsion number Eet is built from) */ | ||
221 | } Eet_Version; | ||
222 | |||
223 | EAPI extern Eet_Version *eet_version; | ||
224 | |||
225 | /** | ||
226 | * @defgroup Eet_Group Top level functions | ||
227 | * Functions that affect Eet as a whole. | ||
228 | * | ||
229 | * @{ | ||
230 | */ | ||
231 | |||
232 | /** | ||
233 | * @enum _Eet_Error | ||
234 | * All the error identifiers known by Eet. | ||
235 | */ | ||
236 | typedef enum _Eet_Error | ||
237 | { | ||
238 | EET_ERROR_NONE, /**< No error, it's all fine! */ | ||
239 | EET_ERROR_BAD_OBJECT, /**< Given object or handle is NULL or invalid */ | ||
240 | EET_ERROR_EMPTY, /**< There was nothing to do */ | ||
241 | EET_ERROR_NOT_WRITABLE, /**< Could not write to file or file is #EET_FILE_MODE_READ */ | ||
242 | EET_ERROR_OUT_OF_MEMORY, /**< Could not allocate memory */ | ||
243 | EET_ERROR_WRITE_ERROR, /**< Failed to write data to destination */ | ||
244 | EET_ERROR_WRITE_ERROR_FILE_TOO_BIG, /**< Failed to write file since it is too big */ | ||
245 | EET_ERROR_WRITE_ERROR_IO_ERROR, /**< Failed to write due a generic Input/Output error */ | ||
246 | EET_ERROR_WRITE_ERROR_OUT_OF_SPACE, /**< Failed to write due out of space */ | ||
247 | EET_ERROR_WRITE_ERROR_FILE_CLOSED, /**< Failed to write because file was closed */ | ||
248 | EET_ERROR_MMAP_FAILED, /**< Could not mmap file */ | ||
249 | EET_ERROR_X509_ENCODING_FAILED, /**< Could not encode using X509 */ | ||
250 | EET_ERROR_SIGNATURE_FAILED, /**< Could not validate signature */ | ||
251 | EET_ERROR_INVALID_SIGNATURE, /**< Signature is invalid */ | ||
252 | EET_ERROR_NOT_SIGNED, /**< File or contents are not signed */ | ||
253 | EET_ERROR_NOT_IMPLEMENTED, /**< Function is not implemented */ | ||
254 | EET_ERROR_PRNG_NOT_SEEDED, /**< Could not introduce random seed */ | ||
255 | EET_ERROR_ENCRYPT_FAILED, /**< Could not encrypt contents */ | ||
256 | EET_ERROR_DECRYPT_FAILED /**< Could not decrypt contents */ | ||
257 | } Eet_Error; /**< Eet error identifiers */ | ||
258 | |||
259 | /** | ||
260 | * @} | ||
261 | */ | ||
262 | |||
263 | /** | ||
264 | * Initialize the EET library. | ||
265 | * | ||
266 | * The first time this function is called, it will perform all the internal | ||
267 | * initialization required for the library to function properly and incrememnt | ||
268 | * the initializiation counter. Any subsequent call only increment this counter | ||
269 | * and return its new value, so it's safe to call this function more than once. | ||
270 | * | ||
271 | * @return The new init count. Will be 0 if initialization failed. | ||
272 | * | ||
273 | * @since 1.0.0 | ||
274 | * @ingroup Eet_Group | ||
275 | */ | ||
276 | EAPI int | ||
277 | eet_init(void); | ||
278 | |||
279 | /** | ||
280 | * Shut down the EET library. | ||
281 | * | ||
282 | * If eet_init() was called more than once for the running application, | ||
283 | * eet_shutdown() will decrement the initialization counter and return its | ||
284 | * new value, without doing anything else. When the counter reaches 0, all | ||
285 | * of the internal elements will be shutdown and any memory used freed. | ||
286 | * | ||
287 | * @return The new init count. | ||
288 | * | ||
289 | * @since 1.0.0 | ||
290 | * @ingroup Eet_Group | ||
291 | */ | ||
292 | EAPI int | ||
293 | eet_shutdown(void); | ||
294 | |||
295 | /** | ||
296 | * Clear eet cache | ||
297 | * | ||
298 | * For a faster access to previously accessed data, Eet keeps an internal | ||
299 | * cache of files. These files will be freed automatically only when | ||
300 | * they are unused and the cache gets full, in order based on the last time | ||
301 | * they were used. | ||
302 | * On systems with little memory this may present an unnecessary constraint, | ||
303 | * so eet_clearcache() is available for users to reclaim the memory used by | ||
304 | * files that are no longer needed. Those that were open using | ||
305 | * ::EET_FILE_MODE_WRITE or ::EET_FILE_MODE_READ_WRITE and have modifications, | ||
306 | * will be written down to disk before flushing them from memory. | ||
307 | * | ||
308 | * @since 1.0.0 | ||
309 | * @ingroup Eet_Group | ||
310 | */ | ||
311 | EAPI void | ||
312 | eet_clearcache(void); | ||
313 | |||
314 | /** | ||
315 | * @defgroup Eet_File_Group Eet File Main Functions | ||
316 | * | ||
317 | * Functions to create, destroy and do basic manipulation of | ||
318 | * #Eet_File handles. | ||
319 | * | ||
320 | * This sections explains how to use the most basic Eet functions, which | ||
321 | * are used to work with eet files, read data from them, store it back in or | ||
322 | * take a look at what entries it contains, without making use of the | ||
323 | * serialization capabilities explained in @ref Eet_Data_Group. | ||
324 | * | ||
325 | * The following example will serve as an introduction to most, if not all, | ||
326 | * of these functions. | ||
327 | * | ||
328 | * If you are only using Eet, this is the only header you need to include. | ||
329 | * @dontinclude eet-file.c | ||
330 | * @skipline Eet.h | ||
331 | * | ||
332 | * Now let's create ourselves an eet file to play with. The following function | ||
333 | * shows step by step how to open a file and write some data in it. | ||
334 | * First, we define our file handler and some other things we'll put in it. | ||
335 | * @line static int | ||
336 | * @skip Eet_File | ||
337 | * @until "; | ||
338 | * @skip eet_open | ||
339 | * | ||
340 | * We open a new file in write mode, and if it fails, we just return, since | ||
341 | * there's not much more we can do about it.. | ||
342 | * @until return | ||
343 | * | ||
344 | * Now, we need to write some data in our file. For now, strings will suffice, | ||
345 | * so let's just dump a bunch of them in there. | ||
346 | * @until } | ||
347 | * | ||
348 | * As you can see, we copied a string into our static buffer, which is a bit | ||
349 | * bigger than the full length of the string, and then told Eet to write it | ||
350 | * into the file, compressed, returning the size of the data written into the | ||
351 | * file. | ||
352 | * This is all to show that Eet treats data as just data. It doesn't matter | ||
353 | * what that data represents (for now), it's all just bytes for it. As running | ||
354 | * the following code will show, we took a string of around 30 bytes and put it | ||
355 | * in a buffer of 1024 bytes, but the returned size won't be any of those. | ||
356 | * @until printf | ||
357 | * | ||
358 | * Next, we copy into our buffer our set of strings, including their null | ||
359 | * terminators and write them into the file. No error checking for the sake | ||
360 | * of brevitiy. And a call to eet_sync() to make sure all out data is | ||
361 | * properly written down to disk, even though we haven't yet closed the file. | ||
362 | * @until eet_sync | ||
363 | * | ||
364 | * One more write, this time our large array of binary data and... well, I | ||
365 | * couldn't come up with a valid use of the last set of strings we stored, | ||
366 | * so let's take it out from the file with eet_delete(). | ||
367 | * @until eet_delete | ||
368 | * | ||
369 | * Finally, we close the file, saving any changes back to disk and return. | ||
370 | * Notice how, if there's any error closing the file or saving its contents, | ||
371 | * the return value from the function will be a false one, which later on | ||
372 | * will make the program exit with an error code. | ||
373 | * @until return | ||
374 | * | ||
375 | * Moving onto our main function, we will open the same file and read it back. | ||
376 | * Trivial, but it'll show how we can do so in more than one way. We'll skip | ||
377 | * the variable declarations, as they aren't very different from what we've | ||
378 | * seen already. | ||
379 | * | ||
380 | * We start from the beginning by initializing Eet so things in general work. | ||
381 | * Forgetting to do so will result in weird results or crashes when calling | ||
382 | * any eet function, so if you experience something like that, the first thing | ||
383 | * to look at is whether eet_init() is missing. | ||
384 | * Then we call our @p create_eet_file function, described above, to make | ||
385 | * sure we have something to work with. If the function fails it will return | ||
386 | * 0 and we just exit, since nothing from here onwards will work anyway. | ||
387 | * @skip eet_init | ||
388 | * @until return | ||
389 | * | ||
390 | * Let's take a look now at what entries our file has. For this, we use | ||
391 | * eet_list(), which will return a list of strings, each being the name of | ||
392 | * one entry. Since we skipped before, it may be worth noting that @p list | ||
393 | * is declared as a @p char **. | ||
394 | * The @p num parameter will, of course, have the number of entries contained | ||
395 | * in our file. | ||
396 | * If everything's fine, we'll get our list and print it to the screen, and | ||
397 | * once done with it, we free the list. That's just the list, not its contents, | ||
398 | * as they are internal strings used by Eet and trying to free them will surely | ||
399 | * break things. | ||
400 | * @until } | ||
401 | * | ||
402 | * Reading back plain data is simple. Just a call to eet_read() with the file | ||
403 | * to read from, and the name of the entry we are interested in. We get back | ||
404 | * our data and the passed @p size parameter will contain the size of it. If | ||
405 | * the data was stored compressed, it will decompressed first. | ||
406 | * @until } | ||
407 | * | ||
408 | * Another simple read for the set of strings from before, except those were | ||
409 | * deleted, so we should get a NULL return and continue normally. | ||
410 | * @until } | ||
411 | * | ||
412 | * Finally, we'll get our binary data in the same way we got the strings. Once | ||
413 | * again, it makes no difference for Eet what the data is, it's up to us to | ||
414 | * know how to handle it. | ||
415 | * @until { | ||
416 | * | ||
417 | * Now some cheating, we know that this data is an Eet file because, well... | ||
418 | * we just know it. So we are going to open it and take a look at its insides. | ||
419 | * For this, eet_open() won't work, as it needs to have a file on disk to read | ||
420 | * from and all we have is some data in RAM. | ||
421 | * | ||
422 | * So how do we do? One way would be to create a normal file and write down | ||
423 | * our data, then open it with eet_open(). Another, faster and more efficient | ||
424 | * if all we want to do is read the file, is to use eet_memopen_read(). | ||
425 | * @until memopen | ||
426 | * | ||
427 | * As you can see, the size we got from our previous read was put to good use | ||
428 | * this time. Unlike the first one where all we had were strings, the size | ||
429 | * of the data read only serves to demonstrate that we are reading back the | ||
430 | * entire size of our original @p buf variable. | ||
431 | * | ||
432 | * A little peeking to see how many entries the file has and to make an | ||
433 | * example of eet_num_entries() to get that number when we don't care about | ||
434 | * their names. | ||
435 | * @until printf | ||
436 | * | ||
437 | * More cheating follows. Just like we knew this was an Eet file, we also know | ||
438 | * what key to read from, and ontop of that we know that the data in it is not | ||
439 | * compressed. | ||
440 | * Knowing all this allows us to take some shortcuts. | ||
441 | * @until read_direct | ||
442 | * | ||
443 | * That's a direct print of our data, whatever that data is. We don't want | ||
444 | * to worry about having to free it later, so we just used eet_direct_read() | ||
445 | * to tell Eet to gives a pointer to the internal data in the file, without | ||
446 | * duplicating it. Since we said that data was not compressed, we shouldn't | ||
447 | * worry about printing garbage to the screen (and yes, we also know the data | ||
448 | * is yet another string). | ||
449 | * We also don't care about the size of the data as it was stored in the file, | ||
450 | * so we passed NULL as the size parameter. | ||
451 | * One very important note about this, however, is that we don't care about | ||
452 | * the size parameter because the data in the file contains the null | ||
453 | * terminator for the string. So when using Eet to store strings this way, | ||
454 | * it's very important to consider whether you will keep that final null | ||
455 | * byte, or to always get the size read and do the necessary checks and copies. | ||
456 | * It's up to the user and the particular use cases to decide how this will | ||
457 | * be done. | ||
458 | * | ||
459 | * With everything done, close this second file and free the data used to open | ||
460 | * it. And this is important, we can't free that data until we are done with | ||
461 | * the file, as Eet is using it. When opening with eet_memopen_read(), the data | ||
462 | * passed to it must be available for as long as the the file is open. | ||
463 | * @until } | ||
464 | * | ||
465 | * Finally, we close the first file, shutdown all internal resources used by | ||
466 | * Eet and leave our main function, thus terminating our program. | ||
467 | * @until return | ||
468 | * | ||
469 | * You can look at the full code of the example @ref eet-file.c "here". | ||
470 | * @{ | ||
471 | */ | ||
472 | |||
473 | /** | ||
474 | * @enum _Eet_File_Mode | ||
475 | * Modes that a file can be opened. | ||
476 | */ | ||
477 | typedef enum _Eet_File_Mode | ||
478 | { | ||
479 | EET_FILE_MODE_INVALID = -1, | ||
480 | EET_FILE_MODE_READ, /**< File is read-only. */ | ||
481 | EET_FILE_MODE_WRITE, /**< File is write-only. */ | ||
482 | EET_FILE_MODE_READ_WRITE /**< File is for both read and write */ | ||
483 | } Eet_File_Mode; /**< Modes that a file can be opened. */ | ||
484 | |||
485 | /** | ||
486 | * @typedef Eet_File | ||
487 | * Opaque handle that defines an Eet file (or memory). | ||
488 | * | ||
489 | * This handle will be returned by the functions eet_open() and | ||
490 | * eet_memopen_read() and is used by every other function that affects the | ||
491 | * file in any way. When you are done with it, call eet_close() to clsoe it | ||
492 | * and, if the file was open for writing, write down to disk any changes made | ||
493 | * to it. | ||
494 | * | ||
495 | * @see eet_open() | ||
496 | * @see eet_memopen_read() | ||
497 | * @see eet_close() | ||
498 | */ | ||
499 | typedef struct _Eet_File Eet_File; | ||
500 | |||
501 | /** | ||
502 | * @typedef Eet_Dictionary | ||
503 | * Opaque handle that defines a file-backed (mmaped) dictionary of strings. | ||
504 | */ | ||
505 | typedef struct _Eet_Dictionary Eet_Dictionary; | ||
506 | |||
507 | /** | ||
508 | * @} | ||
509 | */ | ||
510 | |||
511 | /** | ||
512 | * Open an eet file on disk, and returns a handle to it. | ||
513 | * @param file The file path to the eet file. eg: @c "/tmp/file.eet". | ||
514 | * @param mode The mode for opening. Either #EET_FILE_MODE_READ, | ||
515 | * #EET_FILE_MODE_WRITE or #EET_FILE_MODE_READ_WRITE. | ||
516 | * @return An opened eet file handle. | ||
517 | * @ingroup Eet_File_Group | ||
518 | * | ||
519 | * This function will open an exiting eet file for reading, and build | ||
520 | * the directory table in memory and return a handle to the file, if it | ||
521 | * exists and can be read, and no memory errors occur on the way, otherwise | ||
522 | * NULL will be returned. | ||
523 | * | ||
524 | * It will also open an eet file for writing. This will, if successful, | ||
525 | * delete the original file and replace it with a new empty file, till | ||
526 | * the eet file handle is closed or flushed. If it cannot be opened for | ||
527 | * writing or a memory error occurs, NULL is returned. | ||
528 | * | ||
529 | * You can also open the file for read/write. If you then write a key that | ||
530 | * does not exist it will be created, if the key exists it will be replaced | ||
531 | * by the new data. | ||
532 | * | ||
533 | * If the same file is opened multiple times, then the same file handle will | ||
534 | * be returned as eet maintains an internal list of all currently open | ||
535 | * files. Note that it considers files opened for read only and those opened | ||
536 | * for read/write and write only as 2 separate sets. Those that do not write | ||
537 | * to the file and those that do. Eet will allow 2 handles to the same file | ||
538 | * if they are in the 2 separate lists/groups. That means opening a file for | ||
539 | * read only looks in the read only set, and returns a handle to that file | ||
540 | * handle and increments its reference count. If you open a file for read/write | ||
541 | * or write only it looks in the write set and returns a handle after | ||
542 | * incrementing the reference count. You need to close an eet file handle | ||
543 | * as many times as it has been opened to maintain correct reference counts. | ||
544 | * Files whose modified timestamp or size do not match those of the existing | ||
545 | * referenced file handles will not be returned and a new handle will be | ||
546 | * returned instead. | ||
547 | * | ||
548 | * @since 1.0.0 | ||
549 | */ | ||
550 | EAPI Eet_File * | ||
551 | eet_open(const char *file, | ||
552 | Eet_File_Mode mode); | ||
553 | |||
554 | /** | ||
555 | * Open an eet file directly from a memory location. The data is not copied, | ||
556 | * so you must keep it around as long as the eet file is open. There is | ||
557 | * currently no cache for this kind of Eet_File, so it's reopened every time | ||
558 | * you use eet_memopen_read. | ||
559 | * Files opened this way will always be in read-only mode. | ||
560 | * | ||
561 | * @since 1.1.0 | ||
562 | * @ingroup Eet_File_Group | ||
563 | */ | ||
564 | EAPI Eet_File * | ||
565 | eet_memopen_read(const void *data, | ||
566 | size_t size); | ||
567 | |||
568 | /** | ||
569 | * Get the mode an Eet_File was opened with. | ||
570 | * @param ef A valid eet file handle. | ||
571 | * @return The mode ef was opened with. | ||
572 | * | ||
573 | * @since 1.0.0 | ||
574 | * @ingroup Eet_File_Group | ||
575 | */ | ||
576 | EAPI Eet_File_Mode | ||
577 | eet_mode_get(Eet_File *ef); | ||
578 | |||
579 | /** | ||
580 | * Close an eet file handle and flush pending writes. | ||
581 | * @param ef A valid eet file handle. | ||
582 | * | ||
583 | * This function will flush any pending writes to disk if the eet file | ||
584 | * was opened for write, and free all data associated with the file handle | ||
585 | * and file, and close the file. | ||
586 | * | ||
587 | * If the eet file handle is not valid nothing will be done. | ||
588 | * | ||
589 | * @since 1.0.0 | ||
590 | * @ingroup Eet_File_Group | ||
591 | */ | ||
592 | EAPI Eet_Error | ||
593 | eet_close(Eet_File *ef); | ||
594 | |||
595 | /** | ||
596 | * Sync content of an eet file handle, flushing pending writes. | ||
597 | * @param ef A valid eet file handle. | ||
598 | * | ||
599 | * This function will flush any pending writes to disk. The eet file must | ||
600 | * be opened for write. | ||
601 | * | ||
602 | * If the eet file handle is not valid nothing will be done. | ||
603 | * | ||
604 | * @since 1.2.4 | ||
605 | * @ingroup Eet_File_Group | ||
606 | */ | ||
607 | EAPI Eet_Error | ||
608 | eet_sync(Eet_File *ef); | ||
609 | |||
610 | /** | ||
611 | * Return a handle to the shared string dictionary of the Eet file | ||
612 | * @param ef A valid eet file handle. | ||
613 | * @return A handle to the dictionary of the file | ||
614 | * | ||
615 | * This function returns a handle to the dictionary of an Eet file whose | ||
616 | * handle is @p ef, if a dictionary exists. NULL is returned otherwise or | ||
617 | * if the file handle is known to be invalid. | ||
618 | * | ||
619 | * @see eet_dictionary_string_check() to know if given string came | ||
620 | * from the dictionary or it was dynamically allocated using | ||
621 | * the #Eet_Data_Descriptor_Class instructrions. | ||
622 | * | ||
623 | * @since 1.0.0 | ||
624 | * @ingroup Eet_File_Group | ||
625 | */ | ||
626 | EAPI Eet_Dictionary * | ||
627 | eet_dictionary_get(Eet_File *ef); | ||
628 | |||
629 | /** | ||
630 | * Check if a given string comes from a given dictionary | ||
631 | * @param ed A valid dictionary handle | ||
632 | * @param string A valid 0 byte terminated C string | ||
633 | * @return 1 if it is in the dictionary, 0 otherwise | ||
634 | * | ||
635 | * This checks the given dictionary to see if the given string is actually | ||
636 | * inside that dictionary (i.e. comes from it) and returns 1 if it does. | ||
637 | * If the dictionary handle is invalid, the string is NULL or the string is | ||
638 | * not in the dictionary, 0 is returned. | ||
639 | * | ||
640 | * @since 1.0.0 | ||
641 | * @ingroup Eet_File_Group | ||
642 | */ | ||
643 | EAPI int | ||
644 | eet_dictionary_string_check(Eet_Dictionary *ed, | ||
645 | const char *string); | ||
646 | |||
647 | /** | ||
648 | * Return the number of strings inside a dictionary | ||
649 | * @param ed A valid dictionary handle | ||
650 | * @return the number of strings inside a dictionary | ||
651 | * | ||
652 | * @since 1.6.0 | ||
653 | * @ingroup Eet_File_Group | ||
654 | */ | ||
655 | EAPI int | ||
656 | eet_dictionary_count(const Eet_Dictionary *ed); | ||
657 | |||
658 | /** | ||
659 | * Read a specified entry from an eet file and return data | ||
660 | * @param ef A valid eet file handle opened for reading. | ||
661 | * @param name Name of the entry. eg: "/base/file_i_want". | ||
662 | * @param size_ret Number of bytes read from entry and returned. | ||
663 | * @return The data stored in that entry in the eet file. | ||
664 | * | ||
665 | * This function finds an entry in the eet file that is stored under the | ||
666 | * name specified, and returns that data, decompressed, if successful. | ||
667 | * NULL is returned if the lookup fails or if memory errors are | ||
668 | * encountered. It is the job of the calling program to call free() on | ||
669 | * the returned data. The number of bytes in the returned data chunk are | ||
670 | * placed in size_ret. | ||
671 | * | ||
672 | * If the eet file handle is not valid NULL is returned and size_ret is | ||
673 | * filled with 0. | ||
674 | * | ||
675 | * @see eet_read_cipher() | ||
676 | * | ||
677 | * @since 1.0.0 | ||
678 | * @ingroup Eet_File_Group | ||
679 | */ | ||
680 | EAPI void * | ||
681 | eet_read(Eet_File *ef, | ||
682 | const char *name, | ||
683 | int *size_ret); | ||
684 | |||
685 | /** | ||
686 | * Read a specified entry from an eet file and return data | ||
687 | * @param ef A valid eet file handle opened for reading. | ||
688 | * @param name Name of the entry. eg: "/base/file_i_want". | ||
689 | * @param size_ret Number of bytes read from entry and returned. | ||
690 | * @return The data stored in that entry in the eet file. | ||
691 | * | ||
692 | * This function finds an entry in the eet file that is stored under the | ||
693 | * name specified, and returns that data if not compressed and successful. | ||
694 | * NULL is returned if the lookup fails or if memory errors are | ||
695 | * encountered or if the data is comrpessed. The calling program must never | ||
696 | * call free() on the returned data. The number of bytes in the returned | ||
697 | * data chunk are placed in size_ret. | ||
698 | * | ||
699 | * If the eet file handle is not valid NULL is returned and size_ret is | ||
700 | * filled with 0. | ||
701 | * | ||
702 | * @since 1.0.0 | ||
703 | * @ingroup Eet_File_Group | ||
704 | */ | ||
705 | EAPI const void * | ||
706 | eet_read_direct(Eet_File *ef, | ||
707 | const char *name, | ||
708 | int *size_ret); | ||
709 | |||
710 | /** | ||
711 | * Write a specified entry to an eet file handle | ||
712 | * @param ef A valid eet file handle opened for writing. | ||
713 | * @param name Name of the entry. eg: "/base/file_i_want". | ||
714 | * @param data Pointer to the data to be stored. | ||
715 | * @param size Length in bytes in the data to be stored. | ||
716 | * @param compress Compression flags (1 == compress, 0 = don't compress). | ||
717 | * @return bytes written on successful write, 0 on failure. | ||
718 | * | ||
719 | * This function will write the specified chunk of data to the eet file | ||
720 | * and return greater than 0 on success. 0 will be returned on failure. | ||
721 | * | ||
722 | * The eet file handle must be a valid file handle for an eet file opened | ||
723 | * for writing. If it is not, 0 will be returned and no action will be | ||
724 | * performed. | ||
725 | * | ||
726 | * Name, and data must not be NULL, and size must be > 0. If these | ||
727 | * conditions are not met, 0 will be returned. | ||
728 | * | ||
729 | * The data will be copied (and optionally compressed) in ram, pending | ||
730 | * a flush to disk (it will stay in ram till the eet file handle is | ||
731 | * closed though). | ||
732 | * | ||
733 | * @see eet_write_cipher() | ||
734 | * | ||
735 | * @since 1.0.0 | ||
736 | * @ingroup Eet_File_Group | ||
737 | */ | ||
738 | EAPI int | ||
739 | eet_write(Eet_File *ef, | ||
740 | const char *name, | ||
741 | const void *data, | ||
742 | int size, | ||
743 | int compress); | ||
744 | |||
745 | /** | ||
746 | * Delete a specified entry from an Eet file being written or re-written | ||
747 | * @param ef A valid eet file handle opened for writing. | ||
748 | * @param name Name of the entry. eg: "/base/file_i_want". | ||
749 | * @return Success or failure of the delete. | ||
750 | * | ||
751 | * This function will delete the specified chunk of data from the eet file | ||
752 | * and return greater than 0 on success. 0 will be returned on failure. | ||
753 | * | ||
754 | * The eet file handle must be a valid file handle for an eet file opened | ||
755 | * for writing. If it is not, 0 will be returned and no action will be | ||
756 | * performed. | ||
757 | * | ||
758 | * Name, must not be NULL, otherwise 0 will be returned. | ||
759 | * | ||
760 | * @since 1.0.0 | ||
761 | * @ingroup Eet_File_Group | ||
762 | */ | ||
763 | EAPI int | ||
764 | eet_delete(Eet_File *ef, | ||
765 | const char *name); | ||
766 | |||
767 | /** | ||
768 | * Alias a specific section to another one. Destination may exist or not, | ||
769 | * no checks are done. | ||
770 | * @param ef A valid eet file handle opened for writing. | ||
771 | * @param name Name of the new entry. eg: "/base/file_i_want". | ||
772 | * @param destination Actual source of the aliased entry eg: "/base/the_real_stuff_i_want". | ||
773 | * @param compress Compression flags (1 == compress, 0 = don't compress). | ||
774 | * @return EINA_TRUE on success, EINA_FALSE on failure. | ||
775 | * | ||
776 | * Name and Destination must not be NULL, otherwise EINA_FALSE will be returned. | ||
777 | * The equivalent of this would be calling 'ln -s destination name' | ||
778 | * | ||
779 | * @since 1.3.3 | ||
780 | * @ingroup Eet_File_Group | ||
781 | */ | ||
782 | EAPI Eina_Bool | ||
783 | eet_alias(Eet_File *ef, | ||
784 | const char *name, | ||
785 | const char *destination, | ||
786 | int compress); | ||
787 | |||
788 | /** | ||
789 | * Retrieve the filename of an Eet_File | ||
790 | * @param ef A valid eet file handle opened for writing. | ||
791 | * @return The stringshared file string opened with eet_open(), or NULL on error | ||
792 | * | ||
793 | * @note This function will return NULL for files opened with eet_memopen_read() | ||
794 | * | ||
795 | * @since 1.6 | ||
796 | * @ingroup Eet_File_Group | ||
797 | */ | ||
798 | EAPI const char * | ||
799 | eet_file_get(Eet_File *ef); | ||
800 | |||
801 | /** | ||
802 | * Retrieve the destination name of an alias | ||
803 | * @param ef A valid eet file handle opened for writing | ||
804 | * @param name Name of the entry. eg: "/base/file_i_want" | ||
805 | * @return Destination of the alias. eg: "/base/the_real_stuff_i_want", NULL on failure | ||
806 | * | ||
807 | * Name must not be NULL, otherwise NULL will be returned. | ||
808 | * | ||
809 | * @since 1.5 | ||
810 | * @ingroup Eet_File_Group | ||
811 | */ | ||
812 | EAPI const char * | ||
813 | eet_alias_get(Eet_File *ef, | ||
814 | const char *name); | ||
815 | |||
816 | /** | ||
817 | * List all entries in eet file matching shell glob. | ||
818 | * @param ef A valid eet file handle. | ||
819 | * @param glob A shell glob to match against. | ||
820 | * @param count_ret Number of entries found to match. | ||
821 | * @return Pointer to an array of strings. | ||
822 | * | ||
823 | * This function will list all entries in the eet file matching the | ||
824 | * supplied shell glob and return an allocated list of their names, if | ||
825 | * there are any, and if no memory errors occur. | ||
826 | * | ||
827 | * The eet file handle must be valid and glob must not be NULL, or NULL | ||
828 | * will be returned and count_ret will be filled with 0. | ||
829 | * | ||
830 | * The calling program must call free() on the array returned, but NOT | ||
831 | * on the string pointers in the array. They are taken as read-only | ||
832 | * internals from the eet file handle. They are only valid as long as | ||
833 | * the file handle is not closed. When it is closed those pointers in the | ||
834 | * array are now not valid and should not be used. | ||
835 | * | ||
836 | * On success the array returned will have a list of string pointers | ||
837 | * that are the names of the entries that matched, and count_ret will have | ||
838 | * the number of entries in this array placed in it. | ||
839 | * | ||
840 | * Hint: an easy way to list all entries in an eet file is to use a glob | ||
841 | * value of "*". | ||
842 | * | ||
843 | * @since 1.0.0 | ||
844 | * @ingroup Eet_File_Group | ||
845 | */ | ||
846 | EAPI char ** | ||
847 | eet_list(Eet_File *ef, | ||
848 | const char *glob, | ||
849 | int *count_ret); | ||
850 | |||
851 | /** | ||
852 | * Return the number of entries in the specified eet file. | ||
853 | * @param ef A valid eet file handle. | ||
854 | * @return Number of entries in ef or -1 if the number of entries | ||
855 | * cannot be read due to open mode restrictions. | ||
856 | * | ||
857 | * @since 1.0.0 | ||
858 | * @ingroup Eet_File_Group | ||
859 | */ | ||
860 | EAPI int | ||
861 | eet_num_entries(Eet_File *ef); | ||
862 | |||
863 | /** | ||
864 | * @defgroup Eet_File_Cipher_Group Eet File Ciphered Main Functions | ||
865 | * | ||
866 | * Most of the @ref Eet_File_Group have alternative versions that | ||
867 | * accounts for ciphers to protect their content. | ||
868 | * | ||
869 | * @see @ref Eet_Cipher_Group | ||
870 | * | ||
871 | * @ingroup Eet_File_Group | ||
872 | */ | ||
873 | |||
874 | /** | ||
875 | * Read a specified entry from an eet file and return data using a cipher. | ||
876 | * @param ef A valid eet file handle opened for reading. | ||
877 | * @param name Name of the entry. eg: "/base/file_i_want". | ||
878 | * @param size_ret Number of bytes read from entry and returned. | ||
879 | * @param cipher_key The key to use as cipher. | ||
880 | * @return The data stored in that entry in the eet file. | ||
881 | * | ||
882 | * This function finds an entry in the eet file that is stored under the | ||
883 | * name specified, and returns that data, decompressed, if successful. | ||
884 | * NULL is returned if the lookup fails or if memory errors are | ||
885 | * encountered. It is the job of the calling program to call free() on | ||
886 | * the returned data. The number of bytes in the returned data chunk are | ||
887 | * placed in size_ret. | ||
888 | * | ||
889 | * If the eet file handle is not valid NULL is returned and size_ret is | ||
890 | * filled with 0. | ||
891 | * | ||
892 | * @see eet_read() | ||
893 | * | ||
894 | * @since 1.0.0 | ||
895 | * @ingroup Eet_File_Cipher_Group | ||
896 | */ | ||
897 | EAPI void * | ||
898 | eet_read_cipher(Eet_File *ef, | ||
899 | const char *name, | ||
900 | int *size_ret, | ||
901 | const char *cipher_key); | ||
902 | |||
903 | /** | ||
904 | * Write a specified entry to an eet file handle using a cipher. | ||
905 | * @param ef A valid eet file handle opened for writing. | ||
906 | * @param name Name of the entry. eg: "/base/file_i_want". | ||
907 | * @param data Pointer to the data to be stored. | ||
908 | * @param size Length in bytes in the data to be stored. | ||
909 | * @param compress Compression flags (1 == compress, 0 = don't compress). | ||
910 | * @param cipher_key The key to use as cipher. | ||
911 | * @return bytes written on successful write, 0 on failure. | ||
912 | * | ||
913 | * This function will write the specified chunk of data to the eet file | ||
914 | * and return greater than 0 on success. 0 will be returned on failure. | ||
915 | * | ||
916 | * The eet file handle must be a valid file handle for an eet file opened | ||
917 | * for writing. If it is not, 0 will be returned and no action will be | ||
918 | * performed. | ||
919 | * | ||
920 | * Name, and data must not be NULL, and size must be > 0. If these | ||
921 | * conditions are not met, 0 will be returned. | ||
922 | * | ||
923 | * The data will be copied (and optionally compressed) in ram, pending | ||
924 | * a flush to disk (it will stay in ram till the eet file handle is | ||
925 | * closed though). | ||
926 | * | ||
927 | * @see eet_write() | ||
928 | * | ||
929 | * @since 1.0.0 | ||
930 | * @ingroup Eet_File_Cipher_Group | ||
931 | */ | ||
932 | EAPI int | ||
933 | eet_write_cipher(Eet_File *ef, | ||
934 | const char *name, | ||
935 | const void *data, | ||
936 | int size, | ||
937 | int compress, | ||
938 | const char *cipher_key); | ||
939 | |||
940 | /** | ||
941 | * @defgroup Eet_File_Image_Group Image Store and Load | ||
942 | * | ||
943 | * Eet efficiently stores and loads images, including alpha | ||
944 | * channels and lossy compressions. | ||
945 | * | ||
946 | * Eet can handle both lossy compression with different levels of quality and | ||
947 | * non-lossy compression with different compression levels. It's also possible, | ||
948 | * given an image data, to only read its header to get the image information | ||
949 | * without decoding the entire content for it. | ||
950 | * | ||
951 | * The encode family of functions will take an image raw buffer and its | ||
952 | * parameters and compress it in memory, returning the new buffer. | ||
953 | * Likewise, the decode functions will read from the given location in memory | ||
954 | * and return the uncompressed image. | ||
955 | * | ||
956 | * The read and write functions will, respectively, encode and decode to or | ||
957 | * from an Eet file, under the specified key. | ||
958 | * | ||
959 | * These functions are fairly low level and the same functionality can be | ||
960 | * achieved using Evas and Edje, making it much easier to work with images | ||
961 | * as well as not needing to worry about things like scaling them. | ||
962 | */ | ||
963 | |||
964 | /** | ||
965 | * Read just the header data for an image and dont decode the pixels. | ||
966 | * @param ef A valid eet file handle opened for reading. | ||
967 | * @param name Name of the entry. eg: "/base/file_i_want". | ||
968 | * @param w A pointer to the unsigned int to hold the width in pixels. | ||
969 | * @param h A pointer to the unsigned int to hold the height in pixels. | ||
970 | * @param alpha A pointer to the int to hold the alpha flag. | ||
971 | * @param compress A pointer to the int to hold the compression amount. | ||
972 | * @param quality A pointer to the int to hold the quality amount. | ||
973 | * @param lossy A pointer to the int to hold the lossiness flag. | ||
974 | * @return 1 on successful decode, 0 otherwise | ||
975 | * | ||
976 | * Reads and decodes the image header data stored under the given key and | ||
977 | * Eet file. | ||
978 | * | ||
979 | * The information decoded is placed in each of the parameters, which must be | ||
980 | * provided. The width and height, measured in pixels, will be stored under | ||
981 | * the variables pointed by @p w and @p h, respectively. If the read or | ||
982 | * decode of the header fails, this values will be 0. The @p alpha parameter | ||
983 | * will be 1 or 0, denoting if the alpha channel of the image is used or not. | ||
984 | * If the image was losslessly compressed, the @p compress parameter will hold | ||
985 | * the compression amount used, ranging from 0 to 9 and @p lossy will be 0. | ||
986 | * In the case of lossy compression, @p lossy will be 1, and the compression | ||
987 | * quality will be placed under @p quality, with a value ranging from 0 to 100. | ||
988 | * | ||
989 | * @see eet_data_image_header_decode() | ||
990 | * @see eet_data_image_header_read_cipher() | ||
991 | * | ||
992 | * @since 1.0.0 | ||
993 | * @ingroup Eet_File_Image_Group | ||
994 | */ | ||
995 | EAPI int | ||
996 | eet_data_image_header_read(Eet_File *ef, | ||
997 | const char *name, | ||
998 | unsigned int *w, | ||
999 | unsigned int *h, | ||
1000 | int *alpha, | ||
1001 | int *compress, | ||
1002 | int *quality, | ||
1003 | int *lossy); | ||
1004 | |||
1005 | /** | ||
1006 | * Read image data from the named key in the eet file. | ||
1007 | * @param ef A valid eet file handle opened for reading. | ||
1008 | * @param name Name of the entry. eg: "/base/file_i_want". | ||
1009 | * @param w A pointer to the unsigned int to hold the width in pixels. | ||
1010 | * @param h A pointer to the unsigned int to hold the height in pixels. | ||
1011 | * @param alpha A pointer to the int to hold the alpha flag. | ||
1012 | * @param compress A pointer to the int to hold the compression amount. | ||
1013 | * @param quality A pointer to the int to hold the quality amount. | ||
1014 | * @param lossy A pointer to the int to hold the lossiness flag. | ||
1015 | * @return The image pixel data decoded | ||
1016 | * | ||
1017 | * Reads and decodes the image stored in the given Eet file under the named | ||
1018 | * key. | ||
1019 | * | ||
1020 | * The returned pixel data is a linear array of pixels starting from the | ||
1021 | * top-left of the image, scanning row by row from left to right. Each pile | ||
1022 | * is a 32bit value, with the high byte being the alpha channel, the next being | ||
1023 | * red, then green, and the low byte being blue. | ||
1024 | * | ||
1025 | * The rest of the parameters are the same as in eet_data_image_header_read(). | ||
1026 | * | ||
1027 | * On success the function returns a pointer to the image data decoded. The | ||
1028 | * calling application is responsible for calling free() on the image data | ||
1029 | * when it is done with it. On failure NULL is returned and the parameter | ||
1030 | * values may not contain any sensible data. | ||
1031 | * | ||
1032 | * @see eet_data_image_header_read() | ||
1033 | * @see eet_data_image_decode() | ||
1034 | * @see eet_data_image_read_cipher() | ||
1035 | * @see eet_data_image_read_to_surface() | ||
1036 | * | ||
1037 | * @since 1.0.0 | ||
1038 | * @ingroup Eet_File_Image_Group | ||
1039 | */ | ||
1040 | EAPI void * | ||
1041 | eet_data_image_read(Eet_File *ef, | ||
1042 | const char *name, | ||
1043 | unsigned int *w, | ||
1044 | unsigned int *h, | ||
1045 | int *alpha, | ||
1046 | int *compress, | ||
1047 | int *quality, | ||
1048 | int *lossy); | ||
1049 | |||
1050 | /** | ||
1051 | * Read image data from the named key in the eet file and store it in the given buffer. | ||
1052 | * @param ef A valid eet file handle opened for reading. | ||
1053 | * @param name Name of the entry. eg: "/base/file_i_want". | ||
1054 | * @param src_x The starting x coordinate from where to dump the stream. | ||
1055 | * @param src_y The starting y coordinate from where to dump the stream. | ||
1056 | * @param d A pointer to the pixel surface. | ||
1057 | * @param w The expected width in pixels of the pixel surface to decode. | ||
1058 | * @param h The expected height in pixels of the pixel surface to decode. | ||
1059 | * @param row_stride The length of a pixels line in the destination surface. | ||
1060 | * @param alpha A pointer to the int to hold the alpha flag. | ||
1061 | * @param compress A pointer to the int to hold the compression amount. | ||
1062 | * @param quality A pointer to the int to hold the quality amount. | ||
1063 | * @param lossy A pointer to the int to hold the lossiness flag. | ||
1064 | * @return 1 on success, 0 otherwise. | ||
1065 | * | ||
1066 | * Reads and decodes the image stored in the given Eet file, placing the | ||
1067 | * resulting pixel data in the buffer pointed by the user. | ||
1068 | * | ||
1069 | * Like eet_data_image_read(), it takes the image data stored under the | ||
1070 | * @p name key in the @p ef file, but instead of returning a new buffer with | ||
1071 | * the pixel data, it places the result in the buffer pointed by @p d, which | ||
1072 | * must be provided by the user and of sufficient size to hold the requested | ||
1073 | * portion of the image. | ||
1074 | * | ||
1075 | * The @p src_x and @p src_y parameters indicate the top-left corner of the | ||
1076 | * section of the image to decode. These have to be higher or equal than 0 and | ||
1077 | * less than the respective total width and height of the image. The width | ||
1078 | * and height of the section of the image to decode are given in @p w and @p h | ||
1079 | * and also can't be higher than the total width and height of the image. | ||
1080 | * | ||
1081 | * The @p row_stride parameter indicates the length in bytes of each line in | ||
1082 | * the destination buffer and it has to be at least @p w * 4. | ||
1083 | * | ||
1084 | * All the other parameters are the same as in eet_data_image_read(). | ||
1085 | * | ||
1086 | * On success the function returns 1, and 0 on failure. On failure the | ||
1087 | * parameter values may not contain any sensible data. | ||
1088 | * | ||
1089 | * @see eet_data_image_read() | ||
1090 | * @see eet_data_image_decode() | ||
1091 | * @see eet_data_image_decode_to_surface() | ||
1092 | * @see eet_data_image_read_to_surface_cipher() | ||
1093 | * | ||
1094 | * @since 1.0.2 | ||
1095 | * @ingroup Eet_File_Image_Group | ||
1096 | */ | ||
1097 | EAPI int | ||
1098 | eet_data_image_read_to_surface(Eet_File *ef, | ||
1099 | const char *name, | ||
1100 | unsigned int src_x, | ||
1101 | unsigned int src_y, | ||
1102 | unsigned int *d, | ||
1103 | unsigned int w, | ||
1104 | unsigned int h, | ||
1105 | unsigned int row_stride, | ||
1106 | int *alpha, | ||
1107 | int *compress, | ||
1108 | int *quality, | ||
1109 | int *lossy); | ||
1110 | |||
1111 | /** | ||
1112 | * Write image data to the named key in an eet file. | ||
1113 | * @param ef A valid eet file handle opened for writing. | ||
1114 | * @param name Name of the entry. eg: "/base/file_i_want". | ||
1115 | * @param data A pointer to the image pixel data. | ||
1116 | * @param w The width of the image in pixels. | ||
1117 | * @param h The height of the image in pixels. | ||
1118 | * @param alpha The alpha channel flag. | ||
1119 | * @param compress The compression amount. | ||
1120 | * @param quality The quality encoding amount. | ||
1121 | * @param lossy The lossiness flag. | ||
1122 | * @return Success if the data was encoded and written or not. | ||
1123 | * | ||
1124 | * This function takes image pixel data and encodes it in an eet file | ||
1125 | * stored under the supplied name key, and returns how many bytes were | ||
1126 | * actually written to encode the image data. | ||
1127 | * | ||
1128 | * The data expected is the same format as returned by eet_data_image_read. | ||
1129 | * If this is not the case weird things may happen. Width and height must | ||
1130 | * be between 1 and 8000 pixels. The alpha flags can be 0 or 1 (0 meaning | ||
1131 | * the alpha values are not useful and 1 meaning they are). Compress can | ||
1132 | * be from 0 to 9 (0 meaning no compression, 9 meaning full compression). | ||
1133 | * This is only used if the image is not lossily encoded. Quality is used on | ||
1134 | * lossy compression and should be a value from 0 to 100. The lossy flag | ||
1135 | * can be 0 or 1. 0 means encode losslessly and 1 means to encode with | ||
1136 | * image quality loss (but then have a much smaller encoding). | ||
1137 | * | ||
1138 | * On success this function returns the number of bytes that were required | ||
1139 | * to encode the image data, or on failure it returns 0. | ||
1140 | * | ||
1141 | * @see eet_data_image_read() | ||
1142 | * @see eet_data_image_encode() | ||
1143 | * @see eet_data_image_write_cipher() | ||
1144 | * | ||
1145 | * @since 1.0.0 | ||
1146 | * @ingroup Eet_File_Image_Group | ||
1147 | */ | ||
1148 | EAPI int | ||
1149 | eet_data_image_write(Eet_File *ef, | ||
1150 | const char *name, | ||
1151 | const void *data, | ||
1152 | unsigned int w, | ||
1153 | unsigned int h, | ||
1154 | int alpha, | ||
1155 | int compress, | ||
1156 | int quality, | ||
1157 | int lossy); | ||
1158 | |||
1159 | /** | ||
1160 | * Decode Image data header only to get information. | ||
1161 | * @param data The encoded pixel data. | ||
1162 | * @param size The size, in bytes, of the encoded pixel data. | ||
1163 | * @param w A pointer to the unsigned int to hold the width in pixels. | ||
1164 | * @param h A pointer to the unsigned int to hold the height in pixels. | ||
1165 | * @param alpha A pointer to the int to hold the alpha flag. | ||
1166 | * @param compress A pointer to the int to hold the compression amount. | ||
1167 | * @param quality A pointer to the int to hold the quality amount. | ||
1168 | * @param lossy A pointer to the int to hold the lossiness flag. | ||
1169 | * @return 1 on success, 0 on failure. | ||
1170 | * | ||
1171 | * This function works exactly like eet_data_image_header_read(), but instead | ||
1172 | * of reading from an Eet file, it takes the buffer of size @p size pointed | ||
1173 | * by @p data, which must be a valid Eet encoded image. | ||
1174 | * | ||
1175 | * On success the function returns 1 indicating the header was read and | ||
1176 | * decoded properly, or 0 on failure. | ||
1177 | * | ||
1178 | * @see eet_data_image_header_read() | ||
1179 | * @see eet_data_image_header_decode_cipher() | ||
1180 | * | ||
1181 | * @since 1.0.0 | ||
1182 | * @ingroup Eet_File_Image_Group | ||
1183 | */ | ||
1184 | EAPI int | ||
1185 | eet_data_image_header_decode(const void *data, | ||
1186 | int size, | ||
1187 | unsigned int *w, | ||
1188 | unsigned int *h, | ||
1189 | int *alpha, | ||
1190 | int *compress, | ||
1191 | int *quality, | ||
1192 | int *lossy); | ||
1193 | |||
1194 | /** | ||
1195 | * Decode Image data into pixel data. | ||
1196 | * @param data The encoded pixel data. | ||
1197 | * @param size The size, in bytes, of the encoded pixel data. | ||
1198 | * @param w A pointer to the unsigned int to hold the width in pixels. | ||
1199 | * @param h A pointer to the unsigned int to hold the height in pixels. | ||
1200 | * @param alpha A pointer to the int to hold the alpha flag. | ||
1201 | * @param compress A pointer to the int to hold the compression amount. | ||
1202 | * @param quality A pointer to the int to hold the quality amount. | ||
1203 | * @param lossy A pointer to the int to hold the lossiness flag. | ||
1204 | * @return The image pixel data decoded | ||
1205 | * | ||
1206 | * This function takes encoded pixel data and decodes it into raw RGBA | ||
1207 | * pixels on success. | ||
1208 | * | ||
1209 | * It works exactly like eet_data_image_read(), but it takes the encoded | ||
1210 | * data in the @p data buffer of size @p size, instead of reading from a file. | ||
1211 | * All the others parameters are also the same. | ||
1212 | * | ||
1213 | * On success the function returns a pointer to the image data decoded. The | ||
1214 | * calling application is responsible for calling free() on the image data | ||
1215 | * when it is done with it. On failure NULL is returned and the parameter | ||
1216 | * values may not contain any sensible data. | ||
1217 | * | ||
1218 | * @see eet_data_image_read() | ||
1219 | * @see eet_data_image_decode_cipher() | ||
1220 | * | ||
1221 | * @since 1.0.0 | ||
1222 | * @ingroup Eet_File_Image_Group | ||
1223 | */ | ||
1224 | EAPI void * | ||
1225 | eet_data_image_decode(const void *data, | ||
1226 | int size, | ||
1227 | unsigned int *w, | ||
1228 | unsigned int *h, | ||
1229 | int *alpha, | ||
1230 | int *compress, | ||
1231 | int *quality, | ||
1232 | int *lossy); | ||
1233 | |||
1234 | /** | ||
1235 | * Decode Image data into pixel data and stores in the given buffer. | ||
1236 | * @param data The encoded pixel data. | ||
1237 | * @param size The size, in bytes, of the encoded pixel data. | ||
1238 | * @param src_x The starting x coordinate from where to dump the stream. | ||
1239 | * @param src_y The starting y coordinate from where to dump the stream. | ||
1240 | * @param d A pointer to the pixel surface. | ||
1241 | * @param w The expected width in pixels of the pixel surface to decode. | ||
1242 | * @param h The expected height in pixels of the pixel surface to decode. | ||
1243 | * @param row_stride The length of a pixels line in the destination surface. | ||
1244 | * @param alpha A pointer to the int to hold the alpha flag. | ||
1245 | * @param compress A pointer to the int to hold the compression amount. | ||
1246 | * @param quality A pointer to the int to hold the quality amount. | ||
1247 | * @param lossy A pointer to the int to hold the lossiness flag. | ||
1248 | * @return 1 on success, 0 otherwise. | ||
1249 | * | ||
1250 | * Like eet_data_image_read_to_surface(), but reading the given @p data buffer | ||
1251 | * instead of a file. | ||
1252 | * | ||
1253 | * On success the function returns 1, and 0 on failure. On failure the | ||
1254 | * parameter values may not contain any sensible data. | ||
1255 | * | ||
1256 | * @see eet_data_image_read_to_surface() | ||
1257 | * @see eet_data_image_decode_to_surface_cipher() | ||
1258 | * | ||
1259 | * @since 1.0.2 | ||
1260 | * @ingroup Eet_File_Image_Group | ||
1261 | */ | ||
1262 | EAPI int | ||
1263 | eet_data_image_decode_to_surface(const void *data, | ||
1264 | int size, | ||
1265 | unsigned int src_x, | ||
1266 | unsigned int src_y, | ||
1267 | unsigned int *d, | ||
1268 | unsigned int w, | ||
1269 | unsigned int h, | ||
1270 | unsigned int row_stride, | ||
1271 | int *alpha, | ||
1272 | int *compress, | ||
1273 | int *quality, | ||
1274 | int *lossy); | ||
1275 | |||
1276 | /** | ||
1277 | * Encode image data for storage or transmission. | ||
1278 | * @param data A pointer to the image pixel data. | ||
1279 | * @param size_ret A pointer to an int to hold the size of the returned data. | ||
1280 | * @param w The width of the image in pixels. | ||
1281 | * @param h The height of the image in pixels. | ||
1282 | * @param alpha The alpha channel flag. | ||
1283 | * @param compress The compression amount. | ||
1284 | * @param quality The quality encoding amount. | ||
1285 | * @param lossy The lossiness flag. | ||
1286 | * @return The encoded image data. | ||
1287 | * | ||
1288 | * This function stakes image pixel data and encodes it with compression and | ||
1289 | * possible loss of quality (as a trade off for size) for storage or | ||
1290 | * transmission to another system. | ||
1291 | * | ||
1292 | * It works like eet_data_image_write(), but instead of writing the encoded | ||
1293 | * image into an Eet file, it allocates a new buffer of the size required and | ||
1294 | * returns the encoded data in it. | ||
1295 | * | ||
1296 | * On success this function returns a pointer to the encoded data that you | ||
1297 | * can free with free() when no longer needed. | ||
1298 | * | ||
1299 | * @see eet_data_image_write() | ||
1300 | * @see eet_data_image_read() | ||
1301 | * @see eet_data_image_encode_cipher() | ||
1302 | * | ||
1303 | * @since 1.0.0 | ||
1304 | * @ingroup Eet_File_Image_Group | ||
1305 | */ | ||
1306 | EAPI void * | ||
1307 | eet_data_image_encode(const void *data, | ||
1308 | int *size_ret, | ||
1309 | unsigned int w, | ||
1310 | unsigned int h, | ||
1311 | int alpha, | ||
1312 | int compress, | ||
1313 | int quality, | ||
1314 | int lossy); | ||
1315 | |||
1316 | /** | ||
1317 | * @defgroup Eet_File_Image_Cipher_Group Image Store and Load using a Cipher | ||
1318 | * | ||
1319 | * Most of the @ref Eet_File_Image_Group have alternative versions | ||
1320 | * that accounts for ciphers to protect their content. | ||
1321 | * | ||
1322 | * @see @ref Eet_Cipher_Group | ||
1323 | * | ||
1324 | * @ingroup Eet_File_Image_Group | ||
1325 | */ | ||
1326 | |||
1327 | /** | ||
1328 | * Read just the header data for an image and dont decode the pixels using a cipher. | ||
1329 | * @param ef A valid eet file handle opened for reading. | ||
1330 | * @param name Name of the entry. eg: "/base/file_i_want". | ||
1331 | * @param cipher_key The key to use as cipher. | ||
1332 | * @param w A pointer to the unsigned int to hold the width in pixels. | ||
1333 | * @param h A pointer to the unsigned int to hold the height in pixels. | ||
1334 | * @param alpha A pointer to the int to hold the alpha flag. | ||
1335 | * @param compress A pointer to the int to hold the compression amount. | ||
1336 | * @param quality A pointer to the int to hold the quality amount. | ||
1337 | * @param lossy A pointer to the int to hold the lossiness flag. | ||
1338 | * @return 1 on successful decode, 0 otherwise | ||
1339 | * | ||
1340 | * This function reads an image from an eet file stored under the named | ||
1341 | * key in the eet file and return a pointer to the decompressed pixel data. | ||
1342 | * | ||
1343 | * The other parameters of the image (width, height etc.) are placed into | ||
1344 | * the values pointed to (they must be supplied). The pixel data is a linear | ||
1345 | * array of pixels starting from the top-left of the image scanning row by | ||
1346 | * row from left to right. Each pixel is a 32bit value, with the high byte | ||
1347 | * being the alpha channel, the next being red, then green, and the low byte | ||
1348 | * being blue. The width and height are measured in pixels and will be | ||
1349 | * greater than 0 when returned. The alpha flag is either 0 or 1. 0 denotes | ||
1350 | * that the alpha channel is not used. 1 denotes that it is significant. | ||
1351 | * Compress is filled with the compression value/amount the image was | ||
1352 | * stored with. The quality value is filled with the quality encoding of | ||
1353 | * the image file (0 - 100). The lossy flags is either 0 or 1 as to if | ||
1354 | * the image was encoded lossily or not. | ||
1355 | * | ||
1356 | * On success the function returns 1 indicating the header was read and | ||
1357 | * decoded properly, or 0 on failure. | ||
1358 | * | ||
1359 | * @see eet_data_image_header_read() | ||
1360 | * | ||
1361 | * @since 1.0.0 | ||
1362 | * @ingroup Eet_File_Image_Cipher_Group | ||
1363 | */ | ||
1364 | EAPI int | ||
1365 | eet_data_image_header_read_cipher(Eet_File *ef, | ||
1366 | const char *name, | ||
1367 | const char *cipher_key, | ||
1368 | unsigned int *w, | ||
1369 | unsigned int *h, | ||
1370 | int *alpha, | ||
1371 | int *compress, | ||
1372 | int *quality, | ||
1373 | int *lossy); | ||
1374 | |||
1375 | /** | ||
1376 | * Read image data from the named key in the eet file using a cipher. | ||
1377 | * @param ef A valid eet file handle opened for reading. | ||
1378 | * @param name Name of the entry. eg: "/base/file_i_want". | ||
1379 | * @param cipher_key The key to use as cipher. | ||
1380 | * @param w A pointer to the unsigned int to hold the width in pixels. | ||
1381 | * @param h A pointer to the unsigned int to hold the height in pixels. | ||
1382 | * @param alpha A pointer to the int to hold the alpha flag. | ||
1383 | * @param compress A pointer to the int to hold the compression amount. | ||
1384 | * @param quality A pointer to the int to hold the quality amount. | ||
1385 | * @param lossy A pointer to the int to hold the lossiness flag. | ||
1386 | * @return The image pixel data decoded | ||
1387 | * | ||
1388 | * This function reads an image from an eet file stored under the named | ||
1389 | * key in the eet file and return a pointer to the decompressed pixel data. | ||
1390 | * | ||
1391 | * The other parameters of the image (width, height etc.) are placed into | ||
1392 | * the values pointed to (they must be supplied). The pixel data is a linear | ||
1393 | * array of pixels starting from the top-left of the image scanning row by | ||
1394 | * row from left to right. Each pixel is a 32bit value, with the high byte | ||
1395 | * being the alpha channel, the next being red, then green, and the low byte | ||
1396 | * being blue. The width and height are measured in pixels and will be | ||
1397 | * greater than 0 when returned. The alpha flag is either 0 or 1. 0 denotes | ||
1398 | * that the alpha channel is not used. 1 denotes that it is significant. | ||
1399 | * Compress is filled with the compression value/amount the image was | ||
1400 | * stored with. The quality value is filled with the quality encoding of | ||
1401 | * the image file (0 - 100). The lossy flags is either 0 or 1 as to if | ||
1402 | * the image was encoded lossily or not. | ||
1403 | * | ||
1404 | * On success the function returns a pointer to the image data decoded. The | ||
1405 | * calling application is responsible for calling free() on the image data | ||
1406 | * when it is done with it. On failure NULL is returned and the parameter | ||
1407 | * values may not contain any sensible data. | ||
1408 | * | ||
1409 | * @see eet_data_image_read() | ||
1410 | * | ||
1411 | * @since 1.0.0 | ||
1412 | * @ingroup Eet_File_Image_Cipher_Group | ||
1413 | */ | ||
1414 | EAPI void * | ||
1415 | eet_data_image_read_cipher(Eet_File *ef, | ||
1416 | const char *name, | ||
1417 | const char *cipher_key, | ||
1418 | unsigned int *w, | ||
1419 | unsigned int *h, | ||
1420 | int *alpha, | ||
1421 | int *compress, | ||
1422 | int *quality, | ||
1423 | int *lossy); | ||
1424 | |||
1425 | /** | ||
1426 | * Read image data from the named key in the eet file using a cipher. | ||
1427 | * @param ef A valid eet file handle opened for reading. | ||
1428 | * @param name Name of the entry. eg: "/base/file_i_want". | ||
1429 | * @param cipher_key The key to use as cipher. | ||
1430 | * @param src_x The starting x coordinate from where to dump the stream. | ||
1431 | * @param src_y The starting y coordinate from where to dump the stream. | ||
1432 | * @param d A pointer to the pixel surface. | ||
1433 | * @param w The expected width in pixels of the pixel surface to decode. | ||
1434 | * @param h The expected height in pixels of the pixel surface to decode. | ||
1435 | * @param row_stride The length of a pixels line in the destination surface. | ||
1436 | * @param alpha A pointer to the int to hold the alpha flag. | ||
1437 | * @param compress A pointer to the int to hold the compression amount. | ||
1438 | * @param quality A pointer to the int to hold the quality amount. | ||
1439 | * @param lossy A pointer to the int to hold the lossiness flag. | ||
1440 | * @return 1 on success, 0 otherwise. | ||
1441 | * | ||
1442 | * This function reads an image from an eet file stored under the named | ||
1443 | * key in the eet file and return a pointer to the decompressed pixel data. | ||
1444 | * | ||
1445 | * The other parameters of the image (width, height etc.) are placed into | ||
1446 | * the values pointed to (they must be supplied). The pixel data is a linear | ||
1447 | * array of pixels starting from the top-left of the image scanning row by | ||
1448 | * row from left to right. Each pixel is a 32bit value, with the high byte | ||
1449 | * being the alpha channel, the next being red, then green, and the low byte | ||
1450 | * being blue. The width and height are measured in pixels and will be | ||
1451 | * greater than 0 when returned. The alpha flag is either 0 or 1. 0 denotes | ||
1452 | * that the alpha channel is not used. 1 denotes that it is significant. | ||
1453 | * Compress is filled with the compression value/amount the image was | ||
1454 | * stored with. The quality value is filled with the quality encoding of | ||
1455 | * the image file (0 - 100). The lossy flags is either 0 or 1 as to if | ||
1456 | * the image was encoded lossily or not. | ||
1457 | * | ||
1458 | * On success the function returns 1, and 0 on failure. On failure the | ||
1459 | * parameter values may not contain any sensible data. | ||
1460 | * | ||
1461 | * @see eet_data_image_read_to_surface() | ||
1462 | * | ||
1463 | * @since 1.0.2 | ||
1464 | * @ingroup Eet_File_Image_Cipher_Group | ||
1465 | */ | ||
1466 | EAPI int | ||
1467 | eet_data_image_read_to_surface_cipher(Eet_File *ef, | ||
1468 | const char *name, | ||
1469 | const char *cipher_key, | ||
1470 | unsigned int src_x, | ||
1471 | unsigned int src_y, | ||
1472 | unsigned int *d, | ||
1473 | unsigned int w, | ||
1474 | unsigned int h, | ||
1475 | unsigned int row_stride, | ||
1476 | int *alpha, | ||
1477 | int *compress, | ||
1478 | int *quality, | ||
1479 | int *lossy); | ||
1480 | |||
1481 | /** | ||
1482 | * Write image data to the named key in an eet file using a cipher. | ||
1483 | * @param ef A valid eet file handle opened for writing. | ||
1484 | * @param name Name of the entry. eg: "/base/file_i_want". | ||
1485 | * @param cipher_key The key to use as cipher. | ||
1486 | * @param data A pointer to the image pixel data. | ||
1487 | * @param w The width of the image in pixels. | ||
1488 | * @param h The height of the image in pixels. | ||
1489 | * @param alpha The alpha channel flag. | ||
1490 | * @param compress The compression amount. | ||
1491 | * @param quality The quality encoding amount. | ||
1492 | * @param lossy The lossiness flag. | ||
1493 | * @return Success if the data was encoded and written or not. | ||
1494 | * | ||
1495 | * This function takes image pixel data and encodes it in an eet file | ||
1496 | * stored under the supplied name key, and returns how many bytes were | ||
1497 | * actually written to encode the image data. | ||
1498 | * | ||
1499 | * The data expected is the same format as returned by eet_data_image_read. | ||
1500 | * If this is not the case weird things may happen. Width and height must | ||
1501 | * be between 1 and 8000 pixels. The alpha flags can be 0 or 1 (0 meaning | ||
1502 | * the alpha values are not useful and 1 meaning they are). Compress can | ||
1503 | * be from 0 to 9 (0 meaning no compression, 9 meaning full compression). | ||
1504 | * This is only used if the image is not lossily encoded. Quality is used on | ||
1505 | * lossy compression and should be a value from 0 to 100. The lossy flag | ||
1506 | * can be 0 or 1. 0 means encode losslessly and 1 means to encode with | ||
1507 | * image quality loss (but then have a much smaller encoding). | ||
1508 | * | ||
1509 | * On success this function returns the number of bytes that were required | ||
1510 | * to encode the image data, or on failure it returns 0. | ||
1511 | * | ||
1512 | * @see eet_data_image_write() | ||
1513 | * | ||
1514 | * @since 1.0.0 | ||
1515 | * @ingroup Eet_File_Image_Cipher_Group | ||
1516 | */ | ||
1517 | EAPI int | ||
1518 | eet_data_image_write_cipher(Eet_File *ef, | ||
1519 | const char *name, | ||
1520 | const char *cipher_key, | ||
1521 | const void *data, | ||
1522 | unsigned int w, | ||
1523 | unsigned int h, | ||
1524 | int alpha, | ||
1525 | int compress, | ||
1526 | int quality, | ||
1527 | int lossy); | ||
1528 | |||
1529 | /** | ||
1530 | * Decode Image data header only to get information using a cipher. | ||
1531 | * @param data The encoded pixel data. | ||
1532 | * @param cipher_key The key to use as cipher. | ||
1533 | * @param size The size, in bytes, of the encoded pixel data. | ||
1534 | * @param w A pointer to the unsigned int to hold the width in pixels. | ||
1535 | * @param h A pointer to the unsigned int to hold the height in pixels. | ||
1536 | * @param alpha A pointer to the int to hold the alpha flag. | ||
1537 | * @param compress A pointer to the int to hold the compression amount. | ||
1538 | * @param quality A pointer to the int to hold the quality amount. | ||
1539 | * @param lossy A pointer to the int to hold the lossiness flag. | ||
1540 | * @return 1 on success, 0 on failure. | ||
1541 | * | ||
1542 | * This function takes encoded pixel data and decodes it into raw RGBA | ||
1543 | * pixels on success. | ||
1544 | * | ||
1545 | * The other parameters of the image (width, height etc.) are placed into | ||
1546 | * the values pointed to (they must be supplied). The pixel data is a linear | ||
1547 | * array of pixels starting from the top-left of the image scanning row by | ||
1548 | * row from left to right. Each pixel is a 32bit value, with the high byte | ||
1549 | * being the alpha channel, the next being red, then green, and the low byte | ||
1550 | * being blue. The width and height are measured in pixels and will be | ||
1551 | * greater than 0 when returned. The alpha flag is either 0 or 1. 0 denotes | ||
1552 | * that the alpha channel is not used. 1 denotes that it is significant. | ||
1553 | * Compress is filled with the compression value/amount the image was | ||
1554 | * stored with. The quality value is filled with the quality encoding of | ||
1555 | * the image file (0 - 100). The lossy flags is either 0 or 1 as to if | ||
1556 | * the image was encoded lossily or not. | ||
1557 | * | ||
1558 | * On success the function returns 1 indicating the header was read and | ||
1559 | * decoded properly, or 0 on failure. | ||
1560 | * | ||
1561 | * @see eet_data_image_header_decode() | ||
1562 | * | ||
1563 | * @since 1.0.0 | ||
1564 | * @ingroup Eet_File_Image_Cipher_Group | ||
1565 | */ | ||
1566 | EAPI int | ||
1567 | eet_data_image_header_decode_cipher(const void *data, | ||
1568 | const char *cipher_key, | ||
1569 | int size, | ||
1570 | unsigned int *w, | ||
1571 | unsigned int *h, | ||
1572 | int *alpha, | ||
1573 | int *compress, | ||
1574 | int *quality, | ||
1575 | int *lossy); | ||
1576 | |||
1577 | /** | ||
1578 | * Decode Image data into pixel data using a cipher. | ||
1579 | * @param data The encoded pixel data. | ||
1580 | * @param cipher_key The key to use as cipher. | ||
1581 | * @param size The size, in bytes, of the encoded pixel data. | ||
1582 | * @param w A pointer to the unsigned int to hold the width in pixels. | ||
1583 | * @param h A pointer to the unsigned int to hold the height in pixels. | ||
1584 | * @param alpha A pointer to the int to hold the alpha flag. | ||
1585 | * @param compress A pointer to the int to hold the compression amount. | ||
1586 | * @param quality A pointer to the int to hold the quality amount. | ||
1587 | * @param lossy A pointer to the int to hold the lossiness flag. | ||
1588 | * @return The image pixel data decoded | ||
1589 | * | ||
1590 | * This function takes encoded pixel data and decodes it into raw RGBA | ||
1591 | * pixels on success. | ||
1592 | * | ||
1593 | * The other parameters of the image (width, height etc.) are placed into | ||
1594 | * the values pointed to (they must be supplied). The pixel data is a linear | ||
1595 | * array of pixels starting from the top-left of the image scanning row by | ||
1596 | * row from left to right. Each pixel is a 32bit value, with the high byte | ||
1597 | * being the alpha channel, the next being red, then green, and the low byte | ||
1598 | * being blue. The width and height are measured in pixels and will be | ||
1599 | * greater than 0 when returned. The alpha flag is either 0 or 1. 0 denotes | ||
1600 | * that the alpha channel is not used. 1 denotes that it is significant. | ||
1601 | * Compress is filled with the compression value/amount the image was | ||
1602 | * stored with. The quality value is filled with the quality encoding of | ||
1603 | * the image file (0 - 100). The lossy flags is either 0 or 1 as to if | ||
1604 | * the image was encoded lossily or not. | ||
1605 | * | ||
1606 | * On success the function returns a pointer to the image data decoded. The | ||
1607 | * calling application is responsible for calling free() on the image data | ||
1608 | * when it is done with it. On failure NULL is returned and the parameter | ||
1609 | * values may not contain any sensible data. | ||
1610 | * | ||
1611 | * @see eet_data_image_decode() | ||
1612 | * | ||
1613 | * @since 1.0.0 | ||
1614 | * @ingroup Eet_File_Image_Cipher_Group | ||
1615 | */ | ||
1616 | EAPI void * | ||
1617 | eet_data_image_decode_cipher(const void *data, | ||
1618 | const char *cipher_key, | ||
1619 | int size, | ||
1620 | unsigned int *w, | ||
1621 | unsigned int *h, | ||
1622 | int *alpha, | ||
1623 | int *compress, | ||
1624 | int *quality, | ||
1625 | int *lossy); | ||
1626 | |||
1627 | /** | ||
1628 | * Decode Image data into pixel data using a cipher. | ||
1629 | * @param data The encoded pixel data. | ||
1630 | * @param cipher_key The key to use as cipher. | ||
1631 | * @param size The size, in bytes, of the encoded pixel data. | ||
1632 | * @param src_x The starting x coordinate from where to dump the stream. | ||
1633 | * @param src_y The starting y coordinate from where to dump the stream. | ||
1634 | * @param d A pointer to the pixel surface. | ||
1635 | * @param w The expected width in pixels of the pixel surface to decode. | ||
1636 | * @param h The expected height in pixels of the pixel surface to decode. | ||
1637 | * @param row_stride The length of a pixels line in the destination surface. | ||
1638 | * @param alpha A pointer to the int to hold the alpha flag. | ||
1639 | * @param compress A pointer to the int to hold the compression amount. | ||
1640 | * @param quality A pointer to the int to hold the quality amount. | ||
1641 | * @param lossy A pointer to the int to hold the lossiness flag. | ||
1642 | * @return 1 on success, 0 otherwise. | ||
1643 | * | ||
1644 | * This function takes encoded pixel data and decodes it into raw RGBA | ||
1645 | * pixels on success. | ||
1646 | * | ||
1647 | * The other parameters of the image (alpha, compress etc.) are placed into | ||
1648 | * the values pointed to (they must be supplied). The pixel data is a linear | ||
1649 | * array of pixels starting from the top-left of the image scanning row by | ||
1650 | * row from left to right. Each pixel is a 32bit value, with the high byte | ||
1651 | * being the alpha channel, the next being red, then green, and the low byte | ||
1652 | * being blue. The width and height are measured in pixels and will be | ||
1653 | * greater than 0 when returned. The alpha flag is either 0 or 1. 0 denotes | ||
1654 | * that the alpha channel is not used. 1 denotes that it is significant. | ||
1655 | * Compress is filled with the compression value/amount the image was | ||
1656 | * stored with. The quality value is filled with the quality encoding of | ||
1657 | * the image file (0 - 100). The lossy flags is either 0 or 1 as to if | ||
1658 | * the image was encoded lossily or not. | ||
1659 | * | ||
1660 | * On success the function returns 1, and 0 on failure. On failure the | ||
1661 | * parameter values may not contain any sensible data. | ||
1662 | * | ||
1663 | * @see eet_data_image_decode_to_surface() | ||
1664 | * | ||
1665 | * @since 1.0.2 | ||
1666 | * @ingroup Eet_File_Image_Cipher_Group | ||
1667 | */ | ||
1668 | EAPI int | ||
1669 | eet_data_image_decode_to_surface_cipher(const void *data, | ||
1670 | const char *cipher_key, | ||
1671 | int size, | ||
1672 | unsigned int src_x, | ||
1673 | unsigned int src_y, | ||
1674 | unsigned int *d, | ||
1675 | unsigned int w, | ||
1676 | unsigned int h, | ||
1677 | unsigned int row_stride, | ||
1678 | int *alpha, | ||
1679 | int *compress, | ||
1680 | int *quality, | ||
1681 | int *lossy); | ||
1682 | |||
1683 | /** | ||
1684 | * Encode image data for storage or transmission using a cipher. | ||
1685 | * @param data A pointer to the image pixel data. | ||
1686 | * @param cipher_key The key to use as cipher. | ||
1687 | * @param size_ret A pointer to an int to hold the size of the returned data. | ||
1688 | * @param w The width of the image in pixels. | ||
1689 | * @param h The height of the image in pixels. | ||
1690 | * @param alpha The alpha channel flag. | ||
1691 | * @param compress The compression amount. | ||
1692 | * @param quality The quality encoding amount. | ||
1693 | * @param lossy The lossiness flag. | ||
1694 | * @return The encoded image data. | ||
1695 | * | ||
1696 | * This function stakes image pixel data and encodes it with compression and | ||
1697 | * possible loss of quality (as a trade off for size) for storage or | ||
1698 | * transmission to another system. | ||
1699 | * | ||
1700 | * The data expected is the same format as returned by eet_data_image_read. | ||
1701 | * If this is not the case weird things may happen. Width and height must | ||
1702 | * be between 1 and 8000 pixels. The alpha flags can be 0 or 1 (0 meaning | ||
1703 | * the alpha values are not useful and 1 meaning they are). Compress can | ||
1704 | * be from 0 to 9 (0 meaning no compression, 9 meaning full compression). | ||
1705 | * This is only used if the image is not lossily encoded. Quality is used on | ||
1706 | * lossy compression and should be a value from 0 to 100. The lossy flag | ||
1707 | * can be 0 or 1. 0 means encode losslessly and 1 means to encode with | ||
1708 | * image quality loss (but then have a much smaller encoding). | ||
1709 | * | ||
1710 | * On success this function returns a pointer to the encoded data that you | ||
1711 | * can free with free() when no longer needed. | ||
1712 | * | ||
1713 | * @see eet_data_image_encode() | ||
1714 | * | ||
1715 | * @since 1.0.0 | ||
1716 | * @ingroup Eet_File_Image_Cipher_Group | ||
1717 | */ | ||
1718 | EAPI void * | ||
1719 | eet_data_image_encode_cipher(const void *data, | ||
1720 | const char *cipher_key, | ||
1721 | unsigned int w, | ||
1722 | unsigned int h, | ||
1723 | int alpha, | ||
1724 | int compress, | ||
1725 | int quality, | ||
1726 | int lossy, | ||
1727 | int *size_ret); | ||
1728 | |||
1729 | /** | ||
1730 | * @defgroup Eet_Cipher_Group Cipher, Identity and Protection Mechanisms | ||
1731 | * | ||
1732 | * Eet allows one to protect entries of an #Eet_File | ||
1733 | * individually. This may be used to ensure data was not tampered or | ||
1734 | * that third party does not read your data. | ||
1735 | * | ||
1736 | * @see @ref Eet_File_Cipher_Group | ||
1737 | * @see @ref Eet_File_Image_Cipher_Group | ||
1738 | * | ||
1739 | * @{ | ||
1740 | */ | ||
1741 | |||
1742 | /** | ||
1743 | * @typedef Eet_Key | ||
1744 | * Opaque handle that defines an identity (also known as key) | ||
1745 | * in Eet's cipher system. | ||
1746 | */ | ||
1747 | typedef struct _Eet_Key Eet_Key; | ||
1748 | |||
1749 | /** | ||
1750 | * @} | ||
1751 | */ | ||
1752 | |||
1753 | /** | ||
1754 | * Callback used to request if needed the password of a private key. | ||
1755 | * | ||
1756 | * @param buffer the buffer where to store the password. | ||
1757 | * @param size the maximum password size (size of buffer, including '@\0'). | ||
1758 | * @param rwflag if the buffer is also readable or just writable. | ||
1759 | * @param data currently unused, may contain some context in future. | ||
1760 | * @return 1 on success and password was set to @p buffer, 0 on failure. | ||
1761 | * | ||
1762 | * @since 1.2.0 | ||
1763 | * @ingroup Eet_Cipher_Group | ||
1764 | */ | ||
1765 | typedef int (*Eet_Key_Password_Callback)(char *buffer, int size, int rwflag, void *data); | ||
1766 | |||
1767 | /** | ||
1768 | * Create an Eet_Key needed for signing an eet file. | ||
1769 | * | ||
1770 | * The certificate should provide the public that match the private key. | ||
1771 | * No verification is done to ensure that. | ||
1772 | * | ||
1773 | * @param certificate_file The file where to find the certificate. | ||
1774 | * @param private_key_file The file that contains the private key. | ||
1775 | * @param cb Function to callback if password is required to unlock | ||
1776 | * private key. | ||
1777 | * @return A key handle to use, or @c NULL on failure. | ||
1778 | * | ||
1779 | * @see eet_identity_close() | ||
1780 | * | ||
1781 | * @since 1.2.0 | ||
1782 | * @ingroup Eet_Cipher_Group | ||
1783 | */ | ||
1784 | EAPI Eet_Key * | ||
1785 | eet_identity_open(const char *certificate_file, | ||
1786 | const char *private_key_file, | ||
1787 | Eet_Key_Password_Callback cb); | ||
1788 | |||
1789 | /** | ||
1790 | * Close and release all ressource used by an Eet_Key. An | ||
1791 | * reference counter prevent it from being freed until all file | ||
1792 | * using it are also closed. | ||
1793 | * | ||
1794 | * @param key the key handle to close and free resources. | ||
1795 | * | ||
1796 | * @since 1.2.0 | ||
1797 | * @ingroup Eet_Cipher_Group | ||
1798 | */ | ||
1799 | EAPI void | ||
1800 | eet_identity_close(Eet_Key *key); | ||
1801 | |||
1802 | /** | ||
1803 | * Set a key to sign a file | ||
1804 | * | ||
1805 | * @param ef the file to set the identity. | ||
1806 | * @param key the key handle to set as identity. | ||
1807 | * @return #EET_ERROR_BAD_OBJECT if @p ef is invalid or | ||
1808 | * #EET_ERROR_NONE on success. | ||
1809 | * | ||
1810 | * @since 1.2.0 | ||
1811 | * @ingroup Eet_Cipher_Group | ||
1812 | */ | ||
1813 | EAPI Eet_Error | ||
1814 | eet_identity_set(Eet_File *ef, | ||
1815 | Eet_Key *key); | ||
1816 | |||
1817 | /** | ||
1818 | * Display both private and public key of an Eet_Key. | ||
1819 | * | ||
1820 | * @param key the handle to print. | ||
1821 | * @param out where to print. | ||
1822 | * | ||
1823 | * @since 1.2.0 | ||
1824 | * @ingroup Eet_Cipher_Group | ||
1825 | */ | ||
1826 | EAPI void | ||
1827 | eet_identity_print(Eet_Key *key, | ||
1828 | FILE *out); | ||
1829 | |||
1830 | /** | ||
1831 | * Get the x509 der certificate associated with an Eet_File. Will return NULL | ||
1832 | * if the file is not signed. | ||
1833 | * | ||
1834 | * @param ef The file handle to query. | ||
1835 | * @param der_length The length of returned data, may be @c NULL. | ||
1836 | * @return the x509 certificate or @c NULL on error. | ||
1837 | * | ||
1838 | * @since 1.2.0 | ||
1839 | * @ingroup Eet_Cipher_Group | ||
1840 | */ | ||
1841 | EAPI const void * | ||
1842 | eet_identity_x509(Eet_File *ef, | ||
1843 | int *der_length); | ||
1844 | |||
1845 | /** | ||
1846 | * Get the raw signature associated with an Eet_File. Will return NULL | ||
1847 | * if the file is not signed. | ||
1848 | * | ||
1849 | * @param ef The file handle to query. | ||
1850 | * @param signature_length The length of returned data, may be @c NULL. | ||
1851 | * @return the raw signature or @c NULL on error. | ||
1852 | * | ||
1853 | * @ingroup Eet_Cipher_Group | ||
1854 | */ | ||
1855 | EAPI const void * | ||
1856 | eet_identity_signature(Eet_File *ef, | ||
1857 | int *signature_length); | ||
1858 | |||
1859 | /** | ||
1860 | * Get the SHA1 associated with a file. Could be the one used to | ||
1861 | * sign the data or if the data where not signed, it will be the | ||
1862 | * SHA1 of the file. | ||
1863 | * | ||
1864 | * @param ef The file handle to query. | ||
1865 | * @param sha1_length The length of returned data, may be @c NULL. | ||
1866 | * @return the associated SHA1 or @c NULL on error. | ||
1867 | * | ||
1868 | * @since 1.2.0 | ||
1869 | * @ingroup Eet_Cipher_Group | ||
1870 | */ | ||
1871 | EAPI const void * | ||
1872 | eet_identity_sha1(Eet_File *ef, | ||
1873 | int *sha1_length); | ||
1874 | |||
1875 | /** | ||
1876 | * Display the x509 der certificate to out. | ||
1877 | * | ||
1878 | * @param certificate the x509 certificate to print | ||
1879 | * @param der_length The length the certificate. | ||
1880 | * @param out where to print. | ||
1881 | * | ||
1882 | * @since 1.2.0 | ||
1883 | * @ingroup Eet_Cipher_Group | ||
1884 | */ | ||
1885 | EAPI void | ||
1886 | eet_identity_certificate_print(const unsigned char *certificate, | ||
1887 | int der_length, | ||
1888 | FILE *out); | ||
1889 | |||
1890 | /** | ||
1891 | * @defgroup Eet_Data_Group Eet Data Serialization | ||
1892 | * | ||
1893 | * Convenience functions to serialize and parse complex data | ||
1894 | * structures to binary blobs. | ||
1895 | * | ||
1896 | * While Eet core just handles binary blobs, it is often required | ||
1897 | * to save some structured data of different types, such as | ||
1898 | * strings, integers, lists, hashes and so on. | ||
1899 | * | ||
1900 | * Eet can serialize and then parse data types given some | ||
1901 | * construction instructions. These are defined in two levels: | ||
1902 | * | ||
1903 | * - #Eet_Data_Descriptor_Class to tell generic memory handling, | ||
1904 | * such as the size of the type, how to allocate memory, strings, | ||
1905 | * lists, hashes and so on. | ||
1906 | * | ||
1907 | * - #Eet_Data_Descriptor to tell inside such type, the members and | ||
1908 | * their offsets inside the memory blob, their types and | ||
1909 | * names. These members can be simple types or other | ||
1910 | * #Eet_Data_Descriptor, allowing hierarchical types to be | ||
1911 | * defined. | ||
1912 | * | ||
1913 | * Given that C provides no introspection, this process can be | ||
1914 | * quite cumbersome, so we provide lots of macros and convenience | ||
1915 | * functions to aid creating the types. | ||
1916 | * | ||
1917 | * We make now a quick overview of some of the most commonly used elements | ||
1918 | * of this part of the library. A simple example of a configuration system | ||
1919 | * will work as a somewhat real life example that is still simple enough to | ||
1920 | * follow. | ||
1921 | * Only the relevant sections will be shown here, but you can get the full | ||
1922 | * code @ref eet-data-simple.c "here". | ||
1923 | * | ||
1924 | * Ignoring the included headers, we'll begin by defining our configuration | ||
1925 | * struct. | ||
1926 | * @dontinclude eet-data-simple.c | ||
1927 | * @skip typedef | ||
1928 | * @until } | ||
1929 | * | ||
1930 | * When using Eet, you don't think in matters of what data the program needs | ||
1931 | * to run and which you would like to store. It's all the same and if it makes | ||
1932 | * more sense to keep them together, it's perfectly fine to do so. At the time | ||
1933 | * of telling Eet how your data is comprised you can leave out the things | ||
1934 | * that are runtime only and let Eet take care of the rest for you. | ||
1935 | * | ||
1936 | * The key used to store the config follows, as well as the variable used to | ||
1937 | * store our data descriptor. | ||
1938 | * This last one is very important. It's the one thing that Eet will use to | ||
1939 | * identify your data, both at the time of writing it to the file and when | ||
1940 | * loading from it. | ||
1941 | * @skipline MY_CONF | ||
1942 | * @skipline Eet_Data_Descriptor | ||
1943 | * | ||
1944 | * Now we'll see how to create this descriptor, so Eet knows how to handle | ||
1945 | * our data later on. | ||
1946 | * Begin our function by declaring an Eet_Data_Descriptor_Class, which is | ||
1947 | * used to create the actual descriptor. This class contains the name of | ||
1948 | * our data type, its size and several functions that dictate how Eet should | ||
1949 | * handle memory to allocate the necessary bits to bring our data to life. | ||
1950 | * You, as a user, will very hardly set this class' contents directly. The | ||
1951 | * most common scenario is to use one of the provided macros that set it using | ||
1952 | * the Eina data types, so that's what we'll be doing across all our examples. | ||
1953 | * @skip static void | ||
1954 | * @until eet_data_descriptor_stream_new | ||
1955 | * | ||
1956 | * Now that we have our descriptor, we need to make it describe something. | ||
1957 | * We do so by telling it which members of our struct we want it to know about | ||
1958 | * and their types. | ||
1959 | * The eet_data_descriptor_element_add() function takes care of this, but it's | ||
1960 | * too cumbersome for normal use, so several macros are provided that make | ||
1961 | * it easier to handle. Even with them, however, code can get very repetitive | ||
1962 | * and it's not uncommon to define custom macros using them to save on typing. | ||
1963 | * @skip #define | ||
1964 | * @until } | ||
1965 | * | ||
1966 | * Now our descriptor knows about the parts of our structure that we are | ||
1967 | * interesting in saving. You can see that not all of them are there, yet Eet | ||
1968 | * will find those that need saving and do the right thing. When loading our | ||
1969 | * data, any non-described fields in the structure will be zeroed, so there's | ||
1970 | * no need to worry about garbage memory in them. | ||
1971 | * Refer to the documentation of #EET_DATA_DESCRIPTOR_ADD_BASIC to understand | ||
1972 | * what our macro does. | ||
1973 | * | ||
1974 | * We are done with our descriptor init function and it's proper to have the | ||
1975 | * relevant shutdown. Proper coding guidelines indiciate that all memory | ||
1976 | * allocated should be freed when the program ends, and since you will most | ||
1977 | * likely keep your descriptor around for the life or your application, it's | ||
1978 | * only right to free it at the end. | ||
1979 | * @skip static void | ||
1980 | * @until } | ||
1981 | * | ||
1982 | * Not listed here, but included in the full example are functions to create | ||
1983 | * a blank configuration and free it. The first one will only be used when | ||
1984 | * no file exists to load from, or nothing is found in it, but the latter is | ||
1985 | * used regardless of where our data comes from. Unless you are reading direct | ||
1986 | * data from the Eet file, you will be in charge of freeing anything loaded | ||
1987 | * from it. | ||
1988 | * | ||
1989 | * Now it's time to look at how we can load our config from some file. | ||
1990 | * Begin by opening the Eet file normally. | ||
1991 | * @skip static My_Conf_Type | ||
1992 | * @until } | ||
1993 | * | ||
1994 | * And now we need to read the data from the file and decode it using our | ||
1995 | * descriptor. Fortunately, that's all done in one single step. | ||
1996 | * @until goto | ||
1997 | * | ||
1998 | * And that's it for all Eet cares about. But since we are dealing with a | ||
1999 | * common case, as is save and load of user configurations, the next fragment | ||
2000 | * of code shows why we have a version field in our struct, and how you can | ||
2001 | * use it to load older configuration files and update them as needed. | ||
2002 | * @until } | ||
2003 | * | ||
2004 | * Finally, clsoe the file and return the newly loaded config data. | ||
2005 | * @until } | ||
2006 | * | ||
2007 | * Saving data is just as easy. The full version of the following function | ||
2008 | * includes code to save to a temporary file first, so you can be sure not | ||
2009 | * to lose all your data in the case of a failure mid-writing. You can look | ||
2010 | * at it @ref eet-data-simple.c "here". | ||
2011 | * @skip static Eina_Bool | ||
2012 | * @until { | ||
2013 | * @skipline Eina_Bool ret | ||
2014 | * @skip eet_open | ||
2015 | * @until eet_close | ||
2016 | * @skip return | ||
2017 | * @until } | ||
2018 | * | ||
2019 | * To close, our main function, which doesn't do much. Just take some arguments | ||
2020 | * from the command line with the name of the file to load and another one | ||
2021 | * where to save again. If input file doesn't exist, a new config structure | ||
2022 | * will be created and saved to our output file. | ||
2023 | * @skip int main | ||
2024 | * @until return ret | ||
2025 | * @until } | ||
2026 | * | ||
2027 | * The following is a list of more advanced and detailed examples. | ||
2028 | * @li @ref eet_data_nested_example | ||
2029 | * @li @ref eet_data_file_descriptor | ||
2030 | * @li @ref Example_Eet_Data_File_Descriptor_02 | ||
2031 | * @li @ref Example_Eet_Data_Cipher_Decipher | ||
2032 | */ | ||
2033 | |||
2034 | /** | ||
2035 | * @page eet_data_nested_example Nested structures and Eet Data Descriptors | ||
2036 | * | ||
2037 | * We've seen already a simple example of how to use Eet Data Descriptors | ||
2038 | * to handle our structures, but it didn't show how this works when you | ||
2039 | * have structures inside other structures. | ||
2040 | * | ||
2041 | * Now, there's a very simple case of this, for when you have inline structs | ||
2042 | * to keep your big structure more organized, you don't need anything else | ||
2043 | * besides what @ref eet-data-simple.c "this simple example does". | ||
2044 | * Just use something like @p some_struct.sub_struct.member when adding the | ||
2045 | * member to the descriptor and it will work. | ||
2046 | * | ||
2047 | * For example: | ||
2048 | * @code | ||
2049 | * typedef struct | ||
2050 | * { | ||
2051 | * int a_number; | ||
2052 | * char *a_string; | ||
2053 | * struct { | ||
2054 | * int other_num; | ||
2055 | * int one_more; | ||
2056 | * } sub; | ||
2057 | * } some_struct; | ||
2058 | * | ||
2059 | * void some_function() | ||
2060 | * { | ||
2061 | * ... | ||
2062 | * my_desc = eet_data_descriptor_stream_new(&eddc); | ||
2063 | * EET_DATA_DESCRIPTOR_ADD_BASIC(my_desc, some_struct, "a_number", | ||
2064 | * a_number, EET_T_INT); | ||
2065 | * EET_DATA_DESCRIPTOR_ADD_BASIC(my_desc, some_struct, "a_string", | ||
2066 | * a_string, EET_T_STRING); | ||
2067 | * EET_DATA_DESCRIPTOR_ADD_BASIC(my_desc, some_struct, "sub.other_num", | ||
2068 | * sub.other_num, EET_T_INT); | ||
2069 | * EET_DATA_DESCRIPTOR_ADD_BASIC(my_desc, some_struct, "sub.one_more", | ||
2070 | * sub.one_more", EET_T_INT); | ||
2071 | * ... | ||
2072 | * } | ||
2073 | * @endcode | ||
2074 | * | ||
2075 | * But this is not what we are here for today. When we talk about nested | ||
2076 | * structures, what we really want are things like lists and hashes to be | ||
2077 | * taken into consideration automatically, and all their contents saved and | ||
2078 | * loaded just like ordinary integers and strings are. | ||
2079 | * | ||
2080 | * And of course, Eet can do that, and considering the work it saves you as a | ||
2081 | * programmer, we could say it's even easier to do than handling just integers. | ||
2082 | * | ||
2083 | * Let's begin with our example then, which is not all too different from the | ||
2084 | * simple one introduced earlier. | ||
2085 | * | ||
2086 | * We won't ignore the headers this time to show how easy it is to use Eina | ||
2087 | * data types with Eet, but we'll still skip most of the code that is not | ||
2088 | * pertinent to what we want to show now, but as usual, you can get it full | ||
2089 | * by follwing @ref eet-data-nested.c "this link". | ||
2090 | * | ||
2091 | * @dontinclude eet-data-nested.c | ||
2092 | * @skipline Eina.h | ||
2093 | * @skipline Eet.h | ||
2094 | * @skip typedef struct | ||
2095 | * @until } My_Conf_Subtype | ||
2096 | * | ||
2097 | * Extremely similar to our previous example. Just a new struct in there, and | ||
2098 | * a pointer to a list in the one we already had. Handling a list of subtypes | ||
2099 | * is easy on our program, but now we'll see what Eet needs to work with them | ||
2100 | * (Hint: it's easy too). | ||
2101 | * @skip _my_conf_descriptor | ||
2102 | * @until _my_conf_sub_descriptor | ||
2103 | * | ||
2104 | * Since we have two structures now, it's only natural that we'll need two | ||
2105 | * descriptors. One for each, which will be defined exactly as before. | ||
2106 | * @skip static void | ||
2107 | * @until eddc | ||
2108 | * @skip EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET | ||
2109 | * @until _my_conf_sub_descriptor | ||
2110 | * | ||
2111 | * We create our descriptors, each for one type, and as before, we are going to | ||
2112 | * use a simple macro to set their contents, to save on typing. | ||
2113 | * @skip #define | ||
2114 | * @until EET_T_UCHAR | ||
2115 | * | ||
2116 | * So far, nothing new. We have our descriptors and we know already how to | ||
2117 | * save them separately. But what we want is to link them together, and even | ||
2118 | * more so, we want our main type to hold a list of more than one of the new | ||
2119 | * sub type. So how do we do that? | ||
2120 | * | ||
2121 | * Simple enough, we tell Eet that our main descriptor will hold a list, of | ||
2122 | * which each node will point to some type described by our new descriptor. | ||
2123 | * @skip EET_DATA_DESCRIPTOR_ADD_LIST | ||
2124 | * @until _my_conf_sub_descriptor | ||
2125 | * | ||
2126 | * And that's all. We are closing the function now so as to not leave dangling | ||
2127 | * curly braces, but there's nothing more to show in this example. Only other | ||
2128 | * additions are the necessary code to free our new data, but you can see it | ||
2129 | * in the full code listing. | ||
2130 | * @until } | ||
2131 | */ | ||
2132 | |||
2133 | /** | ||
2134 | * @page eet_data_file_descriptor Advanced use of Eet Data Descriptors | ||
2135 | * | ||
2136 | * A real life example is usually the best way to see how things are used, | ||
2137 | * but they also involve a lot more code than what needs to be shown, so | ||
2138 | * instead of going that way, we'll be borrowing some pieces from one in | ||
2139 | * the following example. It's been slightly modified from the original | ||
2140 | * source to show more of the varied ways in which Eet can handle our data. | ||
2141 | * | ||
2142 | * @ref eet-data-file_descriptor_01.c "This example" shows a cache of user | ||
2143 | * accounts and messages received, and it's a bit more interactive than | ||
2144 | * previous examples. | ||
2145 | * | ||
2146 | * Let's begin by looking at the structures we'll be using. First we have | ||
2147 | * one to define the messages the user receives and one for the one he posts. | ||
2148 | * Straight forward and nothing new here. | ||
2149 | * @dontinclude eet-data-file_descriptor_01.c | ||
2150 | * @skip typedef | ||
2151 | * @until My_Post | ||
2152 | * | ||
2153 | * One more to declare the account itself. This one will contain a list of | ||
2154 | * all messages received, and the posts we make ourselves will be kept in an | ||
2155 | * array. No special reason other than to show how to use arrays with Eet. | ||
2156 | * @until My_Account | ||
2157 | * | ||
2158 | * Finally, the main structure to hold our cache of accounts. We'll be looking | ||
2159 | * for these accounts by their names, so let's keep them in a hash, using | ||
2160 | * that name as the key. | ||
2161 | * @until My_Cache | ||
2162 | * | ||
2163 | * As explained before, we need one descriptor for each struct we want Eet | ||
2164 | * to handle, but this time we also want to keep around our Eet file and its | ||
2165 | * string dictionary. You will see why in a moment. | ||
2166 | * @skip Eet_Data_Descriptor | ||
2167 | * @until _my_post_descriptor | ||
2168 | * @skip Eet_File | ||
2169 | * @until Eet_Dictionary | ||
2170 | * | ||
2171 | * The differences begin now. They aren't much, but we'll be creating our | ||
2172 | * descriptors differently. Things can be added to our cache, but we won't | ||
2173 | * be modifying the current contents, so we can consider the data read from | ||
2174 | * it to be read-only, and thus allow Eet to save time and memory by not | ||
2175 | * duplicating thins unnecessary. | ||
2176 | * @skip static void | ||
2177 | * @until _my_post_descriptor | ||
2178 | * | ||
2179 | * As the comment in the code explains, we are asking Eet to give us strings | ||
2180 | * directly from the mapped file, which avoids having to load it in memory | ||
2181 | * and data duplication. | ||
2182 | * Of course, there are things to take into account when doing things this | ||
2183 | * way, and they will be mentioned as we encounter those special cases. | ||
2184 | * | ||
2185 | * Next comes the actual description of our data, just like we did in the | ||
2186 | * previous examples. | ||
2187 | * @skip #define | ||
2188 | * @until #undef | ||
2189 | * @until #define | ||
2190 | * @until #undef | ||
2191 | * | ||
2192 | * And the account struct's description doesn't add much new, but it's worth | ||
2193 | * commenting on it. | ||
2194 | * @skip #define | ||
2195 | * @until _my_post_descriptor | ||
2196 | * | ||
2197 | * How to add a list we've seen before, but now we are also adding an array. | ||
2198 | * There's nothing really special about it, but it's important to note that | ||
2199 | * the EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY is used to add arrays of variable | ||
2200 | * length to a descriptor. That is, arrays just like the one we defined. | ||
2201 | * Since there's no way in C to know how long they are, we need to keep | ||
2202 | * track of the count ourselves and Eet needs to know how to do so as well. | ||
2203 | * That's what the @p posts_count member of our struct is for. When adding | ||
2204 | * our array member, this macro will look for another variable in the struct | ||
2205 | * named just like the array, but with @p _count attached to the end. | ||
2206 | * When saving our data, Eet will know how many elements the array contains | ||
2207 | * by looking into this count variable. When loading back from a file, this | ||
2208 | * variable will be set to the right number of elements. | ||
2209 | * | ||
2210 | * Another option for arrays is to use EET_DATA_DESCRIPTOR_ADD_ARRAY, which | ||
2211 | * takes care of fixed sized arrays. | ||
2212 | * For example, let's suppose that we want to keep track of only the last | ||
2213 | * ten posts the user sent, and we declare our account struct as follows | ||
2214 | * @code | ||
2215 | * typedef struct | ||
2216 | * { | ||
2217 | * unsigned int id; | ||
2218 | * const char *name; | ||
2219 | * Eina_List *messages; | ||
2220 | * My_Post posts[10]; | ||
2221 | * } My_Account; | ||
2222 | * @endcode | ||
2223 | * Then we would add the array to our descriptor with | ||
2224 | * @code | ||
2225 | * EET_DATA_DESCRIPTOR_ADD_ARRAY(_my_account_descriptor, My_Account, "posts", | ||
2226 | * posts, _my_post_descriptor); | ||
2227 | * @endcode | ||
2228 | * | ||
2229 | * Notice how this time we don't have a @p posts_count variable in our struct. | ||
2230 | * We could have it for the program to keep track of how many posts the | ||
2231 | * array actually contains, but Eet no longer needs it. Being defined that | ||
2232 | * way the array is already taking up all the memory needed for the ten | ||
2233 | * elements, and it is possible in C to determine how much it is in code. | ||
2234 | * When saving our data, Eet will just dump the entire memory blob into the | ||
2235 | * file, regardless of how much of it is really used. So it's important to | ||
2236 | * take into consideration this kind of things when defining your data types. | ||
2237 | * Each has its uses, its advantages and disadvantages and it's up to you | ||
2238 | * to decide which to use. | ||
2239 | * | ||
2240 | * Now, going back to our example, we have to finish adding our data to the | ||
2241 | * descriptors. We are only missing the main one for the cache, which | ||
2242 | * contains our hash of accounts. | ||
2243 | * Unless you are using your own hash functions when setting the descriptor | ||
2244 | * class, always use hashes with string type keys. | ||
2245 | * @skip #define | ||
2246 | * @until } | ||
2247 | * | ||
2248 | * If you remember, we told Eet not to duplicate memory when possible at the | ||
2249 | * time of loading back our data. But this doesn't mean everything will be | ||
2250 | * loaded straight from disk and we don't have to worry about freeing it. | ||
2251 | * Data in the Eet file is compressed and encoded, so it still needs to be | ||
2252 | * decoded and memory will be allocated to convert it back into something we | ||
2253 | * can use. We also need to take care of anything we add in the current | ||
2254 | * instance of the program. | ||
2255 | * To summarize, any string we get from Eet is likely to be a pointer to the | ||
2256 | * internal dictionary, and trying to free it will, in the best case, crash | ||
2257 | * our application right away. | ||
2258 | * | ||
2259 | * So how do we know if we have to free a string? We check if it's part of | ||
2260 | * the dictionary, and if it's not there we can be sure it's safe to get | ||
2261 | * rid of it. | ||
2262 | * @skip static void | ||
2263 | * @skip } | ||
2264 | * @skip static void | ||
2265 | * @until } | ||
2266 | * | ||
2267 | * See how this is used when adding a new message to our cache. | ||
2268 | * @skip static My_Message | ||
2269 | * @until return msg | ||
2270 | * @until free(msg) | ||
2271 | * @until } | ||
2272 | * | ||
2273 | * Skipping all the utility functions used by our program (remember you can | ||
2274 | * look at the full example @ref eet-data-file_descriptor_01.c "here") we get to | ||
2275 | * our cache loading code. Nothing out of the ordinary at first, just the | ||
2276 | * same old open file, read data using our main descriptor to decode it | ||
2277 | * into something we can use and check version of loaded data and if it doesn't | ||
2278 | * match, do something accordingly. | ||
2279 | * @skip static My_Cache | ||
2280 | * @until } | ||
2281 | * @until } | ||
2282 | * @until } | ||
2283 | * | ||
2284 | * Then comes the interesting part. Remember how we kept two more global | ||
2285 | * variables with our descriptors? One of them we already used to check if | ||
2286 | * it was right to free a string or not, but we didn't know where it came from. | ||
2287 | * Loading our data straight from the mmapped file means that we can't close | ||
2288 | * it until we are done using it, so we need to keep its handler around until | ||
2289 | * then. It also means that any changes done to the file can, and will, | ||
2290 | * invalidate all our pointers to the file backed data, so if we add something | ||
2291 | * and save the file, we need to reload our cache. | ||
2292 | * | ||
2293 | * Thus our load function checks if we had an open file, if there is it gets | ||
2294 | * closed and our variable is updated to the new handler. Then we get the | ||
2295 | * string dictionary we use to check if a string is part of it or not. | ||
2296 | * Updating any references to the cache data is up you as a programmer to | ||
2297 | * handle properly, there's nothing Eet can do in this situation. | ||
2298 | * @until } | ||
2299 | * | ||
2300 | * The save function doesn't have anything new, and all that's left after it | ||
2301 | * is the main program, which doesn't really have anything of interest within | ||
2302 | * the scope of what we are learning. | ||
2303 | */ | ||
2304 | |||
2305 | /** | ||
2306 | * @addtogroup Eet_Data_Group | ||
2307 | * @{ | ||
2308 | */ | ||
2309 | #define EET_T_UNKNOW 0 /**< Unknown data encoding type */ | ||
2310 | #define EET_T_CHAR 1 /**< Data type: char */ | ||
2311 | #define EET_T_SHORT 2 /**< Data type: short */ | ||
2312 | #define EET_T_INT 3 /**< Data type: int */ | ||
2313 | #define EET_T_LONG_LONG 4 /**< Data type: long long */ | ||
2314 | #define EET_T_FLOAT 5 /**< Data type: float */ | ||
2315 | #define EET_T_DOUBLE 6 /**< Data type: double */ | ||
2316 | #define EET_T_UCHAR 7 /**< Data type: unsigned char */ | ||
2317 | #define EET_T_USHORT 8 /**< Data type: unsigned short */ | ||
2318 | #define EET_T_UINT 9 /**< Data type: unsigned int */ | ||
2319 | #define EET_T_ULONG_LONG 10 /**< Data type: unsigned long long */ | ||
2320 | #define EET_T_STRING 11 /**< Data type: char * */ | ||
2321 | #define EET_T_INLINED_STRING 12 /**< Data type: char * (but compressed inside the resulting eet) */ | ||
2322 | #define EET_T_NULL 13 /**< Data type: (void *) (only use it if you know why) */ | ||
2323 | #define EET_T_F32P32 14 /**< Data type: fixed point 32.32 */ | ||
2324 | #define EET_T_F16P16 15 /**< Data type: fixed point 16.16 */ | ||
2325 | #define EET_T_F8P24 16 /**< Data type: fixed point 8.24 */ | ||
2326 | #define EET_T_LAST 18 /**< Last data type */ | ||
2327 | |||
2328 | #define EET_G_UNKNOWN 100 /**< Unknown group data encoding type */ | ||
2329 | #define EET_G_ARRAY 101 /**< Fixed size array group type */ | ||
2330 | #define EET_G_VAR_ARRAY 102 /**< Variable size array group type */ | ||
2331 | #define EET_G_LIST 103 /**< Linked list group type */ | ||
2332 | #define EET_G_HASH 104 /**< Hash table group type */ | ||
2333 | #define EET_G_UNION 105 /**< Union group type */ | ||
2334 | #define EET_G_VARIANT 106 /**< Selectable subtype group */ | ||
2335 | #define EET_G_LAST 107 /**< Last group type */ | ||
2336 | |||
2337 | #define EET_I_LIMIT 128 /**< Other type exist but are reserved for internal purpose. */ | ||
2338 | |||
2339 | /** | ||
2340 | * @typedef Eet_Data_Descriptor | ||
2341 | * | ||
2342 | * Opaque handle that have information on a type members. | ||
2343 | * | ||
2344 | * Descriptors are created using an #Eet_Data_Descriptor_Class, and they | ||
2345 | * describe the contents of the structure that will be serialized by Eet. | ||
2346 | * Not all members need be described by it, just those that should be handled | ||
2347 | * by Eet. This way it's possible to have one structure with both data to be | ||
2348 | * saved to a file, like application configuration, and runtime information | ||
2349 | * that would be meaningless to store, but is appropriate to keep together | ||
2350 | * during the program execution. | ||
2351 | * The members are added by means of | ||
2352 | * EET_DATA_DESCRIPTOR_ADD_BASIC(), EET_DATA_DESCRIPTOR_ADD_SUB(), | ||
2353 | * EET_DATA_DESCRIPTOR_ADD_LIST(), EET_DATA_DESCRIPTOR_ADD_HASH() | ||
2354 | * or eet_data_descriptor_element_add(). | ||
2355 | * | ||
2356 | * @see eet_data_descriptor_stream_new() | ||
2357 | * @see eet_data_descriptor_file_new() | ||
2358 | * @see eet_data_descriptor_free() | ||
2359 | */ | ||
2360 | typedef struct _Eet_Data_Descriptor Eet_Data_Descriptor; | ||
2361 | |||
2362 | /** | ||
2363 | * @def EET_DATA_DESCRIPTOR_CLASS_VERSION | ||
2364 | * The version of #Eet_Data_Descriptor_Class at the time of the | ||
2365 | * distribution of the sources. One should define this to its | ||
2366 | * version member so it is compatible with abi changes, or at least | ||
2367 | * will not crash with them. | ||
2368 | */ | ||
2369 | #define EET_DATA_DESCRIPTOR_CLASS_VERSION 4 | ||
2370 | |||
2371 | /** | ||
2372 | * @typedef Eet_Data_Descriptor_Class | ||
2373 | * | ||
2374 | * Instructs Eet about memory management for different needs under | ||
2375 | * serialization and parse process. | ||
2376 | */ | ||
2377 | typedef struct _Eet_Data_Descriptor_Class Eet_Data_Descriptor_Class; | ||
2378 | |||
2379 | typedef int (*Eet_Descriptor_Hash_Foreach_Callback_Callback)(void *h, const char *k, void *dt, void *fdt); | ||
2380 | |||
2381 | typedef void * (*Eet_Descriptor_Mem_Alloc_Callback)(size_t size); | ||
2382 | typedef void (*Eet_Descriptor_Mem_Free_Callback)(void *mem); | ||
2383 | typedef char * (*Eet_Descriptor_Str_Alloc_Callback)(const char *str); | ||
2384 | typedef void (*Eet_Descriptor_Str_Free_Callback)(const char *str); | ||
2385 | typedef void * (*Eet_Descriptor_List_Next_Callback)(void *l); | ||
2386 | typedef void * (*Eet_Descriptor_List_Append_Callback)(void *l, void *d); | ||
2387 | typedef void * (*Eet_Descriptor_List_Data_Callback)(void *l); | ||
2388 | typedef void * (*Eet_Descriptor_List_Free_Callback)(void *l); | ||
2389 | typedef void (*Eet_Descriptor_Hash_Foreach_Callback)(void *h, Eet_Descriptor_Hash_Foreach_Callback_Callback func, void *fdt); | ||
2390 | typedef void * (*Eet_Descriptor_Hash_Add_Callback)(void *h, const char *k, void *d); | ||
2391 | typedef void (*Eet_Descriptor_Hash_Free_Callback)(void *h); | ||
2392 | typedef char * (*Eet_Descriptor_Str_Direct_Alloc_Callback)(const char *str); | ||
2393 | typedef void (*Eet_Descriptor_Str_Direct_Free_Callback)(const char *str); | ||
2394 | typedef const char * (*Eet_Descriptor_Type_Get_Callback)(const void *data, Eina_Bool *unknow); | ||
2395 | typedef Eina_Bool (*Eet_Descriptor_Type_Set_Callback)(const char *type, void *data, Eina_Bool unknow); | ||
2396 | typedef void * (*Eet_Descriptor_Array_Alloc_Callback)(size_t size); | ||
2397 | typedef void (*Eet_Descriptor_Array_Free_Callback)(void *mem); | ||
2398 | /** | ||
2399 | * @struct _Eet_Data_Descriptor_Class | ||
2400 | * | ||
2401 | * Instructs Eet about memory management for different needs under | ||
2402 | * serialization and parse process. | ||
2403 | * | ||
2404 | * The list and hash methods match the Eina API, so for a more detalied | ||
2405 | * reference on them, look at the Eina_List and Eina_Hash documentation, | ||
2406 | * respectively. | ||
2407 | * For the most part these will be used with the standard Eina functions, | ||
2408 | * so using EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET() and | ||
2409 | * EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET() will set up everything | ||
2410 | * accordingly. | ||
2411 | */ | ||
2412 | struct _Eet_Data_Descriptor_Class | ||
2413 | { | ||
2414 | int version; /**< ABI version. Should always be set to #EET_DATA_DESCRIPTOR_CLASS_VERSION */ | ||
2415 | const char *name; /**< Name of the user data type to be serialized */ | ||
2416 | int size; /**< Size in bytes of the user data type to be serialized */ | ||
2417 | struct | ||
2418 | { | ||
2419 | Eet_Descriptor_Mem_Alloc_Callback mem_alloc; /**< how to allocate memory (usually malloc()) */ | ||
2420 | Eet_Descriptor_Mem_Free_Callback mem_free; /**< how to free memory (usually free()) */ | ||
2421 | Eet_Descriptor_Str_Alloc_Callback str_alloc; /**< how to allocate a string */ | ||
2422 | Eet_Descriptor_Str_Free_Callback str_free; /**< how to free a string */ | ||
2423 | Eet_Descriptor_List_Next_Callback list_next; /**< how to iterate to the next element of a list. Receives and should return the list node. */ | ||
2424 | Eet_Descriptor_List_Append_Callback list_append; /**< how to append data @p d to list which head node is @p l */ | ||
2425 | Eet_Descriptor_List_Data_Callback list_data; /**< retrieves the data from node @p l */ | ||
2426 | Eet_Descriptor_List_Free_Callback list_free; /**< free all the nodes from the list which head node is @p l */ | ||
2427 | Eet_Descriptor_Hash_Foreach_Callback hash_foreach; /**< iterates over all elements in the hash @p h in no specific order */ | ||
2428 | Eet_Descriptor_Hash_Add_Callback hash_add; /**< add a new data @p d with key @p k in hash @p h */ | ||
2429 | Eet_Descriptor_Hash_Free_Callback hash_free; /**< free all entries from the hash @p h */ | ||
2430 | Eet_Descriptor_Str_Direct_Alloc_Callback str_direct_alloc; /**< how to allocate a string directly from file backed/mmaped region pointed by @p str */ | ||
2431 | Eet_Descriptor_Str_Direct_Free_Callback str_direct_free; /**< how to free a string returned by str_direct_alloc */ | ||
2432 | Eet_Descriptor_Type_Get_Callback type_get; /**< get the type, as used in the union or variant mapping, that should be used to store the given data into the eet file. */ | ||
2433 | Eet_Descriptor_Type_Set_Callback type_set; /**< called when loading a mapped type with the given @p type used to describe the type in the descriptor */ | ||
2434 | Eet_Descriptor_Array_Alloc_Callback array_alloc; /**< how to allocate memory for array (usually malloc()) */ | ||
2435 | Eet_Descriptor_Array_Free_Callback array_free; /**< how to free memory for array (usually free()) */ | ||
2436 | } func; | ||
2437 | }; | ||
2438 | |||
2439 | /** | ||
2440 | * @} | ||
2441 | */ | ||
2442 | |||
2443 | /** | ||
2444 | * Create a new empty data structure descriptor. | ||
2445 | * @param name The string name of this data structure (most be a | ||
2446 | * global constant and never change). | ||
2447 | * @param size The size of the struct (in bytes). | ||
2448 | * @param func_list_next The function to get the next list node. | ||
2449 | * @param func_list_append The function to append a member to a list. | ||
2450 | * @param func_list_data The function to get the data from a list node. | ||
2451 | * @param func_list_free The function to free an entire linked list. | ||
2452 | * @param func_hash_foreach The function to iterate through all | ||
2453 | * hash table entries. | ||
2454 | * @param func_hash_add The function to add a member to a hash table. | ||
2455 | * @param func_hash_free The function to free an entire hash table. | ||
2456 | * @return A new empty data descriptor. | ||
2457 | * | ||
2458 | * This function creates a new data descriptore and returns a handle to the | ||
2459 | * new data descriptor. On creation it will be empty, containing no contents | ||
2460 | * describing anything other than the shell of the data structure. | ||
2461 | * | ||
2462 | * You add structure members to the data descriptor using the macros | ||
2463 | * EET_DATA_DESCRIPTOR_ADD_BASIC(), EET_DATA_DESCRIPTOR_ADD_SUB() and | ||
2464 | * EET_DATA_DESCRIPTOR_ADD_LIST(), depending on what type of member you are | ||
2465 | * adding to the description. | ||
2466 | * | ||
2467 | * Once you have described all the members of a struct you want loaded, or | ||
2468 | * saved eet can load and save those members for you, encode them into | ||
2469 | * endian-independent serialised data chunks for transmission across a | ||
2470 | * a network or more. | ||
2471 | * | ||
2472 | * The function pointers to the list and hash table functions are only | ||
2473 | * needed if you use those data types, else you can pass NULL instead. | ||
2474 | * | ||
2475 | * @since 1.0.0 | ||
2476 | * @ingroup Eet_Data_Group | ||
2477 | * | ||
2478 | * @deprecated use eet_data_descriptor_stream_new() or | ||
2479 | * eet_data_descriptor_file_new() | ||
2480 | */ | ||
2481 | EINA_DEPRECATED EAPI Eet_Data_Descriptor * | ||
2482 | eet_data_descriptor_new(const char *name, | ||
2483 | int size, | ||
2484 | Eet_Descriptor_List_Next_Callback func_list_next, | ||
2485 | Eet_Descriptor_List_Append_Callback func_list_append, | ||
2486 | Eet_Descriptor_List_Data_Callback func_list_data, | ||
2487 | Eet_Descriptor_List_Free_Callback func_list_free, | ||
2488 | Eet_Descriptor_Hash_Foreach_Callback func_hash_foreach, | ||
2489 | Eet_Descriptor_Hash_Add_Callback func_hash_add, | ||
2490 | Eet_Descriptor_Hash_Free_Callback func_hash_free); | ||
2491 | /* | ||
2492 | * FIXME: | ||
2493 | * | ||
2494 | * moving to this api from the old above. this will break things when the | ||
2495 | * move happens - but be warned | ||
2496 | */ | ||
2497 | EINA_DEPRECATED EAPI Eet_Data_Descriptor * | ||
2498 | eet_data_descriptor2_new(const Eet_Data_Descriptor_Class *eddc); | ||
2499 | EINA_DEPRECATED EAPI Eet_Data_Descriptor * | ||
2500 | eet_data_descriptor3_new(const Eet_Data_Descriptor_Class *eddc); | ||
2501 | |||
2502 | /** | ||
2503 | * This function creates a new data descriptor and returns a handle to the | ||
2504 | * new data descriptor. On creation it will be empty, containing no contents | ||
2505 | * describing anything other than the shell of the data structure. | ||
2506 | * @param eddc The class from where to create the data descriptor. | ||
2507 | * | ||
2508 | * You add structure members to the data descriptor using the macros | ||
2509 | * EET_DATA_DESCRIPTOR_ADD_BASIC(), EET_DATA_DESCRIPTOR_ADD_SUB() and | ||
2510 | * EET_DATA_DESCRIPTOR_ADD_LIST(), depending on what type of member you are | ||
2511 | * adding to the description. | ||
2512 | * | ||
2513 | * Once you have described all the members of a struct you want loaded or | ||
2514 | * savedi, eet can load and save those members for you, encode them into | ||
2515 | * endian-independent serialised data chunks for transmission across a | ||
2516 | * a network or more. | ||
2517 | * | ||
2518 | * This function specially ignores str_direct_alloc and str_direct_free. It | ||
2519 | * is useful when the eet_data you are reading doesn't have a dictionary, | ||
2520 | * like network stream or IPC. It also mean that all string will be allocated | ||
2521 | * and duplicated in memory. | ||
2522 | * | ||
2523 | * @since 1.2.3 | ||
2524 | * @ingroup Eet_Data_Group | ||
2525 | */ | ||
2526 | EAPI Eet_Data_Descriptor * | ||
2527 | eet_data_descriptor_stream_new(const Eet_Data_Descriptor_Class *eddc); | ||
2528 | |||
2529 | /** | ||
2530 | * This function creates a new data descriptor and returns a handle to the | ||
2531 | * new data descriptor. On creation it will be empty, containing no contents | ||
2532 | * describing anything other than the shell of the data structure. | ||
2533 | * @param eddc The class from where to create the data descriptor. | ||
2534 | * | ||
2535 | * You add structure members to the data descriptor using the macros | ||
2536 | * EET_DATA_DESCRIPTOR_ADD_BASIC(), EET_DATA_DESCRIPTOR_ADD_SUB() and | ||
2537 | * EET_DATA_DESCRIPTOR_ADD_LIST(), depending on what type of member you are | ||
2538 | * adding to the description. | ||
2539 | * | ||
2540 | * Once you have described all the members of a struct you want loaded or | ||
2541 | * savedi, eet can load and save those members for you, encode them into | ||
2542 | * endian-independent serialised data chunks for transmission across a | ||
2543 | * a network or more. | ||
2544 | * | ||
2545 | * This function uses str_direct_alloc and str_direct_free. It is | ||
2546 | * useful when the eet_data you are reading come from a file and | ||
2547 | * have a dictionary. This will reduce memory use and improve the | ||
2548 | * possibility for the OS to page this string out. | ||
2549 | * However, the load speed and memory saving comes with some drawbacks to keep | ||
2550 | * in mind. If you never modify the contents of the structures loaded from | ||
2551 | * the file, all you need to remember is that closing the eet file will make | ||
2552 | * the strings go away. On the other hand, should you need to free a string, | ||
2553 | * before doing so you have to verify that it's not part of the eet dictionary. | ||
2554 | * You can do this in the following way, assuming @p ef is a valid Eet_File | ||
2555 | * and @p str is a string loaded from said file. | ||
2556 | * | ||
2557 | * @code | ||
2558 | * void eet_string_free(Eet_File *ef, const char *str) | ||
2559 | * { | ||
2560 | * Eet_Dictionary *dict = eet_dictionary_get(ef); | ||
2561 | * if (dict && eet_dictionary_string_check(dict, str)) | ||
2562 | * { | ||
2563 | * // The file contains a dictionary and the given string is a part of | ||
2564 | * // of it, so we can't free it, just return. | ||
2565 | * return; | ||
2566 | * } | ||
2567 | * // We assume eina_stringshare was used on the descriptor | ||
2568 | * eina_stringshare_del(str); | ||
2569 | * } | ||
2570 | * @endcode | ||
2571 | * | ||
2572 | * @since 1.2.3 | ||
2573 | * @ingroup Eet_Data_Group | ||
2574 | */ | ||
2575 | EAPI Eet_Data_Descriptor * | ||
2576 | eet_data_descriptor_file_new(const Eet_Data_Descriptor_Class *eddc); | ||
2577 | |||
2578 | /** | ||
2579 | * This function is an helper that set all the parameters of an | ||
2580 | * Eet_Data_Descriptor_Class correctly when you use Eina data type | ||
2581 | * with a stream. | ||
2582 | * @param eddc The Eet_Data_Descriptor_Class you want to set. | ||
2583 | * @param eddc_size The size of the Eet_Data_Descriptor_Class at the compilation time. | ||
2584 | * @param name The name of the structure described by this class. | ||
2585 | * @param size The size of the structure described by this class. | ||
2586 | * @return EINA_TRUE if the structure was correctly set (The only | ||
2587 | * reason that could make it fail is if you did give wrong | ||
2588 | * parameter). | ||
2589 | * | ||
2590 | * @note Unless there's a very specific reason to use this function directly, | ||
2591 | * the EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET macro is recommended. | ||
2592 | * | ||
2593 | * @since 1.2.3 | ||
2594 | * @ingroup Eet_Data_Group | ||
2595 | */ | ||
2596 | EAPI Eina_Bool | ||
2597 | eet_eina_stream_data_descriptor_class_set(Eet_Data_Descriptor_Class *eddc, | ||
2598 | unsigned int eddc_size, | ||
2599 | const char *name, | ||
2600 | int size); | ||
2601 | |||
2602 | /** | ||
2603 | * This macro is an helper that set all the parameter of an | ||
2604 | * Eet_Data_Descriptor_Class correctly when you use Eina data type | ||
2605 | * with stream. | ||
2606 | * @param clas The Eet_Data_Descriptor_Class you want to set. | ||
2607 | * @param type The type of the structure described by this class. | ||
2608 | * @return EINA_TRUE if the structure was correctly set (The only | ||
2609 | * reason that could make it fail is if you did give wrong | ||
2610 | * parameter). | ||
2611 | * | ||
2612 | * @see eet_data_descriptor_stream_new | ||
2613 | * @since 1.2.3 | ||
2614 | * @ingroup Eet_Data_Group | ||
2615 | */ | ||
2616 | #define EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(clas, type) \ | ||
2617 | (eet_eina_stream_data_descriptor_class_set(clas, sizeof (*(clas)), # type, sizeof(type))) | ||
2618 | |||
2619 | /** | ||
2620 | * This function is an helper that set all the parameter of an | ||
2621 | * Eet_Data_Descriptor_Class correctly when you use Eina data type | ||
2622 | * with a file. | ||
2623 | * @param eddc The Eet_Data_Descriptor_Class you want to set. | ||
2624 | * @param eddc_size The size of the Eet_Data_Descriptor_Class at the compilation time. | ||
2625 | * @param name The name of the structure described by this class. | ||
2626 | * @param size The size of the structure described by this class. | ||
2627 | * @return EINA_TRUE if the structure was correctly set (The only | ||
2628 | * reason that could make it fail is if you did give wrong | ||
2629 | * parameter). | ||
2630 | * | ||
2631 | * @note Unless there's a very specific reason to use this function directly, | ||
2632 | * the EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET macro is recommended. | ||
2633 | * | ||
2634 | * @since 1.2.3 | ||
2635 | * @ingroup Eet_Data_Group | ||
2636 | */ | ||
2637 | EAPI Eina_Bool | ||
2638 | eet_eina_file_data_descriptor_class_set(Eet_Data_Descriptor_Class *eddc, | ||
2639 | unsigned int eddc_size, | ||
2640 | const char *name, | ||
2641 | int size); | ||
2642 | |||
2643 | /** | ||
2644 | * This macro is an helper that set all the parameter of an | ||
2645 | * Eet_Data_Descriptor_Class correctly when you use Eina data type | ||
2646 | * with file. | ||
2647 | * @param clas The Eet_Data_Descriptor_Class you want to set. | ||
2648 | * @param type The type of the structure described by this class. | ||
2649 | * @return EINA_TRUE if the structure was correctly set (The only | ||
2650 | * reason that could make it fail is if you did give wrong | ||
2651 | * parameter). | ||
2652 | * | ||
2653 | * @see eet_data_descriptor_file_new | ||
2654 | * @since 1.2.3 | ||
2655 | * @ingroup Eet_Data_Group | ||
2656 | */ | ||
2657 | #define EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(clas, type) \ | ||
2658 | (eet_eina_file_data_descriptor_class_set(clas, sizeof (*(clas)), # type, sizeof(type))) | ||
2659 | |||
2660 | /** | ||
2661 | * This function frees a data descriptor when it is not needed anymore. | ||
2662 | * @param edd The data descriptor to free. | ||
2663 | * | ||
2664 | * This function takes a data descriptor handle as a parameter and frees all | ||
2665 | * data allocated for the data descriptor and the handle itself. After this | ||
2666 | * call the descriptor is no longer valid. | ||
2667 | * | ||
2668 | * @since 1.0.0 | ||
2669 | * @ingroup Eet_Data_Group | ||
2670 | */ | ||
2671 | EAPI void | ||
2672 | eet_data_descriptor_free(Eet_Data_Descriptor *edd); | ||
2673 | |||
2674 | /** | ||
2675 | * This function is an internal used by macros. | ||
2676 | * | ||
2677 | * This function is used by macros EET_DATA_DESCRIPTOR_ADD_BASIC(), | ||
2678 | * EET_DATA_DESCRIPTOR_ADD_SUB() and EET_DATA_DESCRIPTOR_ADD_LIST(). It is | ||
2679 | * complex to use by hand and should be left to be used by the macros, and | ||
2680 | * thus is not documented. | ||
2681 | * | ||
2682 | * @param edd The data descriptor handle to add element (member). | ||
2683 | * @param name The name of element to be serialized. | ||
2684 | * @param type The type of element to be serialized, like | ||
2685 | * #EET_T_INT. If #EET_T_UNKNOW, then it is considered to be a | ||
2686 | * group, list or hash. | ||
2687 | * @param group_type If element type is #EET_T_UNKNOW, then the @p | ||
2688 | * group_type will speficy if it is a list (#EET_G_LIST), | ||
2689 | * array (#EET_G_ARRAY) and so on. If #EET_G_UNKNOWN, then | ||
2690 | * the member is a subtype (pointer to another type defined by | ||
2691 | * another #Eet_Data_Descriptor). | ||
2692 | * @param offset byte offset inside the source memory to be serialized. | ||
2693 | * @param count number of elements (if #EET_G_ARRAY or #EET_G_VAR_ARRAY). | ||
2694 | * @param counter_name variable that defines the name of number of elements. | ||
2695 | * @param subtype If contains a subtype, then its data descriptor. | ||
2696 | * | ||
2697 | * @since 1.0.0 | ||
2698 | * @ingroup Eet_Data_Group | ||
2699 | */ | ||
2700 | EAPI void | ||
2701 | eet_data_descriptor_element_add(Eet_Data_Descriptor *edd, | ||
2702 | const char *name, | ||
2703 | int type, | ||
2704 | int group_type, | ||
2705 | int offset, | ||
2706 | /* int count_offset, */ | ||
2707 | int count, | ||
2708 | const char *counter_name, | ||
2709 | Eet_Data_Descriptor *subtype); | ||
2710 | |||
2711 | /** | ||
2712 | * Read a data structure from an eet file and decodes it. | ||
2713 | * @param ef The eet file handle to read from. | ||
2714 | * @param edd The data descriptor handle to use when decoding. | ||
2715 | * @param name The key the data is stored under in the eet file. | ||
2716 | * @return A pointer to the decoded data structure. | ||
2717 | * | ||
2718 | * This function decodes a data structure stored in an eet file, returning | ||
2719 | * a pointer to it if it decoded successfully, or NULL on failure. This | ||
2720 | * can save a programmer dozens of hours of work in writing configuration | ||
2721 | * file parsing and writing code, as eet does all that work for the program | ||
2722 | * and presents a program-friendly data structure, just as the programmer | ||
2723 | * likes. Eet can handle members being added or deleted from the data in | ||
2724 | * storage and safely zero-fills unfilled members if they were not found | ||
2725 | * in the data. It checks sizes and headers whenever it reads data, allowing | ||
2726 | * the programmer to not worry about corrupt data. | ||
2727 | * | ||
2728 | * Once a data structure has been described by the programmer with the | ||
2729 | * fields they wish to save or load, storing or retrieving a data structure | ||
2730 | * from an eet file, or from a chunk of memory is as simple as a single | ||
2731 | * function call. | ||
2732 | * | ||
2733 | * @see eet_data_read_cipher() | ||
2734 | * | ||
2735 | * @since 1.0.0 | ||
2736 | * @ingroup Eet_Data_Group | ||
2737 | */ | ||
2738 | EAPI void * | ||
2739 | eet_data_read(Eet_File *ef, | ||
2740 | Eet_Data_Descriptor *edd, | ||
2741 | const char *name); | ||
2742 | |||
2743 | /** | ||
2744 | * Write a data structure from memory and store in an eet file. | ||
2745 | * @param ef The eet file handle to write to. | ||
2746 | * @param edd The data descriptor to use when encoding. | ||
2747 | * @param name The key to store the data under in the eet file. | ||
2748 | * @param data A pointer to the data structure to ssave and encode. | ||
2749 | * @param compress Compression flags for storage. | ||
2750 | * @return bytes written on successful write, 0 on failure. | ||
2751 | * | ||
2752 | * This function is the reverse of eet_data_read(), saving a data structure | ||
2753 | * to an eet file. The file must have been opening in write mode and the data | ||
2754 | * will be kept in memory until the file is either closed or eet_sync() is | ||
2755 | * called to flush any unwritten changes. | ||
2756 | * | ||
2757 | * @see eet_data_write_cipher() | ||
2758 | * | ||
2759 | * @since 1.0.0 | ||
2760 | * @ingroup Eet_Data_Group | ||
2761 | */ | ||
2762 | EAPI int | ||
2763 | eet_data_write(Eet_File *ef, | ||
2764 | Eet_Data_Descriptor *edd, | ||
2765 | const char *name, | ||
2766 | const void *data, | ||
2767 | int compress); | ||
2768 | |||
2769 | typedef void (*Eet_Dump_Callback)(void *data, const char *str); | ||
2770 | |||
2771 | /** | ||
2772 | * Dump an eet encoded data structure into ascii text | ||
2773 | * @param data_in The pointer to the data to decode into a struct. | ||
2774 | * @param size_in The size of the data pointed to in bytes. | ||
2775 | * @param dumpfunc The function to call passed a string when new | ||
2776 | * data is converted to text | ||
2777 | * @param dumpdata The data to pass to the @p dumpfunc callback. | ||
2778 | * @return 1 on success, 0 on failure | ||
2779 | * | ||
2780 | * This function will take a chunk of data encoded by | ||
2781 | * eet_data_descriptor_encode() and convert it into human readable | ||
2782 | * ascii text. It does this by calling the @p dumpfunc callback | ||
2783 | * for all new text that is generated. This callback should append | ||
2784 | * to any existing text buffer and will be passed the pointer @p | ||
2785 | * dumpdata as a parameter as well as a string with new text to be | ||
2786 | * appended. | ||
2787 | * | ||
2788 | * Example: | ||
2789 | * | ||
2790 | * @code | ||
2791 | * void output(void *data, const char *string) | ||
2792 | * { | ||
2793 | * printf("%s", string); | ||
2794 | * } | ||
2795 | * | ||
2796 | * void dump(const char *file) | ||
2797 | * { | ||
2798 | * FILE *f; | ||
2799 | * int len; | ||
2800 | * void *data; | ||
2801 | * | ||
2802 | * f = fopen(file, "r"); | ||
2803 | * fseek(f, 0, SEEK_END); | ||
2804 | * len = ftell(f); | ||
2805 | * rewind(f); | ||
2806 | * data = malloc(len); | ||
2807 | * fread(data, len, 1, f); | ||
2808 | * fclose(f); | ||
2809 | * eet_data_text_dump(data, len, output, NULL); | ||
2810 | * } | ||
2811 | * @endcode | ||
2812 | * | ||
2813 | * @see eet_data_text_dump_cipher() | ||
2814 | * | ||
2815 | * @since 1.0.0 | ||
2816 | * @ingroup Eet_Data_Group | ||
2817 | */ | ||
2818 | EAPI int | ||
2819 | eet_data_text_dump(const void *data_in, | ||
2820 | int size_in, | ||
2821 | Eet_Dump_Callback dumpfunc, | ||
2822 | void *dumpdata); | ||
2823 | |||
2824 | /** | ||
2825 | * Take an ascii encoding from eet_data_text_dump() and re-encode in binary. | ||
2826 | * @param text The pointer to the string data to parse and encode. | ||
2827 | * @param textlen The size of the string in bytes (not including 0 | ||
2828 | * byte terminator). | ||
2829 | * @param size_ret This gets filled in with the encoded data blob | ||
2830 | * size in bytes. | ||
2831 | * @return The encoded data on success, NULL on failure. | ||
2832 | * | ||
2833 | * This function will parse the string pointed to by @p text and return | ||
2834 | * an encoded data lump the same way eet_data_descriptor_encode() takes an | ||
2835 | * in-memory data struct and encodes into a binary blob. @p text is a normal | ||
2836 | * C string. | ||
2837 | * | ||
2838 | * @see eet_data_text_undump_cipher() | ||
2839 | * | ||
2840 | * @since 1.0.0 | ||
2841 | * @ingroup Eet_Data_Group | ||
2842 | */ | ||
2843 | EAPI void * | ||
2844 | eet_data_text_undump(const char *text, | ||
2845 | int textlen, | ||
2846 | int *size_ret); | ||
2847 | |||
2848 | /** | ||
2849 | * Dump an eet encoded data structure from an eet file into ascii text | ||
2850 | * @param ef A valid eet file handle. | ||
2851 | * @param name Name of the entry. eg: "/base/file_i_want". | ||
2852 | * @param dumpfunc The function to call passed a string when new | ||
2853 | * data is converted to text | ||
2854 | * @param dumpdata The data to pass to the @p dumpfunc callback. | ||
2855 | * @return 1 on success, 0 on failure | ||
2856 | * | ||
2857 | * This function will take an open and valid eet file from | ||
2858 | * eet_open() request the data encoded by | ||
2859 | * eet_data_descriptor_encode() corresponding to the key @p name | ||
2860 | * and convert it into human readable ascii text. It does this by | ||
2861 | * calling the @p dumpfunc callback for all new text that is | ||
2862 | * generated. This callback should append to any existing text | ||
2863 | * buffer and will be passed the pointer @p dumpdata as a parameter | ||
2864 | * as well as a string with new text to be appended. | ||
2865 | * | ||
2866 | * @see eet_data_dump_cipher() | ||
2867 | * | ||
2868 | * @since 1.0.0 | ||
2869 | * @ingroup Eet_Data_Group | ||
2870 | */ | ||
2871 | EAPI int | ||
2872 | eet_data_dump(Eet_File *ef, | ||
2873 | const char *name, | ||
2874 | Eet_Dump_Callback dumpfunc, | ||
2875 | void *dumpdata); | ||
2876 | |||
2877 | /** | ||
2878 | * Take an ascii encoding from eet_data_dump() and re-encode in binary. | ||
2879 | * @param ef A valid eet file handle. | ||
2880 | * @param name Name of the entry. eg: "/base/file_i_want". | ||
2881 | * @param text The pointer to the string data to parse and encode. | ||
2882 | * @param textlen The size of the string in bytes (not including 0 | ||
2883 | * byte terminator). | ||
2884 | * @param compress Compression flags (1 == compress, 0 = don't compress). | ||
2885 | * @return 1 on success, 0 on failure | ||
2886 | * | ||
2887 | * This function will parse the string pointed to by @p text, | ||
2888 | * encode it the same way eet_data_descriptor_encode() takes an | ||
2889 | * in-memory data struct and encodes into a binary blob. | ||
2890 | * | ||
2891 | * The data (optionally compressed) will be in ram, pending a flush to | ||
2892 | * disk (it will stay in ram till the eet file handle is closed though). | ||
2893 | * | ||
2894 | * @see eet_data_undump_cipher() | ||
2895 | * | ||
2896 | * @since 1.0.0 | ||
2897 | * @ingroup Eet_Data_Group | ||
2898 | */ | ||
2899 | EAPI int | ||
2900 | eet_data_undump(Eet_File *ef, | ||
2901 | const char *name, | ||
2902 | const char *text, | ||
2903 | int textlen, | ||
2904 | int compress); | ||
2905 | |||
2906 | /** | ||
2907 | * Decode a data structure from an arbitrary location in memory. | ||
2908 | * @param edd The data descriptor to use when decoding. | ||
2909 | * @param data_in The pointer to the data to decode into a struct. | ||
2910 | * @param size_in The size of the data pointed to in bytes. | ||
2911 | * @return NULL on failure, or a valid decoded struct pointer on success. | ||
2912 | * | ||
2913 | * This function will decode a data structure that has been encoded using | ||
2914 | * eet_data_descriptor_encode(), and return a data structure with all its | ||
2915 | * elements filled out, if successful, or NULL on failure. | ||
2916 | * | ||
2917 | * The data to be decoded is stored at the memory pointed to by @p data_in, | ||
2918 | * and is described by the descriptor pointed to by @p edd. The data size is | ||
2919 | * passed in as the value to @p size_in, ande must be greater than 0 to | ||
2920 | * succeed. | ||
2921 | * | ||
2922 | * This function is useful for decoding data structures delivered to the | ||
2923 | * application by means other than an eet file, such as an IPC or socket | ||
2924 | * connection, raw files, shared memory etc. | ||
2925 | * | ||
2926 | * Please see eet_data_read() for more information. | ||
2927 | * | ||
2928 | * @see eet_data_descriptor_decode_cipher() | ||
2929 | * | ||
2930 | * @since 1.0.0 | ||
2931 | * @ingroup Eet_Data_Group | ||
2932 | */ | ||
2933 | EAPI void * | ||
2934 | eet_data_descriptor_decode(Eet_Data_Descriptor *edd, | ||
2935 | const void *data_in, | ||
2936 | int size_in); | ||
2937 | |||
2938 | /** | ||
2939 | * Encode a dsata struct to memory and return that encoded data. | ||
2940 | * @param edd The data descriptor to use when encoding. | ||
2941 | * @param data_in The pointer to the struct to encode into data. | ||
2942 | * @param size_ret pointer to the an int to be filled with the decoded size. | ||
2943 | * @return NULL on failure, or a valid encoded data chunk on success. | ||
2944 | * | ||
2945 | * This function takes a data structutre in memory and encodes it into a | ||
2946 | * serialised chunk of data that can be decoded again by | ||
2947 | * eet_data_descriptor_decode(). This is useful for being able to transmit | ||
2948 | * data structures across sockets, pipes, IPC or shared file mechanisms, | ||
2949 | * without having to worry about memory space, machine type, endianess etc. | ||
2950 | * | ||
2951 | * The parameter @p edd must point to a valid data descriptor, and | ||
2952 | * @p data_in must point to the right data structure to encode. If not, the | ||
2953 | * encoding may fail. | ||
2954 | * | ||
2955 | * On success a non NULL valid pointer is returned and what @p size_ret | ||
2956 | * points to is set to the size of this decoded data, in bytes. When the | ||
2957 | * encoded data is no longer needed, call free() on it. On failure NULL is | ||
2958 | * returned and what @p size_ret points to is set to 0. | ||
2959 | * | ||
2960 | * Please see eet_data_write() for more information. | ||
2961 | * | ||
2962 | * @see eet_data_descriptor_encode_cipher() | ||
2963 | * | ||
2964 | * @since 1.0.0 | ||
2965 | * @ingroup Eet_Data_Group | ||
2966 | */ | ||
2967 | EAPI void * | ||
2968 | eet_data_descriptor_encode(Eet_Data_Descriptor *edd, | ||
2969 | const void *data_in, | ||
2970 | int *size_ret); | ||
2971 | |||
2972 | /** | ||
2973 | * Add a basic data element to a data descriptor. | ||
2974 | * @param edd The data descriptor to add the type to. | ||
2975 | * @param struct_type The type of the struct. | ||
2976 | * @param name The string name to use to encode/decode this member | ||
2977 | * (must be a constant global and never change). | ||
2978 | * @param member The struct member itself to be encoded. | ||
2979 | * @param type The type of the member to encode. | ||
2980 | * | ||
2981 | * This macro is a convenience macro provided to add a member to | ||
2982 | * the data descriptor @p edd. The type of the structure is | ||
2983 | * provided as the @p struct_type parameter (for example: struct | ||
2984 | * my_struct). The @p name parameter defines a string that will be | ||
2985 | * used to uniquely name that member of the struct (it is suggested | ||
2986 | * to use the struct member itself). The @p member parameter is | ||
2987 | * the actual struct member itself (for example: values), and @p type is the | ||
2988 | * basic data type of the member which must be one of: EET_T_CHAR, EET_T_SHORT, | ||
2989 | * EET_T_INT, EET_T_LONG_LONG, EET_T_FLOAT, EET_T_DOUBLE, EET_T_UCHAR, | ||
2990 | * EET_T_USHORT, EET_T_UINT, EET_T_ULONG_LONG or EET_T_STRING. | ||
2991 | * | ||
2992 | * @since 1.0.0 | ||
2993 | * @ingroup Eet_Data_Group | ||
2994 | */ | ||
2995 | #define EET_DATA_DESCRIPTOR_ADD_BASIC(edd, struct_type, name, member, type) \ | ||
2996 | do { \ | ||
2997 | struct_type ___ett; \ | ||
2998 | eet_data_descriptor_element_add(edd, name, type, EET_G_UNKNOWN, \ | ||
2999 | (char *)(& (___ett.member)) - \ | ||
3000 | (char *)(& (___ett)), \ | ||
3001 | 0, /* 0, */ NULL, NULL); \ | ||
3002 | } while(0) | ||
3003 | |||
3004 | /** | ||
3005 | * Add a sub-element type to a data descriptor | ||
3006 | * @param edd The data descriptor to add the type to. | ||
3007 | * @param struct_type The type of the struct. | ||
3008 | * @param name The string name to use to encode/decode this member | ||
3009 | * (must be a constant global and never change). | ||
3010 | * @param member The struct member itself to be encoded. | ||
3011 | * @param subtype The type of sub-type struct to add. | ||
3012 | * | ||
3013 | * This macro lets you easily add a sub-type (a struct that's pointed to | ||
3014 | * by this one). All the parameters are the same as for | ||
3015 | * EET_DATA_DESCRIPTOR_ADD_BASIC(), with the @p subtype being the exception. | ||
3016 | * This must be the data descriptor of the struct that is pointed to by | ||
3017 | * this element. | ||
3018 | * | ||
3019 | * @since 1.0.0 | ||
3020 | * @ingroup Eet_Data_Group | ||
3021 | */ | ||
3022 | #define EET_DATA_DESCRIPTOR_ADD_SUB(edd, struct_type, name, member, subtype) \ | ||
3023 | do { \ | ||
3024 | struct_type ___ett; \ | ||
3025 | eet_data_descriptor_element_add(edd, name, EET_T_UNKNOW, EET_G_UNKNOWN, \ | ||
3026 | (char *)(& (___ett.member)) - \ | ||
3027 | (char *)(& (___ett)), \ | ||
3028 | 0, /* 0, */ NULL, subtype); \ | ||
3029 | } while (0) | ||
3030 | |||
3031 | /** | ||
3032 | * Add a linked list type to a data descriptor | ||
3033 | * @param edd The data descriptor to add the type to. | ||
3034 | * @param struct_type The type of the struct. | ||
3035 | * @param name The string name to use to encode/decode this member | ||
3036 | * (must be a constant global and never change). | ||
3037 | * @param member The struct member itself to be encoded. | ||
3038 | * @param subtype The type of linked list member to add. | ||
3039 | * | ||
3040 | * This macro lets you easily add a linked list of other data types. All the | ||
3041 | * parameters are the same as for EET_DATA_DESCRIPTOR_ADD_BASIC(), with the | ||
3042 | * @p subtype being the exception. This must be the data descriptor of the | ||
3043 | * element that is in each member of the linked list to be stored. | ||
3044 | * | ||
3045 | * @since 1.0.0 | ||
3046 | * @ingroup Eet_Data_Group | ||
3047 | */ | ||
3048 | #define EET_DATA_DESCRIPTOR_ADD_LIST(edd, struct_type, name, member, subtype) \ | ||
3049 | do { \ | ||
3050 | struct_type ___ett; \ | ||
3051 | eet_data_descriptor_element_add(edd, name, EET_T_UNKNOW, EET_G_LIST, \ | ||
3052 | (char *)(& (___ett.member)) - \ | ||
3053 | (char *)(& (___ett)), \ | ||
3054 | 0, /* 0, */ NULL, subtype); \ | ||
3055 | } while (0) | ||
3056 | |||
3057 | /** | ||
3058 | * Add a linked list of string to a data descriptor | ||
3059 | * @param edd The data descriptor to add the type to. | ||
3060 | * @param struct_type The type of the struct. | ||
3061 | * @param name The string name to use to encode/decode this member | ||
3062 | * (must be a constant global and never change). | ||
3063 | * @param member The struct member itself to be encoded. | ||
3064 | * | ||
3065 | * This macro lets you easily add a linked list of char *. All the | ||
3066 | * parameters are the same as for EET_DATA_DESCRIPTOR_ADD_BASIC(). | ||
3067 | * | ||
3068 | * @since 1.5.0 | ||
3069 | * @ingroup Eet_Data_Group | ||
3070 | */ | ||
3071 | #define EET_DATA_DESCRIPTOR_ADD_LIST_STRING(edd, struct_type, name, member) \ | ||
3072 | do { \ | ||
3073 | struct_type ___ett; \ | ||
3074 | eet_data_descriptor_element_add(edd, name, EET_T_STRING, EET_G_LIST, \ | ||
3075 | (char *)(& (___ett.member)) - \ | ||
3076 | (char *)(& (___ett)), \ | ||
3077 | 0, /* 0, */ NULL, NULL); \ | ||
3078 | } while (0) | ||
3079 | |||
3080 | /** | ||
3081 | * Add a hash type to a data descriptor | ||
3082 | * @param edd The data descriptor to add the type to. | ||
3083 | * @param struct_type The type of the struct. | ||
3084 | * @param name The string name to use to encode/decode this member | ||
3085 | * (must be a constant global and never change). | ||
3086 | * @param member The struct member itself to be encoded. | ||
3087 | * @param subtype The type of hash member to add. | ||
3088 | * | ||
3089 | * This macro lets you easily add a hash of other data types. All the | ||
3090 | * parameters are the same as for EET_DATA_DESCRIPTOR_ADD_BASIC(), with the | ||
3091 | * @p subtype being the exception. This must be the data descriptor of the | ||
3092 | * element that is in each member of the hash to be stored. | ||
3093 | * The hash keys must be strings. | ||
3094 | * | ||
3095 | * @since 1.0.0 | ||
3096 | * @ingroup Eet_Data_Group | ||
3097 | */ | ||
3098 | #define EET_DATA_DESCRIPTOR_ADD_HASH(edd, struct_type, name, member, subtype) \ | ||
3099 | do { \ | ||
3100 | struct_type ___ett; \ | ||
3101 | eet_data_descriptor_element_add(edd, name, EET_T_UNKNOW, EET_G_HASH, \ | ||
3102 | (char *)(& (___ett.member)) - \ | ||
3103 | (char *)(& (___ett)), \ | ||
3104 | 0, /* 0, */ NULL, subtype); \ | ||
3105 | } while (0) | ||
3106 | |||
3107 | /** | ||
3108 | * Add a hash of string to a data descriptor | ||
3109 | * @param edd The data descriptor to add the type to. | ||
3110 | * @param struct_type The type of the struct. | ||
3111 | * @param name The string name to use to encode/decode this member | ||
3112 | * (must be a constant global and never change). | ||
3113 | * @param member The struct member itself to be encoded. | ||
3114 | * | ||
3115 | * This macro lets you easily add a hash of string elements. All the | ||
3116 | * parameters are the same as for EET_DATA_DESCRIPTOR_ADD_HASH(). | ||
3117 | * | ||
3118 | * @since 1.3.4 | ||
3119 | * @ingroup Eet_Data_Group | ||
3120 | */ | ||
3121 | #define EET_DATA_DESCRIPTOR_ADD_HASH_STRING(edd, struct_type, name, member) \ | ||
3122 | do { \ | ||
3123 | struct_type ___ett; \ | ||
3124 | eet_data_descriptor_element_add(edd, name, EET_T_STRING, EET_G_HASH, \ | ||
3125 | (char *)(& (___ett.member)) - \ | ||
3126 | (char *)(& (___ett)), \ | ||
3127 | 0, /* 0, */ NULL, NULL); \ | ||
3128 | } while (0) | ||
3129 | |||
3130 | /** | ||
3131 | * Add an array of basic data elements to a data descriptor. | ||
3132 | * @param edd The data descriptor to add the type to. | ||
3133 | * @param struct_type The type of the struct. | ||
3134 | * @param name The string name to use to encode/decode this member | ||
3135 | * (must be a constant global and never change). | ||
3136 | * @param member The struct member itself to be encoded. | ||
3137 | * @param type The type of the member to encode. | ||
3138 | * | ||
3139 | * This macro lets you easily add a fixed size array of basic data | ||
3140 | * types. All the parameters are the same as for | ||
3141 | * EET_DATA_DESCRIPTOR_ADD_BASIC(). | ||
3142 | * The array must be defined with a fixed size in the declaration of the | ||
3143 | * struct containing it. | ||
3144 | * | ||
3145 | * @since 1.5.0 | ||
3146 | * @ingroup Eet_Data_Group | ||
3147 | */ | ||
3148 | #define EET_DATA_DESCRIPTOR_ADD_BASIC_ARRAY(edd, struct_type, name, member, type) \ | ||
3149 | do { \ | ||
3150 | struct_type ___ett; \ | ||
3151 | eet_data_descriptor_element_add(edd, name, type, EET_G_ARRAY, \ | ||
3152 | (char *)(& (___ett.member)) - \ | ||
3153 | (char *)(& (___ett)), \ | ||
3154 | sizeof(___ett.member) / \ | ||
3155 | sizeof(___ett.member[0]), \ | ||
3156 | NULL, NULL); \ | ||
3157 | } while(0) | ||
3158 | |||
3159 | /** | ||
3160 | * Add a fixed size array type to a data descriptor | ||
3161 | * @param edd The data descriptor to add the type to. | ||
3162 | * @param struct_type The type of the struct. | ||
3163 | * @param name The string name to use to encode/decode this member | ||
3164 | * (must be a constant global and never change). | ||
3165 | * @param member The struct member itself to be encoded. | ||
3166 | * @param subtype The type of hash member to add. | ||
3167 | * | ||
3168 | * This macro lets you easily add a fixed size array of other data | ||
3169 | * types. All the parameters are the same as for | ||
3170 | * EET_DATA_DESCRIPTOR_ADD_BASIC(), with the @p subtype being the | ||
3171 | * exception. This must be the data descriptor of the element that | ||
3172 | * is in each member of the array to be stored. | ||
3173 | * The array must be defined with a fixed size in the declaration of the | ||
3174 | * struct containing it. | ||
3175 | * | ||
3176 | * @since 1.0.2 | ||
3177 | * @ingroup Eet_Data_Group | ||
3178 | */ | ||
3179 | #define EET_DATA_DESCRIPTOR_ADD_ARRAY(edd, struct_type, name, member, subtype) \ | ||
3180 | do { \ | ||
3181 | struct_type ___ett; \ | ||
3182 | eet_data_descriptor_element_add(edd, name, EET_T_UNKNOW, EET_G_ARRAY, \ | ||
3183 | (char *)(& (___ett.member)) - \ | ||
3184 | (char *)(& (___ett)), \ | ||
3185 | /* 0, */ sizeof(___ett.member) / \ | ||
3186 | sizeof(___ett.member[0]), NULL, subtype); \ | ||
3187 | } while (0) | ||
3188 | |||
3189 | /** | ||
3190 | * Add a variable size array type to a data descriptor | ||
3191 | * @param edd The data descriptor to add the type to. | ||
3192 | * @param struct_type The type of the struct. | ||
3193 | * @param name The string name to use to encode/decode this member | ||
3194 | * (must be a constant global and never change). | ||
3195 | * @param member The struct member itself to be encoded. | ||
3196 | * @param subtype The type of hash member to add. | ||
3197 | * | ||
3198 | * This macro lets you easily add a variable size array of other data | ||
3199 | * types. All the parameters are the same as for | ||
3200 | * EET_DATA_DESCRIPTOR_ADD_BASIC(), with the @p subtype being the | ||
3201 | * exception. This must be the data descriptor of the element that | ||
3202 | * is in each member of the array to be stored. This assumes you have | ||
3203 | * a struct member (of type EET_T_INT) called member_count (note the | ||
3204 | * _count appended to the member) that holds the number of items in | ||
3205 | * the array. This array will be allocated separately to the struct it | ||
3206 | * is in. | ||
3207 | * | ||
3208 | * @since 1.0.2 | ||
3209 | * @ingroup Eet_Data_Group | ||
3210 | */ | ||
3211 | #define EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY(edd, struct_type, name, member, subtype) \ | ||
3212 | do { \ | ||
3213 | struct_type ___ett; \ | ||
3214 | eet_data_descriptor_element_add(edd, \ | ||
3215 | name, \ | ||
3216 | EET_T_UNKNOW, \ | ||
3217 | EET_G_VAR_ARRAY, \ | ||
3218 | (char *)(& (___ett.member)) - \ | ||
3219 | (char *)(& (___ett)), \ | ||
3220 | (char *)(& (___ett.member ## _count)) - \ | ||
3221 | (char *)(& (___ett)), \ | ||
3222 | /* 0, */ NULL, \ | ||
3223 | subtype); \ | ||
3224 | } while (0) | ||
3225 | |||
3226 | /** | ||
3227 | * Add a variable size array type to a data descriptor | ||
3228 | * @param edd The data descriptor to add the type to. | ||
3229 | * @param struct_type The type of the struct. | ||
3230 | * @param name The string name to use to encode/decode this member | ||
3231 | * (must be a constant global and never change). | ||
3232 | * @param member The struct member itself to be encoded. | ||
3233 | * | ||
3234 | * This macro lets you easily add a variable size array of strings. All | ||
3235 | * the parameters are the same as for EET_DATA_DESCRIPTOR_ADD_BASIC(). | ||
3236 | * | ||
3237 | * @since 1.4.0 | ||
3238 | * @ingroup Eet_Data_Group | ||
3239 | */ | ||
3240 | #define EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY_STRING(edd, struct_type, name, member) \ | ||
3241 | do { \ | ||
3242 | struct_type ___ett; \ | ||
3243 | eet_data_descriptor_element_add(edd, \ | ||
3244 | name, \ | ||
3245 | EET_T_STRING, \ | ||
3246 | EET_G_VAR_ARRAY, \ | ||
3247 | (char *)(& (___ett.member)) - \ | ||
3248 | (char *)(& (___ett)), \ | ||
3249 | (char *)(& (___ett.member ## _count)) - \ | ||
3250 | (char *)(& (___ett)), \ | ||
3251 | /* 0, */ NULL, \ | ||
3252 | NULL); \ | ||
3253 | } while (0) | ||
3254 | |||
3255 | /** | ||
3256 | * Add an union type to a data descriptor | ||
3257 | * @param edd The data descriptor to add the type to. | ||
3258 | * @param struct_type The type of the struct. | ||
3259 | * @param name The string name to use to encode/decode this member | ||
3260 | * (must be a constant global and never change). | ||
3261 | * @param member The struct member itself to be encoded. | ||
3262 | * @param type_member The member that give hints on what is in the union. | ||
3263 | * @param unified_type Describe all possible type the union could handle. | ||
3264 | * | ||
3265 | * This macro lets you easily add an union with a member that specify what is inside. | ||
3266 | * The @p unified_type is an Eet_Data_Descriptor, but only the entry that match the name | ||
3267 | * returned by type_get will be used for each serialized data. The type_get and type_set | ||
3268 | * callback of unified_type should be defined. | ||
3269 | * | ||
3270 | * @since 1.2.4 | ||
3271 | * @ingroup Eet_Data_Group | ||
3272 | * @see Eet_Data_Descriptor_Class | ||
3273 | */ | ||
3274 | #define EET_DATA_DESCRIPTOR_ADD_UNION(edd, struct_type, name, member, type_member, unified_type) \ | ||
3275 | do { \ | ||
3276 | struct_type ___ett; \ | ||
3277 | eet_data_descriptor_element_add(edd, name, EET_T_UNKNOW, EET_G_UNION, \ | ||
3278 | (char *)(& (___ett.member)) - \ | ||
3279 | (char *)(& (___ett)), \ | ||
3280 | (char *)(& (___ett.type_member)) - \ | ||
3281 | (char *)(& (___ett)), \ | ||
3282 | NULL, unified_type); \ | ||
3283 | } while (0) | ||
3284 | |||
3285 | /** | ||
3286 | * Add a automatically selectable type to a data descriptor | ||
3287 | * @param edd The data descriptor to add the type to. | ||
3288 | * @param struct_type The type of the struct. | ||
3289 | * @param name The string name to use to encode/decode this member | ||
3290 | * (must be a constant global and never change). | ||
3291 | * @param member The struct member itself to be encoded. | ||
3292 | * @param type_member The member that give hints on what is in the union. | ||
3293 | * @param unified_type Describe all possible type the union could handle. | ||
3294 | * | ||
3295 | * This macro lets you easily define what the content of @p member points to depending of | ||
3296 | * the content of @p type_member. The type_get and type_set callback of unified_type should | ||
3297 | * be defined. If the the type is not know at the time of restoring it, eet will still call | ||
3298 | * type_set of @p unified_type but the pointer will be set to a serialized binary representation | ||
3299 | * of what eet know. This make it possible, to save this pointer again by just returning the string | ||
3300 | * given previously and telling it by setting unknow to EINA_TRUE. | ||
3301 | * | ||
3302 | * @since 1.2.4 | ||
3303 | * @ingroup Eet_Data_Group | ||
3304 | * @see Eet_Data_Descriptor_Class | ||
3305 | */ | ||
3306 | #define EET_DATA_DESCRIPTOR_ADD_VARIANT(edd, struct_type, name, member, type_member, unified_type) \ | ||
3307 | do { \ | ||
3308 | struct_type ___ett; \ | ||
3309 | eet_data_descriptor_element_add(edd, name, EET_T_UNKNOW, EET_G_VARIANT, \ | ||
3310 | (char *)(& (___ett.member)) - \ | ||
3311 | (char *)(& (___ett)), \ | ||
3312 | (char *)(& (___ett.type_member)) - \ | ||
3313 | (char *)(& (___ett)), \ | ||
3314 | NULL, unified_type); \ | ||
3315 | } while (0) | ||
3316 | |||
3317 | /** | ||
3318 | * Add a mapping to a data descriptor that will be used by union, variant or inherited type | ||
3319 | * @param unified_type The data descriptor to add the mapping to. | ||
3320 | * @param name The string name to get/set type. | ||
3321 | * @param subtype The matching data descriptor. | ||
3322 | * | ||
3323 | * @since 1.2.4 | ||
3324 | * @ingroup Eet_Data_Group | ||
3325 | * @see Eet_Data_Descriptor_Class | ||
3326 | */ | ||
3327 | #define EET_DATA_DESCRIPTOR_ADD_MAPPING(unified_type, name, subtype) \ | ||
3328 | eet_data_descriptor_element_add(unified_type, \ | ||
3329 | name, \ | ||
3330 | EET_T_UNKNOW, \ | ||
3331 | EET_G_UNKNOWN, \ | ||
3332 | 0, \ | ||
3333 | 0, \ | ||
3334 | NULL, \ | ||
3335 | subtype) | ||
3336 | |||
3337 | /** | ||
3338 | * @defgroup Eet_Data_Cipher_Group Eet Data Serialization using A Ciphers | ||
3339 | * | ||
3340 | * Most of the @ref Eet_Data_Group have alternative versions that | ||
3341 | * accounts for ciphers to protect their content. | ||
3342 | * | ||
3343 | * @see @ref Eet_Cipher_Group | ||
3344 | * | ||
3345 | * @ingroup Eet_Data_Group | ||
3346 | */ | ||
3347 | |||
3348 | /** | ||
3349 | * Read a data structure from an eet file and decodes it using a cipher. | ||
3350 | * @param ef The eet file handle to read from. | ||
3351 | * @param edd The data descriptor handle to use when decoding. | ||
3352 | * @param name The key the data is stored under in the eet file. | ||
3353 | * @param cipher_key The key to use as cipher. | ||
3354 | * @return A pointer to the decoded data structure. | ||
3355 | * | ||
3356 | * This function decodes a data structure stored in an eet file, returning | ||
3357 | * a pointer to it if it decoded successfully, or NULL on failure. This | ||
3358 | * can save a programmer dozens of hours of work in writing configuration | ||
3359 | * file parsing and writing code, as eet does all that work for the program | ||
3360 | * and presents a program-friendly data structure, just as the programmer | ||
3361 | * likes. Eet can handle members being added or deleted from the data in | ||
3362 | * storage and safely zero-fills unfilled members if they were not found | ||
3363 | * in the data. It checks sizes and headers whenever it reads data, allowing | ||
3364 | * the programmer to not worry about corrupt data. | ||
3365 | * | ||
3366 | * Once a data structure has been described by the programmer with the | ||
3367 | * fields they wish to save or load, storing or retrieving a data structure | ||
3368 | * from an eet file, or from a chunk of memory is as simple as a single | ||
3369 | * function call. | ||
3370 | * | ||
3371 | * @see eet_data_read() | ||
3372 | * | ||
3373 | * @since 1.0.0 | ||
3374 | * @ingroup Eet_Data_Cipher_Group | ||
3375 | */ | ||
3376 | EAPI void * | ||
3377 | eet_data_read_cipher(Eet_File *ef, | ||
3378 | Eet_Data_Descriptor *edd, | ||
3379 | const char *name, | ||
3380 | const char *cipher_key); | ||
3381 | |||
3382 | /** | ||
3383 | * Read a data structure from an eet extended attribute and decodes it using a cipher. | ||
3384 | * @param filename The file to extract the extended attribute from. | ||
3385 | * @param attribute The attribute to get the data from. | ||
3386 | * @param edd The data descriptor handle to use when decoding. | ||
3387 | * @param cipher_key The key to use as cipher. | ||
3388 | * @return A pointer to the decoded data structure. | ||
3389 | * | ||
3390 | * This function decodes a data structure stored in an eet extended attribute, | ||
3391 | * returning a pointer to it if it decoded successfully, or NULL on failure. | ||
3392 | * Eet can handle members being added or deleted from the data in | ||
3393 | * storage and safely zero-fills unfilled members if they were not found | ||
3394 | * in the data. It checks sizes and headers whenever it reads data, allowing | ||
3395 | * the programmer to not worry about corrupt data. | ||
3396 | * | ||
3397 | * Once a data structure has been described by the programmer with the | ||
3398 | * fields they wish to save or load, storing or retrieving a data structure | ||
3399 | * from an eet file, from a chunk of memory or from an extended attribute | ||
3400 | * is as simple as a single function call. | ||
3401 | * | ||
3402 | * @since 1.5.0 | ||
3403 | * @ingroup Eet_Data_Cipher_Group | ||
3404 | */ | ||
3405 | EAPI void * | ||
3406 | eet_data_xattr_cipher_get(const char *filename, | ||
3407 | const char *attribute, | ||
3408 | Eet_Data_Descriptor *edd, | ||
3409 | const char *cipher_key); | ||
3410 | |||
3411 | /** | ||
3412 | * Write a data structure from memory and store in an eet file | ||
3413 | * using a cipher. | ||
3414 | * @param ef The eet file handle to write to. | ||
3415 | * @param edd The data descriptor to use when encoding. | ||
3416 | * @param name The key to store the data under in the eet file. | ||
3417 | * @param cipher_key The key to use as cipher. | ||
3418 | * @param data A pointer to the data structure to ssave and encode. | ||
3419 | * @param compress Compression flags for storage. | ||
3420 | * @return bytes written on successful write, 0 on failure. | ||
3421 | * | ||
3422 | * This function is the reverse of eet_data_read_cipher(), saving a data structure | ||
3423 | * to an eet file. | ||
3424 | * | ||
3425 | * @since 1.0.0 | ||
3426 | * @ingroup Eet_Data_Cipher_Group | ||
3427 | */ | ||
3428 | EAPI int | ||
3429 | eet_data_write_cipher(Eet_File *ef, | ||
3430 | Eet_Data_Descriptor *edd, | ||
3431 | const char *name, | ||
3432 | const char *cipher_key, | ||
3433 | const void *data, | ||
3434 | int compress); | ||
3435 | |||
3436 | /** | ||
3437 | * Write a data structure from memory and store in an eet extended attribute | ||
3438 | * using a cipher. | ||
3439 | * @param filename The file to write the extended attribute to. | ||
3440 | * @param attribute The attribute to store the data to. | ||
3441 | * @param edd The data descriptor to use when encoding. | ||
3442 | * @param cipher_key The key to use as cipher. | ||
3443 | * @param data A pointer to the data structure to ssave and encode. | ||
3444 | * @param flags The policy to use when setting the data. | ||
3445 | * @return EINA_TRUE on success, EINA_FALSE on failure. | ||
3446 | * | ||
3447 | * This function is the reverse of eet_data_xattr_cipher_get(), saving a data structure | ||
3448 | * to an eet extended attribute. | ||
3449 | * | ||
3450 | * @since 1.5.0 | ||
3451 | * @ingroup Eet_Data_Cipher_Group | ||
3452 | */ | ||
3453 | EAPI Eina_Bool | ||
3454 | eet_data_xattr_cipher_set(const char *filename, | ||
3455 | const char *attribute, | ||
3456 | Eet_Data_Descriptor *edd, | ||
3457 | const char *cipher_key, | ||
3458 | const void *data, | ||
3459 | Eina_Xattr_Flags flags); | ||
3460 | |||
3461 | /** | ||
3462 | * Dump an eet encoded data structure into ascii text using a cipher. | ||
3463 | * @param data_in The pointer to the data to decode into a struct. | ||
3464 | * @param cipher_key The key to use as cipher. | ||
3465 | * @param size_in The size of the data pointed to in bytes. | ||
3466 | * @param dumpfunc The function to call passed a string when new | ||
3467 | * data is converted to text | ||
3468 | * @param dumpdata The data to pass to the @p dumpfunc callback. | ||
3469 | * @return 1 on success, 0 on failure | ||
3470 | * | ||
3471 | * This function will take a chunk of data encoded by | ||
3472 | * eet_data_descriptor_encode() and convert it into human readable | ||
3473 | * ascii text. It does this by calling the @p dumpfunc callback | ||
3474 | * for all new text that is generated. This callback should append | ||
3475 | * to any existing text buffer and will be passed the pointer @p | ||
3476 | * dumpdata as a parameter as well as a string with new text to be | ||
3477 | * appended. | ||
3478 | * | ||
3479 | * Example: | ||
3480 | * | ||
3481 | * @code | ||
3482 | * void output(void *data, const char *string) | ||
3483 | * { | ||
3484 | * printf("%s", string); | ||
3485 | * } | ||
3486 | * | ||
3487 | * void dump(const char *file) | ||
3488 | * { | ||
3489 | * FILE *f; | ||
3490 | * int len; | ||
3491 | * void *data; | ||
3492 | * | ||
3493 | * f = fopen(file, "r"); | ||
3494 | * fseek(f, 0, SEEK_END); | ||
3495 | * len = ftell(f); | ||
3496 | * rewind(f); | ||
3497 | * data = malloc(len); | ||
3498 | * fread(data, len, 1, f); | ||
3499 | * fclose(f); | ||
3500 | * eet_data_text_dump_cipher(data, cipher_key, len, output, NULL); | ||
3501 | * } | ||
3502 | * @endcode | ||
3503 | * | ||
3504 | * @see eet_data_text_dump() | ||
3505 | * | ||
3506 | * @since 1.0.0 | ||
3507 | * @ingroup Eet_Data_Cipher_Group | ||
3508 | */ | ||
3509 | EAPI int | ||
3510 | eet_data_text_dump_cipher(const void *data_in, | ||
3511 | const char *cipher_key, | ||
3512 | int size_in, | ||
3513 | Eet_Dump_Callback dumpfunc, | ||
3514 | void *dumpdata); | ||
3515 | |||
3516 | /** | ||
3517 | * Take an ascii encoding from eet_data_text_dump() and re-encode | ||
3518 | * in binary using a cipher. | ||
3519 | * @param text The pointer to the string data to parse and encode. | ||
3520 | * @param cipher_key The key to use as cipher. | ||
3521 | * @param textlen The size of the string in bytes (not including 0 | ||
3522 | * byte terminator). | ||
3523 | * @param size_ret This gets filled in with the encoded data blob | ||
3524 | * size in bytes. | ||
3525 | * @return The encoded data on success, NULL on failure. | ||
3526 | * | ||
3527 | * This function will parse the string pointed to by @p text and return | ||
3528 | * an encoded data lump the same way eet_data_descriptor_encode() takes an | ||
3529 | * in-memory data struct and encodes into a binary blob. @p text is a normal | ||
3530 | * C string. | ||
3531 | * | ||
3532 | * @see eet_data_text_undump() | ||
3533 | * | ||
3534 | * @since 1.0.0 | ||
3535 | * @ingroup Eet_Data_Cipher_Group | ||
3536 | */ | ||
3537 | EAPI void * | ||
3538 | eet_data_text_undump_cipher(const char *text, | ||
3539 | const char *cipher_key, | ||
3540 | int textlen, | ||
3541 | int *size_ret); | ||
3542 | |||
3543 | /** | ||
3544 | * Dump an eet encoded data structure from an eet file into ascii | ||
3545 | * text using a cipher. | ||
3546 | * @param ef A valid eet file handle. | ||
3547 | * @param name Name of the entry. eg: "/base/file_i_want". | ||
3548 | * @param cipher_key The key to use as cipher. | ||
3549 | * @param dumpfunc The function to call passed a string when new | ||
3550 | * data is converted to text | ||
3551 | * @param dumpdata The data to pass to the @p dumpfunc callback. | ||
3552 | * @return 1 on success, 0 on failure | ||
3553 | * | ||
3554 | * This function will take an open and valid eet file from | ||
3555 | * eet_open() request the data encoded by | ||
3556 | * eet_data_descriptor_encode() corresponding to the key @p name | ||
3557 | * and convert it into human readable ascii text. It does this by | ||
3558 | * calling the @p dumpfunc callback for all new text that is | ||
3559 | * generated. This callback should append to any existing text | ||
3560 | * buffer and will be passed the pointer @p dumpdata as a parameter | ||
3561 | * as well as a string with new text to be appended. | ||
3562 | * | ||
3563 | * @see eet_data_dump() | ||
3564 | * | ||
3565 | * @since 1.0.0 | ||
3566 | * @ingroup Eet_Data_Cipher_Group | ||
3567 | */ | ||
3568 | EAPI int | ||
3569 | eet_data_dump_cipher(Eet_File *ef, | ||
3570 | const char *name, | ||
3571 | const char *cipher_key, | ||
3572 | Eet_Dump_Callback dumpfunc, | ||
3573 | void *dumpdata); | ||
3574 | |||
3575 | /** | ||
3576 | * Take an ascii encoding from eet_data_dump() and re-encode in | ||
3577 | * binary using a cipher. | ||
3578 | * @param ef A valid eet file handle. | ||
3579 | * @param name Name of the entry. eg: "/base/file_i_want". | ||
3580 | * @param cipher_key The key to use as cipher. | ||
3581 | * @param text The pointer to the string data to parse and encode. | ||
3582 | * @param textlen The size of the string in bytes (not including 0 | ||
3583 | * byte terminator). | ||
3584 | * @param compress Compression flags (1 == compress, 0 = don't compress). | ||
3585 | * @return 1 on success, 0 on failure | ||
3586 | * | ||
3587 | * This function will parse the string pointed to by @p text, | ||
3588 | * encode it the same way eet_data_descriptor_encode() takes an | ||
3589 | * in-memory data struct and encodes into a binary blob. | ||
3590 | * | ||
3591 | * The data (optionally compressed) will be in ram, pending a flush to | ||
3592 | * disk (it will stay in ram till the eet file handle is closed though). | ||
3593 | * | ||
3594 | * @see eet_data_undump() | ||
3595 | * | ||
3596 | * @since 1.0.0 | ||
3597 | * @ingroup Eet_Data_Cipher_Group | ||
3598 | */ | ||
3599 | EAPI int | ||
3600 | eet_data_undump_cipher(Eet_File *ef, | ||
3601 | const char *name, | ||
3602 | const char *cipher_key, | ||
3603 | const char *text, | ||
3604 | int textlen, | ||
3605 | int compress); | ||
3606 | |||
3607 | /** | ||
3608 | * Decode a data structure from an arbitrary location in memory | ||
3609 | * using a cipher. | ||
3610 | * @param edd The data descriptor to use when decoding. | ||
3611 | * @param data_in The pointer to the data to decode into a struct. | ||
3612 | * @param cipher_key The key to use as cipher. | ||
3613 | * @param size_in The size of the data pointed to in bytes. | ||
3614 | * @return NULL on failure, or a valid decoded struct pointer on success. | ||
3615 | * | ||
3616 | * This function will decode a data structure that has been encoded using | ||
3617 | * eet_data_descriptor_encode(), and return a data structure with all its | ||
3618 | * elements filled out, if successful, or NULL on failure. | ||
3619 | * | ||
3620 | * The data to be decoded is stored at the memory pointed to by @p data_in, | ||
3621 | * and is described by the descriptor pointed to by @p edd. The data size is | ||
3622 | * passed in as the value to @p size_in, ande must be greater than 0 to | ||
3623 | * succeed. | ||
3624 | * | ||
3625 | * This function is useful for decoding data structures delivered to the | ||
3626 | * application by means other than an eet file, such as an IPC or socket | ||
3627 | * connection, raw files, shared memory etc. | ||
3628 | * | ||
3629 | * Please see eet_data_read() for more information. | ||
3630 | * | ||
3631 | * @see eet_data_descriptor_decode() | ||
3632 | * | ||
3633 | * @since 1.0.0 | ||
3634 | * @ingroup Eet_Data_Cipher_Group | ||
3635 | */ | ||
3636 | EAPI void * | ||
3637 | eet_data_descriptor_decode_cipher(Eet_Data_Descriptor *edd, | ||
3638 | const void *data_in, | ||
3639 | const char *cipher_key, | ||
3640 | int size_in); | ||
3641 | |||
3642 | /** | ||
3643 | * Encode a data struct to memory and return that encoded data | ||
3644 | * using a cipher. | ||
3645 | * @param edd The data descriptor to use when encoding. | ||
3646 | * @param data_in The pointer to the struct to encode into data. | ||
3647 | * @param cipher_key The key to use as cipher. | ||
3648 | * @param size_ret pointer to the an int to be filled with the decoded size. | ||
3649 | * @return NULL on failure, or a valid encoded data chunk on success. | ||
3650 | * | ||
3651 | * This function takes a data structutre in memory and encodes it into a | ||
3652 | * serialised chunk of data that can be decoded again by | ||
3653 | * eet_data_descriptor_decode(). This is useful for being able to transmit | ||
3654 | * data structures across sockets, pipes, IPC or shared file mechanisms, | ||
3655 | * without having to worry about memory space, machine type, endianess etc. | ||
3656 | * | ||
3657 | * The parameter @p edd must point to a valid data descriptor, and | ||
3658 | * @p data_in must point to the right data structure to encode. If not, the | ||
3659 | * encoding may fail. | ||
3660 | * | ||
3661 | * On success a non NULL valid pointer is returned and what @p size_ret | ||
3662 | * points to is set to the size of this decoded data, in bytes. When the | ||
3663 | * encoded data is no longer needed, call free() on it. On failure NULL is | ||
3664 | * returned and what @p size_ret points to is set to 0. | ||
3665 | * | ||
3666 | * Please see eet_data_write() for more information. | ||
3667 | * | ||
3668 | * @see eet_data_descriptor_encode() | ||
3669 | * | ||
3670 | * @since 1.0.0 | ||
3671 | * @ingroup Eet_Data_Cipher_Group | ||
3672 | */ | ||
3673 | EAPI void * | ||
3674 | eet_data_descriptor_encode_cipher(Eet_Data_Descriptor *edd, | ||
3675 | const void *data_in, | ||
3676 | const char *cipher_key, | ||
3677 | int *size_ret); | ||
3678 | |||
3679 | /** | ||
3680 | * @defgroup Eet_Node_Group Low-level Serialization Structures. | ||
3681 | * | ||
3682 | * Functions that create, destroy and manipulate serialization nodes | ||
3683 | * used by @ref Eet_Data_Group. | ||
3684 | * | ||
3685 | * @{ | ||
3686 | */ | ||
3687 | |||
3688 | /** | ||
3689 | * @typedef Eet_Node | ||
3690 | * Opaque handle to manage serialization node. | ||
3691 | */ | ||
3692 | typedef struct _Eet_Node Eet_Node; | ||
3693 | |||
3694 | /** | ||
3695 | * @typedef Eet_Node_Data | ||
3696 | * Contains an union that can fit any kind of node. | ||
3697 | */ | ||
3698 | typedef struct _Eet_Node_Data Eet_Node_Data; | ||
3699 | |||
3700 | /** | ||
3701 | * @struct _Eet_Node_Data | ||
3702 | * Contains an union that can fit any kind of node. | ||
3703 | */ | ||
3704 | struct _Eet_Node_Data | ||
3705 | { | ||
3706 | union { | ||
3707 | char c; | ||
3708 | short s; | ||
3709 | int i; | ||
3710 | long long l; | ||
3711 | float f; | ||
3712 | double d; | ||
3713 | unsigned char uc; | ||
3714 | unsigned short us; | ||
3715 | unsigned int ui; | ||
3716 | unsigned long long ul; | ||
3717 | const char *str; | ||
3718 | } value; | ||
3719 | }; | ||
3720 | |||
3721 | /** | ||
3722 | * @} | ||
3723 | */ | ||
3724 | |||
3725 | /** | ||
3726 | * TODO FIX ME | ||
3727 | * @ingroup Eet_Node_Group | ||
3728 | */ | ||
3729 | EAPI Eet_Node * | ||
3730 | eet_node_char_new(const char *name, | ||
3731 | char c); | ||
3732 | |||
3733 | /** | ||
3734 | * TODO FIX ME | ||
3735 | * @ingroup Eet_Node_Group | ||
3736 | */ | ||
3737 | EAPI Eet_Node * | ||
3738 | eet_node_short_new(const char *name, | ||
3739 | short s); | ||
3740 | |||
3741 | /** | ||
3742 | * TODO FIX ME | ||
3743 | * @ingroup Eet_Node_Group | ||
3744 | */ | ||
3745 | EAPI Eet_Node * | ||
3746 | eet_node_int_new(const char *name, | ||
3747 | int i); | ||
3748 | |||
3749 | /** | ||
3750 | * TODO FIX ME | ||
3751 | * @ingroup Eet_Node_Group | ||
3752 | */ | ||
3753 | EAPI Eet_Node * | ||
3754 | eet_node_long_long_new(const char *name, | ||
3755 | long long l); | ||
3756 | |||
3757 | /** | ||
3758 | * TODO FIX ME | ||
3759 | * @ingroup Eet_Node_Group | ||
3760 | */ | ||
3761 | EAPI Eet_Node * | ||
3762 | eet_node_float_new(const char *name, | ||
3763 | float f); | ||
3764 | |||
3765 | /** | ||
3766 | * TODO FIX ME | ||
3767 | * @ingroup Eet_Node_Group | ||
3768 | */ | ||
3769 | EAPI Eet_Node * | ||
3770 | eet_node_double_new(const char *name, | ||
3771 | double d); | ||
3772 | |||
3773 | /** | ||
3774 | * TODO FIX ME | ||
3775 | * @ingroup Eet_Node_Group | ||
3776 | */ | ||
3777 | EAPI Eet_Node * | ||
3778 | eet_node_unsigned_char_new(const char *name, | ||
3779 | unsigned char uc); | ||
3780 | |||
3781 | /** | ||
3782 | * TODO FIX ME | ||
3783 | * @ingroup Eet_Node_Group | ||
3784 | */ | ||
3785 | EAPI Eet_Node * | ||
3786 | eet_node_unsigned_short_new(const char *name, | ||
3787 | unsigned short us); | ||
3788 | |||
3789 | /** | ||
3790 | * TODO FIX ME | ||
3791 | * @ingroup Eet_Node_Group | ||
3792 | */ | ||
3793 | EAPI Eet_Node * | ||
3794 | eet_node_unsigned_int_new(const char *name, | ||
3795 | unsigned int ui); | ||
3796 | |||
3797 | /** | ||
3798 | * TODO FIX ME | ||
3799 | * @ingroup Eet_Node_Group | ||
3800 | */ | ||
3801 | EAPI Eet_Node * | ||
3802 | eet_node_unsigned_long_long_new(const char *name, | ||
3803 | unsigned long long l); | ||
3804 | |||
3805 | /** | ||
3806 | * TODO FIX ME | ||
3807 | * @ingroup Eet_Node_Group | ||
3808 | */ | ||
3809 | EAPI Eet_Node * | ||
3810 | eet_node_string_new(const char *name, | ||
3811 | const char *str); | ||
3812 | |||
3813 | /** | ||
3814 | * TODO FIX ME | ||
3815 | * @ingroup Eet_Node_Group | ||
3816 | */ | ||
3817 | EAPI Eet_Node * | ||
3818 | eet_node_inlined_string_new(const char *name, | ||
3819 | const char *str); | ||
3820 | |||
3821 | /** | ||
3822 | * TODO FIX ME | ||
3823 | * @ingroup Eet_Node_Group | ||
3824 | */ | ||
3825 | EAPI Eet_Node * | ||
3826 | eet_node_null_new(const char *name); | ||
3827 | |||
3828 | /** | ||
3829 | * TODO FIX ME | ||
3830 | * @ingroup Eet_Node_Group | ||
3831 | */ | ||
3832 | EAPI Eet_Node * | ||
3833 | eet_node_list_new(const char *name, | ||
3834 | Eina_List *nodes); | ||
3835 | |||
3836 | /** | ||
3837 | * TODO FIX ME | ||
3838 | * @ingroup Eet_Node_Group | ||
3839 | */ | ||
3840 | EAPI Eet_Node * | ||
3841 | eet_node_array_new(const char *name, | ||
3842 | int count, | ||
3843 | Eina_List *nodes); | ||
3844 | |||
3845 | /** | ||
3846 | * TODO FIX ME | ||
3847 | * @ingroup Eet_Node_Group | ||
3848 | */ | ||
3849 | EAPI Eet_Node * | ||
3850 | eet_node_var_array_new(const char *name, | ||
3851 | Eina_List *nodes); | ||
3852 | |||
3853 | /** | ||
3854 | * TODO FIX ME | ||
3855 | * @ingroup Eet_Node_Group | ||
3856 | */ | ||
3857 | EAPI Eet_Node * | ||
3858 | eet_node_hash_new(const char *name, | ||
3859 | const char *key, | ||
3860 | Eet_Node *node); | ||
3861 | |||
3862 | /** | ||
3863 | * TODO FIX ME | ||
3864 | * @ingroup Eet_Node_Group | ||
3865 | */ | ||
3866 | EAPI Eet_Node * | ||
3867 | eet_node_struct_new(const char *name, | ||
3868 | Eina_List *nodes); | ||
3869 | |||
3870 | /** | ||
3871 | * TODO FIX ME | ||
3872 | * @ingroup Eet_Node_Group | ||
3873 | */ | ||
3874 | EAPI Eet_Node * | ||
3875 | eet_node_struct_child_new(const char *parent, | ||
3876 | Eet_Node *child); | ||
3877 | |||
3878 | /** | ||
3879 | * @brief Get a node's child nodes | ||
3880 | * @param node The node | ||
3881 | * @return The first child node which contains a pointer to the | ||
3882 | * next child node and the parent. | ||
3883 | * @since 1.5 | ||
3884 | */ | ||
3885 | EAPI Eet_Node * | ||
3886 | eet_node_children_get(Eet_Node *node); | ||
3887 | |||
3888 | /** | ||
3889 | * @brief Get the next node in a list of nodes | ||
3890 | * @param node The node | ||
3891 | * @return A node which contains a pointer to the | ||
3892 | * next child node and the parent. | ||
3893 | * @since 1.5 | ||
3894 | */ | ||
3895 | EAPI Eet_Node * | ||
3896 | eet_node_next_get(Eet_Node *node); | ||
3897 | |||
3898 | /** | ||
3899 | * @brief Get the parent node of a node | ||
3900 | * @param node The node | ||
3901 | * @return The parent node of @p node | ||
3902 | * @since 1.5 | ||
3903 | */ | ||
3904 | EAPI Eet_Node * | ||
3905 | eet_node_parent_get(Eet_Node *node); | ||
3906 | |||
3907 | /** | ||
3908 | * TODO FIX ME | ||
3909 | * @ingroup Eet_Node_Group | ||
3910 | */ | ||
3911 | EAPI void | ||
3912 | eet_node_list_append(Eet_Node *parent, | ||
3913 | const char *name, | ||
3914 | Eet_Node *child); | ||
3915 | |||
3916 | /** | ||
3917 | * TODO FIX ME | ||
3918 | * @ingroup Eet_Node_Group | ||
3919 | */ | ||
3920 | EAPI void | ||
3921 | eet_node_struct_append(Eet_Node *parent, | ||
3922 | const char *name, | ||
3923 | Eet_Node *child); | ||
3924 | |||
3925 | /** | ||
3926 | * TODO FIX ME | ||
3927 | * @ingroup Eet_Node_Group | ||
3928 | */ | ||
3929 | EAPI void | ||
3930 | eet_node_hash_add(Eet_Node *parent, | ||
3931 | const char *name, | ||
3932 | const char *key, | ||
3933 | Eet_Node *child); | ||
3934 | |||
3935 | /** | ||
3936 | * TODO FIX ME | ||
3937 | * @ingroup Eet_Node_Group | ||
3938 | */ | ||
3939 | EAPI void | ||
3940 | eet_node_dump(Eet_Node *n, | ||
3941 | int dumplevel, | ||
3942 | Eet_Dump_Callback dumpfunc, | ||
3943 | void *dumpdata); | ||
3944 | |||
3945 | /** | ||
3946 | * @brief Return the type of a node | ||
3947 | * @param node The node | ||
3948 | * @return The node's type (EET_T_$TYPE) | ||
3949 | * @since 1.5 | ||
3950 | */ | ||
3951 | EAPI int | ||
3952 | eet_node_type_get(Eet_Node *node); | ||
3953 | |||
3954 | /** | ||
3955 | * @brief Return the node's data | ||
3956 | * @param node The node | ||
3957 | * @return The data contained in the node | ||
3958 | * @since 1.5 | ||
3959 | */ | ||
3960 | EAPI Eet_Node_Data * | ||
3961 | eet_node_value_get(Eet_Node *node); | ||
3962 | |||
3963 | /** | ||
3964 | * TODO FIX ME | ||
3965 | * @ingroup Eet_Node_Group | ||
3966 | */ | ||
3967 | EAPI void | ||
3968 | eet_node_del(Eet_Node *n); | ||
3969 | |||
3970 | /** | ||
3971 | * TODO FIX ME | ||
3972 | * @ingroup Eet_Node_Group | ||
3973 | */ | ||
3974 | EAPI void * | ||
3975 | eet_data_node_encode_cipher(Eet_Node *node, | ||
3976 | const char *cipher_key, | ||
3977 | int *size_ret); | ||
3978 | |||
3979 | /** | ||
3980 | * TODO FIX ME | ||
3981 | * @ingroup Eet_Node_Group | ||
3982 | */ | ||
3983 | EAPI Eet_Node * | ||
3984 | eet_data_node_decode_cipher(const void *data_in, | ||
3985 | const char *cipher_key, | ||
3986 | int size_in); | ||
3987 | |||
3988 | /** | ||
3989 | * TODO FIX ME | ||
3990 | * @ingroup Eet_Node_Group | ||
3991 | */ | ||
3992 | EAPI Eet_Node * | ||
3993 | eet_data_node_read_cipher(Eet_File *ef, | ||
3994 | const char *name, | ||
3995 | const char *cipher_key); | ||
3996 | |||
3997 | /** | ||
3998 | * TODO FIX ME | ||
3999 | * @ingroup Eet_Node_Group | ||
4000 | */ | ||
4001 | EAPI int | ||
4002 | eet_data_node_write_cipher(Eet_File *ef, | ||
4003 | const char *name, | ||
4004 | const char *cipher_key, | ||
4005 | Eet_Node *node, | ||
4006 | int compress); | ||
4007 | |||
4008 | /* EXPERIMENTAL: THIS API MAY CHANGE IN THE FUTURE, USE IT ONLY IF YOU KNOW WHAT YOU ARE DOING. */ | ||
4009 | |||
4010 | /** | ||
4011 | * @typedef Eet_Node_Walk | ||
4012 | * Describes how to walk trees of #Eet_Node. | ||
4013 | */ | ||
4014 | typedef struct _Eet_Node_Walk Eet_Node_Walk; | ||
4015 | |||
4016 | typedef void * (*Eet_Node_Walk_Struct_Alloc_Callback)(const char *type, void *user_data); | ||
4017 | typedef void (*Eet_Node_Walk_Struct_Add_Callback)(void *parent, const char *name, void *child, void *user_data); | ||
4018 | typedef void * (*Eet_Node_Walk_Array_Callback)(Eina_Bool variable, const char *name, int count, void *user_data); | ||
4019 | typedef void (*Eet_Node_Walk_Insert_Callback)(void *array, int index, void *child, void *user_data); | ||
4020 | typedef void * (*Eet_Node_Walk_List_Callback)(const char *name, void *user_data); | ||
4021 | typedef void (*Eet_Node_Walk_Append_Callback)(void *list, void *child, void *user_data); | ||
4022 | typedef void * (*Eet_Node_Walk_Hash_Callback)(void *parent, const char *name, const char *key, void *value, void *user_data); | ||
4023 | typedef void * (*Eet_Node_Walk_Simple_Callback)(int type, Eet_Node_Data *data, void *user_data); | ||
4024 | |||
4025 | /** | ||
4026 | * @struct _Eet_Node_Walk | ||
4027 | * Describes how to walk trees of #Eet_Node. | ||
4028 | */ | ||
4029 | struct _Eet_Node_Walk | ||
4030 | { | ||
4031 | Eet_Node_Walk_Struct_Alloc_Callback struct_alloc; | ||
4032 | Eet_Node_Walk_Struct_Add_Callback struct_add; | ||
4033 | Eet_Node_Walk_Array_Callback array; | ||
4034 | Eet_Node_Walk_Insert_Callback insert; | ||
4035 | Eet_Node_Walk_List_Callback list; | ||
4036 | Eet_Node_Walk_Append_Callback append; | ||
4037 | Eet_Node_Walk_Hash_Callback hash; | ||
4038 | Eet_Node_Walk_Simple_Callback simple; | ||
4039 | }; | ||
4040 | |||
4041 | EAPI void * | ||
4042 | eet_node_walk(void *parent, | ||
4043 | const char *name, | ||
4044 | Eet_Node *root, | ||
4045 | Eet_Node_Walk *cb, | ||
4046 | void *user_data); | ||
4047 | |||
4048 | /*******/ | ||
4049 | |||
4050 | /** | ||
4051 | * @defgroup Eet_Connection_Group Helper function to use eet over a network link | ||
4052 | * | ||
4053 | * Function that reconstruct and prepare packet of @ref Eet_Data_Group to be send. | ||
4054 | * | ||
4055 | */ | ||
4056 | |||
4057 | /** | ||
4058 | * @typedef Eet_Connection | ||
4059 | * Opaque handle to track paquet for a specific connection. | ||
4060 | * | ||
4061 | * @ingroup Eet_Connection_Group | ||
4062 | */ | ||
4063 | typedef struct _Eet_Connection Eet_Connection; | ||
4064 | |||
4065 | /** | ||
4066 | * @typedef Eet_Read_Cb | ||
4067 | * Called back when an @ref Eet_Data_Group has been received completly and could be used. | ||
4068 | * | ||
4069 | * @ingroup Eet_Connection_Group | ||
4070 | */ | ||
4071 | typedef Eina_Bool Eet_Read_Cb (const void *eet_data, size_t size, void *user_data); | ||
4072 | |||
4073 | /** | ||
4074 | * @typedef Eet_Write_Cb | ||
4075 | * Called back when a packet containing @ref Eet_Data_Group data is ready to be send. | ||
4076 | * | ||
4077 | * @ingroup Eet_Connection_Group | ||
4078 | */ | ||
4079 | typedef Eina_Bool Eet_Write_Cb (const void *data, size_t size, void *user_data); | ||
4080 | |||
4081 | /** | ||
4082 | * Instanciate a new connection to track. | ||
4083 | * @param eet_read_cb Function to call when one Eet_Data packet has been fully assemble. | ||
4084 | * @param eet_write_cb Function to call when one Eet_Data packet is ready to be send over the wire. | ||
4085 | * @param user_data Pointer provided to both functions to be used as a context handler. | ||
4086 | * @return NULL on failure, or a valid Eet_Connection handler. | ||
4087 | * | ||
4088 | * For every connection to track you will need a separate Eet_Connection provider. | ||
4089 | * | ||
4090 | * @since 1.2.4 | ||
4091 | * @ingroup Eet_Connection_Group | ||
4092 | */ | ||
4093 | EAPI Eet_Connection * | ||
4094 | eet_connection_new(Eet_Read_Cb *eet_read_cb, | ||
4095 | Eet_Write_Cb *eet_write_cb, | ||
4096 | const void *user_data); | ||
4097 | |||
4098 | /** | ||
4099 | * Process a raw packet received over the link | ||
4100 | * @param conn Connection handler to track. | ||
4101 | * @param data Raw data packet. | ||
4102 | * @param size The size of that packet. | ||
4103 | * @return 0 on complete success, any other value indicate where in the stream it got wrong (It could be before that packet). | ||
4104 | * | ||
4105 | * Every time you receive a packet related to your connection, you should pass | ||
4106 | * it to that function so that it could process and assemble packet has you | ||
4107 | * receive it. It will automatically call Eet_Read_Cb when one is fully received. | ||
4108 | * | ||
4109 | * @since 1.2.4 | ||
4110 | * @ingroup Eet_Connection_Group | ||
4111 | */ | ||
4112 | EAPI int | ||
4113 | eet_connection_received(Eet_Connection *conn, | ||
4114 | const void *data, | ||
4115 | size_t size); | ||
4116 | |||
4117 | /** | ||
4118 | * Convert a complex structure and prepare it to be send. | ||
4119 | * @param conn Connection handler to track. | ||
4120 | * @param edd The data descriptor to use when encoding. | ||
4121 | * @param data_in The pointer to the struct to encode into data. | ||
4122 | * @param cipher_key The key to use as cipher. | ||
4123 | * @return EINA_TRUE if the data where correctly send, EINA_FALSE if they don't. | ||
4124 | * | ||
4125 | * This function serialize data_in with edd, assemble the packet and call | ||
4126 | * Eet_Write_Cb when ready. The data passed Eet_Write_Cb are temporary allocated | ||
4127 | * and will vanish just after the return of the callback. | ||
4128 | * | ||
4129 | * @see eet_data_descriptor_encode_cipher | ||
4130 | * | ||
4131 | * @since 1.2.4 | ||
4132 | * @ingroup Eet_Connection_Group | ||
4133 | */ | ||
4134 | EAPI Eina_Bool | ||
4135 | eet_connection_send(Eet_Connection *conn, | ||
4136 | Eet_Data_Descriptor *edd, | ||
4137 | const void *data_in, | ||
4138 | const char *cipher_key); | ||
4139 | |||
4140 | /** | ||
4141 | * Convert a Eet_Node tree and prepare it to be send. | ||
4142 | * @param conn Connection handler to track. | ||
4143 | * @param node The data tree to use when encoding. | ||
4144 | * @param cipher_key The key to use as cipher. | ||
4145 | * @return EINA_TRUE if the data where correctly send, EINA_FALSE if they don't. | ||
4146 | * | ||
4147 | * This function serialize node, assemble the packet and call | ||
4148 | * Eet_Write_Cb when ready. The data passed Eet_Write_Cb are temporary allocated | ||
4149 | * and will vanish just after the return of the callback. | ||
4150 | * | ||
4151 | * @see eet_data_node_encode_cipher | ||
4152 | * | ||
4153 | * @since 1.2.4 | ||
4154 | * @ingroup Eet_Connection_Group | ||
4155 | */ | ||
4156 | EAPI Eina_Bool | ||
4157 | eet_connection_node_send(Eet_Connection *conn, | ||
4158 | Eet_Node *node, | ||
4159 | const char *cipher_key); | ||
4160 | |||
4161 | /** | ||
4162 | * Close a connection and lost its track. | ||
4163 | * @param conn Connection handler to close. | ||
4164 | * @param on_going Signal if a partial packet wasn't completed. | ||
4165 | * @return the user_data passed to both callback. | ||
4166 | * | ||
4167 | * @since 1.2.4 | ||
4168 | * @ingroup Eet_Connection_Group | ||
4169 | */ | ||
4170 | EAPI void * | ||
4171 | eet_connection_close(Eet_Connection *conn, | ||
4172 | Eina_Bool *on_going); | ||
4173 | |||
4174 | /***************************************************************************/ | ||
4175 | |||
4176 | #ifdef __cplusplus | ||
4177 | } | ||
4178 | #endif /* ifdef __cplusplus */ | ||
4179 | |||
4180 | #endif /* ifndef _EET_H */ | ||
diff --git a/libraries/eet/src/lib/Eet_private.h b/libraries/eet/src/lib/Eet_private.h deleted file mode 100644 index c04daf0..0000000 --- a/libraries/eet/src/lib/Eet_private.h +++ /dev/null | |||
@@ -1,326 +0,0 @@ | |||
1 | #ifndef _EET_PRIVATE_H | ||
2 | #define _EET_PRIVATE_H | ||
3 | |||
4 | #include <Eina.h> | ||
5 | |||
6 | typedef enum _Eet_Convert_Type Eet_Convert_Type; | ||
7 | |||
8 | enum _Eet_Convert_Type | ||
9 | { | ||
10 | EET_D_NOTHING = 0, | ||
11 | EET_D_FLOAT = 1 << 1, | ||
12 | EET_D_DOUBLE = 1 << 2, | ||
13 | EET_D_FIXED_POINT = 1 << 4 | ||
14 | }; | ||
15 | |||
16 | typedef struct _Eet_String Eet_String; | ||
17 | typedef struct _Eet_Convert Eet_Convert; | ||
18 | |||
19 | struct _Eet_Convert | ||
20 | { | ||
21 | float f; | ||
22 | double d; | ||
23 | Eina_F32p32 fp; | ||
24 | |||
25 | Eet_Convert_Type type; | ||
26 | }; | ||
27 | |||
28 | struct _Eet_String | ||
29 | { | ||
30 | const char *str; | ||
31 | |||
32 | int len; | ||
33 | |||
34 | int next; | ||
35 | int prev; | ||
36 | |||
37 | unsigned char hash; | ||
38 | unsigned char allocated : 1; | ||
39 | }; | ||
40 | struct _Eet_Dictionary | ||
41 | { | ||
42 | Eet_String *all; | ||
43 | Eina_Hash *converts; | ||
44 | |||
45 | int size; | ||
46 | int offset; | ||
47 | |||
48 | int hash[256]; | ||
49 | |||
50 | int count; | ||
51 | int total; | ||
52 | |||
53 | const char *start; | ||
54 | const char *end; | ||
55 | }; | ||
56 | |||
57 | struct _Eet_Node | ||
58 | { | ||
59 | int type; | ||
60 | int count; | ||
61 | const char *name; | ||
62 | const char *key; | ||
63 | Eet_Node *values; | ||
64 | Eet_Node *next; | ||
65 | Eet_Node *parent; | ||
66 | Eet_Node_Data data; | ||
67 | }; | ||
68 | |||
69 | typedef struct _Eet_File_Header Eet_File_Header; | ||
70 | typedef struct _Eet_File_Node Eet_File_Node; | ||
71 | typedef struct _Eet_File_Directory Eet_File_Directory; | ||
72 | |||
73 | struct _Eet_File | ||
74 | { | ||
75 | const char *path; | ||
76 | Eina_File *readfp; | ||
77 | Eet_File_Header *header; | ||
78 | Eet_Dictionary *ed; | ||
79 | Eet_Key *key; | ||
80 | const unsigned char *data; | ||
81 | const void *x509_der; | ||
82 | const void *signature; | ||
83 | void *sha1; | ||
84 | |||
85 | Eet_File_Mode mode; | ||
86 | |||
87 | int magic; | ||
88 | int references; | ||
89 | |||
90 | unsigned long int data_size; | ||
91 | int x509_length; | ||
92 | unsigned int signature_length; | ||
93 | int sha1_length; | ||
94 | |||
95 | Eina_Lock file_lock; | ||
96 | |||
97 | unsigned char writes_pending : 1; | ||
98 | unsigned char delete_me_now : 1; | ||
99 | }; | ||
100 | |||
101 | struct _Eet_File_Header | ||
102 | { | ||
103 | int magic; | ||
104 | Eet_File_Directory *directory; | ||
105 | }; | ||
106 | |||
107 | struct _Eet_File_Directory | ||
108 | { | ||
109 | int size; | ||
110 | Eet_File_Node **nodes; | ||
111 | }; | ||
112 | |||
113 | struct _Eet_File_Node | ||
114 | { | ||
115 | char *name; | ||
116 | void *data; | ||
117 | Eet_File_Node *next; /* FIXME: make buckets linked lists */ | ||
118 | |||
119 | unsigned long int offset; | ||
120 | unsigned long int dictionary_offset; | ||
121 | unsigned long int name_offset; | ||
122 | |||
123 | unsigned int name_size; | ||
124 | unsigned int size; | ||
125 | unsigned int data_size; | ||
126 | |||
127 | unsigned char free_name : 1; | ||
128 | unsigned char compression : 1; | ||
129 | unsigned char ciphered : 1; | ||
130 | unsigned char alias : 1; | ||
131 | }; | ||
132 | |||
133 | #if 0 | ||
134 | /* Version 2 */ | ||
135 | /* NB: all int's are stored in network byte order on disk */ | ||
136 | /* file format: */ | ||
137 | int magic; /* magic number ie 0x1ee7ff00 */ | ||
138 | int num_directory_entries; /* number of directory entries to follow */ | ||
139 | int bytes_directory_entries; /* bytes of directory entries to follow */ | ||
140 | struct | ||
141 | { | ||
142 | int offset; /* bytes offset into file for data chunk */ | ||
143 | int flags; /* flags - for now 0 = uncompressed and clear, 1 = compressed and clear, 2 = uncompressed and ciphered, 3 = compressed and ciphered */ | ||
144 | int size; /* size of the data chunk */ | ||
145 | int data_size; /* size of the (uncompressed) data chunk */ | ||
146 | int name_size; /* length in bytes of the name field */ | ||
147 | char name[name_size]; /* name string (variable length) and \0 terminated */ | ||
148 | } directory[num_directory_entries]; | ||
149 | /* and now startes the data stream... */ | ||
150 | #endif /* if 0 */ | ||
151 | |||
152 | #if 0 | ||
153 | /* Version 3 */ | ||
154 | /* NB: all int's are stored in network byte order on disk */ | ||
155 | /* file format: */ | ||
156 | int magic; /* magic number ie 0x1ee70f42 */ | ||
157 | int num_directory_entries; /* number of directory entries to follow */ | ||
158 | int num_dictionary_entries; /* number of dictionary entries to follow */ | ||
159 | struct | ||
160 | { | ||
161 | int data_offset; /* bytes offset into file for data chunk */ | ||
162 | int size; /* size of the data chunk */ | ||
163 | int data_size; /* size of the (uncompressed) data chunk */ | ||
164 | int name_offset; /* bytes offset into file for name string */ | ||
165 | int name_size; /* length in bytes of the name field */ | ||
166 | int flags; /* bit flags - for now: | ||
167 | bit 0 => compresion on/off | ||
168 | bit 1 => ciphered on/off | ||
169 | bit 2 => alias | ||
170 | */ | ||
171 | } directory[num_directory_entries]; | ||
172 | struct | ||
173 | { | ||
174 | int hash; | ||
175 | int offset; | ||
176 | int size; | ||
177 | int prev; | ||
178 | int next; | ||
179 | } dictionary[num_dictionary_entries]; | ||
180 | /* now start the string stream. */ | ||
181 | /* and right after them the data stream. */ | ||
182 | int magic_sign; /* Optional, only if the eet file is signed. */ | ||
183 | int signature_length; /* Signature length. */ | ||
184 | int x509_length; /* Public certificate that signed the file. */ | ||
185 | char signature[signature_length]; /* The signature. */ | ||
186 | char x509[x509_length]; /* The public certificate. */ | ||
187 | #endif /* if 0 */ | ||
188 | |||
189 | /* | ||
190 | * variable and macros used for the eina_log module | ||
191 | */ | ||
192 | extern int _eet_log_dom_global; | ||
193 | |||
194 | /* | ||
195 | * Macros that are used everywhere | ||
196 | * | ||
197 | * the first four macros are the general macros for the lib | ||
198 | */ | ||
199 | #ifdef EET_DEFAULT_LOG_COLOR | ||
200 | # undef EET_DEFAULT_LOG_COLOR | ||
201 | #endif /* ifdef EET_DEFAULT_LOG_COLOR */ | ||
202 | #define EET_DEFAULT_LOG_COLOR EINA_COLOR_CYAN | ||
203 | #ifdef ERR | ||
204 | # undef ERR | ||
205 | #endif /* ifdef ERR */ | ||
206 | #define ERR(...) EINA_LOG_DOM_ERR(_eet_log_dom_global, __VA_ARGS__) | ||
207 | #ifdef DBG | ||
208 | # undef DBG | ||
209 | #endif /* ifdef DBG */ | ||
210 | #define DBG(...) EINA_LOG_DOM_DBG(_eet_log_dom_global, __VA_ARGS__) | ||
211 | #ifdef INF | ||
212 | # undef INF | ||
213 | #endif /* ifdef INF */ | ||
214 | #define INF(...) EINA_LOG_DOM_INFO(_eet_log_dom_global, __VA_ARGS__) | ||
215 | #ifdef WRN | ||
216 | # undef WRN | ||
217 | #endif /* ifdef WRN */ | ||
218 | #define WRN(...) EINA_LOG_DOM_WARN(_eet_log_dom_global, __VA_ARGS__) | ||
219 | #ifdef CRIT | ||
220 | # undef CRIT | ||
221 | #endif /* ifdef CRIT */ | ||
222 | #define CRIT(...) EINA_LOG_DOM_CRIT(_eet_log_dom_global, __VA_ARGS__) | ||
223 | |||
224 | Eet_Dictionary * | ||
225 | eet_dictionary_add(void); | ||
226 | void | ||
227 | eet_dictionary_free(Eet_Dictionary *ed); | ||
228 | int | ||
229 | eet_dictionary_string_add(Eet_Dictionary *ed, | ||
230 | const char *string); | ||
231 | int | ||
232 | eet_dictionary_string_get_size(const Eet_Dictionary *ed, | ||
233 | int index); | ||
234 | const char * | ||
235 | eet_dictionary_string_get_char(const Eet_Dictionary *ed, | ||
236 | int index); | ||
237 | Eina_Bool | ||
238 | eet_dictionary_string_get_float(const Eet_Dictionary *ed, | ||
239 | int index, | ||
240 | float *result); | ||
241 | Eina_Bool | ||
242 | eet_dictionary_string_get_double(const Eet_Dictionary *ed, | ||
243 | int index, | ||
244 | double *result); | ||
245 | Eina_Bool | ||
246 | eet_dictionary_string_get_fp(const Eet_Dictionary *ed, | ||
247 | int index, | ||
248 | Eina_F32p32 *result); | ||
249 | int | ||
250 | eet_dictionary_string_get_hash(const Eet_Dictionary *ed, | ||
251 | int index); | ||
252 | |||
253 | int _eet_hash_gen(const char *key, | ||
254 | int hash_size); | ||
255 | |||
256 | const void * | ||
257 | eet_identity_check(const void *data_base, | ||
258 | unsigned int data_length, | ||
259 | void **sha1, | ||
260 | int *sha1_length, | ||
261 | const void *signature_base, | ||
262 | unsigned int signature_length, | ||
263 | const void **raw_signature_base, | ||
264 | unsigned int *raw_signature_length, | ||
265 | int *x509_length); | ||
266 | void * | ||
267 | eet_identity_compute_sha1(const void *data_base, | ||
268 | unsigned int data_length, | ||
269 | int *sha1_length); | ||
270 | Eet_Error | ||
271 | eet_cipher(const void *data, | ||
272 | unsigned int size, | ||
273 | const char *key, | ||
274 | unsigned int length, | ||
275 | void **result, | ||
276 | unsigned int *result_length); | ||
277 | Eet_Error | ||
278 | eet_decipher(const void *data, | ||
279 | unsigned int size, | ||
280 | const char *key, | ||
281 | unsigned int length, | ||
282 | void **result, | ||
283 | unsigned int *result_length); | ||
284 | Eet_Error | ||
285 | eet_identity_sign(FILE *fp, | ||
286 | Eet_Key *key); | ||
287 | void | ||
288 | eet_identity_unref(Eet_Key *key); | ||
289 | void | ||
290 | eet_identity_ref(Eet_Key *key); | ||
291 | |||
292 | void | ||
293 | eet_node_shutdown(void); | ||
294 | int | ||
295 | eet_node_init(void); | ||
296 | Eet_Node * | ||
297 | eet_node_new(void); | ||
298 | void | ||
299 | eet_node_free(Eet_Node *node); | ||
300 | |||
301 | |||
302 | #define GENERIC_ALLOC_FREE_HEADER(TYPE, Type) \ | ||
303 | TYPE *Type##_malloc(unsigned int); \ | ||
304 | TYPE *Type##_calloc(unsigned int); \ | ||
305 | void Type##_mp_free(TYPE *e); | ||
306 | |||
307 | GENERIC_ALLOC_FREE_HEADER(Eet_File_Directory, eet_file_directory); | ||
308 | GENERIC_ALLOC_FREE_HEADER(Eet_File_Node, eet_file_node); | ||
309 | GENERIC_ALLOC_FREE_HEADER(Eet_File_Header, eet_file_header); | ||
310 | GENERIC_ALLOC_FREE_HEADER(Eet_Dictionary, eet_dictionary); | ||
311 | GENERIC_ALLOC_FREE_HEADER(Eet_File, eet_file); | ||
312 | |||
313 | Eina_Bool eet_mempool_init(void); | ||
314 | void eet_mempool_shutdown(void); | ||
315 | |||
316 | #ifndef PATH_MAX | ||
317 | # define PATH_MAX 4096 | ||
318 | #endif /* ifndef PATH_MAX */ | ||
319 | |||
320 | #ifdef DNDEBUG | ||
321 | # define EET_ASSERT(Test, Do) if (Test == 0) {Do; } | ||
322 | #else /* ifdef DNDEBUG */ | ||
323 | # define EET_ASSERT(Test, Do) if (Test == 0) {abort(); } | ||
324 | #endif /* ifdef DNDEBUG */ | ||
325 | |||
326 | #endif /* ifndef _EET_PRIVATE_H */ | ||
diff --git a/libraries/eet/src/lib/Makefile.am b/libraries/eet/src/lib/Makefile.am deleted file mode 100644 index ae60168..0000000 --- a/libraries/eet/src/lib/Makefile.am +++ /dev/null | |||
@@ -1,163 +0,0 @@ | |||
1 | |||
2 | MAINTAINERCLEANFILES = Makefile.in | ||
3 | |||
4 | AM_CPPFLAGS = \ | ||
5 | -I. \ | ||
6 | -I$(top_srcdir)/src/lib \ | ||
7 | -I$(top_builddir)/src/lib \ | ||
8 | -DPACKAGE_BIN_DIR=\"$(bindir)\" \ | ||
9 | -DPACKAGE_LIB_DIR=\"$(libdir)\" \ | ||
10 | -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ | ||
11 | @EVIL_CFLAGS@ \ | ||
12 | @EINA_CFLAGS@ \ | ||
13 | @EET_CPPFLAGS@ \ | ||
14 | @EFL_EET_BUILD@ \ | ||
15 | @EFL_COVERAGE_CFLAGS@ \ | ||
16 | @OPENSSL_CFLAGS@ \ | ||
17 | @GNUTLS_CFLAGS@ | ||
18 | |||
19 | includes_HEADERS = Eet.h | ||
20 | includesdir = $(includedir)/eet-@VMAJ@ | ||
21 | |||
22 | lib_LTLIBRARIES = libeet.la | ||
23 | |||
24 | base_sources = \ | ||
25 | eet_alloc.c \ | ||
26 | eet_lib.c \ | ||
27 | eet_data.c \ | ||
28 | eet_image.c \ | ||
29 | eet_cipher.c \ | ||
30 | eet_dictionary.c \ | ||
31 | eet_node.c \ | ||
32 | eet_utils.c \ | ||
33 | eet_connection.c | ||
34 | |||
35 | if EET_AMALGAMATION | ||
36 | nodist_libeet_la_SOURCES = eet_amalgamation.c | ||
37 | |||
38 | eet_amalgamation.c: $(base_sources) Makefile | ||
39 | -rm -f eet_amalgamation.c | ||
40 | |||
41 | @echo "#ifdef HAVE_CONFIG_H" >> eet_amalgamation.c | ||
42 | @echo "# include \"config.h\"" >> eet_amalgamation.c | ||
43 | @echo "#endif" >> eet_amalgamation.c | ||
44 | |||
45 | @echo "#ifdef HAVE_ALLOCA_H" >> eet_amalgamation.c | ||
46 | @echo "# include <alloca.h>" >> eet_amalgamation.c | ||
47 | @echo "#elif defined __GNUC__" >> eet_amalgamation.c | ||
48 | @echo "# define alloca __builtin_alloca" >> eet_amalgamation.c | ||
49 | @echo "#elif defined _AIX" >> eet_amalgamation.c | ||
50 | @echo "# define alloca __alloca" >> eet_amalgamation.c | ||
51 | @echo "#elif defined _MSC_VER" >> eet_amalgamation.c | ||
52 | @echo "# include <malloc.h>" >> eet_amalgamation.c | ||
53 | @echo "# define alloca _alloca" >> eet_amalgamation.c | ||
54 | @echo "#else" >> eet_amalgamation.c | ||
55 | @echo "# include <stddef.h>" >> eet_amalgamation.c | ||
56 | @echo "# ifdef __cplusplus" >> eet_amalgamation.c | ||
57 | @echo "#extern \"C\"" >> eet_amalgamation.c | ||
58 | @echo "# endif" >> eet_amalgamation.c | ||
59 | @echo "#void *alloca (size_t);" >> eet_amalgamation.c | ||
60 | @echo "#endif" >> eet_amalgamation.c | ||
61 | |||
62 | @echo "#include <stdio.h>" >> eet_amalgamation.c | ||
63 | @echo "#include <string.h>" >> eet_amalgamation.c | ||
64 | @echo "#include <math.h>" >> eet_amalgamation.c | ||
65 | @echo "#include <ctype.h>" >> eet_amalgamation.c | ||
66 | @echo "#include <limits.h>" >> eet_amalgamation.c | ||
67 | @echo "#include <sys/types.h>" >> eet_amalgamation.c | ||
68 | @echo "#include <sys/stat.h>" >> eet_amalgamation.c | ||
69 | @echo "#ifdef HAVE_SIGNATURE" >> eet_amalgamation.c | ||
70 | @echo "# include <sys/mman.h>" >> eet_amalgamation.c | ||
71 | @echo "#endif" >> eet_amalgamation.c | ||
72 | @echo "#include <setjmp.h>" >> eet_amalgamation.c | ||
73 | @echo "#include <errno.h>" >> eet_amalgamation.c | ||
74 | @echo "#include <time.h>" >> eet_amalgamation.c | ||
75 | @echo "#include <fnmatch.h>" >> eet_amalgamation.c | ||
76 | @echo "#include <fcntl.h>" >> eet_amalgamation.c | ||
77 | |||
78 | @echo "#ifdef _WIN32" >> eet_amalgamation.c | ||
79 | @echo "# include <winsock2.h>" >> eet_amalgamation.c | ||
80 | @echo "#endif" >> eet_amalgamation.c | ||
81 | |||
82 | @echo "#ifndef _MSC_VER" >> eet_amalgamation.c | ||
83 | @echo "# include <unistd.h>" >> eet_amalgamation.c | ||
84 | @echo "#endif" >> eet_amalgamation.c | ||
85 | |||
86 | @echo "#ifdef HAVE_NETINET_IN_H" >> eet_amalgamation.c | ||
87 | @echo "# include <netinet/in.h>" >> eet_amalgamation.c | ||
88 | @echo "#endif" >> eet_amalgamation.c | ||
89 | |||
90 | @echo "#ifdef HAVE_GNUTLS" >> eet_amalgamation.c | ||
91 | @echo "# include <gnutls/gnutls.h>" >> eet_amalgamation.c | ||
92 | @echo "# include <gcrypt.h>" >> eet_amalgamation.c | ||
93 | @echo "#endif" >> eet_amalgamation.c | ||
94 | |||
95 | @echo "#ifdef HAVE_OPENSSL" >> eet_amalgamation.c | ||
96 | @echo "# include <openssl/err.h>" >> eet_amalgamation.c | ||
97 | @echo "# include <openssl/evp.h>" >> eet_amalgamation.c | ||
98 | @echo "# include <openssl/sha.h>" >> eet_amalgamation.c | ||
99 | @echo "#endif" >> eet_amalgamation.c | ||
100 | |||
101 | @echo "#ifdef HAVE_SIGNATURE" >> eet_amalgamation.c | ||
102 | @echo "# ifdef HAVE_GNUTLS" >> eet_amalgamation.c | ||
103 | @echo "# include <gnutls/gnutls.h>" >> eet_amalgamation.c | ||
104 | @echo "# include <gnutls/x509.h>" >> eet_amalgamation.c | ||
105 | @echo "# else" >> eet_amalgamation.c | ||
106 | @echo "# include <openssl/rsa.h>" >> eet_amalgamation.c | ||
107 | @echo "# include <openssl/objects.h>" >> eet_amalgamation.c | ||
108 | @echo "# include <openssl/err.h>" >> eet_amalgamation.c | ||
109 | @echo "# include <openssl/ssl.h>" >> eet_amalgamation.c | ||
110 | @echo "# include <openssl/dh.h>" >> eet_amalgamation.c | ||
111 | @echo "# include <openssl/dsa.h>" >> eet_amalgamation.c | ||
112 | @echo "# include <openssl/evp.h>" >> eet_amalgamation.c | ||
113 | @echo "# include <openssl/x509.h>" >> eet_amalgamation.c | ||
114 | @echo "# include <openssl/pem.h>" >> eet_amalgamation.c | ||
115 | @echo "# endif" >> eet_amalgamation.c | ||
116 | @echo "#endif" >> eet_amalgamation.c | ||
117 | |||
118 | @echo "#ifdef HAVE_CIPHER" >> eet_amalgamation.c | ||
119 | @echo "# ifdef HAVE_GNUTLS" >> eet_amalgamation.c | ||
120 | @echo "# include <gnutls/x509.h>" >> eet_amalgamation.c | ||
121 | @echo "# include <gcrypt.h>" >> eet_amalgamation.c | ||
122 | @echo "# else" >> eet_amalgamation.c | ||
123 | @echo "# include <openssl/evp.h>" >> eet_amalgamation.c | ||
124 | @echo "# include <openssl/hmac.h>" >> eet_amalgamation.c | ||
125 | @echo "# include <openssl/rand.h>" >> eet_amalgamation.c | ||
126 | @echo "# endif" >> eet_amalgamation.c | ||
127 | @echo "#endif" >> eet_amalgamation.c | ||
128 | |||
129 | @echo "#include <zlib.h>" >> eet_amalgamation.c | ||
130 | @echo "#include <jpeglib.h>" >> eet_amalgamation.c | ||
131 | |||
132 | @echo "#ifdef HAVE_EVIL" >> eet_amalgamation.c | ||
133 | @echo "# include <Evil.h>" >> eet_amalgamation.c | ||
134 | @echo "#endif" >> eet_amalgamation.c | ||
135 | |||
136 | @echo "#include <Eet.h>" >> eet_amalgamation.c | ||
137 | |||
138 | @echo "#include \"Eet_private.h\"" >> eet_amalgamation.c | ||
139 | @echo "#include \"Eet.h\"" >> eet_amalgamation.c | ||
140 | |||
141 | @for f in $(base_sources); do \ | ||
142 | if [ `echo $$f | sed -e 's/^...\(.\).*/\1/'` != '/' ]; then \ | ||
143 | file="$(srcdir)/$$f" ; \ | ||
144 | else \ | ||
145 | file="$$f" ; \ | ||
146 | fi ; \ | ||
147 | echo "/* file: $$file */" >> eet_amalgamation.c; \ | ||
148 | grep -v -e '^# *include \+.\(config\|\|Evil\|Eina\|stdio\|string\|math\|ctype\|limits\|sys/types\|sys/stat\|sys/mman\|setjmp\|errno\|time\|fnmatch\|fcntl\|winsock2\|unistd\|netinet/in\|gnutls/gnutls\|gcrypt\|gnutls/x509\|openssl/rsa\|openssl/objects\|openssl/err\|openssl/ssl\|openssl/dh\|openssl/dsa\|openssl/evp\|openssl/pem\|openssl/sha\|openssl/hmac\|openssl/x509\|openssl/rand\|zlib\|jpeglib\|Eet_private\|Eet\)[.]h.*' $$file >> eet_amalgamation.c; \ | ||
149 | done | ||
150 | @echo "eet_amalgamation.c generated" | ||
151 | |||
152 | else | ||
153 | libeet_la_SOURCES = $(base_sources) | ||
154 | endif | ||
155 | |||
156 | libeet_la_CFLAGS = @EET_CFLAGS@ @DEBUG_CFLAGS@ | ||
157 | libeet_la_LIBADD = @GNUTLS_LIBS@ @OPENSSL_LIBS@ @EFL_COVERAGE_LIBS@ @EET_LIBS@ @EINA_LIBS@ @EVIL_LIBS@ -lz -ljpeg -lm | ||
158 | libeet_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@ | ||
159 | |||
160 | EXTRA_DIST = Eet_private.h | ||
161 | |||
162 | clean-local: | ||
163 | @rm -rf *.gcno eet_amalgamation.c | ||
diff --git a/libraries/eet/src/lib/Makefile.in b/libraries/eet/src/lib/Makefile.in deleted file mode 100644 index c0367b3..0000000 --- a/libraries/eet/src/lib/Makefile.in +++ /dev/null | |||
@@ -1,859 +0,0 @@ | |||
1 | # Makefile.in generated by automake 1.11.1 from Makefile.am. | ||
2 | # @configure_input@ | ||
3 | |||
4 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, | ||
5 | # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, | ||
6 | # Inc. | ||
7 | # This Makefile.in is free software; the Free Software Foundation | ||
8 | # gives unlimited permission to copy and/or distribute it, | ||
9 | # with or without modifications, as long as this notice is preserved. | ||
10 | |||
11 | # This program is distributed in the hope that it will be useful, | ||
12 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | ||
13 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | ||
14 | # PARTICULAR PURPOSE. | ||
15 | |||
16 | @SET_MAKE@ | ||
17 | |||
18 | |||
19 | VPATH = @srcdir@ | ||
20 | pkgdatadir = $(datadir)/@PACKAGE@ | ||
21 | pkgincludedir = $(includedir)/@PACKAGE@ | ||
22 | pkglibdir = $(libdir)/@PACKAGE@ | ||
23 | pkglibexecdir = $(libexecdir)/@PACKAGE@ | ||
24 | am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | ||
25 | install_sh_DATA = $(install_sh) -c -m 644 | ||
26 | install_sh_PROGRAM = $(install_sh) -c | ||
27 | install_sh_SCRIPT = $(install_sh) -c | ||
28 | INSTALL_HEADER = $(INSTALL_DATA) | ||
29 | transform = $(program_transform_name) | ||
30 | NORMAL_INSTALL = : | ||
31 | PRE_INSTALL = : | ||
32 | POST_INSTALL = : | ||
33 | NORMAL_UNINSTALL = : | ||
34 | PRE_UNINSTALL = : | ||
35 | POST_UNINSTALL = : | ||
36 | build_triplet = @build@ | ||
37 | host_triplet = @host@ | ||
38 | subdir = src/lib | ||
39 | DIST_COMMON = $(includes_HEADERS) $(srcdir)/Makefile.am \ | ||
40 | $(srcdir)/Makefile.in | ||
41 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | ||
42 | am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \ | ||
43 | $(top_srcdir)/m4/ac_path_generic.m4 \ | ||
44 | $(top_srcdir)/m4/efl_binary.m4 \ | ||
45 | $(top_srcdir)/m4/efl_compiler_flag.m4 \ | ||
46 | $(top_srcdir)/m4/efl_coverage.m4 \ | ||
47 | $(top_srcdir)/m4/efl_doxygen.m4 \ | ||
48 | $(top_srcdir)/m4/efl_fnmatch.m4 \ | ||
49 | $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ | ||
50 | $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ | ||
51 | $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ | ||
52 | $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac | ||
53 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | ||
54 | $(ACLOCAL_M4) | ||
55 | mkinstalldirs = $(install_sh) -d | ||
56 | CONFIG_HEADER = $(top_builddir)/config.h | ||
57 | CONFIG_CLEAN_FILES = | ||
58 | CONFIG_CLEAN_VPATH_FILES = | ||
59 | am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; | ||
60 | am__vpath_adj = case $$p in \ | ||
61 | $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ | ||
62 | *) f=$$p;; \ | ||
63 | esac; | ||
64 | am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; | ||
65 | am__install_max = 40 | ||
66 | am__nobase_strip_setup = \ | ||
67 | srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` | ||
68 | am__nobase_strip = \ | ||
69 | for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" | ||
70 | am__nobase_list = $(am__nobase_strip_setup); \ | ||
71 | for p in $$list; do echo "$$p $$p"; done | \ | ||
72 | sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ | ||
73 | $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ | ||
74 | if (++n[$$2] == $(am__install_max)) \ | ||
75 | { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ | ||
76 | END { for (dir in files) print dir, files[dir] }' | ||
77 | am__base_list = \ | ||
78 | sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ | ||
79 | sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | ||
80 | am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includesdir)" | ||
81 | LTLIBRARIES = $(lib_LTLIBRARIES) | ||
82 | libeet_la_DEPENDENCIES = | ||
83 | am__libeet_la_SOURCES_DIST = eet_alloc.c eet_lib.c eet_data.c \ | ||
84 | eet_image.c eet_cipher.c eet_dictionary.c eet_node.c \ | ||
85 | eet_utils.c eet_connection.c | ||
86 | am__objects_1 = libeet_la-eet_alloc.lo libeet_la-eet_lib.lo \ | ||
87 | libeet_la-eet_data.lo libeet_la-eet_image.lo \ | ||
88 | libeet_la-eet_cipher.lo libeet_la-eet_dictionary.lo \ | ||
89 | libeet_la-eet_node.lo libeet_la-eet_utils.lo \ | ||
90 | libeet_la-eet_connection.lo | ||
91 | @EET_AMALGAMATION_FALSE@am_libeet_la_OBJECTS = $(am__objects_1) | ||
92 | @EET_AMALGAMATION_TRUE@nodist_libeet_la_OBJECTS = \ | ||
93 | @EET_AMALGAMATION_TRUE@ libeet_la-eet_amalgamation.lo | ||
94 | libeet_la_OBJECTS = $(am_libeet_la_OBJECTS) \ | ||
95 | $(nodist_libeet_la_OBJECTS) | ||
96 | AM_V_lt = $(am__v_lt_$(V)) | ||
97 | am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) | ||
98 | am__v_lt_0 = --silent | ||
99 | libeet_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | ||
100 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libeet_la_CFLAGS) \ | ||
101 | $(CFLAGS) $(libeet_la_LDFLAGS) $(LDFLAGS) -o $@ | ||
102 | DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) | ||
103 | depcomp = $(SHELL) $(top_srcdir)/depcomp | ||
104 | am__depfiles_maybe = depfiles | ||
105 | am__mv = mv -f | ||
106 | COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ | ||
107 | $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) | ||
108 | LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | ||
109 | $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ | ||
110 | $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ | ||
111 | $(AM_CFLAGS) $(CFLAGS) | ||
112 | AM_V_CC = $(am__v_CC_$(V)) | ||
113 | am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) | ||
114 | am__v_CC_0 = @echo " CC " $@; | ||
115 | AM_V_at = $(am__v_at_$(V)) | ||
116 | am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) | ||
117 | am__v_at_0 = @ | ||
118 | CCLD = $(CC) | ||
119 | LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | ||
120 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ | ||
121 | $(AM_LDFLAGS) $(LDFLAGS) -o $@ | ||
122 | AM_V_CCLD = $(am__v_CCLD_$(V)) | ||
123 | am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) | ||
124 | am__v_CCLD_0 = @echo " CCLD " $@; | ||
125 | AM_V_GEN = $(am__v_GEN_$(V)) | ||
126 | am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) | ||
127 | am__v_GEN_0 = @echo " GEN " $@; | ||
128 | SOURCES = $(libeet_la_SOURCES) $(nodist_libeet_la_SOURCES) | ||
129 | DIST_SOURCES = $(am__libeet_la_SOURCES_DIST) | ||
130 | HEADERS = $(includes_HEADERS) | ||
131 | ETAGS = etags | ||
132 | CTAGS = ctags | ||
133 | DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | ||
134 | ACLOCAL = @ACLOCAL@ | ||
135 | ALLOCA = @ALLOCA@ | ||
136 | AMTAR = @AMTAR@ | ||
137 | AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ | ||
138 | AR = @AR@ | ||
139 | AS = @AS@ | ||
140 | AUTOCONF = @AUTOCONF@ | ||
141 | AUTOHEADER = @AUTOHEADER@ | ||
142 | AUTOMAKE = @AUTOMAKE@ | ||
143 | AWK = @AWK@ | ||
144 | CC = @CC@ | ||
145 | CCDEPMODE = @CCDEPMODE@ | ||
146 | CFLAGS = @CFLAGS@ | ||
147 | CHECK_CFLAGS = @CHECK_CFLAGS@ | ||
148 | CHECK_LIBS = @CHECK_LIBS@ | ||
149 | CPP = @CPP@ | ||
150 | CPPFLAGS = @CPPFLAGS@ | ||
151 | CYGPATH_W = @CYGPATH_W@ | ||
152 | DEBUG_CFLAGS = @DEBUG_CFLAGS@ | ||
153 | DEFS = @DEFS@ | ||
154 | DEPDIR = @DEPDIR@ | ||
155 | DLLTOOL = @DLLTOOL@ | ||
156 | DSYMUTIL = @DSYMUTIL@ | ||
157 | DUMPBIN = @DUMPBIN@ | ||
158 | ECHO_C = @ECHO_C@ | ||
159 | ECHO_N = @ECHO_N@ | ||
160 | ECHO_T = @ECHO_T@ | ||
161 | EET_CFLAGS = @EET_CFLAGS@ | ||
162 | EET_CPPFLAGS = @EET_CPPFLAGS@ | ||
163 | EET_LIBS = @EET_LIBS@ | ||
164 | EET_PRG = @EET_PRG@ | ||
165 | EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@ | ||
166 | EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@ | ||
167 | EFL_EET_BUILD = @EFL_EET_BUILD@ | ||
168 | EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@ | ||
169 | EGREP = @EGREP@ | ||
170 | EINA_CFLAGS = @EINA_CFLAGS@ | ||
171 | EINA_LIBS = @EINA_LIBS@ | ||
172 | EVIL_CFLAGS = @EVIL_CFLAGS@ | ||
173 | EVIL_LIBS = @EVIL_LIBS@ | ||
174 | EXEEXT = @EXEEXT@ | ||
175 | EXOTIC_CFLAGS = @EXOTIC_CFLAGS@ | ||
176 | EXOTIC_LIBS = @EXOTIC_LIBS@ | ||
177 | FGREP = @FGREP@ | ||
178 | GNUTLS_CFLAGS = @GNUTLS_CFLAGS@ | ||
179 | GNUTLS_LIBS = @GNUTLS_LIBS@ | ||
180 | GREP = @GREP@ | ||
181 | INSTALL = @INSTALL@ | ||
182 | INSTALL_DATA = @INSTALL_DATA@ | ||
183 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ | ||
184 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ | ||
185 | INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | ||
186 | LD = @LD@ | ||
187 | LDFLAGS = @LDFLAGS@ | ||
188 | LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@ | ||
189 | LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@ | ||
190 | LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@ | ||
191 | LIBOBJS = @LIBOBJS@ | ||
192 | LIBS = @LIBS@ | ||
193 | LIBTOOL = @LIBTOOL@ | ||
194 | LIPO = @LIPO@ | ||
195 | LN_S = @LN_S@ | ||
196 | LTLIBOBJS = @LTLIBOBJS@ | ||
197 | MAKEINFO = @MAKEINFO@ | ||
198 | MKDIR_P = @MKDIR_P@ | ||
199 | NM = @NM@ | ||
200 | NMEDIT = @NMEDIT@ | ||
201 | OBJDUMP = @OBJDUMP@ | ||
202 | OBJEXT = @OBJEXT@ | ||
203 | OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ | ||
204 | OPENSSL_LIBS = @OPENSSL_LIBS@ | ||
205 | OTOOL = @OTOOL@ | ||
206 | OTOOL64 = @OTOOL64@ | ||
207 | PACKAGE = @PACKAGE@ | ||
208 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | ||
209 | PACKAGE_NAME = @PACKAGE_NAME@ | ||
210 | PACKAGE_STRING = @PACKAGE_STRING@ | ||
211 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ | ||
212 | PACKAGE_URL = @PACKAGE_URL@ | ||
213 | PACKAGE_VERSION = @PACKAGE_VERSION@ | ||
214 | PATH_SEPARATOR = @PATH_SEPARATOR@ | ||
215 | PKG_CONFIG = @PKG_CONFIG@ | ||
216 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ | ||
217 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ | ||
218 | RANLIB = @RANLIB@ | ||
219 | SED = @SED@ | ||
220 | SET_MAKE = @SET_MAKE@ | ||
221 | SHELL = @SHELL@ | ||
222 | STRIP = @STRIP@ | ||
223 | VERSION = @VERSION@ | ||
224 | VMAJ = @VMAJ@ | ||
225 | abs_builddir = @abs_builddir@ | ||
226 | abs_srcdir = @abs_srcdir@ | ||
227 | abs_top_builddir = @abs_top_builddir@ | ||
228 | abs_top_srcdir = @abs_top_srcdir@ | ||
229 | ac_ct_CC = @ac_ct_CC@ | ||
230 | ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ | ||
231 | am__include = @am__include@ | ||
232 | am__leading_dot = @am__leading_dot@ | ||
233 | am__quote = @am__quote@ | ||
234 | am__tar = @am__tar@ | ||
235 | am__untar = @am__untar@ | ||
236 | bindir = @bindir@ | ||
237 | build = @build@ | ||
238 | build_alias = @build_alias@ | ||
239 | build_cpu = @build_cpu@ | ||
240 | build_os = @build_os@ | ||
241 | build_vendor = @build_vendor@ | ||
242 | builddir = @builddir@ | ||
243 | datadir = @datadir@ | ||
244 | datarootdir = @datarootdir@ | ||
245 | docdir = @docdir@ | ||
246 | dvidir = @dvidir@ | ||
247 | efl_doxygen = @efl_doxygen@ | ||
248 | efl_have_doxygen = @efl_have_doxygen@ | ||
249 | exec_prefix = @exec_prefix@ | ||
250 | have_lcov = @have_lcov@ | ||
251 | host = @host@ | ||
252 | host_alias = @host_alias@ | ||
253 | host_cpu = @host_cpu@ | ||
254 | host_os = @host_os@ | ||
255 | host_vendor = @host_vendor@ | ||
256 | htmldir = @htmldir@ | ||
257 | includedir = @includedir@ | ||
258 | infodir = @infodir@ | ||
259 | install_sh = @install_sh@ | ||
260 | libdir = @libdir@ | ||
261 | libexecdir = @libexecdir@ | ||
262 | localedir = @localedir@ | ||
263 | localstatedir = @localstatedir@ | ||
264 | lt_ECHO = @lt_ECHO@ | ||
265 | lt_enable_auto_import = @lt_enable_auto_import@ | ||
266 | mandir = @mandir@ | ||
267 | mkdir_p = @mkdir_p@ | ||
268 | oldincludedir = @oldincludedir@ | ||
269 | pdfdir = @pdfdir@ | ||
270 | pkgconfig_requires_private = @pkgconfig_requires_private@ | ||
271 | prefix = @prefix@ | ||
272 | program_transform_name = @program_transform_name@ | ||
273 | psdir = @psdir@ | ||
274 | release_info = @release_info@ | ||
275 | requirement_eet = @requirement_eet@ | ||
276 | sbindir = @sbindir@ | ||
277 | sharedstatedir = @sharedstatedir@ | ||
278 | srcdir = @srcdir@ | ||
279 | sysconfdir = @sysconfdir@ | ||
280 | target_alias = @target_alias@ | ||
281 | top_build_prefix = @top_build_prefix@ | ||
282 | top_builddir = @top_builddir@ | ||
283 | top_srcdir = @top_srcdir@ | ||
284 | version_info = @version_info@ | ||
285 | MAINTAINERCLEANFILES = Makefile.in | ||
286 | AM_CPPFLAGS = \ | ||
287 | -I. \ | ||
288 | -I$(top_srcdir)/src/lib \ | ||
289 | -I$(top_builddir)/src/lib \ | ||
290 | -DPACKAGE_BIN_DIR=\"$(bindir)\" \ | ||
291 | -DPACKAGE_LIB_DIR=\"$(libdir)\" \ | ||
292 | -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ | ||
293 | @EVIL_CFLAGS@ \ | ||
294 | @EINA_CFLAGS@ \ | ||
295 | @EET_CPPFLAGS@ \ | ||
296 | @EFL_EET_BUILD@ \ | ||
297 | @EFL_COVERAGE_CFLAGS@ \ | ||
298 | @OPENSSL_CFLAGS@ \ | ||
299 | @GNUTLS_CFLAGS@ | ||
300 | |||
301 | includes_HEADERS = Eet.h | ||
302 | includesdir = $(includedir)/eet-@VMAJ@ | ||
303 | lib_LTLIBRARIES = libeet.la | ||
304 | base_sources = \ | ||
305 | eet_alloc.c \ | ||
306 | eet_lib.c \ | ||
307 | eet_data.c \ | ||
308 | eet_image.c \ | ||
309 | eet_cipher.c \ | ||
310 | eet_dictionary.c \ | ||
311 | eet_node.c \ | ||
312 | eet_utils.c \ | ||
313 | eet_connection.c | ||
314 | |||
315 | @EET_AMALGAMATION_TRUE@nodist_libeet_la_SOURCES = eet_amalgamation.c | ||
316 | @EET_AMALGAMATION_FALSE@libeet_la_SOURCES = $(base_sources) | ||
317 | libeet_la_CFLAGS = @EET_CFLAGS@ @DEBUG_CFLAGS@ | ||
318 | libeet_la_LIBADD = @GNUTLS_LIBS@ @OPENSSL_LIBS@ @EFL_COVERAGE_LIBS@ @EET_LIBS@ @EINA_LIBS@ @EVIL_LIBS@ -lz -ljpeg -lm | ||
319 | libeet_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@ | ||
320 | EXTRA_DIST = Eet_private.h | ||
321 | all: all-am | ||
322 | |||
323 | .SUFFIXES: | ||
324 | .SUFFIXES: .c .lo .o .obj | ||
325 | $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) | ||
326 | @for dep in $?; do \ | ||
327 | case '$(am__configure_deps)' in \ | ||
328 | *$$dep*) \ | ||
329 | ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ | ||
330 | && { if test -f $@; then exit 0; else break; fi; }; \ | ||
331 | exit 1;; \ | ||
332 | esac; \ | ||
333 | done; \ | ||
334 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/Makefile'; \ | ||
335 | $(am__cd) $(top_srcdir) && \ | ||
336 | $(AUTOMAKE) --gnu src/lib/Makefile | ||
337 | .PRECIOUS: Makefile | ||
338 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | ||
339 | @case '$?' in \ | ||
340 | *config.status*) \ | ||
341 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ | ||
342 | *) \ | ||
343 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | ||
344 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | ||
345 | esac; | ||
346 | |||
347 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | ||
348 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
349 | |||
350 | $(top_srcdir)/configure: $(am__configure_deps) | ||
351 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
352 | $(ACLOCAL_M4): $(am__aclocal_m4_deps) | ||
353 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
354 | $(am__aclocal_m4_deps): | ||
355 | install-libLTLIBRARIES: $(lib_LTLIBRARIES) | ||
356 | @$(NORMAL_INSTALL) | ||
357 | test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" | ||
358 | @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ | ||
359 | list2=; for p in $$list; do \ | ||
360 | if test -f $$p; then \ | ||
361 | list2="$$list2 $$p"; \ | ||
362 | else :; fi; \ | ||
363 | done; \ | ||
364 | test -z "$$list2" || { \ | ||
365 | echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ | ||
366 | $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ | ||
367 | } | ||
368 | |||
369 | uninstall-libLTLIBRARIES: | ||
370 | @$(NORMAL_UNINSTALL) | ||
371 | @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ | ||
372 | for p in $$list; do \ | ||
373 | $(am__strip_dir) \ | ||
374 | echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ | ||
375 | $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ | ||
376 | done | ||
377 | |||
378 | clean-libLTLIBRARIES: | ||
379 | -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) | ||
380 | @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ | ||
381 | dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ | ||
382 | test "$$dir" != "$$p" || dir=.; \ | ||
383 | echo "rm -f \"$${dir}/so_locations\""; \ | ||
384 | rm -f "$${dir}/so_locations"; \ | ||
385 | done | ||
386 | libeet.la: $(libeet_la_OBJECTS) $(libeet_la_DEPENDENCIES) | ||
387 | $(AM_V_CCLD)$(libeet_la_LINK) -rpath $(libdir) $(libeet_la_OBJECTS) $(libeet_la_LIBADD) $(LIBS) | ||
388 | |||
389 | mostlyclean-compile: | ||
390 | -rm -f *.$(OBJEXT) | ||
391 | |||
392 | distclean-compile: | ||
393 | -rm -f *.tab.c | ||
394 | |||
395 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeet_la-eet_alloc.Plo@am__quote@ | ||
396 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeet_la-eet_amalgamation.Plo@am__quote@ | ||
397 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeet_la-eet_cipher.Plo@am__quote@ | ||
398 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeet_la-eet_connection.Plo@am__quote@ | ||
399 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeet_la-eet_data.Plo@am__quote@ | ||
400 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeet_la-eet_dictionary.Plo@am__quote@ | ||
401 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeet_la-eet_image.Plo@am__quote@ | ||
402 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeet_la-eet_lib.Plo@am__quote@ | ||
403 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeet_la-eet_node.Plo@am__quote@ | ||
404 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeet_la-eet_utils.Plo@am__quote@ | ||
405 | |||
406 | .c.o: | ||
407 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< | ||
408 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po | ||
409 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
410 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ | ||
411 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
412 | @am__fastdepCC_FALSE@ $(COMPILE) -c $< | ||
413 | |||
414 | .c.obj: | ||
415 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` | ||
416 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po | ||
417 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
418 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ | ||
419 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
420 | @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` | ||
421 | |||
422 | .c.lo: | ||
423 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< | ||
424 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo | ||
425 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
426 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ | ||
427 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
428 | @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< | ||
429 | |||
430 | libeet_la-eet_alloc.lo: eet_alloc.c | ||
431 | @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) $(libeet_la_CFLAGS) $(CFLAGS) -MT libeet_la-eet_alloc.lo -MD -MP -MF $(DEPDIR)/libeet_la-eet_alloc.Tpo -c -o libeet_la-eet_alloc.lo `test -f 'eet_alloc.c' || echo '$(srcdir)/'`eet_alloc.c | ||
432 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeet_la-eet_alloc.Tpo $(DEPDIR)/libeet_la-eet_alloc.Plo | ||
433 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
434 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eet_alloc.c' object='libeet_la-eet_alloc.lo' libtool=yes @AMDEPBACKSLASH@ | ||
435 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
436 | @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libeet_la_CFLAGS) $(CFLAGS) -c -o libeet_la-eet_alloc.lo `test -f 'eet_alloc.c' || echo '$(srcdir)/'`eet_alloc.c | ||
437 | |||
438 | libeet_la-eet_lib.lo: eet_lib.c | ||
439 | @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) $(libeet_la_CFLAGS) $(CFLAGS) -MT libeet_la-eet_lib.lo -MD -MP -MF $(DEPDIR)/libeet_la-eet_lib.Tpo -c -o libeet_la-eet_lib.lo `test -f 'eet_lib.c' || echo '$(srcdir)/'`eet_lib.c | ||
440 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeet_la-eet_lib.Tpo $(DEPDIR)/libeet_la-eet_lib.Plo | ||
441 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
442 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eet_lib.c' object='libeet_la-eet_lib.lo' libtool=yes @AMDEPBACKSLASH@ | ||
443 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
444 | @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libeet_la_CFLAGS) $(CFLAGS) -c -o libeet_la-eet_lib.lo `test -f 'eet_lib.c' || echo '$(srcdir)/'`eet_lib.c | ||
445 | |||
446 | libeet_la-eet_data.lo: eet_data.c | ||
447 | @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) $(libeet_la_CFLAGS) $(CFLAGS) -MT libeet_la-eet_data.lo -MD -MP -MF $(DEPDIR)/libeet_la-eet_data.Tpo -c -o libeet_la-eet_data.lo `test -f 'eet_data.c' || echo '$(srcdir)/'`eet_data.c | ||
448 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeet_la-eet_data.Tpo $(DEPDIR)/libeet_la-eet_data.Plo | ||
449 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
450 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eet_data.c' object='libeet_la-eet_data.lo' libtool=yes @AMDEPBACKSLASH@ | ||
451 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
452 | @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libeet_la_CFLAGS) $(CFLAGS) -c -o libeet_la-eet_data.lo `test -f 'eet_data.c' || echo '$(srcdir)/'`eet_data.c | ||
453 | |||
454 | libeet_la-eet_image.lo: eet_image.c | ||
455 | @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) $(libeet_la_CFLAGS) $(CFLAGS) -MT libeet_la-eet_image.lo -MD -MP -MF $(DEPDIR)/libeet_la-eet_image.Tpo -c -o libeet_la-eet_image.lo `test -f 'eet_image.c' || echo '$(srcdir)/'`eet_image.c | ||
456 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeet_la-eet_image.Tpo $(DEPDIR)/libeet_la-eet_image.Plo | ||
457 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
458 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eet_image.c' object='libeet_la-eet_image.lo' libtool=yes @AMDEPBACKSLASH@ | ||
459 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
460 | @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libeet_la_CFLAGS) $(CFLAGS) -c -o libeet_la-eet_image.lo `test -f 'eet_image.c' || echo '$(srcdir)/'`eet_image.c | ||
461 | |||
462 | libeet_la-eet_cipher.lo: eet_cipher.c | ||
463 | @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) $(libeet_la_CFLAGS) $(CFLAGS) -MT libeet_la-eet_cipher.lo -MD -MP -MF $(DEPDIR)/libeet_la-eet_cipher.Tpo -c -o libeet_la-eet_cipher.lo `test -f 'eet_cipher.c' || echo '$(srcdir)/'`eet_cipher.c | ||
464 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeet_la-eet_cipher.Tpo $(DEPDIR)/libeet_la-eet_cipher.Plo | ||
465 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
466 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eet_cipher.c' object='libeet_la-eet_cipher.lo' libtool=yes @AMDEPBACKSLASH@ | ||
467 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
468 | @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libeet_la_CFLAGS) $(CFLAGS) -c -o libeet_la-eet_cipher.lo `test -f 'eet_cipher.c' || echo '$(srcdir)/'`eet_cipher.c | ||
469 | |||
470 | libeet_la-eet_dictionary.lo: eet_dictionary.c | ||
471 | @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) $(libeet_la_CFLAGS) $(CFLAGS) -MT libeet_la-eet_dictionary.lo -MD -MP -MF $(DEPDIR)/libeet_la-eet_dictionary.Tpo -c -o libeet_la-eet_dictionary.lo `test -f 'eet_dictionary.c' || echo '$(srcdir)/'`eet_dictionary.c | ||
472 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeet_la-eet_dictionary.Tpo $(DEPDIR)/libeet_la-eet_dictionary.Plo | ||
473 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
474 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eet_dictionary.c' object='libeet_la-eet_dictionary.lo' libtool=yes @AMDEPBACKSLASH@ | ||
475 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
476 | @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libeet_la_CFLAGS) $(CFLAGS) -c -o libeet_la-eet_dictionary.lo `test -f 'eet_dictionary.c' || echo '$(srcdir)/'`eet_dictionary.c | ||
477 | |||
478 | libeet_la-eet_node.lo: eet_node.c | ||
479 | @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) $(libeet_la_CFLAGS) $(CFLAGS) -MT libeet_la-eet_node.lo -MD -MP -MF $(DEPDIR)/libeet_la-eet_node.Tpo -c -o libeet_la-eet_node.lo `test -f 'eet_node.c' || echo '$(srcdir)/'`eet_node.c | ||
480 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeet_la-eet_node.Tpo $(DEPDIR)/libeet_la-eet_node.Plo | ||
481 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
482 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eet_node.c' object='libeet_la-eet_node.lo' libtool=yes @AMDEPBACKSLASH@ | ||
483 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
484 | @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libeet_la_CFLAGS) $(CFLAGS) -c -o libeet_la-eet_node.lo `test -f 'eet_node.c' || echo '$(srcdir)/'`eet_node.c | ||
485 | |||
486 | libeet_la-eet_utils.lo: eet_utils.c | ||
487 | @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) $(libeet_la_CFLAGS) $(CFLAGS) -MT libeet_la-eet_utils.lo -MD -MP -MF $(DEPDIR)/libeet_la-eet_utils.Tpo -c -o libeet_la-eet_utils.lo `test -f 'eet_utils.c' || echo '$(srcdir)/'`eet_utils.c | ||
488 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeet_la-eet_utils.Tpo $(DEPDIR)/libeet_la-eet_utils.Plo | ||
489 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
490 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eet_utils.c' object='libeet_la-eet_utils.lo' libtool=yes @AMDEPBACKSLASH@ | ||
491 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
492 | @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libeet_la_CFLAGS) $(CFLAGS) -c -o libeet_la-eet_utils.lo `test -f 'eet_utils.c' || echo '$(srcdir)/'`eet_utils.c | ||
493 | |||
494 | libeet_la-eet_connection.lo: eet_connection.c | ||
495 | @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) $(libeet_la_CFLAGS) $(CFLAGS) -MT libeet_la-eet_connection.lo -MD -MP -MF $(DEPDIR)/libeet_la-eet_connection.Tpo -c -o libeet_la-eet_connection.lo `test -f 'eet_connection.c' || echo '$(srcdir)/'`eet_connection.c | ||
496 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeet_la-eet_connection.Tpo $(DEPDIR)/libeet_la-eet_connection.Plo | ||
497 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
498 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eet_connection.c' object='libeet_la-eet_connection.lo' libtool=yes @AMDEPBACKSLASH@ | ||
499 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
500 | @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libeet_la_CFLAGS) $(CFLAGS) -c -o libeet_la-eet_connection.lo `test -f 'eet_connection.c' || echo '$(srcdir)/'`eet_connection.c | ||
501 | |||
502 | libeet_la-eet_amalgamation.lo: eet_amalgamation.c | ||
503 | @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) $(libeet_la_CFLAGS) $(CFLAGS) -MT libeet_la-eet_amalgamation.lo -MD -MP -MF $(DEPDIR)/libeet_la-eet_amalgamation.Tpo -c -o libeet_la-eet_amalgamation.lo `test -f 'eet_amalgamation.c' || echo '$(srcdir)/'`eet_amalgamation.c | ||
504 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libeet_la-eet_amalgamation.Tpo $(DEPDIR)/libeet_la-eet_amalgamation.Plo | ||
505 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
506 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eet_amalgamation.c' object='libeet_la-eet_amalgamation.lo' libtool=yes @AMDEPBACKSLASH@ | ||
507 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
508 | @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libeet_la_CFLAGS) $(CFLAGS) -c -o libeet_la-eet_amalgamation.lo `test -f 'eet_amalgamation.c' || echo '$(srcdir)/'`eet_amalgamation.c | ||
509 | |||
510 | mostlyclean-libtool: | ||
511 | -rm -f *.lo | ||
512 | |||
513 | clean-libtool: | ||
514 | -rm -rf .libs _libs | ||
515 | install-includesHEADERS: $(includes_HEADERS) | ||
516 | @$(NORMAL_INSTALL) | ||
517 | test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)" | ||
518 | @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \ | ||
519 | for p in $$list; do \ | ||
520 | if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ | ||
521 | echo "$$d$$p"; \ | ||
522 | done | $(am__base_list) | \ | ||
523 | while read files; do \ | ||
524 | echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \ | ||
525 | $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \ | ||
526 | done | ||
527 | |||
528 | uninstall-includesHEADERS: | ||
529 | @$(NORMAL_UNINSTALL) | ||
530 | @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \ | ||
531 | files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ | ||
532 | test -n "$$files" || exit 0; \ | ||
533 | echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \ | ||
534 | cd "$(DESTDIR)$(includesdir)" && rm -f $$files | ||
535 | |||
536 | ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) | ||
537 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||
538 | unique=`for i in $$list; do \ | ||
539 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
540 | done | \ | ||
541 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
542 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
543 | mkid -fID $$unique | ||
544 | tags: TAGS | ||
545 | |||
546 | TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ | ||
547 | $(TAGS_FILES) $(LISP) | ||
548 | set x; \ | ||
549 | here=`pwd`; \ | ||
550 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||
551 | unique=`for i in $$list; do \ | ||
552 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
553 | done | \ | ||
554 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
555 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
556 | shift; \ | ||
557 | if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ | ||
558 | test -n "$$unique" || unique=$$empty_fix; \ | ||
559 | if test $$# -gt 0; then \ | ||
560 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||
561 | "$$@" $$unique; \ | ||
562 | else \ | ||
563 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||
564 | $$unique; \ | ||
565 | fi; \ | ||
566 | fi | ||
567 | ctags: CTAGS | ||
568 | CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ | ||
569 | $(TAGS_FILES) $(LISP) | ||
570 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||
571 | unique=`for i in $$list; do \ | ||
572 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
573 | done | \ | ||
574 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
575 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
576 | test -z "$(CTAGS_ARGS)$$unique" \ | ||
577 | || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ | ||
578 | $$unique | ||
579 | |||
580 | GTAGS: | ||
581 | here=`$(am__cd) $(top_builddir) && pwd` \ | ||
582 | && $(am__cd) $(top_srcdir) \ | ||
583 | && gtags -i $(GTAGS_ARGS) "$$here" | ||
584 | |||
585 | distclean-tags: | ||
586 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | ||
587 | |||
588 | distdir: $(DISTFILES) | ||
589 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||
590 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||
591 | list='$(DISTFILES)'; \ | ||
592 | dist_files=`for file in $$list; do echo $$file; done | \ | ||
593 | sed -e "s|^$$srcdirstrip/||;t" \ | ||
594 | -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | ||
595 | case $$dist_files in \ | ||
596 | */*) $(MKDIR_P) `echo "$$dist_files" | \ | ||
597 | sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | ||
598 | sort -u` ;; \ | ||
599 | esac; \ | ||
600 | for file in $$dist_files; do \ | ||
601 | if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | ||
602 | if test -d $$d/$$file; then \ | ||
603 | dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | ||
604 | if test -d "$(distdir)/$$file"; then \ | ||
605 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||
606 | fi; \ | ||
607 | if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | ||
608 | cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | ||
609 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||
610 | fi; \ | ||
611 | cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | ||
612 | else \ | ||
613 | test -f "$(distdir)/$$file" \ | ||
614 | || cp -p $$d/$$file "$(distdir)/$$file" \ | ||
615 | || exit 1; \ | ||
616 | fi; \ | ||
617 | done | ||
618 | check-am: all-am | ||
619 | check: check-am | ||
620 | all-am: Makefile $(LTLIBRARIES) $(HEADERS) | ||
621 | installdirs: | ||
622 | for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includesdir)"; do \ | ||
623 | test -z "$$dir" || $(MKDIR_P) "$$dir"; \ | ||
624 | done | ||
625 | install: install-am | ||
626 | install-exec: install-exec-am | ||
627 | install-data: install-data-am | ||
628 | uninstall: uninstall-am | ||
629 | |||
630 | install-am: all-am | ||
631 | @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | ||
632 | |||
633 | installcheck: installcheck-am | ||
634 | install-strip: | ||
635 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||
636 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||
637 | `test -z '$(STRIP)' || \ | ||
638 | echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install | ||
639 | mostlyclean-generic: | ||
640 | |||
641 | clean-generic: | ||
642 | |||
643 | distclean-generic: | ||
644 | -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | ||
645 | -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) | ||
646 | |||
647 | maintainer-clean-generic: | ||
648 | @echo "This command is intended for maintainers to use" | ||
649 | @echo "it deletes files that may require special tools to rebuild." | ||
650 | -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) | ||
651 | clean: clean-am | ||
652 | |||
653 | clean-am: clean-generic clean-libLTLIBRARIES clean-libtool clean-local \ | ||
654 | mostlyclean-am | ||
655 | |||
656 | distclean: distclean-am | ||
657 | -rm -rf ./$(DEPDIR) | ||
658 | -rm -f Makefile | ||
659 | distclean-am: clean-am distclean-compile distclean-generic \ | ||
660 | distclean-tags | ||
661 | |||
662 | dvi: dvi-am | ||
663 | |||
664 | dvi-am: | ||
665 | |||
666 | html: html-am | ||
667 | |||
668 | html-am: | ||
669 | |||
670 | info: info-am | ||
671 | |||
672 | info-am: | ||
673 | |||
674 | install-data-am: install-includesHEADERS | ||
675 | |||
676 | install-dvi: install-dvi-am | ||
677 | |||
678 | install-dvi-am: | ||
679 | |||
680 | install-exec-am: install-libLTLIBRARIES | ||
681 | |||
682 | install-html: install-html-am | ||
683 | |||
684 | install-html-am: | ||
685 | |||
686 | install-info: install-info-am | ||
687 | |||
688 | install-info-am: | ||
689 | |||
690 | install-man: | ||
691 | |||
692 | install-pdf: install-pdf-am | ||
693 | |||
694 | install-pdf-am: | ||
695 | |||
696 | install-ps: install-ps-am | ||
697 | |||
698 | install-ps-am: | ||
699 | |||
700 | installcheck-am: | ||
701 | |||
702 | maintainer-clean: maintainer-clean-am | ||
703 | -rm -rf ./$(DEPDIR) | ||
704 | -rm -f Makefile | ||
705 | maintainer-clean-am: distclean-am maintainer-clean-generic | ||
706 | |||
707 | mostlyclean: mostlyclean-am | ||
708 | |||
709 | mostlyclean-am: mostlyclean-compile mostlyclean-generic \ | ||
710 | mostlyclean-libtool | ||
711 | |||
712 | pdf: pdf-am | ||
713 | |||
714 | pdf-am: | ||
715 | |||
716 | ps: ps-am | ||
717 | |||
718 | ps-am: | ||
719 | |||
720 | uninstall-am: uninstall-includesHEADERS uninstall-libLTLIBRARIES | ||
721 | |||
722 | .MAKE: install-am install-strip | ||
723 | |||
724 | .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ | ||
725 | clean-libLTLIBRARIES clean-libtool clean-local ctags distclean \ | ||
726 | distclean-compile distclean-generic distclean-libtool \ | ||
727 | distclean-tags distdir dvi dvi-am html html-am info info-am \ | ||
728 | install install-am install-data install-data-am install-dvi \ | ||
729 | install-dvi-am install-exec install-exec-am install-html \ | ||
730 | install-html-am install-includesHEADERS install-info \ | ||
731 | install-info-am install-libLTLIBRARIES install-man install-pdf \ | ||
732 | install-pdf-am install-ps install-ps-am install-strip \ | ||
733 | installcheck installcheck-am installdirs maintainer-clean \ | ||
734 | maintainer-clean-generic mostlyclean mostlyclean-compile \ | ||
735 | mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ | ||
736 | tags uninstall uninstall-am uninstall-includesHEADERS \ | ||
737 | uninstall-libLTLIBRARIES | ||
738 | |||
739 | |||
740 | @EET_AMALGAMATION_TRUE@eet_amalgamation.c: $(base_sources) Makefile | ||
741 | @EET_AMALGAMATION_TRUE@ -rm -f eet_amalgamation.c | ||
742 | |||
743 | @EET_AMALGAMATION_TRUE@ @echo "#ifdef HAVE_CONFIG_H" >> eet_amalgamation.c | ||
744 | @EET_AMALGAMATION_TRUE@ @echo "# include \"config.h\"" >> eet_amalgamation.c | ||
745 | @EET_AMALGAMATION_TRUE@ @echo "#endif" >> eet_amalgamation.c | ||
746 | |||
747 | @EET_AMALGAMATION_TRUE@ @echo "#ifdef HAVE_ALLOCA_H" >> eet_amalgamation.c | ||
748 | @EET_AMALGAMATION_TRUE@ @echo "# include <alloca.h>" >> eet_amalgamation.c | ||
749 | @EET_AMALGAMATION_TRUE@ @echo "#elif defined __GNUC__" >> eet_amalgamation.c | ||
750 | @EET_AMALGAMATION_TRUE@ @echo "# define alloca __builtin_alloca" >> eet_amalgamation.c | ||
751 | @EET_AMALGAMATION_TRUE@ @echo "#elif defined _AIX" >> eet_amalgamation.c | ||
752 | @EET_AMALGAMATION_TRUE@ @echo "# define alloca __alloca" >> eet_amalgamation.c | ||
753 | @EET_AMALGAMATION_TRUE@ @echo "#elif defined _MSC_VER" >> eet_amalgamation.c | ||
754 | @EET_AMALGAMATION_TRUE@ @echo "# include <malloc.h>" >> eet_amalgamation.c | ||
755 | @EET_AMALGAMATION_TRUE@ @echo "# define alloca _alloca" >> eet_amalgamation.c | ||
756 | @EET_AMALGAMATION_TRUE@ @echo "#else" >> eet_amalgamation.c | ||
757 | @EET_AMALGAMATION_TRUE@ @echo "# include <stddef.h>" >> eet_amalgamation.c | ||
758 | @EET_AMALGAMATION_TRUE@ @echo "# ifdef __cplusplus" >> eet_amalgamation.c | ||
759 | @EET_AMALGAMATION_TRUE@ @echo "#extern \"C\"" >> eet_amalgamation.c | ||
760 | @EET_AMALGAMATION_TRUE@ @echo "# endif" >> eet_amalgamation.c | ||
761 | @EET_AMALGAMATION_TRUE@ @echo "#void *alloca (size_t);" >> eet_amalgamation.c | ||
762 | @EET_AMALGAMATION_TRUE@ @echo "#endif" >> eet_amalgamation.c | ||
763 | |||
764 | @EET_AMALGAMATION_TRUE@ @echo "#include <stdio.h>" >> eet_amalgamation.c | ||
765 | @EET_AMALGAMATION_TRUE@ @echo "#include <string.h>" >> eet_amalgamation.c | ||
766 | @EET_AMALGAMATION_TRUE@ @echo "#include <math.h>" >> eet_amalgamation.c | ||
767 | @EET_AMALGAMATION_TRUE@ @echo "#include <ctype.h>" >> eet_amalgamation.c | ||
768 | @EET_AMALGAMATION_TRUE@ @echo "#include <limits.h>" >> eet_amalgamation.c | ||
769 | @EET_AMALGAMATION_TRUE@ @echo "#include <sys/types.h>" >> eet_amalgamation.c | ||
770 | @EET_AMALGAMATION_TRUE@ @echo "#include <sys/stat.h>" >> eet_amalgamation.c | ||
771 | @EET_AMALGAMATION_TRUE@ @echo "#ifdef HAVE_SIGNATURE" >> eet_amalgamation.c | ||
772 | @EET_AMALGAMATION_TRUE@ @echo "# include <sys/mman.h>" >> eet_amalgamation.c | ||
773 | @EET_AMALGAMATION_TRUE@ @echo "#endif" >> eet_amalgamation.c | ||
774 | @EET_AMALGAMATION_TRUE@ @echo "#include <setjmp.h>" >> eet_amalgamation.c | ||
775 | @EET_AMALGAMATION_TRUE@ @echo "#include <errno.h>" >> eet_amalgamation.c | ||
776 | @EET_AMALGAMATION_TRUE@ @echo "#include <time.h>" >> eet_amalgamation.c | ||
777 | @EET_AMALGAMATION_TRUE@ @echo "#include <fnmatch.h>" >> eet_amalgamation.c | ||
778 | @EET_AMALGAMATION_TRUE@ @echo "#include <fcntl.h>" >> eet_amalgamation.c | ||
779 | |||
780 | @EET_AMALGAMATION_TRUE@ @echo "#ifdef _WIN32" >> eet_amalgamation.c | ||
781 | @EET_AMALGAMATION_TRUE@ @echo "# include <winsock2.h>" >> eet_amalgamation.c | ||
782 | @EET_AMALGAMATION_TRUE@ @echo "#endif" >> eet_amalgamation.c | ||
783 | |||
784 | @EET_AMALGAMATION_TRUE@ @echo "#ifndef _MSC_VER" >> eet_amalgamation.c | ||
785 | @EET_AMALGAMATION_TRUE@ @echo "# include <unistd.h>" >> eet_amalgamation.c | ||
786 | @EET_AMALGAMATION_TRUE@ @echo "#endif" >> eet_amalgamation.c | ||
787 | |||
788 | @EET_AMALGAMATION_TRUE@ @echo "#ifdef HAVE_NETINET_IN_H" >> eet_amalgamation.c | ||
789 | @EET_AMALGAMATION_TRUE@ @echo "# include <netinet/in.h>" >> eet_amalgamation.c | ||
790 | @EET_AMALGAMATION_TRUE@ @echo "#endif" >> eet_amalgamation.c | ||
791 | |||
792 | @EET_AMALGAMATION_TRUE@ @echo "#ifdef HAVE_GNUTLS" >> eet_amalgamation.c | ||
793 | @EET_AMALGAMATION_TRUE@ @echo "# include <gnutls/gnutls.h>" >> eet_amalgamation.c | ||
794 | @EET_AMALGAMATION_TRUE@ @echo "# include <gcrypt.h>" >> eet_amalgamation.c | ||
795 | @EET_AMALGAMATION_TRUE@ @echo "#endif" >> eet_amalgamation.c | ||
796 | |||
797 | @EET_AMALGAMATION_TRUE@ @echo "#ifdef HAVE_OPENSSL" >> eet_amalgamation.c | ||
798 | @EET_AMALGAMATION_TRUE@ @echo "# include <openssl/err.h>" >> eet_amalgamation.c | ||
799 | @EET_AMALGAMATION_TRUE@ @echo "# include <openssl/evp.h>" >> eet_amalgamation.c | ||
800 | @EET_AMALGAMATION_TRUE@ @echo "# include <openssl/sha.h>" >> eet_amalgamation.c | ||
801 | @EET_AMALGAMATION_TRUE@ @echo "#endif" >> eet_amalgamation.c | ||
802 | |||
803 | @EET_AMALGAMATION_TRUE@ @echo "#ifdef HAVE_SIGNATURE" >> eet_amalgamation.c | ||
804 | @EET_AMALGAMATION_TRUE@ @echo "# ifdef HAVE_GNUTLS" >> eet_amalgamation.c | ||
805 | @EET_AMALGAMATION_TRUE@ @echo "# include <gnutls/gnutls.h>" >> eet_amalgamation.c | ||
806 | @EET_AMALGAMATION_TRUE@ @echo "# include <gnutls/x509.h>" >> eet_amalgamation.c | ||
807 | @EET_AMALGAMATION_TRUE@ @echo "# else" >> eet_amalgamation.c | ||
808 | @EET_AMALGAMATION_TRUE@ @echo "# include <openssl/rsa.h>" >> eet_amalgamation.c | ||
809 | @EET_AMALGAMATION_TRUE@ @echo "# include <openssl/objects.h>" >> eet_amalgamation.c | ||
810 | @EET_AMALGAMATION_TRUE@ @echo "# include <openssl/err.h>" >> eet_amalgamation.c | ||
811 | @EET_AMALGAMATION_TRUE@ @echo "# include <openssl/ssl.h>" >> eet_amalgamation.c | ||
812 | @EET_AMALGAMATION_TRUE@ @echo "# include <openssl/dh.h>" >> eet_amalgamation.c | ||
813 | @EET_AMALGAMATION_TRUE@ @echo "# include <openssl/dsa.h>" >> eet_amalgamation.c | ||
814 | @EET_AMALGAMATION_TRUE@ @echo "# include <openssl/evp.h>" >> eet_amalgamation.c | ||
815 | @EET_AMALGAMATION_TRUE@ @echo "# include <openssl/x509.h>" >> eet_amalgamation.c | ||
816 | @EET_AMALGAMATION_TRUE@ @echo "# include <openssl/pem.h>" >> eet_amalgamation.c | ||
817 | @EET_AMALGAMATION_TRUE@ @echo "# endif" >> eet_amalgamation.c | ||
818 | @EET_AMALGAMATION_TRUE@ @echo "#endif" >> eet_amalgamation.c | ||
819 | |||
820 | @EET_AMALGAMATION_TRUE@ @echo "#ifdef HAVE_CIPHER" >> eet_amalgamation.c | ||
821 | @EET_AMALGAMATION_TRUE@ @echo "# ifdef HAVE_GNUTLS" >> eet_amalgamation.c | ||
822 | @EET_AMALGAMATION_TRUE@ @echo "# include <gnutls/x509.h>" >> eet_amalgamation.c | ||
823 | @EET_AMALGAMATION_TRUE@ @echo "# include <gcrypt.h>" >> eet_amalgamation.c | ||
824 | @EET_AMALGAMATION_TRUE@ @echo "# else" >> eet_amalgamation.c | ||
825 | @EET_AMALGAMATION_TRUE@ @echo "# include <openssl/evp.h>" >> eet_amalgamation.c | ||
826 | @EET_AMALGAMATION_TRUE@ @echo "# include <openssl/hmac.h>" >> eet_amalgamation.c | ||
827 | @EET_AMALGAMATION_TRUE@ @echo "# include <openssl/rand.h>" >> eet_amalgamation.c | ||
828 | @EET_AMALGAMATION_TRUE@ @echo "# endif" >> eet_amalgamation.c | ||
829 | @EET_AMALGAMATION_TRUE@ @echo "#endif" >> eet_amalgamation.c | ||
830 | |||
831 | @EET_AMALGAMATION_TRUE@ @echo "#include <zlib.h>" >> eet_amalgamation.c | ||
832 | @EET_AMALGAMATION_TRUE@ @echo "#include <jpeglib.h>" >> eet_amalgamation.c | ||
833 | |||
834 | @EET_AMALGAMATION_TRUE@ @echo "#ifdef HAVE_EVIL" >> eet_amalgamation.c | ||
835 | @EET_AMALGAMATION_TRUE@ @echo "# include <Evil.h>" >> eet_amalgamation.c | ||
836 | @EET_AMALGAMATION_TRUE@ @echo "#endif" >> eet_amalgamation.c | ||
837 | |||
838 | @EET_AMALGAMATION_TRUE@ @echo "#include <Eet.h>" >> eet_amalgamation.c | ||
839 | |||
840 | @EET_AMALGAMATION_TRUE@ @echo "#include \"Eet_private.h\"" >> eet_amalgamation.c | ||
841 | @EET_AMALGAMATION_TRUE@ @echo "#include \"Eet.h\"" >> eet_amalgamation.c | ||
842 | |||
843 | @EET_AMALGAMATION_TRUE@ @for f in $(base_sources); do \ | ||
844 | @EET_AMALGAMATION_TRUE@ if [ `echo $$f | sed -e 's/^...\(.\).*/\1/'` != '/' ]; then \ | ||
845 | @EET_AMALGAMATION_TRUE@ file="$(srcdir)/$$f" ; \ | ||
846 | @EET_AMALGAMATION_TRUE@ else \ | ||
847 | @EET_AMALGAMATION_TRUE@ file="$$f" ; \ | ||
848 | @EET_AMALGAMATION_TRUE@ fi ; \ | ||
849 | @EET_AMALGAMATION_TRUE@ echo "/* file: $$file */" >> eet_amalgamation.c; \ | ||
850 | @EET_AMALGAMATION_TRUE@ grep -v -e '^# *include \+.\(config\|\|Evil\|Eina\|stdio\|string\|math\|ctype\|limits\|sys/types\|sys/stat\|sys/mman\|setjmp\|errno\|time\|fnmatch\|fcntl\|winsock2\|unistd\|netinet/in\|gnutls/gnutls\|gcrypt\|gnutls/x509\|openssl/rsa\|openssl/objects\|openssl/err\|openssl/ssl\|openssl/dh\|openssl/dsa\|openssl/evp\|openssl/pem\|openssl/sha\|openssl/hmac\|openssl/x509\|openssl/rand\|zlib\|jpeglib\|Eet_private\|Eet\)[.]h.*' $$file >> eet_amalgamation.c; \ | ||
851 | @EET_AMALGAMATION_TRUE@ done | ||
852 | @EET_AMALGAMATION_TRUE@ @echo "eet_amalgamation.c generated" | ||
853 | |||
854 | clean-local: | ||
855 | @rm -rf *.gcno eet_amalgamation.c | ||
856 | |||
857 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | ||
858 | # Otherwise a system limit (for SysV at least) may be exceeded. | ||
859 | .NOEXPORT: | ||
diff --git a/libraries/eet/src/lib/eet_alloc.c b/libraries/eet/src/lib/eet_alloc.c deleted file mode 100644 index 29e276c..0000000 --- a/libraries/eet/src/lib/eet_alloc.c +++ /dev/null | |||
@@ -1,93 +0,0 @@ | |||
1 | #ifdef HAVE_CONFIG_H | ||
2 | # include "config.h" | ||
3 | #endif | ||
4 | |||
5 | #include <Eina.h> | ||
6 | |||
7 | #include "Eet.h" | ||
8 | #include "Eet_private.h" | ||
9 | |||
10 | typedef struct _Eet_Mempool Eet_Mempool; | ||
11 | struct _Eet_Mempool | ||
12 | { | ||
13 | const char *name; | ||
14 | Eina_Mempool *mp; | ||
15 | size_t size; | ||
16 | }; | ||
17 | |||
18 | #define GENERIC_ALLOC_FREE(TYPE, Type) \ | ||
19 | Eet_Mempool Type##_mp = { #TYPE, NULL, sizeof (TYPE) }; \ | ||
20 | \ | ||
21 | TYPE * \ | ||
22 | Type##_malloc(unsigned int num) \ | ||
23 | { \ | ||
24 | return eina_mempool_malloc(Type##_mp.mp, num * sizeof (TYPE)); \ | ||
25 | } \ | ||
26 | TYPE * \ | ||
27 | Type##_calloc(unsigned int num) \ | ||
28 | { \ | ||
29 | return eina_mempool_calloc(Type##_mp.mp, num * sizeof (TYPE)); \ | ||
30 | } \ | ||
31 | void \ | ||
32 | Type##_mp_free(TYPE *e) \ | ||
33 | { \ | ||
34 | eina_mempool_free(Type##_mp.mp, e); \ | ||
35 | } | ||
36 | |||
37 | GENERIC_ALLOC_FREE(Eet_File_Directory, eet_file_directory); | ||
38 | GENERIC_ALLOC_FREE(Eet_File_Node, eet_file_node); | ||
39 | GENERIC_ALLOC_FREE(Eet_File_Header, eet_file_header); | ||
40 | GENERIC_ALLOC_FREE(Eet_Dictionary, eet_dictionary); | ||
41 | GENERIC_ALLOC_FREE(Eet_File, eet_file); | ||
42 | |||
43 | static Eet_Mempool *mempool_array[] = { | ||
44 | &eet_file_directory_mp, | ||
45 | &eet_file_node_mp, | ||
46 | &eet_file_header_mp, | ||
47 | &eet_dictionary_mp, | ||
48 | &eet_file_mp, | ||
49 | }; | ||
50 | |||
51 | Eina_Bool | ||
52 | eet_mempool_init(void) | ||
53 | { | ||
54 | const char *choice; | ||
55 | unsigned int i; | ||
56 | |||
57 | choice = getenv("EINA_MEMPOOL"); | ||
58 | if ((!choice) || (!choice[0])) | ||
59 | choice = "chained_mempool"; | ||
60 | |||
61 | for (i = 0; i < sizeof (mempool_array) / sizeof (mempool_array[0]); ++i) | ||
62 | { | ||
63 | retry: | ||
64 | mempool_array[i]->mp = eina_mempool_add(choice, mempool_array[i]->name, NULL, mempool_array[i]->size, 64); | ||
65 | if (!mempool_array[i]->mp) | ||
66 | { | ||
67 | if (!strcmp(choice, "pass_through")) | ||
68 | { | ||
69 | ERR("Falling back to pass through ! Previously tried '%s' mempool.", choice); | ||
70 | choice = "pass_through"; | ||
71 | goto retry; | ||
72 | } | ||
73 | else | ||
74 | { | ||
75 | ERR("Impossible to allocate mempool '%s' !", choice); | ||
76 | return EINA_FALSE; | ||
77 | } | ||
78 | } | ||
79 | } | ||
80 | return EINA_TRUE; | ||
81 | } | ||
82 | |||
83 | void | ||
84 | eet_mempool_shutdown(void) | ||
85 | { | ||
86 | unsigned int i; | ||
87 | |||
88 | for (i = 0; i < sizeof (mempool_array) / sizeof (mempool_array[0]); ++i) | ||
89 | { | ||
90 | eina_mempool_del(mempool_array[i]->mp); | ||
91 | mempool_array[i]->mp = NULL; | ||
92 | } | ||
93 | } | ||
diff --git a/libraries/eet/src/lib/eet_cipher.c b/libraries/eet/src/lib/eet_cipher.c deleted file mode 100644 index 2425e22..0000000 --- a/libraries/eet/src/lib/eet_cipher.c +++ /dev/null | |||
@@ -1,1387 +0,0 @@ | |||
1 | #ifdef HAVE_CONFIG_H | ||
2 | # include <config.h> | ||
3 | #endif /* ifdef HAVE_CONFIG_H */ | ||
4 | |||
5 | #ifdef HAVE_ALLOCA_H | ||
6 | # include <alloca.h> | ||
7 | #elif defined __GNUC__ | ||
8 | # define alloca __builtin_alloca | ||
9 | #elif defined _AIX | ||
10 | # define alloca __alloca | ||
11 | #elif defined _MSC_VER | ||
12 | # include <malloc.h> | ||
13 | # define alloca _alloca | ||
14 | #else /* ifdef HAVE_ALLOCA_H */ | ||
15 | # include <stddef.h> | ||
16 | # ifdef __cplusplus | ||
17 | extern "C" | ||
18 | # endif /* ifdef __cplusplus */ | ||
19 | void *alloca(size_t); | ||
20 | #endif /* ifdef HAVE_ALLOCA_H */ | ||
21 | |||
22 | #include <stdio.h> | ||
23 | #include <string.h> | ||
24 | #include <sys/types.h> | ||
25 | #include <sys/stat.h> | ||
26 | |||
27 | #ifdef HAVE_UNISTD_H | ||
28 | # include <unistd.h> | ||
29 | #endif /* ifdef HAVE_UNISTD_H */ | ||
30 | |||
31 | #ifdef HAVE_NETINET_IN_H | ||
32 | # include <netinet/in.h> | ||
33 | #endif /* ifdef HAVE_NETINET_IN_H */ | ||
34 | |||
35 | #ifdef HAVE_SIGNATURE | ||
36 | # include <sys/mman.h> | ||
37 | # ifdef HAVE_GNUTLS | ||
38 | # include <gnutls/gnutls.h> | ||
39 | # include <gnutls/x509.h> | ||
40 | # else /* ifdef HAVE_GNUTLS */ | ||
41 | # include <openssl/rsa.h> | ||
42 | # include <openssl/objects.h> | ||
43 | # include <openssl/err.h> | ||
44 | # include <openssl/ssl.h> | ||
45 | # include <openssl/dh.h> | ||
46 | # include <openssl/dsa.h> | ||
47 | # include <openssl/evp.h> | ||
48 | # include <openssl/x509.h> | ||
49 | # include <openssl/pem.h> | ||
50 | # endif /* ifdef HAVE_GNUTLS */ | ||
51 | #endif /* ifdef HAVE_SIGNATURE */ | ||
52 | |||
53 | #ifdef HAVE_OPENSSL | ||
54 | # include <openssl/sha.h> | ||
55 | #endif /* ifdef HAVE_OPENSSL */ | ||
56 | |||
57 | #ifdef HAVE_CIPHER | ||
58 | # ifdef HAVE_GNUTLS | ||
59 | # if defined EET_USE_NEW_PUBKEY_VERIFY_HASH || defined EET_USE_NEW_PRIVKEY_SIGN_DATA | ||
60 | # include <gnutls/abstract.h> | ||
61 | # endif | ||
62 | # include <gnutls/x509.h> | ||
63 | # include <gcrypt.h> | ||
64 | # else /* ifdef HAVE_GNUTLS */ | ||
65 | # include <openssl/evp.h> | ||
66 | # include <openssl/hmac.h> | ||
67 | # include <openssl/rand.h> | ||
68 | # endif /* ifdef HAVE_GNUTLS */ | ||
69 | #endif /* ifdef HAVE_CIPHER */ | ||
70 | |||
71 | #include "Eet.h" | ||
72 | #include "Eet_private.h" | ||
73 | |||
74 | #define EET_MAGIC_SIGN 0x1ee74271 | ||
75 | |||
76 | #ifdef HAVE_GNUTLS | ||
77 | # define MAX_KEY_LEN 32 | ||
78 | # define MAX_IV_LEN 16 | ||
79 | #else /* ifdef HAVE_GNUTLS */ | ||
80 | # define MAX_KEY_LEN EVP_MAX_KEY_LENGTH | ||
81 | # define MAX_IV_LEN EVP_MAX_IV_LENGTH | ||
82 | #endif /* ifdef HAVE_GNUTLS */ | ||
83 | |||
84 | #ifdef HAVE_CIPHER | ||
85 | # ifdef HAVE_GNUTLS | ||
86 | static Eet_Error | ||
87 | eet_hmac_sha1(const void *key, | ||
88 | size_t key_len, | ||
89 | const void *data, | ||
90 | size_t data_len, | ||
91 | unsigned char *res); | ||
92 | # endif /* ifdef HAVE_GNUTLS */ | ||
93 | static Eet_Error | ||
94 | eet_pbkdf2_sha1(const char *key, | ||
95 | int key_len, | ||
96 | const unsigned char *salt, | ||
97 | unsigned int salt_len, | ||
98 | int iter, | ||
99 | unsigned char *res, | ||
100 | int res_len); | ||
101 | #endif /* ifdef HAVE_CIPHER */ | ||
102 | |||
103 | struct _Eet_Key | ||
104 | { | ||
105 | int references; | ||
106 | #ifdef HAVE_SIGNATURE | ||
107 | # ifdef HAVE_GNUTLS | ||
108 | gnutls_x509_crt_t certificate; | ||
109 | gnutls_x509_privkey_t private_key; | ||
110 | # else /* ifdef HAVE_GNUTLS */ | ||
111 | X509 *certificate; | ||
112 | EVP_PKEY *private_key; | ||
113 | # endif /* ifdef HAVE_GNUTLS */ | ||
114 | #endif /* ifdef HAVE_SIGNATURE */ | ||
115 | }; | ||
116 | |||
117 | EAPI Eet_Key * | ||
118 | eet_identity_open(const char *certificate_file, | ||
119 | const char *private_key_file, | ||
120 | Eet_Key_Password_Callback cb) | ||
121 | { | ||
122 | #ifdef HAVE_SIGNATURE | ||
123 | /* Signature declarations */ | ||
124 | Eet_Key *key = NULL; | ||
125 | # ifdef HAVE_GNUTLS | ||
126 | /* Gnutls private declarations */ | ||
127 | Eina_File *f = NULL; | ||
128 | void *data = NULL; | ||
129 | gnutls_datum_t load_file = { NULL, 0 }; | ||
130 | char pass[1024]; | ||
131 | |||
132 | /* Init */ | ||
133 | if (!(key = malloc(sizeof(Eet_Key)))) | ||
134 | goto on_error; | ||
135 | |||
136 | key->references = 1; | ||
137 | |||
138 | if (gnutls_x509_crt_init(&(key->certificate))) | ||
139 | goto on_error; | ||
140 | |||
141 | if (gnutls_x509_privkey_init(&(key->private_key))) | ||
142 | goto on_error; | ||
143 | |||
144 | /* Mmap certificate_file */ | ||
145 | f = eina_file_open(certificate_file, 0); | ||
146 | if (!f) | ||
147 | goto on_error; | ||
148 | |||
149 | /* let's make mmap safe and just get 0 pages for IO erro */ | ||
150 | eina_mmap_safety_enabled_set(EINA_TRUE); | ||
151 | |||
152 | data = eina_file_map_all(f, EINA_FILE_SEQUENTIAL); | ||
153 | if (!data) goto on_error; | ||
154 | |||
155 | /* Import the certificate in Eet_Key structure */ | ||
156 | load_file.data = data; | ||
157 | load_file.size = eina_file_size_get(f); | ||
158 | if (gnutls_x509_crt_import(key->certificate, &load_file, | ||
159 | GNUTLS_X509_FMT_PEM) < 0) | ||
160 | goto on_error; | ||
161 | |||
162 | eina_file_map_free(f, data); | ||
163 | |||
164 | /* Reset values */ | ||
165 | eina_file_close(f); | ||
166 | f = NULL; | ||
167 | data = NULL; | ||
168 | load_file.data = NULL; | ||
169 | load_file.size = 0; | ||
170 | |||
171 | /* Mmap private_key_file */ | ||
172 | f = eina_file_open(private_key_file, 0); | ||
173 | if (!f) | ||
174 | goto on_error; | ||
175 | |||
176 | /* let's make mmap safe and just get 0 pages for IO erro */ | ||
177 | eina_mmap_safety_enabled_set(EINA_TRUE); | ||
178 | |||
179 | data = eina_file_map_all(f, EINA_FILE_SEQUENTIAL); | ||
180 | if (!data) | ||
181 | goto on_error; | ||
182 | |||
183 | /* Import the private key in Eet_Key structure */ | ||
184 | load_file.data = data; | ||
185 | load_file.size = eina_file_size_get(f); | ||
186 | /* Try to directly import the PEM encoded private key */ | ||
187 | if (gnutls_x509_privkey_import(key->private_key, &load_file, | ||
188 | GNUTLS_X509_FMT_PEM) < 0) | ||
189 | { | ||
190 | /* Else ask for the private key pass */ | ||
191 | if (cb && cb(pass, 1024, 0, NULL)) | ||
192 | { | ||
193 | /* If pass then try to decode the pkcs 8 private key */ | ||
194 | if (gnutls_x509_privkey_import_pkcs8(key->private_key, &load_file, | ||
195 | GNUTLS_X509_FMT_PEM, pass, 0)) | ||
196 | goto on_error; | ||
197 | } | ||
198 | else | ||
199 | /* Else try to import the pkcs 8 private key without pass */ | ||
200 | if (gnutls_x509_privkey_import_pkcs8(key->private_key, &load_file, | ||
201 | GNUTLS_X509_FMT_PEM, NULL, 1)) | ||
202 | goto on_error; | ||
203 | } | ||
204 | |||
205 | eina_file_map_free(f, data); | ||
206 | eina_file_close(f); | ||
207 | |||
208 | return key; | ||
209 | |||
210 | on_error: | ||
211 | if (data) eina_file_map_free(f, data); | ||
212 | if (f) eina_file_close(f); | ||
213 | |||
214 | if (key) | ||
215 | { | ||
216 | if (key->certificate) | ||
217 | gnutls_x509_crt_deinit(key->certificate); | ||
218 | |||
219 | if (key->private_key) | ||
220 | gnutls_x509_privkey_deinit(key->private_key); | ||
221 | |||
222 | free(key); | ||
223 | } | ||
224 | |||
225 | # else /* ifdef HAVE_GNUTLS */ | ||
226 | /* Openssl private declarations */ | ||
227 | FILE *fp; | ||
228 | EVP_PKEY *pkey = NULL; | ||
229 | X509 *cert = NULL; | ||
230 | |||
231 | /* Load the X509 certificate in memory. */ | ||
232 | fp = fopen(certificate_file, "r"); | ||
233 | if (!fp) | ||
234 | return NULL; | ||
235 | |||
236 | cert = PEM_read_X509(fp, NULL, NULL, NULL); | ||
237 | fclose(fp); | ||
238 | if (!cert) | ||
239 | goto on_error; | ||
240 | |||
241 | /* Check the presence of the public key. Just in case. */ | ||
242 | pkey = X509_get_pubkey(cert); | ||
243 | if (!pkey) | ||
244 | goto on_error; | ||
245 | |||
246 | /* Load the private key in memory. */ | ||
247 | fp = fopen(private_key_file, "r"); | ||
248 | if (!fp) | ||
249 | goto on_error; | ||
250 | |||
251 | pkey = PEM_read_PrivateKey(fp, NULL, cb, NULL); | ||
252 | fclose(fp); | ||
253 | if (!pkey) | ||
254 | goto on_error; | ||
255 | |||
256 | /* Load the certificate and the private key in Eet_Key structure */ | ||
257 | key = malloc(sizeof(Eet_Key)); | ||
258 | if (!key) | ||
259 | goto on_error; | ||
260 | |||
261 | key->references = 1; | ||
262 | key->certificate = cert; | ||
263 | key->private_key = pkey; | ||
264 | |||
265 | return key; | ||
266 | |||
267 | on_error: | ||
268 | if (cert) | ||
269 | X509_free(cert); | ||
270 | |||
271 | if (pkey) | ||
272 | EVP_PKEY_free(pkey); | ||
273 | |||
274 | # endif /* ifdef HAVE_GNUTLS */ | ||
275 | #else | ||
276 | certificate_file = NULL; | ||
277 | private_key_file = NULL; | ||
278 | cb = NULL; | ||
279 | #endif /* ifdef HAVE_SIGNATURE */ | ||
280 | return NULL; | ||
281 | } | ||
282 | |||
283 | EAPI void | ||
284 | eet_identity_close(Eet_Key *key) | ||
285 | { | ||
286 | #ifdef HAVE_SIGNATURE | ||
287 | if (!key || (key->references > 0)) | ||
288 | return; | ||
289 | |||
290 | # ifdef HAVE_GNUTLS | ||
291 | gnutls_x509_crt_deinit(key->certificate); | ||
292 | gnutls_x509_privkey_deinit(key->private_key); | ||
293 | # else /* ifdef HAVE_GNUTLS */ | ||
294 | X509_free(key->certificate); | ||
295 | EVP_PKEY_free(key->private_key); | ||
296 | # endif /* ifdef HAVE_GNUTLS */ | ||
297 | free(key); | ||
298 | #else | ||
299 | key = NULL; | ||
300 | #endif /* ifdef HAVE_SIGNATURE */ | ||
301 | } | ||
302 | |||
303 | EAPI void | ||
304 | eet_identity_print(Eet_Key *key, | ||
305 | FILE *out) | ||
306 | { | ||
307 | #ifdef HAVE_SIGNATURE | ||
308 | # ifdef HAVE_GNUTLS | ||
309 | const char *names[6] = { | ||
310 | "Modulus", | ||
311 | "Public exponent", | ||
312 | "Private exponent", | ||
313 | "First prime", | ||
314 | "Second prime", | ||
315 | "Coefficient" | ||
316 | }; | ||
317 | int err = 0; | ||
318 | gnutls_datum_t data = { NULL, 0 }; | ||
319 | gnutls_datum_t rsa_raw[6]; | ||
320 | size_t size = 128; | ||
321 | char *res = NULL; | ||
322 | char buf[33]; | ||
323 | unsigned int i, j; | ||
324 | |||
325 | if (!key) | ||
326 | return; | ||
327 | |||
328 | if (key->private_key) | ||
329 | { | ||
330 | if (gnutls_x509_privkey_export_rsa_raw(key->private_key, | ||
331 | rsa_raw + 0, /* Modulus */ | ||
332 | rsa_raw + 1, /* Public exponent */ | ||
333 | rsa_raw + 2, /* Private exponent */ | ||
334 | rsa_raw + 3, /* First prime */ | ||
335 | rsa_raw + 4, /* Second prime */ | ||
336 | rsa_raw + 5)) /* Coefficient */ | ||
337 | goto on_error; | ||
338 | |||
339 | if (!(res = malloc(size))) | ||
340 | goto on_error; | ||
341 | |||
342 | fprintf(out, "Private Key:\n"); | ||
343 | buf[32] = '\0'; | ||
344 | |||
345 | for (i = 0; i < 6; i++) | ||
346 | { | ||
347 | while ((err = gnutls_hex_encode(rsa_raw + i, res, &size)) == | ||
348 | GNUTLS_E_SHORT_MEMORY_BUFFER) | ||
349 | { | ||
350 | size += 128; | ||
351 | if (!(res = realloc(res, size))) | ||
352 | goto on_error; | ||
353 | } | ||
354 | if (err) | ||
355 | goto on_error; | ||
356 | |||
357 | fprintf(out, "\t%s:\n", names[i]); | ||
358 | for (j = 0; strlen(res) > j; j += 32) | ||
359 | { | ||
360 | snprintf(buf, 32, "%s", res + j); | ||
361 | fprintf(out, "\t\t%s\n", buf); | ||
362 | } | ||
363 | } | ||
364 | free(res); | ||
365 | res = NULL; | ||
366 | } | ||
367 | |||
368 | if (key->certificate) | ||
369 | { | ||
370 | fprintf(out, "Public certificate:\n"); | ||
371 | if (gnutls_x509_crt_print(key->certificate, GNUTLS_X509_CRT_FULL, | ||
372 | &data)) | ||
373 | goto on_error; | ||
374 | |||
375 | fprintf(out, "%s\n", data.data); | ||
376 | gnutls_free(data.data); | ||
377 | data.data = NULL; | ||
378 | } | ||
379 | |||
380 | on_error: | ||
381 | if (res) | ||
382 | free(res); | ||
383 | |||
384 | if (data.data) | ||
385 | gnutls_free(data.data); | ||
386 | |||
387 | return; | ||
388 | # else /* ifdef HAVE_GNUTLS */ | ||
389 | RSA *rsa; | ||
390 | DSA *dsa; | ||
391 | DH *dh; | ||
392 | |||
393 | if (!key) | ||
394 | return; | ||
395 | |||
396 | rsa = EVP_PKEY_get1_RSA(key->private_key); | ||
397 | if (rsa) | ||
398 | { | ||
399 | fprintf(out, "Private key (RSA):\n"); | ||
400 | RSA_print_fp(out, rsa, 0); | ||
401 | } | ||
402 | |||
403 | dsa = EVP_PKEY_get1_DSA(key->private_key); | ||
404 | if (dsa) | ||
405 | { | ||
406 | fprintf(out, "Private key (DSA):\n"); | ||
407 | DSA_print_fp(out, dsa, 0); | ||
408 | } | ||
409 | |||
410 | dh = EVP_PKEY_get1_DH(key->private_key); | ||
411 | if (dh) | ||
412 | { | ||
413 | fprintf(out, "Private key (DH):\n"); | ||
414 | DHparams_print_fp(out, dh); | ||
415 | } | ||
416 | |||
417 | fprintf(out, "Public certificate:\n"); | ||
418 | X509_print_fp(out, key->certificate); | ||
419 | # endif /* ifdef HAVE_GNUTLS */ | ||
420 | #else /* ifdef HAVE_SIGNATURE */ | ||
421 | key = NULL; | ||
422 | out = NULL; | ||
423 | ERR("You need to compile signature support in EET."); | ||
424 | #endif /* ifdef HAVE_SIGNATURE */ | ||
425 | } | ||
426 | |||
427 | void | ||
428 | eet_identity_ref(Eet_Key *key) | ||
429 | { | ||
430 | if (!key) | ||
431 | return; | ||
432 | |||
433 | key->references++; | ||
434 | } | ||
435 | |||
436 | void | ||
437 | eet_identity_unref(Eet_Key *key) | ||
438 | { | ||
439 | if (!key) | ||
440 | return; | ||
441 | |||
442 | key->references--; | ||
443 | eet_identity_close(key); | ||
444 | } | ||
445 | |||
446 | void * | ||
447 | eet_identity_compute_sha1(const void *data_base, | ||
448 | unsigned int data_length, | ||
449 | int *sha1_length) | ||
450 | { | ||
451 | void *result; | ||
452 | |||
453 | #ifdef HAVE_SIGNATURE | ||
454 | # ifdef HAVE_GNUTLS | ||
455 | result = malloc(gcry_md_get_algo_dlen(GCRY_MD_SHA1)); | ||
456 | if (!result) | ||
457 | return NULL; | ||
458 | |||
459 | gcry_md_hash_buffer(GCRY_MD_SHA1, result, data_base, data_length); | ||
460 | if (sha1_length) | ||
461 | *sha1_length = gcry_md_get_algo_dlen(GCRY_MD_SHA1); | ||
462 | |||
463 | # else /* ifdef HAVE_GNUTLS */ | ||
464 | # ifdef HAVE_OPENSSL | ||
465 | result = malloc(SHA_DIGEST_LENGTH); | ||
466 | if (!result) | ||
467 | return NULL; | ||
468 | |||
469 | SHA1(data_base, data_length, result); | ||
470 | if (sha1_length) | ||
471 | *sha1_length = SHA_DIGEST_LENGTH; | ||
472 | |||
473 | # else /* ifdef HAVE_OPENSSL */ | ||
474 | result = NULL; | ||
475 | # endif /* ifdef HAVE_OPENSSL */ | ||
476 | # endif /* ifdef HAVE_GNUTLS */ | ||
477 | #else /* ifdef HAVE_SIGNATURE */ | ||
478 | data_base = NULL; | ||
479 | data_length = 0; | ||
480 | sha1_length = NULL; | ||
481 | result = NULL; | ||
482 | #endif /* ifdef HAVE_SIGNATURE */ | ||
483 | |||
484 | return result; | ||
485 | } | ||
486 | |||
487 | Eet_Error | ||
488 | eet_identity_sign(FILE *fp, | ||
489 | Eet_Key *key) | ||
490 | { | ||
491 | #ifdef HAVE_SIGNATURE | ||
492 | Eet_Error err = EET_ERROR_NONE; | ||
493 | struct stat st_buf; | ||
494 | void *data; | ||
495 | int fd; | ||
496 | int head[3]; | ||
497 | unsigned char *sign = NULL; | ||
498 | unsigned char *cert = NULL; | ||
499 | # ifdef HAVE_GNUTLS | ||
500 | gnutls_datum_t datum = { NULL, 0 }; | ||
501 | size_t sign_len = 0; | ||
502 | size_t cert_len = 0; | ||
503 | #ifdef EET_USE_NEW_PRIVKEY_SIGN_DATA | ||
504 | gnutls_datum_t signum = { NULL, 0 }; | ||
505 | gnutls_privkey_t privkey; | ||
506 | #endif | ||
507 | # else /* ifdef HAVE_GNUTLS */ | ||
508 | EVP_MD_CTX md_ctx; | ||
509 | unsigned int sign_len = 0; | ||
510 | int cert_len = 0; | ||
511 | # endif /* ifdef HAVE_GNUTLS */ | ||
512 | |||
513 | /* A few check and flush pending write. */ | ||
514 | if (!fp || !key || !key->certificate || !key->private_key) | ||
515 | return EET_ERROR_BAD_OBJECT; | ||
516 | |||
517 | /* Get the file size. */ | ||
518 | fd = fileno(fp); | ||
519 | if (fd < 0) | ||
520 | return EET_ERROR_BAD_OBJECT; | ||
521 | |||
522 | if (fstat(fd, &st_buf) < 0) | ||
523 | return EET_ERROR_MMAP_FAILED; | ||
524 | |||
525 | /* let's make mmap safe and just get 0 pages for IO erro */ | ||
526 | eina_mmap_safety_enabled_set(EINA_TRUE); | ||
527 | |||
528 | /* Map the file in memory. */ | ||
529 | data = mmap(NULL, st_buf.st_size, PROT_READ, MAP_PRIVATE, fd, 0); | ||
530 | if (data == MAP_FAILED) | ||
531 | return EET_ERROR_MMAP_FAILED; | ||
532 | |||
533 | # ifdef HAVE_GNUTLS | ||
534 | datum.data = data; | ||
535 | datum.size = st_buf.st_size; | ||
536 | |||
537 | /* Get the signature length */ | ||
538 | #ifdef EET_USE_NEW_PRIVKEY_SIGN_DATA | ||
539 | if (gnutls_privkey_init(&privkey) < 0) | ||
540 | { | ||
541 | err = EET_ERROR_SIGNATURE_FAILED; | ||
542 | goto on_error; | ||
543 | } | ||
544 | |||
545 | if (gnutls_privkey_import_x509(privkey, key->private_key, 0) < 0) | ||
546 | { | ||
547 | err = EET_ERROR_SIGNATURE_FAILED; | ||
548 | goto on_error; | ||
549 | } | ||
550 | |||
551 | if (gnutls_privkey_sign_data(privkey, GNUTLS_DIG_SHA1, 0, &datum, &signum) < 0) | ||
552 | { | ||
553 | err = EET_ERROR_SIGNATURE_FAILED; | ||
554 | goto on_error; | ||
555 | } | ||
556 | |||
557 | sign = signum.data; | ||
558 | sign_len = signum.size; | ||
559 | #else | ||
560 | if (gnutls_x509_privkey_sign_data(key->private_key, GNUTLS_DIG_SHA1, 0, | ||
561 | &datum, sign, &sign_len) && | ||
562 | !sign_len) | ||
563 | { | ||
564 | err = EET_ERROR_SIGNATURE_FAILED; | ||
565 | goto on_error; | ||
566 | } | ||
567 | |||
568 | /* Get the signature */ | ||
569 | sign = malloc(sign_len); | ||
570 | if (!sign || | ||
571 | gnutls_x509_privkey_sign_data(key->private_key, GNUTLS_DIG_SHA1, 0, | ||
572 | &datum, | ||
573 | sign, &sign_len)) | ||
574 | { | ||
575 | if (!sign) | ||
576 | err = EET_ERROR_OUT_OF_MEMORY; | ||
577 | else | ||
578 | err = EET_ERROR_SIGNATURE_FAILED; | ||
579 | |||
580 | goto on_error; | ||
581 | } | ||
582 | #endif | ||
583 | |||
584 | /* Get the certificate length */ | ||
585 | if (gnutls_x509_crt_export(key->certificate, GNUTLS_X509_FMT_DER, cert, | ||
586 | &cert_len) && | ||
587 | !cert_len) | ||
588 | { | ||
589 | err = EET_ERROR_SIGNATURE_FAILED; | ||
590 | goto on_error; | ||
591 | } | ||
592 | |||
593 | /* Get the certificate */ | ||
594 | cert = malloc(cert_len); | ||
595 | if (!cert || | ||
596 | gnutls_x509_crt_export(key->certificate, GNUTLS_X509_FMT_DER, cert, | ||
597 | &cert_len)) | ||
598 | { | ||
599 | if (!cert) | ||
600 | err = EET_ERROR_OUT_OF_MEMORY; | ||
601 | else | ||
602 | err = EET_ERROR_SIGNATURE_FAILED; | ||
603 | |||
604 | goto on_error; | ||
605 | } | ||
606 | |||
607 | # else /* ifdef HAVE_GNUTLS */ | ||
608 | sign_len = EVP_PKEY_size(key->private_key); | ||
609 | sign = malloc(sign_len); | ||
610 | if (!sign) | ||
611 | { | ||
612 | err = EET_ERROR_OUT_OF_MEMORY; | ||
613 | goto on_error; | ||
614 | } | ||
615 | |||
616 | /* Do the signature. */ | ||
617 | EVP_SignInit(&md_ctx, EVP_sha1()); | ||
618 | EVP_SignUpdate(&md_ctx, data, st_buf.st_size); | ||
619 | err = EVP_SignFinal(&md_ctx, | ||
620 | sign, | ||
621 | (unsigned int *)&sign_len, | ||
622 | key->private_key); | ||
623 | if (err != 1) | ||
624 | { | ||
625 | ERR_print_errors_fp(stdout); | ||
626 | err = EET_ERROR_SIGNATURE_FAILED; | ||
627 | goto on_error; | ||
628 | } | ||
629 | |||
630 | /* Give me the der (binary form for X509). */ | ||
631 | cert_len = i2d_X509(key->certificate, &cert); | ||
632 | if (cert_len < 0) | ||
633 | { | ||
634 | ERR_print_errors_fp(stdout); | ||
635 | err = EET_ERROR_X509_ENCODING_FAILED; | ||
636 | goto on_error; | ||
637 | } | ||
638 | |||
639 | # endif /* ifdef HAVE_GNUTLS */ | ||
640 | /* Append the signature at the end of the file. */ | ||
641 | head[0] = (int)htonl ((unsigned int)EET_MAGIC_SIGN); | ||
642 | head[1] = (int)htonl ((unsigned int)sign_len); | ||
643 | head[2] = (int)htonl ((unsigned int)cert_len); | ||
644 | |||
645 | if (fwrite(head, sizeof(head), 1, fp) != 1) | ||
646 | { | ||
647 | err = EET_ERROR_WRITE_ERROR; | ||
648 | goto on_error; | ||
649 | } | ||
650 | |||
651 | if (fwrite(sign, sign_len, 1, fp) != 1) | ||
652 | { | ||
653 | err = EET_ERROR_WRITE_ERROR; | ||
654 | goto on_error; | ||
655 | } | ||
656 | |||
657 | if (fwrite(cert, cert_len, 1, fp) != 1) | ||
658 | { | ||
659 | err = EET_ERROR_WRITE_ERROR; | ||
660 | goto on_error; | ||
661 | } | ||
662 | |||
663 | on_error: | ||
664 | # ifdef HAVE_GNUTLS | ||
665 | if (cert) | ||
666 | free(cert); | ||
667 | |||
668 | # else /* ifdef HAVE_GNUTLS */ | ||
669 | if (cert) | ||
670 | OPENSSL_free(cert); | ||
671 | |||
672 | # endif /* ifdef HAVE_GNUTLS */ | ||
673 | if (sign) | ||
674 | free(sign); | ||
675 | |||
676 | munmap(data, st_buf.st_size); | ||
677 | return err; | ||
678 | #else /* ifdef HAVE_SIGNATURE */ | ||
679 | fp = NULL; | ||
680 | key = NULL; | ||
681 | return EET_ERROR_NOT_IMPLEMENTED; | ||
682 | #endif /* ifdef HAVE_SIGNATURE */ | ||
683 | } | ||
684 | |||
685 | const void * | ||
686 | eet_identity_check(const void *data_base, | ||
687 | unsigned int data_length, | ||
688 | void **sha1, | ||
689 | int *sha1_length, | ||
690 | const void *signature_base, | ||
691 | unsigned int signature_length, | ||
692 | const void **raw_signature_base, | ||
693 | unsigned int *raw_signature_length, | ||
694 | int *x509_length) | ||
695 | { | ||
696 | #ifdef HAVE_SIGNATURE | ||
697 | const int *header = signature_base; | ||
698 | const unsigned char *sign; | ||
699 | const unsigned char *cert_der; | ||
700 | int sign_len; | ||
701 | int cert_len; | ||
702 | int magic; | ||
703 | |||
704 | /* At least the header size */ | ||
705 | if (signature_length < sizeof(int) * 3) | ||
706 | return NULL; | ||
707 | |||
708 | /* Get the header */ | ||
709 | magic = ntohl(header[0]); | ||
710 | sign_len = ntohl(header[1]); | ||
711 | cert_len = ntohl(header[2]); | ||
712 | |||
713 | /* Verify the header */ | ||
714 | if (magic != EET_MAGIC_SIGN) | ||
715 | return NULL; | ||
716 | |||
717 | if (sign_len + cert_len + sizeof(int) * 3 > signature_length) | ||
718 | return NULL; | ||
719 | |||
720 | /* Update the signature and certificate pointer */ | ||
721 | sign = (unsigned char *)signature_base + sizeof(int) * 3; | ||
722 | cert_der = sign + sign_len; | ||
723 | |||
724 | # ifdef HAVE_GNUTLS | ||
725 | gnutls_x509_crt_t cert; | ||
726 | gnutls_datum_t datum; | ||
727 | gnutls_datum_t signature; | ||
728 | # if EET_USE_NEW_GNUTLS_API | ||
729 | # if EET_USE_NEW_PUBKEY_VERIFY_HASH | ||
730 | gnutls_pubkey_t pubkey; | ||
731 | gnutls_digest_algorithm_t hash_algo; | ||
732 | # endif | ||
733 | unsigned char *hash; | ||
734 | gcry_md_hd_t md; | ||
735 | int err; | ||
736 | # endif /* if EET_USE_NEW_GNUTLS_API */ | ||
737 | |||
738 | /* Create an understanding certificate structure for gnutls */ | ||
739 | datum.data = (void *)cert_der; | ||
740 | datum.size = cert_len; | ||
741 | gnutls_x509_crt_init(&cert); | ||
742 | gnutls_x509_crt_import(cert, &datum, GNUTLS_X509_FMT_DER); | ||
743 | |||
744 | signature.data = (void *)sign; | ||
745 | signature.size = sign_len; | ||
746 | |||
747 | /* Verify the signature */ | ||
748 | # if EET_USE_NEW_GNUTLS_API | ||
749 | /* | ||
750 | I am waiting for my patch being accepted in GnuTLS release. | ||
751 | But we now have a way to prevent double computation of SHA1. | ||
752 | */ | ||
753 | err = gcry_md_open (&md, GCRY_MD_SHA1, 0); | ||
754 | if (err < 0) | ||
755 | return NULL; | ||
756 | |||
757 | gcry_md_write(md, data_base, data_length); | ||
758 | |||
759 | hash = gcry_md_read(md, GCRY_MD_SHA1); | ||
760 | if (!hash) | ||
761 | goto on_error; | ||
762 | |||
763 | datum.size = gcry_md_get_algo_dlen(GCRY_MD_SHA1); | ||
764 | datum.data = hash; | ||
765 | |||
766 | # ifdef EET_USE_NEW_PUBKEY_VERIFY_HASH | ||
767 | if (gnutls_pubkey_init(&pubkey) < 0) | ||
768 | goto on_error; | ||
769 | |||
770 | if (gnutls_pubkey_import_x509(pubkey, cert, 0) < 0) | ||
771 | goto on_error; | ||
772 | |||
773 | if (gnutls_pubkey_get_verify_algorithm(pubkey, &signature, &hash_algo) < 0) | ||
774 | goto on_error; | ||
775 | |||
776 | if (gnutls_pubkey_verify_hash(pubkey, 0, &datum, &signature) < 0) | ||
777 | goto on_error; | ||
778 | # else | ||
779 | if (!gnutls_x509_crt_verify_hash(cert, 0, &datum, &signature)) | ||
780 | goto on_error; | ||
781 | # endif | ||
782 | |||
783 | if (sha1) | ||
784 | { | ||
785 | *sha1 = malloc(datum.size); | ||
786 | if (!*sha1) goto on_error; | ||
787 | |||
788 | memcpy(*sha1, hash, datum.size); | ||
789 | *sha1_length = datum.size; | ||
790 | } | ||
791 | |||
792 | gcry_md_close(md); | ||
793 | # else /* if EET_USE_NEW_GNUTLS_API */ | ||
794 | datum.data = (void *)data_base; | ||
795 | datum.size = data_length; | ||
796 | |||
797 | if (!gnutls_x509_crt_verify_data(cert, 0, &datum, &signature)) | ||
798 | return NULL; | ||
799 | |||
800 | if (sha1) | ||
801 | { | ||
802 | *sha1 = NULL; | ||
803 | *sha1_length = -1; | ||
804 | } | ||
805 | |||
806 | # endif /* if EET_USE_NEW_GNUTLS_API */ | ||
807 | gnutls_x509_crt_deinit(cert); | ||
808 | |||
809 | # else /* ifdef HAVE_GNUTLS */ | ||
810 | const unsigned char *tmp; | ||
811 | EVP_PKEY *pkey; | ||
812 | X509 *x509; | ||
813 | EVP_MD_CTX md_ctx; | ||
814 | int err; | ||
815 | |||
816 | /* Strange but d2i_X509 seems to put 0 all over the place. */ | ||
817 | tmp = alloca(cert_len); | ||
818 | memcpy((char *)tmp, cert_der, cert_len); | ||
819 | x509 = d2i_X509(NULL, &tmp, cert_len); | ||
820 | if (!x509) | ||
821 | return NULL; | ||
822 | |||
823 | /* Get public key - eay */ | ||
824 | pkey = X509_get_pubkey(x509); | ||
825 | if (!pkey) | ||
826 | { | ||
827 | X509_free(x509); | ||
828 | return NULL; | ||
829 | } | ||
830 | |||
831 | /* Verify the signature */ | ||
832 | EVP_VerifyInit(&md_ctx, EVP_sha1()); | ||
833 | EVP_VerifyUpdate(&md_ctx, data_base, data_length); | ||
834 | err = EVP_VerifyFinal(&md_ctx, sign, sign_len, pkey); | ||
835 | |||
836 | X509_free(x509); | ||
837 | EVP_PKEY_free(pkey); | ||
838 | |||
839 | if (sha1) | ||
840 | { | ||
841 | *sha1 = NULL; | ||
842 | *sha1_length = -1; | ||
843 | } | ||
844 | |||
845 | if (err != 1) | ||
846 | return NULL; | ||
847 | |||
848 | # endif /* ifdef HAVE_GNUTLS */ | ||
849 | if (x509_length) | ||
850 | *x509_length = cert_len; | ||
851 | |||
852 | if (raw_signature_base) | ||
853 | *raw_signature_base = sign; | ||
854 | |||
855 | if (raw_signature_length) | ||
856 | *raw_signature_length = sign_len; | ||
857 | |||
858 | return cert_der; | ||
859 | # ifdef HAVE_GNUTLS | ||
860 | # if EET_USE_NEW_GNUTLS_API | ||
861 | on_error: | ||
862 | gcry_md_close(md); | ||
863 | return NULL; | ||
864 | # endif | ||
865 | # endif | ||
866 | #else /* ifdef HAVE_SIGNATURE */ | ||
867 | data_base = NULL; | ||
868 | data_length = 0; | ||
869 | sha1 = NULL; | ||
870 | sha1_length = NULL; | ||
871 | signature_base = NULL; | ||
872 | signature_length = 0; | ||
873 | raw_signature_base = NULL; | ||
874 | raw_signature_length = NULL; | ||
875 | x509_length = NULL; | ||
876 | return NULL; | ||
877 | #endif /* ifdef HAVE_SIGNATURE */ | ||
878 | } | ||
879 | |||
880 | EAPI void | ||
881 | eet_identity_certificate_print(const unsigned char *certificate, | ||
882 | int der_length, | ||
883 | FILE *out) | ||
884 | { | ||
885 | #ifdef HAVE_SIGNATURE | ||
886 | if (!certificate || !out || der_length <= 0) | ||
887 | { | ||
888 | ERR("No certificate provided."); | ||
889 | return; | ||
890 | } | ||
891 | |||
892 | # ifdef HAVE_GNUTLS | ||
893 | gnutls_datum_t datum; | ||
894 | gnutls_x509_crt_t cert; | ||
895 | |||
896 | /* Create an understanding certificate structure for gnutls */ | ||
897 | datum.data = (void *)certificate; | ||
898 | datum.size = der_length; | ||
899 | if (gnutls_x509_crt_init(&cert)) | ||
900 | goto on_error; | ||
901 | |||
902 | if (gnutls_x509_crt_import(cert, &datum, GNUTLS_X509_FMT_DER)) | ||
903 | goto on_error; | ||
904 | |||
905 | /* Pretty print the certificate */ | ||
906 | datum.data = NULL; | ||
907 | datum.size = 0; | ||
908 | if (gnutls_x509_crt_print(cert, GNUTLS_X509_CRT_FULL, &datum)) | ||
909 | goto on_error; | ||
910 | |||
911 | INF("Public certificate :"); | ||
912 | INF("%s", datum.data); | ||
913 | |||
914 | on_error: | ||
915 | if (datum.data) | ||
916 | gnutls_free(datum.data); | ||
917 | |||
918 | gnutls_x509_crt_deinit(cert); | ||
919 | # else /* ifdef HAVE_GNUTLS */ | ||
920 | const unsigned char *tmp; | ||
921 | X509 *x509; | ||
922 | |||
923 | /* Strange but d2i_X509 seems to put 0 all over the place. */ | ||
924 | tmp = alloca(der_length); | ||
925 | memcpy((char *)tmp, certificate, der_length); | ||
926 | x509 = d2i_X509(NULL, &tmp, der_length); | ||
927 | if (!x509) | ||
928 | { | ||
929 | INF("Not a valid certificate."); | ||
930 | return; | ||
931 | } | ||
932 | |||
933 | INF("Public certificate :"); | ||
934 | X509_print_fp(out, x509); | ||
935 | |||
936 | X509_free(x509); | ||
937 | # endif /* ifdef HAVE_GNUTLS */ | ||
938 | #else /* ifdef HAVE_SIGNATURE */ | ||
939 | certificate = NULL; | ||
940 | der_length = 0; | ||
941 | out = NULL; | ||
942 | ERR("You need to compile signature support in EET."); | ||
943 | #endif /* ifdef HAVE_SIGNATURE */ | ||
944 | } | ||
945 | |||
946 | Eet_Error | ||
947 | eet_cipher(const void *data, | ||
948 | unsigned int size, | ||
949 | const char *key, | ||
950 | unsigned int length, | ||
951 | void **result, | ||
952 | unsigned int *result_length) | ||
953 | { | ||
954 | #ifdef HAVE_CIPHER | ||
955 | /* Cipher declarations */ | ||
956 | unsigned int *ret = NULL; | ||
957 | unsigned char iv[MAX_IV_LEN]; | ||
958 | unsigned char ik[MAX_KEY_LEN]; | ||
959 | unsigned char key_material[MAX_IV_LEN + MAX_KEY_LEN]; | ||
960 | unsigned int salt; | ||
961 | unsigned int tmp = 0; | ||
962 | int crypted_length; | ||
963 | int opened = 0; | ||
964 | # ifdef HAVE_GNUTLS | ||
965 | /* Gcrypt declarations */ | ||
966 | gcry_error_t err = 0; | ||
967 | gcry_cipher_hd_t cipher; | ||
968 | # else /* ifdef HAVE_GNUTLS */ | ||
969 | /* Openssl declarations*/ | ||
970 | EVP_CIPHER_CTX ctx; | ||
971 | unsigned int *buffer; | ||
972 | int tmp_len; | ||
973 | # endif /* ifdef HAVE_GNUTLS */ | ||
974 | |||
975 | # ifdef HAVE_GNUTLS | ||
976 | /* Gcrypt salt generation */ | ||
977 | gcry_create_nonce((unsigned char *)&salt, sizeof(salt)); | ||
978 | # else /* ifdef HAVE_GNUTLS */ | ||
979 | /* Openssl salt generation */ | ||
980 | if (!RAND_bytes((unsigned char *)&salt, sizeof (unsigned int))) | ||
981 | return EET_ERROR_PRNG_NOT_SEEDED; | ||
982 | |||
983 | # endif /* ifdef HAVE_GNUTLS */ | ||
984 | |||
985 | eet_pbkdf2_sha1(key, | ||
986 | length, | ||
987 | (unsigned char *)&salt, | ||
988 | sizeof(unsigned int), | ||
989 | 2048, | ||
990 | key_material, | ||
991 | MAX_KEY_LEN + MAX_IV_LEN); | ||
992 | |||
993 | memcpy(iv, key_material, MAX_IV_LEN); | ||
994 | memcpy(ik, key_material + MAX_IV_LEN, MAX_KEY_LEN); | ||
995 | |||
996 | memset(key_material, 0, sizeof (key_material)); | ||
997 | |||
998 | crypted_length = ((((size + sizeof (unsigned int)) >> 5) + 1) << 5); | ||
999 | ret = malloc(crypted_length + sizeof(unsigned int)); | ||
1000 | if (!ret) | ||
1001 | { | ||
1002 | memset(iv, 0, sizeof (iv)); | ||
1003 | memset(ik, 0, sizeof (ik)); | ||
1004 | memset(&salt, 0, sizeof (salt)); | ||
1005 | return EET_ERROR_OUT_OF_MEMORY; | ||
1006 | } | ||
1007 | |||
1008 | *ret = salt; | ||
1009 | memset(&salt, 0, sizeof (salt)); | ||
1010 | tmp = htonl(size); | ||
1011 | |||
1012 | # ifdef HAVE_GNUTLS | ||
1013 | *(ret + 1) = tmp; | ||
1014 | memcpy(ret + 2, data, size); | ||
1015 | |||
1016 | /* Gcrypt create the corresponding cipher | ||
1017 | AES with a 256 bit key, Cipher Block Chaining mode */ | ||
1018 | err = gcry_cipher_open(&cipher, GCRY_CIPHER_AES256, GCRY_CIPHER_MODE_CBC, 0); | ||
1019 | if (err) | ||
1020 | goto on_error; | ||
1021 | |||
1022 | opened = 1; | ||
1023 | err = gcry_cipher_setiv(cipher, iv, MAX_IV_LEN); | ||
1024 | if (err) | ||
1025 | goto on_error; | ||
1026 | |||
1027 | err = gcry_cipher_setkey(cipher, ik, MAX_KEY_LEN); | ||
1028 | if (err) | ||
1029 | goto on_error; | ||
1030 | |||
1031 | memset(iv, 0, sizeof (iv)); | ||
1032 | memset(ik, 0, sizeof (ik)); | ||
1033 | |||
1034 | /* Gcrypt encrypt */ | ||
1035 | err = gcry_cipher_encrypt(cipher, | ||
1036 | (unsigned char *)(ret + 1), | ||
1037 | crypted_length, | ||
1038 | NULL, | ||
1039 | 0); | ||
1040 | if (err) | ||
1041 | goto on_error; | ||
1042 | |||
1043 | /* Gcrypt close the cipher */ | ||
1044 | gcry_cipher_close(cipher); | ||
1045 | # else /* ifdef HAVE_GNUTLS */ | ||
1046 | buffer = alloca(crypted_length); | ||
1047 | *buffer = tmp; | ||
1048 | |||
1049 | memcpy(buffer + 1, data, size); | ||
1050 | |||
1051 | /* Openssl create the corresponding cipher | ||
1052 | AES with a 256 bit key, Cipher Block Chaining mode */ | ||
1053 | EVP_CIPHER_CTX_init(&ctx); | ||
1054 | if (!EVP_EncryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, ik, iv)) | ||
1055 | goto on_error; | ||
1056 | |||
1057 | opened = 1; | ||
1058 | |||
1059 | memset(iv, 0, sizeof (iv)); | ||
1060 | memset(ik, 0, sizeof (ik)); | ||
1061 | |||
1062 | /* Openssl encrypt */ | ||
1063 | if (!EVP_EncryptUpdate(&ctx, (unsigned char *)(ret + 1), &tmp_len, | ||
1064 | (unsigned char *)buffer, | ||
1065 | size + sizeof(unsigned int))) | ||
1066 | goto on_error; | ||
1067 | |||
1068 | /* Openssl close the cipher */ | ||
1069 | if (!EVP_EncryptFinal_ex(&ctx, ((unsigned char *)(ret + 1)) + tmp_len, | ||
1070 | &tmp_len)) | ||
1071 | goto on_error; | ||
1072 | |||
1073 | EVP_CIPHER_CTX_cleanup(&ctx); | ||
1074 | # endif /* ifdef HAVE_GNUTLS */ | ||
1075 | |||
1076 | /* Set return values */ | ||
1077 | if (result_length) | ||
1078 | *result_length = crypted_length + sizeof(unsigned int); | ||
1079 | |||
1080 | if (result) | ||
1081 | *result = ret; | ||
1082 | else | ||
1083 | free(ret); | ||
1084 | |||
1085 | return EET_ERROR_NONE; | ||
1086 | |||
1087 | on_error: | ||
1088 | memset(iv, 0, sizeof (iv)); | ||
1089 | memset(ik, 0, sizeof (ik)); | ||
1090 | |||
1091 | # ifdef HAVE_GNUTLS | ||
1092 | /* Gcrypt error */ | ||
1093 | if (opened) | ||
1094 | gcry_cipher_close(cipher); | ||
1095 | |||
1096 | # else /* ifdef HAVE_GNUTLS */ | ||
1097 | /* Openssl error */ | ||
1098 | if (opened) | ||
1099 | EVP_CIPHER_CTX_cleanup(&ctx); | ||
1100 | |||
1101 | # endif /* ifdef HAVE_GNUTLS */ | ||
1102 | /* General error */ | ||
1103 | free(ret); | ||
1104 | if (result) | ||
1105 | *result = NULL; | ||
1106 | |||
1107 | if (result_length) | ||
1108 | *result_length = 0; | ||
1109 | |||
1110 | return EET_ERROR_ENCRYPT_FAILED; | ||
1111 | #else /* ifdef HAVE_CIPHER */ | ||
1112 | /* Cipher not supported */ | ||
1113 | (void)data; | ||
1114 | (void)size; | ||
1115 | (void)key; | ||
1116 | (void)length; | ||
1117 | (void)result; | ||
1118 | (void)result_length; | ||
1119 | return EET_ERROR_NOT_IMPLEMENTED; | ||
1120 | #endif /* ifdef HAVE_CIPHER */ | ||
1121 | } | ||
1122 | |||
1123 | Eet_Error | ||
1124 | eet_decipher(const void *data, | ||
1125 | unsigned int size, | ||
1126 | const char *key, | ||
1127 | unsigned int length, | ||
1128 | void **result, | ||
1129 | unsigned int *result_length) | ||
1130 | { | ||
1131 | #ifdef HAVE_CIPHER | ||
1132 | const unsigned int *over = data; | ||
1133 | unsigned int *ret = NULL; | ||
1134 | unsigned char ik[MAX_KEY_LEN]; | ||
1135 | unsigned char iv[MAX_IV_LEN]; | ||
1136 | unsigned char key_material[MAX_KEY_LEN + MAX_IV_LEN]; | ||
1137 | unsigned int salt; | ||
1138 | int tmp_len; | ||
1139 | int tmp = 0; | ||
1140 | |||
1141 | /* At least the salt and an AES block */ | ||
1142 | if (size < sizeof(unsigned int) + 16) | ||
1143 | return EET_ERROR_BAD_OBJECT; | ||
1144 | |||
1145 | /* Get the salt */ | ||
1146 | salt = *over; | ||
1147 | |||
1148 | /* Generate the iv and the key with the salt */ | ||
1149 | eet_pbkdf2_sha1(key, length, (unsigned char *)&salt, | ||
1150 | sizeof(unsigned int), 2048, key_material, | ||
1151 | MAX_KEY_LEN + MAX_IV_LEN); | ||
1152 | |||
1153 | memcpy(iv, key_material, MAX_IV_LEN); | ||
1154 | memcpy(ik, key_material + MAX_IV_LEN, MAX_KEY_LEN); | ||
1155 | |||
1156 | memset(key_material, 0, sizeof (key_material)); | ||
1157 | memset(&salt, 0, sizeof (salt)); | ||
1158 | |||
1159 | /* Align to AES block size if size is not align */ | ||
1160 | tmp_len = size - sizeof (unsigned int); | ||
1161 | if ((tmp_len & 0x1F) != 0) | ||
1162 | goto on_error; | ||
1163 | |||
1164 | ret = malloc(tmp_len); | ||
1165 | if (!ret) | ||
1166 | goto on_error; | ||
1167 | |||
1168 | # ifdef HAVE_GNUTLS | ||
1169 | gcry_error_t err = 0; | ||
1170 | gcry_cipher_hd_t cipher; | ||
1171 | |||
1172 | /* Gcrypt create the corresponding cipher */ | ||
1173 | err = gcry_cipher_open(&cipher, GCRY_CIPHER_AES256, GCRY_CIPHER_MODE_CBC, 0); | ||
1174 | if (err) | ||
1175 | return EET_ERROR_DECRYPT_FAILED; | ||
1176 | |||
1177 | err = gcry_cipher_setiv(cipher, iv, MAX_IV_LEN); | ||
1178 | if (err) | ||
1179 | goto on_error; | ||
1180 | |||
1181 | err = gcry_cipher_setkey(cipher, ik, MAX_KEY_LEN); | ||
1182 | if (err) | ||
1183 | goto on_error; | ||
1184 | |||
1185 | memset(iv, 0, sizeof (iv)); | ||
1186 | memset(ik, 0, sizeof (ik)); | ||
1187 | |||
1188 | /* Gcrypt decrypt */ | ||
1189 | err = gcry_cipher_decrypt(cipher, ret, tmp_len, | ||
1190 | ((unsigned int *)data) + 1, tmp_len); | ||
1191 | if (err) | ||
1192 | goto on_error; | ||
1193 | |||
1194 | /* Gcrypt close the cipher */ | ||
1195 | gcry_cipher_close(cipher); | ||
1196 | |||
1197 | # else /* ifdef HAVE_GNUTLS */ | ||
1198 | EVP_CIPHER_CTX ctx; | ||
1199 | int opened = 0; | ||
1200 | |||
1201 | /* Openssl create the corresponding cipher */ | ||
1202 | EVP_CIPHER_CTX_init(&ctx); | ||
1203 | opened = 1; | ||
1204 | |||
1205 | if (!EVP_DecryptInit_ex(&ctx, EVP_aes_256_cbc(), NULL, ik, iv)) | ||
1206 | goto on_error; | ||
1207 | |||
1208 | memset(iv, 0, sizeof (iv)); | ||
1209 | memset(ik, 0, sizeof (ik)); | ||
1210 | |||
1211 | /* Openssl decrypt */ | ||
1212 | if (!EVP_DecryptUpdate(&ctx, (unsigned char *)ret, &tmp, | ||
1213 | (unsigned char *)(over + 1), tmp_len)) | ||
1214 | goto on_error; | ||
1215 | |||
1216 | /* Openssl close the cipher*/ | ||
1217 | EVP_CIPHER_CTX_cleanup(&ctx); | ||
1218 | # endif /* ifdef HAVE_GNUTLS */ | ||
1219 | /* Get the decrypted data size */ | ||
1220 | tmp = *ret; | ||
1221 | tmp = ntohl(tmp); | ||
1222 | if (tmp > tmp_len) | ||
1223 | goto on_error; | ||
1224 | |||
1225 | /* Update the return values */ | ||
1226 | if (result_length) | ||
1227 | *result_length = tmp; | ||
1228 | |||
1229 | if (result) | ||
1230 | { | ||
1231 | *result = NULL; | ||
1232 | *result = malloc(tmp); | ||
1233 | if (!*result) | ||
1234 | goto on_error; | ||
1235 | |||
1236 | memcpy(*result, ret + 1, tmp); | ||
1237 | } | ||
1238 | |||
1239 | free(ret); | ||
1240 | |||
1241 | return EET_ERROR_NONE; | ||
1242 | |||
1243 | on_error: | ||
1244 | memset(iv, 0, sizeof (iv)); | ||
1245 | memset(ik, 0, sizeof (ik)); | ||
1246 | |||
1247 | # ifdef HAVE_GNUTLS | ||
1248 | # else | ||
1249 | if (opened) | ||
1250 | EVP_CIPHER_CTX_cleanup(&ctx); | ||
1251 | |||
1252 | # endif /* ifdef HAVE_GNUTLS */ | ||
1253 | if (result) | ||
1254 | *result = NULL; | ||
1255 | |||
1256 | if (result_length) | ||
1257 | *result_length = 0; | ||
1258 | |||
1259 | if (ret) | ||
1260 | free(ret); | ||
1261 | |||
1262 | return EET_ERROR_DECRYPT_FAILED; | ||
1263 | #else /* ifdef HAVE_CIPHER */ | ||
1264 | (void)data; | ||
1265 | (void)size; | ||
1266 | (void)key; | ||
1267 | (void)length; | ||
1268 | (void)result; | ||
1269 | (void)result_length; | ||
1270 | return EET_ERROR_NOT_IMPLEMENTED; | ||
1271 | #endif /* ifdef HAVE_CIPHER */ | ||
1272 | } | ||
1273 | |||
1274 | #ifdef HAVE_CIPHER | ||
1275 | # ifdef HAVE_GNUTLS | ||
1276 | static Eet_Error | ||
1277 | eet_hmac_sha1(const void *key, | ||
1278 | size_t key_len, | ||
1279 | const void *data, | ||
1280 | size_t data_len, | ||
1281 | unsigned char *res) | ||
1282 | { | ||
1283 | size_t hlen = gcry_md_get_algo_dlen (GCRY_MD_SHA1); | ||
1284 | gcry_md_hd_t mdh; | ||
1285 | unsigned char *hash; | ||
1286 | gpg_error_t err; | ||
1287 | |||
1288 | err = gcry_md_open(&mdh, GCRY_MD_SHA1, GCRY_MD_FLAG_HMAC); | ||
1289 | if (err != GPG_ERR_NO_ERROR) | ||
1290 | return 1; | ||
1291 | |||
1292 | err = gcry_md_setkey(mdh, key, key_len); | ||
1293 | if (err != GPG_ERR_NO_ERROR) | ||
1294 | { | ||
1295 | gcry_md_close(mdh); | ||
1296 | return 1; | ||
1297 | } | ||
1298 | |||
1299 | gcry_md_write(mdh, data, data_len); | ||
1300 | |||
1301 | hash = gcry_md_read(mdh, GCRY_MD_SHA1); | ||
1302 | if (!hash) | ||
1303 | { | ||
1304 | gcry_md_close(mdh); | ||
1305 | return 1; | ||
1306 | } | ||
1307 | |||
1308 | memcpy(res, hash, hlen); | ||
1309 | |||
1310 | gcry_md_close(mdh); | ||
1311 | |||
1312 | return 0; | ||
1313 | } | ||
1314 | |||
1315 | # endif /* ifdef HAVE_GNUTLS */ | ||
1316 | |||
1317 | static Eet_Error | ||
1318 | eet_pbkdf2_sha1(const char *key, | ||
1319 | int key_len, | ||
1320 | const unsigned char *salt, | ||
1321 | unsigned int salt_len, | ||
1322 | int iter, | ||
1323 | unsigned char *res, | ||
1324 | int res_len) | ||
1325 | { | ||
1326 | unsigned char digest[20]; | ||
1327 | unsigned char tab[4]; | ||
1328 | unsigned char *p = res; | ||
1329 | unsigned char *buf; | ||
1330 | unsigned long i; | ||
1331 | int digest_len = 20; | ||
1332 | int len = res_len; | ||
1333 | int tmp_len; | ||
1334 | int j, k; | ||
1335 | # ifdef HAVE_GNUTLS | ||
1336 | # else | ||
1337 | HMAC_CTX hctx; | ||
1338 | # endif /* ifdef HAVE_GNUTLS */ | ||
1339 | |||
1340 | buf = alloca(salt_len + 4); | ||
1341 | if (!buf) | ||
1342 | return 1; | ||
1343 | |||
1344 | for (i = 1; len; len -= tmp_len, p += tmp_len, i++) | ||
1345 | { | ||
1346 | if (len > digest_len) | ||
1347 | tmp_len = digest_len; | ||
1348 | else | ||
1349 | tmp_len = len; | ||
1350 | |||
1351 | tab[0] = (unsigned char)(i & 0xff000000) >> 24; | ||
1352 | tab[1] = (unsigned char)(i & 0x00ff0000) >> 16; | ||
1353 | tab[2] = (unsigned char)(i & 0x0000ff00) >> 8; | ||
1354 | tab[3] = (unsigned char)(i & 0x000000ff) >> 0; | ||
1355 | |||
1356 | # ifdef HAVE_GNUTLS | ||
1357 | memcpy(buf, salt, salt_len); | ||
1358 | memcpy(buf + salt_len, tab, 4); | ||
1359 | eet_hmac_sha1(key, key_len, buf, salt_len + 4, digest); | ||
1360 | # else /* ifdef HAVE_GNUTLS */ | ||
1361 | HMAC_Init(&hctx, key, key_len, EVP_sha1()); | ||
1362 | HMAC_Update(&hctx, salt, salt_len); | ||
1363 | HMAC_Update(&hctx, tab, 4); | ||
1364 | HMAC_Final(&hctx, digest, NULL); | ||
1365 | # endif /* ifdef HAVE_GNUTLS */ | ||
1366 | memcpy(p, digest, tmp_len); | ||
1367 | |||
1368 | for (j = 1; j < iter; j++) | ||
1369 | { | ||
1370 | # ifdef HAVE_GNUTLS | ||
1371 | eet_hmac_sha1(key, key_len, digest, 20, digest); | ||
1372 | # else /* ifdef HAVE_GNUTLS */ | ||
1373 | HMAC(EVP_sha1(), key, key_len, digest, 20, digest, NULL); | ||
1374 | # endif /* ifdef HAVE_GNUTLS */ | ||
1375 | for (k = 0; k < tmp_len; k++) | ||
1376 | p[k] ^= digest[k]; | ||
1377 | } | ||
1378 | } | ||
1379 | |||
1380 | # ifdef HAVE_GNUTLS | ||
1381 | # else | ||
1382 | HMAC_cleanup(&hctx); | ||
1383 | # endif /* ifdef HAVE_GNUTLS */ | ||
1384 | return 0; | ||
1385 | } | ||
1386 | |||
1387 | #endif /* ifdef HAVE_CIPHER */ | ||
diff --git a/libraries/eet/src/lib/eet_connection.c b/libraries/eet/src/lib/eet_connection.c deleted file mode 100644 index 7b6b934..0000000 --- a/libraries/eet/src/lib/eet_connection.c +++ /dev/null | |||
@@ -1,222 +0,0 @@ | |||
1 | #ifdef HAVE_CONFIG_H | ||
2 | # include <config.h> | ||
3 | #endif /* ifdef HAVE_CONFIG_H */ | ||
4 | |||
5 | #ifdef HAVE_ALLOCA_H | ||
6 | # include <alloca.h> | ||
7 | #elif defined __GNUC__ | ||
8 | # define alloca __builtin_alloca | ||
9 | #elif defined _AIX | ||
10 | # define alloca __alloca | ||
11 | #elif defined _MSC_VER | ||
12 | # include <malloc.h> | ||
13 | # define alloca _alloca | ||
14 | #else /* ifdef HAVE_ALLOCA_H */ | ||
15 | # include <stddef.h> | ||
16 | # ifdef __cplusplus | ||
17 | extern "C" | ||
18 | # endif /* ifdef __cplusplus */ | ||
19 | void *alloca(size_t); | ||
20 | #endif /* ifdef HAVE_ALLOCA_H */ | ||
21 | |||
22 | #include <string.h> | ||
23 | #include <stdlib.h> | ||
24 | |||
25 | #ifdef HAVE_NETINET_IN_H | ||
26 | # include <netinet/in.h> | ||
27 | #endif /* ifdef HAVE_NETINET_IN_H */ | ||
28 | |||
29 | #ifdef _WIN32 | ||
30 | # include <winsock2.h> | ||
31 | #endif /* ifdef _WIN32 */ | ||
32 | |||
33 | #include <Eina.h> | ||
34 | |||
35 | #include "Eet.h" | ||
36 | #include "Eet_private.h" | ||
37 | |||
38 | /* max message size: 1Mb - raised from original 64Kb */ | ||
39 | #define MAX_MSG_SIZE (1024 * 1024) | ||
40 | #define MAGIC_EET_DATA_PACKET 0x4270ACE1 | ||
41 | |||
42 | struct _Eet_Connection | ||
43 | { | ||
44 | Eet_Read_Cb *eet_read_cb; | ||
45 | Eet_Write_Cb *eet_write_cb; | ||
46 | void *user_data; | ||
47 | |||
48 | size_t allocated; | ||
49 | size_t size; | ||
50 | size_t received; | ||
51 | |||
52 | void *buffer; | ||
53 | }; | ||
54 | |||
55 | EAPI Eet_Connection * | ||
56 | eet_connection_new(Eet_Read_Cb *eet_read_cb, | ||
57 | Eet_Write_Cb *eet_write_cb, | ||
58 | const void *user_data) | ||
59 | { | ||
60 | Eet_Connection *conn; | ||
61 | |||
62 | if ((!eet_read_cb) || (!eet_write_cb)) return NULL; | ||
63 | |||
64 | conn = calloc(1, sizeof (Eet_Connection)); | ||
65 | if (!conn) return NULL; | ||
66 | conn->eet_read_cb = eet_read_cb; | ||
67 | conn->eet_write_cb = eet_write_cb; | ||
68 | conn->user_data = (void *)user_data; | ||
69 | return conn; | ||
70 | } | ||
71 | |||
72 | EAPI int | ||
73 | eet_connection_received(Eet_Connection *conn, | ||
74 | const void *data, | ||
75 | size_t size) | ||
76 | { | ||
77 | if ((!conn) || (!data) || (!size)) return size; | ||
78 | do | ||
79 | { | ||
80 | size_t copy_size; | ||
81 | |||
82 | if (conn->size == 0) | ||
83 | { | ||
84 | const int *msg; | ||
85 | size_t packet_size; | ||
86 | |||
87 | if (size < (sizeof(int) * 2)) break; | ||
88 | |||
89 | msg = data; | ||
90 | /* Check the magic */ | ||
91 | if (ntohl(msg[0]) != MAGIC_EET_DATA_PACKET) break; | ||
92 | |||
93 | packet_size = ntohl(msg[1]); | ||
94 | /* Message should always be under MAX_MSG_SIZE */ | ||
95 | if (packet_size > MAX_MSG_SIZE) break; | ||
96 | |||
97 | data = (void *)(msg + 2); | ||
98 | size -= sizeof(int) * 2; | ||
99 | if ((size_t)packet_size <= size) | ||
100 | { | ||
101 | /* Not a partial receive, go the quick way. */ | ||
102 | if (!conn->eet_read_cb(data, packet_size, conn->user_data)) | ||
103 | break; | ||
104 | |||
105 | data = (void *)((char *)data + packet_size); | ||
106 | size -= packet_size; | ||
107 | conn->received = 0; | ||
108 | continue; | ||
109 | } | ||
110 | conn->size = packet_size; | ||
111 | if (conn->allocated < conn->size) | ||
112 | { | ||
113 | void *tmp; | ||
114 | |||
115 | tmp = realloc(conn->buffer, conn->size); | ||
116 | if (!tmp) break; | ||
117 | conn->buffer = tmp; | ||
118 | conn->allocated = conn->size; | ||
119 | } | ||
120 | } | ||
121 | |||
122 | /* Partial receive */ | ||
123 | copy_size = | ||
124 | (conn->size - conn->received >= | ||
125 | size) ? size : conn->size - conn->received; | ||
126 | memcpy((char *)conn->buffer + conn->received, data, copy_size); | ||
127 | |||
128 | conn->received += copy_size; | ||
129 | data = (void *)((char *)data + copy_size); | ||
130 | size -= copy_size; | ||
131 | |||
132 | if (conn->received == conn->size) | ||
133 | { | ||
134 | size_t data_size; | ||
135 | |||
136 | data_size = conn->size; | ||
137 | conn->size = 0; | ||
138 | conn->received = 0; | ||
139 | /* Completed a packet. */ | ||
140 | if (!conn->eet_read_cb(conn->buffer, data_size, conn->user_data)) | ||
141 | { | ||
142 | /* Something goes wrong. Stop now. */ | ||
143 | size += data_size; | ||
144 | break; | ||
145 | } | ||
146 | } | ||
147 | } | ||
148 | while (size > 0); | ||
149 | |||
150 | return size; | ||
151 | } | ||
152 | |||
153 | static Eina_Bool | ||
154 | _eet_connection_raw_send(Eet_Connection *conn, | ||
155 | void *data, | ||
156 | int data_size) | ||
157 | { | ||
158 | int *message; | ||
159 | |||
160 | /* Message should always be under MAX_MSG_SIZE */ | ||
161 | if (data_size > MAX_MSG_SIZE) return EINA_FALSE; | ||
162 | message = alloca(data_size + (sizeof(int) * 2)); | ||
163 | message[0] = htonl(MAGIC_EET_DATA_PACKET); | ||
164 | message[1] = htonl(data_size); | ||
165 | memcpy(message + 2, data, data_size); | ||
166 | conn->eet_write_cb(message, | ||
167 | data_size + (sizeof(int) * 2), | ||
168 | conn->user_data); | ||
169 | return EINA_TRUE; | ||
170 | } | ||
171 | |||
172 | EAPI Eina_Bool | ||
173 | eet_connection_send(Eet_Connection *conn, | ||
174 | Eet_Data_Descriptor *edd, | ||
175 | const void *data_in, | ||
176 | const char *cipher_key) | ||
177 | { | ||
178 | void *flat_data; | ||
179 | int data_size; | ||
180 | Eina_Bool ret = EINA_FALSE; | ||
181 | |||
182 | flat_data = eet_data_descriptor_encode_cipher(edd, | ||
183 | data_in, | ||
184 | cipher_key, | ||
185 | &data_size); | ||
186 | if (!flat_data) return EINA_FALSE; | ||
187 | if (_eet_connection_raw_send(conn, flat_data, data_size)) ret = EINA_TRUE; | ||
188 | free(flat_data); | ||
189 | return ret; | ||
190 | } | ||
191 | |||
192 | EAPI Eina_Bool | ||
193 | eet_connection_node_send(Eet_Connection *conn, | ||
194 | Eet_Node *node, | ||
195 | const char *cipher_key) | ||
196 | { | ||
197 | void *data; | ||
198 | int data_size; | ||
199 | Eina_Bool ret = EINA_FALSE; | ||
200 | |||
201 | data = eet_data_node_encode_cipher(node, cipher_key, &data_size); | ||
202 | if (!data) return EINA_FALSE; | ||
203 | if (_eet_connection_raw_send(conn, data, data_size)) | ||
204 | ret = EINA_TRUE; | ||
205 | free(data); | ||
206 | return ret; | ||
207 | } | ||
208 | |||
209 | EAPI void * | ||
210 | eet_connection_close(Eet_Connection *conn, | ||
211 | Eina_Bool *on_going) | ||
212 | { | ||
213 | void *user_data; | ||
214 | |||
215 | if (!conn) return NULL; | ||
216 | if (on_going) *on_going = conn->received == 0 ? EINA_FALSE : EINA_TRUE; | ||
217 | user_data = conn->user_data; | ||
218 | free(conn->buffer); | ||
219 | free(conn); | ||
220 | return user_data; | ||
221 | } | ||
222 | |||
diff --git a/libraries/eet/src/lib/eet_data.c b/libraries/eet/src/lib/eet_data.c deleted file mode 100644 index d502f44..0000000 --- a/libraries/eet/src/lib/eet_data.c +++ /dev/null | |||
@@ -1,4986 +0,0 @@ | |||
1 | #ifdef HAVE_CONFIG_H | ||
2 | # include <config.h> | ||
3 | #endif /* ifdef HAVE_CONFIG_H */ | ||
4 | |||
5 | #include <stdio.h> | ||
6 | #include <string.h> | ||
7 | #include <math.h> | ||
8 | #include <ctype.h> | ||
9 | #include <limits.h> | ||
10 | |||
11 | #ifdef HAVE_NETINET_IN_H | ||
12 | # include <netinet/in.h> | ||
13 | #endif /* ifdef HAVE_NETINET_IN_H */ | ||
14 | |||
15 | #ifdef _WIN32 | ||
16 | # include <winsock2.h> | ||
17 | #endif /* ifdef _WIN32 */ | ||
18 | |||
19 | #include <Eina.h> | ||
20 | |||
21 | #include "Eet.h" | ||
22 | #include "Eet_private.h" | ||
23 | |||
24 | /* | ||
25 | * routines for doing data -> struct and struct -> data conversion | ||
26 | * | ||
27 | * types: | ||
28 | * | ||
29 | * basic types: | ||
30 | * a sequence of... | ||
31 | * | ||
32 | * char | ||
33 | * short | ||
34 | * int | ||
35 | * long long | ||
36 | * float | ||
37 | * double | ||
38 | * unsigned char | ||
39 | * unsigned short | ||
40 | * unsigned int | ||
41 | * unsgined long long | ||
42 | * string | ||
43 | * | ||
44 | * groupings: | ||
45 | * multiple entries ordered as... | ||
46 | * | ||
47 | * fixed size array [ of basic types ] | ||
48 | * variable size array [ of basic types ] | ||
49 | * linked list [ of basic types ] | ||
50 | * hash table [ of basic types ] | ||
51 | * | ||
52 | * need to provide builder/accessor funcs for: | ||
53 | * | ||
54 | * list_next | ||
55 | * list_append | ||
56 | * | ||
57 | * hash_foreach | ||
58 | * hash_add | ||
59 | * | ||
60 | */ | ||
61 | |||
62 | /*---*/ | ||
63 | |||
64 | typedef struct _Eet_Data_Element Eet_Data_Element; | ||
65 | typedef struct _Eet_Data_Basic_Type_Codec Eet_Data_Basic_Type_Codec; | ||
66 | typedef struct _Eet_Data_Group_Type_Codec Eet_Data_Group_Type_Codec; | ||
67 | typedef struct _Eet_Data_Chunk Eet_Data_Chunk; | ||
68 | typedef struct _Eet_Data_Stream Eet_Data_Stream; | ||
69 | typedef struct _Eet_Data_Descriptor_Hash Eet_Data_Descriptor_Hash; | ||
70 | typedef struct _Eet_Data_Encode_Hash_Info Eet_Data_Encode_Hash_Info; | ||
71 | typedef struct _Eet_Free Eet_Free; | ||
72 | typedef struct _Eet_Free_Context Eet_Free_Context; | ||
73 | typedef struct _Eet_Variant_Unknow Eet_Variant_Unknow; | ||
74 | |||
75 | /*---*/ | ||
76 | |||
77 | /* TODO: | ||
78 | * Eet_Data_Basic_Type_Codec (Coder, Decoder) | ||
79 | * Eet_Data_Group_Type_Codec (Coder, Decoder) | ||
80 | */ | ||
81 | struct _Eet_Data_Basic_Type_Codec | ||
82 | { | ||
83 | int size; | ||
84 | const char *name; | ||
85 | int (*get)(const Eet_Dictionary *ed, | ||
86 | const void *src, | ||
87 | const void *src_end, | ||
88 | void *dest); | ||
89 | void * (*put)(Eet_Dictionary *ed, const void *src, int *size_ret); | ||
90 | }; | ||
91 | |||
92 | struct _Eet_Data_Group_Type_Codec | ||
93 | { | ||
94 | int (*get)(Eet_Free_Context *context, | ||
95 | const Eet_Dictionary *ed, | ||
96 | Eet_Data_Descriptor *edd, | ||
97 | Eet_Data_Element *ede, | ||
98 | Eet_Data_Chunk *echnk, | ||
99 | int type, | ||
100 | int group_type, | ||
101 | void *data_in, | ||
102 | char **p, | ||
103 | int *size); | ||
104 | void (*put)(Eet_Dictionary *ed, | ||
105 | Eet_Data_Descriptor *edd, | ||
106 | Eet_Data_Element *ede, | ||
107 | Eet_Data_Stream *ds, | ||
108 | void *data_in); | ||
109 | }; | ||
110 | |||
111 | struct _Eet_Data_Chunk | ||
112 | { | ||
113 | char *name; | ||
114 | int len; | ||
115 | int size; | ||
116 | int hash; | ||
117 | void *data; | ||
118 | unsigned char type; | ||
119 | unsigned char group_type; | ||
120 | }; | ||
121 | |||
122 | struct _Eet_Data_Stream | ||
123 | { | ||
124 | void *data; | ||
125 | int size; | ||
126 | int pos; | ||
127 | }; | ||
128 | |||
129 | struct _Eet_Data_Descriptor_Hash | ||
130 | { | ||
131 | Eet_Data_Element *element; | ||
132 | Eet_Data_Descriptor_Hash *next; | ||
133 | }; | ||
134 | |||
135 | struct _Eet_Data_Descriptor | ||
136 | { | ||
137 | const char *name; | ||
138 | const Eet_Dictionary *ed; | ||
139 | int size; | ||
140 | struct | ||
141 | { | ||
142 | void * (*mem_alloc)(size_t size); | ||
143 | void (*mem_free)(void *mem); | ||
144 | char * (*str_alloc)(const char *str); | ||
145 | char * (*str_direct_alloc)(const char *str); | ||
146 | void (*str_free)(const char *str); | ||
147 | void (*str_direct_free)(const char *str); | ||
148 | void * (*list_next)(void *l); | ||
149 | void * (*list_append)(void *l, void *d); | ||
150 | void * (*list_data)(void *l); | ||
151 | void * (*list_free)(void *l); | ||
152 | void (*hash_foreach)(void *h, | ||
153 | int (*func)(void *h, | ||
154 | const char *k, | ||
155 | void *dt, | ||
156 | void *fdt), | ||
157 | void *fdt); | ||
158 | void * (*hash_add)(void *h, const char *k, void *d); | ||
159 | void (*hash_free)(void *h); | ||
160 | const char *(*type_get)(const void *data, Eina_Bool *unknow); | ||
161 | Eina_Bool (*type_set)(const char *type, | ||
162 | void *data, | ||
163 | Eina_Bool unknow); | ||
164 | void * (*array_alloc)(size_t size); | ||
165 | void (*array_free)(void *mem); | ||
166 | } func; | ||
167 | struct | ||
168 | { | ||
169 | int num; | ||
170 | Eet_Data_Element *set; | ||
171 | struct | ||
172 | { | ||
173 | int size; | ||
174 | Eet_Data_Descriptor_Hash *buckets; | ||
175 | } hash; | ||
176 | } elements; | ||
177 | |||
178 | Eina_Bool unified_type : 1; | ||
179 | // char *strings; | ||
180 | // int strings_len; | ||
181 | }; | ||
182 | |||
183 | struct _Eet_Data_Element | ||
184 | { | ||
185 | const char *name; | ||
186 | const char *counter_name; | ||
187 | const char *directory_name_ptr; | ||
188 | Eet_Data_Descriptor *subtype; | ||
189 | int offset; /* offset in bytes from the base element */ | ||
190 | int count; /* number of elements for a fixed array */ | ||
191 | int counter_offset; /* for a variable array we need the offset of the count variable */ | ||
192 | unsigned char type; /* EET_T_XXX */ | ||
193 | unsigned char group_type; /* EET_G_XXX */ | ||
194 | }; | ||
195 | |||
196 | struct _Eet_Data_Encode_Hash_Info | ||
197 | { | ||
198 | Eet_Data_Stream *ds; | ||
199 | Eet_Data_Element *ede; | ||
200 | Eet_Dictionary *ed; | ||
201 | }; | ||
202 | |||
203 | #define EET_FREE_COUNT 256 | ||
204 | struct _Eet_Free | ||
205 | { | ||
206 | int ref; | ||
207 | Eina_Array list[EET_FREE_COUNT]; | ||
208 | }; | ||
209 | |||
210 | struct _Eet_Free_Context | ||
211 | { | ||
212 | Eet_Free freelist; | ||
213 | Eet_Free freelist_array; | ||
214 | Eet_Free freelist_list; | ||
215 | Eet_Free freelist_hash; | ||
216 | Eet_Free freelist_str; | ||
217 | Eet_Free freelist_direct_str; | ||
218 | }; | ||
219 | |||
220 | struct _Eet_Variant_Unknow | ||
221 | { | ||
222 | EINA_MAGIC | ||
223 | |||
224 | int size; | ||
225 | char data[1]; | ||
226 | }; | ||
227 | |||
228 | /*---*/ | ||
229 | |||
230 | static void | ||
231 | eet_free_context_init(Eet_Free_Context *context); | ||
232 | static void | ||
233 | eet_free_context_shutdown(Eet_Free_Context *context); | ||
234 | |||
235 | static int | ||
236 | eet_data_get_char(const Eet_Dictionary *ed, | ||
237 | const void *src, | ||
238 | const void *src_end, | ||
239 | void *dest); | ||
240 | static void * | ||
241 | eet_data_put_char(Eet_Dictionary *ed, | ||
242 | const void *src, | ||
243 | int *size_ret); | ||
244 | static int | ||
245 | eet_data_get_short(const Eet_Dictionary *ed, | ||
246 | const void *src, | ||
247 | const void *src_end, | ||
248 | void *dest); | ||
249 | static void * | ||
250 | eet_data_put_short(Eet_Dictionary *ed, | ||
251 | const void *src, | ||
252 | int *size_ret); | ||
253 | static inline int | ||
254 | eet_data_get_int(const Eet_Dictionary *ed, | ||
255 | const void *src, | ||
256 | const void *src_end, | ||
257 | void *dest); | ||
258 | static void * | ||
259 | eet_data_put_int(Eet_Dictionary *ed, | ||
260 | const void *src, | ||
261 | int *size_ret); | ||
262 | static int | ||
263 | eet_data_get_long_long(const Eet_Dictionary *ed, | ||
264 | const void *src, | ||
265 | const void *src_end, | ||
266 | void *dest); | ||
267 | static void * | ||
268 | eet_data_put_long_long(Eet_Dictionary *ed, | ||
269 | const void *src, | ||
270 | int *size_ret); | ||
271 | static int | ||
272 | eet_data_get_float(const Eet_Dictionary *ed, | ||
273 | const void *src, | ||
274 | const void *src_end, | ||
275 | void *dest); | ||
276 | static void * | ||
277 | eet_data_put_float(Eet_Dictionary *ed, | ||
278 | const void *src, | ||
279 | int *size_ret); | ||
280 | static int | ||
281 | eet_data_get_double(const Eet_Dictionary *ed, | ||
282 | const void *src, | ||
283 | const void *src_end, | ||
284 | void *dest); | ||
285 | static void * | ||
286 | eet_data_put_double(Eet_Dictionary *ed, | ||
287 | const void *src, | ||
288 | int *size_ret); | ||
289 | static int | ||
290 | eet_data_get_f32p32(const Eet_Dictionary *ed, | ||
291 | const void *src, | ||
292 | const void *src_end, | ||
293 | void *dest); | ||
294 | static void * | ||
295 | eet_data_put_f32p32(Eet_Dictionary *ed, | ||
296 | const void *src, | ||
297 | int *size_ret); | ||
298 | static int | ||
299 | eet_data_get_f16p16(const Eet_Dictionary *ed, | ||
300 | const void *src, | ||
301 | const void *src_end, | ||
302 | void *dest); | ||
303 | static void * | ||
304 | eet_data_put_f16p16(Eet_Dictionary *ed, | ||
305 | const void *src, | ||
306 | int *size_ret); | ||
307 | static int | ||
308 | eet_data_get_f8p24(const Eet_Dictionary *ed, | ||
309 | const void *src, | ||
310 | const void *src_end, | ||
311 | void *dest); | ||
312 | static void * | ||
313 | eet_data_put_f8p24(Eet_Dictionary *ed, | ||
314 | const void *src, | ||
315 | int *size_ret); | ||
316 | static inline int | ||
317 | eet_data_get_string(const Eet_Dictionary *ed, | ||
318 | const void *src, | ||
319 | const void *src_end, | ||
320 | void *dest); | ||
321 | static void * | ||
322 | eet_data_put_string(Eet_Dictionary *ed, | ||
323 | const void *src, | ||
324 | int *size_ret); | ||
325 | static int | ||
326 | eet_data_get_istring(const Eet_Dictionary *ed, | ||
327 | const void *src, | ||
328 | const void *src_end, | ||
329 | void *dest); | ||
330 | static void * | ||
331 | eet_data_put_istring(Eet_Dictionary *ed, | ||
332 | const void *src, | ||
333 | int *size_ret); | ||
334 | static int | ||
335 | eet_data_get_null(const Eet_Dictionary *ed, | ||
336 | const void *src, | ||
337 | const void *src_end, | ||
338 | void *dest); | ||
339 | static void * | ||
340 | eet_data_put_null(Eet_Dictionary *ed, | ||
341 | const void *src, | ||
342 | int *size_ret); | ||
343 | |||
344 | static int | ||
345 | eet_data_get_type(const Eet_Dictionary *ed, | ||
346 | int type, | ||
347 | const void *src, | ||
348 | const void *src_end, | ||
349 | void *dest); | ||
350 | static void * | ||
351 | eet_data_put_type(Eet_Dictionary *ed, | ||
352 | int type, | ||
353 | const void *src, | ||
354 | int *size_ret); | ||
355 | |||
356 | static Eet_Node * | ||
357 | eet_data_node_simple_type(int type, | ||
358 | const char *name, | ||
359 | void *dd); | ||
360 | |||
361 | static int | ||
362 | eet_data_get_unknown(Eet_Free_Context *context, | ||
363 | const Eet_Dictionary *ed, | ||
364 | Eet_Data_Descriptor *edd, | ||
365 | Eet_Data_Element *ede, | ||
366 | Eet_Data_Chunk *echnk, | ||
367 | int type, | ||
368 | int group_type, | ||
369 | void *data_in, | ||
370 | char **p, | ||
371 | int *size); | ||
372 | static void | ||
373 | eet_data_put_unknown(Eet_Dictionary *ed, | ||
374 | Eet_Data_Descriptor *edd, | ||
375 | Eet_Data_Element *ede, | ||
376 | Eet_Data_Stream *ds, | ||
377 | void *data_in); | ||
378 | static void | ||
379 | eet_data_put_array(Eet_Dictionary *ed, | ||
380 | Eet_Data_Descriptor *edd, | ||
381 | Eet_Data_Element *ede, | ||
382 | Eet_Data_Stream *ds, | ||
383 | void *data_in); | ||
384 | static int | ||
385 | eet_data_get_array(Eet_Free_Context *context, | ||
386 | const Eet_Dictionary *ed, | ||
387 | Eet_Data_Descriptor *edd, | ||
388 | Eet_Data_Element *ede, | ||
389 | Eet_Data_Chunk *echnk, | ||
390 | int type, | ||
391 | int group_type, | ||
392 | void *data, | ||
393 | char **p, | ||
394 | int *size); | ||
395 | static int | ||
396 | eet_data_get_list(Eet_Free_Context *context, | ||
397 | const Eet_Dictionary *ed, | ||
398 | Eet_Data_Descriptor *edd, | ||
399 | Eet_Data_Element *ede, | ||
400 | Eet_Data_Chunk *echnk, | ||
401 | int type, | ||
402 | int group_type, | ||
403 | void *data_in, | ||
404 | char **p, | ||
405 | int *size); | ||
406 | static void | ||
407 | eet_data_put_list(Eet_Dictionary *ed, | ||
408 | Eet_Data_Descriptor *edd, | ||
409 | Eet_Data_Element *ede, | ||
410 | Eet_Data_Stream *ds, | ||
411 | void *data_in); | ||
412 | static void | ||
413 | eet_data_put_hash(Eet_Dictionary *ed, | ||
414 | Eet_Data_Descriptor *edd, | ||
415 | Eet_Data_Element *ede, | ||
416 | Eet_Data_Stream *ds, | ||
417 | void *data_in); | ||
418 | static int | ||
419 | eet_data_get_hash(Eet_Free_Context *context, | ||
420 | const Eet_Dictionary *ed, | ||
421 | Eet_Data_Descriptor *edd, | ||
422 | Eet_Data_Element *ede, | ||
423 | Eet_Data_Chunk *echnk, | ||
424 | int type, | ||
425 | int group_type, | ||
426 | void *data, | ||
427 | char **p, | ||
428 | int *size); | ||
429 | static void | ||
430 | eet_data_put_union(Eet_Dictionary *ed, | ||
431 | Eet_Data_Descriptor *edd, | ||
432 | Eet_Data_Element *ede, | ||
433 | Eet_Data_Stream *ds, | ||
434 | void *data_in); | ||
435 | static int | ||
436 | eet_data_get_union(Eet_Free_Context *context, | ||
437 | const Eet_Dictionary *ed, | ||
438 | Eet_Data_Descriptor *edd, | ||
439 | Eet_Data_Element *ede, | ||
440 | Eet_Data_Chunk *echnk, | ||
441 | int type, | ||
442 | int group_type, | ||
443 | void *data, | ||
444 | char **p, | ||
445 | int *size); | ||
446 | static void | ||
447 | eet_data_put_variant(Eet_Dictionary *ed, | ||
448 | Eet_Data_Descriptor *edd, | ||
449 | Eet_Data_Element *ede, | ||
450 | Eet_Data_Stream *ds, | ||
451 | void *data_in); | ||
452 | static int | ||
453 | eet_data_get_variant(Eet_Free_Context *context, | ||
454 | const Eet_Dictionary *ed, | ||
455 | Eet_Data_Descriptor *edd, | ||
456 | Eet_Data_Element *ede, | ||
457 | Eet_Data_Chunk *echnk, | ||
458 | int type, | ||
459 | int group_type, | ||
460 | void *data, | ||
461 | char **p, | ||
462 | int *size); | ||
463 | |||
464 | static void | ||
465 | eet_data_chunk_get(const Eet_Dictionary *ed, | ||
466 | Eet_Data_Chunk *chnk, | ||
467 | const void *src, | ||
468 | int size); | ||
469 | static Eet_Data_Chunk * | ||
470 | eet_data_chunk_new(void *data, | ||
471 | int size, | ||
472 | const char *name, | ||
473 | int type, | ||
474 | int group_type); | ||
475 | static void | ||
476 | eet_data_chunk_free(Eet_Data_Chunk *chnk); | ||
477 | |||
478 | static Eet_Data_Stream * | ||
479 | eet_data_stream_new(void); | ||
480 | static void | ||
481 | eet_data_stream_write(Eet_Data_Stream *ds, | ||
482 | const void *data, | ||
483 | int size); | ||
484 | static void | ||
485 | eet_data_stream_free(Eet_Data_Stream *ds); | ||
486 | |||
487 | static void | ||
488 | eet_data_chunk_put(Eet_Dictionary *ed, | ||
489 | Eet_Data_Chunk *chnk, | ||
490 | Eet_Data_Stream *ds); | ||
491 | |||
492 | static int | ||
493 | eet_data_descriptor_encode_hash_cb(void *hash, | ||
494 | const char *key, | ||
495 | void *hdata, | ||
496 | void *fdata); | ||
497 | static void *_eet_data_descriptor_encode(Eet_Dictionary *ed, | ||
498 | Eet_Data_Descriptor *edd, | ||
499 | const void *data_in, | ||
500 | int *size_ret); | ||
501 | static void *_eet_data_descriptor_decode(Eet_Free_Context *context, | ||
502 | const Eet_Dictionary *ed, | ||
503 | Eet_Data_Descriptor *edd, | ||
504 | const void *data_in, | ||
505 | int size_in, | ||
506 | void *data_out, | ||
507 | int size_out); | ||
508 | |||
509 | /*---*/ | ||
510 | |||
511 | static const Eet_Data_Basic_Type_Codec eet_basic_codec[] = | ||
512 | { | ||
513 | {sizeof(char), "char", eet_data_get_char, eet_data_put_char }, | ||
514 | {sizeof(short), "short", eet_data_get_short, eet_data_put_short }, | ||
515 | {sizeof(int), "int", eet_data_get_int, eet_data_put_int }, | ||
516 | {sizeof(long long), "long_long", eet_data_get_long_long, eet_data_put_long_long}, | ||
517 | {sizeof(float), "float", eet_data_get_float, eet_data_put_float }, | ||
518 | {sizeof(double), "double", eet_data_get_double, eet_data_put_double }, | ||
519 | {sizeof(char), "uchar", eet_data_get_char, eet_data_put_char }, | ||
520 | {sizeof(short), "ushort", eet_data_get_short, eet_data_put_short }, | ||
521 | {sizeof(int), "uint", eet_data_get_int, eet_data_put_int }, | ||
522 | {sizeof(long long), "ulong_long", eet_data_get_long_long, eet_data_put_long_long}, | ||
523 | {sizeof(char *), "string", eet_data_get_string, eet_data_put_string }, | ||
524 | {sizeof(char *), "inlined", eet_data_get_istring, eet_data_put_istring }, | ||
525 | {sizeof(void *), "NULL", eet_data_get_null, eet_data_put_null }, | ||
526 | {sizeof(Eina_F32p32), "f32p32", eet_data_get_f32p32, eet_data_put_f32p32 }, | ||
527 | {sizeof(Eina_F16p16), "f16p16", eet_data_get_f16p16, eet_data_put_f16p16 }, | ||
528 | {sizeof(Eina_F8p24), "f8p24", eet_data_get_f8p24, eet_data_put_f8p24 } | ||
529 | }; | ||
530 | |||
531 | static const Eet_Data_Group_Type_Codec eet_group_codec[] = | ||
532 | { | ||
533 | { eet_data_get_unknown, eet_data_put_unknown }, | ||
534 | { eet_data_get_array, eet_data_put_array }, | ||
535 | { eet_data_get_array, eet_data_put_array }, | ||
536 | { eet_data_get_list, eet_data_put_list }, | ||
537 | { eet_data_get_hash, eet_data_put_hash }, | ||
538 | { eet_data_get_union, eet_data_put_union }, | ||
539 | { eet_data_get_variant, eet_data_put_variant } | ||
540 | }; | ||
541 | |||
542 | static int _eet_data_words_bigendian = -1; | ||
543 | |||
544 | /*---*/ | ||
545 | |||
546 | #define SWAP64(x) (x) = \ | ||
547 | ((((unsigned long long)(x) & 0x00000000000000ffULL) << 56) | \ | ||
548 | (((unsigned long long)(x) & 0x000000000000ff00ULL) << 40) | \ | ||
549 | (((unsigned long long)(x) & 0x0000000000ff0000ULL) << 24) | \ | ||
550 | (((unsigned long long)(x) & 0x00000000ff000000ULL) << 8) | \ | ||
551 | (((unsigned long long)(x) & 0x000000ff00000000ULL) >> 8) | \ | ||
552 | (((unsigned long long)(x) & 0x0000ff0000000000ULL) >> 24) | \ | ||
553 | (((unsigned long long)(x) & 0x00ff000000000000ULL) >> 40) | \ | ||
554 | (((unsigned long long)(x) & 0xff00000000000000ULL) >> 56)) | ||
555 | #define SWAP32(x) (x) = \ | ||
556 | ((((int)(x) & 0x000000ff) << 24) | \ | ||
557 | (((int)(x) & 0x0000ff00) << 8) | \ | ||
558 | (((int)(x) & 0x00ff0000) >> 8) | \ | ||
559 | (((int)(x) & 0xff000000) >> 24)) | ||
560 | #define SWAP16(x) (x) = \ | ||
561 | ((((short)(x) & 0x00ff) << 8) | \ | ||
562 | (((short)(x) & 0xff00) >> 8)) | ||
563 | |||
564 | #ifdef CONV8 | ||
565 | # undef CONV8 | ||
566 | #endif /* ifdef CONV8 */ | ||
567 | #ifdef CONV16 | ||
568 | # undef CONV16 | ||
569 | #endif /* ifdef CONV16 */ | ||
570 | #ifdef CONV32 | ||
571 | # undef CONV32 | ||
572 | #endif /* ifdef CONV32 */ | ||
573 | #ifdef CONV64 | ||
574 | # undef CONV64 | ||
575 | #endif /* ifdef CONV64 */ | ||
576 | |||
577 | #define CONV8(x) | ||
578 | #define CONV16(x) {if (_eet_data_words_bigendian) {SWAP16(x); }} | ||
579 | #define CONV32(x) {if (_eet_data_words_bigendian) {SWAP32(x); }} | ||
580 | #define CONV64(x) {if (_eet_data_words_bigendian) {SWAP64(x); }} | ||
581 | |||
582 | #define IS_SIMPLE_TYPE(Type) (Type > EET_T_UNKNOW && Type < EET_T_LAST) | ||
583 | #define IS_POINTER_TYPE(Type) (Type >= EET_T_STRING && Type <= EET_T_NULL) | ||
584 | |||
585 | #define POINTER_TYPE_DECODE(Context, \ | ||
586 | Ed, \ | ||
587 | Edd, \ | ||
588 | Ede, \ | ||
589 | Echnk, \ | ||
590 | Type, \ | ||
591 | Data, \ | ||
592 | P, \ | ||
593 | Size, \ | ||
594 | Label) \ | ||
595 | do { \ | ||
596 | int ___r; \ | ||
597 | ___r = eet_data_get_unknown(Context, \ | ||
598 | Ed, \ | ||
599 | Edd, Ede, \ | ||
600 | Echnk, \ | ||
601 | Type, EET_G_UNKNOWN, \ | ||
602 | Data, P, Size); \ | ||
603 | if (!___r) { goto Label; } \ | ||
604 | } while (0) | ||
605 | |||
606 | #define STRUCT_TYPE_DECODE(Data_Ret, Context, Ed, Ede, Data, Size, SubSize, Label) \ | ||
607 | do { \ | ||
608 | Data_Ret = _eet_data_descriptor_decode(Context, \ | ||
609 | Ed, \ | ||
610 | Ede, \ | ||
611 | Data, \ | ||
612 | Size, \ | ||
613 | SubSize > 0 ? Data_Ret : NULL, \ | ||
614 | SubSize); \ | ||
615 | if (!Data_Ret) { goto Label; } \ | ||
616 | } while (0) | ||
617 | |||
618 | #define EET_I_STRING 1 << 4 | ||
619 | #define EET_I_INLINED_STRING 2 << 4 | ||
620 | #define EET_I_NULL 3 << 4 | ||
621 | |||
622 | #define EET_MAGIC_VARIANT 0xF1234BC | ||
623 | /*---*/ | ||
624 | |||
625 | /* CHAR TYPE */ | ||
626 | static int | ||
627 | eet_data_get_char(const Eet_Dictionary *ed __UNUSED__, | ||
628 | const void *src, | ||
629 | const void *src_end, | ||
630 | void *dst) | ||
631 | { | ||
632 | char *s, *d; | ||
633 | |||
634 | if (((char *)src + sizeof(char)) > (char *)src_end) | ||
635 | return -1; | ||
636 | |||
637 | s = (char *)src; | ||
638 | d = (char *)dst; | ||
639 | *d = *s; | ||
640 | CONV8(*d); | ||
641 | return sizeof(char); | ||
642 | } | ||
643 | |||
644 | static void * | ||
645 | eet_data_put_char(Eet_Dictionary *ed __UNUSED__, | ||
646 | const void *src, | ||
647 | int *size_ret) | ||
648 | { | ||
649 | char *s, *d; | ||
650 | |||
651 | d = (char *)malloc(sizeof(char)); | ||
652 | if (!d) | ||
653 | return NULL; | ||
654 | |||
655 | s = (char *)src; | ||
656 | *d = *s; | ||
657 | CONV8(*d); | ||
658 | *size_ret = sizeof(char); | ||
659 | return d; | ||
660 | } | ||
661 | |||
662 | /* SHORT TYPE */ | ||
663 | static int | ||
664 | eet_data_get_short(const Eet_Dictionary *ed __UNUSED__, | ||
665 | const void *src, | ||
666 | const void *src_end, | ||
667 | void *dst) | ||
668 | { | ||
669 | short *d; | ||
670 | |||
671 | if (((char *)src + sizeof(short)) > (char *)src_end) | ||
672 | return -1; | ||
673 | |||
674 | memcpy(dst, src, sizeof(short)); | ||
675 | d = (short *)dst; | ||
676 | CONV16(*d); | ||
677 | return sizeof(short); | ||
678 | } | ||
679 | |||
680 | static void * | ||
681 | eet_data_put_short(Eet_Dictionary *ed __UNUSED__, | ||
682 | const void *src, | ||
683 | int *size_ret) | ||
684 | { | ||
685 | short *s, *d; | ||
686 | |||
687 | d = (short *)malloc(sizeof(short)); | ||
688 | if (!d) | ||
689 | return NULL; | ||
690 | |||
691 | s = (short *)src; | ||
692 | *d = *s; | ||
693 | CONV16(*d); | ||
694 | *size_ret = sizeof(short); | ||
695 | return d; | ||
696 | } | ||
697 | |||
698 | /* INT TYPE */ | ||
699 | static inline int | ||
700 | eet_data_get_int(const Eet_Dictionary *ed __UNUSED__, | ||
701 | const void *src, | ||
702 | const void *src_end, | ||
703 | void *dst) | ||
704 | { | ||
705 | int *d; | ||
706 | |||
707 | if (((char *)src + sizeof(int)) > (char *)src_end) | ||
708 | return -1; | ||
709 | |||
710 | memcpy(dst, src, sizeof(int)); | ||
711 | d = (int *)dst; | ||
712 | CONV32(*d); | ||
713 | return sizeof(int); | ||
714 | } | ||
715 | |||
716 | static void * | ||
717 | eet_data_put_int(Eet_Dictionary *ed __UNUSED__, | ||
718 | const void *src, | ||
719 | int *size_ret) | ||
720 | { | ||
721 | int *s, *d; | ||
722 | |||
723 | d = (int *)malloc(sizeof(int)); | ||
724 | if (!d) | ||
725 | return NULL; | ||
726 | |||
727 | s = (int *)src; | ||
728 | *d = *s; | ||
729 | CONV32(*d); | ||
730 | *size_ret = sizeof(int); | ||
731 | return d; | ||
732 | } | ||
733 | |||
734 | /* LONG LONG TYPE */ | ||
735 | static int | ||
736 | eet_data_get_long_long(const Eet_Dictionary *ed __UNUSED__, | ||
737 | const void *src, | ||
738 | const void *src_end, | ||
739 | void *dst) | ||
740 | { | ||
741 | unsigned long long *d; | ||
742 | |||
743 | if (((char *)src + sizeof(unsigned long long)) > (char *)src_end) | ||
744 | return -1; | ||
745 | |||
746 | memcpy(dst, src, sizeof(unsigned long long)); | ||
747 | d = (unsigned long long *)dst; | ||
748 | CONV64(*d); | ||
749 | return sizeof(unsigned long long); | ||
750 | } | ||
751 | |||
752 | static void * | ||
753 | eet_data_put_long_long(Eet_Dictionary *ed __UNUSED__, | ||
754 | const void *src, | ||
755 | int *size_ret) | ||
756 | { | ||
757 | unsigned long long *s, *d; | ||
758 | |||
759 | d = (unsigned long long *)malloc(sizeof(unsigned long long)); | ||
760 | if (!d) | ||
761 | return NULL; | ||
762 | |||
763 | s = (unsigned long long *)src; | ||
764 | *d = *s; | ||
765 | CONV64(*d); | ||
766 | *size_ret = sizeof(unsigned long long); | ||
767 | return d; | ||
768 | } | ||
769 | |||
770 | /* STRING TYPE */ | ||
771 | static inline int | ||
772 | eet_data_get_string_hash(const Eet_Dictionary *ed, | ||
773 | const void *src, | ||
774 | const void *src_end) | ||
775 | { | ||
776 | if (ed) | ||
777 | { | ||
778 | int idx; | ||
779 | |||
780 | if (eet_data_get_int(ed, src, src_end, &idx) < 0) | ||
781 | return -1; | ||
782 | |||
783 | return eet_dictionary_string_get_hash(ed, idx); | ||
784 | } | ||
785 | |||
786 | return -1; | ||
787 | } | ||
788 | |||
789 | static inline int | ||
790 | eet_data_get_string(const Eet_Dictionary *ed, | ||
791 | const void *src, | ||
792 | const void *src_end, | ||
793 | void *dst) | ||
794 | { | ||
795 | char *s, **d; | ||
796 | |||
797 | d = (char **)dst; | ||
798 | |||
799 | if (ed) | ||
800 | { | ||
801 | const char *str; | ||
802 | int idx; | ||
803 | |||
804 | if (eet_data_get_int(ed, src, src_end, &idx) < 0) | ||
805 | return -1; | ||
806 | |||
807 | str = eet_dictionary_string_get_char(ed, idx); | ||
808 | if (!str) | ||
809 | return -1; | ||
810 | |||
811 | *d = (char *)str; | ||
812 | return eet_dictionary_string_get_size(ed, idx); | ||
813 | } | ||
814 | |||
815 | s = (char *)src; | ||
816 | if (!s) | ||
817 | { | ||
818 | *d = NULL; | ||
819 | return 0; | ||
820 | } | ||
821 | |||
822 | *d = s; | ||
823 | return strlen(s) + 1; | ||
824 | } | ||
825 | |||
826 | static void * | ||
827 | eet_data_put_string(Eet_Dictionary *ed, | ||
828 | const void *src, | ||
829 | int *size_ret) | ||
830 | { | ||
831 | char *s, *d; | ||
832 | int len; | ||
833 | |||
834 | if (ed) | ||
835 | { | ||
836 | const char *str; | ||
837 | int idx; | ||
838 | |||
839 | str = *((const char **)src); | ||
840 | if (!str) | ||
841 | return NULL; | ||
842 | |||
843 | idx = eet_dictionary_string_add(ed, str); | ||
844 | if (idx == -1) | ||
845 | return NULL; | ||
846 | |||
847 | return eet_data_put_int(ed, &idx, size_ret); | ||
848 | } | ||
849 | |||
850 | s = (char *)(*((char **)src)); | ||
851 | if (!s) | ||
852 | return NULL; | ||
853 | |||
854 | len = strlen(s); | ||
855 | d = malloc(len + 1); | ||
856 | if (!d) | ||
857 | return NULL; | ||
858 | |||
859 | memcpy(d, s, len + 1); | ||
860 | *size_ret = len + 1; | ||
861 | return d; | ||
862 | } | ||
863 | |||
864 | /* ALWAYS INLINED STRING TYPE */ | ||
865 | static int | ||
866 | eet_data_get_istring(const Eet_Dictionary *ed __UNUSED__, | ||
867 | const void *src, | ||
868 | const void *src_end, | ||
869 | void *dst) | ||
870 | { | ||
871 | return eet_data_get_string(NULL, src, src_end, dst); | ||
872 | } | ||
873 | |||
874 | static void * | ||
875 | eet_data_put_istring(Eet_Dictionary *ed __UNUSED__, | ||
876 | const void *src, | ||
877 | int *size_ret) | ||
878 | { | ||
879 | return eet_data_put_string(NULL, src, size_ret); | ||
880 | } | ||
881 | |||
882 | /* ALWAYS NULL TYPE */ | ||
883 | static int | ||
884 | eet_data_get_null(const Eet_Dictionary *ed __UNUSED__, | ||
885 | const void *src __UNUSED__, | ||
886 | const void *src_end __UNUSED__, | ||
887 | void *dst) | ||
888 | { | ||
889 | char **d; | ||
890 | |||
891 | d = (char **)dst; | ||
892 | |||
893 | *d = NULL; | ||
894 | return 1; | ||
895 | } | ||
896 | |||
897 | static void * | ||
898 | eet_data_put_null(Eet_Dictionary *ed __UNUSED__, | ||
899 | const void *src __UNUSED__, | ||
900 | int *size_ret) | ||
901 | { | ||
902 | *size_ret = 0; | ||
903 | return NULL; | ||
904 | } | ||
905 | |||
906 | /** | ||
907 | * Fast lookups of simple doubles/floats. | ||
908 | * | ||
909 | * These aren't properly a cache because they don't store pre-calculated | ||
910 | * values, but have a so simple math that is almost as fast. | ||
911 | */ | ||
912 | static inline int | ||
913 | _eet_data_float_cache_get(const char *s, | ||
914 | int len, | ||
915 | float *d) | ||
916 | { | ||
917 | /* fast handle of simple case 0xMp+E*/ | ||
918 | if ((len == 6) && (s[0] == '0') && (s[1] == 'x') && (s[3] == 'p')) | ||
919 | { | ||
920 | int mantisse = (s[2] >= 'a') ? (s[2] - 'a' + 10) : (s[2] - '0'); | ||
921 | int exponent = (s[5] - '0'); | ||
922 | |||
923 | if (s[4] == '+') | ||
924 | *d = (float)(mantisse << exponent); | ||
925 | else | ||
926 | *d = (float)mantisse / (float)(1 << exponent); | ||
927 | |||
928 | return 1; | ||
929 | } | ||
930 | |||
931 | return 0; | ||
932 | } | ||
933 | |||
934 | static inline int | ||
935 | _eet_data_double_cache_get(const char *s, | ||
936 | int len, | ||
937 | double *d) | ||
938 | { | ||
939 | /* fast handle of simple case 0xMp+E*/ | ||
940 | if ((len == 6) && (s[0] == '0') && (s[1] == 'x') && (s[3] == 'p')) | ||
941 | { | ||
942 | int mantisse = (s[2] >= 'a') ? (s[2] - 'a' + 10) : (s[2] - '0'); | ||
943 | int exponent = (s[5] - '0'); | ||
944 | |||
945 | if (s[4] == '+') | ||
946 | *d = (double)(mantisse << exponent); | ||
947 | else | ||
948 | *d = (double)mantisse / (double)(1 << exponent); | ||
949 | |||
950 | return 1; | ||
951 | } | ||
952 | |||
953 | return 0; | ||
954 | } | ||
955 | |||
956 | /* FLOAT TYPE */ | ||
957 | static int | ||
958 | eet_data_get_float(const Eet_Dictionary *ed, | ||
959 | const void *src, | ||
960 | const void *src_end, | ||
961 | void *dst) | ||
962 | { | ||
963 | float *d; | ||
964 | int idx; | ||
965 | |||
966 | d = (float *)dst; | ||
967 | if (!ed) | ||
968 | { | ||
969 | const char *s, *p; | ||
970 | long long mantisse; | ||
971 | long exponent; | ||
972 | int len; | ||
973 | |||
974 | s = (const char *)src; | ||
975 | p = s; | ||
976 | len = 0; | ||
977 | while ((p < (const char *)src_end) && (*p != 0)) {len++; p++; } | ||
978 | |||
979 | if (_eet_data_float_cache_get(s, len, d) != 0) | ||
980 | return len + 1; | ||
981 | |||
982 | if (eina_convert_atod(s, len, &mantisse, &exponent) == EINA_FALSE) | ||
983 | return -1; | ||
984 | |||
985 | *d = (float)ldexp((double)mantisse, exponent); | ||
986 | |||
987 | return len + 1; | ||
988 | } | ||
989 | |||
990 | if (eet_data_get_int(ed, src, src_end, &idx) < 0) | ||
991 | return -1; | ||
992 | |||
993 | if (!eet_dictionary_string_get_float(ed, idx, d)) | ||
994 | return -1; | ||
995 | |||
996 | return 1; | ||
997 | } | ||
998 | |||
999 | static void * | ||
1000 | eet_data_put_float(Eet_Dictionary *ed, | ||
1001 | const void *src, | ||
1002 | int *size_ret) | ||
1003 | { | ||
1004 | char buf[128]; | ||
1005 | int idx; | ||
1006 | |||
1007 | eina_convert_dtoa((double)(*(float *)src), buf); | ||
1008 | |||
1009 | if (!ed) | ||
1010 | { | ||
1011 | char *d; | ||
1012 | int len; | ||
1013 | |||
1014 | len = strlen(buf); | ||
1015 | d = malloc(len + 1); | ||
1016 | if (!d) | ||
1017 | return NULL; | ||
1018 | |||
1019 | memcpy(d, buf, len + 1); | ||
1020 | *size_ret = len + 1; | ||
1021 | return d; | ||
1022 | } | ||
1023 | |||
1024 | idx = eet_dictionary_string_add(ed, buf); | ||
1025 | if (idx == -1) | ||
1026 | return NULL; | ||
1027 | |||
1028 | return eet_data_put_int(ed, &idx, size_ret); | ||
1029 | } | ||
1030 | |||
1031 | /* DOUBLE TYPE */ | ||
1032 | static int | ||
1033 | eet_data_get_double(const Eet_Dictionary *ed, | ||
1034 | const void *src, | ||
1035 | const void *src_end, | ||
1036 | void *dst) | ||
1037 | { | ||
1038 | double *d; | ||
1039 | int idx; | ||
1040 | |||
1041 | d = (double *)dst; | ||
1042 | |||
1043 | if (!ed) | ||
1044 | { | ||
1045 | const char *s, *p; | ||
1046 | long long mantisse = 0; | ||
1047 | long exponent = 0; | ||
1048 | int len; | ||
1049 | |||
1050 | s = (const char *)src; | ||
1051 | p = s; | ||
1052 | len = 0; | ||
1053 | while ((p < (const char *)src_end) && (*p != 0)) {len++; p++; } | ||
1054 | |||
1055 | if (_eet_data_double_cache_get(s, len, d) != 0) | ||
1056 | return len + 1; | ||
1057 | |||
1058 | if (eina_convert_atod(s, len, &mantisse, &exponent) == EINA_FALSE) | ||
1059 | return -1; | ||
1060 | |||
1061 | *d = ldexp((double)mantisse, exponent); | ||
1062 | |||
1063 | return len + 1; | ||
1064 | } | ||
1065 | |||
1066 | if (eet_data_get_int(ed, src, src_end, &idx) < 0) | ||
1067 | return -1; | ||
1068 | |||
1069 | if (!eet_dictionary_string_get_double(ed, idx, d)) | ||
1070 | return -1; | ||
1071 | |||
1072 | return 1; | ||
1073 | } | ||
1074 | |||
1075 | static void * | ||
1076 | eet_data_put_double(Eet_Dictionary *ed, | ||
1077 | const void *src, | ||
1078 | int *size_ret) | ||
1079 | { | ||
1080 | char buf[128]; | ||
1081 | int idx; | ||
1082 | |||
1083 | eina_convert_dtoa((double)(*(double *)src), buf); | ||
1084 | |||
1085 | if (!ed) | ||
1086 | { | ||
1087 | char *d; | ||
1088 | int len; | ||
1089 | |||
1090 | len = strlen(buf); | ||
1091 | d = malloc(len + 1); | ||
1092 | if (!d) | ||
1093 | return NULL; | ||
1094 | |||
1095 | memcpy(d, buf, len + 1); | ||
1096 | *size_ret = len + 1; | ||
1097 | |||
1098 | return d; | ||
1099 | } | ||
1100 | |||
1101 | idx = eet_dictionary_string_add(ed, buf); | ||
1102 | if (idx == -1) | ||
1103 | return NULL; | ||
1104 | |||
1105 | return eet_data_put_int(ed, &idx, size_ret); | ||
1106 | } | ||
1107 | |||
1108 | static int | ||
1109 | eet_data_get_f32p32(const Eet_Dictionary *ed, | ||
1110 | const void *src, | ||
1111 | const void *src_end, | ||
1112 | void *dst) | ||
1113 | { | ||
1114 | Eina_F32p32 *fp; | ||
1115 | int idx; | ||
1116 | |||
1117 | fp = (Eina_F32p32 *)dst; | ||
1118 | |||
1119 | if (!ed) | ||
1120 | { | ||
1121 | const char *s, *p; | ||
1122 | int len; | ||
1123 | |||
1124 | s = (const char *)src; | ||
1125 | p = s; | ||
1126 | len = 0; | ||
1127 | while ((p < (const char *)src_end) && (*p != 0)) { len++; p++; } | ||
1128 | |||
1129 | if (!(eina_convert_atofp(s, len, fp))) | ||
1130 | return -1; | ||
1131 | |||
1132 | return 1; | ||
1133 | } | ||
1134 | |||
1135 | if (eet_data_get_int(ed, src, src_end, &idx) < 0) | ||
1136 | return -1; | ||
1137 | |||
1138 | if (!eet_dictionary_string_get_fp(ed, idx, fp)) | ||
1139 | return -1; | ||
1140 | |||
1141 | return 1; | ||
1142 | } | ||
1143 | |||
1144 | static void * | ||
1145 | eet_data_put_f32p32(Eet_Dictionary *ed, | ||
1146 | const void *src, | ||
1147 | int *size_ret) | ||
1148 | { | ||
1149 | char buf[128]; | ||
1150 | int idx; | ||
1151 | |||
1152 | eina_convert_fptoa((Eina_F32p32)(*(Eina_F32p32 *)src), buf); | ||
1153 | |||
1154 | if (!ed) | ||
1155 | { | ||
1156 | char *d; | ||
1157 | int len; | ||
1158 | |||
1159 | len = strlen(buf); | ||
1160 | d = malloc(len + 1); | ||
1161 | if (!d) | ||
1162 | return NULL; | ||
1163 | |||
1164 | memcpy(d, buf, len + 1); | ||
1165 | *size_ret = len + 1; | ||
1166 | |||
1167 | return d; | ||
1168 | } | ||
1169 | |||
1170 | idx = eet_dictionary_string_add(ed, buf); | ||
1171 | if (idx == -1) | ||
1172 | return NULL; | ||
1173 | |||
1174 | return eet_data_put_int(ed, &idx, size_ret); | ||
1175 | } | ||
1176 | |||
1177 | static int | ||
1178 | eet_data_get_f16p16(const Eet_Dictionary *ed, | ||
1179 | const void *src, | ||
1180 | const void *src_end, | ||
1181 | void *dst) | ||
1182 | { | ||
1183 | Eina_F32p32 tmp; | ||
1184 | Eina_F16p16 *fp; | ||
1185 | |||
1186 | fp = (Eina_F16p16 *)dst; | ||
1187 | |||
1188 | if (eet_data_get_f32p32(ed, src, src_end, &tmp) < 0) | ||
1189 | return -1; | ||
1190 | |||
1191 | *fp = eina_f32p32_to_f16p16(tmp); | ||
1192 | return 1; | ||
1193 | } | ||
1194 | |||
1195 | static void * | ||
1196 | eet_data_put_f16p16(Eet_Dictionary *ed, | ||
1197 | const void *src, | ||
1198 | int *size_ret) | ||
1199 | { | ||
1200 | Eina_F32p32 tmp; | ||
1201 | |||
1202 | tmp = eina_f16p16_to_f32p32((Eina_F16p16)(*(Eina_F16p16 *)src)); | ||
1203 | return eet_data_put_f32p32(ed, &tmp, size_ret); | ||
1204 | } | ||
1205 | |||
1206 | static int | ||
1207 | eet_data_get_f8p24(const Eet_Dictionary *ed, | ||
1208 | const void *src, | ||
1209 | const void *src_end, | ||
1210 | void *dst) | ||
1211 | { | ||
1212 | Eina_F32p32 tmp; | ||
1213 | Eina_F8p24 *fp; | ||
1214 | |||
1215 | fp = (Eina_F8p24 *)dst; | ||
1216 | |||
1217 | if (eet_data_get_f32p32(ed, src, src_end, &tmp) < 0) | ||
1218 | return -1; | ||
1219 | |||
1220 | *fp = eina_f32p32_to_f8p24(tmp); | ||
1221 | return 1; | ||
1222 | } | ||
1223 | |||
1224 | static void * | ||
1225 | eet_data_put_f8p24(Eet_Dictionary *ed, | ||
1226 | const void *src, | ||
1227 | int *size_ret) | ||
1228 | { | ||
1229 | Eina_F32p32 tmp; | ||
1230 | |||
1231 | tmp = eina_f8p24_to_f32p32((Eina_F8p24)(*(Eina_F8p24 *)src)); | ||
1232 | return eet_data_put_f32p32(ed, &tmp, size_ret); | ||
1233 | } | ||
1234 | |||
1235 | static inline int | ||
1236 | eet_data_get_type(const Eet_Dictionary *ed, | ||
1237 | int type, | ||
1238 | const void *src, | ||
1239 | const void *src_end, | ||
1240 | void *dest) | ||
1241 | { | ||
1242 | int ret; | ||
1243 | |||
1244 | ret = eet_basic_codec[type - 1].get(ed, src, src_end, dest); | ||
1245 | return ret; | ||
1246 | } | ||
1247 | |||
1248 | static inline void * | ||
1249 | eet_data_put_type(Eet_Dictionary *ed, | ||
1250 | int type, | ||
1251 | const void *src, | ||
1252 | int *size_ret) | ||
1253 | { | ||
1254 | void *ret; | ||
1255 | |||
1256 | ret = eet_basic_codec[type - 1].put(ed, src, size_ret); | ||
1257 | return ret; | ||
1258 | } | ||
1259 | |||
1260 | static inline Eina_Bool | ||
1261 | eet_data_type_match(int type1, | ||
1262 | int type2) | ||
1263 | { | ||
1264 | if (type1 == type2) | ||
1265 | return EINA_TRUE; | ||
1266 | |||
1267 | /* Note: All floating point type are equivalent and could be read | ||
1268 | without problem by any other floating point getter. */ | ||
1269 | switch (type1) | ||
1270 | { | ||
1271 | case EET_T_FLOAT: | ||
1272 | case EET_T_DOUBLE: | ||
1273 | case EET_T_F32P32: | ||
1274 | case EET_T_F16P16: | ||
1275 | case EET_T_F8P24: | ||
1276 | switch (type2) | ||
1277 | { | ||
1278 | case EET_T_FLOAT: | ||
1279 | case EET_T_DOUBLE: | ||
1280 | case EET_T_F32P32: | ||
1281 | case EET_T_F16P16: | ||
1282 | case EET_T_F8P24: | ||
1283 | return EINA_TRUE; | ||
1284 | |||
1285 | default: | ||
1286 | break; | ||
1287 | } /* switch */ | ||
1288 | break; | ||
1289 | |||
1290 | default: | ||
1291 | break; | ||
1292 | } | ||
1293 | |||
1294 | return EINA_FALSE; | ||
1295 | } | ||
1296 | |||
1297 | /* chunk format... | ||
1298 | * | ||
1299 | * char[4] = "CHnK"; // untyped data ... or | ||
1300 | * char[4] = "CHKx"; // typed data - x == type | ||
1301 | * | ||
1302 | * int = chunk size (including magic string); | ||
1303 | * char[] = chunk magic/name string (0 byte terminated); | ||
1304 | * ... sub-chunks (a chunk can contain chuncks recusrively) ... | ||
1305 | * or | ||
1306 | * ... payload data ... | ||
1307 | * | ||
1308 | */ | ||
1309 | |||
1310 | static inline void | ||
1311 | eet_data_chunk_get(const Eet_Dictionary *ed, | ||
1312 | Eet_Data_Chunk *chnk, | ||
1313 | const void *src, | ||
1314 | int size) | ||
1315 | { | ||
1316 | const char *s; | ||
1317 | int ret1, ret2; | ||
1318 | |||
1319 | if (!src) | ||
1320 | return; | ||
1321 | |||
1322 | if (size <= 8) | ||
1323 | return; | ||
1324 | |||
1325 | if (!chnk) | ||
1326 | return; | ||
1327 | |||
1328 | s = src; | ||
1329 | if (s[2] == 'K') | ||
1330 | { | ||
1331 | if ((s[0] != 'C') || (s[1] != 'H') || (s[2] != 'K')) | ||
1332 | return; | ||
1333 | |||
1334 | chnk->type = (unsigned char)(s[3]); | ||
1335 | if (chnk->type >= EET_I_LIMIT) | ||
1336 | { | ||
1337 | chnk->group_type = | ||
1338 | ((chnk->type - EET_I_LIMIT) & 0xF) + EET_G_UNKNOWN; | ||
1339 | switch ((chnk->type - EET_I_LIMIT) & 0xF0) | ||
1340 | { | ||
1341 | #define EET_UNMATCH_TYPE(Type) \ | ||
1342 | case EET_I_ ## Type: chnk->type = EET_T_ ## Type; break; | ||
1343 | |||
1344 | EET_UNMATCH_TYPE(STRING); | ||
1345 | EET_UNMATCH_TYPE(INLINED_STRING); | ||
1346 | EET_UNMATCH_TYPE(NULL); | ||
1347 | |||
1348 | default: | ||
1349 | return; | ||
1350 | } | ||
1351 | } | ||
1352 | else if (chnk->type > EET_T_LAST) | ||
1353 | { | ||
1354 | chnk->group_type = chnk->type; | ||
1355 | chnk->type = EET_T_UNKNOW; | ||
1356 | } | ||
1357 | else | ||
1358 | chnk->group_type = EET_G_UNKNOWN; | ||
1359 | if ((chnk->type >= EET_T_LAST) || | ||
1360 | (chnk->group_type >= | ||
1361 | EET_G_LAST)) | ||
1362 | { | ||
1363 | chnk->type = 0; | ||
1364 | chnk->group_type = 0; | ||
1365 | } | ||
1366 | } | ||
1367 | else if ((s[0] != 'C') || (s[1] != 'H') || (s[2] != 'n') || (s[3] != 'K')) | ||
1368 | return; | ||
1369 | |||
1370 | ret1 = eet_data_get_type(ed, EET_T_INT, (s + 4), (s + size), &(chnk->size)); | ||
1371 | |||
1372 | if (ret1 <= 0) | ||
1373 | return; | ||
1374 | |||
1375 | if ((chnk->size < 0) || ((chnk->size + 8) > size)) | ||
1376 | return; | ||
1377 | |||
1378 | ret2 = eet_data_get_type(ed, EET_T_STRING, (s + 8), (s + size), &(chnk->name)); | ||
1379 | |||
1380 | if (ret2 <= 0) | ||
1381 | return; | ||
1382 | |||
1383 | chnk->len = ret2; | ||
1384 | |||
1385 | /* Precalc hash */ | ||
1386 | chnk->hash = eet_data_get_string_hash(ed, (s + 8), (s + size)); | ||
1387 | |||
1388 | if (ed) | ||
1389 | { | ||
1390 | chnk->data = (char *)src + 4 + ret1 + sizeof(int); | ||
1391 | chnk->size -= sizeof(int); | ||
1392 | } | ||
1393 | else | ||
1394 | { | ||
1395 | chnk->data = (char *)src + 4 + ret1 + chnk->len; | ||
1396 | chnk->size -= chnk->len; | ||
1397 | } | ||
1398 | |||
1399 | return; | ||
1400 | } | ||
1401 | |||
1402 | static inline Eet_Data_Chunk * | ||
1403 | eet_data_chunk_new(void *data, | ||
1404 | int size, | ||
1405 | const char *name, | ||
1406 | int type, | ||
1407 | int group_type) | ||
1408 | { | ||
1409 | Eet_Data_Chunk *chnk; | ||
1410 | |||
1411 | if (!name) | ||
1412 | return NULL; | ||
1413 | |||
1414 | chnk = calloc(1, sizeof(Eet_Data_Chunk)); | ||
1415 | if (!chnk) | ||
1416 | return NULL; | ||
1417 | |||
1418 | /* Note: Another security, so older eet library could read file | ||
1419 | saved with fixed point value. */ | ||
1420 | if (type == EET_T_F32P32 | ||
1421 | || type == EET_T_F16P16 | ||
1422 | || type == EET_T_F8P24) | ||
1423 | type = EET_T_DOUBLE; | ||
1424 | |||
1425 | chnk->name = strdup(name); | ||
1426 | chnk->len = strlen(name) + 1; | ||
1427 | chnk->size = size; | ||
1428 | chnk->data = data; | ||
1429 | chnk->type = type; | ||
1430 | chnk->group_type = group_type; | ||
1431 | return chnk; | ||
1432 | } | ||
1433 | |||
1434 | static inline void | ||
1435 | eet_data_chunk_free(Eet_Data_Chunk *chnk) | ||
1436 | { | ||
1437 | if (chnk->name) | ||
1438 | free(chnk->name); | ||
1439 | |||
1440 | free(chnk); | ||
1441 | } | ||
1442 | |||
1443 | static inline Eet_Data_Stream * | ||
1444 | eet_data_stream_new(void) | ||
1445 | { | ||
1446 | Eet_Data_Stream *ds; | ||
1447 | |||
1448 | ds = calloc(1, sizeof(Eet_Data_Stream)); | ||
1449 | if (!ds) | ||
1450 | return NULL; | ||
1451 | |||
1452 | return ds; | ||
1453 | } | ||
1454 | |||
1455 | static inline void | ||
1456 | eet_data_stream_free(Eet_Data_Stream *ds) | ||
1457 | { | ||
1458 | if (ds->data) | ||
1459 | free(ds->data); | ||
1460 | |||
1461 | free(ds); | ||
1462 | } | ||
1463 | |||
1464 | static inline void | ||
1465 | eet_data_stream_flush(Eet_Data_Stream *ds) | ||
1466 | { | ||
1467 | free(ds); | ||
1468 | } | ||
1469 | |||
1470 | static inline void | ||
1471 | eet_data_stream_write(Eet_Data_Stream *ds, | ||
1472 | const void *data, | ||
1473 | int size) | ||
1474 | { | ||
1475 | char *p; | ||
1476 | |||
1477 | if ((ds->pos + size) > ds->size) | ||
1478 | { | ||
1479 | ds->data = realloc(ds->data, ds->size + size + 512); | ||
1480 | if (!ds->data) | ||
1481 | { | ||
1482 | ds->pos = 0; | ||
1483 | ds->size = 0; | ||
1484 | return; | ||
1485 | } | ||
1486 | |||
1487 | ds->size = ds->size + size + 512; | ||
1488 | } | ||
1489 | |||
1490 | p = ds->data; | ||
1491 | memcpy(p + ds->pos, data, size); | ||
1492 | ds->pos += size; | ||
1493 | } | ||
1494 | |||
1495 | static void | ||
1496 | eet_data_chunk_put(Eet_Dictionary *ed, | ||
1497 | Eet_Data_Chunk *chnk, | ||
1498 | Eet_Data_Stream *ds) | ||
1499 | { | ||
1500 | int *size; | ||
1501 | void *string; | ||
1502 | int s; | ||
1503 | int size_ret = 0; | ||
1504 | int string_ret = 0; | ||
1505 | unsigned char buf[4] = "CHK"; | ||
1506 | |||
1507 | /* disable this check - it will allow empty chunks to be written. this is | ||
1508 | * right for corner-cases when y have a struct with empty fields (empty | ||
1509 | * strings or empty list ptrs etc.) */ | ||
1510 | /* if (!chnk->data && chnk->type != EET_T_NULL) return; */ | ||
1511 | /* chunk head */ | ||
1512 | |||
1513 | /* eet_data_stream_write(ds, "CHnK", 4);*/ | ||
1514 | if (chnk->type != EET_T_UNKNOW) | ||
1515 | { | ||
1516 | if (chnk->group_type != EET_G_UNKNOWN) | ||
1517 | { | ||
1518 | int type = EET_I_LIMIT + chnk->group_type - EET_G_UNKNOWN; | ||
1519 | |||
1520 | switch (chnk->type) | ||
1521 | { | ||
1522 | /* Only make sense with pointer type. */ | ||
1523 | #define EET_MATCH_TYPE(Type) \ | ||
1524 | case EET_T_ ## Type: type += EET_I_ ## Type; break; | ||
1525 | |||
1526 | EET_MATCH_TYPE(STRING); | ||
1527 | EET_MATCH_TYPE(INLINED_STRING); | ||
1528 | EET_MATCH_TYPE(NULL); | ||
1529 | |||
1530 | default: | ||
1531 | return; | ||
1532 | } | ||
1533 | |||
1534 | buf[3] = type; | ||
1535 | } | ||
1536 | else | ||
1537 | buf[3] = chnk->type; | ||
1538 | } | ||
1539 | else | ||
1540 | buf[3] = chnk->group_type; | ||
1541 | |||
1542 | string = eet_data_put_string(ed, &chnk->name, &string_ret); | ||
1543 | if (!string) | ||
1544 | return; | ||
1545 | |||
1546 | /* size of chunk payload data + name */ | ||
1547 | s = chnk->size + string_ret; | ||
1548 | size = eet_data_put_int(ed, &s, &size_ret); | ||
1549 | |||
1550 | /* FIXME: If something goes wrong the resulting file will be corrupted. */ | ||
1551 | if (!size) | ||
1552 | goto on_error; | ||
1553 | |||
1554 | eet_data_stream_write(ds, buf, 4); | ||
1555 | |||
1556 | /* write chunk length */ | ||
1557 | eet_data_stream_write(ds, size, size_ret); | ||
1558 | |||
1559 | /* write chunk name */ | ||
1560 | eet_data_stream_write(ds, string, string_ret); | ||
1561 | |||
1562 | /* write payload */ | ||
1563 | if (chnk->data) | ||
1564 | eet_data_stream_write(ds, chnk->data, chnk->size); | ||
1565 | |||
1566 | free(string); | ||
1567 | on_error: | ||
1568 | free(size); | ||
1569 | } | ||
1570 | |||
1571 | /*---*/ | ||
1572 | |||
1573 | static void | ||
1574 | _eet_descriptor_hash_new(Eet_Data_Descriptor *edd) | ||
1575 | { | ||
1576 | int i; | ||
1577 | |||
1578 | edd->elements.hash.size = 1 << 6; | ||
1579 | edd->elements.hash.buckets = calloc( | ||
1580 | 1, | ||
1581 | sizeof(Eet_Data_Descriptor_Hash) * | ||
1582 | edd->elements.hash.size); | ||
1583 | for (i = 0; i < edd->elements.num; i++) | ||
1584 | { | ||
1585 | Eet_Data_Element *ede; | ||
1586 | int hash; | ||
1587 | |||
1588 | ede = &(edd->elements.set[i]); | ||
1589 | hash = _eet_hash_gen((char *)ede->name, 6); | ||
1590 | if (!edd->elements.hash.buckets[hash].element) | ||
1591 | edd->elements.hash.buckets[hash].element = ede; | ||
1592 | else | ||
1593 | { | ||
1594 | Eet_Data_Descriptor_Hash *bucket; | ||
1595 | |||
1596 | bucket = calloc(1, sizeof(Eet_Data_Descriptor_Hash)); | ||
1597 | bucket->element = ede; | ||
1598 | bucket->next = edd->elements.hash.buckets[hash].next; | ||
1599 | edd->elements.hash.buckets[hash].next = bucket; | ||
1600 | } | ||
1601 | } | ||
1602 | } | ||
1603 | |||
1604 | static void | ||
1605 | _eet_descriptor_hash_free(Eet_Data_Descriptor *edd) | ||
1606 | { | ||
1607 | int i; | ||
1608 | |||
1609 | for (i = 0; i < edd->elements.hash.size; i++) | ||
1610 | { | ||
1611 | Eet_Data_Descriptor_Hash *bucket, *pbucket; | ||
1612 | |||
1613 | bucket = edd->elements.hash.buckets[i].next; | ||
1614 | while (bucket) | ||
1615 | { | ||
1616 | pbucket = bucket; | ||
1617 | bucket = bucket->next; | ||
1618 | free(pbucket); | ||
1619 | } | ||
1620 | } | ||
1621 | if (edd->elements.hash.buckets) | ||
1622 | free(edd->elements.hash.buckets); | ||
1623 | } | ||
1624 | |||
1625 | static Eet_Data_Element * | ||
1626 | _eet_descriptor_hash_find(Eet_Data_Descriptor *edd, | ||
1627 | char *name, | ||
1628 | int hash) | ||
1629 | { | ||
1630 | Eet_Data_Descriptor_Hash *bucket; | ||
1631 | |||
1632 | if (hash < 0) | ||
1633 | hash = _eet_hash_gen(name, 6); | ||
1634 | else | ||
1635 | hash &= 0x3f; | ||
1636 | |||
1637 | if (!edd->elements.hash.buckets[hash].element) | ||
1638 | return NULL; /* | ||
1639 | When we use the dictionary as a source for chunk name, we will always | ||
1640 | have the same pointer in name. It's a good idea to just compare pointer | ||
1641 | instead of running strcmp on both string. | ||
1642 | */ | ||
1643 | |||
1644 | if (edd->elements.hash.buckets[hash].element->directory_name_ptr == name) | ||
1645 | return edd->elements.hash.buckets[hash].element; | ||
1646 | |||
1647 | if (!strcmp(edd->elements.hash.buckets[hash].element->name, name)) | ||
1648 | { | ||
1649 | edd->elements.hash.buckets[hash].element->directory_name_ptr = name; | ||
1650 | return edd->elements.hash.buckets[hash].element; | ||
1651 | } | ||
1652 | |||
1653 | bucket = edd->elements.hash.buckets[hash].next; | ||
1654 | while (bucket) | ||
1655 | { | ||
1656 | if (bucket->element->directory_name_ptr == name) | ||
1657 | return bucket->element; | ||
1658 | |||
1659 | if (!strcmp(bucket->element->name, name)) | ||
1660 | { | ||
1661 | bucket->element->directory_name_ptr = name; | ||
1662 | return bucket->element; | ||
1663 | } | ||
1664 | |||
1665 | bucket = bucket->next; | ||
1666 | } | ||
1667 | return NULL; | ||
1668 | } | ||
1669 | |||
1670 | static void * | ||
1671 | _eet_mem_alloc(size_t size) | ||
1672 | { | ||
1673 | return calloc(1, size); | ||
1674 | } | ||
1675 | |||
1676 | static void | ||
1677 | _eet_mem_free(void *mem) | ||
1678 | { | ||
1679 | free(mem); | ||
1680 | } | ||
1681 | |||
1682 | static char * | ||
1683 | _eet_str_alloc(const char *str) | ||
1684 | { | ||
1685 | return strdup(str); | ||
1686 | } | ||
1687 | |||
1688 | static void | ||
1689 | _eet_str_free(const char *str) | ||
1690 | { | ||
1691 | free((char *)str); | ||
1692 | } | ||
1693 | |||
1694 | static Eina_Hash * | ||
1695 | _eet_eina_hash_add_alloc(Eina_Hash *hash, | ||
1696 | const char *key, | ||
1697 | void *data) | ||
1698 | { | ||
1699 | if (!hash) | ||
1700 | hash = eina_hash_string_small_new(NULL); | ||
1701 | |||
1702 | if (!hash) | ||
1703 | return NULL; | ||
1704 | |||
1705 | eina_hash_add(hash, key, data); | ||
1706 | return hash; | ||
1707 | } | ||
1708 | |||
1709 | static Eina_Hash * | ||
1710 | _eet_eina_hash_direct_add_alloc(Eina_Hash *hash, | ||
1711 | const char *key, | ||
1712 | void *data) | ||
1713 | { | ||
1714 | if (!hash) | ||
1715 | hash = eina_hash_string_small_new(NULL); | ||
1716 | |||
1717 | if (!hash) | ||
1718 | return NULL; | ||
1719 | |||
1720 | eina_hash_direct_add(hash, key, data); | ||
1721 | return hash; | ||
1722 | } | ||
1723 | |||
1724 | static char * | ||
1725 | _eet_str_direct_alloc(const char *str) | ||
1726 | { | ||
1727 | return (char *)str; | ||
1728 | } | ||
1729 | |||
1730 | static void | ||
1731 | _eet_str_direct_free(const char *str __UNUSED__) | ||
1732 | { | ||
1733 | } | ||
1734 | |||
1735 | static void | ||
1736 | _eet_eina_hash_foreach(void *hash, | ||
1737 | Eina_Hash_Foreach cb, | ||
1738 | void *fdata) | ||
1739 | { | ||
1740 | if (hash) | ||
1741 | eina_hash_foreach(hash, cb, fdata); | ||
1742 | } | ||
1743 | |||
1744 | static void | ||
1745 | _eet_eina_hash_free(void *hash) | ||
1746 | { | ||
1747 | if (hash) | ||
1748 | eina_hash_free(hash); | ||
1749 | } | ||
1750 | |||
1751 | /*---*/ | ||
1752 | EAPI Eina_Bool | ||
1753 | eet_eina_stream_data_descriptor_class_set(Eet_Data_Descriptor_Class *eddc, | ||
1754 | /* When we change the structure content in the future, we need to handle old structure type too */ | ||
1755 | unsigned int eddc_size, | ||
1756 | const char *name, | ||
1757 | int size) | ||
1758 | { | ||
1759 | if (!eddc || !name || eddc_size != sizeof (Eet_Data_Descriptor_Class)) | ||
1760 | return EINA_FALSE; | ||
1761 | |||
1762 | eddc->name = name; | ||
1763 | eddc->size = size; | ||
1764 | eddc->version = EET_DATA_DESCRIPTOR_CLASS_VERSION; | ||
1765 | |||
1766 | eddc->func.mem_alloc = _eet_mem_alloc; | ||
1767 | eddc->func.mem_free = _eet_mem_free; | ||
1768 | eddc->func.str_alloc = (char *(*)(const char *))eina_stringshare_add; | ||
1769 | eddc->func.str_free = eina_stringshare_del; | ||
1770 | eddc->func.list_next = (void *(*)(void *))eina_list_next; | ||
1771 | eddc->func.list_append = (void *(*)(void *, void *))eina_list_append; | ||
1772 | eddc->func.list_data = (void *(*)(void *))eina_list_data_get; | ||
1773 | eddc->func.list_free = (void *(*)(void *))eina_list_free; | ||
1774 | eddc->func.hash_foreach = (void (*)(void *, int (*)(void *, const char *, void *, void *), void *))_eet_eina_hash_foreach; | ||
1775 | eddc->func.hash_add = (void *(*)(void *, const char *, void *))_eet_eina_hash_add_alloc; | ||
1776 | eddc->func.hash_free = (void (*)(void *))_eet_eina_hash_free; | ||
1777 | |||
1778 | /* This will cause an ABI incompatibility */ | ||
1779 | eddc->func.array_alloc = _eet_mem_alloc; | ||
1780 | eddc->func.array_free = _eet_mem_free; | ||
1781 | |||
1782 | return EINA_TRUE; | ||
1783 | } | ||
1784 | |||
1785 | EAPI Eina_Bool | ||
1786 | eet_eina_file_data_descriptor_class_set(Eet_Data_Descriptor_Class *eddc, | ||
1787 | /* When we change the structure content in the future, we need to handle old structure type too */ | ||
1788 | unsigned int eddc_size, | ||
1789 | const char *name, | ||
1790 | int size) | ||
1791 | { | ||
1792 | if (!eet_eina_stream_data_descriptor_class_set(eddc, eddc_size, name, size)) | ||
1793 | return EINA_FALSE; | ||
1794 | |||
1795 | eddc->version = EET_DATA_DESCRIPTOR_CLASS_VERSION; | ||
1796 | |||
1797 | eddc->func.hash_add = (void *(*)(void *, const char *, void *))_eet_eina_hash_direct_add_alloc; | ||
1798 | eddc->func.str_direct_alloc = _eet_str_direct_alloc; | ||
1799 | eddc->func.str_direct_free = _eet_str_direct_free; | ||
1800 | |||
1801 | return EINA_TRUE; | ||
1802 | } | ||
1803 | |||
1804 | static Eet_Data_Descriptor * | ||
1805 | _eet_data_descriptor_new(const Eet_Data_Descriptor_Class *eddc, | ||
1806 | int version) | ||
1807 | { | ||
1808 | Eet_Data_Descriptor *edd; | ||
1809 | |||
1810 | if (!eddc) | ||
1811 | return NULL; | ||
1812 | |||
1813 | edd = calloc(1, sizeof (Eet_Data_Descriptor)); | ||
1814 | if (!edd) | ||
1815 | return NULL; | ||
1816 | |||
1817 | edd->name = eddc->name; | ||
1818 | edd->ed = NULL; | ||
1819 | edd->size = eddc->size; | ||
1820 | edd->func.mem_alloc = _eet_mem_alloc; | ||
1821 | edd->func.mem_free = _eet_mem_free; | ||
1822 | edd->func.str_alloc = _eet_str_alloc; | ||
1823 | edd->func.str_free = _eet_str_free; | ||
1824 | if (eddc->func.mem_alloc) | ||
1825 | edd->func.mem_alloc = eddc->func.mem_alloc; | ||
1826 | |||
1827 | if (eddc->func.mem_free) | ||
1828 | edd->func.mem_free = eddc->func.mem_free; | ||
1829 | |||
1830 | if (eddc->func.str_alloc) | ||
1831 | edd->func.str_alloc = eddc->func.str_alloc; | ||
1832 | |||
1833 | if (eddc->func.str_free) | ||
1834 | edd->func.str_free = eddc->func.str_free; | ||
1835 | |||
1836 | edd->func.list_next = eddc->func.list_next; | ||
1837 | edd->func.list_append = eddc->func.list_append; | ||
1838 | edd->func.list_data = eddc->func.list_data; | ||
1839 | edd->func.list_free = eddc->func.list_free; | ||
1840 | edd->func.hash_foreach = eddc->func.hash_foreach; | ||
1841 | edd->func.hash_add = eddc->func.hash_add; | ||
1842 | edd->func.hash_free = eddc->func.hash_free; | ||
1843 | |||
1844 | if (eddc->version > 1 && version > 1) | ||
1845 | { | ||
1846 | edd->func.str_direct_alloc = eddc->func.str_direct_alloc; | ||
1847 | edd->func.str_direct_free = eddc->func.str_direct_free; | ||
1848 | } | ||
1849 | |||
1850 | if (eddc->version > 2) | ||
1851 | { | ||
1852 | edd->func.type_get = eddc->func.type_get; | ||
1853 | edd->func.type_set = eddc->func.type_set; | ||
1854 | } | ||
1855 | |||
1856 | if (eddc->version > 3) | ||
1857 | { | ||
1858 | edd->func.array_alloc = eddc->func.array_alloc; | ||
1859 | edd->func.array_free = eddc->func.array_free; | ||
1860 | } | ||
1861 | |||
1862 | return edd; | ||
1863 | } | ||
1864 | |||
1865 | EAPI Eet_Data_Descriptor * | ||
1866 | eet_data_descriptor_new(const char *name, | ||
1867 | int size, | ||
1868 | Eet_Descriptor_List_Next_Callback func_list_next, | ||
1869 | Eet_Descriptor_List_Append_Callback func_list_append, | ||
1870 | Eet_Descriptor_List_Data_Callback func_list_data, | ||
1871 | Eet_Descriptor_List_Free_Callback func_list_free, | ||
1872 | Eet_Descriptor_Hash_Foreach_Callback func_hash_foreach, | ||
1873 | Eet_Descriptor_Hash_Add_Callback func_hash_add, | ||
1874 | Eet_Descriptor_Hash_Free_Callback func_hash_free) | ||
1875 | { | ||
1876 | Eet_Data_Descriptor_Class eddc; | ||
1877 | |||
1878 | if (!name) | ||
1879 | return NULL; | ||
1880 | |||
1881 | memset(&eddc, 0, sizeof (Eet_Data_Descriptor_Class)); | ||
1882 | |||
1883 | eddc.name = name; | ||
1884 | eddc.size = size; | ||
1885 | eddc.version = 0; | ||
1886 | |||
1887 | eddc.func.list_next = func_list_next; | ||
1888 | eddc.func.list_append = func_list_append; | ||
1889 | eddc.func.list_data = func_list_data; | ||
1890 | eddc.func.list_free = func_list_free; | ||
1891 | eddc.func.hash_foreach = func_hash_foreach; | ||
1892 | eddc.func.hash_add = func_hash_add; | ||
1893 | eddc.func.hash_free = func_hash_free; | ||
1894 | |||
1895 | return _eet_data_descriptor_new(&eddc, 0); | ||
1896 | } | ||
1897 | |||
1898 | EAPI Eet_Data_Descriptor * | ||
1899 | eet_data_descriptor2_new(const Eet_Data_Descriptor_Class *eddc) | ||
1900 | { | ||
1901 | return _eet_data_descriptor_new(eddc, 1); | ||
1902 | } | ||
1903 | |||
1904 | EAPI Eet_Data_Descriptor * | ||
1905 | eet_data_descriptor3_new(const Eet_Data_Descriptor_Class *eddc) | ||
1906 | { | ||
1907 | return _eet_data_descriptor_new(eddc, 2); | ||
1908 | } | ||
1909 | |||
1910 | EAPI Eet_Data_Descriptor * | ||
1911 | eet_data_descriptor_stream_new(const Eet_Data_Descriptor_Class *eddc) | ||
1912 | { | ||
1913 | return _eet_data_descriptor_new(eddc, 1); | ||
1914 | } | ||
1915 | |||
1916 | EAPI Eet_Data_Descriptor * | ||
1917 | eet_data_descriptor_file_new(const Eet_Data_Descriptor_Class *eddc) | ||
1918 | { | ||
1919 | return _eet_data_descriptor_new(eddc, 2); | ||
1920 | } | ||
1921 | |||
1922 | EAPI void | ||
1923 | eet_data_descriptor_free(Eet_Data_Descriptor *edd) | ||
1924 | { | ||
1925 | if (!edd) | ||
1926 | return; | ||
1927 | |||
1928 | _eet_descriptor_hash_free(edd); | ||
1929 | if (edd->elements.set) | ||
1930 | free(edd->elements.set); | ||
1931 | |||
1932 | free(edd); | ||
1933 | } | ||
1934 | |||
1935 | EAPI void | ||
1936 | eet_data_descriptor_element_add(Eet_Data_Descriptor *edd, | ||
1937 | const char *name, | ||
1938 | int type, | ||
1939 | int group_type, | ||
1940 | int offset, | ||
1941 | int count, | ||
1942 | /* int counter_offset, */ | ||
1943 | const char *counter_name /* FIXME: Useless should go on a major release */, | ||
1944 | Eet_Data_Descriptor *subtype) | ||
1945 | { | ||
1946 | Eet_Data_Element *ede; | ||
1947 | Eet_Data_Element *tmp; | ||
1948 | |||
1949 | /* UNION, VARIANT type would not work with simple type, we need a way to map the type. */ | ||
1950 | if ((group_type == EET_G_UNION | ||
1951 | || group_type == EET_G_VARIANT) | ||
1952 | && | ||
1953 | (type != EET_T_UNKNOW | ||
1954 | || !subtype | ||
1955 | || !subtype->func.type_get | ||
1956 | || !subtype->func.type_set)) | ||
1957 | return; | ||
1958 | |||
1959 | /* VARIANT type will only work if the map only contains EET_G_*, but not UNION, VARIANT and ARRAY. */ | ||
1960 | if (group_type == EET_G_VARIANT) | ||
1961 | { | ||
1962 | int i; | ||
1963 | |||
1964 | for (i = 0; i < subtype->elements.num; ++i) | ||
1965 | if (subtype->elements.set[i].type != EET_T_UNKNOW | ||
1966 | && subtype->elements.set[i].group_type > EET_G_VAR_ARRAY | ||
1967 | && subtype->elements.set[i].group_type < EET_G_UNION) | ||
1968 | return; | ||
1969 | |||
1970 | subtype->unified_type = EINA_TRUE; | ||
1971 | } | ||
1972 | |||
1973 | if (subtype | ||
1974 | && subtype->unified_type | ||
1975 | && (type != EET_T_UNKNOW | ||
1976 | || group_type < EET_G_UNION)) | ||
1977 | return; | ||
1978 | |||
1979 | /* Sanity check done, let allocate ! */ | ||
1980 | edd->elements.num++; | ||
1981 | tmp = realloc(edd->elements.set, edd->elements.num * sizeof(Eet_Data_Element)); | ||
1982 | if (!tmp) | ||
1983 | return; | ||
1984 | |||
1985 | edd->elements.set = tmp; | ||
1986 | ede = &(edd->elements.set[edd->elements.num - 1]); | ||
1987 | ede->name = name; | ||
1988 | ede->directory_name_ptr = NULL; | ||
1989 | |||
1990 | /* | ||
1991 | * We do a special case when we do list,hash or whatever group of simple type. | ||
1992 | * Instead of handling it in encode/decode/dump/undump, we create an | ||
1993 | * implicit structure with only the simple type. | ||
1994 | */ | ||
1995 | if ((group_type > EET_G_UNKNOWN) | ||
1996 | && (group_type < EET_G_LAST) | ||
1997 | && (((type > EET_T_UNKNOW) && (type < EET_T_STRING)) | ||
1998 | || ((type > EET_T_NULL) && (type < EET_T_LAST))) | ||
1999 | && (!subtype)) | ||
2000 | { | ||
2001 | subtype = calloc(1, sizeof (Eet_Data_Descriptor)); | ||
2002 | if (!subtype) | ||
2003 | return; | ||
2004 | |||
2005 | subtype->name = "implicit"; | ||
2006 | subtype->size = eet_basic_codec[type - 1].size; | ||
2007 | memcpy(&subtype->func, &edd->func, sizeof(subtype->func)); | ||
2008 | |||
2009 | eet_data_descriptor_element_add(subtype, | ||
2010 | eet_basic_codec[type - 1].name, | ||
2011 | type, | ||
2012 | EET_G_UNKNOWN, | ||
2013 | 0, | ||
2014 | 0, | ||
2015 | /* 0, */ NULL, | ||
2016 | NULL); | ||
2017 | type = EET_T_UNKNOW; | ||
2018 | } | ||
2019 | |||
2020 | ede->type = type; | ||
2021 | ede->group_type = group_type; | ||
2022 | ede->offset = offset; | ||
2023 | ede->count = count; | ||
2024 | /* FIXME: For the time being, VAR_ARRAY, UNION and VARIANT will put the counter_offset in count. */ | ||
2025 | ede->counter_offset = count; | ||
2026 | /* ede->counter_offset = counter_offset; */ | ||
2027 | ede->counter_name = counter_name; | ||
2028 | |||
2029 | ede->subtype = subtype; | ||
2030 | } | ||
2031 | |||
2032 | EAPI void * | ||
2033 | eet_data_read_cipher(Eet_File *ef, | ||
2034 | Eet_Data_Descriptor *edd, | ||
2035 | const char *name, | ||
2036 | const char *cipher_key) | ||
2037 | { | ||
2038 | const Eet_Dictionary *ed = NULL; | ||
2039 | const void *data = NULL; | ||
2040 | void *data_dec; | ||
2041 | Eet_Free_Context context; | ||
2042 | int required_free = 0; | ||
2043 | int size; | ||
2044 | |||
2045 | ed = eet_dictionary_get(ef); | ||
2046 | |||
2047 | if (!cipher_key) | ||
2048 | data = eet_read_direct(ef, name, &size); | ||
2049 | |||
2050 | if (!data) | ||
2051 | { | ||
2052 | required_free = 1; | ||
2053 | data = eet_read_cipher(ef, name, &size, cipher_key); | ||
2054 | if (!data) | ||
2055 | return NULL; | ||
2056 | } | ||
2057 | |||
2058 | eet_free_context_init(&context); | ||
2059 | data_dec = _eet_data_descriptor_decode(&context, ed, edd, data, size, NULL, 0); | ||
2060 | eet_free_context_shutdown(&context); | ||
2061 | |||
2062 | if (required_free) | ||
2063 | free((void *)data); | ||
2064 | |||
2065 | return data_dec; | ||
2066 | } | ||
2067 | |||
2068 | EAPI Eet_Node * | ||
2069 | eet_data_node_read_cipher(Eet_File *ef, | ||
2070 | const char *name, | ||
2071 | const char *cipher_key) | ||
2072 | { | ||
2073 | const Eet_Dictionary *ed = NULL; | ||
2074 | const void *data = NULL; | ||
2075 | Eet_Node *result; | ||
2076 | Eet_Free_Context context; | ||
2077 | int required_free = 0; | ||
2078 | int size; | ||
2079 | |||
2080 | ed = eet_dictionary_get(ef); | ||
2081 | |||
2082 | if (!cipher_key) | ||
2083 | data = eet_read_direct(ef, name, &size); | ||
2084 | |||
2085 | if (!data) | ||
2086 | { | ||
2087 | required_free = 1; | ||
2088 | data = eet_read_cipher(ef, name, &size, cipher_key); | ||
2089 | if (!data) | ||
2090 | return NULL; | ||
2091 | } | ||
2092 | |||
2093 | eet_free_context_init(&context); | ||
2094 | result = _eet_data_descriptor_decode(&context, ed, NULL, data, size, NULL, 0); | ||
2095 | eet_free_context_shutdown(&context); | ||
2096 | |||
2097 | if (required_free) | ||
2098 | free((void *)data); | ||
2099 | |||
2100 | return result; | ||
2101 | } | ||
2102 | |||
2103 | EAPI void * | ||
2104 | eet_data_read(Eet_File *ef, | ||
2105 | Eet_Data_Descriptor *edd, | ||
2106 | const char *name) | ||
2107 | { | ||
2108 | return eet_data_read_cipher(ef, edd, name, NULL); | ||
2109 | } | ||
2110 | |||
2111 | EAPI int | ||
2112 | eet_data_write_cipher(Eet_File *ef, | ||
2113 | Eet_Data_Descriptor *edd, | ||
2114 | const char *name, | ||
2115 | const char *cipher_key, | ||
2116 | const void *data, | ||
2117 | int compress) | ||
2118 | { | ||
2119 | Eet_Dictionary *ed; | ||
2120 | void *data_enc; | ||
2121 | int size; | ||
2122 | int val; | ||
2123 | |||
2124 | ed = eet_dictionary_get(ef); | ||
2125 | |||
2126 | data_enc = _eet_data_descriptor_encode(ed, edd, data, &size); | ||
2127 | if (!data_enc) | ||
2128 | return 0; | ||
2129 | |||
2130 | val = eet_write_cipher(ef, name, data_enc, size, compress, cipher_key); | ||
2131 | free(data_enc); | ||
2132 | return val; | ||
2133 | } | ||
2134 | |||
2135 | EAPI int | ||
2136 | eet_data_write(Eet_File *ef, | ||
2137 | Eet_Data_Descriptor *edd, | ||
2138 | const char *name, | ||
2139 | const void *data, | ||
2140 | int compress) | ||
2141 | { | ||
2142 | return eet_data_write_cipher(ef, edd, name, NULL, data, compress); | ||
2143 | } | ||
2144 | |||
2145 | static void | ||
2146 | eet_free_context_init(Eet_Free_Context *context) | ||
2147 | { | ||
2148 | unsigned int i = 0; | ||
2149 | |||
2150 | memset(context, 0, sizeof (Eet_Free_Context)); | ||
2151 | for (i = 0; i < EET_FREE_COUNT; ++i) | ||
2152 | { | ||
2153 | eina_array_step_set(&context->freelist.list[i], | ||
2154 | sizeof (context->freelist.list[i]), | ||
2155 | 32); | ||
2156 | eina_array_step_set(&context->freelist_array.list[i], | ||
2157 | sizeof (context->freelist.list[i]), | ||
2158 | 32); | ||
2159 | eina_array_step_set(&context->freelist_list.list[i], | ||
2160 | sizeof (context->freelist.list[i]), | ||
2161 | 32); | ||
2162 | eina_array_step_set(&context->freelist_hash.list[i], | ||
2163 | sizeof (context->freelist.list[i]), | ||
2164 | 32); | ||
2165 | eina_array_step_set(&context->freelist_str.list[i], | ||
2166 | sizeof (context->freelist.list[i]), | ||
2167 | 32); | ||
2168 | eina_array_step_set(&context->freelist_direct_str.list[i], | ||
2169 | sizeof (context->freelist.list[i]), | ||
2170 | 32); | ||
2171 | } | ||
2172 | } | ||
2173 | |||
2174 | static void | ||
2175 | eet_free_context_shutdown(Eet_Free_Context *context) | ||
2176 | { | ||
2177 | unsigned int i = 0; | ||
2178 | |||
2179 | for (i = 0; i < EET_FREE_COUNT; ++i) | ||
2180 | { | ||
2181 | eina_array_flush(&context->freelist.list[i]); | ||
2182 | eina_array_flush(&context->freelist_array.list[i]); | ||
2183 | eina_array_flush(&context->freelist_list.list[i]); | ||
2184 | eina_array_flush(&context->freelist_hash.list[i]); | ||
2185 | eina_array_flush(&context->freelist_str.list[i]); | ||
2186 | eina_array_flush(&context->freelist_direct_str.list[i]); | ||
2187 | } | ||
2188 | } | ||
2189 | |||
2190 | static int | ||
2191 | _eet_free_hash(void *data) | ||
2192 | { | ||
2193 | #ifdef _WIN64 | ||
2194 | __int64 ptr = (UINT_PTR)data; | ||
2195 | #else /* ifdef _WIN64 */ | ||
2196 | unsigned long ptr = (unsigned long)(data); | ||
2197 | #endif /* ifdef _WIN64 */ | ||
2198 | int hash; | ||
2199 | |||
2200 | hash = ptr; | ||
2201 | hash ^= ptr >> 8; | ||
2202 | hash ^= ptr >> 16; | ||
2203 | hash ^= ptr >> 24; | ||
2204 | |||
2205 | #if defined (_WIN64) || ((!defined (_WIN32)) && (LONG_BIT != 32)) | ||
2206 | hash ^= ptr >> 32; | ||
2207 | hash ^= ptr >> 40; | ||
2208 | hash ^= ptr >> 48; | ||
2209 | hash ^= ptr >> 56; | ||
2210 | #endif /* if defined (_WIN64) || ((!defined (_WIN32)) && (LONG_BIT != 32)) */ | ||
2211 | |||
2212 | return hash & 0xFF; | ||
2213 | } | ||
2214 | |||
2215 | static void | ||
2216 | _eet_free_add(Eet_Free *ef, | ||
2217 | void *data) | ||
2218 | { | ||
2219 | void *track; | ||
2220 | Eina_Array_Iterator it; | ||
2221 | unsigned int i; | ||
2222 | int hash; | ||
2223 | |||
2224 | hash = _eet_free_hash(data); | ||
2225 | |||
2226 | EINA_ARRAY_ITER_NEXT(&ef->list[hash], i, track, it) | ||
2227 | if (track == data) | ||
2228 | return; | ||
2229 | |||
2230 | eina_array_push(&ef->list[hash], data); | ||
2231 | } | ||
2232 | |||
2233 | #if 0 | ||
2234 | static void | ||
2235 | _eet_free_del(Eet_Free *ef, | ||
2236 | void *data) | ||
2237 | { | ||
2238 | void *track; | ||
2239 | Eina_Array_Iterator it; | ||
2240 | unsigned int i; | ||
2241 | int hash; | ||
2242 | |||
2243 | hash = _eet_free_hash(data); | ||
2244 | |||
2245 | EINA_ARRAY_ITER_NEXT(&ef->list[hash], i, track, it) | ||
2246 | if (track == data) | ||
2247 | { | ||
2248 | eina_array_data_set(&ef->list[hash], i, NULL); | ||
2249 | return; | ||
2250 | } | ||
2251 | } | ||
2252 | |||
2253 | #endif | ||
2254 | |||
2255 | static void | ||
2256 | _eet_free_reset(Eet_Free *ef) | ||
2257 | { | ||
2258 | unsigned int i; | ||
2259 | |||
2260 | if (ef->ref > 0) | ||
2261 | return; | ||
2262 | |||
2263 | for (i = 0; i < EET_FREE_COUNT; ++i) | ||
2264 | eina_array_clean(&ef->list[i]); | ||
2265 | } | ||
2266 | |||
2267 | static void | ||
2268 | _eet_free_ref(Eet_Free *ef) | ||
2269 | { | ||
2270 | ef->ref++; | ||
2271 | } | ||
2272 | |||
2273 | static void | ||
2274 | _eet_free_unref(Eet_Free *ef) | ||
2275 | { | ||
2276 | ef->ref--; | ||
2277 | } | ||
2278 | |||
2279 | #define _eet_freelist_add(Ctx, Data) _eet_free_add(&Ctx->freelist, Data); | ||
2280 | #define _eet_freelist_del(Ctx, Data) _eet_free_del(&Ctx->freelist, Data); | ||
2281 | #define _eet_freelist_reset(Ctx) _eet_free_reset(&Ctx->freelist); | ||
2282 | #define _eet_freelist_ref(Ctx) _eet_free_ref(&Ctx->freelist); | ||
2283 | #define _eet_freelist_unref(Ctx) _eet_free_unref(&Ctx->freelist); | ||
2284 | |||
2285 | static void | ||
2286 | _eet_freelist_free(Eet_Free_Context *context, | ||
2287 | Eet_Data_Descriptor *edd) | ||
2288 | { | ||
2289 | void *track; | ||
2290 | Eina_Array_Iterator it; | ||
2291 | unsigned int j; | ||
2292 | unsigned int i; | ||
2293 | |||
2294 | if (context->freelist.ref > 0) | ||
2295 | return; | ||
2296 | |||
2297 | for (j = 0; j < EET_FREE_COUNT; ++j) | ||
2298 | EINA_ARRAY_ITER_NEXT(&context->freelist.list[j], i, track, it) | ||
2299 | if (track) | ||
2300 | { | ||
2301 | if (edd) | ||
2302 | edd->func.mem_free(track); | ||
2303 | else | ||
2304 | free(track); | ||
2305 | } | ||
2306 | _eet_free_reset(&context->freelist); | ||
2307 | } | ||
2308 | |||
2309 | #define _eet_freelist_array_add(Ctx, Data) _eet_free_add(&Ctx->freelist_array, Data); | ||
2310 | #define _eet_freelist_array_del(Ctx, Data) _eet_free_del(&Ctx->freelist_array, Data); | ||
2311 | #define _eet_freelist_array_reset(Ctx) _eet_free_reset(&Ctx->freelist_array); | ||
2312 | #define _eet_freelist_array_ref(Ctx) _eet_free_ref(&Ctx->freelist_array); | ||
2313 | #define _eet_freelist_array_unref(Ctx) _eet_free_unref(&Ctx->freelist_array); | ||
2314 | |||
2315 | static void | ||
2316 | _eet_freelist_array_free(Eet_Free_Context *context, | ||
2317 | Eet_Data_Descriptor *edd) | ||
2318 | { | ||
2319 | void *track; | ||
2320 | Eina_Array_Iterator it; | ||
2321 | unsigned int j; | ||
2322 | unsigned int i; | ||
2323 | |||
2324 | if (context->freelist_array.ref > 0) | ||
2325 | return; | ||
2326 | |||
2327 | for (j = 0; j < EET_FREE_COUNT; ++j) | ||
2328 | EINA_ARRAY_ITER_NEXT(&context->freelist_array.list[j], i, track, it) | ||
2329 | if (track) | ||
2330 | { | ||
2331 | if (edd) | ||
2332 | { | ||
2333 | if (edd->func.array_free) | ||
2334 | edd->func.array_free(track); | ||
2335 | else | ||
2336 | edd->func.mem_free(track); | ||
2337 | } | ||
2338 | else | ||
2339 | free(track); | ||
2340 | } | ||
2341 | _eet_free_reset(&context->freelist_array); | ||
2342 | } | ||
2343 | |||
2344 | #define _eet_freelist_list_add(Ctx, Data) _eet_free_add(&Ctx->freelist_list, Data); | ||
2345 | #define _eet_freelist_list_del(Ctx, Data) _eet_free_del(&Ctx->freelist_list, Data); | ||
2346 | #define _eet_freelist_list_reset(Ctx) _eet_free_reset(&Ctx->freelist_list); | ||
2347 | #define _eet_freelist_list_ref(Ctx) _eet_free_ref(&Ctx->freelist_list); | ||
2348 | #define _eet_freelist_list_unref(Ctx) _eet_free_unref(&Ctx->freelist_list); | ||
2349 | |||
2350 | static void | ||
2351 | _eet_freelist_list_free(Eet_Free_Context *context, | ||
2352 | Eet_Data_Descriptor *edd) | ||
2353 | { | ||
2354 | void *track; | ||
2355 | Eina_Array_Iterator it; | ||
2356 | unsigned int j; | ||
2357 | unsigned int i; | ||
2358 | |||
2359 | if (context->freelist_list.ref > 0) | ||
2360 | return; | ||
2361 | |||
2362 | for (j = 0; j < EET_FREE_COUNT; ++j) | ||
2363 | EINA_ARRAY_ITER_NEXT(&context->freelist_list.list[j], i, track, it) | ||
2364 | if (track) | ||
2365 | { | ||
2366 | if (edd) | ||
2367 | edd->func.list_free(*((void **)(track))); | ||
2368 | } | ||
2369 | _eet_free_reset(&context->freelist_list); | ||
2370 | } | ||
2371 | |||
2372 | #define _eet_freelist_str_add(Ctx, Data) _eet_free_add(&Ctx->freelist_str, Data); | ||
2373 | #define _eet_freelist_str_del(Ctx, Data) _eet_free_del(&Ctx->freelist_str, Data); | ||
2374 | #define _eet_freelist_str_reset(Ctx) _eet_free_reset(&Ctx->freelist_str); | ||
2375 | #define _eet_freelist_str_ref(Ctx) _eet_free_ref(&Ctx->freelist_str); | ||
2376 | #define _eet_freelist_str_unref(Ctx) _eet_free_unref(&Ctx->freelist_str); | ||
2377 | |||
2378 | static void | ||
2379 | _eet_freelist_str_free(Eet_Free_Context *context, | ||
2380 | Eet_Data_Descriptor *edd) | ||
2381 | { | ||
2382 | void *track; | ||
2383 | Eina_Array_Iterator it; | ||
2384 | unsigned int j; | ||
2385 | unsigned int i; | ||
2386 | |||
2387 | if (context->freelist_str.ref > 0) | ||
2388 | return; | ||
2389 | |||
2390 | for (j = 0; j < EET_FREE_COUNT; ++j) | ||
2391 | EINA_ARRAY_ITER_NEXT(&context->freelist_str.list[j], i, track, it) | ||
2392 | if (track) | ||
2393 | { | ||
2394 | if (edd) | ||
2395 | edd->func.str_free(track); | ||
2396 | else | ||
2397 | free(track); | ||
2398 | } | ||
2399 | _eet_free_reset(&context->freelist_str); | ||
2400 | } | ||
2401 | |||
2402 | #define _eet_freelist_direct_str_add(Ctx, Data) _eet_free_add(&Ctx->freelist_direct_str, Data); | ||
2403 | #define _eet_freelist_direct_str_del(Ctx, Data) _eet_free_del(&Ctx->freelist_direct_str, Data); | ||
2404 | #define _eet_freelist_direct_str_reset(Ctx) _eet_free_reset(&Ctx->freelist_direct_str); | ||
2405 | #define _eet_freelist_direct_str_ref(Ctx) _eet_free_ref(&Ctx->freelist_direct_str); | ||
2406 | #define _eet_freelist_direct_str_unref(Ctx) _eet_free_unref(&Ctx->freelist_direct_str); | ||
2407 | |||
2408 | static void | ||
2409 | _eet_freelist_direct_str_free(Eet_Free_Context *context, | ||
2410 | Eet_Data_Descriptor *edd) | ||
2411 | { | ||
2412 | void *track; | ||
2413 | Eina_Array_Iterator it; | ||
2414 | unsigned int j; | ||
2415 | unsigned int i; | ||
2416 | |||
2417 | if (context->freelist_direct_str.ref > 0) | ||
2418 | return; | ||
2419 | |||
2420 | for (j = 0; j < EET_FREE_COUNT; ++j) | ||
2421 | EINA_ARRAY_ITER_NEXT(&context->freelist_str.list[j], i, track, it) | ||
2422 | if (track) | ||
2423 | { | ||
2424 | if (edd) | ||
2425 | edd->func.str_direct_free(track); | ||
2426 | else | ||
2427 | free(track); | ||
2428 | } | ||
2429 | _eet_free_reset(&context->freelist_direct_str); | ||
2430 | } | ||
2431 | |||
2432 | #define _eet_freelist_hash_add(Ctx, Data) _eet_free_add(&Ctx->freelist_hash, Data); | ||
2433 | #define _eet_freelist_hash_del(Ctx, Data) _eet_free_del(&Ctx->freelist_hash, Data); | ||
2434 | #define _eet_freelist_hash_reset(Ctx) _eet_free_reset(&Ctx->freelist_hash); | ||
2435 | #define _eet_freelist_hash_ref(Ctx) _eet_free_ref(&Ctx->freelist_hash); | ||
2436 | #define _eet_freelist_hash_unref(Ctx) _eet_free_unref(&Ctx->freelist_hash); | ||
2437 | |||
2438 | static void | ||
2439 | _eet_freelist_hash_free(Eet_Free_Context *context, | ||
2440 | Eet_Data_Descriptor *edd) | ||
2441 | { | ||
2442 | void *track; | ||
2443 | Eina_Array_Iterator it; | ||
2444 | unsigned int j; | ||
2445 | unsigned int i; | ||
2446 | |||
2447 | if (context->freelist_hash.ref > 0) | ||
2448 | return; | ||
2449 | |||
2450 | for (j = 0; j < EET_FREE_COUNT; ++j) | ||
2451 | EINA_ARRAY_ITER_NEXT(&context->freelist_hash.list[j], i, track, it) | ||
2452 | if (track) | ||
2453 | { | ||
2454 | if (edd) | ||
2455 | edd->func.hash_free(track); | ||
2456 | else | ||
2457 | free(track); | ||
2458 | } | ||
2459 | _eet_free_reset(&context->freelist_hash); | ||
2460 | } | ||
2461 | |||
2462 | static void | ||
2463 | _eet_freelist_all_ref(Eet_Free_Context *freelist_context) | ||
2464 | { | ||
2465 | _eet_freelist_ref(freelist_context); | ||
2466 | _eet_freelist_str_ref(freelist_context); | ||
2467 | _eet_freelist_list_ref(freelist_context); | ||
2468 | _eet_freelist_hash_ref(freelist_context); | ||
2469 | _eet_freelist_direct_str_ref(freelist_context); | ||
2470 | } | ||
2471 | |||
2472 | static void | ||
2473 | _eet_freelist_all_unref(Eet_Free_Context *freelist_context) | ||
2474 | { | ||
2475 | _eet_freelist_unref(freelist_context); | ||
2476 | _eet_freelist_str_unref(freelist_context); | ||
2477 | _eet_freelist_list_unref(freelist_context); | ||
2478 | _eet_freelist_hash_unref(freelist_context); | ||
2479 | _eet_freelist_direct_str_unref(freelist_context); | ||
2480 | } | ||
2481 | |||
2482 | static int | ||
2483 | eet_data_descriptor_encode_hash_cb(void *hash __UNUSED__, | ||
2484 | const char *cipher_key, | ||
2485 | void *hdata, | ||
2486 | void *fdata) | ||
2487 | { | ||
2488 | Eet_Dictionary *ed; | ||
2489 | Eet_Data_Encode_Hash_Info *edehi; | ||
2490 | Eet_Data_Stream *ds; | ||
2491 | Eet_Data_Element *ede; | ||
2492 | Eet_Data_Chunk *echnk; | ||
2493 | void *data = NULL; | ||
2494 | int size; | ||
2495 | |||
2496 | edehi = fdata; | ||
2497 | ede = edehi->ede; | ||
2498 | ds = edehi->ds; | ||
2499 | ed = edehi->ed; | ||
2500 | |||
2501 | /* Store key */ | ||
2502 | data = eet_data_put_type(ed, | ||
2503 | EET_T_STRING, | ||
2504 | &cipher_key, | ||
2505 | &size); | ||
2506 | if (data) | ||
2507 | { | ||
2508 | echnk = eet_data_chunk_new(data, | ||
2509 | size, | ||
2510 | ede->name, | ||
2511 | ede->type, | ||
2512 | ede->group_type); | ||
2513 | eet_data_chunk_put(ed, echnk, ds); | ||
2514 | eet_data_chunk_free(echnk); | ||
2515 | free(data); | ||
2516 | data = NULL; | ||
2517 | } | ||
2518 | |||
2519 | EET_ASSERT(!((ede->type > EET_T_UNKNOW) && (ede->type < EET_T_STRING)), return ); | ||
2520 | |||
2521 | /* Store data */ | ||
2522 | if (ede->type >= EET_T_STRING) | ||
2523 | eet_data_put_unknown(ed, NULL, ede, ds, &hdata); | ||
2524 | else | ||
2525 | { | ||
2526 | if (ede->subtype) | ||
2527 | data = _eet_data_descriptor_encode(ed, | ||
2528 | ede->subtype, | ||
2529 | hdata, | ||
2530 | &size); | ||
2531 | |||
2532 | if (data) | ||
2533 | { | ||
2534 | echnk = eet_data_chunk_new(data, | ||
2535 | size, | ||
2536 | ede->name, | ||
2537 | ede->type, | ||
2538 | ede->group_type); | ||
2539 | eet_data_chunk_put(ed, echnk, ds); | ||
2540 | eet_data_chunk_free(echnk); | ||
2541 | free(data); | ||
2542 | data = NULL; | ||
2543 | } | ||
2544 | } | ||
2545 | |||
2546 | return 1; | ||
2547 | } | ||
2548 | |||
2549 | static char * | ||
2550 | _eet_data_dump_token_get(const char *src, | ||
2551 | int *len) | ||
2552 | { | ||
2553 | const char *p; | ||
2554 | char *tok = NULL; | ||
2555 | int in_token = 0; | ||
2556 | int in_quote = 0; | ||
2557 | int tlen = 0, tsize = 0; | ||
2558 | |||
2559 | #define TOK_ADD(x) \ | ||
2560 | do { \ | ||
2561 | tlen++; \ | ||
2562 | if (tlen >= tsize) \ | ||
2563 | { \ | ||
2564 | tsize += 32; \ | ||
2565 | tok = realloc(tok, tsize); \ | ||
2566 | } \ | ||
2567 | tok[tlen - 1] = x; \ | ||
2568 | } while (0) | ||
2569 | |||
2570 | for (p = src; *len > 0; p++, (*len)--) | ||
2571 | { | ||
2572 | if (in_token) | ||
2573 | { | ||
2574 | if (in_quote) | ||
2575 | { | ||
2576 | if ((p[0] == '\"') && (p > src) && (p[-1] != '\\')) | ||
2577 | in_quote = 0; | ||
2578 | else if ((p[0] == '\\') && (*len > 1) && | ||
2579 | (p[1] == '\"')) | ||
2580 | { | ||
2581 | /* skip */ | ||
2582 | } | ||
2583 | else if ((p[0] == '\\') && (p > src) && (p[-1] == '\\')) | ||
2584 | { | ||
2585 | /* skip */ | ||
2586 | } | ||
2587 | else if ((p[0] == '\\') && (*len > 1) && (p[1] == 'n')) | ||
2588 | { | ||
2589 | /* skip */ | ||
2590 | } | ||
2591 | else if ((p[0] == 'n') && (p > src) && (p[-1] == '\\')) | ||
2592 | TOK_ADD('\n'); | ||
2593 | else | ||
2594 | TOK_ADD(p[0]); | ||
2595 | } | ||
2596 | else | ||
2597 | { | ||
2598 | if (p[0] == '\"') | ||
2599 | in_quote = 1; | ||
2600 | else | ||
2601 | { | ||
2602 | if ((isspace(p[0])) || (p[0] == ';')) /* token ends here */ | ||
2603 | { | ||
2604 | TOK_ADD(0); | ||
2605 | (*len)--; | ||
2606 | return tok; | ||
2607 | } | ||
2608 | else | ||
2609 | TOK_ADD(p[0]); | ||
2610 | } | ||
2611 | } | ||
2612 | } | ||
2613 | else if (!((isspace(p[0])) || (p[0] == ';'))) | ||
2614 | { | ||
2615 | in_token = 1; | ||
2616 | (*len)++; | ||
2617 | p--; | ||
2618 | } | ||
2619 | } | ||
2620 | if (in_token) | ||
2621 | { | ||
2622 | TOK_ADD(0); | ||
2623 | return tok; | ||
2624 | } | ||
2625 | |||
2626 | if (tok) | ||
2627 | free(tok); | ||
2628 | |||
2629 | return NULL; | ||
2630 | } | ||
2631 | |||
2632 | static void | ||
2633 | eet_data_encode(Eet_Dictionary *ed, | ||
2634 | Eet_Data_Stream *ds, | ||
2635 | void *data, | ||
2636 | const char *name, | ||
2637 | int size, | ||
2638 | int type, | ||
2639 | int group_type) | ||
2640 | { | ||
2641 | Eet_Data_Chunk *echnk; | ||
2642 | |||
2643 | if (!data) | ||
2644 | type = EET_T_NULL; | ||
2645 | |||
2646 | if (group_type != EET_G_UNKNOWN) | ||
2647 | if (type >= EET_T_LAST) | ||
2648 | type = EET_T_UNKNOW; | ||
2649 | |||
2650 | echnk = eet_data_chunk_new(data, size, name, type, group_type); | ||
2651 | eet_data_chunk_put(ed, echnk, ds); | ||
2652 | eet_data_chunk_free(echnk); | ||
2653 | free(data); | ||
2654 | } | ||
2655 | |||
2656 | static void * | ||
2657 | _eet_data_dump_encode(int parent_type, | ||
2658 | Eet_Dictionary *ed, | ||
2659 | Eet_Node *node, | ||
2660 | int *size_ret) | ||
2661 | { | ||
2662 | Eet_Data_Chunk *chnk = NULL; | ||
2663 | Eet_Data_Stream *ds; | ||
2664 | void *cdata, *data; | ||
2665 | int csize, size; | ||
2666 | int count; | ||
2667 | int child_type; | ||
2668 | Eet_Node *n; | ||
2669 | |||
2670 | if (_eet_data_words_bigendian == -1) | ||
2671 | { | ||
2672 | unsigned long int v; | ||
2673 | |||
2674 | v = htonl(0x12345678); | ||
2675 | if (v == 0x12345678) | ||
2676 | _eet_data_words_bigendian = 1; | ||
2677 | else | ||
2678 | _eet_data_words_bigendian = 0; | ||
2679 | } | ||
2680 | |||
2681 | if (!node) | ||
2682 | return NULL; | ||
2683 | |||
2684 | ds = eet_data_stream_new(); | ||
2685 | if (!ds) | ||
2686 | return NULL; | ||
2687 | |||
2688 | switch (node->type) | ||
2689 | { | ||
2690 | case EET_G_UNKNOWN: | ||
2691 | for (n = node->values; n; n = n->next) | ||
2692 | { | ||
2693 | data = _eet_data_dump_encode(node->type, ed, n, &size); | ||
2694 | if (data) | ||
2695 | { | ||
2696 | eet_data_stream_write(ds, data, size); | ||
2697 | free(data); | ||
2698 | } | ||
2699 | } | ||
2700 | break; | ||
2701 | |||
2702 | case EET_G_ARRAY: | ||
2703 | case EET_G_VAR_ARRAY: | ||
2704 | for (child_type = EET_T_NULL, n = node->values; n; n = n->next) | ||
2705 | { | ||
2706 | if (n->type != EET_T_NULL) | ||
2707 | { | ||
2708 | child_type = n->type; | ||
2709 | break; | ||
2710 | } | ||
2711 | } | ||
2712 | |||
2713 | data = eet_data_put_type(ed, | ||
2714 | EET_T_INT, | ||
2715 | &node->count, | ||
2716 | &size); | ||
2717 | eet_data_encode(ed, | ||
2718 | ds, | ||
2719 | data, | ||
2720 | node->name, | ||
2721 | size, | ||
2722 | child_type, | ||
2723 | node->type); | ||
2724 | |||
2725 | count = node->count; | ||
2726 | |||
2727 | for (n = node->values; n; n = n->next) | ||
2728 | { | ||
2729 | int pos = ds->pos; | ||
2730 | |||
2731 | switch (n->type) | ||
2732 | { | ||
2733 | case EET_T_STRING: | ||
2734 | case EET_T_INLINED_STRING: | ||
2735 | data = eet_data_put_type(ed, | ||
2736 | n->type, | ||
2737 | &(n->data.value.str), | ||
2738 | &size); | ||
2739 | if (data) | ||
2740 | eet_data_encode(ed, | ||
2741 | ds, | ||
2742 | data, | ||
2743 | node->name, | ||
2744 | size, | ||
2745 | n->type, | ||
2746 | node->type); | ||
2747 | |||
2748 | break; | ||
2749 | |||
2750 | case EET_T_NULL: | ||
2751 | continue; | ||
2752 | |||
2753 | default: | ||
2754 | data = _eet_data_dump_encode(n->type, ed, n, &size); | ||
2755 | eet_data_encode(ed, | ||
2756 | ds, | ||
2757 | data, | ||
2758 | node->name, | ||
2759 | size, | ||
2760 | n->type, | ||
2761 | node->type); | ||
2762 | break; | ||
2763 | } /* switch */ | ||
2764 | if (ds->pos != pos) | ||
2765 | count--; | ||
2766 | } | ||
2767 | |||
2768 | for (; count; count--) | ||
2769 | { | ||
2770 | eet_data_encode(ed, | ||
2771 | ds, | ||
2772 | NULL, | ||
2773 | node->name, | ||
2774 | 0, | ||
2775 | EET_T_NULL, | ||
2776 | node->type); | ||
2777 | } | ||
2778 | |||
2779 | /* Array is somekind of special case, so we should embed it inside another chunk. */ | ||
2780 | *size_ret = ds->pos; | ||
2781 | cdata = ds->data; | ||
2782 | |||
2783 | ds->data = NULL; | ||
2784 | ds->size = 0; | ||
2785 | eet_data_stream_free(ds); | ||
2786 | |||
2787 | return cdata; | ||
2788 | break; | ||
2789 | |||
2790 | case EET_G_LIST: | ||
2791 | for (n = node->values; n; n = n->next) | ||
2792 | { | ||
2793 | switch (n->type) | ||
2794 | { | ||
2795 | case EET_T_STRING: | ||
2796 | case EET_T_INLINED_STRING: | ||
2797 | data = eet_data_put_type(ed, | ||
2798 | n->type, | ||
2799 | &(n->data.value.str), | ||
2800 | &size); | ||
2801 | if (data) | ||
2802 | eet_data_encode(ed, | ||
2803 | ds, | ||
2804 | data, | ||
2805 | node->name, | ||
2806 | size, | ||
2807 | n->type, | ||
2808 | node->type); | ||
2809 | |||
2810 | break; | ||
2811 | |||
2812 | case EET_T_NULL: | ||
2813 | continue; | ||
2814 | |||
2815 | default: | ||
2816 | data = _eet_data_dump_encode(node->type, ed, n, &size); | ||
2817 | eet_data_encode(ed, | ||
2818 | ds, | ||
2819 | data, | ||
2820 | node->name, | ||
2821 | size, | ||
2822 | n->type, | ||
2823 | node->type); | ||
2824 | } /* switch */ | ||
2825 | } | ||
2826 | |||
2827 | /* List is another somekind of special case, every chunk is embed inside a list chunk. */ | ||
2828 | *size_ret = ds->pos; | ||
2829 | cdata = ds->data; | ||
2830 | |||
2831 | ds->data = NULL; | ||
2832 | ds->size = 0; | ||
2833 | eet_data_stream_free(ds); | ||
2834 | |||
2835 | return cdata; | ||
2836 | break; | ||
2837 | |||
2838 | case EET_G_HASH: | ||
2839 | if (node->key) | ||
2840 | { | ||
2841 | data = eet_data_put_type(ed, | ||
2842 | EET_T_STRING, | ||
2843 | &node->key, | ||
2844 | &size); | ||
2845 | eet_data_encode(ed, | ||
2846 | ds, | ||
2847 | data, | ||
2848 | node->name, | ||
2849 | size, | ||
2850 | node->type, | ||
2851 | node->type); | ||
2852 | } | ||
2853 | else | ||
2854 | /* A Hash without key will not decode correctly. */ | ||
2855 | return NULL; | ||
2856 | |||
2857 | for (n = node->values; n; n = n->next) | ||
2858 | { | ||
2859 | switch (n->type) | ||
2860 | { | ||
2861 | case EET_T_STRING: | ||
2862 | case EET_T_INLINED_STRING: | ||
2863 | data = eet_data_put_type(ed, | ||
2864 | n->type, | ||
2865 | &(n->data.value.str), | ||
2866 | &size); | ||
2867 | if (data) | ||
2868 | eet_data_encode(ed, | ||
2869 | ds, | ||
2870 | data, | ||
2871 | node->name, | ||
2872 | size, | ||
2873 | n->type, | ||
2874 | node->type); | ||
2875 | |||
2876 | break; | ||
2877 | |||
2878 | case EET_T_NULL: | ||
2879 | continue; | ||
2880 | |||
2881 | default: | ||
2882 | data = _eet_data_dump_encode(node->type, ed, n, &size); | ||
2883 | eet_data_encode(ed, | ||
2884 | ds, | ||
2885 | data, | ||
2886 | node->name, | ||
2887 | size, | ||
2888 | n->type, | ||
2889 | node->type); | ||
2890 | } /* switch */ | ||
2891 | } | ||
2892 | |||
2893 | /* Hash is somekind of special case, so we should embed it inside another chunk. */ | ||
2894 | *size_ret = ds->pos; | ||
2895 | cdata = ds->data; | ||
2896 | |||
2897 | eet_data_stream_flush(ds); | ||
2898 | |||
2899 | return cdata; | ||
2900 | |||
2901 | case EET_T_NULL: | ||
2902 | break; | ||
2903 | |||
2904 | #define EET_DATA_NODE_ENCODE(Eet_Type, Type) \ | ||
2905 | case Eet_Type: \ | ||
2906 | data = eet_data_put_type(ed, node->type, &(node->data.value.Type), &size); \ | ||
2907 | if (data) \ | ||
2908 | { \ | ||
2909 | eet_data_encode(ed, \ | ||
2910 | ds, \ | ||
2911 | data, \ | ||
2912 | node->name, \ | ||
2913 | size, \ | ||
2914 | node->type, \ | ||
2915 | parent_type); \ | ||
2916 | cdata = ds->data; \ | ||
2917 | *size_ret = ds->pos; \ | ||
2918 | eet_data_stream_flush(ds); \ | ||
2919 | return cdata; \ | ||
2920 | } /* switch */ \ | ||
2921 | break; | ||
2922 | |||
2923 | EET_DATA_NODE_ENCODE(EET_T_CHAR, c); | ||
2924 | EET_DATA_NODE_ENCODE(EET_T_SHORT, s); | ||
2925 | EET_DATA_NODE_ENCODE(EET_T_INT, i); | ||
2926 | EET_DATA_NODE_ENCODE(EET_T_LONG_LONG, l); | ||
2927 | EET_DATA_NODE_ENCODE(EET_T_FLOAT, f); | ||
2928 | EET_DATA_NODE_ENCODE(EET_T_DOUBLE, d); | ||
2929 | EET_DATA_NODE_ENCODE(EET_T_UCHAR, uc); | ||
2930 | EET_DATA_NODE_ENCODE(EET_T_USHORT, us); | ||
2931 | EET_DATA_NODE_ENCODE(EET_T_UINT, ui); | ||
2932 | EET_DATA_NODE_ENCODE(EET_T_ULONG_LONG, ul); | ||
2933 | EET_DATA_NODE_ENCODE(EET_T_INLINED_STRING, str); | ||
2934 | EET_DATA_NODE_ENCODE(EET_T_STRING, str); | ||
2935 | |||
2936 | default: | ||
2937 | break; | ||
2938 | } | ||
2939 | |||
2940 | if ((node->type >= EET_G_UNKNOWN) && (node->type < EET_G_LAST)) | ||
2941 | chnk = eet_data_chunk_new(ds->data, | ||
2942 | ds->pos, | ||
2943 | node->name, | ||
2944 | EET_T_UNKNOW, | ||
2945 | node->type); | ||
2946 | else | ||
2947 | chnk = eet_data_chunk_new(ds->data, | ||
2948 | ds->pos, | ||
2949 | node->name, | ||
2950 | node->type, | ||
2951 | EET_G_UNKNOWN); | ||
2952 | |||
2953 | eet_data_stream_flush(ds); | ||
2954 | |||
2955 | ds = eet_data_stream_new(); | ||
2956 | eet_data_chunk_put(ed, chnk, ds); | ||
2957 | cdata = ds->data; | ||
2958 | csize = ds->pos; | ||
2959 | |||
2960 | eet_data_stream_flush(ds); | ||
2961 | *size_ret = csize; | ||
2962 | |||
2963 | free(chnk->data); | ||
2964 | eet_data_chunk_free(chnk); | ||
2965 | |||
2966 | return cdata; | ||
2967 | } | ||
2968 | |||
2969 | static void * | ||
2970 | _eet_data_dump_parse(Eet_Dictionary *ed, | ||
2971 | int *size_ret, | ||
2972 | const char *src, | ||
2973 | int size) | ||
2974 | { | ||
2975 | void *cdata = NULL; | ||
2976 | const char *p = NULL; | ||
2977 | #define M_NONE 0 | ||
2978 | #define M_STRUCT 1 | ||
2979 | #define M_ 2 | ||
2980 | int left, jump; | ||
2981 | Eet_Node *node_base = NULL; | ||
2982 | Eet_Node *node = NULL; | ||
2983 | Eet_Node *n = NULL, *nn = NULL; | ||
2984 | |||
2985 | /* FIXME; handle parse errors */ | ||
2986 | #define TOK_GET(t) \ | ||
2987 | jump = left; t = _eet_data_dump_token_get(p, &left); p += jump - left; | ||
2988 | left = size; | ||
2989 | for (p = src; p < (src + size); ) | ||
2990 | { | ||
2991 | char *tok1, *tok2, *tok3, *tok4; | ||
2992 | |||
2993 | TOK_GET(tok1); | ||
2994 | if (tok1) | ||
2995 | { | ||
2996 | if (!strcmp(tok1, "group")) | ||
2997 | { | ||
2998 | TOK_GET(tok2); | ||
2999 | if (tok2) | ||
3000 | { | ||
3001 | TOK_GET(tok3); | ||
3002 | if (tok3) | ||
3003 | { | ||
3004 | TOK_GET(tok4); | ||
3005 | if (tok4) | ||
3006 | { | ||
3007 | if (!strcmp(tok4, "{")) | ||
3008 | { | ||
3009 | /* we have 'group NAM TYP {' */ | ||
3010 | n = eet_node_new(); | ||
3011 | if (n) | ||
3012 | { | ||
3013 | n->parent = node; | ||
3014 | if (!node_base) | ||
3015 | node_base = n; | ||
3016 | |||
3017 | if (node) | ||
3018 | { | ||
3019 | /* append node */ | ||
3020 | if (!node->values) | ||
3021 | node->values = n; | ||
3022 | else | ||
3023 | for (nn = node->values; nn; | ||
3024 | nn = nn->next) | ||
3025 | { | ||
3026 | if (!nn->next) | ||
3027 | { | ||
3028 | nn->next = n; | ||
3029 | break; | ||
3030 | } | ||
3031 | } | ||
3032 | } | ||
3033 | |||
3034 | n->name = eina_stringshare_add(tok2); | ||
3035 | if (!strcmp(tok3, "struct")) | ||
3036 | n->type = EET_G_UNKNOWN; | ||
3037 | else if (!strcmp(tok3, "array")) | ||
3038 | n->type = EET_G_ARRAY; | ||
3039 | else if (!strcmp(tok3, "var_array")) | ||
3040 | n->type = EET_G_VAR_ARRAY; | ||
3041 | else if (!strcmp(tok3, "list")) | ||
3042 | n->type = EET_G_LIST; | ||
3043 | else if (!strcmp(tok3, "hash")) | ||
3044 | n->type = EET_G_HASH; | ||
3045 | else | ||
3046 | ERR( | ||
3047 | "ERROR: group type '%s' invalid.", | ||
3048 | tok3); | ||
3049 | |||
3050 | node = n; | ||
3051 | } | ||
3052 | } | ||
3053 | |||
3054 | free(tok4); | ||
3055 | } | ||
3056 | |||
3057 | free(tok3); | ||
3058 | } | ||
3059 | |||
3060 | free(tok2); | ||
3061 | } | ||
3062 | } | ||
3063 | else if (!strcmp(tok1, "value")) | ||
3064 | { | ||
3065 | TOK_GET(tok2); | ||
3066 | if (tok2) | ||
3067 | { | ||
3068 | TOK_GET(tok3); | ||
3069 | if (tok3) | ||
3070 | { | ||
3071 | TOK_GET(tok4); | ||
3072 | if (tok4) | ||
3073 | { | ||
3074 | /* we have 'value NAME TYP XXX' */ | ||
3075 | if (node_base) | ||
3076 | { | ||
3077 | n = eet_node_new(); | ||
3078 | if (n) | ||
3079 | { | ||
3080 | n->parent = node; | ||
3081 | /* append node */ | ||
3082 | if (!node->values) | ||
3083 | node->values = n; | ||
3084 | else | ||
3085 | for (nn = node->values; nn; | ||
3086 | nn = nn->next) | ||
3087 | { | ||
3088 | if (!nn->next) | ||
3089 | { | ||
3090 | nn->next = n; | ||
3091 | break; | ||
3092 | } | ||
3093 | } | ||
3094 | |||
3095 | n->name = eina_stringshare_add(tok2); | ||
3096 | if (!strcmp(tok3, "char:")) | ||
3097 | { | ||
3098 | n->type = EET_T_CHAR; | ||
3099 | sscanf(tok4, "%hhi", | ||
3100 | &(n->data.value.c)); | ||
3101 | } | ||
3102 | else if (!strcmp(tok3, "short:")) | ||
3103 | { | ||
3104 | n->type = EET_T_SHORT; | ||
3105 | sscanf(tok4, "%hi", | ||
3106 | &(n->data.value.s)); | ||
3107 | } | ||
3108 | else if (!strcmp(tok3, "int:")) | ||
3109 | { | ||
3110 | n->type = EET_T_INT; | ||
3111 | sscanf(tok4, "%i", | ||
3112 | &(n->data.value.i)); | ||
3113 | } | ||
3114 | else if (!strcmp(tok3, "long_long:")) | ||
3115 | { | ||
3116 | n->type = EET_T_LONG_LONG; | ||
3117 | sscanf(tok4, "%lli", | ||
3118 | &(n->data.value.l)); | ||
3119 | } | ||
3120 | else if (!strcmp(tok3, "float:")) | ||
3121 | { | ||
3122 | n->type = EET_T_FLOAT; | ||
3123 | sscanf(tok4, "%f", | ||
3124 | &(n->data.value.f)); | ||
3125 | } | ||
3126 | else if (!strcmp(tok3, "double:")) | ||
3127 | { | ||
3128 | n->type = EET_T_DOUBLE; | ||
3129 | sscanf(tok4, "%lf", | ||
3130 | &(n->data.value.d)); | ||
3131 | } | ||
3132 | else if (!strcmp(tok3, "uchar:")) | ||
3133 | { | ||
3134 | n->type = EET_T_UCHAR; | ||
3135 | sscanf(tok4, "%hhu", | ||
3136 | &(n->data.value.uc)); | ||
3137 | } | ||
3138 | else if (!strcmp(tok3, "ushort:")) | ||
3139 | { | ||
3140 | n->type = EET_T_USHORT; | ||
3141 | sscanf(tok4, "%hu", | ||
3142 | &(n->data.value.us)); | ||
3143 | } | ||
3144 | else if (!strcmp(tok3, "uint:")) | ||
3145 | { | ||
3146 | n->type = EET_T_UINT; | ||
3147 | sscanf(tok4, "%u", | ||
3148 | &(n->data.value.ui)); | ||
3149 | } | ||
3150 | else if (!strcmp(tok3, "ulong_long:")) | ||
3151 | { | ||
3152 | n->type = EET_T_ULONG_LONG; | ||
3153 | sscanf(tok4, "%llu", | ||
3154 | &(n->data.value.ul)); | ||
3155 | } | ||
3156 | else if (!strcmp(tok3, "string:")) | ||
3157 | { | ||
3158 | n->type = EET_T_STRING; | ||
3159 | n->data.value.str = | ||
3160 | eina_stringshare_add(tok4); | ||
3161 | } | ||
3162 | else if (!strcmp(tok3, "inlined:")) | ||
3163 | { | ||
3164 | n->type = EET_T_INLINED_STRING; | ||
3165 | n->data.value.str = | ||
3166 | eina_stringshare_add(tok4); | ||
3167 | } | ||
3168 | else if (!strcmp(tok3, "null")) | ||
3169 | { | ||
3170 | n->type = EET_T_NULL; | ||
3171 | n->data.value.str = NULL; | ||
3172 | } | ||
3173 | else | ||
3174 | ERR( | ||
3175 | "ERROR: value type '%s' invalid.", | ||
3176 | tok4); | ||
3177 | } | ||
3178 | } | ||
3179 | |||
3180 | free(tok4); | ||
3181 | } | ||
3182 | |||
3183 | free(tok3); | ||
3184 | } | ||
3185 | |||
3186 | free(tok2); | ||
3187 | } | ||
3188 | } | ||
3189 | else if (!strcmp(tok1, "key")) | ||
3190 | { | ||
3191 | TOK_GET(tok2); | ||
3192 | if (tok2) | ||
3193 | { | ||
3194 | /* we have 'key NAME' */ | ||
3195 | if (node) | ||
3196 | node->key = eina_stringshare_add(tok2); | ||
3197 | |||
3198 | free(tok2); | ||
3199 | } | ||
3200 | } | ||
3201 | else if (!strcmp(tok1, "count")) | ||
3202 | { | ||
3203 | TOK_GET(tok2); | ||
3204 | if (tok2) | ||
3205 | { | ||
3206 | /* we have a 'count COUNT' */ | ||
3207 | if (node) | ||
3208 | sscanf(tok2, "%i", &(node->count)); | ||
3209 | |||
3210 | free(tok2); | ||
3211 | } | ||
3212 | } | ||
3213 | else if (!strcmp(tok1, "}")) | ||
3214 | /* we have an end of the group */ | ||
3215 | if (node) | ||
3216 | node = node->parent; | ||
3217 | |||
3218 | free(tok1); | ||
3219 | } | ||
3220 | } | ||
3221 | |||
3222 | if (node_base) | ||
3223 | { | ||
3224 | cdata = _eet_data_dump_encode(EET_G_UNKNOWN, ed, node_base, size_ret); | ||
3225 | eet_node_del(node_base); | ||
3226 | } | ||
3227 | |||
3228 | return cdata; | ||
3229 | } | ||
3230 | |||
3231 | #define NEXT_CHUNK(P, Size, Echnk, Ed) \ | ||
3232 | { \ | ||
3233 | int __tmp; \ | ||
3234 | __tmp = Ed ? (int)(sizeof(int) * 2) : Echnk.len + 4; \ | ||
3235 | P += (4 + Echnk.size + __tmp); \ | ||
3236 | Size -= (4 + Echnk.size + __tmp); \ | ||
3237 | } | ||
3238 | |||
3239 | static void * | ||
3240 | _eet_data_descriptor_decode(Eet_Free_Context *context, | ||
3241 | const Eet_Dictionary *ed, | ||
3242 | Eet_Data_Descriptor *edd, | ||
3243 | const void *data_in, | ||
3244 | int size_in, | ||
3245 | void *data_out, | ||
3246 | int size_out) | ||
3247 | { | ||
3248 | Eet_Node *result = NULL; | ||
3249 | void *data = NULL; | ||
3250 | char *p; | ||
3251 | int size, i; | ||
3252 | Eet_Data_Chunk chnk; | ||
3253 | |||
3254 | if (_eet_data_words_bigendian == -1) | ||
3255 | { | ||
3256 | unsigned long int v; | ||
3257 | |||
3258 | v = htonl(0x12345678); | ||
3259 | if (v == 0x12345678) | ||
3260 | _eet_data_words_bigendian = 1; | ||
3261 | else | ||
3262 | _eet_data_words_bigendian = 0; | ||
3263 | } | ||
3264 | |||
3265 | if (edd) | ||
3266 | { | ||
3267 | if (data_out) | ||
3268 | { | ||
3269 | if (size_out <= edd->size) | ||
3270 | data = data_out; | ||
3271 | } | ||
3272 | else | ||
3273 | { | ||
3274 | data = edd->func.mem_alloc(edd->size); | ||
3275 | } | ||
3276 | |||
3277 | if (!data) | ||
3278 | return NULL; | ||
3279 | |||
3280 | if (edd->ed != ed) | ||
3281 | { | ||
3282 | for (i = 0; i < edd->elements.num; i++) | ||
3283 | edd->elements.set[i].directory_name_ptr = NULL; | ||
3284 | edd->ed = ed; | ||
3285 | } | ||
3286 | } | ||
3287 | |||
3288 | _eet_freelist_all_ref(context); | ||
3289 | if (data && !data_out) | ||
3290 | _eet_freelist_add(context, data); | ||
3291 | |||
3292 | memset(&chnk, 0, sizeof(Eet_Data_Chunk)); | ||
3293 | eet_data_chunk_get(ed, &chnk, data_in, size_in); | ||
3294 | if (!chnk.name) | ||
3295 | goto error; | ||
3296 | |||
3297 | if (edd) | ||
3298 | if (strcmp(chnk.name, edd->name)) | ||
3299 | goto error; | ||
3300 | |||
3301 | p = chnk.data; | ||
3302 | if (ed) | ||
3303 | size = size_in - (4 + sizeof(int) * 2); | ||
3304 | else | ||
3305 | size = size_in - (4 + 4 + chnk.len); | ||
3306 | |||
3307 | if (edd) | ||
3308 | { | ||
3309 | if (!edd->elements.hash.buckets) | ||
3310 | _eet_descriptor_hash_new(edd); | ||
3311 | } | ||
3312 | else | ||
3313 | { | ||
3314 | switch (chnk.group_type) | ||
3315 | { | ||
3316 | case EET_G_UNKNOWN: | ||
3317 | switch (chnk.type) | ||
3318 | { | ||
3319 | case EET_T_STRING: | ||
3320 | return eet_node_string_new(chnk.name, chnk.data); | ||
3321 | |||
3322 | case EET_T_INLINED_STRING: | ||
3323 | return eet_node_inlined_string_new(chnk.name, chnk.data); | ||
3324 | |||
3325 | case EET_T_NULL: | ||
3326 | return eet_node_null_new(chnk.name); | ||
3327 | |||
3328 | default: | ||
3329 | result = eet_node_struct_new(chnk.name, NULL); | ||
3330 | } /* switch */ | ||
3331 | break; | ||
3332 | |||
3333 | case EET_G_VAR_ARRAY: | ||
3334 | return eet_node_var_array_new(chnk.name, NULL); | ||
3335 | |||
3336 | case EET_G_LIST: | ||
3337 | case EET_G_HASH: | ||
3338 | case EET_G_ARRAY: | ||
3339 | case EET_G_UNION: | ||
3340 | case EET_G_VARIANT: | ||
3341 | default: | ||
3342 | goto error; | ||
3343 | } | ||
3344 | } | ||
3345 | |||
3346 | while (size > 0) | ||
3347 | { | ||
3348 | Eet_Data_Chunk echnk; | ||
3349 | Eet_Data_Element *ede = NULL; | ||
3350 | Eet_Node *child = NULL; | ||
3351 | int group_type = EET_G_UNKNOWN, type = EET_T_UNKNOW; | ||
3352 | int ret = 0; | ||
3353 | |||
3354 | /* get next data chunk */ | ||
3355 | memset(&echnk, 0, sizeof(Eet_Data_Chunk)); | ||
3356 | eet_data_chunk_get(ed, &echnk, p, size); | ||
3357 | if (!echnk.name) | ||
3358 | goto error; /* FIXME: don't REPLY on edd - work without */ | ||
3359 | |||
3360 | if (edd) | ||
3361 | { | ||
3362 | ede = _eet_descriptor_hash_find(edd, echnk.name, echnk.hash); | ||
3363 | if (ede) | ||
3364 | { | ||
3365 | group_type = ede->group_type; | ||
3366 | type = ede->type; | ||
3367 | if ((echnk.type == 0) && (echnk.group_type == 0)) | ||
3368 | { | ||
3369 | type = ede->type; | ||
3370 | group_type = ede->group_type; | ||
3371 | } | ||
3372 | else | ||
3373 | { | ||
3374 | if (IS_SIMPLE_TYPE(echnk.type) && | ||
3375 | eet_data_type_match(echnk.type, ede->type)) | ||
3376 | /* Needed when converting on the fly from FP to Float */ | ||
3377 | type = ede->type; | ||
3378 | else if ((echnk.group_type > EET_G_UNKNOWN) && | ||
3379 | (echnk.group_type < EET_G_LAST) && | ||
3380 | (echnk.group_type == ede->group_type)) | ||
3381 | group_type = echnk.group_type; | ||
3382 | } | ||
3383 | } | ||
3384 | } | ||
3385 | /*...... dump to node */ | ||
3386 | else | ||
3387 | { | ||
3388 | type = echnk.type; | ||
3389 | group_type = echnk.group_type; | ||
3390 | } | ||
3391 | |||
3392 | if (!edd && group_type == EET_G_UNKNOWN && IS_SIMPLE_TYPE(type)) | ||
3393 | { | ||
3394 | unsigned char dd[128]; | ||
3395 | |||
3396 | ret = eet_data_get_type(ed, | ||
3397 | type, | ||
3398 | echnk.data, | ||
3399 | ((char *)echnk.data) + echnk.size, | ||
3400 | dd); | ||
3401 | if (ret <= 0) | ||
3402 | goto error; | ||
3403 | |||
3404 | child = eet_data_node_simple_type(type, echnk.name, dd); | ||
3405 | |||
3406 | eet_node_struct_append(result, echnk.name, child); | ||
3407 | } | ||
3408 | else | ||
3409 | { | ||
3410 | ret = eet_group_codec[group_type - 100].get( | ||
3411 | context, | ||
3412 | ed, | ||
3413 | edd, | ||
3414 | ede, | ||
3415 | &echnk, | ||
3416 | type, | ||
3417 | group_type, | ||
3418 | ede ? (void *)(((char *)data) + ede->offset) : (void **)&result, | ||
3419 | &p, | ||
3420 | &size); | ||
3421 | |||
3422 | if (ret <= 0) | ||
3423 | goto error; | ||
3424 | } | ||
3425 | |||
3426 | /* advance to next chunk */ | ||
3427 | NEXT_CHUNK(p, size, echnk, ed); | ||
3428 | } | ||
3429 | |||
3430 | _eet_freelist_all_unref(context); | ||
3431 | if (!edd) | ||
3432 | { | ||
3433 | _eet_freelist_str_free(context, edd); | ||
3434 | _eet_freelist_direct_str_free(context, edd); | ||
3435 | _eet_freelist_list_free(context, edd); | ||
3436 | _eet_freelist_hash_free(context, edd); | ||
3437 | _eet_freelist_array_free(context, edd); | ||
3438 | _eet_freelist_free(context, edd); | ||
3439 | } | ||
3440 | else | ||
3441 | { | ||
3442 | _eet_freelist_reset(context); | ||
3443 | _eet_freelist_str_reset(context); | ||
3444 | _eet_freelist_list_reset(context); | ||
3445 | _eet_freelist_hash_reset(context); | ||
3446 | _eet_freelist_direct_str_reset(context); | ||
3447 | _eet_freelist_array_reset(context); | ||
3448 | } | ||
3449 | |||
3450 | if (!edd) | ||
3451 | return result; | ||
3452 | |||
3453 | return data; | ||
3454 | |||
3455 | error: | ||
3456 | eet_node_del(result); | ||
3457 | |||
3458 | _eet_freelist_all_unref(context); | ||
3459 | _eet_freelist_str_free(context, edd); | ||
3460 | _eet_freelist_direct_str_free(context, edd); | ||
3461 | _eet_freelist_list_free(context, edd); | ||
3462 | _eet_freelist_hash_free(context, edd); | ||
3463 | _eet_freelist_array_free(context, edd); | ||
3464 | _eet_freelist_free(context, edd); | ||
3465 | |||
3466 | /* FIXME: Warn that something goes wrong here. */ | ||
3467 | return NULL; | ||
3468 | } | ||
3469 | |||
3470 | static int | ||
3471 | eet_data_get_list(Eet_Free_Context *context, | ||
3472 | const Eet_Dictionary *ed, | ||
3473 | Eet_Data_Descriptor *edd, | ||
3474 | Eet_Data_Element *ede, | ||
3475 | Eet_Data_Chunk *echnk, | ||
3476 | int type, | ||
3477 | int group_type __UNUSED__, | ||
3478 | void *data, | ||
3479 | char **p, | ||
3480 | int *size) | ||
3481 | { | ||
3482 | Eet_Data_Descriptor *subtype = NULL; | ||
3483 | void *list = NULL; | ||
3484 | void **ptr; | ||
3485 | void *data_ret; | ||
3486 | |||
3487 | EET_ASSERT(!((type > EET_T_UNKNOW) && (type < EET_T_STRING)), return 0); | ||
3488 | |||
3489 | if (ede) | ||
3490 | { | ||
3491 | subtype = ede->subtype; | ||
3492 | |||
3493 | if (type != ede->type) | ||
3494 | return 0; | ||
3495 | } | ||
3496 | |||
3497 | ptr = (void **)data; | ||
3498 | list = *ptr; | ||
3499 | data_ret = NULL; | ||
3500 | |||
3501 | if (IS_POINTER_TYPE(type)) | ||
3502 | POINTER_TYPE_DECODE(context, | ||
3503 | ed, | ||
3504 | edd, | ||
3505 | ede, | ||
3506 | echnk, | ||
3507 | type, | ||
3508 | &data_ret, | ||
3509 | p, | ||
3510 | size, | ||
3511 | on_error); | ||
3512 | else | ||
3513 | STRUCT_TYPE_DECODE(data_ret, | ||
3514 | context, | ||
3515 | ed, | ||
3516 | subtype, | ||
3517 | echnk->data, | ||
3518 | echnk->size, | ||
3519 | -1, | ||
3520 | on_error); | ||
3521 | |||
3522 | if (edd) | ||
3523 | { | ||
3524 | list = edd->func.list_append(list, data_ret); | ||
3525 | *ptr = list; | ||
3526 | _eet_freelist_list_add(context, ptr); | ||
3527 | } | ||
3528 | else | ||
3529 | eet_node_list_append(*((Eet_Node **)data), echnk->name, data_ret); | ||
3530 | |||
3531 | return 1; | ||
3532 | |||
3533 | on_error: | ||
3534 | return 0; | ||
3535 | } | ||
3536 | |||
3537 | static int | ||
3538 | eet_data_get_hash(Eet_Free_Context *context, | ||
3539 | const Eet_Dictionary *ed, | ||
3540 | Eet_Data_Descriptor *edd, | ||
3541 | Eet_Data_Element *ede, | ||
3542 | Eet_Data_Chunk *echnk, | ||
3543 | int type, | ||
3544 | int group_type __UNUSED__, | ||
3545 | void *data, | ||
3546 | char **p, | ||
3547 | int *size) | ||
3548 | { | ||
3549 | void **ptr; | ||
3550 | void *hash = NULL; | ||
3551 | char *key = NULL; | ||
3552 | void *data_ret = NULL; | ||
3553 | int ret = 0; | ||
3554 | |||
3555 | EET_ASSERT(!((type > EET_T_UNKNOW) && (type < EET_T_STRING)), return 0); | ||
3556 | |||
3557 | ptr = (void **)data; | ||
3558 | hash = *ptr; | ||
3559 | |||
3560 | /* Read key */ | ||
3561 | ret = eet_data_get_type(ed, | ||
3562 | EET_T_STRING, | ||
3563 | echnk->data, | ||
3564 | ((char *)echnk->data) + echnk->size, | ||
3565 | &key); | ||
3566 | if (ret <= 0) | ||
3567 | goto on_error; | ||
3568 | |||
3569 | if (!key) | ||
3570 | goto on_error; | ||
3571 | |||
3572 | /* Advance to next chunk */ | ||
3573 | NEXT_CHUNK((*p), (*size), (*echnk), ed); | ||
3574 | memset(echnk, 0, sizeof(Eet_Data_Chunk)); | ||
3575 | |||
3576 | /* Read value */ | ||
3577 | eet_data_chunk_get(ed, echnk, *p, *size); | ||
3578 | if (!echnk->name) | ||
3579 | goto on_error; | ||
3580 | |||
3581 | if (ede) | ||
3582 | if ((ede->group_type != echnk->group_type) | ||
3583 | || (ede->type != echnk->type)) | ||
3584 | goto on_error; | ||
3585 | |||
3586 | if (IS_POINTER_TYPE(echnk->type)) | ||
3587 | POINTER_TYPE_DECODE(context, | ||
3588 | ed, | ||
3589 | edd, | ||
3590 | ede, | ||
3591 | echnk, | ||
3592 | echnk->type, | ||
3593 | &data_ret, | ||
3594 | p, | ||
3595 | size, | ||
3596 | on_error); | ||
3597 | else | ||
3598 | STRUCT_TYPE_DECODE(data_ret, | ||
3599 | context, | ||
3600 | ed, | ||
3601 | ede ? ede->subtype : NULL, | ||
3602 | echnk->data, | ||
3603 | echnk->size, | ||
3604 | -1, | ||
3605 | on_error); | ||
3606 | |||
3607 | if (edd) | ||
3608 | { | ||
3609 | hash = edd->func.hash_add(hash, key, data_ret); | ||
3610 | *ptr = hash; | ||
3611 | _eet_freelist_hash_add(context, hash); | ||
3612 | } | ||
3613 | else | ||
3614 | eet_node_hash_add(*((Eet_Node **)data), echnk->name, key, data_ret); | ||
3615 | |||
3616 | return 1; | ||
3617 | |||
3618 | on_error: | ||
3619 | return 0; | ||
3620 | } | ||
3621 | |||
3622 | /* var arrays and fixed arrays have to | ||
3623 | * get all chunks at once. for fixed arrays | ||
3624 | * we can get each chunk and increment a | ||
3625 | * counter stored on the element itself but | ||
3626 | * it wont be thread safe. for var arrays | ||
3627 | * we still need a way to get the number of | ||
3628 | * elements from the data, so storing the | ||
3629 | * number of elements and the element data on | ||
3630 | * each chunk is pointless. | ||
3631 | */ | ||
3632 | static int | ||
3633 | eet_data_get_array(Eet_Free_Context *context, | ||
3634 | const Eet_Dictionary *ed, | ||
3635 | Eet_Data_Descriptor *edd, | ||
3636 | Eet_Data_Element *ede, | ||
3637 | Eet_Data_Chunk *echnk, | ||
3638 | int type, | ||
3639 | int group_type, | ||
3640 | void *data, | ||
3641 | char **p, | ||
3642 | int *size) | ||
3643 | { | ||
3644 | Eina_List *childs = NULL; | ||
3645 | const char *name; | ||
3646 | Eet_Node *tmp; | ||
3647 | void *ptr; | ||
3648 | int count; | ||
3649 | int ret; | ||
3650 | int subsize = 0; | ||
3651 | int i; | ||
3652 | |||
3653 | EET_ASSERT(!((type > EET_T_UNKNOW) && (type < EET_T_STRING)), return 0); | ||
3654 | |||
3655 | ptr = data; | ||
3656 | /* read the number of elements */ | ||
3657 | ret = eet_data_get_type(ed, | ||
3658 | EET_T_INT, | ||
3659 | echnk->data, | ||
3660 | ((char *)echnk->data) + echnk->size, | ||
3661 | &count); | ||
3662 | if (ret <= 0) | ||
3663 | return ret; | ||
3664 | |||
3665 | name = echnk->name; | ||
3666 | |||
3667 | if (ede) | ||
3668 | { | ||
3669 | if (IS_POINTER_TYPE(type)) | ||
3670 | subsize = eet_basic_codec[ede->type].size; | ||
3671 | else | ||
3672 | subsize = ede->subtype->size; | ||
3673 | |||
3674 | if (group_type == EET_G_VAR_ARRAY) | ||
3675 | { | ||
3676 | /* store the number of elements | ||
3677 | * on the counter offset */ | ||
3678 | *(int *)(((char *)data) + ede->count - ede->offset) = count; | ||
3679 | /* allocate space for the array of elements */ | ||
3680 | if (edd->func.array_alloc) | ||
3681 | *(void **)ptr = edd->func.array_alloc(count * subsize); | ||
3682 | else | ||
3683 | *(void **)ptr = edd->func.mem_alloc(count * subsize); | ||
3684 | |||
3685 | if (!*(void **)ptr) | ||
3686 | return 0; | ||
3687 | |||
3688 | memset(*(void **)ptr, 0, count * subsize); | ||
3689 | |||
3690 | _eet_freelist_array_add(context, *(void **)ptr); | ||
3691 | } | ||
3692 | } | ||
3693 | |||
3694 | /* get all array elements */ | ||
3695 | for (i = 0; i < count; i++) | ||
3696 | { | ||
3697 | void *dst = NULL; | ||
3698 | |||
3699 | /* Advance to next chunk */ | ||
3700 | NEXT_CHUNK((*p), (*size), (*echnk), ed); | ||
3701 | memset(echnk, 0, sizeof(Eet_Data_Chunk)); | ||
3702 | |||
3703 | eet_data_chunk_get(ed, echnk, *p, *size); | ||
3704 | if (!echnk->name || strcmp(echnk->name, name) != 0) | ||
3705 | goto on_error; /* get the data */ | ||
3706 | |||
3707 | if ((echnk->group_type != group_type) | ||
3708 | || ((echnk->type != type) && (echnk->type != EET_T_NULL))) | ||
3709 | goto on_error; | ||
3710 | |||
3711 | if (ede) | ||
3712 | if ((ede->group_type != echnk->group_type) | ||
3713 | || ((echnk->type != ede->type) && (echnk->type != EET_T_NULL))) | ||
3714 | goto on_error; | ||
3715 | |||
3716 | /* get the destination pointer */ | ||
3717 | if (ede) | ||
3718 | { | ||
3719 | if (group_type == EET_G_ARRAY) | ||
3720 | dst = (char *)ptr + (subsize * i); | ||
3721 | else | ||
3722 | dst = *(char **)ptr + (subsize * i); | ||
3723 | } | ||
3724 | |||
3725 | if (IS_POINTER_TYPE(echnk->type)) | ||
3726 | { | ||
3727 | void *data_ret = NULL; | ||
3728 | |||
3729 | POINTER_TYPE_DECODE(context, | ||
3730 | ed, | ||
3731 | edd, | ||
3732 | ede, | ||
3733 | echnk, | ||
3734 | echnk->type, | ||
3735 | &data_ret, | ||
3736 | p, | ||
3737 | size, | ||
3738 | on_error); | ||
3739 | if (dst) | ||
3740 | memcpy(dst, &data_ret, subsize); | ||
3741 | |||
3742 | if (!edd) | ||
3743 | childs = eina_list_append(childs, data_ret); | ||
3744 | } | ||
3745 | else | ||
3746 | { | ||
3747 | STRUCT_TYPE_DECODE(dst, | ||
3748 | context, | ||
3749 | ed, | ||
3750 | ede ? ede->subtype : NULL, | ||
3751 | echnk->data, | ||
3752 | echnk->size, | ||
3753 | subsize, | ||
3754 | on_error); | ||
3755 | |||
3756 | if (!edd) | ||
3757 | childs = eina_list_append(childs, dst); | ||
3758 | } | ||
3759 | } | ||
3760 | |||
3761 | if (!edd) | ||
3762 | { | ||
3763 | Eet_Node *parent = *((Eet_Node **)data); | ||
3764 | Eet_Node *array; | ||
3765 | |||
3766 | if (group_type == EET_G_ARRAY) | ||
3767 | array = eet_node_array_new(name, count, childs); | ||
3768 | else | ||
3769 | array = eet_node_var_array_new(name, childs); | ||
3770 | |||
3771 | if (!array) | ||
3772 | goto on_error; | ||
3773 | |||
3774 | eet_node_struct_append(parent, name, array); | ||
3775 | } | ||
3776 | |||
3777 | return 1; | ||
3778 | |||
3779 | on_error: | ||
3780 | EINA_LIST_FREE(childs, tmp) | ||
3781 | eet_node_del(tmp); | ||
3782 | |||
3783 | return 0; | ||
3784 | } | ||
3785 | |||
3786 | static void | ||
3787 | eet_data_put_union(Eet_Dictionary *ed, | ||
3788 | Eet_Data_Descriptor *edd __UNUSED__, | ||
3789 | Eet_Data_Element *ede, | ||
3790 | Eet_Data_Stream *ds, | ||
3791 | void *data_in) | ||
3792 | { | ||
3793 | const char *union_type; | ||
3794 | int i; | ||
3795 | |||
3796 | EET_ASSERT(!((ede->type != EET_T_UNKNOW) || (!ede->subtype)), return ); | ||
3797 | |||
3798 | union_type = ede->subtype->func.type_get( | ||
3799 | ((char *)data_in) + ede->count - ede->offset, | ||
3800 | NULL); | ||
3801 | |||
3802 | if (!union_type) | ||
3803 | return; | ||
3804 | |||
3805 | /* Search the structure of the union to encode. */ | ||
3806 | for (i = 0; i < ede->subtype->elements.num; ++i) | ||
3807 | if (strcmp(ede->subtype->elements.set[i].name, union_type) == 0) | ||
3808 | { | ||
3809 | Eet_Data_Element *sede; | ||
3810 | void *data; | ||
3811 | int size; | ||
3812 | |||
3813 | /* Yeah we found it ! */ | ||
3814 | data = eet_data_put_type(ed, EET_T_STRING, &union_type, &size); | ||
3815 | if (data) | ||
3816 | eet_data_encode(ed, | ||
3817 | ds, | ||
3818 | data, | ||
3819 | ede->name, | ||
3820 | size, | ||
3821 | ede->type, | ||
3822 | ede->group_type); | ||
3823 | |||
3824 | sede = &(ede->subtype->elements.set[i]); | ||
3825 | data = _eet_data_descriptor_encode(ed, | ||
3826 | sede->subtype, | ||
3827 | data_in, | ||
3828 | &size); | ||
3829 | if (data) | ||
3830 | eet_data_encode(ed, | ||
3831 | ds, | ||
3832 | data, | ||
3833 | ede->name, | ||
3834 | size, | ||
3835 | ede->type, | ||
3836 | ede->group_type); | ||
3837 | |||
3838 | break; | ||
3839 | } | ||
3840 | } | ||
3841 | |||
3842 | static int | ||
3843 | eet_data_get_union(Eet_Free_Context *context, | ||
3844 | const Eet_Dictionary *ed, | ||
3845 | Eet_Data_Descriptor *edd __UNUSED__, | ||
3846 | Eet_Data_Element *ede, | ||
3847 | Eet_Data_Chunk *echnk, | ||
3848 | int type, | ||
3849 | int group_type, | ||
3850 | void *data, | ||
3851 | char **p, | ||
3852 | int *size) | ||
3853 | { | ||
3854 | const char *union_type; | ||
3855 | void *data_ret = NULL; | ||
3856 | int ret = 0; | ||
3857 | int i; | ||
3858 | |||
3859 | /* Read type */ | ||
3860 | ret = eet_data_get_type(ed, | ||
3861 | EET_T_STRING, | ||
3862 | echnk->data, | ||
3863 | ((char *)echnk->data) + echnk->size, | ||
3864 | &union_type); | ||
3865 | if (ret <= 0) | ||
3866 | goto on_error; | ||
3867 | |||
3868 | /* Advance to next chunk */ | ||
3869 | NEXT_CHUNK((*p), (*size), (*echnk), ed); | ||
3870 | memset(echnk, 0, sizeof(Eet_Data_Chunk)); | ||
3871 | |||
3872 | /* Read value */ | ||
3873 | eet_data_chunk_get(ed, echnk, *p, *size); | ||
3874 | if (!echnk->name) | ||
3875 | goto on_error; | ||
3876 | |||
3877 | if (ede) | ||
3878 | { | ||
3879 | EET_ASSERT(!(ede->group_type != group_type || ede->type != type), | ||
3880 | goto on_error); | ||
3881 | |||
3882 | /* Search the structure of the union to decode */ | ||
3883 | for (i = 0; i < ede->subtype->elements.num; ++i) | ||
3884 | if (strcmp(ede->subtype->elements.set[i].name, union_type) == 0) | ||
3885 | { | ||
3886 | Eet_Data_Element *sede; | ||
3887 | char *ut; | ||
3888 | |||
3889 | /* Yeah we found it ! */ | ||
3890 | sede = &(ede->subtype->elements.set[i]); | ||
3891 | EET_ASSERT(sede->subtype, goto on_error); | ||
3892 | |||
3893 | data_ret = _eet_data_descriptor_decode(context, | ||
3894 | ed, | ||
3895 | sede->subtype, | ||
3896 | echnk->data, | ||
3897 | echnk->size, | ||
3898 | data, | ||
3899 | sede->subtype->size); | ||
3900 | if (!data_ret) | ||
3901 | goto on_error; | ||
3902 | |||
3903 | /* Set union type. */ | ||
3904 | if ((!ed) || (!ede->subtype->func.str_direct_alloc)) | ||
3905 | { | ||
3906 | ut = ede->subtype->func.str_alloc(union_type); | ||
3907 | _eet_freelist_str_add(context, ut); | ||
3908 | } | ||
3909 | else | ||
3910 | { | ||
3911 | ut = ede->subtype->func.str_direct_alloc(union_type); | ||
3912 | _eet_freelist_direct_str_add(context, ut); | ||
3913 | } | ||
3914 | |||
3915 | ede->subtype->func.type_set( | ||
3916 | ut, | ||
3917 | ((char *)data) + ede->count - | ||
3918 | ede->offset, | ||
3919 | EINA_FALSE); | ||
3920 | |||
3921 | break; | ||
3922 | } | ||
3923 | } | ||
3924 | else | ||
3925 | { | ||
3926 | /* FIXME: generate node structure. */ | ||
3927 | data_ret = _eet_data_descriptor_decode(context, | ||
3928 | ed, NULL, | ||
3929 | echnk->data, echnk->size, | ||
3930 | NULL, 0); | ||
3931 | goto on_error; | ||
3932 | } | ||
3933 | |||
3934 | return 1; | ||
3935 | |||
3936 | on_error: | ||
3937 | return 0; | ||
3938 | } | ||
3939 | |||
3940 | static void | ||
3941 | eet_data_put_variant(Eet_Dictionary *ed, | ||
3942 | Eet_Data_Descriptor *edd __UNUSED__, | ||
3943 | Eet_Data_Element *ede, | ||
3944 | Eet_Data_Stream *ds, | ||
3945 | void *data_in) | ||
3946 | { | ||
3947 | const char *union_type; | ||
3948 | void *data; | ||
3949 | Eina_Bool unknow = EINA_FALSE; | ||
3950 | int size; | ||
3951 | int i; | ||
3952 | |||
3953 | EET_ASSERT(!((ede->type != EET_T_UNKNOW) || (!ede->subtype)), return ); | ||
3954 | |||
3955 | union_type = ede->subtype->func.type_get( | ||
3956 | ((char *)data_in) + ede->count - ede->offset, | ||
3957 | &unknow); | ||
3958 | |||
3959 | if (!union_type && unknow == EINA_FALSE) | ||
3960 | return; | ||
3961 | |||
3962 | if (unknow) | ||
3963 | { | ||
3964 | /* Handle opaque internal representation */ | ||
3965 | Eet_Variant_Unknow *evu; | ||
3966 | |||
3967 | data = eet_data_put_type(ed, EET_T_STRING, &union_type, &size); | ||
3968 | if (data) | ||
3969 | eet_data_encode(ed, | ||
3970 | ds, | ||
3971 | data, | ||
3972 | ede->name, | ||
3973 | size, | ||
3974 | ede->type, | ||
3975 | ede->group_type); | ||
3976 | |||
3977 | evu = (Eet_Variant_Unknow *)data_in; | ||
3978 | if (evu && EINA_MAGIC_CHECK(evu, EET_MAGIC_VARIANT)) | ||
3979 | eet_data_encode(ed, | ||
3980 | ds, | ||
3981 | evu->data, | ||
3982 | ede->name, | ||
3983 | evu->size, | ||
3984 | ede->type, | ||
3985 | ede->group_type); | ||
3986 | } | ||
3987 | else | ||
3988 | /* Search the structure of the union to encode. */ | ||
3989 | for (i = 0; i < ede->subtype->elements.num; ++i) | ||
3990 | if (strcmp(ede->subtype->elements.set[i].name, union_type) == 0) | ||
3991 | { | ||
3992 | Eet_Data_Element *sede; | ||
3993 | |||
3994 | /* Yeah we found it ! */ | ||
3995 | data = eet_data_put_type(ed, EET_T_STRING, &union_type, &size); | ||
3996 | if (data) | ||
3997 | eet_data_encode(ed, | ||
3998 | ds, | ||
3999 | data, | ||
4000 | ede->name, | ||
4001 | size, | ||
4002 | ede->type, | ||
4003 | ede->group_type); | ||
4004 | |||
4005 | sede = &(ede->subtype->elements.set[i]); | ||
4006 | |||
4007 | if (sede->group_type != EET_G_UNKNOWN) | ||
4008 | { | ||
4009 | Eet_Data_Stream *lds; | ||
4010 | |||
4011 | lds = eet_data_stream_new(); | ||
4012 | eet_group_codec[sede->group_type - 100].put(ed, | ||
4013 | sede->subtype, | ||
4014 | sede, | ||
4015 | lds, | ||
4016 | data_in); | ||
4017 | if (lds->size != 0) | ||
4018 | { | ||
4019 | eet_data_encode(ed, ds, lds->data, ede->name, lds->pos, | ||
4020 | ede->type, ede->group_type); | ||
4021 | |||
4022 | lds->data = NULL; | ||
4023 | lds->size = 0; | ||
4024 | } | ||
4025 | else | ||
4026 | eet_data_encode(ed, ds, NULL, ede->name, 0, | ||
4027 | EET_T_NULL, ede->group_type); | ||
4028 | |||
4029 | eet_data_stream_free(lds); | ||
4030 | } | ||
4031 | else | ||
4032 | { | ||
4033 | data = _eet_data_descriptor_encode(ed, | ||
4034 | sede->subtype, | ||
4035 | *(void **)data_in, | ||
4036 | &size); | ||
4037 | if (data) | ||
4038 | eet_data_encode(ed, | ||
4039 | ds, | ||
4040 | data, | ||
4041 | ede->name, | ||
4042 | size, | ||
4043 | ede->type, | ||
4044 | ede->group_type); | ||
4045 | } | ||
4046 | |||
4047 | break; | ||
4048 | } | ||
4049 | } | ||
4050 | |||
4051 | static int | ||
4052 | eet_data_get_variant(Eet_Free_Context *context, | ||
4053 | const Eet_Dictionary *ed, | ||
4054 | Eet_Data_Descriptor *edd __UNUSED__, | ||
4055 | Eet_Data_Element *ede, | ||
4056 | Eet_Data_Chunk *echnk, | ||
4057 | int type __UNUSED__, | ||
4058 | int group_type __UNUSED__, | ||
4059 | void *data, | ||
4060 | char **p, | ||
4061 | int *size) | ||
4062 | { | ||
4063 | const char *union_type; | ||
4064 | void *data_ret = NULL; | ||
4065 | int ret = 0; | ||
4066 | int i; | ||
4067 | |||
4068 | /* Read type */ | ||
4069 | ret = eet_data_get_type(ed, | ||
4070 | EET_T_STRING, | ||
4071 | echnk->data, | ||
4072 | ((char *)echnk->data) + echnk->size, | ||
4073 | &union_type); | ||
4074 | if (ret <= 0) | ||
4075 | goto on_error; | ||
4076 | |||
4077 | /* Advance to next chunk */ | ||
4078 | NEXT_CHUNK((*p), (*size), (*echnk), ed); | ||
4079 | memset(echnk, 0, sizeof(Eet_Data_Chunk)); | ||
4080 | |||
4081 | /* Read value */ | ||
4082 | eet_data_chunk_get(ed, echnk, *p, *size); | ||
4083 | if (!echnk->name) | ||
4084 | goto on_error; | ||
4085 | |||
4086 | if (ede) | ||
4087 | { | ||
4088 | char *ut; | ||
4089 | |||
4090 | EET_ASSERT(ede->subtype, goto on_error); | ||
4091 | |||
4092 | if ((!ed) || (!ede->subtype->func.str_direct_alloc)) | ||
4093 | { | ||
4094 | ut = ede->subtype->func.str_alloc(union_type); | ||
4095 | _eet_freelist_str_add(context, ut); | ||
4096 | } | ||
4097 | else | ||
4098 | { | ||
4099 | ut = ede->subtype->func.str_direct_alloc(union_type); | ||
4100 | _eet_freelist_direct_str_add(context, ut); | ||
4101 | } | ||
4102 | |||
4103 | /* Search the structure of the union to decode */ | ||
4104 | for (i = 0; i < ede->subtype->elements.num; ++i) | ||
4105 | if (strcmp(ede->subtype->elements.set[i].name, union_type) == 0) | ||
4106 | { | ||
4107 | Eet_Data_Element *sede; | ||
4108 | |||
4109 | /* Yeah we found it ! */ | ||
4110 | sede = &(ede->subtype->elements.set[i]); | ||
4111 | |||
4112 | if (sede->group_type != EET_G_UNKNOWN) | ||
4113 | { | ||
4114 | Eet_Data_Chunk chnk; | ||
4115 | char *p2; | ||
4116 | int size2; | ||
4117 | |||
4118 | p2 = echnk->data; | ||
4119 | size2 = echnk->size; | ||
4120 | |||
4121 | /* Didn't find a proper way to provide this | ||
4122 | without duplicating code */ | ||
4123 | while (size2 > 0) | ||
4124 | { | ||
4125 | memset(&chnk, 0, sizeof(Eet_Data_Chunk)); | ||
4126 | eet_data_chunk_get(ed, &chnk, p2, size2); | ||
4127 | |||
4128 | if (!chnk.name) | ||
4129 | goto on_error; | ||
4130 | |||
4131 | ret = eet_group_codec[sede->group_type - 100].get | ||
4132 | (context, ed, sede->subtype, sede, &chnk, sede->type, | ||
4133 | sede->group_type, data, &p2, &size2); | ||
4134 | |||
4135 | if (ret <= 0) | ||
4136 | goto on_error; | ||
4137 | |||
4138 | /* advance to next chunk */ | ||
4139 | NEXT_CHUNK(p2, size2, chnk, ed); | ||
4140 | } | ||
4141 | |||
4142 | /* Put garbage so that we will not put eet_variant_unknow in it */ | ||
4143 | data_ret = (void *)data; | ||
4144 | |||
4145 | /* Set variant type. */ | ||
4146 | ede->subtype->func.type_set | ||
4147 | (ut, ((char *)data) + ede->count - ede->offset, | ||
4148 | EINA_FALSE); | ||
4149 | break; | ||
4150 | } | ||
4151 | |||
4152 | data_ret = _eet_data_descriptor_decode(context, | ||
4153 | ed, | ||
4154 | sede->subtype, | ||
4155 | echnk->data, | ||
4156 | echnk->size, | ||
4157 | NULL, 0); | ||
4158 | if (!data_ret) | ||
4159 | break; | ||
4160 | |||
4161 | /* And point to the variant data. */ | ||
4162 | *(void **)data = data_ret; | ||
4163 | |||
4164 | /* Set variant type. */ | ||
4165 | ede->subtype->func.type_set | ||
4166 | (ut, ((char *)data) + ede->count - ede->offset, EINA_FALSE); | ||
4167 | break; | ||
4168 | } | ||
4169 | |||
4170 | if (!data_ret) | ||
4171 | { | ||
4172 | Eet_Variant_Unknow *evu; | ||
4173 | |||
4174 | evu = calloc(1, sizeof (Eet_Variant_Unknow) + echnk->size - 1); | ||
4175 | if (!evu) | ||
4176 | goto on_error; | ||
4177 | |||
4178 | evu->size = echnk->size; | ||
4179 | memcpy(evu->data, echnk->data, evu->size); | ||
4180 | EINA_MAGIC_SET(evu, EET_MAGIC_VARIANT); | ||
4181 | |||
4182 | /* And point to the opaque internal data scructure */ | ||
4183 | *(void **)data = evu; | ||
4184 | |||
4185 | /* Set variant type. */ | ||
4186 | ede->subtype->func.type_set | ||
4187 | (ut, ((char *)data) + ede->count - ede->offset, EINA_TRUE); | ||
4188 | } | ||
4189 | } | ||
4190 | else | ||
4191 | { | ||
4192 | /* FIXME: dump node structure. */ | ||
4193 | data_ret = _eet_data_descriptor_decode(context, | ||
4194 | ed, NULL, | ||
4195 | echnk->data, echnk->size, | ||
4196 | NULL, 0); | ||
4197 | goto on_error; | ||
4198 | } | ||
4199 | |||
4200 | return 1; | ||
4201 | |||
4202 | on_error: | ||
4203 | return 0; | ||
4204 | } | ||
4205 | |||
4206 | static Eet_Node * | ||
4207 | eet_data_node_simple_type(int type, | ||
4208 | const char *name, | ||
4209 | void *dd) | ||
4210 | { | ||
4211 | #ifdef EET_T_TYPE | ||
4212 | # undef EET_T_TYPE | ||
4213 | #endif /* ifdef EET_T_TYPE */ | ||
4214 | |||
4215 | #define EET_T_TYPE(Eet_Type, Eet_Node_Type, Type) \ | ||
4216 | case Eet_Type: \ | ||
4217 | return eet_node_ ## Eet_Node_Type ## _new(name, *((Type *)dd)); \ | ||
4218 | |||
4219 | switch (type) | ||
4220 | { | ||
4221 | EET_T_TYPE(EET_T_CHAR, char, char); | ||
4222 | EET_T_TYPE(EET_T_SHORT, short, short); | ||
4223 | EET_T_TYPE(EET_T_INT, int, int); | ||
4224 | EET_T_TYPE(EET_T_LONG_LONG, long_long, long long); | ||
4225 | EET_T_TYPE(EET_T_FLOAT, float, float); | ||
4226 | EET_T_TYPE(EET_T_DOUBLE, double, double); | ||
4227 | EET_T_TYPE(EET_T_UCHAR, unsigned_char, unsigned char); | ||
4228 | EET_T_TYPE(EET_T_USHORT, unsigned_short, unsigned short); | ||
4229 | EET_T_TYPE(EET_T_UINT, unsigned_int, unsigned int); | ||
4230 | EET_T_TYPE(EET_T_ULONG_LONG, unsigned_long_long, unsigned long long); | ||
4231 | EET_T_TYPE(EET_T_STRING, string, char *); | ||
4232 | EET_T_TYPE(EET_T_INLINED_STRING, inlined_string, char *); | ||
4233 | |||
4234 | case EET_T_NULL: | ||
4235 | return eet_node_null_new(name); | ||
4236 | |||
4237 | default: | ||
4238 | ERR("Unknow type passed to eet_data_node_simple_type"); | ||
4239 | return NULL; | ||
4240 | } | ||
4241 | } | ||
4242 | |||
4243 | static int | ||
4244 | eet_data_get_unknown(Eet_Free_Context *context, | ||
4245 | const Eet_Dictionary *ed, | ||
4246 | Eet_Data_Descriptor *edd, | ||
4247 | Eet_Data_Element *ede, | ||
4248 | Eet_Data_Chunk *echnk, | ||
4249 | int type, | ||
4250 | int group_type __UNUSED__, | ||
4251 | void *data, | ||
4252 | char **p __UNUSED__, | ||
4253 | int *size __UNUSED__) | ||
4254 | { | ||
4255 | int ret; | ||
4256 | void *data_ret; | ||
4257 | |||
4258 | if (IS_SIMPLE_TYPE(type)) | ||
4259 | { | ||
4260 | unsigned char dd[128]; | ||
4261 | |||
4262 | ret = eet_data_get_type(ed, | ||
4263 | type, | ||
4264 | echnk->data, | ||
4265 | ((char *)echnk->data) + echnk->size, | ||
4266 | edd ? (char *)data : (char *)dd); | ||
4267 | if (ret <= 0) | ||
4268 | return ret; | ||
4269 | |||
4270 | if (!edd) | ||
4271 | { | ||
4272 | Eet_Node **parent = data; | ||
4273 | Eet_Node *node; | ||
4274 | |||
4275 | node = eet_data_node_simple_type(type, echnk->name, dd); | ||
4276 | |||
4277 | if (*parent) | ||
4278 | eet_node_struct_append(*parent, echnk->name, node); | ||
4279 | else | ||
4280 | *parent = node; | ||
4281 | } | ||
4282 | else | ||
4283 | { | ||
4284 | if (type == EET_T_STRING) | ||
4285 | { | ||
4286 | char **str; | ||
4287 | |||
4288 | str = (char **)(((char *)data)); | ||
4289 | if (*str) | ||
4290 | { | ||
4291 | if ((!ed) || (!edd->func.str_direct_alloc)) | ||
4292 | { | ||
4293 | *str = edd->func.str_alloc(*str); | ||
4294 | _eet_freelist_str_add(context, *str); | ||
4295 | } | ||
4296 | else | ||
4297 | { | ||
4298 | *str = edd->func.str_direct_alloc(*str); | ||
4299 | _eet_freelist_direct_str_add(context, *str); | ||
4300 | } | ||
4301 | } | ||
4302 | } | ||
4303 | else if (edd && type == EET_T_INLINED_STRING) | ||
4304 | { | ||
4305 | char **str; | ||
4306 | |||
4307 | str = (char **)(((char *)data)); | ||
4308 | if (*str) | ||
4309 | { | ||
4310 | *str = edd->func.str_alloc(*str); | ||
4311 | _eet_freelist_str_add(context, *str); | ||
4312 | } | ||
4313 | } | ||
4314 | } | ||
4315 | } | ||
4316 | else | ||
4317 | { | ||
4318 | Eet_Data_Descriptor *subtype; | ||
4319 | |||
4320 | subtype = ede ? ede->subtype : NULL; | ||
4321 | |||
4322 | if (subtype || !edd) | ||
4323 | { | ||
4324 | Eet_Node **parent = data; | ||
4325 | void **ptr; | ||
4326 | |||
4327 | data_ret = _eet_data_descriptor_decode(context, | ||
4328 | ed, | ||
4329 | subtype, | ||
4330 | echnk->data, | ||
4331 | echnk->size, | ||
4332 | NULL, 0); | ||
4333 | if (!data_ret) | ||
4334 | return 0; | ||
4335 | |||
4336 | if (edd) | ||
4337 | { | ||
4338 | ptr = (void **)(((char *)data)); | ||
4339 | *ptr = (void *)data_ret; | ||
4340 | } | ||
4341 | else | ||
4342 | { | ||
4343 | Eet_Node *node = data_ret; | ||
4344 | |||
4345 | if (*parent) | ||
4346 | { | ||
4347 | node = eet_node_struct_child_new(echnk->name, node); | ||
4348 | eet_node_struct_append(*parent, echnk->name, node); | ||
4349 | } | ||
4350 | else | ||
4351 | *parent = node; | ||
4352 | } | ||
4353 | } | ||
4354 | } | ||
4355 | |||
4356 | return 1; | ||
4357 | } | ||
4358 | |||
4359 | static void | ||
4360 | eet_data_put_array(Eet_Dictionary *ed, | ||
4361 | Eet_Data_Descriptor *edd __UNUSED__, | ||
4362 | Eet_Data_Element *ede, | ||
4363 | Eet_Data_Stream *ds, | ||
4364 | void *data_in) | ||
4365 | { | ||
4366 | void *data; | ||
4367 | int offset = 0; | ||
4368 | int subsize; | ||
4369 | int count; | ||
4370 | int size; | ||
4371 | int j; | ||
4372 | |||
4373 | EET_ASSERT(!((ede->type > EET_T_UNKNOW) && (ede->type < EET_T_STRING)), | ||
4374 | return ); | ||
4375 | |||
4376 | if (ede->group_type == EET_G_ARRAY) | ||
4377 | count = ede->counter_offset; | ||
4378 | else | ||
4379 | count = *(int *)(((char *)data_in) + ede->count - ede->offset); | ||
4380 | |||
4381 | if (count <= 0) | ||
4382 | return; /* Store number of elements */ | ||
4383 | |||
4384 | data = eet_data_put_type(ed, EET_T_INT, &count, &size); | ||
4385 | if (data) | ||
4386 | eet_data_encode(ed, ds, data, ede->name, size, ede->type, ede->group_type); | ||
4387 | |||
4388 | if (IS_POINTER_TYPE(ede->type)) | ||
4389 | subsize = eet_basic_codec[ede->type].size; | ||
4390 | else | ||
4391 | subsize = ede->subtype->size; | ||
4392 | |||
4393 | for (j = 0; j < count; j++) | ||
4394 | { | ||
4395 | void *d; | ||
4396 | int pos = ds->pos; | ||
4397 | |||
4398 | if (ede->group_type == EET_G_ARRAY) | ||
4399 | d = (void *)(((char *)data_in) + offset); | ||
4400 | else | ||
4401 | d = *(((char **)data_in)) + offset; | ||
4402 | |||
4403 | if (IS_POINTER_TYPE(ede->type)) | ||
4404 | { | ||
4405 | if (*(char **)d) | ||
4406 | eet_data_put_unknown(ed, NULL, ede, ds, d); | ||
4407 | } | ||
4408 | else | ||
4409 | { | ||
4410 | data = _eet_data_descriptor_encode(ed, ede->subtype, d, &size); | ||
4411 | if (data) | ||
4412 | eet_data_encode(ed, | ||
4413 | ds, | ||
4414 | data, | ||
4415 | ede->name, | ||
4416 | size, | ||
4417 | ede->type, | ||
4418 | ede->group_type); | ||
4419 | } | ||
4420 | |||
4421 | if (pos == ds->pos) | ||
4422 | /* Add a NULL element just to have the correct array layout. */ | ||
4423 | eet_data_encode(ed, | ||
4424 | ds, | ||
4425 | NULL, | ||
4426 | ede->name, | ||
4427 | 0, | ||
4428 | EET_T_NULL, | ||
4429 | ede->group_type); | ||
4430 | |||
4431 | offset += subsize; | ||
4432 | } | ||
4433 | } | ||
4434 | |||
4435 | static void | ||
4436 | eet_data_put_unknown(Eet_Dictionary *ed, | ||
4437 | Eet_Data_Descriptor *edd __UNUSED__, | ||
4438 | Eet_Data_Element *ede, | ||
4439 | Eet_Data_Stream *ds, | ||
4440 | void *data_in) | ||
4441 | { | ||
4442 | void *data = NULL; | ||
4443 | int size; | ||
4444 | |||
4445 | if (IS_SIMPLE_TYPE(ede->type)) | ||
4446 | data = eet_data_put_type(ed, ede->type, data_in, &size); | ||
4447 | else if (ede->subtype) | ||
4448 | if (*((char **)data_in)) | ||
4449 | data = _eet_data_descriptor_encode(ed, | ||
4450 | ede->subtype, | ||
4451 | *((char **)((char *)(data_in))), | ||
4452 | &size); | ||
4453 | |||
4454 | if (data) | ||
4455 | eet_data_encode(ed, | ||
4456 | ds, | ||
4457 | data, | ||
4458 | ede->name, | ||
4459 | size, | ||
4460 | ede->type, | ||
4461 | ede->group_type); | ||
4462 | } | ||
4463 | |||
4464 | static void | ||
4465 | eet_data_put_list(Eet_Dictionary *ed, | ||
4466 | Eet_Data_Descriptor *edd, | ||
4467 | Eet_Data_Element *ede, | ||
4468 | Eet_Data_Stream *ds, | ||
4469 | void *data_in) | ||
4470 | { | ||
4471 | void *data; | ||
4472 | void *l; | ||
4473 | int size; | ||
4474 | |||
4475 | EET_ASSERT(!(((ede->type > EET_T_UNKNOW) && (ede->type < EET_T_STRING)) | ||
4476 | || ((ede->type > EET_T_NULL) && (ede->type < EET_T_LAST))), | ||
4477 | return ); | ||
4478 | |||
4479 | l = *((void **)(((char *)data_in))); | ||
4480 | for (; l; l = edd->func.list_next(l)) | ||
4481 | { | ||
4482 | if (IS_POINTER_TYPE(ede->type)) | ||
4483 | { | ||
4484 | const void *str = edd->func.list_data(l); | ||
4485 | eet_data_put_unknown(ed, NULL, ede, ds, &str); | ||
4486 | } | ||
4487 | else | ||
4488 | { | ||
4489 | data = _eet_data_descriptor_encode(ed, | ||
4490 | ede->subtype, | ||
4491 | edd->func.list_data(l), | ||
4492 | &size); | ||
4493 | if (data) | ||
4494 | eet_data_encode(ed, | ||
4495 | ds, | ||
4496 | data, | ||
4497 | ede->name, | ||
4498 | size, | ||
4499 | ede->type, | ||
4500 | ede->group_type); | ||
4501 | } | ||
4502 | } | ||
4503 | } | ||
4504 | |||
4505 | static void | ||
4506 | eet_data_put_hash(Eet_Dictionary *ed, | ||
4507 | Eet_Data_Descriptor *edd, | ||
4508 | Eet_Data_Element *ede, | ||
4509 | Eet_Data_Stream *ds, | ||
4510 | void *data_in) | ||
4511 | { | ||
4512 | Eet_Data_Encode_Hash_Info fdata; | ||
4513 | void *l; | ||
4514 | |||
4515 | l = *((void **)(((char *)data_in))); | ||
4516 | fdata.ds = ds; | ||
4517 | fdata.ede = ede; | ||
4518 | fdata.ed = ed; | ||
4519 | edd->func.hash_foreach(l, eet_data_descriptor_encode_hash_cb, &fdata); | ||
4520 | } | ||
4521 | |||
4522 | EAPI int | ||
4523 | eet_data_dump_cipher(Eet_File *ef, | ||
4524 | const char *name, | ||
4525 | const char *cipher_key, | ||
4526 | Eet_Dump_Callback dumpfunc, | ||
4527 | void *dumpdata) | ||
4528 | { | ||
4529 | const Eet_Dictionary *ed = NULL; | ||
4530 | const void *data = NULL; | ||
4531 | Eet_Node *result; | ||
4532 | Eet_Free_Context context; | ||
4533 | int required_free = 0; | ||
4534 | int size; | ||
4535 | |||
4536 | ed = eet_dictionary_get(ef); | ||
4537 | |||
4538 | if (!cipher_key) | ||
4539 | data = eet_read_direct(ef, name, &size); | ||
4540 | |||
4541 | if (!data) | ||
4542 | { | ||
4543 | required_free = 1; | ||
4544 | data = eet_read_cipher(ef, name, &size, cipher_key); | ||
4545 | if (!data) | ||
4546 | return 0; | ||
4547 | } | ||
4548 | |||
4549 | eet_free_context_init(&context); | ||
4550 | result = _eet_data_descriptor_decode(&context, ed, NULL, data, size, NULL, 0); | ||
4551 | eet_free_context_shutdown(&context); | ||
4552 | |||
4553 | eet_node_dump(result, 0, dumpfunc, dumpdata); | ||
4554 | |||
4555 | eet_node_del(result); | ||
4556 | |||
4557 | if (required_free) | ||
4558 | free((void *)data); | ||
4559 | |||
4560 | return result ? 1 : 0; | ||
4561 | } | ||
4562 | |||
4563 | EAPI int | ||
4564 | eet_data_dump(Eet_File *ef, | ||
4565 | const char *name, | ||
4566 | Eet_Dump_Callback dumpfunc, | ||
4567 | void *dumpdata) | ||
4568 | { | ||
4569 | return eet_data_dump_cipher(ef, name, NULL, dumpfunc, dumpdata); | ||
4570 | } | ||
4571 | |||
4572 | EAPI int | ||
4573 | eet_data_text_dump_cipher(const void *data_in, | ||
4574 | const char *cipher_key, | ||
4575 | int size_in, | ||
4576 | Eet_Dump_Callback dumpfunc, | ||
4577 | void *dumpdata) | ||
4578 | { | ||
4579 | void *ret = NULL; | ||
4580 | Eet_Node *result; | ||
4581 | Eet_Free_Context context; | ||
4582 | unsigned int ret_len = 0; | ||
4583 | |||
4584 | if (!data_in) | ||
4585 | return 0; | ||
4586 | |||
4587 | if (cipher_key) | ||
4588 | { | ||
4589 | if (eet_decipher(data_in, size_in, cipher_key, | ||
4590 | strlen(cipher_key), &ret, &ret_len)) | ||
4591 | { | ||
4592 | if (ret) | ||
4593 | free(ret); | ||
4594 | |||
4595 | return 0; | ||
4596 | } | ||
4597 | } | ||
4598 | else | ||
4599 | { | ||
4600 | ret = (void *)data_in; | ||
4601 | ret_len = size_in; | ||
4602 | } | ||
4603 | |||
4604 | eet_free_context_init(&context); | ||
4605 | result = _eet_data_descriptor_decode(&context, NULL, NULL, ret, ret_len, NULL, 0); | ||
4606 | eet_free_context_shutdown(&context); | ||
4607 | |||
4608 | eet_node_dump(result, 0, dumpfunc, dumpdata); | ||
4609 | |||
4610 | eet_node_del(result); | ||
4611 | if (cipher_key) | ||
4612 | free(ret); | ||
4613 | |||
4614 | return result ? 1 : 0; | ||
4615 | } | ||
4616 | |||
4617 | EAPI int | ||
4618 | eet_data_text_dump(const void *data_in, | ||
4619 | int size_in, | ||
4620 | Eet_Dump_Callback dumpfunc, | ||
4621 | void *dumpdata) | ||
4622 | { | ||
4623 | return eet_data_text_dump_cipher(data_in, NULL, size_in, dumpfunc, dumpdata); | ||
4624 | } | ||
4625 | |||
4626 | EAPI void * | ||
4627 | eet_data_text_undump_cipher(const char *text, | ||
4628 | const char *cipher_key, | ||
4629 | int textlen, | ||
4630 | int *size_ret) | ||
4631 | { | ||
4632 | void *ret = NULL; | ||
4633 | |||
4634 | ret = _eet_data_dump_parse(NULL, size_ret, text, textlen); | ||
4635 | if (ret && cipher_key) | ||
4636 | { | ||
4637 | void *ciphered = NULL; | ||
4638 | unsigned int ciphered_len; | ||
4639 | |||
4640 | if (eet_cipher(ret, *size_ret, cipher_key, | ||
4641 | strlen(cipher_key), &ciphered, &ciphered_len)) | ||
4642 | { | ||
4643 | if (ciphered) | ||
4644 | free(ciphered); | ||
4645 | |||
4646 | size_ret = 0; | ||
4647 | free(ret); | ||
4648 | return NULL; | ||
4649 | } | ||
4650 | |||
4651 | free(ret); | ||
4652 | *size_ret = ciphered_len; | ||
4653 | ret = ciphered; | ||
4654 | } | ||
4655 | |||
4656 | return ret; | ||
4657 | } | ||
4658 | |||
4659 | EAPI void * | ||
4660 | eet_data_text_undump(const char *text, | ||
4661 | int textlen, | ||
4662 | int *size_ret) | ||
4663 | { | ||
4664 | return eet_data_text_undump_cipher(text, NULL, textlen, size_ret); | ||
4665 | } | ||
4666 | |||
4667 | EAPI int | ||
4668 | eet_data_undump_cipher(Eet_File *ef, | ||
4669 | const char *name, | ||
4670 | const char *cipher_key, | ||
4671 | const char *text, | ||
4672 | int textlen, | ||
4673 | int compress) | ||
4674 | { | ||
4675 | Eet_Dictionary *ed; | ||
4676 | void *data_enc; | ||
4677 | int size; | ||
4678 | int val; | ||
4679 | |||
4680 | ed = eet_dictionary_get(ef); | ||
4681 | |||
4682 | data_enc = _eet_data_dump_parse(ed, &size, text, textlen); | ||
4683 | if (!data_enc) | ||
4684 | return 0; | ||
4685 | |||
4686 | val = eet_write_cipher(ef, name, data_enc, size, compress, cipher_key); | ||
4687 | free(data_enc); | ||
4688 | return val; | ||
4689 | } | ||
4690 | |||
4691 | EAPI int | ||
4692 | eet_data_undump(Eet_File *ef, | ||
4693 | const char *name, | ||
4694 | const char *text, | ||
4695 | int textlen, | ||
4696 | int compress) | ||
4697 | { | ||
4698 | return eet_data_undump_cipher(ef, name, NULL, text, textlen, compress); | ||
4699 | } | ||
4700 | |||
4701 | EAPI void * | ||
4702 | eet_data_descriptor_decode_cipher(Eet_Data_Descriptor *edd, | ||
4703 | const void *data_in, | ||
4704 | const char *cipher_key, | ||
4705 | int size_in) | ||
4706 | { | ||
4707 | void *deciphered = (void *)data_in; | ||
4708 | void *ret; | ||
4709 | Eet_Free_Context context; | ||
4710 | unsigned int deciphered_len = size_in; | ||
4711 | |||
4712 | if (cipher_key && data_in) | ||
4713 | if (eet_decipher(data_in, size_in, cipher_key, | ||
4714 | strlen(cipher_key), &deciphered, &deciphered_len)) | ||
4715 | { | ||
4716 | if (deciphered) | ||
4717 | free(deciphered); | ||
4718 | |||
4719 | return NULL; | ||
4720 | } | ||
4721 | |||
4722 | eet_free_context_init(&context); | ||
4723 | ret = _eet_data_descriptor_decode(&context, | ||
4724 | NULL, | ||
4725 | edd, | ||
4726 | deciphered, | ||
4727 | deciphered_len, | ||
4728 | NULL, 0); | ||
4729 | eet_free_context_shutdown(&context); | ||
4730 | |||
4731 | if (data_in != deciphered) | ||
4732 | free(deciphered); | ||
4733 | |||
4734 | return ret; | ||
4735 | } | ||
4736 | |||
4737 | EAPI void * | ||
4738 | eet_data_descriptor_decode(Eet_Data_Descriptor *edd, | ||
4739 | const void *data_in, | ||
4740 | int size_in) | ||
4741 | { | ||
4742 | return eet_data_descriptor_decode_cipher(edd, data_in, NULL, size_in); | ||
4743 | } | ||
4744 | |||
4745 | EAPI Eet_Node * | ||
4746 | eet_data_node_decode_cipher(const void *data_in, | ||
4747 | const char *cipher_key, | ||
4748 | int size_in) | ||
4749 | { | ||
4750 | void *deciphered = (void *)data_in; | ||
4751 | Eet_Node *ret; | ||
4752 | Eet_Free_Context context; | ||
4753 | unsigned int deciphered_len = size_in; | ||
4754 | |||
4755 | if (cipher_key && data_in) | ||
4756 | if (eet_decipher(data_in, size_in, cipher_key, | ||
4757 | strlen(cipher_key), &deciphered, &deciphered_len)) | ||
4758 | { | ||
4759 | if (deciphered) | ||
4760 | free(deciphered); | ||
4761 | |||
4762 | return NULL; | ||
4763 | } | ||
4764 | |||
4765 | eet_free_context_init(&context); | ||
4766 | ret = _eet_data_descriptor_decode(&context, | ||
4767 | NULL, | ||
4768 | NULL, | ||
4769 | deciphered, | ||
4770 | deciphered_len, | ||
4771 | NULL, 0); | ||
4772 | eet_free_context_shutdown(&context); | ||
4773 | |||
4774 | if (data_in != deciphered) | ||
4775 | free(deciphered); | ||
4776 | |||
4777 | return ret; | ||
4778 | } | ||
4779 | |||
4780 | static void * | ||
4781 | _eet_data_descriptor_encode(Eet_Dictionary *ed, | ||
4782 | Eet_Data_Descriptor *edd, | ||
4783 | const void *data_in, | ||
4784 | int *size_ret) | ||
4785 | { | ||
4786 | Eet_Data_Stream *ds; | ||
4787 | Eet_Data_Chunk *chnk; | ||
4788 | void *cdata; | ||
4789 | int csize; | ||
4790 | int i; | ||
4791 | |||
4792 | if (_eet_data_words_bigendian == -1) | ||
4793 | { | ||
4794 | unsigned long int v; | ||
4795 | |||
4796 | v = htonl(0x12345678); | ||
4797 | if (v == 0x12345678) | ||
4798 | _eet_data_words_bigendian = 1; | ||
4799 | else | ||
4800 | _eet_data_words_bigendian = 0; | ||
4801 | } | ||
4802 | |||
4803 | ds = eet_data_stream_new(); | ||
4804 | for (i = 0; i < edd->elements.num; i++) | ||
4805 | { | ||
4806 | Eet_Data_Element *ede; | ||
4807 | |||
4808 | ede = &(edd->elements.set[i]); | ||
4809 | eet_group_codec[ede->group_type - 100].put( | ||
4810 | ed, | ||
4811 | edd, | ||
4812 | ede, | ||
4813 | ds, | ||
4814 | ((char *)data_in) + | ||
4815 | ede->offset); | ||
4816 | } | ||
4817 | chnk = eet_data_chunk_new(ds->data, | ||
4818 | ds->pos, | ||
4819 | edd->name, | ||
4820 | EET_T_UNKNOW, | ||
4821 | EET_G_UNKNOWN); | ||
4822 | ds->data = NULL; | ||
4823 | ds->size = 0; | ||
4824 | eet_data_stream_free(ds); | ||
4825 | |||
4826 | ds = eet_data_stream_new(); | ||
4827 | eet_data_chunk_put(ed, chnk, ds); | ||
4828 | cdata = ds->data; | ||
4829 | csize = ds->pos; | ||
4830 | |||
4831 | ds->data = NULL; | ||
4832 | ds->size = 0; | ||
4833 | eet_data_stream_free(ds); | ||
4834 | *size_ret = csize; | ||
4835 | |||
4836 | free(chnk->data); | ||
4837 | eet_data_chunk_free(chnk); | ||
4838 | |||
4839 | return cdata; | ||
4840 | } | ||
4841 | |||
4842 | EAPI int | ||
4843 | eet_data_node_write_cipher(Eet_File *ef, | ||
4844 | const char *name, | ||
4845 | const char *cipher_key, | ||
4846 | Eet_Node *node, | ||
4847 | int compress) | ||
4848 | { | ||
4849 | Eet_Dictionary *ed; | ||
4850 | void *data_enc; | ||
4851 | int size; | ||
4852 | int val; | ||
4853 | |||
4854 | ed = eet_dictionary_get(ef); | ||
4855 | |||
4856 | data_enc = _eet_data_dump_encode(EET_G_UNKNOWN, ed, node, &size); | ||
4857 | if (!data_enc) | ||
4858 | return 0; | ||
4859 | |||
4860 | val = eet_write_cipher(ef, name, data_enc, size, compress, cipher_key); | ||
4861 | free(data_enc); | ||
4862 | return val; | ||
4863 | } | ||
4864 | |||
4865 | EAPI void * | ||
4866 | eet_data_node_encode_cipher(Eet_Node *node, | ||
4867 | const char *cipher_key, | ||
4868 | int *size_ret) | ||
4869 | { | ||
4870 | void *ret = NULL; | ||
4871 | void *ciphered = NULL; | ||
4872 | unsigned int ciphered_len = 0; | ||
4873 | int size; | ||
4874 | |||
4875 | ret = _eet_data_dump_encode(EET_G_UNKNOWN, NULL, node, &size); | ||
4876 | if (cipher_key && ret) | ||
4877 | { | ||
4878 | if (eet_cipher(ret, size, cipher_key, | ||
4879 | strlen(cipher_key), &ciphered, &ciphered_len)) | ||
4880 | { | ||
4881 | if (ciphered) | ||
4882 | free(ciphered); | ||
4883 | |||
4884 | if (size_ret) | ||
4885 | *size_ret = 0; | ||
4886 | |||
4887 | free(ret); | ||
4888 | return NULL; | ||
4889 | } | ||
4890 | |||
4891 | free(ret); | ||
4892 | size = (int)ciphered_len; | ||
4893 | ret = ciphered; | ||
4894 | } | ||
4895 | |||
4896 | if (size_ret) | ||
4897 | *size_ret = size; | ||
4898 | |||
4899 | return ret; | ||
4900 | } | ||
4901 | |||
4902 | EAPI void * | ||
4903 | eet_data_descriptor_encode_cipher(Eet_Data_Descriptor *edd, | ||
4904 | const void *data_in, | ||
4905 | const char *cipher_key, | ||
4906 | int *size_ret) | ||
4907 | { | ||
4908 | void *ret = NULL; | ||
4909 | void *ciphered = NULL; | ||
4910 | unsigned int ciphered_len = 0; | ||
4911 | int size; | ||
4912 | |||
4913 | ret = _eet_data_descriptor_encode(NULL, edd, data_in, &size); | ||
4914 | if (cipher_key && ret) | ||
4915 | { | ||
4916 | if (eet_cipher(ret, size, cipher_key, | ||
4917 | strlen(cipher_key), &ciphered, &ciphered_len)) | ||
4918 | { | ||
4919 | if (ciphered) | ||
4920 | free(ciphered); | ||
4921 | |||
4922 | if (size_ret) | ||
4923 | *size_ret = 0; | ||
4924 | |||
4925 | free(ret); | ||
4926 | return NULL; | ||
4927 | } | ||
4928 | |||
4929 | free(ret); | ||
4930 | size = ciphered_len; | ||
4931 | ret = ciphered; | ||
4932 | } | ||
4933 | |||
4934 | if (size_ret) | ||
4935 | *size_ret = size; | ||
4936 | |||
4937 | return ret; | ||
4938 | } | ||
4939 | |||
4940 | EAPI void * | ||
4941 | eet_data_descriptor_encode(Eet_Data_Descriptor *edd, | ||
4942 | const void *data_in, | ||
4943 | int *size_ret) | ||
4944 | { | ||
4945 | return eet_data_descriptor_encode_cipher(edd, data_in, NULL, size_ret); | ||
4946 | } | ||
4947 | |||
4948 | EAPI void * | ||
4949 | eet_data_xattr_cipher_get(const char *filename, | ||
4950 | const char *attribute, | ||
4951 | Eet_Data_Descriptor *edd, | ||
4952 | const char *cipher_key) | ||
4953 | { | ||
4954 | void *blob; | ||
4955 | void *ret; | ||
4956 | ssize_t size; | ||
4957 | |||
4958 | blob = eina_xattr_get(filename, attribute, &size); | ||
4959 | if (!blob) return NULL; | ||
4960 | |||
4961 | ret = eet_data_descriptor_decode_cipher(edd, blob, cipher_key, size); | ||
4962 | free(blob); | ||
4963 | |||
4964 | return ret; | ||
4965 | } | ||
4966 | |||
4967 | EAPI Eina_Bool | ||
4968 | eet_data_xattr_cipher_set(const char *filename, | ||
4969 | const char *attribute, | ||
4970 | Eet_Data_Descriptor *edd, | ||
4971 | const char *cipher_key, | ||
4972 | const void *data, | ||
4973 | Eina_Xattr_Flags flags) | ||
4974 | { | ||
4975 | void *blob; | ||
4976 | int size; | ||
4977 | Eina_Bool ret; | ||
4978 | |||
4979 | blob = eet_data_descriptor_encode_cipher(edd, data, cipher_key, &size); | ||
4980 | if (!blob) return EINA_FALSE; | ||
4981 | |||
4982 | ret = eina_xattr_set(filename, attribute, blob, size, flags); | ||
4983 | free(blob); | ||
4984 | |||
4985 | return ret; | ||
4986 | } | ||
diff --git a/libraries/eet/src/lib/eet_dictionary.c b/libraries/eet/src/lib/eet_dictionary.c deleted file mode 100644 index c79239b..0000000 --- a/libraries/eet/src/lib/eet_dictionary.c +++ /dev/null | |||
@@ -1,444 +0,0 @@ | |||
1 | #ifdef HAVE_CONFIG_H | ||
2 | # include <config.h> | ||
3 | #endif /* ifdef HAVE_CONFIG_H */ | ||
4 | |||
5 | #include <stdio.h> | ||
6 | #include <string.h> | ||
7 | #include <math.h> | ||
8 | |||
9 | #include <Eina.h> | ||
10 | |||
11 | #include "Eet.h" | ||
12 | #include "Eet_private.h" | ||
13 | |||
14 | Eet_Dictionary * | ||
15 | eet_dictionary_add(void) | ||
16 | { | ||
17 | Eet_Dictionary *new; | ||
18 | |||
19 | new = eet_dictionary_calloc(1); | ||
20 | if (!new) | ||
21 | return NULL; | ||
22 | |||
23 | memset(new->hash, -1, sizeof (int) * 256); | ||
24 | |||
25 | return new; | ||
26 | } | ||
27 | |||
28 | void | ||
29 | eet_dictionary_free(Eet_Dictionary *ed) | ||
30 | { | ||
31 | int i; | ||
32 | |||
33 | if (!ed) return; | ||
34 | |||
35 | for (i = 0; i < ed->count; ++i) | ||
36 | if (ed->all[i].allocated) | ||
37 | eina_stringshare_del(ed->all[i].str); | ||
38 | |||
39 | if (ed->all) | ||
40 | free(ed->all); | ||
41 | |||
42 | if (ed->converts) eina_hash_free(ed->converts); | ||
43 | |||
44 | eet_dictionary_mp_free(ed); | ||
45 | } | ||
46 | |||
47 | static int | ||
48 | _eet_dictionary_lookup(Eet_Dictionary *ed, | ||
49 | const char *string, | ||
50 | int len, | ||
51 | int hash) | ||
52 | { | ||
53 | Eina_Bool found = EINA_FALSE; | ||
54 | int prev = -1; | ||
55 | int current; | ||
56 | |||
57 | current = ed->hash[hash]; | ||
58 | |||
59 | while (current != -1) | ||
60 | { | ||
61 | if (ed->all[current].len == len) | ||
62 | { | ||
63 | if (ed->all[current].str && | ||
64 | (ed->all[current].str == string || strcmp(ed->all[current].str, string) == 0)) | ||
65 | { | ||
66 | found = EINA_TRUE; | ||
67 | break; | ||
68 | } | ||
69 | } | ||
70 | |||
71 | prev = current; | ||
72 | current = ed->all[current].next; | ||
73 | } | ||
74 | |||
75 | if (current == -1 && found) | ||
76 | return prev; | ||
77 | |||
78 | return current; | ||
79 | } | ||
80 | |||
81 | int | ||
82 | eet_dictionary_string_add(Eet_Dictionary *ed, | ||
83 | const char *string) | ||
84 | { | ||
85 | Eet_String *current; | ||
86 | const char *str; | ||
87 | int hash; | ||
88 | int idx; | ||
89 | int len; | ||
90 | |||
91 | if (!ed) | ||
92 | return -1; | ||
93 | |||
94 | hash = _eet_hash_gen(string, 8); | ||
95 | len = strlen(string) + 1; | ||
96 | |||
97 | idx = _eet_dictionary_lookup(ed, string, len, hash); | ||
98 | |||
99 | if (idx != -1) | ||
100 | { | ||
101 | if (ed->all[idx].str && (ed->all[idx].str == string || strcmp(ed->all[idx].str, string) == 0)) | ||
102 | return idx; | ||
103 | } | ||
104 | |||
105 | if (ed->total == ed->count) | ||
106 | { | ||
107 | Eet_String *new; | ||
108 | int total; | ||
109 | |||
110 | total = ed->total + 8; | ||
111 | |||
112 | new = realloc(ed->all, total * sizeof(Eet_String)); | ||
113 | if (!new) | ||
114 | return -1; | ||
115 | |||
116 | ed->all = new; | ||
117 | ed->total = total; | ||
118 | } | ||
119 | |||
120 | str = eina_stringshare_add(string); | ||
121 | if (!str) | ||
122 | return -1; | ||
123 | |||
124 | current = ed->all + ed->count; | ||
125 | |||
126 | current->allocated = EINA_TRUE; | ||
127 | |||
128 | current->hash = hash; | ||
129 | |||
130 | current->str = str; | ||
131 | current->len = len; | ||
132 | |||
133 | if (idx == -1) | ||
134 | { | ||
135 | current->next = ed->hash[hash]; | ||
136 | current->prev = -1; | ||
137 | ed->hash[hash] = ed->count; | ||
138 | } | ||
139 | else | ||
140 | { | ||
141 | current->next = idx; | ||
142 | current->prev = ed->all[idx].prev; | ||
143 | |||
144 | if (current->next != -1) | ||
145 | ed->all[current->next].prev = ed->count; | ||
146 | |||
147 | if (current->prev != -1) | ||
148 | ed->all[current->prev].next = ed->count; | ||
149 | else | ||
150 | ed->hash[hash] = ed->count; | ||
151 | } | ||
152 | |||
153 | return ed->count++; | ||
154 | } | ||
155 | |||
156 | int | ||
157 | eet_dictionary_string_get_size(const Eet_Dictionary *ed, | ||
158 | int idx) | ||
159 | { | ||
160 | if (!ed) | ||
161 | return 0; | ||
162 | |||
163 | if (idx < 0) | ||
164 | return 0; | ||
165 | |||
166 | if (idx < ed->count) | ||
167 | return ed->all[idx].len; | ||
168 | |||
169 | return 0; | ||
170 | } | ||
171 | |||
172 | EAPI int | ||
173 | eet_dictionary_count(const Eet_Dictionary *ed) | ||
174 | { | ||
175 | return ed->count; | ||
176 | } | ||
177 | |||
178 | int | ||
179 | eet_dictionary_string_get_hash(const Eet_Dictionary *ed, | ||
180 | int idx) | ||
181 | { | ||
182 | if (!ed) | ||
183 | return -1; | ||
184 | |||
185 | if (idx < 0) | ||
186 | return -1; | ||
187 | |||
188 | if (idx < ed->count) | ||
189 | return ed->all[idx].hash; | ||
190 | |||
191 | return -1; | ||
192 | } | ||
193 | |||
194 | const char * | ||
195 | eet_dictionary_string_get_char(const Eet_Dictionary *ed, | ||
196 | int idx) | ||
197 | { | ||
198 | if (!ed) | ||
199 | return NULL; | ||
200 | |||
201 | if (idx < 0) | ||
202 | return NULL; | ||
203 | |||
204 | if (idx < ed->count) | ||
205 | { | ||
206 | #ifdef _WIN32 | ||
207 | /* Windows file system could change the mmaped file when replacing a file. So we need to copy all string in memory to avoid bugs. */ | ||
208 | if (!ed->all[idx].allocated) | ||
209 | { | ||
210 | ed->all[idx].str = eina_stringshare_add(ed->all[idx].str); | ||
211 | ed->all[idx].allocated = EINA_TRUE; | ||
212 | } | ||
213 | #endif /* ifdef _WIN32 */ | ||
214 | return ed->all[idx].str; | ||
215 | } | ||
216 | |||
217 | return NULL; | ||
218 | } | ||
219 | |||
220 | static inline Eina_Bool | ||
221 | _eet_dictionary_string_get_me_cache(const char *s, | ||
222 | int len, | ||
223 | int *mantisse, | ||
224 | int *exponent) | ||
225 | { | ||
226 | if ((len == 6) && (s[0] == '0') && (s[1] == 'x') && (s[3] == 'p')) | ||
227 | { | ||
228 | *mantisse = (s[2] >= 'a') ? (s[2] - 'a' + 10) : (s[2] - '0'); | ||
229 | *exponent = (s[5] - '0'); | ||
230 | |||
231 | return EINA_TRUE; | ||
232 | } | ||
233 | |||
234 | return EINA_FALSE; | ||
235 | } | ||
236 | |||
237 | static inline Eina_Bool | ||
238 | _eet_dictionary_string_get_float_cache(const char *s, | ||
239 | int len, | ||
240 | float *result) | ||
241 | { | ||
242 | int mantisse; | ||
243 | int exponent; | ||
244 | |||
245 | if (_eet_dictionary_string_get_me_cache(s, len, &mantisse, &exponent)) | ||
246 | { | ||
247 | if (s[4] == '+') | ||
248 | *result = (float)(mantisse << exponent); | ||
249 | else | ||
250 | *result = (float)mantisse / (float)(1 << exponent); | ||
251 | |||
252 | return EINA_TRUE; | ||
253 | } | ||
254 | |||
255 | return EINA_FALSE; | ||
256 | } | ||
257 | |||
258 | static inline Eina_Bool | ||
259 | _eet_dictionary_string_get_double_cache(const char *s, | ||
260 | int len, | ||
261 | double *result) | ||
262 | { | ||
263 | int mantisse; | ||
264 | int exponent; | ||
265 | |||
266 | if (_eet_dictionary_string_get_me_cache(s, len, &mantisse, &exponent)) | ||
267 | { | ||
268 | if (s[4] == '+') | ||
269 | *result = (double)(mantisse << exponent); | ||
270 | else | ||
271 | *result = (double)mantisse / (float)(1 << exponent); | ||
272 | |||
273 | return EINA_TRUE; | ||
274 | } | ||
275 | |||
276 | return EINA_FALSE; | ||
277 | } | ||
278 | |||
279 | static inline Eina_Bool | ||
280 | _eet_dictionary_test(const Eet_Dictionary *ed, | ||
281 | int idx, | ||
282 | void *result) | ||
283 | { | ||
284 | if (!result) | ||
285 | return EINA_FALSE; | ||
286 | |||
287 | if (!ed) | ||
288 | return EINA_FALSE; | ||
289 | |||
290 | if (idx < 0) | ||
291 | return EINA_FALSE; | ||
292 | |||
293 | if (!(idx < ed->count)) | ||
294 | return EINA_FALSE; | ||
295 | |||
296 | return EINA_TRUE; | ||
297 | } | ||
298 | |||
299 | static Eet_Convert * | ||
300 | eet_dictionary_convert_get(const Eet_Dictionary *ed, | ||
301 | int idx, | ||
302 | const char **str) | ||
303 | { | ||
304 | Eet_Convert *result; | ||
305 | |||
306 | *str = ed->all[idx].str; | ||
307 | |||
308 | if (!ed->converts) | ||
309 | { | ||
310 | ((Eet_Dictionary *)ed)->converts = eina_hash_int32_new(free); | ||
311 | |||
312 | goto add_convert; | ||
313 | } | ||
314 | |||
315 | result = eina_hash_find(ed->converts, &idx); | ||
316 | if (result) return result; | ||
317 | |||
318 | add_convert: | ||
319 | result = calloc(1, sizeof (Eet_Convert)); | ||
320 | |||
321 | eina_hash_add(ed->converts, &idx, result); | ||
322 | return result; | ||
323 | } | ||
324 | |||
325 | Eina_Bool | ||
326 | eet_dictionary_string_get_float(const Eet_Dictionary *ed, | ||
327 | int idx, | ||
328 | float *result) | ||
329 | { | ||
330 | Eet_Convert *convert; | ||
331 | const char *str; | ||
332 | |||
333 | if (!_eet_dictionary_test(ed, idx, result)) | ||
334 | return EINA_FALSE; | ||
335 | |||
336 | convert = eet_dictionary_convert_get(ed, idx, &str); | ||
337 | if (!convert) return EINA_FALSE; | ||
338 | |||
339 | if (!(convert->type & EET_D_FLOAT)) | ||
340 | { | ||
341 | if (!_eet_dictionary_string_get_float_cache(str, ed->all[idx].len, | ||
342 | &convert->f)) | ||
343 | { | ||
344 | long long mantisse = 0; | ||
345 | long exponent = 0; | ||
346 | |||
347 | if (eina_convert_atod(str, ed->all[idx].len, &mantisse, | ||
348 | &exponent) == EINA_FALSE) | ||
349 | return EINA_FALSE; | ||
350 | |||
351 | convert->f = ldexpf((float)mantisse, exponent); | ||
352 | } | ||
353 | |||
354 | convert->type |= EET_D_FLOAT; | ||
355 | } | ||
356 | |||
357 | *result = convert->f; | ||
358 | return EINA_TRUE; | ||
359 | } | ||
360 | |||
361 | Eina_Bool | ||
362 | eet_dictionary_string_get_double(const Eet_Dictionary *ed, | ||
363 | int idx, | ||
364 | double *result) | ||
365 | { | ||
366 | Eet_Convert *convert; | ||
367 | const char *str; | ||
368 | |||
369 | if (!_eet_dictionary_test(ed, idx, result)) | ||
370 | return EINA_FALSE; | ||
371 | |||
372 | convert = eet_dictionary_convert_get(ed, idx, &str); | ||
373 | if (!convert) return EINA_FALSE; | ||
374 | |||
375 | if (!(convert->type & EET_D_DOUBLE)) | ||
376 | { | ||
377 | if (!_eet_dictionary_string_get_double_cache(str, ed->all[idx].len, | ||
378 | &convert->d)) | ||
379 | { | ||
380 | long long mantisse = 0; | ||
381 | long exponent = 0; | ||
382 | |||
383 | if (eina_convert_atod(str, ed->all[idx].len, &mantisse, | ||
384 | &exponent) == EINA_FALSE) | ||
385 | return EINA_FALSE; | ||
386 | |||
387 | convert->d = ldexp((double)mantisse, exponent); | ||
388 | } | ||
389 | |||
390 | convert->type |= EET_D_DOUBLE; | ||
391 | } | ||
392 | |||
393 | *result = convert->d; | ||
394 | return EINA_TRUE; | ||
395 | } | ||
396 | |||
397 | Eina_Bool | ||
398 | eet_dictionary_string_get_fp(const Eet_Dictionary *ed, | ||
399 | int idx, | ||
400 | Eina_F32p32 *result) | ||
401 | { | ||
402 | Eet_Convert *convert; | ||
403 | const char *str; | ||
404 | |||
405 | if (!_eet_dictionary_test(ed, idx, result)) | ||
406 | return EINA_FALSE; | ||
407 | |||
408 | convert = eet_dictionary_convert_get(ed, idx, &str); | ||
409 | if (!convert) return EINA_FALSE; | ||
410 | |||
411 | if (!(convert->type & EET_D_FIXED_POINT)) | ||
412 | { | ||
413 | Eina_F32p32 fp; | ||
414 | |||
415 | if (!eina_convert_atofp(str, ed->all[idx].len, &fp)) | ||
416 | return EINA_FALSE; | ||
417 | |||
418 | convert->fp = fp; | ||
419 | convert->type |= EET_D_FIXED_POINT; | ||
420 | } | ||
421 | |||
422 | *result = convert->fp; | ||
423 | return EINA_TRUE; | ||
424 | } | ||
425 | |||
426 | EAPI int | ||
427 | eet_dictionary_string_check(Eet_Dictionary *ed, | ||
428 | const char *string) | ||
429 | { | ||
430 | int i; | ||
431 | |||
432 | if ((!ed) || (!string)) | ||
433 | return 0; | ||
434 | |||
435 | if ((ed->start <= string) && (string < ed->end)) | ||
436 | return 1; | ||
437 | |||
438 | for (i = 0; i < ed->count; ++i) | ||
439 | if ((ed->all[i].allocated) && ed->all[i].str == string) | ||
440 | return 1; | ||
441 | |||
442 | return 0; | ||
443 | } | ||
444 | |||
diff --git a/libraries/eet/src/lib/eet_image.c b/libraries/eet/src/lib/eet_image.c deleted file mode 100644 index b622236..0000000 --- a/libraries/eet/src/lib/eet_image.c +++ /dev/null | |||
@@ -1,1825 +0,0 @@ | |||
1 | #ifdef HAVE_CONFIG_H | ||
2 | # include <config.h> | ||
3 | #endif /* ifdef HAVE_CONFIG_H */ | ||
4 | |||
5 | #ifdef HAVE_ALLOCA_H | ||
6 | # include <alloca.h> | ||
7 | #elif defined __GNUC__ | ||
8 | # define alloca __builtin_alloca | ||
9 | #elif defined _AIX | ||
10 | # define alloca __alloca | ||
11 | #elif defined _MSC_VER | ||
12 | # include <malloc.h> | ||
13 | # define alloca _alloca | ||
14 | #else /* ifdef HAVE_ALLOCA_H */ | ||
15 | # include <stddef.h> | ||
16 | # ifdef __cplusplus | ||
17 | extern "C" | ||
18 | # endif /* ifdef __cplusplus */ | ||
19 | void *alloca(size_t); | ||
20 | #endif /* ifdef HAVE_ALLOCA_H */ | ||
21 | |||
22 | #ifdef HAVE_NETINET_IN_H | ||
23 | # ifdef __OpenBSD__ | ||
24 | # include <sys/types.h> | ||
25 | # endif /* ifdef __OpenBSD__ */ | ||
26 | # include <netinet/in.h> | ||
27 | #endif /* ifdef HAVE_NETINET_IN_H */ | ||
28 | |||
29 | #ifdef _WIN32 | ||
30 | # include <winsock2.h> | ||
31 | # define HAVE_BOOLEAN | ||
32 | #endif /* ifdef _WIN32 */ | ||
33 | |||
34 | #include <stdio.h> | ||
35 | #include <string.h> | ||
36 | #include <setjmp.h> | ||
37 | #include <zlib.h> | ||
38 | #include <jpeglib.h> | ||
39 | |||
40 | #include "Eet.h" | ||
41 | #include "Eet_private.h" | ||
42 | |||
43 | /*---*/ | ||
44 | |||
45 | typedef struct _JPEG_error_mgr *emptr; | ||
46 | |||
47 | /*---*/ | ||
48 | |||
49 | struct _JPEG_error_mgr | ||
50 | { | ||
51 | struct jpeg_error_mgr pub; | ||
52 | jmp_buf setjmp_buffer; | ||
53 | }; | ||
54 | |||
55 | struct jpeg_membuf_src | ||
56 | { | ||
57 | struct jpeg_source_mgr pub; | ||
58 | |||
59 | const unsigned char *buf; | ||
60 | size_t len; | ||
61 | struct jpeg_membuf_src *self; | ||
62 | }; | ||
63 | |||
64 | static void | ||
65 | _eet_jpeg_membuf_src_init(j_decompress_ptr cinfo) | ||
66 | { | ||
67 | /* FIXME: Use attribute unused */ | ||
68 | (void)cinfo; | ||
69 | } | ||
70 | |||
71 | static boolean | ||
72 | _eet_jpeg_membuf_src_fill(j_decompress_ptr cinfo) | ||
73 | { | ||
74 | static const JOCTET jpeg_eoi[2] = { 0xFF, JPEG_EOI }; | ||
75 | struct jpeg_membuf_src *src = (struct jpeg_membuf_src *)cinfo->src; | ||
76 | |||
77 | src->pub.bytes_in_buffer = sizeof(jpeg_eoi); | ||
78 | src->pub.next_input_byte = jpeg_eoi; | ||
79 | |||
80 | return TRUE; | ||
81 | } | ||
82 | |||
83 | static void | ||
84 | _eet_jpeg_membuf_src_skip(j_decompress_ptr cinfo, | ||
85 | long num_bytes) | ||
86 | { | ||
87 | struct jpeg_membuf_src *src = (struct jpeg_membuf_src *)cinfo->src; | ||
88 | |||
89 | src->pub.bytes_in_buffer -= num_bytes; | ||
90 | src->pub.next_input_byte += num_bytes; | ||
91 | } | ||
92 | |||
93 | static void | ||
94 | _eet_jpeg_membuf_src_term(j_decompress_ptr cinfo) | ||
95 | { | ||
96 | struct jpeg_membuf_src *src = ((struct jpeg_membuf_src *)cinfo->src)->self; | ||
97 | |||
98 | free(src); | ||
99 | cinfo->src = NULL; | ||
100 | } | ||
101 | |||
102 | static int | ||
103 | eet_jpeg_membuf_src(j_decompress_ptr cinfo, | ||
104 | const void *buf, | ||
105 | size_t len) | ||
106 | { | ||
107 | struct jpeg_membuf_src *src; | ||
108 | |||
109 | src = calloc(1, sizeof(*src)); | ||
110 | if (!src) | ||
111 | return -1; | ||
112 | |||
113 | src->self = src; | ||
114 | |||
115 | cinfo->src = &src->pub; | ||
116 | src->buf = buf; | ||
117 | src->len = len; | ||
118 | src->pub.init_source = _eet_jpeg_membuf_src_init; | ||
119 | src->pub.fill_input_buffer = _eet_jpeg_membuf_src_fill; | ||
120 | src->pub.skip_input_data = _eet_jpeg_membuf_src_skip; | ||
121 | src->pub.resync_to_restart = jpeg_resync_to_restart; | ||
122 | src->pub.term_source = _eet_jpeg_membuf_src_term; | ||
123 | src->pub.bytes_in_buffer = src->len; | ||
124 | src->pub.next_input_byte = src->buf; | ||
125 | |||
126 | return 0; | ||
127 | } | ||
128 | |||
129 | struct jpeg_membuf_dst | ||
130 | { | ||
131 | struct jpeg_destination_mgr pub; | ||
132 | |||
133 | void **dst_buf; | ||
134 | size_t *dst_len; | ||
135 | |||
136 | unsigned char *buf; | ||
137 | size_t len; | ||
138 | int failed; | ||
139 | struct jpeg_membuf_dst *self; | ||
140 | }; | ||
141 | |||
142 | static void | ||
143 | _eet_jpeg_membuf_dst_init(j_compress_ptr cinfo) | ||
144 | { | ||
145 | /* FIXME: Use eina attribute */ | ||
146 | (void)cinfo; | ||
147 | } | ||
148 | |||
149 | static boolean | ||
150 | _eet_jpeg_membuf_dst_flush(j_compress_ptr cinfo) | ||
151 | { | ||
152 | struct jpeg_membuf_dst *dst = (struct jpeg_membuf_dst *)cinfo->dest; | ||
153 | unsigned char *buf; | ||
154 | |||
155 | if (dst->len >= 0x40000000 || | ||
156 | !(buf = realloc(dst->buf, dst->len * 2))) | ||
157 | { | ||
158 | dst->failed = 1; | ||
159 | dst->pub.next_output_byte = dst->buf; | ||
160 | dst->pub.free_in_buffer = dst->len; | ||
161 | return TRUE; | ||
162 | } | ||
163 | |||
164 | dst->pub.next_output_byte = | ||
165 | buf + ((unsigned char *)dst->pub.next_output_byte - dst->buf); | ||
166 | dst->buf = buf; | ||
167 | dst->pub.free_in_buffer += dst->len; | ||
168 | dst->len *= 2; | ||
169 | |||
170 | return FALSE; | ||
171 | } | ||
172 | |||
173 | static void | ||
174 | _eet_jpeg_membuf_dst_term(j_compress_ptr cinfo) | ||
175 | { | ||
176 | struct jpeg_membuf_dst *dst = ((struct jpeg_membuf_dst *)cinfo->dest)->self; | ||
177 | |||
178 | if (dst->failed) | ||
179 | { | ||
180 | *dst->dst_buf = NULL; | ||
181 | *dst->dst_len = 0; | ||
182 | free(dst->buf); | ||
183 | } | ||
184 | else | ||
185 | { | ||
186 | *dst->dst_buf = dst->buf; | ||
187 | *dst->dst_len = (unsigned char *)dst->pub.next_output_byte - dst->buf; | ||
188 | } | ||
189 | |||
190 | free(dst); | ||
191 | cinfo->dest = NULL; | ||
192 | } | ||
193 | |||
194 | static int | ||
195 | eet_jpeg_membuf_dst(j_compress_ptr cinfo, | ||
196 | void **buf, | ||
197 | size_t *len) | ||
198 | { | ||
199 | struct jpeg_membuf_dst *dst; | ||
200 | |||
201 | dst = calloc(1, sizeof(*dst)); | ||
202 | if (!dst) | ||
203 | return -1; | ||
204 | |||
205 | dst->buf = malloc(32768); | ||
206 | if (!dst->buf) | ||
207 | { | ||
208 | free(dst); | ||
209 | return -1; | ||
210 | } | ||
211 | |||
212 | dst->self = dst; | ||
213 | dst->len = 32768; | ||
214 | |||
215 | cinfo->dest = &dst->pub; | ||
216 | dst->pub.init_destination = _eet_jpeg_membuf_dst_init; | ||
217 | dst->pub.empty_output_buffer = _eet_jpeg_membuf_dst_flush; | ||
218 | dst->pub.term_destination = _eet_jpeg_membuf_dst_term; | ||
219 | dst->pub.free_in_buffer = dst->len; | ||
220 | dst->pub.next_output_byte = dst->buf; | ||
221 | dst->dst_buf = buf; | ||
222 | dst->dst_len = len; | ||
223 | dst->failed = 0; | ||
224 | |||
225 | return 0; | ||
226 | } | ||
227 | |||
228 | /*---*/ | ||
229 | |||
230 | static void _JPEGFatalErrorHandler(j_common_ptr cinfo); | ||
231 | static void _JPEGErrorHandler(j_common_ptr cinfo); | ||
232 | static void _JPEGErrorHandler2(j_common_ptr cinfo, | ||
233 | int msg_level); | ||
234 | |||
235 | static int | ||
236 | eet_data_image_jpeg_header_decode(const void *data, | ||
237 | int size, | ||
238 | unsigned int *w, | ||
239 | unsigned int *h); | ||
240 | static int | ||
241 | eet_data_image_jpeg_rgb_decode(const void *data, | ||
242 | int size, | ||
243 | unsigned int src_x, | ||
244 | unsigned int src_y, | ||
245 | unsigned int *d, | ||
246 | unsigned int w, | ||
247 | unsigned int h, | ||
248 | unsigned int row_stride); | ||
249 | static int | ||
250 | eet_data_image_jpeg_alpha_decode(const void *data, | ||
251 | int size, | ||
252 | unsigned int src_x, | ||
253 | unsigned int src_y, | ||
254 | unsigned int *d, | ||
255 | unsigned int w, | ||
256 | unsigned int h, | ||
257 | unsigned int row_stride); | ||
258 | static void * | ||
259 | eet_data_image_lossless_convert(int *size, | ||
260 | const void *data, | ||
261 | unsigned int w, | ||
262 | unsigned int h, | ||
263 | int alpha); | ||
264 | static void * | ||
265 | eet_data_image_lossless_compressed_convert(int *size, | ||
266 | const void *data, | ||
267 | unsigned int w, | ||
268 | unsigned int h, | ||
269 | int alpha, | ||
270 | int compression); | ||
271 | static void * | ||
272 | eet_data_image_jpeg_convert(int *size, | ||
273 | const void *data, | ||
274 | unsigned int w, | ||
275 | unsigned int h, | ||
276 | int alpha, | ||
277 | int quality); | ||
278 | static void * | ||
279 | eet_data_image_jpeg_alpha_convert(int *size, | ||
280 | const void *data, | ||
281 | unsigned int w, | ||
282 | unsigned int h, | ||
283 | int alpha, | ||
284 | int quality); | ||
285 | |||
286 | /*---*/ | ||
287 | |||
288 | static int _eet_image_words_bigendian = -1; | ||
289 | |||
290 | /*---*/ | ||
291 | |||
292 | #define SWAP64(x) (x) = \ | ||
293 | ((((unsigned long long)(x) & 0x00000000000000ffULL) << 56) | \ | ||
294 | (((unsigned long long)(x) & 0x000000000000ff00ULL) << 40) | \ | ||
295 | (((unsigned long long)(x) & 0x0000000000ff0000ULL) << 24) | \ | ||
296 | (((unsigned long long)(x) & 0x00000000ff000000ULL) << 8) | \ | ||
297 | (((unsigned long long)(x) & 0x000000ff00000000ULL) >> 8) | \ | ||
298 | (((unsigned long long)(x) & 0x0000ff0000000000ULL) >> 24) | \ | ||
299 | (((unsigned long long)(x) & 0x00ff000000000000ULL) >> 40) | \ | ||
300 | (((unsigned long long)(x) & 0xff00000000000000ULL) >> 56)) | ||
301 | #define SWAP32(x) (x) = \ | ||
302 | ((((int)(x) & 0x000000ff) << 24) | \ | ||
303 | (((int)(x) & 0x0000ff00) << 8) | \ | ||
304 | (((int)(x) & 0x00ff0000) >> 8) | \ | ||
305 | (((int)(x) & 0xff000000) >> 24)) | ||
306 | #define SWAP16(x) (x) = \ | ||
307 | ((((short)(x) & 0x00ff) << 8) | \ | ||
308 | (((short)(x) & 0xff00) >> 8)) | ||
309 | |||
310 | #ifdef CONV8 | ||
311 | # undef CONV8 | ||
312 | #endif /* ifdef CONV8 */ | ||
313 | #ifdef CONV16 | ||
314 | # undef CONV16 | ||
315 | #endif /* ifdef CONV16 */ | ||
316 | #ifdef CONV32 | ||
317 | # undef CONV32 | ||
318 | #endif /* ifdef CONV32 */ | ||
319 | #ifdef CONV64 | ||
320 | # undef CONV64 | ||
321 | #endif /* ifdef CONV64 */ | ||
322 | |||
323 | #define CONV8(x) | ||
324 | #define CONV16(x) {if (_eet_image_words_bigendian) {SWAP16(x); }} | ||
325 | #define CONV32(x) {if (_eet_image_words_bigendian) {SWAP32(x); }} | ||
326 | #define CONV64(x) {if (_eet_image_words_bigendian) {SWAP64(x); }} | ||
327 | |||
328 | /*---*/ | ||
329 | |||
330 | static void | ||
331 | _JPEGFatalErrorHandler(j_common_ptr cinfo) | ||
332 | { | ||
333 | emptr errmgr; | ||
334 | |||
335 | errmgr = (emptr)cinfo->err; | ||
336 | /* cinfo->err->output_message(cinfo);*/ | ||
337 | longjmp(errmgr->setjmp_buffer, 1); | ||
338 | return; | ||
339 | } | ||
340 | |||
341 | static void | ||
342 | _JPEGErrorHandler(j_common_ptr cinfo __UNUSED__) | ||
343 | { | ||
344 | /* emptr errmgr; */ | ||
345 | |||
346 | /* errmgr = (emptr) cinfo->err; */ | ||
347 | /* cinfo->err->output_message(cinfo);*/ | ||
348 | /* longjmp(errmgr->setjmp_buffer, 1);*/ | ||
349 | return; | ||
350 | } | ||
351 | |||
352 | static void | ||
353 | _JPEGErrorHandler2(j_common_ptr cinfo __UNUSED__, | ||
354 | int msg_level __UNUSED__) | ||
355 | { | ||
356 | /* emptr errmgr; */ | ||
357 | |||
358 | /* errmgr = (emptr) cinfo->err; */ | ||
359 | /* cinfo->err->output_message(cinfo);*/ | ||
360 | /* longjmp(errmgr->setjmp_buffer, 1);*/ | ||
361 | return; | ||
362 | } | ||
363 | |||
364 | static int | ||
365 | eet_data_image_jpeg_header_decode(const void *data, | ||
366 | int size, | ||
367 | unsigned int *w, | ||
368 | unsigned int *h) | ||
369 | { | ||
370 | struct jpeg_decompress_struct cinfo; | ||
371 | struct _JPEG_error_mgr jerr; | ||
372 | |||
373 | memset(&cinfo, 0, sizeof (struct jpeg_decompress_struct)); | ||
374 | |||
375 | cinfo.err = jpeg_std_error(&(jerr.pub)); | ||
376 | jerr.pub.error_exit = _JPEGFatalErrorHandler; | ||
377 | jerr.pub.emit_message = _JPEGErrorHandler2; | ||
378 | jerr.pub.output_message = _JPEGErrorHandler; | ||
379 | if (setjmp(jerr.setjmp_buffer)) | ||
380 | return 0; | ||
381 | |||
382 | jpeg_create_decompress(&cinfo); | ||
383 | |||
384 | if (eet_jpeg_membuf_src(&cinfo, data, (size_t)size)) | ||
385 | { | ||
386 | jpeg_destroy_decompress(&cinfo); | ||
387 | return 0; | ||
388 | } | ||
389 | |||
390 | jpeg_read_header(&cinfo, TRUE); | ||
391 | cinfo.do_fancy_upsampling = FALSE; | ||
392 | cinfo.do_block_smoothing = FALSE; | ||
393 | jpeg_start_decompress(&cinfo); | ||
394 | |||
395 | /* head decoding */ | ||
396 | *w = cinfo.output_width; | ||
397 | *h = cinfo.output_height; | ||
398 | |||
399 | free(cinfo.src); | ||
400 | cinfo.src = NULL; | ||
401 | |||
402 | jpeg_destroy_decompress(&cinfo); | ||
403 | |||
404 | if ((*w < 1) || (*h < 1) || (*w > 8192) || (*h > 8192)) | ||
405 | return 0; | ||
406 | |||
407 | return 1; | ||
408 | } | ||
409 | |||
410 | static int | ||
411 | eet_data_image_jpeg_rgb_decode(const void *data, | ||
412 | int size, | ||
413 | unsigned int src_x, | ||
414 | unsigned int src_y, | ||
415 | unsigned int *d, | ||
416 | unsigned int w, | ||
417 | unsigned int h, | ||
418 | unsigned int row_stride) | ||
419 | { | ||
420 | struct jpeg_decompress_struct cinfo; | ||
421 | struct _JPEG_error_mgr jerr; | ||
422 | unsigned char *ptr, *line[16], *tdata = NULL; | ||
423 | unsigned int *ptr2, *tmp; | ||
424 | unsigned int iw, ih; | ||
425 | unsigned int x, y, l, scans; | ||
426 | unsigned int i; | ||
427 | |||
428 | /* FIXME: handle src_x, src_y and row_stride correctly */ | ||
429 | if (!d) | ||
430 | return 0; | ||
431 | |||
432 | memset(&cinfo, 0, sizeof (struct jpeg_decompress_struct)); | ||
433 | |||
434 | cinfo.err = jpeg_std_error(&(jerr.pub)); | ||
435 | jerr.pub.error_exit = _JPEGFatalErrorHandler; | ||
436 | jerr.pub.emit_message = _JPEGErrorHandler2; | ||
437 | jerr.pub.output_message = _JPEGErrorHandler; | ||
438 | if (setjmp(jerr.setjmp_buffer)) | ||
439 | return 0; | ||
440 | |||
441 | jpeg_create_decompress(&cinfo); | ||
442 | |||
443 | if (eet_jpeg_membuf_src(&cinfo, data, (size_t)size)) | ||
444 | { | ||
445 | jpeg_destroy_decompress(&cinfo); | ||
446 | return 0; | ||
447 | } | ||
448 | |||
449 | jpeg_read_header(&cinfo, TRUE); | ||
450 | cinfo.dct_method = JDCT_ISLOW; // JDCT_FLOAT JDCT_IFAST(quality loss) | ||
451 | cinfo.do_fancy_upsampling = FALSE; | ||
452 | cinfo.do_block_smoothing = FALSE; | ||
453 | jpeg_start_decompress(&cinfo); | ||
454 | |||
455 | /* head decoding */ | ||
456 | iw = cinfo.output_width; | ||
457 | ih = cinfo.output_height; | ||
458 | if ((iw != w) || (ih != h)) | ||
459 | { | ||
460 | free(cinfo.src); | ||
461 | cinfo.src = NULL; | ||
462 | |||
463 | jpeg_destroy_decompress(&cinfo); | ||
464 | return 0; | ||
465 | } | ||
466 | |||
467 | /* end head decoding */ | ||
468 | /* data decoding */ | ||
469 | if (cinfo.rec_outbuf_height > 16) | ||
470 | { | ||
471 | free(cinfo.src); | ||
472 | cinfo.src = NULL; | ||
473 | |||
474 | jpeg_destroy_decompress(&cinfo); | ||
475 | return 0; | ||
476 | } | ||
477 | |||
478 | tdata = alloca((iw) * 16 * 3); | ||
479 | ptr2 = d; | ||
480 | |||
481 | if (cinfo.output_components == 3) | ||
482 | { | ||
483 | for (i = 0; i < (unsigned int)cinfo.rec_outbuf_height; i++) | ||
484 | line[i] = tdata + (i * (iw) * 3); | ||
485 | for (l = 0; l < ih; l += cinfo.rec_outbuf_height) | ||
486 | { | ||
487 | jpeg_read_scanlines(&cinfo, line, cinfo.rec_outbuf_height); | ||
488 | scans = cinfo.rec_outbuf_height; | ||
489 | if ((ih - l) < scans) | ||
490 | scans = ih - l; | ||
491 | |||
492 | ptr = tdata; | ||
493 | |||
494 | if (l + scans >= src_y && l < src_y + h) | ||
495 | { | ||
496 | y = src_y - l; | ||
497 | if (src_y < l) | ||
498 | y = 0; | ||
499 | |||
500 | for (ptr += 3 * iw * y; y < scans && (y + l) < (src_y + h); | ||
501 | y++) | ||
502 | { | ||
503 | tmp = ptr2; | ||
504 | ptr += 3 * src_x; | ||
505 | for (x = 0; x < w; x++) | ||
506 | { | ||
507 | *ptr2 = | ||
508 | (0xff000000) | | ||
509 | ((ptr[0]) << 16) | ((ptr[1]) << 8) | (ptr[2]); | ||
510 | ptr += 3; | ||
511 | ptr2++; | ||
512 | } | ||
513 | ptr += 3 * (iw - w); | ||
514 | ptr2 = tmp + row_stride / 4; | ||
515 | } | ||
516 | } | ||
517 | } | ||
518 | } | ||
519 | else if (cinfo.output_components == 1) | ||
520 | { | ||
521 | for (i = 0; i < (unsigned int)cinfo.rec_outbuf_height; i++) | ||
522 | line[i] = tdata + (i * (iw)); | ||
523 | for (l = 0; l < (ih); l += cinfo.rec_outbuf_height) | ||
524 | { | ||
525 | jpeg_read_scanlines(&cinfo, line, cinfo.rec_outbuf_height); | ||
526 | scans = cinfo.rec_outbuf_height; | ||
527 | if (((ih) - l) < scans) | ||
528 | scans = (ih) - l; | ||
529 | |||
530 | ptr = tdata; | ||
531 | |||
532 | if (l >= src_y && l < src_y + h) | ||
533 | { | ||
534 | y = src_y - l; | ||
535 | if (src_y < l) | ||
536 | y = 0; | ||
537 | |||
538 | for (ptr += iw * y; y < scans && (y + l) < (src_y + h); y++) | ||
539 | { | ||
540 | tmp = ptr2; | ||
541 | ptr += src_x; | ||
542 | for (x = 0; x < w; x++) | ||
543 | { | ||
544 | *ptr2 = | ||
545 | (0xff000000) | | ||
546 | ((ptr[0]) << 16) | ((ptr[0]) << 8) | (ptr[0]); | ||
547 | ptr++; | ||
548 | ptr2++; | ||
549 | } | ||
550 | ptr += iw - w; | ||
551 | ptr2 = tmp + row_stride / 4; | ||
552 | } | ||
553 | } | ||
554 | } | ||
555 | } | ||
556 | |||
557 | /* end data decoding */ | ||
558 | jpeg_finish_decompress(&cinfo); | ||
559 | jpeg_destroy_decompress(&cinfo); | ||
560 | return 1; | ||
561 | } | ||
562 | |||
563 | static int | ||
564 | eet_data_image_jpeg_alpha_decode(const void *data, | ||
565 | int size, | ||
566 | unsigned int src_x, | ||
567 | unsigned int src_y, | ||
568 | unsigned int *d, | ||
569 | unsigned int w, | ||
570 | unsigned int h, | ||
571 | unsigned int row_stride) | ||
572 | { | ||
573 | struct jpeg_decompress_struct cinfo; | ||
574 | struct _JPEG_error_mgr jerr; | ||
575 | unsigned char *ptr, *line[16], *tdata = NULL; | ||
576 | unsigned int *ptr2, *tmp; | ||
577 | unsigned int x, y, l, scans; | ||
578 | unsigned int i, iw; | ||
579 | |||
580 | /* FIXME: handle src_x, src_y and row_stride correctly */ | ||
581 | if (!d) | ||
582 | return 0; | ||
583 | |||
584 | memset(&cinfo, 0, sizeof (struct jpeg_decompress_struct)); | ||
585 | |||
586 | cinfo.err = jpeg_std_error(&(jerr.pub)); | ||
587 | jerr.pub.error_exit = _JPEGFatalErrorHandler; | ||
588 | jerr.pub.emit_message = _JPEGErrorHandler2; | ||
589 | jerr.pub.output_message = _JPEGErrorHandler; | ||
590 | if (setjmp(jerr.setjmp_buffer)) | ||
591 | return 0; | ||
592 | |||
593 | jpeg_create_decompress(&cinfo); | ||
594 | |||
595 | if (eet_jpeg_membuf_src(&cinfo, data, (size_t)size)) | ||
596 | { | ||
597 | jpeg_destroy_decompress(&cinfo); | ||
598 | return 0; | ||
599 | } | ||
600 | |||
601 | jpeg_read_header(&cinfo, TRUE); | ||
602 | cinfo.dct_method = JDCT_ISLOW; // JDCT_FLOAT JDCT_IFAST(quality loss) | ||
603 | cinfo.do_fancy_upsampling = FALSE; | ||
604 | cinfo.do_block_smoothing = FALSE; | ||
605 | jpeg_start_decompress(&cinfo); | ||
606 | |||
607 | /* head decoding */ | ||
608 | iw = cinfo.output_width; | ||
609 | if (w != cinfo.output_width | ||
610 | || h != cinfo.output_height) | ||
611 | { | ||
612 | free(cinfo.src); | ||
613 | cinfo.src = NULL; | ||
614 | |||
615 | jpeg_destroy_decompress(&cinfo); | ||
616 | return 0; | ||
617 | } | ||
618 | |||
619 | /* end head decoding */ | ||
620 | /* data decoding */ | ||
621 | if (cinfo.rec_outbuf_height > 16) | ||
622 | { | ||
623 | free(cinfo.src); | ||
624 | cinfo.src = NULL; | ||
625 | |||
626 | jpeg_destroy_decompress(&cinfo); | ||
627 | return 0; | ||
628 | } | ||
629 | |||
630 | tdata = alloca(w * 16 * 3); | ||
631 | ptr2 = d; | ||
632 | |||
633 | if (cinfo.output_components == 1) | ||
634 | { | ||
635 | for (i = 0; i < (unsigned int)cinfo.rec_outbuf_height; i++) | ||
636 | line[i] = tdata + (i * w); | ||
637 | for (l = 0; l < h; l += cinfo.rec_outbuf_height) | ||
638 | { | ||
639 | jpeg_read_scanlines(&cinfo, line, cinfo.rec_outbuf_height); | ||
640 | scans = cinfo.rec_outbuf_height; | ||
641 | if ((h - l) < scans) | ||
642 | scans = h - l; | ||
643 | |||
644 | ptr = tdata; | ||
645 | |||
646 | if (l >= src_y && l < src_y + h) | ||
647 | { | ||
648 | y = src_y - l; | ||
649 | if (src_y < l) | ||
650 | y = 0; | ||
651 | |||
652 | for (ptr += iw * y; y < scans && (y + l) < (src_y + h); y++) | ||
653 | { | ||
654 | tmp = ptr2; | ||
655 | ptr += src_x; | ||
656 | for (x = 0; x < w; x++) | ||
657 | { | ||
658 | *ptr2 = | ||
659 | ((*ptr2) & 0x00ffffff) | | ||
660 | ((ptr[0]) << 24); | ||
661 | ptr++; | ||
662 | ptr2++; | ||
663 | } | ||
664 | ptr += iw - w; | ||
665 | ptr2 = tmp + row_stride / 4; | ||
666 | } | ||
667 | } | ||
668 | } | ||
669 | } | ||
670 | |||
671 | /* end data decoding */ | ||
672 | jpeg_finish_decompress(&cinfo); | ||
673 | jpeg_destroy_decompress(&cinfo); | ||
674 | return 1; | ||
675 | } | ||
676 | |||
677 | static void * | ||
678 | eet_data_image_lossless_convert(int *size, | ||
679 | const void *data, | ||
680 | unsigned int w, | ||
681 | unsigned int h, | ||
682 | int alpha) | ||
683 | { | ||
684 | if (_eet_image_words_bigendian == -1) | ||
685 | { | ||
686 | unsigned long int v; | ||
687 | |||
688 | v = htonl(0x12345678); | ||
689 | if (v == 0x12345678) | ||
690 | _eet_image_words_bigendian = 1; | ||
691 | else | ||
692 | _eet_image_words_bigendian = 0; | ||
693 | } | ||
694 | |||
695 | { | ||
696 | unsigned char *d; | ||
697 | int *header; | ||
698 | |||
699 | d = malloc((w * h * 4) + (8 * 4)); | ||
700 | if (!d) | ||
701 | return NULL; | ||
702 | |||
703 | header = (int *)d; | ||
704 | memset(d, 0, 32); | ||
705 | |||
706 | header[0] = 0xac1dfeed; | ||
707 | header[1] = w; | ||
708 | header[2] = h; | ||
709 | header[3] = alpha; | ||
710 | |||
711 | memcpy(d + 32, data, w * h * 4); | ||
712 | |||
713 | if (_eet_image_words_bigendian) | ||
714 | { | ||
715 | unsigned int i; | ||
716 | |||
717 | for (i = 0; i < ((w * h) + 8); i++) SWAP32(header[i]); | ||
718 | } | ||
719 | |||
720 | *size = ((w * h * 4) + (8 * 4)); | ||
721 | return d; | ||
722 | } | ||
723 | } | ||
724 | |||
725 | static void * | ||
726 | eet_data_image_lossless_compressed_convert(int *size, | ||
727 | const void *data, | ||
728 | unsigned int w, | ||
729 | unsigned int h, | ||
730 | int alpha, | ||
731 | int compression) | ||
732 | { | ||
733 | if (_eet_image_words_bigendian == -1) | ||
734 | { | ||
735 | unsigned long int v; | ||
736 | |||
737 | v = htonl(0x12345678); | ||
738 | if (v == 0x12345678) | ||
739 | _eet_image_words_bigendian = 1; | ||
740 | else | ||
741 | _eet_image_words_bigendian = 0; | ||
742 | } | ||
743 | |||
744 | { | ||
745 | unsigned char *d; | ||
746 | unsigned char *comp; | ||
747 | int *header; | ||
748 | int ret; | ||
749 | uLongf buflen; | ||
750 | |||
751 | d = malloc((w * h * 4) + (8 * 4)); | ||
752 | if (!d) | ||
753 | return NULL; | ||
754 | |||
755 | buflen = (((w * h * 101) / 100) + 3) * 4; | ||
756 | comp = malloc(buflen); | ||
757 | if (!comp) | ||
758 | { | ||
759 | free(d); | ||
760 | return NULL; | ||
761 | } | ||
762 | |||
763 | header = (int *)d; | ||
764 | memset(d, 0, 32); | ||
765 | |||
766 | header[0] = 0xac1dfeed; | ||
767 | header[1] = w; | ||
768 | header[2] = h; | ||
769 | header[3] = alpha; | ||
770 | header[4] = compression; | ||
771 | memcpy(d + 32, data, w * h * 4); | ||
772 | |||
773 | if (_eet_image_words_bigendian) | ||
774 | { | ||
775 | unsigned int i; | ||
776 | |||
777 | for (i = 0; i < ((w * h) + 8); i++) SWAP32(header[i]); | ||
778 | } | ||
779 | |||
780 | ret = compress2((Bytef *)comp, &buflen, | ||
781 | (Bytef *)(d + 32), | ||
782 | (uLong)(w * h * 4), | ||
783 | compression); | ||
784 | if (ret != Z_OK || buflen > (w * h * 4)) | ||
785 | { | ||
786 | free(comp); | ||
787 | free(d); | ||
788 | *size = -1; | ||
789 | return NULL; | ||
790 | } | ||
791 | |||
792 | memcpy(d + 32, comp, buflen); | ||
793 | *size = (8 * 4) + buflen; | ||
794 | free(comp); | ||
795 | return d; | ||
796 | } | ||
797 | } | ||
798 | |||
799 | static void * | ||
800 | eet_data_image_jpeg_convert(int *size, | ||
801 | const void *data, | ||
802 | unsigned int w, | ||
803 | unsigned int h, | ||
804 | int alpha, | ||
805 | int quality) | ||
806 | { | ||
807 | struct jpeg_compress_struct cinfo; | ||
808 | struct _JPEG_error_mgr jerr; | ||
809 | const int *ptr; | ||
810 | void *d = NULL; | ||
811 | size_t sz = 0; | ||
812 | JSAMPROW *jbuf; | ||
813 | unsigned char *buf; | ||
814 | |||
815 | (void)alpha; /* unused */ | ||
816 | |||
817 | buf = alloca(3 * w); | ||
818 | |||
819 | memset(&cinfo, 0, sizeof (struct jpeg_compress_struct)); | ||
820 | |||
821 | cinfo.err = jpeg_std_error(&(jerr.pub)); | ||
822 | jerr.pub.error_exit = _JPEGFatalErrorHandler; | ||
823 | jerr.pub.emit_message = _JPEGErrorHandler2; | ||
824 | jerr.pub.output_message = _JPEGErrorHandler; | ||
825 | if (setjmp(jerr.setjmp_buffer)) | ||
826 | return NULL; | ||
827 | |||
828 | jpeg_create_compress(&cinfo); | ||
829 | |||
830 | if (eet_jpeg_membuf_dst(&cinfo, &d, &sz)) | ||
831 | { | ||
832 | jpeg_destroy_compress(&cinfo); | ||
833 | return NULL; | ||
834 | } | ||
835 | |||
836 | cinfo.image_width = w; | ||
837 | cinfo.image_height = h; | ||
838 | cinfo.input_components = 3; | ||
839 | cinfo.in_color_space = JCS_RGB; | ||
840 | cinfo.optimize_coding = FALSE; | ||
841 | cinfo.dct_method = JDCT_ISLOW; // JDCT_FLOAT JDCT_IFAST(quality loss) | ||
842 | if (quality < 60) cinfo.dct_method = JDCT_IFAST; | ||
843 | jpeg_set_defaults(&cinfo); | ||
844 | jpeg_set_quality(&cinfo, quality, TRUE); | ||
845 | |||
846 | if (quality >= 90) | ||
847 | { | ||
848 | cinfo.comp_info[0].h_samp_factor = 1; | ||
849 | cinfo.comp_info[0].v_samp_factor = 1; | ||
850 | cinfo.comp_info[1].h_samp_factor = 1; | ||
851 | cinfo.comp_info[1].v_samp_factor = 1; | ||
852 | cinfo.comp_info[2].h_samp_factor = 1; | ||
853 | cinfo.comp_info[2].v_samp_factor = 1; | ||
854 | } | ||
855 | |||
856 | jpeg_start_compress(&cinfo, TRUE); | ||
857 | |||
858 | while (cinfo.next_scanline < cinfo.image_height) | ||
859 | { | ||
860 | unsigned int i, j; | ||
861 | |||
862 | /* convert scaline from ARGB to RGB packed */ | ||
863 | ptr = ((const int *)data) + cinfo.next_scanline * w; | ||
864 | for (j = 0, i = 0; i < w; i++) | ||
865 | { | ||
866 | buf[j++] = ((*ptr) >> 16) & 0xff; | ||
867 | buf[j++] = ((*ptr) >> 8) & 0xff; | ||
868 | buf[j++] = ((*ptr)) & 0xff; | ||
869 | ptr++; | ||
870 | } | ||
871 | jbuf = (JSAMPROW *)(&buf); | ||
872 | jpeg_write_scanlines(&cinfo, jbuf, 1); | ||
873 | } | ||
874 | |||
875 | jpeg_finish_compress(&cinfo); | ||
876 | jpeg_destroy_compress(&cinfo); | ||
877 | |||
878 | *size = sz; | ||
879 | return d; | ||
880 | } | ||
881 | |||
882 | static void * | ||
883 | eet_data_image_jpeg_alpha_convert(int *size, | ||
884 | const void *data, | ||
885 | unsigned int w, | ||
886 | unsigned int h, | ||
887 | int alpha, | ||
888 | int quality) | ||
889 | { | ||
890 | unsigned char *d1, *d2; | ||
891 | unsigned char *d; | ||
892 | int *header; | ||
893 | int sz1, sz2; | ||
894 | |||
895 | (void)alpha; /* unused */ | ||
896 | |||
897 | if (_eet_image_words_bigendian == -1) | ||
898 | { | ||
899 | unsigned long int v; | ||
900 | |||
901 | v = htonl(0x12345678); | ||
902 | if (v == 0x12345678) | ||
903 | _eet_image_words_bigendian = 1; | ||
904 | else | ||
905 | _eet_image_words_bigendian = 0; | ||
906 | } | ||
907 | |||
908 | { | ||
909 | const int *ptr; | ||
910 | void *dst = NULL; | ||
911 | size_t sz = 0; | ||
912 | struct _JPEG_error_mgr jerr; | ||
913 | JSAMPROW *jbuf; | ||
914 | struct jpeg_compress_struct cinfo; | ||
915 | unsigned char *buf; | ||
916 | |||
917 | buf = alloca(3 * w); | ||
918 | |||
919 | cinfo.err = jpeg_std_error(&(jerr.pub)); | ||
920 | jerr.pub.error_exit = _JPEGFatalErrorHandler; | ||
921 | jerr.pub.emit_message = _JPEGErrorHandler2; | ||
922 | jerr.pub.output_message = _JPEGErrorHandler; | ||
923 | if (setjmp(jerr.setjmp_buffer)) | ||
924 | return NULL; | ||
925 | |||
926 | jpeg_create_compress(&cinfo); | ||
927 | if (eet_jpeg_membuf_dst(&cinfo, &dst, &sz)) | ||
928 | { | ||
929 | jpeg_destroy_compress(&cinfo); | ||
930 | return NULL; | ||
931 | } | ||
932 | |||
933 | cinfo.image_width = w; | ||
934 | cinfo.image_height = h; | ||
935 | cinfo.input_components = 3; | ||
936 | cinfo.in_color_space = JCS_RGB; | ||
937 | cinfo.optimize_coding = FALSE; | ||
938 | cinfo.dct_method = JDCT_ISLOW; // JDCT_FLOAT JDCT_IFAST(quality loss) | ||
939 | if (quality < 60) cinfo.dct_method = JDCT_IFAST; | ||
940 | jpeg_set_defaults(&cinfo); | ||
941 | jpeg_set_quality(&cinfo, quality, TRUE); | ||
942 | if (quality >= 90) | ||
943 | { | ||
944 | cinfo.comp_info[0].h_samp_factor = 1; | ||
945 | cinfo.comp_info[0].v_samp_factor = 1; | ||
946 | cinfo.comp_info[1].h_samp_factor = 1; | ||
947 | cinfo.comp_info[1].v_samp_factor = 1; | ||
948 | cinfo.comp_info[2].h_samp_factor = 1; | ||
949 | cinfo.comp_info[2].v_samp_factor = 1; | ||
950 | } | ||
951 | |||
952 | jpeg_start_compress(&cinfo, TRUE); | ||
953 | |||
954 | while (cinfo.next_scanline < cinfo.image_height) | ||
955 | { | ||
956 | unsigned int i, j; | ||
957 | |||
958 | ptr = ((const int *)data) + cinfo.next_scanline * w; | ||
959 | /* convert scaline from ARGB to RGB packed */ | ||
960 | for (j = 0, i = 0; i < w; i++) | ||
961 | { | ||
962 | buf[j++] = ((*ptr) >> 16) & 0xff; | ||
963 | buf[j++] = ((*ptr) >> 8) & 0xff; | ||
964 | buf[j++] = ((*ptr)) & 0xff; | ||
965 | ptr++; | ||
966 | } | ||
967 | jbuf = (JSAMPROW *)(&buf); | ||
968 | jpeg_write_scanlines(&cinfo, jbuf, 1); | ||
969 | } | ||
970 | |||
971 | jpeg_finish_compress(&cinfo); | ||
972 | jpeg_destroy_compress(&cinfo); | ||
973 | |||
974 | d1 = dst; | ||
975 | sz1 = sz; | ||
976 | } | ||
977 | { | ||
978 | const int *ptr; | ||
979 | void *dst = NULL; | ||
980 | size_t sz = 0; | ||
981 | struct _JPEG_error_mgr jerr; | ||
982 | JSAMPROW *jbuf; | ||
983 | struct jpeg_compress_struct cinfo; | ||
984 | unsigned char *buf; | ||
985 | |||
986 | buf = alloca(3 * w); | ||
987 | |||
988 | cinfo.err = jpeg_std_error(&(jerr.pub)); | ||
989 | jerr.pub.error_exit = _JPEGFatalErrorHandler; | ||
990 | jerr.pub.emit_message = _JPEGErrorHandler2; | ||
991 | jerr.pub.output_message = _JPEGErrorHandler; | ||
992 | if (setjmp(jerr.setjmp_buffer)) | ||
993 | { | ||
994 | free(d1); | ||
995 | return NULL; | ||
996 | } | ||
997 | |||
998 | jpeg_create_compress(&cinfo); | ||
999 | if (eet_jpeg_membuf_dst(&cinfo, &dst, &sz)) | ||
1000 | { | ||
1001 | jpeg_destroy_compress(&cinfo); | ||
1002 | free(d1); | ||
1003 | return NULL; | ||
1004 | } | ||
1005 | |||
1006 | cinfo.image_width = w; | ||
1007 | cinfo.image_height = h; | ||
1008 | cinfo.input_components = 1; | ||
1009 | cinfo.in_color_space = JCS_GRAYSCALE; | ||
1010 | jpeg_set_defaults(&cinfo); | ||
1011 | jpeg_set_quality(&cinfo, quality, TRUE); | ||
1012 | if (quality >= 90) | ||
1013 | { | ||
1014 | cinfo.comp_info[0].h_samp_factor = 1; | ||
1015 | cinfo.comp_info[0].v_samp_factor = 1; | ||
1016 | cinfo.comp_info[1].h_samp_factor = 1; | ||
1017 | cinfo.comp_info[1].v_samp_factor = 1; | ||
1018 | cinfo.comp_info[2].h_samp_factor = 1; | ||
1019 | cinfo.comp_info[2].v_samp_factor = 1; | ||
1020 | } | ||
1021 | |||
1022 | jpeg_start_compress(&cinfo, TRUE); | ||
1023 | |||
1024 | while (cinfo.next_scanline < cinfo.image_height) | ||
1025 | { | ||
1026 | unsigned int i, j; | ||
1027 | |||
1028 | ptr = ((const int *)data) + cinfo.next_scanline * w; | ||
1029 | /* convert scaline from ARGB to RGB packed */ | ||
1030 | for (j = 0, i = 0; i < w; i++) | ||
1031 | { | ||
1032 | buf[j++] = ((*ptr) >> 24) & 0xff; | ||
1033 | ptr++; | ||
1034 | } | ||
1035 | jbuf = (JSAMPROW *)(&buf); | ||
1036 | jpeg_write_scanlines(&cinfo, jbuf, 1); | ||
1037 | } | ||
1038 | |||
1039 | jpeg_finish_compress(&cinfo); | ||
1040 | jpeg_destroy_compress(&cinfo); | ||
1041 | |||
1042 | d2 = dst; | ||
1043 | sz2 = sz; | ||
1044 | } | ||
1045 | d = malloc(12 + sz1 + sz2); | ||
1046 | if (!d) | ||
1047 | { | ||
1048 | free(d1); | ||
1049 | free(d2); | ||
1050 | return NULL; | ||
1051 | } | ||
1052 | |||
1053 | header = (int *)d; | ||
1054 | header[0] = 0xbeeff00d; | ||
1055 | header[1] = sz1; | ||
1056 | header[2] = sz2; | ||
1057 | if (_eet_image_words_bigendian) | ||
1058 | { | ||
1059 | int i; | ||
1060 | |||
1061 | for (i = 0; i < 3; i++) SWAP32(header[i]); | ||
1062 | } | ||
1063 | |||
1064 | memcpy(d + 12, d1, sz1); | ||
1065 | memcpy(d + 12 + sz1, d2, sz2); | ||
1066 | |||
1067 | free(d1); | ||
1068 | free(d2); | ||
1069 | *size = 12 + sz1 + sz2; | ||
1070 | return d; | ||
1071 | } | ||
1072 | |||
1073 | EAPI int | ||
1074 | eet_data_image_write_cipher(Eet_File *ef, | ||
1075 | const char *name, | ||
1076 | const char *cipher_key, | ||
1077 | const void *data, | ||
1078 | unsigned int w, | ||
1079 | unsigned int h, | ||
1080 | int alpha, | ||
1081 | int comp, | ||
1082 | int quality, | ||
1083 | int lossy) | ||
1084 | { | ||
1085 | void *d = NULL; | ||
1086 | int size = 0; | ||
1087 | |||
1088 | d = eet_data_image_encode(data, &size, w, h, alpha, comp, quality, lossy); | ||
1089 | if (d) | ||
1090 | { | ||
1091 | int v; | ||
1092 | |||
1093 | v = eet_write_cipher(ef, name, d, size, 0, cipher_key); | ||
1094 | free(d); | ||
1095 | return v; | ||
1096 | } | ||
1097 | |||
1098 | return 0; | ||
1099 | } | ||
1100 | |||
1101 | EAPI int | ||
1102 | eet_data_image_write(Eet_File *ef, | ||
1103 | const char *name, | ||
1104 | const void *data, | ||
1105 | unsigned int w, | ||
1106 | unsigned int h, | ||
1107 | int alpha, | ||
1108 | int comp, | ||
1109 | int quality, | ||
1110 | int lossy) | ||
1111 | { | ||
1112 | return eet_data_image_write_cipher(ef, | ||
1113 | name, | ||
1114 | NULL, | ||
1115 | data, | ||
1116 | w, | ||
1117 | h, | ||
1118 | alpha, | ||
1119 | comp, | ||
1120 | quality, | ||
1121 | lossy); | ||
1122 | } | ||
1123 | |||
1124 | EAPI void * | ||
1125 | eet_data_image_read_cipher(Eet_File *ef, | ||
1126 | const char *name, | ||
1127 | const char *cipher_key, | ||
1128 | unsigned int *w, | ||
1129 | unsigned int *h, | ||
1130 | int *alpha, | ||
1131 | int *comp, | ||
1132 | int *quality, | ||
1133 | int *lossy) | ||
1134 | { | ||
1135 | unsigned int *d = NULL; | ||
1136 | void *data = NULL; | ||
1137 | int free_data = 0; | ||
1138 | int size; | ||
1139 | |||
1140 | if (!cipher_key) | ||
1141 | data = (void *)eet_read_direct(ef, name, &size); | ||
1142 | |||
1143 | if (!data) | ||
1144 | { | ||
1145 | data = eet_read_cipher(ef, name, &size, cipher_key); | ||
1146 | free_data = 1; | ||
1147 | if (!data) | ||
1148 | return NULL; | ||
1149 | } | ||
1150 | |||
1151 | d = eet_data_image_decode(data, size, w, h, alpha, comp, quality, lossy); | ||
1152 | |||
1153 | if (free_data) | ||
1154 | free(data); | ||
1155 | |||
1156 | return d; | ||
1157 | } | ||
1158 | |||
1159 | EAPI void * | ||
1160 | eet_data_image_read(Eet_File *ef, | ||
1161 | const char *name, | ||
1162 | unsigned int *w, | ||
1163 | unsigned int *h, | ||
1164 | int *alpha, | ||
1165 | int *comp, | ||
1166 | int *quality, | ||
1167 | int *lossy) | ||
1168 | { | ||
1169 | return eet_data_image_read_cipher(ef, name, NULL, w, h, alpha, | ||
1170 | comp, quality, lossy); | ||
1171 | } | ||
1172 | |||
1173 | EAPI int | ||
1174 | eet_data_image_read_to_surface_cipher(Eet_File *ef, | ||
1175 | const char *name, | ||
1176 | const char *cipher_key, | ||
1177 | unsigned int src_x, | ||
1178 | unsigned int src_y, | ||
1179 | unsigned int *d, | ||
1180 | unsigned int w, | ||
1181 | unsigned int h, | ||
1182 | unsigned int row_stride, | ||
1183 | int *alpha, | ||
1184 | int *comp, | ||
1185 | int *quality, | ||
1186 | int *lossy) | ||
1187 | { | ||
1188 | void *data = NULL; | ||
1189 | int free_data = 0; | ||
1190 | int res = 1; | ||
1191 | int size; | ||
1192 | |||
1193 | if (!cipher_key) | ||
1194 | data = (void *)eet_read_direct(ef, name, &size); | ||
1195 | |||
1196 | if (!data) | ||
1197 | { | ||
1198 | data = eet_read_cipher(ef, name, &size, cipher_key); | ||
1199 | free_data = 1; | ||
1200 | if (!data) | ||
1201 | return 0; | ||
1202 | } | ||
1203 | |||
1204 | res = eet_data_image_decode_to_surface(data, size, src_x, src_y, d, | ||
1205 | w, h, row_stride, alpha, | ||
1206 | comp, quality, lossy); | ||
1207 | |||
1208 | if (free_data) | ||
1209 | free(data); | ||
1210 | |||
1211 | return res; | ||
1212 | } | ||
1213 | |||
1214 | EAPI int | ||
1215 | eet_data_image_read_to_surface(Eet_File *ef, | ||
1216 | const char *name, | ||
1217 | unsigned int src_x, | ||
1218 | unsigned int src_y, | ||
1219 | unsigned int *d, | ||
1220 | unsigned int w, | ||
1221 | unsigned int h, | ||
1222 | unsigned int row_stride, | ||
1223 | int *alpha, | ||
1224 | int *comp, | ||
1225 | int *quality, | ||
1226 | int *lossy) | ||
1227 | { | ||
1228 | return eet_data_image_read_to_surface_cipher(ef, name, NULL, | ||
1229 | src_x, src_y, d, | ||
1230 | w, h, row_stride, | ||
1231 | alpha, comp, quality, | ||
1232 | lossy); | ||
1233 | } | ||
1234 | |||
1235 | EAPI int | ||
1236 | eet_data_image_header_read_cipher(Eet_File *ef, | ||
1237 | const char *name, | ||
1238 | const char *cipher_key, | ||
1239 | unsigned int *w, | ||
1240 | unsigned int *h, | ||
1241 | int *alpha, | ||
1242 | int *comp, | ||
1243 | int *quality, | ||
1244 | int *lossy) | ||
1245 | { | ||
1246 | void *data = NULL; | ||
1247 | int size = 0; | ||
1248 | int free_data = 0; | ||
1249 | int d; | ||
1250 | |||
1251 | if (!cipher_key) | ||
1252 | data = (void *)eet_read_direct(ef, name, &size); | ||
1253 | |||
1254 | if (!data) | ||
1255 | { | ||
1256 | data = eet_read_cipher(ef, name, &size, cipher_key); | ||
1257 | free_data = 1; | ||
1258 | if (!data) | ||
1259 | return 0; | ||
1260 | } | ||
1261 | |||
1262 | d = eet_data_image_header_decode(data, size, w, h, alpha, | ||
1263 | comp, quality, lossy); | ||
1264 | if (free_data) | ||
1265 | free(data); | ||
1266 | |||
1267 | return d; | ||
1268 | } | ||
1269 | |||
1270 | EAPI int | ||
1271 | eet_data_image_header_read(Eet_File *ef, | ||
1272 | const char *name, | ||
1273 | unsigned int *w, | ||
1274 | unsigned int *h, | ||
1275 | int *alpha, | ||
1276 | int *comp, | ||
1277 | int *quality, | ||
1278 | int *lossy) | ||
1279 | { | ||
1280 | return eet_data_image_header_read_cipher(ef, name, NULL, | ||
1281 | w, h, alpha, | ||
1282 | comp, quality, lossy); | ||
1283 | } | ||
1284 | |||
1285 | EAPI void * | ||
1286 | eet_data_image_encode_cipher(const void *data, | ||
1287 | const char *cipher_key, | ||
1288 | unsigned int w, | ||
1289 | unsigned int h, | ||
1290 | int alpha, | ||
1291 | int comp, | ||
1292 | int quality, | ||
1293 | int lossy, | ||
1294 | int *size_ret) | ||
1295 | { | ||
1296 | void *d = NULL; | ||
1297 | void *ciphered_d = NULL; | ||
1298 | unsigned int ciphered_sz = 0; | ||
1299 | int size = 0; | ||
1300 | |||
1301 | if (lossy == 0) | ||
1302 | { | ||
1303 | if (comp > 0) | ||
1304 | d = eet_data_image_lossless_compressed_convert(&size, data, | ||
1305 | w, h, alpha, comp); | ||
1306 | |||
1307 | /* eet_data_image_lossless_compressed_convert will refuse to compress something | ||
1308 | if the result is bigger than the entry. */ | ||
1309 | if (comp <= 0 || !d) | ||
1310 | d = eet_data_image_lossless_convert(&size, data, w, h, alpha); | ||
1311 | } | ||
1312 | else | ||
1313 | { | ||
1314 | if (!alpha) | ||
1315 | d = eet_data_image_jpeg_convert(&size, data, w, h, alpha, quality); | ||
1316 | else | ||
1317 | d = eet_data_image_jpeg_alpha_convert(&size, data, | ||
1318 | w, h, alpha, quality); | ||
1319 | } | ||
1320 | |||
1321 | if (cipher_key) | ||
1322 | { | ||
1323 | if(!eet_cipher(d, size, cipher_key, strlen(cipher_key), &ciphered_d, | ||
1324 | &ciphered_sz)) | ||
1325 | { | ||
1326 | if (d) | ||
1327 | free(d); | ||
1328 | |||
1329 | d = ciphered_d; | ||
1330 | size = ciphered_sz; | ||
1331 | } | ||
1332 | else | ||
1333 | if (ciphered_d) | ||
1334 | free(ciphered_d); | ||
1335 | } | ||
1336 | |||
1337 | if (size_ret) | ||
1338 | *size_ret = size; | ||
1339 | |||
1340 | return d; | ||
1341 | } | ||
1342 | |||
1343 | EAPI void * | ||
1344 | eet_data_image_encode(const void *data, | ||
1345 | int *size_ret, | ||
1346 | unsigned int w, | ||
1347 | unsigned int h, | ||
1348 | int alpha, | ||
1349 | int comp, | ||
1350 | int quality, | ||
1351 | int lossy) | ||
1352 | { | ||
1353 | return eet_data_image_encode_cipher(data, NULL, w, h, alpha, | ||
1354 | comp, quality, lossy, size_ret); | ||
1355 | } | ||
1356 | |||
1357 | EAPI int | ||
1358 | eet_data_image_header_decode_cipher(const void *data, | ||
1359 | const char *cipher_key, | ||
1360 | int size, | ||
1361 | unsigned int *w, | ||
1362 | unsigned int *h, | ||
1363 | int *alpha, | ||
1364 | int *comp, | ||
1365 | int *quality, | ||
1366 | int *lossy) | ||
1367 | { | ||
1368 | int header[8]; | ||
1369 | void *deciphered_d = NULL; | ||
1370 | unsigned int deciphered_sz = 0; | ||
1371 | |||
1372 | if (cipher_key) | ||
1373 | { | ||
1374 | if (!eet_decipher(data, size, cipher_key, strlen(cipher_key), | ||
1375 | &deciphered_d, &deciphered_sz)) | ||
1376 | { | ||
1377 | data = deciphered_d; | ||
1378 | size = deciphered_sz; | ||
1379 | } | ||
1380 | else | ||
1381 | if (deciphered_d) | ||
1382 | free(deciphered_d); | ||
1383 | } | ||
1384 | |||
1385 | if (_eet_image_words_bigendian == -1) | ||
1386 | { | ||
1387 | unsigned long int v; | ||
1388 | |||
1389 | v = htonl(0x12345678); | ||
1390 | if (v == 0x12345678) | ||
1391 | _eet_image_words_bigendian = 1; | ||
1392 | else | ||
1393 | _eet_image_words_bigendian = 0; | ||
1394 | } | ||
1395 | |||
1396 | if (size < 32) | ||
1397 | return 0; | ||
1398 | |||
1399 | memcpy(header, data, 32); | ||
1400 | if (_eet_image_words_bigendian) | ||
1401 | { | ||
1402 | int i; | ||
1403 | |||
1404 | for (i = 0; i < 8; i++) SWAP32(header[i]); | ||
1405 | } | ||
1406 | |||
1407 | if ((unsigned)header[0] == 0xac1dfeed) | ||
1408 | { | ||
1409 | int iw, ih, al, cp; | ||
1410 | |||
1411 | iw = header[1]; | ||
1412 | ih = header[2]; | ||
1413 | al = header[3]; | ||
1414 | cp = header[4]; | ||
1415 | if ((iw < 1) || (ih < 1) || (iw > 8192) || (ih > 8192)) | ||
1416 | return 0; | ||
1417 | |||
1418 | if ((cp == 0) && (size < ((iw * ih * 4) + 32))) | ||
1419 | return 0; | ||
1420 | |||
1421 | if (w) | ||
1422 | *w = iw; | ||
1423 | |||
1424 | if (h) | ||
1425 | *h = ih; | ||
1426 | |||
1427 | if (alpha) | ||
1428 | *alpha = al ? 1 : 0; | ||
1429 | |||
1430 | if (comp) | ||
1431 | *comp = cp; | ||
1432 | |||
1433 | if (lossy) | ||
1434 | *lossy = 0; | ||
1435 | |||
1436 | if (quality) | ||
1437 | *quality = 100; | ||
1438 | |||
1439 | return 1; | ||
1440 | } | ||
1441 | else if ((unsigned)header[0] == 0xbeeff00d) | ||
1442 | { | ||
1443 | unsigned int iw = 0, ih = 0; | ||
1444 | unsigned const char *dt; | ||
1445 | int sz1; | ||
1446 | int ok; | ||
1447 | |||
1448 | sz1 = header[1]; | ||
1449 | /* sz2 = header[2]; */ | ||
1450 | dt = data; | ||
1451 | dt += 12; | ||
1452 | ok = eet_data_image_jpeg_header_decode(dt, sz1, &iw, &ih); | ||
1453 | if (ok) | ||
1454 | { | ||
1455 | if (w) | ||
1456 | *w = iw; | ||
1457 | |||
1458 | if (h) | ||
1459 | *h = ih; | ||
1460 | |||
1461 | if (alpha) | ||
1462 | *alpha = 1; | ||
1463 | |||
1464 | if (comp) | ||
1465 | *comp = 0; | ||
1466 | |||
1467 | if (lossy) | ||
1468 | *lossy = 1; | ||
1469 | |||
1470 | if (quality) | ||
1471 | *quality = 75; | ||
1472 | |||
1473 | return 1; | ||
1474 | } | ||
1475 | } | ||
1476 | else | ||
1477 | { | ||
1478 | unsigned int iw = 0, ih = 0; | ||
1479 | int ok; | ||
1480 | |||
1481 | ok = eet_data_image_jpeg_header_decode(data, size, &iw, &ih); | ||
1482 | if (ok) | ||
1483 | { | ||
1484 | if (w) | ||
1485 | *w = iw; | ||
1486 | |||
1487 | if (h) | ||
1488 | *h = ih; | ||
1489 | |||
1490 | if (alpha) | ||
1491 | *alpha = 0; | ||
1492 | |||
1493 | if (comp) | ||
1494 | *comp = 0; | ||
1495 | |||
1496 | if (lossy) | ||
1497 | *lossy = 1; | ||
1498 | |||
1499 | if (quality) | ||
1500 | *quality = 75; | ||
1501 | |||
1502 | return 1; | ||
1503 | } | ||
1504 | } | ||
1505 | |||
1506 | return 0; | ||
1507 | } | ||
1508 | |||
1509 | EAPI int | ||
1510 | eet_data_image_header_decode(const void *data, | ||
1511 | int size, | ||
1512 | unsigned int *w, | ||
1513 | unsigned int *h, | ||
1514 | int *alpha, | ||
1515 | int *comp, | ||
1516 | int *quality, | ||
1517 | int *lossy) | ||
1518 | { | ||
1519 | return eet_data_image_header_decode_cipher(data, | ||
1520 | NULL, | ||
1521 | size, | ||
1522 | w, | ||
1523 | h, | ||
1524 | alpha, | ||
1525 | comp, | ||
1526 | quality, | ||
1527 | lossy); | ||
1528 | } | ||
1529 | |||
1530 | static void | ||
1531 | _eet_data_image_copy_buffer(const unsigned int *src, | ||
1532 | unsigned int src_x, | ||
1533 | unsigned int src_y, | ||
1534 | unsigned int src_w, | ||
1535 | unsigned int *dst, | ||
1536 | unsigned int w, | ||
1537 | unsigned int h, | ||
1538 | unsigned int row_stride) | ||
1539 | { | ||
1540 | src += src_x + src_y * src_w; | ||
1541 | |||
1542 | if (row_stride == src_w * 4 && w == src_w) | ||
1543 | memcpy(dst, src, row_stride * h); | ||
1544 | else | ||
1545 | { | ||
1546 | unsigned int *over = dst; | ||
1547 | unsigned int y; | ||
1548 | |||
1549 | for (y = 0; y < h; ++y, src += src_w, over += row_stride) | ||
1550 | memcpy(over, src, w * 4); | ||
1551 | } | ||
1552 | } | ||
1553 | |||
1554 | static int | ||
1555 | _eet_data_image_decode_inside(const void *data, | ||
1556 | int size, | ||
1557 | unsigned int src_x, | ||
1558 | unsigned int src_y, | ||
1559 | unsigned int src_w, | ||
1560 | unsigned int src_h, | ||
1561 | unsigned int *d, | ||
1562 | unsigned int w, | ||
1563 | unsigned int h, | ||
1564 | unsigned int row_stride, | ||
1565 | int alpha, | ||
1566 | int comp, | ||
1567 | int quality, | ||
1568 | int lossy) | ||
1569 | { | ||
1570 | if (lossy == 0 && quality == 100) | ||
1571 | { | ||
1572 | unsigned int *body; | ||
1573 | |||
1574 | body = ((unsigned int *)data) + 8; | ||
1575 | if (!comp) | ||
1576 | _eet_data_image_copy_buffer(body, src_x, src_y, src_w, d, | ||
1577 | w, h, row_stride); | ||
1578 | else | ||
1579 | { | ||
1580 | if (src_h == h && src_w == w && row_stride == src_w * 4) | ||
1581 | { | ||
1582 | uLongf dlen; | ||
1583 | |||
1584 | dlen = w * h * 4; | ||
1585 | uncompress((Bytef *)d, &dlen, (Bytef *)body, | ||
1586 | (uLongf)(size - 32)); | ||
1587 | } | ||
1588 | else | ||
1589 | { | ||
1590 | Bytef *dtmp; | ||
1591 | uLongf dlen = src_w * src_h * 4; | ||
1592 | |||
1593 | /* FIXME: This could create a huge alloc. So compressed | ||
1594 | data and tile could not always work. */ | ||
1595 | dtmp = malloc(dlen); | ||
1596 | if (!dtmp) | ||
1597 | return 0; | ||
1598 | |||
1599 | uncompress(dtmp, &dlen, (Bytef *)body, (uLongf)(size - 32)); | ||
1600 | |||
1601 | _eet_data_image_copy_buffer((unsigned int *)dtmp, | ||
1602 | src_x, src_y, src_w, d, | ||
1603 | w, h, row_stride); | ||
1604 | |||
1605 | free(dtmp); | ||
1606 | } | ||
1607 | } | ||
1608 | |||
1609 | /* Fix swapiness. */ | ||
1610 | if (_eet_image_words_bigendian) | ||
1611 | { | ||
1612 | unsigned int x; | ||
1613 | |||
1614 | for (x = 0; x < (w * h); x++) SWAP32(d[x]); | ||
1615 | } | ||
1616 | } | ||
1617 | else if (comp == 0 && lossy == 1) | ||
1618 | { | ||
1619 | if (alpha) | ||
1620 | { | ||
1621 | unsigned const char *dt; | ||
1622 | int header[8]; | ||
1623 | int sz1, sz2; | ||
1624 | |||
1625 | memcpy(header, data, 32); | ||
1626 | if (_eet_image_words_bigendian) | ||
1627 | { | ||
1628 | int i; | ||
1629 | |||
1630 | for (i = 0; i < 8; i++) SWAP32(header[i]); | ||
1631 | } | ||
1632 | |||
1633 | sz1 = header[1]; | ||
1634 | sz2 = header[2]; | ||
1635 | dt = data; | ||
1636 | dt += 12; | ||
1637 | |||
1638 | if (eet_data_image_jpeg_rgb_decode(dt, sz1, src_x, src_y, d, w, h, | ||
1639 | row_stride)) | ||
1640 | { | ||
1641 | dt += sz1; | ||
1642 | if (!eet_data_image_jpeg_alpha_decode(dt, sz2, src_x, src_y, | ||
1643 | d, w, h, row_stride)) | ||
1644 | return 0; | ||
1645 | } | ||
1646 | } | ||
1647 | else if (!eet_data_image_jpeg_rgb_decode(data, size, src_x, src_y, d, w, | ||
1648 | h, row_stride)) | ||
1649 | return 0; | ||
1650 | } | ||
1651 | else | ||
1652 | abort(); | ||
1653 | |||
1654 | return 1; | ||
1655 | } | ||
1656 | |||
1657 | EAPI void * | ||
1658 | eet_data_image_decode_cipher(const void *data, | ||
1659 | const char *cipher_key, | ||
1660 | int size, | ||
1661 | unsigned int *w, | ||
1662 | unsigned int *h, | ||
1663 | int *alpha, | ||
1664 | int *comp, | ||
1665 | int *quality, | ||
1666 | int *lossy) | ||
1667 | { | ||
1668 | unsigned int *d = NULL; | ||
1669 | unsigned int iw, ih; | ||
1670 | int ialpha, icompress, iquality, ilossy; | ||
1671 | void *deciphered_d = NULL; | ||
1672 | unsigned int deciphered_sz = 0; | ||
1673 | |||
1674 | if (cipher_key) | ||
1675 | { | ||
1676 | if (!eet_decipher(data, size, cipher_key, strlen(cipher_key), | ||
1677 | &deciphered_d, &deciphered_sz)) | ||
1678 | { | ||
1679 | data = deciphered_d; | ||
1680 | size = deciphered_sz; | ||
1681 | } | ||
1682 | else | ||
1683 | if (deciphered_d) | ||
1684 | free(deciphered_d); | ||
1685 | } | ||
1686 | |||
1687 | /* All check are done during header decode, this simplify the code a lot. */ | ||
1688 | if (!eet_data_image_header_decode(data, size, &iw, &ih, &ialpha, &icompress, | ||
1689 | &iquality, &ilossy)) | ||
1690 | return NULL; | ||
1691 | |||
1692 | d = malloc(iw * ih * 4); | ||
1693 | if (!d) | ||
1694 | return NULL; | ||
1695 | |||
1696 | if (!_eet_data_image_decode_inside(data, size, 0, 0, iw, ih, d, iw, ih, iw * | ||
1697 | 4, ialpha, icompress, iquality, ilossy)) | ||
1698 | { | ||
1699 | free(d); | ||
1700 | return NULL; | ||
1701 | } | ||
1702 | |||
1703 | if (w) | ||
1704 | *w = iw; | ||
1705 | |||
1706 | if (h) | ||
1707 | *h = ih; | ||
1708 | |||
1709 | if (alpha) | ||
1710 | *alpha = ialpha; | ||
1711 | |||
1712 | if (comp) | ||
1713 | *comp = icompress; | ||
1714 | |||
1715 | if (quality) | ||
1716 | *quality = iquality; | ||
1717 | |||
1718 | if (lossy) | ||
1719 | *lossy = ilossy; | ||
1720 | |||
1721 | return d; | ||
1722 | } | ||
1723 | |||
1724 | EAPI void * | ||
1725 | eet_data_image_decode(const void *data, | ||
1726 | int size, | ||
1727 | unsigned int *w, | ||
1728 | unsigned int *h, | ||
1729 | int *alpha, | ||
1730 | int *comp, | ||
1731 | int *quality, | ||
1732 | int *lossy) | ||
1733 | { | ||
1734 | return eet_data_image_decode_cipher(data, NULL, size, w, h, | ||
1735 | alpha, comp, quality, lossy); | ||
1736 | } | ||
1737 | |||
1738 | EAPI int | ||
1739 | eet_data_image_decode_to_surface_cipher(const void *data, | ||
1740 | const char *cipher_key, | ||
1741 | int size, | ||
1742 | unsigned int src_x, | ||
1743 | unsigned int src_y, | ||
1744 | unsigned int *d, | ||
1745 | unsigned int w, | ||
1746 | unsigned int h, | ||
1747 | unsigned int row_stride, | ||
1748 | int *alpha, | ||
1749 | int *comp, | ||
1750 | int *quality, | ||
1751 | int *lossy) | ||
1752 | { | ||
1753 | unsigned int iw, ih; | ||
1754 | int ialpha, icompress, iquality, ilossy; | ||
1755 | void *deciphered_d = NULL; | ||
1756 | unsigned int deciphered_sz = 0; | ||
1757 | |||
1758 | if (cipher_key) | ||
1759 | { | ||
1760 | if (!eet_decipher(data, size, cipher_key, strlen(cipher_key), | ||
1761 | &deciphered_d, &deciphered_sz)) | ||
1762 | { | ||
1763 | data = deciphered_d; | ||
1764 | size = deciphered_sz; | ||
1765 | } | ||
1766 | else | ||
1767 | if (deciphered_d) | ||
1768 | free(deciphered_d); | ||
1769 | } | ||
1770 | |||
1771 | /* All check are done during header decode, this simplify the code a lot. */ | ||
1772 | if (!eet_data_image_header_decode(data, size, &iw, &ih, &ialpha, &icompress, | ||
1773 | &iquality, &ilossy)) | ||
1774 | return 0; | ||
1775 | |||
1776 | if (!d) | ||
1777 | return 0; | ||
1778 | |||
1779 | if (w * 4 > row_stride) | ||
1780 | return 0; | ||
1781 | |||
1782 | if (w > iw || h > ih) | ||
1783 | return 0; | ||
1784 | |||
1785 | if (!_eet_data_image_decode_inside(data, size, src_x, src_y, iw, ih, d, w, h, | ||
1786 | row_stride, ialpha, icompress, iquality, | ||
1787 | ilossy)) | ||
1788 | return 0; | ||
1789 | |||
1790 | if (alpha) | ||
1791 | *alpha = ialpha; | ||
1792 | |||
1793 | if (comp) | ||
1794 | *comp = icompress; | ||
1795 | |||
1796 | if (quality) | ||
1797 | *quality = iquality; | ||
1798 | |||
1799 | if (lossy) | ||
1800 | *lossy = ilossy; | ||
1801 | |||
1802 | return 1; | ||
1803 | } | ||
1804 | |||
1805 | EAPI int | ||
1806 | eet_data_image_decode_to_surface(const void *data, | ||
1807 | int size, | ||
1808 | unsigned int src_x, | ||
1809 | unsigned int src_y, | ||
1810 | unsigned int *d, | ||
1811 | unsigned int w, | ||
1812 | unsigned int h, | ||
1813 | unsigned int row_stride, | ||
1814 | int *alpha, | ||
1815 | int *comp, | ||
1816 | int *quality, | ||
1817 | int *lossy) | ||
1818 | { | ||
1819 | return eet_data_image_decode_to_surface_cipher(data, NULL, size, | ||
1820 | src_x, src_y, d, | ||
1821 | w, h, row_stride, | ||
1822 | alpha, comp, quality, | ||
1823 | lossy); | ||
1824 | } | ||
1825 | |||
diff --git a/libraries/eet/src/lib/eet_lib.c b/libraries/eet/src/lib/eet_lib.c deleted file mode 100644 index 04feebe..0000000 --- a/libraries/eet/src/lib/eet_lib.c +++ /dev/null | |||
@@ -1,2533 +0,0 @@ | |||
1 | #ifdef HAVE_CONFIG_H | ||
2 | # include <config.h> | ||
3 | #endif /* ifdef HAVE_CONFIG_H */ | ||
4 | |||
5 | #ifdef HAVE_ALLOCA_H | ||
6 | # include <alloca.h> | ||
7 | #elif defined __GNUC__ | ||
8 | # define alloca __builtin_alloca | ||
9 | #elif defined _AIX | ||
10 | # define alloca __alloca | ||
11 | #elif defined _MSC_VER | ||
12 | # include <malloc.h> | ||
13 | # define alloca _alloca | ||
14 | #else /* ifdef HAVE_ALLOCA_H */ | ||
15 | # include <stddef.h> | ||
16 | # ifdef __cplusplus | ||
17 | extern "C" | ||
18 | # endif /* ifdef __cplusplus */ | ||
19 | void *alloca(size_t); | ||
20 | #endif /* ifdef HAVE_ALLOCA_H */ | ||
21 | |||
22 | #ifdef _WIN32 | ||
23 | # include <winsock2.h> | ||
24 | #endif /* ifdef _WIN32 */ | ||
25 | |||
26 | #include <stdio.h> | ||
27 | #include <errno.h> | ||
28 | #include <sys/types.h> | ||
29 | #include <sys/stat.h> | ||
30 | #include <time.h> | ||
31 | #include <string.h> | ||
32 | #include <fnmatch.h> | ||
33 | #include <fcntl.h> | ||
34 | #include <zlib.h> | ||
35 | |||
36 | #ifdef HAVE_UNISTD_H | ||
37 | # include <unistd.h> | ||
38 | #endif /* ifdef HAVE_UNISTD_H */ | ||
39 | |||
40 | #ifdef HAVE_NETINET_IN_H | ||
41 | # include <netinet/in.h> | ||
42 | #endif /* ifdef HAVE_NETINET_IN_H */ | ||
43 | |||
44 | #ifdef HAVE_EVIL | ||
45 | # include <Evil.h> | ||
46 | #endif /* ifdef HAVE_EVIL */ | ||
47 | |||
48 | #include <Eina.h> | ||
49 | |||
50 | #ifdef HAVE_GNUTLS | ||
51 | # include <gnutls/gnutls.h> | ||
52 | # include <gcrypt.h> | ||
53 | #endif /* ifdef HAVE_GNUTLS */ | ||
54 | |||
55 | #ifdef HAVE_OPENSSL | ||
56 | # include <openssl/err.h> | ||
57 | # include <openssl/evp.h> | ||
58 | #endif /* ifdef HAVE_OPENSSL */ | ||
59 | |||
60 | #ifdef EINA_HAVE_THREADS | ||
61 | # ifdef HAVE_GNUTLS | ||
62 | GCRY_THREAD_OPTION_PTHREAD_IMPL; | ||
63 | # endif /* ifdef HAVE_GNUTLS */ | ||
64 | #endif /* ifdef EINA_HAVE_THREADS */ | ||
65 | |||
66 | #include "Eet.h" | ||
67 | #include "Eet_private.h" | ||
68 | |||
69 | #ifndef O_BINARY | ||
70 | # define O_BINARY 0 | ||
71 | #endif | ||
72 | |||
73 | static Eet_Version _version = { VMAJ, VMIN, VMIC, VREV }; | ||
74 | EAPI Eet_Version *eet_version = &_version; | ||
75 | |||
76 | #ifdef HAVE_REALPATH | ||
77 | # undef HAVE_REALPATH | ||
78 | #endif /* ifdef HAVE_REALPATH */ | ||
79 | |||
80 | #define EET_MAGIC_FILE 0x1ee7ff00 | ||
81 | #define EET_MAGIC_FILE_HEADER 0x1ee7ff01 | ||
82 | |||
83 | #define EET_MAGIC_FILE2 0x1ee70f42 | ||
84 | |||
85 | #define EET_FILE2_HEADER_COUNT 3 | ||
86 | #define EET_FILE2_DIRECTORY_ENTRY_COUNT 6 | ||
87 | #define EET_FILE2_DICTIONARY_ENTRY_COUNT 5 | ||
88 | |||
89 | #define EET_FILE2_HEADER_SIZE (sizeof(int) * \ | ||
90 | EET_FILE2_HEADER_COUNT) | ||
91 | #define EET_FILE2_DIRECTORY_ENTRY_SIZE (sizeof(int) * \ | ||
92 | EET_FILE2_DIRECTORY_ENTRY_COUNT) | ||
93 | #define EET_FILE2_DICTIONARY_ENTRY_SIZE (sizeof(int) * \ | ||
94 | EET_FILE2_DICTIONARY_ENTRY_COUNT) | ||
95 | |||
96 | /* prototypes of internal calls */ | ||
97 | static Eet_File * | ||
98 | eet_cache_find(const char *path, | ||
99 | Eet_File **cache, | ||
100 | int cache_num); | ||
101 | static void | ||
102 | eet_cache_add(Eet_File *ef, | ||
103 | Eet_File ***cache, | ||
104 | int *cache_num, | ||
105 | int *cache_alloc); | ||
106 | static void | ||
107 | eet_cache_del(Eet_File *ef, | ||
108 | Eet_File ***cache, | ||
109 | int *cache_num, | ||
110 | int *cache_alloc); | ||
111 | static int | ||
112 | eet_string_match(const char *s1, | ||
113 | const char *s2); | ||
114 | #if 0 /* Unused */ | ||
115 | static Eet_Error | ||
116 | eet_flush(Eet_File *ef); | ||
117 | #endif /* if 0 */ | ||
118 | static Eet_Error | ||
119 | eet_flush2(Eet_File *ef); | ||
120 | static Eet_File_Node * | ||
121 | find_node_by_name(Eet_File *ef, | ||
122 | const char *name); | ||
123 | static int | ||
124 | read_data_from_disk(Eet_File *ef, | ||
125 | Eet_File_Node *efn, | ||
126 | void *buf, | ||
127 | int len); | ||
128 | |||
129 | static Eet_Error | ||
130 | eet_internal_close(Eet_File *ef, | ||
131 | Eina_Bool locked); | ||
132 | |||
133 | static Eina_Lock eet_cache_lock; | ||
134 | |||
135 | #define LOCK_CACHE eina_lock_take(&eet_cache_lock) | ||
136 | #define UNLOCK_CACHE eina_lock_release(&eet_cache_lock) | ||
137 | |||
138 | #define INIT_FILE(File) eina_lock_new(&File->file_lock) | ||
139 | #define LOCK_FILE(File) eina_lock_take(&File->file_lock) | ||
140 | #define UNLOCK_FILE(File) eina_lock_release(&File->file_lock) | ||
141 | #define DESTROY_FILE(File) eina_lock_free(&File->file_lock) | ||
142 | |||
143 | /* cache. i don't expect this to ever be large, so arrays will do */ | ||
144 | static int eet_writers_num = 0; | ||
145 | static int eet_writers_alloc = 0; | ||
146 | static Eet_File **eet_writers = NULL; | ||
147 | static int eet_readers_num = 0; | ||
148 | static int eet_readers_alloc = 0; | ||
149 | static Eet_File **eet_readers = NULL; | ||
150 | static int eet_init_count = 0; | ||
151 | |||
152 | /* log domain variable */ | ||
153 | int _eet_log_dom_global = -1; | ||
154 | |||
155 | /* Check to see its' an eet file pointer */ | ||
156 | static inline int | ||
157 | eet_check_pointer(const Eet_File *ef) | ||
158 | { | ||
159 | if ((!ef) || (ef->magic != EET_MAGIC_FILE)) | ||
160 | return 1; | ||
161 | |||
162 | return 0; | ||
163 | } | ||
164 | |||
165 | static inline int | ||
166 | eet_check_header(const Eet_File *ef) | ||
167 | { | ||
168 | if (!ef->header) | ||
169 | return 1; | ||
170 | |||
171 | if (!ef->header->directory) | ||
172 | return 1; | ||
173 | |||
174 | return 0; | ||
175 | } | ||
176 | |||
177 | static inline int | ||
178 | eet_test_close(int test, | ||
179 | Eet_File *ef) | ||
180 | { | ||
181 | if (test) | ||
182 | { | ||
183 | ef->delete_me_now = 1; | ||
184 | eet_internal_close(ef, EINA_TRUE); | ||
185 | } | ||
186 | |||
187 | return test; | ||
188 | } | ||
189 | |||
190 | /* find an eet file in the currently in use cache */ | ||
191 | static Eet_File * | ||
192 | eet_cache_find(const char *path, | ||
193 | Eet_File **cache, | ||
194 | int cache_num) | ||
195 | { | ||
196 | int i; | ||
197 | |||
198 | /* walk list */ | ||
199 | for (i = 0; i < cache_num; i++) | ||
200 | { | ||
201 | /* if matches real path - return it */ | ||
202 | if (eet_string_match(cache[i]->path, path)) | ||
203 | if (!cache[i]->delete_me_now) | ||
204 | return cache[i]; | ||
205 | } | ||
206 | |||
207 | /* not found */ | ||
208 | return NULL; | ||
209 | } | ||
210 | |||
211 | /* add to end of cache */ | ||
212 | /* this should only be called when the cache lock is already held */ | ||
213 | static void | ||
214 | eet_cache_add(Eet_File *ef, | ||
215 | Eet_File ***cache, | ||
216 | int *cache_num, | ||
217 | int *cache_alloc) | ||
218 | { | ||
219 | Eet_File **new_cache; | ||
220 | int new_cache_num; | ||
221 | int new_cache_alloc; | ||
222 | |||
223 | new_cache_num = *cache_num; | ||
224 | if (new_cache_num >= 64) /* avoid fd overruns - limit to 128 (most recent) in the cache */ | ||
225 | { | ||
226 | Eet_File *del_ef = NULL; | ||
227 | int i; | ||
228 | |||
229 | new_cache = *cache; | ||
230 | for (i = 0; i < new_cache_num; i++) | ||
231 | { | ||
232 | if (new_cache[i]->references == 0) | ||
233 | { | ||
234 | del_ef = new_cache[i]; | ||
235 | break; | ||
236 | } | ||
237 | } | ||
238 | |||
239 | if (del_ef) | ||
240 | { | ||
241 | del_ef->delete_me_now = 1; | ||
242 | eet_internal_close(del_ef, EINA_TRUE); | ||
243 | } | ||
244 | } | ||
245 | |||
246 | new_cache = *cache; | ||
247 | new_cache_num = *cache_num; | ||
248 | new_cache_alloc = *cache_alloc; | ||
249 | new_cache_num++; | ||
250 | if (new_cache_num > new_cache_alloc) | ||
251 | { | ||
252 | new_cache_alloc += 16; | ||
253 | new_cache = realloc(new_cache, new_cache_alloc * sizeof(Eet_File *)); | ||
254 | if (!new_cache) | ||
255 | { | ||
256 | CRIT("BAD ERROR! Eet realloc of cache list failed. Abort"); | ||
257 | abort(); | ||
258 | } | ||
259 | } | ||
260 | |||
261 | new_cache[new_cache_num - 1] = ef; | ||
262 | *cache = new_cache; | ||
263 | *cache_num = new_cache_num; | ||
264 | *cache_alloc = new_cache_alloc; | ||
265 | } | ||
266 | |||
267 | /* delete from cache */ | ||
268 | /* this should only be called when the cache lock is already held */ | ||
269 | static void | ||
270 | eet_cache_del(Eet_File *ef, | ||
271 | Eet_File ***cache, | ||
272 | int *cache_num, | ||
273 | int *cache_alloc) | ||
274 | { | ||
275 | Eet_File **new_cache; | ||
276 | int new_cache_num, new_cache_alloc; | ||
277 | int i, j; | ||
278 | |||
279 | new_cache = *cache; | ||
280 | new_cache_num = *cache_num; | ||
281 | new_cache_alloc = *cache_alloc; | ||
282 | if (new_cache_num <= 0) | ||
283 | return; | ||
284 | |||
285 | for (i = 0; i < new_cache_num; i++) | ||
286 | { | ||
287 | if (new_cache[i] == ef) | ||
288 | break; | ||
289 | } | ||
290 | |||
291 | if (i >= new_cache_num) | ||
292 | return; | ||
293 | |||
294 | new_cache_num--; | ||
295 | for (j = i; j < new_cache_num; j++) | ||
296 | new_cache[j] = new_cache[j + 1]; | ||
297 | |||
298 | if (new_cache_num <= (new_cache_alloc - 16)) | ||
299 | { | ||
300 | new_cache_alloc -= 16; | ||
301 | if (new_cache_num > 0) | ||
302 | { | ||
303 | new_cache = realloc(new_cache, new_cache_alloc * sizeof(Eet_File *)); | ||
304 | if (!new_cache) | ||
305 | { | ||
306 | CRIT("BAD ERROR! Eet realloc of cache list failed. Abort"); | ||
307 | abort(); | ||
308 | } | ||
309 | } | ||
310 | else | ||
311 | { | ||
312 | free(new_cache); | ||
313 | new_cache = NULL; | ||
314 | } | ||
315 | } | ||
316 | |||
317 | *cache = new_cache; | ||
318 | *cache_num = new_cache_num; | ||
319 | *cache_alloc = new_cache_alloc; | ||
320 | } | ||
321 | |||
322 | /* internal string match. null friendly, catches same ptr */ | ||
323 | static int | ||
324 | eet_string_match(const char *s1, | ||
325 | const char *s2) | ||
326 | { | ||
327 | /* both null- no match */ | ||
328 | if ((!s1) || (!s2)) | ||
329 | return 0; | ||
330 | |||
331 | if (s1 == s2) | ||
332 | return 1; | ||
333 | |||
334 | return !strcmp(s1, s2); | ||
335 | } | ||
336 | |||
337 | /* flush out writes to a v2 eet file */ | ||
338 | static Eet_Error | ||
339 | eet_flush2(Eet_File *ef) | ||
340 | { | ||
341 | Eet_File_Node *efn; | ||
342 | FILE *fp; | ||
343 | Eet_Error error = EET_ERROR_NONE; | ||
344 | int head[EET_FILE2_HEADER_COUNT]; | ||
345 | int num_directory_entries = 0; | ||
346 | int num_dictionary_entries = 0; | ||
347 | int bytes_directory_entries = 0; | ||
348 | int bytes_dictionary_entries = 0; | ||
349 | int bytes_strings = 0; | ||
350 | int data_offset = 0; | ||
351 | int strings_offset = 0; | ||
352 | int num; | ||
353 | int i; | ||
354 | int j; | ||
355 | |||
356 | if (eet_check_pointer(ef)) | ||
357 | return EET_ERROR_BAD_OBJECT; | ||
358 | |||
359 | if (eet_check_header(ef)) | ||
360 | return EET_ERROR_EMPTY; | ||
361 | |||
362 | if (!ef->writes_pending) | ||
363 | return EET_ERROR_NONE; | ||
364 | |||
365 | if ((ef->mode == EET_FILE_MODE_READ_WRITE) | ||
366 | || (ef->mode == EET_FILE_MODE_WRITE)) | ||
367 | { | ||
368 | int fd; | ||
369 | |||
370 | /* opening for write - delete old copy of file right away */ | ||
371 | unlink(ef->path); | ||
372 | fd = open(ef->path, O_CREAT | O_TRUNC | O_RDWR | O_BINARY, S_IRUSR | S_IWUSR); | ||
373 | fp = fdopen(fd, "wb"); | ||
374 | if (!fp) | ||
375 | return EET_ERROR_NOT_WRITABLE; | ||
376 | |||
377 | fcntl(fd, F_SETFD, FD_CLOEXEC); | ||
378 | } | ||
379 | else | ||
380 | return EET_ERROR_NOT_WRITABLE; | ||
381 | |||
382 | /* calculate string base offset and data base offset */ | ||
383 | num = (1 << ef->header->directory->size); | ||
384 | for (i = 0; i < num; ++i) | ||
385 | { | ||
386 | for (efn = ef->header->directory->nodes[i]; efn; efn = efn->next) | ||
387 | { | ||
388 | num_directory_entries++; | ||
389 | bytes_strings += strlen(efn->name) + 1; | ||
390 | } | ||
391 | } | ||
392 | if (ef->ed) | ||
393 | { | ||
394 | num_dictionary_entries = ef->ed->count; | ||
395 | |||
396 | for (i = 0; i < num_dictionary_entries; ++i) | ||
397 | bytes_strings += ef->ed->all[i].len; | ||
398 | } | ||
399 | |||
400 | /* calculate section bytes size */ | ||
401 | bytes_directory_entries = EET_FILE2_DIRECTORY_ENTRY_SIZE * | ||
402 | num_directory_entries + EET_FILE2_HEADER_SIZE; | ||
403 | bytes_dictionary_entries = EET_FILE2_DICTIONARY_ENTRY_SIZE * | ||
404 | num_dictionary_entries; | ||
405 | |||
406 | /* calculate per entry offset */ | ||
407 | strings_offset = bytes_directory_entries + bytes_dictionary_entries; | ||
408 | data_offset = bytes_directory_entries + bytes_dictionary_entries + | ||
409 | bytes_strings; | ||
410 | |||
411 | for (i = 0; i < num; ++i) | ||
412 | { | ||
413 | for (efn = ef->header->directory->nodes[i]; efn; efn = efn->next) | ||
414 | { | ||
415 | efn->offset = data_offset; | ||
416 | data_offset += efn->size; | ||
417 | |||
418 | efn->name_offset = strings_offset; | ||
419 | strings_offset += efn->name_size; | ||
420 | } | ||
421 | } | ||
422 | |||
423 | /* calculate dictionary strings offset */ | ||
424 | if (ef->ed) | ||
425 | ef->ed->offset = strings_offset; | ||
426 | |||
427 | /* go thru and write the header */ | ||
428 | head[0] = (int)htonl((unsigned int)EET_MAGIC_FILE2); | ||
429 | head[1] = (int)htonl((unsigned int)num_directory_entries); | ||
430 | head[2] = (int)htonl((unsigned int)num_dictionary_entries); | ||
431 | |||
432 | fseek(fp, 0, SEEK_SET); | ||
433 | if (fwrite(head, sizeof (head), 1, fp) != 1) | ||
434 | goto write_error; | ||
435 | |||
436 | /* write directories entry */ | ||
437 | for (i = 0; i < num; i++) | ||
438 | { | ||
439 | for (efn = ef->header->directory->nodes[i]; efn; efn = efn->next) | ||
440 | { | ||
441 | unsigned int flag; | ||
442 | int ibuf[EET_FILE2_DIRECTORY_ENTRY_COUNT]; | ||
443 | |||
444 | flag = (efn->alias << 2) | (efn->ciphered << 1) | efn->compression; | ||
445 | |||
446 | ibuf[0] = (int)htonl((unsigned int)efn->offset); | ||
447 | ibuf[1] = (int)htonl((unsigned int)efn->size); | ||
448 | ibuf[2] = (int)htonl((unsigned int)efn->data_size); | ||
449 | ibuf[3] = (int)htonl((unsigned int)efn->name_offset); | ||
450 | ibuf[4] = (int)htonl((unsigned int)efn->name_size); | ||
451 | ibuf[5] = (int)htonl((unsigned int)flag); | ||
452 | |||
453 | if (fwrite(ibuf, sizeof(ibuf), 1, fp) != 1) | ||
454 | goto write_error; | ||
455 | } | ||
456 | } | ||
457 | |||
458 | /* write dictionary */ | ||
459 | if (ef->ed) | ||
460 | { | ||
461 | int offset = strings_offset; | ||
462 | |||
463 | for (j = 0; j < ef->ed->count; ++j) | ||
464 | { | ||
465 | int sbuf[EET_FILE2_DICTIONARY_ENTRY_COUNT]; | ||
466 | |||
467 | sbuf[0] = (int)htonl((unsigned int)ef->ed->all[j].hash); | ||
468 | sbuf[1] = (int)htonl((unsigned int)offset); | ||
469 | sbuf[2] = (int)htonl((unsigned int)ef->ed->all[j].len); | ||
470 | sbuf[3] = (int)htonl((unsigned int)ef->ed->all[j].prev); | ||
471 | sbuf[4] = (int)htonl((unsigned int)ef->ed->all[j].next); | ||
472 | |||
473 | offset += ef->ed->all[j].len; | ||
474 | |||
475 | if (fwrite(sbuf, sizeof (sbuf), 1, fp) != 1) | ||
476 | goto write_error; | ||
477 | } | ||
478 | } | ||
479 | |||
480 | /* write directories name */ | ||
481 | for (i = 0; i < num; i++) | ||
482 | { | ||
483 | for (efn = ef->header->directory->nodes[i]; efn; efn = efn->next) | ||
484 | { | ||
485 | if (fwrite(efn->name, efn->name_size, 1, fp) != 1) | ||
486 | goto write_error; | ||
487 | } | ||
488 | } | ||
489 | |||
490 | /* write strings */ | ||
491 | if (ef->ed) | ||
492 | for (j = 0; j < ef->ed->count; ++j) | ||
493 | { | ||
494 | if (fwrite(ef->ed->all[j].str, ef->ed->all[j].len, 1, fp) != 1) | ||
495 | goto write_error; | ||
496 | } | ||
497 | |||
498 | /* write data */ | ||
499 | for (i = 0; i < num; i++) | ||
500 | { | ||
501 | for (efn = ef->header->directory->nodes[i]; efn; efn = efn->next) | ||
502 | { | ||
503 | if (fwrite(efn->data, efn->size, 1, fp) != 1) | ||
504 | goto write_error; | ||
505 | } | ||
506 | } | ||
507 | |||
508 | /* flush all write to the file. */ | ||
509 | fflush(fp); | ||
510 | |||
511 | /* append signature if required */ | ||
512 | if (ef->key) | ||
513 | { | ||
514 | error = eet_identity_sign(fp, ef->key); | ||
515 | if (error != EET_ERROR_NONE) | ||
516 | goto sign_error; | ||
517 | } | ||
518 | |||
519 | /* no more writes pending */ | ||
520 | ef->writes_pending = 0; | ||
521 | |||
522 | fclose(fp); | ||
523 | |||
524 | return EET_ERROR_NONE; | ||
525 | |||
526 | write_error: | ||
527 | if (ferror(fp)) | ||
528 | { | ||
529 | switch (errno) | ||
530 | { | ||
531 | case EFBIG: error = EET_ERROR_WRITE_ERROR_FILE_TOO_BIG; break; | ||
532 | |||
533 | case EIO: error = EET_ERROR_WRITE_ERROR_IO_ERROR; break; | ||
534 | |||
535 | case ENOSPC: error = EET_ERROR_WRITE_ERROR_OUT_OF_SPACE; break; | ||
536 | |||
537 | case EPIPE: error = EET_ERROR_WRITE_ERROR_FILE_CLOSED; break; | ||
538 | |||
539 | default: error = EET_ERROR_WRITE_ERROR; break; | ||
540 | } | ||
541 | } | ||
542 | |||
543 | sign_error: | ||
544 | fclose(fp); | ||
545 | return error; | ||
546 | } | ||
547 | |||
548 | EAPI int | ||
549 | eet_init(void) | ||
550 | { | ||
551 | if (++eet_init_count != 1) | ||
552 | return eet_init_count; | ||
553 | |||
554 | if (!eina_init()) | ||
555 | return --eet_init_count; | ||
556 | |||
557 | _eet_log_dom_global = eina_log_domain_register("eet", EET_DEFAULT_LOG_COLOR); | ||
558 | if (_eet_log_dom_global < 0) | ||
559 | { | ||
560 | EINA_LOG_ERR("Eet Can not create a general log domain."); | ||
561 | goto shutdown_eina; | ||
562 | } | ||
563 | |||
564 | eina_lock_new(&eet_cache_lock); | ||
565 | |||
566 | if (!eet_mempool_init()) | ||
567 | { | ||
568 | EINA_LOG_ERR("Eet: Eet_Node mempool creation failed"); | ||
569 | goto unregister_log_domain; | ||
570 | } | ||
571 | |||
572 | if (!eet_node_init()) | ||
573 | { | ||
574 | EINA_LOG_ERR("Eet: Eet_Node mempool creation failed"); | ||
575 | goto shutdown_mempool; | ||
576 | } | ||
577 | |||
578 | #ifdef HAVE_GNUTLS | ||
579 | /* Before the library can be used, it must initialize itself if needed. */ | ||
580 | if (gcry_control(GCRYCTL_ANY_INITIALIZATION_P) == 0) | ||
581 | { | ||
582 | gcry_check_version(NULL); | ||
583 | /* Disable warning messages about problems with the secure memory subsystem. | ||
584 | This command should be run right after gcry_check_version. */ | ||
585 | if (gcry_control(GCRYCTL_DISABLE_SECMEM_WARN)) | ||
586 | goto shutdown_eet; /* This command is used to allocate a pool of secure memory and thus | ||
587 | enabling the use of secure memory. It also drops all extra privileges the | ||
588 | process has (i.e. if it is run as setuid (root)). If the argument nbytes | ||
589 | is 0, secure memory will be disabled. The minimum amount of secure memory | ||
590 | allocated is currently 16384 bytes; you may thus use a value of 1 to | ||
591 | request that default size. */ | ||
592 | |||
593 | if (gcry_control(GCRYCTL_INIT_SECMEM, 16384, 0)) | ||
594 | WRN( | ||
595 | "BIG FAT WARNING: I AM UNABLE TO REQUEST SECMEM, Cryptographic operation are at risk !"); | ||
596 | } | ||
597 | |||
598 | # ifdef EINA_HAVE_THREADS | ||
599 | if (gcry_control(GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread)) | ||
600 | WRN( | ||
601 | "YOU ARE USING PTHREADS, BUT I CANNOT INITIALIZE THREADSAFE GCRYPT OPERATIONS!"); | ||
602 | |||
603 | # endif /* ifdef EINA_HAVE_THREADS */ | ||
604 | if (gnutls_global_init()) | ||
605 | goto shutdown_eet; | ||
606 | |||
607 | #endif /* ifdef HAVE_GNUTLS */ | ||
608 | #ifdef HAVE_OPENSSL | ||
609 | ERR_load_crypto_strings(); | ||
610 | OpenSSL_add_all_algorithms(); | ||
611 | #endif /* ifdef HAVE_OPENSSL */ | ||
612 | |||
613 | return eet_init_count; | ||
614 | |||
615 | #ifdef HAVE_GNUTLS | ||
616 | shutdown_eet: | ||
617 | #endif | ||
618 | eet_node_shutdown(); | ||
619 | shutdown_mempool: | ||
620 | eet_mempool_shutdown(); | ||
621 | unregister_log_domain: | ||
622 | eina_log_domain_unregister(_eet_log_dom_global); | ||
623 | _eet_log_dom_global = -1; | ||
624 | shutdown_eina: | ||
625 | eina_shutdown(); | ||
626 | return --eet_init_count; | ||
627 | } | ||
628 | |||
629 | EAPI int | ||
630 | eet_shutdown(void) | ||
631 | { | ||
632 | if (--eet_init_count != 0) | ||
633 | return eet_init_count; | ||
634 | |||
635 | eet_clearcache(); | ||
636 | eet_node_shutdown(); | ||
637 | eet_mempool_shutdown(); | ||
638 | |||
639 | eina_lock_free(&eet_cache_lock); | ||
640 | |||
641 | #ifdef HAVE_GNUTLS | ||
642 | gnutls_global_deinit(); | ||
643 | #endif /* ifdef HAVE_GNUTLS */ | ||
644 | #ifdef HAVE_OPENSSL | ||
645 | EVP_cleanup(); | ||
646 | ERR_free_strings(); | ||
647 | #endif /* ifdef HAVE_OPENSSL */ | ||
648 | eina_log_domain_unregister(_eet_log_dom_global); | ||
649 | _eet_log_dom_global = -1; | ||
650 | eina_shutdown(); | ||
651 | |||
652 | return eet_init_count; | ||
653 | } | ||
654 | |||
655 | EAPI Eet_Error | ||
656 | eet_sync(Eet_File *ef) | ||
657 | { | ||
658 | Eet_Error ret; | ||
659 | |||
660 | if (eet_check_pointer(ef)) | ||
661 | return EET_ERROR_BAD_OBJECT; | ||
662 | |||
663 | if ((ef->mode != EET_FILE_MODE_WRITE) && | ||
664 | (ef->mode != EET_FILE_MODE_READ_WRITE)) | ||
665 | return EET_ERROR_NOT_WRITABLE; | ||
666 | |||
667 | if (!ef->writes_pending) | ||
668 | return EET_ERROR_NONE; | ||
669 | |||
670 | LOCK_FILE(ef); | ||
671 | |||
672 | ret = eet_flush2(ef); | ||
673 | |||
674 | UNLOCK_FILE(ef); | ||
675 | return ret; | ||
676 | } | ||
677 | |||
678 | EAPI void | ||
679 | eet_clearcache(void) | ||
680 | { | ||
681 | int num = 0; | ||
682 | int i; | ||
683 | |||
684 | /* | ||
685 | * We need to compute the list of eet file to close separately from the cache, | ||
686 | * due to eet_close removing them from the cache after each call. | ||
687 | */ | ||
688 | LOCK_CACHE; | ||
689 | for (i = 0; i < eet_writers_num; i++) | ||
690 | { | ||
691 | if (eet_writers[i]->references <= 0) | ||
692 | num++; | ||
693 | } | ||
694 | |||
695 | for (i = 0; i < eet_readers_num; i++) | ||
696 | { | ||
697 | if (eet_readers[i]->references <= 0) | ||
698 | num++; | ||
699 | } | ||
700 | |||
701 | if (num > 0) | ||
702 | { | ||
703 | Eet_File **closelist = NULL; | ||
704 | |||
705 | closelist = alloca(num * sizeof(Eet_File *)); | ||
706 | num = 0; | ||
707 | for (i = 0; i < eet_writers_num; i++) | ||
708 | { | ||
709 | if (eet_writers[i]->references <= 0) | ||
710 | { | ||
711 | closelist[num] = eet_writers[i]; | ||
712 | eet_writers[i]->delete_me_now = 1; | ||
713 | num++; | ||
714 | } | ||
715 | } | ||
716 | |||
717 | for (i = 0; i < eet_readers_num; i++) | ||
718 | { | ||
719 | if (eet_readers[i]->references <= 0) | ||
720 | { | ||
721 | closelist[num] = eet_readers[i]; | ||
722 | eet_readers[i]->delete_me_now = 1; | ||
723 | num++; | ||
724 | } | ||
725 | } | ||
726 | |||
727 | for (i = 0; i < num; i++) | ||
728 | { | ||
729 | eet_internal_close(closelist[i], EINA_TRUE); | ||
730 | } | ||
731 | } | ||
732 | |||
733 | UNLOCK_CACHE; | ||
734 | } | ||
735 | |||
736 | /* FIXME: MMAP race condition in READ_WRITE_MODE */ | ||
737 | static Eet_File * | ||
738 | eet_internal_read2(Eet_File *ef) | ||
739 | { | ||
740 | const int *data = (const int *)ef->data; | ||
741 | const char *start = (const char *)ef->data; | ||
742 | int idx = 0; | ||
743 | unsigned long int bytes_directory_entries; | ||
744 | unsigned long int bytes_dictionary_entries; | ||
745 | unsigned long int signature_base_offset; | ||
746 | unsigned long int num_directory_entries; | ||
747 | unsigned long int num_dictionary_entries; | ||
748 | unsigned int i; | ||
749 | |||
750 | idx += sizeof(int); | ||
751 | if (eet_test_close((int)ntohl(*data) != EET_MAGIC_FILE2, ef)) | ||
752 | return NULL; | ||
753 | |||
754 | data++; | ||
755 | |||
756 | #define GET_INT(Value, Pointer, Index) \ | ||
757 | { \ | ||
758 | Value = ntohl(*Pointer); \ | ||
759 | Pointer++; \ | ||
760 | Index += sizeof(int); \ | ||
761 | } | ||
762 | |||
763 | /* get entries count and byte count */ | ||
764 | GET_INT(num_directory_entries, data, idx); | ||
765 | /* get dictionary count and byte count */ | ||
766 | GET_INT(num_dictionary_entries, data, idx); | ||
767 | |||
768 | bytes_directory_entries = EET_FILE2_DIRECTORY_ENTRY_SIZE * | ||
769 | num_directory_entries + EET_FILE2_HEADER_SIZE; | ||
770 | bytes_dictionary_entries = EET_FILE2_DICTIONARY_ENTRY_SIZE * | ||
771 | num_dictionary_entries; | ||
772 | |||
773 | /* we can't have > 0x7fffffff values here - invalid */ | ||
774 | if (eet_test_close((num_directory_entries > 0x7fffffff), ef)) | ||
775 | return NULL; | ||
776 | |||
777 | /* we can't have more bytes directory and bytes in dictionaries than the size of the file */ | ||
778 | if (eet_test_close((bytes_directory_entries + bytes_dictionary_entries) > | ||
779 | ef->data_size, ef)) | ||
780 | return NULL; | ||
781 | |||
782 | /* allocate header */ | ||
783 | ef->header = eet_file_header_calloc(1); | ||
784 | if (eet_test_close(!ef->header, ef)) | ||
785 | return NULL; | ||
786 | |||
787 | ef->header->magic = EET_MAGIC_FILE_HEADER; | ||
788 | |||
789 | /* allocate directory block in ram */ | ||
790 | ef->header->directory = eet_file_directory_calloc(1); | ||
791 | if (eet_test_close(!ef->header->directory, ef)) | ||
792 | return NULL; | ||
793 | |||
794 | /* 8 bit hash table (256 buckets) */ | ||
795 | ef->header->directory->size = 8; | ||
796 | /* allocate base hash table */ | ||
797 | ef->header->directory->nodes = | ||
798 | calloc(1, sizeof(Eet_File_Node *) * (1 << ef->header->directory->size)); | ||
799 | if (eet_test_close(!ef->header->directory->nodes, ef)) | ||
800 | return NULL; | ||
801 | |||
802 | signature_base_offset = 0; | ||
803 | if (num_directory_entries == 0) | ||
804 | { | ||
805 | signature_base_offset = ef->data_size; | ||
806 | } | ||
807 | |||
808 | /* actually read the directory block - all of it, into ram */ | ||
809 | for (i = 0; i < num_directory_entries; ++i) | ||
810 | { | ||
811 | const char *name; | ||
812 | Eet_File_Node *efn; | ||
813 | unsigned long int name_offset; | ||
814 | unsigned long int name_size; | ||
815 | int hash; | ||
816 | int flag; | ||
817 | |||
818 | /* out directory block is inconsistent - we have overrun our */ | ||
819 | /* dynamic block buffer before we finished scanning dir entries */ | ||
820 | efn = eet_file_node_malloc(1); | ||
821 | if (eet_test_close(!efn, ef)) | ||
822 | { | ||
823 | if (efn) eet_file_node_mp_free(efn); /* yes i know - we only get here if | ||
824 | * efn is null/0 -> trying to shut up | ||
825 | * warning tools like cppcheck */ | ||
826 | return NULL; | ||
827 | } | ||
828 | |||
829 | /* get entrie header */ | ||
830 | GET_INT(efn->offset, data, idx); | ||
831 | GET_INT(efn->size, data, idx); | ||
832 | GET_INT(efn->data_size, data, idx); | ||
833 | GET_INT(name_offset, data, idx); | ||
834 | GET_INT(name_size, data, idx); | ||
835 | GET_INT(flag, data, idx); | ||
836 | |||
837 | efn->compression = flag & 0x1 ? 1 : 0; | ||
838 | efn->ciphered = flag & 0x2 ? 1 : 0; | ||
839 | efn->alias = flag & 0x4 ? 1 : 0; | ||
840 | |||
841 | #define EFN_TEST(Test, Ef, Efn) \ | ||
842 | if (eet_test_close(Test, Ef)) \ | ||
843 | { \ | ||
844 | eet_file_node_mp_free(Efn); \ | ||
845 | return NULL; \ | ||
846 | } | ||
847 | |||
848 | /* check data pointer position */ | ||
849 | EFN_TEST(!((efn->size > 0) | ||
850 | && (efn->offset + efn->size <= ef->data_size) | ||
851 | && (efn->offset > bytes_dictionary_entries + | ||
852 | bytes_directory_entries)), ef, efn); | ||
853 | |||
854 | /* check name position */ | ||
855 | EFN_TEST(!((name_size > 0) | ||
856 | && (name_offset + name_size < ef->data_size) | ||
857 | && (name_offset >= bytes_dictionary_entries + | ||
858 | bytes_directory_entries)), ef, efn); | ||
859 | |||
860 | name = start + name_offset; | ||
861 | |||
862 | /* check '\0' at the end of name string */ | ||
863 | EFN_TEST(name[name_size - 1] != '\0', ef, efn); | ||
864 | |||
865 | efn->free_name = 0; | ||
866 | efn->name = (char *)name; | ||
867 | efn->name_size = name_size; | ||
868 | |||
869 | hash = _eet_hash_gen(efn->name, ef->header->directory->size); | ||
870 | efn->next = ef->header->directory->nodes[hash]; | ||
871 | ef->header->directory->nodes[hash] = efn; | ||
872 | |||
873 | /* read-only mode, so currently we have no data loaded */ | ||
874 | if (ef->mode == EET_FILE_MODE_READ) | ||
875 | efn->data = NULL; /* read-write mode - read everything into ram */ | ||
876 | else | ||
877 | { | ||
878 | efn->data = malloc(efn->size); | ||
879 | if (efn->data) | ||
880 | memcpy(efn->data, ef->data + efn->offset, efn->size); | ||
881 | } | ||
882 | |||
883 | /* compute the possible position of a signature */ | ||
884 | if (signature_base_offset < efn->offset + efn->size) | ||
885 | signature_base_offset = efn->offset + efn->size; | ||
886 | } | ||
887 | |||
888 | ef->ed = NULL; | ||
889 | |||
890 | if (num_dictionary_entries) | ||
891 | { | ||
892 | const int *dico = (const int *)ef->data + | ||
893 | EET_FILE2_DIRECTORY_ENTRY_COUNT * num_directory_entries + | ||
894 | EET_FILE2_HEADER_COUNT; | ||
895 | int j; | ||
896 | |||
897 | if (eet_test_close((num_dictionary_entries * | ||
898 | (int)EET_FILE2_DICTIONARY_ENTRY_SIZE + idx) > | ||
899 | (bytes_dictionary_entries + bytes_directory_entries), | ||
900 | ef)) | ||
901 | return NULL; | ||
902 | |||
903 | ef->ed = eet_dictionary_calloc(1); | ||
904 | if (eet_test_close(!ef->ed, ef)) | ||
905 | return NULL; | ||
906 | |||
907 | ef->ed->all = calloc(1, num_dictionary_entries * sizeof(Eet_String)); | ||
908 | if (eet_test_close(!ef->ed->all, ef)) | ||
909 | return NULL; | ||
910 | |||
911 | ef->ed->count = num_dictionary_entries; | ||
912 | ef->ed->total = num_dictionary_entries; | ||
913 | ef->ed->start = start + bytes_dictionary_entries + | ||
914 | bytes_directory_entries; | ||
915 | ef->ed->end = ef->ed->start; | ||
916 | |||
917 | for (j = 0; j < ef->ed->count; ++j) | ||
918 | { | ||
919 | unsigned int offset; | ||
920 | int hash; | ||
921 | |||
922 | GET_INT(hash, dico, idx); | ||
923 | GET_INT(offset, dico, idx); | ||
924 | GET_INT(ef->ed->all[j].len, dico, idx); | ||
925 | GET_INT(ef->ed->all[j].prev, dico, idx); | ||
926 | GET_INT(ef->ed->all[j].next, dico, idx); | ||
927 | |||
928 | /* Hash value could be stored on 8bits data, but this will break alignment of all the others data. | ||
929 | So stick to int and check the value. */ | ||
930 | if (eet_test_close(hash & 0xFFFFFF00, ef)) | ||
931 | return NULL; | ||
932 | |||
933 | /* Check string position */ | ||
934 | if (eet_test_close(!((ef->ed->all[j].len > 0) | ||
935 | && (offset > | ||
936 | (bytes_dictionary_entries + | ||
937 | bytes_directory_entries)) | ||
938 | && (offset + ef->ed->all[j].len < | ||
939 | ef->data_size)), ef)) | ||
940 | return NULL; | ||
941 | |||
942 | ef->ed->all[j].str = start + offset; | ||
943 | |||
944 | if (ef->ed->all[j].str + ef->ed->all[j].len > ef->ed->end) | ||
945 | ef->ed->end = ef->ed->all[j].str + ef->ed->all[j].len; | ||
946 | |||
947 | /* Check '\0' at the end of the string */ | ||
948 | if (eet_test_close(ef->ed->all[j].str[ef->ed->all[j].len - 1] != | ||
949 | '\0', ef)) | ||
950 | return NULL; | ||
951 | |||
952 | ef->ed->all[j].hash = hash; | ||
953 | if (ef->ed->all[j].prev == -1) | ||
954 | ef->ed->hash[hash] = j; | ||
955 | |||
956 | /* compute the possible position of a signature */ | ||
957 | if (signature_base_offset < offset + ef->ed->all[j].len) | ||
958 | signature_base_offset = offset + ef->ed->all[j].len; | ||
959 | } | ||
960 | } | ||
961 | |||
962 | /* Check if the file is signed */ | ||
963 | ef->x509_der = NULL; | ||
964 | ef->x509_length = 0; | ||
965 | ef->signature = NULL; | ||
966 | ef->signature_length = 0; | ||
967 | |||
968 | if (signature_base_offset < ef->data_size) | ||
969 | { | ||
970 | #ifdef HAVE_SIGNATURE | ||
971 | const unsigned char *buffer = ((const unsigned char *)ef->data) + | ||
972 | signature_base_offset; | ||
973 | ef->x509_der = eet_identity_check(ef->data, | ||
974 | signature_base_offset, | ||
975 | &ef->sha1, | ||
976 | &ef->sha1_length, | ||
977 | buffer, | ||
978 | ef->data_size - signature_base_offset, | ||
979 | &ef->signature, | ||
980 | &ef->signature_length, | ||
981 | &ef->x509_length); | ||
982 | |||
983 | if (eet_test_close(!ef->x509_der, ef)) | ||
984 | return NULL; | ||
985 | |||
986 | #else /* ifdef HAVE_SIGNATURE */ | ||
987 | ERR( | ||
988 | "This file could be signed but you didn't compile the necessary code to check the signature."); | ||
989 | #endif /* ifdef HAVE_SIGNATURE */ | ||
990 | } | ||
991 | |||
992 | return ef; | ||
993 | } | ||
994 | |||
995 | #if EET_OLD_EET_FILE_FORMAT | ||
996 | static Eet_File * | ||
997 | eet_internal_read1(Eet_File *ef) | ||
998 | { | ||
999 | const unsigned char *dyn_buf = NULL; | ||
1000 | const unsigned char *p = NULL; | ||
1001 | unsigned long int byte_entries; | ||
1002 | unsigned long int num_entries; | ||
1003 | unsigned int i; | ||
1004 | int idx = 0; | ||
1005 | |||
1006 | WRN( | ||
1007 | "EET file format of '%s' is deprecated. You should just open it one time with mode == EET_FILE_MODE_READ_WRITE to solve this issue.", | ||
1008 | ef->path); | ||
1009 | |||
1010 | /* build header table if read mode */ | ||
1011 | /* geat header */ | ||
1012 | idx += sizeof(int); | ||
1013 | if (eet_test_close((int)ntohl(*((int *)ef->data)) != EET_MAGIC_FILE, ef)) | ||
1014 | return NULL; | ||
1015 | |||
1016 | #define EXTRACT_INT(Value, Pointer, Index) \ | ||
1017 | { \ | ||
1018 | int tmp; \ | ||
1019 | memcpy(&tmp, Pointer + Index, sizeof(int)); \ | ||
1020 | Value = ntohl(tmp); \ | ||
1021 | Index += sizeof(int); \ | ||
1022 | } | ||
1023 | |||
1024 | /* get entries count and byte count */ | ||
1025 | EXTRACT_INT(num_entries, ef->data, idx); | ||
1026 | EXTRACT_INT(byte_entries, ef->data, idx); | ||
1027 | |||
1028 | /* we can't have <= 0 values here - invalid */ | ||
1029 | if (eet_test_close((num_entries > 0x7fffffff) || | ||
1030 | (byte_entries > 0x7fffffff), ef)) | ||
1031 | return NULL; | ||
1032 | |||
1033 | /* we can't have more entires than minimum bytes for those! invalid! */ | ||
1034 | if (eet_test_close((num_entries * 20) > byte_entries, ef)) | ||
1035 | return NULL; | ||
1036 | |||
1037 | /* check we will not outrun the file limit */ | ||
1038 | if (eet_test_close(((byte_entries + (int)(sizeof(int) * 3)) > | ||
1039 | ef->data_size), ef)) | ||
1040 | return NULL; | ||
1041 | |||
1042 | /* allocate header */ | ||
1043 | ef->header = eet_file_header_calloc(1); | ||
1044 | if (eet_test_close(!ef->header, ef)) | ||
1045 | return NULL; | ||
1046 | |||
1047 | ef->header->magic = EET_MAGIC_FILE_HEADER; | ||
1048 | |||
1049 | /* allocate directory block in ram */ | ||
1050 | ef->header->directory = eet_file_directory_calloc(1); | ||
1051 | if (eet_test_close(!ef->header->directory, ef)) | ||
1052 | return NULL; | ||
1053 | |||
1054 | /* 8 bit hash table (256 buckets) */ | ||
1055 | ef->header->directory->size = 8; | ||
1056 | /* allocate base hash table */ | ||
1057 | ef->header->directory->nodes = | ||
1058 | calloc(1, sizeof(Eet_File_Node *) * (1 << ef->header->directory->size)); | ||
1059 | if (eet_test_close(!ef->header->directory->nodes, ef)) | ||
1060 | return NULL; | ||
1061 | |||
1062 | /* actually read the directory block - all of it, into ram */ | ||
1063 | dyn_buf = ef->data + idx; | ||
1064 | |||
1065 | /* parse directory block */ | ||
1066 | p = dyn_buf; | ||
1067 | |||
1068 | for (i = 0; i < num_entries; i++) | ||
1069 | { | ||
1070 | Eet_File_Node *efn; | ||
1071 | void *data = NULL; | ||
1072 | int indexn = 0; | ||
1073 | int name_size; | ||
1074 | int hash; | ||
1075 | int k; | ||
1076 | |||
1077 | #define HEADER_SIZE (sizeof(int) * 5) | ||
1078 | |||
1079 | /* out directory block is inconsistent - we have overrun our */ | ||
1080 | /* dynamic block buffer before we finished scanning dir entries */ | ||
1081 | if (eet_test_close(p + HEADER_SIZE >= (dyn_buf + byte_entries), ef)) | ||
1082 | return NULL; | ||
1083 | |||
1084 | /* allocate all the ram needed for this stored node accounting */ | ||
1085 | efn = eet_file_node_malloc(1); | ||
1086 | if (eet_test_close(!efn, ef)) | ||
1087 | { | ||
1088 | if (efn) eet_file_node_mp_free(efn); /* yes i know - we only get here if | ||
1089 | * efn is null/0 -> trying to shut up | ||
1090 | * warning tools like cppcheck */ | ||
1091 | return NULL; | ||
1092 | } | ||
1093 | |||
1094 | /* get entrie header */ | ||
1095 | EXTRACT_INT(efn->offset, p, indexn); | ||
1096 | EXTRACT_INT(efn->compression, p, indexn); | ||
1097 | EXTRACT_INT(efn->size, p, indexn); | ||
1098 | EXTRACT_INT(efn->data_size, p, indexn); | ||
1099 | EXTRACT_INT(name_size, p, indexn); | ||
1100 | |||
1101 | efn->name_size = name_size; | ||
1102 | efn->ciphered = 0; | ||
1103 | efn->alias = 0; | ||
1104 | |||
1105 | /* invalid size */ | ||
1106 | if (eet_test_close(efn->size <= 0, ef)) | ||
1107 | { | ||
1108 | eet_file_node_mp_free(efn); | ||
1109 | return NULL; | ||
1110 | } | ||
1111 | |||
1112 | /* invalid name_size */ | ||
1113 | if (eet_test_close(name_size <= 0, ef)) | ||
1114 | { | ||
1115 | eet_file_node_mp_free(efn); | ||
1116 | return NULL; | ||
1117 | } | ||
1118 | |||
1119 | /* reading name would mean falling off end of dyn_buf - invalid */ | ||
1120 | if (eet_test_close((p + 16 + name_size) > (dyn_buf + byte_entries), ef)) | ||
1121 | { | ||
1122 | eet_file_node_mp_free(efn); | ||
1123 | return NULL; | ||
1124 | } | ||
1125 | |||
1126 | /* This code is useless if we dont want backward compatibility */ | ||
1127 | for (k = name_size; | ||
1128 | k > 0 && ((unsigned char)*(p + HEADER_SIZE + k)) != 0; --k) | ||
1129 | ; | ||
1130 | |||
1131 | efn->free_name = ((unsigned char)*(p + HEADER_SIZE + k)) != 0; | ||
1132 | |||
1133 | if (efn->free_name) | ||
1134 | { | ||
1135 | efn->name = malloc(sizeof(char) * name_size + 1); | ||
1136 | if (eet_test_close(!efn->name, ef)) | ||
1137 | { | ||
1138 | eet_file_node_mp_free(efn); | ||
1139 | return NULL; | ||
1140 | } | ||
1141 | |||
1142 | strncpy(efn->name, (char *)p + HEADER_SIZE, name_size); | ||
1143 | efn->name[name_size] = 0; | ||
1144 | |||
1145 | WRN( | ||
1146 | "File: %s is not up to date for key \"%s\" - needs rebuilding sometime", | ||
1147 | ef->path, | ||
1148 | efn->name); | ||
1149 | } | ||
1150 | else | ||
1151 | /* The only really useful peace of code for efn->name (no backward compatibility) */ | ||
1152 | efn->name = (char *)((unsigned char *)(p + HEADER_SIZE)); | ||
1153 | |||
1154 | /* get hash bucket it should go in */ | ||
1155 | hash = _eet_hash_gen(efn->name, ef->header->directory->size); | ||
1156 | efn->next = ef->header->directory->nodes[hash]; | ||
1157 | ef->header->directory->nodes[hash] = efn; | ||
1158 | |||
1159 | /* read-only mode, so currently we have no data loaded */ | ||
1160 | if (ef->mode == EET_FILE_MODE_READ) | ||
1161 | efn->data = NULL; /* read-write mode - read everything into ram */ | ||
1162 | else | ||
1163 | { | ||
1164 | data = malloc(efn->size); | ||
1165 | if (data) | ||
1166 | memcpy(data, ef->data + efn->offset, efn->size); | ||
1167 | |||
1168 | efn->data = data; | ||
1169 | } | ||
1170 | |||
1171 | /* advance */ | ||
1172 | p += HEADER_SIZE + name_size; | ||
1173 | } | ||
1174 | return ef; | ||
1175 | } | ||
1176 | |||
1177 | #endif /* if EET_OLD_EET_FILE_FORMAT */ | ||
1178 | |||
1179 | /* | ||
1180 | * this should only be called when the cache lock is already held | ||
1181 | * (We could drop this restriction if we add a parameter to eet_test_close | ||
1182 | * that indicates if the lock is held or not. For now it is easiest | ||
1183 | * to just require that it is always held.) | ||
1184 | */ | ||
1185 | static Eet_File * | ||
1186 | eet_internal_read(Eet_File *ef) | ||
1187 | { | ||
1188 | const int *data = (const int *)ef->data; | ||
1189 | |||
1190 | if (eet_test_close((ef->data == (void *)-1) || (!ef->data), ef)) | ||
1191 | return NULL; | ||
1192 | |||
1193 | if (eet_test_close(ef->data_size < (int)sizeof(int) * 3, ef)) | ||
1194 | return NULL; | ||
1195 | |||
1196 | switch (ntohl(*data)) | ||
1197 | { | ||
1198 | #if EET_OLD_EET_FILE_FORMAT | ||
1199 | case EET_MAGIC_FILE: | ||
1200 | return eet_internal_read1(ef); | ||
1201 | |||
1202 | #endif /* if EET_OLD_EET_FILE_FORMAT */ | ||
1203 | case EET_MAGIC_FILE2: | ||
1204 | return eet_internal_read2(ef); | ||
1205 | |||
1206 | default: | ||
1207 | ef->delete_me_now = 1; | ||
1208 | eet_internal_close(ef, EINA_TRUE); | ||
1209 | break; | ||
1210 | } | ||
1211 | |||
1212 | return NULL; | ||
1213 | } | ||
1214 | |||
1215 | static Eet_Error | ||
1216 | eet_internal_close(Eet_File *ef, | ||
1217 | Eina_Bool locked) | ||
1218 | { | ||
1219 | Eet_Error err; | ||
1220 | |||
1221 | /* check to see its' an eet file pointer */ | ||
1222 | if (eet_check_pointer(ef)) | ||
1223 | return EET_ERROR_BAD_OBJECT; | ||
1224 | |||
1225 | if (!locked) | ||
1226 | LOCK_CACHE; | ||
1227 | |||
1228 | /* deref */ | ||
1229 | ef->references--; | ||
1230 | /* if its still referenced - dont go any further */ | ||
1231 | if (ef->references > 0) | ||
1232 | { | ||
1233 | /* flush any writes */ | ||
1234 | if ((ef->mode == EET_FILE_MODE_WRITE) || | ||
1235 | (ef->mode == EET_FILE_MODE_READ_WRITE)) | ||
1236 | eet_sync(ef); | ||
1237 | goto on_error; | ||
1238 | } | ||
1239 | |||
1240 | err = eet_flush2(ef); | ||
1241 | |||
1242 | eet_identity_unref(ef->key); | ||
1243 | ef->key = NULL; | ||
1244 | |||
1245 | /* if not urgent to delete it - dont free it - leave it in cache */ | ||
1246 | if ((!ef->delete_me_now) && (ef->mode == EET_FILE_MODE_READ)) | ||
1247 | goto on_error; | ||
1248 | |||
1249 | /* remove from cache */ | ||
1250 | if (ef->mode == EET_FILE_MODE_READ) | ||
1251 | eet_cache_del(ef, &eet_readers, &eet_readers_num, &eet_readers_alloc); | ||
1252 | else if ((ef->mode == EET_FILE_MODE_WRITE) || | ||
1253 | (ef->mode == EET_FILE_MODE_READ_WRITE)) | ||
1254 | eet_cache_del(ef, &eet_writers, &eet_writers_num, &eet_writers_alloc); | ||
1255 | |||
1256 | /* we can unlock the cache now */ | ||
1257 | if (!locked) | ||
1258 | UNLOCK_CACHE; | ||
1259 | |||
1260 | DESTROY_FILE(ef); | ||
1261 | |||
1262 | /* free up data */ | ||
1263 | if (ef->header) | ||
1264 | { | ||
1265 | if (ef->header->directory) | ||
1266 | { | ||
1267 | if (ef->header->directory->nodes) | ||
1268 | { | ||
1269 | int i, num; | ||
1270 | |||
1271 | num = (1 << ef->header->directory->size); | ||
1272 | for (i = 0; i < num; i++) | ||
1273 | { | ||
1274 | Eet_File_Node *efn; | ||
1275 | |||
1276 | while ((efn = ef->header->directory->nodes[i])) | ||
1277 | { | ||
1278 | if (efn->data) | ||
1279 | free(efn->data); | ||
1280 | |||
1281 | ef->header->directory->nodes[i] = efn->next; | ||
1282 | |||
1283 | if (efn->free_name) | ||
1284 | free(efn->name); | ||
1285 | |||
1286 | eet_file_node_mp_free(efn); | ||
1287 | } | ||
1288 | } | ||
1289 | free(ef->header->directory->nodes); | ||
1290 | } | ||
1291 | |||
1292 | eet_file_directory_mp_free(ef->header->directory); | ||
1293 | } | ||
1294 | |||
1295 | eet_file_header_mp_free(ef->header); | ||
1296 | } | ||
1297 | |||
1298 | eet_dictionary_free(ef->ed); | ||
1299 | |||
1300 | if (ef->sha1) | ||
1301 | free(ef->sha1); | ||
1302 | |||
1303 | if (ef->readfp) | ||
1304 | { | ||
1305 | if (ef->data) | ||
1306 | eina_file_map_free(ef->readfp, (void *)ef->data); | ||
1307 | |||
1308 | eina_file_close(ef->readfp); | ||
1309 | } | ||
1310 | |||
1311 | /* zero out ram for struct - caution tactic against stale memory use */ | ||
1312 | memset(ef, 0, sizeof(Eet_File)); | ||
1313 | |||
1314 | /* free it */ | ||
1315 | eina_stringshare_del(ef->path); | ||
1316 | eet_file_mp_free(ef); | ||
1317 | return err; | ||
1318 | |||
1319 | on_error: | ||
1320 | if (!locked) | ||
1321 | UNLOCK_CACHE; | ||
1322 | |||
1323 | return EET_ERROR_NONE; | ||
1324 | } | ||
1325 | |||
1326 | EAPI Eet_File * | ||
1327 | eet_memopen_read(const void *data, | ||
1328 | size_t size) | ||
1329 | { | ||
1330 | Eet_File *ef; | ||
1331 | |||
1332 | if (!data || size == 0) | ||
1333 | return NULL; | ||
1334 | |||
1335 | ef = eet_file_malloc(1); | ||
1336 | if (!ef) | ||
1337 | return NULL; | ||
1338 | |||
1339 | INIT_FILE(ef); | ||
1340 | ef->ed = NULL; | ||
1341 | ef->path = NULL; | ||
1342 | ef->key = NULL; | ||
1343 | ef->magic = EET_MAGIC_FILE; | ||
1344 | ef->references = 1; | ||
1345 | ef->mode = EET_FILE_MODE_READ; | ||
1346 | ef->header = NULL; | ||
1347 | ef->delete_me_now = 1; | ||
1348 | ef->readfp = NULL; | ||
1349 | ef->data = data; | ||
1350 | ef->data_size = size; | ||
1351 | ef->sha1 = NULL; | ||
1352 | ef->sha1_length = 0; | ||
1353 | |||
1354 | /* eet_internal_read expects the cache lock to be held when it is called */ | ||
1355 | LOCK_CACHE; | ||
1356 | ef = eet_internal_read(ef); | ||
1357 | UNLOCK_CACHE; | ||
1358 | return ef; | ||
1359 | } | ||
1360 | |||
1361 | EAPI const char * | ||
1362 | eet_file_get(Eet_File *ef) | ||
1363 | { | ||
1364 | if (eet_check_pointer(ef)) return NULL; | ||
1365 | return ef->path; | ||
1366 | } | ||
1367 | |||
1368 | EAPI Eet_File * | ||
1369 | eet_open(const char *file, | ||
1370 | Eet_File_Mode mode) | ||
1371 | { | ||
1372 | Eina_File *fp; | ||
1373 | Eet_File *ef; | ||
1374 | int file_len; | ||
1375 | unsigned long int size; | ||
1376 | |||
1377 | if (!file) | ||
1378 | return NULL; | ||
1379 | |||
1380 | /* find the current file handle in cache*/ | ||
1381 | ef = NULL; | ||
1382 | LOCK_CACHE; | ||
1383 | if (mode == EET_FILE_MODE_READ) | ||
1384 | { | ||
1385 | ef = eet_cache_find((char *)file, eet_writers, eet_writers_num); | ||
1386 | if (ef) | ||
1387 | { | ||
1388 | eet_sync(ef); | ||
1389 | ef->references++; | ||
1390 | ef->delete_me_now = 1; | ||
1391 | eet_internal_close(ef, EINA_TRUE); | ||
1392 | } | ||
1393 | |||
1394 | ef = eet_cache_find((char *)file, eet_readers, eet_readers_num); | ||
1395 | } | ||
1396 | else if ((mode == EET_FILE_MODE_WRITE) || | ||
1397 | (mode == EET_FILE_MODE_READ_WRITE)) | ||
1398 | { | ||
1399 | ef = eet_cache_find((char *)file, eet_readers, eet_readers_num); | ||
1400 | if (ef) | ||
1401 | { | ||
1402 | ef->delete_me_now = 1; | ||
1403 | ef->references++; | ||
1404 | eet_internal_close(ef, EINA_TRUE); | ||
1405 | } | ||
1406 | |||
1407 | ef = eet_cache_find((char *)file, eet_writers, eet_writers_num); | ||
1408 | } | ||
1409 | |||
1410 | /* try open the file based on mode */ | ||
1411 | if ((mode == EET_FILE_MODE_READ) || (mode == EET_FILE_MODE_READ_WRITE)) | ||
1412 | { | ||
1413 | /* Prevent garbage in futur comparison. */ | ||
1414 | fp = eina_file_open(file, EINA_FALSE); | ||
1415 | if (!fp) | ||
1416 | goto open_error; | ||
1417 | |||
1418 | size = eina_file_size_get(fp); | ||
1419 | |||
1420 | if (size < ((int)sizeof(int) * 3)) | ||
1421 | { | ||
1422 | eina_file_close(fp); | ||
1423 | fp = NULL; | ||
1424 | |||
1425 | size = 0; | ||
1426 | |||
1427 | goto open_error; | ||
1428 | } | ||
1429 | |||
1430 | open_error: | ||
1431 | if (!fp && mode == EET_FILE_MODE_READ) | ||
1432 | goto on_error; | ||
1433 | } | ||
1434 | else | ||
1435 | { | ||
1436 | if (mode != EET_FILE_MODE_WRITE) | ||
1437 | return NULL; | ||
1438 | |||
1439 | size = 0; | ||
1440 | |||
1441 | fp = NULL; | ||
1442 | } | ||
1443 | |||
1444 | /* We found one */ | ||
1445 | if (ef && ef->readfp != fp) | ||
1446 | { | ||
1447 | ef->delete_me_now = 1; | ||
1448 | ef->references++; | ||
1449 | eet_internal_close(ef, EINA_TRUE); | ||
1450 | ef = NULL; | ||
1451 | } | ||
1452 | |||
1453 | if (ef) | ||
1454 | { | ||
1455 | /* reference it up and return it */ | ||
1456 | if (fp) | ||
1457 | eina_file_close(fp); | ||
1458 | |||
1459 | ef->references++; | ||
1460 | UNLOCK_CACHE; | ||
1461 | return ef; | ||
1462 | } | ||
1463 | |||
1464 | file_len = strlen(file) + 1; | ||
1465 | |||
1466 | /* Allocate struct for eet file and have it zero'd out */ | ||
1467 | ef = eet_file_malloc(1); | ||
1468 | if (!ef) | ||
1469 | goto on_error; | ||
1470 | |||
1471 | /* fill some of the members */ | ||
1472 | INIT_FILE(ef); | ||
1473 | ef->key = NULL; | ||
1474 | ef->readfp = fp; | ||
1475 | ef->path = eina_stringshare_add_length(file, file_len); | ||
1476 | ef->magic = EET_MAGIC_FILE; | ||
1477 | ef->references = 1; | ||
1478 | ef->mode = mode; | ||
1479 | ef->header = NULL; | ||
1480 | ef->writes_pending = 0; | ||
1481 | ef->delete_me_now = 0; | ||
1482 | ef->data = NULL; | ||
1483 | ef->data_size = 0; | ||
1484 | ef->sha1 = NULL; | ||
1485 | ef->sha1_length = 0; | ||
1486 | |||
1487 | ef->ed = (mode == EET_FILE_MODE_WRITE) | ||
1488 | || (!ef->readfp && mode == EET_FILE_MODE_READ_WRITE) ? | ||
1489 | eet_dictionary_add() : NULL; | ||
1490 | |||
1491 | if (!ef->readfp && | ||
1492 | (mode == EET_FILE_MODE_READ_WRITE || mode == EET_FILE_MODE_WRITE)) | ||
1493 | goto empty_file; | ||
1494 | |||
1495 | /* if we can't open - bail out */ | ||
1496 | if (eet_test_close(!ef->readfp, ef)) | ||
1497 | goto on_error; | ||
1498 | |||
1499 | /* if we opened for read or read-write */ | ||
1500 | if ((mode == EET_FILE_MODE_READ) || (mode == EET_FILE_MODE_READ_WRITE)) | ||
1501 | { | ||
1502 | ef->data_size = size; | ||
1503 | ef->data = eina_file_map_all(fp, EINA_FILE_SEQUENTIAL); | ||
1504 | if (eet_test_close((ef->data == NULL), ef)) | ||
1505 | goto on_error; | ||
1506 | |||
1507 | ef = eet_internal_read(ef); | ||
1508 | if (!ef) | ||
1509 | goto on_error; | ||
1510 | } | ||
1511 | |||
1512 | empty_file: | ||
1513 | /* add to cache */ | ||
1514 | if (ef->references == 1) | ||
1515 | { | ||
1516 | if (ef->mode == EET_FILE_MODE_READ) | ||
1517 | eet_cache_add(ef, &eet_readers, &eet_readers_num, &eet_readers_alloc); | ||
1518 | else if ((ef->mode == EET_FILE_MODE_WRITE) || | ||
1519 | (ef->mode == EET_FILE_MODE_READ_WRITE)) | ||
1520 | eet_cache_add(ef, &eet_writers, &eet_writers_num, &eet_writers_alloc); | ||
1521 | } | ||
1522 | |||
1523 | UNLOCK_CACHE; | ||
1524 | return ef; | ||
1525 | |||
1526 | on_error: | ||
1527 | UNLOCK_CACHE; | ||
1528 | return NULL; | ||
1529 | } | ||
1530 | |||
1531 | EAPI Eet_File_Mode | ||
1532 | eet_mode_get(Eet_File *ef) | ||
1533 | { | ||
1534 | /* check to see its' an eet file pointer */ | ||
1535 | if ((!ef) || (ef->magic != EET_MAGIC_FILE)) | ||
1536 | return EET_FILE_MODE_INVALID; | ||
1537 | else | ||
1538 | return ef->mode; | ||
1539 | } | ||
1540 | |||
1541 | EAPI const void * | ||
1542 | eet_identity_x509(Eet_File *ef, | ||
1543 | int *der_length) | ||
1544 | { | ||
1545 | if (!ef->x509_der) | ||
1546 | return NULL; | ||
1547 | |||
1548 | if (der_length) | ||
1549 | *der_length = ef->x509_length; | ||
1550 | |||
1551 | return ef->x509_der; | ||
1552 | } | ||
1553 | |||
1554 | EAPI const void * | ||
1555 | eet_identity_signature(Eet_File *ef, | ||
1556 | int *signature_length) | ||
1557 | { | ||
1558 | if (!ef->signature) | ||
1559 | return NULL; | ||
1560 | |||
1561 | if (signature_length) | ||
1562 | *signature_length = ef->signature_length; | ||
1563 | |||
1564 | return ef->signature; | ||
1565 | } | ||
1566 | |||
1567 | EAPI const void * | ||
1568 | eet_identity_sha1(Eet_File *ef, | ||
1569 | int *sha1_length) | ||
1570 | { | ||
1571 | if (!ef->sha1) | ||
1572 | ef->sha1 = eet_identity_compute_sha1(ef->data, | ||
1573 | ef->data_size, | ||
1574 | &ef->sha1_length); | ||
1575 | |||
1576 | if (sha1_length) | ||
1577 | *sha1_length = ef->sha1_length; | ||
1578 | |||
1579 | return ef->sha1; | ||
1580 | } | ||
1581 | |||
1582 | EAPI Eet_Error | ||
1583 | eet_identity_set(Eet_File *ef, | ||
1584 | Eet_Key *key) | ||
1585 | { | ||
1586 | Eet_Key *tmp; | ||
1587 | |||
1588 | if (!ef) | ||
1589 | return EET_ERROR_BAD_OBJECT; | ||
1590 | |||
1591 | tmp = ef->key; | ||
1592 | ef->key = key; | ||
1593 | eet_identity_ref(ef->key); | ||
1594 | eet_identity_unref(tmp); | ||
1595 | |||
1596 | /* flags that writes are pending */ | ||
1597 | ef->writes_pending = 1; | ||
1598 | |||
1599 | return EET_ERROR_NONE; | ||
1600 | } | ||
1601 | |||
1602 | EAPI Eet_Error | ||
1603 | eet_close(Eet_File *ef) | ||
1604 | { | ||
1605 | return eet_internal_close(ef, EINA_FALSE); | ||
1606 | } | ||
1607 | |||
1608 | EAPI void * | ||
1609 | eet_read_cipher(Eet_File *ef, | ||
1610 | const char *name, | ||
1611 | int *size_ret, | ||
1612 | const char *cipher_key) | ||
1613 | { | ||
1614 | Eet_File_Node *efn; | ||
1615 | char *data = NULL; | ||
1616 | unsigned long int size = 0; | ||
1617 | |||
1618 | if (size_ret) | ||
1619 | *size_ret = 0; | ||
1620 | |||
1621 | /* check to see its' an eet file pointer */ | ||
1622 | if (eet_check_pointer(ef)) | ||
1623 | return NULL; | ||
1624 | |||
1625 | if (!name) | ||
1626 | return NULL; | ||
1627 | |||
1628 | if ((ef->mode != EET_FILE_MODE_READ) && | ||
1629 | (ef->mode != EET_FILE_MODE_READ_WRITE)) | ||
1630 | return NULL; | ||
1631 | |||
1632 | /* no header, return NULL */ | ||
1633 | if (eet_check_header(ef)) | ||
1634 | return NULL; | ||
1635 | |||
1636 | LOCK_FILE(ef); | ||
1637 | |||
1638 | /* hunt hash bucket */ | ||
1639 | efn = find_node_by_name(ef, name); | ||
1640 | if (!efn) | ||
1641 | goto on_error; | ||
1642 | |||
1643 | /* get size (uncompressed, if compressed at all) */ | ||
1644 | size = efn->data_size; | ||
1645 | |||
1646 | /* allocate data */ | ||
1647 | data = malloc(size); | ||
1648 | if (!data) | ||
1649 | goto on_error; | ||
1650 | |||
1651 | /* uncompressed data */ | ||
1652 | if (efn->compression == 0) | ||
1653 | { | ||
1654 | void *data_deciphered = NULL; | ||
1655 | unsigned int data_deciphered_sz = 0; | ||
1656 | /* if we already have the data in ram... copy that */ | ||
1657 | |||
1658 | if (efn->ciphered && efn->size > size) | ||
1659 | { | ||
1660 | size = efn->size; | ||
1661 | data = realloc(data, efn->size); | ||
1662 | } | ||
1663 | |||
1664 | if (efn->data) | ||
1665 | memcpy(data, efn->data, size); | ||
1666 | else | ||
1667 | if (!read_data_from_disk(ef, efn, data, size)) | ||
1668 | goto on_error; | ||
1669 | |||
1670 | if (efn->ciphered && cipher_key) | ||
1671 | { | ||
1672 | if (eet_decipher(data, efn->size, cipher_key, strlen(cipher_key), | ||
1673 | &data_deciphered, &data_deciphered_sz)) | ||
1674 | { | ||
1675 | if (data_deciphered) | ||
1676 | free(data_deciphered); | ||
1677 | |||
1678 | goto on_error; | ||
1679 | } | ||
1680 | |||
1681 | free(data); | ||
1682 | data = data_deciphered; | ||
1683 | size = data_deciphered_sz; | ||
1684 | } | ||
1685 | } | ||
1686 | /* compressed data */ | ||
1687 | else | ||
1688 | { | ||
1689 | void *tmp_data = NULL; | ||
1690 | void *data_deciphered = NULL; | ||
1691 | unsigned int data_deciphered_sz = 0; | ||
1692 | int free_tmp = 0; | ||
1693 | int compr_size = efn->size; | ||
1694 | uLongf dlen; | ||
1695 | |||
1696 | /* if we already have the data in ram... copy that */ | ||
1697 | if (efn->data) | ||
1698 | tmp_data = efn->data; | ||
1699 | else | ||
1700 | { | ||
1701 | tmp_data = malloc(compr_size); | ||
1702 | if (!tmp_data) | ||
1703 | goto on_error; | ||
1704 | |||
1705 | free_tmp = 1; | ||
1706 | |||
1707 | if (!read_data_from_disk(ef, efn, tmp_data, compr_size)) | ||
1708 | { | ||
1709 | free(tmp_data); | ||
1710 | goto on_error; | ||
1711 | } | ||
1712 | } | ||
1713 | |||
1714 | if (efn->ciphered && cipher_key) | ||
1715 | { | ||
1716 | if (eet_decipher(tmp_data, compr_size, cipher_key, | ||
1717 | strlen(cipher_key), &data_deciphered, | ||
1718 | &data_deciphered_sz)) | ||
1719 | { | ||
1720 | if (free_tmp) | ||
1721 | free(tmp_data); | ||
1722 | |||
1723 | if (data_deciphered) | ||
1724 | free(data_deciphered); | ||
1725 | |||
1726 | goto on_error; | ||
1727 | } | ||
1728 | |||
1729 | if (free_tmp) | ||
1730 | free(tmp_data); | ||
1731 | free_tmp = 1; | ||
1732 | tmp_data = data_deciphered; | ||
1733 | compr_size = data_deciphered_sz; | ||
1734 | } | ||
1735 | |||
1736 | /* decompress it */ | ||
1737 | dlen = size; | ||
1738 | if (uncompress((Bytef *)data, &dlen, | ||
1739 | tmp_data, (uLongf)compr_size)) | ||
1740 | { | ||
1741 | if (free_tmp) | ||
1742 | free(tmp_data); | ||
1743 | goto on_error; | ||
1744 | } | ||
1745 | |||
1746 | if (free_tmp) | ||
1747 | free(tmp_data); | ||
1748 | } | ||
1749 | |||
1750 | UNLOCK_FILE(ef); | ||
1751 | |||
1752 | /* handle alias */ | ||
1753 | if (efn->alias) | ||
1754 | { | ||
1755 | void *tmp; | ||
1756 | |||
1757 | if (data[size - 1] != '\0') | ||
1758 | goto on_error; | ||
1759 | |||
1760 | tmp = eet_read_cipher(ef, data, size_ret, cipher_key); | ||
1761 | |||
1762 | free(data); | ||
1763 | |||
1764 | data = tmp; | ||
1765 | } | ||
1766 | else | ||
1767 | /* fill in return values */ | ||
1768 | if (size_ret) | ||
1769 | *size_ret = size; | ||
1770 | |||
1771 | return data; | ||
1772 | |||
1773 | on_error: | ||
1774 | UNLOCK_FILE(ef); | ||
1775 | free(data); | ||
1776 | return NULL; | ||
1777 | } | ||
1778 | |||
1779 | EAPI void * | ||
1780 | eet_read(Eet_File *ef, | ||
1781 | const char *name, | ||
1782 | int *size_ret) | ||
1783 | { | ||
1784 | return eet_read_cipher(ef, name, size_ret, NULL); | ||
1785 | } | ||
1786 | |||
1787 | EAPI const void * | ||
1788 | eet_read_direct(Eet_File *ef, | ||
1789 | const char *name, | ||
1790 | int *size_ret) | ||
1791 | { | ||
1792 | Eet_File_Node *efn; | ||
1793 | const char *data = NULL; | ||
1794 | int size = 0; | ||
1795 | |||
1796 | if (size_ret) | ||
1797 | *size_ret = 0; | ||
1798 | |||
1799 | /* check to see its' an eet file pointer */ | ||
1800 | if (eet_check_pointer(ef)) | ||
1801 | return NULL; | ||
1802 | |||
1803 | if (!name) | ||
1804 | return NULL; | ||
1805 | |||
1806 | if ((ef->mode != EET_FILE_MODE_READ) && | ||
1807 | (ef->mode != EET_FILE_MODE_READ_WRITE)) | ||
1808 | return NULL; | ||
1809 | |||
1810 | /* no header, return NULL */ | ||
1811 | if (eet_check_header(ef)) | ||
1812 | return NULL; | ||
1813 | |||
1814 | LOCK_FILE(ef); | ||
1815 | |||
1816 | /* hunt hash bucket */ | ||
1817 | efn = find_node_by_name(ef, name); | ||
1818 | if (!efn) | ||
1819 | goto on_error; | ||
1820 | |||
1821 | /* trick to detect data in memory instead of mmaped from disk */ | ||
1822 | if (efn->offset > ef->data_size && !efn->data) | ||
1823 | goto on_error; | ||
1824 | |||
1825 | /* get size (uncompressed, if compressed at all) */ | ||
1826 | size = efn->data_size; | ||
1827 | |||
1828 | if (efn->alias) | ||
1829 | { | ||
1830 | data = efn->data ? efn->data : ef->data + efn->offset; | ||
1831 | |||
1832 | /* handle alias case */ | ||
1833 | if (efn->compression) | ||
1834 | { | ||
1835 | char *tmp; | ||
1836 | int compr_size = efn->size; | ||
1837 | uLongf dlen; | ||
1838 | |||
1839 | tmp = alloca(sizeof (compr_size)); | ||
1840 | dlen = size; | ||
1841 | |||
1842 | if (uncompress((Bytef *)tmp, &dlen, (Bytef *)data, | ||
1843 | (uLongf)compr_size)) | ||
1844 | goto on_error; | ||
1845 | |||
1846 | if (tmp[compr_size - 1] != '\0') | ||
1847 | goto on_error; | ||
1848 | |||
1849 | UNLOCK_FILE(ef); | ||
1850 | |||
1851 | return eet_read_direct(ef, tmp, size_ret); | ||
1852 | } | ||
1853 | |||
1854 | if (!data) | ||
1855 | goto on_error; | ||
1856 | |||
1857 | if (data[size - 1] != '\0') | ||
1858 | goto on_error; | ||
1859 | |||
1860 | UNLOCK_FILE(ef); | ||
1861 | |||
1862 | return eet_read_direct(ef, data, size_ret); | ||
1863 | } | ||
1864 | else | ||
1865 | /* uncompressed data */ | ||
1866 | if (efn->compression == 0 | ||
1867 | && efn->ciphered == 0) | ||
1868 | data = efn->data ? efn->data : ef->data + efn->offset; /* compressed data */ | ||
1869 | else | ||
1870 | data = NULL; | ||
1871 | |||
1872 | /* fill in return values */ | ||
1873 | if (size_ret) | ||
1874 | *size_ret = size; | ||
1875 | |||
1876 | UNLOCK_FILE(ef); | ||
1877 | |||
1878 | return data; | ||
1879 | |||
1880 | on_error: | ||
1881 | UNLOCK_FILE(ef); | ||
1882 | return NULL; | ||
1883 | } | ||
1884 | |||
1885 | EAPI const char * | ||
1886 | eet_alias_get(Eet_File *ef, | ||
1887 | const char *name) | ||
1888 | { | ||
1889 | Eet_File_Node *efn; | ||
1890 | const char *data = NULL; | ||
1891 | int size = 0; | ||
1892 | |||
1893 | /* check to see its' an eet file pointer */ | ||
1894 | if (eet_check_pointer(ef)) | ||
1895 | return NULL; | ||
1896 | |||
1897 | if (!name) | ||
1898 | return NULL; | ||
1899 | |||
1900 | if ((ef->mode != EET_FILE_MODE_READ) && | ||
1901 | (ef->mode != EET_FILE_MODE_READ_WRITE)) | ||
1902 | return NULL; | ||
1903 | |||
1904 | /* no header, return NULL */ | ||
1905 | if (eet_check_header(ef)) | ||
1906 | return NULL; | ||
1907 | |||
1908 | LOCK_FILE(ef); | ||
1909 | |||
1910 | /* hunt hash bucket */ | ||
1911 | efn = find_node_by_name(ef, name); | ||
1912 | if (!efn) | ||
1913 | goto on_error; | ||
1914 | |||
1915 | /* trick to detect data in memory instead of mmaped from disk */ | ||
1916 | if (efn->offset > ef->data_size && !efn->data) | ||
1917 | goto on_error; | ||
1918 | |||
1919 | /* get size (uncompressed, if compressed at all) */ | ||
1920 | size = efn->data_size; | ||
1921 | |||
1922 | if (!efn->alias) return NULL; | ||
1923 | data = efn->data ? efn->data : ef->data + efn->offset; | ||
1924 | |||
1925 | /* handle alias case */ | ||
1926 | if (efn->compression) | ||
1927 | { | ||
1928 | char *tmp; | ||
1929 | int compr_size = efn->size; | ||
1930 | uLongf dlen; | ||
1931 | |||
1932 | tmp = alloca(sizeof (compr_size)); | ||
1933 | dlen = size; | ||
1934 | |||
1935 | if (uncompress((Bytef *)tmp, &dlen, (Bytef *)data, | ||
1936 | (uLongf)compr_size)) | ||
1937 | goto on_error; | ||
1938 | |||
1939 | if (tmp[compr_size - 1] != '\0') | ||
1940 | goto on_error; | ||
1941 | |||
1942 | UNLOCK_FILE(ef); | ||
1943 | |||
1944 | return eina_stringshare_add(tmp); | ||
1945 | } | ||
1946 | |||
1947 | if (!data) | ||
1948 | goto on_error; | ||
1949 | |||
1950 | if (data[size - 1] != '\0') | ||
1951 | goto on_error; | ||
1952 | |||
1953 | UNLOCK_FILE(ef); | ||
1954 | |||
1955 | return eina_stringshare_add(data); | ||
1956 | |||
1957 | on_error: | ||
1958 | UNLOCK_FILE(ef); | ||
1959 | return NULL; | ||
1960 | } | ||
1961 | |||
1962 | EAPI Eina_Bool | ||
1963 | eet_alias(Eet_File *ef, | ||
1964 | const char *name, | ||
1965 | const char *destination, | ||
1966 | int comp) | ||
1967 | { | ||
1968 | Eet_File_Node *efn; | ||
1969 | void *data2; | ||
1970 | Eina_Bool exists_already = EINA_FALSE; | ||
1971 | int data_size; | ||
1972 | int hash; | ||
1973 | |||
1974 | /* check to see its' an eet file pointer */ | ||
1975 | if (eet_check_pointer(ef)) | ||
1976 | return EINA_FALSE; | ||
1977 | |||
1978 | if ((!name) || (!destination)) | ||
1979 | return EINA_FALSE; | ||
1980 | |||
1981 | if ((ef->mode != EET_FILE_MODE_WRITE) && | ||
1982 | (ef->mode != EET_FILE_MODE_READ_WRITE)) | ||
1983 | return EINA_FALSE; | ||
1984 | |||
1985 | LOCK_FILE(ef); | ||
1986 | |||
1987 | if (!ef->header) | ||
1988 | { | ||
1989 | /* allocate header */ | ||
1990 | ef->header = eet_file_header_calloc(1); | ||
1991 | if (!ef->header) | ||
1992 | goto on_error; | ||
1993 | |||
1994 | ef->header->magic = EET_MAGIC_FILE_HEADER; | ||
1995 | /* allocate directory block in ram */ | ||
1996 | ef->header->directory = eet_file_directory_calloc(1); | ||
1997 | if (!ef->header->directory) | ||
1998 | { | ||
1999 | eet_file_header_mp_free(ef->header); | ||
2000 | ef->header = NULL; | ||
2001 | goto on_error; | ||
2002 | } | ||
2003 | |||
2004 | /* 8 bit hash table (256 buckets) */ | ||
2005 | ef->header->directory->size = 8; | ||
2006 | /* allocate base hash table */ | ||
2007 | ef->header->directory->nodes = | ||
2008 | calloc(1, sizeof(Eet_File_Node *) * | ||
2009 | (1 << ef->header->directory->size)); | ||
2010 | if (!ef->header->directory->nodes) | ||
2011 | { | ||
2012 | eet_file_directory_mp_free(ef->header->directory); | ||
2013 | ef->header = NULL; | ||
2014 | goto on_error; | ||
2015 | } | ||
2016 | } | ||
2017 | |||
2018 | /* figure hash bucket */ | ||
2019 | hash = _eet_hash_gen(name, ef->header->directory->size); | ||
2020 | |||
2021 | data_size = comp ? | ||
2022 | 12 + (((strlen(destination) + 1) * 101) / 100) | ||
2023 | : strlen(destination) + 1; | ||
2024 | |||
2025 | data2 = malloc(data_size); | ||
2026 | if (!data2) | ||
2027 | goto on_error; | ||
2028 | |||
2029 | /* if we want to compress */ | ||
2030 | if (comp) | ||
2031 | { | ||
2032 | uLongf buflen; | ||
2033 | |||
2034 | /* compress the data with max compression */ | ||
2035 | buflen = (uLongf)data_size; | ||
2036 | if (compress2((Bytef *)data2, &buflen, (Bytef *)destination, | ||
2037 | (uLong)strlen(destination) + 1, | ||
2038 | Z_BEST_COMPRESSION) != Z_OK) | ||
2039 | { | ||
2040 | free(data2); | ||
2041 | goto on_error; | ||
2042 | } | ||
2043 | |||
2044 | /* record compressed chunk size */ | ||
2045 | data_size = (int)buflen; | ||
2046 | if (data_size < 0 || data_size >= (int)(strlen(destination) + 1)) | ||
2047 | { | ||
2048 | comp = 0; | ||
2049 | data_size = strlen(destination) + 1; | ||
2050 | } | ||
2051 | else | ||
2052 | { | ||
2053 | void *data3; | ||
2054 | |||
2055 | data3 = realloc(data2, data_size); | ||
2056 | if (data3) | ||
2057 | data2 = data3; | ||
2058 | } | ||
2059 | } | ||
2060 | |||
2061 | if (!comp) | ||
2062 | memcpy(data2, destination, data_size); | ||
2063 | |||
2064 | /* Does this node already exist? */ | ||
2065 | for (efn = ef->header->directory->nodes[hash]; efn; efn = efn->next) | ||
2066 | { | ||
2067 | /* if it matches */ | ||
2068 | if ((efn->name) && (eet_string_match(efn->name, name))) | ||
2069 | { | ||
2070 | free(efn->data); | ||
2071 | efn->alias = 1; | ||
2072 | efn->ciphered = 0; | ||
2073 | efn->compression = !!comp; | ||
2074 | efn->size = data_size; | ||
2075 | efn->data_size = strlen(destination) + 1; | ||
2076 | efn->data = data2; | ||
2077 | /* Put the offset above the limit to avoid direct access */ | ||
2078 | efn->offset = ef->data_size + 1; | ||
2079 | exists_already = EINA_TRUE; | ||
2080 | |||
2081 | break; | ||
2082 | } | ||
2083 | } | ||
2084 | if (!exists_already) | ||
2085 | { | ||
2086 | efn = eet_file_node_malloc(1); | ||
2087 | if (!efn) | ||
2088 | { | ||
2089 | free(data2); | ||
2090 | goto on_error; | ||
2091 | } | ||
2092 | |||
2093 | efn->name = strdup(name); | ||
2094 | efn->name_size = strlen(efn->name) + 1; | ||
2095 | efn->free_name = 1; | ||
2096 | |||
2097 | efn->next = ef->header->directory->nodes[hash]; | ||
2098 | ef->header->directory->nodes[hash] = efn; | ||
2099 | /* Put the offset above the limit to avoid direct access */ | ||
2100 | efn->offset = ef->data_size + 1; | ||
2101 | efn->alias = 1; | ||
2102 | efn->ciphered = 0; | ||
2103 | efn->compression = !!comp; | ||
2104 | efn->size = data_size; | ||
2105 | efn->data_size = strlen(destination) + 1; | ||
2106 | efn->data = data2; | ||
2107 | } | ||
2108 | |||
2109 | /* flags that writes are pending */ | ||
2110 | ef->writes_pending = 1; | ||
2111 | |||
2112 | UNLOCK_FILE(ef); | ||
2113 | return EINA_TRUE; | ||
2114 | |||
2115 | on_error: | ||
2116 | UNLOCK_FILE(ef); | ||
2117 | return EINA_FALSE; | ||
2118 | } | ||
2119 | |||
2120 | EAPI int | ||
2121 | eet_write_cipher(Eet_File *ef, | ||
2122 | const char *name, | ||
2123 | const void *data, | ||
2124 | int size, | ||
2125 | int comp, | ||
2126 | const char *cipher_key) | ||
2127 | { | ||
2128 | Eet_File_Node *efn; | ||
2129 | void *data2 = NULL; | ||
2130 | int exists_already = 0; | ||
2131 | int data_size; | ||
2132 | int hash; | ||
2133 | |||
2134 | /* check to see its' an eet file pointer */ | ||
2135 | if (eet_check_pointer(ef)) | ||
2136 | return 0; | ||
2137 | |||
2138 | if ((!name) || (!data) || (size <= 0)) | ||
2139 | return 0; | ||
2140 | |||
2141 | if ((ef->mode != EET_FILE_MODE_WRITE) && | ||
2142 | (ef->mode != EET_FILE_MODE_READ_WRITE)) | ||
2143 | return 0; | ||
2144 | |||
2145 | LOCK_FILE(ef); | ||
2146 | |||
2147 | if (!ef->header) | ||
2148 | { | ||
2149 | /* allocate header */ | ||
2150 | ef->header = eet_file_header_calloc(1); | ||
2151 | if (!ef->header) | ||
2152 | goto on_error; | ||
2153 | |||
2154 | ef->header->magic = EET_MAGIC_FILE_HEADER; | ||
2155 | /* allocate directory block in ram */ | ||
2156 | ef->header->directory = eet_file_directory_calloc(1); | ||
2157 | if (!ef->header->directory) | ||
2158 | { | ||
2159 | eet_file_header_mp_free(ef->header); | ||
2160 | ef->header = NULL; | ||
2161 | goto on_error; | ||
2162 | } | ||
2163 | |||
2164 | /* 8 bit hash table (256 buckets) */ | ||
2165 | ef->header->directory->size = 8; | ||
2166 | /* allocate base hash table */ | ||
2167 | ef->header->directory->nodes = | ||
2168 | calloc(1, sizeof(Eet_File_Node *) * | ||
2169 | (1 << ef->header->directory->size)); | ||
2170 | if (!ef->header->directory->nodes) | ||
2171 | { | ||
2172 | eet_file_directory_mp_free(ef->header->directory); | ||
2173 | ef->header = NULL; | ||
2174 | goto on_error; | ||
2175 | } | ||
2176 | } | ||
2177 | |||
2178 | /* figure hash bucket */ | ||
2179 | hash = _eet_hash_gen(name, ef->header->directory->size); | ||
2180 | |||
2181 | data_size = comp ? 12 + ((size * 101) / 100) : size; | ||
2182 | |||
2183 | if (comp || !cipher_key) | ||
2184 | { | ||
2185 | data2 = malloc(data_size); | ||
2186 | if (!data2) | ||
2187 | goto on_error; | ||
2188 | } | ||
2189 | |||
2190 | /* if we want to compress */ | ||
2191 | if (comp) | ||
2192 | { | ||
2193 | uLongf buflen; | ||
2194 | |||
2195 | /* compress the data with max compression */ | ||
2196 | buflen = (uLongf)data_size; | ||
2197 | if (compress2((Bytef *)data2, &buflen, (Bytef *)data, | ||
2198 | (uLong)size, Z_BEST_COMPRESSION) != Z_OK) | ||
2199 | { | ||
2200 | free(data2); | ||
2201 | goto on_error; | ||
2202 | } | ||
2203 | |||
2204 | /* record compressed chunk size */ | ||
2205 | data_size = (int)buflen; | ||
2206 | if (data_size < 0 || data_size >= size) | ||
2207 | { | ||
2208 | comp = 0; | ||
2209 | data_size = size; | ||
2210 | } | ||
2211 | else | ||
2212 | { | ||
2213 | void *data3; | ||
2214 | |||
2215 | data3 = realloc(data2, data_size); | ||
2216 | if (data3) | ||
2217 | data2 = data3; | ||
2218 | } | ||
2219 | } | ||
2220 | |||
2221 | if (cipher_key) | ||
2222 | { | ||
2223 | void *data_ciphered = NULL; | ||
2224 | unsigned int data_ciphered_sz = 0; | ||
2225 | const void *tmp; | ||
2226 | |||
2227 | tmp = comp ? data2 : data; | ||
2228 | if (!eet_cipher(tmp, data_size, cipher_key, strlen(cipher_key), | ||
2229 | &data_ciphered, &data_ciphered_sz)) | ||
2230 | { | ||
2231 | if (data2) | ||
2232 | free(data2); | ||
2233 | |||
2234 | data2 = data_ciphered; | ||
2235 | data_size = data_ciphered_sz; | ||
2236 | } | ||
2237 | else | ||
2238 | { | ||
2239 | if (data_ciphered) | ||
2240 | free(data_ciphered); | ||
2241 | |||
2242 | cipher_key = NULL; | ||
2243 | } | ||
2244 | } | ||
2245 | else | ||
2246 | if (!comp) | ||
2247 | memcpy(data2, data, size); | ||
2248 | |||
2249 | /* Does this node already exist? */ | ||
2250 | for (efn = ef->header->directory->nodes[hash]; efn; efn = efn->next) | ||
2251 | { | ||
2252 | /* if it matches */ | ||
2253 | if ((efn->name) && (eet_string_match(efn->name, name))) | ||
2254 | { | ||
2255 | free(efn->data); | ||
2256 | efn->alias = 0; | ||
2257 | efn->ciphered = cipher_key ? 1 : 0; | ||
2258 | efn->compression = !!comp; | ||
2259 | efn->size = data_size; | ||
2260 | efn->data_size = size; | ||
2261 | efn->data = data2; | ||
2262 | /* Put the offset above the limit to avoid direct access */ | ||
2263 | efn->offset = ef->data_size + 1; | ||
2264 | exists_already = 1; | ||
2265 | break; | ||
2266 | } | ||
2267 | } | ||
2268 | if (!exists_already) | ||
2269 | { | ||
2270 | efn = eet_file_node_malloc(1); | ||
2271 | if (!efn) | ||
2272 | { | ||
2273 | free(data2); | ||
2274 | goto on_error; | ||
2275 | } | ||
2276 | |||
2277 | efn->name = strdup(name); | ||
2278 | efn->name_size = strlen(efn->name) + 1; | ||
2279 | efn->free_name = 1; | ||
2280 | |||
2281 | efn->next = ef->header->directory->nodes[hash]; | ||
2282 | ef->header->directory->nodes[hash] = efn; | ||
2283 | /* Put the offset above the limit to avoid direct access */ | ||
2284 | efn->offset = ef->data_size + 1; | ||
2285 | efn->alias = 0; | ||
2286 | efn->ciphered = cipher_key ? 1 : 0; | ||
2287 | efn->compression = !!comp; | ||
2288 | efn->size = data_size; | ||
2289 | efn->data_size = size; | ||
2290 | efn->data = data2; | ||
2291 | } | ||
2292 | |||
2293 | /* flags that writes are pending */ | ||
2294 | ef->writes_pending = 1; | ||
2295 | UNLOCK_FILE(ef); | ||
2296 | return data_size; | ||
2297 | |||
2298 | on_error: | ||
2299 | UNLOCK_FILE(ef); | ||
2300 | return 0; | ||
2301 | } | ||
2302 | |||
2303 | EAPI int | ||
2304 | eet_write(Eet_File *ef, | ||
2305 | const char *name, | ||
2306 | const void *data, | ||
2307 | int size, | ||
2308 | int comp) | ||
2309 | { | ||
2310 | return eet_write_cipher(ef, name, data, size, comp, NULL); | ||
2311 | } | ||
2312 | |||
2313 | EAPI int | ||
2314 | eet_delete(Eet_File *ef, | ||
2315 | const char *name) | ||
2316 | { | ||
2317 | Eet_File_Node *efn; | ||
2318 | Eet_File_Node *pefn; | ||
2319 | int hash; | ||
2320 | int exists_already = 0; | ||
2321 | |||
2322 | /* check to see its' an eet file pointer */ | ||
2323 | if (eet_check_pointer(ef)) | ||
2324 | return 0; | ||
2325 | |||
2326 | if (!name) | ||
2327 | return 0; | ||
2328 | |||
2329 | /* deleting keys is only possible in RW or WRITE mode */ | ||
2330 | if (ef->mode == EET_FILE_MODE_READ) | ||
2331 | return 0; | ||
2332 | |||
2333 | if (eet_check_header(ef)) | ||
2334 | return 0; | ||
2335 | |||
2336 | LOCK_FILE(ef); | ||
2337 | |||
2338 | /* figure hash bucket */ | ||
2339 | hash = _eet_hash_gen(name, ef->header->directory->size); | ||
2340 | |||
2341 | /* Does this node already exist? */ | ||
2342 | for (pefn = NULL, efn = ef->header->directory->nodes[hash]; | ||
2343 | efn; | ||
2344 | pefn = efn, efn = efn->next) | ||
2345 | { | ||
2346 | /* if it matches */ | ||
2347 | if (eet_string_match(efn->name, name)) | ||
2348 | { | ||
2349 | if (efn->data) | ||
2350 | free(efn->data); | ||
2351 | |||
2352 | if (!pefn) | ||
2353 | ef->header->directory->nodes[hash] = efn->next; | ||
2354 | else | ||
2355 | pefn->next = efn->next; | ||
2356 | |||
2357 | if (efn->free_name) | ||
2358 | free(efn->name); | ||
2359 | |||
2360 | eet_file_node_mp_free(efn); | ||
2361 | exists_already = 1; | ||
2362 | break; | ||
2363 | } | ||
2364 | } | ||
2365 | /* flags that writes are pending */ | ||
2366 | if (exists_already) | ||
2367 | ef->writes_pending = 1; | ||
2368 | |||
2369 | UNLOCK_FILE(ef); | ||
2370 | |||
2371 | /* update access time */ | ||
2372 | return exists_already; | ||
2373 | } | ||
2374 | |||
2375 | EAPI Eet_Dictionary * | ||
2376 | eet_dictionary_get(Eet_File *ef) | ||
2377 | { | ||
2378 | if (eet_check_pointer(ef)) | ||
2379 | return NULL; | ||
2380 | |||
2381 | return ef->ed; | ||
2382 | } | ||
2383 | |||
2384 | EAPI char ** | ||
2385 | eet_list(Eet_File *ef, | ||
2386 | const char *glob, | ||
2387 | int *count_ret) | ||
2388 | { | ||
2389 | Eet_File_Node *efn; | ||
2390 | char **list_ret = NULL; | ||
2391 | int list_count = 0; | ||
2392 | int list_count_alloc = 0; | ||
2393 | int i, num; | ||
2394 | |||
2395 | /* check to see its' an eet file pointer */ | ||
2396 | if (eet_check_pointer(ef) || eet_check_header(ef) || | ||
2397 | (!glob) || | ||
2398 | ((ef->mode != EET_FILE_MODE_READ) && | ||
2399 | (ef->mode != EET_FILE_MODE_READ_WRITE))) | ||
2400 | { | ||
2401 | if (count_ret) | ||
2402 | *count_ret = 0; | ||
2403 | |||
2404 | return NULL; | ||
2405 | } | ||
2406 | |||
2407 | if (!strcmp(glob, "*")) | ||
2408 | glob = NULL; | ||
2409 | |||
2410 | LOCK_FILE(ef); | ||
2411 | |||
2412 | /* loop through all entries */ | ||
2413 | num = (1 << ef->header->directory->size); | ||
2414 | for (i = 0; i < num; i++) | ||
2415 | { | ||
2416 | for (efn = ef->header->directory->nodes[i]; efn; efn = efn->next) | ||
2417 | { | ||
2418 | /* if the entry matches the input glob | ||
2419 | * check for * explicitly, because on some systems, * isn't well | ||
2420 | * supported | ||
2421 | */ | ||
2422 | if ((!glob) || !fnmatch(glob, efn->name, 0)) | ||
2423 | { | ||
2424 | /* add it to our list */ | ||
2425 | list_count++; | ||
2426 | |||
2427 | /* only realloc in 32 entry chunks */ | ||
2428 | if (list_count > list_count_alloc) | ||
2429 | { | ||
2430 | char **new_list = NULL; | ||
2431 | |||
2432 | list_count_alloc += 64; | ||
2433 | new_list = | ||
2434 | realloc(list_ret, list_count_alloc * (sizeof(char *))); | ||
2435 | if (!new_list) | ||
2436 | { | ||
2437 | free(list_ret); | ||
2438 | |||
2439 | goto on_error; | ||
2440 | } | ||
2441 | |||
2442 | list_ret = new_list; | ||
2443 | } | ||
2444 | |||
2445 | /* put pointer of name string in */ | ||
2446 | list_ret[list_count - 1] = efn->name; | ||
2447 | } | ||
2448 | } | ||
2449 | } | ||
2450 | |||
2451 | UNLOCK_FILE(ef); | ||
2452 | |||
2453 | /* return count and list */ | ||
2454 | if (count_ret) | ||
2455 | *count_ret = list_count; | ||
2456 | |||
2457 | return list_ret; | ||
2458 | |||
2459 | on_error: | ||
2460 | UNLOCK_FILE(ef); | ||
2461 | |||
2462 | if (count_ret) | ||
2463 | *count_ret = 0; | ||
2464 | |||
2465 | return NULL; | ||
2466 | } | ||
2467 | |||
2468 | EAPI int | ||
2469 | eet_num_entries(Eet_File *ef) | ||
2470 | { | ||
2471 | int i, num, ret = 0; | ||
2472 | Eet_File_Node *efn; | ||
2473 | |||
2474 | /* check to see its' an eet file pointer */ | ||
2475 | if (eet_check_pointer(ef) || eet_check_header(ef) || | ||
2476 | ((ef->mode != EET_FILE_MODE_READ) && | ||
2477 | (ef->mode != EET_FILE_MODE_READ_WRITE))) | ||
2478 | return -1; | ||
2479 | |||
2480 | LOCK_FILE(ef); | ||
2481 | |||
2482 | /* loop through all entries */ | ||
2483 | num = (1 << ef->header->directory->size); | ||
2484 | for (i = 0; i < num; i++) | ||
2485 | { | ||
2486 | for (efn = ef->header->directory->nodes[i]; efn; efn = efn->next) | ||
2487 | ret++; | ||
2488 | } | ||
2489 | |||
2490 | UNLOCK_FILE(ef); | ||
2491 | |||
2492 | return ret; | ||
2493 | } | ||
2494 | |||
2495 | static Eet_File_Node * | ||
2496 | find_node_by_name(Eet_File *ef, | ||
2497 | const char *name) | ||
2498 | { | ||
2499 | Eet_File_Node *efn; | ||
2500 | int hash; | ||
2501 | |||
2502 | /* get hash bucket this should be in */ | ||
2503 | hash = _eet_hash_gen(name, ef->header->directory->size); | ||
2504 | |||
2505 | for (efn = ef->header->directory->nodes[hash]; efn; efn = efn->next) | ||
2506 | { | ||
2507 | if (eet_string_match(efn->name, name)) | ||
2508 | return efn; | ||
2509 | } | ||
2510 | |||
2511 | return NULL; | ||
2512 | } | ||
2513 | |||
2514 | static int | ||
2515 | read_data_from_disk(Eet_File *ef, | ||
2516 | Eet_File_Node *efn, | ||
2517 | void *buf, | ||
2518 | int len) | ||
2519 | { | ||
2520 | if (efn->offset > ef->data_size) | ||
2521 | return 0; | ||
2522 | |||
2523 | if (!ef->data) | ||
2524 | return 0; | ||
2525 | |||
2526 | if ((efn->offset + len) > ef->data_size) | ||
2527 | return 0; | ||
2528 | |||
2529 | memcpy(buf, ef->data + efn->offset, len); | ||
2530 | |||
2531 | return len; | ||
2532 | } | ||
2533 | |||
diff --git a/libraries/eet/src/lib/eet_node.c b/libraries/eet/src/lib/eet_node.c deleted file mode 100644 index 11d7cc0..0000000 --- a/libraries/eet/src/lib/eet_node.c +++ /dev/null | |||
@@ -1,797 +0,0 @@ | |||
1 | #ifdef HAVE_CONFIG_H | ||
2 | # include <config.h> | ||
3 | #endif /* ifdef HAVE_CONFIG_H */ | ||
4 | |||
5 | #include <string.h> | ||
6 | #include <stdio.h> | ||
7 | |||
8 | #ifdef HAVE_EVIL | ||
9 | # include <Evil.h> | ||
10 | #endif /* ifdef HAVE_EVIL */ | ||
11 | |||
12 | #include <Eina.h> | ||
13 | |||
14 | #include "Eet.h" | ||
15 | #include "Eet_private.h" | ||
16 | |||
17 | static Eina_Mempool *_eet_node_mp = NULL; | ||
18 | |||
19 | Eet_Node * | ||
20 | eet_node_new(void) | ||
21 | { | ||
22 | Eet_Node *result; | ||
23 | |||
24 | result = eina_mempool_malloc(_eet_node_mp, sizeof (Eet_Node)); | ||
25 | if (!result) | ||
26 | return NULL; | ||
27 | |||
28 | memset(result, 0, sizeof (Eet_Node)); | ||
29 | return result; | ||
30 | } | ||
31 | |||
32 | void | ||
33 | eet_node_free(Eet_Node *node) | ||
34 | { | ||
35 | eina_mempool_free(_eet_node_mp, node); | ||
36 | } | ||
37 | |||
38 | static Eet_Node * | ||
39 | _eet_node_new(const char *name, | ||
40 | int type) | ||
41 | { | ||
42 | Eet_Node *n; | ||
43 | |||
44 | n = eet_node_new(); | ||
45 | if (!n) | ||
46 | return NULL; | ||
47 | |||
48 | n->type = type; | ||
49 | n->name = eina_stringshare_add(name); | ||
50 | |||
51 | return n; | ||
52 | } | ||
53 | |||
54 | static void | ||
55 | _eet_node_append(Eet_Node *n, | ||
56 | Eina_List *nodes) | ||
57 | { | ||
58 | Eet_Node *value; | ||
59 | Eina_List *l; | ||
60 | |||
61 | EINA_LIST_REVERSE_FOREACH(nodes, l, value) | ||
62 | { | ||
63 | value->next = n->values; | ||
64 | n->values = value; | ||
65 | } | ||
66 | } | ||
67 | |||
68 | #define EET_NODE_NEW(Eet_type, Name, Value, Type) \ | ||
69 | EAPI Eet_Node * \ | ||
70 | eet_node_ ## Name ## _new(const char *name, Type Value) \ | ||
71 | { \ | ||
72 | Eet_Node *n; \ | ||
73 | \ | ||
74 | n = _eet_node_new(name, Eet_type); \ | ||
75 | if (!n) { return NULL; } \ | ||
76 | \ | ||
77 | n->data.value.Value = Value; \ | ||
78 | \ | ||
79 | return n; \ | ||
80 | } | ||
81 | |||
82 | #define EET_NODE_STR_NEW(Eet_type, Name, Value, Type) \ | ||
83 | EAPI Eet_Node * \ | ||
84 | eet_node_ ## Name ## _new(const char *name, Type Value) \ | ||
85 | { \ | ||
86 | Eet_Node *n; \ | ||
87 | \ | ||
88 | n = _eet_node_new(name, Eet_type); \ | ||
89 | if (!n) { return NULL; } \ | ||
90 | \ | ||
91 | n->data.value.Value = eina_stringshare_add(Value); \ | ||
92 | \ | ||
93 | return n; \ | ||
94 | } | ||
95 | |||
96 | EET_NODE_NEW(EET_T_CHAR, char, c, char) | ||
97 | EET_NODE_NEW(EET_T_SHORT, short, s, short) | ||
98 | EET_NODE_NEW(EET_T_INT, int, i, int) | ||
99 | EET_NODE_NEW(EET_T_LONG_LONG, long_long, l, long long) | ||
100 | EET_NODE_NEW(EET_T_FLOAT, float, f, float) | ||
101 | EET_NODE_NEW(EET_T_DOUBLE, double, d, double) | ||
102 | EET_NODE_NEW(EET_T_UCHAR, unsigned_char, uc, unsigned char) | ||
103 | EET_NODE_NEW(EET_T_USHORT, unsigned_short, us, unsigned short) | ||
104 | EET_NODE_NEW(EET_T_UINT, unsigned_int, ui, unsigned int) | ||
105 | EET_NODE_NEW(EET_T_ULONG_LONG, unsigned_long_long, ul, unsigned long long) | ||
106 | EET_NODE_STR_NEW(EET_T_STRING, string, str, const char *) | ||
107 | EET_NODE_STR_NEW(EET_T_INLINED_STRING, inlined_string, str, const char *) | ||
108 | |||
109 | Eet_Node * | ||
110 | eet_node_null_new(const char *name) | ||
111 | { | ||
112 | Eet_Node *n; | ||
113 | |||
114 | n = _eet_node_new(name, EET_T_NULL); | ||
115 | if (!n) | ||
116 | return NULL; | ||
117 | |||
118 | n->data.value.str = NULL; | ||
119 | |||
120 | return n; | ||
121 | } | ||
122 | |||
123 | Eet_Node * | ||
124 | eet_node_list_new(const char *name, | ||
125 | Eina_List *nodes) | ||
126 | { | ||
127 | Eet_Node *n; | ||
128 | |||
129 | n = _eet_node_new(name, EET_G_LIST); | ||
130 | if (!n) | ||
131 | return NULL; | ||
132 | |||
133 | _eet_node_append(n, nodes); | ||
134 | |||
135 | return n; | ||
136 | } | ||
137 | |||
138 | Eet_Node * | ||
139 | eet_node_array_new(const char *name, | ||
140 | int count, | ||
141 | Eina_List *nodes) | ||
142 | { | ||
143 | Eet_Node *n; | ||
144 | |||
145 | n = _eet_node_new(name, EET_G_ARRAY); | ||
146 | if (!n) | ||
147 | return NULL; | ||
148 | |||
149 | n->count = count; | ||
150 | |||
151 | _eet_node_append(n, nodes); | ||
152 | |||
153 | return n; | ||
154 | } | ||
155 | |||
156 | Eet_Node * | ||
157 | eet_node_var_array_new(const char *name, | ||
158 | Eina_List *nodes) | ||
159 | { | ||
160 | Eet_Node *n; | ||
161 | |||
162 | n = _eet_node_new(name, EET_G_VAR_ARRAY); | ||
163 | if (!n) | ||
164 | return NULL; | ||
165 | |||
166 | n->count = eina_list_count(nodes); | ||
167 | |||
168 | _eet_node_append(n, nodes); | ||
169 | |||
170 | return n; | ||
171 | } | ||
172 | |||
173 | Eet_Node * | ||
174 | eet_node_hash_new(const char *name, | ||
175 | const char *key, | ||
176 | Eet_Node *node) | ||
177 | { | ||
178 | Eina_List *nodes; | ||
179 | Eet_Node *n; | ||
180 | |||
181 | if (!node) | ||
182 | return NULL; | ||
183 | |||
184 | n = _eet_node_new(name, EET_G_HASH); | ||
185 | if (!n) | ||
186 | return NULL; | ||
187 | |||
188 | n->key = eina_stringshare_add(key); | ||
189 | nodes = eina_list_append(NULL, node); | ||
190 | |||
191 | _eet_node_append(n, nodes); | ||
192 | |||
193 | return n; | ||
194 | } | ||
195 | |||
196 | Eet_Node * | ||
197 | eet_node_struct_new(const char *name, | ||
198 | Eina_List *nodes) | ||
199 | { | ||
200 | Eet_Node *n; | ||
201 | |||
202 | n = _eet_node_new(name, EET_G_UNKNOWN); | ||
203 | if (!n) | ||
204 | return NULL; | ||
205 | |||
206 | _eet_node_append(n, nodes); | ||
207 | |||
208 | return n; | ||
209 | } | ||
210 | |||
211 | Eet_Node * | ||
212 | eet_node_struct_child_new(const char *parent, | ||
213 | Eet_Node *child) | ||
214 | { | ||
215 | Eet_Node *n; | ||
216 | |||
217 | if (!child) return NULL; | ||
218 | |||
219 | if (child->type != EET_G_UNKNOWN) | ||
220 | return child; | ||
221 | |||
222 | n = _eet_node_new(parent, EET_G_UNKNOWN); | ||
223 | if (!n) | ||
224 | return NULL; | ||
225 | |||
226 | _eet_node_append(n, eina_list_prepend(NULL, child)); | ||
227 | |||
228 | return n; | ||
229 | } | ||
230 | |||
231 | Eet_Node * | ||
232 | eet_node_children_get(Eet_Node *node) | ||
233 | { | ||
234 | if (!node) return NULL; | ||
235 | return node->values; | ||
236 | } | ||
237 | |||
238 | Eet_Node * | ||
239 | eet_node_next_get(Eet_Node *node) | ||
240 | { | ||
241 | if (!node) return NULL; | ||
242 | return node->next; | ||
243 | } | ||
244 | |||
245 | Eet_Node * | ||
246 | eet_node_parent_get(Eet_Node *node) | ||
247 | { | ||
248 | if (!node) return NULL; | ||
249 | return node->parent; | ||
250 | } | ||
251 | |||
252 | void | ||
253 | eet_node_list_append(Eet_Node *parent, | ||
254 | const char *name, | ||
255 | Eet_Node *child) | ||
256 | { | ||
257 | const char *tmp; | ||
258 | Eet_Node *nn; | ||
259 | |||
260 | if ((!parent) || (!child)) return; | ||
261 | tmp = eina_stringshare_add(name); | ||
262 | |||
263 | for (nn = parent->values; nn; nn = nn->next) | ||
264 | if (nn->name == tmp && nn->type == EET_G_LIST) | ||
265 | { | ||
266 | Eet_Node *n; | ||
267 | |||
268 | if (!nn->values) | ||
269 | nn->values = child; | ||
270 | else | ||
271 | { | ||
272 | for (n = nn->values; n->next; n = n->next) | ||
273 | ; | ||
274 | n->next = child; | ||
275 | } | ||
276 | |||
277 | child->next = NULL; | ||
278 | |||
279 | eina_stringshare_del(tmp); | ||
280 | |||
281 | return; | ||
282 | } | ||
283 | |||
284 | /* No list found, so create it. */ | ||
285 | nn = eet_node_list_new(tmp, eina_list_append(NULL, child)); | ||
286 | |||
287 | /* And add it to the parent. */ | ||
288 | nn->next = parent->values; | ||
289 | parent->values = nn; | ||
290 | |||
291 | eina_stringshare_del(tmp); | ||
292 | } | ||
293 | |||
294 | void | ||
295 | eet_node_struct_append(Eet_Node *parent, | ||
296 | const char *name, | ||
297 | Eet_Node *child) | ||
298 | { | ||
299 | const char *tmp; | ||
300 | Eet_Node *prev; | ||
301 | Eet_Node *nn; | ||
302 | |||
303 | if ((!parent) || (!child)) return; | ||
304 | if (parent->type != EET_G_UNKNOWN) | ||
305 | { | ||
306 | ERR("[%s] is not a structure. Will not insert [%s] in it", | ||
307 | parent->name, | ||
308 | name); | ||
309 | eet_node_del(child); | ||
310 | return; | ||
311 | } | ||
312 | |||
313 | tmp = eina_stringshare_add(name); | ||
314 | |||
315 | for (prev = NULL, nn = parent->values; nn; prev = nn, nn = nn->next) | ||
316 | if (nn->name == tmp && nn->type == child->type) | ||
317 | { | ||
318 | if (prev) | ||
319 | prev->next = nn->next; | ||
320 | else | ||
321 | parent->values = nn->next; | ||
322 | |||
323 | nn->next = NULL; | ||
324 | eet_node_del(nn); | ||
325 | |||
326 | break; | ||
327 | } | ||
328 | |||
329 | if (prev) | ||
330 | { | ||
331 | prev->next = child; | ||
332 | child->next = NULL; | ||
333 | } | ||
334 | else | ||
335 | { | ||
336 | child->next = NULL; | ||
337 | parent->values = child; | ||
338 | } | ||
339 | |||
340 | eina_stringshare_del(tmp); | ||
341 | } | ||
342 | |||
343 | void | ||
344 | eet_node_hash_add(Eet_Node *parent, | ||
345 | const char *name, | ||
346 | const char *key, | ||
347 | Eet_Node *child) | ||
348 | { | ||
349 | Eet_Node *nn; | ||
350 | |||
351 | if ((!parent) || (!child)) return; | ||
352 | |||
353 | /* No list found, so create it. */ | ||
354 | nn = eet_node_hash_new(name, key, child); | ||
355 | |||
356 | /* And add it to the parent. */ | ||
357 | nn->next = parent->values; | ||
358 | parent->values = nn; | ||
359 | } | ||
360 | |||
361 | int | ||
362 | eet_node_type_get(Eet_Node *node) | ||
363 | { | ||
364 | if (!node) return EET_T_UNKNOW; | ||
365 | return node->type; | ||
366 | } | ||
367 | |||
368 | Eet_Node_Data * | ||
369 | eet_node_value_get(Eet_Node *node) | ||
370 | { | ||
371 | if (!node) return NULL; | ||
372 | return &node->data; | ||
373 | } | ||
374 | |||
375 | const char * | ||
376 | eet_node_name_get(Eet_Node *node) | ||
377 | { | ||
378 | if (!node) return NULL; | ||
379 | return node->name; | ||
380 | } | ||
381 | |||
382 | void | ||
383 | eet_node_del(Eet_Node *n) | ||
384 | { | ||
385 | Eet_Node *nn; | ||
386 | Eet_Node *tmp; | ||
387 | |||
388 | if (!n) | ||
389 | return; | ||
390 | |||
391 | switch (n->type) | ||
392 | { | ||
393 | case EET_G_HASH: | ||
394 | eina_stringshare_del(n->key); | ||
395 | |||
396 | case EET_G_UNKNOWN: | ||
397 | case EET_G_VAR_ARRAY: | ||
398 | case EET_G_ARRAY: | ||
399 | case EET_G_LIST: | ||
400 | for (nn = n->values; nn; ) | ||
401 | { | ||
402 | tmp = nn; | ||
403 | nn = nn->next; | ||
404 | eet_node_del(tmp); | ||
405 | } | ||
406 | break; | ||
407 | |||
408 | case EET_T_STRING: | ||
409 | case EET_T_INLINED_STRING: | ||
410 | eina_stringshare_del(n->data.value.str); | ||
411 | break; | ||
412 | |||
413 | case EET_T_CHAR: | ||
414 | case EET_T_SHORT: | ||
415 | case EET_T_INT: | ||
416 | case EET_T_LONG_LONG: | ||
417 | case EET_T_FLOAT: | ||
418 | case EET_T_DOUBLE: | ||
419 | case EET_T_UCHAR: | ||
420 | case EET_T_USHORT: | ||
421 | case EET_T_UINT: | ||
422 | break; | ||
423 | } | ||
424 | |||
425 | eina_stringshare_del(n->name); | ||
426 | eet_node_free(n); | ||
427 | } | ||
428 | |||
429 | static const char *eet_node_dump_g_name[6] = { | ||
430 | "struct", | ||
431 | "array", | ||
432 | "var_array", | ||
433 | "list", | ||
434 | "hash", | ||
435 | "???" | ||
436 | }; | ||
437 | |||
438 | static const char *eet_node_dump_t_name[14][2] = { | ||
439 | { "???: ", "???" }, | ||
440 | { "char: ", "%hhi" }, | ||
441 | { "short: ", "%hi" }, | ||
442 | { "int: ", "%i" }, | ||
443 | { "long_long: ", "%lli" }, | ||
444 | { "float: ", "%1.25f" }, | ||
445 | { "double: ", "%1.25f" }, | ||
446 | { "uchar: ", "%hhu" }, | ||
447 | { "ushort: ", "%i" }, | ||
448 | { "uint: ", "%u" }, | ||
449 | { "ulong_long: ", "%llu" }, | ||
450 | { "null", "" } | ||
451 | }; | ||
452 | |||
453 | static void | ||
454 | eet_node_dump_level(int level, | ||
455 | Eet_Dump_Callback dumpfunc, | ||
456 | void *dumpdata) | ||
457 | { | ||
458 | int i; | ||
459 | |||
460 | for (i = 0; i < level; i++) dumpfunc(dumpdata, " "); | ||
461 | } | ||
462 | |||
463 | static char * | ||
464 | eet_node_string_escape(const char *str) | ||
465 | { | ||
466 | char *s, *sp; | ||
467 | const char *strp; | ||
468 | int sz = 0; | ||
469 | |||
470 | for (strp = str; *strp; strp++) | ||
471 | { | ||
472 | if (*strp == '\"') | ||
473 | sz += 2; | ||
474 | else if (*strp == '\\') | ||
475 | sz += 2; | ||
476 | else if (*strp == '\n') | ||
477 | sz += 2; | ||
478 | else | ||
479 | sz += 1; | ||
480 | } | ||
481 | s = malloc(sz + 1); | ||
482 | if (!s) | ||
483 | return NULL; | ||
484 | |||
485 | for (strp = str, sp = s; *strp; strp++, sp++) | ||
486 | { | ||
487 | if (*strp == '\"' | ||
488 | || *strp == '\\' | ||
489 | || *strp == '\n') | ||
490 | { | ||
491 | *sp = '\\'; | ||
492 | sp++; | ||
493 | } | ||
494 | |||
495 | if (*strp == '\n') | ||
496 | *sp = 'n'; | ||
497 | else | ||
498 | *sp = *strp; | ||
499 | } | ||
500 | *sp = 0; | ||
501 | return s; | ||
502 | } | ||
503 | |||
504 | static void | ||
505 | eet_node_dump_string_escape(void *dumpdata, | ||
506 | Eet_Dump_Callback dumpfunc, | ||
507 | const char *str) | ||
508 | { | ||
509 | char *s; | ||
510 | |||
511 | s = eet_node_string_escape(str); | ||
512 | if (!s) | ||
513 | return; | ||
514 | |||
515 | dumpfunc(dumpdata, s); | ||
516 | free(s); | ||
517 | } | ||
518 | |||
519 | static void | ||
520 | eet_node_dump_simple_type(Eet_Node *n, | ||
521 | int level, | ||
522 | Eet_Dump_Callback dumpfunc, | ||
523 | void *dumpdata) | ||
524 | { | ||
525 | const char *type_name = NULL; | ||
526 | char tbuf[256]; | ||
527 | |||
528 | eet_node_dump_level(level, dumpfunc, dumpdata); | ||
529 | dumpfunc(dumpdata, "value \""); | ||
530 | eet_node_dump_string_escape(dumpdata, dumpfunc, n->name); | ||
531 | dumpfunc(dumpdata, "\" "); | ||
532 | |||
533 | #ifdef EET_T_TYPE | ||
534 | # undef EET_T_TYPE | ||
535 | #endif /* ifdef EET_T_TYPE */ | ||
536 | |||
537 | #define EET_T_TYPE(Eet_Type, Type) \ | ||
538 | case Eet_Type: \ | ||
539 | { \ | ||
540 | dumpfunc(dumpdata, eet_node_dump_t_name[Eet_Type][0]); \ | ||
541 | snprintf(tbuf, \ | ||
542 | sizeof (tbuf), \ | ||
543 | eet_node_dump_t_name[Eet_Type][1], \ | ||
544 | n->data.value.Type); \ | ||
545 | dumpfunc(dumpdata, tbuf); \ | ||
546 | break; \ | ||
547 | } | ||
548 | |||
549 | switch (n->type) | ||
550 | { | ||
551 | EET_T_TYPE(EET_T_CHAR, c); | ||
552 | EET_T_TYPE(EET_T_SHORT, s); | ||
553 | EET_T_TYPE(EET_T_INT, i); | ||
554 | EET_T_TYPE(EET_T_LONG_LONG, l); | ||
555 | EET_T_TYPE(EET_T_FLOAT, f); | ||
556 | EET_T_TYPE(EET_T_DOUBLE, d); | ||
557 | EET_T_TYPE(EET_T_UCHAR, uc); | ||
558 | EET_T_TYPE(EET_T_USHORT, us); | ||
559 | EET_T_TYPE(EET_T_UINT, ui); | ||
560 | EET_T_TYPE(EET_T_ULONG_LONG, ul); | ||
561 | |||
562 | case EET_T_INLINED_STRING: | ||
563 | type_name = "inlined: \""; | ||
564 | |||
565 | case EET_T_STRING: | ||
566 | if (!type_name) | ||
567 | type_name = "string: \""; | ||
568 | |||
569 | dumpfunc(dumpdata, type_name); | ||
570 | eet_node_dump_string_escape(dumpdata, dumpfunc, n->data.value.str); | ||
571 | dumpfunc(dumpdata, "\""); | ||
572 | break; | ||
573 | |||
574 | case EET_T_NULL: | ||
575 | dumpfunc(dumpdata, "null"); | ||
576 | break; | ||
577 | |||
578 | default: | ||
579 | dumpfunc(dumpdata, "???: ???"); | ||
580 | break; | ||
581 | } | ||
582 | |||
583 | dumpfunc(dumpdata, ";\n"); | ||
584 | } | ||
585 | |||
586 | static void | ||
587 | eet_node_dump_group_start(int level, | ||
588 | Eet_Dump_Callback dumpfunc, | ||
589 | void *dumpdata, | ||
590 | int group_type, | ||
591 | const char *name) | ||
592 | { | ||
593 | int chnk_type; | ||
594 | |||
595 | chnk_type = (group_type >= EET_G_UNKNOWN && group_type <= EET_G_HASH) ? | ||
596 | group_type : EET_G_LAST; | ||
597 | |||
598 | eet_node_dump_level(level, dumpfunc, dumpdata); | ||
599 | dumpfunc(dumpdata, "group \""); | ||
600 | eet_node_dump_string_escape(dumpdata, dumpfunc, name); | ||
601 | dumpfunc(dumpdata, "\" "); | ||
602 | |||
603 | dumpfunc(dumpdata, eet_node_dump_g_name[chnk_type - EET_G_UNKNOWN]); | ||
604 | dumpfunc(dumpdata, " {\n"); | ||
605 | } | ||
606 | |||
607 | static void | ||
608 | eet_node_dump_group_end(int level, | ||
609 | Eet_Dump_Callback dumpfunc, | ||
610 | void *dumpdata) | ||
611 | { | ||
612 | eet_node_dump_level(level, dumpfunc, dumpdata); | ||
613 | dumpfunc(dumpdata, "}\n"); | ||
614 | } | ||
615 | |||
616 | void | ||
617 | eet_node_dump(Eet_Node *n, | ||
618 | int dumplevel, | ||
619 | Eet_Dump_Callback dumpfunc, | ||
620 | void *dumpdata) | ||
621 | { | ||
622 | Eet_Node *it; | ||
623 | |||
624 | if (!n) | ||
625 | return; | ||
626 | |||
627 | switch (n->type) | ||
628 | { | ||
629 | case EET_G_VAR_ARRAY: | ||
630 | case EET_G_ARRAY: | ||
631 | case EET_G_UNKNOWN: | ||
632 | case EET_G_HASH: | ||
633 | case EET_G_LIST: | ||
634 | eet_node_dump_group_start(dumplevel, | ||
635 | dumpfunc, | ||
636 | dumpdata, | ||
637 | n->type, | ||
638 | n->name); | ||
639 | |||
640 | if (n->type == EET_G_VAR_ARRAY | ||
641 | || n->type == EET_G_ARRAY) | ||
642 | { | ||
643 | char tbuf[256]; | ||
644 | |||
645 | eet_node_dump_level(dumplevel, dumpfunc, dumpdata); | ||
646 | dumpfunc(dumpdata, " count "); | ||
647 | eina_convert_itoa(n->count, tbuf); | ||
648 | dumpfunc(dumpdata, tbuf); | ||
649 | dumpfunc(dumpdata, ";\n"); | ||
650 | } | ||
651 | else if (n->type == EET_G_HASH) | ||
652 | { | ||
653 | eet_node_dump_level(dumplevel, dumpfunc, dumpdata); | ||
654 | dumpfunc(dumpdata, " key \""); | ||
655 | eet_node_dump_string_escape(dumpdata, dumpfunc, n->key); | ||
656 | dumpfunc(dumpdata, "\";\n"); | ||
657 | } | ||
658 | |||
659 | for (it = n->values; it; it = it->next) | ||
660 | eet_node_dump(it, dumplevel + 2, dumpfunc, dumpdata); | ||
661 | |||
662 | eet_node_dump_group_end(dumplevel, dumpfunc, dumpdata); | ||
663 | break; | ||
664 | |||
665 | case EET_T_STRING: | ||
666 | case EET_T_INLINED_STRING: | ||
667 | case EET_T_CHAR: | ||
668 | case EET_T_SHORT: | ||
669 | case EET_T_INT: | ||
670 | case EET_T_LONG_LONG: | ||
671 | case EET_T_FLOAT: | ||
672 | case EET_T_DOUBLE: | ||
673 | case EET_T_UCHAR: | ||
674 | case EET_T_USHORT: | ||
675 | case EET_T_UINT: | ||
676 | case EET_T_ULONG_LONG: | ||
677 | eet_node_dump_simple_type(n, dumplevel, dumpfunc, dumpdata); | ||
678 | break; | ||
679 | } | ||
680 | } | ||
681 | |||
682 | void * | ||
683 | eet_node_walk(void *parent, | ||
684 | const char *name, | ||
685 | Eet_Node *root, | ||
686 | Eet_Node_Walk *cb, | ||
687 | void *user_data) | ||
688 | { | ||
689 | Eet_Node *it; | ||
690 | void *me = NULL; | ||
691 | int i; | ||
692 | |||
693 | if (!root) | ||
694 | { | ||
695 | if (parent) | ||
696 | cb->struct_add(parent, name, NULL, user_data); | ||
697 | |||
698 | return NULL; | ||
699 | } | ||
700 | |||
701 | switch (root->type) | ||
702 | { | ||
703 | case EET_G_UNKNOWN: | ||
704 | me = cb->struct_alloc(root->name, user_data); | ||
705 | |||
706 | for (it = root->values; it; it = it->next) | ||
707 | eet_node_walk(me, it->name, it, cb, user_data); | ||
708 | |||
709 | break; | ||
710 | |||
711 | case EET_G_VAR_ARRAY: | ||
712 | case EET_G_ARRAY: | ||
713 | me = cb->array(root->type == EET_G_VAR_ARRAY ? EINA_TRUE : EINA_FALSE, | ||
714 | root->name, root->count, user_data); | ||
715 | |||
716 | for (i = 0, it = root->values; it; it = it->next) | ||
717 | cb->insert(me, i++, eet_node_walk(NULL, | ||
718 | NULL, | ||
719 | it, | ||
720 | cb, | ||
721 | user_data), user_data); | ||
722 | |||
723 | break; | ||
724 | |||
725 | case EET_G_LIST: | ||
726 | me = cb->list(root->name, user_data); | ||
727 | |||
728 | for (it = root->values; it; it = it->next) | ||
729 | cb->append(me, eet_node_walk(NULL, | ||
730 | NULL, | ||
731 | it, | ||
732 | cb, | ||
733 | user_data), user_data); | ||
734 | |||
735 | break; | ||
736 | |||
737 | case EET_G_HASH: | ||
738 | if (!parent) | ||
739 | return NULL; | ||
740 | |||
741 | return cb->hash(parent, root->name, root->key, | ||
742 | eet_node_walk(NULL, | ||
743 | NULL, | ||
744 | root->values, | ||
745 | cb, | ||
746 | user_data), user_data); | ||
747 | |||
748 | case EET_T_STRING: | ||
749 | case EET_T_INLINED_STRING: | ||
750 | case EET_T_CHAR: | ||
751 | case EET_T_SHORT: | ||
752 | case EET_T_INT: | ||
753 | case EET_T_LONG_LONG: | ||
754 | case EET_T_FLOAT: | ||
755 | case EET_T_DOUBLE: | ||
756 | case EET_T_UCHAR: | ||
757 | case EET_T_USHORT: | ||
758 | case EET_T_UINT: | ||
759 | case EET_T_ULONG_LONG: | ||
760 | me = cb->simple(root->type, &root->data, user_data); | ||
761 | break; | ||
762 | } | ||
763 | |||
764 | if (parent) | ||
765 | cb->struct_add(parent, name, me, user_data); | ||
766 | |||
767 | return me; | ||
768 | } | ||
769 | |||
770 | int | ||
771 | eet_node_init(void) | ||
772 | { | ||
773 | const char *choice; | ||
774 | const char *tmp; | ||
775 | |||
776 | #ifdef EINA_DEFAULT_MEMPOOL | ||
777 | choice = "pass_through"; | ||
778 | #else | ||
779 | choice = "chained_mempool"; | ||
780 | #endif | ||
781 | tmp = getenv("EINA_MEMPOOL"); | ||
782 | if (tmp && tmp[0]) | ||
783 | choice = tmp; | ||
784 | |||
785 | _eet_node_mp = | ||
786 | eina_mempool_add(choice, "eet-node-alloc", NULL, sizeof(Eet_Node), 1024); | ||
787 | |||
788 | return _eet_node_mp ? 1 : 0; | ||
789 | } | ||
790 | |||
791 | void | ||
792 | eet_node_shutdown(void) | ||
793 | { | ||
794 | eina_mempool_del(_eet_node_mp); | ||
795 | _eet_node_mp = NULL; | ||
796 | } | ||
797 | |||
diff --git a/libraries/eet/src/lib/eet_utils.c b/libraries/eet/src/lib/eet_utils.c deleted file mode 100644 index b04ad1b..0000000 --- a/libraries/eet/src/lib/eet_utils.c +++ /dev/null | |||
@@ -1,36 +0,0 @@ | |||
1 | #ifdef HAVE_CONFIG_H | ||
2 | # include <config.h> | ||
3 | #endif /* ifdef HAVE_CONFIG_H */ | ||
4 | |||
5 | #include <stdio.h> | ||
6 | #include <math.h> | ||
7 | |||
8 | #include "Eet.h" | ||
9 | #include "Eet_private.h" | ||
10 | |||
11 | int | ||
12 | _eet_hash_gen(const char *key, | ||
13 | int hash_size) | ||
14 | { | ||
15 | int hash_num = 0; | ||
16 | int value, i; | ||
17 | int mask; | ||
18 | unsigned char *ptr; | ||
19 | |||
20 | /* no string - index 0 */ | ||
21 | if (!key) | ||
22 | return 0; | ||
23 | |||
24 | /* calc hash num */ | ||
25 | for (i = 0, ptr = (unsigned char *)key, value = (int)(*ptr); | ||
26 | value; | ||
27 | ptr++, i++, value = (int)(*ptr)) | ||
28 | hash_num ^= (value | (value << 8)) >> (i & 0x7); | ||
29 | |||
30 | /* mask it */ | ||
31 | mask = (1 << hash_size) - 1; | ||
32 | hash_num &= mask; | ||
33 | /* return it */ | ||
34 | return hash_num; | ||
35 | } | ||
36 | |||
diff --git a/libraries/eet/src/tests/Makefile.am b/libraries/eet/src/tests/Makefile.am deleted file mode 100644 index 61158f7..0000000 --- a/libraries/eet/src/tests/Makefile.am +++ /dev/null | |||
@@ -1,18 +0,0 @@ | |||
1 | MAINTAINERCLEANFILES = Makefile.in | ||
2 | |||
3 | AM_CPPFLAGS = \ | ||
4 | -I$(top_srcdir)/src/lib \ | ||
5 | -DTESTS_SRC_DIR=\"$(top_srcdir)/src/tests\" \ | ||
6 | @CHECK_CFLAGS@ \ | ||
7 | @EINA_CFLAGS@ | ||
8 | |||
9 | if EFL_ENABLE_TESTS | ||
10 | |||
11 | check_PROGRAMS = eet_suite | ||
12 | |||
13 | eet_suite_SOURCES = eet_suite.c eet_data_suite.c | ||
14 | eet_suite_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ @CHECK_LIBS@ | ||
15 | |||
16 | endif | ||
17 | |||
18 | EXTRA_DIST = eet_suite.h cert.pem key_enc_none.pem key_enc.pem key.pem | ||
diff --git a/libraries/eet/src/tests/Makefile.in b/libraries/eet/src/tests/Makefile.in deleted file mode 100644 index e17a54e..0000000 --- a/libraries/eet/src/tests/Makefile.in +++ /dev/null | |||
@@ -1,547 +0,0 @@ | |||
1 | # Makefile.in generated by automake 1.11.1 from Makefile.am. | ||
2 | # @configure_input@ | ||
3 | |||
4 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, | ||
5 | # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, | ||
6 | # Inc. | ||
7 | # This Makefile.in is free software; the Free Software Foundation | ||
8 | # gives unlimited permission to copy and/or distribute it, | ||
9 | # with or without modifications, as long as this notice is preserved. | ||
10 | |||
11 | # This program is distributed in the hope that it will be useful, | ||
12 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | ||
13 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | ||
14 | # PARTICULAR PURPOSE. | ||
15 | |||
16 | @SET_MAKE@ | ||
17 | VPATH = @srcdir@ | ||
18 | pkgdatadir = $(datadir)/@PACKAGE@ | ||
19 | pkgincludedir = $(includedir)/@PACKAGE@ | ||
20 | pkglibdir = $(libdir)/@PACKAGE@ | ||
21 | pkglibexecdir = $(libexecdir)/@PACKAGE@ | ||
22 | am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | ||
23 | install_sh_DATA = $(install_sh) -c -m 644 | ||
24 | install_sh_PROGRAM = $(install_sh) -c | ||
25 | install_sh_SCRIPT = $(install_sh) -c | ||
26 | INSTALL_HEADER = $(INSTALL_DATA) | ||
27 | transform = $(program_transform_name) | ||
28 | NORMAL_INSTALL = : | ||
29 | PRE_INSTALL = : | ||
30 | POST_INSTALL = : | ||
31 | NORMAL_UNINSTALL = : | ||
32 | PRE_UNINSTALL = : | ||
33 | POST_UNINSTALL = : | ||
34 | build_triplet = @build@ | ||
35 | host_triplet = @host@ | ||
36 | @EFL_ENABLE_TESTS_TRUE@check_PROGRAMS = eet_suite$(EXEEXT) | ||
37 | subdir = src/tests | ||
38 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in TODO | ||
39 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | ||
40 | am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \ | ||
41 | $(top_srcdir)/m4/ac_path_generic.m4 \ | ||
42 | $(top_srcdir)/m4/efl_binary.m4 \ | ||
43 | $(top_srcdir)/m4/efl_compiler_flag.m4 \ | ||
44 | $(top_srcdir)/m4/efl_coverage.m4 \ | ||
45 | $(top_srcdir)/m4/efl_doxygen.m4 \ | ||
46 | $(top_srcdir)/m4/efl_fnmatch.m4 \ | ||
47 | $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ | ||
48 | $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ | ||
49 | $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ | ||
50 | $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac | ||
51 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | ||
52 | $(ACLOCAL_M4) | ||
53 | mkinstalldirs = $(install_sh) -d | ||
54 | CONFIG_HEADER = $(top_builddir)/config.h | ||
55 | CONFIG_CLEAN_FILES = | ||
56 | CONFIG_CLEAN_VPATH_FILES = | ||
57 | am__eet_suite_SOURCES_DIST = eet_suite.c eet_data_suite.c | ||
58 | @EFL_ENABLE_TESTS_TRUE@am_eet_suite_OBJECTS = eet_suite.$(OBJEXT) \ | ||
59 | @EFL_ENABLE_TESTS_TRUE@ eet_data_suite.$(OBJEXT) | ||
60 | eet_suite_OBJECTS = $(am_eet_suite_OBJECTS) | ||
61 | @EFL_ENABLE_TESTS_TRUE@eet_suite_DEPENDENCIES = \ | ||
62 | @EFL_ENABLE_TESTS_TRUE@ $(top_builddir)/src/lib/libeet.la | ||
63 | AM_V_lt = $(am__v_lt_$(V)) | ||
64 | am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) | ||
65 | am__v_lt_0 = --silent | ||
66 | DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) | ||
67 | depcomp = $(SHELL) $(top_srcdir)/depcomp | ||
68 | am__depfiles_maybe = depfiles | ||
69 | am__mv = mv -f | ||
70 | COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ | ||
71 | $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) | ||
72 | LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | ||
73 | $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ | ||
74 | $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ | ||
75 | $(AM_CFLAGS) $(CFLAGS) | ||
76 | AM_V_CC = $(am__v_CC_$(V)) | ||
77 | am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) | ||
78 | am__v_CC_0 = @echo " CC " $@; | ||
79 | AM_V_at = $(am__v_at_$(V)) | ||
80 | am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) | ||
81 | am__v_at_0 = @ | ||
82 | CCLD = $(CC) | ||
83 | LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | ||
84 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ | ||
85 | $(AM_LDFLAGS) $(LDFLAGS) -o $@ | ||
86 | AM_V_CCLD = $(am__v_CCLD_$(V)) | ||
87 | am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) | ||
88 | am__v_CCLD_0 = @echo " CCLD " $@; | ||
89 | AM_V_GEN = $(am__v_GEN_$(V)) | ||
90 | am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) | ||
91 | am__v_GEN_0 = @echo " GEN " $@; | ||
92 | SOURCES = $(eet_suite_SOURCES) | ||
93 | DIST_SOURCES = $(am__eet_suite_SOURCES_DIST) | ||
94 | ETAGS = etags | ||
95 | CTAGS = ctags | ||
96 | DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | ||
97 | ACLOCAL = @ACLOCAL@ | ||
98 | ALLOCA = @ALLOCA@ | ||
99 | AMTAR = @AMTAR@ | ||
100 | AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ | ||
101 | AR = @AR@ | ||
102 | AS = @AS@ | ||
103 | AUTOCONF = @AUTOCONF@ | ||
104 | AUTOHEADER = @AUTOHEADER@ | ||
105 | AUTOMAKE = @AUTOMAKE@ | ||
106 | AWK = @AWK@ | ||
107 | CC = @CC@ | ||
108 | CCDEPMODE = @CCDEPMODE@ | ||
109 | CFLAGS = @CFLAGS@ | ||
110 | CHECK_CFLAGS = @CHECK_CFLAGS@ | ||
111 | CHECK_LIBS = @CHECK_LIBS@ | ||
112 | CPP = @CPP@ | ||
113 | CPPFLAGS = @CPPFLAGS@ | ||
114 | CYGPATH_W = @CYGPATH_W@ | ||
115 | DEBUG_CFLAGS = @DEBUG_CFLAGS@ | ||
116 | DEFS = @DEFS@ | ||
117 | DEPDIR = @DEPDIR@ | ||
118 | DLLTOOL = @DLLTOOL@ | ||
119 | DSYMUTIL = @DSYMUTIL@ | ||
120 | DUMPBIN = @DUMPBIN@ | ||
121 | ECHO_C = @ECHO_C@ | ||
122 | ECHO_N = @ECHO_N@ | ||
123 | ECHO_T = @ECHO_T@ | ||
124 | EET_CFLAGS = @EET_CFLAGS@ | ||
125 | EET_CPPFLAGS = @EET_CPPFLAGS@ | ||
126 | EET_LIBS = @EET_LIBS@ | ||
127 | EET_PRG = @EET_PRG@ | ||
128 | EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@ | ||
129 | EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@ | ||
130 | EFL_EET_BUILD = @EFL_EET_BUILD@ | ||
131 | EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@ | ||
132 | EGREP = @EGREP@ | ||
133 | EINA_CFLAGS = @EINA_CFLAGS@ | ||
134 | EINA_LIBS = @EINA_LIBS@ | ||
135 | EVIL_CFLAGS = @EVIL_CFLAGS@ | ||
136 | EVIL_LIBS = @EVIL_LIBS@ | ||
137 | EXEEXT = @EXEEXT@ | ||
138 | EXOTIC_CFLAGS = @EXOTIC_CFLAGS@ | ||
139 | EXOTIC_LIBS = @EXOTIC_LIBS@ | ||
140 | FGREP = @FGREP@ | ||
141 | GNUTLS_CFLAGS = @GNUTLS_CFLAGS@ | ||
142 | GNUTLS_LIBS = @GNUTLS_LIBS@ | ||
143 | GREP = @GREP@ | ||
144 | INSTALL = @INSTALL@ | ||
145 | INSTALL_DATA = @INSTALL_DATA@ | ||
146 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ | ||
147 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ | ||
148 | INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | ||
149 | LD = @LD@ | ||
150 | LDFLAGS = @LDFLAGS@ | ||
151 | LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@ | ||
152 | LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@ | ||
153 | LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@ | ||
154 | LIBOBJS = @LIBOBJS@ | ||
155 | LIBS = @LIBS@ | ||
156 | LIBTOOL = @LIBTOOL@ | ||
157 | LIPO = @LIPO@ | ||
158 | LN_S = @LN_S@ | ||
159 | LTLIBOBJS = @LTLIBOBJS@ | ||
160 | MAKEINFO = @MAKEINFO@ | ||
161 | MKDIR_P = @MKDIR_P@ | ||
162 | NM = @NM@ | ||
163 | NMEDIT = @NMEDIT@ | ||
164 | OBJDUMP = @OBJDUMP@ | ||
165 | OBJEXT = @OBJEXT@ | ||
166 | OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ | ||
167 | OPENSSL_LIBS = @OPENSSL_LIBS@ | ||
168 | OTOOL = @OTOOL@ | ||
169 | OTOOL64 = @OTOOL64@ | ||
170 | PACKAGE = @PACKAGE@ | ||
171 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | ||
172 | PACKAGE_NAME = @PACKAGE_NAME@ | ||
173 | PACKAGE_STRING = @PACKAGE_STRING@ | ||
174 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ | ||
175 | PACKAGE_URL = @PACKAGE_URL@ | ||
176 | PACKAGE_VERSION = @PACKAGE_VERSION@ | ||
177 | PATH_SEPARATOR = @PATH_SEPARATOR@ | ||
178 | PKG_CONFIG = @PKG_CONFIG@ | ||
179 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ | ||
180 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ | ||
181 | RANLIB = @RANLIB@ | ||
182 | SED = @SED@ | ||
183 | SET_MAKE = @SET_MAKE@ | ||
184 | SHELL = @SHELL@ | ||
185 | STRIP = @STRIP@ | ||
186 | VERSION = @VERSION@ | ||
187 | VMAJ = @VMAJ@ | ||
188 | abs_builddir = @abs_builddir@ | ||
189 | abs_srcdir = @abs_srcdir@ | ||
190 | abs_top_builddir = @abs_top_builddir@ | ||
191 | abs_top_srcdir = @abs_top_srcdir@ | ||
192 | ac_ct_CC = @ac_ct_CC@ | ||
193 | ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ | ||
194 | am__include = @am__include@ | ||
195 | am__leading_dot = @am__leading_dot@ | ||
196 | am__quote = @am__quote@ | ||
197 | am__tar = @am__tar@ | ||
198 | am__untar = @am__untar@ | ||
199 | bindir = @bindir@ | ||
200 | build = @build@ | ||
201 | build_alias = @build_alias@ | ||
202 | build_cpu = @build_cpu@ | ||
203 | build_os = @build_os@ | ||
204 | build_vendor = @build_vendor@ | ||
205 | builddir = @builddir@ | ||
206 | datadir = @datadir@ | ||
207 | datarootdir = @datarootdir@ | ||
208 | docdir = @docdir@ | ||
209 | dvidir = @dvidir@ | ||
210 | efl_doxygen = @efl_doxygen@ | ||
211 | efl_have_doxygen = @efl_have_doxygen@ | ||
212 | exec_prefix = @exec_prefix@ | ||
213 | have_lcov = @have_lcov@ | ||
214 | host = @host@ | ||
215 | host_alias = @host_alias@ | ||
216 | host_cpu = @host_cpu@ | ||
217 | host_os = @host_os@ | ||
218 | host_vendor = @host_vendor@ | ||
219 | htmldir = @htmldir@ | ||
220 | includedir = @includedir@ | ||
221 | infodir = @infodir@ | ||
222 | install_sh = @install_sh@ | ||
223 | libdir = @libdir@ | ||
224 | libexecdir = @libexecdir@ | ||
225 | localedir = @localedir@ | ||
226 | localstatedir = @localstatedir@ | ||
227 | lt_ECHO = @lt_ECHO@ | ||
228 | lt_enable_auto_import = @lt_enable_auto_import@ | ||
229 | mandir = @mandir@ | ||
230 | mkdir_p = @mkdir_p@ | ||
231 | oldincludedir = @oldincludedir@ | ||
232 | pdfdir = @pdfdir@ | ||
233 | pkgconfig_requires_private = @pkgconfig_requires_private@ | ||
234 | prefix = @prefix@ | ||
235 | program_transform_name = @program_transform_name@ | ||
236 | psdir = @psdir@ | ||
237 | release_info = @release_info@ | ||
238 | requirement_eet = @requirement_eet@ | ||
239 | sbindir = @sbindir@ | ||
240 | sharedstatedir = @sharedstatedir@ | ||
241 | srcdir = @srcdir@ | ||
242 | sysconfdir = @sysconfdir@ | ||
243 | target_alias = @target_alias@ | ||
244 | top_build_prefix = @top_build_prefix@ | ||
245 | top_builddir = @top_builddir@ | ||
246 | top_srcdir = @top_srcdir@ | ||
247 | version_info = @version_info@ | ||
248 | MAINTAINERCLEANFILES = Makefile.in | ||
249 | AM_CPPFLAGS = \ | ||
250 | -I$(top_srcdir)/src/lib \ | ||
251 | -DTESTS_SRC_DIR=\"$(top_srcdir)/src/tests\" \ | ||
252 | @CHECK_CFLAGS@ \ | ||
253 | @EINA_CFLAGS@ | ||
254 | |||
255 | @EFL_ENABLE_TESTS_TRUE@eet_suite_SOURCES = eet_suite.c eet_data_suite.c | ||
256 | @EFL_ENABLE_TESTS_TRUE@eet_suite_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ @CHECK_LIBS@ | ||
257 | EXTRA_DIST = eet_suite.h cert.pem key_enc_none.pem key_enc.pem key.pem | ||
258 | all: all-am | ||
259 | |||
260 | .SUFFIXES: | ||
261 | .SUFFIXES: .c .lo .o .obj | ||
262 | $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) | ||
263 | @for dep in $?; do \ | ||
264 | case '$(am__configure_deps)' in \ | ||
265 | *$$dep*) \ | ||
266 | ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ | ||
267 | && { if test -f $@; then exit 0; else break; fi; }; \ | ||
268 | exit 1;; \ | ||
269 | esac; \ | ||
270 | done; \ | ||
271 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/tests/Makefile'; \ | ||
272 | $(am__cd) $(top_srcdir) && \ | ||
273 | $(AUTOMAKE) --gnu src/tests/Makefile | ||
274 | .PRECIOUS: Makefile | ||
275 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | ||
276 | @case '$?' in \ | ||
277 | *config.status*) \ | ||
278 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ | ||
279 | *) \ | ||
280 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | ||
281 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | ||
282 | esac; | ||
283 | |||
284 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | ||
285 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
286 | |||
287 | $(top_srcdir)/configure: $(am__configure_deps) | ||
288 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
289 | $(ACLOCAL_M4): $(am__aclocal_m4_deps) | ||
290 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
291 | $(am__aclocal_m4_deps): | ||
292 | |||
293 | clean-checkPROGRAMS: | ||
294 | @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ | ||
295 | echo " rm -f" $$list; \ | ||
296 | rm -f $$list || exit $$?; \ | ||
297 | test -n "$(EXEEXT)" || exit 0; \ | ||
298 | list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ | ||
299 | echo " rm -f" $$list; \ | ||
300 | rm -f $$list | ||
301 | eet_suite$(EXEEXT): $(eet_suite_OBJECTS) $(eet_suite_DEPENDENCIES) | ||
302 | @rm -f eet_suite$(EXEEXT) | ||
303 | $(AM_V_CCLD)$(LINK) $(eet_suite_OBJECTS) $(eet_suite_LDADD) $(LIBS) | ||
304 | |||
305 | mostlyclean-compile: | ||
306 | -rm -f *.$(OBJEXT) | ||
307 | |||
308 | distclean-compile: | ||
309 | -rm -f *.tab.c | ||
310 | |||
311 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eet_data_suite.Po@am__quote@ | ||
312 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eet_suite.Po@am__quote@ | ||
313 | |||
314 | .c.o: | ||
315 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< | ||
316 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po | ||
317 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
318 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ | ||
319 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
320 | @am__fastdepCC_FALSE@ $(COMPILE) -c $< | ||
321 | |||
322 | .c.obj: | ||
323 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` | ||
324 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po | ||
325 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
326 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ | ||
327 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
328 | @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` | ||
329 | |||
330 | .c.lo: | ||
331 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< | ||
332 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo | ||
333 | @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ | ||
334 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ | ||
335 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
336 | @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< | ||
337 | |||
338 | mostlyclean-libtool: | ||
339 | -rm -f *.lo | ||
340 | |||
341 | clean-libtool: | ||
342 | -rm -rf .libs _libs | ||
343 | |||
344 | ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) | ||
345 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||
346 | unique=`for i in $$list; do \ | ||
347 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
348 | done | \ | ||
349 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
350 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
351 | mkid -fID $$unique | ||
352 | tags: TAGS | ||
353 | |||
354 | TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ | ||
355 | $(TAGS_FILES) $(LISP) | ||
356 | set x; \ | ||
357 | here=`pwd`; \ | ||
358 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||
359 | unique=`for i in $$list; do \ | ||
360 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
361 | done | \ | ||
362 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
363 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
364 | shift; \ | ||
365 | if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ | ||
366 | test -n "$$unique" || unique=$$empty_fix; \ | ||
367 | if test $$# -gt 0; then \ | ||
368 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||
369 | "$$@" $$unique; \ | ||
370 | else \ | ||
371 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||
372 | $$unique; \ | ||
373 | fi; \ | ||
374 | fi | ||
375 | ctags: CTAGS | ||
376 | CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ | ||
377 | $(TAGS_FILES) $(LISP) | ||
378 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||
379 | unique=`for i in $$list; do \ | ||
380 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
381 | done | \ | ||
382 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
383 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
384 | test -z "$(CTAGS_ARGS)$$unique" \ | ||
385 | || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ | ||
386 | $$unique | ||
387 | |||
388 | GTAGS: | ||
389 | here=`$(am__cd) $(top_builddir) && pwd` \ | ||
390 | && $(am__cd) $(top_srcdir) \ | ||
391 | && gtags -i $(GTAGS_ARGS) "$$here" | ||
392 | |||
393 | distclean-tags: | ||
394 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | ||
395 | |||
396 | distdir: $(DISTFILES) | ||
397 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||
398 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||
399 | list='$(DISTFILES)'; \ | ||
400 | dist_files=`for file in $$list; do echo $$file; done | \ | ||
401 | sed -e "s|^$$srcdirstrip/||;t" \ | ||
402 | -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | ||
403 | case $$dist_files in \ | ||
404 | */*) $(MKDIR_P) `echo "$$dist_files" | \ | ||
405 | sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | ||
406 | sort -u` ;; \ | ||
407 | esac; \ | ||
408 | for file in $$dist_files; do \ | ||
409 | if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | ||
410 | if test -d $$d/$$file; then \ | ||
411 | dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | ||
412 | if test -d "$(distdir)/$$file"; then \ | ||
413 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||
414 | fi; \ | ||
415 | if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | ||
416 | cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | ||
417 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||
418 | fi; \ | ||
419 | cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | ||
420 | else \ | ||
421 | test -f "$(distdir)/$$file" \ | ||
422 | || cp -p $$d/$$file "$(distdir)/$$file" \ | ||
423 | || exit 1; \ | ||
424 | fi; \ | ||
425 | done | ||
426 | check-am: all-am | ||
427 | $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) | ||
428 | check: check-am | ||
429 | all-am: Makefile | ||
430 | installdirs: | ||
431 | install: install-am | ||
432 | install-exec: install-exec-am | ||
433 | install-data: install-data-am | ||
434 | uninstall: uninstall-am | ||
435 | |||
436 | install-am: all-am | ||
437 | @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | ||
438 | |||
439 | installcheck: installcheck-am | ||
440 | install-strip: | ||
441 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||
442 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||
443 | `test -z '$(STRIP)' || \ | ||
444 | echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install | ||
445 | mostlyclean-generic: | ||
446 | |||
447 | clean-generic: | ||
448 | |||
449 | distclean-generic: | ||
450 | -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | ||
451 | -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) | ||
452 | |||
453 | maintainer-clean-generic: | ||
454 | @echo "This command is intended for maintainers to use" | ||
455 | @echo "it deletes files that may require special tools to rebuild." | ||
456 | -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) | ||
457 | clean: clean-am | ||
458 | |||
459 | clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ | ||
460 | mostlyclean-am | ||
461 | |||
462 | distclean: distclean-am | ||
463 | -rm -rf ./$(DEPDIR) | ||
464 | -rm -f Makefile | ||
465 | distclean-am: clean-am distclean-compile distclean-generic \ | ||
466 | distclean-tags | ||
467 | |||
468 | dvi: dvi-am | ||
469 | |||
470 | dvi-am: | ||
471 | |||
472 | html: html-am | ||
473 | |||
474 | html-am: | ||
475 | |||
476 | info: info-am | ||
477 | |||
478 | info-am: | ||
479 | |||
480 | install-data-am: | ||
481 | |||
482 | install-dvi: install-dvi-am | ||
483 | |||
484 | install-dvi-am: | ||
485 | |||
486 | install-exec-am: | ||
487 | |||
488 | install-html: install-html-am | ||
489 | |||
490 | install-html-am: | ||
491 | |||
492 | install-info: install-info-am | ||
493 | |||
494 | install-info-am: | ||
495 | |||
496 | install-man: | ||
497 | |||
498 | install-pdf: install-pdf-am | ||
499 | |||
500 | install-pdf-am: | ||
501 | |||
502 | install-ps: install-ps-am | ||
503 | |||
504 | install-ps-am: | ||
505 | |||
506 | installcheck-am: | ||
507 | |||
508 | maintainer-clean: maintainer-clean-am | ||
509 | -rm -rf ./$(DEPDIR) | ||
510 | -rm -f Makefile | ||
511 | maintainer-clean-am: distclean-am maintainer-clean-generic | ||
512 | |||
513 | mostlyclean: mostlyclean-am | ||
514 | |||
515 | mostlyclean-am: mostlyclean-compile mostlyclean-generic \ | ||
516 | mostlyclean-libtool | ||
517 | |||
518 | pdf: pdf-am | ||
519 | |||
520 | pdf-am: | ||
521 | |||
522 | ps: ps-am | ||
523 | |||
524 | ps-am: | ||
525 | |||
526 | uninstall-am: | ||
527 | |||
528 | .MAKE: check-am install-am install-strip | ||
529 | |||
530 | .PHONY: CTAGS GTAGS all all-am check check-am clean \ | ||
531 | clean-checkPROGRAMS clean-generic clean-libtool ctags \ | ||
532 | distclean distclean-compile distclean-generic \ | ||
533 | distclean-libtool distclean-tags distdir dvi dvi-am html \ | ||
534 | html-am info info-am install install-am install-data \ | ||
535 | install-data-am install-dvi install-dvi-am install-exec \ | ||
536 | install-exec-am install-html install-html-am install-info \ | ||
537 | install-info-am install-man install-pdf install-pdf-am \ | ||
538 | install-ps install-ps-am install-strip installcheck \ | ||
539 | installcheck-am installdirs maintainer-clean \ | ||
540 | maintainer-clean-generic mostlyclean mostlyclean-compile \ | ||
541 | mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ | ||
542 | tags uninstall uninstall-am | ||
543 | |||
544 | |||
545 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | ||
546 | # Otherwise a system limit (for SysV at least) may be exceeded. | ||
547 | .NOEXPORT: | ||
diff --git a/libraries/eet/src/tests/TODO b/libraries/eet/src/tests/TODO deleted file mode 100644 index da5fa1b..0000000 --- a/libraries/eet/src/tests/TODO +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | The purpose of the current test is to check the validity of the result in a | ||
2 | normal environment. But we should at some point also test the robustness of | ||
3 | this library when for example malloc fail. | ||
diff --git a/libraries/eet/src/tests/cert.pem b/libraries/eet/src/tests/cert.pem deleted file mode 100644 index 3265462..0000000 --- a/libraries/eet/src/tests/cert.pem +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | -----BEGIN CERTIFICATE----- | ||
2 | MIIDmTCCAwKgAwIBAgIJAIKWPcLUT5FAMA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD | ||
3 | VQQGEwJGUjEWMBQGA1UECBMNSWxlLURlLUZyYW5jZTEOMAwGA1UEBxMFUGFyaXMx | ||
4 | FjAUBgNVBAoTDUVubGlnaHRlbm1lbnQxDjAMBgNVBAsTBVRlc3RzMQ0wCwYDVQQD | ||
5 | EwRCQUlMMSIwIAYJKoZIhvcNAQkBFhNjZWRyaWMuYmFpbEBmcmVlLmZyMB4XDTA4 | ||
6 | MDczMDEzNDU1OVoXDTA5MDczMDEzNDU1OVowgZAxCzAJBgNVBAYTAkZSMRYwFAYD | ||
7 | VQQIEw1JbGUtRGUtRnJhbmNlMQ4wDAYDVQQHEwVQYXJpczEWMBQGA1UEChMNRW5s | ||
8 | aWdodGVubWVudDEOMAwGA1UECxMFVGVzdHMxDTALBgNVBAMTBEJBSUwxIjAgBgkq | ||
9 | hkiG9w0BCQEWE2NlZHJpYy5iYWlsQGZyZWUuZnIwgZ8wDQYJKoZIhvcNAQEBBQAD | ||
10 | gY0AMIGJAoGBAMiE486eROKePG0/639D4XTTDR9XSRWp1xqZzq7P+jjWRFbZ/MWV | ||
11 | IVzkc4MRm83UOolbPj76LjM10cseaVAhK7G9CHp2dur4alWvdCXPH5Q+LPOFS9gM | ||
12 | x0Jz9EZeHHOHZKLyJdKSmot+zluwJTLe081RRUwzNKct6JrVVG/7SmITAgMBAAGj | ||
13 | gfgwgfUwHQYDVR0OBBYEFEFar6doT5ImL2rf0rJX7EYQqtYQMIHFBgNVHSMEgb0w | ||
14 | gbqAFEFar6doT5ImL2rf0rJX7EYQqtYQoYGWpIGTMIGQMQswCQYDVQQGEwJGUjEW | ||
15 | MBQGA1UECBMNSWxlLURlLUZyYW5jZTEOMAwGA1UEBxMFUGFyaXMxFjAUBgNVBAoT | ||
16 | DUVubGlnaHRlbm1lbnQxDjAMBgNVBAsTBVRlc3RzMQ0wCwYDVQQDEwRCQUlMMSIw | ||
17 | IAYJKoZIhvcNAQkBFhNjZWRyaWMuYmFpbEBmcmVlLmZyggkAgpY9wtRPkUAwDAYD | ||
18 | VR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQCpZJhk8BgQh0foiMkOwOMKvObq | ||
19 | GxAzqjbr7iU9tEvJgwukCBv59ndBM0B5l5ybQdIYWQJOfZE1HTvB60swZMwqap9X | ||
20 | 5QXgewymuXiVk+roVh34wg8Pg8F588G2BtLIoujY/gN3WJQR7YPD34iTPc4koV+A | ||
21 | 4vs6nmL6wtW21+hsaw== | ||
22 | -----END CERTIFICATE----- | ||
diff --git a/libraries/eet/src/tests/eet_data_suite.c b/libraries/eet/src/tests/eet_data_suite.c deleted file mode 100644 index c4d5e50..0000000 --- a/libraries/eet/src/tests/eet_data_suite.c +++ /dev/null | |||
@@ -1,73 +0,0 @@ | |||
1 | #include <string.h> | ||
2 | #include <stdio.h> | ||
3 | |||
4 | #include <Eina.h> | ||
5 | |||
6 | #include "eet_suite.h" | ||
7 | |||
8 | static char * | ||
9 | _eet_str_direct_alloc(const char *str) | ||
10 | { | ||
11 | return (char *)str; | ||
12 | } /* _eet_str_direct_alloc */ | ||
13 | |||
14 | static void | ||
15 | _eet_str_direct_free(const char *str) | ||
16 | { | ||
17 | /* FIXME: Use attribute unused */ | ||
18 | (void)str; | ||
19 | } /* _eet_str_direct_free */ | ||
20 | |||
21 | static void | ||
22 | _eet_eina_hash_foreach(void *hash, | ||
23 | Eina_Hash_Foreach cb, | ||
24 | void *fdata) | ||
25 | { | ||
26 | if (hash) | ||
27 | eina_hash_foreach(hash, cb, fdata); | ||
28 | } /* _eet_eina_hash_foreach */ | ||
29 | |||
30 | /* Internal wrapper for eina_hash */ | ||
31 | static Eina_Hash * | ||
32 | _eet_eina_hash_add(Eina_Hash *hash, | ||
33 | const char *key, | ||
34 | const void *data) | ||
35 | { | ||
36 | if (!hash) | ||
37 | hash = eina_hash_string_superfast_new(NULL); | ||
38 | |||
39 | if (!hash) | ||
40 | return NULL; | ||
41 | |||
42 | eina_hash_add(hash, key, data); | ||
43 | return hash; | ||
44 | } /* _eet_eina_hash_add */ | ||
45 | |||
46 | static void | ||
47 | _eet_eina_hash_free(Eina_Hash *hash) | ||
48 | { | ||
49 | if (hash) | ||
50 | eina_hash_free(hash); | ||
51 | } /* _eet_eina_hash_free */ | ||
52 | |||
53 | void | ||
54 | eet_test_setup_eddc(Eet_Data_Descriptor_Class *eddc) | ||
55 | { | ||
56 | eddc->version = EET_DATA_DESCRIPTOR_CLASS_VERSION; | ||
57 | eddc->func.mem_alloc = NULL; | ||
58 | eddc->func.mem_free = NULL; | ||
59 | eddc->func.str_alloc = NULL; | ||
60 | eddc->func.str_free = NULL; | ||
61 | eddc->func.list_next = (void *)eina_list_next; | ||
62 | eddc->func.list_append = (void *)eina_list_append; | ||
63 | eddc->func.list_data = (void *)eina_list_data_get; | ||
64 | eddc->func.list_free = (void *)eina_list_free; | ||
65 | eddc->func.hash_foreach = (void *)_eet_eina_hash_foreach; | ||
66 | eddc->func.hash_add = (void *)_eet_eina_hash_add; | ||
67 | eddc->func.hash_free = (void *)_eet_eina_hash_free; | ||
68 | eddc->func.str_direct_alloc = (void *)_eet_str_direct_alloc; | ||
69 | eddc->func.str_direct_free = (void *)_eet_str_direct_free; | ||
70 | eddc->func.array_alloc = NULL; | ||
71 | eddc->func.array_free = NULL; | ||
72 | } /* eet_test_setup_eddc */ | ||
73 | |||
diff --git a/libraries/eet/src/tests/eet_suite.c b/libraries/eet/src/tests/eet_suite.c deleted file mode 100644 index 91ef2a7..0000000 --- a/libraries/eet/src/tests/eet_suite.c +++ /dev/null | |||
@@ -1,2779 +0,0 @@ | |||
1 | #ifdef HAVE_CONFIG_H | ||
2 | # include <config.h> | ||
3 | #endif /* ifdef HAVE_CONFIG_H */ | ||
4 | |||
5 | #include <sys/types.h> | ||
6 | #include <sys/stat.h> | ||
7 | #include <stdlib.h> | ||
8 | #include <string.h> | ||
9 | #include <strings.h> | ||
10 | #include <stdio.h> | ||
11 | #include <fcntl.h> | ||
12 | #include <unistd.h> | ||
13 | |||
14 | #include <Eina.h> | ||
15 | |||
16 | #ifdef EINA_HAVE_THREADS | ||
17 | #if ((!defined(_WIN32_WCE)) && (!defined(_WIN32))) | ||
18 | # include <pthread.h> | ||
19 | # define _EET_INCLUDED_PTHREAD | ||
20 | #endif | ||
21 | #endif /* ifdef EINA_HAVE_THREADS */ | ||
22 | |||
23 | #include <check.h> | ||
24 | |||
25 | #include "eet_suite.h" | ||
26 | |||
27 | #define CERT_DIR ((*TESTS_SRC_DIR == '/') ? TESTS_SRC_DIR : "src/tests/" TESTS_SRC_DIR) | ||
28 | |||
29 | START_TEST(eet_test_init) | ||
30 | { | ||
31 | int ret; | ||
32 | |||
33 | ret = eet_init(); | ||
34 | fail_if(ret != 1); | ||
35 | |||
36 | ret = eet_shutdown(); | ||
37 | fail_if(ret != 0); | ||
38 | } | ||
39 | END_TEST | ||
40 | |||
41 | typedef struct _Eet_Test_Basic_Type Eet_Test_Basic_Type; | ||
42 | struct _Eet_Test_Basic_Type | ||
43 | { | ||
44 | char c; | ||
45 | short s; | ||
46 | int i; | ||
47 | long long l; | ||
48 | char *str; | ||
49 | char *istr; | ||
50 | float f1; | ||
51 | float f2; | ||
52 | double d; | ||
53 | unsigned char uc; | ||
54 | unsigned short us; | ||
55 | unsigned int ui; | ||
56 | unsigned long long ul; | ||
57 | Eet_Test_Basic_Type *empty; | ||
58 | Eet_Test_Basic_Type *with; | ||
59 | }; | ||
60 | |||
61 | #define EET_TEST_CHAR 0x42 | ||
62 | #define EET_TEST_SHORT 0x4224 | ||
63 | #define EET_TEST_INT 0x42211224 | ||
64 | #define EET_TEST_LONG_LONG 0x84CB42211224BC48 | ||
65 | #define EET_TEST_STRING "my little test with escape \\\"" | ||
66 | #define EET_TEST_KEY1 "key1" | ||
67 | #define EET_TEST_KEY2 "key2" | ||
68 | #define EET_TEST_FLOAT 123.45689 | ||
69 | #define EET_TEST_FLOAT2 1.0 | ||
70 | #define EET_TEST_FLOAT3 0.25 | ||
71 | #define EET_TEST_FLOAT4 0.0001234 | ||
72 | #define EET_TEST_DOUBLE 123456789.9876543210 | ||
73 | #define EET_TEST_DOUBLE2 1.0 | ||
74 | #define EET_TEST_DOUBLE3 0.25 | ||
75 | #define EET_TEST_FILE_KEY1 "keys/data/1" | ||
76 | #define EET_TEST_FILE_KEY2 "keys/data/2" | ||
77 | #define EET_TEST_FILE_IMAGE "keys/images/" | ||
78 | |||
79 | typedef struct _Eet_Test_Image Eet_Test_Image; | ||
80 | struct _Eet_Test_Image | ||
81 | { | ||
82 | unsigned int w; | ||
83 | unsigned int h; | ||
84 | int alpha; | ||
85 | unsigned int color[64]; | ||
86 | }; | ||
87 | |||
88 | static const Eet_Test_Image test_noalpha = { | ||
89 | 8, 8, 0, | ||
90 | { | ||
91 | 0x00AA0000, 0x0000AA00, 0x000000AA, 0x00110000, 0x00AA0000, 0x0000AA00, | ||
92 | 0x000000AA, 0x00110000, | ||
93 | 0x0000AA00, 0x000000AA, 0x00110000, 0x00AA0000, 0x0000AA00, 0x000000AA, | ||
94 | 0x00110000, 0x00AA0000, | ||
95 | 0x000000AA, 0x00110000, 0x00AA0000, 0x0000AA00, 0x000000AA, 0x00110000, | ||
96 | 0x00AA0000, 0x0000AA00, | ||
97 | 0x00110000, 0x00AA0000, 0x0000AA00, 0x000000AA, 0x00110000, 0x00AA0000, | ||
98 | 0x0000AA00, 0x000000AA, | ||
99 | 0x00AA0000, 0x0000AA00, 0x000000AA, 0x00110000, 0x00AA0000, 0x0000AA00, | ||
100 | 0x000000AA, 0x00110000, | ||
101 | 0x0000AA00, 0x000000AA, 0x00110000, 0x00AA0000, 0x0000AA00, 0x000000AA, | ||
102 | 0x00110000, 0x00AA0000, | ||
103 | 0x000000AA, 0x00110000, 0x00AA0000, 0x0000AA00, 0x000000AA, 0x00110000, | ||
104 | 0x00AA0000, 0x0000AA00, | ||
105 | 0x00110000, 0x00AA0000, 0x0000AA00, 0x000000AA, 0x00110000, 0x00AA0000, | ||
106 | 0x0000AA00, 0x000000AA | ||
107 | } | ||
108 | }; | ||
109 | |||
110 | static const Eet_Test_Image test_alpha = { | ||
111 | 8, 8, 1, | ||
112 | { | ||
113 | 0x0FAA0000, 0x0000AA00, 0x000000AA, 0x00110000, 0x00AA0000, 0x0000AA00, | ||
114 | 0x000000AA, 0x0F110000, | ||
115 | 0x0000AA00, 0x0F0000AA, 0x00110000, 0x00AA0000, 0x0000AA00, 0x000000AA, | ||
116 | 0x0F110000, 0x00AA0000, | ||
117 | 0x000000AA, 0x00110000, 0x0FAA0000, 0x0000AA00, 0x000000AA, 0x0F110000, | ||
118 | 0x00AA0000, 0x0000AA00, | ||
119 | 0x00110000, 0x00AA0000, 0x0000AA00, 0x0F0000AA, 0x0F110000, 0x00AA0000, | ||
120 | 0x0000AA00, 0x000000AA, | ||
121 | 0x00AA0000, 0x0000AA00, 0x000000AA, 0x0F110000, 0x0FAA0000, 0x0000AA00, | ||
122 | 0x000000AA, 0x00110000, | ||
123 | 0x0000AA00, 0x000000AA, 0x0F110000, 0x00AA0000, 0x0000AA00, 0x0F0000AA, | ||
124 | 0x00110000, 0x00AA0000, | ||
125 | 0x000000AA, 0x0F110000, 0x00AA0000, 0x0000AA00, 0x000000AA, 0x00110000, | ||
126 | 0x0FAA0000, 0x0000AA00, | ||
127 | 0x0F110000, 0x00AA0000, 0x0000AA00, 0x000000AA, 0x00110000, 0x00AA0000, | ||
128 | 0x0000AA00, 0x0F0000AA | ||
129 | } | ||
130 | }; | ||
131 | |||
132 | static void | ||
133 | _eet_test_basic_set(Eet_Test_Basic_Type *res, | ||
134 | int i) | ||
135 | { | ||
136 | res->c = EET_TEST_CHAR; | ||
137 | res->s = EET_TEST_SHORT; | ||
138 | res->i = EET_TEST_INT + i; | ||
139 | res->l = EET_TEST_LONG_LONG; | ||
140 | res->str = EET_TEST_STRING; | ||
141 | res->istr = EET_TEST_STRING; | ||
142 | res->f1 = -EET_TEST_FLOAT; | ||
143 | res->d = -EET_TEST_DOUBLE; | ||
144 | res->f2 = EET_TEST_FLOAT4; | ||
145 | res->uc = EET_TEST_CHAR; | ||
146 | res->us = EET_TEST_SHORT; | ||
147 | res->ui = EET_TEST_INT; | ||
148 | res->ul = EET_TEST_LONG_LONG; | ||
149 | res->empty = NULL; | ||
150 | res->with = NULL; | ||
151 | |||
152 | if (i == 0) | ||
153 | { | ||
154 | Eet_Test_Basic_Type *tmp; | ||
155 | |||
156 | tmp = malloc(sizeof (Eet_Test_Basic_Type)); | ||
157 | fail_if(!tmp); | ||
158 | |||
159 | res->with = tmp; | ||
160 | tmp->c = EET_TEST_CHAR; | ||
161 | tmp->s = EET_TEST_SHORT; | ||
162 | tmp->i = EET_TEST_INT + i + 1; | ||
163 | tmp->l = EET_TEST_LONG_LONG; | ||
164 | tmp->str = EET_TEST_STRING; | ||
165 | tmp->istr = EET_TEST_STRING; | ||
166 | tmp->f1 = -EET_TEST_FLOAT; | ||
167 | tmp->d = -EET_TEST_DOUBLE; | ||
168 | tmp->f2 = EET_TEST_FLOAT4; | ||
169 | tmp->uc = EET_TEST_CHAR; | ||
170 | tmp->us = EET_TEST_SHORT; | ||
171 | tmp->ui = EET_TEST_INT; | ||
172 | tmp->ul = EET_TEST_LONG_LONG; | ||
173 | tmp->empty = NULL; | ||
174 | tmp->with = NULL; | ||
175 | } | ||
176 | } /* _eet_test_basic_set */ | ||
177 | |||
178 | static void | ||
179 | _eet_test_basic_check(Eet_Test_Basic_Type *result, | ||
180 | int i) | ||
181 | { | ||
182 | float tmp; | ||
183 | |||
184 | fail_if(result->c != EET_TEST_CHAR); | ||
185 | fail_if(result->s != EET_TEST_SHORT); | ||
186 | fail_if(result->i != EET_TEST_INT + i); | ||
187 | fail_if(result->l != (long long)EET_TEST_LONG_LONG); | ||
188 | fail_if(strcmp(result->str, EET_TEST_STRING) != 0); | ||
189 | fail_if(strcmp(result->istr, EET_TEST_STRING) != 0); | ||
190 | fail_if(result->uc != EET_TEST_CHAR); | ||
191 | fail_if(result->us != EET_TEST_SHORT); | ||
192 | fail_if(result->ui != EET_TEST_INT); | ||
193 | fail_if(result->ul != EET_TEST_LONG_LONG); | ||
194 | |||
195 | tmp = (result->f1 + EET_TEST_FLOAT); | ||
196 | if (tmp < 0) | ||
197 | tmp = -tmp; | ||
198 | |||
199 | fail_if(tmp > 0.005); | ||
200 | |||
201 | tmp = (result->f2 - EET_TEST_FLOAT4); | ||
202 | if (tmp < 0) | ||
203 | tmp = -tmp; | ||
204 | |||
205 | fail_if(tmp > 0.005); | ||
206 | |||
207 | tmp = (result->d + EET_TEST_DOUBLE); | ||
208 | if (tmp < 0) | ||
209 | tmp = -tmp; | ||
210 | |||
211 | fail_if(tmp > 0.00005); | ||
212 | |||
213 | fail_if(result->empty != NULL); | ||
214 | if (i == 0) | ||
215 | { | ||
216 | Eet_Test_Basic_Type *tmp2; | ||
217 | |||
218 | tmp2 = result->with; | ||
219 | fail_if(tmp2 == NULL); | ||
220 | |||
221 | fail_if(tmp2->c != EET_TEST_CHAR); | ||
222 | fail_if(tmp2->s != EET_TEST_SHORT); | ||
223 | fail_if(tmp2->i != EET_TEST_INT + i + 1); | ||
224 | fail_if(tmp2->l != (long long)EET_TEST_LONG_LONG); | ||
225 | fail_if(strcmp(tmp2->str, EET_TEST_STRING) != 0); | ||
226 | fail_if(strcmp(tmp2->istr, EET_TEST_STRING) != 0); | ||
227 | fail_if(tmp2->uc != EET_TEST_CHAR); | ||
228 | fail_if(tmp2->us != EET_TEST_SHORT); | ||
229 | fail_if(tmp2->ui != EET_TEST_INT); | ||
230 | fail_if(tmp2->ul != EET_TEST_LONG_LONG); | ||
231 | } | ||
232 | else | ||
233 | fail_if(result->with != NULL); | ||
234 | } /* _eet_test_basic_check */ | ||
235 | |||
236 | static void | ||
237 | _eet_build_basic_descriptor(Eet_Data_Descriptor *edd) | ||
238 | { | ||
239 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
240 | Eet_Test_Basic_Type, | ||
241 | "c", | ||
242 | c, | ||
243 | EET_T_CHAR); | ||
244 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
245 | Eet_Test_Basic_Type, | ||
246 | "s", | ||
247 | s, | ||
248 | EET_T_SHORT); | ||
249 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
250 | Eet_Test_Basic_Type, | ||
251 | "i", | ||
252 | i, | ||
253 | EET_T_INT); | ||
254 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
255 | Eet_Test_Basic_Type, | ||
256 | "l", | ||
257 | l, | ||
258 | EET_T_LONG_LONG); | ||
259 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
260 | Eet_Test_Basic_Type, | ||
261 | "str", | ||
262 | str, | ||
263 | EET_T_STRING); | ||
264 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
265 | Eet_Test_Basic_Type, | ||
266 | "istr", | ||
267 | istr, | ||
268 | EET_T_INLINED_STRING); | ||
269 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
270 | Eet_Test_Basic_Type, | ||
271 | "f1", | ||
272 | f1, | ||
273 | EET_T_FLOAT); | ||
274 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
275 | Eet_Test_Basic_Type, | ||
276 | "f2", | ||
277 | f2, | ||
278 | EET_T_FLOAT); | ||
279 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
280 | Eet_Test_Basic_Type, | ||
281 | "d", | ||
282 | d, | ||
283 | EET_T_DOUBLE); | ||
284 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
285 | Eet_Test_Basic_Type, | ||
286 | "uc", | ||
287 | uc, | ||
288 | EET_T_UCHAR); | ||
289 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
290 | Eet_Test_Basic_Type, | ||
291 | "us", | ||
292 | us, | ||
293 | EET_T_USHORT); | ||
294 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
295 | Eet_Test_Basic_Type, | ||
296 | "ui", | ||
297 | ui, | ||
298 | EET_T_UINT); | ||
299 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
300 | Eet_Test_Basic_Type, | ||
301 | "ul", | ||
302 | ul, | ||
303 | EET_T_ULONG_LONG); | ||
304 | |||
305 | EET_DATA_DESCRIPTOR_ADD_SUB(edd, Eet_Test_Basic_Type, "empty", empty, edd); | ||
306 | EET_DATA_DESCRIPTOR_ADD_SUB(edd, Eet_Test_Basic_Type, "with", with, edd); | ||
307 | } /* _eet_build_basic_descriptor */ | ||
308 | |||
309 | START_TEST(eet_test_basic_data_type_encoding_decoding) | ||
310 | { | ||
311 | Eet_Data_Descriptor *edd; | ||
312 | Eet_Test_Basic_Type *result; | ||
313 | Eet_Data_Descriptor_Class eddc; | ||
314 | Eet_Test_Basic_Type etbt; | ||
315 | void *transfert; | ||
316 | int size; | ||
317 | |||
318 | eet_init(); | ||
319 | |||
320 | _eet_test_basic_set(&etbt, 0); | ||
321 | |||
322 | eet_test_setup_eddc(&eddc); | ||
323 | eddc.name = "Eet_Test_Basic_Type"; | ||
324 | eddc.size = sizeof(Eet_Test_Basic_Type); | ||
325 | |||
326 | edd = eet_data_descriptor_stream_new(&eddc); | ||
327 | fail_if(!edd); | ||
328 | |||
329 | _eet_build_basic_descriptor(edd); | ||
330 | |||
331 | transfert = eet_data_descriptor_encode(edd, &etbt, &size); | ||
332 | fail_if(!transfert || size <= 0); | ||
333 | |||
334 | result = eet_data_descriptor_decode(edd, transfert, size); | ||
335 | fail_if(!result); | ||
336 | |||
337 | _eet_test_basic_check(result, 0); | ||
338 | |||
339 | free(result->str); | ||
340 | free(result); | ||
341 | |||
342 | eet_data_descriptor_free(edd); | ||
343 | |||
344 | eet_shutdown(); | ||
345 | } | ||
346 | END_TEST | ||
347 | |||
348 | typedef struct _Eet_Test_Ex_Type Eet_Test_Ex_Type; | ||
349 | struct _Eet_Test_Ex_Type | ||
350 | { | ||
351 | char c; | ||
352 | short s; | ||
353 | int i; | ||
354 | unsigned long long l; | ||
355 | char *str; | ||
356 | char *istr; | ||
357 | float f1; | ||
358 | float f2; | ||
359 | float f3; | ||
360 | float f4; | ||
361 | double d1; | ||
362 | double d2; | ||
363 | double d3; | ||
364 | double d4; | ||
365 | Eina_List *list; | ||
366 | Eina_Hash *hash; | ||
367 | Eina_List *ilist; | ||
368 | Eina_List *slist; | ||
369 | Eina_Hash *ihash; | ||
370 | Eina_Hash *shash; | ||
371 | Eet_Test_Basic_Type sarray1[10]; | ||
372 | unsigned int sarray2[5]; | ||
373 | unsigned int varray1_count; | ||
374 | unsigned int *varray1; | ||
375 | unsigned int varray2_count; | ||
376 | Eet_Test_Basic_Type *varray2; | ||
377 | unsigned char uc; | ||
378 | unsigned short us; | ||
379 | unsigned int ui; | ||
380 | unsigned long long ul; | ||
381 | char *charray[10]; | ||
382 | }; | ||
383 | |||
384 | static int i42 = 42; | ||
385 | static int i7 = 7; | ||
386 | |||
387 | static void | ||
388 | _eet_build_ex_descriptor(Eet_Data_Descriptor *edd) | ||
389 | { | ||
390 | Eet_Data_Descriptor_Class eddc; | ||
391 | Eet_Test_Ex_Type etbt; | ||
392 | Eet_Data_Descriptor *eddb; | ||
393 | |||
394 | eet_test_setup_eddc(&eddc); | ||
395 | eddc.name = "Eet_Test_Basic_Type"; | ||
396 | eddc.size = sizeof(Eet_Test_Basic_Type); | ||
397 | eddb = eet_data_descriptor_file_new(&eddc); | ||
398 | fail_if(!eddb); | ||
399 | |||
400 | _eet_build_basic_descriptor(eddb); | ||
401 | |||
402 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
403 | Eet_Test_Ex_Type, | ||
404 | "c", | ||
405 | c, | ||
406 | EET_T_CHAR); | ||
407 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
408 | Eet_Test_Ex_Type, | ||
409 | "s", | ||
410 | s, | ||
411 | EET_T_SHORT); | ||
412 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, Eet_Test_Ex_Type, "i", i, EET_T_INT); | ||
413 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
414 | Eet_Test_Ex_Type, | ||
415 | "l", | ||
416 | l, | ||
417 | EET_T_LONG_LONG); | ||
418 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
419 | Eet_Test_Ex_Type, | ||
420 | "str", | ||
421 | str, | ||
422 | EET_T_STRING); | ||
423 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
424 | Eet_Test_Ex_Type, | ||
425 | "istr", | ||
426 | istr, | ||
427 | EET_T_INLINED_STRING); | ||
428 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
429 | Eet_Test_Ex_Type, | ||
430 | "f1", | ||
431 | f1, | ||
432 | EET_T_FLOAT); | ||
433 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
434 | Eet_Test_Ex_Type, | ||
435 | "f2", | ||
436 | f2, | ||
437 | EET_T_FLOAT); | ||
438 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
439 | Eet_Test_Ex_Type, | ||
440 | "f3", | ||
441 | f3, | ||
442 | EET_T_FLOAT); | ||
443 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
444 | Eet_Test_Ex_Type, | ||
445 | "f4", | ||
446 | f4, | ||
447 | EET_T_FLOAT); | ||
448 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
449 | Eet_Test_Ex_Type, | ||
450 | "d1", | ||
451 | d1, | ||
452 | EET_T_DOUBLE); | ||
453 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
454 | Eet_Test_Ex_Type, | ||
455 | "d2", | ||
456 | d2, | ||
457 | EET_T_DOUBLE); | ||
458 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
459 | Eet_Test_Ex_Type, | ||
460 | "d3", | ||
461 | d3, | ||
462 | EET_T_DOUBLE); | ||
463 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
464 | Eet_Test_Ex_Type, | ||
465 | "d4", | ||
466 | d4, | ||
467 | EET_T_DOUBLE); | ||
468 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
469 | Eet_Test_Ex_Type, | ||
470 | "uc", | ||
471 | uc, | ||
472 | EET_T_UCHAR); | ||
473 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
474 | Eet_Test_Ex_Type, | ||
475 | "us", | ||
476 | us, | ||
477 | EET_T_USHORT); | ||
478 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
479 | Eet_Test_Ex_Type, | ||
480 | "ui", | ||
481 | ui, | ||
482 | EET_T_UINT); | ||
483 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd, | ||
484 | Eet_Test_Ex_Type, | ||
485 | "ul", | ||
486 | ul, | ||
487 | EET_T_ULONG_LONG); | ||
488 | EET_DATA_DESCRIPTOR_ADD_ARRAY(edd, | ||
489 | Eet_Test_Ex_Type, | ||
490 | "sarray1", | ||
491 | sarray1, | ||
492 | eddb); | ||
493 | EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY(edd, | ||
494 | Eet_Test_Ex_Type, | ||
495 | "varray2", | ||
496 | varray2, | ||
497 | eddb); | ||
498 | eet_data_descriptor_element_add(edd, | ||
499 | "varray1", | ||
500 | EET_T_INT, | ||
501 | EET_G_VAR_ARRAY, | ||
502 | (char *)(&(etbt.varray1)) - (char *)(&(etbt)), | ||
503 | (char *)(&(etbt.varray1_count)) - | ||
504 | (char *)(&(etbt)), | ||
505 | /* 0, */ NULL, | ||
506 | NULL); | ||
507 | eet_data_descriptor_element_add(edd, "sarray2", EET_T_INT, EET_G_ARRAY, | ||
508 | (char *)(&(etbt.sarray2)) - (char *)(&(etbt)), | ||
509 | /* 0, */ sizeof(etbt.sarray2) / | ||
510 | sizeof(etbt.sarray2[0]), NULL, NULL); | ||
511 | eet_data_descriptor_element_add(edd, "charray", EET_T_STRING, EET_G_ARRAY, | ||
512 | (char *)(&(etbt.charray)) - (char *)(&(etbt)), | ||
513 | /* 0, */ sizeof(etbt.charray) / | ||
514 | sizeof(etbt.charray[0]), NULL, NULL); | ||
515 | EET_DATA_DESCRIPTOR_ADD_LIST(edd, Eet_Test_Ex_Type, "list", list, edd); | ||
516 | EET_DATA_DESCRIPTOR_ADD_HASH(edd, Eet_Test_Ex_Type, "hash", hash, edd); | ||
517 | eet_data_descriptor_element_add(edd, "ilist", EET_T_INT, EET_G_LIST, | ||
518 | (char *)(&(etbt.ilist)) - (char *)(&(etbt)), | ||
519 | 0, /* 0, */ NULL, NULL); | ||
520 | eet_data_descriptor_element_add(edd, "ihash", EET_T_INT, EET_G_HASH, | ||
521 | (char *)(&(etbt.ihash)) - (char *)(&(etbt)), | ||
522 | 0, /* 0, */ NULL, NULL); | ||
523 | eet_data_descriptor_element_add(edd, "slist", EET_T_STRING, EET_G_LIST, | ||
524 | (char *)(&(etbt.slist)) - (char *)(&(etbt)), | ||
525 | 0, /* 0, */ NULL, NULL); | ||
526 | eet_data_descriptor_element_add(edd, "shash", EET_T_STRING, EET_G_HASH, | ||
527 | (char *)(&(etbt.shash)) - (char *)(&(etbt)), | ||
528 | 0, /* 0, */ NULL, NULL); | ||
529 | } /* _eet_build_ex_descriptor */ | ||
530 | |||
531 | static Eet_Test_Ex_Type * | ||
532 | _eet_test_ex_set(Eet_Test_Ex_Type *res, | ||
533 | int offset) | ||
534 | { | ||
535 | unsigned int i; | ||
536 | |||
537 | if (!res) | ||
538 | res = malloc(sizeof(Eet_Test_Ex_Type)); | ||
539 | |||
540 | if (!res) | ||
541 | return NULL; | ||
542 | |||
543 | res->c = EET_TEST_CHAR + offset; | ||
544 | res->s = EET_TEST_SHORT + offset; | ||
545 | res->i = EET_TEST_INT + offset; | ||
546 | res->l = EET_TEST_LONG_LONG + offset; | ||
547 | res->str = EET_TEST_STRING; | ||
548 | res->istr = EET_TEST_STRING; | ||
549 | res->f1 = EET_TEST_FLOAT + offset; | ||
550 | res->f2 = -(EET_TEST_FLOAT2 + offset); | ||
551 | res->f3 = EET_TEST_FLOAT3 + offset; | ||
552 | res->f4 = EET_TEST_FLOAT2 + offset; | ||
553 | res->d1 = EET_TEST_DOUBLE + offset; | ||
554 | res->d2 = -(EET_TEST_DOUBLE2 + offset); | ||
555 | res->d3 = EET_TEST_DOUBLE3 + offset; | ||
556 | res->d4 = EET_TEST_DOUBLE2 + offset; | ||
557 | res->list = NULL; | ||
558 | res->hash = NULL; | ||
559 | res->ilist = NULL; | ||
560 | res->ihash = NULL; | ||
561 | res->slist = NULL; | ||
562 | res->shash = NULL; | ||
563 | for (i = 0; i < sizeof(res->charray) / sizeof(res->charray[0]); ++i) | ||
564 | res->charray[i] = NULL; | ||
565 | |||
566 | res->varray2 = malloc(sizeof (Eet_Test_Basic_Type) * 10); | ||
567 | res->varray1 = malloc(sizeof (int) * 5); | ||
568 | fail_if(!res->varray1 || !res->varray2); | ||
569 | for (i = 0; i < 10; ++i) | ||
570 | { | ||
571 | _eet_test_basic_set(res->sarray1 + i, i); | ||
572 | _eet_test_basic_set(res->varray2 + i, i); | ||
573 | } | ||
574 | res->varray2_count = 10; | ||
575 | for (i = 0; i < 5; ++i) | ||
576 | { | ||
577 | res->sarray2[i] = i * 42 + 1; | ||
578 | res->varray1[i] = i * 42 + 1; | ||
579 | } | ||
580 | res->varray1_count = 5; | ||
581 | |||
582 | res->uc = EET_TEST_CHAR + offset; | ||
583 | res->us = EET_TEST_SHORT + offset; | ||
584 | res->ui = EET_TEST_INT + offset; | ||
585 | res->ul = EET_TEST_LONG_LONG + offset; | ||
586 | |||
587 | return res; | ||
588 | } /* _eet_test_ex_set */ | ||
589 | |||
590 | static int | ||
591 | _eet_test_ex_check(Eet_Test_Ex_Type *stuff, | ||
592 | int offset) | ||
593 | { | ||
594 | double tmp; | ||
595 | unsigned int i; | ||
596 | |||
597 | if (!stuff) | ||
598 | return 1; | ||
599 | |||
600 | if (stuff->c != EET_TEST_CHAR + offset) | ||
601 | return 1; | ||
602 | |||
603 | if (stuff->s != EET_TEST_SHORT + offset) | ||
604 | return 1; | ||
605 | |||
606 | if (stuff->i != EET_TEST_INT + offset) | ||
607 | return 1; | ||
608 | |||
609 | if (stuff->l != EET_TEST_LONG_LONG + offset) | ||
610 | return 1; | ||
611 | |||
612 | if (strcmp(stuff->str, EET_TEST_STRING) != 0) | ||
613 | return 1; | ||
614 | |||
615 | if (strcmp(stuff->istr, EET_TEST_STRING) != 0) | ||
616 | return 1; | ||
617 | |||
618 | tmp = stuff->f1 - (EET_TEST_FLOAT + offset); | ||
619 | if (tmp < 0) | ||
620 | tmp = -tmp; | ||
621 | |||
622 | if (tmp > 0.005) | ||
623 | return 1; | ||
624 | |||
625 | tmp = stuff->d1 - (EET_TEST_DOUBLE + offset); | ||
626 | if (tmp < 0) | ||
627 | tmp = -tmp; | ||
628 | |||
629 | if (tmp > 0.00005) | ||
630 | return 1; | ||
631 | |||
632 | if (stuff->f2 != -(EET_TEST_FLOAT2 + offset)) | ||
633 | return 1; | ||
634 | |||
635 | if (stuff->d2 != -(EET_TEST_DOUBLE2 + offset)) | ||
636 | return 1; | ||
637 | |||
638 | if (stuff->f3 != EET_TEST_FLOAT3 + offset) | ||
639 | return 1; | ||
640 | |||
641 | if (stuff->d3 != EET_TEST_DOUBLE3 + offset) | ||
642 | return 1; | ||
643 | |||
644 | if (stuff->f4 != EET_TEST_FLOAT2 + offset) | ||
645 | return 1; | ||
646 | |||
647 | if (stuff->d4 != EET_TEST_DOUBLE2 + offset) | ||
648 | return 1; | ||
649 | |||
650 | if (stuff->uc != EET_TEST_CHAR + offset) | ||
651 | return 1; | ||
652 | |||
653 | if (stuff->us != EET_TEST_SHORT + offset) | ||
654 | return 1; | ||
655 | |||
656 | if (stuff->ui != (unsigned int)EET_TEST_INT + offset) | ||
657 | return 1; | ||
658 | |||
659 | if (stuff->ul != EET_TEST_LONG_LONG + offset) | ||
660 | return 1; | ||
661 | |||
662 | if (stuff->varray1_count != 5) | ||
663 | return 1; | ||
664 | |||
665 | if (stuff->varray2_count != 10) | ||
666 | return 1; | ||
667 | |||
668 | for (i = 0; i < 5; ++i) | ||
669 | if (stuff->sarray2[i] != i * 42 + 1 && stuff->varray1[i] != i * 42 + 1) | ||
670 | return 1; | ||
671 | |||
672 | for (i = 0; i < 10; ++i) | ||
673 | { | ||
674 | _eet_test_basic_check(stuff->sarray1 + i, i); | ||
675 | _eet_test_basic_check(stuff->varray2 + i, i); | ||
676 | } | ||
677 | |||
678 | return 0; | ||
679 | } /* _eet_test_ex_check */ | ||
680 | |||
681 | static Eina_Bool | ||
682 | func(__UNUSED__ const Eina_Hash *hash, | ||
683 | const void *key, | ||
684 | void *data, | ||
685 | void *fdata) | ||
686 | { | ||
687 | int *res = fdata; | ||
688 | |||
689 | if (strcmp(key, EET_TEST_KEY1) != 0 | ||
690 | && strcmp(key, EET_TEST_KEY2) != 0) | ||
691 | *res = 1; | ||
692 | |||
693 | if (_eet_test_ex_check(data, 2)) | ||
694 | *res = 1; | ||
695 | |||
696 | return EINA_TRUE; | ||
697 | } /* func */ | ||
698 | |||
699 | static Eina_Bool | ||
700 | func7(__UNUSED__ const Eina_Hash *hash, | ||
701 | __UNUSED__ const void *key, | ||
702 | void *data, | ||
703 | void *fdata) | ||
704 | { | ||
705 | int *res = fdata; | ||
706 | int *val; | ||
707 | |||
708 | val = data; | ||
709 | if (!val) | ||
710 | *res = 1; | ||
711 | |||
712 | if (*val != 7) | ||
713 | *res = 1; | ||
714 | |||
715 | return EINA_TRUE; | ||
716 | } /* func7 */ | ||
717 | |||
718 | START_TEST(eet_test_data_type_encoding_decoding) | ||
719 | { | ||
720 | Eet_Data_Descriptor *edd; | ||
721 | Eet_Test_Ex_Type *result; | ||
722 | void *transfert; | ||
723 | Eet_Data_Descriptor_Class eddc; | ||
724 | Eet_Test_Ex_Type etbt; | ||
725 | int size; | ||
726 | int test; | ||
727 | |||
728 | eet_init(); | ||
729 | |||
730 | _eet_test_ex_set(&etbt, 0); | ||
731 | etbt.list = eina_list_prepend(etbt.list, _eet_test_ex_set(NULL, 1)); | ||
732 | etbt.hash = eina_hash_string_superfast_new(NULL); | ||
733 | eina_hash_add(etbt.hash, EET_TEST_KEY1, _eet_test_ex_set(NULL, 2)); | ||
734 | etbt.ilist = eina_list_prepend(etbt.ilist, &i42); | ||
735 | etbt.ihash = eina_hash_string_superfast_new(NULL); | ||
736 | eina_hash_add(etbt.ihash, EET_TEST_KEY1, &i7); | ||
737 | etbt.slist = eina_list_prepend(NULL, "test"); | ||
738 | etbt.shash = eina_hash_string_superfast_new(NULL); | ||
739 | eina_hash_add(etbt.shash, EET_TEST_KEY1, "test"); | ||
740 | memset(&etbt.charray, 0, sizeof(etbt.charray)); | ||
741 | etbt.charray[0] = "test"; | ||
742 | etbt.charray[5] = "plouf"; | ||
743 | |||
744 | eet_test_setup_eddc(&eddc); | ||
745 | eddc.name = "Eet_Test_Ex_Type"; | ||
746 | eddc.size = sizeof(Eet_Test_Ex_Type); | ||
747 | |||
748 | edd = eet_data_descriptor_file_new(&eddc); | ||
749 | fail_if(!edd); | ||
750 | |||
751 | _eet_build_ex_descriptor(edd); | ||
752 | |||
753 | transfert = eet_data_descriptor_encode(edd, &etbt, &size); | ||
754 | fail_if(!transfert || size <= 0); | ||
755 | |||
756 | result = eet_data_descriptor_decode(edd, transfert, size); | ||
757 | fail_if(!result); | ||
758 | |||
759 | fail_if(_eet_test_ex_check(result, 0) != 0); | ||
760 | fail_if(_eet_test_ex_check(eina_list_data_get(result->list), 1) != 0); | ||
761 | fail_if(eina_list_data_get(result->ilist) == NULL); | ||
762 | fail_if(*((int *)eina_list_data_get(result->ilist)) != 42); | ||
763 | fail_if(eina_list_data_get(result->slist) == NULL); | ||
764 | fail_if(strcmp(eina_list_data_get(result->slist), "test") != 0); | ||
765 | fail_if(eina_hash_find(result->shash, EET_TEST_KEY1) == NULL); | ||
766 | fail_if(strcmp(eina_hash_find(result->shash, EET_TEST_KEY1), "test") != 0); | ||
767 | fail_if(strcmp(result->charray[0], "test") != 0); | ||
768 | fail_if(strcmp(result->charray[5], "plouf") != 0); | ||
769 | |||
770 | test = 0; | ||
771 | if (result->hash) | ||
772 | eina_hash_foreach(result->hash, func, &test); | ||
773 | |||
774 | fail_if(test != 0); | ||
775 | if (result->ihash) | ||
776 | eina_hash_foreach(result->ihash, func7, &test); | ||
777 | |||
778 | fail_if(test != 0); | ||
779 | |||
780 | eet_shutdown(); | ||
781 | } | ||
782 | END_TEST | ||
783 | |||
784 | static void | ||
785 | append_string(void *data, | ||
786 | const char *str) | ||
787 | { | ||
788 | char **string = data; | ||
789 | int length; | ||
790 | |||
791 | if (!data) | ||
792 | return; | ||
793 | |||
794 | length = *string ? strlen(*string) : 0; | ||
795 | *string = realloc(*string, strlen(str) + length + 1); | ||
796 | |||
797 | memcpy((*string) + length, str, strlen(str) + 1); | ||
798 | } /* append_string */ | ||
799 | |||
800 | START_TEST(eet_test_data_type_dump_undump) | ||
801 | { | ||
802 | Eet_Data_Descriptor *edd; | ||
803 | Eet_Test_Ex_Type *result; | ||
804 | Eet_Data_Descriptor_Class eddc; | ||
805 | Eet_Test_Ex_Type etbt; | ||
806 | char *transfert1; | ||
807 | char *transfert2; | ||
808 | char *string1; | ||
809 | char *string2; | ||
810 | int size1; | ||
811 | int size2; | ||
812 | int test; | ||
813 | |||
814 | eet_init(); | ||
815 | |||
816 | _eet_test_ex_set(&etbt, 0); | ||
817 | etbt.list = eina_list_prepend(etbt.list, _eet_test_ex_set(NULL, 1)); | ||
818 | etbt.list = eina_list_prepend(etbt.list, _eet_test_ex_set(NULL, 1)); | ||
819 | etbt.hash = eina_hash_string_superfast_new(NULL); | ||
820 | eina_hash_add(etbt.hash, EET_TEST_KEY1, _eet_test_ex_set(NULL, 2)); | ||
821 | etbt.hash = eina_hash_string_superfast_new(NULL); | ||
822 | eina_hash_add(etbt.hash, EET_TEST_KEY2, _eet_test_ex_set(NULL, 2)); | ||
823 | etbt.ilist = eina_list_prepend(etbt.ilist, &i42); | ||
824 | etbt.ilist = eina_list_prepend(etbt.ilist, &i42); | ||
825 | etbt.ihash = eina_hash_string_superfast_new(NULL); | ||
826 | eina_hash_add(etbt.ihash, EET_TEST_KEY1, &i7); | ||
827 | etbt.ihash = eina_hash_string_superfast_new(NULL); | ||
828 | eina_hash_add(etbt.ihash, EET_TEST_KEY2, &i7); | ||
829 | etbt.slist = eina_list_prepend(NULL, "test"); | ||
830 | etbt.shash = eina_hash_string_superfast_new(NULL); | ||
831 | eina_hash_add(etbt.shash, EET_TEST_KEY1, "test"); | ||
832 | memset(&etbt.charray, 0, sizeof(etbt.charray)); | ||
833 | etbt.charray[0] = "test"; | ||
834 | |||
835 | eet_test_setup_eddc(&eddc); | ||
836 | eddc.name = "Eet_Test_Ex_Type"; | ||
837 | eddc.size = sizeof(Eet_Test_Ex_Type); | ||
838 | |||
839 | edd = eet_data_descriptor_file_new(&eddc); | ||
840 | fail_if(!edd); | ||
841 | |||
842 | _eet_build_ex_descriptor(edd); | ||
843 | |||
844 | transfert1 = eet_data_descriptor_encode(edd, &etbt, &size1); | ||
845 | fail_if(!transfert1 || size1 <= 0); | ||
846 | |||
847 | string1 = NULL; | ||
848 | eet_data_text_dump(transfert1, size1, append_string, &string1); | ||
849 | fail_if(!string1); | ||
850 | |||
851 | transfert2 = eet_data_text_undump(string1, string1 ? strlen( | ||
852 | string1) : 0, &size2); | ||
853 | fail_if(!transfert2 && size2 <= 0); | ||
854 | |||
855 | string2 = NULL; | ||
856 | eet_data_text_dump(transfert2, size2, append_string, &string2); | ||
857 | fail_if(!string2); | ||
858 | |||
859 | fail_if(strlen(string2) != strlen(string1)); | ||
860 | |||
861 | result = eet_data_descriptor_decode(edd, transfert2, size2); | ||
862 | fail_if(!result); | ||
863 | |||
864 | fail_if(_eet_test_ex_check(result, 0) != 0); | ||
865 | fail_if(_eet_test_ex_check(eina_list_data_get(result->list), 1) != 0); | ||
866 | fail_if(eina_list_data_get(result->ilist) == NULL); | ||
867 | fail_if(*((int *)eina_list_data_get(result->ilist)) != 42); | ||
868 | fail_if(eina_list_data_get(result->slist) == NULL); | ||
869 | fail_if(strcmp(eina_list_data_get(result->slist), "test") != 0); | ||
870 | fail_if(eina_hash_find(result->shash, EET_TEST_KEY1) == NULL); | ||
871 | fail_if(strcmp(eina_hash_find(result->shash, EET_TEST_KEY1), "test") != 0); | ||
872 | fail_if(strcmp(result->charray[0], "test") != 0); | ||
873 | |||
874 | test = 0; | ||
875 | if (result->hash) | ||
876 | eina_hash_foreach(result->hash, func, &test); | ||
877 | |||
878 | fail_if(test != 0); | ||
879 | if (result->ihash) | ||
880 | eina_hash_foreach(result->ihash, func7, &test); | ||
881 | |||
882 | fail_if(test != 0); | ||
883 | |||
884 | eet_shutdown(); | ||
885 | } | ||
886 | END_TEST | ||
887 | START_TEST(eet_file_simple_write) | ||
888 | { | ||
889 | const char *buffer = "Here is a string of data to save !"; | ||
890 | Eet_File *ef; | ||
891 | char *test; | ||
892 | char *file = strdup("/tmp/eet_suite_testXXXXXX"); | ||
893 | int size; | ||
894 | |||
895 | eet_init(); | ||
896 | |||
897 | fail_if(!(file = tmpnam(file))); | ||
898 | |||
899 | fail_if(eet_mode_get(NULL) != EET_FILE_MODE_INVALID); | ||
900 | |||
901 | ef = eet_open(file, EET_FILE_MODE_WRITE); | ||
902 | fail_if(!ef); | ||
903 | |||
904 | fail_if(!eet_write(ef, "keys/tests", buffer, strlen(buffer) + 1, 1)); | ||
905 | fail_if(!eet_alias(ef, "keys/alias", "keys/tests", 0)); | ||
906 | fail_if(!eet_alias(ef, "keys/alias2", "keys/alias", 1)); | ||
907 | |||
908 | fail_if(eet_mode_get(ef) != EET_FILE_MODE_WRITE); | ||
909 | |||
910 | fail_if(eet_list(ef, "*", &size) != NULL); | ||
911 | fail_if(eet_num_entries(ef) != -1); | ||
912 | |||
913 | eet_close(ef); | ||
914 | |||
915 | /* Test read of simple file */ | ||
916 | ef = eet_open(file, EET_FILE_MODE_READ); | ||
917 | fail_if(!ef); | ||
918 | |||
919 | test = eet_read(ef, "keys/tests", &size); | ||
920 | fail_if(!test); | ||
921 | fail_if(size != (int)strlen(buffer) + 1); | ||
922 | |||
923 | fail_if(memcmp(test, buffer, strlen(buffer) + 1) != 0); | ||
924 | |||
925 | test = eet_read(ef, "keys/alias2", &size); | ||
926 | fail_if(!test); | ||
927 | fail_if(size != (int)strlen(buffer) + 1); | ||
928 | |||
929 | fail_if(eet_read_direct(ef, "key/alias2", &size)); | ||
930 | |||
931 | fail_if(eet_mode_get(ef) != EET_FILE_MODE_READ); | ||
932 | fail_if(eet_num_entries(ef) != 3); | ||
933 | |||
934 | eet_close(ef); | ||
935 | |||
936 | /* Test eet cache system */ | ||
937 | ef = eet_open(file, EET_FILE_MODE_READ); | ||
938 | fail_if(!ef); | ||
939 | |||
940 | test = eet_read(ef, "keys/tests", &size); | ||
941 | fail_if(!test); | ||
942 | fail_if(size != (int)strlen(buffer) + 1); | ||
943 | |||
944 | fail_if(memcmp(test, buffer, strlen(buffer) + 1) != 0); | ||
945 | |||
946 | eet_close(ef); | ||
947 | |||
948 | fail_if(unlink(file) != 0); | ||
949 | |||
950 | eet_shutdown(); | ||
951 | } /* START_TEST */ | ||
952 | |||
953 | END_TEST | ||
954 | START_TEST(eet_file_data_test) | ||
955 | { | ||
956 | Eet_Data_Descriptor *edd; | ||
957 | Eet_Test_Ex_Type *result; | ||
958 | Eet_Dictionary *ed; | ||
959 | Eet_File *ef; | ||
960 | char **list; | ||
961 | char *file = strdup("/tmp/eet_suite_testXXXXXX"); | ||
962 | Eet_Data_Descriptor_Class eddc; | ||
963 | Eet_Test_Ex_Type etbt; | ||
964 | int size; | ||
965 | int test; | ||
966 | |||
967 | eet_init(); | ||
968 | |||
969 | _eet_test_ex_set(&etbt, 0); | ||
970 | etbt.list = eina_list_prepend(etbt.list, _eet_test_ex_set(NULL, 1)); | ||
971 | etbt.list = eina_list_prepend(etbt.list, _eet_test_ex_set(NULL, 1)); | ||
972 | etbt.hash = eina_hash_string_superfast_new(NULL); | ||
973 | eina_hash_add(etbt.hash, EET_TEST_KEY1, _eet_test_ex_set(NULL, 2)); | ||
974 | etbt.hash = eina_hash_string_superfast_new(NULL); | ||
975 | eina_hash_add(etbt.hash, EET_TEST_KEY2, _eet_test_ex_set(NULL, 2)); | ||
976 | etbt.ilist = eina_list_prepend(etbt.ilist, &i42); | ||
977 | etbt.ilist = eina_list_prepend(etbt.ilist, &i42); | ||
978 | etbt.ihash = eina_hash_string_superfast_new(NULL); | ||
979 | eina_hash_add(etbt.ihash, EET_TEST_KEY1, &i7); | ||
980 | etbt.ihash = eina_hash_string_superfast_new(NULL); | ||
981 | eina_hash_add(etbt.ihash, EET_TEST_KEY2, &i7); | ||
982 | etbt.slist = eina_list_prepend(NULL, "test"); | ||
983 | etbt.shash = eina_hash_string_superfast_new(NULL); | ||
984 | eina_hash_add(etbt.shash, EET_TEST_KEY1, "test"); | ||
985 | memset(&etbt.charray, 0, sizeof(etbt.charray)); | ||
986 | etbt.charray[0] = "test"; | ||
987 | |||
988 | eet_test_setup_eddc(&eddc); | ||
989 | eddc.name = "Eet_Test_Ex_Type"; | ||
990 | eddc.size = sizeof(Eet_Test_Ex_Type); | ||
991 | |||
992 | edd = eet_data_descriptor_file_new(&eddc); | ||
993 | fail_if(!edd); | ||
994 | |||
995 | _eet_build_ex_descriptor(edd); | ||
996 | |||
997 | fail_if(!(file = tmpnam(file))); | ||
998 | |||
999 | /* Insert an error in etbt. */ | ||
1000 | etbt.i = 0; | ||
1001 | |||
1002 | /* Save the encoded data in a file. */ | ||
1003 | ef = eet_open(file, EET_FILE_MODE_READ_WRITE); | ||
1004 | fail_if(!ef); | ||
1005 | |||
1006 | fail_if(!eet_data_write(ef, edd, EET_TEST_FILE_KEY1, &etbt, 0)); | ||
1007 | |||
1008 | result = eet_data_read(ef, edd, EET_TEST_FILE_KEY1); | ||
1009 | fail_if(!result); | ||
1010 | |||
1011 | fail_if(eet_mode_get(ef) != EET_FILE_MODE_READ_WRITE); | ||
1012 | |||
1013 | /* Test string space. */ | ||
1014 | ed = eet_dictionary_get(ef); | ||
1015 | |||
1016 | fail_if(!eet_dictionary_string_check(ed, result->str)); | ||
1017 | fail_if(eet_dictionary_string_check(ed, result->istr)); | ||
1018 | |||
1019 | eet_close(ef); | ||
1020 | |||
1021 | /* Attempt to replace etbt by the correct one. */ | ||
1022 | etbt.i = EET_TEST_INT; | ||
1023 | |||
1024 | ef = eet_open(file, EET_FILE_MODE_READ_WRITE); | ||
1025 | fail_if(!ef); | ||
1026 | |||
1027 | fail_if(!eet_data_write(ef, edd, EET_TEST_FILE_KEY1, &etbt, 0)); | ||
1028 | |||
1029 | result = eet_data_read(ef, edd, EET_TEST_FILE_KEY1); | ||
1030 | fail_if(!result); | ||
1031 | |||
1032 | /* Test the resulting data. */ | ||
1033 | fail_if(_eet_test_ex_check(result, 0) != 0); | ||
1034 | |||
1035 | eet_close(ef); | ||
1036 | |||
1037 | /* Read back the data. */ | ||
1038 | ef = eet_open(file, EET_FILE_MODE_READ_WRITE); | ||
1039 | fail_if(!ef); | ||
1040 | |||
1041 | fail_if(!eet_data_write(ef, edd, EET_TEST_FILE_KEY2, &etbt, 0)); | ||
1042 | |||
1043 | result = eet_data_read(ef, edd, EET_TEST_FILE_KEY1); | ||
1044 | fail_if(!result); | ||
1045 | |||
1046 | /* Test string space. */ | ||
1047 | ed = eet_dictionary_get(ef); | ||
1048 | fail_if(!ed); | ||
1049 | |||
1050 | fail_if(!eet_dictionary_string_check(ed, result->str)); | ||
1051 | fail_if(eet_dictionary_string_check(ed, result->istr)); | ||
1052 | |||
1053 | /* Test the resulting data. */ | ||
1054 | fail_if(_eet_test_ex_check(result, 0) != 0); | ||
1055 | fail_if(_eet_test_ex_check(eina_list_data_get(result->list), 1) != 0); | ||
1056 | fail_if(eina_list_data_get(result->ilist) == NULL); | ||
1057 | fail_if(*((int *)eina_list_data_get(result->ilist)) != 42); | ||
1058 | fail_if(eina_list_data_get(result->slist) == NULL); | ||
1059 | fail_if(strcmp(eina_list_data_get(result->slist), "test") != 0); | ||
1060 | fail_if(eina_hash_find(result->shash, EET_TEST_KEY1) == NULL); | ||
1061 | fail_if(strcmp(eina_hash_find(result->shash, EET_TEST_KEY1), "test") != 0); | ||
1062 | fail_if(strcmp(result->charray[0], "test") != 0); | ||
1063 | |||
1064 | test = 0; | ||
1065 | if (result->hash) | ||
1066 | eina_hash_foreach(result->hash, func, &test); | ||
1067 | |||
1068 | fail_if(test != 0); | ||
1069 | if (result->ihash) | ||
1070 | eina_hash_foreach(result->ihash, func7, &test); | ||
1071 | |||
1072 | fail_if(test != 0); | ||
1073 | |||
1074 | list = eet_list(ef, "keys/*", &size); | ||
1075 | fail_if(eet_num_entries(ef) != 2); | ||
1076 | fail_if(size != 2); | ||
1077 | fail_if(!(strcmp(list[0], | ||
1078 | EET_TEST_FILE_KEY1) == 0 && | ||
1079 | strcmp(list[1], EET_TEST_FILE_KEY2) == 0) | ||
1080 | && !(strcmp(list[0], | ||
1081 | EET_TEST_FILE_KEY2) == 0 && | ||
1082 | strcmp(list[1], EET_TEST_FILE_KEY1) == 0)); | ||
1083 | free(list); | ||
1084 | |||
1085 | fail_if(eet_delete(ef, NULL) != 0); | ||
1086 | fail_if(eet_delete(NULL, EET_TEST_FILE_KEY1) != 0); | ||
1087 | fail_if(eet_delete(ef, EET_TEST_FILE_KEY1) == 0); | ||
1088 | |||
1089 | list = eet_list(ef, "keys/*", &size); | ||
1090 | fail_if(size != 1); | ||
1091 | fail_if(eet_num_entries(ef) != 1); | ||
1092 | |||
1093 | /* Test some more wrong case */ | ||
1094 | fail_if(eet_data_read(ef, edd, "plop") != NULL); | ||
1095 | fail_if(eet_data_read(ef, edd, EET_TEST_FILE_KEY1) != NULL); | ||
1096 | |||
1097 | /* Reinsert and reread data */ | ||
1098 | fail_if(!eet_data_write(ef, edd, EET_TEST_FILE_KEY1, &etbt, 0)); | ||
1099 | fail_if(eet_data_read(ef, edd, EET_TEST_FILE_KEY1) == NULL); | ||
1100 | fail_if(eet_read_direct(ef, EET_TEST_FILE_KEY1, &size) == NULL); | ||
1101 | |||
1102 | eet_close(ef); | ||
1103 | |||
1104 | fail_if(unlink(file) != 0); | ||
1105 | |||
1106 | eet_shutdown(); | ||
1107 | } /* START_TEST */ | ||
1108 | |||
1109 | END_TEST | ||
1110 | START_TEST(eet_file_data_dump_test) | ||
1111 | { | ||
1112 | Eet_Data_Descriptor *edd; | ||
1113 | Eet_Test_Ex_Type *result; | ||
1114 | Eet_Data_Descriptor_Class eddc; | ||
1115 | Eet_Test_Ex_Type etbt; | ||
1116 | Eet_File *ef; | ||
1117 | char *string1; | ||
1118 | char *file = strdup("/tmp/eet_suite_testXXXXXX"); | ||
1119 | int test; | ||
1120 | |||
1121 | eet_init(); | ||
1122 | |||
1123 | _eet_test_ex_set(&etbt, 0); | ||
1124 | etbt.list = eina_list_prepend(etbt.list, _eet_test_ex_set(NULL, 1)); | ||
1125 | etbt.list = eina_list_prepend(etbt.list, _eet_test_ex_set(NULL, 1)); | ||
1126 | etbt.hash = eina_hash_string_superfast_new(NULL); | ||
1127 | eina_hash_add(etbt.hash, EET_TEST_KEY1, _eet_test_ex_set(NULL, 2)); | ||
1128 | eina_hash_add(etbt.hash, EET_TEST_KEY2, _eet_test_ex_set(NULL, 2)); | ||
1129 | etbt.ilist = eina_list_prepend(etbt.ilist, &i42); | ||
1130 | etbt.ilist = eina_list_prepend(etbt.ilist, &i42); | ||
1131 | etbt.ihash = eina_hash_string_superfast_new(NULL); | ||
1132 | eina_hash_add(etbt.ihash, EET_TEST_KEY1, &i7); | ||
1133 | eina_hash_add(etbt.ihash, EET_TEST_KEY2, &i7); | ||
1134 | etbt.slist = eina_list_prepend(NULL, "test"); | ||
1135 | etbt.shash = eina_hash_string_superfast_new(NULL); | ||
1136 | eina_hash_add(etbt.shash, EET_TEST_KEY1, "test"); | ||
1137 | memset(&etbt.charray, 0, sizeof(etbt.charray)); | ||
1138 | etbt.charray[0] = "test"; | ||
1139 | |||
1140 | eet_eina_file_data_descriptor_class_set(&eddc, sizeof (eddc), | ||
1141 | "Eet_Test_Ex_Type", | ||
1142 | sizeof(Eet_Test_Ex_Type)); | ||
1143 | |||
1144 | edd = eet_data_descriptor_file_new(&eddc); | ||
1145 | fail_if(!edd); | ||
1146 | |||
1147 | _eet_build_ex_descriptor(edd); | ||
1148 | |||
1149 | fail_if(!(file = tmpnam(file))); | ||
1150 | |||
1151 | /* Save the encoded data in a file. */ | ||
1152 | ef = eet_open(file, EET_FILE_MODE_WRITE); | ||
1153 | fail_if(!ef); | ||
1154 | |||
1155 | fail_if(!eet_data_write(ef, edd, EET_TEST_FILE_KEY1, &etbt, 0)); | ||
1156 | |||
1157 | eet_close(ef); | ||
1158 | |||
1159 | /* Use dump/undump in the middle */ | ||
1160 | ef = eet_open(file, EET_FILE_MODE_READ_WRITE); | ||
1161 | fail_if(!ef); | ||
1162 | |||
1163 | string1 = NULL; | ||
1164 | fail_if(eet_data_dump(ef, EET_TEST_FILE_KEY1, append_string, &string1) != 1); | ||
1165 | fail_if(eet_delete(ef, EET_TEST_FILE_KEY1) == 0); | ||
1166 | fail_if(!eet_data_undump(ef, EET_TEST_FILE_KEY1, string1, strlen(string1), 1)); | ||
1167 | |||
1168 | eet_close(ef); | ||
1169 | |||
1170 | /* Test the correctness of the reinsertion. */ | ||
1171 | ef = eet_open(file, EET_FILE_MODE_READ); | ||
1172 | fail_if(!ef); | ||
1173 | |||
1174 | result = eet_data_read(ef, edd, EET_TEST_FILE_KEY1); | ||
1175 | fail_if(!result); | ||
1176 | |||
1177 | eet_close(ef); | ||
1178 | |||
1179 | /* Test the resulting data. */ | ||
1180 | fail_if(_eet_test_ex_check(result, 0) != 0); | ||
1181 | fail_if(_eet_test_ex_check(eina_list_data_get(result->list), 1) != 0); | ||
1182 | fail_if(eina_list_data_get(result->ilist) == NULL); | ||
1183 | fail_if(*((int *)eina_list_data_get(result->ilist)) != 42); | ||
1184 | fail_if(eina_list_data_get(result->slist) == NULL); | ||
1185 | fail_if(strcmp(eina_list_data_get(result->slist), "test") != 0); | ||
1186 | fail_if(eina_hash_find(result->shash, EET_TEST_KEY1) == NULL); | ||
1187 | fail_if(strcmp(eina_hash_find(result->shash, EET_TEST_KEY1), "test") != 0); | ||
1188 | fail_if(strcmp(result->charray[0], "test") != 0); | ||
1189 | |||
1190 | test = 0; | ||
1191 | if (result->hash) | ||
1192 | eina_hash_foreach(result->hash, func, &test); | ||
1193 | |||
1194 | fail_if(test != 0); | ||
1195 | if (result->ihash) | ||
1196 | eina_hash_foreach(result->ihash, func7, &test); | ||
1197 | |||
1198 | fail_if(test != 0); | ||
1199 | |||
1200 | fail_if(unlink(file) != 0); | ||
1201 | |||
1202 | eet_shutdown(); | ||
1203 | } /* START_TEST */ | ||
1204 | |||
1205 | END_TEST | ||
1206 | START_TEST(eet_image) | ||
1207 | { | ||
1208 | Eet_File *ef; | ||
1209 | char *file = strdup("/tmp/eet_suite_testXXXXXX"); | ||
1210 | unsigned int *data; | ||
1211 | int compress; | ||
1212 | int quality; | ||
1213 | int result; | ||
1214 | int lossy; | ||
1215 | int alpha; | ||
1216 | unsigned int w; | ||
1217 | unsigned int h; | ||
1218 | |||
1219 | eet_init(); | ||
1220 | |||
1221 | fail_if(!(file = tmpnam(file))); | ||
1222 | |||
1223 | /* Save the encoded data in a file. */ | ||
1224 | ef = eet_open(file, EET_FILE_MODE_READ_WRITE); | ||
1225 | fail_if(!ef); | ||
1226 | |||
1227 | result = eet_data_image_write(ef, | ||
1228 | EET_TEST_FILE_IMAGE "0", | ||
1229 | test_noalpha.color, | ||
1230 | test_noalpha.w, | ||
1231 | test_noalpha.h, | ||
1232 | test_noalpha.alpha, | ||
1233 | 0, | ||
1234 | 100, | ||
1235 | 0); | ||
1236 | fail_if(result == 0); | ||
1237 | |||
1238 | result = eet_data_image_write(ef, | ||
1239 | EET_TEST_FILE_IMAGE "1", | ||
1240 | test_noalpha.color, | ||
1241 | test_noalpha.w, | ||
1242 | test_noalpha.h, | ||
1243 | test_noalpha.alpha, | ||
1244 | 5, | ||
1245 | 100, | ||
1246 | 0); | ||
1247 | fail_if(result == 0); | ||
1248 | |||
1249 | result = eet_data_image_write(ef, | ||
1250 | EET_TEST_FILE_IMAGE "2", | ||
1251 | test_noalpha.color, | ||
1252 | test_noalpha.w, | ||
1253 | test_noalpha.h, | ||
1254 | test_noalpha.alpha, | ||
1255 | 9, | ||
1256 | 100, | ||
1257 | 0); | ||
1258 | fail_if(result == 0); | ||
1259 | |||
1260 | result = eet_data_image_write(ef, | ||
1261 | EET_TEST_FILE_IMAGE "3", | ||
1262 | test_noalpha.color, | ||
1263 | test_noalpha.w, | ||
1264 | test_noalpha.h, | ||
1265 | test_noalpha.alpha, | ||
1266 | 0, | ||
1267 | 100, | ||
1268 | 1); | ||
1269 | fail_if(result == 0); | ||
1270 | |||
1271 | result = eet_data_image_write(ef, | ||
1272 | EET_TEST_FILE_IMAGE "4", | ||
1273 | test_noalpha.color, | ||
1274 | test_noalpha.w, | ||
1275 | test_noalpha.h, | ||
1276 | test_noalpha.alpha, | ||
1277 | 0, | ||
1278 | 60, | ||
1279 | 1); | ||
1280 | fail_if(result == 0); | ||
1281 | |||
1282 | result = eet_data_image_write(ef, | ||
1283 | EET_TEST_FILE_IMAGE "5", | ||
1284 | test_noalpha.color, | ||
1285 | test_noalpha.w, | ||
1286 | test_noalpha.h, | ||
1287 | test_noalpha.alpha, | ||
1288 | 0, | ||
1289 | 10, | ||
1290 | 1); | ||
1291 | fail_if(result == 0); | ||
1292 | |||
1293 | result = eet_data_image_write(ef, | ||
1294 | EET_TEST_FILE_IMAGE "6", | ||
1295 | test_noalpha.color, | ||
1296 | test_noalpha.w, | ||
1297 | test_noalpha.h, | ||
1298 | test_noalpha.alpha, | ||
1299 | 0, | ||
1300 | 0, | ||
1301 | 1); | ||
1302 | fail_if(result == 0); | ||
1303 | |||
1304 | result = eet_data_image_write(ef, EET_TEST_FILE_IMAGE "7", test_alpha.color, | ||
1305 | test_alpha.w, test_alpha.h, test_alpha.alpha, | ||
1306 | 9, 100, 0); | ||
1307 | fail_if(result == 0); | ||
1308 | |||
1309 | result = eet_data_image_write(ef, EET_TEST_FILE_IMAGE "8", test_alpha.color, | ||
1310 | test_alpha.w, test_alpha.h, test_alpha.alpha, | ||
1311 | 0, 80, 1); | ||
1312 | fail_if(result == 0); | ||
1313 | |||
1314 | result = eet_data_image_write(ef, EET_TEST_FILE_IMAGE "9", test_alpha.color, | ||
1315 | test_alpha.w, test_alpha.h, test_alpha.alpha, | ||
1316 | 0, 100, 1); | ||
1317 | fail_if(result == 0); | ||
1318 | |||
1319 | data = eet_data_image_read(ef, | ||
1320 | EET_TEST_FILE_IMAGE "2", | ||
1321 | &w, | ||
1322 | &h, | ||
1323 | &alpha, | ||
1324 | &compress, | ||
1325 | &quality, | ||
1326 | &lossy); | ||
1327 | fail_if(data == NULL); | ||
1328 | fail_if(w != test_noalpha.w); | ||
1329 | fail_if(h != test_noalpha.h); | ||
1330 | fail_if(alpha != test_noalpha.alpha); | ||
1331 | fail_if(compress != 9); | ||
1332 | fail_if(lossy != 0); | ||
1333 | fail_if(data[0] != test_noalpha.color[0]); | ||
1334 | free(data); | ||
1335 | |||
1336 | result = eet_data_image_header_read(ef, | ||
1337 | EET_TEST_FILE_IMAGE "2", | ||
1338 | &w, | ||
1339 | &h, | ||
1340 | &alpha, | ||
1341 | &compress, | ||
1342 | &quality, | ||
1343 | &lossy); | ||
1344 | fail_if(result == 0); | ||
1345 | fail_if(w != test_noalpha.w); | ||
1346 | fail_if(h != test_noalpha.h); | ||
1347 | fail_if(alpha != test_noalpha.alpha); | ||
1348 | fail_if(compress != 9); | ||
1349 | fail_if(lossy != 0); | ||
1350 | |||
1351 | eet_close(ef); | ||
1352 | |||
1353 | /* Test read of image */ | ||
1354 | ef = eet_open(file, EET_FILE_MODE_READ); | ||
1355 | fail_if(!ef); | ||
1356 | |||
1357 | result = eet_data_image_header_read(ef, | ||
1358 | EET_TEST_FILE_IMAGE "0", | ||
1359 | &w, | ||
1360 | &h, | ||
1361 | &alpha, | ||
1362 | &compress, | ||
1363 | &quality, | ||
1364 | &lossy); | ||
1365 | fail_if(result == 0); | ||
1366 | fail_if(w != test_noalpha.w); | ||
1367 | fail_if(h != test_noalpha.h); | ||
1368 | fail_if(alpha != test_noalpha.alpha); | ||
1369 | fail_if(compress != 0); | ||
1370 | fail_if(lossy != 0); | ||
1371 | |||
1372 | data = malloc(w * h * 4); | ||
1373 | fail_if(data == NULL); | ||
1374 | result = eet_data_image_read_to_surface(ef, | ||
1375 | EET_TEST_FILE_IMAGE "0", | ||
1376 | 4, | ||
1377 | 4, | ||
1378 | data, | ||
1379 | 2, | ||
1380 | 2, | ||
1381 | w * 4, | ||
1382 | &alpha, | ||
1383 | &compress, | ||
1384 | &quality, | ||
1385 | &lossy); | ||
1386 | fail_if(result != 1); | ||
1387 | fail_if(alpha != test_noalpha.alpha); | ||
1388 | fail_if(compress != 0); | ||
1389 | fail_if(quality != 100); | ||
1390 | fail_if(lossy != 0); | ||
1391 | fail_if(data[0] != test_noalpha.color[4 + 4 * w]); | ||
1392 | free(data); | ||
1393 | |||
1394 | data = malloc(w * h * 4); | ||
1395 | fail_if(data == NULL); | ||
1396 | result = eet_data_image_read_to_surface(ef, | ||
1397 | EET_TEST_FILE_IMAGE "0", | ||
1398 | 0, | ||
1399 | 0, | ||
1400 | data, | ||
1401 | w, | ||
1402 | h, | ||
1403 | w * 4, | ||
1404 | &alpha, | ||
1405 | &compress, | ||
1406 | &quality, | ||
1407 | &lossy); | ||
1408 | fail_if(result != 1); | ||
1409 | fail_if(alpha != test_noalpha.alpha); | ||
1410 | fail_if(compress != 0); | ||
1411 | fail_if(quality != 100); | ||
1412 | fail_if(lossy != 0); | ||
1413 | fail_if(data[0] != test_noalpha.color[0]); | ||
1414 | free(data); | ||
1415 | |||
1416 | data = eet_data_image_read(ef, | ||
1417 | EET_TEST_FILE_IMAGE "1", | ||
1418 | &w, | ||
1419 | &h, | ||
1420 | &alpha, | ||
1421 | &compress, | ||
1422 | &quality, | ||
1423 | &lossy); | ||
1424 | fail_if(data == NULL); | ||
1425 | fail_if(w != test_noalpha.w); | ||
1426 | fail_if(h != test_noalpha.h); | ||
1427 | fail_if(alpha != test_noalpha.alpha); | ||
1428 | fail_if(compress != 5); | ||
1429 | fail_if(quality != 100); | ||
1430 | fail_if(lossy != 0); | ||
1431 | fail_if(data[0] != test_noalpha.color[0]); | ||
1432 | free(data); | ||
1433 | |||
1434 | data = eet_data_image_read(ef, | ||
1435 | EET_TEST_FILE_IMAGE "2", | ||
1436 | &w, | ||
1437 | &h, | ||
1438 | &alpha, | ||
1439 | &compress, | ||
1440 | &quality, | ||
1441 | &lossy); | ||
1442 | fail_if(data == NULL); | ||
1443 | fail_if(w != test_noalpha.w); | ||
1444 | fail_if(h != test_noalpha.h); | ||
1445 | fail_if(alpha != test_noalpha.alpha); | ||
1446 | fail_if(compress != 9); | ||
1447 | fail_if(lossy != 0); | ||
1448 | fail_if(data[0] != test_noalpha.color[0]); | ||
1449 | free(data); | ||
1450 | |||
1451 | data = eet_data_image_read(ef, | ||
1452 | EET_TEST_FILE_IMAGE "3", | ||
1453 | &w, | ||
1454 | &h, | ||
1455 | &alpha, | ||
1456 | &compress, | ||
1457 | &quality, | ||
1458 | &lossy); | ||
1459 | fail_if(data == NULL); | ||
1460 | fail_if(w != test_noalpha.w); | ||
1461 | fail_if(h != test_noalpha.h); | ||
1462 | fail_if(alpha != test_noalpha.alpha); | ||
1463 | fail_if(lossy != 1); | ||
1464 | free(data); | ||
1465 | |||
1466 | data = eet_data_image_read(ef, | ||
1467 | EET_TEST_FILE_IMAGE "5", | ||
1468 | &w, | ||
1469 | &h, | ||
1470 | &alpha, | ||
1471 | &compress, | ||
1472 | &quality, | ||
1473 | &lossy); | ||
1474 | fail_if(data == NULL); | ||
1475 | fail_if(w != test_noalpha.w); | ||
1476 | fail_if(h != test_noalpha.h); | ||
1477 | fail_if(alpha != test_noalpha.alpha); | ||
1478 | fail_if(lossy != 1); | ||
1479 | free(data); | ||
1480 | |||
1481 | data = eet_data_image_read(ef, | ||
1482 | EET_TEST_FILE_IMAGE "6", | ||
1483 | &w, | ||
1484 | &h, | ||
1485 | &alpha, | ||
1486 | &compress, | ||
1487 | &quality, | ||
1488 | &lossy); | ||
1489 | fail_if(data == NULL); | ||
1490 | fail_if(w != test_noalpha.w); | ||
1491 | fail_if(h != test_noalpha.h); | ||
1492 | fail_if(alpha != test_noalpha.alpha); | ||
1493 | fail_if(lossy != 1); | ||
1494 | free(data); | ||
1495 | |||
1496 | result = eet_data_image_header_read(ef, | ||
1497 | EET_TEST_FILE_IMAGE "7", | ||
1498 | &w, | ||
1499 | &h, | ||
1500 | &alpha, | ||
1501 | &compress, | ||
1502 | &quality, | ||
1503 | &lossy); | ||
1504 | fail_if(result == 0); | ||
1505 | fail_if(w != test_alpha.w); | ||
1506 | fail_if(h != test_alpha.h); | ||
1507 | fail_if(alpha != test_alpha.alpha); | ||
1508 | fail_if(compress != 9); | ||
1509 | fail_if(lossy != 0); | ||
1510 | |||
1511 | data = eet_data_image_read(ef, | ||
1512 | EET_TEST_FILE_IMAGE "7", | ||
1513 | &w, | ||
1514 | &h, | ||
1515 | &alpha, | ||
1516 | &compress, | ||
1517 | &quality, | ||
1518 | &lossy); | ||
1519 | fail_if(data == NULL); | ||
1520 | fail_if(w != test_alpha.w); | ||
1521 | fail_if(h != test_alpha.h); | ||
1522 | fail_if(alpha != test_alpha.alpha); | ||
1523 | fail_if(compress != 9); | ||
1524 | fail_if(lossy != 0); | ||
1525 | fail_if(data[0] != test_alpha.color[0]); | ||
1526 | free(data); | ||
1527 | |||
1528 | result = eet_data_image_header_read(ef, | ||
1529 | EET_TEST_FILE_IMAGE "9", | ||
1530 | &w, | ||
1531 | &h, | ||
1532 | &alpha, | ||
1533 | &compress, | ||
1534 | &quality, | ||
1535 | &lossy); | ||
1536 | fail_if(result == 0); | ||
1537 | fail_if(w != test_alpha.w); | ||
1538 | fail_if(h != test_alpha.h); | ||
1539 | fail_if(alpha != test_alpha.alpha); | ||
1540 | fail_if(lossy != 1); | ||
1541 | |||
1542 | data = eet_data_image_read(ef, | ||
1543 | EET_TEST_FILE_IMAGE "9", | ||
1544 | &w, | ||
1545 | &h, | ||
1546 | &alpha, | ||
1547 | &compress, | ||
1548 | &quality, | ||
1549 | &lossy); | ||
1550 | fail_if(data == NULL); | ||
1551 | fail_if(w != test_alpha.w); | ||
1552 | fail_if(h != test_alpha.h); | ||
1553 | fail_if(alpha != test_alpha.alpha); | ||
1554 | fail_if(lossy != 1); | ||
1555 | free(data); | ||
1556 | |||
1557 | eet_close(ef); | ||
1558 | |||
1559 | fail_if(unlink(file) != 0); | ||
1560 | |||
1561 | eet_shutdown(); | ||
1562 | } /* START_TEST */ | ||
1563 | |||
1564 | END_TEST | ||
1565 | |||
1566 | #define IM0 0x00112233 | ||
1567 | #define IM1 0x44556677 | ||
1568 | #define IM2 0x8899aabb | ||
1569 | #define IM3 0xccddeeff | ||
1570 | |||
1571 | START_TEST(eet_small_image) | ||
1572 | { | ||
1573 | char *file = strdup("/tmp/eet_suite_testXXXXXX"); | ||
1574 | unsigned int image[4]; | ||
1575 | unsigned int *data; | ||
1576 | Eet_File *ef; | ||
1577 | unsigned int w; | ||
1578 | unsigned int h; | ||
1579 | int alpha; | ||
1580 | int compression; | ||
1581 | int quality; | ||
1582 | int lossy; | ||
1583 | int result; | ||
1584 | |||
1585 | image[0] = IM0; | ||
1586 | image[1] = IM1; | ||
1587 | image[2] = IM2; | ||
1588 | image[3] = IM3; | ||
1589 | |||
1590 | eet_init(); | ||
1591 | |||
1592 | fail_if(!(file = tmpnam(file))); | ||
1593 | |||
1594 | ef = eet_open(file, EET_FILE_MODE_WRITE); | ||
1595 | fail_if(!ef); | ||
1596 | |||
1597 | result = eet_data_image_write(ef, "/images/test", image, 2, 2, 1, 9, 100, 0); | ||
1598 | fail_if(result == 0); | ||
1599 | |||
1600 | eet_close(ef); | ||
1601 | |||
1602 | ef = eet_open(file, EET_FILE_MODE_READ); | ||
1603 | fail_if(!ef); | ||
1604 | |||
1605 | data = (unsigned int *)eet_data_image_read(ef, | ||
1606 | "/images/test", | ||
1607 | &w, | ||
1608 | &h, | ||
1609 | &alpha, | ||
1610 | &compression, | ||
1611 | &quality, | ||
1612 | &lossy); | ||
1613 | fail_if(data == NULL); | ||
1614 | |||
1615 | eet_close(ef); | ||
1616 | |||
1617 | fail_if(unlink(file) != 0); | ||
1618 | |||
1619 | fail_if(data[0] != IM0); | ||
1620 | fail_if(data[1] != IM1); | ||
1621 | fail_if(data[2] != IM2); | ||
1622 | fail_if(data[3] != IM3); | ||
1623 | |||
1624 | free(data); | ||
1625 | |||
1626 | eet_shutdown(); | ||
1627 | } /* START_TEST */ | ||
1628 | |||
1629 | END_TEST | ||
1630 | START_TEST(eet_identity_simple) | ||
1631 | { | ||
1632 | const char *buffer = "Here is a string of data to save !"; | ||
1633 | const void *tmp; | ||
1634 | Eet_File *ef; | ||
1635 | Eet_Key *k; | ||
1636 | FILE *noread; | ||
1637 | char *test; | ||
1638 | char *file = strdup("/tmp/eet_suite_testXXXXXX"); | ||
1639 | int size; | ||
1640 | int fd; | ||
1641 | |||
1642 | eet_init(); | ||
1643 | |||
1644 | fail_if(!(file = tmpnam(file))); | ||
1645 | fail_if(chdir(CERT_DIR)); | ||
1646 | fail_if(!(noread = fopen("/dev/null", "w"))); | ||
1647 | |||
1648 | /* Sign an eet file. */ | ||
1649 | ef = eet_open(file, EET_FILE_MODE_WRITE); | ||
1650 | fail_if(!ef); | ||
1651 | |||
1652 | fail_if(!eet_write(ef, "keys/tests", buffer, strlen(buffer) + 1, 0)); | ||
1653 | |||
1654 | k = eet_identity_open("cert.pem", "key.pem", NULL); | ||
1655 | fail_if(!k); | ||
1656 | |||
1657 | fail_if(eet_identity_set(ef, k) != EET_ERROR_NONE); | ||
1658 | eet_identity_print(k, noread); | ||
1659 | |||
1660 | eet_close(ef); | ||
1661 | |||
1662 | /* Open a signed file. */ | ||
1663 | ef = eet_open(file, EET_FILE_MODE_READ); | ||
1664 | fail_if(!ef); | ||
1665 | |||
1666 | test = eet_read(ef, "keys/tests", &size); | ||
1667 | fail_if(!test); | ||
1668 | fail_if(size != (int)strlen(buffer) + 1); | ||
1669 | |||
1670 | fail_if(memcmp(test, buffer, strlen(buffer) + 1) != 0); | ||
1671 | |||
1672 | tmp = eet_identity_x509(ef, &size); | ||
1673 | fail_if(tmp == NULL); | ||
1674 | |||
1675 | eet_identity_certificate_print(tmp, size, noread); | ||
1676 | |||
1677 | eet_close(ef); | ||
1678 | |||
1679 | /* As we are changing file contain in less than 1s, this could get unnoticed | ||
1680 | by eet cache system. */ | ||
1681 | eet_clearcache(); | ||
1682 | |||
1683 | /* Corrupting the file. */ | ||
1684 | fd = open(file, O_WRONLY); | ||
1685 | fail_if(fd < 0); | ||
1686 | |||
1687 | fail_if(lseek(fd, 200, SEEK_SET) != 200); | ||
1688 | fail_if(write(fd, "42", 2) != 2); | ||
1689 | fail_if(lseek(fd, 50, SEEK_SET) != 50); | ||
1690 | fail_if(write(fd, "42", 2) != 2); | ||
1691 | fail_if(lseek(fd, 88, SEEK_SET) != 88); | ||
1692 | fail_if(write(fd, "42", 2) != 2); | ||
1693 | |||
1694 | close(fd); | ||
1695 | |||
1696 | /* Attempt to open a modified file. */ | ||
1697 | ef = eet_open(file, EET_FILE_MODE_READ); | ||
1698 | fail_if(ef); | ||
1699 | |||
1700 | fail_if(unlink(file) != 0); | ||
1701 | |||
1702 | eet_shutdown(); | ||
1703 | } /* START_TEST */ | ||
1704 | |||
1705 | END_TEST | ||
1706 | START_TEST(eet_identity_open_simple) | ||
1707 | { | ||
1708 | Eet_Key *k = NULL; | ||
1709 | |||
1710 | eet_init(); | ||
1711 | |||
1712 | fail_if(chdir(CERT_DIR)); | ||
1713 | |||
1714 | k = eet_identity_open("cert.pem", "key.pem", NULL); | ||
1715 | fail_if(!k); | ||
1716 | |||
1717 | if (k) | ||
1718 | eet_identity_close(k); | ||
1719 | |||
1720 | eet_shutdown(); | ||
1721 | } /* START_TEST */ | ||
1722 | |||
1723 | END_TEST | ||
1724 | START_TEST(eet_identity_open_pkcs8) | ||
1725 | { | ||
1726 | Eet_Key *k = NULL; | ||
1727 | |||
1728 | eet_init(); | ||
1729 | |||
1730 | fail_if(chdir(CERT_DIR)); | ||
1731 | |||
1732 | k = eet_identity_open("cert.pem", "key_enc_none.pem", NULL); | ||
1733 | fail_if(!k); | ||
1734 | |||
1735 | if (k) | ||
1736 | eet_identity_close(k); | ||
1737 | |||
1738 | eet_shutdown(); | ||
1739 | } /* START_TEST */ | ||
1740 | |||
1741 | END_TEST | ||
1742 | |||
1743 | static int | ||
1744 | pass_get(char *pass, | ||
1745 | int size, | ||
1746 | __UNUSED__ int rwflags, | ||
1747 | __UNUSED__ void *u) | ||
1748 | { | ||
1749 | memset(pass, 0, size); | ||
1750 | |||
1751 | if ((int)strlen("password") > size) | ||
1752 | return 0; | ||
1753 | |||
1754 | snprintf(pass, size, "%s", "password"); | ||
1755 | return strlen(pass); | ||
1756 | } /* pass_get */ | ||
1757 | |||
1758 | static int | ||
1759 | badpass_get(char *pass, | ||
1760 | int size, | ||
1761 | __UNUSED__ int rwflags, | ||
1762 | __UNUSED__ void *u) | ||
1763 | { | ||
1764 | memset(pass, 0, size); | ||
1765 | |||
1766 | if ((int)strlen("bad password") > size) | ||
1767 | return 0; | ||
1768 | |||
1769 | snprintf(pass, size, "%s", "bad password"); | ||
1770 | return strlen(pass); | ||
1771 | } /* badpass_get */ | ||
1772 | |||
1773 | START_TEST(eet_identity_open_pkcs8_enc) | ||
1774 | { | ||
1775 | Eet_Key *k = NULL; | ||
1776 | |||
1777 | eet_init(); | ||
1778 | |||
1779 | fail_if(chdir(CERT_DIR)); | ||
1780 | |||
1781 | k = eet_identity_open("cert.pem", "key_enc.pem", NULL); | ||
1782 | fail_if(k); | ||
1783 | |||
1784 | if (k) | ||
1785 | eet_identity_close(k); | ||
1786 | |||
1787 | k = eet_identity_open("cert.pem", "key_enc.pem", &badpass_get); | ||
1788 | fail_if(k); | ||
1789 | |||
1790 | if (k) | ||
1791 | eet_identity_close(k); | ||
1792 | |||
1793 | k = eet_identity_open("cert.pem", "key_enc.pem", &pass_get); | ||
1794 | fail_if(!k); | ||
1795 | |||
1796 | if (k) | ||
1797 | eet_identity_close(k); | ||
1798 | |||
1799 | eet_shutdown(); | ||
1800 | } | ||
1801 | END_TEST | ||
1802 | START_TEST(eet_cipher_decipher_simple) | ||
1803 | { | ||
1804 | const char *buffer = "Here is a string of data to save !"; | ||
1805 | const char *key = "This is a crypto key"; | ||
1806 | const char *key_bad = "This is another crypto key"; | ||
1807 | Eet_File *ef; | ||
1808 | char *test; | ||
1809 | char *file = strdup("/tmp/eet_suite_testXXXXXX"); | ||
1810 | int size; | ||
1811 | |||
1812 | eet_init(); | ||
1813 | |||
1814 | fail_if(!(file = tmpnam(file))); | ||
1815 | fail_if(chdir(CERT_DIR)); | ||
1816 | |||
1817 | /* Crypt an eet file. */ | ||
1818 | ef = eet_open(file, EET_FILE_MODE_WRITE); | ||
1819 | fail_if(!ef); | ||
1820 | |||
1821 | fail_if(!eet_write_cipher(ef, "keys/tests", buffer, strlen(buffer) + 1, 0, | ||
1822 | key)); | ||
1823 | |||
1824 | eet_close(ef); | ||
1825 | |||
1826 | /* Decrypt an eet file. */ | ||
1827 | ef = eet_open(file, EET_FILE_MODE_READ); | ||
1828 | fail_if(!ef); | ||
1829 | |||
1830 | test = eet_read_cipher(ef, "keys/tests", &size, key); | ||
1831 | fail_if(!test); | ||
1832 | fail_if(size != (int)strlen(buffer) + 1); | ||
1833 | |||
1834 | fail_if(memcmp(test, buffer, strlen(buffer) + 1) != 0); | ||
1835 | |||
1836 | eet_close(ef); | ||
1837 | |||
1838 | /* Decrypt an eet file. */ | ||
1839 | ef = eet_open(file, EET_FILE_MODE_READ); | ||
1840 | fail_if(!ef); | ||
1841 | |||
1842 | test = eet_read_cipher(ef, "keys/tests", &size, key_bad); | ||
1843 | |||
1844 | if (size == (int)strlen(buffer) + 1) | ||
1845 | fail_if(memcmp(test, buffer, strlen(buffer) + 1) == 0); | ||
1846 | |||
1847 | eet_close(ef); | ||
1848 | |||
1849 | fail_if(unlink(file) != 0); | ||
1850 | |||
1851 | eet_shutdown(); | ||
1852 | } /* START_TEST */ | ||
1853 | |||
1854 | END_TEST | ||
1855 | |||
1856 | #ifdef EINA_HAVE_THREADS | ||
1857 | |||
1858 | static Eina_Bool open_worker_stop; | ||
1859 | |||
1860 | # ifdef _EET_INCLUDED_PTHREAD | ||
1861 | |||
1862 | static void * | ||
1863 | open_close_worker(void *path) | ||
1864 | { | ||
1865 | while (!open_worker_stop) | ||
1866 | { | ||
1867 | Eet_File *ef = eet_open((char const *)path, EET_FILE_MODE_READ); | ||
1868 | if (ef == NULL) | ||
1869 | pthread_exit("eet_open() failed"); | ||
1870 | else | ||
1871 | { | ||
1872 | Eet_Error err_code = eet_close(ef); | ||
1873 | if (err_code != EET_ERROR_NONE) | ||
1874 | pthread_exit("eet_close() failed"); | ||
1875 | } | ||
1876 | } | ||
1877 | |||
1878 | pthread_exit(NULL); | ||
1879 | } /* open_close_worker */ | ||
1880 | |||
1881 | # else /* ifdef _EET_INCLUDED_PTHREAD */ | ||
1882 | |||
1883 | static unsigned int __stdcall | ||
1884 | open_close_worker(void *path) | ||
1885 | { | ||
1886 | while (!open_worker_stop) | ||
1887 | { | ||
1888 | Eet_File *ef = eet_open((char const *)path, EET_FILE_MODE_READ); | ||
1889 | if (ef == NULL) | ||
1890 | _endthreadex(-1); | ||
1891 | else | ||
1892 | { | ||
1893 | Eet_Error err_code = eet_close(ef); | ||
1894 | if (err_code != EET_ERROR_NONE) | ||
1895 | _endthreadex(-2); | ||
1896 | } | ||
1897 | } | ||
1898 | |||
1899 | _endthreadex(0); | ||
1900 | } /* open_close_worker */ | ||
1901 | |||
1902 | # endif /* ifdef _EET_INCLUDED_PTHREAD */ | ||
1903 | |||
1904 | START_TEST(eet_cache_concurrency) | ||
1905 | { | ||
1906 | char *file = strdup("/tmp/eet_suite_testXXXXXX"); | ||
1907 | const char *buffer = "test data"; | ||
1908 | Eet_File *ef; | ||
1909 | void *thread_ret; | ||
1910 | unsigned int n; | ||
1911 | # ifdef _EET_INCLUDED_PTHREAD | ||
1912 | pthread_t thread; | ||
1913 | # else /* ifdef _EET_INCLUDED_PTHREAD */ | ||
1914 | uintptr_t thread; | ||
1915 | unsigned int thread_id; | ||
1916 | DWORD ret; | ||
1917 | # endif /* ifdef _EET_INCLUDED_PTHREAD */ | ||
1918 | |||
1919 | eet_init(); | ||
1920 | eina_threads_init(); | ||
1921 | |||
1922 | /* create a file to test with */ | ||
1923 | fail_if(!(file = tmpnam(file))); | ||
1924 | ef = eet_open(file, EET_FILE_MODE_WRITE); | ||
1925 | fail_if(!ef); | ||
1926 | fail_if(!eet_write(ef, "keys/tests", buffer, strlen(buffer) + 1, 0)); | ||
1927 | |||
1928 | /* start a thread that repeatedly opens and closes a file */ | ||
1929 | open_worker_stop = 0; | ||
1930 | # ifdef _EET_INCLUDED_PTHREAD | ||
1931 | pthread_create(&thread, NULL, open_close_worker, file); | ||
1932 | # else /* ifdef _EET_INCLUDED_PTHREAD */ | ||
1933 | thread = _beginthreadex(NULL, 0, open_close_worker, file, 0, &thread_id); | ||
1934 | # endif /* ifdef _EET_INCLUDED_PTHREAD */ | ||
1935 | /* clear the cache repeatedly in this thread */ | ||
1936 | for (n = 0; n < 20000; ++n) | ||
1937 | { | ||
1938 | eet_clearcache(); | ||
1939 | } | ||
1940 | |||
1941 | /* join the other thread, and fail if it returned an error message */ | ||
1942 | open_worker_stop = 1; | ||
1943 | # ifdef _EET_INCLUDED_PTHREAD | ||
1944 | fail_if(pthread_join(thread, &thread_ret) != 0); | ||
1945 | fail_unless(thread_ret == NULL, (char const *)thread_ret); | ||
1946 | # else /* ifdef _EET_INCLUDED_PTHREAD */ | ||
1947 | ret = WaitForSingleObject((HANDLE)thread, INFINITE); | ||
1948 | fail_if(ret != WAIT_OBJECT_0); | ||
1949 | fail_if(GetExitCodeThread((HANDLE)thread, &ret) == FALSE); | ||
1950 | fail_if(ret != 0); | ||
1951 | # endif /* ifdef _EET_INCLUDED_PTHREAD */ | ||
1952 | |||
1953 | fail_if(unlink(file) != 0); | ||
1954 | |||
1955 | eina_threads_shutdown(); | ||
1956 | eet_shutdown(); | ||
1957 | } | ||
1958 | END_TEST | ||
1959 | |||
1960 | #endif /* EINA_HAVE_THREADS */ | ||
1961 | |||
1962 | typedef struct _Eet_Connection_Data Eet_Connection_Data; | ||
1963 | struct _Eet_Connection_Data | ||
1964 | { | ||
1965 | Eet_Connection *conn; | ||
1966 | Eet_Data_Descriptor *edd; | ||
1967 | Eina_Bool test; | ||
1968 | }; | ||
1969 | |||
1970 | static Eina_Bool | ||
1971 | _eet_connection_read(const void *eet_data, | ||
1972 | size_t size, | ||
1973 | void *user_data) | ||
1974 | { | ||
1975 | Eet_Connection_Data *dt = user_data; | ||
1976 | Eet_Test_Ex_Type *result; | ||
1977 | Eet_Node *node; | ||
1978 | int test; | ||
1979 | |||
1980 | result = eet_data_descriptor_decode(dt->edd, eet_data, size); | ||
1981 | node = eet_data_node_decode_cipher(eet_data, NULL, size); | ||
1982 | |||
1983 | /* Test the resulting data. */ | ||
1984 | fail_if(!node); | ||
1985 | fail_if(_eet_test_ex_check(result, 0) != 0); | ||
1986 | fail_if(_eet_test_ex_check(eina_list_data_get(result->list), 1) != 0); | ||
1987 | fail_if(eina_list_data_get(result->ilist) == NULL); | ||
1988 | fail_if(*((int *)eina_list_data_get(result->ilist)) != 42); | ||
1989 | fail_if(eina_list_data_get(result->slist) == NULL); | ||
1990 | fail_if(strcmp(eina_list_data_get(result->slist), "test") != 0); | ||
1991 | fail_if(eina_hash_find(result->shash, EET_TEST_KEY1) == NULL); | ||
1992 | fail_if(strcmp(eina_hash_find(result->shash, EET_TEST_KEY1), "test") != 0); | ||
1993 | fail_if(strcmp(result->charray[0], "test") != 0); | ||
1994 | |||
1995 | test = 0; | ||
1996 | if (result->hash) | ||
1997 | eina_hash_foreach(result->hash, func, &test); | ||
1998 | |||
1999 | fail_if(test != 0); | ||
2000 | if (result->ihash) | ||
2001 | eina_hash_foreach(result->ihash, func7, &test); | ||
2002 | |||
2003 | fail_if(test != 0); | ||
2004 | |||
2005 | if (!dt->test) | ||
2006 | { | ||
2007 | dt->test = EINA_TRUE; | ||
2008 | fail_if(!eet_connection_node_send(dt->conn, node, NULL)); | ||
2009 | } | ||
2010 | |||
2011 | return EINA_TRUE; | ||
2012 | } /* _eet_connection_read */ | ||
2013 | |||
2014 | static Eina_Bool | ||
2015 | _eet_connection_write(const void *data, | ||
2016 | size_t size, | ||
2017 | void *user_data) | ||
2018 | { | ||
2019 | Eet_Connection_Data *dt = user_data; | ||
2020 | int still; | ||
2021 | |||
2022 | if (!dt->test) | ||
2023 | { | ||
2024 | int step = size / 3; | ||
2025 | |||
2026 | eet_connection_received(dt->conn, data, step); | ||
2027 | eet_connection_received(dt->conn, (char *)data + step, step); | ||
2028 | size -= 2 * step; | ||
2029 | still = eet_connection_received(dt->conn, (char *)data + 2 * step, size); | ||
2030 | } | ||
2031 | else | ||
2032 | still = eet_connection_received(dt->conn, data, size); | ||
2033 | |||
2034 | fail_if(still); | ||
2035 | |||
2036 | return EINA_TRUE; | ||
2037 | } /* _eet_connection_write */ | ||
2038 | |||
2039 | START_TEST(eet_connection_check) | ||
2040 | { | ||
2041 | Eet_Connection *conn; | ||
2042 | Eet_Data_Descriptor *edd; | ||
2043 | Eet_Data_Descriptor_Class eddc; | ||
2044 | Eet_Connection_Data ecd; | ||
2045 | Eet_Test_Ex_Type etbt; | ||
2046 | Eina_Bool on_going; | ||
2047 | |||
2048 | eet_init(); | ||
2049 | |||
2050 | _eet_test_ex_set(&etbt, 0); | ||
2051 | etbt.list = eina_list_prepend(etbt.list, _eet_test_ex_set(NULL, 1)); | ||
2052 | etbt.list = eina_list_prepend(etbt.list, _eet_test_ex_set(NULL, 1)); | ||
2053 | etbt.hash = eina_hash_string_superfast_new(NULL); | ||
2054 | eina_hash_add(etbt.hash, EET_TEST_KEY1, _eet_test_ex_set(NULL, 2)); | ||
2055 | eina_hash_add(etbt.hash, EET_TEST_KEY2, _eet_test_ex_set(NULL, 2)); | ||
2056 | etbt.ilist = eina_list_prepend(etbt.ilist, &i42); | ||
2057 | etbt.ilist = eina_list_prepend(etbt.ilist, &i42); | ||
2058 | etbt.ihash = eina_hash_string_superfast_new(NULL); | ||
2059 | eina_hash_add(etbt.ihash, EET_TEST_KEY1, &i7); | ||
2060 | eina_hash_add(etbt.ihash, EET_TEST_KEY2, &i7); | ||
2061 | etbt.slist = eina_list_prepend(NULL, "test"); | ||
2062 | etbt.shash = eina_hash_string_superfast_new(NULL); | ||
2063 | eina_hash_add(etbt.shash, EET_TEST_KEY1, "test"); | ||
2064 | memset(&etbt.charray, 0, sizeof(etbt.charray)); | ||
2065 | etbt.charray[0] = "test"; | ||
2066 | |||
2067 | eet_eina_file_data_descriptor_class_set(&eddc, sizeof (eddc), | ||
2068 | "Eet_Test_Ex_Type", | ||
2069 | sizeof(Eet_Test_Ex_Type)); | ||
2070 | |||
2071 | edd = eet_data_descriptor_file_new(&eddc); | ||
2072 | fail_if(!edd); | ||
2073 | |||
2074 | _eet_build_ex_descriptor(edd); | ||
2075 | |||
2076 | /* Create a connection. */ | ||
2077 | conn = eet_connection_new(_eet_connection_read, _eet_connection_write, &ecd); | ||
2078 | fail_if(!conn); | ||
2079 | |||
2080 | /* Init context. */ | ||
2081 | ecd.test = EINA_FALSE; | ||
2082 | ecd.conn = conn; | ||
2083 | ecd.edd = edd; | ||
2084 | |||
2085 | /* Test the connection. */ | ||
2086 | fail_if(!eet_connection_send(conn, edd, &etbt, NULL)); | ||
2087 | |||
2088 | fail_if(!ecd.test); | ||
2089 | |||
2090 | fail_if(!eet_connection_close(conn, &on_going)); | ||
2091 | |||
2092 | fail_if(on_going); | ||
2093 | |||
2094 | eet_shutdown(); | ||
2095 | } | ||
2096 | END_TEST | ||
2097 | |||
2098 | struct _Eet_5FP | ||
2099 | { | ||
2100 | Eina_F32p32 fp32; | ||
2101 | Eina_F16p16 fp16; | ||
2102 | Eina_F8p24 fp8; | ||
2103 | Eina_F32p32 f1; | ||
2104 | Eina_F32p32 f0; | ||
2105 | }; | ||
2106 | typedef struct _Eet_5FP Eet_5FP; | ||
2107 | |||
2108 | struct _Eet_5DBL | ||
2109 | { | ||
2110 | double fp32; | ||
2111 | double fp16; | ||
2112 | float fp8; | ||
2113 | double f1; | ||
2114 | double f0; | ||
2115 | }; | ||
2116 | typedef struct _Eet_5DBL Eet_5DBL; | ||
2117 | |||
2118 | START_TEST(eet_fp) | ||
2119 | { | ||
2120 | Eet_Data_Descriptor_Class eddc; | ||
2121 | Eet_Data_Descriptor *edd_5FP; | ||
2122 | Eet_Data_Descriptor *edd_5DBL; | ||
2123 | Eet_5FP origin; | ||
2124 | Eet_5DBL *convert; | ||
2125 | Eet_5FP *build; | ||
2126 | void *blob; | ||
2127 | int size; | ||
2128 | |||
2129 | eet_init(); | ||
2130 | |||
2131 | EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Eet_5FP); | ||
2132 | edd_5FP = eet_data_descriptor_stream_new(&eddc); | ||
2133 | |||
2134 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd_5FP, Eet_5FP, "fp32", fp32, EET_T_F32P32); | ||
2135 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd_5FP, Eet_5FP, "fp16", fp16, EET_T_F16P16); | ||
2136 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd_5FP, Eet_5FP, "fp8", fp8, EET_T_F8P24); | ||
2137 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd_5FP, Eet_5FP, "f1", f1, EET_T_F32P32); | ||
2138 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd_5FP, Eet_5FP, "f0", f0, EET_T_F32P32); | ||
2139 | |||
2140 | eet_eina_stream_data_descriptor_class_set(&eddc, sizeof (eddc), "Eet_5FP", sizeof (Eet_5DBL)); | ||
2141 | edd_5DBL = eet_data_descriptor_stream_new(&eddc); | ||
2142 | |||
2143 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd_5DBL, Eet_5DBL, "fp32", fp32, EET_T_DOUBLE); | ||
2144 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd_5DBL, Eet_5DBL, "fp16", fp16, EET_T_DOUBLE); | ||
2145 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd_5DBL, Eet_5DBL, "fp8", fp8, EET_T_FLOAT); | ||
2146 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd_5DBL, Eet_5DBL, "f1", f1, EET_T_DOUBLE); | ||
2147 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd_5DBL, Eet_5DBL, "f0", f0, EET_T_DOUBLE); | ||
2148 | |||
2149 | origin.fp32 = eina_f32p32_double_from(1.125); | ||
2150 | origin.fp16 = eina_f16p16_int_from(2000); | ||
2151 | origin.fp8 = eina_f8p24_int_from(125); | ||
2152 | origin.f1 = eina_f32p32_int_from(1); | ||
2153 | origin.f0 = 0; | ||
2154 | |||
2155 | blob = eet_data_descriptor_encode(edd_5FP, &origin, &size); | ||
2156 | fail_if(!blob || size <= 0); | ||
2157 | |||
2158 | build = eet_data_descriptor_decode(edd_5FP, blob, size); | ||
2159 | fail_if(!build); | ||
2160 | |||
2161 | convert = eet_data_descriptor_decode(edd_5DBL, blob, size); | ||
2162 | fail_if(!convert); | ||
2163 | |||
2164 | fail_if(build->fp32 != eina_f32p32_double_from(1.125)); | ||
2165 | fail_if(build->fp16 != eina_f16p16_int_from(2000)); | ||
2166 | fail_if(build->fp8 != eina_f8p24_int_from(125)); | ||
2167 | fail_if(build->f1 != eina_f32p32_int_from(1)); | ||
2168 | fail_if(build->f0 != 0); | ||
2169 | |||
2170 | fail_if(convert->fp32 != 1.125); | ||
2171 | fail_if(convert->fp16 != 2000); | ||
2172 | fail_if(convert->fp8 != 125); | ||
2173 | fail_if(convert->f1 != 1); | ||
2174 | fail_if(convert->f0 != 0); | ||
2175 | |||
2176 | eet_shutdown(); | ||
2177 | } | ||
2178 | END_TEST | ||
2179 | START_TEST(eet_file_fp) | ||
2180 | { | ||
2181 | char *file = strdup("/tmp/eet_suite_testXXXXXX"); | ||
2182 | Eet_Data_Descriptor_Class eddc; | ||
2183 | Eet_Data_Descriptor *edd_5FP; | ||
2184 | Eet_Data_Descriptor *edd_5DBL; | ||
2185 | Eet_File *ef; | ||
2186 | Eet_5FP origin; | ||
2187 | Eet_5DBL *convert; | ||
2188 | Eet_5FP *build; | ||
2189 | |||
2190 | eet_init(); | ||
2191 | |||
2192 | EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Eet_5FP); | ||
2193 | edd_5FP = eet_data_descriptor_file_new(&eddc); | ||
2194 | |||
2195 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd_5FP, Eet_5FP, "fp32", fp32, EET_T_F32P32); | ||
2196 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd_5FP, Eet_5FP, "fp16", fp16, EET_T_F16P16); | ||
2197 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd_5FP, Eet_5FP, "fp8", fp8, EET_T_F8P24); | ||
2198 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd_5FP, Eet_5FP, "f1", f1, EET_T_F32P32); | ||
2199 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd_5FP, Eet_5FP, "f0", f0, EET_T_F32P32); | ||
2200 | |||
2201 | eet_eina_file_data_descriptor_class_set(&eddc, sizeof (eddc), "Eet_5FP", sizeof (Eet_5DBL)); | ||
2202 | edd_5DBL = eet_data_descriptor_file_new(&eddc); | ||
2203 | |||
2204 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd_5DBL, Eet_5DBL, "fp32", fp32, EET_T_DOUBLE); | ||
2205 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd_5DBL, Eet_5DBL, "fp16", fp16, EET_T_DOUBLE); | ||
2206 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd_5DBL, Eet_5DBL, "fp8", fp8, EET_T_FLOAT); | ||
2207 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd_5DBL, Eet_5DBL, "f1", f1, EET_T_DOUBLE); | ||
2208 | EET_DATA_DESCRIPTOR_ADD_BASIC(edd_5DBL, Eet_5DBL, "f0", f0, EET_T_DOUBLE); | ||
2209 | |||
2210 | origin.fp32 = eina_f32p32_double_from(1.125); | ||
2211 | origin.fp16 = eina_f16p16_int_from(2000); | ||
2212 | origin.fp8 = eina_f8p24_int_from(125); | ||
2213 | origin.f1 = eina_f32p32_int_from(1); | ||
2214 | origin.f0 = 0; | ||
2215 | |||
2216 | fail_if(!(file = tmpnam(file))); | ||
2217 | |||
2218 | ef = eet_open(file, EET_FILE_MODE_READ_WRITE); | ||
2219 | fail_if(!ef); | ||
2220 | |||
2221 | fail_if(!eet_data_write(ef, edd_5FP, EET_TEST_FILE_KEY1, &origin, 1)); | ||
2222 | |||
2223 | build = eet_data_read(ef, edd_5FP, EET_TEST_FILE_KEY1); | ||
2224 | fail_if(!build); | ||
2225 | |||
2226 | convert = eet_data_read(ef, edd_5DBL, EET_TEST_FILE_KEY1); | ||
2227 | fail_if(!convert); | ||
2228 | |||
2229 | fail_if(build->fp32 != eina_f32p32_double_from(1.125)); | ||
2230 | fail_if(build->fp16 != eina_f16p16_int_from(2000)); | ||
2231 | fail_if(build->fp8 != eina_f8p24_int_from(125)); | ||
2232 | fail_if(build->f1 != eina_f32p32_int_from(1)); | ||
2233 | fail_if(build->f0 != 0); | ||
2234 | |||
2235 | fail_if(convert->fp32 != 1.125); | ||
2236 | fail_if(convert->fp16 != 2000); | ||
2237 | fail_if(convert->fp8 != 125); | ||
2238 | fail_if(convert->f1 != 1); | ||
2239 | fail_if(convert->f0 != 0); | ||
2240 | |||
2241 | eet_close(ef); | ||
2242 | |||
2243 | fail_if(unlink(file) != 0); | ||
2244 | |||
2245 | eet_shutdown(); | ||
2246 | } /* START_TEST */ | ||
2247 | |||
2248 | END_TEST | ||
2249 | |||
2250 | typedef struct _Eet_Union_Test Eet_Union_Test; | ||
2251 | typedef struct _Eet_Variant_Test Eet_Variant_Test; | ||
2252 | typedef struct _Eet_Variant_Type Eet_Variant_Type; | ||
2253 | typedef struct _Eet_Inherit_Test1 Eet_Inherit_Test1; | ||
2254 | typedef struct _Eet_Inherit_Test2 Eet_Inherit_Test2; | ||
2255 | typedef struct _Eet_Inherit_Test3 Eet_Inherit_Test3; | ||
2256 | typedef struct _Eet_St1 Eet_St1; | ||
2257 | typedef struct _Eet_St2 Eet_St2; | ||
2258 | typedef struct _Eet_St3 Eet_St3; | ||
2259 | typedef struct _Eet_List Eet_List; | ||
2260 | |||
2261 | typedef enum _Eet_Union | ||
2262 | { | ||
2263 | EET_UNKNOWN, | ||
2264 | EET_ST1, | ||
2265 | EET_ST2, | ||
2266 | EET_ST3 | ||
2267 | } Eet_Union; | ||
2268 | |||
2269 | struct | ||
2270 | { | ||
2271 | Eet_Union u; | ||
2272 | const char *name; | ||
2273 | } eet_mapping[] = { | ||
2274 | { EET_ST1, "ST1" }, | ||
2275 | { EET_ST2, "ST2" }, | ||
2276 | { EET_ST3, "ST3" }, | ||
2277 | { EET_UNKNOWN, NULL } | ||
2278 | }; | ||
2279 | |||
2280 | struct _Eet_St1 | ||
2281 | { | ||
2282 | double val1; | ||
2283 | int stuff; | ||
2284 | char *s1; | ||
2285 | }; | ||
2286 | |||
2287 | struct _Eet_St2 | ||
2288 | { | ||
2289 | Eina_Bool b1; | ||
2290 | unsigned long long v1; | ||
2291 | }; | ||
2292 | |||
2293 | struct _Eet_St3 | ||
2294 | { | ||
2295 | int boby; | ||
2296 | }; | ||
2297 | |||
2298 | struct _Eet_Union_Test | ||
2299 | { | ||
2300 | Eet_Union type; | ||
2301 | |||
2302 | union { | ||
2303 | Eet_St1 st1; | ||
2304 | Eet_St2 st2; | ||
2305 | Eet_St3 st3; | ||
2306 | } u; | ||
2307 | }; | ||
2308 | |||
2309 | struct _Eet_Variant_Type | ||
2310 | { | ||
2311 | const char *type; | ||
2312 | Eina_Bool unknow : 1; | ||
2313 | }; | ||
2314 | |||
2315 | struct _Eet_Variant_Test | ||
2316 | { | ||
2317 | Eet_Variant_Type t; | ||
2318 | |||
2319 | void *data; | ||
2320 | Eina_List *data_list; | ||
2321 | }; | ||
2322 | |||
2323 | struct _Eet_Inherit_Test1 | ||
2324 | { | ||
2325 | Eet_Union type; | ||
2326 | Eet_St1 st1; | ||
2327 | }; | ||
2328 | struct _Eet_Inherit_Test2 | ||
2329 | { | ||
2330 | Eet_Union type; | ||
2331 | Eet_St2 st2; | ||
2332 | }; | ||
2333 | struct _Eet_Inherit_Test3 | ||
2334 | { | ||
2335 | Eet_Union type; | ||
2336 | Eet_St3 st3; | ||
2337 | }; | ||
2338 | |||
2339 | struct _Eet_List | ||
2340 | { | ||
2341 | Eina_List *list; | ||
2342 | }; | ||
2343 | |||
2344 | static const char * | ||
2345 | _eet_union_type_get(const void *data, | ||
2346 | Eina_Bool *unknow) | ||
2347 | { | ||
2348 | const Eet_Union *u = data; | ||
2349 | int i; | ||
2350 | |||
2351 | if (unknow) | ||
2352 | *unknow = EINA_FALSE; | ||
2353 | |||
2354 | for (i = 0; eet_mapping[i].name != NULL; ++i) | ||
2355 | if (*u == eet_mapping[i].u) | ||
2356 | return eet_mapping[i].name; | ||
2357 | |||
2358 | if (unknow) | ||
2359 | *unknow = EINA_TRUE; | ||
2360 | |||
2361 | return NULL; | ||
2362 | } /* _eet_union_type_get */ | ||
2363 | |||
2364 | static Eina_Bool | ||
2365 | _eet_union_type_set(const char *type, | ||
2366 | void *data, | ||
2367 | Eina_Bool unknow) | ||
2368 | { | ||
2369 | Eet_Union *u = data; | ||
2370 | int i; | ||
2371 | |||
2372 | if (unknow) | ||
2373 | return EINA_FALSE; | ||
2374 | |||
2375 | for (i = 0; eet_mapping[i].name != NULL; ++i) | ||
2376 | if (strcmp(eet_mapping[i].name, type) == 0) | ||
2377 | { | ||
2378 | *u = eet_mapping[i].u; | ||
2379 | return EINA_TRUE; | ||
2380 | } | ||
2381 | |||
2382 | return EINA_FALSE; | ||
2383 | } /* _eet_union_type_set */ | ||
2384 | |||
2385 | static const char * | ||
2386 | _eet_variant_type_get(const void *data, | ||
2387 | Eina_Bool *unknow) | ||
2388 | { | ||
2389 | const Eet_Variant_Type *type = data; | ||
2390 | int i; | ||
2391 | |||
2392 | if (unknow) | ||
2393 | *unknow = type->unknow; | ||
2394 | |||
2395 | for (i = 0; eet_mapping[i].name != NULL; ++i) | ||
2396 | if (strcmp(type->type, eet_mapping[i].name) == 0) | ||
2397 | return eet_mapping[i].name; | ||
2398 | |||
2399 | if (unknow) | ||
2400 | *unknow = EINA_FALSE; | ||
2401 | |||
2402 | return type->type; | ||
2403 | } /* _eet_variant_type_get */ | ||
2404 | |||
2405 | static Eina_Bool | ||
2406 | _eet_variant_type_set(const char *type, | ||
2407 | void *data, | ||
2408 | Eina_Bool unknow) | ||
2409 | { | ||
2410 | Eet_Variant_Type *vt = data; | ||
2411 | |||
2412 | vt->type = type; | ||
2413 | vt->unknow = unknow; | ||
2414 | return EINA_TRUE; | ||
2415 | } /* _eet_variant_type_set */ | ||
2416 | |||
2417 | static Eet_Data_Descriptor * | ||
2418 | _eet_st1_dd(void) | ||
2419 | { | ||
2420 | Eet_Data_Descriptor_Class eddc; | ||
2421 | Eet_Data_Descriptor *res; | ||
2422 | |||
2423 | EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Eet_St1); | ||
2424 | res = eet_data_descriptor_stream_new(&eddc); | ||
2425 | EET_DATA_DESCRIPTOR_ADD_BASIC(res, Eet_St1, "val1", val1, EET_T_DOUBLE); | ||
2426 | EET_DATA_DESCRIPTOR_ADD_BASIC(res, Eet_St1, "stuff", stuff, EET_T_INT); | ||
2427 | EET_DATA_DESCRIPTOR_ADD_BASIC(res, Eet_St1, "s1", s1, EET_T_STRING); | ||
2428 | |||
2429 | return res; | ||
2430 | } /* _eet_st1_dd */ | ||
2431 | |||
2432 | static void | ||
2433 | _eet_st1_set(Eet_St1 *st1, | ||
2434 | int i) | ||
2435 | { | ||
2436 | st1->val1 = EET_TEST_DOUBLE; | ||
2437 | st1->stuff = EET_TEST_INT + i; | ||
2438 | st1->s1 = EET_TEST_STRING; | ||
2439 | } /* _eet_st1_set */ | ||
2440 | |||
2441 | static void | ||
2442 | _eet_st1_cmp(Eet_St1 *st1, | ||
2443 | int i) | ||
2444 | { | ||
2445 | double tmp; | ||
2446 | |||
2447 | fail_if(!st1); | ||
2448 | |||
2449 | tmp = st1->val1 - EET_TEST_DOUBLE; | ||
2450 | if (tmp < 0) | ||
2451 | tmp = -tmp; | ||
2452 | |||
2453 | fail_if(tmp > 0.005); | ||
2454 | fail_if(st1->stuff != EET_TEST_INT + i); | ||
2455 | fail_if(strcmp(st1->s1, EET_TEST_STRING)); | ||
2456 | } /* _eet_st1_cmp */ | ||
2457 | |||
2458 | static Eet_Data_Descriptor * | ||
2459 | _eet_st2_dd(void) | ||
2460 | { | ||
2461 | Eet_Data_Descriptor_Class eddc; | ||
2462 | Eet_Data_Descriptor *res; | ||
2463 | |||
2464 | EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Eet_St2); | ||
2465 | res = eet_data_descriptor_stream_new(&eddc); | ||
2466 | EET_DATA_DESCRIPTOR_ADD_BASIC(res, Eet_St2, "b1", b1, EET_T_UCHAR); | ||
2467 | EET_DATA_DESCRIPTOR_ADD_BASIC(res, Eet_St2, "v1", v1, EET_T_ULONG_LONG); | ||
2468 | |||
2469 | return res; | ||
2470 | } /* _eet_st2_dd */ | ||
2471 | |||
2472 | static void | ||
2473 | _eet_st2_set(Eet_St2 *st2, | ||
2474 | int i) | ||
2475 | { | ||
2476 | st2->b1 = EINA_TRUE; | ||
2477 | st2->v1 = EET_TEST_LONG_LONG + i; | ||
2478 | } /* _eet_st2_set */ | ||
2479 | |||
2480 | static void | ||
2481 | _eet_st2_cmp(Eet_St2 *st2, | ||
2482 | int i) | ||
2483 | { | ||
2484 | fail_if(!st2->b1); | ||
2485 | fail_if(st2->v1 != EET_TEST_LONG_LONG + i); | ||
2486 | } /* _eet_st2_cmp */ | ||
2487 | |||
2488 | static Eet_Data_Descriptor * | ||
2489 | _eet_st3_dd(void) | ||
2490 | { | ||
2491 | Eet_Data_Descriptor_Class eddc; | ||
2492 | Eet_Data_Descriptor *res; | ||
2493 | |||
2494 | EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Eet_St3); | ||
2495 | res = eet_data_descriptor_stream_new(&eddc); | ||
2496 | EET_DATA_DESCRIPTOR_ADD_BASIC(res, Eet_St3, "boby", boby, EET_T_INT); | ||
2497 | |||
2498 | return res; | ||
2499 | } /* _eet_st3_dd */ | ||
2500 | |||
2501 | static void | ||
2502 | _eet_st3_set(Eet_St3 *st3, | ||
2503 | int i) | ||
2504 | { | ||
2505 | st3->boby = EET_TEST_INT + i; | ||
2506 | } /* _eet_st3_set */ | ||
2507 | |||
2508 | static void | ||
2509 | _eet_st3_cmp(Eet_St3 *st3, | ||
2510 | int i) | ||
2511 | { | ||
2512 | fail_if(st3->boby != EET_TEST_INT + i); | ||
2513 | } /* _eet_st3_cmp */ | ||
2514 | |||
2515 | START_TEST(eet_test_union) | ||
2516 | { | ||
2517 | Eet_Union_Test *eut; | ||
2518 | Eet_List *l; | ||
2519 | Eet_Data_Descriptor_Class eddc; | ||
2520 | Eet_Data_Descriptor *edd; | ||
2521 | Eet_Data_Descriptor *unified; | ||
2522 | Eet_Data_Descriptor *m; | ||
2523 | void *blob; | ||
2524 | int size; | ||
2525 | int i; | ||
2526 | |||
2527 | eina_init(); | ||
2528 | eet_init(); | ||
2529 | |||
2530 | EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Eet_Union_Test); | ||
2531 | edd = eet_data_descriptor_stream_new(&eddc); | ||
2532 | |||
2533 | EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Eet_Union_Test); | ||
2534 | m = eet_data_descriptor_stream_new(&eddc); | ||
2535 | |||
2536 | eddc.version = EET_DATA_DESCRIPTOR_CLASS_VERSION; | ||
2537 | eddc.func.type_get = _eet_union_type_get; | ||
2538 | eddc.func.type_set = _eet_union_type_set; | ||
2539 | unified = eet_data_descriptor_stream_new(&eddc); | ||
2540 | |||
2541 | EET_DATA_DESCRIPTOR_ADD_MAPPING(unified, "ST1", _eet_st1_dd()); | ||
2542 | EET_DATA_DESCRIPTOR_ADD_MAPPING(unified, "ST2", _eet_st2_dd()); | ||
2543 | EET_DATA_DESCRIPTOR_ADD_MAPPING(unified, "ST3", _eet_st3_dd()); | ||
2544 | |||
2545 | EET_DATA_DESCRIPTOR_ADD_UNION(edd, Eet_Union_Test, "u", u, type, unified); | ||
2546 | |||
2547 | EET_DATA_DESCRIPTOR_ADD_LIST(m, Eet_List, "list", list, edd); | ||
2548 | |||
2549 | l = calloc(1, sizeof (Eet_List)); | ||
2550 | |||
2551 | #define EUT_NEW(Type_Index) \ | ||
2552 | eut = calloc(1, sizeof (Eet_Union_Test)); \ | ||
2553 | eut->type = EET_ST ## Type_Index; \ | ||
2554 | _eet_st ## Type_Index ## _set(&(eut->u.st ## Type_Index), i); | ||
2555 | |||
2556 | for (i = 0; i < 3; ++i) | ||
2557 | { | ||
2558 | EUT_NEW(1); | ||
2559 | l->list = eina_list_append(l->list, eut); | ||
2560 | |||
2561 | EUT_NEW(2); | ||
2562 | l->list = eina_list_append(l->list, eut); | ||
2563 | |||
2564 | EUT_NEW(3); | ||
2565 | l->list = eina_list_append(l->list, eut); | ||
2566 | } | ||
2567 | |||
2568 | blob = eet_data_descriptor_encode(m, l, &size); | ||
2569 | fail_if(!blob || size <= 0); | ||
2570 | |||
2571 | l = eet_data_descriptor_decode(m, blob, size); | ||
2572 | fail_if(!l); | ||
2573 | |||
2574 | fail_if(eina_list_count(l->list) != 9); | ||
2575 | |||
2576 | #define EUT_CMP(Type_Index) \ | ||
2577 | eut = eina_list_nth(l->list, i * 3 + Type_Index - 1); \ | ||
2578 | fail_if(eut->type != EET_ST ## Type_Index); \ | ||
2579 | _eet_st ## Type_Index ## _cmp(&(eut->u.st ## Type_Index), i); | ||
2580 | |||
2581 | for (i = 0; i < 3; ++i) | ||
2582 | { | ||
2583 | EUT_CMP(1); | ||
2584 | EUT_CMP(2); | ||
2585 | EUT_CMP(3); | ||
2586 | } | ||
2587 | |||
2588 | eet_shutdown(); | ||
2589 | eina_shutdown(); | ||
2590 | } | ||
2591 | END_TEST | ||
2592 | START_TEST(eet_test_variant) | ||
2593 | { | ||
2594 | Eet_Variant_Test *evt; | ||
2595 | Eet_List *l; | ||
2596 | Eet_St1 *st1; | ||
2597 | Eet_St2 *st2; | ||
2598 | Eet_St3 *st3; | ||
2599 | Eet_Data_Descriptor_Class eddc; | ||
2600 | Eet_Data_Descriptor *edd; | ||
2601 | Eet_Data_Descriptor *unified; | ||
2602 | Eet_Data_Descriptor *m; | ||
2603 | void *blob; | ||
2604 | int size; | ||
2605 | int i; | ||
2606 | |||
2607 | eina_init(); | ||
2608 | eet_init(); | ||
2609 | |||
2610 | EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Eet_Variant_Test); | ||
2611 | edd = eet_data_descriptor_stream_new(&eddc); | ||
2612 | |||
2613 | EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Eet_Variant_Test); | ||
2614 | m = eet_data_descriptor_stream_new(&eddc); | ||
2615 | |||
2616 | eddc.version = EET_DATA_DESCRIPTOR_CLASS_VERSION; | ||
2617 | eddc.func.type_get = _eet_variant_type_get; | ||
2618 | eddc.func.type_set = _eet_variant_type_set; | ||
2619 | unified = eet_data_descriptor_stream_new(&eddc); | ||
2620 | |||
2621 | EET_DATA_DESCRIPTOR_ADD_MAPPING(unified, "ST1", _eet_st1_dd()); | ||
2622 | EET_DATA_DESCRIPTOR_ADD_MAPPING(unified, "ST2", _eet_st2_dd()); | ||
2623 | EET_DATA_DESCRIPTOR_ADD_MAPPING(unified, "ST3", _eet_st3_dd()); | ||
2624 | |||
2625 | EET_DATA_DESCRIPTOR_ADD_VARIANT(edd, | ||
2626 | Eet_Variant_Test, | ||
2627 | "data", | ||
2628 | data, | ||
2629 | t, | ||
2630 | unified); | ||
2631 | |||
2632 | unified = eet_data_descriptor_stream_new(&eddc); | ||
2633 | eet_data_descriptor_element_add(unified, "ST1", | ||
2634 | EET_T_UNKNOW, EET_G_LIST, | ||
2635 | 0, 0, NULL, _eet_st1_dd()); | ||
2636 | eet_data_descriptor_element_add(unified, "ST2", | ||
2637 | EET_T_UNKNOW, EET_G_LIST, | ||
2638 | 0, 0, NULL, _eet_st2_dd()); | ||
2639 | |||
2640 | EET_DATA_DESCRIPTOR_ADD_VARIANT(edd, Eet_Variant_Test, | ||
2641 | "data_list", data_list, t, unified); | ||
2642 | |||
2643 | EET_DATA_DESCRIPTOR_ADD_LIST(m, Eet_List, "list", list, edd); | ||
2644 | |||
2645 | l = calloc(1, sizeof (Eet_List)); | ||
2646 | |||
2647 | #define EVT_NEW(Type_Index) \ | ||
2648 | evt = calloc(1, sizeof (Eet_Variant_Test)); \ | ||
2649 | evt->t.type = eet_mapping[Type_Index - 1].name; \ | ||
2650 | st ## Type_Index = calloc(1, sizeof (Eet_St ## Type_Index)); \ | ||
2651 | _eet_st ## Type_Index ## _set(st ## Type_Index, i); \ | ||
2652 | evt->data = st ## Type_Index; | ||
2653 | |||
2654 | for (i = 0; i < 3; ++i) | ||
2655 | { | ||
2656 | EVT_NEW(1); | ||
2657 | l->list = eina_list_append(l->list, evt); | ||
2658 | |||
2659 | st1 = calloc(1, sizeof (Eet_St1)); | ||
2660 | _eet_st1_set(st1, i); | ||
2661 | evt->data_list = eina_list_append(evt->data_list, st1); | ||
2662 | |||
2663 | EVT_NEW(2); | ||
2664 | l->list = eina_list_append(l->list, evt); | ||
2665 | |||
2666 | EVT_NEW(3); | ||
2667 | l->list = eina_list_append(l->list, evt); | ||
2668 | } | ||
2669 | |||
2670 | blob = eet_data_descriptor_encode(m, l, &size); | ||
2671 | fail_if(!blob || size <= 0); | ||
2672 | |||
2673 | l = eet_data_descriptor_decode(m, blob, size); | ||
2674 | fail_if(!l); | ||
2675 | |||
2676 | fail_if(eina_list_count(l->list) != 9); | ||
2677 | |||
2678 | #define EVT_CMP(Type_Index) \ | ||
2679 | evt = eina_list_nth(l->list, i * 3 + Type_Index - 1); \ | ||
2680 | fail_if(strcmp(evt->t.type, eet_mapping[Type_Index - 1].name) != 0); \ | ||
2681 | _eet_st ## Type_Index ## _cmp(evt->data, i); | ||
2682 | |||
2683 | for (i = 0; i < 3; ++i) | ||
2684 | { | ||
2685 | EVT_CMP(1); | ||
2686 | |||
2687 | fail_if(!evt->data_list); | ||
2688 | fail_if(eina_list_count(evt->data_list) != 1); | ||
2689 | |||
2690 | st1 = eina_list_data_get(evt->data_list); | ||
2691 | _eet_st1_cmp(st1, i); | ||
2692 | |||
2693 | EVT_CMP(2); | ||
2694 | EVT_CMP(3); | ||
2695 | } | ||
2696 | |||
2697 | eet_shutdown(); | ||
2698 | eina_shutdown(); | ||
2699 | } /* START_TEST */ | ||
2700 | |||
2701 | END_TEST | ||
2702 | |||
2703 | Suite * | ||
2704 | eet_suite(void) | ||
2705 | { | ||
2706 | Suite *s; | ||
2707 | TCase *tc; | ||
2708 | |||
2709 | s = suite_create("Eet"); | ||
2710 | |||
2711 | tc = tcase_create("Eet_Init"); | ||
2712 | tcase_add_test(tc, eet_test_init); | ||
2713 | suite_add_tcase(s, tc); | ||
2714 | |||
2715 | tc = tcase_create("Eet Data Encoding/Decoding"); | ||
2716 | tcase_add_test(tc, eet_test_basic_data_type_encoding_decoding); | ||
2717 | tcase_add_test(tc, eet_test_data_type_encoding_decoding); | ||
2718 | tcase_add_test(tc, eet_test_data_type_dump_undump); | ||
2719 | tcase_add_test(tc, eet_fp); | ||
2720 | tcase_add_test(tc, eet_test_union); | ||
2721 | tcase_add_test(tc, eet_test_variant); | ||
2722 | suite_add_tcase(s, tc); | ||
2723 | |||
2724 | tc = tcase_create("Eet File"); | ||
2725 | tcase_add_test(tc, eet_file_simple_write); | ||
2726 | tcase_add_test(tc, eet_file_data_test); | ||
2727 | tcase_add_test(tc, eet_file_data_dump_test); | ||
2728 | tcase_add_test(tc, eet_file_fp); | ||
2729 | suite_add_tcase(s, tc); | ||
2730 | |||
2731 | tc = tcase_create("Eet Image"); | ||
2732 | tcase_add_test(tc, eet_image); | ||
2733 | tcase_add_test(tc, eet_small_image); | ||
2734 | suite_add_tcase(s, tc); | ||
2735 | |||
2736 | #ifdef HAVE_SIGNATURE | ||
2737 | tc = tcase_create("Eet Identity"); | ||
2738 | tcase_add_test(tc, eet_identity_simple); | ||
2739 | tcase_add_test(tc, eet_identity_open_simple); | ||
2740 | tcase_add_test(tc, eet_identity_open_pkcs8); | ||
2741 | tcase_add_test(tc, eet_identity_open_pkcs8_enc); | ||
2742 | suite_add_tcase(s, tc); | ||
2743 | #endif /* ifdef HAVE_SIGNATURE */ | ||
2744 | |||
2745 | #ifdef HAVE_CIPHER | ||
2746 | tc = tcase_create("Eet Cipher"); | ||
2747 | tcase_add_test(tc, eet_cipher_decipher_simple); | ||
2748 | suite_add_tcase(s, tc); | ||
2749 | #endif /* ifdef HAVE_CIPHER */ | ||
2750 | |||
2751 | #ifdef EINA_HAVE_THREADS | ||
2752 | tc = tcase_create("Eet Cache"); | ||
2753 | tcase_add_test(tc, eet_cache_concurrency); | ||
2754 | suite_add_tcase(s, tc); | ||
2755 | #endif /* ifdef EFL_HAVE_THREADS */ | ||
2756 | |||
2757 | tc = tcase_create("Eet Connection"); | ||
2758 | tcase_add_test(tc, eet_connection_check); | ||
2759 | suite_add_tcase(s, tc); | ||
2760 | |||
2761 | return s; | ||
2762 | } /* eet_suite */ | ||
2763 | |||
2764 | int | ||
2765 | main(void) | ||
2766 | { | ||
2767 | Suite *s; | ||
2768 | SRunner *sr; | ||
2769 | int failed_count; | ||
2770 | |||
2771 | s = eet_suite(); | ||
2772 | sr = srunner_create(s); | ||
2773 | srunner_run_all(sr, CK_ENV); | ||
2774 | failed_count = srunner_ntests_failed(sr); | ||
2775 | srunner_free(sr); | ||
2776 | |||
2777 | return (failed_count == 0) ? EXIT_SUCCESS : EXIT_FAILURE; | ||
2778 | } /* main */ | ||
2779 | |||
diff --git a/libraries/eet/src/tests/eet_suite.h b/libraries/eet/src/tests/eet_suite.h deleted file mode 100644 index c5c91aa..0000000 --- a/libraries/eet/src/tests/eet_suite.h +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | #ifndef _EET_SUITE_H | ||
2 | # define _EET_SUITE_H | ||
3 | |||
4 | #include "Eet.h" | ||
5 | |||
6 | void | ||
7 | eet_test_setup_eddc(Eet_Data_Descriptor_Class *eddc); | ||
8 | |||
9 | #endif /* _EET_SUITE_H */ | ||
diff --git a/libraries/eet/src/tests/key.pem b/libraries/eet/src/tests/key.pem deleted file mode 100644 index 74763ca..0000000 --- a/libraries/eet/src/tests/key.pem +++ /dev/null | |||
@@ -1,15 +0,0 @@ | |||
1 | -----BEGIN RSA PRIVATE KEY----- | ||
2 | MIICXAIBAAKBgQDIhOPOnkTinjxtP+t/Q+F00w0fV0kVqdcamc6uz/o41kRW2fzF | ||
3 | lSFc5HODEZvN1DqJWz4++i4zNdHLHmlQISuxvQh6dnbq+GpVr3Qlzx+UPizzhUvY | ||
4 | DMdCc/RGXhxzh2Si8iXSkpqLfs5bsCUy3tPNUUVMMzSnLeia1VRv+0piEwIDAQAB | ||
5 | AoGAfLLHyNJ8HEIzae16UmawaqplWrw5YxOABbbo5aXJAledoDVoEKexW8dmXngw | ||
6 | 4Eu/K3RmvVtwJ8CsexiqfX5jYMU+YKRbww6Vqr/punIUhiEHVarHMFKG9yo14qSa | ||
7 | z2xPgXvC5p7/Rhci+rAUp36S5kIHch5sLhEEcJayymyzDyECQQD/5B3JdpcovrSI | ||
8 | +nyZ8Iub2+I3f3uox6m1DKxHead26ICoIr7VCnPV5J1gLIB2MofVCbKhmy4PNi5a | ||
9 | 0QdvazJfAkEAyJq9Y+9SQ4sCOVDrFklJxhXuZE4WbnR32XsBdnQ9dauo0E2vDVkv | ||
10 | 6mHnzMWroTjLv4hH5nufE5NvMo8PNGB0zQJAFOKkf737JmsyRv/Szamxa14t/4Ob | ||
11 | LzJkqo9HPGo0feMKJS74zmCVBb8sDR50ubD0HzI0bzZAMyOj8uuepLxmFwJAH+RR | ||
12 | 5bhfeLN52AjgRvvBycckzjeH42mKwD2I/v794l43CV7ATLv4HSgRhQGMBqaT5dBR | ||
13 | tffDU4Zl8EDEJwyKpQJBAJ2NNacURTyavU699QJOIdGAsA4KXici8H3PuuWMtHLR | ||
14 | RKdPFeaCRn+9p7Tglf0rH9hUGOpUXHYD3+ECt6gnVDc= | ||
15 | -----END RSA PRIVATE KEY----- | ||
diff --git a/libraries/eet/src/tests/key_enc.pem b/libraries/eet/src/tests/key_enc.pem deleted file mode 100644 index 83c1ba2..0000000 --- a/libraries/eet/src/tests/key_enc.pem +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
1 | -----BEGIN ENCRYPTED PRIVATE KEY----- | ||
2 | MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQILLqDZE1i0Y8CAggA | ||
3 | MBQGCCqGSIb3DQMHBAjwbnSdTCCDOASCAoB0rMuSIXrzqFQnCexMkC9A5jyd+HvC | ||
4 | 2UV6EWIfFU4yBvp+2dfHg6RKUoZ0wGk8FxAkaAj+boVwf16PPXXQ70AQBb0iGeb4 | ||
5 | YLdjDF2zSoIK3SbsWrhAfJhSMbcMftEZnLTYxLSkTv5R8jb0IPybVNTqFf+KmGav | ||
6 | DwyRVQrdAxIYdJSPwd61Fhs1VqzptmQ8DLKHy35X1fIro3py4jncBhsuqf6H3yj1 | ||
7 | ZFuzCPnwB8unASgbTPD43yObrjyWTjbTtp59WavVdnNS+m7QNW+OfxznHUUJXtMz | ||
8 | /EniglUhR1Uf75wpMpQIPfC77Cary0Y4iLGQZiF1C0WjQzMBufckJFJVRFGfkkMl | ||
9 | ijlaijLUYMqENJ6wsyK5lihsoBCzIDoqI375s9pdeln8sd33Yu+L/Gu4Xo8Bh5cM | ||
10 | 6mlo9WUgw5KibmlZHGEAGdKxcvL0ywswuwQ6yhwcdvCAt6MfrWJNpksa9JmpXJi8 | ||
11 | c21lHwnoyG1DgSqY5VhRyitfnuY3Jegj+7njhooiAJM9w7fxpafN9oxiaJBvPFqd | ||
12 | lfJ42Pj5rkjjVqXOJX7Cf7sF85tW7ygwdGWyXvHn2fhQ+vjaDtZalry//Xytet4r | ||
13 | lvTerO6M6WVMk2yM7vdeBU7c74LVIJmwGR6d837OPax1V+Z9yq6zDuJAQ3l9mtmu | ||
14 | gowV3xInTFRsnSOQcYW5y8dNnugR9FBh8f1NI7SPyW0reeVbPXXhRxg+TyogIXhh | ||
15 | yAfWJ6dDLZ31EVCdqRKxK7b9u2r3dsuaiwT1jFg59Eu2AifFi0j7aDA1lGIKoj3C | ||
16 | cPDwJd8weC+UoWpWX/O4KOpaU62Rwt5wRoOxELG6lHy7cOjZgLmwjg1G | ||
17 | -----END ENCRYPTED PRIVATE KEY----- | ||
diff --git a/libraries/eet/src/tests/key_enc_none.pem b/libraries/eet/src/tests/key_enc_none.pem deleted file mode 100644 index 1163851..0000000 --- a/libraries/eet/src/tests/key_enc_none.pem +++ /dev/null | |||
@@ -1,16 +0,0 @@ | |||
1 | -----BEGIN PRIVATE KEY----- | ||
2 | MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMiE486eROKePG0/ | ||
3 | 639D4XTTDR9XSRWp1xqZzq7P+jjWRFbZ/MWVIVzkc4MRm83UOolbPj76LjM10cse | ||
4 | aVAhK7G9CHp2dur4alWvdCXPH5Q+LPOFS9gMx0Jz9EZeHHOHZKLyJdKSmot+zluw | ||
5 | JTLe081RRUwzNKct6JrVVG/7SmITAgMBAAECgYB8ssfI0nwcQjNp7XpSZrBqqmVa | ||
6 | vDljE4AFtujlpckCV52gNWgQp7Fbx2ZeeDDgS78rdGa9W3AnwKx7GKp9fmNgxT5g | ||
7 | pFvDDpWqv+m6chSGIQdVqscwUob3KjXipJrPbE+Be8Lmnv9GFyL6sBSnfpLmQgdy | ||
8 | HmwuEQRwlrLKbLMPIQJBAP/kHcl2lyi+tIj6fJnwi5vb4jd/e6jHqbUMrEd5p3bo | ||
9 | gKgivtUKc9XknWAsgHYyh9UJsqGbLg82LlrRB29rMl8CQQDImr1j71JDiwI5UOsW | ||
10 | SUnGFe5kThZudHfZewF2dD11q6jQTa8NWS/qYefMxauhOMu/iEfme58Tk28yjw80 | ||
11 | YHTNAkAU4qR/vfsmazJG/9LNqbFrXi3/g5svMmSqj0c8ajR94wolLvjOYJUFvywN | ||
12 | HnS5sPQfMjRvNkAzI6Py656kvGYXAkAf5FHluF94s3nYCOBG+8HJxyTON4fjaYrA | ||
13 | PYj+/v3iXjcJXsBMu/gdKBGFAYwGppPl0FG198NThmXwQMQnDIqlAkEAnY01pxRF | ||
14 | PJq9Tr31Ak4h0YCwDgpeJyLwfc+65Yy0ctFEp08V5oJGf72ntOCV/Ssf2FQY6lRc | ||
15 | dgPf4QK3qCdUNw== | ||
16 | -----END PRIVATE KEY----- | ||