aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/eet
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--libraries/eet/ABOUT-NLS0
-rw-r--r--libraries/eet/AUTHORS14
-rw-r--r--libraries/eet/COPYING25
-rw-r--r--libraries/eet/ChangeLog575
-rw-r--r--libraries/eet/INSTALL236
-rw-r--r--libraries/eet/Makefile.am99
-rw-r--r--libraries/eet/Makefile.in914
-rw-r--r--libraries/eet/NEWS42
-rw-r--r--libraries/eet/README68
-rw-r--r--libraries/eet/aclocal.m41185
-rwxr-xr-xlibraries/eet/autogen.sh38
-rwxr-xr-xlibraries/eet/compile143
-rwxr-xr-xlibraries/eet/config.guess1502
-rw-r--r--libraries/eet/config.h.in172
-rwxr-xr-xlibraries/eet/config.sub1714
-rwxr-xr-xlibraries/eet/configure16872
-rw-r--r--libraries/eet/configure.ac549
-rwxr-xr-xlibraries/eet/depcomp630
-rw-r--r--libraries/eet/doc/Doxyfile1694
-rw-r--r--libraries/eet/doc/Doxyfile.in1694
-rw-r--r--libraries/eet/doc/Makefile.am40
-rw-r--r--libraries/eet/doc/Makefile.in443
-rw-r--r--libraries/eet/doc/e.css436
-rw-r--r--libraries/eet/doc/eet.dox.in0
-rw-r--r--libraries/eet/doc/foot.html20
-rw-r--r--libraries/eet/doc/head.html65
-rwxr-xr-xlibraries/eet/doc/img/e.pngbin3825 -> 0 bytes
-rwxr-xr-xlibraries/eet/doc/img/e_big.pngbin30052 -> 0 bytes
-rwxr-xr-xlibraries/eet/doc/img/edoxy.css966
-rw-r--r--libraries/eet/doc/img/eet.pngbin74944 -> 0 bytes
-rwxr-xr-xlibraries/eet/doc/img/foot_bg.pngbin173 -> 0 bytes
-rwxr-xr-xlibraries/eet/doc/img/head_bg.pngbin214 -> 0 bytes
-rw-r--r--libraries/eet/doc/img/hilite.pngbin6127 -> 0 bytes
-rwxr-xr-xlibraries/eet/doc/img/menu_bg.pngbin192 -> 0 bytes
-rwxr-xr-xlibraries/eet/doc/img/menu_bg_current.pngbin1200 -> 0 bytes
-rwxr-xr-xlibraries/eet/doc/img/menu_bg_hover.pngbin3278 -> 0 bytes
-rwxr-xr-xlibraries/eet/doc/img/menu_bg_last.pngbin637 -> 0 bytes
-rwxr-xr-xlibraries/eet/doc/img/menu_bg_unsel.pngbin1596 -> 0 bytes
-rw-r--r--libraries/eet/eet.pc.in13
-rw-r--r--libraries/eet/eet.spec76
-rw-r--r--libraries/eet/eet.spec.in76
-rwxr-xr-xlibraries/eet/install-sh520
-rwxr-xr-xlibraries/eet/ltmain.sh8413
-rw-r--r--libraries/eet/m4/ac_attribute.m447
-rw-r--r--libraries/eet/m4/ac_path_generic.m4137
-rw-r--r--libraries/eet/m4/efl_binary.m479
-rw-r--r--libraries/eet/m4/efl_compiler_flag.m457
-rw-r--r--libraries/eet/m4/efl_coverage.m462
-rw-r--r--libraries/eet/m4/efl_doxygen.m494
-rw-r--r--libraries/eet/m4/efl_fnmatch.m443
-rw-r--r--libraries/eet/m4/efl_path_max.m436
-rw-r--r--libraries/eet/m4/efl_tests.m443
-rw-r--r--libraries/eet/m4/libtool.m47377
-rw-r--r--libraries/eet/m4/ltoptions.m4368
-rw-r--r--libraries/eet/m4/ltsugar.m4123
-rw-r--r--libraries/eet/m4/ltversion.m423
-rw-r--r--libraries/eet/m4/lt~obsolete.m492
-rwxr-xr-xlibraries/eet/missing376
-rw-r--r--libraries/eet/sha1-for-source.txt1
-rw-r--r--libraries/eet/src/Makefile.am3
-rw-r--r--libraries/eet/src/Makefile.in608
-rw-r--r--libraries/eet/src/bin/Makefile.am21
-rw-r--r--libraries/eet/src/bin/Makefile.in607
-rw-r--r--libraries/eet/src/bin/eet_main.c507
-rw-r--r--libraries/eet/src/examples/Makefile.am50
-rw-r--r--libraries/eet/src/examples/Makefile.in732
-rw-r--r--libraries/eet/src/examples/eet-basic.c40
-rw-r--r--libraries/eet/src/examples/eet-data-cipher_decipher.c119
-rw-r--r--libraries/eet/src/examples/eet-data-file_descriptor_01.c529
-rw-r--r--libraries/eet/src/examples/eet-data-file_descriptor_02.c944
-rw-r--r--libraries/eet/src/examples/eet-data-nested.c272
-rw-r--r--libraries/eet/src/examples/eet-data-simple.c224
-rw-r--r--libraries/eet/src/examples/eet-file.c127
-rw-r--r--libraries/eet/src/lib/Eet.h4180
-rw-r--r--libraries/eet/src/lib/Eet_private.h326
-rw-r--r--libraries/eet/src/lib/Makefile.am163
-rw-r--r--libraries/eet/src/lib/Makefile.in859
-rw-r--r--libraries/eet/src/lib/eet_alloc.c93
-rw-r--r--libraries/eet/src/lib/eet_cipher.c1387
-rw-r--r--libraries/eet/src/lib/eet_connection.c222
-rw-r--r--libraries/eet/src/lib/eet_data.c4986
-rw-r--r--libraries/eet/src/lib/eet_dictionary.c444
-rw-r--r--libraries/eet/src/lib/eet_image.c1825
-rw-r--r--libraries/eet/src/lib/eet_lib.c2533
-rw-r--r--libraries/eet/src/lib/eet_node.c797
-rw-r--r--libraries/eet/src/lib/eet_utils.c36
-rw-r--r--libraries/eet/src/tests/Makefile.am18
-rw-r--r--libraries/eet/src/tests/Makefile.in547
-rw-r--r--libraries/eet/src/tests/TODO3
-rw-r--r--libraries/eet/src/tests/cert.pem22
-rw-r--r--libraries/eet/src/tests/eet_data_suite.c73
-rw-r--r--libraries/eet/src/tests/eet_suite.c2779
-rw-r--r--libraries/eet/src/tests/eet_suite.h9
-rw-r--r--libraries/eet/src/tests/key.pem15
-rw-r--r--libraries/eet/src/tests/key_enc.pem17
-rw-r--r--libraries/eet/src/tests/key_enc_none.pem16
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 @@
1The Rasterman (Carsten Haitzler) <raster@rasterman.com>
2David Goodlad <dgoodlad@gmail.com>
3Cedric Bail <cedric.bail@free.fr>
4Arnaud de Turckheim <quarium@gmail.com>
5Luis Felipe Strano Moraes <lfelipe@profusion.mobi>
6Chidambar Zinnoury <illogict@online.fr>
7Vincent Torri <vtorri@univ-evry.fr>
8Gustavo Sverzut Barbieri <barbieri@profusion.mobi>
9Raphael Kubo da Costa <kubo@profusion.mobi>
10Mathieu Taillefumier <mathieu.taillefumier@free.fr>
11Albin "Lutin" Tonnerre <albin.tonnerre@gmail.com>
12Adam Simpkins <adam@adamsimpkins.net>
13Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
14Lionel 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 @@
1Copyright notice for Eet:
2
3Copyright (C) 2002-2011 Carsten Haitzler and various contributors (see AUTHORS)
4
5All rights reserved.
6
7Redistribution and use in source and binary forms, with or without
8modification, 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
16THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
17INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
18FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
19COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
20INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
22OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
23LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
24NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
25EVEN 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 @@
12008-04-20 Carsten Haitzler (The Rasterman)
2
3 1.0.0 release
4
52008-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
112008-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
182008-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
282008-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
472008-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
562008-06-02 Cedric BAIL
57
58 * Introduce tile support and the possibility to decompress eet
59 image inside an existing surface.
60
612008-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
672008-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
762008-07-24 Cedric BAIL
77
78 * Fix wrongly stored image when compressed size is bigger than
79 uncompressed. Fix bug #523.
80
812008-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
882008-08-20 Cedric BAIL
89
90 * Fix the dictionnary check during eet_open.
91
922008-08-22 Cedric BAIL
93
94 * Fix memory leaks in eet_data strings
95
962008-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
1032008-09-11 Cedric BAIL
104
105 * Improve hash generation speed for big files.
106 * Inline more functions explicitly for speed.
107
1082008-09-25 Carsten Haitzler (The Rasterman)
109
110 1.5.0 release
111
1122008-10-20 Cedric BAIL
113
114 * Make use of eina.
115
1162008-10-23 Cedric BAIL
117
118 * Fix string in list and hash.
119
1202008-10-24 Cedric BAIL
121
122 * Fix array in eet_data.
123
1242008-11-13 Cedric BAIL
125
126 * Add crypto support to eet with OpenSSL.
127
1282008-11-13 Arnaud de Turckheim
129
130 * Add GNUtls support to eet.
131
1322008-11-14 Cedric BAIL
133
134 * Make password callback work with GNUtls.
135
1362008-11-26 Cedric BAIL
137
138 * Add a function to retrieve raw signature.
139
1402009-01-30 Cedric BAIL
141
142 * Fix a corrupted pointer use in eet_cipher.c
143
1442009-02-09 Chidambar Zinnoury
145
146 * Add some missing __UNUSED__ flags.
147
1482009-02-26 Luis Felipe Strano Moraes
149
150 * Fix problem reported by llvm
151
1522009-03-09 Cedric BAIL
153
154 * Add sha1 retrieval for an Eet_File.
155
1562009-03-17 Gustavo Sverzut Barbieri
157
158 * Force fsync() after data is written to file, solve ext4 issues.
159
1602009-03-18 Carsten Haitzler (The Rasterman)
161
162 * Disable fsync. Edit the code if you need it.
163
1642009-03-19 Cedric BAIL
165
166 * Make eet_data thread safe.
167
1682009-03-25 Cedric BAIL
169
170 * Fix eet pkg-config dependencies.
171 * Fix double init of gcry.
172
1732009-04-22 Carsten Haitzler (The Rasterman)
174
175 * Release eet 1.2.0
176
1772009-05-18 Cedric BAIL
178
179 * Cleanup Eet_Data code.
180
1812009-06-02 Cedric BAIL
182
183 * Make eet_node API usable.
184
1852009-06-14 Carsten Haitzler (The Rasterman)
186
187 * Release eet 1.2.1
188
1892009-07-08 Cedric BAIL
190
191 * Reorder gcry init to be used during gnutls init.
192
1932009-07-11 Hanspeter Portner
194
195 * Improve docs/examples in Eet.h
196
1972009-07-23 Cedric BAIL
198
199 * Fix init on system without SECMEM.
200
2012009-07-29 Carsten Haitzler (The Rasterman)
202
203 * Release eet 1.2.2
204
2052009-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
2122009-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
2172009-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
2222009-08-16 Vincent Torri
223
224 * Fix build with suncc (missing alloca() declaration in eet_cipher.c)
225
2262009-09-15 Mathieu Taillefumier
227
228 * Use new Eina_Log infrastructure to report error.
229
2302009-09-15 Cedric BAIL
231
232 * Remove apparently useless eet_freeleak_* from eet_data.
233
2342009-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
2422009-10-01 Mathieu Taillefumier
243
244 * remove useless Eina_Log macros.
245
2462009-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
2512009-10-09 Vincent Torri
252
253 * initialize eina first in eet_init().
254
2552009-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
2602009-11-11 Vincent Torri
261
262 * Add check on libgcrypt library in configure. Needed when GNUtls
263 support is enabled.
264
2652009-12-02 Carsten Haitzler (The Rasterman)
266
267 * Release eet 1.2.3
268
2692009-12-03 Cedric BAIL
270
271 * Make all operation on Eet_File thread safe.
272
2732009-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
2782009-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
2832009-12-11 Cedric BAIL
284
285 * Make eet_data_descriptor_free safe to call on NULL pointer.
286
2872009-12-21 Cedric BAIL
288
289 * More work on eet_node dump code.
290
2912009-12-28 Cedric BAIL
292
293 * Add fully functionnal eet_node dump code.
294
2952009-12-29 Cedric BAIL
296
297 * Don't mess up when memory realloc failed during data descriptor creation.
298
2992010-01-04 Carsten Haitzler (The Rasterman)
300
301 * Fix another thread deadlock in mutex handling even in a single-threaded app.
302
3032010-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
3092010-01-15 Cedric BAIL
310
311 * Fix amalgamation.
312
3132010-01-16 Vincent Torri
314
315 * eet_cipher.c: Fix arithmetic pointer on void *
316
3172010-01-17 Cedric BAIL
318
319 * Add a mempool for Eet_Node.
320
3212010-01-21 Cedric BAIL
322
323 * Add experimental API to walk Eet_Node tree.
324
3252010-01-22 Cedric BAIL
326
327 * Add VAR_ARRAY tests.
328
3292010-01-27 Cedric BAIL
330
331 * Improve security by zeroying cipher material as soon as possible.
332
3332010-01-27 Cedric BAIL
334
335 * Improve security by zeroying cipher material as soon as possible.
336
3372010-03-01 Albin Tonnerre
338
339 * Fix override of global symbols.
340
3412010-03-15 Adam Simpkins / Cedric BAIL
342
343 * Fix clearcache race condition.
344
3452010-04-02 Cedric BAIL
346
347 * Fix eet_data_node_read_cipher return type.
348 * Add Eet_Connection.
349
3502010-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
3552010-04-08 Cedric BAIL
356
357 * Fix file corruption reported by Tiago Falcao <tiago@profusion.mobi>
358
3592010-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
3652010-04-16 Cedric BAIL
366
367 * Handle fixed point in data stream.
368
3692010-04-21 Cedric BAIL
370
371 * Add EET_G_UNION and EET_G_VARIANT.
372
3732010-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
3802010-06-07 Carsten Haitzler (The Rasterman)
381
382 * Release eet 1.3.0
383
3842010-06-27 Carsten Haitzler (The Rasterman)
385
386 * Release eet 1.3.2
387
3882010-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
3932010-06-29 Cedric BAIL
394
395 * Add eet_alias support.
396 * Fix possible dead lock in eet_write_cipher.
397
3982010-07-08 Carsten Haitzler (The Rasterman)
399
400 * Moved Eet.h into $includedir/eet-MAJOR_VERSION/
401
4022010-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
4092010-07-20 Cedric BAIL
410
411 * Improve file change detection in eet_open by checking size also.
412
4132010-08-02 Cedric BAIL
414
415 * Fix bug in eet_connection code when running on 32bits machine.
416
4172010-08-06 Cedric BAIL
418
419 * Add EET_DATA_DESCRIPTOR_ADD_HASH_STRING.
420
4212010-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
4302010-08-23 Carsten Haitzler (The Rasterman)
431
432 * Fix some cppcheck complaints - all of them bogus though.
433 Nothing actually fixed.
434
4352010-08-27 Cedric BAIL
436
437 * Prevent the build of eet data structure that doesn't match what
438 the application is expecting.
439
4402010-09-02 Cedric BAIL
441
442 * Fix bug of ever growing dictionnary and improve strcmp comparison.
443
4442010-11-12 Cedric BAIL
445
446 * Don't try to read broken file when open in READ_WRITE mode.
447
4482010-11-14 Cedric BAIL
449
450 * Fix bug with cypher and compression used together.
451
4522010-11-21 Carsten Haitzler (The Rasterman)
453
454 * Fix another bug related to cipher and compression (leak and
455 bad free)
456
4572010-11-25 Cedric BAIL
458
459 * Add EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY_STRING.
460
4612010-11-26 Cedric BAIL
462
463 * Reduce memory used by Eet dictionary.
464
4652010-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
4722010-12-03 Cedric BAIL
473
474 * Improve portability.
475
4762010-12-07 Carsten Haitzler (The Rasterman)
477
478 * Move raw function pointer defs to typedefs in public API for
479 readability improvements.
480
4812011-01-29 Carsten Haitzler (The Rasterman)
482
483 * 1.4.0 release
484
4852011-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
4902011-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
4952011-05-14 Cedric BAIL
496
497 * Use Eina_Lock.
498 * Sync GNUTLS initialisation with Eina.
499
5002011-05-17 Cedric BAIL
501
502 * Use Eina_File.
503 * Fix test forgetting to initialize eet.
504
5052011-05-23 Vincent Torri
506
507 * Fix compilation with libjpeg 8 on Windows.
508
5092011-06-10 Cedric BAIL
510
511 * Add EET_DATA_DESCRIPTOR_ADD_LIST_STRING helper to define List of char *.
512
5132011-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
5202011-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
5262011-07-29 Mike Blumenkrantz
527
528 * Add eet_alias_get to return the destination name of an alias
529
5302011-09-15 Cedric Bail
531
532 * Add eet_data_xattr_cipher_get and eet_data_xattr_cipher_set.
533
5342011-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
5392011-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
5442011-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
5502011-12-02 Carsten Haitzler (The Rasterman)
551
552 1.1.0 release
553
5542011-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
5602011-12-29 Carsten Haitzler (The Rasterman)
561
562 * increase eet_connection packet size to 1Mb - more reasonable.
563
5642012-01-07 Boris Faure (billiob)
565
566 * make eet tool write to standard output if no output file given.
567
5682012-02-09 Cedric Bail
569
570 * add support for GNUTLS 3.x.
571
5722012-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 @@
1Installation Instructions
2*************************
3
4Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
5Software Foundation, Inc.
6
7This file is free documentation; the Free Software Foundation gives
8unlimited permission to copy, distribute and modify it.
9
10Basic Installation
11==================
12
13These are generic installation instructions.
14
15 The `configure' shell script attempts to guess correct values for
16various system-dependent variables used during compilation. It uses
17those values to create a `Makefile' in each directory of the package.
18It may also create one or more `.h' files containing system-dependent
19definitions. Finally, it creates a shell script `config.status' that
20you can run in the future to recreate the current configuration, and a
21file `config.log' containing compiler output (useful mainly for
22debugging `configure').
23
24 It can also use an optional file (typically called `config.cache'
25and enabled with `--cache-file=config.cache' or simply `-C') that saves
26the results of its tests to speed up reconfiguring. (Caching is
27disabled by default to prevent problems with accidental use of stale
28cache files.)
29
30 If you need to do unusual things to compile the package, please try
31to figure out how `configure' could check whether to do them, and mail
32diffs or instructions to the address given in the `README' so they can
33be considered for the next release. If you are using the cache, and at
34some point `config.cache' contains results you don't want to keep, you
35may 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
40a newer version of `autoconf'.
41
42The 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
70Compilers and Options
71=====================
72
73Some systems require unusual options for compilation or linking that the
74`configure' script does not know about. Run `./configure --help' for
75details on some of the pertinent environment variables.
76
77 You can give `configure' initial values for configuration parameters
78by setting variables in the command line or in the environment. Here
79is an example:
80
81 ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
82
83 *Note Defining Variables::, for more details.
84
85Compiling For Multiple Architectures
86====================================
87
88You can compile the package for more than one kind of computer at the
89same time, by placing the object files for each architecture in their
90own directory. To do this, you must use a version of `make' that
91supports the `VPATH' variable, such as GNU `make'. `cd' to the
92directory where you want the object files and executables to go and run
93the `configure' script. `configure' automatically checks for the
94source 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'
97variable, you have to compile the package for one architecture at a
98time in the source code directory. After you have installed the
99package for one architecture, use `make distclean' before reconfiguring
100for another architecture.
101
102Installation Names
103==================
104
105By default, `make install' installs the package's commands under
106`/usr/local/bin', include files under `/usr/local/include', etc. You
107can 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
111architecture-specific files and architecture-independent files. If you
112pass the option `--exec-prefix=PREFIX' to `configure', the package uses
113PREFIX as the prefix for installing programs and libraries.
114Documentation and other data files still use the regular prefix.
115
116 In addition, if you use an unusual directory layout you can give
117options like `--bindir=DIR' to specify different values for particular
118kinds of files. Run `configure --help' for a list of the directories
119you can set and what kinds of files go in them.
120
121 If the package supports it, you can cause programs to be installed
122with an extra prefix or suffix on their names by giving `configure' the
123option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
124
125Optional Features
126=================
127
128Some packages pay attention to `--enable-FEATURE' options to
129`configure', where FEATURE indicates an optional part of the package.
130They may also pay attention to `--with-PACKAGE' options, where PACKAGE
131is something like `gnu-as' or `x' (for the X Window System). The
132`README' should mention any `--enable-' and `--with-' options that the
133package recognizes.
134
135 For packages that use the X Window System, `configure' can usually
136find the X include and library files automatically, but if it doesn't,
137you can use the `configure' options `--x-includes=DIR' and
138`--x-libraries=DIR' to specify their locations.
139
140Specifying the System Type
141==========================
142
143There may be some features `configure' cannot figure out automatically,
144but needs to determine by the type of machine the package will run on.
145Usually, assuming the package is built to be run on the _same_
146architectures, `configure' can figure that out, but if it prints a
147message saying it cannot guess the machine type, give it the
148`--build=TYPE' option. TYPE can either be a short name for the system
149type, such as `sun4', or a canonical name which has the form:
150
151 CPU-COMPANY-SYSTEM
152
153where 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
159need to know the machine type.
160
161 If you are _building_ compiler tools for cross-compiling, you should
162use the option `--target=TYPE' to select the type of system they will
163produce code for.
164
165 If you want to _use_ a cross compiler, that generates code for a
166platform different from the build platform, you should specify the
167"host" platform (i.e., that on which the generated programs will
168eventually be run) with `--host=TYPE'.
169
170Sharing Defaults
171================
172
173If you want to set default values for `configure' scripts to share, you
174can create a site shell script called `config.site' that gives default
175values 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.
179A warning: not all `configure' scripts look for a site script.
180
181Defining Variables
182==================
183
184Variables not defined in a site shell script can be set in the
185environment passed to `configure'. However, some packages may run
186configure again during the build, and the customized values of these
187variables may be lost. In order to avoid this problem, you should set
188them in the `configure' command line, using `VAR=value'. For example:
189
190 ./configure CC=/usr/local2/bin/gcc
191
192causes the specified `gcc' to be used as the C compiler (unless it is
193overridden in the site shell script). Here is a another example:
194
195 /bin/bash ./configure CONFIG_SHELL=/bin/bash
196
197Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
198configuration-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 @@
1ACLOCAL_AMFLAGS = -I m4
2
3SUBDIRS = src doc
4
5MAINTAINERCLEANFILES = \
6Makefile.in \
7aclocal.m4 \
8compile \
9config.guess \
10config.h.in \
11config.h.in~ \
12config.sub \
13configure \
14depcomp \
15install-sh \
16ltmain.sh \
17missing \
18$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz \
19$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.bz2 \
20$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc.tar.bz2 \
21m4/libtool.m4 \
22m4/lt~obsolete.m4 \
23m4/ltoptions.m4 \
24m4/ltsugar.m4 \
25m4/ltversion.m4
26
27EXTRA_DIST = \
28AUTHORS \
29COPYING \
30autogen.sh \
31eet.pc.in \
32eet.spec.in \
33eet.spec \
34m4/ac_attribute.m4 \
35m4/ac_path_generic.m4 \
36m4/efl_binary.m4 \
37m4/efl_coverage.m4 \
38m4/efl_doxygen.m4 \
39m4/efl_fnmatch.m4 \
40m4/efl_tests.m4 \
41m4/efl_path_max.m4
42
43pkgconfigdir = $(libdir)/pkgconfig
44pkgconfig_DATA = eet.pc
45
46.PHONY: doc coverage
47
48# Documentation
49
50doc:
51 @echo "entering doc/"
52 $(MAKE) -C doc doc
53
54# Unit tests
55
56if EFL_ENABLE_TESTS
57
58check-local:
59 @./src/tests/eet_suite
60
61else
62
63check-local:
64 @echo "reconfigure with --enable-tests"
65
66endif
67
68# Coverage report
69
70if EFL_ENABLE_COVERAGE
71lcov-reset:
72 @rm -rf $(top_builddir)/coverage
73 @find $(top_builddir) -name "*.gcda" -delete
74 @lcov --zerocounters --directory $(top_builddir)
75
76lcov-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
83coverage:
84 @$(MAKE) lcov-reset
85 @$(MAKE) check
86 @$(MAKE) lcov-report
87
88clean-local:
89 @rm -rf coverage
90else
91lcov-reset:
92 @echo "reconfigure with --enable-coverage"
93
94lcov-report:
95 @echo "reconfigure with --enable-coverage"
96
97coverage:
98 @echo "reconfigure with --enable-tests --enable-coverage"
99endif
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
18VPATH = @srcdir@
19pkgdatadir = $(datadir)/@PACKAGE@
20pkgincludedir = $(includedir)/@PACKAGE@
21pkglibdir = $(libdir)/@PACKAGE@
22pkglibexecdir = $(libexecdir)/@PACKAGE@
23am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
24install_sh_DATA = $(install_sh) -c -m 644
25install_sh_PROGRAM = $(install_sh) -c
26install_sh_SCRIPT = $(install_sh) -c
27INSTALL_HEADER = $(INSTALL_DATA)
28transform = $(program_transform_name)
29NORMAL_INSTALL = :
30PRE_INSTALL = :
31POST_INSTALL = :
32NORMAL_UNINSTALL = :
33PRE_UNINSTALL = :
34POST_UNINSTALL = :
35build_triplet = @build@
36host_triplet = @host@
37subdir = .
38DIST_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
44ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
45am__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
56am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
57 $(ACLOCAL_M4)
58am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
59 configure.lineno config.status.lineno
60mkinstalldirs = $(install_sh) -d
61CONFIG_HEADER = config.h
62CONFIG_CLEAN_FILES = eet.pc eet.spec
63CONFIG_CLEAN_VPATH_FILES =
64AM_V_GEN = $(am__v_GEN_$(V))
65am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
66am__v_GEN_0 = @echo " GEN " $@;
67AM_V_at = $(am__v_at_$(V))
68am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
69am__v_at_0 = @
70SOURCES =
71DIST_SOURCES =
72RECURSIVE_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
79am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
80am__vpath_adj = case $$p in \
81 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
82 *) f=$$p;; \
83 esac;
84am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
85am__install_max = 40
86am__nobase_strip_setup = \
87 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
88am__nobase_strip = \
89 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
90am__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] }'
97am__base_list = \
98 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
99 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
100am__installdirs = "$(DESTDIR)$(pkgconfigdir)"
101DATA = $(pkgconfig_DATA)
102RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
103 distclean-recursive maintainer-clean-recursive
104AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
105 $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
106 distdir dist dist-all distcheck
107ETAGS = etags
108CTAGS = ctags
109DIST_SUBDIRS = $(SUBDIRS)
110DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
111distdir = $(PACKAGE)-$(VERSION)
112top_distdir = $(distdir)
113am__remove_distdir = \
114 { test ! -d "$(distdir)" \
115 || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
116 && rm -fr "$(distdir)"; }; }
117am__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"
142DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
143GZIP_ENV = --best
144distuninstallcheck_listfiles = find . -type f -print
145distcleancheck_listfiles = find . -type f -print
146ACLOCAL = @ACLOCAL@
147ALLOCA = @ALLOCA@
148AMTAR = @AMTAR@
149AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
150AR = @AR@
151AS = @AS@
152AUTOCONF = @AUTOCONF@
153AUTOHEADER = @AUTOHEADER@
154AUTOMAKE = @AUTOMAKE@
155AWK = @AWK@
156CC = @CC@
157CCDEPMODE = @CCDEPMODE@
158CFLAGS = @CFLAGS@
159CHECK_CFLAGS = @CHECK_CFLAGS@
160CHECK_LIBS = @CHECK_LIBS@
161CPP = @CPP@
162CPPFLAGS = @CPPFLAGS@
163CYGPATH_W = @CYGPATH_W@
164DEBUG_CFLAGS = @DEBUG_CFLAGS@
165DEFS = @DEFS@
166DEPDIR = @DEPDIR@
167DLLTOOL = @DLLTOOL@
168DSYMUTIL = @DSYMUTIL@
169DUMPBIN = @DUMPBIN@
170ECHO_C = @ECHO_C@
171ECHO_N = @ECHO_N@
172ECHO_T = @ECHO_T@
173EET_CFLAGS = @EET_CFLAGS@
174EET_CPPFLAGS = @EET_CPPFLAGS@
175EET_LIBS = @EET_LIBS@
176EET_PRG = @EET_PRG@
177EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
178EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
179EFL_EET_BUILD = @EFL_EET_BUILD@
180EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
181EGREP = @EGREP@
182EINA_CFLAGS = @EINA_CFLAGS@
183EINA_LIBS = @EINA_LIBS@
184EVIL_CFLAGS = @EVIL_CFLAGS@
185EVIL_LIBS = @EVIL_LIBS@
186EXEEXT = @EXEEXT@
187EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
188EXOTIC_LIBS = @EXOTIC_LIBS@
189FGREP = @FGREP@
190GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
191GNUTLS_LIBS = @GNUTLS_LIBS@
192GREP = @GREP@
193INSTALL = @INSTALL@
194INSTALL_DATA = @INSTALL_DATA@
195INSTALL_PROGRAM = @INSTALL_PROGRAM@
196INSTALL_SCRIPT = @INSTALL_SCRIPT@
197INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
198LD = @LD@
199LDFLAGS = @LDFLAGS@
200LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
201LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
202LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
203LIBOBJS = @LIBOBJS@
204LIBS = @LIBS@
205LIBTOOL = @LIBTOOL@
206LIPO = @LIPO@
207LN_S = @LN_S@
208LTLIBOBJS = @LTLIBOBJS@
209MAKEINFO = @MAKEINFO@
210MKDIR_P = @MKDIR_P@
211NM = @NM@
212NMEDIT = @NMEDIT@
213OBJDUMP = @OBJDUMP@
214OBJEXT = @OBJEXT@
215OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
216OPENSSL_LIBS = @OPENSSL_LIBS@
217OTOOL = @OTOOL@
218OTOOL64 = @OTOOL64@
219PACKAGE = @PACKAGE@
220PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
221PACKAGE_NAME = @PACKAGE_NAME@
222PACKAGE_STRING = @PACKAGE_STRING@
223PACKAGE_TARNAME = @PACKAGE_TARNAME@
224PACKAGE_URL = @PACKAGE_URL@
225PACKAGE_VERSION = @PACKAGE_VERSION@
226PATH_SEPARATOR = @PATH_SEPARATOR@
227PKG_CONFIG = @PKG_CONFIG@
228PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
229PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
230RANLIB = @RANLIB@
231SED = @SED@
232SET_MAKE = @SET_MAKE@
233SHELL = @SHELL@
234STRIP = @STRIP@
235VERSION = @VERSION@
236VMAJ = @VMAJ@
237abs_builddir = @abs_builddir@
238abs_srcdir = @abs_srcdir@
239abs_top_builddir = @abs_top_builddir@
240abs_top_srcdir = @abs_top_srcdir@
241ac_ct_CC = @ac_ct_CC@
242ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
243am__include = @am__include@
244am__leading_dot = @am__leading_dot@
245am__quote = @am__quote@
246am__tar = @am__tar@
247am__untar = @am__untar@
248bindir = @bindir@
249build = @build@
250build_alias = @build_alias@
251build_cpu = @build_cpu@
252build_os = @build_os@
253build_vendor = @build_vendor@
254builddir = @builddir@
255datadir = @datadir@
256datarootdir = @datarootdir@
257docdir = @docdir@
258dvidir = @dvidir@
259efl_doxygen = @efl_doxygen@
260efl_have_doxygen = @efl_have_doxygen@
261exec_prefix = @exec_prefix@
262have_lcov = @have_lcov@
263host = @host@
264host_alias = @host_alias@
265host_cpu = @host_cpu@
266host_os = @host_os@
267host_vendor = @host_vendor@
268htmldir = @htmldir@
269includedir = @includedir@
270infodir = @infodir@
271install_sh = @install_sh@
272libdir = @libdir@
273libexecdir = @libexecdir@
274localedir = @localedir@
275localstatedir = @localstatedir@
276lt_ECHO = @lt_ECHO@
277lt_enable_auto_import = @lt_enable_auto_import@
278mandir = @mandir@
279mkdir_p = @mkdir_p@
280oldincludedir = @oldincludedir@
281pdfdir = @pdfdir@
282pkgconfig_requires_private = @pkgconfig_requires_private@
283prefix = @prefix@
284program_transform_name = @program_transform_name@
285psdir = @psdir@
286release_info = @release_info@
287requirement_eet = @requirement_eet@
288sbindir = @sbindir@
289sharedstatedir = @sharedstatedir@
290srcdir = @srcdir@
291sysconfdir = @sysconfdir@
292target_alias = @target_alias@
293top_build_prefix = @top_build_prefix@
294top_builddir = @top_builddir@
295top_srcdir = @top_srcdir@
296version_info = @version_info@
297ACLOCAL_AMFLAGS = -I m4
298SUBDIRS = src doc
299MAINTAINERCLEANFILES = \
300Makefile.in \
301aclocal.m4 \
302compile \
303config.guess \
304config.h.in \
305config.h.in~ \
306config.sub \
307configure \
308depcomp \
309install-sh \
310ltmain.sh \
311missing \
312$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz \
313$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.bz2 \
314$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc.tar.bz2 \
315m4/libtool.m4 \
316m4/lt~obsolete.m4 \
317m4/ltoptions.m4 \
318m4/ltsugar.m4 \
319m4/ltversion.m4
320
321EXTRA_DIST = \
322AUTHORS \
323COPYING \
324autogen.sh \
325eet.pc.in \
326eet.spec.in \
327eet.spec \
328m4/ac_attribute.m4 \
329m4/ac_path_generic.m4 \
330m4/efl_binary.m4 \
331m4/efl_coverage.m4 \
332m4/efl_doxygen.m4 \
333m4/efl_fnmatch.m4 \
334m4/efl_tests.m4 \
335m4/efl_path_max.m4
336
337pkgconfigdir = $(libdir)/pkgconfig
338pkgconfig_DATA = eet.pc
339all: config.h
340 $(MAKE) $(AM_MAKEFLAGS) all-recursive
341
342.SUFFIXES:
343am--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
359Makefile: $(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
378config.h: stamp-h1
379 @if test ! -f $@; then \
380 rm -f stamp-h1; \
381 $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
382 else :; fi
383
384stamp-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
392distclean-hdr:
393 -rm -f config.h stamp-h1
394eet.pc: $(top_builddir)/config.status $(srcdir)/eet.pc.in
395 cd $(top_builddir) && $(SHELL) ./config.status $@
396eet.spec: $(top_builddir)/config.status $(srcdir)/eet.spec.in
397 cd $(top_builddir) && $(SHELL) ./config.status $@
398
399mostlyclean-libtool:
400 -rm -f *.lo
401
402clean-libtool:
403 -rm -rf .libs _libs
404
405distclean-libtool:
406 -rm -f libtool config.lt
407install-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
420uninstall-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"
489tags-recursive:
490 list='$(SUBDIRS)'; for subdir in $$list; do \
491 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
492 done
493ctags-recursive:
494 list='$(SUBDIRS)'; for subdir in $$list; do \
495 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
496 done
497
498ID: $(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
506tags: TAGS
507
508TAGS: 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
542ctags: CTAGS
543CTAGS: 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
555GTAGS:
556 here=`$(am__cd) $(top_builddir) && pwd` \
557 && $(am__cd) $(top_srcdir) \
558 && gtags -i $(GTAGS_ARGS) "$$here"
559
560distclean-tags:
561 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
562
563distdir: $(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)"
630dist-gzip: distdir
631 tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
632 $(am__remove_distdir)
633dist-bzip2: distdir
634 tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
635 $(am__remove_distdir)
636
637dist-lzma: distdir
638 tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
639 $(am__remove_distdir)
640
641dist-xz: distdir
642 tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
643 $(am__remove_distdir)
644
645dist-tarZ: distdir
646 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
647 $(am__remove_distdir)
648
649dist-shar: distdir
650 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
651 $(am__remove_distdir)
652
653dist-zip: distdir
654 -rm -f $(distdir).zip
655 zip -rq $(distdir).zip $(distdir)
656 $(am__remove_distdir)
657
658dist 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.
666distcheck: 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'
720distuninstallcheck:
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
729distcleancheck: 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
738check-am: all-am
739 $(MAKE) $(AM_MAKEFLAGS) check-local
740check: check-recursive
741all-am: Makefile $(DATA) config.h
742installdirs: installdirs-recursive
743installdirs-am:
744 for dir in "$(DESTDIR)$(pkgconfigdir)"; do \
745 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
746 done
747install: install-recursive
748install-exec: install-exec-recursive
749install-data: install-data-recursive
750uninstall: uninstall-recursive
751
752install-am: all-am
753 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
754
755installcheck: installcheck-recursive
756install-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
761mostlyclean-generic:
762
763clean-generic:
764
765distclean-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
769maintainer-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:
774clean: clean-recursive
775
776clean-am: clean-generic clean-libtool clean-local mostlyclean-am
777
778distclean: distclean-recursive
779 -rm -f $(am__CONFIG_DISTCLEAN_FILES)
780 -rm -f Makefile
781distclean-am: clean-am distclean-generic distclean-hdr \
782 distclean-libtool distclean-tags
783
784dvi: dvi-recursive
785
786dvi-am:
787
788html: html-recursive
789
790html-am:
791
792info: info-recursive
793
794info-am:
795
796install-data-am: install-pkgconfigDATA
797
798install-dvi: install-dvi-recursive
799
800install-dvi-am:
801
802install-exec-am:
803
804install-html: install-html-recursive
805
806install-html-am:
807
808install-info: install-info-recursive
809
810install-info-am:
811
812install-man:
813
814install-pdf: install-pdf-recursive
815
816install-pdf-am:
817
818install-ps: install-ps-recursive
819
820install-ps-am:
821
822installcheck-am:
823
824maintainer-clean: maintainer-clean-recursive
825 -rm -f $(am__CONFIG_DISTCLEAN_FILES)
826 -rm -rf $(top_srcdir)/autom4te.cache
827 -rm -f Makefile
828maintainer-clean-am: distclean-am maintainer-clean-generic
829
830mostlyclean: mostlyclean-recursive
831
832mostlyclean-am: mostlyclean-generic mostlyclean-libtool
833
834pdf: pdf-recursive
835
836pdf-am:
837
838ps: ps-recursive
839
840ps-am:
841
842uninstall-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
870doc:
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 @@
1Eet 1.6.0
2
3Changes since Eet 1.5.0:
4--------------------------
5
6Additions:
7 * eet_file_get to return filenames of Eet_Files
8
9Improvements:
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
15Eet 1.5.0
16
17Changes since Eet 1.4.0:
18--------------------------
19
20Additions:
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
28Fixes:
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
36Improvements:
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 @@
1Eet 1.6.0
2
3******************************************************************************
4
5 FOR ANY ISSUES PLEASE EMAIL:
6 enlightenment-devel@lists.sourceforge.net
7
8******************************************************************************
9
10Requirements:
11-------------
12Must have:
13 libc
14 zlib
15 libjpeg
16 eina (1.1.0 or better)
17 (For windows you also need: evil)
18
19Optional requirements:
20 gnutls (1.7.6 or better)
21 openssl
22
23Eet is a tiny library designed to write an arbitrary set of chunks of
24data to a file and optionally compress each chunk (very much like a
25zip file) and allow fast random-access reading of the file later
26on. It does not do zip as a zip itself has more complexity than is
27needed, and it was much simpler to implement this once here.
28
29It also can encode and decode data structures in memory, as well as
30image data for saving to eet files or sending across the network to
31other machines, or just writing to arbitrary files on the system. All
32data is encoded in a platform independent way and can be written and
33read by any architecture. This data once encoded can be sent to
34another process or machine and decoded on the other end without
35needing to go into an eet file. Eet can also optionally encrypt files
36and use digital signatures (with gnutls or openssl support).
37
38------------------------------------------------------------------------------
39COMPILING AND INSTALLING:
40
41 ./configure
42 make
43(do this as root unless you are installing in your users directories):
44 make install
45
46To get the coverage report:
47 make coverage
48The report is created in the coverage/ subdir
49If 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.
52For coverage support you also need "make check" support with the check
53library (see below).
54
55For compilation with MinGW, fnmatch.h is probably missing. That file can be
56found here:
57 http://www.koders.com/c/fid2B518462CB1EED3D4E31E271DB83CD1582F6EEBE.aspx
58It should be installed in the mingw include directory.
59
60For compilation with mingw32ce, run configure with the option
61 --host=arm-wince-mingw32ce
62
63For compilation with cegcc, follow the wiki:
64 http://wiki.enlightenment.org/index.php/Category:EFL_Windows_CE
65
66If 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
14m4_ifndef([AC_AUTOCONF_VERSION],
15 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
16m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],,
17[m4_warning([this file was generated for autoconf 2.67.
18You have another version of autoconf. It may work, but is not guaranteed to.
19If you have problems, you may need to regenerate the build system entirely.
20To 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# ----------------------------------
48AC_DEFUN([PKG_PROG_PKG_CONFIG],
49[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
50m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
51AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
52AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
53AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
54
55if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
56 AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
57fi
58if 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
67fi[]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# --------------------------------------------------------------
80AC_DEFUN([PKG_CHECK_EXISTS],
81[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
82if test -n "$PKG_CONFIG" && \
83 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
84 m4_default([$2], [:])
85m4_ifvaln([$3], [else
86 $3])dnl
87fi])
88
89# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
90# ---------------------------------------------
91m4_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
100fi[]dnl
101])# _PKG_CONFIG
102
103# _PKG_SHORT_ERRORS_SUPPORTED
104# -----------------------------
105AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
106[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
107if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
108 _pkg_short_errors_supported=yes
109else
110 _pkg_short_errors_supported=no
111fi[]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# --------------------------------------------------------------
125AC_DEFUN([PKG_CHECK_MODULES],
126[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
127AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
128AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
129
130pkg_failed=no
131AC_MSG_CHECKING([for $1])
132
133_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
134_PKG_CONFIG([$1][_LIBS], [libs], [$2])
135
136m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
137and $1[]_LIBS to avoid the need to call pkg-config.
138See the pkg-config man page for more details.])
139
140if 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
156Consider adjusting the PKG_CONFIG_PATH environment variable if you
157installed software in a non-standard prefix.
158
159_PKG_TEXT])[]dnl
160 ])
161elif 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
165is in your PATH or set the PKG_CONFIG environment variable to the full
166path to pkg-config.
167
168_PKG_TEXT
169
170To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
171 ])
172else
173 $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
174 $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
175 AC_MSG_RESULT([yes])
176 $3
177fi[]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.)
191AC_DEFUN([AM_AUTOMAKE_VERSION],
192[am__api_version='1.11'
193dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
194dnl require some minimum version. Point them to the right macro.
195m4_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.
204m4_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.
210AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
211[AM_AUTOMAKE_VERSION([1.11.1])dnl
212m4_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
262AC_DEFUN([AM_AUX_DIR_EXPAND],
263[dnl Rely on autoconf to set up CDPATH properly.
264AC_PREREQ([2.50])dnl
265# expand $ac_aux_dir to an absolute path
266am_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.
283AC_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
287AC_SUBST([$1_TRUE])dnl
288AC_SUBST([$1_FALSE])dnl
289_AM_SUBST_NOTMAKE([$1_TRUE])dnl
290_AM_SUBST_NOTMAKE([$1_FALSE])dnl
291m4_define([_AM_COND_VALUE_$1], [$2])dnl
292if $2; then
293 $1_TRUE=
294 $1_FALSE='#'
295else
296 $1_TRUE='#'
297 $1_FALSE=
298fi
299AC_CONFIG_COMMANDS_PRE(
300[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
301 AC_MSG_ERROR([[conditional "$1" was never defined.
302Usually this means the macro was only invoked conditionally.]])
303fi])])
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.
331AC_DEFUN([_AM_DEPENDENCIES],
332[AC_REQUIRE([AM_SET_DEPDIR])dnl
333AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
334AC_REQUIRE([AM_MAKE_INCLUDE])dnl
335AC_REQUIRE([AM_DEP_TRACK])dnl
336
337ifelse([$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
344AC_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
451else
452 am_cv_$1_dependencies_compiler_type=none
453fi
454])
455AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
456AM_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
466AC_DEFUN([AM_SET_DEPDIR],
467[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
468AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
469])
470
471
472# AM_DEP_TRACK
473# ------------
474AC_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])
478if test "x$enable_dependency_tracking" != xno; then
479 am_depcomp="$ac_aux_dir/depcomp"
480 AMDEPBACKSLASH='\'
481fi
482AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
483AC_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# ------------------------------
500AC_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.
561AC_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.
592AC_DEFUN([AM_INIT_AUTOMAKE],
593[AC_PREREQ([2.62])dnl
594dnl Autoconf wants to disallow AM_ names. We explicitly allow
595dnl the ones we care about.
596m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
597AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
598AC_REQUIRE([AC_PROG_INSTALL])dnl
599if 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
607fi
608
609# test whether we have cygpath
610if 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
616fi
617AC_SUBST([CYGPATH_W])
618
619# Define the identity of the package.
620dnl Distinguish between old-style and new-style calls.
621m4_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
626dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
627m4_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.
637AC_REQUIRE([AM_SANITY_CHECK])dnl
638AC_REQUIRE([AC_ARG_PROGRAM])dnl
639AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
640AM_MISSING_PROG(AUTOCONF, autoconf)
641AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
642AM_MISSING_PROG(AUTOHEADER, autoheader)
643AM_MISSING_PROG(MAKEINFO, makeinfo)
644AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
645AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
646AC_REQUIRE([AM_PROG_MKDIR_P])dnl
647# We need awk for the "check" target. The system "awk" is bad on
648# some platforms.
649AC_REQUIRE([AC_PROG_AWK])dnl
650AC_REQUIRE([AC_PROG_MAKE_SET])dnl
651AC_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
660AC_PROVIDE_IFELSE([AC_PROG_CXX],
661 [_AM_DEPENDENCIES(CXX)],
662 [define([AC_PROG_CXX],
663 defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
664AC_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
670dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
671dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
672dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
673AC_CONFIG_COMMANDS_PRE(dnl
674[m4_provide_if([_AM_COMPILER_EXEEXT],
675 [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
676])
677
678dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
679dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
680dnl mangled by Autoconf and run in a shell conditional statement.
681m4_define([_AC_COMPILER_EXEEXT],
682m4_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.
692AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
693[# Compute $1's index in $config_headers.
694_am_arg=$1
695_am_stamp_count=1
696for _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
703done
704echo "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.
715AC_DEFUN([AM_PROG_INSTALL_SH],
716[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
717if 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
724fi
725AC_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.
737AC_DEFUN([AM_SET_LEADING_DOT],
738[rm -rf .tst 2>/dev/null
739mkdir .tst 2>/dev/null
740if test -d .tst; then
741 am__leading_dot=.
742else
743 am__leading_dot=_
744fi
745rmdir .tst 2>/dev/null
746AC_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.
761AC_DEFUN([AM_MAKE_INCLUDE],
762[am_make=${MAKE-make}
763cat > confinc << 'END'
764am__doit:
765 @echo this is the am__doit target
766.PHONY: am__doit
767END
768# If we don't find an include directive, just comment out the code.
769AC_MSG_CHECKING([for style of include used by $am_make])
770am__include="#"
771am__quote=
772_am_result=none
773# First try GNU make style include.
774echo "include confinc" > confmf
775# Ignore all kinds of additional output from `make'.
776case `$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 ;;
782esac
783# Now try BSD make style include.
784if 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
793fi
794AC_SUBST([am__include])
795AC_SUBST([am__quote])
796AC_MSG_RESULT([$_am_result])
797rm -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.
812AC_DEFUN([AM_PROG_CC_C_O],
813[AC_REQUIRE([AC_PROG_CC_C_O])dnl
814AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
815AC_REQUIRE_AUX_FILE([compile])dnl
816# FIXME: we rely on the cache variable name because
817# there is no other way.
818set dummy $CC
819am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
820eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
821if 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"
828fi
829dnl Make sure AC_PROG_CC is never called again, or it will override our
830dnl setting of CC.
831m4_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# ------------------------------
848AC_DEFUN([AM_MISSING_PROG],
849[AC_REQUIRE([AM_MISSING_HAS_RUN])
850$1=${$1-"${am_missing_run}$2"}
851AC_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.
858AC_DEFUN([AM_MISSING_HAS_RUN],
859[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
860AC_REQUIRE_AUX_FILE([missing])dnl
861if 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
868fi
869# Use eval to expand $SHELL
870if eval "$MISSING --run true"; then
871 am_missing_run="$MISSING --run "
872else
873 am_missing_run=
874 AC_MSG_WARN([`missing' script is too old or missing])
875fi
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'.
887AC_DEFUN([AM_PROG_MKDIR_P],
888[AC_PREREQ([2.60])dnl
889AC_REQUIRE([AC_PROG_MKDIR_P])dnl
890dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
891dnl while keeping a definition of mkdir_p for backward compatibility.
892dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
893dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
894dnl Makefile.ins that do not define MKDIR_P, so we do our own
895dnl adjustment using top_builddir (which is defined more often than
896dnl MKDIR_P).
897AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
898case $mkdir_p in
899 [[\\/$]]* | ?:[[\\/]]*) ;;
900 */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
901esac
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# -----------------------
916AC_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.
922AC_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.
928AC_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.
934AC_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# ---------------
950AC_DEFUN([AM_SANITY_CHECK],
951[AC_MSG_CHECKING([whether build environment is sane])
952# Just in case
953sleep 1
954echo timestamp > conftest.file
955# Reject unsafe characters in $srcdir or the absolute working directory
956# name. Accept space and tab only in the latter.
957am_lf='
958'
959case `pwd` in
960 *[[\\\"\#\$\&\'\`$am_lf]]*)
961 AC_MSG_ERROR([unsafe absolute working directory name]);;
962esac
963case $srcdir in
964 *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
965 AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
966esac
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).
973if (
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
988alias in your environment])
989 fi
990
991 test "$[2]" = conftest.file
992 )
993then
994 # Ok.
995 :
996else
997 AC_MSG_ERROR([newly created file is older than distributed files!
998Check your system clock])
999fi
1000AC_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).
1014AC_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')])
1018case $enable_silent_rules in
1019yes) AM_DEFAULT_VERBOSITY=0;;
1020no) AM_DEFAULT_VERBOSITY=1;;
1021*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
1022esac
1023AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
1024AM_BACKSLASH='\'
1025AC_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).
1044AC_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.
1050dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
1051if test "$cross_compiling" != no; then
1052 AC_CHECK_TOOL([STRIP], [strip], :)
1053fi
1054INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
1055AC_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.
1069AC_DEFUN([_AM_SUBST_NOTMAKE])
1070
1071# AM_SUBST_NOTMAKE(VARIABLE)
1072# ---------------------------
1073# Public sister of _AM_SUBST_NOTMAKE.
1074AC_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
1099AC_DEFUN([_AM_PROG_TAR],
1100[# Always define AMTAR for backward compatibility.
1101AM_MISSING_PROG([AMTAR], [tar])
1102m4_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])])
1106AC_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 `-'.
1112for _am_tool in $_am_tools
1113do
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
1163done
1164rm -rf conftest.dir
1165
1166AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
1167AC_MSG_RESULT([$am_cv_prog_tar_$1])])
1168AC_SUBST([am__tar])
1169AC_SUBST([am__untar])
1170]) # _AM_PROG_TAR
1171
1172m4_include([m4/ac_attribute.m4])
1173m4_include([m4/ac_path_generic.m4])
1174m4_include([m4/efl_binary.m4])
1175m4_include([m4/efl_compiler_flag.m4])
1176m4_include([m4/efl_coverage.m4])
1177m4_include([m4/efl_doxygen.m4])
1178m4_include([m4/efl_fnmatch.m4])
1179m4_include([m4/efl_path_max.m4])
1180m4_include([m4/efl_tests.m4])
1181m4_include([m4/libtool.m4])
1182m4_include([m4/ltoptions.m4])
1183m4_include([m4/ltsugar.m4])
1184m4_include([m4/ltversion.m4])
1185m4_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
3rm -rf autom4te.cache
4rm -f aclocal.m4 ltmain.sh
5
6touch ABOUT-NLS
7
8echo "Running aclocal..." ; aclocal $ACLOCAL_FLAGS -I m4 || exit 1
9echo "Running autoheader..." ; autoheader || exit 1
10echo "Running autoconf..." ; autoconf || exit 1
11echo "Running libtoolize..." ; (libtoolize --copy --automake || glibtoolize --automake) || exit 1
12echo "Running automake..." ; automake --add-missing --copy --gnu || exit 1
13
14W=0
15
16rm -f config.cache-env.tmp
17echo "OLD_PARM=\"$@\"" >> config.cache-env.tmp
18echo "OLD_CFLAGS=\"$CFLAGS\"" >> config.cache-env.tmp
19echo "OLD_PATH=\"$PATH\"" >> config.cache-env.tmp
20echo "OLD_PKG_CONFIG_PATH=\"$PKG_CONFIG_PATH\"" >> config.cache-env.tmp
21echo "OLD_LDFLAGS=\"$LDFLAGS\"" >> config.cache-env.tmp
22
23cmp config.cache-env.tmp config.cache-env >> /dev/null
24if [ $? -ne 0 ]; then
25 W=1;
26fi
27
28if [ $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
32else
33 rm -f config.cache-env.tmp
34fi
35
36if [ -z "$NOCONFIGURE" ]; then
37 ./configure -C "$@"
38fi
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
4scriptversion=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
32case $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
39Usage: compile [--help] [--version] PROGRAM [ARGS]
40
41Wrapper for compilers which do not understand `-c -o'.
42Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
43arguments, and rename the output as expected.
44
45If you are trying to build a whole package this is not the
46right script to run: please start by reading the file `INSTALL'.
47
48Report bugs to <bug-automake@gnu.org>.
49EOF
50 exit $?
51 ;;
52 -v | --v*)
53 echo "compile $scriptversion"
54 exit $?
55 ;;
56esac
57
58ofile=
59cfile=
60eat=
61
62for arg
63do
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
94done
95
96if 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 "$@"
103fi
104
105# Name of file we expect compiler to create.
106cofile=`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.
112lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
113while true; do
114 if mkdir "$lockdir" >/dev/null 2>&1; then
115 break
116 fi
117 sleep 1
118done
119# FIXME: race condition here if user kills between mkdir and trap.
120trap "rmdir '$lockdir'; exit 1" 1 2 15
121
122# Run the compile.
123"$@"
124ret=$?
125
126if test -f "$cofile"; then
127 test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
128elif test -f "${cofile}bj"; then
129 test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
130fi
131
132rmdir "$lockdir"
133exit $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
7timestamp='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
41me=`echo "$0" | sed -e 's,.*/,,'`
42
43usage="\
44Usage: $0 [OPTION]
45
46Output the configuration name of the system \`$me' is run on.
47
48Operation 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
53Report bugs and patches to <config-patches@gnu.org>."
54
55version="\
56GNU config.guess ($timestamp)
57
58Originally written by Per Bothner.
59Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
602001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
61Software Foundation, Inc.
62
63This is free software; see the source for copying conditions. There is NO
64warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
65
66help="
67Try \`$me --help' for more information."
68
69# Parse command line
70while 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
88done
89
90if test $# != 0; then
91 echo "$me: too many arguments$help" >&2
92 exit 1
93fi
94
95trap '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
107set_cc_for_build='
108trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
109trap "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 ; } ;
115dummy=$tmp/dummy ;
116tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
117case $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 ;;
130esac ; 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)
134if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
135 PATH=$PATH:/.attbin ; export PATH
136fi
137
138UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
139UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
140UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
141UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
142
143# Note: order is significant - the case branches are not exclusive.
144
145case "${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 }
455EOF
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 }
542EOF
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 }
644EOF
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 }
702EOF
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
904EOF
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
932EOF
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 ;;
1303esac
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
1308eval $set_cc_for_build
1309cat >$dummy.c <<EOF
1310#ifdef _SEQUENT_
1311# include <sys/types.h>
1312# include <sys/utsname.h>
1313#endif
1314main ()
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}
1421EOF
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
1428test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
1429
1430# Convex versions that predate uname can use getsysinfo(1)
1431
1432if [ -x /usr/convex/getsysinfo ]
1433then
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
1454fi
1455
1456cat >&2 <<EOF
1457$0: unable to guess system type
1458
1459This script, last modified $timestamp, has failed to recognize
1460the operating system you are using. It is advised that you
1461download 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
1464and
1465 http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
1466
1467If the version you run ($0) is already up to date, please
1468send the following data and any information you think might be
1469pertinent to <config-patches@gnu.org> in order to provide the needed
1470information to handle your system.
1471
1472config.guess timestamp = $timestamp
1473
1474uname -m = `(uname -m) 2>/dev/null || echo unknown`
1475uname -r = `(uname -r) 2>/dev/null || echo unknown`
1476uname -s = `(uname -s) 2>/dev/null || echo unknown`
1477uname -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
1482hostinfo = `(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
1489UNAME_MACHINE = ${UNAME_MACHINE}
1490UNAME_RELEASE = ${UNAME_RELEASE}
1491UNAME_SYSTEM = ${UNAME_SYSTEM}
1492UNAME_VERSION = ${UNAME_VERSION}
1493EOF
1494
1495exit 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
7timestamp='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
60me=`echo "$0" | sed -e 's,.*/,,'`
61
62usage="\
63Usage: $0 [OPTION] CPU-MFR-OPSYS
64 $0 [OPTION] ALIAS
65
66Canonicalize a configuration name.
67
68Operation 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
73Report bugs and patches to <config-patches@gnu.org>."
74
75version="\
76GNU config.sub ($timestamp)
77
78Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
792001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
80Software Foundation, Inc.
81
82This is free software; see the source for copying conditions. There is NO
83warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
84
85help="
86Try \`$me --help' for more information."
87
88# Parse command line
89while 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
113done
114
115case $# 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;;
121esac
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.
125maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
126case $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 ;;
140esac
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.
146case $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 ;;
241esac
242
243# Decode aliases for certain CPU-COMPANY combinations.
244case $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 ;;
1244esac
1245
1246# Here we canonicalize certain aliases for manufacturers.
1247case $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 ;;
1256esac
1257
1258# Decode manufacturer-specific aliases for certain operating systems.
1259
1260if [ x"$os" != x"" ]
1261then
1262case $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 ;;
1455esac
1456else
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
1468case $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 ;;
1629esac
1630fi
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.
1634vendor=unknown
1635case $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 ;;
1704esac
1705
1706echo $basic_machine$os
1707exit
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
20DUALCASE=1; export DUALCASE # for MKS sh
21if 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
28else
29 case `(set -o) 2>/dev/null` in #(
30 *posix*) :
31 set -o posix ;; #(
32 *) :
33 ;;
34esac
35fi
36
37
38as_nl='
39'
40export as_nl
41# Printing a long string crashes Solaris 7 /usr/bin/printf.
42as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
43as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
44as_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.
47if 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 --'
51elif (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'
54else
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'
74fi
75
76# The user is always right.
77if 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 }
83fi
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.)
91IFS=" "" $as_nl"
92
93# Find who we are. Look in the path if we contain no directory separator.
94case $0 in #((
95 *[\\/]* ) as_myself=$0 ;;
96 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
97for as_dir in $PATH
98do
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
103IFS=$as_save_IFS
104
105 ;;
106esac
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.
109if test "x$as_myself" = x; then
110 as_myself=$0
111fi
112if test ! -f "$as_myself"; then
113 $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
114 exit 1
115fi
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.
121for as_var in BASH_ENV ENV MAIL MAILPATH
122do eval test x\${$as_var+set} = xset \
123 && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
124done
125PS1='$ '
126PS2='> '
127PS4='+ '
128
129# NLS nuisances.
130LC_ALL=C
131export LC_ALL
132LANGUAGE=C
133export LANGUAGE
134
135# CDPATH.
136(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
137
138if 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
146else
147 case \`(set -o) 2>/dev/null\` in #(
148 *posix*) :
149 set -o posix ;; #(
150 *) :
151 ;;
152esac
153fi
154"
155 as_required="as_fn_return () { (exit \$1); }
156as_fn_success () { as_fn_return 0; }
157as_fn_failure () { as_fn_return 1; }
158as_fn_ret_success () { return 0; }
159as_fn_ret_failure () { return 1; }
160
161exitcode=0
162as_fn_success || { exitcode=1; echo as_fn_success failed.; }
163as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
164as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
165as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
166if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
167
168else
169 exitcode=1; echo positional parameters were not saved.
170fi
171test 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
176test \$(( 1 + 1 )) = 2 || exit 1"
177 if (eval "$as_required") 2>/dev/null; then :
178 as_have_required=yes
179else
180 as_have_required=no
181fi
182 if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
183
184else
185 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
186as_found=false
187for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
188do
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
202fi
203fi
204 done;;
205 esac
206 as_found=false
207done
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
211fi; }
212IFS=$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+"$@"}
224fi
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
240fi
241fi
242fi
243SHELL=${CONFIG_SHELL-/bin/sh}
244export SHELL
245# Unset more variables known to interfere with behavior of common tools.
246CLICOLOR_FORCE= GREP_OPTIONS=
247unset CLICOLOR_FORCE GREP_OPTIONS
248
249## --------------------- ##
250## M4sh Shell Functions. ##
251## --------------------- ##
252# as_fn_unset VAR
253# ---------------
254# Portably unset VAR.
255as_fn_unset ()
256{
257 { eval $1=; unset $1;}
258}
259as_unset=as_fn_unset
260
261# as_fn_set_status STATUS
262# -----------------------
263# Set $? to STATUS, without forking.
264as_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.
272as_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.
282as_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.
332if (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 }'
337else
338 as_fn_append ()
339 {
340 eval $1=\$$1\$2
341 }
342fi # 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.
349if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
350 eval 'as_fn_arith ()
351 {
352 as_val=$(( $* ))
353 }'
354else
355 as_fn_arith ()
356 {
357 as_val=`expr "$@" || test $? -eq 1`
358 }
359fi # 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.
367as_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
378if expr a : '\(a\)' >/dev/null 2>&1 &&
379 test "X`expr 00001 : '.*\(...\)'`" = X001; then
380 as_expr=expr
381else
382 as_expr=false
383fi
384
385if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
386 as_basename=basename
387else
388 as_basename=false
389fi
390
391if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
392 as_dirname=dirname
393else
394 as_dirname=false
395fi
396
397as_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.
417as_cr_letters='abcdefghijklmnopqrstuvwxyz'
418as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
419as_cr_Letters=$as_cr_letters$as_cr_LETTERS
420as_cr_digits='0123456789'
421as_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
455ECHO_C= ECHO_N= ECHO_T=
456case `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';;
466esac
467
468rm -f conf$$ conf$$.exe conf$$.file
469if test -d conf$$.dir; then
470 rm -f conf$$.dir/conf$$.file
471else
472 rm -f conf$$.dir
473 mkdir conf$$.dir 2>/dev/null
474fi
475if (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
489else
490 as_ln_s='cp -p'
491fi
492rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
493rmdir conf$$.dir 2>/dev/null
494
495if mkdir -p . 2>/dev/null; then
496 as_mkdir_p='mkdir -p "$as_dir"'
497else
498 test -d ./-p && rmdir ./-p
499 as_mkdir_p=false
500fi
501
502if test -x / >/dev/null 2>&1; then
503 as_test_x='test -x'
504else
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 '
522fi
523as_executable_p=$as_test_x
524
525# Sed expression to map a string onto a valid CPP name.
526as_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.
529as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
530
531
532
533# Check that we are running under the correct shell.
534SHELL=${CONFIG_SHELL-/bin/sh}
535
536case X$lt_ECHO in
537X*--fallback-echo)
538 # Remove one level of quotation (which was required for Make).
539 ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','`
540 ;;
541esac
542
543ECHO=${lt_ECHO-echo}
544if test "X$1" = X--no-reexec; then
545 # Discard the --no-reexec flag, and continue.
546 shift
547elif test "X$1" = X--fallback-echo; then
548 # Avoid inline document here, it may be left over
549 :
550elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
551 # Yippee, $ECHO works!
552 :
553else
554 # Restart under the correct shell.
555 exec $SHELL "$0" --no-reexec ${1+"$@"}
556fi
557
558if 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
565fi
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
571if 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
669fi
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.
673lt_ECHO=$ECHO
674if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
675 lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
676fi
677
678
679
680
681test -n "$DJDIR" || exec 7<&0 </dev/null
682exec 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.
687ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
688
689#
690# Initializations.
691#
692ac_default_prefix=/usr/local
693ac_clean_files=
694ac_config_libobj_dir=.
695LIBOBJS=
696cross_compiling=no
697subdirs=
698MFLAGS=
699MAKEFLAGS=
700
701# Identity of this package.
702PACKAGE_NAME='eet'
703PACKAGE_TARNAME='eet'
704PACKAGE_VERSION='1.6.0-alpha'
705PACKAGE_STRING='eet 1.6.0-alpha'
706PACKAGE_BUGREPORT='enlightenment-devel@lists.sourceforge.net'
707PACKAGE_URL=''
708
709ac_unique_file="configure.ac"
710# Factoring default headers for most tests.
711ac_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
746ac_subst_vars='am__EXEEXT_FALSE
747am__EXEEXT_TRUE
748LTLIBOBJS
749LIBOBJS
750requirement_eet
751EFL_FNMATCH_LIBS
752ALLOCA
753lt_enable_auto_import
754EET_CFLAGS
755EET_CPPFLAGS
756OPENSSL_LIBS
757OPENSSL_CFLAGS
758LIBGCRYPT_LIBS
759LIBGCRYPT_CFLAGS
760LIBGCRYPT_CONFIG
761GNUTLS_LIBS
762GNUTLS_CFLAGS
763EXOTIC_LIBS
764EXOTIC_CFLAGS
765EINA_LIBS
766EINA_CFLAGS
767EET_LIBS
768EFL_EET_BUILD
769EVIL_LIBS
770EVIL_CFLAGS
771EFL_BUILD_DOC_FALSE
772EFL_BUILD_DOC_TRUE
773efl_doxygen
774efl_have_doxygen
775pkgconfig_requires_private
776DEBUG_CFLAGS
777EFL_ENABLE_COVERAGE_FALSE
778EFL_ENABLE_COVERAGE_TRUE
779EFL_COVERAGE_LIBS
780EFL_COVERAGE_CFLAGS
781have_lcov
782EFL_ENABLE_TESTS_FALSE
783EFL_ENABLE_TESTS_TRUE
784CHECK_LIBS
785CHECK_CFLAGS
786PKG_CONFIG_LIBDIR
787PKG_CONFIG_PATH
788PKG_CONFIG
789BUILD_EXAMPLES_FALSE
790BUILD_EXAMPLES_TRUE
791INSTALL_EXAMPLES_FALSE
792INSTALL_EXAMPLES_TRUE
793BUILD_EET_FALSE
794BUILD_EET_TRUE
795EET_PRG
796EET_AMALGAMATION_FALSE
797EET_AMALGAMATION_TRUE
798VMAJ
799release_info
800version_info
801CPP
802OTOOL64
803OTOOL
804LIPO
805NMEDIT
806DSYMUTIL
807lt_ECHO
808RANLIB
809AR
810LN_S
811NM
812ac_ct_DUMPBIN
813DUMPBIN
814LD
815FGREP
816EGREP
817GREP
818SED
819am__fastdepCC_FALSE
820am__fastdepCC_TRUE
821CCDEPMODE
822AMDEPBACKSLASH
823AMDEP_FALSE
824AMDEP_TRUE
825am__quote
826am__include
827DEPDIR
828OBJEXT
829EXEEXT
830ac_ct_CC
831CPPFLAGS
832LDFLAGS
833CFLAGS
834CC
835LIBTOOL
836OBJDUMP
837DLLTOOL
838AS
839host_os
840host_vendor
841host_cpu
842host
843build_os
844build_vendor
845build_cpu
846build
847AM_BACKSLASH
848AM_DEFAULT_VERBOSITY
849am__untar
850am__tar
851AMTAR
852am__leading_dot
853SET_MAKE
854AWK
855mkdir_p
856MKDIR_P
857INSTALL_STRIP_PROGRAM
858STRIP
859install_sh
860MAKEINFO
861AUTOHEADER
862AUTOMAKE
863AUTOCONF
864ACLOCAL
865VERSION
866PACKAGE
867CYGPATH_W
868am__isrc
869INSTALL_DATA
870INSTALL_SCRIPT
871INSTALL_PROGRAM
872target_alias
873host_alias
874build_alias
875LIBS
876ECHO_T
877ECHO_N
878ECHO_C
879DEFS
880mandir
881localedir
882libdir
883psdir
884pdfdir
885dvidir
886htmldir
887infodir
888docdir
889oldincludedir
890includedir
891localstatedir
892sharedstatedir
893sysconfdir
894datadir
895datarootdir
896libexecdir
897sbindir
898bindir
899program_transform_name
900prefix
901exec_prefix
902PACKAGE_URL
903PACKAGE_BUGREPORT
904PACKAGE_STRING
905PACKAGE_VERSION
906PACKAGE_TARNAME
907PACKAGE_NAME
908PATH_SEPARATOR
909SHELL'
910ac_subst_files=''
911ac_user_opts='
912enable_option_checking
913enable_silent_rules
914enable_shared
915enable_static
916with_pic
917enable_fast_install
918enable_dependency_tracking
919with_gnu_ld
920enable_libtool_lock
921enable_amalgamation
922enable_eet
923enable_old_eet_file_format
924enable_openssl
925enable_cipher
926enable_signature
927enable_assert
928enable_install_examples
929enable_build_examples
930enable_tests
931enable_coverage
932enable_doc
933with_doxygen
934enable_gnutls
935with_libgcrypt_prefix
936with_libgcrypt_exec_prefix
937enable_new_gnutls_api
938'
939 ac_precious_vars='build_alias
940host_alias
941target_alias
942CC
943CFLAGS
944LDFLAGS
945LIBS
946CPPFLAGS
947CPP
948PKG_CONFIG
949PKG_CONFIG_PATH
950PKG_CONFIG_LIBDIR
951CHECK_CFLAGS
952CHECK_LIBS
953EVIL_CFLAGS
954EVIL_LIBS
955EINA_CFLAGS
956EINA_LIBS
957EXOTIC_CFLAGS
958EXOTIC_LIBS
959GNUTLS_CFLAGS
960GNUTLS_LIBS
961OPENSSL_CFLAGS
962OPENSSL_LIBS'
963
964
965# Initialize some variables set by options.
966ac_init_help=
967ac_init_version=false
968ac_unrecognized_opts=
969ac_unrecognized_sep=
970# The variables have the same names as the options, with
971# dashes changed to underlines.
972cache_file=/dev/null
973exec_prefix=NONE
974no_create=
975no_recursion=
976prefix=NONE
977program_prefix=NONE
978program_suffix=NONE
979program_transform_name=s,x,x,
980silent=
981site=
982srcdir=
983verbose=
984x_includes=NONE
985x_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.)
993bindir='${exec_prefix}/bin'
994sbindir='${exec_prefix}/sbin'
995libexecdir='${exec_prefix}/libexec'
996datarootdir='${prefix}/share'
997datadir='${datarootdir}'
998sysconfdir='${prefix}/etc'
999sharedstatedir='${prefix}/com'
1000localstatedir='${prefix}/var'
1001includedir='${prefix}/include'
1002oldincludedir='/usr/include'
1003docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
1004infodir='${datarootdir}/info'
1005htmldir='${docdir}'
1006dvidir='${docdir}'
1007pdfdir='${docdir}'
1008psdir='${docdir}'
1009libdir='${exec_prefix}/lib'
1010localedir='${datarootdir}/locale'
1011mandir='${datarootdir}/man'
1012
1013ac_prev=
1014ac_dashdash=
1015for ac_option
1016do
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'
1349Try \`$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
1371done
1372
1373if test -n "$ac_prev"; then
1374 ac_option=--`echo $ac_prev | sed 's/_/-/g'`
1375 as_fn_error $? "missing argument to $ac_option"
1376fi
1377
1378if 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
1384fi
1385
1386# Check all directory arguments for consistency.
1387for 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
1391do
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"
1405done
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.
1410build=$build_alias
1411host=$host_alias
1412target=$target_alias
1413
1414# FIXME: To remove some day.
1415if 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
1423fi
1424
1425ac_tool_prefix=
1426test -n "$host_alias" && ac_tool_prefix=$host_alias-
1427
1428test "$silent" = yes && exec 6>/dev/null
1429
1430
1431ac_pwd=`pwd` && test -n "$ac_pwd" &&
1432ac_ls_di=`ls -di .` &&
1433ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
1434 as_fn_error $? "working directory cannot be determined"
1435test "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.
1440if 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
1470else
1471 ac_srcdir_defaulted=no
1472fi
1473if 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"
1476fi
1477ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
1478ac_abs_confdir=`(
1479 cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
1480 pwd)`
1481# When building in place, set srcdir=.
1482if test "$ac_abs_confdir" = "$ac_pwd"; then
1483 srcdir=.
1484fi
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.
1488case $srcdir in
1489*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
1490esac
1491for 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}
1496done
1497
1498#
1499# Report the --help message.
1500#
1501if 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
1507Usage: $0 [OPTION]... [VAR=VALUE]...
1508
1509To assign environment variables (e.g., CC, CFLAGS...), specify them as
1510VAR=VALUE. See below for descriptions of some of the useful variables.
1511
1512Defaults for the options are specified in brackets.
1513
1514Configuration:
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
1525Installation 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
1531By default, \`make install' will install all the files in
1532\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
1533an installation prefix other than \`$ac_default_prefix' using \`--prefix',
1534for instance \`--prefix=\$HOME'.
1535
1536For better control, use the options below.
1537
1538Fine 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
1562Program 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
1567System 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
1571fi
1572
1573if 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
1579Optional 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
1615Optional 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
1625Some 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
1657Use these variables to override the choices made by `configure' or to help
1658it to find libraries and programs with nonstandard names/locations.
1659
1660Report bugs to <enlightenment-devel@lists.sourceforge.net>.
1661_ACEOF
1662ac_status=$?
1663fi
1664
1665if 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
1673case "$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 ;;
1683esac
1684ac_abs_top_builddir=$ac_pwd
1685ac_abs_builddir=$ac_pwd$ac_dir_suffix
1686# for backward compatibility:
1687ac_top_builddir=$ac_top_build_prefix
1688
1689case $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 ;;
1702esac
1703ac_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
1718fi
1719
1720test -n "$ac_init_help" && exit $ac_status
1721if $ac_init_version; then
1722 cat <<\_ACEOF
1723eet configure 1.6.0-alpha
1724generated by GNU Autoconf 2.67
1725
1726Copyright (C) 2010 Free Software Foundation, Inc.
1727This configure script is free software; the Free Software Foundation
1728gives unlimited permission to copy, distribute and modify it.
1729_ACEOF
1730 exit
1731fi
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.
1740ac_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"
1745case "(($ac_try" in
1746 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1747 *) ac_try_echo=$ac_try;;
1748esac
1749eval 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
1764else
1765 $as_echo "$as_me: failed program was:" >&5
1766sed 's/^/| /' conftest.$ac_ext >&5
1767
1768 ac_retval=1
1769fi
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.
1778ac_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"
1783case "(($ac_try" in
1784 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1785 *) ac_try_echo=$ac_try;;
1786esac
1787eval 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
1805else
1806 $as_echo "$as_me: failed program was:" >&5
1807sed 's/^/| /' conftest.$ac_ext >&5
1808
1809 ac_retval=1
1810fi
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.
1825ac_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; }
1830if eval "test \"\${$3+set}\"" = set; then :
1831 $as_echo_n "(cached) " >&6
1832else
1833 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
1834/* end confdefs.h. */
1835$4
1836#include <$2>
1837_ACEOF
1838if ac_fn_c_try_compile "$LINENO"; then :
1839 eval "$3=yes"
1840else
1841 eval "$3=no"
1842fi
1843rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
1844fi
1845eval 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.
1855ac_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"
1859case "(($ac_try" in
1860 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1861 *) ac_try_echo=$ac_try;;
1862esac
1863eval 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
1878else
1879 $as_echo "$as_me: failed program was:" >&5
1880sed 's/^/| /' conftest.$ac_ext >&5
1881
1882 ac_retval=1
1883fi
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.
1893ac_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"
1897case "(($ac_try" in
1898 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1899 *) ac_try_echo=$ac_try;;
1900esac
1901eval 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;;
1910esac
1911eval 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
1918else
1919 $as_echo "$as_me: program exited with status $ac_status" >&5
1920 $as_echo "$as_me: failed program was:" >&5
1921sed 's/^/| /' conftest.$ac_ext >&5
1922
1923 ac_retval=$ac_status
1924fi
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
1934ac_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; }
1939if eval "test \"\${$3+set}\"" = set; then :
1940 $as_echo_n "(cached) " >&6
1941else
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
1965extern "C"
1966#endif
1967char $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
1972choke me
1973#endif
1974
1975int
1976main ()
1977{
1978return $2 ();
1979 ;
1980 return 0;
1981}
1982_ACEOF
1983if ac_fn_c_try_link "$LINENO"; then :
1984 eval "$3=yes"
1985else
1986 eval "$3=no"
1987fi
1988rm -f core conftest.err conftest.$ac_objext \
1989 conftest$ac_exeext conftest.$ac_ext
1990fi
1991eval 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.
2003ac_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; }
2009if eval "test \"\${$3+set}\"" = set; then :
2010 $as_echo_n "(cached) " >&6
2011fi
2012eval ac_res=\$$3
2013 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
2014$as_echo "$ac_res" >&6; }
2015else
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; }
2019cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2020/* end confdefs.h. */
2021$4
2022#include <$2>
2023_ACEOF
2024if ac_fn_c_try_compile "$LINENO"; then :
2025 ac_header_compiler=yes
2026else
2027 ac_header_compiler=no
2028fi
2029rm -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; }
2036cat confdefs.h - <<_ACEOF >conftest.$ac_ext
2037/* end confdefs.h. */
2038#include <$2>
2039_ACEOF
2040if ac_fn_c_try_cpp "$LINENO"; then :
2041 ac_header_preproc=yes
2042else
2043 ac_header_preproc=no
2044fi
2045rm -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?
2050case $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 ;;
2073esac
2074 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
2075$as_echo_n "checking for $2... " >&6; }
2076if eval "test \"\${$3+set}\"" = set; then :
2077 $as_echo_n "(cached) " >&6
2078else
2079 eval "$3=\$ac_header_compiler"
2080fi
2081eval ac_res=\$$3
2082 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
2083$as_echo "$ac_res" >&6; }
2084fi
2085 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
2086
2087} # ac_fn_c_check_header_mongrel
2088cat >config.log <<_ACEOF
2089This file contains any messages produced by compilers while
2090running configure, to aid debugging if configure makes a mistake.
2091
2092It was created by eet $as_me 1.6.0-alpha, which was
2093generated by GNU Autoconf 2.67. Invocation command line was
2094
2095 $ $0 $@
2096
2097_ACEOF
2098exec 5>>config.log
2099{
2100cat <<_ASUNAME
2101## --------- ##
2102## Platform. ##
2103## --------- ##
2104
2105hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
2106uname -m = `(uname -m) 2>/dev/null || echo unknown`
2107uname -r = `(uname -r) 2>/dev/null || echo unknown`
2108uname -s = `(uname -s) 2>/dev/null || echo unknown`
2109uname -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
2124as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2125for as_dir in $PATH
2126do
2127 IFS=$as_save_IFS
2128 test -z "$as_dir" && as_dir=.
2129 $as_echo "PATH: $as_dir"
2130 done
2131IFS=$as_save_IFS
2132
2133} >&5
2134
2135cat >&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.
2150ac_configure_args=
2151ac_configure_args0=
2152ac_configure_args1=
2153ac_must_keep_next=false
2154for ac_pass in 1 2
2155do
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
2189done
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.
2198trap '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
2285for ac_signal in 1 2 13 15; do
2286 trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
2287done
2288ac_signal=0
2289
2290# confdefs.h avoids OS command line length limits that DEFS can exceed.
2291rm -f -r conftest* confdefs.h
2292
2293$as_echo "/* confdefs.h */" > confdefs.h
2294
2295# Predefined preprocessor variables.
2296
2297cat >>confdefs.h <<_ACEOF
2298#define PACKAGE_NAME "$PACKAGE_NAME"
2299_ACEOF
2300
2301cat >>confdefs.h <<_ACEOF
2302#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
2303_ACEOF
2304
2305cat >>confdefs.h <<_ACEOF
2306#define PACKAGE_VERSION "$PACKAGE_VERSION"
2307_ACEOF
2308
2309cat >>confdefs.h <<_ACEOF
2310#define PACKAGE_STRING "$PACKAGE_STRING"
2311_ACEOF
2312
2313cat >>confdefs.h <<_ACEOF
2314#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
2315_ACEOF
2316
2317cat >>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.
2324ac_site_file1=NONE
2325ac_site_file2=NONE
2326if 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
2333elif test "x$prefix" != xNONE; then
2334 ac_site_file1=$prefix/share/config.site
2335 ac_site_file2=$prefix/etc/config.site
2336else
2337 ac_site_file1=$ac_default_prefix/share/config.site
2338 ac_site_file2=$ac_default_prefix/etc/config.site
2339fi
2340for ac_site_file in "$ac_site_file1" "$ac_site_file2"
2341do
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;}
2350as_fn_error $? "failed to load site script $ac_site_file
2351See \`config.log' for more details" "$LINENO" 5 ; }
2352 fi
2353done
2354
2355if 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
2366else
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
2370fi
2371
2372# Check that the precious variables saved in the cache have kept the same
2373# value.
2374ac_cache_corrupted=false
2375for 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
2421done
2422if $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
2428fi
2429## -------------------- ##
2430## Main body of script. ##
2431## -------------------- ##
2432
2433ac_ext=c
2434ac_cpp='$CPP $CPPFLAGS'
2435ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
2436ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
2437ac_compiler_gnu=$ac_cv_c_compiler_gnu
2438
2439
2440
2441
2442
2443
2444ac_config_headers="$ac_config_headers config.h"
2445
2446
2447
2448
2449am__api_version='1.11'
2450
2451ac_aux_dir=
2452for 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
2466done
2467if test -z "$ac_aux_dir"; then
2468 as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
2469fi
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.
2475ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
2476ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
2477ac_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; }
2496if test -z "$INSTALL"; then
2497if test "${ac_cv_path_install+set}" = set; then :
2498 $as_echo_n "(cached) " >&6
2499else
2500 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2501for as_dir in $PATH
2502do
2503 IFS=$as_save_IFS
2504 test -z "$as_dir" && as_dir=.
2505 # Account for people who put trailing slashes in PATH elements.
2506case $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 ;;
2544esac
2545
2546 done
2547IFS=$as_save_IFS
2548
2549rm -rf conftest.one conftest.two conftest.dir
2550
2551fi
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
2561fi
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.
2567test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
2568
2569test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
2570
2571test -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
2576sleep 1
2577echo timestamp > conftest.file
2578# Reject unsafe characters in $srcdir or the absolute working directory
2579# name. Accept space and tab only in the latter.
2580am_lf='
2581'
2582case `pwd` in
2583 *[\\\"\#\$\&\'\`$am_lf]*)
2584 as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;;
2585esac
2586case $srcdir in
2587 *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
2588 as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;;
2589esac
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).
2596if (
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
2611alias in your environment" "$LINENO" 5
2612 fi
2613
2614 test "$2" = conftest.file
2615 )
2616then
2617 # Ok.
2618 :
2619else
2620 as_fn_error $? "newly created file is older than distributed files!
2621Check your system clock" "$LINENO" 5
2622fi
2623{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
2624$as_echo "yes" >&6; }
2625test "$program_prefix" != NONE &&
2626 program_transform_name="s&^&$program_prefix&;$program_transform_name"
2627# Use a double $ so make ignores it.
2628test "$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.
2632ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
2633program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
2634
2635# expand $ac_aux_dir to an absolute path
2636am_aux_dir=`cd $ac_aux_dir && pwd`
2637
2638if 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
2645fi
2646# Use eval to expand $SHELL
2647if eval "$MISSING --run true"; then
2648 am_missing_run="$MISSING --run "
2649else
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;}
2653fi
2654
2655if 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
2662fi
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.
2668if 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.
2671set 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; }
2674if test "${ac_cv_prog_STRIP+set}" = set; then :
2675 $as_echo_n "(cached) " >&6
2676else
2677 if test -n "$STRIP"; then
2678 ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
2679else
2680as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2681for as_dir in $PATH
2682do
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
2691done
2692 done
2693IFS=$as_save_IFS
2694
2695fi
2696fi
2697STRIP=$ac_cv_prog_STRIP
2698if test -n "$STRIP"; then
2699 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
2700$as_echo "$STRIP" >&6; }
2701else
2702 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2703$as_echo "no" >&6; }
2704fi
2705
2706
2707fi
2708if 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.
2711set 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; }
2714if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
2715 $as_echo_n "(cached) " >&6
2716else
2717 if test -n "$ac_ct_STRIP"; then
2718 ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
2719else
2720as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2721for as_dir in $PATH
2722do
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
2731done
2732 done
2733IFS=$as_save_IFS
2734
2735fi
2736fi
2737ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
2738if 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; }
2741else
2742 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2743$as_echo "no" >&6; }
2744fi
2745
2746 if test "x$ac_ct_STRIP" = x; then
2747 STRIP=":"
2748 else
2749 case $cross_compiling:$ac_tool_warned in
2750yes:)
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;}
2753ac_tool_warned=yes ;;
2754esac
2755 STRIP=$ac_ct_STRIP
2756 fi
2757else
2758 STRIP="$ac_cv_prog_STRIP"
2759fi
2760
2761fi
2762INSTALL_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; }
2766if test -z "$MKDIR_P"; then
2767 if test "${ac_cv_path_mkdir+set}" = set; then :
2768 $as_echo_n "(cached) " >&6
2769else
2770 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2771for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
2772do
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
2788IFS=$as_save_IFS
2789
2790fi
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
2802fi
2803{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
2804$as_echo "$MKDIR_P" >&6; }
2805
2806mkdir_p="$MKDIR_P"
2807case $mkdir_p in
2808 [\\/$]* | ?:[\\/]*) ;;
2809 */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
2810esac
2811
2812for ac_prog in gawk mawk nawk awk
2813do
2814 # Extract the first word of "$ac_prog", so it can be a program name with args.
2815set 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; }
2818if test "${ac_cv_prog_AWK+set}" = set; then :
2819 $as_echo_n "(cached) " >&6
2820else
2821 if test -n "$AWK"; then
2822 ac_cv_prog_AWK="$AWK" # Let the user override the test.
2823else
2824as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2825for as_dir in $PATH
2826do
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
2835done
2836 done
2837IFS=$as_save_IFS
2838
2839fi
2840fi
2841AWK=$ac_cv_prog_AWK
2842if test -n "$AWK"; then
2843 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
2844$as_echo "$AWK" >&6; }
2845else
2846 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2847$as_echo "no" >&6; }
2848fi
2849
2850
2851 test -n "$AWK" && break
2852done
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; }
2856set x ${MAKE-make}
2857ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
2858if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
2859 $as_echo_n "(cached) " >&6
2860else
2861 cat >conftest.make <<\_ACEOF
2862SHELL = /bin/sh
2863all:
2864 @echo '@@@%%%=$(MAKE)=@@@%%%'
2865_ACEOF
2866# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
2867case `${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;;
2872esac
2873rm -f conftest.make
2874fi
2875if 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=
2879else
2880 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
2881$as_echo "no" >&6; }
2882 SET_MAKE="MAKE=${MAKE-make}"
2883fi
2884
2885rm -rf .tst 2>/dev/null
2886mkdir .tst 2>/dev/null
2887if test -d .tst; then
2888 am__leading_dot=.
2889else
2890 am__leading_dot=_
2891fi
2892rmdir .tst 2>/dev/null
2893
2894if 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
2902fi
2903
2904# test whether we have cygpath
2905if 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
2911fi
2912
2913
2914# Define the identity of the package.
2915 PACKAGE='eet'
2916 VERSION='1.6.0-alpha'
2917
2918
2919cat >>confdefs.h <<_ACEOF
2920#define PACKAGE "$PACKAGE"
2921_ACEOF
2922
2923
2924cat >>confdefs.h <<_ACEOF
2925#define VERSION "$VERSION"
2926_ACEOF
2927
2928# Some tools Automake needs.
2929
2930ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
2931
2932
2933AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
2934
2935
2936AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
2937
2938
2939AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
2940
2941
2942MAKEINFO=${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
2948AMTAR=${AMTAR-"${am_missing_run}tar"}
2949
2950am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
2951
2952
2953
2954
2955
2956# Check whether --enable-silent-rules was given.
2957if test "${enable_silent_rules+set}" = set; then :
2958 enableval=$enable_silent_rules;
2959fi
2960
2961case $enable_silent_rules in
2962yes) AM_DEFAULT_VERBOSITY=0;;
2963no) AM_DEFAULT_VERBOSITY=1;;
2964*) AM_DEFAULT_VERBOSITY=0;;
2965esac
2966AM_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; }
2975if test "${ac_cv_build+set}" = set; then :
2976 $as_echo_n "(cached) " >&6
2977else
2978 ac_build_alias=$build_alias
2979test "x$ac_build_alias" = x &&
2980 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
2981test "x$ac_build_alias" = x &&
2982 as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
2983ac_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
2986fi
2987{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
2988$as_echo "$ac_cv_build" >&6; }
2989case $ac_cv_build in
2990*-*-*) ;;
2991*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;;
2992esac
2993build=$ac_cv_build
2994ac_save_IFS=$IFS; IFS='-'
2995set x $ac_cv_build
2996shift
2997build_cpu=$1
2998build_vendor=$2
2999shift; shift
3000# Remember, the first character of IFS is used to create $*,
3001# except with old shells:
3002build_os=$*
3003IFS=$ac_save_IFS
3004case $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; }
3009if test "${ac_cv_host+set}" = set; then :
3010 $as_echo_n "(cached) " >&6
3011else
3012 if test "x$host_alias" = x; then
3013 ac_cv_host=$ac_cv_build
3014else
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
3017fi
3018
3019fi
3020{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
3021$as_echo "$ac_cv_host" >&6; }
3022case $ac_cv_host in
3023*-*-*) ;;
3024*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;;
3025esac
3026host=$ac_cv_host
3027ac_save_IFS=$IFS; IFS='-'
3028set x $ac_cv_host
3029shift
3030host_cpu=$1
3031host_vendor=$2
3032shift; shift
3033# Remember, the first character of IFS is used to create $*,
3034# except with old shells:
3035host_os=$*
3036IFS=$ac_save_IFS
3037case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
3038
3039
3040enable_win32_dll=yes
3041
3042case $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.
3046set 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; }
3049if test "${ac_cv_prog_AS+set}" = set; then :
3050 $as_echo_n "(cached) " >&6
3051else
3052 if test -n "$AS"; then
3053 ac_cv_prog_AS="$AS" # Let the user override the test.
3054else
3055as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3056for as_dir in $PATH
3057do
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
3066done
3067 done
3068IFS=$as_save_IFS
3069
3070fi
3071fi
3072AS=$ac_cv_prog_AS
3073if test -n "$AS"; then
3074 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
3075$as_echo "$AS" >&6; }
3076else
3077 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3078$as_echo "no" >&6; }
3079fi
3080
3081
3082fi
3083if 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.
3086set 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; }
3089if test "${ac_cv_prog_ac_ct_AS+set}" = set; then :
3090 $as_echo_n "(cached) " >&6
3091else
3092 if test -n "$ac_ct_AS"; then
3093 ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
3094else
3095as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3096for as_dir in $PATH
3097do
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
3106done
3107 done
3108IFS=$as_save_IFS
3109
3110fi
3111fi
3112ac_ct_AS=$ac_cv_prog_ac_ct_AS
3113if 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; }
3116else
3117 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3118$as_echo "no" >&6; }
3119fi
3120
3121 if test "x$ac_ct_AS" = x; then
3122 AS="false"
3123 else
3124 case $cross_compiling:$ac_tool_warned in
3125yes:)
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;}
3128ac_tool_warned=yes ;;
3129esac
3130 AS=$ac_ct_AS
3131 fi
3132else
3133 AS="$ac_cv_prog_AS"
3134fi
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.
3138set 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; }
3141if test "${ac_cv_prog_DLLTOOL+set}" = set; then :
3142 $as_echo_n "(cached) " >&6
3143else
3144 if test -n "$DLLTOOL"; then
3145 ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
3146else
3147as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3148for as_dir in $PATH
3149do
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
3158done
3159 done
3160IFS=$as_save_IFS
3161
3162fi
3163fi
3164DLLTOOL=$ac_cv_prog_DLLTOOL
3165if test -n "$DLLTOOL"; then
3166 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
3167$as_echo "$DLLTOOL" >&6; }
3168else
3169 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3170$as_echo "no" >&6; }
3171fi
3172
3173
3174fi
3175if 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.
3178set 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; }
3181if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then :
3182 $as_echo_n "(cached) " >&6
3183else
3184 if test -n "$ac_ct_DLLTOOL"; then
3185 ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
3186else
3187as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3188for as_dir in $PATH
3189do
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
3198done
3199 done
3200IFS=$as_save_IFS
3201
3202fi
3203fi
3204ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
3205if 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; }
3208else
3209 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3210$as_echo "no" >&6; }
3211fi
3212
3213 if test "x$ac_ct_DLLTOOL" = x; then
3214 DLLTOOL="false"
3215 else
3216 case $cross_compiling:$ac_tool_warned in
3217yes:)
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;}
3220ac_tool_warned=yes ;;
3221esac
3222 DLLTOOL=$ac_ct_DLLTOOL
3223 fi
3224else
3225 DLLTOOL="$ac_cv_prog_DLLTOOL"
3226fi
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.
3230set 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; }
3233if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
3234 $as_echo_n "(cached) " >&6
3235else
3236 if test -n "$OBJDUMP"; then
3237 ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
3238else
3239as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3240for as_dir in $PATH
3241do
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
3250done
3251 done
3252IFS=$as_save_IFS
3253
3254fi
3255fi
3256OBJDUMP=$ac_cv_prog_OBJDUMP
3257if test -n "$OBJDUMP"; then
3258 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
3259$as_echo "$OBJDUMP" >&6; }
3260else
3261 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3262$as_echo "no" >&6; }
3263fi
3264
3265
3266fi
3267if 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.
3270set 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; }
3273if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
3274 $as_echo_n "(cached) " >&6
3275else
3276 if test -n "$ac_ct_OBJDUMP"; then
3277 ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
3278else
3279as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3280for as_dir in $PATH
3281do
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
3290done
3291 done
3292IFS=$as_save_IFS
3293
3294fi
3295fi
3296ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
3297if 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; }
3300else
3301 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3302$as_echo "no" >&6; }
3303fi
3304
3305 if test "x$ac_ct_OBJDUMP" = x; then
3306 OBJDUMP="false"
3307 else
3308 case $cross_compiling:$ac_tool_warned in
3309yes:)
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;}
3312ac_tool_warned=yes ;;
3313esac
3314 OBJDUMP=$ac_ct_OBJDUMP
3315 fi
3316else
3317 OBJDUMP="$ac_cv_prog_OBJDUMP"
3318fi
3319
3320 ;;
3321esac
3322
3323test -z "$AS" && AS=as
3324
3325
3326
3327
3328
3329test -z "$DLLTOOL" && DLLTOOL=dlltool
3330
3331
3332
3333
3334
3335test -z "$OBJDUMP" && OBJDUMP=objdump
3336
3337
3338
3339
3340
3341
3342
3343case `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;} ;;
3347esac
3348
3349
3350
3351macro_version='2.2.6b'
3352macro_revision='1.3017'
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366ltmain="$ac_aux_dir/ltmain.sh"
3367
3368DEPDIR="${am__leading_dot}deps"
3369
3370ac_config_commands="$ac_config_commands depfiles"
3371
3372
3373am_make=${MAKE-make}
3374cat > confinc << 'END'
3375am__doit:
3376 @echo this is the am__doit target
3377.PHONY: am__doit
3378END
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; }
3382am__include="#"
3383am__quote=
3384_am_result=none
3385# First try GNU make style include.
3386echo "include confinc" > confmf
3387# Ignore all kinds of additional output from `make'.
3388case `$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 ;;
3394esac
3395# Now try BSD make style include.
3396if 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
3405fi
3406
3407
3408{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
3409$as_echo "$_am_result" >&6; }
3410rm -f confinc confmf
3411
3412# Check whether --enable-dependency-tracking was given.
3413if test "${enable_dependency_tracking+set}" = set; then :
3414 enableval=$enable_dependency_tracking;
3415fi
3416
3417if test "x$enable_dependency_tracking" != xno; then
3418 am_depcomp="$ac_aux_dir/depcomp"
3419 AMDEPBACKSLASH='\'
3420fi
3421 if test "x$enable_dependency_tracking" != xno; then
3422 AMDEP_TRUE=
3423 AMDEP_FALSE='#'
3424else
3425 AMDEP_TRUE='#'
3426 AMDEP_FALSE=
3427fi
3428
3429
3430ac_ext=c
3431ac_cpp='$CPP $CPPFLAGS'
3432ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
3433ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
3434ac_compiler_gnu=$ac_cv_c_compiler_gnu
3435if 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.
3437set 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; }
3440if test "${ac_cv_prog_CC+set}" = set; then :
3441 $as_echo_n "(cached) " >&6
3442else
3443 if test -n "$CC"; then
3444 ac_cv_prog_CC="$CC" # Let the user override the test.
3445else
3446as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3447for as_dir in $PATH
3448do
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
3457done
3458 done
3459IFS=$as_save_IFS
3460
3461fi
3462fi
3463CC=$ac_cv_prog_CC
3464if test -n "$CC"; then
3465 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
3466$as_echo "$CC" >&6; }
3467else
3468 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3469$as_echo "no" >&6; }
3470fi
3471
3472
3473fi
3474if 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.
3477set 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; }
3480if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
3481 $as_echo_n "(cached) " >&6
3482else
3483 if test -n "$ac_ct_CC"; then
3484 ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
3485else
3486as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3487for as_dir in $PATH
3488do
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
3497done
3498 done
3499IFS=$as_save_IFS
3500
3501fi
3502fi
3503ac_ct_CC=$ac_cv_prog_ac_ct_CC
3504if 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; }
3507else
3508 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3509$as_echo "no" >&6; }
3510fi
3511
3512 if test "x$ac_ct_CC" = x; then
3513 CC=""
3514 else
3515 case $cross_compiling:$ac_tool_warned in
3516yes:)
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;}
3519ac_tool_warned=yes ;;
3520esac
3521 CC=$ac_ct_CC
3522 fi
3523else
3524 CC="$ac_cv_prog_CC"
3525fi
3526
3527if 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.
3530set 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; }
3533if test "${ac_cv_prog_CC+set}" = set; then :
3534 $as_echo_n "(cached) " >&6
3535else
3536 if test -n "$CC"; then
3537 ac_cv_prog_CC="$CC" # Let the user override the test.
3538else
3539as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3540for as_dir in $PATH
3541do
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
3550done
3551 done
3552IFS=$as_save_IFS
3553
3554fi
3555fi
3556CC=$ac_cv_prog_CC
3557if test -n "$CC"; then
3558 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
3559$as_echo "$CC" >&6; }
3560else
3561 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3562$as_echo "no" >&6; }
3563fi
3564
3565
3566 fi
3567fi
3568if test -z "$CC"; then
3569 # Extract the first word of "cc", so it can be a program name with args.
3570set 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; }
3573if test "${ac_cv_prog_CC+set}" = set; then :
3574 $as_echo_n "(cached) " >&6
3575else
3576 if test -n "$CC"; then
3577 ac_cv_prog_CC="$CC" # Let the user override the test.
3578else
3579 ac_prog_rejected=no
3580as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3581for as_dir in $PATH
3582do
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
3595done
3596 done
3597IFS=$as_save_IFS
3598
3599if 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
3610fi
3611fi
3612fi
3613CC=$ac_cv_prog_CC
3614if test -n "$CC"; then
3615 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
3616$as_echo "$CC" >&6; }
3617else
3618 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3619$as_echo "no" >&6; }
3620fi
3621
3622
3623fi
3624if 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.
3629set 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; }
3632if test "${ac_cv_prog_CC+set}" = set; then :
3633 $as_echo_n "(cached) " >&6
3634else
3635 if test -n "$CC"; then
3636 ac_cv_prog_CC="$CC" # Let the user override the test.
3637else
3638as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3639for as_dir in $PATH
3640do
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
3649done
3650 done
3651IFS=$as_save_IFS
3652
3653fi
3654fi
3655CC=$ac_cv_prog_CC
3656if test -n "$CC"; then
3657 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
3658$as_echo "$CC" >&6; }
3659else
3660 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3661$as_echo "no" >&6; }
3662fi
3663
3664
3665 test -n "$CC" && break
3666 done
3667fi
3668if test -z "$CC"; then
3669 ac_ct_CC=$CC
3670 for ac_prog in cl.exe
3671do
3672 # Extract the first word of "$ac_prog", so it can be a program name with args.
3673set 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; }
3676if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
3677 $as_echo_n "(cached) " >&6
3678else
3679 if test -n "$ac_ct_CC"; then
3680 ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
3681else
3682as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3683for as_dir in $PATH
3684do
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
3693done
3694 done
3695IFS=$as_save_IFS
3696
3697fi
3698fi
3699ac_ct_CC=$ac_cv_prog_ac_ct_CC
3700if 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; }
3703else
3704 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3705$as_echo "no" >&6; }
3706fi
3707
3708
3709 test -n "$ac_ct_CC" && break
3710done
3711
3712 if test "x$ac_ct_CC" = x; then
3713 CC=""
3714 else
3715 case $cross_compiling:$ac_tool_warned in
3716yes:)
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;}
3719ac_tool_warned=yes ;;
3720esac
3721 CC=$ac_ct_CC
3722 fi
3723fi
3724
3725fi
3726
3727
3728test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3729$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3730as_fn_error $? "no acceptable C compiler found in \$PATH
3731See \`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
3735set X $ac_compile
3736ac_compiler=$2
3737for ac_option in --version -v -V -qversion; do
3738 { { ac_try="$ac_compiler $ac_option >&5"
3739case "(($ac_try" in
3740 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
3741 *) ac_try_echo=$ac_try;;
3742esac
3743eval 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; }
3756done
3757
3758cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3759/* end confdefs.h. */
3760
3761int
3762main ()
3763{
3764
3765 ;
3766 return 0;
3767}
3768_ACEOF
3769ac_clean_files_save=$ac_clean_files
3770ac_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; }
3776ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
3777
3778# The possible output files:
3779ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
3780
3781ac_rmfiles=
3782for ac_file in $ac_files
3783do
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
3788done
3789rm -f $ac_rmfiles
3790
3791if { { ac_try="$ac_link_default"
3792case "(($ac_try" in
3793 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
3794 *) ac_try_echo=$ac_try;;
3795esac
3796eval 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.
3807for ac_file in $ac_files ''
3808do
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
3831done
3832test "$ac_cv_exeext" = no && ac_cv_exeext=
3833
3834else
3835 ac_file=''
3836fi
3837if 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
3841sed '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;}
3845as_fn_error 77 "C compiler cannot create executables
3846See \`config.log' for more details" "$LINENO" 5 ; }
3847else
3848 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
3849$as_echo "yes" >&6; }
3850fi
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; }
3855ac_exeext=$ac_cv_exeext
3856
3857rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
3858ac_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; }
3861if { { ac_try="$ac_link"
3862case "(($ac_try" in
3863 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
3864 *) ac_try_echo=$ac_try;;
3865esac
3866eval 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'.
3876for 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
3884done
3885else
3886 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3887$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3888as_fn_error $? "cannot compute suffix of executables: cannot compile and link
3889See \`config.log' for more details" "$LINENO" 5 ; }
3890fi
3891rm -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
3895rm -f conftest.$ac_ext
3896EXEEXT=$ac_cv_exeext
3897ac_exeext=$EXEEXT
3898cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3899/* end confdefs.h. */
3900#include <stdio.h>
3901int
3902main ()
3903{
3904FILE *f = fopen ("conftest.out", "w");
3905 return ferror (f) || fclose (f) != 0;
3906
3907 ;
3908 return 0;
3909}
3910_ACEOF
3911ac_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; }
3916if test "$cross_compiling" != yes; then
3917 { { ac_try="$ac_link"
3918case "(($ac_try" in
3919 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
3920 *) ac_try_echo=$ac_try;;
3921esac
3922eval 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;;
3932esac
3933eval 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;}
3946as_fn_error $? "cannot run C compiled programs.
3947If you meant to cross compile, use \`--host'.
3948See \`config.log' for more details" "$LINENO" 5 ; }
3949 fi
3950 fi
3951fi
3952{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
3953$as_echo "$cross_compiling" >&6; }
3954
3955rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
3956ac_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; }
3959if test "${ac_cv_objext+set}" = set; then :
3960 $as_echo_n "(cached) " >&6
3961else
3962 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3963/* end confdefs.h. */
3964
3965int
3966main ()
3967{
3968
3969 ;
3970 return 0;
3971}
3972_ACEOF
3973rm -f conftest.o conftest.obj
3974if { { ac_try="$ac_compile"
3975case "(($ac_try" in
3976 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
3977 *) ac_try_echo=$ac_try;;
3978esac
3979eval 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
3992done
3993else
3994 $as_echo "$as_me: failed program was:" >&5
3995sed '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;}
3999as_fn_error $? "cannot compute suffix of object files: cannot compile
4000See \`config.log' for more details" "$LINENO" 5 ; }
4001fi
4002rm -f conftest.$ac_cv_objext conftest.$ac_ext
4003fi
4004{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
4005$as_echo "$ac_cv_objext" >&6; }
4006OBJEXT=$ac_cv_objext
4007ac_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; }
4010if test "${ac_cv_c_compiler_gnu+set}" = set; then :
4011 $as_echo_n "(cached) " >&6
4012else
4013 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
4014/* end confdefs.h. */
4015
4016int
4017main ()
4018{
4019#ifndef __GNUC__
4020 choke me
4021#endif
4022
4023 ;
4024 return 0;
4025}
4026_ACEOF
4027if ac_fn_c_try_compile "$LINENO"; then :
4028 ac_compiler_gnu=yes
4029else
4030 ac_compiler_gnu=no
4031fi
4032rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
4033ac_cv_c_compiler_gnu=$ac_compiler_gnu
4034
4035fi
4036{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
4037$as_echo "$ac_cv_c_compiler_gnu" >&6; }
4038if test $ac_compiler_gnu = yes; then
4039 GCC=yes
4040else
4041 GCC=
4042fi
4043ac_test_CFLAGS=${CFLAGS+set}
4044ac_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; }
4047if test "${ac_cv_prog_cc_g+set}" = set; then :
4048 $as_echo_n "(cached) " >&6
4049else
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
4057int
4058main ()
4059{
4060
4061 ;
4062 return 0;
4063}
4064_ACEOF
4065if ac_fn_c_try_compile "$LINENO"; then :
4066 ac_cv_prog_cc_g=yes
4067else
4068 CFLAGS=""
4069 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
4070/* end confdefs.h. */
4071
4072int
4073main ()
4074{
4075
4076 ;
4077 return 0;
4078}
4079_ACEOF
4080if ac_fn_c_try_compile "$LINENO"; then :
4081
4082else
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
4088int
4089main ()
4090{
4091
4092 ;
4093 return 0;
4094}
4095_ACEOF
4096if ac_fn_c_try_compile "$LINENO"; then :
4097 ac_cv_prog_cc_g=yes
4098fi
4099rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
4100fi
4101rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
4102fi
4103rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
4104 ac_c_werror_flag=$ac_save_c_werror_flag
4105fi
4106{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
4107$as_echo "$ac_cv_prog_cc_g" >&6; }
4108if test "$ac_test_CFLAGS" = set; then
4109 CFLAGS=$ac_save_CFLAGS
4110elif 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
4116else
4117 if test "$GCC" = yes; then
4118 CFLAGS="-O2"
4119 else
4120 CFLAGS=
4121 fi
4122fi
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; }
4125if test "${ac_cv_prog_cc_c89+set}" = set; then :
4126 $as_echo_n "(cached) " >&6
4127else
4128 ac_cv_prog_cc_c89=no
4129ac_save_CC=$CC
4130cat 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. */
4137struct buf { int x; };
4138FILE * (*rcsopen) (struct buf *, struct stat *, int);
4139static char *e (p, i)
4140 char **p;
4141 int i;
4142{
4143 return p[i];
4144}
4145static 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. */
4162int 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'
4167int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
4168
4169int test (int i, double x);
4170struct s1 {int (*f) (int a);};
4171struct s2 {int (*f) (double a);};
4172int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
4173int argc;
4174char **argv;
4175int
4176main ()
4177{
4178return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
4179 ;
4180 return 0;
4181}
4182_ACEOF
4183for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
4184 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
4185do
4186 CC="$ac_save_CC $ac_arg"
4187 if ac_fn_c_try_compile "$LINENO"; then :
4188 ac_cv_prog_cc_c89=$ac_arg
4189fi
4190rm -f core conftest.err conftest.$ac_objext
4191 test "x$ac_cv_prog_cc_c89" != "xno" && break
4192done
4193rm -f conftest.$ac_ext
4194CC=$ac_save_CC
4195
4196fi
4197# AC_CACHE_VAL
4198case "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; } ;;
4209esac
4210if test "x$ac_cv_prog_cc_c89" != xno; then :
4211
4212fi
4213
4214ac_ext=c
4215ac_cpp='$CPP $CPPFLAGS'
4216ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
4217ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
4218ac_compiler_gnu=$ac_cv_c_compiler_gnu
4219
4220depcc="$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; }
4224if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
4225 $as_echo_n "(cached) " >&6
4226else
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
4327else
4328 am_cv_CC_dependencies_compiler_type=none
4329fi
4330
4331fi
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; }
4334CCDEPMODE=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='#'
4341else
4342 am__fastdepCC_TRUE='#'
4343 am__fastdepCC_FALSE=
4344fi
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; }
4349if test "${ac_cv_path_SED+set}" = set; then :
4350 $as_echo_n "(cached) " >&6
4351else
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
4362for as_dir in $PATH
4363do
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
4372case `"$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;;
4396esac
4397
4398 $ac_path_SED_found && break 3
4399 done
4400 done
4401 done
4402IFS=$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
4406else
4407 ac_cv_path_SED=$SED
4408fi
4409
4410fi
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
4416test -z "$SED" && SED=sed
4417Xsed="$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; }
4431if test "${ac_cv_path_GREP+set}" = set; then :
4432 $as_echo_n "(cached) " >&6
4433else
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
4438for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
4439do
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
4448case `"$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;;
4472esac
4473
4474 $ac_path_GREP_found && break 3
4475 done
4476 done
4477 done
4478IFS=$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
4482else
4483 ac_cv_path_GREP=$GREP
4484fi
4485
4486fi
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; }
4494if test "${ac_cv_path_EGREP+set}" = set; then :
4495 $as_echo_n "(cached) " >&6
4496else
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
4504for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
4505do
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
4514case `"$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;;
4538esac
4539
4540 $ac_path_EGREP_found && break 3
4541 done
4542 done
4543 done
4544IFS=$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
4548else
4549 ac_cv_path_EGREP=$EGREP
4550fi
4551
4552 fi
4553fi
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; }
4561if test "${ac_cv_path_FGREP+set}" = set; then :
4562 $as_echo_n "(cached) " >&6
4563else
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
4571for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
4572do
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
4581case `"$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;;
4605esac
4606
4607 $ac_path_FGREP_found && break 3
4608 done
4609 done
4610 done
4611IFS=$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
4615else
4616 ac_cv_path_FGREP=$FGREP
4617fi
4618
4619 fi
4620fi
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
4626test -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.
4647if test "${with_gnu_ld+set}" = set; then :
4648 withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
4649else
4650 with_gnu_ld=no
4651fi
4652
4653ac_prog=ld
4654if 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
4685elif 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; }
4688else
4689 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
4690$as_echo_n "checking for non-GNU ld... " >&6; }
4691fi
4692if test "${lt_cv_path_LD+set}" = set; then :
4693 $as_echo_n "(cached) " >&6
4694else
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"
4716else
4717 lt_cv_path_LD="$LD" # Let the user override the test with a path.
4718fi
4719fi
4720
4721LD="$lt_cv_path_LD"
4722if test -n "$LD"; then
4723 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
4724$as_echo "$LD" >&6; }
4725else
4726 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
4727$as_echo "no" >&6; }
4728fi
4729test -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; }
4732if test "${lt_cv_prog_gnu_ld+set}" = set; then :
4733 $as_echo_n "(cached) " >&6
4734else
4735 # I'd rather use --version here, but apparently some GNU lds only accept -v.
4736case `$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 ;;
4743esac
4744fi
4745{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
4746$as_echo "$lt_cv_prog_gnu_ld" >&6; }
4747with_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; }
4759if test "${lt_cv_path_NM+set}" = set; then :
4760 $as_echo_n "(cached) " >&6
4761else
4762 if test -n "$NM"; then
4763 # Let the user override the test.
4764 lt_cv_path_NM="$NM"
4765else
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}
4804fi
4805fi
4806{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
4807$as_echo "$lt_cv_path_NM" >&6; }
4808if test "$lt_cv_path_NM" != "no"; then
4809 NM="$lt_cv_path_NM"
4810else
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.
4816set 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; }
4819if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
4820 $as_echo_n "(cached) " >&6
4821else
4822 if test -n "$DUMPBIN"; then
4823 ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
4824else
4825as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4826for as_dir in $PATH
4827do
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
4836done
4837 done
4838IFS=$as_save_IFS
4839
4840fi
4841fi
4842DUMPBIN=$ac_cv_prog_DUMPBIN
4843if test -n "$DUMPBIN"; then
4844 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
4845$as_echo "$DUMPBIN" >&6; }
4846else
4847 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
4848$as_echo "no" >&6; }
4849fi
4850
4851
4852 test -n "$DUMPBIN" && break
4853 done
4854fi
4855if test -z "$DUMPBIN"; then
4856 ac_ct_DUMPBIN=$DUMPBIN
4857 for ac_prog in "dumpbin -symbols" "link -dump -symbols"
4858do
4859 # Extract the first word of "$ac_prog", so it can be a program name with args.
4860set 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; }
4863if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then :
4864 $as_echo_n "(cached) " >&6
4865else
4866 if test -n "$ac_ct_DUMPBIN"; then
4867 ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
4868else
4869as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4870for as_dir in $PATH
4871do
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
4880done
4881 done
4882IFS=$as_save_IFS
4883
4884fi
4885fi
4886ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
4887if 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; }
4890else
4891 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
4892$as_echo "no" >&6; }
4893fi
4894
4895
4896 test -n "$ac_ct_DUMPBIN" && break
4897done
4898
4899 if test "x$ac_ct_DUMPBIN" = x; then
4900 DUMPBIN=":"
4901 else
4902 case $cross_compiling:$ac_tool_warned in
4903yes:)
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;}
4906ac_tool_warned=yes ;;
4907esac
4908 DUMPBIN=$ac_ct_DUMPBIN
4909 fi
4910fi
4911
4912
4913 if test "$DUMPBIN" != ":"; then
4914 NM="$DUMPBIN"
4915 fi
4916fi
4917test -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; }
4926if test "${lt_cv_nm_interface+set}" = set; then :
4927 $as_echo_n "(cached) " >&6
4928else
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*
4943fi
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; }
4949LN_S=$as_ln_s
4950if test "$LN_S" = "ln -s"; then
4951 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
4952$as_echo "yes" >&6; }
4953else
4954 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
4955$as_echo "no, using $LN_S" >&6; }
4956fi
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; }
4961if test "${lt_cv_sys_max_cmd_len+set}" = set; then :
4962 $as_echo_n "(cached) " >&6
4963else
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
5076fi
5077
5078if 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; }
5081else
5082 { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
5083$as_echo "none" >&6; }
5084fi
5085max_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
5099xsi_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; }
5112lt_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
5120if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
5121 lt_unset=unset
5122else
5123 lt_unset=false
5124fi
5125
5126
5127
5128
5129
5130# test EBCDIC or ASCII
5131case `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 ;;
5141esac
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; }
5153if test "${lt_cv_ld_reload_flag+set}" = set; then :
5154 $as_echo_n "(cached) " >&6
5155else
5156 lt_cv_ld_reload_flag='-r'
5157fi
5158{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
5159$as_echo "$lt_cv_ld_reload_flag" >&6; }
5160reload_flag=$lt_cv_ld_reload_flag
5161case $reload_flag in
5162"" | " "*) ;;
5163*) reload_flag=" $reload_flag" ;;
5164esac
5165reload_cmds='$LD$reload_flag -o $output$reload_objs'
5166case $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 ;;
5174esac
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184if 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.
5186set 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; }
5189if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
5190 $as_echo_n "(cached) " >&6
5191else
5192 if test -n "$OBJDUMP"; then
5193 ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
5194else
5195as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5196for as_dir in $PATH
5197do
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
5206done
5207 done
5208IFS=$as_save_IFS
5209
5210fi
5211fi
5212OBJDUMP=$ac_cv_prog_OBJDUMP
5213if test -n "$OBJDUMP"; then
5214 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
5215$as_echo "$OBJDUMP" >&6; }
5216else
5217 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5218$as_echo "no" >&6; }
5219fi
5220
5221
5222fi
5223if 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.
5226set 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; }
5229if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
5230 $as_echo_n "(cached) " >&6
5231else
5232 if test -n "$ac_ct_OBJDUMP"; then
5233 ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
5234else
5235as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5236for as_dir in $PATH
5237do
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
5246done
5247 done
5248IFS=$as_save_IFS
5249
5250fi
5251fi
5252ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
5253if 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; }
5256else
5257 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5258$as_echo "no" >&6; }
5259fi
5260
5261 if test "x$ac_ct_OBJDUMP" = x; then
5262 OBJDUMP="false"
5263 else
5264 case $cross_compiling:$ac_tool_warned in
5265yes:)
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;}
5268ac_tool_warned=yes ;;
5269esac
5270 OBJDUMP=$ac_ct_OBJDUMP
5271 fi
5272else
5273 OBJDUMP="$ac_cv_prog_OBJDUMP"
5274fi
5275
5276test -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; }
5285if test "${lt_cv_deplibs_check_method+set}" = set; then :
5286 $as_echo_n "(cached) " >&6
5287else
5288 lt_cv_file_magic_cmd='$MAGIC_CMD'
5289lt_cv_file_magic_test_file=
5290lt_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
5302case $host_os in
5303aix[4-9]*)
5304 lt_cv_deplibs_check_method=pass_all
5305 ;;
5306
5307beos*)
5308 lt_cv_deplibs_check_method=pass_all
5309 ;;
5310
5311bsdi[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
5317cygwin*)
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
5323mingw* | 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
5336cegcc)
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
5342darwin* | rhapsody*)
5343 lt_cv_deplibs_check_method=pass_all
5344 ;;
5345
5346freebsd* | 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
5362gnu*)
5363 lt_cv_deplibs_check_method=pass_all
5364 ;;
5365
5366hpux10.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
5384interix[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
5389irix5* | 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.
5400linux* | k*bsd*-gnu | kopensolaris*-gnu)
5401 lt_cv_deplibs_check_method=pass_all
5402 ;;
5403
5404netbsd* | 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
5412newos6*)
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
5422openbsd*)
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
5430osf3* | osf4* | osf5*)
5431 lt_cv_deplibs_check_method=pass_all
5432 ;;
5433
5434rdos*)
5435 lt_cv_deplibs_check_method=pass_all
5436 ;;
5437
5438solaris*)
5439 lt_cv_deplibs_check_method=pass_all
5440 ;;
5441
5442sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
5443 lt_cv_deplibs_check_method=pass_all
5444 ;;
5445
5446sysv4 | 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
5473tpf*)
5474 lt_cv_deplibs_check_method=pass_all
5475 ;;
5476esac
5477
5478fi
5479{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
5480$as_echo "$lt_cv_deplibs_check_method" >&6; }
5481file_magic_cmd=$lt_cv_file_magic_cmd
5482deplibs_check_method=$lt_cv_deplibs_check_method
5483test -z "$deplibs_check_method" && deplibs_check_method=unknown
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496if 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.
5498set 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; }
5501if test "${ac_cv_prog_AR+set}" = set; then :
5502 $as_echo_n "(cached) " >&6
5503else
5504 if test -n "$AR"; then
5505 ac_cv_prog_AR="$AR" # Let the user override the test.
5506else
5507as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5508for as_dir in $PATH
5509do
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
5518done
5519 done
5520IFS=$as_save_IFS
5521
5522fi
5523fi
5524AR=$ac_cv_prog_AR
5525if test -n "$AR"; then
5526 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
5527$as_echo "$AR" >&6; }
5528else
5529 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5530$as_echo "no" >&6; }
5531fi
5532
5533
5534fi
5535if 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.
5538set 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; }
5541if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
5542 $as_echo_n "(cached) " >&6
5543else
5544 if test -n "$ac_ct_AR"; then
5545 ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
5546else
5547as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5548for as_dir in $PATH
5549do
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
5558done
5559 done
5560IFS=$as_save_IFS
5561
5562fi
5563fi
5564ac_ct_AR=$ac_cv_prog_ac_ct_AR
5565if 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; }
5568else
5569 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5570$as_echo "no" >&6; }
5571fi
5572
5573 if test "x$ac_ct_AR" = x; then
5574 AR="false"
5575 else
5576 case $cross_compiling:$ac_tool_warned in
5577yes:)
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;}
5580ac_tool_warned=yes ;;
5581esac
5582 AR=$ac_ct_AR
5583 fi
5584else
5585 AR="$ac_cv_prog_AR"
5586fi
5587
5588test -z "$AR" && AR=ar
5589test -z "$AR_FLAGS" && AR_FLAGS=cru
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601if 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.
5603set 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; }
5606if test "${ac_cv_prog_STRIP+set}" = set; then :
5607 $as_echo_n "(cached) " >&6
5608else
5609 if test -n "$STRIP"; then
5610 ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
5611else
5612as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5613for as_dir in $PATH
5614do
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
5623done
5624 done
5625IFS=$as_save_IFS
5626
5627fi
5628fi
5629STRIP=$ac_cv_prog_STRIP
5630if test -n "$STRIP"; then
5631 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
5632$as_echo "$STRIP" >&6; }
5633else
5634 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5635$as_echo "no" >&6; }
5636fi
5637
5638
5639fi
5640if 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.
5643set 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; }
5646if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
5647 $as_echo_n "(cached) " >&6
5648else
5649 if test -n "$ac_ct_STRIP"; then
5650 ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
5651else
5652as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5653for as_dir in $PATH
5654do
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
5663done
5664 done
5665IFS=$as_save_IFS
5666
5667fi
5668fi
5669ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
5670if 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; }
5673else
5674 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5675$as_echo "no" >&6; }
5676fi
5677
5678 if test "x$ac_ct_STRIP" = x; then
5679 STRIP=":"
5680 else
5681 case $cross_compiling:$ac_tool_warned in
5682yes:)
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;}
5685ac_tool_warned=yes ;;
5686esac
5687 STRIP=$ac_ct_STRIP
5688 fi
5689else
5690 STRIP="$ac_cv_prog_STRIP"
5691fi
5692
5693test -z "$STRIP" && STRIP=:
5694
5695
5696
5697
5698
5699
5700if 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.
5702set 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; }
5705if test "${ac_cv_prog_RANLIB+set}" = set; then :
5706 $as_echo_n "(cached) " >&6
5707else
5708 if test -n "$RANLIB"; then
5709 ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
5710else
5711as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5712for as_dir in $PATH
5713do
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
5722done
5723 done
5724IFS=$as_save_IFS
5725
5726fi
5727fi
5728RANLIB=$ac_cv_prog_RANLIB
5729if test -n "$RANLIB"; then
5730 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
5731$as_echo "$RANLIB" >&6; }
5732else
5733 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5734$as_echo "no" >&6; }
5735fi
5736
5737
5738fi
5739if 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.
5742set 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; }
5745if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
5746 $as_echo_n "(cached) " >&6
5747else
5748 if test -n "$ac_ct_RANLIB"; then
5749 ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
5750else
5751as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5752for as_dir in $PATH
5753do
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
5762done
5763 done
5764IFS=$as_save_IFS
5765
5766fi
5767fi
5768ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
5769if 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; }
5772else
5773 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5774$as_echo "no" >&6; }
5775fi
5776
5777 if test "x$ac_ct_RANLIB" = x; then
5778 RANLIB=":"
5779 else
5780 case $cross_compiling:$ac_tool_warned in
5781yes:)
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;}
5784ac_tool_warned=yes ;;
5785esac
5786 RANLIB=$ac_ct_RANLIB
5787 fi
5788else
5789 RANLIB="$ac_cv_prog_RANLIB"
5790fi
5791
5792test -z "$RANLIB" && RANLIB=:
5793
5794
5795
5796
5797
5798
5799# Determine commands to create old-style static archives.
5800old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
5801old_postinstall_cmds='chmod 644 $oldlib'
5802old_postuninstall_cmds=
5803
5804if 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"
5814fi
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.
5850LTCC=${LTCC-"$CC"}
5851
5852# If no C compiler flags were specified, use CFLAGS.
5853LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
5854
5855# Allow CC to be a program name with arguments.
5856compiler=$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; }
5862if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then :
5863 $as_echo_n "(cached) " >&6
5864else
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.
5870symcode='[BCDEGRST]'
5871
5872# Regexp to match symbols that can be accessed directly from C.
5873sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
5874
5875# Define system-specific variables.
5876case $host_os in
5877aix*)
5878 symcode='[BCDT]'
5879 ;;
5880cygwin* | mingw* | pw32* | cegcc*)
5881 symcode='[ABCDGISTW]'
5882 ;;
5883hpux*)
5884 if test "$host_cpu" = ia64; then
5885 symcode='[ABCDEGRST]'
5886 fi
5887 ;;
5888irix* | nonstopux*)
5889 symcode='[BCDEGRST]'
5890 ;;
5891osf*)
5892 symcode='[BCDEGQRST]'
5893 ;;
5894solaris*)
5895 symcode='[BDRT]'
5896 ;;
5897sco3.2v5*)
5898 symcode='[DT]'
5899 ;;
5900sysv4.2uw2*)
5901 symcode='[DT]'
5902 ;;
5903sysv5* | sco5v6* | unixware* | OpenUNIX*)
5904 symcode='[ABDT]'
5905 ;;
5906sysv4)
5907 symcode='[DFNSTU]'
5908 ;;
5909esac
5910
5911# If we're using GNU nm, then use its standard symbol codes.
5912case `$NM -V 2>&1` in
5913*GNU* | *'with BFD'*)
5914 symcode='[ABCDGIRSTW]' ;;
5915esac
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.
5920lt_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
5923lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
5924lt_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
5927opt_cr=
5928case $build_os in
5929mingw*)
5930 opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
5931 ;;
5932esac
5933
5934# Try without a prefix underscore, then with it.
5935for 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
5967extern "C" {
5968#endif
5969char nm_test_var;
5970void nm_test_func(void);
5971void nm_test_func(void){}
5972#ifdef __cplusplus
5973}
5974#endif
5975int 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
6002extern "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. */
6012const struct {
6013 const char *name;
6014 void *address;
6015}
6016lt__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
6027static 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
6072done
6073
6074fi
6075
6076if test -z "$lt_cv_sys_global_symbol_pipe"; then
6077 lt_cv_sys_global_symbol_to_cdecl=
6078fi
6079if 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; }
6082else
6083 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
6084$as_echo "ok" >&6; }
6085fi
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.
6110if test "${enable_libtool_lock+set}" = set; then :
6111 enableval=$enable_libtool_lock;
6112fi
6113
6114test "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.
6118case $host in
6119ia64-*-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
6175x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
6176s390*-*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; }
6234if test "${lt_cv_cc_needs_belf+set}" = set; then :
6235 $as_echo_n "(cached) " >&6
6236else
6237 ac_ext=c
6238ac_cpp='$CPP $CPPFLAGS'
6239ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
6240ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
6241ac_compiler_gnu=$ac_cv_c_compiler_gnu
6242
6243 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
6244/* end confdefs.h. */
6245
6246int
6247main ()
6248{
6249
6250 ;
6251 return 0;
6252}
6253_ACEOF
6254if ac_fn_c_try_link "$LINENO"; then :
6255 lt_cv_cc_needs_belf=yes
6256else
6257 lt_cv_cc_needs_belf=no
6258fi
6259rm -f core conftest.err conftest.$ac_objext \
6260 conftest$ac_exeext conftest.$ac_ext
6261 ac_ext=c
6262ac_cpp='$CPP $CPPFLAGS'
6263ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
6264ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
6265ac_compiler_gnu=$ac_cv_c_compiler_gnu
6266
6267fi
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 ;;
6275sparc*-*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 ;;
6298esac
6299
6300need_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.
6307set 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; }
6310if test "${ac_cv_prog_DSYMUTIL+set}" = set; then :
6311 $as_echo_n "(cached) " >&6
6312else
6313 if test -n "$DSYMUTIL"; then
6314 ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
6315else
6316as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6317for as_dir in $PATH
6318do
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
6327done
6328 done
6329IFS=$as_save_IFS
6330
6331fi
6332fi
6333DSYMUTIL=$ac_cv_prog_DSYMUTIL
6334if test -n "$DSYMUTIL"; then
6335 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
6336$as_echo "$DSYMUTIL" >&6; }
6337else
6338 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
6339$as_echo "no" >&6; }
6340fi
6341
6342
6343fi
6344if 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.
6347set 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; }
6350if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then :
6351 $as_echo_n "(cached) " >&6
6352else
6353 if test -n "$ac_ct_DSYMUTIL"; then
6354 ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
6355else
6356as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6357for as_dir in $PATH
6358do
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
6367done
6368 done
6369IFS=$as_save_IFS
6370
6371fi
6372fi
6373ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
6374if 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; }
6377else
6378 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
6379$as_echo "no" >&6; }
6380fi
6381
6382 if test "x$ac_ct_DSYMUTIL" = x; then
6383 DSYMUTIL=":"
6384 else
6385 case $cross_compiling:$ac_tool_warned in
6386yes:)
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;}
6389ac_tool_warned=yes ;;
6390esac
6391 DSYMUTIL=$ac_ct_DSYMUTIL
6392 fi
6393else
6394 DSYMUTIL="$ac_cv_prog_DSYMUTIL"
6395fi
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.
6399set 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; }
6402if test "${ac_cv_prog_NMEDIT+set}" = set; then :
6403 $as_echo_n "(cached) " >&6
6404else
6405 if test -n "$NMEDIT"; then
6406 ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
6407else
6408as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6409for as_dir in $PATH
6410do
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
6419done
6420 done
6421IFS=$as_save_IFS
6422
6423fi
6424fi
6425NMEDIT=$ac_cv_prog_NMEDIT
6426if test -n "$NMEDIT"; then
6427 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
6428$as_echo "$NMEDIT" >&6; }
6429else
6430 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
6431$as_echo "no" >&6; }
6432fi
6433
6434
6435fi
6436if 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.
6439set 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; }
6442if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then :
6443 $as_echo_n "(cached) " >&6
6444else
6445 if test -n "$ac_ct_NMEDIT"; then
6446 ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
6447else
6448as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6449for as_dir in $PATH
6450do
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
6459done
6460 done
6461IFS=$as_save_IFS
6462
6463fi
6464fi
6465ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
6466if 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; }
6469else
6470 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
6471$as_echo "no" >&6; }
6472fi
6473
6474 if test "x$ac_ct_NMEDIT" = x; then
6475 NMEDIT=":"
6476 else
6477 case $cross_compiling:$ac_tool_warned in
6478yes:)
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;}
6481ac_tool_warned=yes ;;
6482esac
6483 NMEDIT=$ac_ct_NMEDIT
6484 fi
6485else
6486 NMEDIT="$ac_cv_prog_NMEDIT"
6487fi
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.
6491set 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; }
6494if test "${ac_cv_prog_LIPO+set}" = set; then :
6495 $as_echo_n "(cached) " >&6
6496else
6497 if test -n "$LIPO"; then
6498 ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
6499else
6500as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6501for as_dir in $PATH
6502do
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
6511done
6512 done
6513IFS=$as_save_IFS
6514
6515fi
6516fi
6517LIPO=$ac_cv_prog_LIPO
6518if test -n "$LIPO"; then
6519 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
6520$as_echo "$LIPO" >&6; }
6521else
6522 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
6523$as_echo "no" >&6; }
6524fi
6525
6526
6527fi
6528if 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.
6531set 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; }
6534if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then :
6535 $as_echo_n "(cached) " >&6
6536else
6537 if test -n "$ac_ct_LIPO"; then
6538 ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
6539else
6540as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6541for as_dir in $PATH
6542do
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
6551done
6552 done
6553IFS=$as_save_IFS
6554
6555fi
6556fi
6557ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
6558if 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; }
6561else
6562 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
6563$as_echo "no" >&6; }
6564fi
6565
6566 if test "x$ac_ct_LIPO" = x; then
6567 LIPO=":"
6568 else
6569 case $cross_compiling:$ac_tool_warned in
6570yes:)
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;}
6573ac_tool_warned=yes ;;
6574esac
6575 LIPO=$ac_ct_LIPO
6576 fi
6577else
6578 LIPO="$ac_cv_prog_LIPO"
6579fi
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.
6583set 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; }
6586if test "${ac_cv_prog_OTOOL+set}" = set; then :
6587 $as_echo_n "(cached) " >&6
6588else
6589 if test -n "$OTOOL"; then
6590 ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
6591else
6592as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6593for as_dir in $PATH
6594do
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
6603done
6604 done
6605IFS=$as_save_IFS
6606
6607fi
6608fi
6609OTOOL=$ac_cv_prog_OTOOL
6610if test -n "$OTOOL"; then
6611 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
6612$as_echo "$OTOOL" >&6; }
6613else
6614 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
6615$as_echo "no" >&6; }
6616fi
6617
6618
6619fi
6620if 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.
6623set 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; }
6626if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then :
6627 $as_echo_n "(cached) " >&6
6628else
6629 if test -n "$ac_ct_OTOOL"; then
6630 ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
6631else
6632as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6633for as_dir in $PATH
6634do
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
6643done
6644 done
6645IFS=$as_save_IFS
6646
6647fi
6648fi
6649ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
6650if 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; }
6653else
6654 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
6655$as_echo "no" >&6; }
6656fi
6657
6658 if test "x$ac_ct_OTOOL" = x; then
6659 OTOOL=":"
6660 else
6661 case $cross_compiling:$ac_tool_warned in
6662yes:)
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;}
6665ac_tool_warned=yes ;;
6666esac
6667 OTOOL=$ac_ct_OTOOL
6668 fi
6669else
6670 OTOOL="$ac_cv_prog_OTOOL"
6671fi
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.
6675set 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; }
6678if test "${ac_cv_prog_OTOOL64+set}" = set; then :
6679 $as_echo_n "(cached) " >&6
6680else
6681 if test -n "$OTOOL64"; then
6682 ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
6683else
6684as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6685for as_dir in $PATH
6686do
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
6695done
6696 done
6697IFS=$as_save_IFS
6698
6699fi
6700fi
6701OTOOL64=$ac_cv_prog_OTOOL64
6702if test -n "$OTOOL64"; then
6703 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
6704$as_echo "$OTOOL64" >&6; }
6705else
6706 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
6707$as_echo "no" >&6; }
6708fi
6709
6710
6711fi
6712if 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.
6715set 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; }
6718if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then :
6719 $as_echo_n "(cached) " >&6
6720else
6721 if test -n "$ac_ct_OTOOL64"; then
6722 ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
6723else
6724as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
6725for as_dir in $PATH
6726do
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
6735done
6736 done
6737IFS=$as_save_IFS
6738
6739fi
6740fi
6741ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
6742if 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; }
6745else
6746 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
6747$as_echo "no" >&6; }
6748fi
6749
6750 if test "x$ac_ct_OTOOL64" = x; then
6751 OTOOL64=":"
6752 else
6753 case $cross_compiling:$ac_tool_warned in
6754yes:)
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;}
6757ac_tool_warned=yes ;;
6758esac
6759 OTOOL64=$ac_ct_OTOOL64
6760 fi
6761else
6762 OTOOL64="$ac_cv_prog_OTOOL64"
6763fi
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; }
6793if test "${lt_cv_apple_cc_single_mod+set}" = set; then :
6794 $as_echo_n "(cached) " >&6
6795else
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
6817fi
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; }
6822if test "${lt_cv_ld_exported_symbols_list+set}" = set; then :
6823 $as_echo_n "(cached) " >&6
6824else
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
6832int
6833main ()
6834{
6835
6836 ;
6837 return 0;
6838}
6839_ACEOF
6840if ac_fn_c_try_link "$LINENO"; then :
6841 lt_cv_ld_exported_symbols_list=yes
6842else
6843 lt_cv_ld_exported_symbols_list=no
6844fi
6845rm -f core conftest.err conftest.$ac_objext \
6846 conftest$ac_exeext conftest.$ac_ext
6847 LDFLAGS="$save_LDFLAGS"
6848
6849fi
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
6887ac_ext=c
6888ac_cpp='$CPP $CPPFLAGS'
6889ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
6890ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
6891ac_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.
6895if test -n "$CPP" && test -d "$CPP"; then
6896 CPP=
6897fi
6898if test -z "$CPP"; then
6899 if test "${ac_cv_prog_CPP+set}" = set; then :
6900 $as_echo_n "(cached) " >&6
6901else
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
6906for ac_c_preproc_warn_flag in '' yes
6907do
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
6923if ac_fn_c_try_cpp "$LINENO"; then :
6924
6925else
6926 # Broken: fails on valid input.
6927continue
6928fi
6929rm -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
6937if ac_fn_c_try_cpp "$LINENO"; then :
6938 # Broken: success on invalid input.
6939continue
6940else
6941 # Passes both tests.
6942ac_preproc_ok=:
6943break
6944fi
6945rm -f conftest.err conftest.i conftest.$ac_ext
6946
6947done
6948# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
6949rm -f conftest.i conftest.err conftest.$ac_ext
6950if $ac_preproc_ok; then :
6951 break
6952fi
6953
6954 done
6955 ac_cv_prog_CPP=$CPP
6956
6957fi
6958 CPP=$ac_cv_prog_CPP
6959else
6960 ac_cv_prog_CPP=$CPP
6961fi
6962{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
6963$as_echo "$CPP" >&6; }
6964ac_preproc_ok=false
6965for ac_c_preproc_warn_flag in '' yes
6966do
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
6982if ac_fn_c_try_cpp "$LINENO"; then :
6983
6984else
6985 # Broken: fails on valid input.
6986continue
6987fi
6988rm -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
6996if ac_fn_c_try_cpp "$LINENO"; then :
6997 # Broken: success on invalid input.
6998continue
6999else
7000 # Passes both tests.
7001ac_preproc_ok=:
7002break
7003fi
7004rm -f conftest.err conftest.i conftest.$ac_ext
7005
7006done
7007# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
7008rm -f conftest.i conftest.err conftest.$ac_ext
7009if $ac_preproc_ok; then :
7010
7011else
7012 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
7013$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
7014as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
7015See \`config.log' for more details" "$LINENO" 5 ; }
7016fi
7017
7018ac_ext=c
7019ac_cpp='$CPP $CPPFLAGS'
7020ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
7021ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
7022ac_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; }
7027if test "${ac_cv_header_stdc+set}" = set; then :
7028 $as_echo_n "(cached) " >&6
7029else
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
7037int
7038main ()
7039{
7040
7041 ;
7042 return 0;
7043}
7044_ACEOF
7045if ac_fn_c_try_compile "$LINENO"; then :
7046 ac_cv_header_stdc=yes
7047else
7048 ac_cv_header_stdc=no
7049fi
7050rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
7051
7052if 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
7059if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
7060 $EGREP "memchr" >/dev/null 2>&1; then :
7061
7062else
7063 ac_cv_header_stdc=no
7064fi
7065rm -f conftest*
7066
7067fi
7068
7069if 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
7076if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
7077 $EGREP "free" >/dev/null 2>&1; then :
7078
7079else
7080 ac_cv_header_stdc=no
7081fi
7082rm -f conftest*
7083
7084fi
7085
7086if 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 :
7090else
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)))
7107int
7108main ()
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
7118if ac_fn_c_try_run "$LINENO"; then :
7119
7120else
7121 ac_cv_header_stdc=no
7122fi
7123rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
7124 conftest.$ac_objext conftest.beam conftest.$ac_ext
7125fi
7126
7127fi
7128fi
7129{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
7130$as_echo "$ac_cv_header_stdc" >&6; }
7131if test $ac_cv_header_stdc = yes; then
7132
7133$as_echo "#define STDC_HEADERS 1" >>confdefs.h
7134
7135fi
7136
7137# On IRIX 5.3, sys/types and inttypes.h are conflicting.
7138for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
7139 inttypes.h stdint.h unistd.h
7140do :
7141 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
7142ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
7143"
7144if 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
7149fi
7150
7151done
7152
7153
7154for ac_header in dlfcn.h
7155do :
7156 ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
7157"
7158if test "x$ac_cv_header_dlfcn_h" = x""yes; then :
7159 cat >>confdefs.h <<_ACEOF
7160#define HAVE_DLFCN_H 1
7161_ACEOF
7162
7163fi
7164
7165done
7166
7167
7168
7169# Set options
7170
7171
7172
7173 enable_dlopen=no
7174
7175
7176
7177 # Check whether --enable-shared was given.
7178if 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
7196else
7197 enable_shared=yes
7198fi
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208 # Check whether --enable-static was given.
7209if 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
7227else
7228 enable_static=yes
7229fi
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240# Check whether --with-pic was given.
7241if test "${with_pic+set}" = set; then :
7242 withval=$with_pic; pic_mode="$withval"
7243else
7244 pic_mode=default
7245fi
7246
7247
7248test -z "$pic_mode" && pic_mode=default
7249
7250
7251
7252
7253
7254
7255
7256 # Check whether --enable-fast-install was given.
7257if 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
7275else
7276 enable_fast_install=yes
7277fi
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289# This can be used to rebuild libtool when needed
7290LIBTOOL_DEPS="$ltmain"
7291
7292# Always use our own libtool.
7293LIBTOOL='$(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
7319test -z "$LN_S" && LN_S="ln -s"
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334if test -n "${ZSH_VERSION+set}" ; then
7335 setopt NO_GLOB_SUBST
7336fi
7337
7338{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
7339$as_echo_n "checking for objdir... " >&6; }
7340if test "${lt_cv_objdir+set}" = set; then :
7341 $as_echo_n "(cached) " >&6
7342else
7343 rm -f .libs 2>/dev/null
7344mkdir .libs 2>/dev/null
7345if test -d .libs; then
7346 lt_cv_objdir=.libs
7347else
7348 # MS-DOS does not allow filenames that begin with a dot.
7349 lt_cv_objdir=_libs
7350fi
7351rmdir .libs 2>/dev/null
7352fi
7353{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
7354$as_echo "$lt_cv_objdir" >&6; }
7355objdir=$lt_cv_objdir
7356
7357
7358
7359
7360
7361cat >>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
7381case $host_os in
7382aix3*)
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 ;;
7391esac
7392
7393# Sed substitution that helps us do robust quoting. It backslashifies
7394# metacharacters that are still active within double-quoted strings.
7395sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
7396
7397# Same as above, but do not quote variable references.
7398double_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.
7402delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
7403
7404# Sed substitution to delay expansion of an escaped single quote.
7405delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
7406
7407# Sed substitution to avoid accidental globbing in evaled expressions
7408no_glob_subst='s/\*/\\\*/g'
7409
7410# Global variables:
7411ofile=libtool
7412can_build_shared=yes
7413
7414# All known linkers require a `.a' archive for static linking (except MSVC,
7415# which needs '.lib').
7416libext=a
7417
7418with_gnu_ld="$lt_cv_prog_gnu_ld"
7419
7420old_CC="$CC"
7421old_CFLAGS="$CFLAGS"
7422
7423# Set sane defaults for various variables
7424test -z "$CC" && CC=cc
7425test -z "$LTCC" && LTCC=$CC
7426test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
7427test -z "$LD" && LD=ld
7428test -z "$ac_objext" && ac_objext=o
7429
7430for 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
7437done
7438cc_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
7442test -z "$MAGIC_CMD" && MAGIC_CMD=file
7443case $deplibs_check_method in
7444file_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; }
7448if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
7449 $as_echo_n "(cached) " >&6
7450else
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 ;;
7494esac
7495fi
7496
7497MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
7498if test -n "$MAGIC_CMD"; then
7499 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
7500$as_echo "$MAGIC_CMD" >&6; }
7501else
7502 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
7503$as_echo "no" >&6; }
7504fi
7505
7506
7507
7508
7509
7510if 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; }
7514if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
7515 $as_echo_n "(cached) " >&6
7516else
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 ;;
7560esac
7561fi
7562
7563MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
7564if test -n "$MAGIC_CMD"; then
7565 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
7566$as_echo "$MAGIC_CMD" >&6; }
7567else
7568 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
7569$as_echo "no" >&6; }
7570fi
7571
7572
7573 else
7574 MAGIC_CMD=:
7575 fi
7576fi
7577
7578 fi
7579 ;;
7580esac
7581
7582# Use C for the default configuration in the libtool script
7583
7584lt_save_CC="$CC"
7585ac_ext=c
7586ac_cpp='$CPP $CPPFLAGS'
7587ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
7588ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
7589ac_compiler_gnu=$ac_cv_c_compiler_gnu
7590
7591
7592# Source file extension for C test sources.
7593ac_ext=c
7594
7595# Object file extension for compiled C test sources.
7596objext=o
7597objext=$objext
7598
7599# Code to be used in simple compile tests
7600lt_simple_compile_test_code="int some_variable = 0;"
7601
7602# Code to be used in simple link tests
7603lt_simple_link_test_code='int main(){return(0);}'
7604
7605
7606
7607
7608
7609
7610
7611# If no C compiler was specified, use CC.
7612LTCC=${LTCC-"$CC"}
7613
7614# If no C compiler flags were specified, use CFLAGS.
7615LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
7616
7617# Allow CC to be a program name with arguments.
7618compiler=$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.
7622compiler_DEFAULT=$CC
7623
7624# save warnings/boilerplate of simple test code
7625ac_outfile=conftest.$ac_objext
7626echo "$lt_simple_compile_test_code" >conftest.$ac_ext
7627eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
7628_lt_compiler_boilerplate=`cat conftest.err`
7629$RM conftest*
7630
7631ac_outfile=conftest.$ac_objext
7632echo "$lt_simple_link_test_code" >conftest.$ac_ext
7633eval "$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...
7642if test -n "$compiler"; then
7643
7644lt_prog_compiler_no_builtin_flag=
7645
7646if 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; }
7651if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then :
7652 $as_echo_n "(cached) " >&6
7653else
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
7683fi
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
7687if 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"
7689else
7690 :
7691fi
7692
7693fi
7694
7695
7696
7697
7698
7699
7700 lt_prog_compiler_wl=
7701lt_prog_compiler_pic=
7702lt_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
7967case $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 ;;
7975esac
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#
7987if 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; }
7990if test "${lt_cv_prog_compiler_pic_works+set}" = set; then :
7991 $as_echo_n "(cached) " >&6
7992else
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
8022fi
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
8026if 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
8031else
8032 lt_prog_compiler_pic=
8033 lt_prog_compiler_can_build_shared=no
8034fi
8035
8036fi
8037
8038
8039
8040
8041
8042
8043#
8044# Check to make sure the static flag actually works.
8045#
8046wl=$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; }
8049if test "${lt_cv_prog_compiler_static_works+set}" = set; then :
8050 $as_echo_n "(cached) " >&6
8051else
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
8074fi
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
8078if test x"$lt_cv_prog_compiler_static_works" = xyes; then
8079 :
8080else
8081 lt_prog_compiler_static=
8082fi
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; }
8092if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
8093 $as_echo_n "(cached) " >&6
8094else
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
8136fi
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; }
8147if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
8148 $as_echo_n "(cached) " >&6
8149else
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
8191fi
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
8198hard_links="nottested"
8199if 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
8216else
8217 need_locks=no
8218fi
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
8675int
8676main ()
8677{
8678
8679 ;
8680 return 0;
8681}
8682_ACEOF
8683if ac_fn_c_try_link "$LINENO"; then :
8684
8685lt_aix_libpath_sed='
8686 /Import File Strings/,/^$/ {
8687 /^0/ {
8688 s/^0 *\(.*\)$/\1/
8689 p
8690 }
8691 }'
8692aix_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.
8694if test -z "$aix_libpath"; then
8695 aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
8696fi
8697fi
8698rm -f core conftest.err conftest.$ac_objext \
8699 conftest$ac_exeext conftest.$ac_ext
8700if 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
8715int
8716main ()
8717{
8718
8719 ;
8720 return 0;
8721}
8722_ACEOF
8723if ac_fn_c_try_link "$LINENO"; then :
8724
8725lt_aix_libpath_sed='
8726 /Import File Strings/,/^$/ {
8727 /^0/ {
8728 s/^0 *\(.*\)$/\1/
8729 p
8730 }
8731 }'
8732aix_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.
8734if test -z "$aix_libpath"; then
8735 aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
8736fi
8737fi
8738rm -f core conftest.err conftest.$ac_objext \
8739 conftest$ac_exeext conftest.$ac_ext
8740if 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. */
8953int foo(void) {}
8954_ACEOF
8955if 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
8958fi
8959rm -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; }
9218test "$ld_shlibs" = no && can_build_shared=no
9219
9220with_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#
9239case "x$archive_cmds_need_lc" in
9240x|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 ;;
9297esac
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
9458if 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 '
9486BEGIN {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`
9506else
9507 sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
9508fi
9509library_names_spec=
9510libname_spec='lib$name'
9511soname_spec=
9512shrext_cmds=".so"
9513postinstall_cmds=
9514postuninstall_cmds=
9515finish_cmds=
9516finish_eval=
9517shlibpath_var=
9518shlibpath_overrides_runpath=unknown
9519version_type=none
9520dynamic_linker="$host_os ld.so"
9521sys_lib_dlsearch_path_spec="/lib /usr/lib"
9522need_lib_prefix=unknown
9523hardcode_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
9527need_version=unknown
9528
9529case $host_os in
9530aix3*)
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
9539aix[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
9583amigaos*)
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
9598beos*)
9599 library_names_spec='${libname}${shared_ext}'
9600 dynamic_linker="$host_os ld.so"
9601 shlibpath_var=LIBRARY_PATH
9602 ;;
9603
9604bsdi[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
9618cygwin* | 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
9680darwin* | 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
9695dgux*)
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
9704freebsd1*)
9705 dynamic_linker=no
9706 ;;
9707
9708freebsd* | 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
9752gnu*)
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
9762hpux9* | 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
9808interix[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
9820irix5* | 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.
9858linux*oldld* | linux*aout* | linux*coff*)
9859 dynamic_linker=no
9860 ;;
9861
9862# This must be Linux ELF.
9863linux* | 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
9880int
9881main ()
9882{
9883
9884 ;
9885 return 0;
9886}
9887_ACEOF
9888if 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
9891fi
9892fi
9893rm -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
9918netbsdelf*-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
9930netbsd*)
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
9948newsos6)
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
9967openbsd*)
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
9993os2*)
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
10002osf3* | 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
10013rdos*)
10014 dynamic_linker=no
10015 ;;
10016
10017solaris*)
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
10030sunos4*)
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
10042sysv4 | 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
10065sysv4*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
10074sysv5* | 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
10096tpf*)
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
10107uts4*)
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 ;;
10117esac
10118{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
10119$as_echo "$dynamic_linker" >&6; }
10120test "$dynamic_linker" = no && can_build_shared=no
10121
10122variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
10123if test "$GCC" = yes; then
10124 variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
10125fi
10126
10127if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
10128 sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
10129fi
10130if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
10131 sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
10132fi
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; }
10222hardcode_action=
10223if 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
10240else
10241 # We cannot hardcode anything, or else we can only hardcode existing
10242 # directories.
10243 hardcode_action=unsupported
10244fi
10245{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
10246$as_echo "$hardcode_action" >&6; }
10247
10248if test "$hardcode_action" = relink ||
10249 test "$inherit_rpath" = yes; then
10250 # Fast installation is not supported
10251 enable_fast_install=no
10252elif test "$shlibpath_overrides_runpath" = yes ||
10253 test "$enable_shared" = no; then
10254 # Fast installation is not necessary
10255 enable_fast_install=needless
10256fi
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
10267else
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; }
10292if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
10293 $as_echo_n "(cached) " >&6
10294else
10295 ac_check_lib_save_LIBS=$LIBS
10296LIBS="-ldl $LIBS"
10297cat 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
10304extern "C"
10305#endif
10306char dlopen ();
10307int
10308main ()
10309{
10310return dlopen ();
10311 ;
10312 return 0;
10313}
10314_ACEOF
10315if ac_fn_c_try_link "$LINENO"; then :
10316 ac_cv_lib_dl_dlopen=yes
10317else
10318 ac_cv_lib_dl_dlopen=no
10319fi
10320rm -f core conftest.err conftest.$ac_objext \
10321 conftest$ac_exeext conftest.$ac_ext
10322LIBS=$ac_check_lib_save_LIBS
10323fi
10324{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
10325$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
10326if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
10327 lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
10328else
10329
10330 lt_cv_dlopen="dyld"
10331 lt_cv_dlopen_libs=
10332 lt_cv_dlopen_self=yes
10333
10334fi
10335
10336 ;;
10337
10338 *)
10339 ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
10340if test "x$ac_cv_func_shl_load" = x""yes; then :
10341 lt_cv_dlopen="shl_load"
10342else
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; }
10345if test "${ac_cv_lib_dld_shl_load+set}" = set; then :
10346 $as_echo_n "(cached) " >&6
10347else
10348 ac_check_lib_save_LIBS=$LIBS
10349LIBS="-ldld $LIBS"
10350cat 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
10357extern "C"
10358#endif
10359char shl_load ();
10360int
10361main ()
10362{
10363return shl_load ();
10364 ;
10365 return 0;
10366}
10367_ACEOF
10368if ac_fn_c_try_link "$LINENO"; then :
10369 ac_cv_lib_dld_shl_load=yes
10370else
10371 ac_cv_lib_dld_shl_load=no
10372fi
10373rm -f core conftest.err conftest.$ac_objext \
10374 conftest$ac_exeext conftest.$ac_ext
10375LIBS=$ac_check_lib_save_LIBS
10376fi
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; }
10379if test "x$ac_cv_lib_dld_shl_load" = x""yes; then :
10380 lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
10381else
10382 ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
10383if test "x$ac_cv_func_dlopen" = x""yes; then :
10384 lt_cv_dlopen="dlopen"
10385else
10386 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
10387$as_echo_n "checking for dlopen in -ldl... " >&6; }
10388if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
10389 $as_echo_n "(cached) " >&6
10390else
10391 ac_check_lib_save_LIBS=$LIBS
10392LIBS="-ldl $LIBS"
10393cat 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
10400extern "C"
10401#endif
10402char dlopen ();
10403int
10404main ()
10405{
10406return dlopen ();
10407 ;
10408 return 0;
10409}
10410_ACEOF
10411if ac_fn_c_try_link "$LINENO"; then :
10412 ac_cv_lib_dl_dlopen=yes
10413else
10414 ac_cv_lib_dl_dlopen=no
10415fi
10416rm -f core conftest.err conftest.$ac_objext \
10417 conftest$ac_exeext conftest.$ac_ext
10418LIBS=$ac_check_lib_save_LIBS
10419fi
10420{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
10421$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
10422if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
10423 lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
10424else
10425 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
10426$as_echo_n "checking for dlopen in -lsvld... " >&6; }
10427if test "${ac_cv_lib_svld_dlopen+set}" = set; then :
10428 $as_echo_n "(cached) " >&6
10429else
10430 ac_check_lib_save_LIBS=$LIBS
10431LIBS="-lsvld $LIBS"
10432cat 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
10439extern "C"
10440#endif
10441char dlopen ();
10442int
10443main ()
10444{
10445return dlopen ();
10446 ;
10447 return 0;
10448}
10449_ACEOF
10450if ac_fn_c_try_link "$LINENO"; then :
10451 ac_cv_lib_svld_dlopen=yes
10452else
10453 ac_cv_lib_svld_dlopen=no
10454fi
10455rm -f core conftest.err conftest.$ac_objext \
10456 conftest$ac_exeext conftest.$ac_ext
10457LIBS=$ac_check_lib_save_LIBS
10458fi
10459{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
10460$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
10461if test "x$ac_cv_lib_svld_dlopen" = x""yes; then :
10462 lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
10463else
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; }
10466if test "${ac_cv_lib_dld_dld_link+set}" = set; then :
10467 $as_echo_n "(cached) " >&6
10468else
10469 ac_check_lib_save_LIBS=$LIBS
10470LIBS="-ldld $LIBS"
10471cat 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
10478extern "C"
10479#endif
10480char dld_link ();
10481int
10482main ()
10483{
10484return dld_link ();
10485 ;
10486 return 0;
10487}
10488_ACEOF
10489if ac_fn_c_try_link "$LINENO"; then :
10490 ac_cv_lib_dld_dld_link=yes
10491else
10492 ac_cv_lib_dld_dld_link=no
10493fi
10494rm -f core conftest.err conftest.$ac_objext \
10495 conftest$ac_exeext conftest.$ac_ext
10496LIBS=$ac_check_lib_save_LIBS
10497fi
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; }
10500if test "x$ac_cv_lib_dld_dld_link" = x""yes; then :
10501 lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
10502fi
10503
10504
10505fi
10506
10507
10508fi
10509
10510
10511fi
10512
10513
10514fi
10515
10516
10517fi
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; }
10541if test "${lt_cv_dlopen_self+set}" = set; then :
10542 $as_echo_n "(cached) " >&6
10543else
10544 if test "$cross_compiling" = yes; then :
10545 lt_cv_dlopen_self=cross
10546else
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
10591void fnord() { int i=42;}
10592int 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
10625fi
10626rm -fr conftest*
10627
10628
10629fi
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; }
10637if test "${lt_cv_dlopen_self_static+set}" = set; then :
10638 $as_echo_n "(cached) " >&6
10639else
10640 if test "$cross_compiling" = yes; then :
10641 lt_cv_dlopen_self_static=cross
10642else
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
10687void fnord() { int i=42;}
10688int 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
10721fi
10722rm -fr conftest*
10723
10724
10725fi
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
10745fi
10746
10747
10748
10749
10750
10751
10752
10753
10754
10755
10756
10757
10758
10759
10760
10761
10762
10763striplib=
10764old_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; }
10767if 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; }
10772else
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
10791fi
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
10844fi
10845ac_ext=c
10846ac_cpp='$CPP $CPPFLAGS'
10847ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
10848ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
10849ac_compiler_gnu=$ac_cv_c_compiler_gnu
10850
10851CC="$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
10879cat >>confdefs.h <<_ACEOF
10880#define VMAJ 1
10881_ACEOF
10882
10883
10884cat >>confdefs.h <<_ACEOF
10885#define VMIN 6
10886_ACEOF
10887
10888
10889cat >>confdefs.h <<_ACEOF
10890#define VMIC 0
10891_ACEOF
10892
10893
10894cat >>confdefs.h <<_ACEOF
10895#define VREV 0
10896_ACEOF
10897
10898version_info="7:0:6"
10899release_info=""
10900
10901
10902##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
10903##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
10904VMAJ=1
10905
10906
10907
10908### Needed information
10909
10910
10911
10912
10913### Default options with respect to host
10914
10915want_gnutls="auto"
10916want_openssl="auto"
10917want_cipher="yes"
10918want_signature="yes"
10919
10920requirement_eet=""
10921
10922
10923### Additional options to configure
10924
10925# Amalgamation
10926
10927# Check whether --enable-amalgamation was given.
10928if 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
10935else
10936 do_amalgamation="no"
10937
10938fi
10939
10940 if test "x${do_amalgamation}" = "xyes"; then
10941 EET_AMALGAMATION_TRUE=
10942 EET_AMALGAMATION_FALSE='#'
10943else
10944 EET_AMALGAMATION_TRUE='#'
10945 EET_AMALGAMATION_FALSE=
10946fi
10947
10948
10949
10950
10951
10952have_eet="yes"
10953
10954
10955# Check whether --enable-eet was given.
10956if 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
10964fi
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
10972if test "x$have_eet" = "xyes"; then
10973 EET_PRG=eet${EXEEXT}
10974fi
10975
10976
10977
10978 if test "x$have_eet" = "xyes"; then
10979 BUILD_EET_TRUE=
10980 BUILD_EET_FALSE='#'
10981else
10982 BUILD_EET_TRUE='#'
10983 BUILD_EET_FALSE=
10984fi
10985
10986
10987if test "x$have_eet" = "xyes"; then :
10988
10989fi
10990
10991
10992
10993# Old eet file format support
10994
10995old_eet_file_format="yes"
10996# Check whether --enable-old-eet-file-format was given.
10997if test "${enable_old_eet_file_format+set}" = set; then :
10998 enableval=$enable_old_eet_file_format; old_eet_file_format=$enableval
10999
11000fi
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
11007if test "x${old_eet_file_format}" = "xyes" ; then
11008
11009$as_echo "#define EET_OLD_EET_FILE_FORMAT 1" >>confdefs.h
11010
11011else
11012
11013$as_echo "#define EET_OLD_EET_FILE_FORMAT 0" >>confdefs.h
11014
11015fi
11016
11017# Openssl support
11018
11019# Check whether --enable-openssl was given.
11020if test "${enable_openssl+set}" = set; then :
11021 enableval=$enable_openssl; want_openssl=$enableval
11022
11023fi
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.
11033if test "${enable_cipher+set}" = set; then :
11034 enableval=$enable_cipher; want_cipher=$enableval
11035
11036fi
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.
11044if test "${enable_signature+set}" = set; then :
11045 enableval=$enable_signature; want_signature=$enableval
11046
11047fi
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.
11055prefer_assert="no"
11056# Check whether --enable-assert was given.
11057if test "${enable_assert+set}" = set; then :
11058 enableval=$enable_assert; prefer_assert=$enableval
11059
11060fi
11061
11062
11063# Examples
11064
11065# Check whether --enable-install-examples was given.
11066if 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
11074else
11075 install_examples="yes"
11076fi
11077
11078 if test "x${install_examples}" = "xyes"; then
11079 INSTALL_EXAMPLES_TRUE=
11080 INSTALL_EXAMPLES_FALSE='#'
11081else
11082 INSTALL_EXAMPLES_TRUE='#'
11083 INSTALL_EXAMPLES_FALSE=
11084fi
11085
11086
11087# Check whether --enable-build-examples was given.
11088if 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
11096else
11097 build_examples="no"
11098fi
11099
11100 if test "x${build_examples}" = "xyes"; then
11101 BUILD_EXAMPLES_TRUE=
11102 BUILD_EXAMPLES_FALSE='#'
11103else
11104 BUILD_EXAMPLES_TRUE='#'
11105 BUILD_EXAMPLES_FALSE=
11106fi
11107
11108
11109# Unit tests, coverage and benchmarking
11110
11111
11112
11113
11114
11115
11116
11117if 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.
11120set 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; }
11123if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
11124 $as_echo_n "(cached) " >&6
11125else
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
11132for as_dir in $PATH
11133do
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
11142done
11143 done
11144IFS=$as_save_IFS
11145
11146 ;;
11147esac
11148fi
11149PKG_CONFIG=$ac_cv_path_PKG_CONFIG
11150if test -n "$PKG_CONFIG"; then
11151 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
11152$as_echo "$PKG_CONFIG" >&6; }
11153else
11154 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11155$as_echo "no" >&6; }
11156fi
11157
11158
11159fi
11160if 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.
11163set 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; }
11166if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
11167 $as_echo_n "(cached) " >&6
11168else
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
11175for as_dir in $PATH
11176do
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
11185done
11186 done
11187IFS=$as_save_IFS
11188
11189 ;;
11190esac
11191fi
11192ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
11193if 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; }
11196else
11197 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11198$as_echo "no" >&6; }
11199fi
11200
11201 if test "x$ac_pt_PKG_CONFIG" = x; then
11202 PKG_CONFIG=""
11203 else
11204 case $cross_compiling:$ac_tool_warned in
11205yes:)
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;}
11208ac_tool_warned=yes ;;
11209esac
11210 PKG_CONFIG=$ac_pt_PKG_CONFIG
11211 fi
11212else
11213 PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
11214fi
11215
11216fi
11217if 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
11229fi
11230
11231
11232
11233# Check whether --enable-tests was given.
11234if 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
11242else
11243 _efl_enable_tests="no"
11244fi
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
11254if test "x${_efl_enable_tests}" = "xyes" ; then
11255
11256pkg_failed=no
11257{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CHECK" >&5
11258$as_echo_n "checking for CHECK... " >&6; }
11259
11260if 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`
11270else
11271 pkg_failed=yes
11272fi
11273 else
11274 pkg_failed=untried
11275fi
11276if 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`
11286else
11287 pkg_failed=yes
11288fi
11289 else
11290 pkg_failed=untried
11291fi
11292
11293
11294
11295if test $pkg_failed = yes; then
11296 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11297$as_echo "no" >&6; }
11298
11299if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
11300 _pkg_short_errors_supported=yes
11301else
11302 _pkg_short_errors_supported=no
11303fi
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"
11313elif 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"
11317else
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"
11323fi
11324fi
11325
11326 if test "x${_efl_enable_tests}" = "xyes"; then
11327 EFL_ENABLE_TESTS_TRUE=
11328 EFL_ENABLE_TESTS_FALSE='#'
11329else
11330 EFL_ENABLE_TESTS_TRUE='#'
11331 EFL_ENABLE_TESTS_FALSE=
11332fi
11333
11334
11335if test "x$_efl_enable_tests" = "xyes"; then :
11336 enable_tests="yes"
11337else
11338 enable_tests="no"
11339fi
11340
11341
11342
11343
11344# Check whether --enable-coverage was given.
11345if 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
11353else
11354 _efl_enable_coverage="no"
11355fi
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
11364if 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"
11370fi
11371
11372if test "x$_efl_enable_coverage" = "xyes" ; then
11373 # Extract the first word of "lcov", so it can be a program name with args.
11374set 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; }
11377if test "${ac_cv_prog_have_lcov+set}" = set; then :
11378 $as_echo_n "(cached) " >&6
11379else
11380 if test -n "$have_lcov"; then
11381 ac_cv_prog_have_lcov="$have_lcov" # Let the user override the test.
11382else
11383as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
11384for as_dir in $PATH
11385do
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
11394done
11395 done
11396IFS=$as_save_IFS
11397
11398 test -z "$ac_cv_prog_have_lcov" && ac_cv_prog_have_lcov="no"
11399fi
11400fi
11401have_lcov=$ac_cv_prog_have_lcov
11402if test -n "$have_lcov"; then
11403 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_lcov" >&5
11404$as_echo "$have_lcov" >&6; }
11405else
11406 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11407$as_echo "no" >&6; }
11408fi
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
11421fi
11422
11423
11424
11425
11426 if test "x${_efl_enable_coverage}" = "xyes"; then
11427 EFL_ENABLE_COVERAGE_TRUE=
11428 EFL_ENABLE_COVERAGE_FALSE='#'
11429else
11430 EFL_ENABLE_COVERAGE_TRUE='#'
11431 EFL_ENABLE_COVERAGE_FALSE=
11432fi
11433
11434
11435if test "x$_efl_enable_coverage" = "xyes"; then :
11436 enable_coverage="yes"
11437else
11438 enable_coverage="no"
11439fi
11440
11441
11442if test "x${prefer_assert}" = "xno"; then
11443 DEBUG_CFLAGS="-DNDEBUG"
11444else
11445# use debug symbols and set DEBUG if coverage support is enabled
11446 DEBUG_CFLAGS="${EFL_DEBUG_CFLAGS}"
11447fi
11448
11449
11450
11451### Checks for programs
11452ac_ext=c
11453ac_cpp='$CPP $CPPFLAGS'
11454ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
11455ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
11456ac_compiler_gnu=$ac_cv_c_compiler_gnu
11457if 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.
11459set 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; }
11462if test "${ac_cv_prog_CC+set}" = set; then :
11463 $as_echo_n "(cached) " >&6
11464else
11465 if test -n "$CC"; then
11466 ac_cv_prog_CC="$CC" # Let the user override the test.
11467else
11468as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
11469for as_dir in $PATH
11470do
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
11479done
11480 done
11481IFS=$as_save_IFS
11482
11483fi
11484fi
11485CC=$ac_cv_prog_CC
11486if test -n "$CC"; then
11487 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
11488$as_echo "$CC" >&6; }
11489else
11490 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11491$as_echo "no" >&6; }
11492fi
11493
11494
11495fi
11496if 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.
11499set 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; }
11502if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
11503 $as_echo_n "(cached) " >&6
11504else
11505 if test -n "$ac_ct_CC"; then
11506 ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
11507else
11508as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
11509for as_dir in $PATH
11510do
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
11519done
11520 done
11521IFS=$as_save_IFS
11522
11523fi
11524fi
11525ac_ct_CC=$ac_cv_prog_ac_ct_CC
11526if 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; }
11529else
11530 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11531$as_echo "no" >&6; }
11532fi
11533
11534 if test "x$ac_ct_CC" = x; then
11535 CC=""
11536 else
11537 case $cross_compiling:$ac_tool_warned in
11538yes:)
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;}
11541ac_tool_warned=yes ;;
11542esac
11543 CC=$ac_ct_CC
11544 fi
11545else
11546 CC="$ac_cv_prog_CC"
11547fi
11548
11549if 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.
11552set 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; }
11555if test "${ac_cv_prog_CC+set}" = set; then :
11556 $as_echo_n "(cached) " >&6
11557else
11558 if test -n "$CC"; then
11559 ac_cv_prog_CC="$CC" # Let the user override the test.
11560else
11561as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
11562for as_dir in $PATH
11563do
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
11572done
11573 done
11574IFS=$as_save_IFS
11575
11576fi
11577fi
11578CC=$ac_cv_prog_CC
11579if test -n "$CC"; then
11580 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
11581$as_echo "$CC" >&6; }
11582else
11583 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11584$as_echo "no" >&6; }
11585fi
11586
11587
11588 fi
11589fi
11590if test -z "$CC"; then
11591 # Extract the first word of "cc", so it can be a program name with args.
11592set 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; }
11595if test "${ac_cv_prog_CC+set}" = set; then :
11596 $as_echo_n "(cached) " >&6
11597else
11598 if test -n "$CC"; then
11599 ac_cv_prog_CC="$CC" # Let the user override the test.
11600else
11601 ac_prog_rejected=no
11602as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
11603for as_dir in $PATH
11604do
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
11617done
11618 done
11619IFS=$as_save_IFS
11620
11621if 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
11632fi
11633fi
11634fi
11635CC=$ac_cv_prog_CC
11636if test -n "$CC"; then
11637 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
11638$as_echo "$CC" >&6; }
11639else
11640 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11641$as_echo "no" >&6; }
11642fi
11643
11644
11645fi
11646if 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.
11651set 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; }
11654if test "${ac_cv_prog_CC+set}" = set; then :
11655 $as_echo_n "(cached) " >&6
11656else
11657 if test -n "$CC"; then
11658 ac_cv_prog_CC="$CC" # Let the user override the test.
11659else
11660as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
11661for as_dir in $PATH
11662do
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
11671done
11672 done
11673IFS=$as_save_IFS
11674
11675fi
11676fi
11677CC=$ac_cv_prog_CC
11678if test -n "$CC"; then
11679 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
11680$as_echo "$CC" >&6; }
11681else
11682 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11683$as_echo "no" >&6; }
11684fi
11685
11686
11687 test -n "$CC" && break
11688 done
11689fi
11690if test -z "$CC"; then
11691 ac_ct_CC=$CC
11692 for ac_prog in cl.exe
11693do
11694 # Extract the first word of "$ac_prog", so it can be a program name with args.
11695set 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; }
11698if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
11699 $as_echo_n "(cached) " >&6
11700else
11701 if test -n "$ac_ct_CC"; then
11702 ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
11703else
11704as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
11705for as_dir in $PATH
11706do
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
11715done
11716 done
11717IFS=$as_save_IFS
11718
11719fi
11720fi
11721ac_ct_CC=$ac_cv_prog_ac_ct_CC
11722if 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; }
11725else
11726 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
11727$as_echo "no" >&6; }
11728fi
11729
11730
11731 test -n "$ac_ct_CC" && break
11732done
11733
11734 if test "x$ac_ct_CC" = x; then
11735 CC=""
11736 else
11737 case $cross_compiling:$ac_tool_warned in
11738yes:)
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;}
11741ac_tool_warned=yes ;;
11742esac
11743 CC=$ac_ct_CC
11744 fi
11745fi
11746
11747fi
11748
11749
11750test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
11751$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
11752as_fn_error $? "no acceptable C compiler found in \$PATH
11753See \`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
11757set X $ac_compile
11758ac_compiler=$2
11759for ac_option in --version -v -V -qversion; do
11760 { { ac_try="$ac_compiler $ac_option >&5"
11761case "(($ac_try" in
11762 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
11763 *) ac_try_echo=$ac_try;;
11764esac
11765eval 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; }
11778done
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; }
11782if test "${ac_cv_c_compiler_gnu+set}" = set; then :
11783 $as_echo_n "(cached) " >&6
11784else
11785 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
11786/* end confdefs.h. */
11787
11788int
11789main ()
11790{
11791#ifndef __GNUC__
11792 choke me
11793#endif
11794
11795 ;
11796 return 0;
11797}
11798_ACEOF
11799if ac_fn_c_try_compile "$LINENO"; then :
11800 ac_compiler_gnu=yes
11801else
11802 ac_compiler_gnu=no
11803fi
11804rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
11805ac_cv_c_compiler_gnu=$ac_compiler_gnu
11806
11807fi
11808{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
11809$as_echo "$ac_cv_c_compiler_gnu" >&6; }
11810if test $ac_compiler_gnu = yes; then
11811 GCC=yes
11812else
11813 GCC=
11814fi
11815ac_test_CFLAGS=${CFLAGS+set}
11816ac_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; }
11819if test "${ac_cv_prog_cc_g+set}" = set; then :
11820 $as_echo_n "(cached) " >&6
11821else
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
11829int
11830main ()
11831{
11832
11833 ;
11834 return 0;
11835}
11836_ACEOF
11837if ac_fn_c_try_compile "$LINENO"; then :
11838 ac_cv_prog_cc_g=yes
11839else
11840 CFLAGS=""
11841 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
11842/* end confdefs.h. */
11843
11844int
11845main ()
11846{
11847
11848 ;
11849 return 0;
11850}
11851_ACEOF
11852if ac_fn_c_try_compile "$LINENO"; then :
11853
11854else
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
11860int
11861main ()
11862{
11863
11864 ;
11865 return 0;
11866}
11867_ACEOF
11868if ac_fn_c_try_compile "$LINENO"; then :
11869 ac_cv_prog_cc_g=yes
11870fi
11871rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
11872fi
11873rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
11874fi
11875rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
11876 ac_c_werror_flag=$ac_save_c_werror_flag
11877fi
11878{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
11879$as_echo "$ac_cv_prog_cc_g" >&6; }
11880if test "$ac_test_CFLAGS" = set; then
11881 CFLAGS=$ac_save_CFLAGS
11882elif 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
11888else
11889 if test "$GCC" = yes; then
11890 CFLAGS="-O2"
11891 else
11892 CFLAGS=
11893 fi
11894fi
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; }
11897if test "${ac_cv_prog_cc_c89+set}" = set; then :
11898 $as_echo_n "(cached) " >&6
11899else
11900 ac_cv_prog_cc_c89=no
11901ac_save_CC=$CC
11902cat 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. */
11909struct buf { int x; };
11910FILE * (*rcsopen) (struct buf *, struct stat *, int);
11911static char *e (p, i)
11912 char **p;
11913 int i;
11914{
11915 return p[i];
11916}
11917static 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. */
11934int 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'
11939int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
11940
11941int test (int i, double x);
11942struct s1 {int (*f) (int a);};
11943struct s2 {int (*f) (double a);};
11944int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
11945int argc;
11946char **argv;
11947int
11948main ()
11949{
11950return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
11951 ;
11952 return 0;
11953}
11954_ACEOF
11955for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
11956 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
11957do
11958 CC="$ac_save_CC $ac_arg"
11959 if ac_fn_c_try_compile "$LINENO"; then :
11960 ac_cv_prog_cc_c89=$ac_arg
11961fi
11962rm -f core conftest.err conftest.$ac_objext
11963 test "x$ac_cv_prog_cc_c89" != "xno" && break
11964done
11965rm -f conftest.$ac_ext
11966CC=$ac_save_CC
11967
11968fi
11969# AC_CACHE_VAL
11970case "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; } ;;
11981esac
11982if test "x$ac_cv_prog_cc_c89" != xno; then :
11983
11984fi
11985
11986ac_ext=c
11987ac_cpp='$CPP $CPPFLAGS'
11988ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
11989ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
11990ac_compiler_gnu=$ac_cv_c_compiler_gnu
11991
11992depcc="$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; }
11996if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
11997 $as_echo_n "(cached) " >&6
11998else
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
12099else
12100 am_cv_CC_dependencies_compiler_type=none
12101fi
12102
12103fi
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; }
12106CCDEPMODE=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='#'
12113else
12114 am__fastdepCC_TRUE='#'
12115 am__fastdepCC_FALSE=
12116fi
12117
12118
12119
12120# pkg-config
12121
12122
12123
12124
12125
12126
12127if 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.
12130set 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; }
12133if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
12134 $as_echo_n "(cached) " >&6
12135else
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
12142for as_dir in $PATH
12143do
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
12152done
12153 done
12154IFS=$as_save_IFS
12155
12156 ;;
12157esac
12158fi
12159PKG_CONFIG=$ac_cv_path_PKG_CONFIG
12160if test -n "$PKG_CONFIG"; then
12161 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
12162$as_echo "$PKG_CONFIG" >&6; }
12163else
12164 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12165$as_echo "no" >&6; }
12166fi
12167
12168
12169fi
12170if 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.
12173set 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; }
12176if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
12177 $as_echo_n "(cached) " >&6
12178else
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
12185for as_dir in $PATH
12186do
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
12195done
12196 done
12197IFS=$as_save_IFS
12198
12199 ;;
12200esac
12201fi
12202ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
12203if 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; }
12206else
12207 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12208$as_echo "no" >&6; }
12209fi
12210
12211 if test "x$ac_pt_PKG_CONFIG" = x; then
12212 PKG_CONFIG=""
12213 else
12214 case $cross_compiling:$ac_tool_warned in
12215yes:)
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;}
12218ac_tool_warned=yes ;;
12219esac
12220 PKG_CONFIG=$ac_pt_PKG_CONFIG
12221 fi
12222else
12223 PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
12224fi
12225
12226fi
12227if 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
12239fi
12240
12241# Check whether pkg-config supports Requires.private
12242if $PKG_CONFIG --atleast-pkgconfig-version 0.22; then
12243 pkgconfig_requires_private="Requires.private"
12244else
12245 pkgconfig_requires_private="Requires"
12246fi
12247
12248
12249
12250# doxygen program for documentation building
12251
12252
12253
12254# Check whether --enable-doc was given.
12255if 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
12263else
12264 efl_enable_doc="yes"
12265fi
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
12273if test "x${efl_enable_doc}" = "xyes" ; then
12274
12275
12276 efl_doxygen="doxygen"
12277
12278
12279# Check whether --with-doxygen was given.
12280if 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.
12284set 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; }
12287if test "${ac_cv_prog_efl_have_doxygen+set}" = set; then :
12288 $as_echo_n "(cached) " >&6
12289else
12290 if test -n "$efl_have_doxygen"; then
12291 ac_cv_prog_efl_have_doxygen="$efl_have_doxygen" # Let the user override the test.
12292else
12293as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
12294for as_dir in $PATH
12295do
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
12304done
12305 done
12306IFS=$as_save_IFS
12307
12308 test -z "$ac_cv_prog_efl_have_doxygen" && ac_cv_prog_efl_have_doxygen="no"
12309fi
12310fi
12311efl_have_doxygen=$ac_cv_prog_efl_have_doxygen
12312if 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; }
12315else
12316 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12317$as_echo "no" >&6; }
12318fi
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
12331else
12332 # Extract the first word of "${efl_doxygen}", so it can be a program name with args.
12333set 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; }
12336if test "${ac_cv_prog_efl_have_doxygen+set}" = set; then :
12337 $as_echo_n "(cached) " >&6
12338else
12339 if test -n "$efl_have_doxygen"; then
12340 ac_cv_prog_efl_have_doxygen="$efl_have_doxygen" # Let the user override the test.
12341else
12342as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
12343for as_dir in $PATH
12344do
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
12353done
12354 done
12355IFS=$as_save_IFS
12356
12357 test -z "$ac_cv_prog_efl_have_doxygen" && ac_cv_prog_efl_have_doxygen="no"
12358fi
12359fi
12360efl_have_doxygen=$ac_cv_prog_efl_have_doxygen
12361if 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; }
12364else
12365 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12366$as_echo "no" >&6; }
12367fi
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
12383fi
12384
12385else
12386 efl_have_doxygen="no"
12387fi
12388
12389
12390
12391if ! test "x${efl_have_doxygen}" = "xyes" ; then
12392 efl_enable_doc="no"
12393fi
12394
12395 if test "x${efl_have_doxygen}" = "xyes"; then
12396 EFL_BUILD_DOC_TRUE=
12397 EFL_BUILD_DOC_FALSE='#'
12398else
12399 EFL_BUILD_DOC_TRUE='#'
12400 EFL_BUILD_DOC_FALSE=
12401fi
12402
12403
12404if test "x$efl_have_doxygen" = "xyes"; then :
12405 build_doc="yes"
12406else
12407 build_doc="no"
12408fi
12409
12410
12411### Checks for libraries
12412
12413# Evil library for compilation on Windows
12414
12415EFL_EET_BUILD=""
12416case "$host_os" in
12417 mingw*)
12418
12419pkg_failed=no
12420{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVIL" >&5
12421$as_echo_n "checking for EVIL... " >&6; }
12422
12423if 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`
12433else
12434 pkg_failed=yes
12435fi
12436 else
12437 pkg_failed=untried
12438fi
12439if 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`
12449else
12450 pkg_failed=yes
12451fi
12452 else
12453 pkg_failed=untried
12454fi
12455
12456
12457
12458if test $pkg_failed = yes; then
12459 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12460$as_echo "no" >&6; }
12461
12462if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
12463 _pkg_short_errors_supported=yes
12464else
12465 _pkg_short_errors_supported=no
12466fi
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
12479Consider adjusting the PKG_CONFIG_PATH environment variable if you
12480installed software in a non-standard prefix.
12481
12482Alternatively, you may set the environment variables EVIL_CFLAGS
12483and EVIL_LIBS to avoid the need to call pkg-config.
12484See the pkg-config man page for more details." "$LINENO" 5
12485elif 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;}
12490as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
12491is in your PATH or set the PKG_CONFIG environment variable to the full
12492path to pkg-config.
12493
12494Alternatively, you may set the environment variables EVIL_CFLAGS
12495and EVIL_LIBS to avoid the need to call pkg-config.
12496See the pkg-config man page for more details.
12497
12498To get pkg-config, see <http://pkg-config.freedesktop.org/>.
12499See \`config.log' for more details" "$LINENO" 5 ; }
12500else
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
12506fi
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 ;;
12513esac
12514
12515
12516EET_LIBS=""
12517case "$host_os" in
12518 mingw32ce*)
12519 EET_LIBS="-lws2"
12520 ;;
12521 mingw*)
12522 EET_LIBS="-lws2_32"
12523 ;;
12524esac
12525
12526
12527# Eina library
12528
12529
12530pkg_failed=no
12531{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EINA" >&5
12532$as_echo_n "checking for EINA... " >&6; }
12533
12534if 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`
12544else
12545 pkg_failed=yes
12546fi
12547 else
12548 pkg_failed=untried
12549fi
12550if 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`
12560else
12561 pkg_failed=yes
12562fi
12563 else
12564 pkg_failed=untried
12565fi
12566
12567
12568
12569if test $pkg_failed = yes; then
12570 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12571$as_echo "no" >&6; }
12572
12573if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
12574 _pkg_short_errors_supported=yes
12575else
12576 _pkg_short_errors_supported=no
12577fi
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
12590Consider adjusting the PKG_CONFIG_PATH environment variable if you
12591installed software in a non-standard prefix.
12592
12593Alternatively, you may set the environment variables EINA_CFLAGS
12594and EINA_LIBS to avoid the need to call pkg-config.
12595See the pkg-config man page for more details." "$LINENO" 5
12596elif 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;}
12601as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
12602is in your PATH or set the PKG_CONFIG environment variable to the full
12603path to pkg-config.
12604
12605Alternatively, you may set the environment variables EINA_CFLAGS
12606and EINA_LIBS to avoid the need to call pkg-config.
12607See the pkg-config man page for more details.
12608
12609To get pkg-config, see <http://pkg-config.freedesktop.org/>.
12610See \`config.log' for more details" "$LINENO" 5 ; }
12611else
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
12617fi
12618requirement_eet="eina >= 1.2.0 ${requirement_eet}"
12619
12620### Checks for portability layer
12621
12622
12623pkg_failed=no
12624{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EXOTIC" >&5
12625$as_echo_n "checking for EXOTIC... " >&6; }
12626
12627if 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`
12637else
12638 pkg_failed=yes
12639fi
12640 else
12641 pkg_failed=untried
12642fi
12643if 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`
12653else
12654 pkg_failed=yes
12655fi
12656 else
12657 pkg_failed=untried
12658fi
12659
12660
12661
12662if test $pkg_failed = yes; then
12663 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12664$as_echo "no" >&6; }
12665
12666if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
12667 _pkg_short_errors_supported=yes
12668else
12669 _pkg_short_errors_supported=no
12670fi
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"
12680elif 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"
12684else
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"
12690fi
12691
12692if 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
12698fi
12699
12700# Gnutls support
12701
12702# Check whether --enable-gnutls was given.
12703if test "${enable_gnutls+set}" = set; then :
12704 enableval=$enable_gnutls; want_gnutls=$enableval
12705
12706fi
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
12714have_gnutls="no"
12715if test "x${want_gnutls}" = "xyes" || test "x${want_gnutls}" = "xauto" ; then
12716
12717pkg_failed=no
12718{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNUTLS" >&5
12719$as_echo_n "checking for GNUTLS... " >&6; }
12720
12721if 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`
12731else
12732 pkg_failed=yes
12733fi
12734 else
12735 pkg_failed=untried
12736fi
12737if 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`
12747else
12748 pkg_failed=yes
12749fi
12750 else
12751 pkg_failed=untried
12752fi
12753
12754
12755
12756if test $pkg_failed = yes; then
12757 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12758$as_echo "no" >&6; }
12759
12760if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
12761 _pkg_short_errors_supported=yes
12762else
12763 _pkg_short_errors_supported=no
12764fi
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"
12774elif 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"
12778else
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
12791fi
12792 if test "x${have_gnutls}" = "xyes" ; then
12793
12794
12795# Check whether --with-libgcrypt-prefix was given.
12796if test "${with_libgcrypt_prefix+set}" = set; then :
12797 withval=$with_libgcrypt_prefix; libgcrypt_config_prefix="$withval"
12798else
12799 libgcrypt_config_prefix=""
12800fi
12801
12802
12803# Check whether --with-libgcrypt-exec-prefix was given.
12804if test "${with_libgcrypt_exec_prefix+set}" = set; then :
12805 withval=$with_libgcrypt_exec_prefix; libgcrypt_config_exec_prefix="$withval"
12806else
12807 libgcrypt_config_exec_prefix=""
12808fi
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.
12825set 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; }
12828if test "${ac_cv_path_LIBGCRYPT_CONFIG+set}" = set; then :
12829 $as_echo_n "(cached) " >&6
12830else
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
12837for as_dir in $PATH
12838do
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
12847done
12848 done
12849IFS=$as_save_IFS
12850
12851 test -z "$ac_cv_path_LIBGCRYPT_CONFIG" && ac_cv_path_LIBGCRYPT_CONFIG="no"
12852 ;;
12853esac
12854fi
12855LIBGCRYPT_CONFIG=$ac_cv_path_LIBGCRYPT_CONFIG
12856if test -n "$LIBGCRYPT_CONFIG"; then
12857 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBGCRYPT_CONFIG" >&5
12858$as_echo "$LIBGCRYPT_CONFIG" >&6; }
12859else
12860 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
12861$as_echo "no" >&6; }
12862fi
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
12903fi
12904
12905# Specific GNUTLS improvement
12906
12907new_gnutls_api="yes"
12908# Check whether --enable-new-gnutls-api was given.
12909if test "${enable_new_gnutls_api+set}" = set; then :
12910 enableval=$enable_new_gnutls_api; new_gnutls_api=$enableval
12911
12912fi
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
12919if 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; }
12926if test "${ac_cv_lib_gnutls_gnutls_x509_crt_verify_hash+set}" = set; then :
12927 $as_echo_n "(cached) " >&6
12928else
12929 ac_check_lib_save_LIBS=$LIBS
12930LIBS="-lgnutls $LIBS"
12931cat 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
12938extern "C"
12939#endif
12940char gnutls_x509_crt_verify_hash ();
12941int
12942main ()
12943{
12944return gnutls_x509_crt_verify_hash ();
12945 ;
12946 return 0;
12947}
12948_ACEOF
12949if ac_fn_c_try_link "$LINENO"; then :
12950 ac_cv_lib_gnutls_gnutls_x509_crt_verify_hash=yes
12951else
12952 ac_cv_lib_gnutls_gnutls_x509_crt_verify_hash=no
12953fi
12954rm -f core conftest.err conftest.$ac_objext \
12955 conftest$ac_exeext conftest.$ac_ext
12956LIBS=$ac_check_lib_save_LIBS
12957fi
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; }
12960if test "x$ac_cv_lib_gnutls_gnutls_x509_crt_verify_hash" = x""yes; then :
12961 new_gnutls_api="yes"
12962else
12963 new_gnutls_api="no"
12964
12965fi
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
12975fi
12976
12977use_gnutls_privkey_sign_data="no"
12978if 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; }
12985if test "${ac_cv_lib_gnutls_gnutls_privkey_sign_data+set}" = set; then :
12986 $as_echo_n "(cached) " >&6
12987else
12988 ac_check_lib_save_LIBS=$LIBS
12989LIBS="-lgnutls $LIBS"
12990cat 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
12997extern "C"
12998#endif
12999char gnutls_privkey_sign_data ();
13000int
13001main ()
13002{
13003return gnutls_privkey_sign_data ();
13004 ;
13005 return 0;
13006}
13007_ACEOF
13008if ac_fn_c_try_link "$LINENO"; then :
13009 ac_cv_lib_gnutls_gnutls_privkey_sign_data=yes
13010else
13011 ac_cv_lib_gnutls_gnutls_privkey_sign_data=no
13012fi
13013rm -f core conftest.err conftest.$ac_objext \
13014 conftest$ac_exeext conftest.$ac_ext
13015LIBS=$ac_check_lib_save_LIBS
13016fi
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; }
13019if test "x$ac_cv_lib_gnutls_gnutls_privkey_sign_data" = x""yes; then :
13020 use_gnutls_privkey_sign_data="yes"
13021else
13022 use_gnutls_privkey_sign_data="no"
13023
13024fi
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
13034fi
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
13040use_gnutls_pubkey_verify_hash="no"
13041if 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; }
13048if test "${ac_cv_lib_gnutls_gnutls_pubkey_verify_hash+set}" = set; then :
13049 $as_echo_n "(cached) " >&6
13050else
13051 ac_check_lib_save_LIBS=$LIBS
13052LIBS="-lgnutls $LIBS"
13053cat 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
13060extern "C"
13061#endif
13062char gnutls_pubkey_verify_hash ();
13063int
13064main ()
13065{
13066return gnutls_pubkey_verify_hash ();
13067 ;
13068 return 0;
13069}
13070_ACEOF
13071if ac_fn_c_try_link "$LINENO"; then :
13072 ac_cv_lib_gnutls_gnutls_pubkey_verify_hash=yes
13073else
13074 ac_cv_lib_gnutls_gnutls_pubkey_verify_hash=no
13075fi
13076rm -f core conftest.err conftest.$ac_objext \
13077 conftest$ac_exeext conftest.$ac_ext
13078LIBS=$ac_check_lib_save_LIBS
13079fi
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; }
13082if test "x$ac_cv_lib_gnutls_gnutls_pubkey_verify_hash" = x""yes; then :
13083 use_gnutls_pubkey_verify_hash="yes"
13084else
13085 use_gnutls_pubkey_verify_hash="no"
13086
13087fi
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
13097fi
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
13104have_openssl="no"
13105if test "x${want_openssl}" = "xyes" || test "x${want_openssl}" = "xauto" ; then
13106
13107pkg_failed=no
13108{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OPENSSL" >&5
13109$as_echo_n "checking for OPENSSL... " >&6; }
13110
13111if 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`
13121else
13122 pkg_failed=yes
13123fi
13124 else
13125 pkg_failed=untried
13126fi
13127if 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`
13137else
13138 pkg_failed=yes
13139fi
13140 else
13141 pkg_failed=untried
13142fi
13143
13144
13145
13146if test $pkg_failed = yes; then
13147 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
13148$as_echo "no" >&6; }
13149
13150if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
13151 _pkg_short_errors_supported=yes
13152else
13153 _pkg_short_errors_supported=no
13154fi
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"
13164elif 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"
13168else
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
13180fi
13181fi
13182
13183if test "x${have_gnutls}" = "xyes" ; then
13184 secure_layer="GnuTLS"
13185elif test "x${have_openssl}" = "xyes" ; then
13186 secure_layer="OpenSSL"
13187else
13188 secure_layer="no"
13189fi
13190
13191have_cipher="no"
13192if 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
13197elif 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
13202fi
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
13209have_signature="no"
13210if 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
13215elif 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
13220fi
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
13229ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default"
13230if test "x$ac_cv_header_zlib_h" = x""yes; then :
13231 dummy="yes"
13232else
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
13234fi
13235
13236
13237
13238ac_fn_c_check_header_mongrel "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac_includes_default"
13239if test "x$ac_cv_header_jpeglib_h" = x""yes; then :
13240 dummy="yes"
13241else
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
13243fi
13244
13245
13246
13247for ac_header in netinet/in.h unistd.h
13248do :
13249 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
13250ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
13251if 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
13256fi
13257
13258done
13259
13260
13261
13262default_max="4096"
13263ac_ext=c
13264ac_cpp='$CPP $CPPFLAGS'
13265ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
13266ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
13267ac_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; }
13272cat confdefs.h - <<_ACEOF >conftest.$ac_ext
13273/* end confdefs.h. */
13274
13275#include <limits.h>
13276
13277int
13278main ()
13279{
13280
13281int i = PATH_MAX;
13282
13283 ;
13284 return 0;
13285}
13286_ACEOF
13287if ac_fn_c_try_compile "$LINENO"; then :
13288 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
13289$as_echo "yes" >&6; }
13290else
13291
13292
13293cat >>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
13300fi
13301rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
13302
13303ac_ext=c
13304ac_cpp='$CPP $CPPFLAGS'
13305ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
13306ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
13307ac_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
13319if 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; }
13322else
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; }
13325fi
13326set dummy $CC; ac_cc=`$as_echo "$2" |
13327 sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
13328if eval "test \"\${ac_cv_prog_cc_${ac_cc}_c_o+set}\"" = set; then :
13329 $as_echo_n "(cached) " >&6
13330else
13331 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
13332/* end confdefs.h. */
13333
13334int
13335main ()
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.
13345ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
13346rm -f conftest2.*
13347if { { case "(($ac_try" in
13348 *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
13349 *) ac_try_echo=$ac_try;;
13350esac
13351eval 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;;
13360esac
13361eval 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; };
13367then
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;;
13375esac
13376eval 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;;
13387esac
13388eval 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;;
13397esac
13398eval 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
13413else
13414 eval ac_cv_prog_cc_${ac_cc}_c_o=no
13415fi
13416rm -f core conftest*
13417
13418fi
13419if 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; }
13422else
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
13428fi
13429
13430# FIXME: we rely on the cache variable name because
13431# there is no other way.
13432set dummy $CC
13433am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
13434eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
13435if 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"
13442fi
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; }
13447if test "${ac_cv_c_const+set}" = set; then :
13448 $as_echo_n "(cached) " >&6
13449else
13450 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
13451/* end confdefs.h. */
13452
13453int
13454main ()
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
13510if ac_fn_c_try_compile "$LINENO"; then :
13511 ac_cv_c_const=yes
13512else
13513 ac_cv_c_const=no
13514fi
13515rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
13516fi
13517{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
13518$as_echo "$ac_cv_c_const" >&6; }
13519if test $ac_cv_c_const = no; then
13520
13521$as_echo "#define const /**/" >>confdefs.h
13522
13523fi
13524
13525{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
13526$as_echo_n "checking for inline... " >&6; }
13527if test "${ac_cv_c_inline+set}" = set; then :
13528 $as_echo_n "(cached) " >&6
13529else
13530 ac_cv_c_inline=no
13531for ac_kw in inline __inline__ __inline; do
13532 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
13533/* end confdefs.h. */
13534#ifndef __cplusplus
13535typedef int foo_t;
13536static $ac_kw foo_t static_foo () {return 0; }
13537$ac_kw foo_t foo () {return 0; }
13538#endif
13539
13540_ACEOF
13541if ac_fn_c_try_compile "$LINENO"; then :
13542 ac_cv_c_inline=$ac_kw
13543fi
13544rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
13545 test "$ac_cv_c_inline" != no && break
13546done
13547
13548fi
13549{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
13550$as_echo "$ac_cv_c_inline" >&6; }
13551
13552case $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 ;;
13565esac
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; }
13573if test "${ac_cv_prog_cc_c99+set}" = set; then :
13574 $as_echo_n "(cached) " >&6
13575else
13576 ac_cv_prog_cc_c99=no
13577ac_save_CC=$CC
13578cat 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__))
13590static void
13591test_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
13612static long long int bignum = -9223372036854775807LL;
13613static unsigned long long int ubignum = BIG64;
13614
13615struct incomplete_array
13616{
13617 int datasize;
13618 double data[];
13619};
13620
13621struct named_init {
13622 int number;
13623 const wchar_t *name;
13624 double average;
13625};
13626
13627typedef const char *ccp;
13628
13629static inline int
13630test_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.
13641static void
13642test_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
13674int
13675main ()
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
13717for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99
13718do
13719 CC="$ac_save_CC $ac_arg"
13720 if ac_fn_c_try_compile "$LINENO"; then :
13721 ac_cv_prog_cc_c99=$ac_arg
13722fi
13723rm -f core conftest.err conftest.$ac_objext
13724 test "x$ac_cv_prog_cc_c99" != "xno" && break
13725done
13726rm -f conftest.$ac_ext
13727CC=$ac_save_CC
13728
13729fi
13730# AC_CACHE_VAL
13731case "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; } ;;
13742esac
13743if test "x$ac_cv_prog_cc_c99" != xno; then :
13744 ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
13745else
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; }
13748if test "${ac_cv_prog_cc_c89+set}" = set; then :
13749 $as_echo_n "(cached) " >&6
13750else
13751 ac_cv_prog_cc_c89=no
13752ac_save_CC=$CC
13753cat 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. */
13760struct buf { int x; };
13761FILE * (*rcsopen) (struct buf *, struct stat *, int);
13762static char *e (p, i)
13763 char **p;
13764 int i;
13765{
13766 return p[i];
13767}
13768static 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. */
13785int 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'
13790int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
13791
13792int test (int i, double x);
13793struct s1 {int (*f) (int a);};
13794struct s2 {int (*f) (double a);};
13795int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
13796int argc;
13797char **argv;
13798int
13799main ()
13800{
13801return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
13802 ;
13803 return 0;
13804}
13805_ACEOF
13806for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
13807 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
13808do
13809 CC="$ac_save_CC $ac_arg"
13810 if ac_fn_c_try_compile "$LINENO"; then :
13811 ac_cv_prog_cc_c89=$ac_arg
13812fi
13813rm -f core conftest.err conftest.$ac_objext
13814 test "x$ac_cv_prog_cc_c89" != "xno" && break
13815done
13816rm -f conftest.$ac_ext
13817CC=$ac_save_CC
13818
13819fi
13820# AC_CACHE_VAL
13821case "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; } ;;
13832esac
13833if test "x$ac_cv_prog_cc_c89" != xno; then :
13834 ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
13835else
13836 ac_cv_prog_cc_stdc=no
13837fi
13838
13839fi
13840 ;;
13841esac
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
13846fi
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; } ;;
13858esac
13859
13860
13861
13862{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __attribute__" >&5
13863$as_echo_n "checking for __attribute__... " >&6; }
13864
13865if test "${ac_cv___attribute__+set}" = set; then :
13866 $as_echo_n "(cached) " >&6
13867else
13868 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
13869/* end confdefs.h. */
13870
13871#include <stdlib.h>
13872
13873int func(int x);
13874int foo(int x __attribute__ ((unused)))
13875{
13876 exit(1);
13877}
13878
13879int
13880main ()
13881{
13882
13883 ;
13884 return 0;
13885}
13886_ACEOF
13887if ac_fn_c_try_compile "$LINENO"; then :
13888 ac_cv___attribute__="yes"
13889else
13890 ac_cv___attribute__="no"
13891
13892fi
13893rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
13894fi
13895
13896
13897{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv___attribute__" >&5
13898$as_echo "$ac_cv___attribute__" >&6; }
13899
13900if 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
13911fi
13912
13913
13914
13915# Check whether the null pointer is zero on this arch
13916if 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
13922else
13923 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
13924/* end confdefs.h. */
13925
13926#include <stdlib.h>
13927#include <inttypes.h>
13928int 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
13935if ac_fn_c_try_run "$LINENO"; then :
13936 have_null="yes"
13937else
13938 have_null="no"
13939fi
13940rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
13941 conftest.$ac_objext conftest.beam conftest.$ac_ext
13942fi
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
13949if 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;}
13952fi
13953
13954# These are needed for fmemopen/open_memstream
13955
13956$as_echo "#define _GNU_SOURCE /**/" >>confdefs.h
13957
13958
13959EET_CPPFLAGS=""
13960EET_CFLAGS=""
13961case "$host_os" in
13962 mingw32ce*)
13963 EET_CPPFLAGS="-D_WIN32_WCE=0x0420"
13964 ;;
13965 mingw*)
13966 EET_CPPFLAGS="-D_WIN32_WINNT=0x0501"
13967 ;;
13968esac
13969
13970
13971
13972
13973### Checks for linker characteristics
13974
13975# use --enable-auto-import on Windows
13976
13977lt_enable_auto_import=""
13978case "$host_os" in
13979 mingw*)
13980 lt_enable_auto_import="-Wl,--enable-auto-import"
13981 ;;
13982esac
13983
13984
13985case "${host_os}" in
13986 openbsd*)
13987 ;;
13988 *)
13989
13990
13991CFLAGS_save="${CFLAGS}"
13992CFLAGS="${CFLAGS} -Wl,--as-needed"
13993
13994ac_ext=c
13995ac_cpp='$CPP $CPPFLAGS'
13996ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
13997ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
13998ac_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
14003cat confdefs.h - <<_ACEOF >conftest.$ac_ext
14004/* end confdefs.h. */
14005
14006int
14007main ()
14008{
14009
14010 ;
14011 return 0;
14012}
14013_ACEOF
14014if ac_fn_c_try_link "$LINENO"; then :
14015 have_flag="yes"
14016else
14017 have_flag="no"
14018fi
14019rm -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
14024if test "x${have_flag}" = "xno" ; then
14025 CFLAGS="${CFLAGS_save}"
14026fi
14027ac_ext=c
14028ac_cpp='$CPP $CPPFLAGS'
14029ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
14030ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
14031ac_compiler_gnu=$ac_cv_c_compiler_gnu
14032
14033
14034
14035 ;;
14036esac
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; }
14042if test "${ac_cv_search_strerror+set}" = set; then :
14043 $as_echo_n "(cached) " >&6
14044else
14045 ac_func_search_save_LIBS=$LIBS
14046cat 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
14053extern "C"
14054#endif
14055char strerror ();
14056int
14057main ()
14058{
14059return strerror ();
14060 ;
14061 return 0;
14062}
14063_ACEOF
14064for 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
14073fi
14074rm -f core conftest.err conftest.$ac_objext \
14075 conftest$ac_exeext
14076 if test "${ac_cv_search_strerror+set}" = set; then :
14077 break
14078fi
14079done
14080if test "${ac_cv_search_strerror+set}" = set; then :
14081
14082else
14083 ac_cv_search_strerror=no
14084fi
14085rm conftest.$ac_ext
14086LIBS=$ac_func_search_save_LIBS
14087fi
14088{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5
14089$as_echo "$ac_cv_search_strerror" >&6; }
14090ac_res=$ac_cv_search_strerror
14091if test "$ac_res" != no; then :
14092 test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
14093
14094fi
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; }
14100if test "${ac_cv_working_alloca_h+set}" = set; then :
14101 $as_echo_n "(cached) " >&6
14102else
14103 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
14104/* end confdefs.h. */
14105#include <alloca.h>
14106int
14107main ()
14108{
14109char *p = (char *) alloca (2 * sizeof (int));
14110 if (p) return 0;
14111 ;
14112 return 0;
14113}
14114_ACEOF
14115if ac_fn_c_try_link "$LINENO"; then :
14116 ac_cv_working_alloca_h=yes
14117else
14118 ac_cv_working_alloca_h=no
14119fi
14120rm -f core conftest.err conftest.$ac_objext \
14121 conftest$ac_exeext conftest.$ac_ext
14122fi
14123{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5
14124$as_echo "$ac_cv_working_alloca_h" >&6; }
14125if test $ac_cv_working_alloca_h = yes; then
14126
14127$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h
14128
14129fi
14130
14131{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
14132$as_echo_n "checking for alloca... " >&6; }
14133if test "${ac_cv_func_alloca_works+set}" = set; then :
14134 $as_echo_n "(cached) " >&6
14135else
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 */
14152char *alloca ();
14153# endif
14154# endif
14155# endif
14156# endif
14157#endif
14158
14159int
14160main ()
14161{
14162char *p = (char *) alloca (1);
14163 if (p) return 0;
14164 ;
14165 return 0;
14166}
14167_ACEOF
14168if ac_fn_c_try_link "$LINENO"; then :
14169 ac_cv_func_alloca_works=yes
14170else
14171 ac_cv_func_alloca_works=no
14172fi
14173rm -f core conftest.err conftest.$ac_objext \
14174 conftest$ac_exeext conftest.$ac_ext
14175fi
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
14179if test $ac_cv_func_alloca_works = yes; then
14180
14181$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h
14182
14183else
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
14189ALLOCA=\${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; }
14196if test "${ac_cv_os_cray+set}" = set; then :
14197 $as_echo_n "(cached) " >&6
14198else
14199 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
14200/* end confdefs.h. */
14201#if defined CRAY && ! defined CRAY2
14202webecray
14203#else
14204wenotbecray
14205#endif
14206
14207_ACEOF
14208if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
14209 $EGREP "webecray" >/dev/null 2>&1; then :
14210 ac_cv_os_cray=yes
14211else
14212 ac_cv_os_cray=no
14213fi
14214rm -f conftest*
14215
14216fi
14217{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5
14218$as_echo "$ac_cv_os_cray" >&6; }
14219if 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`
14222ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
14223if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
14224
14225cat >>confdefs.h <<_ACEOF
14226#define CRAY_STACKSEG_END $ac_func
14227_ACEOF
14228
14229 break
14230fi
14231
14232 done
14233fi
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; }
14237if test "${ac_cv_c_stack_direction+set}" = set; then :
14238 $as_echo_n "(cached) " >&6
14239else
14240 if test "$cross_compiling" = yes; then :
14241 ac_cv_c_stack_direction=0
14242else
14243 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
14244/* end confdefs.h. */
14245$ac_includes_default
14246int
14247find_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
14260int
14261main ()
14262{
14263 return find_stack_direction () < 0;
14264}
14265_ACEOF
14266if ac_fn_c_try_run "$LINENO"; then :
14267 ac_cv_c_stack_direction=1
14268else
14269 ac_cv_c_stack_direction=-1
14270fi
14271rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
14272 conftest.$ac_objext conftest.beam conftest.$ac_ext
14273fi
14274
14275fi
14276{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5
14277$as_echo "$ac_cv_c_stack_direction" >&6; }
14278cat >>confdefs.h <<_ACEOF
14279#define STACK_DIRECTION $ac_cv_c_stack_direction
14280_ACEOF
14281
14282
14283fi
14284
14285
14286for ac_func in fmemopen open_memstream realpath
14287do :
14288 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
14289ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
14290if 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
14295fi
14296done
14297
14298
14299
14300
14301ac_fn_c_check_header_mongrel "$LINENO" "fnmatch.h" "ac_cv_header_fnmatch_h" "$ac_includes_default"
14302if test "x$ac_cv_header_fnmatch_h" = x""yes; then :
14303 _efl_have_fnmatch="yes"
14304else
14305 _efl_have_fnmatch="no"
14306fi
14307
14308
14309
14310if 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; }
14313if test "${ac_cv_search_fnmatch+set}" = set; then :
14314 $as_echo_n "(cached) " >&6
14315else
14316 ac_func_search_save_LIBS=$LIBS
14317cat 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
14324extern "C"
14325#endif
14326char fnmatch ();
14327int
14328main ()
14329{
14330return fnmatch ();
14331 ;
14332 return 0;
14333}
14334_ACEOF
14335for 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
14344fi
14345rm -f core conftest.err conftest.$ac_objext \
14346 conftest$ac_exeext
14347 if test "${ac_cv_search_fnmatch+set}" = set; then :
14348 break
14349fi
14350done
14351if test "${ac_cv_search_fnmatch+set}" = set; then :
14352
14353else
14354 ac_cv_search_fnmatch=no
14355fi
14356rm conftest.$ac_ext
14357LIBS=$ac_func_search_save_LIBS
14358fi
14359{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_fnmatch" >&5
14360$as_echo "$ac_cv_search_fnmatch" >&6; }
14361ac_res=$ac_cv_search_fnmatch
14362if test "$ac_res" != no; then :
14363 test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
14364 _efl_have_fnmatch="yes"
14365else
14366 _efl_have_fnmatch="no"
14367fi
14368
14369fi
14370
14371EFL_FNMATCH_LIBS=""
14372
14373if (! 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}
14375fi
14376
14377if 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; }
14382if test "${ac_cv_lib_exotic_fnmatch+set}" = set; then :
14383 $as_echo_n "(cached) " >&6
14384else
14385 ac_check_lib_save_LIBS=$LIBS
14386LIBS="-lexotic $LIBS"
14387cat 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
14394extern "C"
14395#endif
14396char fnmatch ();
14397int
14398main ()
14399{
14400return fnmatch ();
14401 ;
14402 return 0;
14403}
14404_ACEOF
14405if ac_fn_c_try_link "$LINENO"; then :
14406 ac_cv_lib_exotic_fnmatch=yes
14407else
14408 ac_cv_lib_exotic_fnmatch=no
14409fi
14410rm -f core conftest.err conftest.$ac_objext \
14411 conftest$ac_exeext conftest.$ac_ext
14412LIBS=$ac_check_lib_save_LIBS
14413fi
14414{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_exotic_fnmatch" >&5
14415$as_echo "$ac_cv_lib_exotic_fnmatch" >&6; }
14416if test "x$ac_cv_lib_exotic_fnmatch" = x""yes; then :
14417 _efl_have_fnmatch="yes"
14418else
14419 _efl_have_fnmatch="no"
14420fi
14421
14422
14423 if test "x${_efl_have_fnmatch}" = "xyes"; then
14424 EFL_FNMATCH_LIBS="exotic"
14425 fi
14426fi
14427
14428
14429
14430if test "x$_efl_have_fnmatch" = "xyes"; then :
14431
14432else
14433 as_fn_error $? "Cannot find fnmatch()" "$LINENO" 5
14434fi
14435
14436
14437
14438
14439
14440
14441ac_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
14443cat >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
14505if 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
14515fi
14516rm -f confcache
14517
14518test "x$prefix" = xNONE && prefix=$ac_default_prefix
14519# Let make expand exec_prefix.
14520test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
14521
14522DEFS=-DHAVE_CONFIG_H
14523
14524ac_libobjs=
14525ac_ltlibobjs=
14526U=
14527for 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'
14535done
14536LIBOBJS=$ac_libobjs
14537
14538LTLIBOBJS=$ac_ltlibobjs
14539
14540
14541 if test -n "$EXEEXT"; then
14542 am__EXEEXT_TRUE=
14543 am__EXEEXT_FALSE='#'
14544else
14545 am__EXEEXT_TRUE='#'
14546 am__EXEEXT_FALSE=
14547fi
14548
14549if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
14550 as_fn_error $? "conditional \"AMDEP\" was never defined.
14551Usually this means the macro was only invoked conditionally." "$LINENO" 5
14552fi
14553if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
14554 as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
14555Usually this means the macro was only invoked conditionally." "$LINENO" 5
14556fi
14557if test -z "${EET_AMALGAMATION_TRUE}" && test -z "${EET_AMALGAMATION_FALSE}"; then
14558 as_fn_error $? "conditional \"EET_AMALGAMATION\" was never defined.
14559Usually this means the macro was only invoked conditionally." "$LINENO" 5
14560fi
14561if test -z "${BUILD_EET_TRUE}" && test -z "${BUILD_EET_FALSE}"; then
14562 as_fn_error $? "conditional \"BUILD_EET\" was never defined.
14563Usually this means the macro was only invoked conditionally." "$LINENO" 5
14564fi
14565if test -z "${INSTALL_EXAMPLES_TRUE}" && test -z "${INSTALL_EXAMPLES_FALSE}"; then
14566 as_fn_error $? "conditional \"INSTALL_EXAMPLES\" was never defined.
14567Usually this means the macro was only invoked conditionally." "$LINENO" 5
14568fi
14569if test -z "${BUILD_EXAMPLES_TRUE}" && test -z "${BUILD_EXAMPLES_FALSE}"; then
14570 as_fn_error $? "conditional \"BUILD_EXAMPLES\" was never defined.
14571Usually this means the macro was only invoked conditionally." "$LINENO" 5
14572fi
14573if test -z "${EFL_ENABLE_TESTS_TRUE}" && test -z "${EFL_ENABLE_TESTS_FALSE}"; then
14574 as_fn_error $? "conditional \"EFL_ENABLE_TESTS\" was never defined.
14575Usually this means the macro was only invoked conditionally." "$LINENO" 5
14576fi
14577if test -z "${EFL_ENABLE_COVERAGE_TRUE}" && test -z "${EFL_ENABLE_COVERAGE_FALSE}"; then
14578 as_fn_error $? "conditional \"EFL_ENABLE_COVERAGE\" was never defined.
14579Usually this means the macro was only invoked conditionally." "$LINENO" 5
14580fi
14581if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
14582 as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
14583Usually this means the macro was only invoked conditionally." "$LINENO" 5
14584fi
14585if test -z "${EFL_BUILD_DOC_TRUE}" && test -z "${EFL_BUILD_DOC_FALSE}"; then
14586 as_fn_error $? "conditional \"EFL_BUILD_DOC\" was never defined.
14587Usually this means the macro was only invoked conditionally." "$LINENO" 5
14588fi
14589
14590: ${CONFIG_STATUS=./config.status}
14591ac_write_fail=0
14592ac_clean_files_save=$ac_clean_files
14593ac_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;}
14596as_write_fail=0
14597cat >$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
14604debug=false
14605ac_cs_recheck=false
14606ac_cs_silent=false
14607
14608SHELL=\${CONFIG_SHELL-$SHELL}
14609export SHELL
14610_ASEOF
14611cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
14612## -------------------- ##
14613## M4sh Initialization. ##
14614## -------------------- ##
14615
14616# Be more Bourne compatible
14617DUALCASE=1; export DUALCASE # for MKS sh
14618if 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
14625else
14626 case `(set -o) 2>/dev/null` in #(
14627 *posix*) :
14628 set -o posix ;; #(
14629 *) :
14630 ;;
14631esac
14632fi
14633
14634
14635as_nl='
14636'
14637export as_nl
14638# Printing a long string crashes Solaris 7 /usr/bin/printf.
14639as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
14640as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
14641as_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.
14644if 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 --'
14648elif (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'
14651else
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'
14671fi
14672
14673# The user is always right.
14674if 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 }
14680fi
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.)
14688IFS=" "" $as_nl"
14689
14690# Find who we are. Look in the path if we contain no directory separator.
14691case $0 in #((
14692 *[\\/]* ) as_myself=$0 ;;
14693 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
14694for as_dir in $PATH
14695do
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
14700IFS=$as_save_IFS
14701
14702 ;;
14703esac
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.
14706if test "x$as_myself" = x; then
14707 as_myself=$0
14708fi
14709if test ! -f "$as_myself"; then
14710 $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
14711 exit 1
14712fi
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.
14718for as_var in BASH_ENV ENV MAIL MAILPATH
14719do eval test x\${$as_var+set} = xset \
14720 && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
14721done
14722PS1='$ '
14723PS2='> '
14724PS4='+ '
14725
14726# NLS nuisances.
14727LC_ALL=C
14728export LC_ALL
14729LANGUAGE=C
14730export 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.
14741as_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.
14756as_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.
14764as_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.
14774as_fn_unset ()
14775{
14776 { eval $1=; unset $1;}
14777}
14778as_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.
14785if (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 }'
14790else
14791 as_fn_append ()
14792 {
14793 eval $1=\$$1\$2
14794 }
14795fi # 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.
14802if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
14803 eval 'as_fn_arith ()
14804 {
14805 as_val=$(( $* ))
14806 }'
14807else
14808 as_fn_arith ()
14809 {
14810 as_val=`expr "$@" || test $? -eq 1`
14811 }
14812fi # as_fn_arith
14813
14814
14815if expr a : '\(a\)' >/dev/null 2>&1 &&
14816 test "X`expr 00001 : '.*\(...\)'`" = X001; then
14817 as_expr=expr
14818else
14819 as_expr=false
14820fi
14821
14822if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
14823 as_basename=basename
14824else
14825 as_basename=false
14826fi
14827
14828if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
14829 as_dirname=dirname
14830else
14831 as_dirname=false
14832fi
14833
14834as_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.
14854as_cr_letters='abcdefghijklmnopqrstuvwxyz'
14855as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
14856as_cr_Letters=$as_cr_letters$as_cr_LETTERS
14857as_cr_digits='0123456789'
14858as_cr_alnum=$as_cr_Letters$as_cr_digits
14859
14860ECHO_C= ECHO_N= ECHO_T=
14861case `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';;
14871esac
14872
14873rm -f conf$$ conf$$.exe conf$$.file
14874if test -d conf$$.dir; then
14875 rm -f conf$$.dir/conf$$.file
14876else
14877 rm -f conf$$.dir
14878 mkdir conf$$.dir 2>/dev/null
14879fi
14880if (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
14894else
14895 as_ln_s='cp -p'
14896fi
14897rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
14898rmdir conf$$.dir 2>/dev/null
14899
14900
14901# as_fn_mkdir_p
14902# -------------
14903# Create "$as_dir" as a directory, including parents if necessary.
14904as_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
14948if mkdir -p . 2>/dev/null; then
14949 as_mkdir_p='mkdir -p "$as_dir"'
14950else
14951 test -d ./-p && rmdir ./-p
14952 as_mkdir_p=false
14953fi
14954
14955if test -x / >/dev/null 2>&1; then
14956 as_test_x='test -x'
14957else
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 '
14975fi
14976as_executable_p=$as_test_x
14977
14978# Sed expression to map a string onto a valid CPP name.
14979as_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.
14982as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
14983
14984
14985exec 6>&1
14986## ----------------------------------- ##
14987## Main body of $CONFIG_STATUS script. ##
14988## ----------------------------------- ##
14989_ASEOF
14990test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
14991
14992cat >>$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.
14996ac_log="
14997This file was extended by eet $as_me 1.6.0-alpha, which was
14998generated 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
15006on `(hostname || uname -n) 2>/dev/null | sed 1q`
15007"
15008
15009_ACEOF
15010
15011case $ac_config_files in *"
15012"*) set x $ac_config_files; shift; ac_config_files=$*;;
15013esac
15014
15015case $ac_config_headers in *"
15016"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
15017esac
15018
15019
15020cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
15021# Files that config.status was made for.
15022config_files="$ac_config_files"
15023config_headers="$ac_config_headers"
15024config_commands="$ac_config_commands"
15025
15026_ACEOF
15027
15028cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
15029ac_cs_usage="\
15030\`$as_me' instantiates files and other configuration actions
15031from templates according to the current configuration. Unless the files
15032and actions are specified as TAGs, all are instantiated by default.
15033
15034Usage: $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
15048Configuration files:
15049$config_files
15050
15051Configuration headers:
15052$config_headers
15053
15054Configuration commands:
15055$config_commands
15056
15057Report bugs to <enlightenment-devel@lists.sourceforge.net>."
15058
15059_ACEOF
15060cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
15061ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
15062ac_cs_version="\\
15063eet config.status 1.6.0-alpha
15064configured by $0, generated by GNU Autoconf 2.67,
15065 with options \\"\$ac_cs_config\\"
15066
15067Copyright (C) 2010 Free Software Foundation, Inc.
15068This config.status script is free software; the Free Software Foundation
15069gives unlimited permission to copy, distribute and modify it."
15070
15071ac_pwd='$ac_pwd'
15072srcdir='$srcdir'
15073INSTALL='$INSTALL'
15074MKDIR_P='$MKDIR_P'
15075AWK='$AWK'
15076test -n "\$AWK" || AWK=awk
15077_ACEOF
15078
15079cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
15080# The default lists apply if the user does not specify any file.
15081ac_need_defaults=:
15082while test $# != 0
15083do
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'
15130Try \`$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'
15139Try \`$0 --help' for more information." ;;
15140
15141 *) as_fn_append ac_config_targets " $1"
15142 ac_need_defaults=false ;;
15143
15144 esac
15145 shift
15146done
15147
15148ac_configure_extra_args=
15149
15150if $ac_cs_silent; then
15151 exec 6>/dev/null
15152 ac_configure_extra_args="$ac_configure_extra_args --silent"
15153fi
15154
15155_ACEOF
15156cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
15157if \$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 "\$@"
15164fi
15165
15166_ACEOF
15167cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
15168exec 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
15178cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
15179#
15180# INIT-COMMANDS
15181#
15182AMDEP_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
15189sed_quote_subst='$sed_quote_subst'
15190double_quote_subst='$double_quote_subst'
15191delay_variable_subst='$delay_variable_subst'
15192AS='`$ECHO "X$AS" | $Xsed -e "$delay_single_quote_subst"`'
15193DLLTOOL='`$ECHO "X$DLLTOOL" | $Xsed -e "$delay_single_quote_subst"`'
15194OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`'
15195macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`'
15196macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`'
15197enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`'
15198enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`'
15199pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`'
15200enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`'
15201host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`'
15202host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`'
15203host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`'
15204build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`'
15205build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`'
15206build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`'
15207SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`'
15208Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`'
15209GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`'
15210EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`'
15211FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`'
15212LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`'
15213NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`'
15214LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`'
15215max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`'
15216ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`'
15217exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`'
15218lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`'
15219lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`'
15220lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`'
15221reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`'
15222reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`'
15223deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`'
15224file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`'
15225AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`'
15226AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`'
15227STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`'
15228RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`'
15229old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
15230old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
15231old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
15232CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`'
15233CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`'
15234compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`'
15235GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`'
15236lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`'
15237lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`'
15238lt_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"`'
15239lt_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"`'
15240objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`'
15241SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`'
15242ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`'
15243MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`'
15244lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`'
15245lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`'
15246lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`'
15247lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`'
15248lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`'
15249need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`'
15250DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`'
15251NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`'
15252LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`'
15253OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`'
15254OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`'
15255libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`'
15256shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`'
15257extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
15258archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`'
15259enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`'
15260export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
15261whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
15262compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`'
15263old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`'
15264old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`'
15265archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`'
15266archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
15267module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`'
15268module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`'
15269with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`'
15270allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
15271no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`'
15272hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`'
15273hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`'
15274hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`'
15275hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`'
15276hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`'
15277hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`'
15278hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
15279hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`'
15280inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`'
15281link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`'
15282fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`'
15283always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`'
15284export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`'
15285exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
15286include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`'
15287prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`'
15288file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`'
15289variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`'
15290need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`'
15291need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`'
15292version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`'
15293runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`'
15294shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`'
15295shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`'
15296libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`'
15297library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`'
15298soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`'
15299postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
15300postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`'
15301finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`'
15302finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`'
15303hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`'
15304sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
15305sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`'
15306hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`'
15307enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`'
15308enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`'
15309enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`'
15310old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`'
15311striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`'
15312
15313LTCC='$LTCC'
15314LTCFLAGS='$LTCFLAGS'
15315compiler='$compiler_DEFAULT'
15316
15317# Quote evaled strings.
15318for var in SED \
15319GREP \
15320EGREP \
15321FGREP \
15322LD \
15323NM \
15324LN_S \
15325lt_SP2NL \
15326lt_NL2SP \
15327reload_flag \
15328deplibs_check_method \
15329file_magic_cmd \
15330AR \
15331AR_FLAGS \
15332STRIP \
15333RANLIB \
15334CC \
15335CFLAGS \
15336compiler \
15337lt_cv_sys_global_symbol_pipe \
15338lt_cv_sys_global_symbol_to_cdecl \
15339lt_cv_sys_global_symbol_to_c_name_address \
15340lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
15341SHELL \
15342ECHO \
15343lt_prog_compiler_no_builtin_flag \
15344lt_prog_compiler_wl \
15345lt_prog_compiler_pic \
15346lt_prog_compiler_static \
15347lt_cv_prog_compiler_c_o \
15348need_locks \
15349DSYMUTIL \
15350NMEDIT \
15351LIPO \
15352OTOOL \
15353OTOOL64 \
15354shrext_cmds \
15355export_dynamic_flag_spec \
15356whole_archive_flag_spec \
15357compiler_needs_object \
15358with_gnu_ld \
15359allow_undefined_flag \
15360no_undefined_flag \
15361hardcode_libdir_flag_spec \
15362hardcode_libdir_flag_spec_ld \
15363hardcode_libdir_separator \
15364fix_srcfile_path \
15365exclude_expsyms \
15366include_expsyms \
15367file_list_spec \
15368variables_saved_for_relink \
15369libname_spec \
15370library_names_spec \
15371soname_spec \
15372finish_eval \
15373old_striplib \
15374striplib; 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
15383done
15384
15385# Double-quote double-evaled strings.
15386for var in reload_cmds \
15387old_postinstall_cmds \
15388old_postuninstall_cmds \
15389old_archive_cmds \
15390extract_expsyms_cmds \
15391old_archive_from_new_cmds \
15392old_archive_from_expsyms_cmds \
15393archive_cmds \
15394archive_expsym_cmds \
15395module_cmds \
15396module_expsym_cmds \
15397export_symbols_cmds \
15398prelink_cmds \
15399postinstall_cmds \
15400postuninstall_cmds \
15401finish_cmds \
15402sys_lib_search_path_spec \
15403sys_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
15412done
15413
15414# Fix-up fallback echo if it was mangled by the above quoting rules.
15415case \$lt_ECHO in
15416*'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\`
15417 ;;
15418esac
15419
15420ac_aux_dir='$ac_aux_dir'
15421xsi_shell='$xsi_shell'
15422lt_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.
15426if test -n "\${ZSH_VERSION+set}" ; then
15427 setopt NO_GLOB_SUBST
15428fi
15429
15430
15431 PACKAGE='$PACKAGE'
15432 VERSION='$VERSION'
15433 TIMESTAMP='$TIMESTAMP'
15434 RM='$RM'
15435 ofile='$ofile'
15436
15437
15438
15439
15440_ACEOF
15441
15442cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
15443
15444# Handling of arguments.
15445for ac_config_target in $ac_config_targets
15446do
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
15465done
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.
15472if $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
15476fi
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'.
15506if test -n "$CONFIG_FILES"; then
15507
15508
15509ac_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.
15513if test "x$ac_cr" = x; then
15514 eval ac_cr=\$\'\\r\'
15515fi
15516ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
15517if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
15518 ac_cs_awk_cr='\\r'
15519else
15520 ac_cs_awk_cr=$ac_cr
15521fi
15522
15523echo '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
15533ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
15534ac_delim='%!_!# '
15535for 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
15547done
15548rm -f conf$$subs.sh
15549
15550cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
15551cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
15552_ACEOF
15553sed -n '
15554h
15555s/^/S["/; s/!.*/"]=/
15556p
15557g
15558s/^[^!]*!//
15559:repl
15560t repl
15561s/'"$ac_delim"'$//
15562t delim
15563:nl
15564h
15565s/\(.\{148\}\)..*/\1/
15566t more1
15567s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
15568p
15569n
15570b repl
15571:more1
15572s/["\\]/\\&/g; s/^/"/; s/$/"\\/
15573p
15574g
15575s/.\{148\}//
15576t nl
15577:delim
15578h
15579s/\(.\{148\}\)..*/\1/
15580t more2
15581s/["\\]/\\&/g; s/^/"/; s/$/"/
15582p
15583b
15584:more2
15585s/["\\]/\\&/g; s/^/"/; s/$/"\\/
15586p
15587g
15588s/.\{148\}//
15589t delim
15590' <conf$$subs.awk | sed '
15591/^[^""]/{
15592 N
15593 s/\n//
15594}
15595' >>$CONFIG_STATUS || ac_write_fail=1
15596rm -f conf$$subs.awk
15597cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
15598_ACAWK
15599cat >>"\$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
15626cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
15627if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
15628 sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
15629else
15630 cat
15631fi < "$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).
15639if test "x$srcdir" = x.; then
15640 ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
15641h
15642s///
15643s/^/:/
15644s/[ ]*$/:/
15645s/:\$(srcdir):/:/g
15646s/:\${srcdir}:/:/g
15647s/:@srcdir@:/:/g
15648s/^:*//
15649s/:*$//
15650x
15651s/\(=[ ]*\).*/\1/
15652G
15653s/\n//
15654s/^[^=]*=[ ]*$//
15655}'
15656fi
15657
15658cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
15659fi # 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'.
15664if test -n "$CONFIG_HEADERS"; then
15665cat >"$tmp/defines.awk" <<\_ACAWK ||
15666BEGIN {
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.
15675ac_delim='%!_!# '
15676for 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
15685done
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
15691ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
15692sed -n '
15693s/.\{148\}/&'"$ac_delim"'/g
15694t rset
15695:rset
15696s/^[ ]*#[ ]*define[ ][ ]*/ /
15697t def
15698d
15699:def
15700s/\\$//
15701t bsnl
15702s/["\\]/\\&/g
15703s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
15704D["\1"]=" \3"/p
15705s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
15706d
15707:bsnl
15708s/["\\]/\\&/g
15709s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
15710D["\1"]=" \3\\\\\\n"\\/p
15711t cont
15712s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
15713t cont
15714d
15715:cont
15716n
15717s/.\{148\}/&'"$ac_delim"'/g
15718t clear
15719:clear
15720s/\\$//
15721t bsnlc
15722s/["\\]/\\&/g; s/^/"/; s/$/"/p
15723d
15724:bsnlc
15725s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
15726b cont
15727' <confdefs.h | sed '
15728s/'"$ac_delim"'/"\\\
15729"/g' >>$CONFIG_STATUS || ac_write_fail=1
15730
15731cat >>$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
15765cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
15766 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
15767fi # test -n "$CONFIG_HEADERS"
15768
15769
15770eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
15771shift
15772for ac_tag
15773do
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
15865case "$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 ;;
15875esac
15876ac_abs_top_builddir=$ac_pwd
15877ac_abs_builddir=$ac_pwd$ac_dir_suffix
15878# for backward compatibility:
15879ac_top_builddir=$ac_top_build_prefix
15880
15881case $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 ;;
15894esac
15895ac_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
15915cat >>$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.
15918ac_datarootdir_hack=; ac_datarootdir_seen=
15919ac_sed_dataroot='
15920/datarootdir/ {
15921 p
15922 q
15923}
15924/@datadir@/p
15925/@docdir@/p
15926/@infodir@/p
15927/@localedir@/p
15928/@mandir@/p'
15929case `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
15935cat >>$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' ;;
15943esac
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?
15949cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
15950ac_sed_extra="$ac_vpsub
15951$extrasub
15952_ACEOF
15953cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
15954:t
15955/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
15956s|@configure_input@|$ac_sed_conf_input|;t t
15957s&@top_builddir@&$ac_top_builddir_sub&;t t
15958s&@top_build_prefix@&$ac_top_build_prefix&;t t
15959s&@srcdir@&$ac_srcdir&;t t
15960s&@abs_srcdir@&$ac_abs_srcdir&;t t
15961s&@top_srcdir@&$ac_top_srcdir&;t t
15962s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
15963s&@builddir@&$ac_builddir&;t t
15964s&@abs_builddir@&$ac_abs_builddir&;t t
15965s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
15966s&@INSTALL@&$ac_INSTALL&;t t
15967s&@MKDIR_P@&$ac_MKDIR_P&;t t
15968$ac_datarootdir_hack
15969"
15970eval 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
15973test -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'
15977which 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'
15979which 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
16014for _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
16021done
16022echo "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.
16198available_tags=""
16199
16200# ### BEGIN LIBTOOL CONFIG
16201
16202# Assembler program.
16203AS=$AS
16204
16205# DLL creation program.
16206DLLTOOL=$DLLTOOL
16207
16208# Object dumper program.
16209OBJDUMP=$OBJDUMP
16210
16211# Which release of libtool.m4 was used?
16212macro_version=$macro_version
16213macro_revision=$macro_revision
16214
16215# Whether or not to build shared libraries.
16216build_libtool_libs=$enable_shared
16217
16218# Whether or not to build static libraries.
16219build_old_libs=$enable_static
16220
16221# What type of objects to build.
16222pic_mode=$pic_mode
16223
16224# Whether or not to optimize for fast installation.
16225fast_install=$enable_fast_install
16226
16227# The host system.
16228host_alias=$host_alias
16229host=$host
16230host_os=$host_os
16231
16232# The build system.
16233build_alias=$build_alias
16234build=$build
16235build_os=$build_os
16236
16237# A sed program that does not truncate output.
16238SED=$lt_SED
16239
16240# Sed that helps us avoid accidentally triggering echo(1) options like -n.
16241Xsed="\$SED -e 1s/^X//"
16242
16243# A grep program that handles long lines.
16244GREP=$lt_GREP
16245
16246# An ERE matcher.
16247EGREP=$lt_EGREP
16248
16249# A literal string matcher.
16250FGREP=$lt_FGREP
16251
16252# A BSD- or MS-compatible name lister.
16253NM=$lt_NM
16254
16255# Whether we need soft or hard links.
16256LN_S=$lt_LN_S
16257
16258# What is the maximum length of a command?
16259max_cmd_len=$max_cmd_len
16260
16261# Object file suffix (normally "o").
16262objext=$ac_objext
16263
16264# Executable file suffix (normally "").
16265exeext=$exeext
16266
16267# whether the shell understands "unset".
16268lt_unset=$lt_unset
16269
16270# turn spaces into newlines.
16271SP2NL=$lt_lt_SP2NL
16272
16273# turn newlines into spaces.
16274NL2SP=$lt_lt_NL2SP
16275
16276# How to create reloadable object files.
16277reload_flag=$lt_reload_flag
16278reload_cmds=$lt_reload_cmds
16279
16280# Method to check whether dependent libraries are shared objects.
16281deplibs_check_method=$lt_deplibs_check_method
16282
16283# Command to use when deplibs_check_method == "file_magic".
16284file_magic_cmd=$lt_file_magic_cmd
16285
16286# The archiver.
16287AR=$lt_AR
16288AR_FLAGS=$lt_AR_FLAGS
16289
16290# A symbol stripping program.
16291STRIP=$lt_STRIP
16292
16293# Commands used to install an old-style archive.
16294RANLIB=$lt_RANLIB
16295old_postinstall_cmds=$lt_old_postinstall_cmds
16296old_postuninstall_cmds=$lt_old_postuninstall_cmds
16297
16298# A C compiler.
16299LTCC=$lt_CC
16300
16301# LTCC compiler flags.
16302LTCFLAGS=$lt_CFLAGS
16303
16304# Take the output of nm and produce a listing of raw symbols and C names.
16305global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
16306
16307# Transform the output of nm in a proper C declaration.
16308global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
16309
16310# Transform the output of nm in a C name address pair.
16311global_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.
16314global_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.
16317objdir=$objdir
16318
16319# Shell to use when invoking shell scripts.
16320SHELL=$lt_SHELL
16321
16322# An echo program that does not interpret backslashes.
16323ECHO=$lt_ECHO
16324
16325# Used to examine libraries when file_magic_cmd begins with "file".
16326MAGIC_CMD=$MAGIC_CMD
16327
16328# Must we lock files when doing compilation?
16329need_locks=$lt_need_locks
16330
16331# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
16332DSYMUTIL=$lt_DSYMUTIL
16333
16334# Tool to change global to local symbols on Mac OS X.
16335NMEDIT=$lt_NMEDIT
16336
16337# Tool to manipulate fat objects and archives on Mac OS X.
16338LIPO=$lt_LIPO
16339
16340# ldd/readelf like tool for Mach-O binaries on Mac OS X.
16341OTOOL=$lt_OTOOL
16342
16343# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
16344OTOOL64=$lt_OTOOL64
16345
16346# Old archive suffix (normally "a").
16347libext=$libext
16348
16349# Shared library suffix (normally ".so").
16350shrext_cmds=$lt_shrext_cmds
16351
16352# The commands to extract the exported symbol list from a shared archive.
16353extract_expsyms_cmds=$lt_extract_expsyms_cmds
16354
16355# Variables whose values should be saved in libtool wrapper scripts and
16356# restored at link time.
16357variables_saved_for_relink=$lt_variables_saved_for_relink
16358
16359# Do we need the "lib" prefix for modules?
16360need_lib_prefix=$need_lib_prefix
16361
16362# Do we need a version for libraries?
16363need_version=$need_version
16364
16365# Library versioning type.
16366version_type=$version_type
16367
16368# Shared library runtime path variable.
16369runpath_var=$runpath_var
16370
16371# Shared library path variable.
16372shlibpath_var=$shlibpath_var
16373
16374# Is shlibpath searched before the hard-coded library search path?
16375shlibpath_overrides_runpath=$shlibpath_overrides_runpath
16376
16377# Format of library name prefix.
16378libname_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
16382library_names_spec=$lt_library_names_spec
16383
16384# The coded name of the library, if different from the real name.
16385soname_spec=$lt_soname_spec
16386
16387# Command to use after installation of a shared archive.
16388postinstall_cmds=$lt_postinstall_cmds
16389
16390# Command to use after uninstallation of a shared archive.
16391postuninstall_cmds=$lt_postuninstall_cmds
16392
16393# Commands used to finish a libtool library installation in a directory.
16394finish_cmds=$lt_finish_cmds
16395
16396# As "finish_cmds", except a single script fragment to be evaled but
16397# not shown.
16398finish_eval=$lt_finish_eval
16399
16400# Whether we should hardcode library paths into libraries.
16401hardcode_into_libs=$hardcode_into_libs
16402
16403# Compile-time system search path for libraries.
16404sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
16405
16406# Run-time system search path for libraries.
16407sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
16408
16409# Whether dlopen is supported.
16410dlopen_support=$enable_dlopen
16411
16412# Whether dlopen of programs is supported.
16413dlopen_self=$enable_dlopen_self
16414
16415# Whether dlopen of statically linked programs is supported.
16416dlopen_self_static=$enable_dlopen_self_static
16417
16418# Commands to strip libraries.
16419old_striplib=$lt_old_striplib
16420striplib=$lt_striplib
16421
16422
16423# The linker used to build libraries.
16424LD=$lt_LD
16425
16426# Commands used to build an old-style archive.
16427old_archive_cmds=$lt_old_archive_cmds
16428
16429# A language specific compiler.
16430CC=$lt_compiler
16431
16432# Is the compiler the GNU compiler?
16433with_gcc=$GCC
16434
16435# Compiler flag to turn off builtin functions.
16436no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
16437
16438# How to pass a linker flag through the compiler.
16439wl=$lt_lt_prog_compiler_wl
16440
16441# Additional compiler flags for building library objects.
16442pic_flag=$lt_lt_prog_compiler_pic
16443
16444# Compiler flag to prevent dynamic linking.
16445link_static_flag=$lt_lt_prog_compiler_static
16446
16447# Does compiler simultaneously support -c and -o options?
16448compiler_c_o=$lt_lt_cv_prog_compiler_c_o
16449
16450# Whether or not to add -lc for building shared libraries.
16451build_libtool_need_lc=$archive_cmds_need_lc
16452
16453# Whether or not to disallow shared libs when runtime libs are static.
16454allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
16455
16456# Compiler flag to allow reflexive dlopens.
16457export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
16458
16459# Compiler flag to generate shared objects directly from archives.
16460whole_archive_flag_spec=$lt_whole_archive_flag_spec
16461
16462# Whether the compiler copes with passing no objects directly.
16463compiler_needs_object=$lt_compiler_needs_object
16464
16465# Create an old-style archive from a shared archive.
16466old_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.
16469old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
16470
16471# Commands used to build a shared archive.
16472archive_cmds=$lt_archive_cmds
16473archive_expsym_cmds=$lt_archive_expsym_cmds
16474
16475# Commands used to build a loadable module if different from building
16476# a shared archive.
16477module_cmds=$lt_module_cmds
16478module_expsym_cmds=$lt_module_expsym_cmds
16479
16480# Whether we are building with GNU ld or not.
16481with_gnu_ld=$lt_with_gnu_ld
16482
16483# Flag that allows shared libraries with undefined symbols to be built.
16484allow_undefined_flag=$lt_allow_undefined_flag
16485
16486# Flag that enforces no undefined symbols.
16487no_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
16491hardcode_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.
16495hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
16496
16497# Whether we need a single "-rpath" flag with a separated argument.
16498hardcode_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.
16502hardcode_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.
16508hardcode_direct_absolute=$hardcode_direct_absolute
16509
16510# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
16511# into the resulting binary.
16512hardcode_minus_L=$hardcode_minus_L
16513
16514# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
16515# into the resulting binary.
16516hardcode_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.
16521hardcode_automatic=$hardcode_automatic
16522
16523# Set to yes if linker adds runtime paths of dependent libraries
16524# to runtime path list.
16525inherit_rpath=$inherit_rpath
16526
16527# Whether libtool must link a program against all its dependency libraries.
16528link_all_deplibs=$link_all_deplibs
16529
16530# Fix the shell variable \$srcfile for the compiler.
16531fix_srcfile_path=$lt_fix_srcfile_path
16532
16533# Set to "yes" if exported symbols are required.
16534always_export_symbols=$always_export_symbols
16535
16536# The commands to list exported symbols.
16537export_symbols_cmds=$lt_export_symbols_cmds
16538
16539# Symbols that should not be listed in the preloaded symbols.
16540exclude_expsyms=$lt_exclude_expsyms
16541
16542# Symbols that must always be exported.
16543include_expsyms=$lt_include_expsyms
16544
16545# Commands necessary for linking programs (against libraries) with templates.
16546prelink_cmds=$lt_prelink_cmds
16547
16548# Specify filename containing input files.
16549file_list_spec=$lt_file_list_spec
16550
16551# How to hardcode a shared library path into an executable.
16552hardcode_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.
16564if test "X${COLLECT_NAMES+set}" != Xset; then
16565 COLLECT_NAMES=
16566 export COLLECT_NAMES
16567fi
16568_LT_EOF
16569 ;;
16570 esac
16571
16572
16573ltmain="$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.
16590func_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
16599func_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.
16616func_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).
16630func_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
16640func_opt_split ()
16641{
16642 func_opt_split_opt=${1%%=*}
16643 func_opt_split_arg=${1#*=}
16644}
16645
16646# func_lo2o object
16647func_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
16656func_xform ()
16657{
16658 func_xform_result=${1%.*}.lo
16659}
16660
16661# func_arith arithmetic-term...
16662func_arith ()
16663{
16664 func_arith_result=$(( $* ))
16665}
16666
16667# func_len string
16668# STRING may not start with a hyphen.
16669func_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.
16682func_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
16694func_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
16706func_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:
16717my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
16718my_sed_long_arg='1s/^-[^=]*=//'
16719
16720# func_opt_split
16721func_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
16728func_lo2o ()
16729{
16730 func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
16731}
16732
16733# func_xform libobj-or-source
16734func_xform ()
16735{
16736 func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'`
16737}
16738
16739# func_arith arithmetic-term...
16740func_arith ()
16741{
16742 func_arith_result=`expr "$@"`
16743}
16744
16745# func_len string
16746# STRING may not start with a hyphen.
16747func_len ()
16748{
16749 func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
16750}
16751
16752_LT_EOF
16753esac
16754
16755case $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.
16761func_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.
16772func_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
16792done # for ac_tag
16793
16794
16795as_fn_exit 0
16796_ACEOF
16797ac_clean_files=$ac_clean_files_save
16798
16799test $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.
16811if 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
16822fi
16823if 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;}
16826fi
16827
16828
16829
16830#####################################################################
16831## Info
16832
16833echo
16834echo
16835echo
16836echo "------------------------------------------------------------------------"
16837echo "$PACKAGE_NAME $PACKAGE_VERSION"
16838echo "------------------------------------------------------------------------"
16839echo
16840echo "Configuration Options Summary:"
16841echo
16842echo " Amalgamation.........: ${do_amalgamation}"
16843echo " Secure layer.........: ${secure_layer}"
16844if test "x${have_gnutls}" = "xyes" || test "x${have_openssl}" = "xyes" ; then
16845 echo " Cipher support.....: ${have_cipher}"
16846 echo " Signature..........: ${have_signature}"
16847fi
16848echo
16849echo " Old eet file format..: ${old_eet_file_format}"
16850echo
16851echo " Tests................: ${enable_tests}"
16852echo " Coverage.............: ${enable_coverage}"
16853echo
16854echo " Build eet............: $have_eet"
16855echo
16856echo " Documentation........: ${build_doc}"
16857if test "x${build_doc}" = "xyes" ; then
16858 echo " Building...........: make doc"
16859fi
16860echo " Examples.............: ${build_examples}"
16861if test "x${build_examples}" = "xyes" ; then
16862 echo " Install............: ${install_examples}"
16863fi
16864echo
16865echo "Compilation............: make (or gmake)"
16866echo " CPPFLAGS.............: $CPPFLAGS"
16867echo " CFLAGS...............: $CFLAGS"
16868echo " LDFLAGS..............: $LDFLAGS"
16869echo
16870echo "Installation...........: make install (as root if needed, with 'su' or 'sudo')"
16871echo " prefix...............: $prefix"
16872echo
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##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
3m4_define([v_maj], [1])
4m4_define([v_min], [6])
5m4_define([v_mic], [0])
6m4_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']))
7m4_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
9m4_undefine([v_rev])
10##-- When doing snapshots - change soname. remove dnl on below line
11dnl m4_define([relname], [ver-pre-svn-05])
12dnl m4_define([v_rel], [-release relname])
13##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
14m4_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])])
15m4_define([lt_cur], m4_eval(v_maj + v_min))
16m4_define([lt_rev], v_mic)
17m4_define([lt_age], v_min)
18##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
19##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
20
21AC_INIT([eet], [v_ver]-alpha, [enlightenment-devel@lists.sourceforge.net])
22AC_PREREQ([2.52])
23AC_CONFIG_SRCDIR([configure.ac])
24AC_CONFIG_MACRO_DIR([m4])
25
26AC_CONFIG_HEADERS([config.h])
27AH_TOP([
28#ifndef EFL_CONFIG_H__
29#define EFL_CONFIG_H__
30])
31AH_BOTTOM([
32#endif /* EFL_CONFIG_H__ */
33])
34
35AM_INIT_AUTOMAKE([1.6 dist-bzip2])
36m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
37
38AC_LIBTOOL_WIN32_DLL
39define([AC_LIBTOOL_LANG_CXX_CONFIG], [:])dnl
40define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
41AC_PROG_LIBTOOL
42
43##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
44##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
45m4_ifdef([v_rev], , [m4_define([v_rev], [0])])
46m4_ifdef([v_rel], , [m4_define([v_rel], [])])
47AC_DEFINE_UNQUOTED(VMAJ, [v_maj], [Major version])
48AC_DEFINE_UNQUOTED(VMIN, [v_min], [Minor version])
49AC_DEFINE_UNQUOTED(VMIC, [v_mic], [Micro version])
50AC_DEFINE_UNQUOTED(VREV, [v_rev], [Revison])
51version_info="lt_cur:lt_rev:lt_age"
52release_info="v_rel"
53AC_SUBST(version_info)
54AC_SUBST(release_info)
55##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
56##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
57VMAJ=v_maj
58AC_SUBST(VMAJ)
59
60
61### Needed information
62
63AC_CANONICAL_BUILD
64AC_CANONICAL_HOST
65
66### Default options with respect to host
67
68want_gnutls="auto"
69want_openssl="auto"
70want_cipher="yes"
71want_signature="yes"
72
73requirement_eet=""
74
75
76### Additional options to configure
77
78# Amalgamation
79
80AC_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)
90AM_CONDITIONAL(EET_AMALGAMATION, test "x${do_amalgamation}" = "xyes")
91
92EFL_ENABLE_BIN([eet])
93
94# Old eet file format support
95
96old_eet_file_format="yes"
97AC_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)
104AC_MSG_CHECKING([whether to support old eet file format])
105AC_MSG_RESULT([${old_eet_file_format}])
106
107if test "x${old_eet_file_format}" = "xyes" ; then
108 AC_DEFINE(EET_OLD_EET_FILE_FORMAT, 1, [support old eet file format])
109else
110 AC_DEFINE(EET_OLD_EET_FILE_FORMAT, 0, [support old eet file format])
111fi
112
113# Openssl support
114
115AC_ARG_ENABLE([openssl],
116 [AC_HELP_STRING([--disable-openssl], [disable openssl eet support])],
117 [want_openssl=$enableval]
118)
119AC_MSG_CHECKING([whether to use OpenSSL])
120AC_MSG_RESULT([${want_openssl}])
121
122# Cryptography support
123
124AC_ARG_ENABLE([cipher],
125 [AC_HELP_STRING([--disable-cipher], [disable cipher support for eet API])],
126 [want_cipher=$enableval]
127)
128AC_MSG_CHECKING([whether to use cipher])
129AC_MSG_RESULT([${want_cipher}])
130
131AC_ARG_ENABLE([signature],
132 [AC_HELP_STRING([--disable-signature], [disable signature file support for eet])],
133 [want_signature=$enableval]
134)
135AC_MSG_CHECKING([whether to use signature])
136AC_MSG_RESULT([${want_signature}])
137
138# Assert or fail.
139prefer_assert="no"
140AC_ARG_ENABLE([assert],
141 [AC_HELP_STRING([--enable-assert], [enable assert, [[default=disabled]]])],
142 [prefer_assert=$enableval]
143)
144
145# Examples
146
147AC_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"])
158AM_CONDITIONAL([INSTALL_EXAMPLES], [test "x${install_examples}" = "xyes"])
159
160AC_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"])
171AM_CONDITIONAL([BUILD_EXAMPLES], [test "x${build_examples}" = "xyes"])
172
173# Unit tests, coverage and benchmarking
174
175EFL_CHECK_TESTS([enable_tests="yes"], [enable_tests="no"])
176EFL_CHECK_COVERAGE([${enable_tests}], [enable_coverage="yes"], [enable_coverage="no"])
177
178if test "x${prefer_assert}" = "xno"; then
179 DEBUG_CFLAGS="-DNDEBUG"
180else
181# use debug symbols and set DEBUG if coverage support is enabled
182 DEBUG_CFLAGS="${EFL_DEBUG_CFLAGS}"
183fi
184AC_SUBST(DEBUG_CFLAGS)
185
186
187### Checks for programs
188AC_PROG_CC
189
190# pkg-config
191PKG_PROG_PKG_CONFIG
192
193# Check whether pkg-config supports Requires.private
194if $PKG_CONFIG --atleast-pkgconfig-version 0.22; then
195 pkgconfig_requires_private="Requires.private"
196else
197 pkgconfig_requires_private="Requires"
198fi
199AC_SUBST(pkgconfig_requires_private)
200
201
202# doxygen program for documentation building
203
204EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"])
205
206### Checks for libraries
207
208# Evil library for compilation on Windows
209
210EFL_EET_BUILD=""
211case "$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 ;;
218esac
219AC_SUBST(EFL_EET_BUILD)
220
221EET_LIBS=""
222case "$host_os" in
223 mingw32ce*)
224 EET_LIBS="-lws2"
225 ;;
226 mingw*)
227 EET_LIBS="-lws2_32"
228 ;;
229esac
230AC_SUBST(EET_LIBS)
231
232# Eina library
233
234PKG_CHECK_MODULES(EINA, [eina >= 1.2.0])
235requirement_eet="eina >= 1.2.0 ${requirement_eet}"
236
237### Checks for portability layer
238
239PKG_CHECK_MODULES([EXOTIC],
240 [exotic],
241 [enable_exotic="yes"],
242 [enable_exotic="no"])
243
244if 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.])
248fi
249
250# Gnutls support
251
252AC_ARG_ENABLE([gnutls],
253 [AC_HELP_STRING([--disable-gnutls], [disable gnutls eet support])],
254 [want_gnutls=$enableval]
255)
256AC_MSG_CHECKING([whether to use Gnutls])
257AC_MSG_RESULT([${want_gnutls}])
258
259# Gnutls library
260have_gnutls="no"
261if 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
277fi
278
279# Specific GNUTLS improvement
280
281new_gnutls_api="yes"
282AC_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)
289AC_MSG_CHECKING([whether to use gnutls_x509_crt_verify_hash])
290AC_MSG_RESULT([${new_gnutls_api}])
291
292if 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
307fi
308
309use_gnutls_privkey_sign_data="no"
310if 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
325fi
326AC_MSG_CHECKING([whether to use gnutls_privkey_sign_data])
327AC_MSG_RESULT([${use_gnutls_privkey_sign_data}])
328
329use_gnutls_pubkey_verify_hash="no"
330if 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
345fi
346AC_MSG_CHECKING([whether to use gnutls_pubkey_verify_hash])
347AC_MSG_RESULT([${use_gnutls_pubkey_verify_hash}])
348
349# Openssl library
350have_openssl="no"
351if 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"])
359fi
360
361if test "x${have_gnutls}" = "xyes" ; then
362 secure_layer="GnuTLS"
363elif test "x${have_openssl}" = "xyes" ; then
364 secure_layer="OpenSSL"
365else
366 secure_layer="no"
367fi
368
369have_cipher="no"
370if 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])
373elif 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])
376fi
377
378AC_MSG_CHECKING(whether to activate cipher support in eet)
379AC_MSG_RESULT(${have_cipher})
380
381have_signature="no"
382if 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])
385elif 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])
388fi
389
390AC_MSG_CHECKING(whether to activate signature support in eet)
391AC_MSG_RESULT(${have_signature})
392
393### Checks for header files
394
395AC_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
399AC_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
403AC_CHECK_HEADERS(netinet/in.h unistd.h)
404EFL_CHECK_PATH_MAX
405
406### Checks for types
407
408
409### Checks for structures
410
411
412### Checks for compiler characteristics
413AM_PROG_CC_C_O
414AC_C_CONST
415AC_C_INLINE
416AC_PROG_CC_STDC
417AC_C___ATTRIBUTE__
418
419# Check whether the null pointer is zero on this arch
420AC_TRY_RUN(
421 [
422#include <stdlib.h>
423#include <inttypes.h>
424int 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 ])
436AC_MSG_CHECKING([value of the null pointer])
437AC_MSG_RESULT([${have_null}])
438
439if test ! "x${have_null}" = "xyes" ; then
440 AC_MSG_WARN([Your system is a bit too funny, eet might not work properly])
441fi
442
443# These are needed for fmemopen/open_memstream
444AC_DEFINE(_GNU_SOURCE, , [Enable GNU extensions])
445
446EET_CPPFLAGS=""
447EET_CFLAGS=""
448case "$host_os" in
449 mingw32ce*)
450 EET_CPPFLAGS="-D_WIN32_WCE=0x0420"
451 ;;
452 mingw*)
453 EET_CPPFLAGS="-D_WIN32_WINNT=0x0501"
454 ;;
455esac
456AC_SUBST(EET_CPPFLAGS)
457AC_SUBST(EET_CFLAGS)
458
459
460### Checks for linker characteristics
461
462# use --enable-auto-import on Windows
463
464lt_enable_auto_import=""
465case "$host_os" in
466 mingw*)
467 lt_enable_auto_import="-Wl,--enable-auto-import"
468 ;;
469esac
470AC_SUBST(lt_enable_auto_import)
471
472case "${host_os}" in
473 openbsd*)
474 ;;
475 *)
476 EFL_LINKER_FLAG([-Wl,--as-needed])
477 ;;
478esac
479
480
481### Checks for library functions
482AC_ISC_POSIX
483AC_FUNC_ALLOCA
484
485AC_CHECK_FUNCS(fmemopen open_memstream realpath)
486
487EFL_CHECK_FNMATCH([], [AC_MSG_ERROR([Cannot find fnmatch()])])
488
489
490AC_SUBST(requirement_eet)
491
492AC_OUTPUT([
493Makefile
494eet.pc
495doc/Makefile
496doc/Doxyfile
497doc/eet.dox
498src/Makefile
499src/lib/Makefile
500src/bin/Makefile
501src/tests/Makefile
502src/examples/Makefile
503eet.spec
504])
505
506
507#####################################################################
508## Info
509
510echo
511echo
512echo
513echo "------------------------------------------------------------------------"
514echo "$PACKAGE_NAME $PACKAGE_VERSION"
515echo "------------------------------------------------------------------------"
516echo
517echo "Configuration Options Summary:"
518echo
519echo " Amalgamation.........: ${do_amalgamation}"
520echo " Secure layer.........: ${secure_layer}"
521if test "x${have_gnutls}" = "xyes" || test "x${have_openssl}" = "xyes" ; then
522 echo " Cipher support.....: ${have_cipher}"
523 echo " Signature..........: ${have_signature}"
524fi
525echo
526echo " Old eet file format..: ${old_eet_file_format}"
527echo
528echo " Tests................: ${enable_tests}"
529echo " Coverage.............: ${enable_coverage}"
530echo
531echo " Build eet............: $have_eet"
532echo
533echo " Documentation........: ${build_doc}"
534if test "x${build_doc}" = "xyes" ; then
535 echo " Building...........: make doc"
536fi
537echo " Examples.............: ${build_examples}"
538if test "x${build_examples}" = "xyes" ; then
539 echo " Install............: ${install_examples}"
540fi
541echo
542echo "Compilation............: make (or gmake)"
543echo " CPPFLAGS.............: $CPPFLAGS"
544echo " CFLAGS...............: $CFLAGS"
545echo " LDFLAGS..............: $LDFLAGS"
546echo
547echo "Installation...........: make install (as root if needed, with 'su' or 'sudo')"
548echo " prefix...............: $prefix"
549echo
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
4scriptversion=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
29case $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
36Usage: depcomp [--help] [--version] PROGRAM [ARGS]
37
38Run PROGRAMS ARGS to compile a file, generating dependencies
39as side-effects.
40
41Environment 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
50Report bugs to <bug-automake@gnu.org>.
51EOF
52 exit $?
53 ;;
54 -v | --v*)
55 echo "depcomp $scriptversion"
56 exit $?
57 ;;
58esac
59
60if 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
63fi
64
65# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
66depfile=${depfile-`echo "$object" |
67 sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
68tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
69
70rm -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.
76if test "$depmode" = hp; then
77 # HP compiler uses -M and no extra arg.
78 gccflag=-M
79 depmode=gcc
80fi
81
82if test "$depmode" = dashXmstdout; then
83 # This is just like dashmstdout with a different argument.
84 dashmflag=-xM
85 depmode=dashmstdout
86fi
87
88cygpath_u="cygpath -u -f -"
89if 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
95fi
96
97case "$depmode" in
98gcc3)
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
125gcc)
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
168hp)
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
175sgi)
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
219aix)
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
267icc)
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
305hp2)
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
350tru64)
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
412dashmstdout)
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
460dashXmstdout)
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
466makedepend)
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
515cpp)
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
558msvisualcpp)
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
603msvcmsys)
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
610none)
611 exec "$@"
612 ;;
613
614*)
615 echo "Unknown depmode $depmode" 1>&2
616 exit 1
617 ;;
618esac
619
620exit 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
23DOXYFILE_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
28PROJECT_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
34PROJECT_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
38PROJECT_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
45PROJECT_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
52OUTPUT_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
61CREATE_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
74OUTPUT_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
81BRIEF_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
88REPEAT_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
100ABBREVIATE_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
106ALWAYS_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
113INLINE_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
119FULL_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
128STRIP_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
137STRIP_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
143SHORT_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
151JAVADOC_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
159QT_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
167MULTILINE_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
173INHERIT_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
179SEPARATE_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
184TAB_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
193ALIASES =
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
200OPTIMIZE_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
207OPTIMIZE_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
213OPTIMIZE_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
219OPTIMIZE_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
231EXTENSION_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
240BUILTIN_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
245CPP_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
251SIP_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
260IDL_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
267DISTRIBUTE_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
275SUBGROUPING = 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
285TYPEDEF_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
301SYMBOL_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
312EXTRACT_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
317EXTRACT_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
322EXTRACT_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
328EXTRACT_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
335EXTRACT_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
343EXTRACT_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
351HIDE_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
358HIDE_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
365HIDE_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
372HIDE_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
379INTERNAL_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
387CASE_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
393HIDE_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
399SHOW_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
405FORCE_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
410INLINE_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
417SORT_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
424SORT_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
434SORT_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
440SORT_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
450SORT_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
456STRICT_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
462GENERATE_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
468GENERATE_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
474GENERATE_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
480GENERATE_DEPRECATEDLIST= YES
481
482# The ENABLED_SECTIONS tag can be used to enable conditional
483# documentation sections, marked by \if sectionname ... \endif.
484
485ENABLED_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
495MAX_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
501SHOW_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
507SHOW_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
513SHOW_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
520SHOW_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
530FILE_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
539LAYOUT_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
548QUIET = 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
554WARNINGS = 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
560WARN_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
567WARN_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
575WARN_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
584WARN_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
590WARN_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
601INPUT = ./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
611INPUT_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
621FILE_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
628RECURSIVE = 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
634EXCLUDE = ../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
640EXCLUDE_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
648EXCLUDE_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
656EXCLUDE_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
662EXAMPLE_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
669EXAMPLE_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
676EXAMPLE_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
682IMAGE_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
693INPUT_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
704FILTER_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
710FILTER_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
718FILTER_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
729SOURCE_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
734INLINE_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
740STRIP_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
746REFERENCED_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
752REFERENCES_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
760REFERENCES_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
768USE_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
774VERBATIM_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
784ALPHABETICAL_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
790COLS_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
797IGNORE_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
811GENERATE_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
817HTML_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
823HTML_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
829HTML_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
835HTML_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
844HTML_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
854HTML_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
860HTML_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
869HTML_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
875HTML_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
881HTML_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
889HTML_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
902GENERATE_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
909DOCSET_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
916DOCSET_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
922DOCSET_PUBLISHER_ID = org.enlightenment.Eet
923
924# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
925
926DOCSET_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
933GENERATE_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
940CHM_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
947HHC_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
953GENERATE_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
959CHM_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
965BINARY_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
970TOC_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
977GENERATE_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
983QCH_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
989QHP_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
995QHP_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
1001QHP_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
1008QHP_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
1016QHP_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
1023QHG_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
1034GENERATE_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
1040ECLIPSE_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
1046DISABLE_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
1052ENUM_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
1062GENERATE_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
1067USE_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
1073TREEVIEW_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
1078EXT_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
1086FORMULA_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
1094FORMULA_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
1103USE_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
1113MATHJAX_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
1123SEARCHENGINE = 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
1133SERVER_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
1142GENERATE_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
1148LATEX_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
1156LATEX_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
1162MAKEINDEX_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
1168COMPACT_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
1174PAPER_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
1179EXTRA_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
1186LATEX_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
1193PDF_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
1199USE_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
1206LATEX_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
1212LATEX_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
1219LATEX_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
1229GENERATE_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
1235RTF_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
1241COMPACT_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
1250RTF_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
1256RTF_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
1261RTF_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
1270GENERATE_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
1276MAN_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
1281MAN_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
1289MAN_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
1299GENERATE_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
1305XML_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
1311XML_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
1317XML_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
1324XML_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
1336GENERATE_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
1348GENERATE_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
1354PERLMOD_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
1364PERLMOD_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
1371PERLMOD_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
1381ENABLE_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
1388MACRO_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
1394EXPAND_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
1399SEARCH_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
1405INCLUDE_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
1412INCLUDE_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
1422PREDEFINED = 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
1436EXPAND_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
1443SKIP_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
1466TAGFILES =
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
1471GENERATE_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
1477ALLEXTERNALS = 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
1483EXTERNAL_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
1488PERL_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
1500CLASS_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
1509MSCGEN_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
1515HIDE_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
1522HAVE_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
1530DOT_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
1540DOT_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
1545DOT_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
1552DOT_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
1559CLASS_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
1566COLLABORATION_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
1571GROUP_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
1577UML_LOOK = NO
1578
1579# If set to YES, the inheritance and collaboration graphs will show the
1580# relations between templates and their instances.
1581
1582TEMPLATE_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
1589INCLUDE_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
1596INCLUDED_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
1604CALL_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
1612CALLER_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
1617GRAPHICAL_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
1624DIRECTORY_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
1630DOT_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
1635DOT_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
1641DOTFILE_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
1647MSCFILE_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
1657DOT_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
1667MAX_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
1675DOT_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
1682DOT_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
1688GENERATE_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
1694DOT_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
23DOXYFILE_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
28PROJECT_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
34PROJECT_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
38PROJECT_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
45PROJECT_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
52OUTPUT_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
61CREATE_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
74OUTPUT_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
81BRIEF_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
88REPEAT_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
100ABBREVIATE_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
106ALWAYS_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
113INLINE_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
119FULL_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
128STRIP_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
137STRIP_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
143SHORT_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
151JAVADOC_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
159QT_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
167MULTILINE_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
173INHERIT_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
179SEPARATE_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
184TAB_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
193ALIASES =
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
200OPTIMIZE_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
207OPTIMIZE_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
213OPTIMIZE_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
219OPTIMIZE_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
231EXTENSION_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
240BUILTIN_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
245CPP_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
251SIP_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
260IDL_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
267DISTRIBUTE_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
275SUBGROUPING = 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
285TYPEDEF_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
301SYMBOL_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
312EXTRACT_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
317EXTRACT_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
322EXTRACT_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
328EXTRACT_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
335EXTRACT_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
343EXTRACT_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
351HIDE_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
358HIDE_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
365HIDE_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
372HIDE_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
379INTERNAL_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
387CASE_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
393HIDE_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
399SHOW_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
405FORCE_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
410INLINE_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
417SORT_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
424SORT_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
434SORT_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
440SORT_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
450SORT_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
456STRICT_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
462GENERATE_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
468GENERATE_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
474GENERATE_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
480GENERATE_DEPRECATEDLIST= YES
481
482# The ENABLED_SECTIONS tag can be used to enable conditional
483# documentation sections, marked by \if sectionname ... \endif.
484
485ENABLED_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
495MAX_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
501SHOW_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
507SHOW_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
513SHOW_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
520SHOW_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
530FILE_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
539LAYOUT_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
548QUIET = 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
554WARNINGS = 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
560WARN_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
567WARN_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
575WARN_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
584WARN_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
590WARN_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
601INPUT = @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
611INPUT_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
621FILE_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
628RECURSIVE = 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
634EXCLUDE = @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
640EXCLUDE_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
648EXCLUDE_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
656EXCLUDE_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
662EXAMPLE_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
669EXAMPLE_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
676EXAMPLE_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
682IMAGE_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
693INPUT_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
704FILTER_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
710FILTER_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
718FILTER_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
729SOURCE_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
734INLINE_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
740STRIP_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
746REFERENCED_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
752REFERENCES_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
760REFERENCES_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
768USE_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
774VERBATIM_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
784ALPHABETICAL_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
790COLS_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
797IGNORE_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
811GENERATE_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
817HTML_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
823HTML_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
829HTML_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
835HTML_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
844HTML_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
854HTML_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
860HTML_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
869HTML_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
875HTML_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
881HTML_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
889HTML_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
902GENERATE_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
909DOCSET_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
916DOCSET_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
922DOCSET_PUBLISHER_ID = org.enlightenment.Eet
923
924# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
925
926DOCSET_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
933GENERATE_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
940CHM_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
947HHC_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
953GENERATE_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
959CHM_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
965BINARY_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
970TOC_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
977GENERATE_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
983QCH_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
989QHP_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
995QHP_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
1001QHP_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
1008QHP_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
1016QHP_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
1023QHG_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
1034GENERATE_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
1040ECLIPSE_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
1046DISABLE_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
1052ENUM_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
1062GENERATE_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
1067USE_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
1073TREEVIEW_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
1078EXT_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
1086FORMULA_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
1094FORMULA_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
1103USE_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
1113MATHJAX_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
1123SEARCHENGINE = 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
1133SERVER_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
1142GENERATE_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
1148LATEX_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
1156LATEX_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
1162MAKEINDEX_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
1168COMPACT_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
1174PAPER_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
1179EXTRA_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
1186LATEX_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
1193PDF_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
1199USE_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
1206LATEX_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
1212LATEX_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
1219LATEX_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
1229GENERATE_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
1235RTF_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
1241COMPACT_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
1250RTF_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
1256RTF_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
1261RTF_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
1270GENERATE_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
1276MAN_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
1281MAN_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
1289MAN_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
1299GENERATE_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
1305XML_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
1311XML_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
1317XML_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
1324XML_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
1336GENERATE_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
1348GENERATE_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
1354PERLMOD_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
1364PERLMOD_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
1371PERLMOD_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
1381ENABLE_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
1388MACRO_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
1394EXPAND_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
1399SEARCH_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
1405INCLUDE_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
1412INCLUDE_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
1422PREDEFINED = 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
1436EXPAND_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
1443SKIP_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
1466TAGFILES =
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
1471GENERATE_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
1477ALLEXTERNALS = 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
1483EXTERNAL_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
1488PERL_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
1500CLASS_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
1509MSCGEN_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
1515HIDE_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
1522HAVE_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
1530DOT_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
1540DOT_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
1545DOT_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
1552DOT_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
1559CLASS_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
1566COLLABORATION_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
1571GROUP_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
1577UML_LOOK = NO
1578
1579# If set to YES, the inheritance and collaboration graphs will show the
1580# relations between templates and their instances.
1581
1582TEMPLATE_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
1589INCLUDE_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
1596INCLUDED_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
1604CALL_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
1612CALLER_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
1617GRAPHICAL_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
1624DIRECTORY_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
1630DOT_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
1635DOT_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
1641DOTFILE_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
1647MSCFILE_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
1657DOT_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
1667MAX_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
1675DOT_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
1682DOT_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
1688GENERATE_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
1694DOT_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
2MAINTAINERCLEANFILES = Makefile.in eet.dox
3
4.PHONY: doc
5
6PACKAGE_DOCNAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc
7
8if EFL_BUILD_DOC
9
10doc-clean:
11 rm -rf html/ latex/ xml/ $(PACKAGE_DOCNAME).tar*
12
13doc: 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
26clean-local: doc-clean
27
28else
29
30doc:
31 @echo "Documentation not built. Run ./configure --help"
32
33endif
34
35EXTRA_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@
17VPATH = @srcdir@
18pkgdatadir = $(datadir)/@PACKAGE@
19pkgincludedir = $(includedir)/@PACKAGE@
20pkglibdir = $(libdir)/@PACKAGE@
21pkglibexecdir = $(libexecdir)/@PACKAGE@
22am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
23install_sh_DATA = $(install_sh) -c -m 644
24install_sh_PROGRAM = $(install_sh) -c
25install_sh_SCRIPT = $(install_sh) -c
26INSTALL_HEADER = $(INSTALL_DATA)
27transform = $(program_transform_name)
28NORMAL_INSTALL = :
29PRE_INSTALL = :
30POST_INSTALL = :
31NORMAL_UNINSTALL = :
32PRE_UNINSTALL = :
33POST_UNINSTALL = :
34build_triplet = @build@
35host_triplet = @host@
36subdir = doc
37DIST_COMMON = $(srcdir)/Doxyfile.in $(srcdir)/Makefile.am \
38 $(srcdir)/Makefile.in $(srcdir)/eet.dox.in
39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
40am__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
51am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
52 $(ACLOCAL_M4)
53mkinstalldirs = $(install_sh) -d
54CONFIG_HEADER = $(top_builddir)/config.h
55CONFIG_CLEAN_FILES = Doxyfile eet.dox
56CONFIG_CLEAN_VPATH_FILES =
57AM_V_GEN = $(am__v_GEN_$(V))
58am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
59am__v_GEN_0 = @echo " GEN " $@;
60AM_V_at = $(am__v_at_$(V))
61am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
62am__v_at_0 = @
63SOURCES =
64DIST_SOURCES =
65DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
66ACLOCAL = @ACLOCAL@
67ALLOCA = @ALLOCA@
68AMTAR = @AMTAR@
69AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
70AR = @AR@
71AS = @AS@
72AUTOCONF = @AUTOCONF@
73AUTOHEADER = @AUTOHEADER@
74AUTOMAKE = @AUTOMAKE@
75AWK = @AWK@
76CC = @CC@
77CCDEPMODE = @CCDEPMODE@
78CFLAGS = @CFLAGS@
79CHECK_CFLAGS = @CHECK_CFLAGS@
80CHECK_LIBS = @CHECK_LIBS@
81CPP = @CPP@
82CPPFLAGS = @CPPFLAGS@
83CYGPATH_W = @CYGPATH_W@
84DEBUG_CFLAGS = @DEBUG_CFLAGS@
85DEFS = @DEFS@
86DEPDIR = @DEPDIR@
87DLLTOOL = @DLLTOOL@
88DSYMUTIL = @DSYMUTIL@
89DUMPBIN = @DUMPBIN@
90ECHO_C = @ECHO_C@
91ECHO_N = @ECHO_N@
92ECHO_T = @ECHO_T@
93EET_CFLAGS = @EET_CFLAGS@
94EET_CPPFLAGS = @EET_CPPFLAGS@
95EET_LIBS = @EET_LIBS@
96EET_PRG = @EET_PRG@
97EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
98EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
99EFL_EET_BUILD = @EFL_EET_BUILD@
100EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
101EGREP = @EGREP@
102EINA_CFLAGS = @EINA_CFLAGS@
103EINA_LIBS = @EINA_LIBS@
104EVIL_CFLAGS = @EVIL_CFLAGS@
105EVIL_LIBS = @EVIL_LIBS@
106EXEEXT = @EXEEXT@
107EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
108EXOTIC_LIBS = @EXOTIC_LIBS@
109FGREP = @FGREP@
110GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
111GNUTLS_LIBS = @GNUTLS_LIBS@
112GREP = @GREP@
113INSTALL = @INSTALL@
114INSTALL_DATA = @INSTALL_DATA@
115INSTALL_PROGRAM = @INSTALL_PROGRAM@
116INSTALL_SCRIPT = @INSTALL_SCRIPT@
117INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
118LD = @LD@
119LDFLAGS = @LDFLAGS@
120LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
121LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
122LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
123LIBOBJS = @LIBOBJS@
124LIBS = @LIBS@
125LIBTOOL = @LIBTOOL@
126LIPO = @LIPO@
127LN_S = @LN_S@
128LTLIBOBJS = @LTLIBOBJS@
129MAKEINFO = @MAKEINFO@
130MKDIR_P = @MKDIR_P@
131NM = @NM@
132NMEDIT = @NMEDIT@
133OBJDUMP = @OBJDUMP@
134OBJEXT = @OBJEXT@
135OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
136OPENSSL_LIBS = @OPENSSL_LIBS@
137OTOOL = @OTOOL@
138OTOOL64 = @OTOOL64@
139PACKAGE = @PACKAGE@
140PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
141PACKAGE_NAME = @PACKAGE_NAME@
142PACKAGE_STRING = @PACKAGE_STRING@
143PACKAGE_TARNAME = @PACKAGE_TARNAME@
144PACKAGE_URL = @PACKAGE_URL@
145PACKAGE_VERSION = @PACKAGE_VERSION@
146PATH_SEPARATOR = @PATH_SEPARATOR@
147PKG_CONFIG = @PKG_CONFIG@
148PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
149PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
150RANLIB = @RANLIB@
151SED = @SED@
152SET_MAKE = @SET_MAKE@
153SHELL = @SHELL@
154STRIP = @STRIP@
155VERSION = @VERSION@
156VMAJ = @VMAJ@
157abs_builddir = @abs_builddir@
158abs_srcdir = @abs_srcdir@
159abs_top_builddir = @abs_top_builddir@
160abs_top_srcdir = @abs_top_srcdir@
161ac_ct_CC = @ac_ct_CC@
162ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
163am__include = @am__include@
164am__leading_dot = @am__leading_dot@
165am__quote = @am__quote@
166am__tar = @am__tar@
167am__untar = @am__untar@
168bindir = @bindir@
169build = @build@
170build_alias = @build_alias@
171build_cpu = @build_cpu@
172build_os = @build_os@
173build_vendor = @build_vendor@
174builddir = @builddir@
175datadir = @datadir@
176datarootdir = @datarootdir@
177docdir = @docdir@
178dvidir = @dvidir@
179efl_doxygen = @efl_doxygen@
180efl_have_doxygen = @efl_have_doxygen@
181exec_prefix = @exec_prefix@
182have_lcov = @have_lcov@
183host = @host@
184host_alias = @host_alias@
185host_cpu = @host_cpu@
186host_os = @host_os@
187host_vendor = @host_vendor@
188htmldir = @htmldir@
189includedir = @includedir@
190infodir = @infodir@
191install_sh = @install_sh@
192libdir = @libdir@
193libexecdir = @libexecdir@
194localedir = @localedir@
195localstatedir = @localstatedir@
196lt_ECHO = @lt_ECHO@
197lt_enable_auto_import = @lt_enable_auto_import@
198mandir = @mandir@
199mkdir_p = @mkdir_p@
200oldincludedir = @oldincludedir@
201pdfdir = @pdfdir@
202pkgconfig_requires_private = @pkgconfig_requires_private@
203prefix = @prefix@
204program_transform_name = @program_transform_name@
205psdir = @psdir@
206release_info = @release_info@
207requirement_eet = @requirement_eet@
208sbindir = @sbindir@
209sharedstatedir = @sharedstatedir@
210srcdir = @srcdir@
211sysconfdir = @sysconfdir@
212target_alias = @target_alias@
213top_build_prefix = @top_build_prefix@
214top_builddir = @top_builddir@
215top_srcdir = @top_srcdir@
216version_info = @version_info@
217MAINTAINERCLEANFILES = Makefile.in eet.dox
218PACKAGE_DOCNAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc
219EXTRA_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
226all: 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
242Makefile: $(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):
259Doxyfile: $(top_builddir)/config.status $(srcdir)/Doxyfile.in
260 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
261eet.dox: $(top_builddir)/config.status $(srcdir)/eet.dox.in
262 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
263
264mostlyclean-libtool:
265 -rm -f *.lo
266
267clean-libtool:
268 -rm -rf .libs _libs
269tags: TAGS
270TAGS:
271
272ctags: CTAGS
273CTAGS:
274
275
276distdir: $(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
306check-am: all-am
307check: check-am
308all-am: Makefile
309installdirs:
310install: install-am
311install-exec: install-exec-am
312install-data: install-data-am
313uninstall: uninstall-am
314
315install-am: all-am
316 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
317
318installcheck: installcheck-am
319install-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
324mostlyclean-generic:
325
326clean-generic:
327
328distclean-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
332maintainer-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:
337clean: clean-am
338
339clean-am: clean-generic clean-libtool clean-local mostlyclean-am
340
341distclean: distclean-am
342 -rm -f Makefile
343distclean-am: clean-am distclean-generic
344
345dvi: dvi-am
346
347dvi-am:
348
349html: html-am
350
351html-am:
352
353info: info-am
354
355info-am:
356
357install-data-am:
358
359install-dvi: install-dvi-am
360
361install-dvi-am:
362
363install-exec-am:
364
365install-html: install-html-am
366
367install-html-am:
368
369install-info: install-info-am
370
371install-info-am:
372
373install-man:
374
375install-pdf: install-pdf-am
376
377install-pdf-am:
378
379install-ps: install-ps-am
380
381install-ps-am:
382
383installcheck-am:
384
385maintainer-clean: maintainer-clean-am
386 -rm -f Makefile
387maintainer-clean-am: distclean-am maintainer-clean-generic
388
389mostlyclean: mostlyclean-am
390
391mostlyclean-am: mostlyclean-generic mostlyclean-libtool
392
393pdf: pdf-am
394
395pdf-am:
396
397ps: ps-am
398
399ps-am:
400
401uninstall-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 */
14html, 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
51body {
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 */
232html, 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
269body {
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 &copy;$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}*/
10BODY, TD {
11 font-size: 12px;
12}
13H1 {
14 text-align: center;
15 font-size: 160%;
16}
17H2 {
18 font-size: 120%;
19}
20H3 {
21 font-size: 100%;
22}
23CAPTION {
24 font-weight: bold
25}
26DIV.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}
35DIV.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}
44DIV.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}
52TD.navtab {
53 font-size: 70%;
54}
55A.qindex {
56 text-decoration: none;
57 font-weight: bold;
58 color: #1A419D;
59}
60A.qindex:visited {
61 text-decoration: none;
62 font-weight: bold;
63 color: #1A419D
64}
65A.qindex:hover {
66 text-decoration: none;
67 background-color: #ddddff;
68}
69A.qindexHL {
70 text-decoration: none;
71 font-weight: bold;
72 background-color: #6666cc;
73 color: #ffffff;
74 border: 1px double #9295C2;
75}
76A.qindexHL:hover {
77 text-decoration: none;
78 background-color: #6666cc;
79 color: #ffffff;
80}
81A.qindexHL:visited {
82 text-decoration: none;
83 background-color: #6666cc;
84 color: #ffffff
85}
86A.el {
87 text-decoration: none;
88 font-weight: bold
89}
90A.elRef {
91 font-weight: bold
92}
93A.code:link {
94 text-decoration: none;
95 font-weight: normal;
96 color: #0000FF
97}
98A.code:visited {
99 text-decoration: none;
100 font-weight: normal;
101 color: #0000FF
102}
103A.codeRef:link {
104 font-weight: normal;
105 color: #0000FF
106}
107A.codeRef:visited {
108 font-weight: normal;
109 color: #0000FF
110}
111A:hover, A:visited:hover {
112 text-decoration: none;
113 /* background-color: #f2f2ff; */
114 color: #000055;
115}
116A.anchor {
117 color: #000;
118}
119DL.el {
120 margin-left: -1cm
121}
122.fragment {
123 font-family: monospace, fixed;
124 font-size: 95%;
125}
126PRE.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}
138DIV.ah {
139 background-color: black;
140 font-weight: bold;
141 color: #ffffff;
142 margin-bottom: 3px;
143 margin-top: 3px
144}
145
146DIV.groupHeader {
147 margin-left: 16px;
148 margin-top: 12px;
149 margin-bottom: 6px;
150 font-weight: bold;
151}
152DIV.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}*/
163TD.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}
176TD.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}
189TR.memlist {
190 background-color: #f0f0f0;
191}
192P.formulaDsp {
193 text-align: center;
194}
195IMG.formulaDsp {
196}
197IMG.formulaInl {
198 vertical-align: middle;
199}
200SPAN.keyword { color: #008000 }
201SPAN.keywordtype { color: #604020 }
202SPAN.keywordflow { color: #e08000 }
203SPAN.comment { color: #800000 }
204SPAN.preprocessor { color: #806020 }
205SPAN.stringliteral { color: #002080 }
206SPAN.charliteral { color: #008080 }
207SPAN.vhdldigit { color: #ff00ff }
208SPAN.vhdlchar { color: #000000 }
209SPAN.vhdlkeyword { color: #700070 }
210SPAN.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}
329FORM.search {
330 margin-bottom: 0px;
331 margin-top: 0px;
332}
333INPUT.search {
334 font-size: 75%;
335 color: #000080;
336 font-weight: normal;
337 background-color: #e8eef2;
338}
339TD.tiny {
340 font-size: 75%;
341}
342a {
343 color: #1A41A8;
344}
345a:visited {
346 color: #2A3798;
347}
348.dirtab {
349 padding: 4px;
350 border-collapse: collapse;
351 border: 1px solid #84b0c7;
352}
353TH.dirtab {
354 background: #e8eef2;
355 font-weight: bold;
356}
357HR {
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}*/
493BODY, TD {
494 font-size: 12px;
495}
496H1 {
497 text-align: center;
498 font-size: 160%;
499}
500H2 {
501 font-size: 120%;
502}
503H3 {
504 font-size: 100%;
505}
506CAPTION {
507 font-weight: bold
508}
509DIV.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}
518DIV.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}
527DIV.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}
535TD.navtab {
536 font-size: 70%;
537}
538A.qindex {
539 text-decoration: none;
540 font-weight: bold;
541 color: #1A419D;
542}
543A.qindex:visited {
544 text-decoration: none;
545 font-weight: bold;
546 color: #1A419D
547}
548A.qindex:hover {
549 text-decoration: none;
550 background-color: #ddddff;
551}
552A.qindexHL {
553 text-decoration: none;
554 font-weight: bold;
555 background-color: #6666cc;
556 color: #ffffff;
557 border: 1px double #9295C2;
558}
559A.qindexHL:hover {
560 text-decoration: none;
561 background-color: #6666cc;
562 color: #ffffff;
563}
564A.qindexHL:visited {
565 text-decoration: none;
566 background-color: #6666cc;
567 color: #ffffff
568}
569A.el {
570 text-decoration: none;
571 font-weight: bold
572}
573A.elRef {
574 font-weight: bold
575}
576A.code:link {
577 text-decoration: none;
578 font-weight: normal;
579 color: #0000FF
580}
581A.code:visited {
582 text-decoration: none;
583 font-weight: normal;
584 color: #0000FF
585}
586A.codeRef:link {
587 font-weight: normal;
588 color: #0000FF
589}
590A.codeRef:visited {
591 font-weight: normal;
592 color: #0000FF
593}
594A:hover, A:visited:hover {
595 text-decoration: none;
596 /* background-color: #f2f2ff; */
597 color: #000055;
598}
599A.anchor {
600 color: #000;
601}
602DL.el {
603 margin-left: -1cm
604}
605.fragment {
606 font-family: monospace, fixed;
607 font-size: 95%;
608}
609PRE.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}
621DIV.ah {
622 background-color: black;
623 font-weight: bold;
624 color: #ffffff;
625 margin-bottom: 3px;
626 margin-top: 3px
627}
628
629DIV.groupHeader {
630 margin-left: 16px;
631 margin-top: 12px;
632 margin-bottom: 6px;
633 font-weight: bold;
634}
635DIV.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}*/
646TD.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}
659TD.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}
672TR.memlist {
673 background-color: #f0f0f0;
674}
675P.formulaDsp {
676 text-align: center;
677}
678IMG.formulaDsp {
679}
680IMG.formulaInl {
681 vertical-align: middle;
682}
683SPAN.keyword { color: #008000 }
684SPAN.keywordtype { color: #604020 }
685SPAN.keywordflow { color: #e08000 }
686SPAN.comment { color: #800000 }
687SPAN.preprocessor { color: #806020 }
688SPAN.stringliteral { color: #002080 }
689SPAN.charliteral { color: #008080 }
690SPAN.vhdldigit { color: #ff00ff }
691SPAN.vhdlchar { color: #000000 }
692SPAN.vhdlkeyword { color: #700070 }
693SPAN.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}
812FORM.search {
813 margin-bottom: 0px;
814 margin-top: 0px;
815}
816INPUT.search {
817 font-size: 75%;
818 color: #000080;
819 font-weight: normal;
820 background-color: #e8eef2;
821}
822TD.tiny {
823 font-size: 75%;
824}
825a {
826 color: #1A41A8;
827}
828a:visited {
829 color: #2A3798;
830}
831.dirtab {
832 padding: 4px;
833 border-collapse: collapse;
834 border: 1px solid #84b0c7;
835}
836TH.dirtab {
837 background: #e8eef2;
838 font-weight: bold;
839}
840HR {
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 @@
1prefix=@prefix@
2exec_prefix=@exec_prefix@
3libdir=@libdir@
4includedir=@includedir@
5
6Name: eet
7Description: Library for speedy data storage, retrieval, and compression
8@pkgconfig_requires_private@: @requirement_eet@
9Version: @VERSION@
10Libs: -L${libdir} -leet
11Libs.private: @EET_LIBS@ @EFL_FNMATCH_LIBS@ @LIBGCRYPT_LIBS@ -ljpeg -lz -lm
12Cflags: -I${includedir}/eet-@VMAJ@
13Cflags.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
4Summary: Library for speedy data storage, retrieval, and compression.
5Name: eet
6Version: 1.6.0-alpha
7Release: %{_rel}
8License: BSD
9Group: System Environment/Libraries
10Source: http://download.enlightenment.org/releases/%{name}-%{version}.tar.gz
11Packager: %{?_packager:%{_packager}}%{!?_packager:Michael Jennings <mej@eterm.org>}
12Vendor: %{?_vendorinfo:%{_vendorinfo}}%{!?_vendorinfo:The Enlightenment Project (http://www.enlightenment.org/)}
13Distribution: %{?_distribution:%{_distribution}}%{!?_distribution:%{_vendor}}
14URL: http://www.enlightenment.org/
15BuildRequires: libjpeg-devel zlib-devel
16BuildRoot: %{_tmppath}/%{name}-%{version}-root
17
18%description
19Eet is a tiny library designed to write an arbitrary set of chunks of
20data to a file and optionally compress each chunk (very much like a
21zip file) and allow fast random-access reading of the file later
22on. It does not do zip as a zip itself has more complexity than is
23needed, and it was much simpler to implement this once here.
24
25It also can encode and decode data structures in memory, as well as
26image data for saving to eet files or sending across the network to
27other machines, or just writing to arbitrary files on the system. All
28data is encoded in a platform independent way and can be written and
29read by any architecture.
30
31%package devel
32Summary: Eet headers, static libraries, documentation and test programs
33Group: System Environment/Libraries
34Requires: %{name} = %{version}
35Requires: libjpeg-devel, zlib-devel
36
37%description devel
38Headers, 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
53test "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
4Summary: Library for speedy data storage, retrieval, and compression.
5Name: @PACKAGE@
6Version: @VERSION@
7Release: %{_rel}
8License: BSD
9Group: System Environment/Libraries
10Source: http://download.enlightenment.org/releases/%{name}-%{version}.tar.gz
11Packager: %{?_packager:%{_packager}}%{!?_packager:Michael Jennings <mej@eterm.org>}
12Vendor: %{?_vendorinfo:%{_vendorinfo}}%{!?_vendorinfo:The Enlightenment Project (http://www.enlightenment.org/)}
13Distribution: %{?_distribution:%{_distribution}}%{!?_distribution:%{_vendor}}
14URL: http://www.enlightenment.org/
15BuildRequires: libjpeg-devel zlib-devel
16BuildRoot: %{_tmppath}/%{name}-%{version}-root
17
18%description
19Eet is a tiny library designed to write an arbitrary set of chunks of
20data to a file and optionally compress each chunk (very much like a
21zip file) and allow fast random-access reading of the file later
22on. It does not do zip as a zip itself has more complexity than is
23needed, and it was much simpler to implement this once here.
24
25It also can encode and decode data structures in memory, as well as
26image data for saving to eet files or sending across the network to
27other machines, or just writing to arbitrary files on the system. All
28data is encoded in a platform independent way and can be written and
29read by any architecture.
30
31%package devel
32Summary: Eet headers, static libraries, documentation and test programs
33Group: System Environment/Libraries
34Requires: %{name} = %{version}
35Requires: libjpeg-devel, zlib-devel
36
37%description devel
38Headers, 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
53test "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
4scriptversion=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
44nl='
45'
46IFS=" "" $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.
51doit=${DOITPROG-}
52if test -z "$doit"; then
53 doit_exec=exec
54else
55 doit_exec=$doit
56fi
57
58# Put in absolute file names if you don't have them in your path;
59# or use environment vars.
60
61chgrpprog=${CHGRPPROG-chgrp}
62chmodprog=${CHMODPROG-chmod}
63chownprog=${CHOWNPROG-chown}
64cmpprog=${CMPPROG-cmp}
65cpprog=${CPPROG-cp}
66mkdirprog=${MKDIRPROG-mkdir}
67mvprog=${MVPROG-mv}
68rmprog=${RMPROG-rm}
69stripprog=${STRIPPROG-strip}
70
71posix_glob='?'
72initialize_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
82posix_mkdir=
83
84# Desired mode of installed file.
85mode=0755
86
87chgrpcmd=
88chmodcmd=$chmodprog
89chowncmd=
90mvcmd=$mvprog
91rmcmd="$rmprog -f"
92stripcmd=
93
94src=
95dst=
96dir_arg=
97dst_arg=
98
99copy_on_change=false
100no_target_directory=
101
102usage="\
103Usage: $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
108In the 1st form, copy SRCFILE to DSTFILE.
109In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
110In the 4th, create DIRECTORIES.
111
112Options:
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
126Environment variables override the default commands:
127 CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
128 RMPROG STRIPPROG
129"
130
131while 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
174done
175
176if 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
190fi
191
192if 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
200fi
201
202if 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
227fi
228
229for src
230do
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
512done
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
74PROGRAM=ltmain.sh
75PACKAGE=libtool
76VERSION="2.2.6b Debian-2.2.6b-2ubuntu3"
77TIMESTAMP=""
78package_revision=1.3017
79
80# Be Bourne compatible
81if 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
88else
89 case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
90fi
91BIN_SH=xpg4; export BIN_SH # for Tru64
92DUALCASE=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).
98lt_user_locale=
99lt_safe_locale=
100for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
101do
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"
109done
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:
132EXIT_SUCCESS=0
133EXIT_FAILURE=1
134EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing.
135EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
136
137exit_status=$EXIT_SUCCESS
138
139# Make sure IFS has a sensible default
140lt_nl='
141'
142IFS=" $lt_nl"
143
144dirname="s,/[^/]*$,,"
145basename="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.
159func_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.
178progpath="$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:
183func_dirname_and_basename "$progpath"
184progname=$func_basename_result
185case $progname in
186 -*) progname=./$progname ;;
187esac
188
189# Make sure we have an absolute path for reexecution:
190case $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 ;;
208esac
209
210# Sed substitution that helps us do robust quoting. It backslashifies
211# metacharacters that are still active within double-quoted strings.
212Xsed="${SED}"' -e 1s/^X//'
213sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
214
215# Same as above, but do not quote variable references.
216double_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 '$'.
223bs='\\'
224bs2='\\\\'
225bs4='\\\\\\\\'
226dollar='\$'
227sed_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:
235opt_dry_run=false
236opt_help=false
237opt_quiet=false
238opt_verbose=false
239opt_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.
244func_echo ()
245{
246 $ECHO "$progname${mode+: }$mode: $*"
247}
248
249# func_verbose arg...
250# Echo program name prefixed message in verbose mode only.
251func_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.
263func_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.
270func_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.
280func_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.
289func_fatal_help ()
290{
291 func_error ${1+"$@"}
292 func_fatal_error "$help"
293}
294help="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.
299func_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.
307func_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.
354func_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.
391func_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.
418func_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.
446func_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.
470func_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.
497func_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.
510func_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.
525func_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.
547func_missing_arg ()
548{
549 func_error "missing argument for $1"
550 exit_cmd=exit
551}
552
553exit_cmd=:
554
555
556
557
558
559# Check that we have a working $ECHO.
560if test "X$1" = X--no-reexec; then
561 # Discard the --no-reexec flag, and continue.
562 shift
563elif test "X$1" = X--fallback-echo; then
564 # Avoid inline document here, it may be left over
565 :
566elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
567 # Yippee, $ECHO works!
568 :
569else
570 # Restart under the correct shell, and then maybe $ECHO will work.
571 exec $SHELL "$progpath" --no-reexec ${1+"$@"}
572fi
573
574if test "X$1" = X--fallback-echo; then
575 # used as fallback echo
576 shift
577 cat <<EOF
578$*
579EOF
580 exit $EXIT_SUCCESS
581fi
582
583magic="%%%MAGIC variable%%%"
584magic_exe="%%%MAGIC EXE variable%%%"
585
586# Global variables.
587# $mode is unset
588nonopt=
589execute_dlfiles=
590preserve_args=
591lo2o="s/\\.lo\$/.${objext}/"
592o2lo="s/\\.${objext}\$/.lo/"
593extracted_archives=
594extracted_serial=0
595
596opt_dry_run=false
597opt_duplicate_deps=false
598opt_silent=false
599opt_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.
604exec_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.
609func_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.
619func_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.
637func_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.
658func_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.
825func_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.
894func_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.
908func_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.
928func_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.
937func_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.
951func_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.
965func_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!
975func_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.
994func_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 ...'
1010func_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.
1066func_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.
1090pic_object=$write_lobj
1091
1092# Name of the non-PIC object
1093non_pic_object=$write_oldobj
1094
1095EOF
1096 $MV "${write_libobj}T" "${write_libobj}"
1097 }
1098}
1099
1100# func_mode_compile arg...
1101func_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
1312This indicates that another process is trying to use the same
1313temporary object file, and libtool could not work around it because
1314your compiler does not support \`-c' and \`-o' together. If you
1315repeat this compilation, it may succeed, by chance, but you had better
1316avoid parallel builds (make -j) in this platform, or get a better
1317compiler."
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
1364but it should contain:
1365$srcfile
1366
1367This indicates that another process is trying to use the same
1368temporary object file, and libtool could not work around it because
1369your compiler does not support \`-c' and \`-o' together. If you
1370repeat this compilation, it may succeed, by chance, but you had better
1371avoid parallel builds (make -j) in this platform, or get a better
1372compiler."
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
1413but it should contain:
1414$srcfile
1415
1416This indicates that another process is trying to use the same
1417temporary object file, and libtool could not work around it because
1418your compiler does not support \`-c' and \`-o' together. If you
1419repeat this compilation, it may succeed, by chance, but you had better
1420avoid parallel builds (make -j) in this platform, or get a better
1421compiler."
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 || {
1448test "$mode" = compile && func_mode_compile ${1+"$@"}
1449}
1450
1451func_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
1465Remove files from the build directory.
1466
1467RM 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
1469to RM.
1470
1471If FILE is a libtool library, object or program, all the files associated
1472with 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
1479Compile a source file into a libtool library object.
1480
1481This 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
1490COMPILE-COMMAND is a command to be used in creating a \`standard' object file
1491from the given SOURCEFILE.
1492
1493The output file name is determined by removing the directory component from
1494SOURCEFILE, then substituting the C source code suffix \`.c' with the
1495library object suffix, \`.lo'."
1496 ;;
1497
1498 execute)
1499 $ECHO \
1500"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
1501
1502Automatically set library path, then run a program.
1503
1504This mode accepts the following additional options:
1505
1506 -dlopen FILE add the directory containing FILE to the library path
1507
1508This mode sets the library path environment variable according to \`-dlopen'
1509flags.
1510
1511If any of the ARGS are libtool executable wrappers, then they are translated
1512into their corresponding uninstalled binary, and any of their required library
1513directories are added to the library path.
1514
1515Then, COMMAND is executed, with ARGS as arguments."
1516 ;;
1517
1518 finish)
1519 $ECHO \
1520"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
1521
1522Complete the installation of libtool libraries.
1523
1524Each LIBDIR is a directory that contains libtool libraries.
1525
1526The commands that this mode executes may require superuser privileges. Use
1527the \`--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
1534Install executables or libraries.
1535
1536INSTALL-COMMAND is the installation command. The first component should be
1537either the \`install' or \`cp' program.
1538
1539The following components of INSTALL-COMMAND are treated specially:
1540
1541 -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation
1542
1543The rest of the components are interpreted as arguments to that command (only
1544BSD-compatible install options are recognized)."
1545 ;;
1546
1547 link)
1548 $ECHO \
1549"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
1550
1551Link object files or libraries together to form another library, or to
1552create an executable program.
1553
1554LINK-COMMAND is a command using the C compiler that you would use to create
1555a program from several object files.
1556
1557The 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
1590All other options (arguments beginning with \`-') are ignored.
1591
1592Every other argument is treated as a filename. Files ending in \`.la' are
1593treated as uninstalled libtool libraries, other files are standard or library
1594object files.
1595
1596If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
1597only library objects (\`.lo' files) may be specified, and \`-rpath' is
1598required, except when creating a convenience library.
1599
1600If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
1601using \`ar' and \`ranlib', or on Windows using \`lib'.
1602
1603If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
1604is created, otherwise an executable program is created."
1605 ;;
1606
1607 uninstall)
1608 $ECHO \
1609"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
1610
1611Remove libraries from an installation directory.
1612
1613RM 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
1615to RM.
1616
1617If FILE is a libtool library, all the files associated with it are deleted.
1618Otherwise, 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...
1637func_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
1764test "$mode" = execute && func_mode_execute ${1+"$@"}
1765
1766
1767# func_mode_finish arg...
1768func_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
1844test "$mode" = finish && func_mode_finish ${1+"$@"}
1845
1846
1847# func_mode_install arg...
1848func_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
2283test "$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.
2289func_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
2323extern \"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. */
2424typedef 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" "\
2445extern $lt_dlsym_const lt_dlsymlist
2446lt_${my_prefix}_LTX_preloaded_symbols[];
2447$lt_dlsym_const lt_dlsymlist
2448lt_${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
2466static 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.
2552func_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
2596func_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 ...
2611func_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.
2700func_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.
2721Xsed='${SED} -e 1s/^X//'
2722sed_quote_subst='$sed_quote_subst'
2723
2724# Be Bourne compatible
2725if 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
2732else
2733 case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
2734fi
2735BIN_SH=xpg4; export BIN_SH # for Tru64
2736DUALCASE=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
2742relink_command=\"$relink_command\"
2743
2744# This environment variable determines our operation mode.
2745if 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'
2749else
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.
2798func_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
2923fi\
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.
2943func_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.
2978func_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.
3049func_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.
3132func_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*/
3149EOF
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__
3165char *realpath (const char *, char *);
3166int putenv (char *);
3167int 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
3252static void
3253ltwrapper_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
3264const char *program_name = NULL;
3265
3266void *xmalloc (size_t num);
3267char *xstrdup (const char *string);
3268const char *base_name (const char *name);
3269char *find_executable (const char *wrapper);
3270char *chase_symlinks (const char *pathspec);
3271int make_executable (const char *path);
3272int check_executable (const char *path);
3273char *strendzap (char *str, const char *pat);
3274void lt_fatal (const char *message, ...);
3275void lt_setenv (const char *name, const char *value);
3276char *lt_extend_str (const char *orig_value, const char *add, int to_end);
3277void lt_opt_process_env_set (const char *arg);
3278void lt_opt_process_env_prepend (const char *arg);
3279void lt_opt_process_env_append (const char *arg);
3280int lt_split_name_value (const char *arg, char** name, char** value);
3281void lt_update_exe_path (const char *name, const char *value);
3282void lt_update_lib_path (const char *name, const char *value);
3283
3284static const char *script_text_part1 =
3285EOF
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
3293static const char *script_text_part2 =
3294EOF
3295 func_emit_wrapper_part2 yes |
3296 $SED -e 's/\([\\"]\)/\\\1/g' \
3297 -e 's/^/ "/' -e 's/$/\\n"/'
3298 echo ";"
3299
3300 cat <<EOF
3301const char * MAGIC_EXE = "$magic_exe";
3302const char * LIB_PATH_VARNAME = "$shlibpath_var";
3303EOF
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
3308const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result";
3309EOF
3310 else
3311 cat <<"EOF"
3312const char * LIB_PATH_VALUE = "";
3313EOF
3314 fi
3315
3316 if test -n "$dllsearchpath"; then
3317 func_to_host_pathlist "$dllsearchpath:"
3318 cat <<EOF
3319const char * EXE_PATH_VARNAME = "PATH";
3320const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result";
3321EOF
3322 else
3323 cat <<"EOF"
3324const char * EXE_PATH_VARNAME = "";
3325const char * EXE_PATH_VALUE = "";
3326EOF
3327 fi
3328
3329 if test "$fast_install" = yes; then
3330 cat <<EOF
3331const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
3332EOF
3333 else
3334 cat <<EOF
3335const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
3336EOF
3337 fi
3338
3339
3340 cat <<"EOF"
3341
3342#define LTWRAPPER_OPTION_PREFIX "--lt-"
3343#define LTWRAPPER_OPTION_PREFIX_LENGTH 5
3344
3345static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH;
3346static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
3347
3348static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
3349
3350static const size_t env_set_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
3351static 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
3354static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
3355static 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
3358static const size_t env_append_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
3359static 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
3362int
3363main (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 {
3385EOF
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));
3432EOF
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], "/");
3441EOF
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;
3454EOF
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 }
3470EOF
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
3557EOF
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;
3571EOF
3572 ;;
3573 *)
3574 cat <<"EOF"
3575 execv (lt_argv_zero, newargz);
3576 return rval; /* =127, but avoids unused variable warning */
3577EOF
3578 ;;
3579 esac
3580
3581 cat <<"EOF"
3582}
3583
3584void *
3585xmalloc (size_t num)
3586{
3587 void *p = (void *) malloc (num);
3588 if (!p)
3589 lt_fatal ("Memory exhausted");
3590
3591 return p;
3592}
3593
3594char *
3595xstrdup (const char *string)
3596{
3597 return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
3598 string) : NULL;
3599}
3600
3601const char *
3602base_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
3618int
3619check_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
3635int
3636make_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*/
3657char *
3658find_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
3760char *
3761chase_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
3816char *
3817strendzap (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
3836static void
3837lt_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
3848void
3849lt_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
3857void
3858lt_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
3880char *
3881lt_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
3907int
3908lt_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
3930void
3931lt_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
3948void
3949lt_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
3969void
3970lt_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
3990void
3991lt_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
4011void
4012lt_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
4027EOF
4028}
4029# end: func_emit_cwrapperexe_src
4030
4031# func_mode_link arg...
4032func_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; }
6545EOF
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).
8143dlname='$tdlname'
8144
8145# Names of this library.
8146library_names='$library_names'
8147
8148# The name of the static archive.
8149old_library='$old_library'
8150
8151# Linker flags that can not go in dependency_libs.
8152inherited_linker_flags='$new_inherited_linker_flags'
8153
8154# Libraries that this one depends upon.
8155dependency_libs='$dependency_libs'
8156
8157# Names of additional weak libraries provided by this library
8158weak_library_names='$weak_libs'
8159
8160# Version information for $libname.
8161current=$current
8162age=$age
8163revision=$revision
8164
8165# Is this an already installed library?
8166installed=$installed
8167
8168# Should we warn about portability when linking against -modules?
8169shouldnotlink=$module
8170
8171# Files to dlopen/dlpreopen
8172dlopen='$dlfiles'
8173dlpreopen='$dlprefiles'
8174
8175# Directory that this library needs to be installed in:
8176libdir='$install_libdir'"
8177 if test "$installed" = no && test "$need_relink" = yes; then
8178 $ECHO >> $output "\
8179relink_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...
8197func_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
8372test -z "$mode" && {
8373 help="$generic_help"
8374 func_fatal_help "you must specify a MODE"
8375}
8376
8377test -z "$exec_cmd" && \
8378 func_fatal_help "invalid operation mode \`$mode'"
8379
8380if test -n "$exec_cmd"; then
8381 eval exec "$exec_cmd"
8382 exit $EXIT_FAILURE
8383fi
8384
8385exit $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
8400build_libtool_libs=no
8401build_old_libs=yes
8402# ### END LIBTOOL TAG CONFIG: disable-shared
8403
8404# ### BEGIN LIBTOOL TAG CONFIG: disable-static
8405build_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 @@
1dnl Copyright (C) 2004-2008 Kim Woelders
2dnl Copyright (C) 2008 Vincent Torri <vtorri at univ-evry dot fr>
3dnl That code is public domain and can be freely used or copied.
4dnl Originally snatched from somewhere...
5
6dnl Macro for checking if the compiler supports __attribute__
7
8dnl Usage: AC_C___ATTRIBUTE__
9dnl call AC_DEFINE for HAVE___ATTRIBUTE__ and __UNUSED__
10dnl if the compiler supports __attribute__, HAVE___ATTRIBUTE__ is
11dnl defined to 1 and __UNUSED__ is defined to __attribute__((unused))
12dnl otherwise, HAVE___ATTRIBUTE__ is not defined and __UNUSED__ is
13dnl defined to nothing.
14
15AC_DEFUN([AC_C___ATTRIBUTE__],
16[
17
18AC_MSG_CHECKING([for __attribute__])
19
20AC_CACHE_VAL([ac_cv___attribute__],
21 [AC_TRY_COMPILE(
22 [
23#include <stdlib.h>
24
25int func(int x);
26int foo(int x __attribute__ ((unused)))
27{
28 exit(1);
29}
30 ],
31 [],
32 [ac_cv___attribute__="yes"],
33 [ac_cv___attribute__="no"]
34 )])
35
36AC_MSG_RESULT($ac_cv___attribute__)
37
38if 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])
43fi
44
45])
46
47dnl 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 @@
1dnl @synopsis AC_PATH_GENERIC(LIBRARY [, MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
2dnl
3dnl Runs a LIBRARY-config script and defines LIBRARY_CFLAGS and LIBRARY_LIBS
4dnl
5dnl The script must support `--cflags' and `--libs' args.
6dnl If MINIMUM-VERSION is specified, the script must also support the
7dnl `--version' arg.
8dnl If the `--with-library-[exec-]prefix' arguments to ./configure are given,
9dnl it must also support `--prefix' and `--exec-prefix'.
10dnl (In other words, it must be like gtk-config.)
11dnl
12dnl For example:
13dnl
14dnl AC_PATH_GENERIC(Foo, 1.0.0)
15dnl
16dnl would run `foo-config --version' and check that it is at least 1.0.0
17dnl
18dnl If so, the following would then be defined:
19dnl
20dnl FOO_CFLAGS to `foo-config --cflags`
21dnl FOO_LIBS to `foo-config --libs`
22dnl
23dnl At present there is no support for additional "MODULES" (see AM_PATH_GTK)
24dnl (shamelessly stolen from gtk.m4 and then hacked around a fair amount)
25dnl
26dnl @author Angus Lees <gusl@cse.unsw.edu.au>
27
28AC_DEFUN([AC_PATH_GENERIC],
29[dnl
30dnl we're going to need uppercase, lowercase and user-friendly versions of the
31dnl string `LIBRARY'
32pushdef([UP], translit([$1], [a-z], [A-Z]))dnl
33pushdef([DOWN], translit([$1], [A-Z], [a-z]))dnl
34
35dnl
36dnl Get the cflags and libraries from the LIBRARY-config script
37dnl
38AC_ARG_WITH(DOWN-prefix,
39 [ --with-]DOWN[-prefix=PFX Prefix where $1 is installed (optional)],
40 DOWN[]_config_prefix="$withval", DOWN[]_config_prefix="")
41AC_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 @@
1dnl Copyright (C) 2010 Vincent Torri <vtorri at univ-evry dot fr>
2dnl That code is public domain and can be freely used or copied.
3
4dnl Macro that checks if a binary is built or not
5
6dnl Usage: EFL_ENABLE_BIN(binary)
7dnl Call AC_SUBST(BINARY_PRG) (BINARY is the uppercase of binary, - being transformed into _)
8dnl Define have_binary (- is transformed into _)
9dnl Define conditional BUILD_BINARY (BINARY is the uppercase of binary, - being transformed into _)
10
11AC_DEFUN([EFL_ENABLE_BIN],
12[
13
14m4_pushdef([UP], m4_translit([[$1]], [-a-z], [_A-Z]))dnl
15m4_pushdef([DOWN], m4_translit([[$1]], [-A-Z], [_a-z]))dnl
16
17have_[]m4_defn([DOWN])="yes"
18
19dnl configure option
20
21AC_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
31AC_MSG_CHECKING([whether to build ]DOWN[ binary])
32AC_MSG_RESULT([$have_[]m4_defn([DOWN])])
33
34if test "x$have_[]m4_defn([DOWN])" = "xyes"; then
35 UP[]_PRG=DOWN[${EXEEXT}]
36fi
37
38AC_SUBST(UP[]_PRG)
39
40AM_CONDITIONAL(BUILD_[]UP, test "x$have_[]m4_defn([DOWN])" = "xyes")
41
42AS_IF([test "x$have_[]m4_defn([DOWN])" = "xyes"], [$2], [$3])
43
44])
45
46dnl Macro that specifies the binary to be used
47
48dnl Usage: EFL_WITH_BIN(binary, package, msg)
49dnl Call AC_SUBST(BINARY_PRG) (BINARY is the uppercase of binary, - being transformed into _)
50dnl Define with_binary (- is transformed into _)
51dnl Define conditional BUILD_BINARY (BINARY is the uppercase of binary, - being transformed into _)
52
53AC_DEFUN([EFL_WITH_BIN],
54[
55
56m4_pushdef([UP], m4_translit([[$1]], [-a-z], [_A-Z]))dnl
57m4_pushdef([DOWN], m4_translit([[$1]], [-A-Z], [_a-z]))dnl
58
59AC_REQUIRE([PKG_PROG_PKG_CONFIG])
60AC_MSG_NOTICE([$PKG_CONFIG])
61
62with_[]m4_defn([DOWN])=m4_esyscmd($PKG_CONFIG --variable=prefix $2)/bin/m4_defn([DOWN])
63
64dnl configure option
65
66AC_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
73AC_MSG_NOTICE([$msg: ]m4_defn([DOWN])[$_efl_msg])
74
75AC_SUBST(with_[]m4_defn([DOWN]))
76
77AS_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 @@
1dnl Copyright (C) 2010 Vincent Torri <vtorri at univ-evry dot fr>
2dnl and Albin Tonnerre <albin dot tonnerre at gmail dot com>
3dnl That code is public domain and can be freely used or copied.
4
5dnl Macro that checks if a compiler flag is supported by the compiler.
6
7dnl Usage: EFL_COMPILER_FLAG(flag)
8dnl flag is added to CFLAGS if supported.
9
10AC_DEFUN([EFL_COMPILER_FLAG],
11[
12
13CFLAGS_save="${CFLAGS}"
14CFLAGS="${CFLAGS} $1"
15
16AC_LANG_PUSH([C])
17AC_MSG_CHECKING([whether the compiler supports $1])
18
19AC_COMPILE_IFELSE(
20 [AC_LANG_PROGRAM([[]])],
21 [have_flag="yes"],
22 [have_flag="no"])
23AC_MSG_RESULT([${have_flag}])
24
25if test "x${have_flag}" = "xno" ; then
26 CFLAGS="${CFLAGS_save}"
27fi
28AC_LANG_POP([C])
29
30])
31
32dnl Macro that checks if a linker flag is supported by the compiler.
33
34dnl Usage: EFL_LINKER_FLAG(flag)
35dnl flag is added to CFLAGS if supported (will be passed to ld anyway).
36
37AC_DEFUN([EFL_LINKER_FLAG],
38[
39
40CFLAGS_save="${CFLAGS}"
41CFLAGS="${CFLAGS} $1"
42
43AC_LANG_PUSH([C])
44AC_MSG_CHECKING([whether the compiler supports $1])
45
46AC_LINK_IFELSE(
47 [AC_LANG_PROGRAM([[]])],
48 [have_flag="yes"],
49 [have_flag="no"])
50AC_MSG_RESULT([${have_flag}])
51
52if test "x${have_flag}" = "xno" ; then
53 CFLAGS="${CFLAGS_save}"
54fi
55AC_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 @@
1dnl Copyright (C) 2008 Vincent Torri <vtorri at univ-evry dot fr>
2dnl That code is public domain and can be freely used or copied.
3
4dnl Macro that check if coverage support is wanted and, if yes, if
5dnl lcov is available.
6
7dnl Usage: EFL_CHECK_COVERAGE(tests [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
8dnl The parameter 'tests' is used if a dependency is needed. If set to "yes",
9dnl the dependency is available.
10dnl Defines EFL_COVERAGE_CFLAGS and EFL_COVERAGE_LIBS variables
11dnl Defines the automake conditionnal EFL_ENABLE_COVERAGE
12
13AC_DEFUN([EFL_CHECK_COVERAGE],
14[
15
16dnl configure option
17
18AC_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
29AC_MSG_CHECKING([whether to use profiling instrumentation])
30AC_MSG_RESULT([$_efl_enable_coverage])
31
32dnl lcov check
33
34if 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"
38fi
39
40if 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
51fi
52
53dnl Substitution
54AC_SUBST(EFL_COVERAGE_CFLAGS)
55AC_SUBST(EFL_COVERAGE_LIBS)
56
57AM_CONDITIONAL(EFL_ENABLE_COVERAGE, test "x${_efl_enable_coverage}" = "xyes")
58
59AS_IF([test "x$_efl_enable_coverage" = "xyes"], [$2], [$3])
60])
61
62dnl 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 @@
1dnl Copyright (C) 2008 Vincent Torri <vtorri at univ-evry dot fr>
2dnl That code is public domain and can be freely used or copied.
3
4dnl Macro that check if doxygen is available or not.
5
6dnl EFL_CHECK_DOXYGEN([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
7dnl Test for the doxygen program
8dnl Defines efl_doxygen
9dnl Defines the automake conditionnal EFL_BUILD_DOC
10dnl
11AC_DEFUN([EFL_CHECK_DOXYGEN],
12[
13
14dnl
15dnl Disable the build of the documentation
16dnl
17AC_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
30AC_MSG_CHECKING([whether to build documentation])
31AC_MSG_RESULT([${efl_enable_doc}])
32
33if test "x${efl_enable_doc}" = "xyes" ; then
34
35dnl 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
44dnl 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 ])
76else
77 efl_have_doxygen="no"
78fi
79
80dnl
81dnl Substitution
82dnl
83AC_SUBST([efl_doxygen])
84
85if ! test "x${efl_have_doxygen}" = "xyes" ; then
86 efl_enable_doc="no"
87fi
88
89AM_CONDITIONAL(EFL_BUILD_DOC, test "x${efl_have_doxygen}" = "xyes")
90
91AS_IF([test "x$efl_have_doxygen" = "xyes"], [$1], [$2])
92])
93
94dnl 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 @@
1dnl Copyright (C) 2010 Vincent Torri <vtorri at univ-evry dot fr>
2dnl That code is public domain and can be freely used or copied.
3
4dnl Macro that check if fnmatch functions are available or not.
5
6dnl Usage: EFL_CHECK_FNMATCH([, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
7dnl Call AC_SUBST(EFL_FNMATCH_LIBS)
8
9AC_DEFUN([EFL_CHECK_FNMATCH],
10[
11
12AC_CHECK_HEADER([fnmatch.h], [_efl_have_fnmatch="yes"], [_efl_have_fnmatch="no"])
13
14if 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"])
19fi
20
21EFL_FNMATCH_LIBS=""
22
23if (! 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}
25fi
26
27if 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
37fi
38
39AC_SUBST(EFL_FNMATCH_LIBS)
40
41AS_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 @@
1dnl Check for PATH_MAX in limits.h, and define a default value if not found
2dnl This is a workaround for systems not providing PATH_MAX, like GNU/Hurd
3
4dnl EFL_CHECK_PATH_MAX([DEFAULT_VALUE_IF_NOT_FOUND])
5dnl
6dnl If PATH_MAX is not defined in <limits.h>, defines it
7dnl to DEFAULT_VALUE_IF_NOT_FOUND if it exists, or fallback
8dnl to using 4096
9
10AC_DEFUN([EFL_CHECK_PATH_MAX],
11[
12
13default_max=m4_default([$1], "4096")
14AC_LANG_PUSH([C])
15
16AC_MSG_CHECKING([for PATH_MAX in limits.h])
17AC_COMPILE_IFELSE(
18 [AC_LANG_PROGRAM(
19 [[
20#include <limits.h>
21 ]],
22 [[
23int 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
33AC_LANG_POP([C])
34
35])
36dnl 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 @@
1dnl Copyright (C) 2008 Vincent Torri <vtorri at univ-evry dot fr>
2dnl That code is public domain and can be freely used or copied.
3
4dnl Macro that check if tests programs are wanted and if yes, if
5dnl the Check library is available.
6
7dnl Usage: EFL_CHECK_TESTS([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
8dnl Define the automake conditionnal EFL_ENABLE_TESTS
9
10AC_DEFUN([EFL_CHECK_TESTS],
11[
12
13dnl configure option
14
15AC_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
26AC_MSG_CHECKING([whether tests are built])
27AC_MSG_RESULT([${_efl_enable_tests}])
28
29AC_REQUIRE([PKG_PROG_PKG_CONFIG])
30
31if 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"])
36fi
37
38AM_CONDITIONAL(EFL_ENABLE_TESTS, test "x${_efl_enable_tests}" = "xyes")
39
40AS_IF([test "x$_efl_enable_tests" = "xyes"], [$1], [$2])
41])
42
43dnl 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
11m4_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.
46m4_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
57m4_defun([_LT_CHECK_BUILDDIR],
58[case `pwd` in
59 *\ * | *\ *)
60 AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
61esac
62])
63
64
65# LT_INIT([OPTIONS])
66# ------------------
67AC_DEFUN([LT_INIT],
68[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
69AC_BEFORE([$0], [LT_LANG])dnl
70AC_BEFORE([$0], [LT_OUTPUT])dnl
71AC_BEFORE([$0], [LTDL_INIT])dnl
72m4_require([_LT_CHECK_BUILDDIR])dnl
73
74dnl Autoconf doesn't catch unexpanded LT_ macros by default:
75m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
76m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
77dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
78dnl unless we require an AC_DEFUNed macro:
79AC_REQUIRE([LTOPTIONS_VERSION])dnl
80AC_REQUIRE([LTSUGAR_VERSION])dnl
81AC_REQUIRE([LTVERSION_VERSION])dnl
82AC_REQUIRE([LTOBSOLETE_VERSION])dnl
83m4_require([_LT_PROG_LTMAIN])dnl
84
85dnl Parse OPTIONS
86_LT_SET_OPTIONS([$0], [$1])
87
88# This can be used to rebuild libtool when needed
89LIBTOOL_DEPS="$ltmain"
90
91# Always use our own libtool.
92LIBTOOL='$(SHELL) $(top_builddir)/libtool'
93AC_SUBST(LIBTOOL)dnl
94
95_LT_SETUP
96
97# Only expand once:
98m4_define([LT_INIT])
99])# LT_INIT
100
101# Old names:
102AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
103AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
104dnl aclocal-1.4 backwards compatibility:
105dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
106dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
107
108
109# _LT_CC_BASENAME(CC)
110# -------------------
111# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
112m4_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
120done
121cc_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])'.
129m4_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# ---------
138m4_defun([_LT_SETUP],
139[AC_REQUIRE([AC_CANONICAL_HOST])dnl
140AC_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
144dnl
145_LT_DECL([], [build_alias], [0], [The build system])dnl
146_LT_DECL([], [build], [0])dnl
147_LT_DECL([], [build_os], [0])dnl
148dnl
149AC_REQUIRE([AC_PROG_CC])dnl
150AC_REQUIRE([LT_PATH_LD])dnl
151AC_REQUIRE([LT_PATH_NM])dnl
152dnl
153AC_REQUIRE([AC_PROG_LN_S])dnl
154test -z "$LN_S" && LN_S="ln -s"
155_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
156dnl
157AC_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
160dnl
161m4_require([_LT_FILEUTILS_DEFAULTS])dnl
162m4_require([_LT_CHECK_SHELL_FEATURES])dnl
163m4_require([_LT_CMD_RELOAD])dnl
164m4_require([_LT_CHECK_MAGIC_METHOD])dnl
165m4_require([_LT_CMD_OLD_ARCHIVE])dnl
166m4_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.
171if test -n "\${ZSH_VERSION+set}" ; then
172 setopt NO_GLOB_SUBST
173fi
174])
175if test -n "${ZSH_VERSION+set}" ; then
176 setopt NO_GLOB_SUBST
177fi
178
179_LT_CHECK_OBJDIR
180
181m4_require([_LT_TAG_COMPILER])dnl
182_LT_PROG_ECHO_BACKSLASH
183
184case $host_os in
185aix3*)
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 ;;
194esac
195
196# Sed substitution that helps us do robust quoting. It backslashifies
197# metacharacters that are still active within double-quoted strings.
198sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
199
200# Same as above, but do not quote variable references.
201double_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.
205delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
206
207# Sed substitution to delay expansion of an escaped single quote.
208delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
209
210# Sed substitution to avoid accidental globbing in evaled expressions
211no_glob_subst='s/\*/\\\*/g'
212
213# Global variables:
214ofile=libtool
215can_build_shared=yes
216
217# All known linkers require a `.a' archive for static linking (except MSVC,
218# which needs '.lib').
219libext=a
220
221with_gnu_ld="$lt_cv_prog_gnu_ld"
222
223old_CC="$CC"
224old_CFLAGS="$CFLAGS"
225
226# Set sane defaults for various variables
227test -z "$CC" && CC=cc
228test -z "$LTCC" && LTCC=$CC
229test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
230test -z "$LD" && LD=ld
231test -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
236test -z "$MAGIC_CMD" && MAGIC_CMD=file
237case $deplibs_check_method in
238file_magic*)
239 if test "$file_magic_cmd" = '$MAGIC_CMD'; then
240 _LT_PATH_MAGIC
241 fi
242 ;;
243esac
244
245# Use C for the default configuration in the libtool script
246LT_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.
259m4_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'])
262ltmain="$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.
279m4_define([_LT_CONFIG_LIBTOOL_INIT],
280[m4_ifval([$1],
281 [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
282 [$1
283])])])
284
285# Initialize.
286m4_define([_LT_OUTPUT_LIBTOOL_INIT])
287
288
289# _LT_CONFIG_LIBTOOL([COMMANDS])
290# ------------------------------
291# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
292m4_define([_LT_CONFIG_LIBTOOL],
293[m4_ifval([$1],
294 [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
295 [$1
296])])])
297
298# Initialize.
299m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
300
301
302# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
303# -----------------------------------------------------
304m4_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.
314m4_define([_LT_FORMAT_COMMENT],
315[m4_ifval([$1], [
316m4_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.
333m4_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# --------------------------------------------------------
347m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
348
349
350# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
351# ------------------------------------------------
352m4_define([lt_decl_tag_varnames],
353[_lt_decl_filter([tagged?], [yes], $@)])
354
355
356# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
357# ---------------------------------------------------------
358m4_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# --------------------------------------------------
370m4_define([lt_decl_quote_varnames],
371[_lt_decl_filter([value], [1], $@)])
372
373
374# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
375# ---------------------------------------------------
376m4_define([lt_decl_dquote_varnames],
377[_lt_decl_filter([value], [2], $@)])
378
379
380# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
381# ---------------------------------------------------
382m4_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)), [ ]))])
387m4_define([_lt_decl_varnames_tagged],
388[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
389
390
391# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
392# ------------------------------------------------
393m4_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])
399m4_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.
410m4_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"`'
422m4_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
430m4_defun([_LT_LIBTOOL_TAGS],
431[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
432available_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
443m4_define([_LT_LIBTOOL_DECLARE],
444[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
445 [description])))[]dnl
446m4_pushdef([_libtool_name],
447 m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
448m4_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
453m4_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.
463m4_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# -------------------------
471m4_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# ------------------------------
478m4_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.
489m4_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.
505m4_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
512sed_quote_subst='$sed_quote_subst'
513double_quote_subst='$double_quote_subst'
514delay_variable_subst='$delay_variable_subst'
515_LT_CONFIG_STATUS_DECLARATIONS
516LTCC='$LTCC'
517LTCFLAGS='$LTCFLAGS'
518compiler='$compiler_DEFAULT'
519
520# Quote evaled strings.
521for 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
531done
532
533# Double-quote double-evaled strings.
534for 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
544done
545
546# Fix-up fallback echo if it was mangled by the above quoting rules.
547case \$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 ;;
551esac
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.
562AC_DEFUN([LT_OUTPUT],
563[: ${CONFIG_LT=./config.lt}
564AC_MSG_NOTICE([creating $CONFIG_LT])
565cat >"$CONFIG_LT" <<_LTEOF
566#! $SHELL
567# Generated by $as_me.
568# Run this file to recreate a libtool stub with the current configuration.
569
570lt_cl_silent=false
571SHELL=\${CONFIG_SHELL-$SHELL}
572_LTEOF
573
574cat >>"$CONFIG_LT" <<\_LTEOF
575AS_SHELL_SANITIZE
576_AS_PREPARE
577
578exec AS_MESSAGE_FD>&1
579exec AS_MESSAGE_LOG_FD>>config.log
580{
581 echo
582 AS_BOX([Running $as_me.])
583} >&AS_MESSAGE_LOG_FD
584
585lt_cl_help="\
586\`$as_me' creates a local libtool stub from the current configuration,
587for use in further configure time tests before the real libtool is
588generated.
589
590Usage: $[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
597Report bugs to <bug-libtool@gnu.org>."
598
599lt_cl_version="\
600m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
601m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
602configured by $[0], generated by m4_PACKAGE_STRING.
603
604Copyright (C) 2008 Free Software Foundation, Inc.
605This config.lt script is free software; the Free Software Foundation
606gives unlimited permision to copy, distribute and modify it."
607
608while test $[#] != 0
609do
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]
621Try \`$[0] --help' for more information.]) ;;
622
623 *) AC_MSG_ERROR([unrecognized argument: $[1]
624Try \`$[0] --help' for more information.]) ;;
625 esac
626 shift
627done
628
629if $lt_cl_silent; then
630 exec AS_MESSAGE_FD>/dev/null
631fi
632_LTEOF
633
634cat >>"$CONFIG_LT" <<_LTEOF
635_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
636_LTEOF
637
638cat >>"$CONFIG_LT" <<\_LTEOF
639AC_MSG_NOTICE([creating $ofile])
640_LT_OUTPUT_LIBTOOL_COMMANDS
641AS_EXIT(0)
642_LTEOF
643chmod +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.
649if 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)
657fi
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.
667m4_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.
706if test "X${COLLECT_NAMES+set}" != Xset; then
707 COLLECT_NAMES=
708 export COLLECT_NAMES
709fi
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
734dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
735dnl 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'
757AC_DEFUN([LT_SUPPORTED_TAG], [])
758
759
760# C support is built-in for now
761m4_define([_LT_LANG_C_enabled], [])
762m4_define([_LT_TAGS], [])
763
764
765# LT_LANG(LANG)
766# -------------
767# Enable libtool support for the given language if not already enabled.
768AC_DEFUN([LT_LANG],
769[AC_BEFORE([$0], [LT_OUTPUT])dnl
770m4_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# ------------------
785m4_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# -----------------------
796m4_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
801AC_PROVIDE_IFELSE([AC_PROG_F77],
802 [LT_LANG(F77)],
803 [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
804
805AC_PROVIDE_IFELSE([AC_PROG_FC],
806 [LT_LANG(FC)],
807 [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
808
809dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
810dnl pulling things in needlessly.
811AC_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
824AC_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:
830AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
831AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
832AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
833AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
834dnl aclocal-1.4 backwards compatibility:
835dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
836dnl AC_DEFUN([AC_LIBTOOL_F77], [])
837dnl AC_DEFUN([AC_LIBTOOL_FC], [])
838dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
839
840
841# _LT_TAG_COMPILER
842# ----------------
843m4_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.
852LTCC=${LTCC-"$CC"}
853
854# If no C compiler flags were specified, use CFLAGS.
855LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
856
857# Allow CC to be a program name with arguments.
858compiler=$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.
866m4_defun([_LT_COMPILER_BOILERPLATE],
867[m4_require([_LT_DECL_SED])dnl
868ac_outfile=conftest.$ac_objext
869echo "$lt_simple_compile_test_code" >conftest.$ac_ext
870eval "$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.
880m4_defun([_LT_LINKER_BOILERPLATE],
881[m4_require([_LT_DECL_SED])dnl
882ac_outfile=conftest.$ac_objext
883echo "$lt_simple_link_test_code" >conftest.$ac_ext
884eval "$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# -------------------------
891m4_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
983m4_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.
1022m4_defun([_LT_SYS_MODULE_PATH_AIX],
1023[m4_require([_LT_DECL_SED])dnl
1024AC_LINK_IFELSE(AC_LANG_PROGRAM,[
1025lt_aix_libpath_sed='
1026 /Import File Strings/,/^$/ {
1027 /^0/ {
1028 s/^0 *\(.*\)$/\1/
1029 p
1030 }
1031 }'
1032aix_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.
1034if test -z "$aix_libpath"; then
1035 aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
1036fi],[])
1037if 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# -------------------
1043m4_define([_LT_SHELL_INIT],
1044[ifdef([AC_DIVERSION_NOTICE],
1045 [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
1046 [AC_DIVERT_PUSH(NOTICE)])
1047$1
1048AC_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.
1056m4_defun([_LT_PROG_ECHO_BACKSLASH],
1057[_LT_SHELL_INIT([
1058# Check that we are running under the correct shell.
1059SHELL=${CONFIG_SHELL-/bin/sh}
1060
1061case X$lt_ECHO in
1062X*--fallback-echo)
1063 # Remove one level of quotation (which was required for Make).
1064 ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
1065 ;;
1066esac
1067
1068ECHO=${lt_ECHO-echo}
1069if test "X[$]1" = X--no-reexec; then
1070 # Discard the --no-reexec flag, and continue.
1071 shift
1072elif test "X[$]1" = X--fallback-echo; then
1073 # Avoid inline document here, it may be left over
1074 :
1075elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
1076 # Yippee, $ECHO works!
1077 :
1078else
1079 # Restart under the correct shell.
1080 exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
1081fi
1082
1083if 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
1090fi
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
1096if 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
1194fi
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.
1198lt_ECHO=$ECHO
1199if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
1200 lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
1201fi
1202
1203AC_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# ---------------
1213m4_defun([_LT_ENABLE_LOCK],
1214[AC_ARG_ENABLE([libtool-lock],
1215 [AS_HELP_STRING([--disable-libtool-lock],
1216 [avoid locking (might break parallel builds)])])
1217test "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.
1221case $host in
1222ia64-*-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
1270x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
1271s390*-*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 ;;
1332sparc*-*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 ;;
1351esac
1352
1353need_locks="$enable_libtool_lock"
1354])# _LT_ENABLE_LOCK
1355
1356
1357# _LT_CMD_OLD_ARCHIVE
1358# -------------------
1359m4_defun([_LT_CMD_OLD_ARCHIVE],
1360[AC_CHECK_TOOL(AR, ar, false)
1361test -z "$AR" && AR=ar
1362test -z "$AR_FLAGS" && AR_FLAGS=cru
1363_LT_DECL([], [AR], [1], [The archiver])
1364_LT_DECL([], [AR_FLAGS], [1])
1365
1366AC_CHECK_TOOL(STRIP, strip, :)
1367test -z "$STRIP" && STRIP=:
1368_LT_DECL([], [STRIP], [1], [A symbol stripping program])
1369
1370AC_CHECK_TOOL(RANLIB, ranlib, :)
1371test -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.
1376old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
1377old_postinstall_cmds='chmod 644 $oldlib'
1378old_postuninstall_cmds=
1379
1380if 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"
1390fi
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
1402AC_DEFUN([_LT_COMPILER_OPTION],
1403[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
1404m4_require([_LT_DECL_SED])dnl
1405AC_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
1436if test x"[$]$2" = xyes; then
1437 m4_if([$5], , :, [$5])
1438else
1439 m4_if([$6], , :, [$6])
1440fi
1441])# _LT_COMPILER_OPTION
1442
1443# Old name:
1444AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
1445dnl aclocal-1.4 backwards compatibility:
1446dnl 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
1453AC_DEFUN([_LT_LINKER_OPTION],
1454[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
1455m4_require([_LT_DECL_SED])dnl
1456AC_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
1480if test x"[$]$2" = xyes; then
1481 m4_if([$4], , :, [$4])
1482else
1483 m4_if([$5], , :, [$5])
1484fi
1485])# _LT_LINKER_OPTION
1486
1487# Old name:
1488AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
1489dnl aclocal-1.4 backwards compatibility:
1490dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
1491
1492
1493# LT_CMD_MAX_LEN
1494#---------------
1495AC_DEFUN([LT_CMD_MAX_LEN],
1496[AC_REQUIRE([AC_CANONICAL_HOST])dnl
1497# find the maximum length of command line arguments
1498AC_MSG_CHECKING([the maximum length of command line arguments])
1499AC_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])
1612if test -n $lt_cv_sys_max_cmd_len ; then
1613 AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
1614else
1615 AC_MSG_RESULT(none)
1616fi
1617max_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:
1623AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
1624dnl aclocal-1.4 backwards compatibility:
1625dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
1626
1627
1628# _LT_HEADER_DLFCN
1629# ----------------
1630m4_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# ----------------------------------------------------------------
1638m4_defun([_LT_TRY_DLOPEN_SELF],
1639[m4_require([_LT_HEADER_DLFCN])dnl
1640if test "$cross_compiling" = yes; then :
1641 [$4]
1642else
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
1687void fnord() { int i=42;}
1688int 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
1717fi
1718rm -fr conftest*
1719])# _LT_TRY_DLOPEN_SELF
1720
1721
1722# LT_SYS_DLOPEN_SELF
1723# ------------------
1724AC_DEFUN([LT_SYS_DLOPEN_SELF],
1725[m4_require([_LT_HEADER_DLFCN])dnl
1726if test "x$enable_dlopen" != xyes; then
1727 enable_dlopen=unknown
1728 enable_dlopen_self=unknown
1729 enable_dlopen_self_static=unknown
1730else
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
1831fi
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:
1841AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
1842dnl aclocal-1.4 backwards compatibility:
1843dnl 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.
1850m4_defun([_LT_COMPILER_C_O],
1851[m4_require([_LT_DECL_SED])dnl
1852m4_require([_LT_FILEUTILS_DEFAULTS])dnl
1853m4_require([_LT_TAG_COMPILER])dnl
1854AC_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
1905m4_defun([_LT_COMPILER_FILE_LOCKS],
1906[m4_require([_LT_ENABLE_LOCK])dnl
1907m4_require([_LT_FILEUTILS_DEFAULTS])dnl
1908_LT_COMPILER_C_O([$1])
1909
1910hard_links="nottested"
1911if 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
1925else
1926 need_locks=no
1927fi
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# ----------------
1934m4_defun([_LT_CHECK_OBJDIR],
1935[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
1936[rm -f .libs 2>/dev/null
1937mkdir .libs 2>/dev/null
1938if test -d .libs; then
1939 lt_cv_objdir=.libs
1940else
1941 # MS-DOS does not allow filenames that begin with a dot.
1942 lt_cv_objdir=_libs
1943fi
1944rmdir .libs 2>/dev/null])
1945objdir=$lt_cv_objdir
1946_LT_DECL([], [objdir], [0],
1947 [The name of the directory that contains temporary libtool files])dnl
1948m4_pattern_allow([LT_OBJDIR])dnl
1949AC_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.
1957m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
1958[AC_MSG_CHECKING([how to hardcode library paths into programs])
1959_LT_TAGVAR(hardcode_action, $1)=
1960if 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
1977else
1978 # We cannot hardcode anything, or else we can only hardcode existing
1979 # directories.
1980 _LT_TAGVAR(hardcode_action, $1)=unsupported
1981fi
1982AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
1983
1984if 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
1988elif test "$shlibpath_overrides_runpath" = yes ||
1989 test "$enable_shared" = no; then
1990 # Fast installation is not necessary
1991 enable_fast_install=needless
1992fi
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# ----------------
2000m4_defun([_LT_CMD_STRIPLIB],
2001[m4_require([_LT_DECL_EGREP])
2002striplib=
2003old_striplib=
2004AC_MSG_CHECKING([whether stripping libraries is possible])
2005if 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])
2009else
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
2025fi
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
2034m4_defun([_LT_SYS_DYNAMIC_LINKER],
2035[AC_REQUIRE([AC_CANONICAL_HOST])dnl
2036m4_require([_LT_DECL_EGREP])dnl
2037m4_require([_LT_FILEUTILS_DEFAULTS])dnl
2038m4_require([_LT_DECL_OBJDUMP])dnl
2039m4_require([_LT_DECL_SED])dnl
2040AC_MSG_CHECKING([dynamic linker characteristics])
2041m4_if([$1],
2042 [], [
2043if 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 '
2071BEGIN {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`
2091else
2092 sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
2093fi])
2094library_names_spec=
2095libname_spec='lib$name'
2096soname_spec=
2097shrext_cmds=".so"
2098postinstall_cmds=
2099postuninstall_cmds=
2100finish_cmds=
2101finish_eval=
2102shlibpath_var=
2103shlibpath_overrides_runpath=unknown
2104version_type=none
2105dynamic_linker="$host_os ld.so"
2106sys_lib_dlsearch_path_spec="/lib /usr/lib"
2107need_lib_prefix=unknown
2108hardcode_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
2112need_version=unknown
2113
2114case $host_os in
2115aix3*)
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
2124aix[[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
2168amigaos*)
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
2183beos*)
2184 library_names_spec='${libname}${shared_ext}'
2185 dynamic_linker="$host_os ld.so"
2186 shlibpath_var=LIBRARY_PATH
2187 ;;
2188
2189bsdi[[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
2203cygwin* | 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
2265darwin* | 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`'
2275m4_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
2280dgux*)
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
2289freebsd1*)
2290 dynamic_linker=no
2291 ;;
2292
2293freebsd* | 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
2337gnu*)
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
2347hpux9* | 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
2393interix[[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
2405irix5* | 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.
2443linux*oldld* | linux*aout* | linux*coff*)
2444 dynamic_linker=no
2445 ;;
2446
2447# This must be Linux ELF.
2448linux* | 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
2488netbsdelf*-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
2500netbsd*)
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
2518newsos6)
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
2537openbsd*)
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
2563os2*)
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
2572osf3* | 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
2583rdos*)
2584 dynamic_linker=no
2585 ;;
2586
2587solaris*)
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
2600sunos4*)
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
2612sysv4 | 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
2635sysv4*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
2644sysv5* | 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
2666tpf*)
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
2677uts4*)
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 ;;
2687esac
2688AC_MSG_RESULT([$dynamic_linker])
2689test "$dynamic_linker" = no && can_build_shared=no
2690
2691variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
2692if test "$GCC" = yes; then
2693 variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
2694fi
2695
2696if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
2697 sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
2698fi
2699if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
2700 sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
2701fi
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
2741AC_DEFUN([_LT_PATH_TOOL_PREFIX],
2742[m4_require([_LT_DECL_EGREP])dnl
2743AC_MSG_CHECKING([for $1])
2744AC_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
2752dnl $ac_dummy forces splitting on constant user-supplied paths.
2753dnl POSIX.2 word splitting is done only on the output of word expansions,
2754dnl 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 ;;
2791esac])
2792MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
2793if test -n "$MAGIC_CMD"; then
2794 AC_MSG_RESULT($MAGIC_CMD)
2795else
2796 AC_MSG_RESULT(no)
2797fi
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:
2803AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
2804dnl aclocal-1.4 backwards compatibility:
2805dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
2806
2807
2808# _LT_PATH_MAGIC
2809# --------------
2810# find a file program which can recognize a shared library
2811m4_defun([_LT_PATH_MAGIC],
2812[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
2813if 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
2819fi
2820])# _LT_PATH_MAGIC
2821
2822
2823# LT_PATH_LD
2824# ----------
2825# find the pathname to the GNU or non-GNU linker
2826AC_DEFUN([LT_PATH_LD],
2827[AC_REQUIRE([AC_PROG_CC])dnl
2828AC_REQUIRE([AC_CANONICAL_HOST])dnl
2829AC_REQUIRE([AC_CANONICAL_BUILD])dnl
2830m4_require([_LT_DECL_SED])dnl
2831m4_require([_LT_DECL_EGREP])dnl
2832
2833AC_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
2839ac_prog=ld
2840if 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
2870elif test "$with_gnu_ld" = yes; then
2871 AC_MSG_CHECKING([for GNU ld])
2872else
2873 AC_MSG_CHECKING([for non-GNU ld])
2874fi
2875AC_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"
2897else
2898 lt_cv_path_LD="$LD" # Let the user override the test with a path.
2899fi])
2900LD="$lt_cv_path_LD"
2901if test -n "$LD"; then
2902 AC_MSG_RESULT($LD)
2903else
2904 AC_MSG_RESULT(no)
2905fi
2906test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
2907_LT_PATH_LD_GNU
2908AC_SUBST([LD])
2909
2910_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
2911])# LT_PATH_LD
2912
2913# Old names:
2914AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
2915AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
2916dnl aclocal-1.4 backwards compatibility:
2917dnl AC_DEFUN([AM_PROG_LD], [])
2918dnl AC_DEFUN([AC_PROG_LD], [])
2919
2920
2921# _LT_PATH_LD_GNU
2922#- --------------
2923m4_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.
2926case `$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 ;;
2933esac])
2934with_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.
2942m4_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'])
2946reload_flag=$lt_cv_ld_reload_flag
2947case $reload_flag in
2948"" | " "*) ;;
2949*) reload_flag=" $reload_flag" ;;
2950esac
2951reload_cmds='$LD$reload_flag -o $output$reload_objs'
2952case $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 ;;
2960esac
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
2970m4_defun([_LT_CHECK_MAGIC_METHOD],
2971[m4_require([_LT_DECL_EGREP])
2972m4_require([_LT_DECL_OBJDUMP])
2973AC_CACHE_CHECK([how to recognize dependent libraries],
2974lt_cv_deplibs_check_method,
2975[lt_cv_file_magic_cmd='$MAGIC_CMD'
2976lt_cv_file_magic_test_file=
2977lt_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
2989case $host_os in
2990aix[[4-9]]*)
2991 lt_cv_deplibs_check_method=pass_all
2992 ;;
2993
2994beos*)
2995 lt_cv_deplibs_check_method=pass_all
2996 ;;
2997
2998bsdi[[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
3004cygwin*)
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
3010mingw* | 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
3023cegcc)
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
3029darwin* | rhapsody*)
3030 lt_cv_deplibs_check_method=pass_all
3031 ;;
3032
3033freebsd* | 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
3049gnu*)
3050 lt_cv_deplibs_check_method=pass_all
3051 ;;
3052
3053hpux10.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
3071interix[[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
3076irix5* | 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.
3087linux* | k*bsd*-gnu | kopensolaris*-gnu)
3088 lt_cv_deplibs_check_method=pass_all
3089 ;;
3090
3091netbsd* | 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
3099newos6*)
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
3109openbsd*)
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
3117osf3* | osf4* | osf5*)
3118 lt_cv_deplibs_check_method=pass_all
3119 ;;
3120
3121rdos*)
3122 lt_cv_deplibs_check_method=pass_all
3123 ;;
3124
3125solaris*)
3126 lt_cv_deplibs_check_method=pass_all
3127 ;;
3128
3129sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
3130 lt_cv_deplibs_check_method=pass_all
3131 ;;
3132
3133sysv4 | 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
3160tpf*)
3161 lt_cv_deplibs_check_method=pass_all
3162 ;;
3163esac
3164])
3165file_magic_cmd=$lt_cv_file_magic_cmd
3166deplibs_check_method=$lt_cv_deplibs_check_method
3167test -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
3179AC_DEFUN([LT_PATH_NM],
3180[AC_REQUIRE([AC_PROG_CC])dnl
3181AC_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"
3185else
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}
3224fi])
3225if test "$lt_cv_path_NM" != "no"; then
3226 NM="$lt_cv_path_NM"
3227else
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
3234fi
3235test -z "$NM" && NM=nm
3236AC_SUBST([NM])
3237_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
3238
3239AC_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:
3257AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
3258AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
3259dnl aclocal-1.4 backwards compatibility:
3260dnl AC_DEFUN([AM_PROG_NM], [])
3261dnl AC_DEFUN([AC_PROG_NM], [])
3262
3263
3264# LT_LIB_M
3265# --------
3266# check for math library
3267AC_DEFUN([LT_LIB_M],
3268[AC_REQUIRE([AC_CANONICAL_HOST])dnl
3269LIBM=
3270case $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 ;;
3281esac
3282AC_SUBST([LIBM])
3283])# LT_LIB_M
3284
3285# Old name:
3286AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
3287dnl aclocal-1.4 backwards compatibility:
3288dnl AC_DEFUN([AC_CHECK_LIBM], [])
3289
3290
3291# _LT_COMPILER_NO_RTTI([TAGNAME])
3292# -------------------------------
3293m4_defun([_LT_COMPILER_NO_RTTI],
3294[m4_require([_LT_TAG_COMPILER])dnl
3295
3296_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
3297
3298if 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"])
3305fi
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# ----------------------
3313m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
3314[AC_REQUIRE([AC_CANONICAL_HOST])dnl
3315AC_REQUIRE([AC_PROG_CC])dnl
3316AC_REQUIRE([LT_PATH_NM])dnl
3317AC_REQUIRE([LT_PATH_LD])dnl
3318m4_require([_LT_DECL_SED])dnl
3319m4_require([_LT_DECL_EGREP])dnl
3320m4_require([_LT_TAG_COMPILER])dnl
3321
3322# Check for command to grab the raw symbol name followed by C symbol from nm.
3323AC_MSG_CHECKING([command to parse $NM output from $compiler object])
3324AC_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.
3330symcode='[[BCDEGRST]]'
3331
3332# Regexp to match symbols that can be accessed directly from C.
3333sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
3334
3335# Define system-specific variables.
3336case $host_os in
3337aix*)
3338 symcode='[[BCDT]]'
3339 ;;
3340cygwin* | mingw* | pw32* | cegcc*)
3341 symcode='[[ABCDGISTW]]'
3342 ;;
3343hpux*)
3344 if test "$host_cpu" = ia64; then
3345 symcode='[[ABCDEGRST]]'
3346 fi
3347 ;;
3348irix* | nonstopux*)
3349 symcode='[[BCDEGRST]]'
3350 ;;
3351osf*)
3352 symcode='[[BCDEGQRST]]'
3353 ;;
3354solaris*)
3355 symcode='[[BDRT]]'
3356 ;;
3357sco3.2v5*)
3358 symcode='[[DT]]'
3359 ;;
3360sysv4.2uw2*)
3361 symcode='[[DT]]'
3362 ;;
3363sysv5* | sco5v6* | unixware* | OpenUNIX*)
3364 symcode='[[ABDT]]'
3365 ;;
3366sysv4)
3367 symcode='[[DFNSTU]]'
3368 ;;
3369esac
3370
3371# If we're using GNU nm, then use its standard symbol codes.
3372case `$NM -V 2>&1` in
3373*GNU* | *'with BFD'*)
3374 symcode='[[ABCDGIRSTW]]' ;;
3375esac
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.
3380lt_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
3383lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'"
3384lt_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
3387opt_cr=
3388case $build_os in
3389mingw*)
3390 opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
3391 ;;
3392esac
3393
3394# Try without a prefix underscore, then with it.
3395for 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
3427extern "C" {
3428#endif
3429char nm_test_var;
3430void nm_test_func(void);
3431void nm_test_func(void){}
3432#ifdef __cplusplus
3433}
3434#endif
3435int 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
3454extern "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. */
3464const struct {
3465 const char *name;
3466 void *address;
3467}
3468lt__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
3479static 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
3520done
3521])
3522if test -z "$lt_cv_sys_global_symbol_pipe"; then
3523 lt_cv_sys_global_symbol_to_cdecl=
3524fi
3525if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
3526 AC_MSG_RESULT(failed)
3527else
3528 AC_MSG_RESULT(ok)
3529fi
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# ---------------------------
3546m4_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
3552AC_MSG_CHECKING([for $compiler option to produce PIC])
3553m4_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])
4123case $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 ;;
4131esac
4132AC_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#
4139if 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])
4149fi
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#
4156wl=$_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.
4170m4_defun([_LT_LINKER_SHLIBS],
4171[AC_REQUIRE([LT_PATH_LD])dnl
4172AC_REQUIRE([LT_PATH_NM])dnl
4173m4_require([_LT_FILEUTILS_DEFAULTS])dnl
4174m4_require([_LT_DECL_EGREP])dnl
4175m4_require([_LT_DECL_SED])dnl
4176m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
4177m4_require([_LT_TAG_COMPILER])dnl
4178AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
4179m4_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.
4245dnl 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])
5107AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
5108test "$_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#
5120case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
5121x|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 ;;
5168esac
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])
5242dnl FIXME: Not yet implemented
5243dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
5244dnl [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'.
5253m4_defun([_LT_LANG_C_CONFIG],
5254[m4_require([_LT_DECL_EGREP])dnl
5255lt_save_CC="$CC"
5256AC_LANG_PUSH(C)
5257
5258# Source file extension for C test sources.
5259ac_ext=c
5260
5261# Object file extension for compiled C test sources.
5262objext=o
5263_LT_TAGVAR(objext, $1)=$objext
5264
5265# Code to be used in simple compile tests
5266lt_simple_compile_test_code="int some_variable = 0;"
5267
5268# Code to be used in simple link tests
5269lt_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.
5274compiler_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...
5284if 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)
5327fi
5328AC_LANG_POP
5329CC="$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.
5337m4_defun([_LT_PROG_CXX],
5338[
5339pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes])
5340AC_PROG_CXX
5341if 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
5345else
5346 _lt_caught_CXX_error=yes
5347fi
5348popdef([AC_MSG_ERROR])
5349])# _LT_PROG_CXX
5350
5351dnl aclocal-1.4 backwards compatibility:
5352dnl 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'.
5360m4_defun([_LT_LANG_CXX_CONFIG],
5361[AC_REQUIRE([_LT_PROG_CXX])dnl
5362m4_require([_LT_FILEUTILS_DEFAULTS])dnl
5363m4_require([_LT_DECL_EGREP])dnl
5364
5365AC_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.
5390ac_ext=cpp
5391
5392# Object file extension for compiled C++ test sources.
5393objext=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.
5400if 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
6353fi # test "$_lt_caught_CXX_error" != yes
6354
6355AC_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.
6365m4_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
6374dnl we can't use the lt_simple_compile_test_code here,
6375dnl because it contains code intended for an executable,
6376dnl not a library. It's possible we should let each
6377dnl tag define a new lt_????_link_test_code variable,
6378dnl but it's only used here...
6379m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
6380int a;
6381void foo (void) { a = 0; }
6382_LT_EOF
6383], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
6384class Foo
6385{
6386public:
6387 Foo (void) { a = 0; }
6388private:
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
6409public class foo {
6410 private int a;
6411 public void bar (void) {
6412 a = 0;
6413 }
6414};
6415_LT_EOF
6416])
6417dnl Parse the compiler output and extract the necessary
6418dnl objects, libraries and library flags.
6419if 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
6495else
6496 echo "libtool.m4: error: problem compiling $1 test program"
6497fi
6498
6499$RM -f confest.$objext
6500
6501# PORTME: override above test on systems where it is broken
6502m4_if([$1], [CXX],
6503[case $host_os in
6504interix[[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
6512linux*)
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
6534solaris*)
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 ;;
6556esac
6557])
6558
6559case " $_LT_TAGVAR(postdeps, $1) " in
6560*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
6561esac
6562 _LT_TAGVAR(compiler_lib_search_dirs, $1)=
6563if 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!^ !!'`
6565fi
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.
6584m4_defun([_LT_PROG_F77],
6585[
6586pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes])
6587AC_PROG_F77
6588if test -z "$F77" || test "X$F77" = "Xno"; then
6589 _lt_disable_F77=yes
6590fi
6591popdef([AC_MSG_ERROR])
6592])# _LT_PROG_F77
6593
6594dnl aclocal-1.4 backwards compatibility:
6595dnl 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'.
6603m4_defun([_LT_LANG_F77_CONFIG],
6604[AC_REQUIRE([_LT_PROG_F77])dnl
6605AC_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.
6629ac_ext=f
6630
6631# Object file extension for compiled f77 test sources.
6632objext=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.
6639if 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"
6717fi # test "$_lt_disable_F77" != yes
6718
6719AC_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.
6727m4_defun([_LT_PROG_FC],
6728[
6729pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes])
6730AC_PROG_FC
6731if test -z "$FC" || test "X$FC" = "Xno"; then
6732 _lt_disable_FC=yes
6733fi
6734popdef([AC_MSG_ERROR])
6735])# _LT_PROG_FC
6736
6737dnl aclocal-1.4 backwards compatibility:
6738dnl 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'.
6746m4_defun([_LT_LANG_FC_CONFIG],
6747[AC_REQUIRE([_LT_PROG_FC])dnl
6748AC_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.
6772ac_ext=${ac_fc_srcext-f}
6773
6774# Object file extension for compiled fc test sources.
6775objext=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.
6782if 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"
6863fi # test "$_lt_disable_FC" != yes
6864
6865AC_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'.
6874m4_defun([_LT_LANG_GCJ_CONFIG],
6875[AC_REQUIRE([LT_PROG_GCJ])dnl
6876AC_LANG_SAVE
6877
6878# Source file extension for Java test sources.
6879ac_ext=java
6880
6881# Object file extension for compiled Java test sources.
6882objext=o
6883_LT_TAGVAR(objext, $1)=$objext
6884
6885# Code to be used in simple compile tests
6886lt_simple_compile_test_code="class foo {}"
6887
6888# Code to be used in simple link tests
6889lt_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.
6899lt_save_CC="$CC"
6900lt_save_GCC=$GCC
6901GCC=yes
6902CC=${GCJ-"gcj"}
6903compiler=$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...
6917if 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)
6926fi
6927
6928AC_LANG_RESTORE
6929
6930GCC=$lt_save_GCC
6931CC="$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'.
6940m4_defun([_LT_LANG_RC_CONFIG],
6941[AC_REQUIRE([LT_PROG_RC])dnl
6942AC_LANG_SAVE
6943
6944# Source file extension for RC test sources.
6945ac_ext=rc
6946
6947# Object file extension for compiled RC test sources.
6948objext=o
6949_LT_TAGVAR(objext, $1)=$objext
6950
6951# Code to be used in simple compile tests
6952lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
6953
6954# Code to be used in simple link tests
6955lt_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.
6965lt_save_CC="$CC"
6966lt_save_GCC=$GCC
6967GCC=
6968CC=${RC-"windres"}
6969compiler=$CC
6970_LT_TAGVAR(compiler, $1)=$CC
6971_LT_CC_BASENAME([$compiler])
6972_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
6973
6974if test -n "$compiler"; then
6975 :
6976 _LT_CONFIG($1)
6977fi
6978
6979GCC=$lt_save_GCC
6980AC_LANG_RESTORE
6981CC="$lt_save_CC"
6982])# _LT_LANG_RC_CONFIG
6983
6984
6985# LT_PROG_GCJ
6986# -----------
6987AC_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:
6996AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
6997dnl aclocal-1.4 backwards compatibility:
6998dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
6999
7000
7001# LT_PROG_RC
7002# ----------
7003AC_DEFUN([LT_PROG_RC],
7004[AC_CHECK_TOOL(RC, windres,)
7005])
7006
7007# Old name:
7008AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
7009dnl aclocal-1.4 backwards compatibility:
7010dnl 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.
7017m4_defun([_LT_DECL_EGREP],
7018[AC_REQUIRE([AC_PROG_EGREP])dnl
7019AC_REQUIRE([AC_PROG_FGREP])dnl
7020test -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])
7024dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
7025AC_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.
7033m4_defun([_LT_DECL_OBJDUMP],
7034[AC_CHECK_TOOL(OBJDUMP, objdump, false)
7035test -z "$OBJDUMP" && OBJDUMP=objdump
7036_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
7037AC_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.
7045m4_defun([_LT_DECL_SED],
7046[AC_PROG_SED
7047test -z "$SED" && SED=sed
7048Xsed="$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
7054m4_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
7062m4_defun([AC_PROG_SED],
7063[AC_MSG_CHECKING([for a sed that does not truncate output])
7064AC_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.
7067as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
7068for as_dir in $PATH
7069do
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
7079done
7080IFS=$as_save_IFS
7081lt_ac_max=0
7082lt_ac_count=0
7083# Add /usr/xpg4/bin/sed as it is typically found on Solaris
7084# along with /bin/sed that truncates output.
7085for 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
7110done
7111])
7112SED=$lt_cv_path_SED
7113AC_SUBST([SED])
7114AC_MSG_RESULT([$SED])
7115])#AC_PROG_SED
7116])#m4_ifndef
7117
7118# Old name:
7119AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
7120dnl aclocal-1.4 backwards compatibility:
7121dnl 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.
7128m4_defun([_LT_CHECK_SHELL_FEATURES],
7129[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
7130# Try some XSI features
7131xsi_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
7138AC_MSG_RESULT([$xsi_shell])
7139_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
7140
7141AC_MSG_CHECKING([whether the shell understands "+="])
7142lt_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
7146AC_MSG_RESULT([$lt_shell_append])
7147_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
7148
7149if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
7150 lt_unset=unset
7151else
7152 lt_unset=false
7153fi
7154_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
7155
7156# test EBCDIC or ASCII
7157case `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 ;;
7167esac
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.
7176m4_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.
7184func_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
7193func_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.
7210func_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).
7224func_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
7234func_opt_split ()
7235{
7236 func_opt_split_opt=${1%%=*}
7237 func_opt_split_arg=${1#*=}
7238}
7239
7240# func_lo2o object
7241func_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
7250func_xform ()
7251{
7252 func_xform_result=${1%.*}.lo
7253}
7254
7255# func_arith arithmetic-term...
7256func_arith ()
7257{
7258 func_arith_result=$(( $[*] ))
7259}
7260
7261# func_len string
7262# STRING may not start with a hyphen.
7263func_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.
7276func_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
7288func_basename ()
7289{
7290 func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
7291}
7292
7293dnl func_dirname_and_basename
7294dnl A portable version of this function is already defined in general.m4sh
7295dnl 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
7303func_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:
7314my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q'
7315my_sed_long_arg='1s/^-[[^=]]*=//'
7316
7317# func_opt_split
7318func_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
7325func_lo2o ()
7326{
7327 func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"`
7328}
7329
7330# func_xform libobj-or-source
7331func_xform ()
7332{
7333 func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'`
7334}
7335
7336# func_arith arithmetic-term...
7337func_arith ()
7338{
7339 func_arith_result=`expr "$[@]"`
7340}
7341
7342# func_len string
7343# STRING may not start with a hyphen.
7344func_len ()
7345{
7346 func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
7347}
7348
7349_LT_EOF
7350esac
7351
7352case $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.
7358func_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.
7369func_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.
13AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
14
15
16# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
17# ------------------------------------------
18m4_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.
27m4_define([_LT_SET_OPTION],
28[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
29m4_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.
38m4_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.
46m4_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
50m4_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.
61m4_defun([_LT_SET_OPTIONS],
62[# Set options
63m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
64 [_LT_SET_OPTION([$1], _LT_Option)])
65
66m4_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# -----------------------------------------
94m4_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# -----------------------------------------------
100m4_define([LT_OPTION_DEFINE],
101[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
102])# LT_OPTION_DEFINE
103
104
105# dlopen
106# ------
107LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
108])
109
110AU_DEFUN([AC_LIBTOOL_DLOPEN],
111[_LT_SET_OPTION([LT_INIT], [dlopen])
112AC_DIAGNOSE([obsolete],
113[$0: Remove this warning and the call to _LT_SET_OPTION when you
114put the `dlopen' option into LT_INIT's first parameter.])
115])
116
117dnl aclocal-1.4 backwards compatibility:
118dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
119
120
121# win32-dll
122# ---------
123# Declare package support for building win32 dll's.
124LT_OPTION_DEFINE([LT_INIT], [win32-dll],
125[enable_win32_dll=yes
126
127case $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 ;;
133esac
134
135test -z "$AS" && AS=as
136_LT_DECL([], [AS], [0], [Assembler program])dnl
137
138test -z "$DLLTOOL" && DLLTOOL=dlltool
139_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl
140
141test -z "$OBJDUMP" && OBJDUMP=objdump
142_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl
143])# win32-dll
144
145AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
146[AC_REQUIRE([AC_CANONICAL_HOST])dnl
147_LT_SET_OPTION([LT_INIT], [win32-dll])
148AC_DIAGNOSE([obsolete],
149[$0: Remove this warning and the call to _LT_SET_OPTION when you
150put the `win32-dll' option into LT_INIT's first parameter.])
151])
152
153dnl aclocal-1.4 backwards compatibility:
154dnl 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'.
162m4_define([_LT_ENABLE_SHARED],
163[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
164AC_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
190LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
191LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
192
193# Old names:
194AC_DEFUN([AC_ENABLE_SHARED],
195[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
196])
197
198AC_DEFUN([AC_DISABLE_SHARED],
199[_LT_SET_OPTION([LT_INIT], [disable-shared])
200])
201
202AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
203AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
204
205dnl aclocal-1.4 backwards compatibility:
206dnl AC_DEFUN([AM_ENABLE_SHARED], [])
207dnl 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'.
216m4_define([_LT_ENABLE_STATIC],
217[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
218AC_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
244LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
245LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
246
247# Old names:
248AC_DEFUN([AC_ENABLE_STATIC],
249[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
250])
251
252AC_DEFUN([AC_DISABLE_STATIC],
253[_LT_SET_OPTION([LT_INIT], [disable-static])
254])
255
256AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
257AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
258
259dnl aclocal-1.4 backwards compatibility:
260dnl AC_DEFUN([AM_ENABLE_STATIC], [])
261dnl 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'.
270m4_define([_LT_ENABLE_FAST_INSTALL],
271[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
272AC_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
298LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
299LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
300
301# Old names:
302AU_DEFUN([AC_ENABLE_FAST_INSTALL],
303[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
304AC_DIAGNOSE([obsolete],
305[$0: Remove this warning and the call to _LT_SET_OPTION when you put
306the `fast-install' option into LT_INIT's first parameter.])
307])
308
309AU_DEFUN([AC_DISABLE_FAST_INSTALL],
310[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
311AC_DIAGNOSE([obsolete],
312[$0: Remove this warning and the call to _LT_SET_OPTION when you put
313the `disable-fast-install' option into LT_INIT's first parameter.])
314])
315
316dnl aclocal-1.4 backwards compatibility:
317dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
318dnl 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'.
326m4_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
333test -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
338LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
339LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
340
341# Old name:
342AU_DEFUN([AC_LIBTOOL_PICMODE],
343[_LT_SET_OPTION([LT_INIT], [pic-only])
344AC_DIAGNOSE([obsolete],
345[$0: Remove this warning and the call to _LT_SET_OPTION when you
346put the `pic-only' option into LT_INIT's first parameter.])
347])
348
349dnl aclocal-1.4 backwards compatibility:
350dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
351
352## ----------------- ##
353## LTDL_INIT Options ##
354## ----------------- ##
355
356m4_define([_LTDL_MODE], [])
357LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
358 [m4_define([_LTDL_MODE], [nonrecursive])])
359LT_OPTION_DEFINE([LTDL_INIT], [recursive],
360 [m4_define([_LTDL_MODE], [recursive])])
361LT_OPTION_DEFINE([LTDL_INIT], [subproject],
362 [m4_define([_LTDL_MODE], [subproject])])
363
364m4_define([_LTDL_TYPE], [])
365LT_OPTION_DEFINE([LTDL_INIT], [installable],
366 [m4_define([_LTDL_TYPE], [installable])])
367LT_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.
13AC_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.
22m4_define([lt_join],
23[m4_if([$#], [1], [],
24 [$#], [2], [[$2]],
25 [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
26m4_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.
37m4_define([lt_car], [[$1]])
38m4_define([lt_cdr],
39[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
40 [$#], 1, [],
41 [m4_dquote(m4_shift($@))])])
42m4_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.
55m4_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.
67m4_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.
80m4_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# -----------------------------
90m4_define([lt_dict_add],
91[m4_define([$1($2)], [$3])])
92
93
94# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
95# --------------------------------------------
96m4_define([lt_dict_add_subkey],
97[m4_define([$1($2:$3)], [$4])])
98
99
100# lt_dict_fetch(DICT, KEY, [SUBKEY])
101# ----------------------------------
102m4_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# -----------------------------------------------------------------
110m4_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# --------------------------------------------------------------
118m4_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
15m4_define([LT_PACKAGE_VERSION], [2.2.6b])
16m4_define([LT_PACKAGE_REVISION], [1.3017])
17
18AC_DEFUN([LTVERSION_VERSION],
19[macro_version='2.2.6b'
20macro_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.
36AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
37
38m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
39m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
40m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
41m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
42m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
43m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
44m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
45m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
46m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
47m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
48m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
49m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
50m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
51m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
52m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
53m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
54m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
55m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
56m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
57m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
58m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
59m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
60m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
61m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
62m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
63m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
64m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
65m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
66m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
67m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
68m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
69m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
70m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
71m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
72m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
73m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
74m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
75m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])])
76m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
77m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
78m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
79m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
80m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])])
81m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
82m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
83m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
84m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
85m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
86m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
87m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
88m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
89m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
90m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
91m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
92m4_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
4scriptversion=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
28if test $# -eq 0; then
29 echo 1>&2 "Try \`$0 --help' for more information"
30 exit 1
31fi
32
33run=:
34sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
35sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
36
37# In the cases where this matters, `missing' is being run in the
38# srcdir already.
39if test -f configure.ac; then
40 configure_ac=configure.ac
41else
42 configure_ac=configure.in
43fi
44
45msg="missing on your system"
46
47case $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
68Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
69error status if there is no known handling for PROGRAM.
70
71Options:
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
76Supported 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
90Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
91\`g' are ignored when checking the name.
92
93Send 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
108esac
109
110# normalize program name to check for.
111program=`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.
120case $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 ;;
145esac
146
147# If it does not exist, or fails to run (possibly an outdated version),
148# try to emulate it.
149case $program in
150 aclocal*)
151 echo 1>&2 "\
152WARNING: \`$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 "\
161WARNING: \`$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 "\
170WARNING: \`$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 "\
189WARNING: \`$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 "\
200WARNING: \`$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 "\
223WARNING: \`$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 "\
253WARNING: \`$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 "\
276WARNING: \`$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 "\
294WARNING: \`$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 "\
350WARNING: 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 "\
358WARNING: \`$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 ;;
366esac
367
368exit 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 @@
1754d240f852579fbfa1d3416e85943dfa60e1a10
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 @@
1MAINTAINERCLEANFILES = Makefile.in
2
3SUBDIRS = 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@
17VPATH = @srcdir@
18pkgdatadir = $(datadir)/@PACKAGE@
19pkgincludedir = $(includedir)/@PACKAGE@
20pkglibdir = $(libdir)/@PACKAGE@
21pkglibexecdir = $(libexecdir)/@PACKAGE@
22am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
23install_sh_DATA = $(install_sh) -c -m 644
24install_sh_PROGRAM = $(install_sh) -c
25install_sh_SCRIPT = $(install_sh) -c
26INSTALL_HEADER = $(INSTALL_DATA)
27transform = $(program_transform_name)
28NORMAL_INSTALL = :
29PRE_INSTALL = :
30POST_INSTALL = :
31NORMAL_UNINSTALL = :
32PRE_UNINSTALL = :
33POST_UNINSTALL = :
34build_triplet = @build@
35host_triplet = @host@
36subdir = src
37DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
38ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
39am__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
50am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
51 $(ACLOCAL_M4)
52mkinstalldirs = $(install_sh) -d
53CONFIG_HEADER = $(top_builddir)/config.h
54CONFIG_CLEAN_FILES =
55CONFIG_CLEAN_VPATH_FILES =
56AM_V_GEN = $(am__v_GEN_$(V))
57am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
58am__v_GEN_0 = @echo " GEN " $@;
59AM_V_at = $(am__v_at_$(V))
60am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
61am__v_at_0 = @
62SOURCES =
63DIST_SOURCES =
64RECURSIVE_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
71RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
72 distclean-recursive maintainer-clean-recursive
73AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
74 $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
75 distdir
76ETAGS = etags
77CTAGS = ctags
78DIST_SUBDIRS = $(SUBDIRS)
79DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
80am__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"
105ACLOCAL = @ACLOCAL@
106ALLOCA = @ALLOCA@
107AMTAR = @AMTAR@
108AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
109AR = @AR@
110AS = @AS@
111AUTOCONF = @AUTOCONF@
112AUTOHEADER = @AUTOHEADER@
113AUTOMAKE = @AUTOMAKE@
114AWK = @AWK@
115CC = @CC@
116CCDEPMODE = @CCDEPMODE@
117CFLAGS = @CFLAGS@
118CHECK_CFLAGS = @CHECK_CFLAGS@
119CHECK_LIBS = @CHECK_LIBS@
120CPP = @CPP@
121CPPFLAGS = @CPPFLAGS@
122CYGPATH_W = @CYGPATH_W@
123DEBUG_CFLAGS = @DEBUG_CFLAGS@
124DEFS = @DEFS@
125DEPDIR = @DEPDIR@
126DLLTOOL = @DLLTOOL@
127DSYMUTIL = @DSYMUTIL@
128DUMPBIN = @DUMPBIN@
129ECHO_C = @ECHO_C@
130ECHO_N = @ECHO_N@
131ECHO_T = @ECHO_T@
132EET_CFLAGS = @EET_CFLAGS@
133EET_CPPFLAGS = @EET_CPPFLAGS@
134EET_LIBS = @EET_LIBS@
135EET_PRG = @EET_PRG@
136EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
137EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
138EFL_EET_BUILD = @EFL_EET_BUILD@
139EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
140EGREP = @EGREP@
141EINA_CFLAGS = @EINA_CFLAGS@
142EINA_LIBS = @EINA_LIBS@
143EVIL_CFLAGS = @EVIL_CFLAGS@
144EVIL_LIBS = @EVIL_LIBS@
145EXEEXT = @EXEEXT@
146EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
147EXOTIC_LIBS = @EXOTIC_LIBS@
148FGREP = @FGREP@
149GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
150GNUTLS_LIBS = @GNUTLS_LIBS@
151GREP = @GREP@
152INSTALL = @INSTALL@
153INSTALL_DATA = @INSTALL_DATA@
154INSTALL_PROGRAM = @INSTALL_PROGRAM@
155INSTALL_SCRIPT = @INSTALL_SCRIPT@
156INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
157LD = @LD@
158LDFLAGS = @LDFLAGS@
159LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
160LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
161LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
162LIBOBJS = @LIBOBJS@
163LIBS = @LIBS@
164LIBTOOL = @LIBTOOL@
165LIPO = @LIPO@
166LN_S = @LN_S@
167LTLIBOBJS = @LTLIBOBJS@
168MAKEINFO = @MAKEINFO@
169MKDIR_P = @MKDIR_P@
170NM = @NM@
171NMEDIT = @NMEDIT@
172OBJDUMP = @OBJDUMP@
173OBJEXT = @OBJEXT@
174OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
175OPENSSL_LIBS = @OPENSSL_LIBS@
176OTOOL = @OTOOL@
177OTOOL64 = @OTOOL64@
178PACKAGE = @PACKAGE@
179PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
180PACKAGE_NAME = @PACKAGE_NAME@
181PACKAGE_STRING = @PACKAGE_STRING@
182PACKAGE_TARNAME = @PACKAGE_TARNAME@
183PACKAGE_URL = @PACKAGE_URL@
184PACKAGE_VERSION = @PACKAGE_VERSION@
185PATH_SEPARATOR = @PATH_SEPARATOR@
186PKG_CONFIG = @PKG_CONFIG@
187PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
188PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
189RANLIB = @RANLIB@
190SED = @SED@
191SET_MAKE = @SET_MAKE@
192SHELL = @SHELL@
193STRIP = @STRIP@
194VERSION = @VERSION@
195VMAJ = @VMAJ@
196abs_builddir = @abs_builddir@
197abs_srcdir = @abs_srcdir@
198abs_top_builddir = @abs_top_builddir@
199abs_top_srcdir = @abs_top_srcdir@
200ac_ct_CC = @ac_ct_CC@
201ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
202am__include = @am__include@
203am__leading_dot = @am__leading_dot@
204am__quote = @am__quote@
205am__tar = @am__tar@
206am__untar = @am__untar@
207bindir = @bindir@
208build = @build@
209build_alias = @build_alias@
210build_cpu = @build_cpu@
211build_os = @build_os@
212build_vendor = @build_vendor@
213builddir = @builddir@
214datadir = @datadir@
215datarootdir = @datarootdir@
216docdir = @docdir@
217dvidir = @dvidir@
218efl_doxygen = @efl_doxygen@
219efl_have_doxygen = @efl_have_doxygen@
220exec_prefix = @exec_prefix@
221have_lcov = @have_lcov@
222host = @host@
223host_alias = @host_alias@
224host_cpu = @host_cpu@
225host_os = @host_os@
226host_vendor = @host_vendor@
227htmldir = @htmldir@
228includedir = @includedir@
229infodir = @infodir@
230install_sh = @install_sh@
231libdir = @libdir@
232libexecdir = @libexecdir@
233localedir = @localedir@
234localstatedir = @localstatedir@
235lt_ECHO = @lt_ECHO@
236lt_enable_auto_import = @lt_enable_auto_import@
237mandir = @mandir@
238mkdir_p = @mkdir_p@
239oldincludedir = @oldincludedir@
240pdfdir = @pdfdir@
241pkgconfig_requires_private = @pkgconfig_requires_private@
242prefix = @prefix@
243program_transform_name = @program_transform_name@
244psdir = @psdir@
245release_info = @release_info@
246requirement_eet = @requirement_eet@
247sbindir = @sbindir@
248sharedstatedir = @sharedstatedir@
249srcdir = @srcdir@
250sysconfdir = @sysconfdir@
251target_alias = @target_alias@
252top_build_prefix = @top_build_prefix@
253top_builddir = @top_builddir@
254top_srcdir = @top_srcdir@
255version_info = @version_info@
256MAINTAINERCLEANFILES = Makefile.in
257SUBDIRS = lib bin tests examples
258all: 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
274Makefile: $(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
292mostlyclean-libtool:
293 -rm -f *.lo
294
295clean-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"
359tags-recursive:
360 list='$(SUBDIRS)'; for subdir in $$list; do \
361 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
362 done
363ctags-recursive:
364 list='$(SUBDIRS)'; for subdir in $$list; do \
365 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
366 done
367
368ID: $(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
376tags: TAGS
377
378TAGS: 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
412ctags: CTAGS
413CTAGS: 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
425GTAGS:
426 here=`$(am__cd) $(top_builddir) && pwd` \
427 && $(am__cd) $(top_srcdir) \
428 && gtags -i $(GTAGS_ARGS) "$$here"
429
430distclean-tags:
431 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
432
433distdir: $(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
491check-am: all-am
492check: check-recursive
493all-am: Makefile
494installdirs: installdirs-recursive
495installdirs-am:
496install: install-recursive
497install-exec: install-exec-recursive
498install-data: install-data-recursive
499uninstall: uninstall-recursive
500
501install-am: all-am
502 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
503
504installcheck: installcheck-recursive
505install-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
510mostlyclean-generic:
511
512clean-generic:
513
514distclean-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
518maintainer-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)
522clean: clean-recursive
523
524clean-am: clean-generic clean-libtool mostlyclean-am
525
526distclean: distclean-recursive
527 -rm -f Makefile
528distclean-am: clean-am distclean-generic distclean-tags
529
530dvi: dvi-recursive
531
532dvi-am:
533
534html: html-recursive
535
536html-am:
537
538info: info-recursive
539
540info-am:
541
542install-data-am:
543
544install-dvi: install-dvi-recursive
545
546install-dvi-am:
547
548install-exec-am:
549
550install-html: install-html-recursive
551
552install-html-am:
553
554install-info: install-info-recursive
555
556install-info-am:
557
558install-man:
559
560install-pdf: install-pdf-recursive
561
562install-pdf-am:
563
564install-ps: install-ps-recursive
565
566install-ps-am:
567
568installcheck-am:
569
570maintainer-clean: maintainer-clean-recursive
571 -rm -f Makefile
572maintainer-clean-am: distclean-am maintainer-clean-generic
573
574mostlyclean: mostlyclean-recursive
575
576mostlyclean-am: mostlyclean-generic mostlyclean-libtool
577
578pdf: pdf-recursive
579
580pdf-am:
581
582ps: ps-recursive
583
584ps-am:
585
586uninstall-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
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_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
15bin_PROGRAMS = @EET_PRG@
16EXTRA_PROGRAMS = eet
17
18eet_SOURCES = eet_main.c
19eet_CFLAGS = @EET_CFLAGS@
20eet_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ @EVIL_LIBS@ @EXOTIC_LIBS@
21eet_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
18VPATH = @srcdir@
19pkgdatadir = $(datadir)/@PACKAGE@
20pkgincludedir = $(includedir)/@PACKAGE@
21pkglibdir = $(libdir)/@PACKAGE@
22pkglibexecdir = $(libexecdir)/@PACKAGE@
23am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
24install_sh_DATA = $(install_sh) -c -m 644
25install_sh_PROGRAM = $(install_sh) -c
26install_sh_SCRIPT = $(install_sh) -c
27INSTALL_HEADER = $(INSTALL_DATA)
28transform = $(program_transform_name)
29NORMAL_INSTALL = :
30PRE_INSTALL = :
31POST_INSTALL = :
32NORMAL_UNINSTALL = :
33PRE_UNINSTALL = :
34POST_UNINSTALL = :
35build_triplet = @build@
36host_triplet = @host@
37EXTRA_PROGRAMS = eet$(EXEEXT)
38subdir = src/bin
39DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
40ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
41am__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
52am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
53 $(ACLOCAL_M4)
54mkinstalldirs = $(install_sh) -d
55CONFIG_HEADER = $(top_builddir)/config.h
56CONFIG_CLEAN_FILES =
57CONFIG_CLEAN_VPATH_FILES =
58am__installdirs = "$(DESTDIR)$(bindir)"
59PROGRAMS = $(bin_PROGRAMS)
60am_eet_OBJECTS = eet-eet_main.$(OBJEXT)
61eet_OBJECTS = $(am_eet_OBJECTS)
62eet_DEPENDENCIES = $(top_builddir)/src/lib/libeet.la
63AM_V_lt = $(am__v_lt_$(V))
64am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
65am__v_lt_0 = --silent
66eet_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
67 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(eet_CFLAGS) $(CFLAGS) \
68 $(eet_LDFLAGS) $(LDFLAGS) -o $@
69DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
70depcomp = $(SHELL) $(top_srcdir)/depcomp
71am__depfiles_maybe = depfiles
72am__mv = mv -f
73COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
74 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
75LTCOMPILE = $(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)
79AM_V_CC = $(am__v_CC_$(V))
80am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
81am__v_CC_0 = @echo " CC " $@;
82AM_V_at = $(am__v_at_$(V))
83am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
84am__v_at_0 = @
85CCLD = $(CC)
86LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
87 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
88 $(AM_LDFLAGS) $(LDFLAGS) -o $@
89AM_V_CCLD = $(am__v_CCLD_$(V))
90am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
91am__v_CCLD_0 = @echo " CCLD " $@;
92AM_V_GEN = $(am__v_GEN_$(V))
93am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
94am__v_GEN_0 = @echo " GEN " $@;
95SOURCES = $(eet_SOURCES)
96DIST_SOURCES = $(eet_SOURCES)
97ETAGS = etags
98CTAGS = ctags
99DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
100ACLOCAL = @ACLOCAL@
101ALLOCA = @ALLOCA@
102AMTAR = @AMTAR@
103AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
104AR = @AR@
105AS = @AS@
106AUTOCONF = @AUTOCONF@
107AUTOHEADER = @AUTOHEADER@
108AUTOMAKE = @AUTOMAKE@
109AWK = @AWK@
110CC = @CC@
111CCDEPMODE = @CCDEPMODE@
112CFLAGS = @CFLAGS@
113CHECK_CFLAGS = @CHECK_CFLAGS@
114CHECK_LIBS = @CHECK_LIBS@
115CPP = @CPP@
116CPPFLAGS = @CPPFLAGS@
117CYGPATH_W = @CYGPATH_W@
118DEBUG_CFLAGS = @DEBUG_CFLAGS@
119DEFS = @DEFS@
120DEPDIR = @DEPDIR@
121DLLTOOL = @DLLTOOL@
122DSYMUTIL = @DSYMUTIL@
123DUMPBIN = @DUMPBIN@
124ECHO_C = @ECHO_C@
125ECHO_N = @ECHO_N@
126ECHO_T = @ECHO_T@
127EET_CFLAGS = @EET_CFLAGS@
128EET_CPPFLAGS = @EET_CPPFLAGS@
129EET_LIBS = @EET_LIBS@
130EET_PRG = @EET_PRG@
131EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
132EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
133EFL_EET_BUILD = @EFL_EET_BUILD@
134EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
135EGREP = @EGREP@
136EINA_CFLAGS = @EINA_CFLAGS@
137EINA_LIBS = @EINA_LIBS@
138EVIL_CFLAGS = @EVIL_CFLAGS@
139EVIL_LIBS = @EVIL_LIBS@
140EXEEXT = @EXEEXT@
141EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
142EXOTIC_LIBS = @EXOTIC_LIBS@
143FGREP = @FGREP@
144GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
145GNUTLS_LIBS = @GNUTLS_LIBS@
146GREP = @GREP@
147INSTALL = @INSTALL@
148INSTALL_DATA = @INSTALL_DATA@
149INSTALL_PROGRAM = @INSTALL_PROGRAM@
150INSTALL_SCRIPT = @INSTALL_SCRIPT@
151INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
152LD = @LD@
153LDFLAGS = @LDFLAGS@
154LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
155LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
156LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
157LIBOBJS = @LIBOBJS@
158LIBS = @LIBS@
159LIBTOOL = @LIBTOOL@
160LIPO = @LIPO@
161LN_S = @LN_S@
162LTLIBOBJS = @LTLIBOBJS@
163MAKEINFO = @MAKEINFO@
164MKDIR_P = @MKDIR_P@
165NM = @NM@
166NMEDIT = @NMEDIT@
167OBJDUMP = @OBJDUMP@
168OBJEXT = @OBJEXT@
169OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
170OPENSSL_LIBS = @OPENSSL_LIBS@
171OTOOL = @OTOOL@
172OTOOL64 = @OTOOL64@
173PACKAGE = @PACKAGE@
174PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
175PACKAGE_NAME = @PACKAGE_NAME@
176PACKAGE_STRING = @PACKAGE_STRING@
177PACKAGE_TARNAME = @PACKAGE_TARNAME@
178PACKAGE_URL = @PACKAGE_URL@
179PACKAGE_VERSION = @PACKAGE_VERSION@
180PATH_SEPARATOR = @PATH_SEPARATOR@
181PKG_CONFIG = @PKG_CONFIG@
182PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
183PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
184RANLIB = @RANLIB@
185SED = @SED@
186SET_MAKE = @SET_MAKE@
187SHELL = @SHELL@
188STRIP = @STRIP@
189VERSION = @VERSION@
190VMAJ = @VMAJ@
191abs_builddir = @abs_builddir@
192abs_srcdir = @abs_srcdir@
193abs_top_builddir = @abs_top_builddir@
194abs_top_srcdir = @abs_top_srcdir@
195ac_ct_CC = @ac_ct_CC@
196ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
197am__include = @am__include@
198am__leading_dot = @am__leading_dot@
199am__quote = @am__quote@
200am__tar = @am__tar@
201am__untar = @am__untar@
202bindir = @bindir@
203build = @build@
204build_alias = @build_alias@
205build_cpu = @build_cpu@
206build_os = @build_os@
207build_vendor = @build_vendor@
208builddir = @builddir@
209datadir = @datadir@
210datarootdir = @datarootdir@
211docdir = @docdir@
212dvidir = @dvidir@
213efl_doxygen = @efl_doxygen@
214efl_have_doxygen = @efl_have_doxygen@
215exec_prefix = @exec_prefix@
216have_lcov = @have_lcov@
217host = @host@
218host_alias = @host_alias@
219host_cpu = @host_cpu@
220host_os = @host_os@
221host_vendor = @host_vendor@
222htmldir = @htmldir@
223includedir = @includedir@
224infodir = @infodir@
225install_sh = @install_sh@
226libdir = @libdir@
227libexecdir = @libexecdir@
228localedir = @localedir@
229localstatedir = @localstatedir@
230lt_ECHO = @lt_ECHO@
231lt_enable_auto_import = @lt_enable_auto_import@
232mandir = @mandir@
233mkdir_p = @mkdir_p@
234oldincludedir = @oldincludedir@
235pdfdir = @pdfdir@
236pkgconfig_requires_private = @pkgconfig_requires_private@
237prefix = @prefix@
238program_transform_name = @program_transform_name@
239psdir = @psdir@
240release_info = @release_info@
241requirement_eet = @requirement_eet@
242sbindir = @sbindir@
243sharedstatedir = @sharedstatedir@
244srcdir = @srcdir@
245sysconfdir = @sysconfdir@
246target_alias = @target_alias@
247top_build_prefix = @top_build_prefix@
248top_builddir = @top_builddir@
249top_srcdir = @top_srcdir@
250version_info = @version_info@
251MAINTAINERCLEANFILES = Makefile.in
252AM_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
263bin_PROGRAMS = @EET_PRG@
264eet_SOURCES = eet_main.c
265eet_CFLAGS = @EET_CFLAGS@
266eet_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ @EVIL_LIBS@ @EXOTIC_LIBS@
267eet_LDFLAGS = @lt_enable_auto_import@
268all: 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
285Makefile: $(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):
302install-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
327uninstall-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
337clean-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
345eet$(EXEEXT): $(eet_OBJECTS) $(eet_DEPENDENCIES)
346 @rm -f eet$(EXEEXT)
347 $(AM_V_CCLD)$(eet_LINK) $(eet_OBJECTS) $(eet_LDADD) $(LIBS)
348
349mostlyclean-compile:
350 -rm -f *.$(OBJEXT)
351
352distclean-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
381eet-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
389eet-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
397mostlyclean-libtool:
398 -rm -f *.lo
399
400clean-libtool:
401 -rm -rf .libs _libs
402
403ID: $(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
411tags: TAGS
412
413TAGS: $(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
434ctags: CTAGS
435CTAGS: $(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
447GTAGS:
448 here=`$(am__cd) $(top_builddir) && pwd` \
449 && $(am__cd) $(top_srcdir) \
450 && gtags -i $(GTAGS_ARGS) "$$here"
451
452distclean-tags:
453 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
454
455distdir: $(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
485check-am: all-am
486check: check-am
487all-am: Makefile $(PROGRAMS)
488installdirs:
489 for dir in "$(DESTDIR)$(bindir)"; do \
490 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
491 done
492install: install-am
493install-exec: install-exec-am
494install-data: install-data-am
495uninstall: uninstall-am
496
497install-am: all-am
498 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
499
500installcheck: installcheck-am
501install-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
506mostlyclean-generic:
507
508clean-generic:
509
510distclean-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
514maintainer-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)
518clean: clean-am
519
520clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
521
522distclean: distclean-am
523 -rm -rf ./$(DEPDIR)
524 -rm -f Makefile
525distclean-am: clean-am distclean-compile distclean-generic \
526 distclean-tags
527
528dvi: dvi-am
529
530dvi-am:
531
532html: html-am
533
534html-am:
535
536info: info-am
537
538info-am:
539
540install-data-am:
541
542install-dvi: install-dvi-am
543
544install-dvi-am:
545
546install-exec-am: install-binPROGRAMS
547
548install-html: install-html-am
549
550install-html-am:
551
552install-info: install-info-am
553
554install-info-am:
555
556install-man:
557
558install-pdf: install-pdf-am
559
560install-pdf-am:
561
562install-ps: install-ps-am
563
564install-ps-am:
565
566installcheck-am:
567
568maintainer-clean: maintainer-clean-am
569 -rm -rf ./$(DEPDIR)
570 -rm -f Makefile
571maintainer-clean-am: distclean-am maintainer-clean-generic
572
573mostlyclean: mostlyclean-am
574
575mostlyclean-am: mostlyclean-compile mostlyclean-generic \
576 mostlyclean-libtool
577
578pdf: pdf-am
579
580pdf-am:
581
582ps: ps-am
583
584ps-am:
585
586uninstall-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
19static 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
46static void
47do_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
71static void
72do_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
128static void
129do_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
174static void
175do_eet_decode_dump(void *data,
176 const char *str)
177{
178 fputs(str, (FILE *)data);
179} /* do_eet_decode_dump */
180
181static void
182do_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
217static void
218do_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
268static void
269do_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
325static void
326do_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
342static void
343do_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
368static void
369do_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
398int
399main(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 {
415help:
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 @@
1MAINTAINERCLEANFILES = Makefile.in
2
3examplesdir = $(datadir)/$(PACKAGE)/examples
4
5if BUILD_EXAMPLES
6AM_CPPFLAGS = \
7-I. \
8-I$(top_srcdir)/src/lib \
9@EINA_CFLAGS@
10
11examples_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
13eet_basic_SOURCES = eet-basic.c
14eet_basic_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@
15
16eet_file_SOURCES = eet-file.c
17eet_file_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@
18
19eet_data_simple_SOURCES = eet-data-simple.c
20eet_data_simple_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@
21
22eet_data_nested_SOURCES = eet-data-nested.c
23eet_data_nested_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@
24
25eet_data_file_descriptor_01_SOURCES = eet-data-file_descriptor_01.c
26eet_data_file_descriptor_01_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@
27
28eet_data_file_descriptor_02_SOURCES = eet-data-file_descriptor_02.c
29eet_data_file_descriptor_02_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@
30
31eet_data_cipher_decipher_SOURCES = eet-data-cipher_decipher.c
32eet_data_cipher_decipher_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@
33
34endif
35
36filesdir = $(datadir)/$(PACKAGE)/examples
37files_DATA =
38
39if INSTALL_EXAMPLES
40
41files_DATA += \
42eet-basic.c \
43eet-file.c \
44eet-data-simple.c \
45eet-data-nested.c \
46eet-data-file_descriptor_01.c \
47eet-data-file_descriptor_02.c \
48eet-data-cipher_decipher.c
49
50endif
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
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_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
54subdir = src/examples
55DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
56ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
57am__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
68am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
69 $(ACLOCAL_M4)
70mkinstalldirs = $(install_sh) -d
71CONFIG_HEADER = $(top_builddir)/config.h
72CONFIG_CLEAN_FILES =
73CONFIG_CLEAN_VPATH_FILES =
74am__installdirs = "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(filesdir)"
75PROGRAMS = $(examples_PROGRAMS)
76am__eet_basic_SOURCES_DIST = eet-basic.c
77@BUILD_EXAMPLES_TRUE@am_eet_basic_OBJECTS = eet-basic.$(OBJEXT)
78eet_basic_OBJECTS = $(am_eet_basic_OBJECTS)
79@BUILD_EXAMPLES_TRUE@eet_basic_DEPENDENCIES = \
80@BUILD_EXAMPLES_TRUE@ $(top_builddir)/src/lib/libeet.la
81AM_V_lt = $(am__v_lt_$(V))
82am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
83am__v_lt_0 = --silent
84am__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)
88eet_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
92am__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)
96eet_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
100am__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)
104eet_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
108am__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)
111eet_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
114am__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)
117eet_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
120am__eet_file_SOURCES_DIST = eet-file.c
121@BUILD_EXAMPLES_TRUE@am_eet_file_OBJECTS = eet-file.$(OBJEXT)
122eet_file_OBJECTS = $(am_eet_file_OBJECTS)
123@BUILD_EXAMPLES_TRUE@eet_file_DEPENDENCIES = \
124@BUILD_EXAMPLES_TRUE@ $(top_builddir)/src/lib/libeet.la
125DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
126depcomp = $(SHELL) $(top_srcdir)/depcomp
127am__depfiles_maybe = depfiles
128am__mv = mv -f
129COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
130 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
131LTCOMPILE = $(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)
135AM_V_CC = $(am__v_CC_$(V))
136am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
137am__v_CC_0 = @echo " CC " $@;
138AM_V_at = $(am__v_at_$(V))
139am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
140am__v_at_0 = @
141CCLD = $(CC)
142LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
143 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
144 $(AM_LDFLAGS) $(LDFLAGS) -o $@
145AM_V_CCLD = $(am__v_CCLD_$(V))
146am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
147am__v_CCLD_0 = @echo " CCLD " $@;
148AM_V_GEN = $(am__v_GEN_$(V))
149am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
150am__v_GEN_0 = @echo " GEN " $@;
151SOURCES = $(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)
156DIST_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)
163am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
164am__vpath_adj = case $$p in \
165 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
166 *) f=$$p;; \
167 esac;
168am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
169am__install_max = 40
170am__nobase_strip_setup = \
171 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
172am__nobase_strip = \
173 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
174am__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] }'
181am__base_list = \
182 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
183 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
184DATA = $(files_DATA)
185ETAGS = etags
186CTAGS = ctags
187DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
188ACLOCAL = @ACLOCAL@
189ALLOCA = @ALLOCA@
190AMTAR = @AMTAR@
191AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
192AR = @AR@
193AS = @AS@
194AUTOCONF = @AUTOCONF@
195AUTOHEADER = @AUTOHEADER@
196AUTOMAKE = @AUTOMAKE@
197AWK = @AWK@
198CC = @CC@
199CCDEPMODE = @CCDEPMODE@
200CFLAGS = @CFLAGS@
201CHECK_CFLAGS = @CHECK_CFLAGS@
202CHECK_LIBS = @CHECK_LIBS@
203CPP = @CPP@
204CPPFLAGS = @CPPFLAGS@
205CYGPATH_W = @CYGPATH_W@
206DEBUG_CFLAGS = @DEBUG_CFLAGS@
207DEFS = @DEFS@
208DEPDIR = @DEPDIR@
209DLLTOOL = @DLLTOOL@
210DSYMUTIL = @DSYMUTIL@
211DUMPBIN = @DUMPBIN@
212ECHO_C = @ECHO_C@
213ECHO_N = @ECHO_N@
214ECHO_T = @ECHO_T@
215EET_CFLAGS = @EET_CFLAGS@
216EET_CPPFLAGS = @EET_CPPFLAGS@
217EET_LIBS = @EET_LIBS@
218EET_PRG = @EET_PRG@
219EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
220EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
221EFL_EET_BUILD = @EFL_EET_BUILD@
222EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
223EGREP = @EGREP@
224EINA_CFLAGS = @EINA_CFLAGS@
225EINA_LIBS = @EINA_LIBS@
226EVIL_CFLAGS = @EVIL_CFLAGS@
227EVIL_LIBS = @EVIL_LIBS@
228EXEEXT = @EXEEXT@
229EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
230EXOTIC_LIBS = @EXOTIC_LIBS@
231FGREP = @FGREP@
232GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
233GNUTLS_LIBS = @GNUTLS_LIBS@
234GREP = @GREP@
235INSTALL = @INSTALL@
236INSTALL_DATA = @INSTALL_DATA@
237INSTALL_PROGRAM = @INSTALL_PROGRAM@
238INSTALL_SCRIPT = @INSTALL_SCRIPT@
239INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
240LD = @LD@
241LDFLAGS = @LDFLAGS@
242LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
243LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
244LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
245LIBOBJS = @LIBOBJS@
246LIBS = @LIBS@
247LIBTOOL = @LIBTOOL@
248LIPO = @LIPO@
249LN_S = @LN_S@
250LTLIBOBJS = @LTLIBOBJS@
251MAKEINFO = @MAKEINFO@
252MKDIR_P = @MKDIR_P@
253NM = @NM@
254NMEDIT = @NMEDIT@
255OBJDUMP = @OBJDUMP@
256OBJEXT = @OBJEXT@
257OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
258OPENSSL_LIBS = @OPENSSL_LIBS@
259OTOOL = @OTOOL@
260OTOOL64 = @OTOOL64@
261PACKAGE = @PACKAGE@
262PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
263PACKAGE_NAME = @PACKAGE_NAME@
264PACKAGE_STRING = @PACKAGE_STRING@
265PACKAGE_TARNAME = @PACKAGE_TARNAME@
266PACKAGE_URL = @PACKAGE_URL@
267PACKAGE_VERSION = @PACKAGE_VERSION@
268PATH_SEPARATOR = @PATH_SEPARATOR@
269PKG_CONFIG = @PKG_CONFIG@
270PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
271PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
272RANLIB = @RANLIB@
273SED = @SED@
274SET_MAKE = @SET_MAKE@
275SHELL = @SHELL@
276STRIP = @STRIP@
277VERSION = @VERSION@
278VMAJ = @VMAJ@
279abs_builddir = @abs_builddir@
280abs_srcdir = @abs_srcdir@
281abs_top_builddir = @abs_top_builddir@
282abs_top_srcdir = @abs_top_srcdir@
283ac_ct_CC = @ac_ct_CC@
284ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
285am__include = @am__include@
286am__leading_dot = @am__leading_dot@
287am__quote = @am__quote@
288am__tar = @am__tar@
289am__untar = @am__untar@
290bindir = @bindir@
291build = @build@
292build_alias = @build_alias@
293build_cpu = @build_cpu@
294build_os = @build_os@
295build_vendor = @build_vendor@
296builddir = @builddir@
297datadir = @datadir@
298datarootdir = @datarootdir@
299docdir = @docdir@
300dvidir = @dvidir@
301efl_doxygen = @efl_doxygen@
302efl_have_doxygen = @efl_have_doxygen@
303exec_prefix = @exec_prefix@
304have_lcov = @have_lcov@
305host = @host@
306host_alias = @host_alias@
307host_cpu = @host_cpu@
308host_os = @host_os@
309host_vendor = @host_vendor@
310htmldir = @htmldir@
311includedir = @includedir@
312infodir = @infodir@
313install_sh = @install_sh@
314libdir = @libdir@
315libexecdir = @libexecdir@
316localedir = @localedir@
317localstatedir = @localstatedir@
318lt_ECHO = @lt_ECHO@
319lt_enable_auto_import = @lt_enable_auto_import@
320mandir = @mandir@
321mkdir_p = @mkdir_p@
322oldincludedir = @oldincludedir@
323pdfdir = @pdfdir@
324pkgconfig_requires_private = @pkgconfig_requires_private@
325prefix = @prefix@
326program_transform_name = @program_transform_name@
327psdir = @psdir@
328release_info = @release_info@
329requirement_eet = @requirement_eet@
330sbindir = @sbindir@
331sharedstatedir = @sharedstatedir@
332srcdir = @srcdir@
333sysconfdir = @sysconfdir@
334target_alias = @target_alias@
335top_build_prefix = @top_build_prefix@
336top_builddir = @top_builddir@
337top_srcdir = @top_srcdir@
338version_info = @version_info@
339MAINTAINERCLEANFILES = Makefile.in
340examplesdir = $(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@
360filesdir = $(datadir)/$(PACKAGE)/examples
361files_DATA = $(am__append_1)
362all: 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
379Makefile: $(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):
396install-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
421uninstall-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
431clean-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
439eet_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)
442eet_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)
445eet_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)
448eet_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)
451eet_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)
454eet_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)
457eet_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
461mostlyclean-compile:
462 -rm -f *.$(OBJEXT)
463
464distclean-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
499mostlyclean-libtool:
500 -rm -f *.lo
501
502clean-libtool:
503 -rm -rf .libs _libs
504install-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
517uninstall-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
525ID: $(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
533tags: TAGS
534
535TAGS: $(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
556ctags: CTAGS
557CTAGS: $(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
569GTAGS:
570 here=`$(am__cd) $(top_builddir) && pwd` \
571 && $(am__cd) $(top_srcdir) \
572 && gtags -i $(GTAGS_ARGS) "$$here"
573
574distclean-tags:
575 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
576
577distdir: $(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
607check-am: all-am
608check: check-am
609all-am: Makefile $(PROGRAMS) $(DATA)
610installdirs:
611 for dir in "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(filesdir)"; do \
612 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
613 done
614install: install-am
615install-exec: install-exec-am
616install-data: install-data-am
617uninstall: uninstall-am
618
619install-am: all-am
620 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
621
622installcheck: installcheck-am
623install-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
628mostlyclean-generic:
629
630clean-generic:
631
632distclean-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
636maintainer-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)
640clean: clean-am
641
642clean-am: clean-examplesPROGRAMS clean-generic clean-libtool \
643 mostlyclean-am
644
645distclean: distclean-am
646 -rm -rf ./$(DEPDIR)
647 -rm -f Makefile
648distclean-am: clean-am distclean-compile distclean-generic \
649 distclean-tags
650
651dvi: dvi-am
652
653dvi-am:
654
655html: html-am
656
657html-am:
658
659info: info-am
660
661info-am:
662
663install-data-am: install-examplesPROGRAMS install-filesDATA
664
665install-dvi: install-dvi-am
666
667install-dvi-am:
668
669install-exec-am:
670
671install-html: install-html-am
672
673install-html-am:
674
675install-info: install-info-am
676
677install-info-am:
678
679install-man:
680
681install-pdf: install-pdf-am
682
683install-pdf-am:
684
685install-ps: install-ps-am
686
687install-ps-am:
688
689installcheck-am:
690
691maintainer-clean: maintainer-clean-am
692 -rm -rf ./$(DEPDIR)
693 -rm -f Makefile
694maintainer-clean-am: distclean-am maintainer-clean-generic
695
696mostlyclean: mostlyclean-am
697
698mostlyclean-am: mostlyclean-compile mostlyclean-generic \
699 mostlyclean-libtool
700
701pdf: pdf-am
702
703pdf-am:
704
705ps: ps-am
706
707ps-am:
708
709uninstall-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
3int
4main(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
13int
14main(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
109error:
110 if (unlink(file) != 0)
111 {
112 fprintf(
113 stderr, "ERROR: could not unlink file (%s).\n", file);
114 }
115
116panic:
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
13typedef 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
24typedef struct
25{
26 const char *dm_to;
27 const char *message;
28} My_Post;
29
30typedef 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
39typedef 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
48static 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.
53static Eet_Data_Descriptor *_my_cache_descriptor;
54static Eet_Data_Descriptor *_my_account_descriptor;
55static Eet_Data_Descriptor *_my_message_descriptor;
56static Eet_Data_Descriptor *_my_post_descriptor;
57
58// keep file handle alive, so mmap()ed strings are all alive as well
59static Eet_File *_my_cache_file = NULL;
60static Eet_Dictionary *_my_cache_dict = NULL;
61
62static 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
129static 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()
140static 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
152static 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
166static 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
175static 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
194static 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
201static 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
215static 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
233static 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
249static 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
259static 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
268static 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
275static 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
311static 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
365int
366main(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
520end:
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
13typedef enum _Example_Data_Type Example_Data_Type;
14typedef struct _Example_Variant_Type Example_Variant_Type;
15typedef struct _Example_Variant Example_Variant;
16typedef struct _Example_Union Example_Union;
17typedef struct _Example_Struct1 Example_Struct1;
18typedef struct _Example_Struct2 Example_Struct2;
19typedef struct _Example_Struct3 Example_Struct3;
20typedef struct _Example_Lists Example_Lists;
21
22enum _Example_Data_Type
23{
24 EET_UNKNOWN = 0,
25 EET_STRUCT1,
26 EET_STRUCT2,
27 EET_STRUCT3
28};
29
30struct
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
41struct _Example_Struct1
42{
43 double val1;
44 int stuff;
45 const char *s1;
46};
47
48struct _Example_Struct2
49{
50 Eina_Bool b1;
51 unsigned long long v1;
52};
53
54struct _Example_Struct3
55{
56 int body;
57};
58
59struct _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
70struct _Example_Variant_Type
71{
72 const char *type;
73 Eina_Bool unknow : 1;
74};
75
76struct _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
85struct _Example_Lists
86{
87 Eina_List *union_list;
88 Eina_List *variant_list;
89};
90
91static 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
102static 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
111static void
112_st3_set(Example_Struct3 *st3,
113 int v1)
114{
115 st3->body = v1;
116} /* _st3_set */
117
118static 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
140static 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
161static 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
181static 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
193static 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
211static 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
227static 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 */
245static 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 */
250static Eet_Data_Descriptor *_lists_descriptor;
251static Eet_Data_Descriptor *_struct_1_descriptor;
252static Eet_Data_Descriptor *_struct_2_descriptor;
253static Eet_Data_Descriptor *_struct_3_descriptor;
254static Eet_Data_Descriptor *_union_descriptor;
255static Eet_Data_Descriptor *_variant_descriptor;
256static Eet_Data_Descriptor *_union_unified_descriptor;
257static Eet_Data_Descriptor *_variant_unified_descriptor;
258
259/* keep file handle alive, so mmap()ed strings are all alive as
260 * well */
261static Eet_File *_cache_file = NULL;
262static Eet_Dictionary *_cache_dict = NULL;
263
264static 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
326static 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 */
342static 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
354static 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
373static 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
391static 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
408static 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
431static 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
459static 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
480static 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
493static 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
505static 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
518static 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
533static 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
560static 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
606static 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
633static 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
672int
673main(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
897cont:
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
935end:
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.
17typedef 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
27typedef 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
36static 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.
41static Eet_Data_Descriptor *_my_conf_descriptor;
42static Eet_Data_Descriptor *_my_conf_sub_descriptor;
43
44static 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
92static 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
99static 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
124static 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
138static 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
163end:
164 eet_close(ef);
165 return my_conf;
166} /* _my_conf_load */
167
168static 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
213int
214main(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
265end:
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.
17typedef 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
29static 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.
34static Eet_Data_Descriptor *_my_conf_descriptor;
35
36static 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
70static void
71_my_conf_descriptor_shutdown(void)
72{
73 eet_data_descriptor_free(_my_conf_descriptor);
74} /* _my_conf_descriptor_shutdown */
75
76static 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
91static 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
98static 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
123end:
124 eet_close(ef);
125 return my_conf;
126} /* _my_conf_load */
127
128static 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
173int
174main(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
217end:
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
8static int
9create_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
66int
67main(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
179extern "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 */
215typedef 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
223EAPI 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 */
236typedef 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 */
276EAPI int
277eet_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 */
292EAPI int
293eet_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 */
311EAPI void
312eet_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 */
477typedef 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 */
499typedef struct _Eet_File Eet_File;
500
501/**
502 * @typedef Eet_Dictionary
503 * Opaque handle that defines a file-backed (mmaped) dictionary of strings.
504 */
505typedef 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 */
550EAPI Eet_File *
551eet_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 */
564EAPI Eet_File *
565eet_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 */
576EAPI Eet_File_Mode
577eet_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 */
592EAPI Eet_Error
593eet_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 */
607EAPI Eet_Error
608eet_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 */
626EAPI Eet_Dictionary *
627eet_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 */
643EAPI int
644eet_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 */
655EAPI int
656eet_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 */
680EAPI void *
681eet_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 */
705EAPI const void *
706eet_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 */
738EAPI int
739eet_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 */
763EAPI int
764eet_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 */
782EAPI Eina_Bool
783eet_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 */
798EAPI const char *
799eet_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 */
812EAPI const char *
813eet_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 */
846EAPI char **
847eet_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 */
860EAPI int
861eet_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 */
897EAPI void *
898eet_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 */
932EAPI int
933eet_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 */
995EAPI int
996eet_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 */
1040EAPI void *
1041eet_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 */
1097EAPI int
1098eet_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 */
1148EAPI int
1149eet_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 */
1184EAPI int
1185eet_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 */
1224EAPI void *
1225eet_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 */
1262EAPI int
1263eet_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 */
1306EAPI void *
1307eet_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 */
1364EAPI int
1365eet_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 */
1414EAPI void *
1415eet_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 */
1466EAPI int
1467eet_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 */
1517EAPI int
1518eet_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 */
1566EAPI int
1567eet_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 */
1616EAPI void *
1617eet_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 */
1668EAPI int
1669eet_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 */
1718EAPI void *
1719eet_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 */
1747typedef 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 */
1765typedef 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 */
1784EAPI Eet_Key *
1785eet_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 */
1799EAPI void
1800eet_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 */
1813EAPI Eet_Error
1814eet_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 */
1826EAPI void
1827eet_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 */
1841EAPI const void *
1842eet_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 */
1855EAPI const void *
1856eet_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 */
1871EAPI const void *
1872eet_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 */
1885EAPI void
1886eet_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 */
2360typedef 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 */
2377typedef struct _Eet_Data_Descriptor_Class Eet_Data_Descriptor_Class;
2378
2379typedef int (*Eet_Descriptor_Hash_Foreach_Callback_Callback)(void *h, const char *k, void *dt, void *fdt);
2380
2381typedef void * (*Eet_Descriptor_Mem_Alloc_Callback)(size_t size);
2382typedef void (*Eet_Descriptor_Mem_Free_Callback)(void *mem);
2383typedef char * (*Eet_Descriptor_Str_Alloc_Callback)(const char *str);
2384typedef void (*Eet_Descriptor_Str_Free_Callback)(const char *str);
2385typedef void * (*Eet_Descriptor_List_Next_Callback)(void *l);
2386typedef void * (*Eet_Descriptor_List_Append_Callback)(void *l, void *d);
2387typedef void * (*Eet_Descriptor_List_Data_Callback)(void *l);
2388typedef void * (*Eet_Descriptor_List_Free_Callback)(void *l);
2389typedef void (*Eet_Descriptor_Hash_Foreach_Callback)(void *h, Eet_Descriptor_Hash_Foreach_Callback_Callback func, void *fdt);
2390typedef void * (*Eet_Descriptor_Hash_Add_Callback)(void *h, const char *k, void *d);
2391typedef void (*Eet_Descriptor_Hash_Free_Callback)(void *h);
2392typedef char * (*Eet_Descriptor_Str_Direct_Alloc_Callback)(const char *str);
2393typedef void (*Eet_Descriptor_Str_Direct_Free_Callback)(const char *str);
2394typedef const char * (*Eet_Descriptor_Type_Get_Callback)(const void *data, Eina_Bool *unknow);
2395typedef Eina_Bool (*Eet_Descriptor_Type_Set_Callback)(const char *type, void *data, Eina_Bool unknow);
2396typedef void * (*Eet_Descriptor_Array_Alloc_Callback)(size_t size);
2397typedef 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 */
2412struct _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 */
2481EINA_DEPRECATED EAPI Eet_Data_Descriptor *
2482eet_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 */
2497EINA_DEPRECATED EAPI Eet_Data_Descriptor *
2498 eet_data_descriptor2_new(const Eet_Data_Descriptor_Class *eddc);
2499EINA_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 */
2526EAPI Eet_Data_Descriptor *
2527eet_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 */
2575EAPI Eet_Data_Descriptor *
2576eet_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 */
2596EAPI Eina_Bool
2597eet_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 */
2637EAPI Eina_Bool
2638eet_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 */
2671EAPI void
2672eet_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 */
2700EAPI void
2701eet_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 */
2738EAPI void *
2739eet_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 */
2762EAPI int
2763eet_data_write(Eet_File *ef,
2764 Eet_Data_Descriptor *edd,
2765 const char *name,
2766 const void *data,
2767 int compress);
2768
2769typedef 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 */
2818EAPI int
2819eet_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 */
2843EAPI void *
2844eet_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 */
2871EAPI int
2872eet_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 */
2899EAPI int
2900eet_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 */
2933EAPI void *
2934eet_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 */
2967EAPI void *
2968eet_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 */
3376EAPI void *
3377eet_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 */
3405EAPI void *
3406eet_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 */
3428EAPI int
3429eet_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 */
3453EAPI Eina_Bool
3454eet_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 */
3509EAPI int
3510eet_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 */
3537EAPI void *
3538eet_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 */
3568EAPI int
3569eet_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 */
3599EAPI int
3600eet_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 */
3636EAPI void *
3637eet_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 */
3673EAPI void *
3674eet_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 */
3692typedef struct _Eet_Node Eet_Node;
3693
3694/**
3695 * @typedef Eet_Node_Data
3696 * Contains an union that can fit any kind of node.
3697 */
3698typedef 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 */
3704struct _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 */
3729EAPI Eet_Node *
3730eet_node_char_new(const char *name,
3731 char c);
3732
3733/**
3734 * TODO FIX ME
3735 * @ingroup Eet_Node_Group
3736 */
3737EAPI Eet_Node *
3738eet_node_short_new(const char *name,
3739 short s);
3740
3741/**
3742 * TODO FIX ME
3743 * @ingroup Eet_Node_Group
3744 */
3745EAPI Eet_Node *
3746eet_node_int_new(const char *name,
3747 int i);
3748
3749/**
3750 * TODO FIX ME
3751 * @ingroup Eet_Node_Group
3752 */
3753EAPI Eet_Node *
3754eet_node_long_long_new(const char *name,
3755 long long l);
3756
3757/**
3758 * TODO FIX ME
3759 * @ingroup Eet_Node_Group
3760 */
3761EAPI Eet_Node *
3762eet_node_float_new(const char *name,
3763 float f);
3764
3765/**
3766 * TODO FIX ME
3767 * @ingroup Eet_Node_Group
3768 */
3769EAPI Eet_Node *
3770eet_node_double_new(const char *name,
3771 double d);
3772
3773/**
3774 * TODO FIX ME
3775 * @ingroup Eet_Node_Group
3776 */
3777EAPI Eet_Node *
3778eet_node_unsigned_char_new(const char *name,
3779 unsigned char uc);
3780
3781/**
3782 * TODO FIX ME
3783 * @ingroup Eet_Node_Group
3784 */
3785EAPI Eet_Node *
3786eet_node_unsigned_short_new(const char *name,
3787 unsigned short us);
3788
3789/**
3790 * TODO FIX ME
3791 * @ingroup Eet_Node_Group
3792 */
3793EAPI Eet_Node *
3794eet_node_unsigned_int_new(const char *name,
3795 unsigned int ui);
3796
3797/**
3798 * TODO FIX ME
3799 * @ingroup Eet_Node_Group
3800 */
3801EAPI Eet_Node *
3802eet_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 */
3809EAPI Eet_Node *
3810eet_node_string_new(const char *name,
3811 const char *str);
3812
3813/**
3814 * TODO FIX ME
3815 * @ingroup Eet_Node_Group
3816 */
3817EAPI Eet_Node *
3818eet_node_inlined_string_new(const char *name,
3819 const char *str);
3820
3821/**
3822 * TODO FIX ME
3823 * @ingroup Eet_Node_Group
3824 */
3825EAPI Eet_Node *
3826eet_node_null_new(const char *name);
3827
3828/**
3829 * TODO FIX ME
3830 * @ingroup Eet_Node_Group
3831 */
3832EAPI Eet_Node *
3833eet_node_list_new(const char *name,
3834 Eina_List *nodes);
3835
3836/**
3837 * TODO FIX ME
3838 * @ingroup Eet_Node_Group
3839 */
3840EAPI Eet_Node *
3841eet_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 */
3849EAPI Eet_Node *
3850eet_node_var_array_new(const char *name,
3851 Eina_List *nodes);
3852
3853/**
3854 * TODO FIX ME
3855 * @ingroup Eet_Node_Group
3856 */
3857EAPI Eet_Node *
3858eet_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 */
3866EAPI Eet_Node *
3867eet_node_struct_new(const char *name,
3868 Eina_List *nodes);
3869
3870/**
3871 * TODO FIX ME
3872 * @ingroup Eet_Node_Group
3873 */
3874EAPI Eet_Node *
3875eet_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 */
3885EAPI Eet_Node *
3886eet_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 */
3895EAPI Eet_Node *
3896eet_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 */
3904EAPI Eet_Node *
3905eet_node_parent_get(Eet_Node *node);
3906
3907/**
3908 * TODO FIX ME
3909 * @ingroup Eet_Node_Group
3910 */
3911EAPI void
3912eet_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 */
3920EAPI void
3921eet_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 */
3929EAPI void
3930eet_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 */
3939EAPI void
3940eet_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 */
3951EAPI int
3952eet_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 */
3960EAPI Eet_Node_Data *
3961eet_node_value_get(Eet_Node *node);
3962
3963/**
3964 * TODO FIX ME
3965 * @ingroup Eet_Node_Group
3966 */
3967EAPI void
3968eet_node_del(Eet_Node *n);
3969
3970/**
3971 * TODO FIX ME
3972 * @ingroup Eet_Node_Group
3973 */
3974EAPI void *
3975eet_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 */
3983EAPI Eet_Node *
3984eet_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 */
3992EAPI Eet_Node *
3993eet_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 */
4001EAPI int
4002eet_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 */
4014typedef struct _Eet_Node_Walk Eet_Node_Walk;
4015
4016typedef void * (*Eet_Node_Walk_Struct_Alloc_Callback)(const char *type, void *user_data);
4017typedef void (*Eet_Node_Walk_Struct_Add_Callback)(void *parent, const char *name, void *child, void *user_data);
4018typedef void * (*Eet_Node_Walk_Array_Callback)(Eina_Bool variable, const char *name, int count, void *user_data);
4019typedef void (*Eet_Node_Walk_Insert_Callback)(void *array, int index, void *child, void *user_data);
4020typedef void * (*Eet_Node_Walk_List_Callback)(const char *name, void *user_data);
4021typedef void (*Eet_Node_Walk_Append_Callback)(void *list, void *child, void *user_data);
4022typedef void * (*Eet_Node_Walk_Hash_Callback)(void *parent, const char *name, const char *key, void *value, void *user_data);
4023typedef 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 */
4029struct _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
4041EAPI void *
4042eet_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 */
4063typedef 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 */
4071typedef 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 */
4079typedef 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 */
4093EAPI Eet_Connection *
4094eet_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 */
4112EAPI int
4113eet_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 */
4134EAPI Eina_Bool
4135eet_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 */
4156EAPI Eina_Bool
4157eet_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 */
4170EAPI void *
4171eet_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
6typedef enum _Eet_Convert_Type Eet_Convert_Type;
7
8enum _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
16typedef struct _Eet_String Eet_String;
17typedef struct _Eet_Convert Eet_Convert;
18
19struct _Eet_Convert
20{
21 float f;
22 double d;
23 Eina_F32p32 fp;
24
25 Eet_Convert_Type type;
26};
27
28struct _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};
40struct _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
57struct _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
69typedef struct _Eet_File_Header Eet_File_Header;
70typedef struct _Eet_File_Node Eet_File_Node;
71typedef struct _Eet_File_Directory Eet_File_Directory;
72
73struct _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
101struct _Eet_File_Header
102{
103 int magic;
104 Eet_File_Directory *directory;
105};
106
107struct _Eet_File_Directory
108{
109 int size;
110 Eet_File_Node **nodes;
111};
112
113struct _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: */
137int magic; /* magic number ie 0x1ee7ff00 */
138int num_directory_entries; /* number of directory entries to follow */
139int bytes_directory_entries; /* bytes of directory entries to follow */
140struct
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: */
156int magic; /* magic number ie 0x1ee70f42 */
157int num_directory_entries; /* number of directory entries to follow */
158int num_dictionary_entries; /* number of dictionary entries to follow */
159struct
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];
172struct
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. */
182int magic_sign; /* Optional, only if the eet file is signed. */
183int signature_length; /* Signature length. */
184int x509_length; /* Public certificate that signed the file. */
185char signature[signature_length]; /* The signature. */
186char x509[x509_length]; /* The public certificate. */
187#endif /* if 0 */
188
189/*
190 * variable and macros used for the eina_log module
191 */
192extern 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
224Eet_Dictionary *
225 eet_dictionary_add(void);
226void
227 eet_dictionary_free(Eet_Dictionary *ed);
228int
229 eet_dictionary_string_add(Eet_Dictionary *ed,
230 const char *string);
231int
232eet_dictionary_string_get_size(const Eet_Dictionary *ed,
233 int index);
234const char *
235eet_dictionary_string_get_char(const Eet_Dictionary *ed,
236 int index);
237Eina_Bool
238eet_dictionary_string_get_float(const Eet_Dictionary *ed,
239 int index,
240 float *result);
241Eina_Bool
242eet_dictionary_string_get_double(const Eet_Dictionary *ed,
243 int index,
244 double *result);
245Eina_Bool
246eet_dictionary_string_get_fp(const Eet_Dictionary *ed,
247 int index,
248 Eina_F32p32 *result);
249int
250eet_dictionary_string_get_hash(const Eet_Dictionary *ed,
251 int index);
252
253int _eet_hash_gen(const char *key,
254 int hash_size);
255
256const void *
257eet_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);
266void *
267eet_identity_compute_sha1(const void *data_base,
268 unsigned int data_length,
269 int *sha1_length);
270Eet_Error
271eet_cipher(const void *data,
272 unsigned int size,
273 const char *key,
274 unsigned int length,
275 void **result,
276 unsigned int *result_length);
277Eet_Error
278eet_decipher(const void *data,
279 unsigned int size,
280 const char *key,
281 unsigned int length,
282 void **result,
283 unsigned int *result_length);
284Eet_Error
285eet_identity_sign(FILE *fp,
286 Eet_Key *key);
287void
288 eet_identity_unref(Eet_Key *key);
289void
290 eet_identity_ref(Eet_Key *key);
291
292void
293 eet_node_shutdown(void);
294int
295 eet_node_init(void);
296Eet_Node *
297 eet_node_new(void);
298void
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
307GENERIC_ALLOC_FREE_HEADER(Eet_File_Directory, eet_file_directory);
308GENERIC_ALLOC_FREE_HEADER(Eet_File_Node, eet_file_node);
309GENERIC_ALLOC_FREE_HEADER(Eet_File_Header, eet_file_header);
310GENERIC_ALLOC_FREE_HEADER(Eet_Dictionary, eet_dictionary);
311GENERIC_ALLOC_FREE_HEADER(Eet_File, eet_file);
312
313Eina_Bool eet_mempool_init(void);
314void 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
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_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
19includes_HEADERS = Eet.h
20includesdir = $(includedir)/eet-@VMAJ@
21
22lib_LTLIBRARIES = libeet.la
23
24base_sources = \
25eet_alloc.c \
26eet_lib.c \
27eet_data.c \
28eet_image.c \
29eet_cipher.c \
30eet_dictionary.c \
31eet_node.c \
32eet_utils.c \
33eet_connection.c
34
35if EET_AMALGAMATION
36nodist_libeet_la_SOURCES = eet_amalgamation.c
37
38eet_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
152else
153libeet_la_SOURCES = $(base_sources)
154endif
155
156libeet_la_CFLAGS = @EET_CFLAGS@ @DEBUG_CFLAGS@
157libeet_la_LIBADD = @GNUTLS_LIBS@ @OPENSSL_LIBS@ @EFL_COVERAGE_LIBS@ @EET_LIBS@ @EINA_LIBS@ @EVIL_LIBS@ -lz -ljpeg -lm
158libeet_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
159
160EXTRA_DIST = Eet_private.h
161
162clean-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
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/lib
39DIST_COMMON = $(includes_HEADERS) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__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
53am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
54 $(ACLOCAL_M4)
55mkinstalldirs = $(install_sh) -d
56CONFIG_HEADER = $(top_builddir)/config.h
57CONFIG_CLEAN_FILES =
58CONFIG_CLEAN_VPATH_FILES =
59am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
60am__vpath_adj = case $$p in \
61 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
62 *) f=$$p;; \
63 esac;
64am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
65am__install_max = 40
66am__nobase_strip_setup = \
67 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
68am__nobase_strip = \
69 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
70am__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] }'
77am__base_list = \
78 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
79 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
80am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includesdir)"
81LTLIBRARIES = $(lib_LTLIBRARIES)
82libeet_la_DEPENDENCIES =
83am__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
86am__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
94libeet_la_OBJECTS = $(am_libeet_la_OBJECTS) \
95 $(nodist_libeet_la_OBJECTS)
96AM_V_lt = $(am__v_lt_$(V))
97am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
98am__v_lt_0 = --silent
99libeet_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 $@
102DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
103depcomp = $(SHELL) $(top_srcdir)/depcomp
104am__depfiles_maybe = depfiles
105am__mv = mv -f
106COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
107 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
108LTCOMPILE = $(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)
112AM_V_CC = $(am__v_CC_$(V))
113am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
114am__v_CC_0 = @echo " CC " $@;
115AM_V_at = $(am__v_at_$(V))
116am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
117am__v_at_0 = @
118CCLD = $(CC)
119LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
120 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
121 $(AM_LDFLAGS) $(LDFLAGS) -o $@
122AM_V_CCLD = $(am__v_CCLD_$(V))
123am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
124am__v_CCLD_0 = @echo " CCLD " $@;
125AM_V_GEN = $(am__v_GEN_$(V))
126am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
127am__v_GEN_0 = @echo " GEN " $@;
128SOURCES = $(libeet_la_SOURCES) $(nodist_libeet_la_SOURCES)
129DIST_SOURCES = $(am__libeet_la_SOURCES_DIST)
130HEADERS = $(includes_HEADERS)
131ETAGS = etags
132CTAGS = ctags
133DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
134ACLOCAL = @ACLOCAL@
135ALLOCA = @ALLOCA@
136AMTAR = @AMTAR@
137AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
138AR = @AR@
139AS = @AS@
140AUTOCONF = @AUTOCONF@
141AUTOHEADER = @AUTOHEADER@
142AUTOMAKE = @AUTOMAKE@
143AWK = @AWK@
144CC = @CC@
145CCDEPMODE = @CCDEPMODE@
146CFLAGS = @CFLAGS@
147CHECK_CFLAGS = @CHECK_CFLAGS@
148CHECK_LIBS = @CHECK_LIBS@
149CPP = @CPP@
150CPPFLAGS = @CPPFLAGS@
151CYGPATH_W = @CYGPATH_W@
152DEBUG_CFLAGS = @DEBUG_CFLAGS@
153DEFS = @DEFS@
154DEPDIR = @DEPDIR@
155DLLTOOL = @DLLTOOL@
156DSYMUTIL = @DSYMUTIL@
157DUMPBIN = @DUMPBIN@
158ECHO_C = @ECHO_C@
159ECHO_N = @ECHO_N@
160ECHO_T = @ECHO_T@
161EET_CFLAGS = @EET_CFLAGS@
162EET_CPPFLAGS = @EET_CPPFLAGS@
163EET_LIBS = @EET_LIBS@
164EET_PRG = @EET_PRG@
165EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
166EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
167EFL_EET_BUILD = @EFL_EET_BUILD@
168EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
169EGREP = @EGREP@
170EINA_CFLAGS = @EINA_CFLAGS@
171EINA_LIBS = @EINA_LIBS@
172EVIL_CFLAGS = @EVIL_CFLAGS@
173EVIL_LIBS = @EVIL_LIBS@
174EXEEXT = @EXEEXT@
175EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
176EXOTIC_LIBS = @EXOTIC_LIBS@
177FGREP = @FGREP@
178GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
179GNUTLS_LIBS = @GNUTLS_LIBS@
180GREP = @GREP@
181INSTALL = @INSTALL@
182INSTALL_DATA = @INSTALL_DATA@
183INSTALL_PROGRAM = @INSTALL_PROGRAM@
184INSTALL_SCRIPT = @INSTALL_SCRIPT@
185INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
186LD = @LD@
187LDFLAGS = @LDFLAGS@
188LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
189LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
190LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
191LIBOBJS = @LIBOBJS@
192LIBS = @LIBS@
193LIBTOOL = @LIBTOOL@
194LIPO = @LIPO@
195LN_S = @LN_S@
196LTLIBOBJS = @LTLIBOBJS@
197MAKEINFO = @MAKEINFO@
198MKDIR_P = @MKDIR_P@
199NM = @NM@
200NMEDIT = @NMEDIT@
201OBJDUMP = @OBJDUMP@
202OBJEXT = @OBJEXT@
203OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
204OPENSSL_LIBS = @OPENSSL_LIBS@
205OTOOL = @OTOOL@
206OTOOL64 = @OTOOL64@
207PACKAGE = @PACKAGE@
208PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
209PACKAGE_NAME = @PACKAGE_NAME@
210PACKAGE_STRING = @PACKAGE_STRING@
211PACKAGE_TARNAME = @PACKAGE_TARNAME@
212PACKAGE_URL = @PACKAGE_URL@
213PACKAGE_VERSION = @PACKAGE_VERSION@
214PATH_SEPARATOR = @PATH_SEPARATOR@
215PKG_CONFIG = @PKG_CONFIG@
216PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
217PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
218RANLIB = @RANLIB@
219SED = @SED@
220SET_MAKE = @SET_MAKE@
221SHELL = @SHELL@
222STRIP = @STRIP@
223VERSION = @VERSION@
224VMAJ = @VMAJ@
225abs_builddir = @abs_builddir@
226abs_srcdir = @abs_srcdir@
227abs_top_builddir = @abs_top_builddir@
228abs_top_srcdir = @abs_top_srcdir@
229ac_ct_CC = @ac_ct_CC@
230ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
231am__include = @am__include@
232am__leading_dot = @am__leading_dot@
233am__quote = @am__quote@
234am__tar = @am__tar@
235am__untar = @am__untar@
236bindir = @bindir@
237build = @build@
238build_alias = @build_alias@
239build_cpu = @build_cpu@
240build_os = @build_os@
241build_vendor = @build_vendor@
242builddir = @builddir@
243datadir = @datadir@
244datarootdir = @datarootdir@
245docdir = @docdir@
246dvidir = @dvidir@
247efl_doxygen = @efl_doxygen@
248efl_have_doxygen = @efl_have_doxygen@
249exec_prefix = @exec_prefix@
250have_lcov = @have_lcov@
251host = @host@
252host_alias = @host_alias@
253host_cpu = @host_cpu@
254host_os = @host_os@
255host_vendor = @host_vendor@
256htmldir = @htmldir@
257includedir = @includedir@
258infodir = @infodir@
259install_sh = @install_sh@
260libdir = @libdir@
261libexecdir = @libexecdir@
262localedir = @localedir@
263localstatedir = @localstatedir@
264lt_ECHO = @lt_ECHO@
265lt_enable_auto_import = @lt_enable_auto_import@
266mandir = @mandir@
267mkdir_p = @mkdir_p@
268oldincludedir = @oldincludedir@
269pdfdir = @pdfdir@
270pkgconfig_requires_private = @pkgconfig_requires_private@
271prefix = @prefix@
272program_transform_name = @program_transform_name@
273psdir = @psdir@
274release_info = @release_info@
275requirement_eet = @requirement_eet@
276sbindir = @sbindir@
277sharedstatedir = @sharedstatedir@
278srcdir = @srcdir@
279sysconfdir = @sysconfdir@
280target_alias = @target_alias@
281top_build_prefix = @top_build_prefix@
282top_builddir = @top_builddir@
283top_srcdir = @top_srcdir@
284version_info = @version_info@
285MAINTAINERCLEANFILES = Makefile.in
286AM_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
301includes_HEADERS = Eet.h
302includesdir = $(includedir)/eet-@VMAJ@
303lib_LTLIBRARIES = libeet.la
304base_sources = \
305eet_alloc.c \
306eet_lib.c \
307eet_data.c \
308eet_image.c \
309eet_cipher.c \
310eet_dictionary.c \
311eet_node.c \
312eet_utils.c \
313eet_connection.c
314
315@EET_AMALGAMATION_TRUE@nodist_libeet_la_SOURCES = eet_amalgamation.c
316@EET_AMALGAMATION_FALSE@libeet_la_SOURCES = $(base_sources)
317libeet_la_CFLAGS = @EET_CFLAGS@ @DEBUG_CFLAGS@
318libeet_la_LIBADD = @GNUTLS_LIBS@ @OPENSSL_LIBS@ @EFL_COVERAGE_LIBS@ @EET_LIBS@ @EINA_LIBS@ @EVIL_LIBS@ -lz -ljpeg -lm
319libeet_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
320EXTRA_DIST = Eet_private.h
321all: 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
338Makefile: $(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):
355install-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
369uninstall-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
378clean-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
386libeet.la: $(libeet_la_OBJECTS) $(libeet_la_DEPENDENCIES)
387 $(AM_V_CCLD)$(libeet_la_LINK) -rpath $(libdir) $(libeet_la_OBJECTS) $(libeet_la_LIBADD) $(LIBS)
388
389mostlyclean-compile:
390 -rm -f *.$(OBJEXT)
391
392distclean-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
430libeet_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
438libeet_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
446libeet_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
454libeet_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
462libeet_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
470libeet_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
478libeet_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
486libeet_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
494libeet_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
502libeet_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
510mostlyclean-libtool:
511 -rm -f *.lo
512
513clean-libtool:
514 -rm -rf .libs _libs
515install-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
528uninstall-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
536ID: $(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
544tags: TAGS
545
546TAGS: $(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
567ctags: CTAGS
568CTAGS: $(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
580GTAGS:
581 here=`$(am__cd) $(top_builddir) && pwd` \
582 && $(am__cd) $(top_srcdir) \
583 && gtags -i $(GTAGS_ARGS) "$$here"
584
585distclean-tags:
586 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
587
588distdir: $(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
618check-am: all-am
619check: check-am
620all-am: Makefile $(LTLIBRARIES) $(HEADERS)
621installdirs:
622 for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includesdir)"; do \
623 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
624 done
625install: install-am
626install-exec: install-exec-am
627install-data: install-data-am
628uninstall: uninstall-am
629
630install-am: all-am
631 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
632
633installcheck: installcheck-am
634install-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
639mostlyclean-generic:
640
641clean-generic:
642
643distclean-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
647maintainer-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)
651clean: clean-am
652
653clean-am: clean-generic clean-libLTLIBRARIES clean-libtool clean-local \
654 mostlyclean-am
655
656distclean: distclean-am
657 -rm -rf ./$(DEPDIR)
658 -rm -f Makefile
659distclean-am: clean-am distclean-compile distclean-generic \
660 distclean-tags
661
662dvi: dvi-am
663
664dvi-am:
665
666html: html-am
667
668html-am:
669
670info: info-am
671
672info-am:
673
674install-data-am: install-includesHEADERS
675
676install-dvi: install-dvi-am
677
678install-dvi-am:
679
680install-exec-am: install-libLTLIBRARIES
681
682install-html: install-html-am
683
684install-html-am:
685
686install-info: install-info-am
687
688install-info-am:
689
690install-man:
691
692install-pdf: install-pdf-am
693
694install-pdf-am:
695
696install-ps: install-ps-am
697
698install-ps-am:
699
700installcheck-am:
701
702maintainer-clean: maintainer-clean-am
703 -rm -rf ./$(DEPDIR)
704 -rm -f Makefile
705maintainer-clean-am: distclean-am maintainer-clean-generic
706
707mostlyclean: mostlyclean-am
708
709mostlyclean-am: mostlyclean-compile mostlyclean-generic \
710 mostlyclean-libtool
711
712pdf: pdf-am
713
714pdf-am:
715
716ps: ps-am
717
718ps-am:
719
720uninstall-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
854clean-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
10typedef struct _Eet_Mempool Eet_Mempool;
11struct _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
37GENERIC_ALLOC_FREE(Eet_File_Directory, eet_file_directory);
38GENERIC_ALLOC_FREE(Eet_File_Node, eet_file_node);
39GENERIC_ALLOC_FREE(Eet_File_Header, eet_file_header);
40GENERIC_ALLOC_FREE(Eet_Dictionary, eet_dictionary);
41GENERIC_ALLOC_FREE(Eet_File, eet_file);
42
43static 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
51Eina_Bool
52eet_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
83void
84eet_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
17extern "C"
18# endif /* ifdef __cplusplus */
19void *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
86static Eet_Error
87eet_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 */
93static Eet_Error
94eet_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
103struct _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
117EAPI Eet_Key *
118eet_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
210on_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
267on_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
283EAPI void
284eet_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
303EAPI void
304eet_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
380on_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
427void
428eet_identity_ref(Eet_Key *key)
429{
430 if (!key)
431 return;
432
433 key->references++;
434}
435
436void
437eet_identity_unref(Eet_Key *key)
438{
439 if (!key)
440 return;
441
442 key->references--;
443 eet_identity_close(key);
444}
445
446void *
447eet_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
487Eet_Error
488eet_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
663on_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
685const void *
686eet_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
880EAPI void
881eet_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
914on_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
946Eet_Error
947eet_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
1087on_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
1123Eet_Error
1124eet_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
1243on_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
1276static Eet_Error
1277eet_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
1317static Eet_Error
1318eet_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
17extern "C"
18# endif /* ifdef __cplusplus */
19void *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
42struct _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
55EAPI Eet_Connection *
56eet_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
72EAPI int
73eet_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
153static 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
172EAPI Eina_Bool
173eet_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
192EAPI Eina_Bool
193eet_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
209EAPI void *
210eet_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
64typedef struct _Eet_Data_Element Eet_Data_Element;
65typedef struct _Eet_Data_Basic_Type_Codec Eet_Data_Basic_Type_Codec;
66typedef struct _Eet_Data_Group_Type_Codec Eet_Data_Group_Type_Codec;
67typedef struct _Eet_Data_Chunk Eet_Data_Chunk;
68typedef struct _Eet_Data_Stream Eet_Data_Stream;
69typedef struct _Eet_Data_Descriptor_Hash Eet_Data_Descriptor_Hash;
70typedef struct _Eet_Data_Encode_Hash_Info Eet_Data_Encode_Hash_Info;
71typedef struct _Eet_Free Eet_Free;
72typedef struct _Eet_Free_Context Eet_Free_Context;
73typedef 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 */
81struct _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
92struct _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
111struct _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
122struct _Eet_Data_Stream
123{
124 void *data;
125 int size;
126 int pos;
127};
128
129struct _Eet_Data_Descriptor_Hash
130{
131 Eet_Data_Element *element;
132 Eet_Data_Descriptor_Hash *next;
133};
134
135struct _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
183struct _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
196struct _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
204struct _Eet_Free
205{
206 int ref;
207 Eina_Array list[EET_FREE_COUNT];
208};
209
210struct _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
220struct _Eet_Variant_Unknow
221{
222 EINA_MAGIC
223
224 int size;
225 char data[1];
226};
227
228/*---*/
229
230static void
231 eet_free_context_init(Eet_Free_Context *context);
232static void
233 eet_free_context_shutdown(Eet_Free_Context *context);
234
235static int
236eet_data_get_char(const Eet_Dictionary *ed,
237 const void *src,
238 const void *src_end,
239 void *dest);
240static void *
241eet_data_put_char(Eet_Dictionary *ed,
242 const void *src,
243 int *size_ret);
244static int
245eet_data_get_short(const Eet_Dictionary *ed,
246 const void *src,
247 const void *src_end,
248 void *dest);
249static void *
250eet_data_put_short(Eet_Dictionary *ed,
251 const void *src,
252 int *size_ret);
253static inline int
254eet_data_get_int(const Eet_Dictionary *ed,
255 const void *src,
256 const void *src_end,
257 void *dest);
258static void *
259eet_data_put_int(Eet_Dictionary *ed,
260 const void *src,
261 int *size_ret);
262static int
263eet_data_get_long_long(const Eet_Dictionary *ed,
264 const void *src,
265 const void *src_end,
266 void *dest);
267static void *
268eet_data_put_long_long(Eet_Dictionary *ed,
269 const void *src,
270 int *size_ret);
271static int
272eet_data_get_float(const Eet_Dictionary *ed,
273 const void *src,
274 const void *src_end,
275 void *dest);
276static void *
277eet_data_put_float(Eet_Dictionary *ed,
278 const void *src,
279 int *size_ret);
280static int
281eet_data_get_double(const Eet_Dictionary *ed,
282 const void *src,
283 const void *src_end,
284 void *dest);
285static void *
286eet_data_put_double(Eet_Dictionary *ed,
287 const void *src,
288 int *size_ret);
289static int
290eet_data_get_f32p32(const Eet_Dictionary *ed,
291 const void *src,
292 const void *src_end,
293 void *dest);
294static void *
295eet_data_put_f32p32(Eet_Dictionary *ed,
296 const void *src,
297 int *size_ret);
298static int
299eet_data_get_f16p16(const Eet_Dictionary *ed,
300 const void *src,
301 const void *src_end,
302 void *dest);
303static void *
304eet_data_put_f16p16(Eet_Dictionary *ed,
305 const void *src,
306 int *size_ret);
307static int
308eet_data_get_f8p24(const Eet_Dictionary *ed,
309 const void *src,
310 const void *src_end,
311 void *dest);
312static void *
313eet_data_put_f8p24(Eet_Dictionary *ed,
314 const void *src,
315 int *size_ret);
316static inline int
317eet_data_get_string(const Eet_Dictionary *ed,
318 const void *src,
319 const void *src_end,
320 void *dest);
321static void *
322eet_data_put_string(Eet_Dictionary *ed,
323 const void *src,
324 int *size_ret);
325static int
326eet_data_get_istring(const Eet_Dictionary *ed,
327 const void *src,
328 const void *src_end,
329 void *dest);
330static void *
331eet_data_put_istring(Eet_Dictionary *ed,
332 const void *src,
333 int *size_ret);
334static int
335eet_data_get_null(const Eet_Dictionary *ed,
336 const void *src,
337 const void *src_end,
338 void *dest);
339static void *
340eet_data_put_null(Eet_Dictionary *ed,
341 const void *src,
342 int *size_ret);
343
344static int
345eet_data_get_type(const Eet_Dictionary *ed,
346 int type,
347 const void *src,
348 const void *src_end,
349 void *dest);
350static void *
351eet_data_put_type(Eet_Dictionary *ed,
352 int type,
353 const void *src,
354 int *size_ret);
355
356static Eet_Node *
357eet_data_node_simple_type(int type,
358 const char *name,
359 void *dd);
360
361static int
362eet_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);
372static void
373eet_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);
378static void
379eet_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);
384static int
385eet_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);
395static int
396eet_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);
406static void
407eet_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);
412static void
413eet_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);
418static int
419eet_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);
429static void
430eet_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);
435static int
436eet_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);
446static void
447eet_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);
452static int
453eet_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
464static void
465eet_data_chunk_get(const Eet_Dictionary *ed,
466 Eet_Data_Chunk *chnk,
467 const void *src,
468 int size);
469static Eet_Data_Chunk *
470eet_data_chunk_new(void *data,
471 int size,
472 const char *name,
473 int type,
474 int group_type);
475static void
476eet_data_chunk_free(Eet_Data_Chunk *chnk);
477
478static Eet_Data_Stream *
479 eet_data_stream_new(void);
480static void
481 eet_data_stream_write(Eet_Data_Stream *ds,
482 const void *data,
483 int size);
484static void
485eet_data_stream_free(Eet_Data_Stream *ds);
486
487static void
488eet_data_chunk_put(Eet_Dictionary *ed,
489 Eet_Data_Chunk *chnk,
490 Eet_Data_Stream *ds);
491
492static int
493eet_data_descriptor_encode_hash_cb(void *hash,
494 const char *key,
495 void *hdata,
496 void *fdata);
497static void *_eet_data_descriptor_encode(Eet_Dictionary *ed,
498 Eet_Data_Descriptor *edd,
499 const void *data_in,
500 int *size_ret);
501static 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
511static 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
531static 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
542static 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 */
626static int
627eet_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
644static void *
645eet_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 */
663static int
664eet_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
680static void *
681eet_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 */
699static inline int
700eet_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
716static void *
717eet_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 */
735static int
736eet_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
752static void *
753eet_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 */
771static inline int
772eet_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
789static inline int
790eet_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
826static void *
827eet_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 */
865static int
866eet_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
874static void *
875eet_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 */
883static int
884eet_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
897static void *
898eet_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 */
912static 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
934static 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 */
957static int
958eet_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
999static void *
1000eet_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 */
1032static int
1033eet_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
1075static void *
1076eet_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
1108static int
1109eet_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
1144static void *
1145eet_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
1177static int
1178eet_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
1195static void *
1196eet_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
1206static int
1207eet_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
1224static void *
1225eet_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
1235static inline int
1236eet_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
1248static inline void *
1249eet_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
1260static inline Eina_Bool
1261eet_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
1310static inline void
1311eet_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) \
1342case 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
1402static inline Eet_Data_Chunk *
1403eet_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
1434static inline void
1435eet_data_chunk_free(Eet_Data_Chunk *chnk)
1436{
1437 if (chnk->name)
1438 free(chnk->name);
1439
1440 free(chnk);
1441}
1442
1443static inline Eet_Data_Stream *
1444eet_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
1455static inline void
1456eet_data_stream_free(Eet_Data_Stream *ds)
1457{
1458 if (ds->data)
1459 free(ds->data);
1460
1461 free(ds);
1462}
1463
1464static inline void
1465eet_data_stream_flush(Eet_Data_Stream *ds)
1466{
1467 free(ds);
1468}
1469
1470static inline void
1471eet_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
1495static void
1496eet_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) \
1524case 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);
1567on_error:
1568 free(size);
1569}
1570
1571/*---*/
1572
1573static 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
1604static 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
1625static 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
1670static void *
1671_eet_mem_alloc(size_t size)
1672{
1673 return calloc(1, size);
1674}
1675
1676static void
1677_eet_mem_free(void *mem)
1678{
1679 free(mem);
1680}
1681
1682static char *
1683_eet_str_alloc(const char *str)
1684{
1685 return strdup(str);
1686}
1687
1688static void
1689_eet_str_free(const char *str)
1690{
1691 free((char *)str);
1692}
1693
1694static 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
1709static 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
1724static char *
1725_eet_str_direct_alloc(const char *str)
1726{
1727 return (char *)str;
1728}
1729
1730static void
1731_eet_str_direct_free(const char *str __UNUSED__)
1732{
1733}
1734
1735static 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
1744static void
1745_eet_eina_hash_free(void *hash)
1746{
1747 if (hash)
1748 eina_hash_free(hash);
1749}
1750
1751/*---*/
1752EAPI Eina_Bool
1753eet_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
1785EAPI Eina_Bool
1786eet_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
1804static 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
1865EAPI Eet_Data_Descriptor *
1866eet_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
1898EAPI Eet_Data_Descriptor *
1899eet_data_descriptor2_new(const Eet_Data_Descriptor_Class *eddc)
1900{
1901 return _eet_data_descriptor_new(eddc, 1);
1902}
1903
1904EAPI Eet_Data_Descriptor *
1905eet_data_descriptor3_new(const Eet_Data_Descriptor_Class *eddc)
1906{
1907 return _eet_data_descriptor_new(eddc, 2);
1908}
1909
1910EAPI Eet_Data_Descriptor *
1911eet_data_descriptor_stream_new(const Eet_Data_Descriptor_Class *eddc)
1912{
1913 return _eet_data_descriptor_new(eddc, 1);
1914}
1915
1916EAPI Eet_Data_Descriptor *
1917eet_data_descriptor_file_new(const Eet_Data_Descriptor_Class *eddc)
1918{
1919 return _eet_data_descriptor_new(eddc, 2);
1920}
1921
1922EAPI void
1923eet_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
1935EAPI void
1936eet_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
2032EAPI void *
2033eet_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
2068EAPI Eet_Node *
2069eet_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
2103EAPI void *
2104eet_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
2111EAPI int
2112eet_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
2135EAPI int
2136eet_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
2145static void
2146eet_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
2174static void
2175eet_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
2190static 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
2215static 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
2234static 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
2255static 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
2267static void
2268_eet_free_ref(Eet_Free *ef)
2269{
2270 ef->ref++;
2271}
2272
2273static 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
2285static 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
2315static 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
2350static 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
2378static 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
2408static 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
2438static 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
2462static 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
2472static 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
2482static int
2483eet_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
2549static 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
2632static void
2633eet_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
2656static 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) \
2905case 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
2969static 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
3239static 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
3455error:
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
3470static int
3471eet_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
3533on_error:
3534 return 0;
3535}
3536
3537static int
3538eet_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
3618on_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 */
3632static int
3633eet_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
3779on_error:
3780 EINA_LIST_FREE(childs, tmp)
3781 eet_node_del(tmp);
3782
3783 return 0;
3784}
3785
3786static void
3787eet_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
3842static int
3843eet_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
3936on_error:
3937 return 0;
3938}
3939
3940static void
3941eet_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
4051static int
4052eet_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
4202on_error:
4203 return 0;
4204}
4205
4206static Eet_Node *
4207eet_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) \
4216case 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
4243static int
4244eet_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
4359static void
4360eet_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
4435static void
4436eet_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
4464static void
4465eet_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
4505static void
4506eet_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
4522EAPI int
4523eet_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
4563EAPI int
4564eet_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
4572EAPI int
4573eet_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
4617EAPI int
4618eet_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
4626EAPI void *
4627eet_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
4659EAPI void *
4660eet_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
4667EAPI int
4668eet_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
4691EAPI int
4692eet_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
4701EAPI void *
4702eet_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
4737EAPI void *
4738eet_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
4745EAPI Eet_Node *
4746eet_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
4780static 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
4842EAPI int
4843eet_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
4865EAPI void *
4866eet_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
4902EAPI void *
4903eet_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
4940EAPI void *
4941eet_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
4948EAPI void *
4949eet_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
4967EAPI Eina_Bool
4968eet_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
14Eet_Dictionary *
15eet_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
28void
29eet_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
47static 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
81int
82eet_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
156int
157eet_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
172EAPI int
173eet_dictionary_count(const Eet_Dictionary *ed)
174{
175 return ed->count;
176}
177
178int
179eet_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
194const char *
195eet_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
220static 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
237static 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
258static 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
279static 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
299static Eet_Convert *
300eet_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
318add_convert:
319 result = calloc(1, sizeof (Eet_Convert));
320
321 eina_hash_add(ed->converts, &idx, result);
322 return result;
323}
324
325Eina_Bool
326eet_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
361Eina_Bool
362eet_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
397Eina_Bool
398eet_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
426EAPI int
427eet_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
17extern "C"
18# endif /* ifdef __cplusplus */
19void *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
45typedef struct _JPEG_error_mgr *emptr;
46
47/*---*/
48
49struct _JPEG_error_mgr
50{
51 struct jpeg_error_mgr pub;
52 jmp_buf setjmp_buffer;
53};
54
55struct 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
64static void
65_eet_jpeg_membuf_src_init(j_decompress_ptr cinfo)
66{
67 /* FIXME: Use attribute unused */
68 (void)cinfo;
69}
70
71static 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
83static 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
93static 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
102static int
103eet_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
129struct 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
142static void
143_eet_jpeg_membuf_dst_init(j_compress_ptr cinfo)
144{
145 /* FIXME: Use eina attribute */
146 (void)cinfo;
147}
148
149static 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
173static 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
194static int
195eet_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
230static void _JPEGFatalErrorHandler(j_common_ptr cinfo);
231static void _JPEGErrorHandler(j_common_ptr cinfo);
232static void _JPEGErrorHandler2(j_common_ptr cinfo,
233 int msg_level);
234
235static int
236eet_data_image_jpeg_header_decode(const void *data,
237 int size,
238 unsigned int *w,
239 unsigned int *h);
240static int
241eet_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);
249static int
250eet_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);
258static void *
259eet_data_image_lossless_convert(int *size,
260 const void *data,
261 unsigned int w,
262 unsigned int h,
263 int alpha);
264static void *
265eet_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);
271static void *
272eet_data_image_jpeg_convert(int *size,
273 const void *data,
274 unsigned int w,
275 unsigned int h,
276 int alpha,
277 int quality);
278static void *
279eet_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
288static 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
330static 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
341static 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
352static 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
364static int
365eet_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
410static int
411eet_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
563static int
564eet_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
677static void *
678eet_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
725static void *
726eet_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
799static void *
800eet_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
882static void *
883eet_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
1073EAPI int
1074eet_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
1101EAPI int
1102eet_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
1124EAPI void *
1125eet_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
1159EAPI void *
1160eet_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
1173EAPI int
1174eet_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
1214EAPI int
1215eet_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
1235EAPI int
1236eet_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
1270EAPI int
1271eet_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
1285EAPI void *
1286eet_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
1343EAPI void *
1344eet_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
1357EAPI int
1358eet_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
1509EAPI int
1510eet_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
1530static 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
1554static 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
1657EAPI void *
1658eet_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
1724EAPI void *
1725eet_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
1738EAPI int
1739eet_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
1805EAPI int
1806eet_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
17extern "C"
18# endif /* ifdef __cplusplus */
19void *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
62GCRY_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
73static Eet_Version _version = { VMAJ, VMIN, VMIC, VREV };
74EAPI 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 */
97static Eet_File *
98eet_cache_find(const char *path,
99 Eet_File **cache,
100 int cache_num);
101static void
102eet_cache_add(Eet_File *ef,
103 Eet_File ***cache,
104 int *cache_num,
105 int *cache_alloc);
106static void
107eet_cache_del(Eet_File *ef,
108 Eet_File ***cache,
109 int *cache_num,
110 int *cache_alloc);
111static int
112eet_string_match(const char *s1,
113 const char *s2);
114#if 0 /* Unused */
115static Eet_Error
116eet_flush(Eet_File *ef);
117#endif /* if 0 */
118static Eet_Error
119 eet_flush2(Eet_File *ef);
120static Eet_File_Node *
121 find_node_by_name(Eet_File *ef,
122 const char *name);
123static int
124read_data_from_disk(Eet_File *ef,
125 Eet_File_Node *efn,
126 void *buf,
127 int len);
128
129static Eet_Error
130eet_internal_close(Eet_File *ef,
131 Eina_Bool locked);
132
133static 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 */
144static int eet_writers_num = 0;
145static int eet_writers_alloc = 0;
146static Eet_File **eet_writers = NULL;
147static int eet_readers_num = 0;
148static int eet_readers_alloc = 0;
149static Eet_File **eet_readers = NULL;
150static int eet_init_count = 0;
151
152/* log domain variable */
153int _eet_log_dom_global = -1;
154
155/* Check to see its' an eet file pointer */
156static inline int
157eet_check_pointer(const Eet_File *ef)
158{
159 if ((!ef) || (ef->magic != EET_MAGIC_FILE))
160 return 1;
161
162 return 0;
163}
164
165static inline int
166eet_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
177static inline int
178eet_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 */
191static Eet_File *
192eet_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 */
213static void
214eet_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 */
269static void
270eet_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 */
323static int
324eet_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 */
338static Eet_Error
339eet_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
526write_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
543sign_error:
544 fclose(fp);
545 return error;
546}
547
548EAPI int
549eet_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
616shutdown_eet:
617#endif
618 eet_node_shutdown();
619shutdown_mempool:
620 eet_mempool_shutdown();
621unregister_log_domain:
622 eina_log_domain_unregister(_eet_log_dom_global);
623 _eet_log_dom_global = -1;
624shutdown_eina:
625 eina_shutdown();
626 return --eet_init_count;
627}
628
629EAPI int
630eet_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
655EAPI Eet_Error
656eet_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
678EAPI void
679eet_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 */
737static Eet_File *
738eet_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
996static Eet_File *
997eet_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 */
1185static Eet_File *
1186eet_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
1215static Eet_Error
1216eet_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
1319on_error:
1320 if (!locked)
1321 UNLOCK_CACHE;
1322
1323 return EET_ERROR_NONE;
1324}
1325
1326EAPI Eet_File *
1327eet_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
1361EAPI const char *
1362eet_file_get(Eet_File *ef)
1363{
1364 if (eet_check_pointer(ef)) return NULL;
1365 return ef->path;
1366}
1367
1368EAPI Eet_File *
1369eet_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
1430open_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
1512empty_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
1526on_error:
1527 UNLOCK_CACHE;
1528 return NULL;
1529}
1530
1531EAPI Eet_File_Mode
1532eet_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
1541EAPI const void *
1542eet_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
1554EAPI const void *
1555eet_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
1567EAPI const void *
1568eet_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
1582EAPI Eet_Error
1583eet_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
1602EAPI Eet_Error
1603eet_close(Eet_File *ef)
1604{
1605 return eet_internal_close(ef, EINA_FALSE);
1606}
1607
1608EAPI void *
1609eet_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
1773on_error:
1774 UNLOCK_FILE(ef);
1775 free(data);
1776 return NULL;
1777}
1778
1779EAPI void *
1780eet_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
1787EAPI const void *
1788eet_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
1880on_error:
1881 UNLOCK_FILE(ef);
1882 return NULL;
1883}
1884
1885EAPI const char *
1886eet_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
1957on_error:
1958 UNLOCK_FILE(ef);
1959 return NULL;
1960}
1961
1962EAPI Eina_Bool
1963eet_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
2115on_error:
2116 UNLOCK_FILE(ef);
2117 return EINA_FALSE;
2118}
2119
2120EAPI int
2121eet_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
2298on_error:
2299 UNLOCK_FILE(ef);
2300 return 0;
2301}
2302
2303EAPI int
2304eet_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
2313EAPI int
2314eet_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
2375EAPI Eet_Dictionary *
2376eet_dictionary_get(Eet_File *ef)
2377{
2378 if (eet_check_pointer(ef))
2379 return NULL;
2380
2381 return ef->ed;
2382}
2383
2384EAPI char **
2385eet_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
2459on_error:
2460 UNLOCK_FILE(ef);
2461
2462 if (count_ret)
2463 *count_ret = 0;
2464
2465 return NULL;
2466}
2467
2468EAPI int
2469eet_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
2495static Eet_File_Node *
2496find_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
2514static int
2515read_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
17static Eina_Mempool *_eet_node_mp = NULL;
18
19Eet_Node *
20eet_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
32void
33eet_node_free(Eet_Node *node)
34{
35 eina_mempool_free(_eet_node_mp, node);
36}
37
38static 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
54static 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
96EET_NODE_NEW(EET_T_CHAR, char, c, char)
97EET_NODE_NEW(EET_T_SHORT, short, s, short)
98EET_NODE_NEW(EET_T_INT, int, i, int)
99EET_NODE_NEW(EET_T_LONG_LONG, long_long, l, long long)
100EET_NODE_NEW(EET_T_FLOAT, float, f, float)
101EET_NODE_NEW(EET_T_DOUBLE, double, d, double)
102EET_NODE_NEW(EET_T_UCHAR, unsigned_char, uc, unsigned char)
103EET_NODE_NEW(EET_T_USHORT, unsigned_short, us, unsigned short)
104EET_NODE_NEW(EET_T_UINT, unsigned_int, ui, unsigned int)
105EET_NODE_NEW(EET_T_ULONG_LONG, unsigned_long_long, ul, unsigned long long)
106EET_NODE_STR_NEW(EET_T_STRING, string, str, const char *)
107EET_NODE_STR_NEW(EET_T_INLINED_STRING, inlined_string, str, const char *)
108
109Eet_Node *
110eet_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
123Eet_Node *
124eet_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
138Eet_Node *
139eet_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
156Eet_Node *
157eet_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
173Eet_Node *
174eet_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
196Eet_Node *
197eet_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
211Eet_Node *
212eet_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
231Eet_Node *
232eet_node_children_get(Eet_Node *node)
233{
234 if (!node) return NULL;
235 return node->values;
236}
237
238Eet_Node *
239eet_node_next_get(Eet_Node *node)
240{
241 if (!node) return NULL;
242 return node->next;
243}
244
245Eet_Node *
246eet_node_parent_get(Eet_Node *node)
247{
248 if (!node) return NULL;
249 return node->parent;
250}
251
252void
253eet_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
294void
295eet_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
343void
344eet_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
361int
362eet_node_type_get(Eet_Node *node)
363{
364 if (!node) return EET_T_UNKNOW;
365 return node->type;
366}
367
368Eet_Node_Data *
369eet_node_value_get(Eet_Node *node)
370{
371 if (!node) return NULL;
372 return &node->data;
373}
374
375const char *
376eet_node_name_get(Eet_Node *node)
377{
378 if (!node) return NULL;
379 return node->name;
380}
381
382void
383eet_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
429static const char *eet_node_dump_g_name[6] = {
430 "struct",
431 "array",
432 "var_array",
433 "list",
434 "hash",
435 "???"
436};
437
438static 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
453static void
454eet_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
463static char *
464eet_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
504static void
505eet_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
519static void
520eet_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) \
538case 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
586static void
587eet_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
607static void
608eet_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
616void
617eet_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
682void *
683eet_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
770int
771eet_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
791void
792eet_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
11int
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 @@
1MAINTAINERCLEANFILES = Makefile.in
2
3AM_CPPFLAGS = \
4-I$(top_srcdir)/src/lib \
5-DTESTS_SRC_DIR=\"$(top_srcdir)/src/tests\" \
6@CHECK_CFLAGS@ \
7@EINA_CFLAGS@
8
9if EFL_ENABLE_TESTS
10
11check_PROGRAMS = eet_suite
12
13eet_suite_SOURCES = eet_suite.c eet_data_suite.c
14eet_suite_LDADD = $(top_builddir)/src/lib/libeet.la @EINA_LIBS@ @CHECK_LIBS@
15
16endif
17
18EXTRA_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@
17VPATH = @srcdir@
18pkgdatadir = $(datadir)/@PACKAGE@
19pkgincludedir = $(includedir)/@PACKAGE@
20pkglibdir = $(libdir)/@PACKAGE@
21pkglibexecdir = $(libexecdir)/@PACKAGE@
22am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
23install_sh_DATA = $(install_sh) -c -m 644
24install_sh_PROGRAM = $(install_sh) -c
25install_sh_SCRIPT = $(install_sh) -c
26INSTALL_HEADER = $(INSTALL_DATA)
27transform = $(program_transform_name)
28NORMAL_INSTALL = :
29PRE_INSTALL = :
30POST_INSTALL = :
31NORMAL_UNINSTALL = :
32PRE_UNINSTALL = :
33POST_UNINSTALL = :
34build_triplet = @build@
35host_triplet = @host@
36@EFL_ENABLE_TESTS_TRUE@check_PROGRAMS = eet_suite$(EXEEXT)
37subdir = src/tests
38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in TODO
39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
40am__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
51am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
52 $(ACLOCAL_M4)
53mkinstalldirs = $(install_sh) -d
54CONFIG_HEADER = $(top_builddir)/config.h
55CONFIG_CLEAN_FILES =
56CONFIG_CLEAN_VPATH_FILES =
57am__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)
60eet_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
63AM_V_lt = $(am__v_lt_$(V))
64am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
65am__v_lt_0 = --silent
66DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
67depcomp = $(SHELL) $(top_srcdir)/depcomp
68am__depfiles_maybe = depfiles
69am__mv = mv -f
70COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
71 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
72LTCOMPILE = $(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)
76AM_V_CC = $(am__v_CC_$(V))
77am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
78am__v_CC_0 = @echo " CC " $@;
79AM_V_at = $(am__v_at_$(V))
80am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
81am__v_at_0 = @
82CCLD = $(CC)
83LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
84 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
85 $(AM_LDFLAGS) $(LDFLAGS) -o $@
86AM_V_CCLD = $(am__v_CCLD_$(V))
87am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
88am__v_CCLD_0 = @echo " CCLD " $@;
89AM_V_GEN = $(am__v_GEN_$(V))
90am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
91am__v_GEN_0 = @echo " GEN " $@;
92SOURCES = $(eet_suite_SOURCES)
93DIST_SOURCES = $(am__eet_suite_SOURCES_DIST)
94ETAGS = etags
95CTAGS = ctags
96DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
97ACLOCAL = @ACLOCAL@
98ALLOCA = @ALLOCA@
99AMTAR = @AMTAR@
100AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
101AR = @AR@
102AS = @AS@
103AUTOCONF = @AUTOCONF@
104AUTOHEADER = @AUTOHEADER@
105AUTOMAKE = @AUTOMAKE@
106AWK = @AWK@
107CC = @CC@
108CCDEPMODE = @CCDEPMODE@
109CFLAGS = @CFLAGS@
110CHECK_CFLAGS = @CHECK_CFLAGS@
111CHECK_LIBS = @CHECK_LIBS@
112CPP = @CPP@
113CPPFLAGS = @CPPFLAGS@
114CYGPATH_W = @CYGPATH_W@
115DEBUG_CFLAGS = @DEBUG_CFLAGS@
116DEFS = @DEFS@
117DEPDIR = @DEPDIR@
118DLLTOOL = @DLLTOOL@
119DSYMUTIL = @DSYMUTIL@
120DUMPBIN = @DUMPBIN@
121ECHO_C = @ECHO_C@
122ECHO_N = @ECHO_N@
123ECHO_T = @ECHO_T@
124EET_CFLAGS = @EET_CFLAGS@
125EET_CPPFLAGS = @EET_CPPFLAGS@
126EET_LIBS = @EET_LIBS@
127EET_PRG = @EET_PRG@
128EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
129EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
130EFL_EET_BUILD = @EFL_EET_BUILD@
131EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
132EGREP = @EGREP@
133EINA_CFLAGS = @EINA_CFLAGS@
134EINA_LIBS = @EINA_LIBS@
135EVIL_CFLAGS = @EVIL_CFLAGS@
136EVIL_LIBS = @EVIL_LIBS@
137EXEEXT = @EXEEXT@
138EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
139EXOTIC_LIBS = @EXOTIC_LIBS@
140FGREP = @FGREP@
141GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
142GNUTLS_LIBS = @GNUTLS_LIBS@
143GREP = @GREP@
144INSTALL = @INSTALL@
145INSTALL_DATA = @INSTALL_DATA@
146INSTALL_PROGRAM = @INSTALL_PROGRAM@
147INSTALL_SCRIPT = @INSTALL_SCRIPT@
148INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
149LD = @LD@
150LDFLAGS = @LDFLAGS@
151LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
152LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
153LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
154LIBOBJS = @LIBOBJS@
155LIBS = @LIBS@
156LIBTOOL = @LIBTOOL@
157LIPO = @LIPO@
158LN_S = @LN_S@
159LTLIBOBJS = @LTLIBOBJS@
160MAKEINFO = @MAKEINFO@
161MKDIR_P = @MKDIR_P@
162NM = @NM@
163NMEDIT = @NMEDIT@
164OBJDUMP = @OBJDUMP@
165OBJEXT = @OBJEXT@
166OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
167OPENSSL_LIBS = @OPENSSL_LIBS@
168OTOOL = @OTOOL@
169OTOOL64 = @OTOOL64@
170PACKAGE = @PACKAGE@
171PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
172PACKAGE_NAME = @PACKAGE_NAME@
173PACKAGE_STRING = @PACKAGE_STRING@
174PACKAGE_TARNAME = @PACKAGE_TARNAME@
175PACKAGE_URL = @PACKAGE_URL@
176PACKAGE_VERSION = @PACKAGE_VERSION@
177PATH_SEPARATOR = @PATH_SEPARATOR@
178PKG_CONFIG = @PKG_CONFIG@
179PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
180PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
181RANLIB = @RANLIB@
182SED = @SED@
183SET_MAKE = @SET_MAKE@
184SHELL = @SHELL@
185STRIP = @STRIP@
186VERSION = @VERSION@
187VMAJ = @VMAJ@
188abs_builddir = @abs_builddir@
189abs_srcdir = @abs_srcdir@
190abs_top_builddir = @abs_top_builddir@
191abs_top_srcdir = @abs_top_srcdir@
192ac_ct_CC = @ac_ct_CC@
193ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
194am__include = @am__include@
195am__leading_dot = @am__leading_dot@
196am__quote = @am__quote@
197am__tar = @am__tar@
198am__untar = @am__untar@
199bindir = @bindir@
200build = @build@
201build_alias = @build_alias@
202build_cpu = @build_cpu@
203build_os = @build_os@
204build_vendor = @build_vendor@
205builddir = @builddir@
206datadir = @datadir@
207datarootdir = @datarootdir@
208docdir = @docdir@
209dvidir = @dvidir@
210efl_doxygen = @efl_doxygen@
211efl_have_doxygen = @efl_have_doxygen@
212exec_prefix = @exec_prefix@
213have_lcov = @have_lcov@
214host = @host@
215host_alias = @host_alias@
216host_cpu = @host_cpu@
217host_os = @host_os@
218host_vendor = @host_vendor@
219htmldir = @htmldir@
220includedir = @includedir@
221infodir = @infodir@
222install_sh = @install_sh@
223libdir = @libdir@
224libexecdir = @libexecdir@
225localedir = @localedir@
226localstatedir = @localstatedir@
227lt_ECHO = @lt_ECHO@
228lt_enable_auto_import = @lt_enable_auto_import@
229mandir = @mandir@
230mkdir_p = @mkdir_p@
231oldincludedir = @oldincludedir@
232pdfdir = @pdfdir@
233pkgconfig_requires_private = @pkgconfig_requires_private@
234prefix = @prefix@
235program_transform_name = @program_transform_name@
236psdir = @psdir@
237release_info = @release_info@
238requirement_eet = @requirement_eet@
239sbindir = @sbindir@
240sharedstatedir = @sharedstatedir@
241srcdir = @srcdir@
242sysconfdir = @sysconfdir@
243target_alias = @target_alias@
244top_build_prefix = @top_build_prefix@
245top_builddir = @top_builddir@
246top_srcdir = @top_srcdir@
247version_info = @version_info@
248MAINTAINERCLEANFILES = Makefile.in
249AM_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@
257EXTRA_DIST = eet_suite.h cert.pem key_enc_none.pem key_enc.pem key.pem
258all: 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
275Makefile: $(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
293clean-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
301eet_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
305mostlyclean-compile:
306 -rm -f *.$(OBJEXT)
307
308distclean-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
338mostlyclean-libtool:
339 -rm -f *.lo
340
341clean-libtool:
342 -rm -rf .libs _libs
343
344ID: $(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
352tags: TAGS
353
354TAGS: $(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
375ctags: CTAGS
376CTAGS: $(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
388GTAGS:
389 here=`$(am__cd) $(top_builddir) && pwd` \
390 && $(am__cd) $(top_srcdir) \
391 && gtags -i $(GTAGS_ARGS) "$$here"
392
393distclean-tags:
394 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
395
396distdir: $(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
426check-am: all-am
427 $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
428check: check-am
429all-am: Makefile
430installdirs:
431install: install-am
432install-exec: install-exec-am
433install-data: install-data-am
434uninstall: uninstall-am
435
436install-am: all-am
437 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
438
439installcheck: installcheck-am
440install-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
445mostlyclean-generic:
446
447clean-generic:
448
449distclean-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
453maintainer-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)
457clean: clean-am
458
459clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
460 mostlyclean-am
461
462distclean: distclean-am
463 -rm -rf ./$(DEPDIR)
464 -rm -f Makefile
465distclean-am: clean-am distclean-compile distclean-generic \
466 distclean-tags
467
468dvi: dvi-am
469
470dvi-am:
471
472html: html-am
473
474html-am:
475
476info: info-am
477
478info-am:
479
480install-data-am:
481
482install-dvi: install-dvi-am
483
484install-dvi-am:
485
486install-exec-am:
487
488install-html: install-html-am
489
490install-html-am:
491
492install-info: install-info-am
493
494install-info-am:
495
496install-man:
497
498install-pdf: install-pdf-am
499
500install-pdf-am:
501
502install-ps: install-ps-am
503
504install-ps-am:
505
506installcheck-am:
507
508maintainer-clean: maintainer-clean-am
509 -rm -rf ./$(DEPDIR)
510 -rm -f Makefile
511maintainer-clean-am: distclean-am maintainer-clean-generic
512
513mostlyclean: mostlyclean-am
514
515mostlyclean-am: mostlyclean-compile mostlyclean-generic \
516 mostlyclean-libtool
517
518pdf: pdf-am
519
520pdf-am:
521
522ps: ps-am
523
524ps-am:
525
526uninstall-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 @@
1The purpose of the current test is to check the validity of the result in a
2normal environment. But we should at some point also test the robustness of
3this 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-----
2MIIDmTCCAwKgAwIBAgIJAIKWPcLUT5FAMA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD
3VQQGEwJGUjEWMBQGA1UECBMNSWxlLURlLUZyYW5jZTEOMAwGA1UEBxMFUGFyaXMx
4FjAUBgNVBAoTDUVubGlnaHRlbm1lbnQxDjAMBgNVBAsTBVRlc3RzMQ0wCwYDVQQD
5EwRCQUlMMSIwIAYJKoZIhvcNAQkBFhNjZWRyaWMuYmFpbEBmcmVlLmZyMB4XDTA4
6MDczMDEzNDU1OVoXDTA5MDczMDEzNDU1OVowgZAxCzAJBgNVBAYTAkZSMRYwFAYD
7VQQIEw1JbGUtRGUtRnJhbmNlMQ4wDAYDVQQHEwVQYXJpczEWMBQGA1UEChMNRW5s
8aWdodGVubWVudDEOMAwGA1UECxMFVGVzdHMxDTALBgNVBAMTBEJBSUwxIjAgBgkq
9hkiG9w0BCQEWE2NlZHJpYy5iYWlsQGZyZWUuZnIwgZ8wDQYJKoZIhvcNAQEBBQAD
10gY0AMIGJAoGBAMiE486eROKePG0/639D4XTTDR9XSRWp1xqZzq7P+jjWRFbZ/MWV
11IVzkc4MRm83UOolbPj76LjM10cseaVAhK7G9CHp2dur4alWvdCXPH5Q+LPOFS9gM
12x0Jz9EZeHHOHZKLyJdKSmot+zluwJTLe081RRUwzNKct6JrVVG/7SmITAgMBAAGj
13gfgwgfUwHQYDVR0OBBYEFEFar6doT5ImL2rf0rJX7EYQqtYQMIHFBgNVHSMEgb0w
14gbqAFEFar6doT5ImL2rf0rJX7EYQqtYQoYGWpIGTMIGQMQswCQYDVQQGEwJGUjEW
15MBQGA1UECBMNSWxlLURlLUZyYW5jZTEOMAwGA1UEBxMFUGFyaXMxFjAUBgNVBAoT
16DUVubGlnaHRlbm1lbnQxDjAMBgNVBAsTBVRlc3RzMQ0wCwYDVQQDEwRCQUlMMSIw
17IAYJKoZIhvcNAQkBFhNjZWRyaWMuYmFpbEBmcmVlLmZyggkAgpY9wtRPkUAwDAYD
18VR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQCpZJhk8BgQh0foiMkOwOMKvObq
19GxAzqjbr7iU9tEvJgwukCBv59ndBM0B5l5ybQdIYWQJOfZE1HTvB60swZMwqap9X
205QXgewymuXiVk+roVh34wg8Pg8F588G2BtLIoujY/gN3WJQR7YPD34iTPc4koV+A
214vs6nmL6wtW21+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
8static char *
9_eet_str_direct_alloc(const char *str)
10{
11 return (char *)str;
12} /* _eet_str_direct_alloc */
13
14static void
15_eet_str_direct_free(const char *str)
16{
17 /* FIXME: Use attribute unused */
18 (void)str;
19} /* _eet_str_direct_free */
20
21static 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 */
31static 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
46static void
47_eet_eina_hash_free(Eina_Hash *hash)
48{
49 if (hash)
50 eina_hash_free(hash);
51} /* _eet_eina_hash_free */
52
53void
54eet_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
29START_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}
39END_TEST
40
41typedef struct _Eet_Test_Basic_Type Eet_Test_Basic_Type;
42struct _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
79typedef struct _Eet_Test_Image Eet_Test_Image;
80struct _Eet_Test_Image
81{
82 unsigned int w;
83 unsigned int h;
84 int alpha;
85 unsigned int color[64];
86};
87
88static 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
110static 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
132static 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
178static 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
236static 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
309START_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}
346END_TEST
347
348typedef struct _Eet_Test_Ex_Type Eet_Test_Ex_Type;
349struct _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
384static int i42 = 42;
385static int i7 = 7;
386
387static 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
531static 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
590static 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
681static Eina_Bool
682func(__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
699static Eina_Bool
700func7(__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
718START_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}
782END_TEST
783
784static void
785append_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
800START_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}
886END_TEST
887START_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
953END_TEST
954START_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
1109END_TEST
1110START_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
1205END_TEST
1206START_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
1564END_TEST
1565
1566#define IM0 0x00112233
1567#define IM1 0x44556677
1568#define IM2 0x8899aabb
1569#define IM3 0xccddeeff
1570
1571START_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
1629END_TEST
1630START_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
1705END_TEST
1706START_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
1723END_TEST
1724START_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
1741END_TEST
1742
1743static int
1744pass_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
1758static int
1759badpass_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
1773START_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}
1801END_TEST
1802START_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
1854END_TEST
1855
1856#ifdef EINA_HAVE_THREADS
1857
1858static Eina_Bool open_worker_stop;
1859
1860# ifdef _EET_INCLUDED_PTHREAD
1861
1862static void *
1863open_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
1883static unsigned int __stdcall
1884open_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
1904START_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}
1958END_TEST
1959
1960#endif /* EINA_HAVE_THREADS */
1961
1962typedef struct _Eet_Connection_Data Eet_Connection_Data;
1963struct _Eet_Connection_Data
1964{
1965 Eet_Connection *conn;
1966 Eet_Data_Descriptor *edd;
1967 Eina_Bool test;
1968};
1969
1970static 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
2014static 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
2039START_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}
2096END_TEST
2097
2098struct _Eet_5FP
2099{
2100 Eina_F32p32 fp32;
2101 Eina_F16p16 fp16;
2102 Eina_F8p24 fp8;
2103 Eina_F32p32 f1;
2104 Eina_F32p32 f0;
2105};
2106typedef struct _Eet_5FP Eet_5FP;
2107
2108struct _Eet_5DBL
2109{
2110 double fp32;
2111 double fp16;
2112 float fp8;
2113 double f1;
2114 double f0;
2115};
2116typedef struct _Eet_5DBL Eet_5DBL;
2117
2118START_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}
2178END_TEST
2179START_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
2248END_TEST
2249
2250typedef struct _Eet_Union_Test Eet_Union_Test;
2251typedef struct _Eet_Variant_Test Eet_Variant_Test;
2252typedef struct _Eet_Variant_Type Eet_Variant_Type;
2253typedef struct _Eet_Inherit_Test1 Eet_Inherit_Test1;
2254typedef struct _Eet_Inherit_Test2 Eet_Inherit_Test2;
2255typedef struct _Eet_Inherit_Test3 Eet_Inherit_Test3;
2256typedef struct _Eet_St1 Eet_St1;
2257typedef struct _Eet_St2 Eet_St2;
2258typedef struct _Eet_St3 Eet_St3;
2259typedef struct _Eet_List Eet_List;
2260
2261typedef enum _Eet_Union
2262{
2263 EET_UNKNOWN,
2264 EET_ST1,
2265 EET_ST2,
2266 EET_ST3
2267} Eet_Union;
2268
2269struct
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
2280struct _Eet_St1
2281{
2282 double val1;
2283 int stuff;
2284 char *s1;
2285};
2286
2287struct _Eet_St2
2288{
2289 Eina_Bool b1;
2290 unsigned long long v1;
2291};
2292
2293struct _Eet_St3
2294{
2295 int boby;
2296};
2297
2298struct _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
2309struct _Eet_Variant_Type
2310{
2311 const char *type;
2312 Eina_Bool unknow : 1;
2313};
2314
2315struct _Eet_Variant_Test
2316{
2317 Eet_Variant_Type t;
2318
2319 void *data;
2320 Eina_List *data_list;
2321};
2322
2323struct _Eet_Inherit_Test1
2324{
2325 Eet_Union type;
2326 Eet_St1 st1;
2327};
2328struct _Eet_Inherit_Test2
2329{
2330 Eet_Union type;
2331 Eet_St2 st2;
2332};
2333struct _Eet_Inherit_Test3
2334{
2335 Eet_Union type;
2336 Eet_St3 st3;
2337};
2338
2339struct _Eet_List
2340{
2341 Eina_List *list;
2342};
2343
2344static 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
2364static 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
2385static 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
2405static 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
2417static 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
2432static 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
2441static 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
2458static 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
2472static 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
2480static 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
2488static 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
2501static void
2502_eet_st3_set(Eet_St3 *st3,
2503 int i)
2504{
2505 st3->boby = EET_TEST_INT + i;
2506} /* _eet_st3_set */
2507
2508static 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
2515START_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}
2591END_TEST
2592START_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
2701END_TEST
2702
2703Suite *
2704eet_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
2764int
2765main(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
6void
7eet_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-----
2MIICXAIBAAKBgQDIhOPOnkTinjxtP+t/Q+F00w0fV0kVqdcamc6uz/o41kRW2fzF
3lSFc5HODEZvN1DqJWz4++i4zNdHLHmlQISuxvQh6dnbq+GpVr3Qlzx+UPizzhUvY
4DMdCc/RGXhxzh2Si8iXSkpqLfs5bsCUy3tPNUUVMMzSnLeia1VRv+0piEwIDAQAB
5AoGAfLLHyNJ8HEIzae16UmawaqplWrw5YxOABbbo5aXJAledoDVoEKexW8dmXngw
64Eu/K3RmvVtwJ8CsexiqfX5jYMU+YKRbww6Vqr/punIUhiEHVarHMFKG9yo14qSa
7z2xPgXvC5p7/Rhci+rAUp36S5kIHch5sLhEEcJayymyzDyECQQD/5B3JdpcovrSI
8+nyZ8Iub2+I3f3uox6m1DKxHead26ICoIr7VCnPV5J1gLIB2MofVCbKhmy4PNi5a
90QdvazJfAkEAyJq9Y+9SQ4sCOVDrFklJxhXuZE4WbnR32XsBdnQ9dauo0E2vDVkv
106mHnzMWroTjLv4hH5nufE5NvMo8PNGB0zQJAFOKkf737JmsyRv/Szamxa14t/4Ob
11LzJkqo9HPGo0feMKJS74zmCVBb8sDR50ubD0HzI0bzZAMyOj8uuepLxmFwJAH+RR
125bhfeLN52AjgRvvBycckzjeH42mKwD2I/v794l43CV7ATLv4HSgRhQGMBqaT5dBR
13tffDU4Zl8EDEJwyKpQJBAJ2NNacURTyavU699QJOIdGAsA4KXici8H3PuuWMtHLR
14RKdPFeaCRn+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-----
2MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQILLqDZE1i0Y8CAggA
3MBQGCCqGSIb3DQMHBAjwbnSdTCCDOASCAoB0rMuSIXrzqFQnCexMkC9A5jyd+HvC
42UV6EWIfFU4yBvp+2dfHg6RKUoZ0wGk8FxAkaAj+boVwf16PPXXQ70AQBb0iGeb4
5YLdjDF2zSoIK3SbsWrhAfJhSMbcMftEZnLTYxLSkTv5R8jb0IPybVNTqFf+KmGav
6DwyRVQrdAxIYdJSPwd61Fhs1VqzptmQ8DLKHy35X1fIro3py4jncBhsuqf6H3yj1
7ZFuzCPnwB8unASgbTPD43yObrjyWTjbTtp59WavVdnNS+m7QNW+OfxznHUUJXtMz
8/EniglUhR1Uf75wpMpQIPfC77Cary0Y4iLGQZiF1C0WjQzMBufckJFJVRFGfkkMl
9ijlaijLUYMqENJ6wsyK5lihsoBCzIDoqI375s9pdeln8sd33Yu+L/Gu4Xo8Bh5cM
106mlo9WUgw5KibmlZHGEAGdKxcvL0ywswuwQ6yhwcdvCAt6MfrWJNpksa9JmpXJi8
11c21lHwnoyG1DgSqY5VhRyitfnuY3Jegj+7njhooiAJM9w7fxpafN9oxiaJBvPFqd
12lfJ42Pj5rkjjVqXOJX7Cf7sF85tW7ygwdGWyXvHn2fhQ+vjaDtZalry//Xytet4r
13lvTerO6M6WVMk2yM7vdeBU7c74LVIJmwGR6d837OPax1V+Z9yq6zDuJAQ3l9mtmu
14gowV3xInTFRsnSOQcYW5y8dNnugR9FBh8f1NI7SPyW0reeVbPXXhRxg+TyogIXhh
15yAfWJ6dDLZ31EVCdqRKxK7b9u2r3dsuaiwT1jFg59Eu2AifFi0j7aDA1lGIKoj3C
16cPDwJd8weC+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-----
2MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMiE486eROKePG0/
3639D4XTTDR9XSRWp1xqZzq7P+jjWRFbZ/MWVIVzkc4MRm83UOolbPj76LjM10cse
4aVAhK7G9CHp2dur4alWvdCXPH5Q+LPOFS9gMx0Jz9EZeHHOHZKLyJdKSmot+zluw
5JTLe081RRUwzNKct6JrVVG/7SmITAgMBAAECgYB8ssfI0nwcQjNp7XpSZrBqqmVa
6vDljE4AFtujlpckCV52gNWgQp7Fbx2ZeeDDgS78rdGa9W3AnwKx7GKp9fmNgxT5g
7pFvDDpWqv+m6chSGIQdVqscwUob3KjXipJrPbE+Be8Lmnv9GFyL6sBSnfpLmQgdy
8HmwuEQRwlrLKbLMPIQJBAP/kHcl2lyi+tIj6fJnwi5vb4jd/e6jHqbUMrEd5p3bo
9gKgivtUKc9XknWAsgHYyh9UJsqGbLg82LlrRB29rMl8CQQDImr1j71JDiwI5UOsW
10SUnGFe5kThZudHfZewF2dD11q6jQTa8NWS/qYefMxauhOMu/iEfme58Tk28yjw80
11YHTNAkAU4qR/vfsmazJG/9LNqbFrXi3/g5svMmSqj0c8ajR94wolLvjOYJUFvywN
12HnS5sPQfMjRvNkAzI6Py656kvGYXAkAf5FHluF94s3nYCOBG+8HJxyTON4fjaYrA
13PYj+/v3iXjcJXsBMu/gdKBGFAYwGppPl0FG198NThmXwQMQnDIqlAkEAnY01pxRF
14PJq9Tr31Ak4h0YCwDgpeJyLwfc+65Yy0ctFEp08V5oJGf72ntOCV/Ssf2FQY6lRc
15dgPf4QK3qCdUNw==
16-----END PRIVATE KEY-----