tyler-trie 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/VERSION.yml +4 -0
  2. data/ext/libdatrie/AUTHORS +1 -0
  3. data/ext/libdatrie/COPYING +510 -0
  4. data/ext/libdatrie/ChangeLog +410 -0
  5. data/ext/libdatrie/INSTALL +236 -0
  6. data/ext/libdatrie/Makefile.am +5 -0
  7. data/ext/libdatrie/Makefile.in +661 -0
  8. data/ext/libdatrie/NEWS +27 -0
  9. data/ext/libdatrie/README +32 -0
  10. data/ext/libdatrie/aclocal.m4 +7431 -0
  11. data/ext/libdatrie/config.guess +1516 -0
  12. data/ext/libdatrie/config.h.in +74 -0
  13. data/ext/libdatrie/config.sub +1626 -0
  14. data/ext/libdatrie/configure +22008 -0
  15. data/ext/libdatrie/configure.ac +71 -0
  16. data/ext/libdatrie/datrie.pc.in +11 -0
  17. data/ext/libdatrie/datrie/Makefile.am +35 -0
  18. data/ext/libdatrie/datrie/Makefile.in +522 -0
  19. data/ext/libdatrie/datrie/alpha-map.c +170 -0
  20. data/ext/libdatrie/datrie/alpha-map.h +36 -0
  21. data/ext/libdatrie/datrie/darray.c +674 -0
  22. data/ext/libdatrie/datrie/darray.h +229 -0
  23. data/ext/libdatrie/datrie/fileutils.c +151 -0
  24. data/ext/libdatrie/datrie/fileutils.h +36 -0
  25. data/ext/libdatrie/datrie/libdatrie.def +31 -0
  26. data/ext/libdatrie/datrie/sb-trie.c +331 -0
  27. data/ext/libdatrie/datrie/sb-trie.h +279 -0
  28. data/ext/libdatrie/datrie/tail.c +344 -0
  29. data/ext/libdatrie/datrie/tail.h +200 -0
  30. data/ext/libdatrie/datrie/trie-private.h +31 -0
  31. data/ext/libdatrie/datrie/trie.c +413 -0
  32. data/ext/libdatrie/datrie/trie.h +270 -0
  33. data/ext/libdatrie/datrie/triedefs.h +63 -0
  34. data/ext/libdatrie/datrie/typedefs.h +113 -0
  35. data/ext/libdatrie/depcomp +530 -0
  36. data/ext/libdatrie/doc/Doxyfile.in +244 -0
  37. data/ext/libdatrie/doc/Makefile.am +29 -0
  38. data/ext/libdatrie/doc/Makefile.in +352 -0
  39. data/ext/libdatrie/install-sh +323 -0
  40. data/ext/libdatrie/ltmain.sh +6938 -0
  41. data/ext/libdatrie/man/Makefile.am +4 -0
  42. data/ext/libdatrie/man/Makefile.in +381 -0
  43. data/ext/libdatrie/man/trietool.1 +107 -0
  44. data/ext/libdatrie/missing +360 -0
  45. data/ext/libdatrie/tools/Makefile.am +7 -0
  46. data/ext/libdatrie/tools/Makefile.in +460 -0
  47. data/ext/libdatrie/tools/trietool.c +308 -0
  48. data/ext/trie/extconf.rb +12 -0
  49. data/ext/trie/trie.c +174 -0
  50. data/lib/trie.rb +1 -0
  51. data/spec/test-trie/README +1 -0
  52. data/spec/trie_spec.rb +79 -0
  53. metadata +139 -0
@@ -0,0 +1,410 @@
1
+ 2008-01-28 Theppitak Karoonboonyanan <thep@linux.thai.net>
2
+
3
+ * configure.in: Bump the library revision.
4
+ * NEWS:
5
+ === Version 0.1.3 ===
6
+
7
+ 2008-01-28 Theppitak Karoonboonyanan <thep@linux.thai.net>
8
+
9
+ * man/trietool.1: Add documentation for the SBM file.
10
+
11
+ 2008-01-28 Theppitak Karoonboonyanan <thep@linux.thai.net>
12
+
13
+ * README: Fix my name in the reference.
14
+
15
+ 2008-01-10 Theppitak Karoonboonyanan <thep@linux.thai.net>
16
+
17
+ * datrie/tail.c (tail_set_suffix): Fix bug for the case in which
18
+ suffix argument and tail's suffix overlap. Bug report and patch by
19
+ shepmaster in http://linux.thai.net/node/102.
20
+
21
+ 2008-01-10 Theppitak Karoonboonyanan <thep@linux.thai.net>
22
+
23
+ * datrie/sb-trie.c (sb_trie_root): Return NULL pointer, rather than
24
+ FALSE. Bug reported by shepmaster in http://linux.thai.net/node/101.
25
+
26
+ 2007-10-17 Theppitak Karoonboonyanan <thep@linux.thai.net>
27
+
28
+ * datrie/libdatrie.def: List only symbols in plain format, for Mac
29
+ build. Thanks Vee Satayamas for the report.
30
+
31
+ * datrie/Makefile.am: Add libdatrie.def as libdatrie_la_DEPENDENCIES.
32
+
33
+ 2007-08-28 Theppitak Karoonboonyanan <thep@linux.thai.net>
34
+
35
+ * doc/Doxyfile.in: Only generate doc for public API.
36
+
37
+ 2007-08-28 Theppitak Karoonboonyanan <thep@linux.thai.net>
38
+
39
+ * doc/Makefile.am, doc/Doxyfile.in: Revert API man pages generation
40
+ and installation. Update Doxyfile format to doxygen 1.5.3.
41
+
42
+ 2007-08-26 Theppitak Karoonboonyanan <thep@linux.thai.net>
43
+
44
+ * man/trietool.1: Escape some minus signs. Mark a variable italic.
45
+ Thanks debian's lintian.
46
+
47
+ 2007-08-26 Theppitak Karoonboonyanan <thep@linux.thai.net>
48
+
49
+ * configure.ac: Post-release version bump.
50
+
51
+ 2007-08-25 Theppitak Karoonboonyanan <thep@linux.thai.net>
52
+
53
+ * configure.ac: Bump lib revision.
54
+ * NEWS:
55
+ === Version 0.1.2 ===
56
+
57
+ 2007-08-25 Theppitak Karoonboonyanan <thep@linux.thai.net>
58
+
59
+ * datrie/Makefile.am, +datrie/trie-private.h (MIN_VAL, MAX_VAL):
60
+ Add utility macros.
61
+ * datrie/darray.c (da_output_symbols): Adjust loop boundary to be more
62
+ overflow-safe.
63
+ * "-------------" (da_has_children, da_relocate_base): Apply the same
64
+ loop pattern to prevent out-of-range accesses.
65
+
66
+ 2007-08-24 Theppitak Karoonboonyanan <thep@linux.thai.net>
67
+
68
+ * datrie/darray.c (da_output_symbols): Do not try to test symbols
69
+ beyond trie index range. Fixes segfault for trietool list command.
70
+
71
+ 2007-08-19 Theppitak Karoonboonyanan <thep@linux.thai.net>
72
+
73
+ Handle double array index overflow.
74
+
75
+ * datrie/triedefs.h (TRIE_INDEX_MAX): Define maximum index value.
76
+ * datrie/darray.c (TrieIndexInt): Define type for immediate values, so
77
+ overflow can be detected.
78
+ * "-------------" (da_extend_pool): Return success/failure status.
79
+ Accept TrieIndexInt argument for overflow detection.
80
+ * "-------------" (da_check_free_cell): False when extending fails.
81
+ Accept TrieIndexInt argument for overflow detection.
82
+ * "-------------" (da_find_free_base): Return error on failure.
83
+ * "-------------" (da_insert_branch): Return error on failure.
84
+ * datrie/trie.c (trie_branch_in_branch, trie_branch_in_tail): Check
85
+ for failure from da_insert_branch() and return the status.
86
+ * datrie/darray.{c,h} (da_prune_upto, da_prune): Add da_prune_upto(),
87
+ for rolling back partial operation in trie_branch_in_branch().
88
+ Redefine da_prune() in terms of da_prune_upto().
89
+
90
+ 2007-08-16 Theppitak Karoonboonyanan <thep@linux.thai.net>
91
+
92
+ * datrie/darray.c (da_open, da_find_free_base): Use DA_POOL_BEGIN
93
+ macro instead of hard-coded number. Remove unused DA_EXTENDING_STEPS.
94
+
95
+ 2007-05-12 Theppitak Karoonboonyanan <thep@linux.thai.net>
96
+
97
+ * datrie/sb-trie.c (sb_trie_close, sb_trie_save, sb_trie_retrieve,
98
+ sb_trie_store, sb_trie_enumerate, sb_trie_root, sb_trie_state_clone,
99
+ sb_trie_state_free, sb_trie_state_rewind, sb_trie_state_walk,
100
+ sb_trie_state_is_walkable, sb_trie_state_is_terminal,
101
+ sb_trie_state_is_leaf, sb_trie_state_get_data):
102
+ Guard against NULL pointers in functions. Thanks to Neutron Soutmun
103
+ for bug report and initial patch.
104
+
105
+ 2007-04-06 Theppitak Karoonboonyanan <thep@linux.thai.net>
106
+
107
+ * doc/Makefile.am: Add install-man target. Also install/uninstall
108
+ doxygen-generated man pages.
109
+
110
+ 2007-03-27 Theppitak Karoonboonyanan <thep@linux.thai.net>
111
+
112
+ * configure.ac (LT_CURRENT, LT_REVISION, LT_AGE),
113
+ datrie/Makefile.am (libdatrie_la_LDFLAGS), +datrie/libdatrie.def:
114
+ Add library version info. Limit exported symbols with -export-symbols
115
+ flag. Always pass -no-undefined flag.
116
+
117
+ * configure.ac: Add Win32 DLL building support.
118
+
119
+ 2006-11-02 Theppitak Karoonboonyanan <thep@linux.thai.net>
120
+
121
+ * datrie/fileutils.{c,h} (file_read_int32, file_write_int32): Add
122
+ int32 read/write functions.
123
+
124
+ * datrie/fileutils.c (file_read_int16, file_write_int16): Use unsigned
125
+ char buffer instead of and-ing with 0xff, in accordance with int32
126
+ functions. (Thanks to Vee Satayamas for suggestion).
127
+
128
+ 2006-10-13 Theppitak Karoonboonyanan <thep@linux.thai.net>
129
+
130
+ * configure.ac: Post-release version bump.
131
+
132
+ 2006-10-12 Theppitak Karoonboonyanan <thep@linux.thai.net>
133
+
134
+ * NEWS:
135
+ === Version 0.1.1 ===
136
+
137
+ 2006-10-12 Theppitak Karoonboonyanan <thep@linux.thai.net>
138
+
139
+ * configure.ac, Makefile.am, +man/Makefile.am, +man/trietool.1:
140
+ Add manpage for trietool (moved from debian/).
141
+
142
+ 2006-10-11 Theppitak Karoonboonyanan <thep@linux.thai.net>
143
+
144
+ Fixed compiler warnings.
145
+
146
+ * datrie/sb-trie.c (sb_map_alphabet_to_char_str):
147
+ * datrie/tail.c (tail_open, tail_save, tail_set_suffix):
148
+ * datrie/trie.c (trie_da_enum_func): Cast pointers to get rid of
149
+ compiler warnings about char signedness.
150
+
151
+ * tools/trietool.c (list_enum_func): Return value on exit.
152
+
153
+ 2006-09-18 Theppitak Karoonboonyanan <thep@linux.thai.net>
154
+
155
+ * configure.ac: Post-release version bump.
156
+
157
+ 2006-09-18 Theppitak Karoonboonyanan <thep@linux.thai.net>
158
+
159
+ * NEWS, configure.ac:
160
+ === Version 0.1.0 ===
161
+
162
+ 2006-09-17 Theppitak Karoonboonyanan <thep@linux.thai.net>
163
+
164
+ * README: Filled in.
165
+
166
+ 2006-09-02 Theppitak Karoonboonyanan <thep@linux.thai.net>
167
+
168
+ * datrie/triedefs.h, datrie/trie.h, datrie/sb-trie.h: Included headers
169
+ using system header forms in installed headers.
170
+
171
+ * datrie/Makefile.am (INCLUDES): Added include flag to ensure it
172
+ compiles without prior installation.
173
+
174
+ 2006-09-02 Theppitak Karoonboonyanan <thep@linux.thai.net>
175
+
176
+ * datrie/alpha-map.c (alpha_map_char_to_alphabet,
177
+ alpha_map_alphabet_to_char): Made sure terminator is always mapped
178
+ with character 0.
179
+
180
+ 2006-09-02 Theppitak Karoonboonyanan <thep@linux.thai.net>
181
+
182
+ * datrie/darray.{h,c} (da_is_walkable),
183
+ datrie/tail.{h,c} (tail_is_walkable_char): Made the tiny functions
184
+ inline (i.e. macros), for tiny performance gain.
185
+
186
+ 2006-09-02 Theppitak Karoonboonyanan <thep@linux.thai.net>
187
+
188
+ * datrie/sb-trie.{h,c} (+sb_trie_state_is_walkable): Added walkability
189
+ test wrapper.
190
+
191
+ * datrie/sb-trie.h (sb_trie_state_is_terminal, sb_trie_state_is_leaf),
192
+ datrie/trie.h (trie_state_is_terminal, trie_state_is_leaf): Fixed typo
193
+ for "\brief" doxygen tag.
194
+
195
+ 2006-09-02 Theppitak Karoonboonyanan <thep@linux.thai.net>
196
+
197
+ * datrie/trie.{h,c} (trie_state_is_terminal, +trie_state_is_walkable):
198
+ Changed trie_state_is_terminal() into a generic walkability test, and
199
+ made itself a specialized macro calling the function.
200
+
201
+ 2006-08-31 Theppitak Karoonboonyanan <thep@linux.thai.net>
202
+
203
+ * datrie/darray.{h,c} (+da_is_walkable),
204
+ datrie/tail.{h,c} (+tail_is_walkable_char),
205
+ datrie/trie.c (tail_state_is_terminal): <Optimization> Tested
206
+ walkability by peeking, instead of trying with a cloned state.
207
+
208
+ * datrie/tail.{h,c} (tail_walk_char): Removed redundant const in
209
+ parameter.
210
+
211
+ 2006-08-29 Theppitak Karoonboonyanan <thep@linux.thai.net>
212
+
213
+ * datrie/trie.h, datrie/sb-trie.h: Wrapped extern "C" in public
214
+ headers for compiling with C++ code.
215
+
216
+ 2006-08-22 Theppitak Karoonboonyanan <thep@linux.thai.net>
217
+
218
+ * tools/trietool.c (decode_command): Exited with proper return values.
219
+
220
+ * tools/trietool.c (command_add_list): Removed warning on missing data
221
+ for keys. This would be normal for data-less dictionaries.
222
+
223
+ 2006-08-21 Theppitak Karoonboonyanan <thep@linux.thai.net>
224
+
225
+ * datrie/trie.{h,c} (trie_state_rewind),
226
+ datrie/sb-trie.{h,c} (sb_trie_state_rewind): Added API to rewind a
227
+ trie state to root, so users do not need to reallocate to do so.
228
+
229
+ 2006-08-21 Theppitak Karoonboonyanan <thep@linux.thai.net>
230
+
231
+ * datrie/alpha-map.c (alpha_map_open, alpha_map_new): Better used a
232
+ dedicated function to initialize the map.
233
+
234
+ 2006-08-21 Theppitak Karoonboonyanan <thep@linux.thai.net>
235
+
236
+ * datrie/alpha-map.c (alpha_map_open): Initialized map list before
237
+ using. Also skipped mal-formed input lines.
238
+
239
+ * tools/trietool.c (command_add_list): Removed duplicated return.
240
+
241
+ 2006-08-21 Theppitak Karoonboonyanan <thep@linux.thai.net>
242
+
243
+ * configure.ac, Makefile.am, +datrie.pc.in: Added pkgconfig file.
244
+
245
+ 2006-08-20 Theppitak Karoonboonyanan <thep@linux.thai.net>
246
+
247
+ * datrie/sb-trie.{h,c} (sb_trie_state_is_terminal),
248
+ datrie/trie.{h,c} (trie_state_is_terminal, trie_state_is_leaf):
249
+ Added API for terminal node check and distinguish it from leaf node.
250
+ (Terminal node can be in either branch or tail, while leaf can only
251
+ be in tail.)
252
+
253
+ 2006-08-20 Theppitak Karoonboonyanan <thep@linux.thai.net>
254
+
255
+ * datrie/Makefile.am (pkginclude_HEADERS): Installed sb-trie.h.
256
+
257
+ * datrie/sb-trie.h: Fixed file name in doxygen tag.
258
+
259
+ 2006-08-20 Theppitak Karoonboonyanan <thep@linux.thai.net>
260
+
261
+ * datrie/Makefile.am, +datrie/alpha-map.{h,c}, +datrie/sb-trie.{h,c}:
262
+ Added alphabet map to map between character set and trie alphabet
263
+ codes. Also added SBTrie wrapper for 8-bit character sets.
264
+
265
+ * datrie/triedefs.h (TRIE_CHAR_MAX): Changed to 255, to fit char type.
266
+
267
+ * datrie/trie.{h,c} (trie_state_walk): Removed unnecessary const in
268
+ character argument.
269
+
270
+ * tools/trietool.c: Used SBTrie instead of plain Trie.
271
+
272
+ 2006-08-20 Theppitak Karoonboonyanan <thep@linux.thai.net>
273
+
274
+ * datrie/fileutils.c (file_read_int16): Fixed bitwise calculation. The
275
+ second byte should be masked to get rid of possible sign bits
276
+ introduced by type conversion.
277
+
278
+ 2006-08-19 Theppitak Karoonboonyanan <thep@linux.thai.net>
279
+
280
+ * datrie/fileutils.c (file_read_int16, file_write_int16): Used shift
281
+ operations to serialize int, eliminating dependency on <arpa/inet.h>.
282
+ Thanks Vee Satayamas for the suggestion.
283
+
284
+ 2006-08-18 Theppitak Karoonboonyanan <thep@linux.thai.net>
285
+
286
+ * datrie/trie.c (trie_retrieve, trie_store, trie_delete): Always walk
287
+ the null-terminator in tail. Otherwise, comparison with shorter key
288
+ will terminate at separate node.
289
+
290
+ 2006-08-18 Theppitak Karoonboonyanan <thep@linux.thai.net>
291
+
292
+ * datrie/darray.c (find_free_base): Extended pool before getting
293
+ exhausted.
294
+
295
+ * tools/trietool.c (command_add_list): Let tab and comma be field
296
+ delimitors, rather than white spaces in general.
297
+
298
+ * tools/trietool.c (list_enum_func): Do not pad space when printing
299
+ key data.
300
+
301
+ 2006-08-17 Theppitak Karoonboonyanan <thep@linux.thai.net>
302
+
303
+ * configure.ac, Makefile.am, +doc/Makefile.am, +doc/Doxyfile.in:
304
+ Generated document using doxygen.
305
+
306
+ 2006-08-17 Theppitak Karoonboonyanan <thep@linux.thai.net>
307
+
308
+ * datrie/darray.c (da_prune, da_num_children -> da_has_children):
309
+ Just checked whether a node has at least one child, instead of
310
+ counting children and comparing with zero, as a small optimization.
311
+
312
+ 2006-08-17 Theppitak Karoonboonyanan <thep@linux.thai.net>
313
+
314
+ * tools/trietool.c (command_add_list, command_delete_list):
315
+ Implemented.
316
+
317
+ 2006-08-17 Theppitak Karoonboonyanan <thep@linux.thai.net>
318
+
319
+ * datrie/trie.{h,c} (trie_enumerate), datrie/darray.{h,c}
320
+ (da_enumerate, da_enumerate_recursive, da_get_state_key): Added key
321
+ enumeration method.
322
+
323
+ * tools/trietool.c (command_list): Implemented.
324
+
325
+ 2006-08-17 Theppitak Karoonboonyanan <thep@linux.thai.net>
326
+
327
+ * datrie/trie.{h,c} (trie_delete), datrie/darray.{h,c} (da_prune,
328
+ da_num_children), datrie/tail.{h,c} (tail_delete): Added key deletion
329
+ method.
330
+
331
+ * datrie/tail.c (tail_save): Guarded against null suffix.
332
+
333
+ * tools/trietool.c (command_delete): Implemented.
334
+
335
+ 2006-08-17 Theppitak Karoonboonyanan <thep@linux.thai.net>
336
+
337
+ * datrie/darray.c (da_find_free_base): Made sure the free cell for
338
+ first symbol is beyond header cells. Also repeatedly extended the pool
339
+ until a free cell is found, in case free list is restarted.
340
+
341
+ 2006-08-16 Theppitak Karoonboonyanan <thep@linux.thai.net>
342
+
343
+ * datrie/fileutils.c (file_open): Created new file only if it does not
344
+ exist.
345
+
346
+ * datrie/trie.c (trie_branch_in_branch): Also set data for tail block.
347
+
348
+ * datrie/trie.c (trie_branch_in_tail): Do not free the const suffix
349
+ block, fixing double free bug.
350
+
351
+ * datrie/darray.c (da_insert_branch): Covered the case of negative
352
+ base, for branching from a separate node.
353
+
354
+ * tools/trietool.c (command_add): Removed debug message.
355
+
356
+ 2006-08-16 Theppitak Karoonboonyanan <thep@linux.thai.net>
357
+
358
+ * configure.ac, Makefile.am, +tools/Makefile.am, +tools/trietool.c:
359
+ Added trietool utility.
360
+
361
+ * datrie/darray.c (da_get_free_list): Fixed typo in macro name.
362
+
363
+ * datrie/datrie.c (da_extend_pool): Updated num_cells immediately
364
+ after realloc(), to let the cell accesses pass boundary checks.
365
+
366
+ * datrie/tail.c (tail_get_suffix, tail_set_suffix, tail_alloc_block,
367
+ tail_free_block, tail_get_data, tail_set_data, tail_walk_str,
368
+ tail_walk_char): Started tail blocks indexing from 1 (defined as
369
+ TAIL_START_BLOCKNO macro) rather than 0, because we use signed values
370
+ to distinguish pointers in darray.
371
+
372
+ * datrie/tail.{c,h} (tail_get_suffix), datrie/trie.c
373
+ (trie_branch_in_tail): Made tail_get_suffix return const pointer.
374
+
375
+ * datrie/darray.c (da_close, da_save), datrie/tail.c (tail_close,
376
+ tail_save): Checked errors and returned appropriate codes.
377
+
378
+ * datrie/trie.c (trie_open): Checked errors on files openning and
379
+ resumed appropriately.
380
+
381
+ 2006-08-15 Theppitak Karoonboonyanan <thep@linux.thai.net>
382
+
383
+ * datrie/Makefile.am, +datrie/fileutils.c: Added fileutils.c for
384
+ implementation of file utility functions.
385
+
386
+ * datrie/fileutils.{c,h}, datrie/darray.c (da_open), datrie/tail.c
387
+ (tail_open): Adjusted file_read_int{8,16} API so error can be checked.
388
+
389
+ 2006-08-15 Theppitak Karoonboonyanan <thep@linux.thai.net>
390
+
391
+ * datrie/Makefile.am, +datrie/tail.c, datrie/tail.h: Added tail.c for
392
+ trie suffix implementation. Adjusted some API to not require size_t.
393
+
394
+ * datrile/fileutils.h: Added more functions required by tail.c.
395
+
396
+ * datrie/trie.c (trie_branch_in_tail): Added check for null suffix.
397
+
398
+ 2006-08-14 Theppitak Karoonboonyanan <thep@linux.thai.net>
399
+
400
+ * datrie/Makefile.am, +datrie/darray.c, +datrie/fileutils.h:
401
+ Added darray.c for double-array structure implementation, and
402
+ fileutils.h declarations for keeping file manipulation functions.
403
+
404
+ * datrie/triedefs.h: Added TRIE_CHAR_MAX constant for alphabet
405
+ enumeration. Changed TRIE_INDEX_ERROR to 0, as negative number has its
406
+ own meaning.
407
+
408
+ 2006-08-12 Theppitak Karoonboonyanan <thep@linux.thai.net>
409
+
410
+ * === First import the project ===
@@ -0,0 +1,236 @@
1
+ Installation Instructions
2
+ *************************
3
+
4
+ Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
5
+ Software Foundation, Inc.
6
+
7
+ This file is free documentation; the Free Software Foundation gives
8
+ unlimited permission to copy, distribute and modify it.
9
+
10
+ Basic Installation
11
+ ==================
12
+
13
+ These are generic installation instructions.
14
+
15
+ The `configure' shell script attempts to guess correct values for
16
+ various system-dependent variables used during compilation. It uses
17
+ those values to create a `Makefile' in each directory of the package.
18
+ It may also create one or more `.h' files containing system-dependent
19
+ definitions. Finally, it creates a shell script `config.status' that
20
+ you can run in the future to recreate the current configuration, and a
21
+ file `config.log' containing compiler output (useful mainly for
22
+ debugging `configure').
23
+
24
+ It can also use an optional file (typically called `config.cache'
25
+ and enabled with `--cache-file=config.cache' or simply `-C') that saves
26
+ the results of its tests to speed up reconfiguring. (Caching is
27
+ disabled by default to prevent problems with accidental use of stale
28
+ cache files.)
29
+
30
+ If you need to do unusual things to compile the package, please try
31
+ to figure out how `configure' could check whether to do them, and mail
32
+ diffs or instructions to the address given in the `README' so they can
33
+ be considered for the next release. If you are using the cache, and at
34
+ some point `config.cache' contains results you don't want to keep, you
35
+ may remove or edit it.
36
+
37
+ The file `configure.ac' (or `configure.in') is used to create
38
+ `configure' by a program called `autoconf'. You only need
39
+ `configure.ac' if you want to change it or regenerate `configure' using
40
+ a newer version of `autoconf'.
41
+
42
+ The simplest way to compile this package is:
43
+
44
+ 1. `cd' to the directory containing the package's source code and type
45
+ `./configure' to configure the package for your system. If you're
46
+ using `csh' on an old version of System V, you might need to type
47
+ `sh ./configure' instead to prevent `csh' from trying to execute
48
+ `configure' itself.
49
+
50
+ Running `configure' takes awhile. While running, it prints some
51
+ messages telling which features it is checking for.
52
+
53
+ 2. Type `make' to compile the package.
54
+
55
+ 3. Optionally, type `make check' to run any self-tests that come with
56
+ the package.
57
+
58
+ 4. Type `make install' to install the programs and any data files and
59
+ documentation.
60
+
61
+ 5. You can remove the program binaries and object files from the
62
+ source code directory by typing `make clean'. To also remove the
63
+ files that `configure' created (so you can compile the package for
64
+ a different kind of computer), type `make distclean'. There is
65
+ also a `make maintainer-clean' target, but that is intended mainly
66
+ for the package's developers. If you use it, you may have to get
67
+ all sorts of other programs in order to regenerate files that came
68
+ with the distribution.
69
+
70
+ Compilers and Options
71
+ =====================
72
+
73
+ Some systems require unusual options for compilation or linking that the
74
+ `configure' script does not know about. Run `./configure --help' for
75
+ details on some of the pertinent environment variables.
76
+
77
+ You can give `configure' initial values for configuration parameters
78
+ by setting variables in the command line or in the environment. Here
79
+ is an example:
80
+
81
+ ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
82
+
83
+ *Note Defining Variables::, for more details.
84
+
85
+ Compiling For Multiple Architectures
86
+ ====================================
87
+
88
+ You can compile the package for more than one kind of computer at the
89
+ same time, by placing the object files for each architecture in their
90
+ own directory. To do this, you must use a version of `make' that
91
+ supports the `VPATH' variable, such as GNU `make'. `cd' to the
92
+ directory where you want the object files and executables to go and run
93
+ the `configure' script. `configure' automatically checks for the
94
+ source code in the directory that `configure' is in and in `..'.
95
+
96
+ If you have to use a `make' that does not support the `VPATH'
97
+ variable, you have to compile the package for one architecture at a
98
+ time in the source code directory. After you have installed the
99
+ package for one architecture, use `make distclean' before reconfiguring
100
+ for another architecture.
101
+
102
+ Installation Names
103
+ ==================
104
+
105
+ By default, `make install' installs the package's commands under
106
+ `/usr/local/bin', include files under `/usr/local/include', etc. You
107
+ can specify an installation prefix other than `/usr/local' by giving
108
+ `configure' the option `--prefix=PREFIX'.
109
+
110
+ You can specify separate installation prefixes for
111
+ architecture-specific files and architecture-independent files. If you
112
+ pass the option `--exec-prefix=PREFIX' to `configure', the package uses
113
+ PREFIX as the prefix for installing programs and libraries.
114
+ Documentation and other data files still use the regular prefix.
115
+
116
+ In addition, if you use an unusual directory layout you can give
117
+ options like `--bindir=DIR' to specify different values for particular
118
+ kinds of files. Run `configure --help' for a list of the directories
119
+ you can set and what kinds of files go in them.
120
+
121
+ If the package supports it, you can cause programs to be installed
122
+ with an extra prefix or suffix on their names by giving `configure' the
123
+ option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
124
+
125
+ Optional Features
126
+ =================
127
+
128
+ Some packages pay attention to `--enable-FEATURE' options to
129
+ `configure', where FEATURE indicates an optional part of the package.
130
+ They may also pay attention to `--with-PACKAGE' options, where PACKAGE
131
+ is something like `gnu-as' or `x' (for the X Window System). The
132
+ `README' should mention any `--enable-' and `--with-' options that the
133
+ package recognizes.
134
+
135
+ For packages that use the X Window System, `configure' can usually
136
+ find the X include and library files automatically, but if it doesn't,
137
+ you can use the `configure' options `--x-includes=DIR' and
138
+ `--x-libraries=DIR' to specify their locations.
139
+
140
+ Specifying the System Type
141
+ ==========================
142
+
143
+ There may be some features `configure' cannot figure out automatically,
144
+ but needs to determine by the type of machine the package will run on.
145
+ Usually, assuming the package is built to be run on the _same_
146
+ architectures, `configure' can figure that out, but if it prints a
147
+ message saying it cannot guess the machine type, give it the
148
+ `--build=TYPE' option. TYPE can either be a short name for the system
149
+ type, such as `sun4', or a canonical name which has the form:
150
+
151
+ CPU-COMPANY-SYSTEM
152
+
153
+ where SYSTEM can have one of these forms:
154
+
155
+ OS KERNEL-OS
156
+
157
+ See the file `config.sub' for the possible values of each field. If
158
+ `config.sub' isn't included in this package, then this package doesn't
159
+ need to know the machine type.
160
+
161
+ If you are _building_ compiler tools for cross-compiling, you should
162
+ use the option `--target=TYPE' to select the type of system they will
163
+ produce code for.
164
+
165
+ If you want to _use_ a cross compiler, that generates code for a
166
+ platform different from the build platform, you should specify the
167
+ "host" platform (i.e., that on which the generated programs will
168
+ eventually be run) with `--host=TYPE'.
169
+
170
+ Sharing Defaults
171
+ ================
172
+
173
+ If you want to set default values for `configure' scripts to share, you
174
+ can create a site shell script called `config.site' that gives default
175
+ values for variables like `CC', `cache_file', and `prefix'.
176
+ `configure' looks for `PREFIX/share/config.site' if it exists, then
177
+ `PREFIX/etc/config.site' if it exists. Or, you can set the
178
+ `CONFIG_SITE' environment variable to the location of the site script.
179
+ A warning: not all `configure' scripts look for a site script.
180
+
181
+ Defining Variables
182
+ ==================
183
+
184
+ Variables not defined in a site shell script can be set in the
185
+ environment passed to `configure'. However, some packages may run
186
+ configure again during the build, and the customized values of these
187
+ variables may be lost. In order to avoid this problem, you should set
188
+ them in the `configure' command line, using `VAR=value'. For example:
189
+
190
+ ./configure CC=/usr/local2/bin/gcc
191
+
192
+ causes the specified `gcc' to be used as the C compiler (unless it is
193
+ overridden in the site shell script). Here is a another example:
194
+
195
+ /bin/bash ./configure CONFIG_SHELL=/bin/bash
196
+
197
+ Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
198
+ configuration-related scripts to be executed by `/bin/bash'.
199
+
200
+ `configure' Invocation
201
+ ======================
202
+
203
+ `configure' recognizes the following options to control how it operates.
204
+
205
+ `--help'
206
+ `-h'
207
+ Print a summary of the options to `configure', and exit.
208
+
209
+ `--version'
210
+ `-V'
211
+ Print the version of Autoconf used to generate the `configure'
212
+ script, and exit.
213
+
214
+ `--cache-file=FILE'
215
+ Enable the cache: use and save the results of the tests in FILE,
216
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
217
+ disable caching.
218
+
219
+ `--config-cache'
220
+ `-C'
221
+ Alias for `--cache-file=config.cache'.
222
+
223
+ `--quiet'
224
+ `--silent'
225
+ `-q'
226
+ Do not print messages saying which checks are being made. To
227
+ suppress all normal output, redirect it to `/dev/null' (any error
228
+ messages will still be shown).
229
+
230
+ `--srcdir=DIR'
231
+ Look for the package's source code in directory DIR. Usually
232
+ `configure' can determine that directory automatically.
233
+
234
+ `configure' also accepts some other, not widely useful, options. Run
235
+ `configure --help' for more details.
236
+