diff options
Diffstat (limited to 'meta/packages/jpeg')
-rw-r--r-- | meta/packages/jpeg/jpeg-6b/debian.patch | 10014 | ||||
-rw-r--r-- | meta/packages/jpeg/jpeg-6b/ldflags.patch | 16 | ||||
-rw-r--r-- | meta/packages/jpeg/jpeg-6b/paths.patch | 77 | ||||
-rw-r--r-- | meta/packages/jpeg/jpeg-native_6b.bb | 14 | ||||
-rw-r--r-- | meta/packages/jpeg/jpeg_6b.bb | 36 |
5 files changed, 10157 insertions, 0 deletions
diff --git a/meta/packages/jpeg/jpeg-6b/debian.patch b/meta/packages/jpeg/jpeg-6b/debian.patch new file mode 100644 index 0000000000..823c8e08dc --- /dev/null +++ b/meta/packages/jpeg/jpeg-6b/debian.patch | |||
@@ -0,0 +1,10014 @@ | |||
1 | |||
2 | # | ||
3 | # Made by http://www.mn-logistik.de/unsupported/pxa250/patcher | ||
4 | # | ||
5 | |||
6 | --- jpeg-6b/jpegtran.1~libjpeg6bb-5 | ||
7 | +++ jpeg-6b/jpegtran.1 | ||
8 | @@ -131,6 +131,24 @@ | ||
9 | .B \-rot 180 -trim | ||
10 | trims both edges. | ||
11 | .PP | ||
12 | +We also offer a lossless-crop option, which discards data outside a given | ||
13 | +image region but losslessly preserves what is inside. Like the rotate and | ||
14 | +flip transforms, lossless crop is restricted by the JPEG format: the upper | ||
15 | +left corner of the selected region must fall on an iMCU boundary. If this | ||
16 | +does not hold for the given crop parameters, we silently move the upper left | ||
17 | +corner up and/or left to make it so, simultaneously increasing the region | ||
18 | +dimensions to keep the lower right crop corner unchanged. (Thus, the | ||
19 | +output image covers at least the requested region, but may cover more.) | ||
20 | + | ||
21 | +Note: lossless-crop is an enhancement from http://sylvana.net/jpegcrop/ | ||
22 | +that may not be available on non-Debian systems. | ||
23 | + | ||
24 | +The image can be losslessly cropped by giving the switch: | ||
25 | +.TP | ||
26 | +.B \-crop WxH+X+Y | ||
27 | +Crop to a rectangular subarea of width W, height H starting at point X,Y. | ||
28 | +.PP | ||
29 | +.PP | ||
30 | Another not-strictly-lossless transformation switch is: | ||
31 | .TP | ||
32 | .B \-grayscale | ||
33 | --- jpeg-6b/configure~libjpeg6bb-5 | ||
34 | +++ jpeg-6b/configure | ||
35 | @@ -52,7 +52,7 @@ | ||
36 | includedir='${prefix}/include' | ||
37 | oldincludedir='/usr/include' | ||
38 | infodir='${prefix}/info' | ||
39 | -mandir='${prefix}/man' | ||
40 | +mandir='${prefix}/share/man' | ||
41 | |||
42 | # Initialize some other variables. | ||
43 | subdirs= | ||
44 | @@ -1559,7 +1559,8 @@ | ||
45 | if test "x$LTSTATIC" = xno; then | ||
46 | disable_static="--disable-static" | ||
47 | fi | ||
48 | - $srcdir/ltconfig $disable_shared $disable_static $srcdir/ltmain.sh | ||
49 | + chmod a+x $srcdir/ltconfig.new | ||
50 | + $srcdir/ltconfig.new $disable_shared $disable_static $srcdir/ltmain.new.sh $host | ||
51 | fi | ||
52 | |||
53 | # Select memory manager depending on user input. | ||
54 | --- jpeg-6b/makefile.cfg~libjpeg6bb-5 | ||
55 | +++ jpeg-6b/makefile.cfg | ||
56 | @@ -17,7 +17,7 @@ | ||
57 | binprefix = | ||
58 | manprefix = | ||
59 | manext = 1 | ||
60 | -mandir = $(prefix)/man/man$(manext) | ||
61 | +mandir = $(prefix)/share/man/man$(manext) | ||
62 | |||
63 | # The name of your C compiler: | ||
64 | CC= @CC@ | ||
65 | @@ -210,6 +210,11 @@ | ||
66 | $(INSTALL_DATA) $(srcdir)/jpeglib.h $(includedir)/jpeglib.h | ||
67 | $(INSTALL_DATA) $(srcdir)/jmorecfg.h $(includedir)/jmorecfg.h | ||
68 | $(INSTALL_DATA) $(srcdir)/jerror.h $(includedir)/jerror.h | ||
69 | +#<ballombe@debian.org>:mjpegtools require this file to build and header say: | ||
70 | +# * These declarations are considered internal to the JPEG library; most | ||
71 | +# * applications using the library shouldn't need to include this file. | ||
72 | +# So it is not forbidden to use it, therefore it must be installed. | ||
73 | + $(INSTALL_DATA) $(srcdir)/jpegint.h $(includedir)/jpegint.h | ||
74 | |||
75 | clean: | ||
76 | $(RM) *.o *.lo libjpeg.a libjpeg.la | ||
77 | --- jpeg-6b/jpegtran.c~libjpeg6bb-5 | ||
78 | +++ jpeg-6b/jpegtran.c | ||
79 | @@ -1,7 +1,7 @@ | ||
80 | /* | ||
81 | * jpegtran.c | ||
82 | * | ||
83 | - * Copyright (C) 1995-1997, Thomas G. Lane. | ||
84 | + * Copyright (C) 1995-2001, Thomas G. Lane. | ||
85 | * This file is part of the Independent JPEG Group's software. | ||
86 | * For conditions of distribution and use, see the accompanying README file. | ||
87 | * | ||
88 | @@ -64,6 +64,7 @@ | ||
89 | #endif | ||
90 | #if TRANSFORMS_SUPPORTED | ||
91 | fprintf(stderr, "Switches for modifying the image:\n"); | ||
92 | + fprintf(stderr, " -crop WxH+X+Y Crop to a rectangular subarea\n"); | ||
93 | fprintf(stderr, " -grayscale Reduce to grayscale (omit color data)\n"); | ||
94 | fprintf(stderr, " -flip [horizontal|vertical] Mirror image (left-right or top-bottom)\n"); | ||
95 | fprintf(stderr, " -rotate [90|180|270] Rotate image (degrees clockwise)\n"); | ||
96 | @@ -134,6 +135,7 @@ | ||
97 | transformoption.transform = JXFORM_NONE; | ||
98 | transformoption.trim = FALSE; | ||
99 | transformoption.force_grayscale = FALSE; | ||
100 | + transformoption.crop = FALSE; | ||
101 | cinfo->err->trace_level = 0; | ||
102 | |||
103 | /* Scan command line options, adjust parameters */ | ||
104 | @@ -160,7 +162,7 @@ | ||
105 | exit(EXIT_FAILURE); | ||
106 | #endif | ||
107 | |||
108 | - } else if (keymatch(arg, "copy", 1)) { | ||
109 | + } else if (keymatch(arg, "copy", 2)) { | ||
110 | /* Select which extra markers to copy. */ | ||
111 | if (++argn >= argc) /* advance to next argument */ | ||
112 | usage(); | ||
113 | @@ -173,6 +175,20 @@ | ||
114 | } else | ||
115 | usage(); | ||
116 | |||
117 | + } else if (keymatch(arg, "crop", 2)) { | ||
118 | + /* Perform lossless cropping. */ | ||
119 | +#if TRANSFORMS_SUPPORTED | ||
120 | + if (++argn >= argc) /* advance to next argument */ | ||
121 | + usage(); | ||
122 | + if (! jtransform_parse_crop_spec(&transformoption, argv[argn])) { | ||
123 | + fprintf(stderr, "%s: bogus -crop argument '%s'\n", | ||
124 | + progname, argv[argn]); | ||
125 | + exit(EXIT_FAILURE); | ||
126 | + } | ||
127 | +#else | ||
128 | + select_transform(JXFORM_NONE); /* force an error */ | ||
129 | +#endif | ||
130 | + | ||
131 | } else if (keymatch(arg, "debug", 1) || keymatch(arg, "verbose", 1)) { | ||
132 | /* Enable debug printouts. */ | ||
133 | /* On first -d, print version identification */ | ||
134 | @@ -342,8 +358,10 @@ | ||
135 | jvirt_barray_ptr * src_coef_arrays; | ||
136 | jvirt_barray_ptr * dst_coef_arrays; | ||
137 | int file_index; | ||
138 | - FILE * input_file; | ||
139 | - FILE * output_file; | ||
140 | + /* We assume all-in-memory processing and can therefore use only a | ||
141 | + * single file pointer for sequential input and output operation. | ||
142 | + */ | ||
143 | + FILE * fp; | ||
144 | |||
145 | /* On Mac, fetch a command line. */ | ||
146 | #ifdef USE_CCOMMAND | ||
147 | @@ -406,24 +424,13 @@ | ||
148 | |||
149 | /* Open the input file. */ | ||
150 | if (file_index < argc) { | ||
151 | - if ((input_file = fopen(argv[file_index], READ_BINARY)) == NULL) { | ||
152 | + if ((fp = fopen(argv[file_index], READ_BINARY)) == NULL) { | ||
153 | fprintf(stderr, "%s: can't open %s\n", progname, argv[file_index]); | ||
154 | exit(EXIT_FAILURE); | ||
155 | } | ||
156 | } else { | ||
157 | /* default input file is stdin */ | ||
158 | - input_file = read_stdin(); | ||
159 | - } | ||
160 | - | ||
161 | - /* Open the output file. */ | ||
162 | - if (outfilename != NULL) { | ||
163 | - if ((output_file = fopen(outfilename, WRITE_BINARY)) == NULL) { | ||
164 | - fprintf(stderr, "%s: can't open %s\n", progname, outfilename); | ||
165 | - exit(EXIT_FAILURE); | ||
166 | - } | ||
167 | - } else { | ||
168 | - /* default output file is stdout */ | ||
169 | - output_file = write_stdout(); | ||
170 | + fp = read_stdin(); | ||
171 | } | ||
172 | |||
173 | #ifdef PROGRESS_REPORT | ||
174 | @@ -431,7 +438,7 @@ | ||
175 | #endif | ||
176 | |||
177 | /* Specify data source for decompression */ | ||
178 | - jpeg_stdio_src(&srcinfo, input_file); | ||
179 | + jpeg_stdio_src(&srcinfo, fp); | ||
180 | |||
181 | /* Enable saving of extra markers that we want to copy */ | ||
182 | jcopy_markers_setup(&srcinfo, copyoption); | ||
183 | @@ -463,11 +470,32 @@ | ||
184 | dst_coef_arrays = src_coef_arrays; | ||
185 | #endif | ||
186 | |||
187 | + /* Close input file, if we opened it. | ||
188 | + * Note: we assume that jpeg_read_coefficients consumed all input | ||
189 | + * until JPEG_REACHED_EOI, and that jpeg_finish_decompress will | ||
190 | + * only consume more while (! cinfo->inputctl->eoi_reached). | ||
191 | + * We cannot call jpeg_finish_decompress here since we still need the | ||
192 | + * virtual arrays allocated from the source object for processing. | ||
193 | + */ | ||
194 | + if (fp != stdin) | ||
195 | + fclose(fp); | ||
196 | + | ||
197 | + /* Open the output file. */ | ||
198 | + if (outfilename != NULL) { | ||
199 | + if ((fp = fopen(outfilename, WRITE_BINARY)) == NULL) { | ||
200 | + fprintf(stderr, "%s: can't open %s\n", progname, outfilename); | ||
201 | + exit(EXIT_FAILURE); | ||
202 | + } | ||
203 | + } else { | ||
204 | + /* default output file is stdout */ | ||
205 | + fp = write_stdout(); | ||
206 | + } | ||
207 | + | ||
208 | /* Adjust default compression parameters by re-parsing the options */ | ||
209 | file_index = parse_switches(&dstinfo, argc, argv, 0, TRUE); | ||
210 | |||
211 | /* Specify data destination for compression */ | ||
212 | - jpeg_stdio_dest(&dstinfo, output_file); | ||
213 | + jpeg_stdio_dest(&dstinfo, fp); | ||
214 | |||
215 | /* Start compressor (note no image data is actually written here) */ | ||
216 | jpeg_write_coefficients(&dstinfo, dst_coef_arrays); | ||
217 | @@ -488,11 +516,9 @@ | ||
218 | (void) jpeg_finish_decompress(&srcinfo); | ||
219 | jpeg_destroy_decompress(&srcinfo); | ||
220 | |||
221 | - /* Close files, if we opened them */ | ||
222 | - if (input_file != stdin) | ||
223 | - fclose(input_file); | ||
224 | - if (output_file != stdout) | ||
225 | - fclose(output_file); | ||
226 | + /* Close output file, if we opened it */ | ||
227 | + if (fp != stdout) | ||
228 | + fclose(fp); | ||
229 | |||
230 | #ifdef PROGRESS_REPORT | ||
231 | end_progress_monitor((j_common_ptr) &dstinfo); | ||
232 | --- jpeg-6b/rdjpgcom.c~libjpeg6bb-5 | ||
233 | +++ jpeg-6b/rdjpgcom.c | ||
234 | @@ -14,6 +14,7 @@ | ||
235 | #define JPEG_CJPEG_DJPEG /* to get the command-line config symbols */ | ||
236 | #include "jinclude.h" /* get auto-config symbols, <stdio.h> */ | ||
237 | |||
238 | +#include <locale.h> /*ballombe@debian.org: use locale for isprint*/ | ||
239 | #include <ctype.h> /* to declare isupper(), tolower() */ | ||
240 | #ifdef USE_SETMODE | ||
241 | #include <fcntl.h> /* to declare setmode()'s parameter macros */ | ||
242 | @@ -223,7 +224,10 @@ | ||
243 | unsigned int length; | ||
244 | int ch; | ||
245 | int lastch = 0; | ||
246 | - | ||
247 | +/* ballombe@debian.org Thu, 15 Nov 2001 20:04:47 +0100*/ | ||
248 | +/* Set locale properly for isprint*/ | ||
249 | + setlocale(LC_CTYPE,""); | ||
250 | + | ||
251 | /* Get the marker parameter length count */ | ||
252 | length = read_2_bytes(); | ||
253 | /* Length includes itself, so must be at least 2 */ | ||
254 | @@ -254,6 +258,8 @@ | ||
255 | length--; | ||
256 | } | ||
257 | printf("\n"); | ||
258 | +/*ballombe@debian.org: revert to C locale*/ | ||
259 | + setlocale(LC_CTYPE,"C"); | ||
260 | } | ||
261 | |||
262 | |||
263 | --- jpeg-6b/transupp.c~libjpeg6bb-5 | ||
264 | +++ jpeg-6b/transupp.c | ||
265 | @@ -1,7 +1,7 @@ | ||
266 | /* | ||
267 | * transupp.c | ||
268 | * | ||
269 | - * Copyright (C) 1997, Thomas G. Lane. | ||
270 | + * Copyright (C) 1997-2001, Thomas G. Lane. | ||
271 | * This file is part of the Independent JPEG Group's software. | ||
272 | * For conditions of distribution and use, see the accompanying README file. | ||
273 | * | ||
274 | @@ -20,6 +20,7 @@ | ||
275 | #include "jinclude.h" | ||
276 | #include "jpeglib.h" | ||
277 | #include "transupp.h" /* My own external interface */ | ||
278 | +#include <ctype.h> /* to declare isdigit() */ | ||
279 | |||
280 | |||
281 | #if TRANSFORMS_SUPPORTED | ||
282 | @@ -28,7 +29,8 @@ | ||
283 | * Lossless image transformation routines. These routines work on DCT | ||
284 | * coefficient arrays and thus do not require any lossy decompression | ||
285 | * or recompression of the image. | ||
286 | - * Thanks to Guido Vollbeding for the initial design and code of this feature. | ||
287 | + * Thanks to Guido Vollbeding for the initial design and code of this feature, | ||
288 | + * and to Ben Jackson for introducing the cropping feature. | ||
289 | * | ||
290 | * Horizontal flipping is done in-place, using a single top-to-bottom | ||
291 | * pass through the virtual source array. It will thus be much the | ||
292 | @@ -42,6 +44,13 @@ | ||
293 | * arrays for most of the transforms. That could result in much thrashing | ||
294 | * if the image is larger than main memory. | ||
295 | * | ||
296 | + * If cropping or trimming is involved, the destination arrays may be smaller | ||
297 | + * than the source arrays. Note it is not possible to do horizontal flip | ||
298 | + * in-place when a nonzero Y crop offset is specified, since we'd have to move | ||
299 | + * data from one block row to another but the virtual array manager doesn't | ||
300 | + * guarantee we can touch more than one row at a time. So in that case, | ||
301 | + * we have to use a separate destination array. | ||
302 | + * | ||
303 | * Some notes about the operating environment of the individual transform | ||
304 | * routines: | ||
305 | * 1. Both the source and destination virtual arrays are allocated from the | ||
306 | @@ -54,20 +63,65 @@ | ||
307 | * and we may as well take that as the effective iMCU size. | ||
308 | * 4. When "trim" is in effect, the destination's dimensions will be the | ||
309 | * trimmed values but the source's will be untrimmed. | ||
310 | - * 5. All the routines assume that the source and destination buffers are | ||
311 | + * 5. When "crop" is in effect, the destination's dimensions will be the | ||
312 | + * cropped values but the source's will be uncropped. Each transform | ||
313 | + * routine is responsible for picking up source data starting at the | ||
314 | + * correct X and Y offset for the crop region. (The X and Y offsets | ||
315 | + * passed to the transform routines are measured in iMCU blocks of the | ||
316 | + * destination.) | ||
317 | + * 6. All the routines assume that the source and destination buffers are | ||
318 | * padded out to a full iMCU boundary. This is true, although for the | ||
319 | * source buffer it is an undocumented property of jdcoefct.c. | ||
320 | - * Notes 2,3,4 boil down to this: generally we should use the destination's | ||
321 | - * dimensions and ignore the source's. | ||
322 | */ | ||
323 | |||
324 | |||
325 | LOCAL(void) | ||
326 | -do_flip_h (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, | ||
327 | - jvirt_barray_ptr *src_coef_arrays) | ||
328 | -/* Horizontal flip; done in-place, so no separate dest array is required */ | ||
329 | +do_crop (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, | ||
330 | + JDIMENSION x_crop_offset, JDIMENSION y_crop_offset, | ||
331 | + jvirt_barray_ptr *src_coef_arrays, | ||
332 | + jvirt_barray_ptr *dst_coef_arrays) | ||
333 | +/* Crop. This is only used when no rotate/flip is requested with the crop. */ | ||
334 | { | ||
335 | - JDIMENSION MCU_cols, comp_width, blk_x, blk_y; | ||
336 | + JDIMENSION dst_blk_y, x_crop_blocks, y_crop_blocks; | ||
337 | + int ci, offset_y; | ||
338 | + JBLOCKARRAY src_buffer, dst_buffer; | ||
339 | + jpeg_component_info *compptr; | ||
340 | + | ||
341 | + /* We simply have to copy the right amount of data (the destination's | ||
342 | + * image size) starting at the given X and Y offsets in the source. | ||
343 | + */ | ||
344 | + for (ci = 0; ci < dstinfo->num_components; ci++) { | ||
345 | + compptr = dstinfo->comp_info + ci; | ||
346 | + x_crop_blocks = x_crop_offset * compptr->h_samp_factor; | ||
347 | + y_crop_blocks = y_crop_offset * compptr->v_samp_factor; | ||
348 | + for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks; | ||
349 | + dst_blk_y += compptr->v_samp_factor) { | ||
350 | + dst_buffer = (*srcinfo->mem->access_virt_barray) | ||
351 | + ((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y, | ||
352 | + (JDIMENSION) compptr->v_samp_factor, TRUE); | ||
353 | + src_buffer = (*srcinfo->mem->access_virt_barray) | ||
354 | + ((j_common_ptr) srcinfo, src_coef_arrays[ci], | ||
355 | + dst_blk_y + y_crop_blocks, | ||
356 | + (JDIMENSION) compptr->v_samp_factor, FALSE); | ||
357 | + for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) { | ||
358 | + jcopy_block_row(src_buffer[offset_y] + x_crop_blocks, | ||
359 | + dst_buffer[offset_y], | ||
360 | + compptr->width_in_blocks); | ||
361 | + } | ||
362 | + } | ||
363 | + } | ||
364 | +} | ||
365 | + | ||
366 | + | ||
367 | +LOCAL(void) | ||
368 | +do_flip_h_no_crop (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, | ||
369 | + JDIMENSION x_crop_offset, | ||
370 | + jvirt_barray_ptr *src_coef_arrays) | ||
371 | +/* Horizontal flip; done in-place, so no separate dest array is required. | ||
372 | + * NB: this only works when y_crop_offset is zero. | ||
373 | + */ | ||
374 | +{ | ||
375 | + JDIMENSION MCU_cols, comp_width, blk_x, blk_y, x_crop_blocks; | ||
376 | int ci, k, offset_y; | ||
377 | JBLOCKARRAY buffer; | ||
378 | JCOEFPTR ptr1, ptr2; | ||
379 | @@ -79,17 +133,19 @@ | ||
380 | * mirroring by changing the signs of odd-numbered columns. | ||
381 | * Partial iMCUs at the right edge are left untouched. | ||
382 | */ | ||
383 | - MCU_cols = dstinfo->image_width / (dstinfo->max_h_samp_factor * DCTSIZE); | ||
384 | + MCU_cols = srcinfo->image_width / (dstinfo->max_h_samp_factor * DCTSIZE); | ||
385 | |||
386 | for (ci = 0; ci < dstinfo->num_components; ci++) { | ||
387 | compptr = dstinfo->comp_info + ci; | ||
388 | comp_width = MCU_cols * compptr->h_samp_factor; | ||
389 | + x_crop_blocks = x_crop_offset * compptr->h_samp_factor; | ||
390 | for (blk_y = 0; blk_y < compptr->height_in_blocks; | ||
391 | blk_y += compptr->v_samp_factor) { | ||
392 | buffer = (*srcinfo->mem->access_virt_barray) | ||
393 | ((j_common_ptr) srcinfo, src_coef_arrays[ci], blk_y, | ||
394 | (JDIMENSION) compptr->v_samp_factor, TRUE); | ||
395 | for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) { | ||
396 | + /* Do the mirroring */ | ||
397 | for (blk_x = 0; blk_x * 2 < comp_width; blk_x++) { | ||
398 | ptr1 = buffer[offset_y][blk_x]; | ||
399 | ptr2 = buffer[offset_y][comp_width - blk_x - 1]; | ||
400 | @@ -105,6 +161,79 @@ | ||
401 | *ptr2++ = -temp1; | ||
402 | } | ||
403 | } | ||
404 | + if (x_crop_blocks > 0) { | ||
405 | + /* Now left-justify the portion of the data to be kept. | ||
406 | + * We can't use a single jcopy_block_row() call because that routine | ||
407 | + * depends on memcpy(), whose behavior is unspecified for overlapping | ||
408 | + * source and destination areas. Sigh. | ||
409 | + */ | ||
410 | + for (blk_x = 0; blk_x < compptr->width_in_blocks; blk_x++) { | ||
411 | + jcopy_block_row(buffer[offset_y] + blk_x + x_crop_blocks, | ||
412 | + buffer[offset_y] + blk_x, | ||
413 | + (JDIMENSION) 1); | ||
414 | + } | ||
415 | + } | ||
416 | + } | ||
417 | + } | ||
418 | + } | ||
419 | +} | ||
420 | + | ||
421 | + | ||
422 | +LOCAL(void) | ||
423 | +do_flip_h (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, | ||
424 | + JDIMENSION x_crop_offset, JDIMENSION y_crop_offset, | ||
425 | + jvirt_barray_ptr *src_coef_arrays, | ||
426 | + jvirt_barray_ptr *dst_coef_arrays) | ||
427 | +/* Horizontal flip in general cropping case */ | ||
428 | +{ | ||
429 | + JDIMENSION MCU_cols, comp_width, dst_blk_x, dst_blk_y; | ||
430 | + JDIMENSION x_crop_blocks, y_crop_blocks; | ||
431 | + int ci, k, offset_y; | ||
432 | + JBLOCKARRAY src_buffer, dst_buffer; | ||
433 | + JBLOCKROW src_row_ptr, dst_row_ptr; | ||
434 | + JCOEFPTR src_ptr, dst_ptr; | ||
435 | + jpeg_component_info *compptr; | ||
436 | + | ||
437 | + /* Here we must output into a separate array because we can't touch | ||
438 | + * different rows of a single virtual array simultaneously. Otherwise, | ||
439 | + * this is essentially the same as the routine above. | ||
440 | + */ | ||
441 | + MCU_cols = srcinfo->image_width / (dstinfo->max_h_samp_factor * DCTSIZE); | ||
442 | + | ||
443 | + for (ci = 0; ci < dstinfo->num_components; ci++) { | ||
444 | + compptr = dstinfo->comp_info + ci; | ||
445 | + comp_width = MCU_cols * compptr->h_samp_factor; | ||
446 | + x_crop_blocks = x_crop_offset * compptr->h_samp_factor; | ||
447 | + y_crop_blocks = y_crop_offset * compptr->v_samp_factor; | ||
448 | + for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks; | ||
449 | + dst_blk_y += compptr->v_samp_factor) { | ||
450 | + dst_buffer = (*srcinfo->mem->access_virt_barray) | ||
451 | + ((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y, | ||
452 | + (JDIMENSION) compptr->v_samp_factor, TRUE); | ||
453 | + src_buffer = (*srcinfo->mem->access_virt_barray) | ||
454 | + ((j_common_ptr) srcinfo, src_coef_arrays[ci], | ||
455 | + dst_blk_y + y_crop_blocks, | ||
456 | + (JDIMENSION) compptr->v_samp_factor, FALSE); | ||
457 | + for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) { | ||
458 | + dst_row_ptr = dst_buffer[offset_y]; | ||
459 | + src_row_ptr = src_buffer[offset_y]; | ||
460 | + for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks; dst_blk_x++) { | ||
461 | + if (x_crop_blocks + dst_blk_x < comp_width) { | ||
462 | + /* Do the mirrorable blocks */ | ||
463 | + dst_ptr = dst_row_ptr[dst_blk_x]; | ||
464 | + src_ptr = src_row_ptr[comp_width - x_crop_blocks - dst_blk_x - 1]; | ||
465 | + /* this unrolled loop doesn't need to know which row it's on... */ | ||
466 | + for (k = 0; k < DCTSIZE2; k += 2) { | ||
467 | + *dst_ptr++ = *src_ptr++; /* copy even column */ | ||
468 | + *dst_ptr++ = - *src_ptr++; /* copy odd column with sign change */ | ||
469 | + } | ||
470 | + } else { | ||
471 | + /* Copy last partial block(s) verbatim */ | ||
472 | + jcopy_block_row(src_row_ptr + dst_blk_x + x_crop_blocks, | ||
473 | + dst_row_ptr + dst_blk_x, | ||
474 | + (JDIMENSION) 1); | ||
475 | + } | ||
476 | + } | ||
477 | } | ||
478 | } | ||
479 | } | ||
480 | @@ -113,11 +242,13 @@ | ||
481 | |||
482 | LOCAL(void) | ||
483 | do_flip_v (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, | ||
484 | + JDIMENSION x_crop_offset, JDIMENSION y_crop_offset, | ||
485 | jvirt_barray_ptr *src_coef_arrays, | ||
486 | jvirt_barray_ptr *dst_coef_arrays) | ||
487 | /* Vertical flip */ | ||
488 | { | ||
489 | JDIMENSION MCU_rows, comp_height, dst_blk_x, dst_blk_y; | ||
490 | + JDIMENSION x_crop_blocks, y_crop_blocks; | ||
491 | int ci, i, j, offset_y; | ||
492 | JBLOCKARRAY src_buffer, dst_buffer; | ||
493 | JBLOCKROW src_row_ptr, dst_row_ptr; | ||
494 | @@ -131,33 +262,38 @@ | ||
495 | * of odd-numbered rows. | ||
496 | * Partial iMCUs at the bottom edge are copied verbatim. | ||
497 | */ | ||
498 | - MCU_rows = dstinfo->image_height / (dstinfo->max_v_samp_factor * DCTSIZE); | ||
499 | + MCU_rows = srcinfo->image_height / (dstinfo->max_v_samp_factor * DCTSIZE); | ||
500 | |||
501 | for (ci = 0; ci < dstinfo->num_components; ci++) { | ||
502 | compptr = dstinfo->comp_info + ci; | ||
503 | comp_height = MCU_rows * compptr->v_samp_factor; | ||
504 | + x_crop_blocks = x_crop_offset * compptr->h_samp_factor; | ||
505 | + y_crop_blocks = y_crop_offset * compptr->v_samp_factor; | ||
506 | for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks; | ||
507 | dst_blk_y += compptr->v_samp_factor) { | ||
508 | dst_buffer = (*srcinfo->mem->access_virt_barray) | ||
509 | ((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y, | ||
510 | (JDIMENSION) compptr->v_samp_factor, TRUE); | ||
511 | - if (dst_blk_y < comp_height) { | ||
512 | + if (y_crop_blocks + dst_blk_y < comp_height) { | ||
513 | /* Row is within the mirrorable area. */ | ||
514 | src_buffer = (*srcinfo->mem->access_virt_barray) | ||
515 | ((j_common_ptr) srcinfo, src_coef_arrays[ci], | ||
516 | - comp_height - dst_blk_y - (JDIMENSION) compptr->v_samp_factor, | ||
517 | + comp_height - y_crop_blocks - dst_blk_y - | ||
518 | + (JDIMENSION) compptr->v_samp_factor, | ||
519 | (JDIMENSION) compptr->v_samp_factor, FALSE); | ||
520 | } else { | ||
521 | /* Bottom-edge blocks will be copied verbatim. */ | ||
522 | src_buffer = (*srcinfo->mem->access_virt_barray) | ||
523 | - ((j_common_ptr) srcinfo, src_coef_arrays[ci], dst_blk_y, | ||
524 | + ((j_common_ptr) srcinfo, src_coef_arrays[ci], | ||
525 | + dst_blk_y + y_crop_blocks, | ||
526 | (JDIMENSION) compptr->v_samp_factor, FALSE); | ||
527 | } | ||
528 | for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) { | ||
529 | - if (dst_blk_y < comp_height) { | ||
530 | + if (y_crop_blocks + dst_blk_y < comp_height) { | ||
531 | /* Row is within the mirrorable area. */ | ||
532 | dst_row_ptr = dst_buffer[offset_y]; | ||
533 | src_row_ptr = src_buffer[compptr->v_samp_factor - offset_y - 1]; | ||
534 | + src_row_ptr += x_crop_blocks; | ||
535 | for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks; | ||
536 | dst_blk_x++) { | ||
537 | dst_ptr = dst_row_ptr[dst_blk_x]; | ||
538 | @@ -173,7 +309,8 @@ | ||
539 | } | ||
540 | } else { | ||
541 | /* Just copy row verbatim. */ | ||
542 | - jcopy_block_row(src_buffer[offset_y], dst_buffer[offset_y], | ||
543 | + jcopy_block_row(src_buffer[offset_y] + x_crop_blocks, | ||
544 | + dst_buffer[offset_y], | ||
545 | compptr->width_in_blocks); | ||
546 | } | ||
547 | } | ||
548 | @@ -184,11 +321,12 @@ | ||
549 | |||
550 | LOCAL(void) | ||
551 | do_transpose (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, | ||
552 | + JDIMENSION x_crop_offset, JDIMENSION y_crop_offset, | ||
553 | jvirt_barray_ptr *src_coef_arrays, | ||
554 | jvirt_barray_ptr *dst_coef_arrays) | ||
555 | /* Transpose source into destination */ | ||
556 | { | ||
557 | - JDIMENSION dst_blk_x, dst_blk_y; | ||
558 | + JDIMENSION dst_blk_x, dst_blk_y, x_crop_blocks, y_crop_blocks; | ||
559 | int ci, i, j, offset_x, offset_y; | ||
560 | JBLOCKARRAY src_buffer, dst_buffer; | ||
561 | JCOEFPTR src_ptr, dst_ptr; | ||
562 | @@ -201,6 +339,8 @@ | ||
563 | */ | ||
564 | for (ci = 0; ci < dstinfo->num_components; ci++) { | ||
565 | compptr = dstinfo->comp_info + ci; | ||
566 | + x_crop_blocks = x_crop_offset * compptr->h_samp_factor; | ||
567 | + y_crop_blocks = y_crop_offset * compptr->v_samp_factor; | ||
568 | for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks; | ||
569 | dst_blk_y += compptr->v_samp_factor) { | ||
570 | dst_buffer = (*srcinfo->mem->access_virt_barray) | ||
571 | @@ -210,11 +350,12 @@ | ||
572 | for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks; | ||
573 | dst_blk_x += compptr->h_samp_factor) { | ||
574 | src_buffer = (*srcinfo->mem->access_virt_barray) | ||
575 | - ((j_common_ptr) srcinfo, src_coef_arrays[ci], dst_blk_x, | ||
576 | + ((j_common_ptr) srcinfo, src_coef_arrays[ci], | ||
577 | + dst_blk_x + x_crop_blocks, | ||
578 | (JDIMENSION) compptr->h_samp_factor, FALSE); | ||
579 | for (offset_x = 0; offset_x < compptr->h_samp_factor; offset_x++) { | ||
580 | - src_ptr = src_buffer[offset_x][dst_blk_y + offset_y]; | ||
581 | dst_ptr = dst_buffer[offset_y][dst_blk_x + offset_x]; | ||
582 | + src_ptr = src_buffer[offset_x][dst_blk_y + offset_y + y_crop_blocks]; | ||
583 | for (i = 0; i < DCTSIZE; i++) | ||
584 | for (j = 0; j < DCTSIZE; j++) | ||
585 | dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j]; | ||
586 | @@ -228,6 +369,7 @@ | ||
587 | |||
588 | LOCAL(void) | ||
589 | do_rot_90 (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, | ||
590 | + JDIMENSION x_crop_offset, JDIMENSION y_crop_offset, | ||
591 | jvirt_barray_ptr *src_coef_arrays, | ||
592 | jvirt_barray_ptr *dst_coef_arrays) | ||
593 | /* 90 degree rotation is equivalent to | ||
594 | @@ -237,6 +379,7 @@ | ||
595 | */ | ||
596 | { | ||
597 | JDIMENSION MCU_cols, comp_width, dst_blk_x, dst_blk_y; | ||
598 | + JDIMENSION x_crop_blocks, y_crop_blocks; | ||
599 | int ci, i, j, offset_x, offset_y; | ||
600 | JBLOCKARRAY src_buffer, dst_buffer; | ||
601 | JCOEFPTR src_ptr, dst_ptr; | ||
602 | @@ -246,11 +389,13 @@ | ||
603 | * at the (output) right edge properly. They just get transposed and | ||
604 | * not mirrored. | ||
605 | */ | ||
606 | - MCU_cols = dstinfo->image_width / (dstinfo->max_h_samp_factor * DCTSIZE); | ||
607 | + MCU_cols = srcinfo->image_height / (dstinfo->max_h_samp_factor * DCTSIZE); | ||
608 | |||
609 | for (ci = 0; ci < dstinfo->num_components; ci++) { | ||
610 | compptr = dstinfo->comp_info + ci; | ||
611 | comp_width = MCU_cols * compptr->h_samp_factor; | ||
612 | + x_crop_blocks = x_crop_offset * compptr->h_samp_factor; | ||
613 | + y_crop_blocks = y_crop_offset * compptr->v_samp_factor; | ||
614 | for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks; | ||
615 | dst_blk_y += compptr->v_samp_factor) { | ||
616 | dst_buffer = (*srcinfo->mem->access_virt_barray) | ||
617 | @@ -259,15 +404,26 @@ | ||
618 | for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) { | ||
619 | for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks; | ||
620 | dst_blk_x += compptr->h_samp_factor) { | ||
621 | - src_buffer = (*srcinfo->mem->access_virt_barray) | ||
622 | - ((j_common_ptr) srcinfo, src_coef_arrays[ci], dst_blk_x, | ||
623 | - (JDIMENSION) compptr->h_samp_factor, FALSE); | ||
624 | + if (x_crop_blocks + dst_blk_x < comp_width) { | ||
625 | + /* Block is within the mirrorable area. */ | ||
626 | + src_buffer = (*srcinfo->mem->access_virt_barray) | ||
627 | + ((j_common_ptr) srcinfo, src_coef_arrays[ci], | ||
628 | + comp_width - x_crop_blocks - dst_blk_x - | ||
629 | + (JDIMENSION) compptr->h_samp_factor, | ||
630 | + (JDIMENSION) compptr->h_samp_factor, FALSE); | ||
631 | + } else { | ||
632 | + /* Edge blocks are transposed but not mirrored. */ | ||
633 | + src_buffer = (*srcinfo->mem->access_virt_barray) | ||
634 | + ((j_common_ptr) srcinfo, src_coef_arrays[ci], | ||
635 | + dst_blk_x + x_crop_blocks, | ||
636 | + (JDIMENSION) compptr->h_samp_factor, FALSE); | ||
637 | + } | ||
638 | for (offset_x = 0; offset_x < compptr->h_samp_factor; offset_x++) { | ||
639 | - src_ptr = src_buffer[offset_x][dst_blk_y + offset_y]; | ||
640 | - if (dst_blk_x < comp_width) { | ||
641 | + dst_ptr = dst_buffer[offset_y][dst_blk_x + offset_x]; | ||
642 | + if (x_crop_blocks + dst_blk_x < comp_width) { | ||
643 | /* Block is within the mirrorable area. */ | ||
644 | - dst_ptr = dst_buffer[offset_y] | ||
645 | - [comp_width - dst_blk_x - offset_x - 1]; | ||
646 | + src_ptr = src_buffer[compptr->h_samp_factor - offset_x - 1] | ||
647 | + [dst_blk_y + offset_y + y_crop_blocks]; | ||
648 | for (i = 0; i < DCTSIZE; i++) { | ||
649 | for (j = 0; j < DCTSIZE; j++) | ||
650 | dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j]; | ||
651 | @@ -277,7 +433,8 @@ | ||
652 | } | ||
653 | } else { | ||
654 | /* Edge blocks are transposed but not mirrored. */ | ||
655 | - dst_ptr = dst_buffer[offset_y][dst_blk_x + offset_x]; | ||
656 | + src_ptr = src_buffer[offset_x] | ||
657 | + [dst_blk_y + offset_y + y_crop_blocks]; | ||
658 | for (i = 0; i < DCTSIZE; i++) | ||
659 | for (j = 0; j < DCTSIZE; j++) | ||
660 | dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j]; | ||
661 | @@ -292,6 +449,7 @@ | ||
662 | |||
663 | LOCAL(void) | ||
664 | do_rot_270 (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, | ||
665 | + JDIMENSION x_crop_offset, JDIMENSION y_crop_offset, | ||
666 | jvirt_barray_ptr *src_coef_arrays, | ||
667 | jvirt_barray_ptr *dst_coef_arrays) | ||
668 | /* 270 degree rotation is equivalent to | ||
669 | @@ -301,6 +459,7 @@ | ||
670 | */ | ||
671 | { | ||
672 | JDIMENSION MCU_rows, comp_height, dst_blk_x, dst_blk_y; | ||
673 | + JDIMENSION x_crop_blocks, y_crop_blocks; | ||
674 | int ci, i, j, offset_x, offset_y; | ||
675 | JBLOCKARRAY src_buffer, dst_buffer; | ||
676 | JCOEFPTR src_ptr, dst_ptr; | ||
677 | @@ -310,11 +469,13 @@ | ||
678 | * at the (output) bottom edge properly. They just get transposed and | ||
679 | * not mirrored. | ||
680 | */ | ||
681 | - MCU_rows = dstinfo->image_height / (dstinfo->max_v_samp_factor * DCTSIZE); | ||
682 | + MCU_rows = srcinfo->image_width / (dstinfo->max_v_samp_factor * DCTSIZE); | ||
683 | |||
684 | for (ci = 0; ci < dstinfo->num_components; ci++) { | ||
685 | compptr = dstinfo->comp_info + ci; | ||
686 | comp_height = MCU_rows * compptr->v_samp_factor; | ||
687 | + x_crop_blocks = x_crop_offset * compptr->h_samp_factor; | ||
688 | + y_crop_blocks = y_crop_offset * compptr->v_samp_factor; | ||
689 | for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks; | ||
690 | dst_blk_y += compptr->v_samp_factor) { | ||
691 | dst_buffer = (*srcinfo->mem->access_virt_barray) | ||
692 | @@ -324,14 +485,15 @@ | ||
693 | for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks; | ||
694 | dst_blk_x += compptr->h_samp_factor) { | ||
695 | src_buffer = (*srcinfo->mem->access_virt_barray) | ||
696 | - ((j_common_ptr) srcinfo, src_coef_arrays[ci], dst_blk_x, | ||
697 | + ((j_common_ptr) srcinfo, src_coef_arrays[ci], | ||
698 | + dst_blk_x + x_crop_blocks, | ||
699 | (JDIMENSION) compptr->h_samp_factor, FALSE); | ||
700 | for (offset_x = 0; offset_x < compptr->h_samp_factor; offset_x++) { | ||
701 | dst_ptr = dst_buffer[offset_y][dst_blk_x + offset_x]; | ||
702 | - if (dst_blk_y < comp_height) { | ||
703 | + if (y_crop_blocks + dst_blk_y < comp_height) { | ||
704 | /* Block is within the mirrorable area. */ | ||
705 | src_ptr = src_buffer[offset_x] | ||
706 | - [comp_height - dst_blk_y - offset_y - 1]; | ||
707 | + [comp_height - y_crop_blocks - dst_blk_y - offset_y - 1]; | ||
708 | for (i = 0; i < DCTSIZE; i++) { | ||
709 | for (j = 0; j < DCTSIZE; j++) { | ||
710 | dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j]; | ||
711 | @@ -341,7 +503,8 @@ | ||
712 | } | ||
713 | } else { | ||
714 | /* Edge blocks are transposed but not mirrored. */ | ||
715 | - src_ptr = src_buffer[offset_x][dst_blk_y + offset_y]; | ||
716 | + src_ptr = src_buffer[offset_x] | ||
717 | + [dst_blk_y + offset_y + y_crop_blocks]; | ||
718 | for (i = 0; i < DCTSIZE; i++) | ||
719 | for (j = 0; j < DCTSIZE; j++) | ||
720 | dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j]; | ||
721 | @@ -356,6 +519,7 @@ | ||
722 | |||
723 | LOCAL(void) | ||
724 | do_rot_180 (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, | ||
725 | + JDIMENSION x_crop_offset, JDIMENSION y_crop_offset, | ||
726 | jvirt_barray_ptr *src_coef_arrays, | ||
727 | jvirt_barray_ptr *dst_coef_arrays) | ||
728 | /* 180 degree rotation is equivalent to | ||
729 | @@ -365,89 +529,93 @@ | ||
730 | */ | ||
731 | { | ||
732 | JDIMENSION MCU_cols, MCU_rows, comp_width, comp_height, dst_blk_x, dst_blk_y; | ||
733 | + JDIMENSION x_crop_blocks, y_crop_blocks; | ||
734 | int ci, i, j, offset_y; | ||
735 | JBLOCKARRAY src_buffer, dst_buffer; | ||
736 | JBLOCKROW src_row_ptr, dst_row_ptr; | ||
737 | JCOEFPTR src_ptr, dst_ptr; | ||
738 | jpeg_component_info *compptr; | ||
739 | |||
740 | - MCU_cols = dstinfo->image_width / (dstinfo->max_h_samp_factor * DCTSIZE); | ||
741 | - MCU_rows = dstinfo->image_height / (dstinfo->max_v_samp_factor * DCTSIZE); | ||
742 | + MCU_cols = srcinfo->image_width / (dstinfo->max_h_samp_factor * DCTSIZE); | ||
743 | + MCU_rows = srcinfo->image_height / (dstinfo->max_v_samp_factor * DCTSIZE); | ||
744 | |||
745 | for (ci = 0; ci < dstinfo->num_components; ci++) { | ||
746 | compptr = dstinfo->comp_info + ci; | ||
747 | comp_width = MCU_cols * compptr->h_samp_factor; | ||
748 | comp_height = MCU_rows * compptr->v_samp_factor; | ||
749 | + x_crop_blocks = x_crop_offset * compptr->h_samp_factor; | ||
750 | + y_crop_blocks = y_crop_offset * compptr->v_samp_factor; | ||
751 | for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks; | ||
752 | dst_blk_y += compptr->v_samp_factor) { | ||
753 | dst_buffer = (*srcinfo->mem->access_virt_barray) | ||
754 | ((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y, | ||
755 | (JDIMENSION) compptr->v_samp_factor, TRUE); | ||
756 | - if (dst_blk_y < comp_height) { | ||
757 | + if (y_crop_blocks + dst_blk_y < comp_height) { | ||
758 | /* Row is within the vertically mirrorable area. */ | ||
759 | src_buffer = (*srcinfo->mem->access_virt_barray) | ||
760 | ((j_common_ptr) srcinfo, src_coef_arrays[ci], | ||
761 | - comp_height - dst_blk_y - (JDIMENSION) compptr->v_samp_factor, | ||
762 | + comp_height - y_crop_blocks - dst_blk_y - | ||
763 | + (JDIMENSION) compptr->v_samp_factor, | ||
764 | (JDIMENSION) compptr->v_samp_factor, FALSE); | ||
765 | } else { | ||
766 | /* Bottom-edge rows are only mirrored horizontally. */ | ||
767 | src_buffer = (*srcinfo->mem->access_virt_barray) | ||
768 | - ((j_common_ptr) srcinfo, src_coef_arrays[ci], dst_blk_y, | ||
769 | + ((j_common_ptr) srcinfo, src_coef_arrays[ci], | ||
770 | + dst_blk_y + y_crop_blocks, | ||
771 | (JDIMENSION) compptr->v_samp_factor, FALSE); | ||
772 | } | ||
773 | for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) { | ||
774 | - if (dst_blk_y < comp_height) { | ||
775 | + dst_row_ptr = dst_buffer[offset_y]; | ||
776 | + if (y_crop_blocks + dst_blk_y < comp_height) { | ||
777 | /* Row is within the mirrorable area. */ | ||
778 | - dst_row_ptr = dst_buffer[offset_y]; | ||
779 | src_row_ptr = src_buffer[compptr->v_samp_factor - offset_y - 1]; | ||
780 | - /* Process the blocks that can be mirrored both ways. */ | ||
781 | - for (dst_blk_x = 0; dst_blk_x < comp_width; dst_blk_x++) { | ||
782 | + for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks; dst_blk_x++) { | ||
783 | dst_ptr = dst_row_ptr[dst_blk_x]; | ||
784 | - src_ptr = src_row_ptr[comp_width - dst_blk_x - 1]; | ||
785 | - for (i = 0; i < DCTSIZE; i += 2) { | ||
786 | - /* For even row, negate every odd column. */ | ||
787 | - for (j = 0; j < DCTSIZE; j += 2) { | ||
788 | - *dst_ptr++ = *src_ptr++; | ||
789 | - *dst_ptr++ = - *src_ptr++; | ||
790 | + if (x_crop_blocks + dst_blk_x < comp_width) { | ||
791 | + /* Process the blocks that can be mirrored both ways. */ | ||
792 | + src_ptr = src_row_ptr[comp_width - x_crop_blocks - dst_blk_x - 1]; | ||
793 | + for (i = 0; i < DCTSIZE; i += 2) { | ||
794 | + /* For even row, negate every odd column. */ | ||
795 | + for (j = 0; j < DCTSIZE; j += 2) { | ||
796 | + *dst_ptr++ = *src_ptr++; | ||
797 | + *dst_ptr++ = - *src_ptr++; | ||
798 | + } | ||
799 | + /* For odd row, negate every even column. */ | ||
800 | + for (j = 0; j < DCTSIZE; j += 2) { | ||
801 | + *dst_ptr++ = - *src_ptr++; | ||
802 | + *dst_ptr++ = *src_ptr++; | ||
803 | + } | ||
804 | } | ||
805 | - /* For odd row, negate every even column. */ | ||
806 | - for (j = 0; j < DCTSIZE; j += 2) { | ||
807 | - *dst_ptr++ = - *src_ptr++; | ||
808 | - *dst_ptr++ = *src_ptr++; | ||
809 | + } else { | ||
810 | + /* Any remaining right-edge blocks are only mirrored vertically. */ | ||
811 | + src_ptr = src_row_ptr[x_crop_blocks + dst_blk_x]; | ||
812 | + for (i = 0; i < DCTSIZE; i += 2) { | ||
813 | + for (j = 0; j < DCTSIZE; j++) | ||
814 | + *dst_ptr++ = *src_ptr++; | ||
815 | + for (j = 0; j < DCTSIZE; j++) | ||
816 | + *dst_ptr++ = - *src_ptr++; | ||
817 | } | ||
818 | } | ||
819 | } | ||
820 | - /* Any remaining right-edge blocks are only mirrored vertically. */ | ||
821 | - for (; dst_blk_x < compptr->width_in_blocks; dst_blk_x++) { | ||
822 | - dst_ptr = dst_row_ptr[dst_blk_x]; | ||
823 | - src_ptr = src_row_ptr[dst_blk_x]; | ||
824 | - for (i = 0; i < DCTSIZE; i += 2) { | ||
825 | - for (j = 0; j < DCTSIZE; j++) | ||
826 | - *dst_ptr++ = *src_ptr++; | ||
827 | - for (j = 0; j < DCTSIZE; j++) | ||
828 | - *dst_ptr++ = - *src_ptr++; | ||
829 | - } | ||
830 | - } | ||
831 | } else { | ||
832 | /* Remaining rows are just mirrored horizontally. */ | ||
833 | - dst_row_ptr = dst_buffer[offset_y]; | ||
834 | src_row_ptr = src_buffer[offset_y]; | ||
835 | - /* Process the blocks that can be mirrored. */ | ||
836 | - for (dst_blk_x = 0; dst_blk_x < comp_width; dst_blk_x++) { | ||
837 | - dst_ptr = dst_row_ptr[dst_blk_x]; | ||
838 | - src_ptr = src_row_ptr[comp_width - dst_blk_x - 1]; | ||
839 | - for (i = 0; i < DCTSIZE2; i += 2) { | ||
840 | - *dst_ptr++ = *src_ptr++; | ||
841 | - *dst_ptr++ = - *src_ptr++; | ||
842 | + for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks; dst_blk_x++) { | ||
843 | + if (x_crop_blocks + dst_blk_x < comp_width) { | ||
844 | + /* Process the blocks that can be mirrored. */ | ||
845 | + dst_ptr = dst_row_ptr[dst_blk_x]; | ||
846 | + src_ptr = src_row_ptr[comp_width - x_crop_blocks - dst_blk_x - 1]; | ||
847 | + for (i = 0; i < DCTSIZE2; i += 2) { | ||
848 | + *dst_ptr++ = *src_ptr++; | ||
849 | + *dst_ptr++ = - *src_ptr++; | ||
850 | + } | ||
851 | + } else { | ||
852 | + /* Any remaining right-edge blocks are only copied. */ | ||
853 | + jcopy_block_row(src_row_ptr + dst_blk_x + x_crop_blocks, | ||
854 | + dst_row_ptr + dst_blk_x, | ||
855 | + (JDIMENSION) 1); | ||
856 | } | ||
857 | } | ||
858 | - /* Any remaining right-edge blocks are only copied. */ | ||
859 | - for (; dst_blk_x < compptr->width_in_blocks; dst_blk_x++) { | ||
860 | - dst_ptr = dst_row_ptr[dst_blk_x]; | ||
861 | - src_ptr = src_row_ptr[dst_blk_x]; | ||
862 | - for (i = 0; i < DCTSIZE2; i++) | ||
863 | - *dst_ptr++ = *src_ptr++; | ||
864 | - } | ||
865 | } | ||
866 | } | ||
867 | } | ||
868 | @@ -457,6 +625,7 @@ | ||
869 | |||
870 | LOCAL(void) | ||
871 | do_transverse (j_decompress_ptr srcinfo, j_compress_ptr dstinfo, | ||
872 | + JDIMENSION x_crop_offset, JDIMENSION y_crop_offset, | ||
873 | jvirt_barray_ptr *src_coef_arrays, | ||
874 | jvirt_barray_ptr *dst_coef_arrays) | ||
875 | /* Transverse transpose is equivalent to | ||
876 | @@ -470,18 +639,21 @@ | ||
877 | */ | ||
878 | { | ||
879 | JDIMENSION MCU_cols, MCU_rows, comp_width, comp_height, dst_blk_x, dst_blk_y; | ||
880 | + JDIMENSION x_crop_blocks, y_crop_blocks; | ||
881 | int ci, i, j, offset_x, offset_y; | ||
882 | JBLOCKARRAY src_buffer, dst_buffer; | ||
883 | JCOEFPTR src_ptr, dst_ptr; | ||
884 | jpeg_component_info *compptr; | ||
885 | |||
886 | - MCU_cols = dstinfo->image_width / (dstinfo->max_h_samp_factor * DCTSIZE); | ||
887 | - MCU_rows = dstinfo->image_height / (dstinfo->max_v_samp_factor * DCTSIZE); | ||
888 | + MCU_cols = srcinfo->image_height / (dstinfo->max_h_samp_factor * DCTSIZE); | ||
889 | + MCU_rows = srcinfo->image_width / (dstinfo->max_v_samp_factor * DCTSIZE); | ||
890 | |||
891 | for (ci = 0; ci < dstinfo->num_components; ci++) { | ||
892 | compptr = dstinfo->comp_info + ci; | ||
893 | comp_width = MCU_cols * compptr->h_samp_factor; | ||
894 | comp_height = MCU_rows * compptr->v_samp_factor; | ||
895 | + x_crop_blocks = x_crop_offset * compptr->h_samp_factor; | ||
896 | + y_crop_blocks = y_crop_offset * compptr->v_samp_factor; | ||
897 | for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks; | ||
898 | dst_blk_y += compptr->v_samp_factor) { | ||
899 | dst_buffer = (*srcinfo->mem->access_virt_barray) | ||
900 | @@ -490,17 +662,26 @@ | ||
901 | for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) { | ||
902 | for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks; | ||
903 | dst_blk_x += compptr->h_samp_factor) { | ||
904 | - src_buffer = (*srcinfo->mem->access_virt_barray) | ||
905 | - ((j_common_ptr) srcinfo, src_coef_arrays[ci], dst_blk_x, | ||
906 | - (JDIMENSION) compptr->h_samp_factor, FALSE); | ||
907 | + if (x_crop_blocks + dst_blk_x < comp_width) { | ||
908 | + /* Block is within the mirrorable area. */ | ||
909 | + src_buffer = (*srcinfo->mem->access_virt_barray) | ||
910 | + ((j_common_ptr) srcinfo, src_coef_arrays[ci], | ||
911 | + comp_width - x_crop_blocks - dst_blk_x - | ||
912 | + (JDIMENSION) compptr->h_samp_factor, | ||
913 | + (JDIMENSION) compptr->h_samp_factor, FALSE); | ||
914 | + } else { | ||
915 | + src_buffer = (*srcinfo->mem->access_virt_barray) | ||
916 | + ((j_common_ptr) srcinfo, src_coef_arrays[ci], | ||
917 | + dst_blk_x + x_crop_blocks, | ||
918 | + (JDIMENSION) compptr->h_samp_factor, FALSE); | ||
919 | + } | ||
920 | for (offset_x = 0; offset_x < compptr->h_samp_factor; offset_x++) { | ||
921 | - if (dst_blk_y < comp_height) { | ||
922 | - src_ptr = src_buffer[offset_x] | ||
923 | - [comp_height - dst_blk_y - offset_y - 1]; | ||
924 | - if (dst_blk_x < comp_width) { | ||
925 | + dst_ptr = dst_buffer[offset_y][dst_blk_x + offset_x]; | ||
926 | + if (y_crop_blocks + dst_blk_y < comp_height) { | ||
927 | + if (x_crop_blocks + dst_blk_x < comp_width) { | ||
928 | /* Block is within the mirrorable area. */ | ||
929 | - dst_ptr = dst_buffer[offset_y] | ||
930 | - [comp_width - dst_blk_x - offset_x - 1]; | ||
931 | + src_ptr = src_buffer[compptr->h_samp_factor - offset_x - 1] | ||
932 | + [comp_height - y_crop_blocks - dst_blk_y - offset_y - 1]; | ||
933 | for (i = 0; i < DCTSIZE; i++) { | ||
934 | for (j = 0; j < DCTSIZE; j++) { | ||
935 | dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j]; | ||
936 | @@ -516,7 +697,8 @@ | ||
937 | } | ||
938 | } else { | ||
939 | /* Right-edge blocks are mirrored in y only */ | ||
940 | - dst_ptr = dst_buffer[offset_y][dst_blk_x + offset_x]; | ||
941 | + src_ptr = src_buffer[offset_x] | ||
942 | + [comp_height - y_crop_blocks - dst_blk_y - offset_y - 1]; | ||
943 | for (i = 0; i < DCTSIZE; i++) { | ||
944 | for (j = 0; j < DCTSIZE; j++) { | ||
945 | dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j]; | ||
946 | @@ -526,11 +708,10 @@ | ||
947 | } | ||
948 | } | ||
949 | } else { | ||
950 | - src_ptr = src_buffer[offset_x][dst_blk_y + offset_y]; | ||
951 | - if (dst_blk_x < comp_width) { | ||
952 | + if (x_crop_blocks + dst_blk_x < comp_width) { | ||
953 | /* Bottom-edge blocks are mirrored in x only */ | ||
954 | - dst_ptr = dst_buffer[offset_y] | ||
955 | - [comp_width - dst_blk_x - offset_x - 1]; | ||
956 | + src_ptr = src_buffer[compptr->h_samp_factor - offset_x - 1] | ||
957 | + [dst_blk_y + offset_y + y_crop_blocks]; | ||
958 | for (i = 0; i < DCTSIZE; i++) { | ||
959 | for (j = 0; j < DCTSIZE; j++) | ||
960 | dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j]; | ||
961 | @@ -540,7 +721,8 @@ | ||
962 | } | ||
963 | } else { | ||
964 | /* At lower right corner, just transpose, no mirroring */ | ||
965 | - dst_ptr = dst_buffer[offset_y][dst_blk_x + offset_x]; | ||
966 | + src_ptr = src_buffer[offset_x] | ||
967 | + [dst_blk_y + offset_y + y_crop_blocks]; | ||
968 | for (i = 0; i < DCTSIZE; i++) | ||
969 | for (j = 0; j < DCTSIZE; j++) | ||
970 | dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j]; | ||
971 | @@ -554,8 +736,116 @@ | ||
972 | } | ||
973 | |||
974 | |||
975 | +/* Parse an unsigned integer: subroutine for jtransform_parse_crop_spec. | ||
976 | + * Returns TRUE if valid integer found, FALSE if not. | ||
977 | + * *strptr is advanced over the digit string, and *result is set to its value. | ||
978 | + */ | ||
979 | + | ||
980 | +LOCAL(boolean) | ||
981 | +jt_read_integer (const char ** strptr, JDIMENSION * result) | ||
982 | +{ | ||
983 | + const char * ptr = *strptr; | ||
984 | + JDIMENSION val = 0; | ||
985 | + | ||
986 | + for (; isdigit(*ptr); ptr++) { | ||
987 | + val = val * 10 + (JDIMENSION) (*ptr - '0'); | ||
988 | + } | ||
989 | + *result = val; | ||
990 | + if (ptr == *strptr) | ||
991 | + return FALSE; /* oops, no digits */ | ||
992 | + *strptr = ptr; | ||
993 | + return TRUE; | ||
994 | +} | ||
995 | + | ||
996 | + | ||
997 | +/* Parse a crop specification (written in X11 geometry style). | ||
998 | + * The routine returns TRUE if the spec string is valid, FALSE if not. | ||
999 | + * | ||
1000 | + * The crop spec string should have the format | ||
1001 | + * <width>x<height>{+-}<xoffset>{+-}<yoffset> | ||
1002 | + * where width, height, xoffset, and yoffset are unsigned integers. | ||
1003 | + * Each of the elements can be omitted to indicate a default value. | ||
1004 | + * (A weakness of this style is that it is not possible to omit xoffset | ||
1005 | + * while specifying yoffset, since they look alike.) | ||
1006 | + * | ||
1007 | + * This code is loosely based on XParseGeometry from the X11 distribution. | ||
1008 | + */ | ||
1009 | + | ||
1010 | +GLOBAL(boolean) | ||
1011 | +jtransform_parse_crop_spec (jpeg_transform_info *info, const char *spec) | ||
1012 | +{ | ||
1013 | + info->crop = FALSE; | ||
1014 | + info->crop_width_set = JCROP_UNSET; | ||
1015 | + info->crop_height_set = JCROP_UNSET; | ||
1016 | + info->crop_xoffset_set = JCROP_UNSET; | ||
1017 | + info->crop_yoffset_set = JCROP_UNSET; | ||
1018 | + | ||
1019 | + if (isdigit(*spec)) { | ||
1020 | + /* fetch width */ | ||
1021 | + if (! jt_read_integer(&spec, &info->crop_width)) | ||
1022 | + return FALSE; | ||
1023 | + info->crop_width_set = JCROP_POS; | ||
1024 | + } | ||
1025 | + if (*spec == 'x' || *spec == 'X') { | ||
1026 | + /* fetch height */ | ||
1027 | + spec++; | ||
1028 | + if (! jt_read_integer(&spec, &info->crop_height)) | ||
1029 | + return FALSE; | ||
1030 | + info->crop_height_set = JCROP_POS; | ||
1031 | + } | ||
1032 | + if (*spec == '+' || *spec == '-') { | ||
1033 | + /* fetch xoffset */ | ||
1034 | + info->crop_xoffset_set = (*spec == '-') ? JCROP_NEG : JCROP_POS; | ||
1035 | + spec++; | ||
1036 | + if (! jt_read_integer(&spec, &info->crop_xoffset)) | ||
1037 | + return FALSE; | ||
1038 | + } | ||
1039 | + if (*spec == '+' || *spec == '-') { | ||
1040 | + /* fetch yoffset */ | ||
1041 | + info->crop_yoffset_set = (*spec == '-') ? JCROP_NEG : JCROP_POS; | ||
1042 | + spec++; | ||
1043 | + if (! jt_read_integer(&spec, &info->crop_yoffset)) | ||
1044 | + return FALSE; | ||
1045 | + } | ||
1046 | + /* We had better have gotten to the end of the string. */ | ||
1047 | + if (*spec != '\0') | ||
1048 | + return FALSE; | ||
1049 | + info->crop = TRUE; | ||
1050 | + return TRUE; | ||
1051 | +} | ||
1052 | + | ||
1053 | + | ||
1054 | +/* Trim off any partial iMCUs on the indicated destination edge */ | ||
1055 | + | ||
1056 | +LOCAL(void) | ||
1057 | +trim_right_edge (jpeg_transform_info *info, JDIMENSION full_width) | ||
1058 | +{ | ||
1059 | + JDIMENSION MCU_cols; | ||
1060 | + | ||
1061 | + MCU_cols = info->output_width / (info->max_h_samp_factor * DCTSIZE); | ||
1062 | + if (MCU_cols > 0 && info->x_crop_offset + MCU_cols == | ||
1063 | + full_width / (info->max_h_samp_factor * DCTSIZE)) | ||
1064 | + info->output_width = MCU_cols * (info->max_h_samp_factor * DCTSIZE); | ||
1065 | +} | ||
1066 | + | ||
1067 | +LOCAL(void) | ||
1068 | +trim_bottom_edge (jpeg_transform_info *info, JDIMENSION full_height) | ||
1069 | +{ | ||
1070 | + JDIMENSION MCU_rows; | ||
1071 | + | ||
1072 | + MCU_rows = info->output_height / (info->max_v_samp_factor * DCTSIZE); | ||
1073 | + if (MCU_rows > 0 && info->y_crop_offset + MCU_rows == | ||
1074 | + full_height / (info->max_v_samp_factor * DCTSIZE)) | ||
1075 | + info->output_height = MCU_rows * (info->max_v_samp_factor * DCTSIZE); | ||
1076 | +} | ||
1077 | + | ||
1078 | + | ||
1079 | /* Request any required workspace. | ||
1080 | * | ||
1081 | + * This routine figures out the size that the output image will be | ||
1082 | + * (which implies that all the transform parameters must be set before | ||
1083 | + * it is called). | ||
1084 | + * | ||
1085 | * We allocate the workspace virtual arrays from the source decompression | ||
1086 | * object, so that all the arrays (both the original data and the workspace) | ||
1087 | * will be taken into account while making memory management decisions. | ||
1088 | @@ -569,9 +859,13 @@ | ||
1089 | jpeg_transform_info *info) | ||
1090 | { | ||
1091 | jvirt_barray_ptr *coef_arrays = NULL; | ||
1092 | + boolean need_workspace, transpose_it; | ||
1093 | jpeg_component_info *compptr; | ||
1094 | - int ci; | ||
1095 | + JDIMENSION xoffset, yoffset, width_in_iMCUs, height_in_iMCUs; | ||
1096 | + JDIMENSION width_in_blocks, height_in_blocks; | ||
1097 | + int ci, h_samp_factor, v_samp_factor; | ||
1098 | |||
1099 | + /* Determine number of components in output image */ | ||
1100 | if (info->force_grayscale && | ||
1101 | srcinfo->jpeg_color_space == JCS_YCbCr && | ||
1102 | srcinfo->num_components == 3) { | ||
1103 | @@ -581,55 +875,181 @@ | ||
1104 | /* Process all the components */ | ||
1105 | info->num_components = srcinfo->num_components; | ||
1106 | } | ||
1107 | + /* If there is only one output component, force the iMCU size to be 1; | ||
1108 | + * else use the source iMCU size. (This allows us to do the right thing | ||
1109 | + * when reducing color to grayscale, and also provides a handy way of | ||
1110 | + * cleaning up "funny" grayscale images whose sampling factors are not 1x1.) | ||
1111 | + */ | ||
1112 | + | ||
1113 | + switch (info->transform) { | ||
1114 | + case JXFORM_TRANSPOSE: | ||
1115 | + case JXFORM_TRANSVERSE: | ||
1116 | + case JXFORM_ROT_90: | ||
1117 | + case JXFORM_ROT_270: | ||
1118 | + info->output_width = srcinfo->image_height; | ||
1119 | + info->output_height = srcinfo->image_width; | ||
1120 | + if (info->num_components == 1) { | ||
1121 | + info->max_h_samp_factor = 1; | ||
1122 | + info->max_v_samp_factor = 1; | ||
1123 | + } else { | ||
1124 | + info->max_h_samp_factor = srcinfo->max_v_samp_factor; | ||
1125 | + info->max_v_samp_factor = srcinfo->max_h_samp_factor; | ||
1126 | + } | ||
1127 | + break; | ||
1128 | + default: | ||
1129 | + info->output_width = srcinfo->image_width; | ||
1130 | + info->output_height = srcinfo->image_height; | ||
1131 | + if (info->num_components == 1) { | ||
1132 | + info->max_h_samp_factor = 1; | ||
1133 | + info->max_v_samp_factor = 1; | ||
1134 | + } else { | ||
1135 | + info->max_h_samp_factor = srcinfo->max_h_samp_factor; | ||
1136 | + info->max_v_samp_factor = srcinfo->max_v_samp_factor; | ||
1137 | + } | ||
1138 | + break; | ||
1139 | + } | ||
1140 | + | ||
1141 | + /* If cropping has been requested, compute the crop area's position and | ||
1142 | + * dimensions, ensuring that its upper left corner falls at an iMCU boundary. | ||
1143 | + */ | ||
1144 | + if (info->crop) { | ||
1145 | + /* Insert default values for unset crop parameters */ | ||
1146 | + if (info->crop_xoffset_set == JCROP_UNSET) | ||
1147 | + info->crop_xoffset = 0; /* default to +0 */ | ||
1148 | + if (info->crop_yoffset_set == JCROP_UNSET) | ||
1149 | + info->crop_yoffset = 0; /* default to +0 */ | ||
1150 | + if (info->crop_xoffset >= info->output_width || | ||
1151 | + info->crop_yoffset >= info->output_height) | ||
1152 | + ERREXIT(srcinfo, JERR_BAD_CROP_SPEC); | ||
1153 | + if (info->crop_width_set == JCROP_UNSET) | ||
1154 | + info->crop_width = info->output_width - info->crop_xoffset; | ||
1155 | + if (info->crop_height_set == JCROP_UNSET) | ||
1156 | + info->crop_height = info->output_height - info->crop_yoffset; | ||
1157 | + /* Ensure parameters are valid */ | ||
1158 | + if (info->crop_width <= 0 || info->crop_width > info->output_width || | ||
1159 | + info->crop_height <= 0 || info->crop_height > info->output_height || | ||
1160 | + info->crop_xoffset > info->output_width - info->crop_width || | ||
1161 | + info->crop_yoffset > info->output_height - info->crop_height) | ||
1162 | + ERREXIT(srcinfo, JERR_BAD_CROP_SPEC); | ||
1163 | + /* Convert negative crop offsets into regular offsets */ | ||
1164 | + if (info->crop_xoffset_set == JCROP_NEG) | ||
1165 | + xoffset = info->output_width - info->crop_width - info->crop_xoffset; | ||
1166 | + else | ||
1167 | + xoffset = info->crop_xoffset; | ||
1168 | + if (info->crop_yoffset_set == JCROP_NEG) | ||
1169 | + yoffset = info->output_height - info->crop_height - info->crop_yoffset; | ||
1170 | + else | ||
1171 | + yoffset = info->crop_yoffset; | ||
1172 | + /* Now adjust so that upper left corner falls at an iMCU boundary */ | ||
1173 | + info->output_width = | ||
1174 | + info->crop_width + (xoffset % (info->max_h_samp_factor * DCTSIZE)); | ||
1175 | + info->output_height = | ||
1176 | + info->crop_height + (yoffset % (info->max_v_samp_factor * DCTSIZE)); | ||
1177 | + /* Save x/y offsets measured in iMCUs */ | ||
1178 | + info->x_crop_offset = xoffset / (info->max_h_samp_factor * DCTSIZE); | ||
1179 | + info->y_crop_offset = yoffset / (info->max_v_samp_factor * DCTSIZE); | ||
1180 | + } else { | ||
1181 | + info->x_crop_offset = 0; | ||
1182 | + info->y_crop_offset = 0; | ||
1183 | + } | ||
1184 | |||
1185 | + /* Figure out whether we need workspace arrays, | ||
1186 | + * and if so whether they are transposed relative to the source. | ||
1187 | + */ | ||
1188 | + need_workspace = FALSE; | ||
1189 | + transpose_it = FALSE; | ||
1190 | switch (info->transform) { | ||
1191 | case JXFORM_NONE: | ||
1192 | + if (info->x_crop_offset != 0 || info->y_crop_offset != 0) | ||
1193 | + need_workspace = TRUE; | ||
1194 | + /* No workspace needed if neither cropping nor transforming */ | ||
1195 | + break; | ||
1196 | case JXFORM_FLIP_H: | ||
1197 | - /* Don't need a workspace array */ | ||
1198 | + if (info->trim) | ||
1199 | + trim_right_edge(info, srcinfo->image_width); | ||
1200 | + if (info->y_crop_offset != 0) | ||
1201 | + need_workspace = TRUE; | ||
1202 | + /* do_flip_h_no_crop doesn't need a workspace array */ | ||
1203 | break; | ||
1204 | case JXFORM_FLIP_V: | ||
1205 | - case JXFORM_ROT_180: | ||
1206 | - /* Need workspace arrays having same dimensions as source image. | ||
1207 | - * Note that we allocate arrays padded out to the next iMCU boundary, | ||
1208 | - * so that transform routines need not worry about missing edge blocks. | ||
1209 | - */ | ||
1210 | - coef_arrays = (jvirt_barray_ptr *) | ||
1211 | - (*srcinfo->mem->alloc_small) ((j_common_ptr) srcinfo, JPOOL_IMAGE, | ||
1212 | - SIZEOF(jvirt_barray_ptr) * info->num_components); | ||
1213 | - for (ci = 0; ci < info->num_components; ci++) { | ||
1214 | - compptr = srcinfo->comp_info + ci; | ||
1215 | - coef_arrays[ci] = (*srcinfo->mem->request_virt_barray) | ||
1216 | - ((j_common_ptr) srcinfo, JPOOL_IMAGE, FALSE, | ||
1217 | - (JDIMENSION) jround_up((long) compptr->width_in_blocks, | ||
1218 | - (long) compptr->h_samp_factor), | ||
1219 | - (JDIMENSION) jround_up((long) compptr->height_in_blocks, | ||
1220 | - (long) compptr->v_samp_factor), | ||
1221 | - (JDIMENSION) compptr->v_samp_factor); | ||
1222 | - } | ||
1223 | + if (info->trim) | ||
1224 | + trim_bottom_edge(info, srcinfo->image_height); | ||
1225 | + /* Need workspace arrays having same dimensions as source image. */ | ||
1226 | + need_workspace = TRUE; | ||
1227 | break; | ||
1228 | case JXFORM_TRANSPOSE: | ||
1229 | + /* transpose does NOT have to trim anything */ | ||
1230 | + /* Need workspace arrays having transposed dimensions. */ | ||
1231 | + need_workspace = TRUE; | ||
1232 | + transpose_it = TRUE; | ||
1233 | + break; | ||
1234 | case JXFORM_TRANSVERSE: | ||
1235 | + if (info->trim) { | ||
1236 | + trim_right_edge(info, srcinfo->image_height); | ||
1237 | + trim_bottom_edge(info, srcinfo->image_width); | ||
1238 | + } | ||
1239 | + /* Need workspace arrays having transposed dimensions. */ | ||
1240 | + need_workspace = TRUE; | ||
1241 | + transpose_it = TRUE; | ||
1242 | + break; | ||
1243 | case JXFORM_ROT_90: | ||
1244 | + if (info->trim) | ||
1245 | + trim_right_edge(info, srcinfo->image_height); | ||
1246 | + /* Need workspace arrays having transposed dimensions. */ | ||
1247 | + need_workspace = TRUE; | ||
1248 | + transpose_it = TRUE; | ||
1249 | + break; | ||
1250 | + case JXFORM_ROT_180: | ||
1251 | + if (info->trim) { | ||
1252 | + trim_right_edge(info, srcinfo->image_width); | ||
1253 | + trim_bottom_edge(info, srcinfo->image_height); | ||
1254 | + } | ||
1255 | + /* Need workspace arrays having same dimensions as source image. */ | ||
1256 | + need_workspace = TRUE; | ||
1257 | + break; | ||
1258 | case JXFORM_ROT_270: | ||
1259 | - /* Need workspace arrays having transposed dimensions. | ||
1260 | - * Note that we allocate arrays padded out to the next iMCU boundary, | ||
1261 | - * so that transform routines need not worry about missing edge blocks. | ||
1262 | - */ | ||
1263 | + if (info->trim) | ||
1264 | + trim_bottom_edge(info, srcinfo->image_width); | ||
1265 | + /* Need workspace arrays having transposed dimensions. */ | ||
1266 | + need_workspace = TRUE; | ||
1267 | + transpose_it = TRUE; | ||
1268 | + break; | ||
1269 | + } | ||
1270 | + | ||
1271 | + /* Allocate workspace if needed. | ||
1272 | + * Note that we allocate arrays padded out to the next iMCU boundary, | ||
1273 | + * so that transform routines need not worry about missing edge blocks. | ||
1274 | + */ | ||
1275 | + if (need_workspace) { | ||
1276 | coef_arrays = (jvirt_barray_ptr *) | ||
1277 | (*srcinfo->mem->alloc_small) ((j_common_ptr) srcinfo, JPOOL_IMAGE, | ||
1278 | - SIZEOF(jvirt_barray_ptr) * info->num_components); | ||
1279 | + SIZEOF(jvirt_barray_ptr) * info->num_components); | ||
1280 | + width_in_iMCUs = (JDIMENSION) | ||
1281 | + jdiv_round_up((long) info->output_width, | ||
1282 | + (long) (info->max_h_samp_factor * DCTSIZE)); | ||
1283 | + height_in_iMCUs = (JDIMENSION) | ||
1284 | + jdiv_round_up((long) info->output_height, | ||
1285 | + (long) (info->max_v_samp_factor * DCTSIZE)); | ||
1286 | for (ci = 0; ci < info->num_components; ci++) { | ||
1287 | compptr = srcinfo->comp_info + ci; | ||
1288 | + if (info->num_components == 1) { | ||
1289 | + /* we're going to force samp factors to 1x1 in this case */ | ||
1290 | + h_samp_factor = v_samp_factor = 1; | ||
1291 | + } else if (transpose_it) { | ||
1292 | + h_samp_factor = compptr->v_samp_factor; | ||
1293 | + v_samp_factor = compptr->h_samp_factor; | ||
1294 | + } else { | ||
1295 | + h_samp_factor = compptr->h_samp_factor; | ||
1296 | + v_samp_factor = compptr->v_samp_factor; | ||
1297 | + } | ||
1298 | + width_in_blocks = width_in_iMCUs * h_samp_factor; | ||
1299 | + height_in_blocks = height_in_iMCUs * v_samp_factor; | ||
1300 | coef_arrays[ci] = (*srcinfo->mem->request_virt_barray) | ||
1301 | ((j_common_ptr) srcinfo, JPOOL_IMAGE, FALSE, | ||
1302 | - (JDIMENSION) jround_up((long) compptr->height_in_blocks, | ||
1303 | - (long) compptr->v_samp_factor), | ||
1304 | - (JDIMENSION) jround_up((long) compptr->width_in_blocks, | ||
1305 | - (long) compptr->h_samp_factor), | ||
1306 | - (JDIMENSION) compptr->h_samp_factor); | ||
1307 | + width_in_blocks, height_in_blocks, (JDIMENSION) v_samp_factor); | ||
1308 | } | ||
1309 | - break; | ||
1310 | } | ||
1311 | + | ||
1312 | info->workspace_coef_arrays = coef_arrays; | ||
1313 | } | ||
1314 | |||
1315 | @@ -642,14 +1062,8 @@ | ||
1316 | int tblno, i, j, ci, itemp; | ||
1317 | jpeg_component_info *compptr; | ||
1318 | JQUANT_TBL *qtblptr; | ||
1319 | - JDIMENSION dtemp; | ||
1320 | UINT16 qtemp; | ||
1321 | |||
1322 | - /* Transpose basic image dimensions */ | ||
1323 | - dtemp = dstinfo->image_width; | ||
1324 | - dstinfo->image_width = dstinfo->image_height; | ||
1325 | - dstinfo->image_height = dtemp; | ||
1326 | - | ||
1327 | /* Transpose sampling factors */ | ||
1328 | for (ci = 0; ci < dstinfo->num_components; ci++) { | ||
1329 | compptr = dstinfo->comp_info + ci; | ||
1330 | @@ -674,46 +1088,159 @@ | ||
1331 | } | ||
1332 | |||
1333 | |||
1334 | -/* Trim off any partial iMCUs on the indicated destination edge */ | ||
1335 | +/* Adjust Exif image parameters. | ||
1336 | + * | ||
1337 | + * We try to adjust the Tags ExifImageWidth and ExifImageHeight if possible. | ||
1338 | + */ | ||
1339 | |||
1340 | LOCAL(void) | ||
1341 | -trim_right_edge (j_compress_ptr dstinfo) | ||
1342 | +adjust_exif_parameters (JOCTET FAR * data, unsigned int length, | ||
1343 | + JDIMENSION new_width, JDIMENSION new_height) | ||
1344 | { | ||
1345 | - int ci, max_h_samp_factor; | ||
1346 | - JDIMENSION MCU_cols; | ||
1347 | + boolean is_motorola; /* Flag for byte order */ | ||
1348 | + unsigned int number_of_tags, tagnum; | ||
1349 | + unsigned int firstoffset, offset; | ||
1350 | + JDIMENSION new_value; | ||
1351 | |||
1352 | - /* We have to compute max_h_samp_factor ourselves, | ||
1353 | - * because it hasn't been set yet in the destination | ||
1354 | - * (and we don't want to use the source's value). | ||
1355 | - */ | ||
1356 | - max_h_samp_factor = 1; | ||
1357 | - for (ci = 0; ci < dstinfo->num_components; ci++) { | ||
1358 | - int h_samp_factor = dstinfo->comp_info[ci].h_samp_factor; | ||
1359 | - max_h_samp_factor = MAX(max_h_samp_factor, h_samp_factor); | ||
1360 | + if (length < 12) return; /* Length of an IFD entry */ | ||
1361 | + | ||
1362 | + /* Discover byte order */ | ||
1363 | + if (GETJOCTET(data[0]) == 0x49 && GETJOCTET(data[1]) == 0x49) | ||
1364 | + is_motorola = FALSE; | ||
1365 | + else if (GETJOCTET(data[0]) == 0x4D && GETJOCTET(data[1]) == 0x4D) | ||
1366 | + is_motorola = TRUE; | ||
1367 | + else | ||
1368 | + return; | ||
1369 | + | ||
1370 | + /* Check Tag Mark */ | ||
1371 | + if (is_motorola) { | ||
1372 | + if (GETJOCTET(data[2]) != 0) return; | ||
1373 | + if (GETJOCTET(data[3]) != 0x2A) return; | ||
1374 | + } else { | ||
1375 | + if (GETJOCTET(data[3]) != 0) return; | ||
1376 | + if (GETJOCTET(data[2]) != 0x2A) return; | ||
1377 | } | ||
1378 | - MCU_cols = dstinfo->image_width / (max_h_samp_factor * DCTSIZE); | ||
1379 | - if (MCU_cols > 0) /* can't trim to 0 pixels */ | ||
1380 | - dstinfo->image_width = MCU_cols * (max_h_samp_factor * DCTSIZE); | ||
1381 | -} | ||
1382 | |||
1383 | -LOCAL(void) | ||
1384 | -trim_bottom_edge (j_compress_ptr dstinfo) | ||
1385 | -{ | ||
1386 | - int ci, max_v_samp_factor; | ||
1387 | - JDIMENSION MCU_rows; | ||
1388 | + /* Get first IFD offset (offset to IFD0) */ | ||
1389 | + if (is_motorola) { | ||
1390 | + if (GETJOCTET(data[4]) != 0) return; | ||
1391 | + if (GETJOCTET(data[5]) != 0) return; | ||
1392 | + firstoffset = GETJOCTET(data[6]); | ||
1393 | + firstoffset <<= 8; | ||
1394 | + firstoffset += GETJOCTET(data[7]); | ||
1395 | + } else { | ||
1396 | + if (GETJOCTET(data[7]) != 0) return; | ||
1397 | + if (GETJOCTET(data[6]) != 0) return; | ||
1398 | + firstoffset = GETJOCTET(data[5]); | ||
1399 | + firstoffset <<= 8; | ||
1400 | + firstoffset += GETJOCTET(data[4]); | ||
1401 | + } | ||
1402 | + if (firstoffset > length - 2) return; /* check end of data segment */ | ||
1403 | |||
1404 | - /* We have to compute max_v_samp_factor ourselves, | ||
1405 | - * because it hasn't been set yet in the destination | ||
1406 | - * (and we don't want to use the source's value). | ||
1407 | - */ | ||
1408 | - max_v_samp_factor = 1; | ||
1409 | - for (ci = 0; ci < dstinfo->num_components; ci++) { | ||
1410 | - int v_samp_factor = dstinfo->comp_info[ci].v_samp_factor; | ||
1411 | - max_v_samp_factor = MAX(max_v_samp_factor, v_samp_factor); | ||
1412 | + /* Get the number of directory entries contained in this IFD */ | ||
1413 | + if (is_motorola) { | ||
1414 | + number_of_tags = GETJOCTET(data[firstoffset]); | ||
1415 | + number_of_tags <<= 8; | ||
1416 | + number_of_tags += GETJOCTET(data[firstoffset+1]); | ||
1417 | + } else { | ||
1418 | + number_of_tags = GETJOCTET(data[firstoffset+1]); | ||
1419 | + number_of_tags <<= 8; | ||
1420 | + number_of_tags += GETJOCTET(data[firstoffset]); | ||
1421 | } | ||
1422 | - MCU_rows = dstinfo->image_height / (max_v_samp_factor * DCTSIZE); | ||
1423 | - if (MCU_rows > 0) /* can't trim to 0 pixels */ | ||
1424 | - dstinfo->image_height = MCU_rows * (max_v_samp_factor * DCTSIZE); | ||
1425 | + if (number_of_tags == 0) return; | ||
1426 | + firstoffset += 2; | ||
1427 | + | ||
1428 | + /* Search for ExifSubIFD offset Tag in IFD0 */ | ||
1429 | + for (;;) { | ||
1430 | + if (firstoffset > length - 12) return; /* check end of data segment */ | ||
1431 | + /* Get Tag number */ | ||
1432 | + if (is_motorola) { | ||
1433 | + tagnum = GETJOCTET(data[firstoffset]); | ||
1434 | + tagnum <<= 8; | ||
1435 | + tagnum += GETJOCTET(data[firstoffset+1]); | ||
1436 | + } else { | ||
1437 | + tagnum = GETJOCTET(data[firstoffset+1]); | ||
1438 | + tagnum <<= 8; | ||
1439 | + tagnum += GETJOCTET(data[firstoffset]); | ||
1440 | + } | ||
1441 | + if (tagnum == 0x8769) break; /* found ExifSubIFD offset Tag */ | ||
1442 | + if (--number_of_tags == 0) return; | ||
1443 | + firstoffset += 12; | ||
1444 | + } | ||
1445 | + | ||
1446 | + /* Get the ExifSubIFD offset */ | ||
1447 | + if (is_motorola) { | ||
1448 | + if (GETJOCTET(data[firstoffset+8]) != 0) return; | ||
1449 | + if (GETJOCTET(data[firstoffset+9]) != 0) return; | ||
1450 | + offset = GETJOCTET(data[firstoffset+10]); | ||
1451 | + offset <<= 8; | ||
1452 | + offset += GETJOCTET(data[firstoffset+11]); | ||
1453 | + } else { | ||
1454 | + if (GETJOCTET(data[firstoffset+11]) != 0) return; | ||
1455 | + if (GETJOCTET(data[firstoffset+10]) != 0) return; | ||
1456 | + offset = GETJOCTET(data[firstoffset+9]); | ||
1457 | + offset <<= 8; | ||
1458 | + offset += GETJOCTET(data[firstoffset+8]); | ||
1459 | + } | ||
1460 | + if (offset > length - 2) return; /* check end of data segment */ | ||
1461 | + | ||
1462 | + /* Get the number of directory entries contained in this SubIFD */ | ||
1463 | + if (is_motorola) { | ||
1464 | + number_of_tags = GETJOCTET(data[offset]); | ||
1465 | + number_of_tags <<= 8; | ||
1466 | + number_of_tags += GETJOCTET(data[offset+1]); | ||
1467 | + } else { | ||
1468 | + number_of_tags = GETJOCTET(data[offset+1]); | ||
1469 | + number_of_tags <<= 8; | ||
1470 | + number_of_tags += GETJOCTET(data[offset]); | ||
1471 | + } | ||
1472 | + if (number_of_tags < 2) return; | ||
1473 | + offset += 2; | ||
1474 | + | ||
1475 | + /* Search for ExifImageWidth and ExifImageHeight Tags in this SubIFD */ | ||
1476 | + do { | ||
1477 | + if (offset > length - 12) return; /* check end of data segment */ | ||
1478 | + /* Get Tag number */ | ||
1479 | + if (is_motorola) { | ||
1480 | + tagnum = GETJOCTET(data[offset]); | ||
1481 | + tagnum <<= 8; | ||
1482 | + tagnum += GETJOCTET(data[offset+1]); | ||
1483 | + } else { | ||
1484 | + tagnum = GETJOCTET(data[offset+1]); | ||
1485 | + tagnum <<= 8; | ||
1486 | + tagnum += GETJOCTET(data[offset]); | ||
1487 | + } | ||
1488 | + if (tagnum == 0xA002 || tagnum == 0xA003) { | ||
1489 | + if (tagnum == 0xA002) | ||
1490 | + new_value = new_width; /* ExifImageWidth Tag */ | ||
1491 | + else | ||
1492 | + new_value = new_height; /* ExifImageHeight Tag */ | ||
1493 | + if (is_motorola) { | ||
1494 | + data[offset+2] = 0; /* Format = unsigned long (4 octets) */ | ||
1495 | + data[offset+3] = 4; | ||
1496 | + data[offset+4] = 0; /* Number Of Components = 1 */ | ||
1497 | + data[offset+5] = 0; | ||
1498 | + data[offset+6] = 0; | ||
1499 | + data[offset+7] = 1; | ||
1500 | + data[offset+8] = 0; | ||
1501 | + data[offset+9] = 0; | ||
1502 | + data[offset+10] = (JOCTET)((new_value >> 8) & 0xFF); | ||
1503 | + data[offset+11] = (JOCTET)(new_value & 0xFF); | ||
1504 | + } else { | ||
1505 | + data[offset+2] = 4; /* Format = unsigned long (4 octets) */ | ||
1506 | + data[offset+3] = 0; | ||
1507 | + data[offset+4] = 1; /* Number Of Components = 1 */ | ||
1508 | + data[offset+5] = 0; | ||
1509 | + data[offset+6] = 0; | ||
1510 | + data[offset+7] = 0; | ||
1511 | + data[offset+8] = (JOCTET)(new_value & 0xFF); | ||
1512 | + data[offset+9] = (JOCTET)((new_value >> 8) & 0xFF); | ||
1513 | + data[offset+10] = 0; | ||
1514 | + data[offset+11] = 0; | ||
1515 | + } | ||
1516 | + } | ||
1517 | + offset += 12; | ||
1518 | + } while (--number_of_tags); | ||
1519 | } | ||
1520 | |||
1521 | |||
1522 | @@ -736,18 +1263,22 @@ | ||
1523 | { | ||
1524 | /* If force-to-grayscale is requested, adjust destination parameters */ | ||
1525 | if (info->force_grayscale) { | ||
1526 | - /* We use jpeg_set_colorspace to make sure subsidiary settings get fixed | ||
1527 | - * properly. Among other things, the target h_samp_factor & v_samp_factor | ||
1528 | - * will get set to 1, which typically won't match the source. | ||
1529 | - * In fact we do this even if the source is already grayscale; that | ||
1530 | - * provides an easy way of coercing a grayscale JPEG with funny sampling | ||
1531 | - * factors to the customary 1,1. (Some decoders fail on other factors.) | ||
1532 | + /* First, ensure we have YCbCr or grayscale data, and that the source's | ||
1533 | + * Y channel is full resolution. (No reasonable person would make Y | ||
1534 | + * be less than full resolution, so actually coping with that case | ||
1535 | + * isn't worth extra code space. But we check it to avoid crashing.) | ||
1536 | */ | ||
1537 | - if ((dstinfo->jpeg_color_space == JCS_YCbCr && | ||
1538 | - dstinfo->num_components == 3) || | ||
1539 | - (dstinfo->jpeg_color_space == JCS_GRAYSCALE && | ||
1540 | - dstinfo->num_components == 1)) { | ||
1541 | - /* We have to preserve the source's quantization table number. */ | ||
1542 | + if (((dstinfo->jpeg_color_space == JCS_YCbCr && | ||
1543 | + dstinfo->num_components == 3) || | ||
1544 | + (dstinfo->jpeg_color_space == JCS_GRAYSCALE && | ||
1545 | + dstinfo->num_components == 1)) && | ||
1546 | + srcinfo->comp_info[0].h_samp_factor == srcinfo->max_h_samp_factor && | ||
1547 | + srcinfo->comp_info[0].v_samp_factor == srcinfo->max_v_samp_factor) { | ||
1548 | + /* We use jpeg_set_colorspace to make sure subsidiary settings get fixed | ||
1549 | + * properly. Among other things, it sets the target h_samp_factor & | ||
1550 | + * v_samp_factor to 1, which typically won't match the source. | ||
1551 | + * We have to preserve the source's quantization table number, however. | ||
1552 | + */ | ||
1553 | int sv_quant_tbl_no = dstinfo->comp_info[0].quant_tbl_no; | ||
1554 | jpeg_set_colorspace(dstinfo, JCS_GRAYSCALE); | ||
1555 | dstinfo->comp_info[0].quant_tbl_no = sv_quant_tbl_no; | ||
1556 | @@ -755,50 +1286,52 @@ | ||
1557 | /* Sorry, can't do it */ | ||
1558 | ERREXIT(dstinfo, JERR_CONVERSION_NOTIMPL); | ||
1559 | } | ||
1560 | + } else if (info->num_components == 1) { | ||
1561 | + /* For a single-component source, we force the destination sampling factors | ||
1562 | + * to 1x1, with or without force_grayscale. This is useful because some | ||
1563 | + * decoders choke on grayscale images with other sampling factors. | ||
1564 | + */ | ||
1565 | + dstinfo->comp_info[0].h_samp_factor = 1; | ||
1566 | + dstinfo->comp_info[0].v_samp_factor = 1; | ||
1567 | } | ||
1568 | |||
1569 | - /* Correct the destination's image dimensions etc if necessary */ | ||
1570 | + /* Correct the destination's image dimensions as necessary | ||
1571 | + * for crop and rotate/flip operations. | ||
1572 | + */ | ||
1573 | + dstinfo->image_width = info->output_width; | ||
1574 | + dstinfo->image_height = info->output_height; | ||
1575 | + | ||
1576 | + /* Transpose destination image parameters */ | ||
1577 | switch (info->transform) { | ||
1578 | - case JXFORM_NONE: | ||
1579 | - /* Nothing to do */ | ||
1580 | - break; | ||
1581 | - case JXFORM_FLIP_H: | ||
1582 | - if (info->trim) | ||
1583 | - trim_right_edge(dstinfo); | ||
1584 | - break; | ||
1585 | - case JXFORM_FLIP_V: | ||
1586 | - if (info->trim) | ||
1587 | - trim_bottom_edge(dstinfo); | ||
1588 | - break; | ||
1589 | case JXFORM_TRANSPOSE: | ||
1590 | - transpose_critical_parameters(dstinfo); | ||
1591 | - /* transpose does NOT have to trim anything */ | ||
1592 | - break; | ||
1593 | case JXFORM_TRANSVERSE: | ||
1594 | - transpose_critical_parameters(dstinfo); | ||
1595 | - if (info->trim) { | ||
1596 | - trim_right_edge(dstinfo); | ||
1597 | - trim_bottom_edge(dstinfo); | ||
1598 | - } | ||
1599 | - break; | ||
1600 | case JXFORM_ROT_90: | ||
1601 | - transpose_critical_parameters(dstinfo); | ||
1602 | - if (info->trim) | ||
1603 | - trim_right_edge(dstinfo); | ||
1604 | - break; | ||
1605 | - case JXFORM_ROT_180: | ||
1606 | - if (info->trim) { | ||
1607 | - trim_right_edge(dstinfo); | ||
1608 | - trim_bottom_edge(dstinfo); | ||
1609 | - } | ||
1610 | - break; | ||
1611 | case JXFORM_ROT_270: | ||
1612 | transpose_critical_parameters(dstinfo); | ||
1613 | - if (info->trim) | ||
1614 | - trim_bottom_edge(dstinfo); | ||
1615 | break; | ||
1616 | } | ||
1617 | |||
1618 | + /* Adjust Exif properties */ | ||
1619 | + if (srcinfo->marker_list != NULL && | ||
1620 | + srcinfo->marker_list->marker == JPEG_APP0+1 && | ||
1621 | + srcinfo->marker_list->data_length >= 6 && | ||
1622 | + GETJOCTET(srcinfo->marker_list->data[0]) == 0x45 && | ||
1623 | + GETJOCTET(srcinfo->marker_list->data[1]) == 0x78 && | ||
1624 | + GETJOCTET(srcinfo->marker_list->data[2]) == 0x69 && | ||
1625 | + GETJOCTET(srcinfo->marker_list->data[3]) == 0x66 && | ||
1626 | + GETJOCTET(srcinfo->marker_list->data[4]) == 0 && | ||
1627 | + GETJOCTET(srcinfo->marker_list->data[5]) == 0) { | ||
1628 | + /* Suppress output of JFIF marker */ | ||
1629 | + dstinfo->write_JFIF_header = FALSE; | ||
1630 | + /* Adjust Exif image parameters */ | ||
1631 | + if (dstinfo->image_width != srcinfo->image_width || | ||
1632 | + dstinfo->image_height != srcinfo->image_height) | ||
1633 | + /* Align data segment to start of TIFF structure for parsing */ | ||
1634 | + adjust_exif_parameters(srcinfo->marker_list->data + 6, | ||
1635 | + srcinfo->marker_list->data_length - 6, | ||
1636 | + dstinfo->image_width, dstinfo->image_height); | ||
1637 | + } | ||
1638 | + | ||
1639 | /* Return the appropriate output data set */ | ||
1640 | if (info->workspace_coef_arrays != NULL) | ||
1641 | return info->workspace_coef_arrays; | ||
1642 | @@ -816,36 +1349,53 @@ | ||
1643 | */ | ||
1644 | |||
1645 | GLOBAL(void) | ||
1646 | -jtransform_execute_transformation (j_decompress_ptr srcinfo, | ||
1647 | - j_compress_ptr dstinfo, | ||
1648 | - jvirt_barray_ptr *src_coef_arrays, | ||
1649 | - jpeg_transform_info *info) | ||
1650 | +jtransform_execute_transform (j_decompress_ptr srcinfo, | ||
1651 | + j_compress_ptr dstinfo, | ||
1652 | + jvirt_barray_ptr *src_coef_arrays, | ||
1653 | + jpeg_transform_info *info) | ||
1654 | { | ||
1655 | jvirt_barray_ptr *dst_coef_arrays = info->workspace_coef_arrays; | ||
1656 | |||
1657 | + /* Note: conditions tested here should match those in switch statement | ||
1658 | + * in jtransform_request_workspace() | ||
1659 | + */ | ||
1660 | switch (info->transform) { | ||
1661 | case JXFORM_NONE: | ||
1662 | + if (info->x_crop_offset != 0 || info->y_crop_offset != 0) | ||
1663 | + do_crop(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset, | ||
1664 | + src_coef_arrays, dst_coef_arrays); | ||
1665 | break; | ||
1666 | case JXFORM_FLIP_H: | ||
1667 | - do_flip_h(srcinfo, dstinfo, src_coef_arrays); | ||
1668 | + if (info->y_crop_offset != 0) | ||
1669 | + do_flip_h(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset, | ||
1670 | + src_coef_arrays, dst_coef_arrays); | ||
1671 | + else | ||
1672 | + do_flip_h_no_crop(srcinfo, dstinfo, info->x_crop_offset, | ||
1673 | + src_coef_arrays); | ||
1674 | break; | ||
1675 | case JXFORM_FLIP_V: | ||
1676 | - do_flip_v(srcinfo, dstinfo, src_coef_arrays, dst_coef_arrays); | ||
1677 | + do_flip_v(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset, | ||
1678 | + src_coef_arrays, dst_coef_arrays); | ||
1679 | break; | ||
1680 | case JXFORM_TRANSPOSE: | ||
1681 | - do_transpose(srcinfo, dstinfo, src_coef_arrays, dst_coef_arrays); | ||
1682 | + do_transpose(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset, | ||
1683 | + src_coef_arrays, dst_coef_arrays); | ||
1684 | break; | ||
1685 | case JXFORM_TRANSVERSE: | ||
1686 | - do_transverse(srcinfo, dstinfo, src_coef_arrays, dst_coef_arrays); | ||
1687 | + do_transverse(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset, | ||
1688 | + src_coef_arrays, dst_coef_arrays); | ||
1689 | break; | ||
1690 | case JXFORM_ROT_90: | ||
1691 | - do_rot_90(srcinfo, dstinfo, src_coef_arrays, dst_coef_arrays); | ||
1692 | + do_rot_90(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset, | ||
1693 | + src_coef_arrays, dst_coef_arrays); | ||
1694 | break; | ||
1695 | case JXFORM_ROT_180: | ||
1696 | - do_rot_180(srcinfo, dstinfo, src_coef_arrays, dst_coef_arrays); | ||
1697 | + do_rot_180(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset, | ||
1698 | + src_coef_arrays, dst_coef_arrays); | ||
1699 | break; | ||
1700 | case JXFORM_ROT_270: | ||
1701 | - do_rot_270(srcinfo, dstinfo, src_coef_arrays, dst_coef_arrays); | ||
1702 | + do_rot_270(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset, | ||
1703 | + src_coef_arrays, dst_coef_arrays); | ||
1704 | break; | ||
1705 | } | ||
1706 | } | ||
1707 | --- jpeg-6b/jerror.h~libjpeg6bb-5 | ||
1708 | +++ jpeg-6b/jerror.h | ||
1709 | @@ -45,6 +45,7 @@ | ||
1710 | JMESSAGE(JERR_BAD_ALLOC_CHUNK, "MAX_ALLOC_CHUNK is wrong, please fix") | ||
1711 | JMESSAGE(JERR_BAD_BUFFER_MODE, "Bogus buffer control mode") | ||
1712 | JMESSAGE(JERR_BAD_COMPONENT_ID, "Invalid component ID %d in SOS") | ||
1713 | +JMESSAGE(JERR_BAD_CROP_SPEC, "Invalid crop request") | ||
1714 | JMESSAGE(JERR_BAD_DCT_COEF, "DCT coefficient out of range") | ||
1715 | JMESSAGE(JERR_BAD_DCTSIZE, "IDCT output block size %d not supported") | ||
1716 | JMESSAGE(JERR_BAD_HUFF_TABLE, "Bogus Huffman table definition") | ||
1717 | --- jpeg-6b/transupp.h~libjpeg6bb-5 | ||
1718 | +++ jpeg-6b/transupp.h | ||
1719 | @@ -1,7 +1,7 @@ | ||
1720 | /* | ||
1721 | * transupp.h | ||
1722 | * | ||
1723 | - * Copyright (C) 1997, Thomas G. Lane. | ||
1724 | + * Copyright (C) 1997-2001, Thomas G. Lane. | ||
1725 | * This file is part of the Independent JPEG Group's software. | ||
1726 | * For conditions of distribution and use, see the accompanying README file. | ||
1727 | * | ||
1728 | @@ -22,32 +22,6 @@ | ||
1729 | #define TRANSFORMS_SUPPORTED 1 /* 0 disables transform code */ | ||
1730 | #endif | ||
1731 | |||
1732 | -/* Short forms of external names for systems with brain-damaged linkers. */ | ||
1733 | - | ||
1734 | -#ifdef NEED_SHORT_EXTERNAL_NAMES | ||
1735 | -#define jtransform_request_workspace jTrRequest | ||
1736 | -#define jtransform_adjust_parameters jTrAdjust | ||
1737 | -#define jtransform_execute_transformation jTrExec | ||
1738 | -#define jcopy_markers_setup jCMrkSetup | ||
1739 | -#define jcopy_markers_execute jCMrkExec | ||
1740 | -#endif /* NEED_SHORT_EXTERNAL_NAMES */ | ||
1741 | - | ||
1742 | - | ||
1743 | -/* | ||
1744 | - * Codes for supported types of image transformations. | ||
1745 | - */ | ||
1746 | - | ||
1747 | -typedef enum { | ||
1748 | - JXFORM_NONE, /* no transformation */ | ||
1749 | - JXFORM_FLIP_H, /* horizontal flip */ | ||
1750 | - JXFORM_FLIP_V, /* vertical flip */ | ||
1751 | - JXFORM_TRANSPOSE, /* transpose across UL-to-LR axis */ | ||
1752 | - JXFORM_TRANSVERSE, /* transpose across UR-to-LL axis */ | ||
1753 | - JXFORM_ROT_90, /* 90-degree clockwise rotation */ | ||
1754 | - JXFORM_ROT_180, /* 180-degree rotation */ | ||
1755 | - JXFORM_ROT_270 /* 270-degree clockwise (or 90 ccw) */ | ||
1756 | -} JXFORM_CODE; | ||
1757 | - | ||
1758 | /* | ||
1759 | * Although rotating and flipping data expressed as DCT coefficients is not | ||
1760 | * hard, there is an asymmetry in the JPEG format specification for images | ||
1761 | @@ -75,6 +49,19 @@ | ||
1762 | * (For example, -rot 270 -trim trims only the bottom edge, but -rot 90 -trim | ||
1763 | * followed by -rot 180 -trim trims both edges.) | ||
1764 | * | ||
1765 | + * We also offer a lossless-crop option, which discards data outside a given | ||
1766 | + * image region but losslessly preserves what is inside. Like the rotate and | ||
1767 | + * flip transforms, lossless crop is restricted by the JPEG format: the upper | ||
1768 | + * left corner of the selected region must fall on an iMCU boundary. If this | ||
1769 | + * does not hold for the given crop parameters, we silently move the upper left | ||
1770 | + * corner up and/or left to make it so, simultaneously increasing the region | ||
1771 | + * dimensions to keep the lower right crop corner unchanged. (Thus, the | ||
1772 | + * output image covers at least the requested region, but may cover more.) | ||
1773 | + * | ||
1774 | + * If both crop and a rotate/flip transform are requested, the crop is applied | ||
1775 | + * last --- that is, the crop region is specified in terms of the destination | ||
1776 | + * image. | ||
1777 | + * | ||
1778 | * We also offer a "force to grayscale" option, which simply discards the | ||
1779 | * chrominance channels of a YCbCr image. This is lossless in the sense that | ||
1780 | * the luminance channel is preserved exactly. It's not the same kind of | ||
1781 | @@ -83,20 +70,87 @@ | ||
1782 | * be aware of the option to know how many components to work on. | ||
1783 | */ | ||
1784 | |||
1785 | + | ||
1786 | +/* Short forms of external names for systems with brain-damaged linkers. */ | ||
1787 | + | ||
1788 | +#ifdef NEED_SHORT_EXTERNAL_NAMES | ||
1789 | +#define jtransform_parse_crop_spec jTrParCrop | ||
1790 | +#define jtransform_request_workspace jTrRequest | ||
1791 | +#define jtransform_adjust_parameters jTrAdjust | ||
1792 | +#define jtransform_execute_transform jTrExec | ||
1793 | +#define jcopy_markers_setup jCMrkSetup | ||
1794 | +#define jcopy_markers_execute jCMrkExec | ||
1795 | +#endif /* NEED_SHORT_EXTERNAL_NAMES */ | ||
1796 | + | ||
1797 | + | ||
1798 | +/* | ||
1799 | + * Codes for supported types of image transformations. | ||
1800 | + */ | ||
1801 | + | ||
1802 | +typedef enum { | ||
1803 | + JXFORM_NONE, /* no transformation */ | ||
1804 | + JXFORM_FLIP_H, /* horizontal flip */ | ||
1805 | + JXFORM_FLIP_V, /* vertical flip */ | ||
1806 | + JXFORM_TRANSPOSE, /* transpose across UL-to-LR axis */ | ||
1807 | + JXFORM_TRANSVERSE, /* transpose across UR-to-LL axis */ | ||
1808 | + JXFORM_ROT_90, /* 90-degree clockwise rotation */ | ||
1809 | + JXFORM_ROT_180, /* 180-degree rotation */ | ||
1810 | + JXFORM_ROT_270 /* 270-degree clockwise (or 90 ccw) */ | ||
1811 | +} JXFORM_CODE; | ||
1812 | + | ||
1813 | +/* | ||
1814 | + * Codes for crop parameters, which can individually be unspecified, | ||
1815 | + * positive, or negative. (Negative width or height makes no sense, though.) | ||
1816 | + */ | ||
1817 | + | ||
1818 | +typedef enum { | ||
1819 | + JCROP_UNSET, | ||
1820 | + JCROP_POS, | ||
1821 | + JCROP_NEG | ||
1822 | +} JCROP_CODE; | ||
1823 | + | ||
1824 | +/* | ||
1825 | + * Transform parameters struct. | ||
1826 | + * NB: application must not change any elements of this struct after | ||
1827 | + * calling jtransform_request_workspace. | ||
1828 | + */ | ||
1829 | + | ||
1830 | typedef struct { | ||
1831 | /* Options: set by caller */ | ||
1832 | JXFORM_CODE transform; /* image transform operator */ | ||
1833 | boolean trim; /* if TRUE, trim partial MCUs as needed */ | ||
1834 | boolean force_grayscale; /* if TRUE, convert color image to grayscale */ | ||
1835 | + boolean crop; /* if TRUE, crop source image */ | ||
1836 | + | ||
1837 | + /* Crop parameters: application need not set these unless crop is TRUE. | ||
1838 | + * These can be filled in by jtransform_parse_crop_spec(). | ||
1839 | + */ | ||
1840 | + JDIMENSION crop_width; /* Width of selected region */ | ||
1841 | + JCROP_CODE crop_width_set; | ||
1842 | + JDIMENSION crop_height; /* Height of selected region */ | ||
1843 | + JCROP_CODE crop_height_set; | ||
1844 | + JDIMENSION crop_xoffset; /* X offset of selected region */ | ||
1845 | + JCROP_CODE crop_xoffset_set; /* (negative measures from right edge) */ | ||
1846 | + JDIMENSION crop_yoffset; /* Y offset of selected region */ | ||
1847 | + JCROP_CODE crop_yoffset_set; /* (negative measures from bottom edge) */ | ||
1848 | |||
1849 | /* Internal workspace: caller should not touch these */ | ||
1850 | int num_components; /* # of components in workspace */ | ||
1851 | jvirt_barray_ptr * workspace_coef_arrays; /* workspace for transformations */ | ||
1852 | + JDIMENSION output_width; /* cropped destination dimensions */ | ||
1853 | + JDIMENSION output_height; | ||
1854 | + JDIMENSION x_crop_offset; /* destination crop offsets measured in iMCUs */ | ||
1855 | + JDIMENSION y_crop_offset; | ||
1856 | + int max_h_samp_factor; /* destination iMCU size */ | ||
1857 | + int max_v_samp_factor; | ||
1858 | } jpeg_transform_info; | ||
1859 | |||
1860 | |||
1861 | #if TRANSFORMS_SUPPORTED | ||
1862 | |||
1863 | +/* Parse a crop specification (written in X11 geometry style) */ | ||
1864 | +EXTERN(boolean) jtransform_parse_crop_spec | ||
1865 | + JPP((jpeg_transform_info *info, const char *spec)); | ||
1866 | /* Request any required workspace */ | ||
1867 | EXTERN(void) jtransform_request_workspace | ||
1868 | JPP((j_decompress_ptr srcinfo, jpeg_transform_info *info)); | ||
1869 | @@ -106,11 +160,18 @@ | ||
1870 | jvirt_barray_ptr *src_coef_arrays, | ||
1871 | jpeg_transform_info *info)); | ||
1872 | /* Execute the actual transformation, if any */ | ||
1873 | -EXTERN(void) jtransform_execute_transformation | ||
1874 | +EXTERN(void) jtransform_execute_transform | ||
1875 | JPP((j_decompress_ptr srcinfo, j_compress_ptr dstinfo, | ||
1876 | jvirt_barray_ptr *src_coef_arrays, | ||
1877 | jpeg_transform_info *info)); | ||
1878 | |||
1879 | +/* jtransform_execute_transform used to be called | ||
1880 | + * jtransform_execute_transformation, but some compilers complain about | ||
1881 | + * routine names that long. This macro is here to avoid breaking any | ||
1882 | + * old source code that uses the original name... | ||
1883 | + */ | ||
1884 | +#define jtransform_execute_transformation jtransform_execute_transform | ||
1885 | + | ||
1886 | #endif /* TRANSFORMS_SUPPORTED */ | ||
1887 | |||
1888 | |||
1889 | --- jpeg-6b/config.guess~libjpeg6bb-5 | ||
1890 | +++ jpeg-6b/config.guess | ||
1891 | @@ -1,4 +1,10 @@ | ||
1892 | #! /bin/sh | ||
1893 | +# autotools-dev hack (<ballombe@debian.org>, Wed, 14 Nov 2001 10:13:10 +0100) | ||
1894 | +if [ -x /usr/share/misc/config.guess ]; then | ||
1895 | + /usr/share/misc/config.guess $* | ||
1896 | + exit $? | ||
1897 | +fi | ||
1898 | + | ||
1899 | # Attempt to guess a canonical system name. | ||
1900 | # Copyright (C) 1992, 93, 94, 95, 96, 1997 Free Software Foundation, Inc. | ||
1901 | # | ||
1902 | --- jpeg-6b/config.sub~libjpeg6bb-5 | ||
1903 | +++ jpeg-6b/config.sub | ||
1904 | @@ -1,4 +1,10 @@ | ||
1905 | #! /bin/sh | ||
1906 | +# autotools-dev hack (<ballombe@debian.org>, Wed, 14 Nov 2001 10:13:10 +0100) | ||
1907 | +if [ -x /usr/share/misc/config.sub ]; then | ||
1908 | + /usr/share/misc/config.sub $* | ||
1909 | + exit $? | ||
1910 | +fi | ||
1911 | + | ||
1912 | # Configuration validation subroutine script, version 1.1. | ||
1913 | # Copyright (C) 1991, 92, 93, 94, 95, 96, 1997 Free Software Foundation, Inc. | ||
1914 | # This file is (in principle) common to ALL GNU software. | ||
1915 | --- /dev/null | ||
1916 | +++ jpeg-6b/libtool.cfg | ||
1917 | @@ -0,0 +1,224 @@ | ||
1918 | +# libtool.cfg - Libtool configuration file. | ||
1919 | +# Generated automatically by ltconfig (GNU libtool 1.3.3 (1.385.2.181 1999/07/02 15:49:11)) | ||
1920 | +# Libtool was configured as follows, on host yellowpig: | ||
1921 | +# | ||
1922 | +# CC="old_CC" CFLAGS="old_CFLAGS" CPPFLAGS="old_CPPFLAGS" \ | ||
1923 | +# LD="old_LD" LDFLAGS="old_LDFLAGS" LIBS="old_LIBS" \ | ||
1924 | +# NM="old_NM" RANLIB="old_RANLIB" LN_S="old_LN_S" \ | ||
1925 | +# DLLTOOL="old_DLLTOOL" OBJDUMP="old_OBJDUMP" AS="old_AS" \ | ||
1926 | +# ./ltconfig.new ./ltmain.sh.new i386-gnu | ||
1927 | +# | ||
1928 | +# Compiler and other test output produced by ltconfig.new, useful for | ||
1929 | +# debugging ltconfig.new, is in ./config.log if it exists. | ||
1930 | + | ||
1931 | +# The version of ltconfig.new that generated this script. | ||
1932 | +LTCONFIG_VERSION=1.3.3 | ||
1933 | + | ||
1934 | +# Shell to use when invoking shell scripts. | ||
1935 | +SHELL=/bin/sh | ||
1936 | + | ||
1937 | +# Whether or not to build shared libraries. | ||
1938 | +build_libtool_libs=yes | ||
1939 | + | ||
1940 | +# Whether or not to build static libraries. | ||
1941 | +build_old_libs=yes | ||
1942 | + | ||
1943 | +# Whether or not to optimize for fast installation. | ||
1944 | +fast_install=yes | ||
1945 | + | ||
1946 | +# The host system. | ||
1947 | +host_alias=i386-gnu | ||
1948 | +host=i386-pc-gnu | ||
1949 | + | ||
1950 | +# An echo program that does not interpret backslashes. | ||
1951 | +echo=echo | ||
1952 | + | ||
1953 | +# The archiver. | ||
1954 | +AR=ar | ||
1955 | + | ||
1956 | +# The default C compiler. | ||
1957 | +CC=gcc | ||
1958 | + | ||
1959 | +# The linker used to build libraries. | ||
1960 | +LD=/usr/bin/ld | ||
1961 | + | ||
1962 | +# Whether we need hard or soft links. | ||
1963 | +LN_S=ln -s | ||
1964 | + | ||
1965 | +# A BSD-compatible nm program. | ||
1966 | +NM=/usr/bin/nm -B | ||
1967 | + | ||
1968 | +# Used on cygwin: DLL creation program. | ||
1969 | +DLLTOOL="dlltool" | ||
1970 | + | ||
1971 | +# Used on cygwin: object dumper. | ||
1972 | +OBJDUMP="objdump" | ||
1973 | + | ||
1974 | +# Used on cygwin: assembler. | ||
1975 | +AS="as" | ||
1976 | + | ||
1977 | +# The name of the directory that contains temporary libtool files. | ||
1978 | +objdir=.libs | ||
1979 | + | ||
1980 | +# How to create reloadable object files. | ||
1981 | +reload_flag= -r | ||
1982 | +reload_cmds=$LD$reload_flag -o $output$reload_objs | ||
1983 | + | ||
1984 | +# How to pass a linker flag through the compiler. | ||
1985 | +wl=-Wl, | ||
1986 | + | ||
1987 | +# Object file suffix (normally "o"). | ||
1988 | +objext="o" | ||
1989 | + | ||
1990 | +# Old archive suffix (normally "a"). | ||
1991 | +libext="a" | ||
1992 | + | ||
1993 | +# Executable file suffix (normally ""). | ||
1994 | +exeext="" | ||
1995 | + | ||
1996 | +# Additional compiler flags for building library objects. | ||
1997 | +pic_flag= -fPIC | ||
1998 | + | ||
1999 | +# Does compiler simultaneously support -c and -o options? | ||
2000 | +compiler_c_o=yes | ||
2001 | + | ||
2002 | +# Can we write directly to a .lo ? | ||
2003 | +compiler_o_lo=yes | ||
2004 | + | ||
2005 | +# Must we lock files when doing compilation ? | ||
2006 | +need_locks=no | ||
2007 | + | ||
2008 | +# Do we need the lib prefix for modules? | ||
2009 | +need_lib_prefix=no | ||
2010 | + | ||
2011 | +# Do we need a version for libraries? | ||
2012 | +need_version=no | ||
2013 | + | ||
2014 | +# Whether dlopen is supported. | ||
2015 | +dlopen=unknown | ||
2016 | + | ||
2017 | +# Whether dlopen of programs is supported. | ||
2018 | +dlopen_self=unknown | ||
2019 | + | ||
2020 | +# Whether dlopen of statically linked programs is supported. | ||
2021 | +dlopen_self_static=unknown | ||
2022 | + | ||
2023 | +# Compiler flag to prevent dynamic linking. | ||
2024 | +link_static_flag=-static | ||
2025 | + | ||
2026 | +# Compiler flag to turn off builtin functions. | ||
2027 | +no_builtin_flag= -fno-builtin -fno-rtti -fno-exceptions | ||
2028 | + | ||
2029 | +# Compiler flag to allow reflexive dlopens. | ||
2030 | +export_dynamic_flag_spec=${wl}--export-dynamic | ||
2031 | + | ||
2032 | +# Compiler flag to generate shared objects directly from archives. | ||
2033 | +whole_archive_flag_spec=${wl}--whole-archive$convenience ${wl}--no-whole-archive | ||
2034 | + | ||
2035 | +# Compiler flag to generate thread-safe objects. | ||
2036 | +thread_safe_flag_spec= | ||
2037 | + | ||
2038 | +# Library versioning type. | ||
2039 | +version_type=linux | ||
2040 | + | ||
2041 | +# Format of library name prefix. | ||
2042 | +libname_spec=lib$name | ||
2043 | + | ||
2044 | +# List of archive names. First name is the real one, the rest are links. | ||
2045 | +# The last name is the one that the linker finds with -lNAME. | ||
2046 | +library_names_spec=${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so | ||
2047 | + | ||
2048 | +# The coded name of the library, if different from the real name. | ||
2049 | +soname_spec=${libname}${release}.so$major | ||
2050 | + | ||
2051 | +# Commands used to build and install an old-style archive. | ||
2052 | +RANLIB=ranlib | ||
2053 | +old_archive_cmds=$AR cru $oldlib$oldobjs~$RANLIB $oldlib | ||
2054 | +old_postinstall_cmds=$RANLIB $oldlib~chmod 644 $oldlib | ||
2055 | +old_postuninstall_cmds= | ||
2056 | + | ||
2057 | +# Create an old-style archive from a shared archive. | ||
2058 | +old_archive_from_new_cmds= | ||
2059 | + | ||
2060 | +# Commands used to build and install a shared archive. | ||
2061 | +archive_cmds=$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib | ||
2062 | +archive_expsym_cmds=$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib | ||
2063 | +postinstall_cmds= | ||
2064 | +postuninstall_cmds= | ||
2065 | + | ||
2066 | +# Method to check whether dependent libraries are shared objects. | ||
2067 | +deplibs_check_method=unknown | ||
2068 | + | ||
2069 | +# Command to use when deplibs_check_method == file_magic. | ||
2070 | +file_magic_cmd= | ||
2071 | + | ||
2072 | +# Flag that allows shared libraries with undefined symbols to be built. | ||
2073 | +allow_undefined_flag= | ||
2074 | + | ||
2075 | +# Flag that forces no undefined symbols. | ||
2076 | +no_undefined_flag= | ||
2077 | + | ||
2078 | +# Commands used to finish a libtool library installation in a directory. | ||
2079 | +finish_cmds= | ||
2080 | + | ||
2081 | +# Same as above, but a single script fragment to be evaled but not shown. | ||
2082 | +finish_eval= | ||
2083 | + | ||
2084 | +# Take the output of nm and produce a listing of raw symbols and C names. | ||
2085 | +global_symbol_pipe=sed -n -e 's/^.*[ ]\([ABCDGISTW]\)[ ][ ]*\(\)\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2\3 \3/p' | ||
2086 | + | ||
2087 | +# Transform the output of nm in a proper C declaration | ||
2088 | +global_symbol_to_cdecl=sed -n -e 's/^. .* \(.*\)$/extern char \1;/p' | ||
2089 | + | ||
2090 | +# This is the shared library runtime path variable. | ||
2091 | +runpath_var=LD_RUN_PATH | ||
2092 | + | ||
2093 | +# This is the shared library path variable. | ||
2094 | +shlibpath_var=LD_LIBRARY_PATH | ||
2095 | + | ||
2096 | +# Is shlibpath searched before the hard-coded library search path? | ||
2097 | +shlibpath_overrides_runpath=unknown | ||
2098 | + | ||
2099 | +# How to hardcode a shared library path into an executable. | ||
2100 | +hardcode_action=immediate | ||
2101 | + | ||
2102 | +# Flag to hardcode $libdir into a binary during linking. | ||
2103 | +# This must work even if $libdir does not exist. | ||
2104 | +hardcode_libdir_flag_spec=${wl}--rpath ${wl}$libdir | ||
2105 | + | ||
2106 | +# Whether we need a single -rpath flag with a separated argument. | ||
2107 | +hardcode_libdir_separator= | ||
2108 | + | ||
2109 | +# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the | ||
2110 | +# resulting binary. | ||
2111 | +hardcode_direct=no | ||
2112 | + | ||
2113 | +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the | ||
2114 | +# resulting binary. | ||
2115 | +hardcode_minus_L=no | ||
2116 | + | ||
2117 | +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into | ||
2118 | +# the resulting binary. | ||
2119 | +hardcode_shlibpath_var=unsupported | ||
2120 | + | ||
2121 | +# Compile-time system search path for libraries | ||
2122 | +sys_lib_search_path_spec=/lib /usr/lib /usr/local/lib | ||
2123 | + | ||
2124 | +# Run-time system search path for libraries | ||
2125 | +sys_lib_dlsearch_path_spec=/lib /usr/lib | ||
2126 | + | ||
2127 | +# Fix the shell variable $srcfile for the compiler. | ||
2128 | +fix_srcfile_path="" | ||
2129 | + | ||
2130 | +# Set to yes if exported symbols are required. | ||
2131 | +always_export_symbols=no | ||
2132 | + | ||
2133 | +# The commands to list exported symbols. | ||
2134 | +export_symbols_cmds=$NM $libobjs $convenience | $global_symbol_pipe | sed 's/.* //' | sort | uniq > $export_symbols | ||
2135 | + | ||
2136 | +# Symbols that should not be listed in the preloaded symbols. | ||
2137 | +exclude_expsyms=_GLOBAL_OFFSET_TABLE_ | ||
2138 | + | ||
2139 | +# Symbols that must always be exported. | ||
2140 | +include_expsyms= | ||
2141 | + | ||
2142 | --- /dev/null | ||
2143 | +++ jpeg-6b/ltmain.new.sh | ||
2144 | @@ -0,0 +1,3975 @@ | ||
2145 | +# ltmain.sh - Provide generalized library-building support services. | ||
2146 | +# NOTE: Changing this file will not affect anything until you rerun ltconfig. | ||
2147 | +# | ||
2148 | +# Copyright (C) 1996-1999 Free Software Foundation, Inc. | ||
2149 | +# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 | ||
2150 | +# | ||
2151 | +# This program is free software; you can redistribute it and/or modify | ||
2152 | +# it under the terms of the GNU General Public License as published by | ||
2153 | +# the Free Software Foundation; either version 2 of the License, or | ||
2154 | +# (at your option) any later version. | ||
2155 | +# | ||
2156 | +# This program is distributed in the hope that it will be useful, but | ||
2157 | +# WITHOUT ANY WARRANTY; without even the implied warranty of | ||
2158 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
2159 | +# General Public License for more details. | ||
2160 | +# | ||
2161 | +# You should have received a copy of the GNU General Public License | ||
2162 | +# along with this program; if not, write to the Free Software | ||
2163 | +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
2164 | +# | ||
2165 | +# As a special exception to the GNU General Public License, if you | ||
2166 | +# distribute this file as part of a program that contains a | ||
2167 | +# configuration script generated by Autoconf, you may include it under | ||
2168 | +# the same distribution terms that you use for the rest of that program. | ||
2169 | + | ||
2170 | +# Check that we have a working $echo. | ||
2171 | +if test "X$1" = X--no-reexec; then | ||
2172 | + # Discard the --no-reexec flag, and continue. | ||
2173 | + shift | ||
2174 | +elif test "X$1" = X--fallback-echo; then | ||
2175 | + # Avoid inline document here, it may be left over | ||
2176 | + : | ||
2177 | +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then | ||
2178 | + # Yippee, $echo works! | ||
2179 | + : | ||
2180 | +else | ||
2181 | + # Restart under the correct shell, and then maybe $echo will work. | ||
2182 | + exec $SHELL "$0" --no-reexec ${1+"$@"} | ||
2183 | +fi | ||
2184 | + | ||
2185 | +if test "X$1" = X--fallback-echo; then | ||
2186 | + # used as fallback echo | ||
2187 | + shift | ||
2188 | + cat <<EOF | ||
2189 | +$* | ||
2190 | +EOF | ||
2191 | + exit 0 | ||
2192 | +fi | ||
2193 | + | ||
2194 | +# The name of this program. | ||
2195 | +progname=`$echo "$0" | sed 's%^.*/%%'` | ||
2196 | +modename="$progname" | ||
2197 | + | ||
2198 | +# Constants. | ||
2199 | +PROGRAM=ltmain.sh | ||
2200 | +PACKAGE=libtool | ||
2201 | +VERSION=1.3.3 | ||
2202 | +TIMESTAMP=" (1.385.2.181 1999/07/02 15:49:11)" | ||
2203 | + | ||
2204 | +default_mode= | ||
2205 | +help="Try \`$progname --help' for more information." | ||
2206 | +magic="%%%MAGIC variable%%%" | ||
2207 | +mkdir="mkdir" | ||
2208 | +mv="mv -f" | ||
2209 | +rm="rm -f" | ||
2210 | + | ||
2211 | +# Sed substitution that helps us do robust quoting. It backslashifies | ||
2212 | +# metacharacters that are still active within double-quoted strings. | ||
2213 | +Xsed='sed -e 1s/^X//' | ||
2214 | +sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' | ||
2215 | +SP2NL='tr \040 \012' | ||
2216 | +NL2SP='tr \015\012 \040\040' | ||
2217 | + | ||
2218 | +# NLS nuisances. | ||
2219 | +# Only set LANG and LC_ALL to C if already set. | ||
2220 | +# These must not be set unconditionally because not all systems understand | ||
2221 | +# e.g. LANG=C (notably SCO). | ||
2222 | +# We save the old values to restore during execute mode. | ||
2223 | +if test "${LC_ALL+set}" = set; then | ||
2224 | + save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL | ||
2225 | +fi | ||
2226 | +if test "${LANG+set}" = set; then | ||
2227 | + save_LANG="$LANG"; LANG=C; export LANG | ||
2228 | +fi | ||
2229 | + | ||
2230 | +if test "$LTCONFIG_VERSION" != "$VERSION"; then | ||
2231 | + echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 | ||
2232 | + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 | ||
2233 | + exit 1 | ||
2234 | +fi | ||
2235 | + | ||
2236 | +if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then | ||
2237 | + echo "$modename: not configured to build any kind of library" 1>&2 | ||
2238 | + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 | ||
2239 | + exit 1 | ||
2240 | +fi | ||
2241 | + | ||
2242 | +# Global variables. | ||
2243 | +mode=$default_mode | ||
2244 | +nonopt= | ||
2245 | +prev= | ||
2246 | +prevopt= | ||
2247 | +run= | ||
2248 | +show="$echo" | ||
2249 | +show_help= | ||
2250 | +execute_dlfiles= | ||
2251 | +lo2o="s/\\.lo\$/.${objext}/" | ||
2252 | +o2lo="s/\\.${objext}\$/.lo/" | ||
2253 | + | ||
2254 | +# Parse our command line options once, thoroughly. | ||
2255 | +while test $# -gt 0 | ||
2256 | +do | ||
2257 | + arg="$1" | ||
2258 | + shift | ||
2259 | + | ||
2260 | + case "$arg" in | ||
2261 | + -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; | ||
2262 | + *) optarg= ;; | ||
2263 | + esac | ||
2264 | + | ||
2265 | + # If the previous option needs an argument, assign it. | ||
2266 | + if test -n "$prev"; then | ||
2267 | + case "$prev" in | ||
2268 | + execute_dlfiles) | ||
2269 | + eval "$prev=\"\$$prev \$arg\"" | ||
2270 | + ;; | ||
2271 | + *) | ||
2272 | + eval "$prev=\$arg" | ||
2273 | + ;; | ||
2274 | + esac | ||
2275 | + | ||
2276 | + prev= | ||
2277 | + prevopt= | ||
2278 | + continue | ||
2279 | + fi | ||
2280 | + | ||
2281 | + # Have we seen a non-optional argument yet? | ||
2282 | + case "$arg" in | ||
2283 | + --help) | ||
2284 | + show_help=yes | ||
2285 | + ;; | ||
2286 | + | ||
2287 | + --version) | ||
2288 | + echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" | ||
2289 | + exit 0 | ||
2290 | + ;; | ||
2291 | + | ||
2292 | + --config) | ||
2293 | + sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0 | ||
2294 | + exit 0 | ||
2295 | + ;; | ||
2296 | + | ||
2297 | + --debug) | ||
2298 | + echo "$progname: enabling shell trace mode" | ||
2299 | + set -x | ||
2300 | + ;; | ||
2301 | + | ||
2302 | + --dry-run | -n) | ||
2303 | + run=: | ||
2304 | + ;; | ||
2305 | + | ||
2306 | + --features) | ||
2307 | + echo "host: $host" | ||
2308 | + if test "$build_libtool_libs" = yes; then | ||
2309 | + echo "enable shared libraries" | ||
2310 | + else | ||
2311 | + echo "disable shared libraries" | ||
2312 | + fi | ||
2313 | + if test "$build_old_libs" = yes; then | ||
2314 | + echo "enable static libraries" | ||
2315 | + else | ||
2316 | + echo "disable static libraries" | ||
2317 | + fi | ||
2318 | + exit 0 | ||
2319 | + ;; | ||
2320 | + | ||
2321 | + --finish) mode="finish" ;; | ||
2322 | + | ||
2323 | + --mode) prevopt="--mode" prev=mode ;; | ||
2324 | + --mode=*) mode="$optarg" ;; | ||
2325 | + | ||
2326 | + --quiet | --silent) | ||
2327 | + show=: | ||
2328 | + ;; | ||
2329 | + | ||
2330 | + -dlopen) | ||
2331 | + prevopt="-dlopen" | ||
2332 | + prev=execute_dlfiles | ||
2333 | + ;; | ||
2334 | + | ||
2335 | + -*) | ||
2336 | + $echo "$modename: unrecognized option \`$arg'" 1>&2 | ||
2337 | + $echo "$help" 1>&2 | ||
2338 | + exit 1 | ||
2339 | + ;; | ||
2340 | + | ||
2341 | + *) | ||
2342 | + nonopt="$arg" | ||
2343 | + break | ||
2344 | + ;; | ||
2345 | + esac | ||
2346 | +done | ||
2347 | + | ||
2348 | +if test -n "$prevopt"; then | ||
2349 | + $echo "$modename: option \`$prevopt' requires an argument" 1>&2 | ||
2350 | + $echo "$help" 1>&2 | ||
2351 | + exit 1 | ||
2352 | +fi | ||
2353 | + | ||
2354 | +if test -z "$show_help"; then | ||
2355 | + | ||
2356 | + # Infer the operation mode. | ||
2357 | + if test -z "$mode"; then | ||
2358 | + case "$nonopt" in | ||
2359 | + *cc | *++ | gcc* | *-gcc*) | ||
2360 | + mode=link | ||
2361 | + for arg | ||
2362 | + do | ||
2363 | + case "$arg" in | ||
2364 | + -c) | ||
2365 | + mode=compile | ||
2366 | + break | ||
2367 | + ;; | ||
2368 | + esac | ||
2369 | + done | ||
2370 | + ;; | ||
2371 | + *db | *dbx | *strace | *truss) | ||
2372 | + mode=execute | ||
2373 | + ;; | ||
2374 | + *install*|cp|mv) | ||
2375 | + mode=install | ||
2376 | + ;; | ||
2377 | + *rm) | ||
2378 | + mode=uninstall | ||
2379 | + ;; | ||
2380 | + *) | ||
2381 | + # If we have no mode, but dlfiles were specified, then do execute mode. | ||
2382 | + test -n "$execute_dlfiles" && mode=execute | ||
2383 | + | ||
2384 | + # Just use the default operation mode. | ||
2385 | + if test -z "$mode"; then | ||
2386 | + if test -n "$nonopt"; then | ||
2387 | + $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 | ||
2388 | + else | ||
2389 | + $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 | ||
2390 | + fi | ||
2391 | + fi | ||
2392 | + ;; | ||
2393 | + esac | ||
2394 | + fi | ||
2395 | + | ||
2396 | + # Only execute mode is allowed to have -dlopen flags. | ||
2397 | + if test -n "$execute_dlfiles" && test "$mode" != execute; then | ||
2398 | + $echo "$modename: unrecognized option \`-dlopen'" 1>&2 | ||
2399 | + $echo "$help" 1>&2 | ||
2400 | + exit 1 | ||
2401 | + fi | ||
2402 | + | ||
2403 | + # Change the help message to a mode-specific one. | ||
2404 | + generic_help="$help" | ||
2405 | + help="Try \`$modename --help --mode=$mode' for more information." | ||
2406 | + | ||
2407 | + # These modes are in order of execution frequency so that they run quickly. | ||
2408 | + case "$mode" in | ||
2409 | + # libtool compile mode | ||
2410 | + compile) | ||
2411 | + modename="$modename: compile" | ||
2412 | + # Get the compilation command and the source file. | ||
2413 | + base_compile= | ||
2414 | + lastarg= | ||
2415 | + srcfile="$nonopt" | ||
2416 | + suppress_output= | ||
2417 | + | ||
2418 | + user_target=no | ||
2419 | + for arg | ||
2420 | + do | ||
2421 | + # Accept any command-line options. | ||
2422 | + case "$arg" in | ||
2423 | + -o) | ||
2424 | + if test "$user_target" != "no"; then | ||
2425 | + $echo "$modename: you cannot specify \`-o' more than once" 1>&2 | ||
2426 | + exit 1 | ||
2427 | + fi | ||
2428 | + user_target=next | ||
2429 | + ;; | ||
2430 | + | ||
2431 | + -static) | ||
2432 | + build_old_libs=yes | ||
2433 | + continue | ||
2434 | + ;; | ||
2435 | + esac | ||
2436 | + | ||
2437 | + case "$user_target" in | ||
2438 | + next) | ||
2439 | + # The next one is the -o target name | ||
2440 | + user_target=yes | ||
2441 | + continue | ||
2442 | + ;; | ||
2443 | + yes) | ||
2444 | + # We got the output file | ||
2445 | + user_target=set | ||
2446 | + libobj="$arg" | ||
2447 | + continue | ||
2448 | + ;; | ||
2449 | + esac | ||
2450 | + | ||
2451 | + # Accept the current argument as the source file. | ||
2452 | + lastarg="$srcfile" | ||
2453 | + srcfile="$arg" | ||
2454 | + | ||
2455 | + # Aesthetically quote the previous argument. | ||
2456 | + | ||
2457 | + # Backslashify any backslashes, double quotes, and dollar signs. | ||
2458 | + # These are the only characters that are still specially | ||
2459 | + # interpreted inside of double-quoted scrings. | ||
2460 | + lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` | ||
2461 | + | ||
2462 | + # Double-quote args containing other shell metacharacters. | ||
2463 | + # Many Bourne shells cannot handle close brackets correctly in scan | ||
2464 | + # sets, so we specify it separately. | ||
2465 | + case "$lastarg" in | ||
2466 | + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) | ||
2467 | + lastarg="\"$lastarg\"" | ||
2468 | + ;; | ||
2469 | + esac | ||
2470 | + | ||
2471 | + # Add the previous argument to base_compile. | ||
2472 | + if test -z "$base_compile"; then | ||
2473 | + base_compile="$lastarg" | ||
2474 | + else | ||
2475 | + base_compile="$base_compile $lastarg" | ||
2476 | + fi | ||
2477 | + done | ||
2478 | + | ||
2479 | + case "$user_target" in | ||
2480 | + set) | ||
2481 | + ;; | ||
2482 | + no) | ||
2483 | + # Get the name of the library object. | ||
2484 | + libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` | ||
2485 | + ;; | ||
2486 | + *) | ||
2487 | + $echo "$modename: you must specify a target with \`-o'" 1>&2 | ||
2488 | + exit 1 | ||
2489 | + ;; | ||
2490 | + esac | ||
2491 | + | ||
2492 | + # Recognize several different file suffixes. | ||
2493 | + # If the user specifies -o file.o, it is replaced with file.lo | ||
2494 | + xform='[cCFSfmso]' | ||
2495 | + case "$libobj" in | ||
2496 | + *.ada) xform=ada ;; | ||
2497 | + *.adb) xform=adb ;; | ||
2498 | + *.ads) xform=ads ;; | ||
2499 | + *.asm) xform=asm ;; | ||
2500 | + *.c++) xform=c++ ;; | ||
2501 | + *.cc) xform=cc ;; | ||
2502 | + *.cpp) xform=cpp ;; | ||
2503 | + *.cxx) xform=cxx ;; | ||
2504 | + *.f90) xform=f90 ;; | ||
2505 | + *.for) xform=for ;; | ||
2506 | + esac | ||
2507 | + | ||
2508 | + libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` | ||
2509 | + | ||
2510 | + case "$libobj" in | ||
2511 | + *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; | ||
2512 | + *) | ||
2513 | + $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 | ||
2514 | + exit 1 | ||
2515 | + ;; | ||
2516 | + esac | ||
2517 | + | ||
2518 | + if test -z "$base_compile"; then | ||
2519 | + $echo "$modename: you must specify a compilation command" 1>&2 | ||
2520 | + $echo "$help" 1>&2 | ||
2521 | + exit 1 | ||
2522 | + fi | ||
2523 | + | ||
2524 | + # Delete any leftover library objects. | ||
2525 | + if test "$build_old_libs" = yes; then | ||
2526 | + removelist="$obj $libobj" | ||
2527 | + else | ||
2528 | + removelist="$libobj" | ||
2529 | + fi | ||
2530 | + | ||
2531 | + $run $rm $removelist | ||
2532 | + trap "$run $rm $removelist; exit 1" 1 2 15 | ||
2533 | + | ||
2534 | + # Calculate the filename of the output object if compiler does | ||
2535 | + # not support -o with -c | ||
2536 | + if test "$compiler_c_o" = no; then | ||
2537 | + output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\..*$%%'`.${objext} | ||
2538 | + lockfile="$output_obj.lock" | ||
2539 | + removelist="$removelist $output_obj $lockfile" | ||
2540 | + trap "$run $rm $removelist; exit 1" 1 2 15 | ||
2541 | + else | ||
2542 | + need_locks=no | ||
2543 | + lockfile= | ||
2544 | + fi | ||
2545 | + | ||
2546 | + # Lock this critical section if it is needed | ||
2547 | + # We use this script file to make the link, it avoids creating a new file | ||
2548 | + if test "$need_locks" = yes; then | ||
2549 | + until ln "$0" "$lockfile" 2>/dev/null; do | ||
2550 | + $show "Waiting for $lockfile to be removed" | ||
2551 | + sleep 2 | ||
2552 | + done | ||
2553 | + elif test "$need_locks" = warn; then | ||
2554 | + if test -f "$lockfile"; then | ||
2555 | + echo "\ | ||
2556 | +*** ERROR, $lockfile exists and contains: | ||
2557 | +`cat $lockfile 2>/dev/null` | ||
2558 | + | ||
2559 | +This indicates that another process is trying to use the same | ||
2560 | +temporary object file, and libtool could not work around it because | ||
2561 | +your compiler does not support \`-c' and \`-o' together. If you | ||
2562 | +repeat this compilation, it may succeed, by chance, but you had better | ||
2563 | +avoid parallel builds (make -j) in this platform, or get a better | ||
2564 | +compiler." | ||
2565 | + | ||
2566 | + $run $rm $removelist | ||
2567 | + exit 1 | ||
2568 | + fi | ||
2569 | + echo $srcfile > "$lockfile" | ||
2570 | + fi | ||
2571 | + | ||
2572 | + if test -n "$fix_srcfile_path"; then | ||
2573 | + eval srcfile=\"$fix_srcfile_path\" | ||
2574 | + fi | ||
2575 | + | ||
2576 | + # Only build a PIC object if we are building libtool libraries. | ||
2577 | + if test "$build_libtool_libs" = yes; then | ||
2578 | + # Without this assignment, base_compile gets emptied. | ||
2579 | + fbsd_hideous_sh_bug=$base_compile | ||
2580 | + | ||
2581 | + # All platforms use -DPIC, to notify preprocessed assembler code. | ||
2582 | + command="$base_compile $pic_flag -DPIC $srcfile" | ||
2583 | + if test "$build_old_libs" = yes; then | ||
2584 | + lo_libobj="$libobj" | ||
2585 | + dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` | ||
2586 | + if test "X$dir" = "X$libobj"; then | ||
2587 | + dir="$objdir" | ||
2588 | + else | ||
2589 | + dir="$dir/$objdir" | ||
2590 | + fi | ||
2591 | + libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` | ||
2592 | + | ||
2593 | + if test -d "$dir"; then | ||
2594 | + $show "$rm $libobj" | ||
2595 | + $run $rm $libobj | ||
2596 | + else | ||
2597 | + $show "$mkdir $dir" | ||
2598 | + $run $mkdir $dir | ||
2599 | + status=$? | ||
2600 | + if test $status -ne 0 && test ! -d $dir; then | ||
2601 | + exit $status | ||
2602 | + fi | ||
2603 | + fi | ||
2604 | + fi | ||
2605 | + if test "$compiler_o_lo" = yes; then | ||
2606 | + output_obj="$libobj" | ||
2607 | + command="$command -o $output_obj" | ||
2608 | + elif test "$compiler_c_o" = yes; then | ||
2609 | + output_obj="$obj" | ||
2610 | + command="$command -o $output_obj" | ||
2611 | + fi | ||
2612 | + | ||
2613 | + $run $rm "$output_obj" | ||
2614 | + $show "$command" | ||
2615 | + if $run eval "$command"; then : | ||
2616 | + else | ||
2617 | + test -n "$output_obj" && $run $rm $removelist | ||
2618 | + exit 1 | ||
2619 | + fi | ||
2620 | + | ||
2621 | + if test "$need_locks" = warn && | ||
2622 | + test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then | ||
2623 | + echo "\ | ||
2624 | +*** ERROR, $lockfile contains: | ||
2625 | +`cat $lockfile 2>/dev/null` | ||
2626 | + | ||
2627 | +but it should contain: | ||
2628 | +$srcfile | ||
2629 | + | ||
2630 | +This indicates that another process is trying to use the same | ||
2631 | +temporary object file, and libtool could not work around it because | ||
2632 | +your compiler does not support \`-c' and \`-o' together. If you | ||
2633 | +repeat this compilation, it may succeed, by chance, but you had better | ||
2634 | +avoid parallel builds (make -j) in this platform, or get a better | ||
2635 | +compiler." | ||
2636 | + | ||
2637 | + $run $rm $removelist | ||
2638 | + exit 1 | ||
2639 | + fi | ||
2640 | + | ||
2641 | + # Just move the object if needed, then go on to compile the next one | ||
2642 | + if test x"$output_obj" != x"$libobj"; then | ||
2643 | + $show "$mv $output_obj $libobj" | ||
2644 | + if $run $mv $output_obj $libobj; then : | ||
2645 | + else | ||
2646 | + error=$? | ||
2647 | + $run $rm $removelist | ||
2648 | + exit $error | ||
2649 | + fi | ||
2650 | + fi | ||
2651 | + | ||
2652 | + # If we have no pic_flag, then copy the object into place and finish. | ||
2653 | + if test -z "$pic_flag" && test "$build_old_libs" = yes; then | ||
2654 | + # Rename the .lo from within objdir to obj | ||
2655 | + if test -f $obj; then | ||
2656 | + $show $rm $obj | ||
2657 | + $run $rm $obj | ||
2658 | + fi | ||
2659 | + | ||
2660 | + $show "$mv $libobj $obj" | ||
2661 | + if $run $mv $libobj $obj; then : | ||
2662 | + else | ||
2663 | + error=$? | ||
2664 | + $run $rm $removelist | ||
2665 | + exit $error | ||
2666 | + fi | ||
2667 | + | ||
2668 | + # Now arrange that obj and lo_libobj become the same file | ||
2669 | + $show "$LN_S $obj $lo_libobj" | ||
2670 | + if $run $LN_S $obj $lo_libobj; then | ||
2671 | + exit 0 | ||
2672 | + else | ||
2673 | + error=$? | ||
2674 | + $run $rm $removelist | ||
2675 | + exit $error | ||
2676 | + fi | ||
2677 | + fi | ||
2678 | + | ||
2679 | + # Allow error messages only from the first compilation. | ||
2680 | + suppress_output=' >/dev/null 2>&1' | ||
2681 | + fi | ||
2682 | + | ||
2683 | + # Only build a position-dependent object if we build old libraries. | ||
2684 | + if test "$build_old_libs" = yes; then | ||
2685 | + command="$base_compile $srcfile" | ||
2686 | + if test "$compiler_c_o" = yes; then | ||
2687 | + command="$command -o $obj" | ||
2688 | + output_obj="$obj" | ||
2689 | + fi | ||
2690 | + | ||
2691 | + # Suppress compiler output if we already did a PIC compilation. | ||
2692 | + command="$command$suppress_output" | ||
2693 | + $run $rm "$output_obj" | ||
2694 | + $show "$command" | ||
2695 | + if $run eval "$command"; then : | ||
2696 | + else | ||
2697 | + $run $rm $removelist | ||
2698 | + exit 1 | ||
2699 | + fi | ||
2700 | + | ||
2701 | + if test "$need_locks" = warn && | ||
2702 | + test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then | ||
2703 | + echo "\ | ||
2704 | +*** ERROR, $lockfile contains: | ||
2705 | +`cat $lockfile 2>/dev/null` | ||
2706 | + | ||
2707 | +but it should contain: | ||
2708 | +$srcfile | ||
2709 | + | ||
2710 | +This indicates that another process is trying to use the same | ||
2711 | +temporary object file, and libtool could not work around it because | ||
2712 | +your compiler does not support \`-c' and \`-o' together. If you | ||
2713 | +repeat this compilation, it may succeed, by chance, but you had better | ||
2714 | +avoid parallel builds (make -j) in this platform, or get a better | ||
2715 | +compiler." | ||
2716 | + | ||
2717 | + $run $rm $removelist | ||
2718 | + exit 1 | ||
2719 | + fi | ||
2720 | + | ||
2721 | + # Just move the object if needed | ||
2722 | + if test x"$output_obj" != x"$obj"; then | ||
2723 | + $show "$mv $output_obj $obj" | ||
2724 | + if $run $mv $output_obj $obj; then : | ||
2725 | + else | ||
2726 | + error=$? | ||
2727 | + $run $rm $removelist | ||
2728 | + exit $error | ||
2729 | + fi | ||
2730 | + fi | ||
2731 | + | ||
2732 | + # Create an invalid libtool object if no PIC, so that we do not | ||
2733 | + # accidentally link it into a program. | ||
2734 | + if test "$build_libtool_libs" != yes; then | ||
2735 | + $show "echo timestamp > $libobj" | ||
2736 | + $run eval "echo timestamp > \$libobj" || exit $? | ||
2737 | + else | ||
2738 | + # Move the .lo from within objdir | ||
2739 | + $show "$mv $libobj $lo_libobj" | ||
2740 | + if $run $mv $libobj $lo_libobj; then : | ||
2741 | + else | ||
2742 | + error=$? | ||
2743 | + $run $rm $removelist | ||
2744 | + exit $error | ||
2745 | + fi | ||
2746 | + fi | ||
2747 | + fi | ||
2748 | + | ||
2749 | + # Unlock the critical section if it was locked | ||
2750 | + if test "$need_locks" != no; then | ||
2751 | + $rm "$lockfile" | ||
2752 | + fi | ||
2753 | + | ||
2754 | + exit 0 | ||
2755 | + ;; | ||
2756 | + | ||
2757 | + # libtool link mode | ||
2758 | + link) | ||
2759 | + modename="$modename: link" | ||
2760 | + C_compiler="$CC" # save it, to compile generated C sources | ||
2761 | + CC="$nonopt" | ||
2762 | + case "$host" in | ||
2763 | + *-*-cygwin* | *-*-mingw* | *-*-os2*) | ||
2764 | + # It is impossible to link a dll without this setting, and | ||
2765 | + # we shouldn't force the makefile maintainer to figure out | ||
2766 | + # which system we are compiling for in order to pass an extra | ||
2767 | + # flag for every libtool invokation. | ||
2768 | + # allow_undefined=no | ||
2769 | + | ||
2770 | + # FIXME: Unfortunately, there are problems with the above when trying | ||
2771 | + # to make a dll which has undefined symbols, in which case not | ||
2772 | + # even a static library is built. For now, we need to specify | ||
2773 | + # -no-undefined on the libtool link line when we can be certain | ||
2774 | + # that all symbols are satisfied, otherwise we get a static library. | ||
2775 | + allow_undefined=yes | ||
2776 | + | ||
2777 | + # This is a source program that is used to create dlls on Windows | ||
2778 | + # Don't remove nor modify the starting and closing comments | ||
2779 | +# /* ltdll.c starts here */ | ||
2780 | +# #define WIN32_LEAN_AND_MEAN | ||
2781 | +# #include <windows.h> | ||
2782 | +# #undef WIN32_LEAN_AND_MEAN | ||
2783 | +# #include <stdio.h> | ||
2784 | +# | ||
2785 | +# #ifndef __CYGWIN__ | ||
2786 | +# # ifdef __CYGWIN32__ | ||
2787 | +# # define __CYGWIN__ __CYGWIN32__ | ||
2788 | +# # endif | ||
2789 | +# #endif | ||
2790 | +# | ||
2791 | +# #ifdef __cplusplus | ||
2792 | +# extern "C" { | ||
2793 | +# #endif | ||
2794 | +# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); | ||
2795 | +# #ifdef __cplusplus | ||
2796 | +# } | ||
2797 | +# #endif | ||
2798 | +# | ||
2799 | +# #ifdef __CYGWIN__ | ||
2800 | +# #include <cygwin/cygwin_dll.h> | ||
2801 | +# DECLARE_CYGWIN_DLL( DllMain ); | ||
2802 | +# #endif | ||
2803 | +# HINSTANCE __hDllInstance_base; | ||
2804 | +# | ||
2805 | +# BOOL APIENTRY | ||
2806 | +# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) | ||
2807 | +# { | ||
2808 | +# __hDllInstance_base = hInst; | ||
2809 | +# return TRUE; | ||
2810 | +# } | ||
2811 | +# /* ltdll.c ends here */ | ||
2812 | + # This is a source program that is used to create import libraries | ||
2813 | + # on Windows for dlls which lack them. Don't remove nor modify the | ||
2814 | + # starting and closing comments | ||
2815 | +# /* impgen.c starts here */ | ||
2816 | +# /* Copyright (C) 1999 Free Software Foundation, Inc. | ||
2817 | +# | ||
2818 | +# This file is part of GNU libtool. | ||
2819 | +# | ||
2820 | +# This program is free software; you can redistribute it and/or modify | ||
2821 | +# it under the terms of the GNU General Public License as published by | ||
2822 | +# the Free Software Foundation; either version 2 of the License, or | ||
2823 | +# (at your option) any later version. | ||
2824 | +# | ||
2825 | +# This program is distributed in the hope that it will be useful, | ||
2826 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
2827 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
2828 | +# GNU General Public License for more details. | ||
2829 | +# | ||
2830 | +# You should have received a copy of the GNU General Public License | ||
2831 | +# along with this program; if not, write to the Free Software | ||
2832 | +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
2833 | +# */ | ||
2834 | +# | ||
2835 | +# #include <stdio.h> /* for printf() */ | ||
2836 | +# #include <unistd.h> /* for open(), lseek(), read() */ | ||
2837 | +# #include <fcntl.h> /* for O_RDONLY, O_BINARY */ | ||
2838 | +# #include <string.h> /* for strdup() */ | ||
2839 | +# | ||
2840 | +# static unsigned int | ||
2841 | +# pe_get16 (fd, offset) | ||
2842 | +# int fd; | ||
2843 | +# int offset; | ||
2844 | +# { | ||
2845 | +# unsigned char b[2]; | ||
2846 | +# lseek (fd, offset, SEEK_SET); | ||
2847 | +# read (fd, b, 2); | ||
2848 | +# return b[0] + (b[1]<<8); | ||
2849 | +# } | ||
2850 | +# | ||
2851 | +# static unsigned int | ||
2852 | +# pe_get32 (fd, offset) | ||
2853 | +# int fd; | ||
2854 | +# int offset; | ||
2855 | +# { | ||
2856 | +# unsigned char b[4]; | ||
2857 | +# lseek (fd, offset, SEEK_SET); | ||
2858 | +# read (fd, b, 4); | ||
2859 | +# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); | ||
2860 | +# } | ||
2861 | +# | ||
2862 | +# static unsigned int | ||
2863 | +# pe_as32 (ptr) | ||
2864 | +# void *ptr; | ||
2865 | +# { | ||
2866 | +# unsigned char *b = ptr; | ||
2867 | +# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); | ||
2868 | +# } | ||
2869 | +# | ||
2870 | +# int | ||
2871 | +# main (argc, argv) | ||
2872 | +# int argc; | ||
2873 | +# char *argv[]; | ||
2874 | +# { | ||
2875 | +# int dll; | ||
2876 | +# unsigned long pe_header_offset, opthdr_ofs, num_entries, i; | ||
2877 | +# unsigned long export_rva, export_size, nsections, secptr, expptr; | ||
2878 | +# unsigned long name_rvas, nexp; | ||
2879 | +# unsigned char *expdata, *erva; | ||
2880 | +# char *filename, *dll_name; | ||
2881 | +# | ||
2882 | +# filename = argv[1]; | ||
2883 | +# | ||
2884 | +# dll = open(filename, O_RDONLY|O_BINARY); | ||
2885 | +# if (!dll) | ||
2886 | +# return 1; | ||
2887 | +# | ||
2888 | +# dll_name = filename; | ||
2889 | +# | ||
2890 | +# for (i=0; filename[i]; i++) | ||
2891 | +# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') | ||
2892 | +# dll_name = filename + i +1; | ||
2893 | +# | ||
2894 | +# pe_header_offset = pe_get32 (dll, 0x3c); | ||
2895 | +# opthdr_ofs = pe_header_offset + 4 + 20; | ||
2896 | +# num_entries = pe_get32 (dll, opthdr_ofs + 92); | ||
2897 | +# | ||
2898 | +# if (num_entries < 1) /* no exports */ | ||
2899 | +# return 1; | ||
2900 | +# | ||
2901 | +# export_rva = pe_get32 (dll, opthdr_ofs + 96); | ||
2902 | +# export_size = pe_get32 (dll, opthdr_ofs + 100); | ||
2903 | +# nsections = pe_get16 (dll, pe_header_offset + 4 +2); | ||
2904 | +# secptr = (pe_header_offset + 4 + 20 + | ||
2905 | +# pe_get16 (dll, pe_header_offset + 4 + 16)); | ||
2906 | +# | ||
2907 | +# expptr = 0; | ||
2908 | +# for (i = 0; i < nsections; i++) | ||
2909 | +# { | ||
2910 | +# char sname[8]; | ||
2911 | +# unsigned long secptr1 = secptr + 40 * i; | ||
2912 | +# unsigned long vaddr = pe_get32 (dll, secptr1 + 12); | ||
2913 | +# unsigned long vsize = pe_get32 (dll, secptr1 + 16); | ||
2914 | +# unsigned long fptr = pe_get32 (dll, secptr1 + 20); | ||
2915 | +# lseek(dll, secptr1, SEEK_SET); | ||
2916 | +# read(dll, sname, 8); | ||
2917 | +# if (vaddr <= export_rva && vaddr+vsize > export_rva) | ||
2918 | +# { | ||
2919 | +# expptr = fptr + (export_rva - vaddr); | ||
2920 | +# if (export_rva + export_size > vaddr + vsize) | ||
2921 | +# export_size = vsize - (export_rva - vaddr); | ||
2922 | +# break; | ||
2923 | +# } | ||
2924 | +# } | ||
2925 | +# | ||
2926 | +# expdata = (unsigned char*)malloc(export_size); | ||
2927 | +# lseek (dll, expptr, SEEK_SET); | ||
2928 | +# read (dll, expdata, export_size); | ||
2929 | +# erva = expdata - export_rva; | ||
2930 | +# | ||
2931 | +# nexp = pe_as32 (expdata+24); | ||
2932 | +# name_rvas = pe_as32 (expdata+32); | ||
2933 | +# | ||
2934 | +# printf ("EXPORTS\n"); | ||
2935 | +# for (i = 0; i<nexp; i++) | ||
2936 | +# { | ||
2937 | +# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4); | ||
2938 | +# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i); | ||
2939 | +# } | ||
2940 | +# | ||
2941 | +# return 0; | ||
2942 | +# } | ||
2943 | +# /* impgen.c ends here */ | ||
2944 | + ;; | ||
2945 | + *) | ||
2946 | + allow_undefined=yes | ||
2947 | + ;; | ||
2948 | + esac | ||
2949 | + compile_command="$CC" | ||
2950 | + finalize_command="$CC" | ||
2951 | + | ||
2952 | + compile_rpath= | ||
2953 | + finalize_rpath= | ||
2954 | + compile_shlibpath= | ||
2955 | + finalize_shlibpath= | ||
2956 | + convenience= | ||
2957 | + old_convenience= | ||
2958 | + deplibs= | ||
2959 | + linkopts= | ||
2960 | + | ||
2961 | + if test -n "$shlibpath_var"; then | ||
2962 | + # get the directories listed in $shlibpath_var | ||
2963 | + eval lib_search_path=\`\$echo \"X \${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` | ||
2964 | + else | ||
2965 | + lib_search_path= | ||
2966 | + fi | ||
2967 | + # now prepend the system-specific ones | ||
2968 | + eval lib_search_path=\"$sys_lib_search_path_spec\$lib_search_path\" | ||
2969 | + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" | ||
2970 | + | ||
2971 | + avoid_version=no | ||
2972 | + dlfiles= | ||
2973 | + dlprefiles= | ||
2974 | + dlself=no | ||
2975 | + export_dynamic=no | ||
2976 | + export_symbols= | ||
2977 | + export_symbols_regex= | ||
2978 | + generated= | ||
2979 | + libobjs= | ||
2980 | + link_against_libtool_libs= | ||
2981 | + ltlibs= | ||
2982 | + module=no | ||
2983 | + objs= | ||
2984 | + prefer_static_libs=no | ||
2985 | + preload=no | ||
2986 | + prev= | ||
2987 | + prevarg= | ||
2988 | + release= | ||
2989 | + rpath= | ||
2990 | + xrpath= | ||
2991 | + perm_rpath= | ||
2992 | + temp_rpath= | ||
2993 | + thread_safe=no | ||
2994 | + vinfo= | ||
2995 | + | ||
2996 | + # We need to know -static, to get the right output filenames. | ||
2997 | + for arg | ||
2998 | + do | ||
2999 | + case "$arg" in | ||
3000 | + -all-static | -static) | ||
3001 | + if test "X$arg" = "X-all-static"; then | ||
3002 | + if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then | ||
3003 | + $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 | ||
3004 | + fi | ||
3005 | + if test -n "$link_static_flag"; then | ||
3006 | + dlopen_self=$dlopen_self_static | ||
3007 | + fi | ||
3008 | + else | ||
3009 | + if test -z "$pic_flag" && test -n "$link_static_flag"; then | ||
3010 | + dlopen_self=$dlopen_self_static | ||
3011 | + fi | ||
3012 | + fi | ||
3013 | + build_libtool_libs=no | ||
3014 | + build_old_libs=yes | ||
3015 | + prefer_static_libs=yes | ||
3016 | + break | ||
3017 | + ;; | ||
3018 | + esac | ||
3019 | + done | ||
3020 | + | ||
3021 | + # See if our shared archives depend on static archives. | ||
3022 | + test -n "$old_archive_from_new_cmds" && build_old_libs=yes | ||
3023 | + | ||
3024 | + # Go through the arguments, transforming them on the way. | ||
3025 | + while test $# -gt 0; do | ||
3026 | + arg="$1" | ||
3027 | + shift | ||
3028 | + | ||
3029 | + # If the previous option needs an argument, assign it. | ||
3030 | + if test -n "$prev"; then | ||
3031 | + case "$prev" in | ||
3032 | + output) | ||
3033 | + compile_command="$compile_command @OUTPUT@" | ||
3034 | + finalize_command="$finalize_command @OUTPUT@" | ||
3035 | + ;; | ||
3036 | + esac | ||
3037 | + | ||
3038 | + case "$prev" in | ||
3039 | + dlfiles|dlprefiles) | ||
3040 | + if test "$preload" = no; then | ||
3041 | + # Add the symbol object into the linking commands. | ||
3042 | + compile_command="$compile_command @SYMFILE@" | ||
3043 | + finalize_command="$finalize_command @SYMFILE@" | ||
3044 | + preload=yes | ||
3045 | + fi | ||
3046 | + case "$arg" in | ||
3047 | + *.la | *.lo) ;; # We handle these cases below. | ||
3048 | + force) | ||
3049 | + if test "$dlself" = no; then | ||
3050 | + dlself=needless | ||
3051 | + export_dynamic=yes | ||
3052 | + fi | ||
3053 | + prev= | ||
3054 | + continue | ||
3055 | + ;; | ||
3056 | + self) | ||
3057 | + if test "$prev" = dlprefiles; then | ||
3058 | + dlself=yes | ||
3059 | + elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then | ||
3060 | + dlself=yes | ||
3061 | + else | ||
3062 | + dlself=needless | ||
3063 | + export_dynamic=yes | ||
3064 | + fi | ||
3065 | + prev= | ||
3066 | + continue | ||
3067 | + ;; | ||
3068 | + *) | ||
3069 | + if test "$prev" = dlfiles; then | ||
3070 | + dlfiles="$dlfiles $arg" | ||
3071 | + else | ||
3072 | + dlprefiles="$dlprefiles $arg" | ||
3073 | + fi | ||
3074 | + prev= | ||
3075 | + ;; | ||
3076 | + esac | ||
3077 | + ;; | ||
3078 | + expsyms) | ||
3079 | + export_symbols="$arg" | ||
3080 | + if test ! -f "$arg"; then | ||
3081 | + $echo "$modename: symbol file \`$arg' does not exist" | ||
3082 | + exit 1 | ||
3083 | + fi | ||
3084 | + prev= | ||
3085 | + continue | ||
3086 | + ;; | ||
3087 | + expsyms_regex) | ||
3088 | + export_symbols_regex="$arg" | ||
3089 | + prev= | ||
3090 | + continue | ||
3091 | + ;; | ||
3092 | + release) | ||
3093 | + release="-$arg" | ||
3094 | + prev= | ||
3095 | + continue | ||
3096 | + ;; | ||
3097 | + rpath | xrpath) | ||
3098 | + # We need an absolute path. | ||
3099 | + case "$arg" in | ||
3100 | + [\\/]* | [A-Za-z]:[\\/]*) ;; | ||
3101 | + *) | ||
3102 | + $echo "$modename: only absolute run-paths are allowed" 1>&2 | ||
3103 | + exit 1 | ||
3104 | + ;; | ||
3105 | + esac | ||
3106 | + if test "$prev" = rpath; then | ||
3107 | + case "$rpath " in | ||
3108 | + *" $arg "*) ;; | ||
3109 | + *) rpath="$rpath $arg" ;; | ||
3110 | + esac | ||
3111 | + else | ||
3112 | + case "$xrpath " in | ||
3113 | + *" $arg "*) ;; | ||
3114 | + *) xrpath="$xrpath $arg" ;; | ||
3115 | + esac | ||
3116 | + fi | ||
3117 | + prev= | ||
3118 | + continue | ||
3119 | + ;; | ||
3120 | + *) | ||
3121 | + eval "$prev=\"\$arg\"" | ||
3122 | + prev= | ||
3123 | + continue | ||
3124 | + ;; | ||
3125 | + esac | ||
3126 | + fi | ||
3127 | + | ||
3128 | + prevarg="$arg" | ||
3129 | + | ||
3130 | + case "$arg" in | ||
3131 | + -all-static) | ||
3132 | + if test -n "$link_static_flag"; then | ||
3133 | + compile_command="$compile_command $link_static_flag" | ||
3134 | + finalize_command="$finalize_command $link_static_flag" | ||
3135 | + fi | ||
3136 | + continue | ||
3137 | + ;; | ||
3138 | + | ||
3139 | + -allow-undefined) | ||
3140 | + # FIXME: remove this flag sometime in the future. | ||
3141 | + $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 | ||
3142 | + continue | ||
3143 | + ;; | ||
3144 | + | ||
3145 | + -avoid-version) | ||
3146 | + avoid_version=yes | ||
3147 | + continue | ||
3148 | + ;; | ||
3149 | + | ||
3150 | + -dlopen) | ||
3151 | + prev=dlfiles | ||
3152 | + continue | ||
3153 | + ;; | ||
3154 | + | ||
3155 | + -dlpreopen) | ||
3156 | + prev=dlprefiles | ||
3157 | + continue | ||
3158 | + ;; | ||
3159 | + | ||
3160 | + -export-dynamic) | ||
3161 | + export_dynamic=yes | ||
3162 | + continue | ||
3163 | + ;; | ||
3164 | + | ||
3165 | + -export-symbols | -export-symbols-regex) | ||
3166 | + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then | ||
3167 | + $echo "$modename: not more than one -exported-symbols argument allowed" | ||
3168 | + exit 1 | ||
3169 | + fi | ||
3170 | + if test "X$arg" = "X-export-symbols"; then | ||
3171 | + prev=expsyms | ||
3172 | + else | ||
3173 | + prev=expsyms_regex | ||
3174 | + fi | ||
3175 | + continue | ||
3176 | + ;; | ||
3177 | + | ||
3178 | + -L*) | ||
3179 | + dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` | ||
3180 | + # We need an absolute path. | ||
3181 | + case "$dir" in | ||
3182 | + [\\/]* | [A-Za-z]:[\\/]*) ;; | ||
3183 | + *) | ||
3184 | + absdir=`cd "$dir" && pwd` | ||
3185 | + if test -z "$absdir"; then | ||
3186 | + $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 | ||
3187 | + $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 | ||
3188 | + absdir="$dir" | ||
3189 | + fi | ||
3190 | + dir="$absdir" | ||
3191 | + ;; | ||
3192 | + esac | ||
3193 | + case " $deplibs " in | ||
3194 | + *" $arg "*) ;; | ||
3195 | + *) deplibs="$deplibs $arg";; | ||
3196 | + esac | ||
3197 | + case " $lib_search_path " in | ||
3198 | + *" $dir "*) ;; | ||
3199 | + *) lib_search_path="$lib_search_path $dir";; | ||
3200 | + esac | ||
3201 | + case "$host" in | ||
3202 | + *-*-cygwin* | *-*-mingw* | *-*-os2*) | ||
3203 | + dllsearchdir=`cd "$dir" && pwd || echo "$dir"` | ||
3204 | + case ":$dllsearchpath:" in | ||
3205 | + ::) dllsearchpath="$dllsearchdir";; | ||
3206 | + *":$dllsearchdir:"*) ;; | ||
3207 | + *) dllsearchpath="$dllsearchpath:$dllsearchdir";; | ||
3208 | + esac | ||
3209 | + ;; | ||
3210 | + esac | ||
3211 | + ;; | ||
3212 | + | ||
3213 | + -l*) | ||
3214 | + if test "$arg" = "-lc"; then | ||
3215 | + case "$host" in | ||
3216 | + *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*) | ||
3217 | + # These systems don't actually have c library (as such) | ||
3218 | + continue | ||
3219 | + ;; | ||
3220 | + esac | ||
3221 | + elif test "$arg" = "-lm"; then | ||
3222 | + case "$host" in | ||
3223 | + *-*-cygwin* | *-*-beos*) | ||
3224 | + # These systems don't actually have math library (as such) | ||
3225 | + continue | ||
3226 | + ;; | ||
3227 | + esac | ||
3228 | + fi | ||
3229 | + deplibs="$deplibs $arg" | ||
3230 | + ;; | ||
3231 | + | ||
3232 | + -module) | ||
3233 | + module=yes | ||
3234 | + continue | ||
3235 | + ;; | ||
3236 | + | ||
3237 | + -no-undefined) | ||
3238 | + allow_undefined=no | ||
3239 | + continue | ||
3240 | + ;; | ||
3241 | + | ||
3242 | + -o) prev=output ;; | ||
3243 | + | ||
3244 | + -release) | ||
3245 | + prev=release | ||
3246 | + continue | ||
3247 | + ;; | ||
3248 | + | ||
3249 | + -rpath) | ||
3250 | + prev=rpath | ||
3251 | + continue | ||
3252 | + ;; | ||
3253 | + | ||
3254 | + -R) | ||
3255 | + prev=xrpath | ||
3256 | + continue | ||
3257 | + ;; | ||
3258 | + | ||
3259 | + -R*) | ||
3260 | + dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` | ||
3261 | + # We need an absolute path. | ||
3262 | + case "$dir" in | ||
3263 | + [\\/]* | [A-Za-z]:[\\/]*) ;; | ||
3264 | + *) | ||
3265 | + $echo "$modename: only absolute run-paths are allowed" 1>&2 | ||
3266 | + exit 1 | ||
3267 | + ;; | ||
3268 | + esac | ||
3269 | + case "$xrpath " in | ||
3270 | + *" $dir "*) ;; | ||
3271 | + *) xrpath="$xrpath $dir" ;; | ||
3272 | + esac | ||
3273 | + continue | ||
3274 | + ;; | ||
3275 | + | ||
3276 | + -static) | ||
3277 | + # If we have no pic_flag, then this is the same as -all-static. | ||
3278 | + if test -z "$pic_flag" && test -n "$link_static_flag"; then | ||
3279 | + compile_command="$compile_command $link_static_flag" | ||
3280 | + finalize_command="$finalize_command $link_static_flag" | ||
3281 | + fi | ||
3282 | + continue | ||
3283 | + ;; | ||
3284 | + | ||
3285 | + -thread-safe) | ||
3286 | + thread_safe=yes | ||
3287 | + continue | ||
3288 | + ;; | ||
3289 | + | ||
3290 | + -version-info) | ||
3291 | + prev=vinfo | ||
3292 | + continue | ||
3293 | + ;; | ||
3294 | + | ||
3295 | + # Some other compiler flag. | ||
3296 | + -* | +*) | ||
3297 | + # Unknown arguments in both finalize_command and compile_command need | ||
3298 | + # to be aesthetically quoted because they are evaled later. | ||
3299 | + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` | ||
3300 | + case "$arg" in | ||
3301 | + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) | ||
3302 | + arg="\"$arg\"" | ||
3303 | + ;; | ||
3304 | + esac | ||
3305 | + ;; | ||
3306 | + | ||
3307 | + *.o | *.obj | *.a | *.lib) | ||
3308 | + # A standard object. | ||
3309 | + objs="$objs $arg" | ||
3310 | + ;; | ||
3311 | + | ||
3312 | + *.lo) | ||
3313 | + # A library object. | ||
3314 | + if test "$prev" = dlfiles; then | ||
3315 | + dlfiles="$dlfiles $arg" | ||
3316 | + if test "$build_libtool_libs" = yes && test "$dlopen" = yes; then | ||
3317 | + prev= | ||
3318 | + continue | ||
3319 | + else | ||
3320 | + # If libtool objects are unsupported, then we need to preload. | ||
3321 | + prev=dlprefiles | ||
3322 | + fi | ||
3323 | + fi | ||
3324 | + | ||
3325 | + if test "$prev" = dlprefiles; then | ||
3326 | + # Preload the old-style object. | ||
3327 | + dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"` | ||
3328 | + prev= | ||
3329 | + fi | ||
3330 | + libobjs="$libobjs $arg" | ||
3331 | + ;; | ||
3332 | + | ||
3333 | + *.la) | ||
3334 | + # A libtool-controlled library. | ||
3335 | + | ||
3336 | + dlname= | ||
3337 | + libdir= | ||
3338 | + library_names= | ||
3339 | + old_library= | ||
3340 | + | ||
3341 | + # Check to see that this really is a libtool archive. | ||
3342 | + if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : | ||
3343 | + else | ||
3344 | + $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2 | ||
3345 | + exit 1 | ||
3346 | + fi | ||
3347 | + | ||
3348 | + # If the library was installed with an old release of libtool, | ||
3349 | + # it will not redefine variable installed. | ||
3350 | + installed=yes | ||
3351 | + | ||
3352 | + # Read the .la file | ||
3353 | + # If there is no directory component, then add one. | ||
3354 | + case "$arg" in | ||
3355 | + */* | *\\*) . $arg ;; | ||
3356 | + *) . ./$arg ;; | ||
3357 | + esac | ||
3358 | + | ||
3359 | + # Get the name of the library we link against. | ||
3360 | + linklib= | ||
3361 | + for l in $old_library $library_names; do | ||
3362 | + linklib="$l" | ||
3363 | + done | ||
3364 | + | ||
3365 | + if test -z "$linklib"; then | ||
3366 | + $echo "$modename: cannot find name of link library for \`$arg'" 1>&2 | ||
3367 | + exit 1 | ||
3368 | + fi | ||
3369 | + | ||
3370 | + # Find the relevant object directory and library name. | ||
3371 | + name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'` | ||
3372 | + | ||
3373 | + if test "X$installed" = Xyes; then | ||
3374 | + dir="$libdir" | ||
3375 | + else | ||
3376 | + dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` | ||
3377 | + if test "X$dir" = "X$arg"; then | ||
3378 | + dir="$objdir" | ||
3379 | + else | ||
3380 | + dir="$dir/$objdir" | ||
3381 | + fi | ||
3382 | + fi | ||
3383 | + | ||
3384 | + if test -n "$dependency_libs"; then | ||
3385 | + # Extract -R and -L from dependency_libs | ||
3386 | + temp_deplibs= | ||
3387 | + for deplib in $dependency_libs; do | ||
3388 | + case "$deplib" in | ||
3389 | + -R*) temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'` | ||
3390 | + case " $rpath $xrpath " in | ||
3391 | + *" $temp_xrpath "*) ;; | ||
3392 | + *) xrpath="$xrpath $temp_xrpath";; | ||
3393 | + esac;; | ||
3394 | + -L*) case "$compile_command $temp_deplibs " in | ||
3395 | + *" $deplib "*) ;; | ||
3396 | + *) temp_deplibs="$temp_deplibs $deplib";; | ||
3397 | + esac | ||
3398 | + temp_dir=`$echo "X$deplib" | $Xsed -e 's/^-L//'` | ||
3399 | + case " $lib_search_path " in | ||
3400 | + *" $temp_dir "*) ;; | ||
3401 | + *) lib_search_path="$lib_search_path $temp_dir";; | ||
3402 | + esac | ||
3403 | + ;; | ||
3404 | + *) temp_deplibs="$temp_deplibs $deplib";; | ||
3405 | + esac | ||
3406 | + done | ||
3407 | + dependency_libs="$temp_deplibs" | ||
3408 | + fi | ||
3409 | + | ||
3410 | + if test -z "$libdir"; then | ||
3411 | + # It is a libtool convenience library, so add in its objects. | ||
3412 | + convenience="$convenience $dir/$old_library" | ||
3413 | + old_convenience="$old_convenience $dir/$old_library" | ||
3414 | + deplibs="$deplibs$dependency_libs" | ||
3415 | + compile_command="$compile_command $dir/$old_library$dependency_libs" | ||
3416 | + finalize_command="$finalize_command $dir/$old_library$dependency_libs" | ||
3417 | + continue | ||
3418 | + fi | ||
3419 | + | ||
3420 | + # This library was specified with -dlopen. | ||
3421 | + if test "$prev" = dlfiles; then | ||
3422 | + dlfiles="$dlfiles $arg" | ||
3423 | + if test -z "$dlname" || test "$dlopen" != yes || test "$build_libtool_libs" = no; then | ||
3424 | + # If there is no dlname, no dlopen support or we're linking statically, | ||
3425 | + # we need to preload. | ||
3426 | + prev=dlprefiles | ||
3427 | + else | ||
3428 | + # We should not create a dependency on this library, but we | ||
3429 | + # may need any libraries it requires. | ||
3430 | + compile_command="$compile_command$dependency_libs" | ||
3431 | + finalize_command="$finalize_command$dependency_libs" | ||
3432 | + prev= | ||
3433 | + continue | ||
3434 | + fi | ||
3435 | + fi | ||
3436 | + | ||
3437 | + # The library was specified with -dlpreopen. | ||
3438 | + if test "$prev" = dlprefiles; then | ||
3439 | + # Prefer using a static library (so that no silly _DYNAMIC symbols | ||
3440 | + # are required to link). | ||
3441 | + if test -n "$old_library"; then | ||
3442 | + dlprefiles="$dlprefiles $dir/$old_library" | ||
3443 | + else | ||
3444 | + dlprefiles="$dlprefiles $dir/$linklib" | ||
3445 | + fi | ||
3446 | + prev= | ||
3447 | + fi | ||
3448 | + | ||
3449 | + if test -n "$library_names" && | ||
3450 | + { test "$prefer_static_libs" = no || test -z "$old_library"; }; then | ||
3451 | + link_against_libtool_libs="$link_against_libtool_libs $arg" | ||
3452 | + if test -n "$shlibpath_var"; then | ||
3453 | + # Make sure the rpath contains only unique directories. | ||
3454 | + case "$temp_rpath " in | ||
3455 | + *" $dir "*) ;; | ||
3456 | + *) temp_rpath="$temp_rpath $dir" ;; | ||
3457 | + esac | ||
3458 | + fi | ||
3459 | + | ||
3460 | + # We need an absolute path. | ||
3461 | + case "$dir" in | ||
3462 | + [\\/] | [A-Za-z]:[\\/]*) absdir="$dir" ;; | ||
3463 | + *) | ||
3464 | + absdir=`cd "$dir" && pwd` | ||
3465 | + if test -z "$absdir"; then | ||
3466 | + $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 | ||
3467 | + $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 | ||
3468 | + absdir="$dir" | ||
3469 | + fi | ||
3470 | + ;; | ||
3471 | + esac | ||
3472 | + | ||
3473 | + # This is the magic to use -rpath. | ||
3474 | + # Skip directories that are in the system default run-time | ||
3475 | + # search path, unless they have been requested with -R. | ||
3476 | + case " $sys_lib_dlsearch_path " in | ||
3477 | + *" $absdir "*) ;; | ||
3478 | + *) | ||
3479 | + case "$compile_rpath " in | ||
3480 | + *" $absdir "*) ;; | ||
3481 | + *) compile_rpath="$compile_rpath $absdir" | ||
3482 | + esac | ||
3483 | + ;; | ||
3484 | + esac | ||
3485 | + | ||
3486 | + case " $sys_lib_dlsearch_path " in | ||
3487 | + *" $libdir "*) ;; | ||
3488 | + *) | ||
3489 | + case "$finalize_rpath " in | ||
3490 | + *" $libdir "*) ;; | ||
3491 | + *) finalize_rpath="$finalize_rpath $libdir" | ||
3492 | + esac | ||
3493 | + ;; | ||
3494 | + esac | ||
3495 | + | ||
3496 | + lib_linked=yes | ||
3497 | + case "$hardcode_action" in | ||
3498 | + immediate | unsupported) | ||
3499 | + if test "$hardcode_direct" = no; then | ||
3500 | + compile_command="$compile_command $dir/$linklib" | ||
3501 | + deplibs="$deplibs $dir/$linklib" | ||
3502 | + case "$host" in | ||
3503 | + *-*-cygwin* | *-*-mingw* | *-*-os2*) | ||
3504 | + dllsearchdir=`cd "$dir" && pwd || echo "$dir"` | ||
3505 | + if test -n "$dllsearchpath"; then | ||
3506 | + dllsearchpath="$dllsearchpath:$dllsearchdir" | ||
3507 | + else | ||
3508 | + dllsearchpath="$dllsearchdir" | ||
3509 | + fi | ||
3510 | + ;; | ||
3511 | + esac | ||
3512 | + elif test "$hardcode_minus_L" = no; then | ||
3513 | + case "$host" in | ||
3514 | + *-*-sunos*) | ||
3515 | + compile_shlibpath="$compile_shlibpath$dir:" | ||
3516 | + ;; | ||
3517 | + esac | ||
3518 | + case "$compile_command " in | ||
3519 | + *" -L$dir "*) ;; | ||
3520 | + *) compile_command="$compile_command -L$dir";; | ||
3521 | + esac | ||
3522 | + compile_command="$compile_command -l$name" | ||
3523 | + deplibs="$deplibs -L$dir -l$name" | ||
3524 | + elif test "$hardcode_shlibpath_var" = no; then | ||
3525 | + case ":$compile_shlibpath:" in | ||
3526 | + *":$dir:"*) ;; | ||
3527 | + *) compile_shlibpath="$compile_shlibpath$dir:";; | ||
3528 | + esac | ||
3529 | + compile_command="$compile_command -l$name" | ||
3530 | + deplibs="$deplibs -l$name" | ||
3531 | + else | ||
3532 | + lib_linked=no | ||
3533 | + fi | ||
3534 | + ;; | ||
3535 | + | ||
3536 | + relink) | ||
3537 | + if test "$hardcode_direct" = yes; then | ||
3538 | + compile_command="$compile_command $absdir/$linklib" | ||
3539 | + deplibs="$deplibs $absdir/$linklib" | ||
3540 | + elif test "$hardcode_minus_L" = yes; then | ||
3541 | + case "$compile_command " in | ||
3542 | + *" -L$absdir "*) ;; | ||
3543 | + *) compile_command="$compile_command -L$absdir";; | ||
3544 | + esac | ||
3545 | + compile_command="$compile_command -l$name" | ||
3546 | + deplibs="$deplibs -L$absdir -l$name" | ||
3547 | + elif test "$hardcode_shlibpath_var" = yes; then | ||
3548 | + case ":$compile_shlibpath:" in | ||
3549 | + *":$absdir:"*) ;; | ||
3550 | + *) compile_shlibpath="$compile_shlibpath$absdir:";; | ||
3551 | + esac | ||
3552 | + compile_command="$compile_command -l$name" | ||
3553 | + deplibs="$deplibs -l$name" | ||
3554 | + else | ||
3555 | + lib_linked=no | ||
3556 | + fi | ||
3557 | + ;; | ||
3558 | + | ||
3559 | + *) | ||
3560 | + lib_linked=no | ||
3561 | + ;; | ||
3562 | + esac | ||
3563 | + | ||
3564 | + if test "$lib_linked" != yes; then | ||
3565 | + $echo "$modename: configuration error: unsupported hardcode properties" | ||
3566 | + exit 1 | ||
3567 | + fi | ||
3568 | + | ||
3569 | + # Finalize command for both is simple: just hardcode it. | ||
3570 | + if test "$hardcode_direct" = yes; then | ||
3571 | + finalize_command="$finalize_command $libdir/$linklib" | ||
3572 | + elif test "$hardcode_minus_L" = yes; then | ||
3573 | + case "$finalize_command " in | ||
3574 | + *" -L$libdir "*) ;; | ||
3575 | + *) finalize_command="$finalize_command -L$libdir";; | ||
3576 | + esac | ||
3577 | + finalize_command="$finalize_command -l$name" | ||
3578 | + elif test "$hardcode_shlibpath_var" = yes; then | ||
3579 | + case ":$finalize_shlibpath:" in | ||
3580 | + *":$libdir:"*) ;; | ||
3581 | + *) finalize_shlibpath="$finalize_shlibpath$libdir:";; | ||
3582 | + esac | ||
3583 | + finalize_command="$finalize_command -l$name" | ||
3584 | + else | ||
3585 | + # We cannot seem to hardcode it, guess we'll fake it. | ||
3586 | + case "$finalize_command " in | ||
3587 | + *" -L$dir "*) ;; | ||
3588 | + *) finalize_command="$finalize_command -L$libdir";; | ||
3589 | + esac | ||
3590 | + finalize_command="$finalize_command -l$name" | ||
3591 | + fi | ||
3592 | + else | ||
3593 | + # Transform directly to old archives if we don't build new libraries. | ||
3594 | + if test -n "$pic_flag" && test -z "$old_library"; then | ||
3595 | + $echo "$modename: cannot find static library for \`$arg'" 1>&2 | ||
3596 | + exit 1 | ||
3597 | + fi | ||
3598 | + | ||
3599 | + # Here we assume that one of hardcode_direct or hardcode_minus_L | ||
3600 | + # is not unsupported. This is valid on all known static and | ||
3601 | + # shared platforms. | ||
3602 | + if test "$hardcode_direct" != unsupported; then | ||
3603 | + test -n "$old_library" && linklib="$old_library" | ||
3604 | + compile_command="$compile_command $dir/$linklib" | ||
3605 | + finalize_command="$finalize_command $dir/$linklib" | ||
3606 | + else | ||
3607 | + case "$compile_command " in | ||
3608 | + *" -L$dir "*) ;; | ||
3609 | + *) compile_command="$compile_command -L$dir";; | ||
3610 | + esac | ||
3611 | + compile_command="$compile_command -l$name" | ||
3612 | + case "$finalize_command " in | ||
3613 | + *" -L$dir "*) ;; | ||
3614 | + *) finalize_command="$finalize_command -L$dir";; | ||
3615 | + esac | ||
3616 | + finalize_command="$finalize_command -l$name" | ||
3617 | + fi | ||
3618 | + fi | ||
3619 | + | ||
3620 | + # Add in any libraries that this one depends upon. | ||
3621 | + compile_command="$compile_command$dependency_libs" | ||
3622 | + finalize_command="$finalize_command$dependency_libs" | ||
3623 | + continue | ||
3624 | + ;; | ||
3625 | + | ||
3626 | + # Some other compiler argument. | ||
3627 | + *) | ||
3628 | + # Unknown arguments in both finalize_command and compile_command need | ||
3629 | + # to be aesthetically quoted because they are evaled later. | ||
3630 | + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` | ||
3631 | + case "$arg" in | ||
3632 | + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) | ||
3633 | + arg="\"$arg\"" | ||
3634 | + ;; | ||
3635 | + esac | ||
3636 | + ;; | ||
3637 | + esac | ||
3638 | + | ||
3639 | + # Now actually substitute the argument into the commands. | ||
3640 | + if test -n "$arg"; then | ||
3641 | + compile_command="$compile_command $arg" | ||
3642 | + finalize_command="$finalize_command $arg" | ||
3643 | + fi | ||
3644 | + done | ||
3645 | + | ||
3646 | + if test -n "$prev"; then | ||
3647 | + $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 | ||
3648 | + $echo "$help" 1>&2 | ||
3649 | + exit 1 | ||
3650 | + fi | ||
3651 | + | ||
3652 | + if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then | ||
3653 | + eval arg=\"$export_dynamic_flag_spec\" | ||
3654 | + compile_command="$compile_command $arg" | ||
3655 | + finalize_command="$finalize_command $arg" | ||
3656 | + fi | ||
3657 | + | ||
3658 | + oldlibs= | ||
3659 | + # calculate the name of the file, without its directory | ||
3660 | + outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` | ||
3661 | + libobjs_save="$libobjs" | ||
3662 | + | ||
3663 | + case "$output" in | ||
3664 | + "") | ||
3665 | + $echo "$modename: you must specify an output file" 1>&2 | ||
3666 | + $echo "$help" 1>&2 | ||
3667 | + exit 1 | ||
3668 | + ;; | ||
3669 | + | ||
3670 | + *.a | *.lib) | ||
3671 | + if test -n "$link_against_libtool_libs"; then | ||
3672 | + $echo "$modename: error: cannot link libtool libraries into archives" 1>&2 | ||
3673 | + exit 1 | ||
3674 | + fi | ||
3675 | + | ||
3676 | + if test -n "$deplibs"; then | ||
3677 | + $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 | ||
3678 | + fi | ||
3679 | + | ||
3680 | + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then | ||
3681 | + $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 | ||
3682 | + fi | ||
3683 | + | ||
3684 | + if test -n "$rpath"; then | ||
3685 | + $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 | ||
3686 | + fi | ||
3687 | + | ||
3688 | + if test -n "$xrpath"; then | ||
3689 | + $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 | ||
3690 | + fi | ||
3691 | + | ||
3692 | + if test -n "$vinfo"; then | ||
3693 | + $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2 | ||
3694 | + fi | ||
3695 | + | ||
3696 | + if test -n "$release"; then | ||
3697 | + $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 | ||
3698 | + fi | ||
3699 | + | ||
3700 | + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then | ||
3701 | + $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 | ||
3702 | + fi | ||
3703 | + | ||
3704 | + # Now set the variables for building old libraries. | ||
3705 | + build_libtool_libs=no | ||
3706 | + oldlibs="$output" | ||
3707 | + ;; | ||
3708 | + | ||
3709 | + *.la) | ||
3710 | + # Make sure we only generate libraries of the form `libNAME.la'. | ||
3711 | + case "$outputname" in | ||
3712 | + lib*) | ||
3713 | + name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` | ||
3714 | + eval libname=\"$libname_spec\" | ||
3715 | + ;; | ||
3716 | + *) | ||
3717 | + if test "$module" = no; then | ||
3718 | + $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 | ||
3719 | + $echo "$help" 1>&2 | ||
3720 | + exit 1 | ||
3721 | + fi | ||
3722 | + if test "$need_lib_prefix" != no; then | ||
3723 | + # Add the "lib" prefix for modules if required | ||
3724 | + name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` | ||
3725 | + eval libname=\"$libname_spec\" | ||
3726 | + else | ||
3727 | + libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` | ||
3728 | + fi | ||
3729 | + ;; | ||
3730 | + esac | ||
3731 | + | ||
3732 | + output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` | ||
3733 | + if test "X$output_objdir" = "X$output"; then | ||
3734 | + output_objdir="$objdir" | ||
3735 | + else | ||
3736 | + output_objdir="$output_objdir/$objdir" | ||
3737 | + fi | ||
3738 | + | ||
3739 | + if test -n "$objs"; then | ||
3740 | + $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1 | ||
3741 | + exit 1 | ||
3742 | + fi | ||
3743 | + | ||
3744 | + # How the heck are we supposed to write a wrapper for a shared library? | ||
3745 | + if test -n "$link_against_libtool_libs"; then | ||
3746 | + $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2 | ||
3747 | + exit 1 | ||
3748 | + fi | ||
3749 | + | ||
3750 | + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then | ||
3751 | + $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2 | ||
3752 | + fi | ||
3753 | + | ||
3754 | + set dummy $rpath | ||
3755 | + if test $# -gt 2; then | ||
3756 | + $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 | ||
3757 | + fi | ||
3758 | + install_libdir="$2" | ||
3759 | + | ||
3760 | + oldlibs= | ||
3761 | + if test -z "$rpath"; then | ||
3762 | + if test "$build_libtool_libs" = yes; then | ||
3763 | + # Building a libtool convenience library. | ||
3764 | + libext=al | ||
3765 | + oldlibs="$output_objdir/$libname.$libext $oldlibs" | ||
3766 | + build_libtool_libs=convenience | ||
3767 | + build_old_libs=yes | ||
3768 | + fi | ||
3769 | + dependency_libs="$deplibs" | ||
3770 | + | ||
3771 | + if test -n "$vinfo"; then | ||
3772 | + $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2 | ||
3773 | + fi | ||
3774 | + | ||
3775 | + if test -n "$release"; then | ||
3776 | + $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 | ||
3777 | + fi | ||
3778 | + else | ||
3779 | + | ||
3780 | + # Parse the version information argument. | ||
3781 | + IFS="${IFS= }"; save_ifs="$IFS"; IFS=':' | ||
3782 | + set dummy $vinfo 0 0 0 | ||
3783 | + IFS="$save_ifs" | ||
3784 | + | ||
3785 | + if test -n "$8"; then | ||
3786 | + $echo "$modename: too many parameters to \`-version-info'" 1>&2 | ||
3787 | + $echo "$help" 1>&2 | ||
3788 | + exit 1 | ||
3789 | + fi | ||
3790 | + | ||
3791 | + current="$2" | ||
3792 | + revision="$3" | ||
3793 | + age="$4" | ||
3794 | + | ||
3795 | + # Check that each of the things are valid numbers. | ||
3796 | + case "$current" in | ||
3797 | + 0 | [1-9] | [1-9][0-9]*) ;; | ||
3798 | + *) | ||
3799 | + $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 | ||
3800 | + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 | ||
3801 | + exit 1 | ||
3802 | + ;; | ||
3803 | + esac | ||
3804 | + | ||
3805 | + case "$revision" in | ||
3806 | + 0 | [1-9] | [1-9][0-9]*) ;; | ||
3807 | + *) | ||
3808 | + $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 | ||
3809 | + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 | ||
3810 | + exit 1 | ||
3811 | + ;; | ||
3812 | + esac | ||
3813 | + | ||
3814 | + case "$age" in | ||
3815 | + 0 | [1-9] | [1-9][0-9]*) ;; | ||
3816 | + *) | ||
3817 | + $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 | ||
3818 | + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 | ||
3819 | + exit 1 | ||
3820 | + ;; | ||
3821 | + esac | ||
3822 | + | ||
3823 | + if test $age -gt $current; then | ||
3824 | + $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 | ||
3825 | + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 | ||
3826 | + exit 1 | ||
3827 | + fi | ||
3828 | + | ||
3829 | + # Calculate the version variables. | ||
3830 | + major= | ||
3831 | + versuffix= | ||
3832 | + verstring= | ||
3833 | + case "$version_type" in | ||
3834 | + none) ;; | ||
3835 | + | ||
3836 | + irix) | ||
3837 | + major=`expr $current - $age + 1` | ||
3838 | + versuffix="$major.$revision" | ||
3839 | + verstring="sgi$major.$revision" | ||
3840 | + | ||
3841 | + # Add in all the interfaces that we are compatible with. | ||
3842 | + loop=$revision | ||
3843 | + while test $loop != 0; do | ||
3844 | + iface=`expr $revision - $loop` | ||
3845 | + loop=`expr $loop - 1` | ||
3846 | + verstring="sgi$major.$iface:$verstring" | ||
3847 | + done | ||
3848 | + ;; | ||
3849 | + | ||
3850 | + linux) | ||
3851 | + major=.`expr $current - $age` | ||
3852 | + versuffix="$major.$age.$revision" | ||
3853 | + ;; | ||
3854 | + | ||
3855 | + osf) | ||
3856 | + major=`expr $current - $age` | ||
3857 | + versuffix=".$current.$age.$revision" | ||
3858 | + verstring="$current.$age.$revision" | ||
3859 | + | ||
3860 | + # Add in all the interfaces that we are compatible with. | ||
3861 | + loop=$age | ||
3862 | + while test $loop != 0; do | ||
3863 | + iface=`expr $current - $loop` | ||
3864 | + loop=`expr $loop - 1` | ||
3865 | + verstring="$verstring:${iface}.0" | ||
3866 | + done | ||
3867 | + | ||
3868 | + # Make executables depend on our current version. | ||
3869 | + verstring="$verstring:${current}.0" | ||
3870 | + ;; | ||
3871 | + | ||
3872 | + sunos) | ||
3873 | + major=".$current" | ||
3874 | + versuffix=".$current.$revision" | ||
3875 | + ;; | ||
3876 | + | ||
3877 | + freebsd-aout) | ||
3878 | + major=".$current" | ||
3879 | + versuffix=".$current.$revision"; | ||
3880 | + ;; | ||
3881 | + | ||
3882 | + freebsd-elf) | ||
3883 | + major=".$current" | ||
3884 | + versuffix=".$current"; | ||
3885 | + ;; | ||
3886 | + | ||
3887 | + windows) | ||
3888 | + # Like Linux, but with '-' rather than '.', since we only | ||
3889 | + # want one extension on Windows 95. | ||
3890 | + major=`expr $current - $age` | ||
3891 | + versuffix="-$major-$age-$revision" | ||
3892 | + ;; | ||
3893 | + | ||
3894 | + *) | ||
3895 | + $echo "$modename: unknown library version type \`$version_type'" 1>&2 | ||
3896 | + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 | ||
3897 | + exit 1 | ||
3898 | + ;; | ||
3899 | + esac | ||
3900 | + | ||
3901 | + # Clear the version info if we defaulted, and they specified a release. | ||
3902 | + if test -z "$vinfo" && test -n "$release"; then | ||
3903 | + major= | ||
3904 | + verstring="0.0" | ||
3905 | + if test "$need_version" = no; then | ||
3906 | + versuffix= | ||
3907 | + else | ||
3908 | + versuffix=".0.0" | ||
3909 | + fi | ||
3910 | + fi | ||
3911 | + | ||
3912 | + # Remove version info from name if versioning should be avoided | ||
3913 | + if test "$avoid_version" = yes && test "$need_version" = no; then | ||
3914 | + major= | ||
3915 | + versuffix= | ||
3916 | + verstring="" | ||
3917 | + fi | ||
3918 | + | ||
3919 | + # Check to see if the archive will have undefined symbols. | ||
3920 | + if test "$allow_undefined" = yes; then | ||
3921 | + if test "$allow_undefined_flag" = unsupported; then | ||
3922 | + $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 | ||
3923 | + build_libtool_libs=no | ||
3924 | + build_old_libs=yes | ||
3925 | + fi | ||
3926 | + else | ||
3927 | + # Don't allow undefined symbols. | ||
3928 | + allow_undefined_flag="$no_undefined_flag" | ||
3929 | + fi | ||
3930 | + | ||
3931 | + dependency_libs="$deplibs" | ||
3932 | + case "$host" in | ||
3933 | + *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*) | ||
3934 | + # these systems don't actually have a c library (as such)! | ||
3935 | + ;; | ||
3936 | + *) | ||
3937 | + # Add libc to deplibs on all other systems. | ||
3938 | + deplibs="$deplibs -lc" | ||
3939 | + ;; | ||
3940 | + esac | ||
3941 | + fi | ||
3942 | + | ||
3943 | + # Create the output directory, or remove our outputs if we need to. | ||
3944 | + if test -d $output_objdir; then | ||
3945 | + $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*" | ||
3946 | + $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.* | ||
3947 | + else | ||
3948 | + $show "$mkdir $output_objdir" | ||
3949 | + $run $mkdir $output_objdir | ||
3950 | + status=$? | ||
3951 | + if test $status -ne 0 && test ! -d $output_objdir; then | ||
3952 | + exit $status | ||
3953 | + fi | ||
3954 | + fi | ||
3955 | + | ||
3956 | + # Now set the variables for building old libraries. | ||
3957 | + if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then | ||
3958 | + oldlibs="$oldlibs $output_objdir/$libname.$libext" | ||
3959 | + | ||
3960 | + # Transform .lo files to .o files. | ||
3961 | + oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` | ||
3962 | + fi | ||
3963 | + | ||
3964 | + if test "$build_libtool_libs" = yes; then | ||
3965 | + # Transform deplibs into only deplibs that can be linked in shared. | ||
3966 | + name_save=$name | ||
3967 | + libname_save=$libname | ||
3968 | + release_save=$release | ||
3969 | + versuffix_save=$versuffix | ||
3970 | + major_save=$major | ||
3971 | + # I'm not sure if I'm treating the release correctly. I think | ||
3972 | + # release should show up in the -l (ie -lgmp5) so we don't want to | ||
3973 | + # add it in twice. Is that correct? | ||
3974 | + release="" | ||
3975 | + versuffix="" | ||
3976 | + major="" | ||
3977 | + newdeplibs= | ||
3978 | + droppeddeps=no | ||
3979 | + case "$deplibs_check_method" in | ||
3980 | + pass_all) | ||
3981 | + # Don't check for shared/static. Everything works. | ||
3982 | + # This might be a little naive. We might want to check | ||
3983 | + # whether the library exists or not. But this is on | ||
3984 | + # osf3 & osf4 and I'm not really sure... Just | ||
3985 | + # implementing what was already the behaviour. | ||
3986 | + newdeplibs=$deplibs | ||
3987 | + ;; | ||
3988 | + test_compile) | ||
3989 | + # This code stresses the "libraries are programs" paradigm to its | ||
3990 | + # limits. Maybe even breaks it. We compile a program, linking it | ||
3991 | + # against the deplibs as a proxy for the library. Then we can check | ||
3992 | + # whether they linked in statically or dynamically with ldd. | ||
3993 | + $rm conftest.c | ||
3994 | + cat > conftest.c <<EOF | ||
3995 | + int main() { return 0; } | ||
3996 | +EOF | ||
3997 | + $rm conftest | ||
3998 | + $C_compiler -o conftest conftest.c $deplibs | ||
3999 | + if test $? -eq 0 ; then | ||
4000 | + ldd_output=`ldd conftest` | ||
4001 | + for i in $deplibs; do | ||
4002 | + name="`expr $i : '-l\(.*\)'`" | ||
4003 | + # If $name is empty we are operating on a -L argument. | ||
4004 | + if test "$name" != "" ; then | ||
4005 | + libname=`eval \\$echo \"$libname_spec\"` | ||
4006 | + deplib_matches=`eval \\$echo \"$library_names_spec\"` | ||
4007 | + set dummy $deplib_matches | ||
4008 | + deplib_match=$2 | ||
4009 | + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then | ||
4010 | + newdeplibs="$newdeplibs $i" | ||
4011 | + else | ||
4012 | + droppeddeps=yes | ||
4013 | + echo | ||
4014 | + echo "*** Warning: This library needs some functionality provided by $i." | ||
4015 | + echo "*** I have the capability to make that library automatically link in when" | ||
4016 | + echo "*** you link to this library. But I can only do this if you have a" | ||
4017 | + echo "*** shared version of the library, which you do not appear to have." | ||
4018 | + fi | ||
4019 | + else | ||
4020 | + newdeplibs="$newdeplibs $i" | ||
4021 | + fi | ||
4022 | + done | ||
4023 | + else | ||
4024 | + # Error occured in the first compile. Let's try to salvage the situation: | ||
4025 | + # Compile a seperate program for each library. | ||
4026 | + for i in $deplibs; do | ||
4027 | + name="`expr $i : '-l\(.*\)'`" | ||
4028 | + # If $name is empty we are operating on a -L argument. | ||
4029 | + if test "$name" != "" ; then | ||
4030 | + $rm conftest | ||
4031 | + $C_compiler -o conftest conftest.c $i | ||
4032 | + # Did it work? | ||
4033 | + if test $? -eq 0 ; then | ||
4034 | + ldd_output=`ldd conftest` | ||
4035 | + libname=`eval \\$echo \"$libname_spec\"` | ||
4036 | + deplib_matches=`eval \\$echo \"$library_names_spec\"` | ||
4037 | + set dummy $deplib_matches | ||
4038 | + deplib_match=$2 | ||
4039 | + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then | ||
4040 | + newdeplibs="$newdeplibs $i" | ||
4041 | + else | ||
4042 | + droppeddeps=yes | ||
4043 | + echo | ||
4044 | + echo "*** Warning: This library needs some functionality provided by $i." | ||
4045 | + echo "*** I have the capability to make that library automatically link in when" | ||
4046 | + echo "*** you link to this library. But I can only do this if you have a" | ||
4047 | + echo "*** shared version of the library, which you do not appear to have." | ||
4048 | + fi | ||
4049 | + else | ||
4050 | + droppeddeps=yes | ||
4051 | + echo | ||
4052 | + echo "*** Warning! Library $i is needed by this library but I was not able to" | ||
4053 | + echo "*** make it link in! You will probably need to install it or some" | ||
4054 | + echo "*** library that it depends on before this library will be fully" | ||
4055 | + echo "*** functional. Installing it before continuing would be even better." | ||
4056 | + fi | ||
4057 | + else | ||
4058 | + newdeplibs="$newdeplibs $i" | ||
4059 | + fi | ||
4060 | + done | ||
4061 | + fi | ||
4062 | + ;; | ||
4063 | + file_magic*) | ||
4064 | + set dummy $deplibs_check_method | ||
4065 | + file_magic_regex="`expr \"$deplibs_check_method\" : \"$2 \(.*\)\"`" | ||
4066 | + for a_deplib in $deplibs; do | ||
4067 | + name="`expr $a_deplib : '-l\(.*\)'`" | ||
4068 | + # If $name is empty we are operating on a -L argument. | ||
4069 | + if test "$name" != "" ; then | ||
4070 | + libname=`eval \\$echo \"$libname_spec\"` | ||
4071 | + for i in $lib_search_path; do | ||
4072 | + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` | ||
4073 | + for potent_lib in $potential_libs; do | ||
4074 | + # Follow soft links. | ||
4075 | + if ls -lLd "$potent_lib" 2>/dev/null \ | ||
4076 | + | grep " -> " >/dev/null; then | ||
4077 | + continue | ||
4078 | + fi | ||
4079 | + # The statement above tries to avoid entering an | ||
4080 | + # endless loop below, in case of cyclic links. | ||
4081 | + # We might still enter an endless loop, since a link | ||
4082 | + # loop can be closed while we follow links, | ||
4083 | + # but so what? | ||
4084 | + potlib="$potent_lib" | ||
4085 | + while test -h "$potlib" 2>/dev/null; do | ||
4086 | + potliblink=`ls -ld $potlib | sed 's/.* -> //'` | ||
4087 | + case "$potliblink" in | ||
4088 | + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; | ||
4089 | + *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; | ||
4090 | + esac | ||
4091 | + done | ||
4092 | + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ||
4093 | + | sed 10q \ | ||
4094 | + | egrep "$file_magic_regex" > /dev/null; then | ||
4095 | + newdeplibs="$newdeplibs $a_deplib" | ||
4096 | + a_deplib="" | ||
4097 | + break 2 | ||
4098 | + fi | ||
4099 | + done | ||
4100 | + done | ||
4101 | + if test -n "$a_deplib" ; then | ||
4102 | + droppeddeps=yes | ||
4103 | + echo | ||
4104 | + echo "*** Warning: This library needs some functionality provided by $a_deplib." | ||
4105 | + echo "*** I have the capability to make that library automatically link in when" | ||
4106 | + echo "*** you link to this library. But I can only do this if you have a" | ||
4107 | + echo "*** shared version of the library, which you do not appear to have." | ||
4108 | + fi | ||
4109 | + else | ||
4110 | + # Add a -L argument. | ||
4111 | + newdeplibs="$newdeplibs $a_deplib" | ||
4112 | + fi | ||
4113 | + done # Gone through all deplibs. | ||
4114 | + ;; | ||
4115 | + none | unknown | *) | ||
4116 | + newdeplibs="" | ||
4117 | + if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ | ||
4118 | + -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' | | ||
4119 | + grep . >/dev/null; then | ||
4120 | + echo | ||
4121 | + if test "X$deplibs_check_method" = "Xnone"; then | ||
4122 | + echo "*** Warning: inter-library dependencies are not supported in this platform." | ||
4123 | + else | ||
4124 | + echo "*** Warning: inter-library dependencies are not known to be supported." | ||
4125 | + fi | ||
4126 | + echo "*** All declared inter-library dependencies are being dropped." | ||
4127 | + droppeddeps=yes | ||
4128 | + fi | ||
4129 | + ;; | ||
4130 | + esac | ||
4131 | + versuffix=$versuffix_save | ||
4132 | + major=$major_save | ||
4133 | + release=$release_save | ||
4134 | + libname=$libname_save | ||
4135 | + name=$name_save | ||
4136 | + | ||
4137 | + if test "$droppeddeps" = yes; then | ||
4138 | + if test "$module" = yes; then | ||
4139 | + echo | ||
4140 | + echo "*** Warning: libtool could not satisfy all declared inter-library" | ||
4141 | + echo "*** dependencies of module $libname. Therefore, libtool will create" | ||
4142 | + echo "*** a static module, that should work as long as the dlopening" | ||
4143 | + echo "*** application is linked with the -dlopen flag." | ||
4144 | + if test -z "$global_symbol_pipe"; then | ||
4145 | + echo | ||
4146 | + echo "*** However, this would only work if libtool was able to extract symbol" | ||
4147 | + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" | ||
4148 | + echo "*** not find such a program. So, this module is probably useless." | ||
4149 | + echo "*** \`nm' from GNU binutils and a full rebuild may help." | ||
4150 | + fi | ||
4151 | + if test "$build_old_libs" = no; then | ||
4152 | + oldlibs="$output_objdir/$libname.$libext" | ||
4153 | + build_libtool_libs=module | ||
4154 | + build_old_libs=yes | ||
4155 | + else | ||
4156 | + build_libtool_libs=no | ||
4157 | + fi | ||
4158 | + else | ||
4159 | + echo "*** The inter-library dependencies that have been dropped here will be" | ||
4160 | + echo "*** automatically added whenever a program is linked with this library" | ||
4161 | + echo "*** or is declared to -dlopen it." | ||
4162 | + fi | ||
4163 | + fi | ||
4164 | + # Done checking deplibs! | ||
4165 | + deplibs=$newdeplibs | ||
4166 | + fi | ||
4167 | + | ||
4168 | + # All the library-specific variables (install_libdir is set above). | ||
4169 | + library_names= | ||
4170 | + old_library= | ||
4171 | + dlname= | ||
4172 | + | ||
4173 | + # Test again, we may have decided not to build it any more | ||
4174 | + if test "$build_libtool_libs" = yes; then | ||
4175 | + # Get the real and link names of the library. | ||
4176 | + eval library_names=\"$library_names_spec\" | ||
4177 | + set dummy $library_names | ||
4178 | + realname="$2" | ||
4179 | + shift; shift | ||
4180 | + | ||
4181 | + if test -n "$soname_spec"; then | ||
4182 | + eval soname=\"$soname_spec\" | ||
4183 | + else | ||
4184 | + soname="$realname" | ||
4185 | + fi | ||
4186 | + | ||
4187 | + lib="$output_objdir/$realname" | ||
4188 | + for link | ||
4189 | + do | ||
4190 | + linknames="$linknames $link" | ||
4191 | + done | ||
4192 | + | ||
4193 | + # Ensure that we have .o objects for linkers which dislike .lo | ||
4194 | + # (e.g. aix) incase we are running --disable-static | ||
4195 | + for obj in $libobjs; do | ||
4196 | + oldobj=`$echo "X$obj" | $Xsed -e "$lo2o"` | ||
4197 | + if test ! -f $oldobj; then | ||
4198 | + $show "${LN_S} $obj $oldobj" | ||
4199 | + $run ${LN_S} $obj $oldobj || exit $? | ||
4200 | + fi | ||
4201 | + done | ||
4202 | + | ||
4203 | + # Use standard objects if they are pic | ||
4204 | + test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` | ||
4205 | + | ||
4206 | + # Prepare the list of exported symbols | ||
4207 | + if test -z "$export_symbols"; then | ||
4208 | + if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then | ||
4209 | + $show "generating symbol list for \`$libname.la'" | ||
4210 | + export_symbols="$output_objdir/$libname.exp" | ||
4211 | + $run $rm $export_symbols | ||
4212 | + eval cmds=\"$export_symbols_cmds\" | ||
4213 | + IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' | ||
4214 | + for cmd in $cmds; do | ||
4215 | + IFS="$save_ifs" | ||
4216 | + $show "$cmd" | ||
4217 | + $run eval "$cmd" || exit $? | ||
4218 | + done | ||
4219 | + IFS="$save_ifs" | ||
4220 | + if test -n "$export_symbols_regex"; then | ||
4221 | + $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" | ||
4222 | + $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' | ||
4223 | + $show "$mv \"${export_symbols}T\" \"$export_symbols\"" | ||
4224 | + $run eval '$mv "${export_symbols}T" "$export_symbols"' | ||
4225 | + fi | ||
4226 | + fi | ||
4227 | + fi | ||
4228 | + | ||
4229 | + if test -n "$export_symbols" && test -n "$include_expsyms"; then | ||
4230 | + $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' | ||
4231 | + fi | ||
4232 | + | ||
4233 | + if test -n "$convenience"; then | ||
4234 | + if test -n "$whole_archive_flag_spec"; then | ||
4235 | + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" | ||
4236 | + else | ||
4237 | + gentop="$output_objdir/${outputname}x" | ||
4238 | + $show "${rm}r $gentop" | ||
4239 | + $run ${rm}r "$gentop" | ||
4240 | + $show "mkdir $gentop" | ||
4241 | + $run mkdir "$gentop" | ||
4242 | + status=$? | ||
4243 | + if test $status -ne 0 && test ! -d "$gentop"; then | ||
4244 | + exit $status | ||
4245 | + fi | ||
4246 | + generated="$generated $gentop" | ||
4247 | + | ||
4248 | + for xlib in $convenience; do | ||
4249 | + # Extract the objects. | ||
4250 | + case "$xlib" in | ||
4251 | + [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; | ||
4252 | + *) xabs=`pwd`"/$xlib" ;; | ||
4253 | + esac | ||
4254 | + xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` | ||
4255 | + xdir="$gentop/$xlib" | ||
4256 | + | ||
4257 | + $show "${rm}r $xdir" | ||
4258 | + $run ${rm}r "$xdir" | ||
4259 | + $show "mkdir $xdir" | ||
4260 | + $run mkdir "$xdir" | ||
4261 | + status=$? | ||
4262 | + if test $status -ne 0 && test ! -d "$xdir"; then | ||
4263 | + exit $status | ||
4264 | + fi | ||
4265 | + $show "(cd $xdir && $AR x $xabs)" | ||
4266 | + $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? | ||
4267 | + | ||
4268 | + libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` | ||
4269 | + done | ||
4270 | + fi | ||
4271 | + fi | ||
4272 | + | ||
4273 | + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then | ||
4274 | + eval flag=\"$thread_safe_flag_spec\" | ||
4275 | + linkopts="$linkopts $flag" | ||
4276 | + fi | ||
4277 | + | ||
4278 | + # Do each of the archive commands. | ||
4279 | + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then | ||
4280 | + eval cmds=\"$archive_expsym_cmds\" | ||
4281 | + else | ||
4282 | + eval cmds=\"$archive_cmds\" | ||
4283 | + fi | ||
4284 | + IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' | ||
4285 | + for cmd in $cmds; do | ||
4286 | + IFS="$save_ifs" | ||
4287 | + $show "$cmd" | ||
4288 | + $run eval "$cmd" || exit $? | ||
4289 | + done | ||
4290 | + IFS="$save_ifs" | ||
4291 | + | ||
4292 | + # Create links to the real library. | ||
4293 | + for linkname in $linknames; do | ||
4294 | + if test "$realname" != "$linkname"; then | ||
4295 | + $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" | ||
4296 | + $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? | ||
4297 | + fi | ||
4298 | + done | ||
4299 | + | ||
4300 | + # If -module or -export-dynamic was specified, set the dlname. | ||
4301 | + if test "$module" = yes || test "$export_dynamic" = yes; then | ||
4302 | + # On all known operating systems, these are identical. | ||
4303 | + dlname="$soname" | ||
4304 | + fi | ||
4305 | + fi | ||
4306 | + ;; | ||
4307 | + | ||
4308 | + *.lo | *.o | *.obj) | ||
4309 | + if test -n "$link_against_libtool_libs"; then | ||
4310 | + $echo "$modename: error: cannot link libtool libraries into objects" 1>&2 | ||
4311 | + exit 1 | ||
4312 | + fi | ||
4313 | + | ||
4314 | + if test -n "$deplibs"; then | ||
4315 | + $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 | ||
4316 | + fi | ||
4317 | + | ||
4318 | + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then | ||
4319 | + $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 | ||
4320 | + fi | ||
4321 | + | ||
4322 | + if test -n "$rpath"; then | ||
4323 | + $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 | ||
4324 | + fi | ||
4325 | + | ||
4326 | + if test -n "$xrpath"; then | ||
4327 | + $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 | ||
4328 | + fi | ||
4329 | + | ||
4330 | + if test -n "$vinfo"; then | ||
4331 | + $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 | ||
4332 | + fi | ||
4333 | + | ||
4334 | + if test -n "$release"; then | ||
4335 | + $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 | ||
4336 | + fi | ||
4337 | + | ||
4338 | + case "$output" in | ||
4339 | + *.lo) | ||
4340 | + if test -n "$objs"; then | ||
4341 | + $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 | ||
4342 | + exit 1 | ||
4343 | + fi | ||
4344 | + libobj="$output" | ||
4345 | + obj=`$echo "X$output" | $Xsed -e "$lo2o"` | ||
4346 | + ;; | ||
4347 | + *) | ||
4348 | + libobj= | ||
4349 | + obj="$output" | ||
4350 | + ;; | ||
4351 | + esac | ||
4352 | + | ||
4353 | + # Delete the old objects. | ||
4354 | + $run $rm $obj $libobj | ||
4355 | + | ||
4356 | + # Objects from convenience libraries. This assumes | ||
4357 | + # single-version convenience libraries. Whenever we create | ||
4358 | + # different ones for PIC/non-PIC, this we'll have to duplicate | ||
4359 | + # the extraction. | ||
4360 | + reload_conv_objs= | ||
4361 | + gentop= | ||
4362 | + # reload_cmds runs $LD directly, so let us get rid of | ||
4363 | + # -Wl from whole_archive_flag_spec | ||
4364 | + wl= | ||
4365 | + | ||
4366 | + if test -n "$convenience"; then | ||
4367 | + if test -n "$whole_archive_flag_spec"; then | ||
4368 | + eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" | ||
4369 | + else | ||
4370 | + gentop="$output_objdir/${obj}x" | ||
4371 | + $show "${rm}r $gentop" | ||
4372 | + $run ${rm}r "$gentop" | ||
4373 | + $show "mkdir $gentop" | ||
4374 | + $run mkdir "$gentop" | ||
4375 | + status=$? | ||
4376 | + if test $status -ne 0 && test ! -d "$gentop"; then | ||
4377 | + exit $status | ||
4378 | + fi | ||
4379 | + generated="$generated $gentop" | ||
4380 | + | ||
4381 | + for xlib in $convenience; do | ||
4382 | + # Extract the objects. | ||
4383 | + case "$xlib" in | ||
4384 | + [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; | ||
4385 | + *) xabs=`pwd`"/$xlib" ;; | ||
4386 | + esac | ||
4387 | + xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` | ||
4388 | + xdir="$gentop/$xlib" | ||
4389 | + | ||
4390 | + $show "${rm}r $xdir" | ||
4391 | + $run ${rm}r "$xdir" | ||
4392 | + $show "mkdir $xdir" | ||
4393 | + $run mkdir "$xdir" | ||
4394 | + status=$? | ||
4395 | + if test $status -ne 0 && test ! -d "$xdir"; then | ||
4396 | + exit $status | ||
4397 | + fi | ||
4398 | + $show "(cd $xdir && $AR x $xabs)" | ||
4399 | + $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? | ||
4400 | + | ||
4401 | + reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` | ||
4402 | + done | ||
4403 | + fi | ||
4404 | + fi | ||
4405 | + | ||
4406 | + # Create the old-style object. | ||
4407 | + reload_objs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" | ||
4408 | + | ||
4409 | + output="$obj" | ||
4410 | + eval cmds=\"$reload_cmds\" | ||
4411 | + IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' | ||
4412 | + for cmd in $cmds; do | ||
4413 | + IFS="$save_ifs" | ||
4414 | + $show "$cmd" | ||
4415 | + $run eval "$cmd" || exit $? | ||
4416 | + done | ||
4417 | + IFS="$save_ifs" | ||
4418 | + | ||
4419 | + # Exit if we aren't doing a library object file. | ||
4420 | + if test -z "$libobj"; then | ||
4421 | + if test -n "$gentop"; then | ||
4422 | + $show "${rm}r $gentop" | ||
4423 | + $run ${rm}r $gentop | ||
4424 | + fi | ||
4425 | + | ||
4426 | + exit 0 | ||
4427 | + fi | ||
4428 | + | ||
4429 | + if test "$build_libtool_libs" != yes; then | ||
4430 | + if test -n "$gentop"; then | ||
4431 | + $show "${rm}r $gentop" | ||
4432 | + $run ${rm}r $gentop | ||
4433 | + fi | ||
4434 | + | ||
4435 | + # Create an invalid libtool object if no PIC, so that we don't | ||
4436 | + # accidentally link it into a program. | ||
4437 | + $show "echo timestamp > $libobj" | ||
4438 | + $run eval "echo timestamp > $libobj" || exit $? | ||
4439 | + exit 0 | ||
4440 | + fi | ||
4441 | + | ||
4442 | + if test -n "$pic_flag"; then | ||
4443 | + # Only do commands if we really have different PIC objects. | ||
4444 | + reload_objs="$libobjs $reload_conv_objs" | ||
4445 | + output="$libobj" | ||
4446 | + eval cmds=\"$reload_cmds\" | ||
4447 | + IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' | ||
4448 | + for cmd in $cmds; do | ||
4449 | + IFS="$save_ifs" | ||
4450 | + $show "$cmd" | ||
4451 | + $run eval "$cmd" || exit $? | ||
4452 | + done | ||
4453 | + IFS="$save_ifs" | ||
4454 | + else | ||
4455 | + # Just create a symlink. | ||
4456 | + $show $rm $libobj | ||
4457 | + $run $rm $libobj | ||
4458 | + $show "$LN_S $obj $libobj" | ||
4459 | + $run $LN_S $obj $libobj || exit $? | ||
4460 | + fi | ||
4461 | + | ||
4462 | + if test -n "$gentop"; then | ||
4463 | + $show "${rm}r $gentop" | ||
4464 | + $run ${rm}r $gentop | ||
4465 | + fi | ||
4466 | + | ||
4467 | + exit 0 | ||
4468 | + ;; | ||
4469 | + | ||
4470 | + # Anything else should be a program. | ||
4471 | + *) | ||
4472 | + if test -n "$vinfo"; then | ||
4473 | + $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 | ||
4474 | + fi | ||
4475 | + | ||
4476 | + if test -n "$release"; then | ||
4477 | + $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 | ||
4478 | + fi | ||
4479 | + | ||
4480 | + if test "$preload" = yes; then | ||
4481 | + if test "$dlopen" = unknown && test "$dlopen_self" = unknown && | ||
4482 | + test "$dlopen_self_static" = unknown; then | ||
4483 | + $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." | ||
4484 | + fi | ||
4485 | + fi | ||
4486 | + | ||
4487 | + if test -n "$rpath$xrpath"; then | ||
4488 | + # If the user specified any rpath flags, then add them. | ||
4489 | + for libdir in $rpath $xrpath; do | ||
4490 | + # This is the magic to use -rpath. | ||
4491 | + case "$compile_rpath " in | ||
4492 | + *" $libdir "*) ;; | ||
4493 | + *) compile_rpath="$compile_rpath $libdir" ;; | ||
4494 | + esac | ||
4495 | + case "$finalize_rpath " in | ||
4496 | + *" $libdir "*) ;; | ||
4497 | + *) finalize_rpath="$finalize_rpath $libdir" ;; | ||
4498 | + esac | ||
4499 | + done | ||
4500 | + fi | ||
4501 | + | ||
4502 | + # Now hardcode the library paths | ||
4503 | + rpath= | ||
4504 | + hardcode_libdirs= | ||
4505 | + for libdir in $compile_rpath $finalize_rpath; do | ||
4506 | + if test -n "$hardcode_libdir_flag_spec"; then | ||
4507 | + if test -n "$hardcode_libdir_separator"; then | ||
4508 | + if test -z "$hardcode_libdirs"; then | ||
4509 | + hardcode_libdirs="$libdir" | ||
4510 | + else | ||
4511 | + # Just accumulate the unique libdirs. | ||
4512 | + case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in | ||
4513 | + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) | ||
4514 | + ;; | ||
4515 | + *) | ||
4516 | + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" | ||
4517 | + ;; | ||
4518 | + esac | ||
4519 | + fi | ||
4520 | + else | ||
4521 | + eval flag=\"$hardcode_libdir_flag_spec\" | ||
4522 | + rpath="$rpath $flag" | ||
4523 | + fi | ||
4524 | + elif test -n "$runpath_var"; then | ||
4525 | + case "$perm_rpath " in | ||
4526 | + *" $libdir "*) ;; | ||
4527 | + *) perm_rpath="$perm_rpath $libdir" ;; | ||
4528 | + esac | ||
4529 | + fi | ||
4530 | + done | ||
4531 | + # Substitute the hardcoded libdirs into the rpath. | ||
4532 | + if test -n "$hardcode_libdir_separator" && | ||
4533 | + test -n "$hardcode_libdirs"; then | ||
4534 | + libdir="$hardcode_libdirs" | ||
4535 | + eval rpath=\" $hardcode_libdir_flag_spec\" | ||
4536 | + fi | ||
4537 | + compile_rpath="$rpath" | ||
4538 | + | ||
4539 | + rpath= | ||
4540 | + hardcode_libdirs= | ||
4541 | + for libdir in $finalize_rpath; do | ||
4542 | + if test -n "$hardcode_libdir_flag_spec"; then | ||
4543 | + if test -n "$hardcode_libdir_separator"; then | ||
4544 | + if test -z "$hardcode_libdirs"; then | ||
4545 | + hardcode_libdirs="$libdir" | ||
4546 | + else | ||
4547 | + # Just accumulate the unique libdirs. | ||
4548 | + case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in | ||
4549 | + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) | ||
4550 | + ;; | ||
4551 | + *) | ||
4552 | + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" | ||
4553 | + ;; | ||
4554 | + esac | ||
4555 | + fi | ||
4556 | + else | ||
4557 | + eval flag=\"$hardcode_libdir_flag_spec\" | ||
4558 | + rpath="$rpath $flag" | ||
4559 | + fi | ||
4560 | + elif test -n "$runpath_var"; then | ||
4561 | + case "$finalize_perm_rpath " in | ||
4562 | + *" $libdir "*) ;; | ||
4563 | + *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; | ||
4564 | + esac | ||
4565 | + fi | ||
4566 | + done | ||
4567 | + # Substitute the hardcoded libdirs into the rpath. | ||
4568 | + if test -n "$hardcode_libdir_separator" && | ||
4569 | + test -n "$hardcode_libdirs"; then | ||
4570 | + libdir="$hardcode_libdirs" | ||
4571 | + eval rpath=\" $hardcode_libdir_flag_spec\" | ||
4572 | + fi | ||
4573 | + finalize_rpath="$rpath" | ||
4574 | + | ||
4575 | + output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` | ||
4576 | + if test "X$output_objdir" = "X$output"; then | ||
4577 | + output_objdir="$objdir" | ||
4578 | + else | ||
4579 | + output_objdir="$output_objdir/$objdir" | ||
4580 | + fi | ||
4581 | + | ||
4582 | + # Create the binary in the object directory, then wrap it. | ||
4583 | + if test ! -d $output_objdir; then | ||
4584 | + $show "$mkdir $output_objdir" | ||
4585 | + $run $mkdir $output_objdir | ||
4586 | + status=$? | ||
4587 | + if test $status -ne 0 && test ! -d $output_objdir; then | ||
4588 | + exit $status | ||
4589 | + fi | ||
4590 | + fi | ||
4591 | + | ||
4592 | + if test -n "$libobjs" && test "$build_old_libs" = yes; then | ||
4593 | + # Transform all the library objects into standard objects. | ||
4594 | + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` | ||
4595 | + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` | ||
4596 | + fi | ||
4597 | + | ||
4598 | + dlsyms= | ||
4599 | + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then | ||
4600 | + if test -n "$NM" && test -n "$global_symbol_pipe"; then | ||
4601 | + dlsyms="${outputname}S.c" | ||
4602 | + else | ||
4603 | + $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 | ||
4604 | + fi | ||
4605 | + fi | ||
4606 | + | ||
4607 | + if test -n "$dlsyms"; then | ||
4608 | + case "$dlsyms" in | ||
4609 | + "") ;; | ||
4610 | + *.c) | ||
4611 | + # Discover the nlist of each of the dlfiles. | ||
4612 | + nlist="$output_objdir/${outputname}.nm" | ||
4613 | + | ||
4614 | + $show "$rm $nlist ${nlist}S ${nlist}T" | ||
4615 | + $run $rm "$nlist" "${nlist}S" "${nlist}T" | ||
4616 | + | ||
4617 | + # Parse the name list into a source file. | ||
4618 | + $show "creating $output_objdir/$dlsyms" | ||
4619 | + | ||
4620 | + test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ | ||
4621 | +/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ | ||
4622 | +/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ | ||
4623 | + | ||
4624 | +#ifdef __cplusplus | ||
4625 | +extern \"C\" { | ||
4626 | +#endif | ||
4627 | + | ||
4628 | +/* Prevent the only kind of declaration conflicts we can make. */ | ||
4629 | +#define lt_preloaded_symbols some_other_symbol | ||
4630 | + | ||
4631 | +/* External symbol declarations for the compiler. */\ | ||
4632 | +" | ||
4633 | + | ||
4634 | + if test "$dlself" = yes; then | ||
4635 | + $show "generating symbol list for \`$output'" | ||
4636 | + | ||
4637 | + test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" | ||
4638 | + | ||
4639 | + # Add our own program objects to the symbol list. | ||
4640 | + progfiles=`$echo "X$objs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` | ||
4641 | + for arg in $progfiles; do | ||
4642 | + $show "extracting global C symbols from \`$arg'" | ||
4643 | + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" | ||
4644 | + done | ||
4645 | + | ||
4646 | + if test -n "$exclude_expsyms"; then | ||
4647 | + $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' | ||
4648 | + $run eval '$mv "$nlist"T "$nlist"' | ||
4649 | + fi | ||
4650 | + | ||
4651 | + if test -n "$export_symbols_regex"; then | ||
4652 | + $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T' | ||
4653 | + $run eval '$mv "$nlist"T "$nlist"' | ||
4654 | + fi | ||
4655 | + | ||
4656 | + # Prepare the list of exported symbols | ||
4657 | + if test -z "$export_symbols"; then | ||
4658 | + export_symbols="$output_objdir/$output.exp" | ||
4659 | + $run $rm $export_symbols | ||
4660 | + $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' | ||
4661 | + else | ||
4662 | + $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' | ||
4663 | + $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' | ||
4664 | + $run eval 'mv "$nlist"T "$nlist"' | ||
4665 | + fi | ||
4666 | + fi | ||
4667 | + | ||
4668 | + for arg in $dlprefiles; do | ||
4669 | + $show "extracting global C symbols from \`$arg'" | ||
4670 | + name=`echo "$arg" | sed -e 's%^.*/%%'` | ||
4671 | + $run eval 'echo ": $name " >> "$nlist"' | ||
4672 | + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" | ||
4673 | + done | ||
4674 | + | ||
4675 | + if test -z "$run"; then | ||
4676 | + # Make sure we have at least an empty file. | ||
4677 | + test -f "$nlist" || : > "$nlist" | ||
4678 | + | ||
4679 | + if test -n "$exclude_expsyms"; then | ||
4680 | + egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T | ||
4681 | + $mv "$nlist"T "$nlist" | ||
4682 | + fi | ||
4683 | + | ||
4684 | + # Try sorting and uniquifying the output. | ||
4685 | + if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then | ||
4686 | + : | ||
4687 | + else | ||
4688 | + grep -v "^: " < "$nlist" > "$nlist"S | ||
4689 | + fi | ||
4690 | + | ||
4691 | + if test -f "$nlist"S; then | ||
4692 | + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' | ||
4693 | + else | ||
4694 | + echo '/* NONE */' >> "$output_objdir/$dlsyms" | ||
4695 | + fi | ||
4696 | + | ||
4697 | + $echo >> "$output_objdir/$dlsyms" "\ | ||
4698 | + | ||
4699 | +#undef lt_preloaded_symbols | ||
4700 | + | ||
4701 | +#if defined (__STDC__) && __STDC__ | ||
4702 | +# define lt_ptr_t void * | ||
4703 | +#else | ||
4704 | +# define lt_ptr_t char * | ||
4705 | +# define const | ||
4706 | +#endif | ||
4707 | + | ||
4708 | +/* The mapping between symbol names and symbols. */ | ||
4709 | +const struct { | ||
4710 | + const char *name; | ||
4711 | + lt_ptr_t address; | ||
4712 | +} | ||
4713 | +lt_preloaded_symbols[] = | ||
4714 | +{\ | ||
4715 | +" | ||
4716 | + | ||
4717 | + sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \ | ||
4718 | + -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \ | ||
4719 | + < "$nlist" >> "$output_objdir/$dlsyms" | ||
4720 | + | ||
4721 | + $echo >> "$output_objdir/$dlsyms" "\ | ||
4722 | + {0, (lt_ptr_t) 0} | ||
4723 | +}; | ||
4724 | + | ||
4725 | +/* This works around a problem in FreeBSD linker */ | ||
4726 | +#ifdef FREEBSD_WORKAROUND | ||
4727 | +static const void *lt_preloaded_setup() { | ||
4728 | + return lt_preloaded_symbols; | ||
4729 | +} | ||
4730 | +#endif | ||
4731 | + | ||
4732 | +#ifdef __cplusplus | ||
4733 | +} | ||
4734 | +#endif\ | ||
4735 | +" | ||
4736 | + fi | ||
4737 | + | ||
4738 | + pic_flag_for_symtable= | ||
4739 | + case "$host" in | ||
4740 | + # compiling the symbol table file with pic_flag works around | ||
4741 | + # a FreeBSD bug that causes programs to crash when -lm is | ||
4742 | + # linked before any other PIC object. But we must not use | ||
4743 | + # pic_flag when linking with -static. The problem exists in | ||
4744 | + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. | ||
4745 | + *-*-freebsd2*|*-*-freebsd3.0*) | ||
4746 | + case "$compile_command " in | ||
4747 | + *" -static "*) ;; | ||
4748 | + *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";; | ||
4749 | + esac | ||
4750 | + esac | ||
4751 | + | ||
4752 | + # Now compile the dynamic symbol file. | ||
4753 | + $show "(cd $output_objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" | ||
4754 | + $run eval '(cd $output_objdir && $C_compiler -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? | ||
4755 | + | ||
4756 | + # Clean up the generated files. | ||
4757 | + $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" | ||
4758 | + $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" | ||
4759 | + | ||
4760 | + # Transform the symbol file into the correct name. | ||
4761 | + compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` | ||
4762 | + finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` | ||
4763 | + ;; | ||
4764 | + *) | ||
4765 | + $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 | ||
4766 | + exit 1 | ||
4767 | + ;; | ||
4768 | + esac | ||
4769 | + else | ||
4770 | + # We keep going just in case the user didn't refer to | ||
4771 | + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe | ||
4772 | + # really was required. | ||
4773 | + | ||
4774 | + # Nullify the symbol file. | ||
4775 | + compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` | ||
4776 | + finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` | ||
4777 | + fi | ||
4778 | + | ||
4779 | + if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then | ||
4780 | + # Replace the output file specification. | ||
4781 | + compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` | ||
4782 | + link_command="$compile_command$compile_rpath" | ||
4783 | + | ||
4784 | + # We have no uninstalled library dependencies, so finalize right now. | ||
4785 | + $show "$link_command" | ||
4786 | + $run eval "$link_command" | ||
4787 | + status=$? | ||
4788 | + | ||
4789 | + # Delete the generated files. | ||
4790 | + if test -n "$dlsyms"; then | ||
4791 | + $show "$rm $output_objdir/${outputname}S.${objext}" | ||
4792 | + $run $rm "$output_objdir/${outputname}S.${objext}" | ||
4793 | + fi | ||
4794 | + | ||
4795 | + exit $status | ||
4796 | + fi | ||
4797 | + | ||
4798 | + if test -n "$shlibpath_var"; then | ||
4799 | + # We should set the shlibpath_var | ||
4800 | + rpath= | ||
4801 | + for dir in $temp_rpath; do | ||
4802 | + case "$dir" in | ||
4803 | + [\\/]* | [A-Za-z]:[\\/]*) | ||
4804 | + # Absolute path. | ||
4805 | + rpath="$rpath$dir:" | ||
4806 | + ;; | ||
4807 | + *) | ||
4808 | + # Relative path: add a thisdir entry. | ||
4809 | + rpath="$rpath\$thisdir/$dir:" | ||
4810 | + ;; | ||
4811 | + esac | ||
4812 | + done | ||
4813 | + temp_rpath="$rpath" | ||
4814 | + fi | ||
4815 | + | ||
4816 | + if test -n "$compile_shlibpath$finalize_shlibpath"; then | ||
4817 | + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" | ||
4818 | + fi | ||
4819 | + if test -n "$finalize_shlibpath"; then | ||
4820 | + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" | ||
4821 | + fi | ||
4822 | + | ||
4823 | + compile_var= | ||
4824 | + finalize_var= | ||
4825 | + if test -n "$runpath_var"; then | ||
4826 | + if test -n "$perm_rpath"; then | ||
4827 | + # We should set the runpath_var. | ||
4828 | + rpath= | ||
4829 | + for dir in $perm_rpath; do | ||
4830 | + rpath="$rpath$dir:" | ||
4831 | + done | ||
4832 | + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " | ||
4833 | + fi | ||
4834 | + if test -n "$finalize_perm_rpath"; then | ||
4835 | + # We should set the runpath_var. | ||
4836 | + rpath= | ||
4837 | + for dir in $finalize_perm_rpath; do | ||
4838 | + rpath="$rpath$dir:" | ||
4839 | + done | ||
4840 | + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " | ||
4841 | + fi | ||
4842 | + fi | ||
4843 | + | ||
4844 | + if test "$hardcode_action" = relink; then | ||
4845 | + # Fast installation is not supported | ||
4846 | + link_command="$compile_var$compile_command$compile_rpath" | ||
4847 | + relink_command="$finalize_var$finalize_command$finalize_rpath" | ||
4848 | + | ||
4849 | + $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 | ||
4850 | + $echo "$modename: \`$output' will be relinked during installation" 1>&2 | ||
4851 | + else | ||
4852 | + if test "$fast_install" != no; then | ||
4853 | + link_command="$finalize_var$compile_command$finalize_rpath" | ||
4854 | + if test "$fast_install" = yes; then | ||
4855 | + relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` | ||
4856 | + else | ||
4857 | + # fast_install is set to needless | ||
4858 | + relink_command= | ||
4859 | + fi | ||
4860 | + else | ||
4861 | + link_command="$compile_var$compile_command$compile_rpath" | ||
4862 | + relink_command="$finalize_var$finalize_command$finalize_rpath" | ||
4863 | + fi | ||
4864 | + fi | ||
4865 | + | ||
4866 | + # Replace the output file specification. | ||
4867 | + link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` | ||
4868 | + | ||
4869 | + # Delete the old output files. | ||
4870 | + $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname | ||
4871 | + | ||
4872 | + $show "$link_command" | ||
4873 | + $run eval "$link_command" || exit $? | ||
4874 | + | ||
4875 | + # Now create the wrapper script. | ||
4876 | + $show "creating $output" | ||
4877 | + | ||
4878 | + # Quote the relink command for shipping. | ||
4879 | + if test -n "$relink_command"; then | ||
4880 | + relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` | ||
4881 | + fi | ||
4882 | + | ||
4883 | + # Quote $echo for shipping. | ||
4884 | + if test "X$echo" = "X$SHELL $0 --fallback-echo"; then | ||
4885 | + case "$0" in | ||
4886 | + [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; | ||
4887 | + *) qecho="$SHELL `pwd`/$0 --fallback-echo";; | ||
4888 | + esac | ||
4889 | + qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` | ||
4890 | + else | ||
4891 | + qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` | ||
4892 | + fi | ||
4893 | + | ||
4894 | + # Only actually do things if our run command is non-null. | ||
4895 | + if test -z "$run"; then | ||
4896 | + # win32 will think the script is a binary if it has | ||
4897 | + # a .exe suffix, so we strip it off here. | ||
4898 | + case $output in | ||
4899 | + *.exe) output=`echo $output|sed 's,.exe$,,'` ;; | ||
4900 | + esac | ||
4901 | + $rm $output | ||
4902 | + trap "$rm $output; exit 1" 1 2 15 | ||
4903 | + | ||
4904 | + $echo > $output "\ | ||
4905 | +#! $SHELL | ||
4906 | + | ||
4907 | +# $output - temporary wrapper script for $objdir/$outputname | ||
4908 | +# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP | ||
4909 | +# | ||
4910 | +# The $output program cannot be directly executed until all the libtool | ||
4911 | +# libraries that it depends on are installed. | ||
4912 | +# | ||
4913 | +# This wrapper script should never be moved out of the build directory. | ||
4914 | +# If it is, it will not operate correctly. | ||
4915 | + | ||
4916 | +# Sed substitution that helps us do robust quoting. It backslashifies | ||
4917 | +# metacharacters that are still active within double-quoted strings. | ||
4918 | +Xsed='sed -e 1s/^X//' | ||
4919 | +sed_quote_subst='$sed_quote_subst' | ||
4920 | + | ||
4921 | +# The HP-UX ksh and POSIX shell print the target directory to stdout | ||
4922 | +# if CDPATH is set. | ||
4923 | +if test \"\${CDPATH+set}\" = set; then CDPATH=; export CDPATH; fi | ||
4924 | + | ||
4925 | +relink_command=\"$relink_command\" | ||
4926 | + | ||
4927 | +# This environment variable determines our operation mode. | ||
4928 | +if test \"\$libtool_install_magic\" = \"$magic\"; then | ||
4929 | + # install mode needs the following variable: | ||
4930 | + link_against_libtool_libs='$link_against_libtool_libs' | ||
4931 | +else | ||
4932 | + # When we are sourced in execute mode, \$file and \$echo are already set. | ||
4933 | + if test \"\$libtool_execute_magic\" != \"$magic\"; then | ||
4934 | + echo=\"$qecho\" | ||
4935 | + file=\"\$0\" | ||
4936 | + # Make sure echo works. | ||
4937 | + if test \"X\$1\" = X--no-reexec; then | ||
4938 | + # Discard the --no-reexec flag, and continue. | ||
4939 | + shift | ||
4940 | + elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then | ||
4941 | + # Yippee, \$echo works! | ||
4942 | + : | ||
4943 | + else | ||
4944 | + # Restart under the correct shell, and then maybe \$echo will work. | ||
4945 | + exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} | ||
4946 | + fi | ||
4947 | + fi\ | ||
4948 | +" | ||
4949 | + $echo >> $output "\ | ||
4950 | + | ||
4951 | + # Find the directory that this script lives in. | ||
4952 | + thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` | ||
4953 | + test \"x\$thisdir\" = \"x\$file\" && thisdir=. | ||
4954 | + | ||
4955 | + # Follow symbolic links until we get to the real thisdir. | ||
4956 | + file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\` | ||
4957 | + while test -n \"\$file\"; do | ||
4958 | + destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` | ||
4959 | + | ||
4960 | + # If there was a directory component, then change thisdir. | ||
4961 | + if test \"x\$destdir\" != \"x\$file\"; then | ||
4962 | + case \"\$destdir\" in | ||
4963 | + [\\/]* | [A-Za-z]:[\\/]*) thisdir=\"\$destdir\" ;; | ||
4964 | + *) thisdir=\"\$thisdir/\$destdir\" ;; | ||
4965 | + esac | ||
4966 | + fi | ||
4967 | + | ||
4968 | + file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` | ||
4969 | + file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\` | ||
4970 | + done | ||
4971 | + | ||
4972 | + # Try to get the absolute directory name. | ||
4973 | + absdir=\`cd \"\$thisdir\" && pwd\` | ||
4974 | + test -n \"\$absdir\" && thisdir=\"\$absdir\" | ||
4975 | +" | ||
4976 | + | ||
4977 | + if test "$fast_install" = yes; then | ||
4978 | + echo >> $output "\ | ||
4979 | + program=lt-'$outputname' | ||
4980 | + progdir=\"\$thisdir/$objdir\" | ||
4981 | + | ||
4982 | + if test ! -f \"\$progdir/\$program\" || \\ | ||
4983 | + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\ | ||
4984 | + test \"X\$file\" != \"X\$progdir/\$program\"; }; then | ||
4985 | + | ||
4986 | + file=\"\$\$-\$program\" | ||
4987 | + | ||
4988 | + if test ! -d \"\$progdir\"; then | ||
4989 | + $mkdir \"\$progdir\" | ||
4990 | + else | ||
4991 | + $rm \"\$progdir/\$file\" | ||
4992 | + fi" | ||
4993 | + | ||
4994 | + echo >> $output "\ | ||
4995 | + | ||
4996 | + # relink executable if necessary | ||
4997 | + if test -n \"\$relink_command\"; then | ||
4998 | + if (cd \"\$thisdir\" && eval \$relink_command); then : | ||
4999 | + else | ||
5000 | + $rm \"\$progdir/\$file\" | ||
5001 | + exit 1 | ||
5002 | + fi | ||
5003 | + fi | ||
5004 | + | ||
5005 | + $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || | ||
5006 | + { $rm \"\$progdir/\$program\"; | ||
5007 | + $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } | ||
5008 | + $rm \"\$progdir/\$file\" | ||
5009 | + fi" | ||
5010 | + else | ||
5011 | + echo >> $output "\ | ||
5012 | + program='$outputname$exeext' | ||
5013 | + progdir=\"\$thisdir/$objdir\" | ||
5014 | +" | ||
5015 | + fi | ||
5016 | + | ||
5017 | + echo >> $output "\ | ||
5018 | + | ||
5019 | + if test -f \"\$progdir/\$program\"; then" | ||
5020 | + | ||
5021 | + # Export our shlibpath_var if we have one. | ||
5022 | + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then | ||
5023 | + $echo >> $output "\ | ||
5024 | + # Add our own library path to $shlibpath_var | ||
5025 | + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" | ||
5026 | + | ||
5027 | + # Some systems cannot cope with colon-terminated $shlibpath_var | ||
5028 | + # The second colon is a workaround for a bug in BeOS R4 sed | ||
5029 | + $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` | ||
5030 | + | ||
5031 | + export $shlibpath_var | ||
5032 | +" | ||
5033 | + fi | ||
5034 | + | ||
5035 | + # fixup the dll searchpath if we need to. | ||
5036 | + if test -n "$dllsearchpath"; then | ||
5037 | + $echo >> $output "\ | ||
5038 | + # Add the dll search path components to the executable PATH | ||
5039 | + PATH=$dllsearchpath:\$PATH | ||
5040 | +" | ||
5041 | + fi | ||
5042 | + | ||
5043 | + $echo >> $output "\ | ||
5044 | + if test \"\$libtool_execute_magic\" != \"$magic\"; then | ||
5045 | + # Run the actual program with our arguments. | ||
5046 | +" | ||
5047 | + case $host in | ||
5048 | + *-*-cygwin* | *-*-mingw | *-*-os2*) | ||
5049 | + # win32 systems need to use the prog path for dll | ||
5050 | + # lookup to work | ||
5051 | + $echo >> $output "\ | ||
5052 | + exec \$progdir\\\\\$program \${1+\"\$@\"} | ||
5053 | +" | ||
5054 | + ;; | ||
5055 | + *) | ||
5056 | + $echo >> $output "\ | ||
5057 | + # Export the path to the program. | ||
5058 | + PATH=\"\$progdir:\$PATH\" | ||
5059 | + export PATH | ||
5060 | + | ||
5061 | + exec \$program \${1+\"\$@\"} | ||
5062 | +" | ||
5063 | + ;; | ||
5064 | + esac | ||
5065 | + $echo >> $output "\ | ||
5066 | + \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" | ||
5067 | + exit 1 | ||
5068 | + fi | ||
5069 | + else | ||
5070 | + # The program doesn't exist. | ||
5071 | + \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 | ||
5072 | + \$echo \"This script is just a wrapper for \$program.\" 1>&2 | ||
5073 | + echo \"See the $PACKAGE documentation for more information.\" 1>&2 | ||
5074 | + exit 1 | ||
5075 | + fi | ||
5076 | +fi\ | ||
5077 | +" | ||
5078 | + chmod +x $output | ||
5079 | + fi | ||
5080 | + exit 0 | ||
5081 | + ;; | ||
5082 | + esac | ||
5083 | + | ||
5084 | + # See if we need to build an old-fashioned archive. | ||
5085 | + for oldlib in $oldlibs; do | ||
5086 | + | ||
5087 | + if test "$build_libtool_libs" = convenience; then | ||
5088 | + oldobjs="$libobjs_save" | ||
5089 | + addlibs="$convenience" | ||
5090 | + build_libtool_libs=no | ||
5091 | + else | ||
5092 | + if test "$build_libtool_libs" = module; then | ||
5093 | + oldobjs="$libobjs_save" | ||
5094 | + build_libtool_libs=no | ||
5095 | + else | ||
5096 | + oldobjs="$objs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP` | ||
5097 | + fi | ||
5098 | + addlibs="$old_convenience" | ||
5099 | + fi | ||
5100 | + | ||
5101 | + if test -n "$addlibs"; then | ||
5102 | + gentop="$output_objdir/${outputname}x" | ||
5103 | + $show "${rm}r $gentop" | ||
5104 | + $run ${rm}r "$gentop" | ||
5105 | + $show "mkdir $gentop" | ||
5106 | + $run mkdir "$gentop" | ||
5107 | + status=$? | ||
5108 | + if test $status -ne 0 && test ! -d "$gentop"; then | ||
5109 | + exit $status | ||
5110 | + fi | ||
5111 | + generated="$generated $gentop" | ||
5112 | + | ||
5113 | + # Add in members from convenience archives. | ||
5114 | + for xlib in $addlibs; do | ||
5115 | + # Extract the objects. | ||
5116 | + case "$xlib" in | ||
5117 | + [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; | ||
5118 | + *) xabs=`pwd`"/$xlib" ;; | ||
5119 | + esac | ||
5120 | + xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` | ||
5121 | + xdir="$gentop/$xlib" | ||
5122 | + | ||
5123 | + $show "${rm}r $xdir" | ||
5124 | + $run ${rm}r "$xdir" | ||
5125 | + $show "mkdir $xdir" | ||
5126 | + $run mkdir "$xdir" | ||
5127 | + status=$? | ||
5128 | + if test $status -ne 0 && test ! -d "$xdir"; then | ||
5129 | + exit $status | ||
5130 | + fi | ||
5131 | + $show "(cd $xdir && $AR x $xabs)" | ||
5132 | + $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? | ||
5133 | + | ||
5134 | + oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` | ||
5135 | + done | ||
5136 | + fi | ||
5137 | + | ||
5138 | + # Do each command in the archive commands. | ||
5139 | + if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then | ||
5140 | + eval cmds=\"$old_archive_from_new_cmds\" | ||
5141 | + else | ||
5142 | + # Ensure that we have .o objects in place incase we decided | ||
5143 | + # not to build a shared library, and have fallen back to building | ||
5144 | + # static libs even though --disable-static was passed! | ||
5145 | + for oldobj in $oldobjs; do | ||
5146 | + if test ! -f $oldobj; then | ||
5147 | + obj=`$echo "X$oldobj" | $Xsed -e "$o2lo"` | ||
5148 | + $show "${LN_S} $obj $oldobj" | ||
5149 | + $run ${LN_S} $obj $oldobj || exit $? | ||
5150 | + fi | ||
5151 | + done | ||
5152 | + | ||
5153 | + eval cmds=\"$old_archive_cmds\" | ||
5154 | + fi | ||
5155 | + IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' | ||
5156 | + for cmd in $cmds; do | ||
5157 | + IFS="$save_ifs" | ||
5158 | + $show "$cmd" | ||
5159 | + $run eval "$cmd" || exit $? | ||
5160 | + done | ||
5161 | + IFS="$save_ifs" | ||
5162 | + done | ||
5163 | + | ||
5164 | + if test -n "$generated"; then | ||
5165 | + $show "${rm}r$generated" | ||
5166 | + $run ${rm}r$generated | ||
5167 | + fi | ||
5168 | + | ||
5169 | + # Now create the libtool archive. | ||
5170 | + case "$output" in | ||
5171 | + *.la) | ||
5172 | + old_library= | ||
5173 | + test "$build_old_libs" = yes && old_library="$libname.$libext" | ||
5174 | + $show "creating $output" | ||
5175 | + | ||
5176 | + if test -n "$xrpath"; then | ||
5177 | + temp_xrpath= | ||
5178 | + for libdir in $xrpath; do | ||
5179 | + temp_xrpath="$temp_xrpath -R$libdir" | ||
5180 | + done | ||
5181 | + dependency_libs="$temp_xrpath $dependency_libs" | ||
5182 | + fi | ||
5183 | + | ||
5184 | + # Only create the output if not a dry run. | ||
5185 | + if test -z "$run"; then | ||
5186 | + for installed in no yes; do | ||
5187 | + if test "$installed" = yes; then | ||
5188 | + if test -z "$install_libdir"; then | ||
5189 | + break | ||
5190 | + fi | ||
5191 | + output="$output_objdir/$outputname"i | ||
5192 | + fi | ||
5193 | + $rm $output | ||
5194 | + $echo > $output "\ | ||
5195 | +# $outputname - a libtool library file | ||
5196 | +# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP | ||
5197 | +# | ||
5198 | +# Please DO NOT delete this file! | ||
5199 | +# It is necessary for linking the library. | ||
5200 | + | ||
5201 | +# The name that we can dlopen(3). | ||
5202 | +dlname='$dlname' | ||
5203 | + | ||
5204 | +# Names of this library. | ||
5205 | +library_names='$library_names' | ||
5206 | + | ||
5207 | +# The name of the static archive. | ||
5208 | +old_library='$old_library' | ||
5209 | + | ||
5210 | +# Libraries that this one depends upon. | ||
5211 | +dependency_libs='$dependency_libs' | ||
5212 | + | ||
5213 | +# Version information for $libname. | ||
5214 | +current=$current | ||
5215 | +age=$age | ||
5216 | +revision=$revision | ||
5217 | + | ||
5218 | +# Is this an already installed library? | ||
5219 | +installed=$installed | ||
5220 | + | ||
5221 | +# Directory that this library needs to be installed in: | ||
5222 | +libdir='$install_libdir'\ | ||
5223 | +" | ||
5224 | + done | ||
5225 | + fi | ||
5226 | + | ||
5227 | + # Do a symbolic link so that the libtool archive can be found in | ||
5228 | + # LD_LIBRARY_PATH before the program is installed. | ||
5229 | + $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" | ||
5230 | + $run eval "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" || exit $? | ||
5231 | + ;; | ||
5232 | + esac | ||
5233 | + exit 0 | ||
5234 | + ;; | ||
5235 | + | ||
5236 | + # libtool install mode | ||
5237 | + install) | ||
5238 | + modename="$modename: install" | ||
5239 | + | ||
5240 | + # There may be an optional sh(1) argument at the beginning of | ||
5241 | + # install_prog (especially on Windows NT). | ||
5242 | + if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then | ||
5243 | + # Aesthetically quote it. | ||
5244 | + arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` | ||
5245 | + case "$arg" in | ||
5246 | + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) | ||
5247 | + arg="\"$arg\"" | ||
5248 | + ;; | ||
5249 | + esac | ||
5250 | + install_prog="$arg " | ||
5251 | + arg="$1" | ||
5252 | + shift | ||
5253 | + else | ||
5254 | + install_prog= | ||
5255 | + arg="$nonopt" | ||
5256 | + fi | ||
5257 | + | ||
5258 | + # The real first argument should be the name of the installation program. | ||
5259 | + # Aesthetically quote it. | ||
5260 | + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` | ||
5261 | + case "$arg" in | ||
5262 | + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) | ||
5263 | + arg="\"$arg\"" | ||
5264 | + ;; | ||
5265 | + esac | ||
5266 | + install_prog="$install_prog$arg" | ||
5267 | + | ||
5268 | + # We need to accept at least all the BSD install flags. | ||
5269 | + dest= | ||
5270 | + files= | ||
5271 | + opts= | ||
5272 | + prev= | ||
5273 | + install_type= | ||
5274 | + isdir=no | ||
5275 | + stripme= | ||
5276 | + for arg | ||
5277 | + do | ||
5278 | + if test -n "$dest"; then | ||
5279 | + files="$files $dest" | ||
5280 | + dest="$arg" | ||
5281 | + continue | ||
5282 | + fi | ||
5283 | + | ||
5284 | + case "$arg" in | ||
5285 | + -d) isdir=yes ;; | ||
5286 | + -f) prev="-f" ;; | ||
5287 | + -g) prev="-g" ;; | ||
5288 | + -m) prev="-m" ;; | ||
5289 | + -o) prev="-o" ;; | ||
5290 | + -s) | ||
5291 | + stripme=" -s" | ||
5292 | + continue | ||
5293 | + ;; | ||
5294 | + -*) ;; | ||
5295 | + | ||
5296 | + *) | ||
5297 | + # If the previous option needed an argument, then skip it. | ||
5298 | + if test -n "$prev"; then | ||
5299 | + prev= | ||
5300 | + else | ||
5301 | + dest="$arg" | ||
5302 | + continue | ||
5303 | + fi | ||
5304 | + ;; | ||
5305 | + esac | ||
5306 | + | ||
5307 | + # Aesthetically quote the argument. | ||
5308 | + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` | ||
5309 | + case "$arg" in | ||
5310 | + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) | ||
5311 | + arg="\"$arg\"" | ||
5312 | + ;; | ||
5313 | + esac | ||
5314 | + install_prog="$install_prog $arg" | ||
5315 | + done | ||
5316 | + | ||
5317 | + if test -z "$install_prog"; then | ||
5318 | + $echo "$modename: you must specify an install program" 1>&2 | ||
5319 | + $echo "$help" 1>&2 | ||
5320 | + exit 1 | ||
5321 | + fi | ||
5322 | + | ||
5323 | + if test -n "$prev"; then | ||
5324 | + $echo "$modename: the \`$prev' option requires an argument" 1>&2 | ||
5325 | + $echo "$help" 1>&2 | ||
5326 | + exit 1 | ||
5327 | + fi | ||
5328 | + | ||
5329 | + if test -z "$files"; then | ||
5330 | + if test -z "$dest"; then | ||
5331 | + $echo "$modename: no file or destination specified" 1>&2 | ||
5332 | + else | ||
5333 | + $echo "$modename: you must specify a destination" 1>&2 | ||
5334 | + fi | ||
5335 | + $echo "$help" 1>&2 | ||
5336 | + exit 1 | ||
5337 | + fi | ||
5338 | + | ||
5339 | + # Strip any trailing slash from the destination. | ||
5340 | + dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` | ||
5341 | + | ||
5342 | + # Check to see that the destination is a directory. | ||
5343 | + test -d "$dest" && isdir=yes | ||
5344 | + if test "$isdir" = yes; then | ||
5345 | + destdir="$dest" | ||
5346 | + destname= | ||
5347 | + else | ||
5348 | + destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` | ||
5349 | + test "X$destdir" = "X$dest" && destdir=. | ||
5350 | + destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` | ||
5351 | + | ||
5352 | + # Not a directory, so check to see that there is only one file specified. | ||
5353 | + set dummy $files | ||
5354 | + if test $# -gt 2; then | ||
5355 | + $echo "$modename: \`$dest' is not a directory" 1>&2 | ||
5356 | + $echo "$help" 1>&2 | ||
5357 | + exit 1 | ||
5358 | + fi | ||
5359 | + fi | ||
5360 | + case "$destdir" in | ||
5361 | + [\\/]* | [A-Za-z]:[\\/]*) ;; | ||
5362 | + *) | ||
5363 | + for file in $files; do | ||
5364 | + case "$file" in | ||
5365 | + *.lo) ;; | ||
5366 | + *) | ||
5367 | + $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 | ||
5368 | + $echo "$help" 1>&2 | ||
5369 | + exit 1 | ||
5370 | + ;; | ||
5371 | + esac | ||
5372 | + done | ||
5373 | + ;; | ||
5374 | + esac | ||
5375 | + | ||
5376 | + # This variable tells wrapper scripts just to set variables rather | ||
5377 | + # than running their programs. | ||
5378 | + libtool_install_magic="$magic" | ||
5379 | + | ||
5380 | + staticlibs= | ||
5381 | + future_libdirs= | ||
5382 | + current_libdirs= | ||
5383 | + for file in $files; do | ||
5384 | + | ||
5385 | + # Do each installation. | ||
5386 | + case "$file" in | ||
5387 | + *.a | *.lib) | ||
5388 | + # Do the static libraries later. | ||
5389 | + staticlibs="$staticlibs $file" | ||
5390 | + ;; | ||
5391 | + | ||
5392 | + *.la) | ||
5393 | + # Check to see that this really is a libtool archive. | ||
5394 | + if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : | ||
5395 | + else | ||
5396 | + $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 | ||
5397 | + $echo "$help" 1>&2 | ||
5398 | + exit 1 | ||
5399 | + fi | ||
5400 | + | ||
5401 | + library_names= | ||
5402 | + old_library= | ||
5403 | + # If there is no directory component, then add one. | ||
5404 | + case "$file" in | ||
5405 | + */* | *\\*) . $file ;; | ||
5406 | + *) . ./$file ;; | ||
5407 | + esac | ||
5408 | + | ||
5409 | + # Add the libdir to current_libdirs if it is the destination. | ||
5410 | + if test "X$destdir" = "X$libdir"; then | ||
5411 | + case "$current_libdirs " in | ||
5412 | + *" $libdir "*) ;; | ||
5413 | + *) current_libdirs="$current_libdirs $libdir" ;; | ||
5414 | + esac | ||
5415 | + else | ||
5416 | + # Note the libdir as a future libdir. | ||
5417 | + case "$future_libdirs " in | ||
5418 | + *" $libdir "*) ;; | ||
5419 | + *) future_libdirs="$future_libdirs $libdir" ;; | ||
5420 | + esac | ||
5421 | + fi | ||
5422 | + | ||
5423 | + dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/" | ||
5424 | + test "X$dir" = "X$file/" && dir= | ||
5425 | + dir="$dir$objdir" | ||
5426 | + | ||
5427 | + # See the names of the shared library. | ||
5428 | + set dummy $library_names | ||
5429 | + if test -n "$2"; then | ||
5430 | + realname="$2" | ||
5431 | + shift | ||
5432 | + shift | ||
5433 | + | ||
5434 | + # Install the shared library and build the symlinks. | ||
5435 | + $show "$install_prog$stripme $dir/$realname $destdir/$realname" | ||
5436 | + $run eval "$install_prog$stripme $dir/$realname $destdir/$realname" || exit $? | ||
5437 | + | ||
5438 | + if test $# -gt 0; then | ||
5439 | + # Delete the old symlinks, and create new ones. | ||
5440 | + for linkname | ||
5441 | + do | ||
5442 | + if test "$linkname" != "$realname"; then | ||
5443 | + $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" | ||
5444 | + $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" | ||
5445 | + fi | ||
5446 | + done | ||
5447 | + fi | ||
5448 | + | ||
5449 | + # Do each command in the postinstall commands. | ||
5450 | + lib="$destdir/$realname" | ||
5451 | + eval cmds=\"$postinstall_cmds\" | ||
5452 | + IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' | ||
5453 | + for cmd in $cmds; do | ||
5454 | + IFS="$save_ifs" | ||
5455 | + $show "$cmd" | ||
5456 | + $run eval "$cmd" || exit $? | ||
5457 | + done | ||
5458 | + IFS="$save_ifs" | ||
5459 | + fi | ||
5460 | + | ||
5461 | + # Install the pseudo-library for information purposes. | ||
5462 | + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` | ||
5463 | + instname="$dir/$name"i | ||
5464 | + $show "$install_prog $instname $destdir/$name" | ||
5465 | + $run eval "$install_prog $instname $destdir/$name" || exit $? | ||
5466 | + | ||
5467 | + # Maybe install the static library, too. | ||
5468 | + test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" | ||
5469 | + ;; | ||
5470 | + | ||
5471 | + *.lo) | ||
5472 | + # Install (i.e. copy) a libtool object. | ||
5473 | + | ||
5474 | + # Figure out destination file name, if it wasn't already specified. | ||
5475 | + if test -n "$destname"; then | ||
5476 | + destfile="$destdir/$destname" | ||
5477 | + else | ||
5478 | + destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` | ||
5479 | + destfile="$destdir/$destfile" | ||
5480 | + fi | ||
5481 | + | ||
5482 | + # Deduce the name of the destination old-style object file. | ||
5483 | + case "$destfile" in | ||
5484 | + *.lo) | ||
5485 | + staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` | ||
5486 | + ;; | ||
5487 | + *.o | *.obj) | ||
5488 | + staticdest="$destfile" | ||
5489 | + destfile= | ||
5490 | + ;; | ||
5491 | + *) | ||
5492 | + $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 | ||
5493 | + $echo "$help" 1>&2 | ||
5494 | + exit 1 | ||
5495 | + ;; | ||
5496 | + esac | ||
5497 | + | ||
5498 | + # Install the libtool object if requested. | ||
5499 | + if test -n "$destfile"; then | ||
5500 | + $show "$install_prog $file $destfile" | ||
5501 | + $run eval "$install_prog $file $destfile" || exit $? | ||
5502 | + fi | ||
5503 | + | ||
5504 | + # Install the old object if enabled. | ||
5505 | + if test "$build_old_libs" = yes; then | ||
5506 | + # Deduce the name of the old-style object file. | ||
5507 | + staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` | ||
5508 | + | ||
5509 | + $show "$install_prog $staticobj $staticdest" | ||
5510 | + $run eval "$install_prog \$staticobj \$staticdest" || exit $? | ||
5511 | + fi | ||
5512 | + exit 0 | ||
5513 | + ;; | ||
5514 | + | ||
5515 | + *) | ||
5516 | + # Figure out destination file name, if it wasn't already specified. | ||
5517 | + if test -n "$destname"; then | ||
5518 | + destfile="$destdir/$destname" | ||
5519 | + else | ||
5520 | + destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` | ||
5521 | + destfile="$destdir/$destfile" | ||
5522 | + fi | ||
5523 | + | ||
5524 | + # Do a test to see if this is really a libtool program. | ||
5525 | + if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then | ||
5526 | + link_against_libtool_libs= | ||
5527 | + relink_command= | ||
5528 | + | ||
5529 | + # If there is no directory component, then add one. | ||
5530 | + case "$file" in | ||
5531 | + */* | *\\*) . $file ;; | ||
5532 | + *) . ./$file ;; | ||
5533 | + esac | ||
5534 | + | ||
5535 | + # Check the variables that should have been set. | ||
5536 | + if test -z "$link_against_libtool_libs"; then | ||
5537 | + $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2 | ||
5538 | + exit 1 | ||
5539 | + fi | ||
5540 | + | ||
5541 | + finalize=yes | ||
5542 | + for lib in $link_against_libtool_libs; do | ||
5543 | + # Check to see that each library is installed. | ||
5544 | + libdir= | ||
5545 | + if test -f "$lib"; then | ||
5546 | + # If there is no directory component, then add one. | ||
5547 | + case "$lib" in | ||
5548 | + */* | *\\*) . $lib ;; | ||
5549 | + *) . ./$lib ;; | ||
5550 | + esac | ||
5551 | + fi | ||
5552 | + libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`" | ||
5553 | + if test -n "$libdir" && test ! -f "$libfile"; then | ||
5554 | + $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 | ||
5555 | + finalize=no | ||
5556 | + fi | ||
5557 | + done | ||
5558 | + | ||
5559 | + outputname= | ||
5560 | + if test "$fast_install" = no && test -n "$relink_command"; then | ||
5561 | + if test "$finalize" = yes && test -z "$run"; then | ||
5562 | + tmpdir="/tmp" | ||
5563 | + test -n "$TMPDIR" && tmpdir="$TMPDIR" | ||
5564 | + tmpdir="$tmpdir/libtool-$$" | ||
5565 | + if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then : | ||
5566 | + else | ||
5567 | + $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 | ||
5568 | + continue | ||
5569 | + fi | ||
5570 | + outputname="$tmpdir/$file" | ||
5571 | + # Replace the output file specification. | ||
5572 | + relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` | ||
5573 | + | ||
5574 | + $show "$relink_command" | ||
5575 | + if $run eval "$relink_command"; then : | ||
5576 | + else | ||
5577 | + $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 | ||
5578 | + ${rm}r "$tmpdir" | ||
5579 | + continue | ||
5580 | + fi | ||
5581 | + file="$outputname" | ||
5582 | + else | ||
5583 | + $echo "$modename: warning: cannot relink \`$file'" 1>&2 | ||
5584 | + fi | ||
5585 | + else | ||
5586 | + # Install the binary that we compiled earlier. | ||
5587 | + file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` | ||
5588 | + fi | ||
5589 | + fi | ||
5590 | + | ||
5591 | + $show "$install_prog$stripme $file $destfile" | ||
5592 | + $run eval "$install_prog\$stripme \$file \$destfile" || exit $? | ||
5593 | + test -n "$outputname" && ${rm}r "$tmpdir" | ||
5594 | + ;; | ||
5595 | + esac | ||
5596 | + done | ||
5597 | + | ||
5598 | + for file in $staticlibs; do | ||
5599 | + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` | ||
5600 | + | ||
5601 | + # Set up the ranlib parameters. | ||
5602 | + oldlib="$destdir/$name" | ||
5603 | + | ||
5604 | + $show "$install_prog $file $oldlib" | ||
5605 | + $run eval "$install_prog \$file \$oldlib" || exit $? | ||
5606 | + | ||
5607 | + # Do each command in the postinstall commands. | ||
5608 | + eval cmds=\"$old_postinstall_cmds\" | ||
5609 | + IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' | ||
5610 | + for cmd in $cmds; do | ||
5611 | + IFS="$save_ifs" | ||
5612 | + $show "$cmd" | ||
5613 | + $run eval "$cmd" || exit $? | ||
5614 | + done | ||
5615 | + IFS="$save_ifs" | ||
5616 | + done | ||
5617 | + | ||
5618 | + if test -n "$future_libdirs"; then | ||
5619 | + $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 | ||
5620 | + fi | ||
5621 | + | ||
5622 | + if test -n "$current_libdirs"; then | ||
5623 | + # Maybe just do a dry run. | ||
5624 | + test -n "$run" && current_libdirs=" -n$current_libdirs" | ||
5625 | + exec $SHELL $0 --finish$current_libdirs | ||
5626 | + exit 1 | ||
5627 | + fi | ||
5628 | + | ||
5629 | + exit 0 | ||
5630 | + ;; | ||
5631 | + | ||
5632 | + # libtool finish mode | ||
5633 | + finish) | ||
5634 | + modename="$modename: finish" | ||
5635 | + libdirs="$nonopt" | ||
5636 | + admincmds= | ||
5637 | + | ||
5638 | + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then | ||
5639 | + for dir | ||
5640 | + do | ||
5641 | + libdirs="$libdirs $dir" | ||
5642 | + done | ||
5643 | + | ||
5644 | + for libdir in $libdirs; do | ||
5645 | + if test -n "$finish_cmds"; then | ||
5646 | + # Do each command in the finish commands. | ||
5647 | + eval cmds=\"$finish_cmds\" | ||
5648 | + IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' | ||
5649 | + for cmd in $cmds; do | ||
5650 | + IFS="$save_ifs" | ||
5651 | + $show "$cmd" | ||
5652 | + $run eval "$cmd" || admincmds="$admincmds | ||
5653 | + $cmd" | ||
5654 | + done | ||
5655 | + IFS="$save_ifs" | ||
5656 | + fi | ||
5657 | + if test -n "$finish_eval"; then | ||
5658 | + # Do the single finish_eval. | ||
5659 | + eval cmds=\"$finish_eval\" | ||
5660 | + $run eval "$cmds" || admincmds="$admincmds | ||
5661 | + $cmds" | ||
5662 | + fi | ||
5663 | + done | ||
5664 | + fi | ||
5665 | + | ||
5666 | + # Exit here if they wanted silent mode. | ||
5667 | + test "$show" = : && exit 0 | ||
5668 | + | ||
5669 | + echo "----------------------------------------------------------------------" | ||
5670 | + echo "Libraries have been installed in:" | ||
5671 | + for libdir in $libdirs; do | ||
5672 | + echo " $libdir" | ||
5673 | + done | ||
5674 | + echo | ||
5675 | + echo "If you ever happen to want to link against installed libraries" | ||
5676 | + echo "in a given directory, LIBDIR, you must either use libtool, and" | ||
5677 | + echo "specify the full pathname of the library, or use \`-LLIBDIR'" | ||
5678 | + echo "flag during linking and do at least one of the following:" | ||
5679 | + if test -n "$shlibpath_var"; then | ||
5680 | + echo " - add LIBDIR to the \`$shlibpath_var' environment variable" | ||
5681 | + echo " during execution" | ||
5682 | + fi | ||
5683 | + if test -n "$runpath_var"; then | ||
5684 | + echo " - add LIBDIR to the \`$runpath_var' environment variable" | ||
5685 | + echo " during linking" | ||
5686 | + fi | ||
5687 | + if test -n "$hardcode_libdir_flag_spec"; then | ||
5688 | + libdir=LIBDIR | ||
5689 | + eval flag=\"$hardcode_libdir_flag_spec\" | ||
5690 | + | ||
5691 | + echo " - use the \`$flag' linker flag" | ||
5692 | + fi | ||
5693 | + if test -n "$admincmds"; then | ||
5694 | + echo " - have your system administrator run these commands:$admincmds" | ||
5695 | + fi | ||
5696 | + if test -f /etc/ld.so.conf; then | ||
5697 | + echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" | ||
5698 | + fi | ||
5699 | + echo | ||
5700 | + echo "See any operating system documentation about shared libraries for" | ||
5701 | + echo "more information, such as the ld(1) and ld.so(8) manual pages." | ||
5702 | + echo "----------------------------------------------------------------------" | ||
5703 | + exit 0 | ||
5704 | + ;; | ||
5705 | + | ||
5706 | + # libtool execute mode | ||
5707 | + execute) | ||
5708 | + modename="$modename: execute" | ||
5709 | + | ||
5710 | + # The first argument is the command name. | ||
5711 | + cmd="$nonopt" | ||
5712 | + if test -z "$cmd"; then | ||
5713 | + $echo "$modename: you must specify a COMMAND" 1>&2 | ||
5714 | + $echo "$help" | ||
5715 | + exit 1 | ||
5716 | + fi | ||
5717 | + | ||
5718 | + # Handle -dlopen flags immediately. | ||
5719 | + for file in $execute_dlfiles; do | ||
5720 | + if test ! -f "$file"; then | ||
5721 | + $echo "$modename: \`$file' is not a file" 1>&2 | ||
5722 | + $echo "$help" 1>&2 | ||
5723 | + exit 1 | ||
5724 | + fi | ||
5725 | + | ||
5726 | + dir= | ||
5727 | + case "$file" in | ||
5728 | + *.la) | ||
5729 | + # Check to see that this really is a libtool archive. | ||
5730 | + if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : | ||
5731 | + else | ||
5732 | + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 | ||
5733 | + $echo "$help" 1>&2 | ||
5734 | + exit 1 | ||
5735 | + fi | ||
5736 | + | ||
5737 | + # Read the libtool library. | ||
5738 | + dlname= | ||
5739 | + library_names= | ||
5740 | + | ||
5741 | + # If there is no directory component, then add one. | ||
5742 | + case "$file" in | ||
5743 | + */* | *\\*) . $file ;; | ||
5744 | + *) . ./$file ;; | ||
5745 | + esac | ||
5746 | + | ||
5747 | + # Skip this library if it cannot be dlopened. | ||
5748 | + if test -z "$dlname"; then | ||
5749 | + # Warn if it was a shared library. | ||
5750 | + test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" | ||
5751 | + continue | ||
5752 | + fi | ||
5753 | + | ||
5754 | + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` | ||
5755 | + test "X$dir" = "X$file" && dir=. | ||
5756 | + | ||
5757 | + if test -f "$dir/$objdir/$dlname"; then | ||
5758 | + dir="$dir/$objdir" | ||
5759 | + else | ||
5760 | + $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 | ||
5761 | + exit 1 | ||
5762 | + fi | ||
5763 | + ;; | ||
5764 | + | ||
5765 | + *.lo) | ||
5766 | + # Just add the directory containing the .lo file. | ||
5767 | + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` | ||
5768 | + test "X$dir" = "X$file" && dir=. | ||
5769 | + ;; | ||
5770 | + | ||
5771 | + *) | ||
5772 | + $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 | ||
5773 | + continue | ||
5774 | + ;; | ||
5775 | + esac | ||
5776 | + | ||
5777 | + # Get the absolute pathname. | ||
5778 | + absdir=`cd "$dir" && pwd` | ||
5779 | + test -n "$absdir" && dir="$absdir" | ||
5780 | + | ||
5781 | + # Now add the directory to shlibpath_var. | ||
5782 | + if eval "test -z \"\$$shlibpath_var\""; then | ||
5783 | + eval "$shlibpath_var=\"\$dir\"" | ||
5784 | + else | ||
5785 | + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" | ||
5786 | + fi | ||
5787 | + done | ||
5788 | + | ||
5789 | + # This variable tells wrapper scripts just to set shlibpath_var | ||
5790 | + # rather than running their programs. | ||
5791 | + libtool_execute_magic="$magic" | ||
5792 | + | ||
5793 | + # Check if any of the arguments is a wrapper script. | ||
5794 | + args= | ||
5795 | + for file | ||
5796 | + do | ||
5797 | + case "$file" in | ||
5798 | + -*) ;; | ||
5799 | + *) | ||
5800 | + # Do a test to see if this is really a libtool program. | ||
5801 | + if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then | ||
5802 | + # If there is no directory component, then add one. | ||
5803 | + case "$file" in | ||
5804 | + */* | *\\*) . $file ;; | ||
5805 | + *) . ./$file ;; | ||
5806 | + esac | ||
5807 | + | ||
5808 | + # Transform arg to wrapped name. | ||
5809 | + file="$progdir/$program" | ||
5810 | + fi | ||
5811 | + ;; | ||
5812 | + esac | ||
5813 | + # Quote arguments (to preserve shell metacharacters). | ||
5814 | + file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` | ||
5815 | + args="$args \"$file\"" | ||
5816 | + done | ||
5817 | + | ||
5818 | + if test -z "$run"; then | ||
5819 | + # Export the shlibpath_var. | ||
5820 | + eval "export $shlibpath_var" | ||
5821 | + | ||
5822 | + # Restore saved enviroment variables | ||
5823 | + if test "${save_LC_ALL+set}" = set; then | ||
5824 | + LC_ALL="$save_LC_ALL"; export LC_ALL | ||
5825 | + fi | ||
5826 | + if test "${save_LANG+set}" = set; then | ||
5827 | + LANG="$save_LANG"; export LANG | ||
5828 | + fi | ||
5829 | + | ||
5830 | + # Now actually exec the command. | ||
5831 | + eval "exec \$cmd$args" | ||
5832 | + | ||
5833 | + $echo "$modename: cannot exec \$cmd$args" | ||
5834 | + exit 1 | ||
5835 | + else | ||
5836 | + # Display what would be done. | ||
5837 | + eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" | ||
5838 | + $echo "export $shlibpath_var" | ||
5839 | + $echo "$cmd$args" | ||
5840 | + exit 0 | ||
5841 | + fi | ||
5842 | + ;; | ||
5843 | + | ||
5844 | + # libtool uninstall mode | ||
5845 | + uninstall) | ||
5846 | + modename="$modename: uninstall" | ||
5847 | + rm="$nonopt" | ||
5848 | + files= | ||
5849 | + | ||
5850 | + for arg | ||
5851 | + do | ||
5852 | + case "$arg" in | ||
5853 | + -*) rm="$rm $arg" ;; | ||
5854 | + *) files="$files $arg" ;; | ||
5855 | + esac | ||
5856 | + done | ||
5857 | + | ||
5858 | + if test -z "$rm"; then | ||
5859 | + $echo "$modename: you must specify an RM program" 1>&2 | ||
5860 | + $echo "$help" 1>&2 | ||
5861 | + exit 1 | ||
5862 | + fi | ||
5863 | + | ||
5864 | + for file in $files; do | ||
5865 | + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` | ||
5866 | + test "X$dir" = "X$file" && dir=. | ||
5867 | + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` | ||
5868 | + | ||
5869 | + rmfiles="$file" | ||
5870 | + | ||
5871 | + case "$name" in | ||
5872 | + *.la) | ||
5873 | + # Possibly a libtool archive, so verify it. | ||
5874 | + if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then | ||
5875 | + . $dir/$name | ||
5876 | + | ||
5877 | + # Delete the libtool libraries and symlinks. | ||
5878 | + for n in $library_names; do | ||
5879 | + rmfiles="$rmfiles $dir/$n" | ||
5880 | + done | ||
5881 | + test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library" | ||
5882 | + | ||
5883 | + $show "$rm $rmfiles" | ||
5884 | + $run $rm $rmfiles | ||
5885 | + | ||
5886 | + if test -n "$library_names"; then | ||
5887 | + # Do each command in the postuninstall commands. | ||
5888 | + eval cmds=\"$postuninstall_cmds\" | ||
5889 | + IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' | ||
5890 | + for cmd in $cmds; do | ||
5891 | + IFS="$save_ifs" | ||
5892 | + $show "$cmd" | ||
5893 | + $run eval "$cmd" | ||
5894 | + done | ||
5895 | + IFS="$save_ifs" | ||
5896 | + fi | ||
5897 | + | ||
5898 | + if test -n "$old_library"; then | ||
5899 | + # Do each command in the old_postuninstall commands. | ||
5900 | + eval cmds=\"$old_postuninstall_cmds\" | ||
5901 | + IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' | ||
5902 | + for cmd in $cmds; do | ||
5903 | + IFS="$save_ifs" | ||
5904 | + $show "$cmd" | ||
5905 | + $run eval "$cmd" | ||
5906 | + done | ||
5907 | + IFS="$save_ifs" | ||
5908 | + fi | ||
5909 | + | ||
5910 | + # FIXME: should reinstall the best remaining shared library. | ||
5911 | + fi | ||
5912 | + ;; | ||
5913 | + | ||
5914 | + *.lo) | ||
5915 | + if test "$build_old_libs" = yes; then | ||
5916 | + oldobj=`$echo "X$name" | $Xsed -e "$lo2o"` | ||
5917 | + rmfiles="$rmfiles $dir/$oldobj" | ||
5918 | + fi | ||
5919 | + $show "$rm $rmfiles" | ||
5920 | + $run $rm $rmfiles | ||
5921 | + ;; | ||
5922 | + | ||
5923 | + *) | ||
5924 | + $show "$rm $rmfiles" | ||
5925 | + $run $rm $rmfiles | ||
5926 | + ;; | ||
5927 | + esac | ||
5928 | + done | ||
5929 | + exit 0 | ||
5930 | + ;; | ||
5931 | + | ||
5932 | + "") | ||
5933 | + $echo "$modename: you must specify a MODE" 1>&2 | ||
5934 | + $echo "$generic_help" 1>&2 | ||
5935 | + exit 1 | ||
5936 | + ;; | ||
5937 | + esac | ||
5938 | + | ||
5939 | + $echo "$modename: invalid operation mode \`$mode'" 1>&2 | ||
5940 | + $echo "$generic_help" 1>&2 | ||
5941 | + exit 1 | ||
5942 | +fi # test -z "$show_help" | ||
5943 | + | ||
5944 | +# We need to display help for each of the modes. | ||
5945 | +case "$mode" in | ||
5946 | +"") $echo \ | ||
5947 | +"Usage: $modename [OPTION]... [MODE-ARG]... | ||
5948 | + | ||
5949 | +Provide generalized library-building support services. | ||
5950 | + | ||
5951 | + --config show all configuration variables | ||
5952 | + --debug enable verbose shell tracing | ||
5953 | +-n, --dry-run display commands without modifying any files | ||
5954 | + --features display basic configuration information and exit | ||
5955 | + --finish same as \`--mode=finish' | ||
5956 | + --help display this help message and exit | ||
5957 | + --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] | ||
5958 | + --quiet same as \`--silent' | ||
5959 | + --silent don't print informational messages | ||
5960 | + --version print version information | ||
5961 | + | ||
5962 | +MODE must be one of the following: | ||
5963 | + | ||
5964 | + compile compile a source file into a libtool object | ||
5965 | + execute automatically set library path, then run a program | ||
5966 | + finish complete the installation of libtool libraries | ||
5967 | + install install libraries or executables | ||
5968 | + link create a library or an executable | ||
5969 | + uninstall remove libraries from an installed directory | ||
5970 | + | ||
5971 | +MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for | ||
5972 | +a more detailed description of MODE." | ||
5973 | + exit 0 | ||
5974 | + ;; | ||
5975 | + | ||
5976 | +compile) | ||
5977 | + $echo \ | ||
5978 | +"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE | ||
5979 | + | ||
5980 | +Compile a source file into a libtool library object. | ||
5981 | + | ||
5982 | +This mode accepts the following additional options: | ||
5983 | + | ||
5984 | + -o OUTPUT-FILE set the output file name to OUTPUT-FILE | ||
5985 | + -static always build a \`.o' file suitable for static linking | ||
5986 | + | ||
5987 | +COMPILE-COMMAND is a command to be used in creating a \`standard' object file | ||
5988 | +from the given SOURCEFILE. | ||
5989 | + | ||
5990 | +The output file name is determined by removing the directory component from | ||
5991 | +SOURCEFILE, then substituting the C source code suffix \`.c' with the | ||
5992 | +library object suffix, \`.lo'." | ||
5993 | + ;; | ||
5994 | + | ||
5995 | +execute) | ||
5996 | + $echo \ | ||
5997 | +"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... | ||
5998 | + | ||
5999 | +Automatically set library path, then run a program. | ||
6000 | + | ||
6001 | +This mode accepts the following additional options: | ||
6002 | + | ||
6003 | + -dlopen FILE add the directory containing FILE to the library path | ||
6004 | + | ||
6005 | +This mode sets the library path environment variable according to \`-dlopen' | ||
6006 | +flags. | ||
6007 | + | ||
6008 | +If any of the ARGS are libtool executable wrappers, then they are translated | ||
6009 | +into their corresponding uninstalled binary, and any of their required library | ||
6010 | +directories are added to the library path. | ||
6011 | + | ||
6012 | +Then, COMMAND is executed, with ARGS as arguments." | ||
6013 | + ;; | ||
6014 | + | ||
6015 | +finish) | ||
6016 | + $echo \ | ||
6017 | +"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... | ||
6018 | + | ||
6019 | +Complete the installation of libtool libraries. | ||
6020 | + | ||
6021 | +Each LIBDIR is a directory that contains libtool libraries. | ||
6022 | + | ||
6023 | +The commands that this mode executes may require superuser privileges. Use | ||
6024 | +the \`--dry-run' option if you just want to see what would be executed." | ||
6025 | + ;; | ||
6026 | + | ||
6027 | +install) | ||
6028 | + $echo \ | ||
6029 | +"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... | ||
6030 | + | ||
6031 | +Install executables or libraries. | ||
6032 | + | ||
6033 | +INSTALL-COMMAND is the installation command. The first component should be | ||
6034 | +either the \`install' or \`cp' program. | ||
6035 | + | ||
6036 | +The rest of the components are interpreted as arguments to that command (only | ||
6037 | +BSD-compatible install options are recognized)." | ||
6038 | + ;; | ||
6039 | + | ||
6040 | +link) | ||
6041 | + $echo \ | ||
6042 | +"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... | ||
6043 | + | ||
6044 | +Link object files or libraries together to form another library, or to | ||
6045 | +create an executable program. | ||
6046 | + | ||
6047 | +LINK-COMMAND is a command using the C compiler that you would use to create | ||
6048 | +a program from several object files. | ||
6049 | + | ||
6050 | +The following components of LINK-COMMAND are treated specially: | ||
6051 | + | ||
6052 | + -all-static do not do any dynamic linking at all | ||
6053 | + -avoid-version do not add a version suffix if possible | ||
6054 | + -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime | ||
6055 | + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols | ||
6056 | + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) | ||
6057 | + -export-symbols SYMFILE | ||
6058 | + try to export only the symbols listed in SYMFILE | ||
6059 | + -export-symbols-regex REGEX | ||
6060 | + try to export only the symbols matching REGEX | ||
6061 | + -LLIBDIR search LIBDIR for required installed libraries | ||
6062 | + -lNAME OUTPUT-FILE requires the installed library libNAME | ||
6063 | + -module build a library that can dlopened | ||
6064 | + -no-undefined declare that a library does not refer to external symbols | ||
6065 | + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects | ||
6066 | + -release RELEASE specify package release information | ||
6067 | + -rpath LIBDIR the created library will eventually be installed in LIBDIR | ||
6068 | + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries | ||
6069 | + -static do not do any dynamic linking of libtool libraries | ||
6070 | + -version-info CURRENT[:REVISION[:AGE]] | ||
6071 | + specify library version info [each variable defaults to 0] | ||
6072 | + | ||
6073 | +All other options (arguments beginning with \`-') are ignored. | ||
6074 | + | ||
6075 | +Every other argument is treated as a filename. Files ending in \`.la' are | ||
6076 | +treated as uninstalled libtool libraries, other files are standard or library | ||
6077 | +object files. | ||
6078 | + | ||
6079 | +If the OUTPUT-FILE ends in \`.la', then a libtool library is created, | ||
6080 | +only library objects (\`.lo' files) may be specified, and \`-rpath' is | ||
6081 | +required, except when creating a convenience library. | ||
6082 | + | ||
6083 | +If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created | ||
6084 | +using \`ar' and \`ranlib', or on Windows using \`lib'. | ||
6085 | + | ||
6086 | +If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file | ||
6087 | +is created, otherwise an executable program is created." | ||
6088 | + ;; | ||
6089 | + | ||
6090 | +uninstall) | ||
6091 | + $echo \ | ||
6092 | +"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... | ||
6093 | + | ||
6094 | +Remove libraries from an installation directory. | ||
6095 | + | ||
6096 | +RM is the name of the program to use to delete files associated with each FILE | ||
6097 | +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed | ||
6098 | +to RM. | ||
6099 | + | ||
6100 | +If FILE is a libtool library, all the files associated with it are deleted. | ||
6101 | +Otherwise, only FILE itself is deleted using RM." | ||
6102 | + ;; | ||
6103 | + | ||
6104 | +*) | ||
6105 | + $echo "$modename: invalid operation mode \`$mode'" 1>&2 | ||
6106 | + $echo "$help" 1>&2 | ||
6107 | + exit 1 | ||
6108 | + ;; | ||
6109 | +esac | ||
6110 | + | ||
6111 | +echo | ||
6112 | +$echo "Try \`$modename --help' for more information about other modes." | ||
6113 | + | ||
6114 | +exit 0 | ||
6115 | + | ||
6116 | +# Local Variables: | ||
6117 | +# mode:shell-script | ||
6118 | +# sh-indentation:2 | ||
6119 | +# End: | ||
6120 | --- /dev/null | ||
6121 | +++ jpeg-6b/testimg.uu | ||
6122 | @@ -0,0 +1,873 @@ | ||
6123 | +begin 664 testimg.gif | ||
6124 | +M1TE&.#=AXP"5`/<``"PJ+&F/3)DN)4=;.)=43*#)F+R,>EI;F=%238.,O]T? | ||
6125 | +M*7)83%TL)WRK8=`Y+L]S;=K.K#8[*Y&1='%U6YET9N\U,>+HR5-U1/-06)<\ | ||
6126 | +M+6)"-4-`7W)UH)FNKU-99KJRI'23=$@_,KQ33+X[+6UG5J*+O=K3V(5`,M!$ | ||
6127 | +M/=%B77-VQ/LU6X=W9%E:.H^A=.+HW^:KIO9B9IBP?O/LW9AVGG.=5K2TZTY- | ||
6128 | +M-_9R<:18>/H<-'5W<TPH*I9A5IA%-[R]I?O\]\/APG]WH&]@;.';JM!4;%Y2 | ||
6129 | +M8EUI38^>J(,Q*LG(L],]1F-U8%U./KX_1YV3V'F,9/!%1W5LF[E:>:>ADHEI | ||
6130 | +M5IB^AKQR:?I4<CM,,?A&9/4K,G.<=_#>VL!@7]%(48^/W(A:3F)I9N`X,J>0 | ||
6131 | +M?8=.1(2!JKTC)$A"/OEE=\UD@2PQ+&IIEV""2).@C_?O\?F!@^2-B>!33_DK | ||
6132 | +M2;Y$-W!J>H>$S*A325]<2LV"@ZNOW3H_-7"#64]/2,[`LDMI//(Y0+R@D;UV | ||
6133 | +MG>&BG+F-L5%.9=W`M)F`</3.PL;)SJO+LJ.BJ)^?W=&CF?#=R8JW=Y2=WL^Q | ||
6134 | +MI::]O,#`U+R!=9>"M&(V+;YHAM$M*IIE@N'\Y4@T+V!;:_FQK+\Q*-_=W<]T | ||
6135 | +MDJ-OA,^/BH5<;ON.D+>?O(>#<(FMA)\]0/>?HJ>MD5-1C'N!R,?6M<O5UY"1 | ||
6136 | +MBXZ/Q>WHMTU#:H"1?G6"=*EC6<KMS(ANF("@>[R#H:A#-#<R+MZ!@ZF#IW1_ | ||
6137 | +MK3Q,/DM<1J_+EV9@E]G.Q:BPL;FTN+U58.%C87VB9<!V@G!`-F]./ZB^C>^_ | ||
6138 | +MN>$M+:AE?F&!8($Z+KY(1Z_3K*DQ)N%S<JIS9.)5:N$]1>)D=N!TBH9K?VJ/ | ||
6139 | +M8_IU?][;QI2:S/'A\JBN^*:@Q:"C\5]W2KZ^O69JLK2Z_,$Q06\M+9>QE*63 | ||
6140 | +MD:M58<B*J#0J+8:N;ZD[*]]$0*9XI.%'4*F!<6\X+[F5B&UA4SA$*O186YV4 | ||
6141 | +MQ?H\7^+OWN>SIW>57+QH8BP`````XP"5```(_P#=K=FU:]>N7;MV[=JU:]>N | ||
6142 | +M7;MV[=JU:]>N7;MV[=JU:]>N7;O<N=OESIT[=^[<N7/GSIT[=^[6N%OC;HV[ | ||
6143 | +M7;MV[=JU:U>$71%"A`@1(D0(-&C0W`@1XD:(&R$TA%"F[$09'[IT2:-#!X4T | ||
6144 | +M%"CF18D2)4H40(```0($*`JV)2A&T!FA:P0=>'3@Z=*E*T.&##XR^#B1(<.) | ||
6145 | +M#!DR^,B0(4,&'QE\9,B001<=.G1&T-'EHXRR$)MV[=JU:]<N=[MV[=JU:]<N | ||
6146 | +M=[O6K'&WQMT:=[O<N7/GSMVN32&4E2E#@,"S4*$JF;&3@(.P0K(*R2I42,R. | ||
6147 | +M5XLZ4''SBA:)%GT*%?\RLFN-NS5K=NW:M6O7KEV;=NW:M&O7KEV[=NW:M6O7 | ||
6148 | +M+H"[=NW:M6O7+G?N=KG;Y6Z7NUWN=KG;Y0Z`NS7NUNS:M6;7KEV[(NR*L"O$ | ||
6149 | +MKCTA0J!!$^)&B!`:0H0(H2%$"`W*EIWPX4.7+CITZ*"0AF(>H'GSH@"*$@40 | ||
6150 | +M($"`L,5S@`(>'7ATX-&!ITL7/%T9=/GPD2'#B0P93F3(<"+#B0P93F3(X"-# | ||
6151 | +M!A^H=.FB0X<.'5UW3BC;M"G$KCV[=NW:M6O7KEV[W.W:M6O-KC5KUKA;L\N= | ||
6152 | +M.W?NW+G;M$F#LC($".2P1H.&&3.L.!R0)4M6'UF%.-69]<H-%3<23!TQTL+_ | ||
6153 | +MB)%":]:XV^5NUZY=NW;MVK5KUZY=NW:YV^5NE[M-[G:YV^5NE[M=[G:Y<^?. | ||
6154 | +MG3MWN]RYV^5NE[M=[M:XV^5N%\`UNW;MVA5AUZX0NW:%"!$B1(@0(4*$"!$B | ||
6155 | +MA(80-T)H"*%!V8D3/C)D@`>/#ATZ=.;%PQ8E7I0H@``!B@(H2CP4(T;H&J%K | ||
6156 | +M!#Q=(W3I@J<K0X8,/C)D.)$APXD,&3)D.)$A0X83&7QD0`6/#ATZ=.C0T47@ | ||
6157 | +MA+(0FW9MVK5KUZY=NW;MVK5KUZXUN]:L6>-NS1IW:]SM<N?.W:9=FRPI4U:& | ||
6158 | +M0(Y,F8288>7+W`%9LF3)*B2K#Z<=9B3,>F5J!PD\_WV,>##B;LV:-;O<K=FU | ||
6159 | +M:]>N7;MV[=KE;I.[7>YVN=NU:]<N=YMV[=JURYV[7>YVN7/G;I>[7>YVN5NS | ||
6160 | +M:]>N-;MV[=H58=>N71%V[=H58E>(""%"A`@1(D2($"%"A`B!!F"()AHT*#MQ | ||
6161 | +M(DF&#/!TZ9(F#<62>/&B`(H"*`H@0(#BQ7-`9\0(72-TP=,%3Q<\'_!\9/"1 | ||
6162 | +M(<.)#!E.9,@0[42&:!E.9,APPD<&'ZATT:%#AXX(701.:`BQ:=.>/9OV[-JU | ||
6163 | +M:]>N7;MVK=FU9LV:76O6[%JS:]>N7>[<N=NU*80E9<K*E.FQ38@07[[8K)(E | ||
6164 | +M2Y:L0ALV%.*T8\<.6CLF'/_QT,(('B-K``!8LV:7NUUKW.URM\O=KEWNW+G; | ||
6165 | +MY6[7+G>[W.W:Y<[=+G?NW.URM\;=&G>[=NURM\O=+G>[UNS:M6O-KEV[=NW: | ||
6166 | +MM2O"K@B[=H78%2)$B$TA-FW:%")$B!`W;H1HHF&9LA/1HF7(H$N7-#I?4,2+ | ||
6167 | +M%R\*($"```&*`C`>"CHC=.F"IPO>"%WPX.G*`,]'A@P93F0XD>%$AA,9,IS( | ||
6168 | +M<"+#B0P9?&3P`8\.G1%TZ-"Y<T*9ADV[]FS:M6O3KEV[=NU:LVO-KC6[UJQ9 | ||
6169 | +MLV;7FC7N=NW:Y<Z=.W>;&(2HITS9LE';I`A18<[<*EFR9,F2)0O-AE^%.(D1 | ||
6170 | +M(P;_CX<6'O`8P0,`P!IW:]:X6[/+W2YWN]SM<N=NESMW[MRY<^=NESMW[G:Y | ||
6171 | +M<[?+W1IW[M:X6^-NS2YW:W:Y6[-KE[M=:W;MVK5FUZY=NW9%V+5KTZY=FW;M | ||
6172 | +M"A%A4XA-(2R%"!$BQ(T;&C0H4Q8M6K0,/GSH$B$-!0H4\;!%`00(4!1`\5", | ||
6173 | +MT#4"GBYXNG3!TZ4K@ZX,&7QD.)'A1(83&4YD`!CM1(9H&:*=R'#BA`]XNNC0 | ||
6174 | +M0>&$CJX[99:%"+%KSZ8]F_;LVA5AUZY=N];L6K-FS9HU:]:LV;5FS:XUNW:Y | ||
6175 | +M<^=NTR9+EC0H&R7E%BM?*LP=6"5+EBQ9&V1M0+/AUZ\^_WWZ].G3P@@>3@`` | ||
6176 | +M`%CC;HV[->[6K'&WQIV[76O<K7&WQIV[70#<N5OC;HT[=VO<N5OCSAT`=^[< | ||
6177 | +MN7.W:XV[7;O6[%KC;M<:=[MV[=JU:]>N")MV10BQ*\2N39LB;`H1(D*($#=" | ||
6178 | +MW`BA08.&>B>B1<N0(8,N772DH4`1+QZ@*(```8J'`L4(7?!TZ8('#QX\>/`R | ||
6179 | +MZ,K@(\.)#!E.9#AQ(D.T#">B93B1X<2)##Y\9-!%APX=.M)$W`FS0,.>/2%V | ||
6180 | +M`=RT:]>N7;MVK8FP9M>:-6LBK%D38<V:76MVK=FU9LT:=[MV;=H4PE*3(;?, | ||
6181 | +MF&&EPIRY5;)D;=@D:\.LV_/_Z!>P7,&`>\.#!`P#`&@``UNQ:X\X=@%WN | ||
6182 | +MW+E;X\Z=.P#NUK@#X&Z-.P#N`+A;X\Z=.W?N`+@#X&Z-NS7NW*UQMV;7+G<1 | ||
6183 | +MW.U:LVO-KEV[=D78M6O7KEV;=FW:%2'$IDTA0H0($2)$B!`A-&C04*]>M"31 | ||
6184 | +M?/C0I8N.M"\HXL6+4B%*A7@HZ.B"ITL7/%VZ=.G*H,M'A@P9,IS(<"+#B0S1 | ||
6185 | +M,D0[D2':B6C1HITX<<*'+EU.Z#B1)JU6K1X+\/3YM2O$KCV[]NS:M2O"FC41 | ||
6186 | +MUD18LV;-FC5KUJS9M6;-KEUK`.YRM\N=NTV;T&@8(J02&#NL5)@[($O6A@T; | ||
6187 | +M-OS:\*O_#S`/'CP`\X"G!1X\:P"L`;`&P!H`:]:X6[-F#0!W`-8`<`<`@+LU | ||
6188 | +M[@``<`?`'0``[M8`6`/`W1IW[MRM<>=NC3MW`-RM<;?&W2YWN];LVK5KUZY= | ||
6189 | +MNW9MVK4KPJ9=FW9MBK`I1(@0(="$T!#"DB5+]>I%BY8A0P8?NG31H4,G7KQX | ||
6190 | +M4>+%BX=BA"X?NC+HR@`O`[P,&3)DR)#A1(83)TZ<B)8A6K0,)Z)E.)'A1(83 | ||
6191 | +M/GSHDB:-CC1I[&I98[&#A(<^?="@V;5KUZY=:W;MBK!FS9HU:]9$6+-FUYHU | ||
6192 | +M:W:M6;-KS9I=[C9MVA3"R+97L+Z!`:/"G+E5LF1MV+!A`S`/_P"9T*)%BQ83 | ||
6193 | +M,<#PX%FP!L`:`&L`K'&WQMT:=^X`N`,`P!T``.X`N`,`P!T`=VL`N%L#P!T` | ||
6194 | +M=VO<N5OC;HT[=VO<N5OC;HV[-;MVK7&WQIV[->YV[=JU:]>N7;LV1=BT:].N | ||
6195 | +M39LV;0H1(D2($"$LA;!4KUZT:-%.9,@`3Y<N.G10H(@7+UX\%'1TZ<J@RT<& | ||
6196 | +M71DRZ,J@*T.&#"<RG,AP(D.T#">BG8@6[42T$R=.G#CAPX>N.[KHB+CSS]JA | ||
6197 | +M0RPF'`'6YP::/2$B[%H38<V:-6O6K%FS9LV:-6O6[%JS:\VN-;O6[-KESMVN | ||
6198 | +M72&,[#"C#Q:D!*Q4J#!W8%6A0A[$,/^AY6O6K%FT:$TX@@</'@!K``!8`V`- | ||
6199 | +M@#4`U@````"`.X``````````````U@```````````````&#-&@!KU@!8XV[- | ||
6200 | +M&G=KW+ESM\:=NS7NUKA;XVZ7NUV[=FW:M6G7KETA=FW:%6)3B$TA0H2P%"*$ | ||
6201 | +M)4N6+*6+EB1#A@P^,NC2I8L.'10HXB%`08>.CPP^=&7(D"%#A@P9,F3(D.'$ | ||
6202 | +MB1,9HIV(%BU#M&@GHD4[<>*$CQ,$?/BX(^V.B%K6Z)%Y18N6F"-]?MU`LR?" | ||
6203 | +MKC6[UNQ:L\;=FEUK=JW9M6;-FC5K=JU9XV[-FEWNW.W:A(;3CE=(8'U+P"J! | ||
6204 | +MKUD):-'R!8W_UBQ<2$XAP35K%I,C+5K@60-@S1H`:P"L<;?&'0``[@`````` | ||
6205 | +M````````````````````````````````<`?`'4``:]RM<0=@C;LU[M:X6^-N | ||
6206 | +MC;LU[M:XV[5KUZY=NW9MVK5IUZ9=FW9MVA1BTZ80FT)LVF3)4KUHT:*=R)#! | ||
6207 | +M1P8?NG31H4,'`0H1='3IRN`C@X\,&71ER)`A0X8,)S)$RQ`M0[0,T:)%BQ8M | ||
6208 | +MVHEH)TZ4.5'&AZX[NNZPJT6/C(M7N&C1$@.L3Y]?:/9$6+-KS9HU`-:L<;<& | ||
6209 | +MP)HU[M:X6^-NS1IW:]RM<>?.W:Y=-X[02O`*"9($"9!T0-(!"1)<_TAF<4&B | ||
6210 | +M3ITZ)+AFT?+0HDF+-6O6`%CC;HV[-0#6`%@#```````````````````````` | ||
6211 | +M``````````````````#6``"PQMT:`.[6N%OC#@``=P``N%OC;I>[79MV;=JU | ||
6212 | +M">"N7;LV[=JT:].N$)LVA0BQ*<2F398L6:H7[42&##Y09<C@0Y<N.G3HT*&C | ||
6213 | +M2U<&'QE\9,B0(4.&#!E.9#AQXD2T$QF21(L6+5JT:-%.1#MQXD29,C[*^+AS | ||
6214 | +MAUTM:Q+6N7'A9A8M)D?P`,N"!E^$76MV`7`'P)T[=VO<N5OC;HV[->[6N%NS | ||
6215 | +M:XV[7>[<N=OU2XRI6:^0()F%Y%0'258ZJ/_KH.[4J5/JU*G#A6L6DS\M;K18 | ||
6216 | +MLV;-FC5KW*U9`V"-NS7N`*P!```````````````````````````````````` | ||
6217 | +M`````'<`UK@#X`Z`.P#N``!8XVZ-.P"[W.W:M6M7A%V[-NW:M,O=IEV;=FW: | ||
6218 | +M%6+7IA";0FS:9,E2O7K13IPX`3"#CPP^?/C0I4N7"%VZ=&7(D"%#A@P93F3( | ||
6219 | +MD"'#B0S1,D2+%BU:M`S1HD6+%BW:"64GRIPH4\8'*@)W:EFC)\&%FU.XN-"B | ||
6220 | +M)>9(BSZ_\.W9LVN-NS4`W*UQYVZ-.W<`W*UQMV:7.W=KUJQQY\Z=NUTWCO"9 | ||
6221 | +MY<8-$B2G.A10I$C_D:("!4YU>'1*W:E3LT`P:7&CQ8TU:P"L6;-FS1IW[M:L | ||
6222 | +M<;=FC;LU````````````````````````````````````````6`/`W1H`[@`` | ||
6223 | +M<`<```!W`-RM<;=FE[M=FW9MVK5IUZY=FW;QV+5KTZY=N_;LV15BTZ9-FRQ9 | ||
6224 | +MJA<M6K0,)S*<R.##1P8?\'3ITI7!1P8?)S*<R)#A1(83&3)$`Y@A6K1H&:)% | ||
6225 | +MBQ8M6I)HT:*=.%&F3)DR/LKX8,>N%CTR;F2<.H5KUBQ:$Y@<`0;LQIX]$7;M | ||
6226 | +M`N#.G3MW[MRY`^`.@#L`[@"L<0?`'0!W[MRYBX"O!9]9+MS@PN7&2H$"_].F | ||
6227 | +M32M@Y=2I4Z=.G<(UBQL38#>RW`"P9LV:76O<K=FUQMT:=VO<K7'GSAT````` | ||
6228 | +M``````````````````````````````````#6N%L#8(T[`````'#GSIT[=^YV | ||
6229 | +M[=JU:]>N3;MV;=KE;M,N=YMV;=H58M>N/;OV[-JTB8$E2_7J13MQXH2/$R<R | ||
6230 | +M9,B009<N'SXRG,B0(<.)#"=.9(B6(=J))!FB18L6+5JT:-%.U#MQ0MF),B?* | ||
6231 | +ME"E3AD"/'H<.`5SGQLTI7+APS:(%#=J1(\#Z9-D389<[=^X`N','````=^X` | ||
6232 | +MN'/GSIV[->[6N'/GSIV["%E:\($RRX4;7*<>%?\H4*!`@0*/3IUZ=.K4*2[< | ||
6233 | +M:!T!EN4&FEUKW*U9XV[-KC6[=NW:M<O=KEV[=KD#```````````````````` | ||
6234 | +M`````````````*QQMV;-&@!KW*U9X\Z=NS7N=NW:M6O7KDV[-NW:M6G7KEV; | ||
6235 | +M=KG;Y&[3KDV[-D78%6'7KET\>/!@8$F#LF@G3IS(D"%#M`P9?&3PD2%#A@P9 | ||
6236 | +M3F2(=N)$M!,G,D3+$"U:M&C1E-53IJS>B6@GRI0I4Z9,&1\$>FP[9,H%+C>G | ||
6237 | +MW)Q"@HL+"&[0F%PX<@38C1`1=KESY\Z=.P````(```"`.P#NW+ES!\`=``#N | ||
6238 | +MW*UQ%Z$%'R@N7+AP<0K_UR,K!:P\.G7JU*E3N$[AF@6%R1%@-[*$6+-FS:XU | ||
6239 | +MN];LVK5KUZY=NW;M<K?+W2YW[@"X`P!@#0```````.`.@#L```````#`'8`U | ||
6240 | +M:]RM<;<&P!IW:];L<K?+W:Y=NS;M"K%KTYY-NW;MVK3+W:Y-[C;MXK%ITZX] | ||
6241 | +MNW9MVL5C$P\&EBQI4*;LQ(D,)S)DR!#MQ(D3)TZ<R)`APXD3)Z*=.''B1+03 | ||
6242 | +MT:)%JQ>M7CUET>K54W;BQ(DR9<J4*4.@!PM3LW#A.N7FE)M3N+APX<8-&C0F | ||
6243 | +M1X#U^15BDSMW[@```````````-RY<^?.'0!W````6./.W9H(+29`D3`+EPMD | ||
6244 | +M_P#?G7JDSHJZ4^]P-<!U"A<N$-R@'0&6!<V>7;O6[%JS:]>:"+LB[(JP:]>N | ||
6245 | +M7>YVN=NUR]T:=VO<K0$```````#<`7`'````=^[6K'&WQMT:=VO<K7&WQIV[ | ||
6246 | +M7>YV[=JT:]>F79LB;-H58M>F7;LVN=NU:]>F79MX;.+!8Q,/=YO<;=K$P)*E | ||
6247 | +M>LKJG3AQ(D.T:!E.G#CAXX2/$QE.G#AQXL2):!FB98@6+5JT$]&415-V0EFT | ||
6248 | +M:"?*E#E1IDP9'P0RL3`U"Q>N4Z=.G4*""Q<(;MR@08,&[<(18+_P15@#```` | ||
6249 | +M``#<`7`'P!T`````````8`V`76L``(AP8P(4*/Z0X?_"A0S7NU.G&IQJ@.L4 | ||
6250 | +MEP:XN,RBQ40,L%\A(NQ:LVO-+H"[(NS:M2O"K@B[=NW:M6M7!'>[W+G;Y<Z= | ||
6251 | +MNS5K````X`Z`.P#NW`%PM\;=FEWNUNQ:LVO-+G=K=KG;M6O7KEV;-NT*L2O$ | ||
6252 | +MI@B;=FW:M6G7KDWN-NW:M(D'#P8\>/#@L6O7KDT\&%BR5*]>M&C1HF4X<>+$ | ||
6253 | +MB1,G3IPX<>+$B0S13B3)$"U:M&C13BB+%JU>M'K*3B@[4>9$F3)ERI0)$Z8* | ||
6254 | +M!5-09N'"=<K-*5QN<('@PH4;-V[0H#'Y`ZP/O@AK``!PY\Z=.P#N```````` | ||
6255 | +M@#4`````X,X=@%T#)O"9!07_"C(NR)#A:H`+&2Y<#;B<XH(+%RUNT(X`0[-G | ||
6256 | +MUZX(NR)$V+5GUYY=>_;L"A%AUZ9=NW;MVK5KUZY=NW:M<;?&'4!W[MRY<^<. | ||
6257 | +M@#MW[G:Y6[-KUYI=NW:MV;7+781=FW9MVA0AQ*80(3;MV11BUZ9=FW9M<K=I | ||
6258 | +MUZY-NS;Q8,"`!X]=NW9MBL"``0-E]92=B'8B6K1H)TZ4.7'BQ(D3)TY$.Q$M | ||
6259 | +M0[0,2:)%BZ9,V8EH2:*=2!=-V8D3)\J4.5&F3)A152:P8`%%`JY3N$Z=.H6+ | ||
6260 | +M"RYNW$!P`\$-&BTF1X#]"K%KESMW[MRY`P```````````````````-Q%"-%" | ||
6261 | +M#!\H_WS\S?+'I0879%R0<6F`JP$7+KA`@*#%Y`@P-!%V15BS:\^N/;MV[=FU | ||
6262 | +M9].>/9OV;(JP:5.$7;MV[=JU:]>N7;O<N7/GSIT[=^[<[5JS:U>$-;MV[5JS | ||
6263 | +M:]>N7;MV;8JP"6"$$)M"A-@5(D2($)M"[-JT:].N3;LV[=JT:=,F!CP8;-H4 | ||
6264 | +M(D*$39M",+!D*5V]:$FB)8D6K=Z):&5.G#AQXL2)$]$R1$L2+5JT:">414N2 | ||
6265 | +MA,"=$]%.E%FV;-FR,F7"A"$Q80(+"H<DK)/@!M<I7+APX9IE:A:46;-`T(+& | ||
6266 | +MY`B>&R$B\'#GSIT[`````%@#``````#<N7.W*P2:%GB83/_@PP<*-W_^N'%! | ||
6267 | +MQH4+%RY<<.'BP@4$-VC0+@!#$V+7KCT1=NW9M6?/KCTA]H38A69/B%TA=H78 | ||
6268 | +MM2?"GEU[=NW9M6O7KEWN=NW:M6O7KEV[=NW:M6O7K@B[(NS:$R'$KA";0FP* | ||
6269 | +M$2)$B!`A-H78%6+3KA"[-NT*L2O$KA";-FT(`7!3B$TA-FT*L6G3)@8,ZD6+ | ||
6270 | +M=@+5B1,GHD6+%NW$B1/+3IPX$2U:M&@GHIU0%NU$-`'P4O"J=:),F67+RBQ; | ||
6271 | +ML&!!%7(36%"P]N_*%4IDUKEQ<VH6+@D29LV:!0(*"&ZTF!P!=B/$IET\W+ES | ||
6272 | +MYV[-FC5KW+ESQX.'.QXAFK3`0V[_`CD^T-IPXU8#1`TN-;AP:8"+"Q<N($!P | ||
6273 | +MH\7D"+`L(39%V+5GUYY=>W;MV;,KQ)X-NT+L"A$BQ)Y->S;M0K,KQ*X0NW:Y | ||
6274 | +MV[1KUZY=NR*XV[5KUZY=NR+LVK5KUYY-(4+L"K$K1(@0(4*$"!$B1(@0(7:% | ||
6275 | +MV!5B5XA=(7:%V+4'S:80(4)LVK3)TJ80(2Q9JA<MF@]4!%#=(>`C6K0D)S*< | ||
6276 | +M`)@AVHEHT4XH.Z%,F;)HT:(E$:`+#JE_/LHH6[:L28L%"\)4F<""PC\O11#( | ||
6277 | +MJ59-E`%[9,A(.$1&@@0)$F;-H@5EPH1[>&Z$8+!I$X]=N]RYV^5NDSL>/'CP | ||
6278 | +M"-$"#XDC_Q,F\.'#)P"W&B!J<*G!A1L7+KBX@``!`@04:-`N`+N!)L2>/;OV | ||
6279 | +M[-FS9\^N#2'VA`B!9D.(#2'VA$`3(D2(/2$V[=D4(L2F79LV;=JU:5>$7;LB | ||
6280 | +M[(JP:U>$/;OV[(JP*4*($"%"A`@1(D0(2VA";`JQ*<2F$+M"[`JQ*\0N-&@V | ||
6281 | +MH;&TR9(E2Y88,*A73UD9'SX(H$*%RL>=.^S8W4&5`56&$P*B)3EQ0IDR9<JB | ||
6282 | +M14LB0`"*8](0\!)1)LRR>_=(`%QPKTJ5'O\>R(FW90Z@?1BNX>#%BU<<2I0H | ||
6283 | +M43)`A@R90X<.5>E1IHPR9>D86.+!@T>(39LV;>+ACL<F#2WN'?\AP8</'VA\ | ||
6284 | +MN/GSQXU+#1!<N'#CPH7++"ZTN-&"QN0"L#XW;NS9M6?/KCV[-NP)$6'#'C1[ | ||
6285 | +M0J`)$6+#GA`;]FS:$"+$AA![-NT)L2M$A$T10NP*$6%7A%V[=NW:M2O$KA`1 | ||
6286 | +M0H38%")$B!`A-(1`$R)$B$U[0H38%6)7B%TA-H78M(E!O7K13I0Y4:9,&1\$ | ||
6287 | +M[ISPX4,7J@P94*'*D,&'+EVZI+&3A@H5JA,GHBE;5N9$$@%.OLR;MX1.BCLG | ||
6288 | +MRMQKT8($"1(D>OQ+(6?>G#ESYLR9$R4*!CG7Y!P[]N#!@P</`#YXD.S!@RN7 | ||
6289 | +MO'CQ(H*=#Q\GTO%@P&/3IDTA0FAHTF+_`0ERIJ#PX<,-"C<0_OSYXP8"!)=9 | ||
6290 | +MN)#@PC6+&Q]H3(X`Z].DSZX]N_;LV8-F3X@]:$*$V(,FQ!XT:$*$0!,B!)H0 | ||
6291 | +M(4)LVK,IQ*80(3:%"!%B4X1-NT+LVA5A5X1=>W9MBK`IQ*X0(4*$T!`B1`@- | ||
6292 | +M(4)L"A%BTYY-(?9LVA-BCX9-Z5"Q*S(E!2H?!'R($(%`FBX?J.#!@T<-GBYX | ||
6293 | +M&3+`TT5'%S543J2)T.4C6K1T29((</)EWCP'#CR)2.$C3)4%)"94J5+EWS$, | ||
6294 | +M40#-F3-GSHH5<P`!F@-HQ;YY^[1<PW#MVK5KU^9=TX(%2YHTUXH4N<0N'0,& | ||
6295 | +M(4*$V+3GQHT%_P!;D)A@"@H4*%#X0($"91:(6;C<N''C1AT2-[-FT8+&Y,*? | ||
6296 | +M/GB:[-JS:\^N/7M";-@38L,>-"$VH$$3`@V:$&A"H`F!!DV($"%";-JS*<2> | ||
6297 | +M37M"A-@58M>N"+MV1=BU*<*N$+M"A`@1(D2($"$TA`BQ*02:32$VA=BS:4^( | ||
6298 | +M/2%";&(0S5B1:QB,"<APPH<N:2B6T-&E2Y<N>'1TT=$%#QX\>/"H.4'G!)V3 | ||
6299 | +M+\:,94B2)(.T(MC&8,/D8`0*$;4(+"!194*5*M8>8(BR#]"^*/M6[`.T8LZ* | ||
6300 | +M.7,`K5BQ8L6*??NT:-&R;]\^+5JT8,&"!<NU&&J,)4G'8%.($/BRW/]H<8\$ | ||
6301 | +M"R@2H$"9-0L$%"BS7+A1I4X5,4G%B!%#,HL6+8`7C@`#U@)/A%U[=NW9LR$" | ||
6302 | +MFA!H0J!!@R8$&C1HT*!!@P8-&C0A0H0(L2G$GDTA-H78%&)3A!"[0NP*L2O$ | ||
6303 | +MK@B[0NP*$2+$IA`A0F@($2)$"$LA0FP*L6E/B$U[0NQ"LR>$I23LKEW#MN0, | ||
6304 | +MM0P9,M"AL\0!/%WPX-%Q(DT$/%WPX,&#-V*$$Q1+1BS!)D<.G2\($,S#-L89 | ||
6305 | +MIC&8EHR@(R+,LBI5PO2H]:!:%$"``$6)$B5*E"B`5LR9LV+%OA7[]NW;IV6? | ||
6306 | +MEGU:M&C1LD^+EGU:L&BY=DV-L1,,&(1H<B/_Q(T%)$Q)<./FU:Q9;E[->N6& | ||
6307 | +MRH<?Y9244Y*H'#%5KV@Q87+A"#!@>"+LVK5GUYX((?;L0;,'S1XT:'ZA08,& | ||
6308 | +M#4`T:&Z@08,&38@0(4*$"+$G1(@]F_:$V!5B5XA=NW9MBK`IPJX0$4*$"!$B | ||
6309 | +M1(@0ED)H"!$B1(A-(3:%V+-I3X@]:#;5\V'L&C9LF#Q1HY9!0(81(]#!@P</ | ||
6310 | +M'CQ==.CH@@</'K41=%",0!$O"B!`%9R-B8=!#C9,S@`Y&(/)@2=X__X1"!.F | ||
6311 | +MS)T'Q^1$`81MR1(4"/)AB`((T!Q`<U8`6@%HW[Y]^[3LV[=OW[Y]^_9IV:=% | ||
6312 | +MBQ8LUV)H4^.CGJ40_R%N-"'!0H(;*E20N%E$C)BJ11\2*4GD:IB)1,,2E2N& | ||
6313 | +M9!8T)D>.`,,#;%>$7;OV[-JS:P^:/6C0H$&#!@T:-&A^H;F!!HT&-"'0A`@1 | ||
6314 | +M(D2($"%";`H18E.(/9OV;-JS"^">71%"A-@5(D2($"$TA`@1(D2($)9";`JQ | ||
6315 | +M:5>(72$BA-@3(D0Z=L:<H$.'SA,U>!DR9(`'+T,&>`+@P7-"!QX=7?`RC*!# | ||
6316 | +MA\X(!V,4;-&Q9<L69V.<.1NSQ9DS!Y@<>'*2(D^M,F7N_#N&(5Z4*-A0.*"# | ||
6317 | +M0DZ4*"L``9H#"-"^%2M6K-BW;]^^?5JT:-FG99^6?5JT8,&2!DN::J"\G/^H | ||
6318 | +MIVQ!%5/K`GTH5HQ8L7*3RDU*-,S$IRY=/IGH8L)$HF*J7M%BPN3"D2-'UNQ9 | ||
6319 | +MLV?7KCV[]NS:@V8/&C1HT*"Y@>;W;MRX@>:&!C0:T*`)$2)$B!![-NW9 | ||
6320 | +MM&?3GEV;(FR*L&M7B!`A0H0($4)#"`TA+(4(L2G$IA`A=H6(`#!"B`A[+$7S | ||
6321 | +M4H0:-6K4J%'3I4L7/!_PJ&6`AXH:/#IT=,&#!P\>'6ET/(UP,,;9EBU;MFS9 | ||
6322 | +M4F%,A3'.QHQQ,,:!`SHC'OR[<R?%,3E1H@#"Y@#%B!&>1LP#!&@?H'U1`&D! | ||
6323 | +MM`_0OA7[]NW;MV_?/BW[M&C!@D7+/BQITJ1)DZW_6K):818<6O>AW*1$B1(E | ||
6324 | +M2I3(A(E/X,"]`#<#'+@NX$PD*D?LU2PF3)B(87)DUYI=N_;LVK,+S9X](?:@ | ||
6325 | +M0?/KUPTT-]#<N'$##1HT:&3UD84&S8T0(="$"+$IQ*X0NS;M"K$KQ*80>T+L | ||
6326 | +MVK,I1(@0(4*$"!$B1(@0FS9MVA0"S:X]>_9$"*'AGS1J\.!1HP8/'CQ=NN#! | ||
6327 | +M@T>-&K4,\'2A`JA+%SQX\$;0H4/'TP@'#AR,<59ARY8M%;94&#-FC`,'F!QX | ||
6328 | +M\D0'`0H$QXYAB%(!4)1X\9R,@.<$'H(O\>(!`@1H7Y0H4;3LV[=/BQ8M^_;M | ||
6329 | +MTZ(%BQ8L6K!<TX(E39I]_UBR3<DSZA"90,-,?/KTZ=,G<.#`@0/WY@V0-V_> | ||
6330 | +M@`/7I8N)1,46O:)%:P<46K36[%JS:]>N77MV[=JS)\0O-&ANH/F%Y@::&S=N | ||
6331 | +MW.C3QPBG0H7ZH`D1(@2:$+LVA-BU:<^F/;MV[=JU:\^F/7OVA`@1(D0(#2%" | ||
6332 | +MA`@18M.F39OV[-FS)\0F#67NP,M`+0.U#/`RP(-'9\0(:B/@P8,'#YXN.O!T | ||
6333 | +MP1M!APZ=$9X<.'#@P,&8,6,J;-E2H<(8!P[&`!SCP(&#$2-0H$`0!4,40("B | ||
6334 | +MQ(N'8L0(>/#@T9&&(!Z@*%&B1(FR+TJ4*/OV:=&R;]\^+5JT:,&B!<NU-%BP | ||
6335 | +M:/_1HF7>E"M-#E&)-,P"N!?@P($#!PX<."!O@``!`@3(FQEOP'4QD8C8HE>S | ||
6336 | +M9KV2(&&-NS6[UNS9M6O/GA![]J#9@P;-#30W;MRX<>/&C4*<ZM1A4X>3$5EH | ||
6337 | +M-H38L"G$KCV[]NP*L6O7KA"[]NP)L0M-B!`A-(0($2)$A!";0FS:M6L7FDV; | ||
6338 | +M&*2+Y@,>-0'PX&40``\>/#JZ1HP8,0(>/'CPX,&#!X\.-3K24(SPY,"!`P=C | ||
6339 | +M'(P94\'9E@I;G(UQX&#,F#'Q'#@8@<(!"A11HD2)$@4;"A0C1L"#!P\>'03Q | ||
6340 | +M`,8#%"5*E'U1M$39IT6+EGU:M@D6+%BU8L&!)@T7_BQ8L\[Z`HJ2!A8%( | ||
6341 | +M7=Z\`?+F#;@WX-X`>0,$"!`@0-X`>?/F#;@7P\H16[3(#3$WB]RM6;-KS:Y= | ||
6342 | +MN_;LVK5G3XA?:-#<0'/CQHT;?=#TX52'EADS0H34&6*DD*P->S9LVK!KTYY= | ||
6343 | +M(?;LVA-BSZ8](4*$"!$BA(80(4)$"!%ASZX0>W:%V,0C71)4J.!1@Z<+'CQX | ||
6344 | +M&>#!@T=GQ`@4(^B,&`%O!+P1\$:,H(,"A2=/#APX<S!FS!AG%;9LV5)AC#,' | ||
6345 | +M#APXPQ3/@0,'*#R-<(!"CIQX8QR@6#("W@AX(ZC108$B7I0H&`!%B:)%R[Y] | ||
6346 | +M^_9IT8)%"Q8L6K1HP:(%"Q8L_P"U:-&R)%LJ49:6T6N$:,8;($"`O'GSYLT; | ||
6347 | +M($"```$"!`B0-T#>S`!G(M&/#Q^(E?M!;-<:=VO<K=FU:]>>/;O0[`FQ!PV: | ||
6348 | +M&S=N-+FAX881,1S,P((%"Y89%5*$<3(B2Q::/;MV[=JU:]>>77MVA8@0(D2( | ||
6349 | +M$"%"A`@1(D2($)MV[=FS:T^(39;JH4*%"AX\7?!TP8,'#QZ\$2-&C'`P`L6( | ||
6350 | +M$=1&C!@Q8L0(%",\>7+@P-F8,6/&5*C@;$N%+16<C7&`R1FF,0[&.$`1#P4* | ||
6351 | +M!RA0R$$Q@LZ($2-&P!LQ8L0(%"CBQ8N"`5`40!@P1-&B1<L^+5JP:-&"10L6 | ||
6352 | +M+%JT8/_!@F7>O&NI.J4JD^Z9*$3@W@`!`N0-$"!`@``!`@0($(!`W@!Y\P;( | ||
6353 | +MFQF?AB52DJA5(B62=NW:M6O-KC6[(NS:M2?"GCTAT*"YT4?#C1M]^GBH8P;6 | ||
6354 | +M-TB,OCVQ8\>,$#9L.!4JA&;#GCV[]NS:M2M$A!`A0H0($>)&B!`A0H38M&?7 | ||
6355 | +MGC41]KC;9$F9#U34X,&#IPL>/%TCX,$;,6($'0<.'(P8,<+3B!&>/*%`@>F, | ||
6356 | +M`P>8QCAS5J&"LPI;*FS94F&,,P<.QF`:@\F!@S$H\LE!@8(."A0C1HP8,6+$ | ||
6357 | +MB!%TZ(P8X>!+/#E1HD2)$@6#%BU:]FG9AT4+%BQ:L&#!@@7_"Q8L6K!@24.* | ||
6358 | +M%)PI=_Z):M;E#1`@0(```0($"!`@0(```0($")`W;]Z`Z^+-A#<+GUZX:K5G | ||
6359 | +MUZY=NW;MVK5K#\!=NT+L"8$&S8T036XTN:&ACY$Z9F`Q&A=N'"-&W\#`@N5+ | ||
6360 | +M"(<AJ_K(0K-APYX-$7:%B!`B1(@0(4*@08-FPX8-:#;\^K7AUYX0RLJ4.9$! | ||
6361 | +M%3Q=\'3I@@</GJ<1(QPX<.!@B0,'#M`Y<.#``0H'#AR,&>/`684*SBILV;)E | ||
6362 | +MRY8*%9PY<.#`@0,'#C`Y<.!`CIQ\"%#0H3-BQ(@1U$:,&$$'!1T4*.9]F3<O | ||
6363 | +M7I0H&#!@P*!%BQ8M6K!@T8(%"Q8L_UC28,&B!0N6>6GF7<-0Y%\>&(C>O`$" | ||
6364 | +M!`@0($"``'D#!`@0($#>O'GS!EP7$Y^ZO)@Q0],G5R'V1-BU:\VN7;MV[=JS | ||
6365 | +M*T2$$"%":+BAH8^&/K(XU3'SK4.X<.'"C1LW#B"C)]^^F?$E1IB'0H4*;=BP | ||
6366 | +M(42$$"'PA<"7)<2O7WLV;"CD08PP,9P6-%%6IH>/#!ETC=`U0A>=$=1&C!CA | ||
6367 | +MR8&#,0X<.,"TQ($#!P[B.<#D8,P8!V.<5=A28<N6+5NV;*DP9LP8!PX<.'#@ | ||
6368 | +MP($#!PXPR8EQ3`Z=$2-&P(,W@MJ($2/H.$#Q!0$*%%_FQ8N"`0,&#!BT:-&B | ||
6369 | +M10L6+%BP7/_#D@:+%BPQL*31@@4+%@S7O%P9A&C&FS=`@``!`@0($"!`W@!Y | ||
6370 | +M`P3(FS?@NG3YY&C&&R!`@/#[%&)/B#V[(NS:M6O7KEV[0NP)@0;-C1L:^C1I | ||
6371 | +MTL<(&U^P((T+%R[<N7#APH73P^@;+#-2V!PHM,I((5E[-NT)L2=$%C1[]FSX | ||
6372 | +M!="#&'-,.`C9-FH4@1P$[F3(``^>+G@C=(W0-<+3"$\.'#@8XV#,$@=C'(P9 | ||
6373 | +M,R;>F#'Q\N'(%\59A0I;MFS9LF5+A0K.G&'"Y,"!`P<.'#APX&",@W@QY*"@ | ||
6374 | +M,P+>B!$C1HP8@<(!"@1R$(R@\R5>O"@8,&#`H`4+%BU8M&#!@@7_"Y8T6-)@ | ||
6375 | +MP8(E#9886*)HP8#EWS-1_1"]>0,$"!`@0(```?(&"!`@;X"\`=?%Q#`3,]X` | ||
6376 | +M`0($"+]/(?:$V!4BPJX(NW;MVK5GUZ80(4*@T7"CCX8F?0H-X0`&4KAPY\Z% | ||
6377 | +M.W?NG(UPX1@QLL.*@S!A!PYP6E5HPP8T>]"@0;,!31\/;#CX,E.)1JAG[-B) | ||
6378 | +MD*9K!#QX\*C!@P</GB=XGCPY`.A@S)@Q8["-P88-6Q1L\<9$B3=FS)@H^:)4 | ||
6379 | +M<+9ERY8M6[94J#!FC#,'#D8X&.'`@0-,#APX0"%'CAP'U$:,&#%BQ(@1(^B@ | ||
6380 | +M0"`'@30Z*.3,DR,G'P8,&/)AP8(%"Q8L_UBP8,&2!@L6+%@P8(F1#P,6+'*\ | ||
6381 | +M]*`T"%$7<$"```$"!`@0(&^```'R!LB;-XX<#1LV8P80($"`:/H4(D2(/2%V | ||
6382 | +MA=BU*\*N7;M"[`D1`LT--!IN:.C3Q`@G#@D@00H7[MRY<^?.G3MG(]RX)V#L | ||
6383 | +MJ)`B3)BP548*;=BS:P\:-&B:&!E%@T8O08*273(FK<B7$2-&P(,'#QZ\$2-& | ||
6384 | +MC'`PPH&#>/'BC1DSQH&S,?&B1!D#R($S!Y@P.8@2!5"%+5NV`-RR94N%"L[& | ||
6385 | +M8,+DP($#!PX<.!CC`).#,0XPY$/A:<2($2-&>!KA8`0*%'(0H*`C+1Z">!CD | ||
6386 | +MR)DG)U\^+%BP8/_1@D4+%BQIL&#!$@-+OA@Q\J4YEJ)'&0KVFB$"!P0($"!` | ||
6387 | +M@``!`@3(&R!`@`!YT\6$B6$S9@`!`@3(FQ=HT*`)$2%$A!`1=NV*L&O7GETA | ||
6388 | +M0H2X<4,#FB9]"G'BP`H2I''APH4+=^[<N7/APHT;]\2.'16WA`D[<*#0A@T; | ||
6389 | +M-LG2H*Q,CV>7!(&ZI&;*%R?HL,U;XHG.B!'PJ(V@!F_$"`<H',1#,6;,F#&8 | ||
6390 | +M,&%R,&;,F#%C,&$:$V^,`TQ1,$2IL&7+EBU;*CASYL`9)F<.'#AP$"_>F'AC | ||
6391 | +MY,1S$"^?G'@.`(YP,&*$@Q&>1M"A@P`!'3IT4*!`@4`.@GE?\N5+DP;_BQ8L | ||
6392 | +M6K!@P8(%2XPT:=*DB9$FVX,4_\)H"-,KDJ$N;X```0($"!`@0(```0($")`W | ||
6393 | +M;[HX,A$+"!`@0(#P>W$#S0TT:$*$"+$KQ*9=(7:%V+0A!)H0&M`TT="DD!$V | ||
6394 | +MOF!!&A<NW+EPY\+9L!$N7+AQC,"`L6-'A11AP@X4*B1+@[(R!-A-*7+MVK5K | ||
6395 | +M7Y:@0X=MWKPQ#E#0&3%BQ(@1#E"@0!$OWA@'8QQ@<H!IS)@Q8\:,<8`)DP-, | ||
6396 | +M#APX<#`F"H8H%;9LV5*APAAGSC"-P32FPIAX8\:@&.-`3@P'#N3$D^/`P0@' | ||
6397 | +M(T:,&#%B!!T4=.C0H8,"!0($<KX@F'<L1IHT_P#38,"B!0L6+%BPI$F3)DV, | ||
6398 | +M&-FJ_:M%8=0-/(<"&>KRY@T0($"```$"!`@0($"```$"9(8W;S-F``$"!,B, | ||
6399 | +M%WUNW$"#!DV($"%VA8BP:<^F/2%"W+@1XD:(&QKZ>*CCZQND<>'"A0L7+ERX | ||
6400 | +M<.'"C1LW;APC,&#LL%+!@4,=8:-&E6%GK`B">=BP8</V9<D2=//F85OB``4* | ||
6401 | +M.G3HT*&#`@6*>"@<.'#@P-F8,6/&C!DSQH&S,9C&C'%PQ@$*!PX<5``4!5"% | ||
6402 | +M+5N<.<.$:<P80!4J5*@P9HP#!PXPX)CG`,62?"A0.!CA8`2*$2-&C*!#A\Z( | ||
6403 | +M$73HH$"```$"!-=BI/_!D08+%BQ8L&!)@Z,;CFLQ8F3K%B>/-0H3;AAAL<X0 | ||
6404 | +M(H#@@``!`@0($"!`@``!`@0($"!`WG1Q-`,($"!`@+SA=^-&GQLW0J!!$R+$ | ||
6405 | +MKA"[0NQ"LP<-FALA-#2YH:&/$3:^$D""%&Y<N'#A;(0+%VY<N''CQHT;QP@2 | ||
6406 | +MF`0)6)D1LBU3#FE?YF&+@@U;O"\HZ-!!(2?>&`<.QC@8,6+$B!$C1CCPY`"3 | ||
6407 | +M`V>8'(P9XR">@S%CQCC`-,:!`P<.'#CP-,*!@PJ`HE2HL,49)F=CQHP!5*'" | ||
6408 | +ME@K.G&'"Y,D!#CD.ECB0,R^>`P>>'(P8,6($G1$C1HP8,8(.'3H(4"#X$N/_ | ||
6409 | +M6!H<:;!@P9(&2YILO.!4.Y8M39ILI%+9(T/B1@L2O0R!`_<&"!`@0(```0($ | ||
6410 | +M"!`@0(```0)DQ@P@0(```0($"$`@39K<T(#F!AHT(4*$V+,IQ*8]:-"@"7'C | ||
6411 | +MA@8T-_KTJ>/K&R1(X\:-"Q<N7+APX<*-&Q=N7+AQXR!!@O1-W[I>SW(4^3(/ | ||
6412 | +M&R!`@.+%0X&"#IT1<N*-P18EWA@'*%"@0(%BA"=/GAQ@<C!F#*8Q\<:,<3!F | ||
6413 | +MS!A,#C!A<N!@A`,4(QR,&5.A`B!`&*)$P09H3`5G6[9LJ5!AS!@'F#S%R+<$ | ||
6414 | +MA0,Y<N(Y\.1@Q(@1(T;0&3$"WH@1(ZC1H2--FC04_\>.I<&1)D8,+&G29,L& | ||
6415 | +MAU0<'-VZI;E&JE,D*D=^];E'QE"7+D"```$"!`@0($"```$"!`@0($"`S``" | ||
6416 | +M!`@0($"``.G3I,^-)C=NW$`3`DV($&A"A$"#YL:-&QIN-&DB"Z"1.KX20((T | ||
6417 | +M;MRX<>/&A0LW;EPX/>/"Z0DW;APD2'I*Y;HD[0LV;-BPQ8N';4P\%'10>)(3 | ||
6418 | +M)5X40-BP+7&`@@X*%"A&C!CA:80#3Y@P.1L3;XRS,6/&C'&`R8$G3PXP.7"` | ||
6419 | +M"9,#3`Z<C1E3H4*%"LZV.-NR9<L69Q7&.'#@R9.<?"/DH(LG9QX*!PY&.'`P | ||
6420 | +M8L2($2-&C!@!;\0(.G3HT/^A$P/'L30X8F3#D29-FF/9TN#`T0T.EC39.@6: | ||
6421 | +M16Y`GPGK(B%Z\P8($"!`@``!`D23)DU`@``!`@0($"!`@``!`@0(D"9]FC3I | ||
6422 | +MH^&&AA`W0J`)$0)-"#0A;H2X<>/&C29]C(@QDP`,I''CQHT;-VY<N'%ZQHTK | ||
6423 | +M-6[<N'#CQHG3!Y#0)6-?L`$"!`@;-A38L*%P@`*%)SGQL`$:,V;,$@<H'-"A | ||
6424 | +M@X#.B!$C/'ER@&G,F#%CQHP9,V:,,P<.'#@8X6"$`P>8'#APX,`3)@>8G#ES | ||
6425 | +MYLR9,V=;G&T9XVS,&`=C/*%P$$]./!3YY,A!@<*!@Q$.1HP8,8+."%TCX(T8 | ||
6426 | +M,6+_!!T4QW#DPX'C6)INW;JEB2$G!@XXW;IAP7(LU2)NY`:TF$#%#[@W0(`` | ||
6427 | +M`0($"!`@0#1IT@0$"!`@0(#,`#)CQHP90(``:=*D29\F-YKTT7`#C880-T*$ | ||
6428 | +M0',CQ(TF&FYHZ-/$"!M?"6!!`O/DR;AQX\:%&S=N'*1QC)X\@01)'Z%<H(HX | ||
6429 | +MP88-VQALV+!AP^9@"0HZ(T;DBP<(&[8QF)8X`/AEA"<4*.B,&$%MA`,'F,:, | ||
6430 | +M`>1@C`-G8\:,<>#)TPA/(T9X.A.O0CP'#D8X\.3`@3-GSIPY<^;,V9@QF!PX | ||
6431 | +M<.#`DQP'\>)%R2<'@YQX*!R,<#!BQ(@1\$;H&@%O!#PZ__#HT*$CY]@Q'#CR | ||
6432 | +M'<,A)U^:;#%BX,"!`P<&+-=248%V`1B>"8&\O0$"!`@0($"```&B29,F39J` | ||
6433 | +M``$"!`B0&3-FS``"!`B0)DV:-&G2I(^&&S<TW$!S0\,--&AN-+EQH\F-)GTX | ||
6434 | +MB1%B)L$W,)#`0`(S#M*X<1T@0?KV!`P8.Y4J"5)3Y,N2>?'B88N'#1L@;$N6 | ||
6435 | +MH$#AR4D^;/&P81NSQ`$*%",\C4!!9P2\$2,<.!@S)EZ%,9B<C1DSQD$\!R-& | ||
6436 | +M`!PQ8L0(!U&BQ'/@P,$(!PX<8'*`R8$#3)@<.'#@P,$(%`X<Q(CG`%.\?#AP | ||
6437 | +MQ,@G)YXG3PX\C8`W8@2\$?#@P?^#!V\$'3H(CAW#@>/8L7Q?CJ5)DP8'CFXX | ||
6438 | +MTD3!<"V5!"9__ASAH\K1&R!`@``!`@0($$V:;-FR98L?/R`S@,R8$<N1HUAO | ||
6439 | +M@`!I@J=)DSY-FO31T.>&AAL:^MRX<>/�U-FMS0T,=('0Y"$L""!0L,&$A@ | ||
6440 | +M($&"!`D,K`0)6)D1<NN9FB+S5F##-F]>O'E1``&:AVW)EQ$CZ,B)%P_;&&PH | ||
6441 | +M4*!P,&+$B!$C1HP8X<"!@S%C*HP9,V:,,V<5G&'"Y&#$"$^>',0;4V',&`>> | ||
6442 | +M1CAP,,(!)@<.'#A`X<"3IQ$.`(YPX,!!O'B8*HQQ-F9,/#ER,,B1XX#.B!$C | ||
6443 | +M=(W0!0__W@AX(^#1H4/GV#$<.(X=.Y:F6YIC,=+`Z88CGY9]UWB1X4..W`13 | ||
6444 | +M'RR\`0($"!`@0#1ILF4K2)`@02Q8L!`+R(P9CAPYZC)CQHPF3?HT:7*C29,^ | ||
6445 | +M&OIHN-&DCX8^&FXTN7&C29,^30IQJB/$EYD$=F#!`@,&#!@P"1+X\N7+'!LI | ||
6446 | +MF7(4P;8"T#Y`\5#,BS<O"J!Y*.B@<$(-Q1<4V,9@0X$"!8H1(SR-&#%BQ(@1 | ||
6447 | +M#APX&#-F3(4*SK94J%"APAA,F,8XP(1I":`M%9R-P>1@A(,1#APX&!,O7CP4 | ||
6448 | +M#D8X&#'"P8@1#C#%<Q;%F3-,#AR,<>#`@2<4*$;`&P$/'CQX_P#AZ8*G"]X( | ||
6449 | +M70B.'3MV[%B:--VZX8@1`T<W'&GR[=MW#<XZ*-SX!)#P@\@,($"```&BR=:G | ||
6450 | +M(-.F%9@V;5HK6Q9BS9C1I8NW+HX<>6O2I$F3)DV:-&ERH\D-#7TT]+G11T.? | ||
6451 | +M)DV:W&C2QX@1,4,X"!%BQ@PK.PGL)$A@AQ4'%6S,"1M%@-T7;"OF[`,414Z\ | ||
6452 | +M>5$`[8N'`H6T$?`0H'#@`),#!RCHT!DQ8L2($2-&C'`PPL&8,6.<5=BR9<N6 | ||
6453 | +M"H"V``($"!`@0/L`S:FPI8*S,0X<.'#@P,&8>&/&Q(N'@LZ($0Y&.'#@(%X4 | ||
6454 | +M9\XJC!GC8(R#,0X<C$"!@LX(:O"HP?^#-P(>/'CP=(T0D>(8#AS9<'3+A@-' | ||
6455 | +M&AS=NJ6)@47+/H`8'MASX6\6,A>JE,2*I8D?/UM!6BE29*5`@0+!@@5KU<J; | ||
6456 | +M!0M=')E`-&R8GR9-;C1ITD?#C29-FC2YT:1)DSX:;C1ITJ1)DR9-^ACAQ&G( | ||
6457 | +M#@X<A)@Q8\>.'3M".`B1(H7-J%$^G'R)L@\0($!1XL6;ART*MB5?4-"!-P+! | ||
6458 | +M"`>>/'ER@`+%B!$C'(P8,6+$"$\.'#@8,\99A0H5`%78LF7+EBU;MFS9,D>' | ||
6459 | +M#AU;MCAS@,F!`P=CQD2I,*;"F'AR4#APX,F3`TP.XHT9<Z;"&$P.,#EPX,"3 | ||
6460 | +M`SERZ-`9,6+_Q`AX\.C`&P$/'CPZ"(Y5PX&C6[=N<+JE2=.M&XX8&/:MF%<M | ||
6461 | +MD!M<R*"X4,5,21`BK8(QLZ).W:E'IQY9L5*`&<!@TUIY<]0%D0E#?OQ$:M*D | ||
6462 | +M29,;39HTN:'AAH8F39HTT="G29,F39HTN='D1I-"1CAQJL.&`P<5K.S8L6/G | ||
6463 | +MEI!;MVZ-*H/*"0ILV`!%B0((4!1`4;#-6S+"R0AX(^@@&.$`$R84=$:,&#%B | ||
6464 | +MQ`@'(QPX<.!@#"9GSBI4J%!ARY8M.K9LT:%#QY8Y.G3HV*+#F3-GF#`Y&U.A | ||
6465 | +M0H4*%9Q5<.#`0;XSGN)APC0FRAAGSL94B.?``29/#AR,.'8,!;41__"HC:!& | ||
6466 | +MC1JU$?!&P(-')P4.'-VZ=8/3K5NW;CC2I(FA9=^^>6KLN7#ASY\$%U14N7#A | ||
6467 | +M`A<7+KB0X3KUZ)$5*U:L,"/VXX<2;R8,^?%3[,.-)C>:-&G2I(^&&TWZ-+G1 | ||
6468 | +M!&"?)DV:-&G2I$F3)DV:-#%BQ`@G3L+82)%RRXX=&G9HW*(A[U8.5-3@C4`Q | ||
6469 | +M!E`40(```8J";1ZV)2-&P(,'C\Z7>-@<.$"!8@2U$0Y&.!@QPL$(!PXPC1DS | ||
6470 | +MID*%"ELJ;-FR9<N6+5NV;-&A0X<.'16V.%/@S)DS0(`J5-BR94N%,6,<Q(N' | ||
6471 | +MR<$9!_'BC7&`:<P8!PXPC7`P`L6(&')0>/\:,<+3"$^>/(WP1(T:M1%T$!RK | ||
6472 | +MU@U.-SC=NG7#T0U'FA@8]NV+<HR,!'_^H/B3X$*""S[<N''CYH\+LG<-'CUZ | ||
6473 | +M9,6*%2LRF/U08LC0I$C%`C5IHJ&)AAM-FC31T$1#DR8:FC1IHJ%)DR9-FC1I | ||
6474 | +M8J1)GR9&C!CA)$R8%!65[%2J!)"&/'F"+DU!AV[$"!0HXD6I$`40H"C8L*$8 | ||
6475 | +M,0(>/'CP1J!`,6;,F'AR4%`;,6*$@Q$.1CAP@`G3F`I1*E08,\:9LRU;MFS9 | ||
6476 | +MLD7'%ATZ=.C0L040($!1QCBKL&7.E@I;*E1P%F_,&!Q1,&%R$"_>&`=C'#AP | ||
6477 | +MX&G$"`<C'(PX)L?_@2<'*!PXB.<`A0,'(T:,&$$'034<W>#`Z0:G6[=N:=+$ | ||
6478 | +MP*)EW[XH*0[QX<.'#Q\^4/CP(=<&6@!NR)#A>O?HT:-'CQY9D2'#S8</Y?Q$ | ||
6479 | +M*K9HG88F3?HT::*AB88;36XT:=*DB88F39HT:=*D29,F39H8:=*DB1$CG(1) | ||
6480 | +MN<7J5J5>\@2!`C6ER)=X2U"@0($B7A1`@*(`FK?$B1-X(^#!`PAO!(HE#L;$ | ||
6481 | +MBR='SH@1(T:,0.'`@0-,#L:,J1"E@K,Q8\94<.;,V98MSK9LF:-#AXX5SK9@ | ||
6482 | +MB($!$"!G6[8`VE+!F3-,8S!%P8$A7KPQ8\8X<.``DR=/(SR-&#%BA`,Y_W(< | ||
6483 | +M>'(0;PRV>(``Q4/AP(&G$2.D'<,!!PZ<;MVZ=>O6+4T,+%KV[8OBI0HY<N3( | ||
6484 | +M\>'#AP\?/@&X<4&&[%2#!J<>/7KTZ)&,1S)<N/CP(5*Q0.)>-;FAH8F&&TUN | ||
6485 | +M--%P0T.3)C>:-&FBH4F3)DV:-&G2I$F3)D::&#%B9(@P*4*$5.K5KITV;=>6 | ||
6486 | +M:-F'(1X*%"CB10$4)4J4>"A&T!D!#QZU$2-&Q,,6!="8>/E0.!CA:<0(!R,< | ||
6487 | +M8'(PID*4"A6<`73FS%F%"ELJ;'&V9<N6.7/FK``T9E^,-%BT[*L`J$(%;&,P | ||
6488 | +M><+DR4&^?/GBQ8OGP($#!PX<>!H!#]Z($=1&C/^0$\\!IGB`QHRI4&%,A3%C | ||
6489 | +M'(P8,4+:L6-PX,#IU@U.MVYITL3`$F7%/@PB%ARY<($<'SZF^$#QQP49LG>G | ||
6490 | +MWN%Z]^[1HT>/'CUZ),.%&U4__`PK1DQ?$PU-;C1ITD3#C29-FMS0T*2)AB9- | ||
6491 | +MFC1ITJ1)DR9-FC1ITF29D65&C`B3(D3(K5SMM&G+=FW?G'U1HJ!`@0)%O"A1 | ||
6492 | +MHD2)MX3."'C4X,&#-\)!E"B`QHR)EP^''`<C/#D8X<`!IC%C*E1PYFQ+!4!; | ||
6493 | +M`&W9`F@.H"V`5@":LV(?(`PQTF#!$`7;/FQC`&+"-&+$B!&>Y,20(\>!`SDH | ||
6494 | +M''ARX,#!B!'PX(T806W_!`H4*!R,&0/(684M6[94&#-F#`I/GNC(.08'#IQN | ||
6495 | +M<+IUZY8F#18,6O;MPR!B00MR;?BP@`)%@C]<R'"]:X#L78-3[]X]:O#HT:-' | ||
6496 | +MIUS(^.!GF(E)Q!8UN=%$PPT--YHTT7"C29,F39HTT="D29,F39JT:-*D21,\ | ||
6497 | +M39HL,V+$B#`A0F[=ZI6'5[<T6O;-`;0/$+8E*.+%PX8M7CP4=$:,@`</'KP1 | ||
6498 | +M(U",&>/,V1@'<F+@0.!@A`,'#APX&#.FPAAG6RIL`31GSI8Y.G3,F3-GSIPY | ||
6499 | +M*_;M2Y,&"P8M49SM6X+I##5X\."-&"'G&`H4(T;(0>%@A(,1(T;`@P=/%SQJ | ||
6500 | +M_P!'((@7;PRF"A4J5-BR9<N6"F/B.7#@:02"8]U(P>D&IQN<-&G28,&@9=\^ | ||
6501 | +M#-):_"%'#@H4"5!<N'"!#-D[7.^0O4/V[M2[!@T>/7KWSH6,'TJ	M$[)N& | ||
6502 | +M&QJ:-&G21$.3&QJ::&C21$.3)AJ:-&G2I,FR%DT6-%G6I,FR94:,U-DA1`B- | ||
6503 | +M7NWR=$N3+\J<%?OV`9H7;\F2>/&PH4#A@,X(>/#@C1B!`H6#,<[&C''F0`Z. | ||
6504 | +M?"@<.!B!R<&8,6/&;*D`:,N<+3JVZ-"A0X<.!7,4S)FS0DN:&%@P8,"`;<D2 | ||
6505 | +M=.BH48/G(P,\>`A&T/'D"86<>9X<C/#DP`$\>-1&4/^C-D(.@GACQHRIL&7+ | ||
6506 | +MEBU;ME2HX,P!"D\CI!WK!H<4'(!PX'1+DR8?EGE:`*V0HZM)BR-MH/CSY\*% | ||
6507 | +MBW>G3B%K@`Q9`USO&KQK\*C!HT>/3LE@]D-)HG(=D#1ITJ2)AAM-FC1ITJ1) | ||
6508 | +MDR9-FC31T*1)DR9-6C1ILJP)GB;+FBPSLDQ8'0YF$ICIU2Z/-APX8D2)`@A0 | ||
6509 | +ME'F`L&$;@\W!$@<C1L"#-P(>'3H.'(P9,V;,F#$.QHR1DP_%"`<H'&"*XJQ" | ||
6510 | +MA2U1MFS1L46'CBU;="B8HV".,P58YF")D2\?ABC8'"P9,0*>@`P9X,&C1F>$ | ||
6511 | +MIQ'HXLE!@,*!)P>81HP808W_VID1*.+)B3?&F;,*6RILV5)A2X4*8\8X\#1B | ||
6512 | +M1`H<I."0@M,M31HL6+!H6;$/FYH3&@:0:^,/F0M_R-XA0X8,&4!DR)`A0X:K | ||
6513 | +MP;LXU>/3ND0QUS)B5ZX"$5I,F&IHTT=!$0Q,-39HT:=)$PXTF39HT:=*D | ||
6514 | +M29,639HT6=;$R+)E1CA)\64F@;@2O00]@(,C1@P,43!HB0(($+8Q8U`XH#-B | ||
6515 | +M!#QX\."-6#)BB0,'F!PX&#/&P9@H<N(Y<.#`P9@H%2H`F@-HBXXM6[9LV;)E | ||
6516 | +MBXXM"E8H6+'/69HT^?)AF+?$P0@Z=.`)$"!`@(`1"+Z,0+<D'XIX*$8X\.3` | ||
6517 | +MP8@1_YX\>7(0+UZ\>`Z<5:BPI<*6"A6V;'%684P\3R-&I*A&"@XI.-W2I,&" | ||
6518 | +M1<L^;/OFB8AV8P"Y`/[\U4"&#!DR9`V0(4.&#!FR!N\:-&C0H,&[=^^0G3JE | ||
6519 | +M#M<L,1Z:-&G2!&"3)DV:-&G21$,3#4V:-&G2I$F3)DWP-&G2Q$@3(PN,+#,R | ||
6520 | +MA`T'5@G`P"K1*U<>7G!PQ,`0)8J6*%$`81NSQ`&*$71&P(,'CPZ=$9X<.,`T | ||
6521 | +M9HR#,6/&C!D33TX\!Y[BQ8M2H0(@0%'F;%&P9<N6+3HJ.*NPQ9DS+("PQ,B' | ||
6522 | +M`4.4,0Z6C!A!!QXU`0($"*!&9P0Z3"AB.$#AP($#!_'BQ?\;$R]>E#%CHL0; | ||
6523 | +M,\:9LPI;*FRIL*7"E@H5QCCP-&)$BFJIX,"!TRT-%BQ8M.S;IZ4(*F4W6I!K | ||
6524 | +MXZ^&/V3(D"%#Q@49,F3(D"%#UJ!!@P8-'C5X]$@&+EP@:!WY]:M)DR9-FC1I | ||
6525 | +MTJ1)DR9-FC1ITJ1)DV4MFC3ITZ2)$3Q&."W@!'#(D"%U.+!*8`<,F!(E>B7+ | ||
6526 | +MPPL.CAA8,$31$@70F#%CECB@,X(./%TCZ""0YLG3"`<.'(P9XV#,&&=C\L5S | ||
6527 | +MX"#>F"A;*LP!A`$#H`H**FRIX*Q"!07.G`&*D@\#MGC8L(T9X\"!@Q$CZ"!` | ||
6528 | +M\&4$-4\(YLG)AR'?"`<H4*"(%R__'B!L%0!5&!,%PY@QF,94J%!A2X4M%;9L | ||
6529 | +MJ>!L3+P1U.`A@$.*%)QNW=)@P:)EW[Y]UZY%J]?D#[D`_OS5X((,&;(:R)#5 | ||
6530 | +MX%(#&3(N#;@T:-"@P:-'[]ZYP`4%FH=?OYHTT="D29,F39HT:=*D29,F330T | ||
6531 | +M:=*D29,F?8P8&3*D3IU1;.IPX.#+%RLP8,`\J23O6:@K#W#@B!$#0Q1`@,:, | ||
6532 | +M`3AF"0H4=$;`&X$*'H(4"$:,\.0`Q1@'8\8X&S,F2KQX\<8X&^-L2P5`&&+D | ||
6533 | +MP^#,F;,H%9PYP^;,01ILF#"=68)M#"9LV#"A<_!%3HP8,6(XD78L!HXT<APX | ||
6534 | +M<(`BG@,'_PZ<5=A28<N6+14P.!OCP-F8"A4J;-E284N%+17&C!GA:80T.*1( | ||
6535 | +M=>N6)@T6+?OVK=`R;THZ#2V.\&GCSU^-&LBXU.!2HP:R&LB0(6N`K$&#!@T: | ||
6536 | +M-&CP[ATR%_Y`,!'CH4F3)DV:-&G2I$F3)DV:-&G2I$F3)DV:]#&"A].0.CN$ | ||
6537 | +M2.&P@P,'7[Y8V;%C!TR)2KUZT;-&0(0<.?DP8``T!M`8;&,<T*$S`AX=:M3H | ||
6538 | +MI#@F8L0(3PX<C'$V9LR8,?'&`(P7;XRS"A6V;-D2!4.,&!7&.(LR!A,F3)CR | ||
6539 | +M8<.&[LP9;-BP.7.&"1,F.3'2Q(B1)L87.7+R88B'R<$8.7+BH?\8X\`9H"U; | ||
6540 | +MMFS9`@B#LS'.QCBK4*'"E@I;MFRI4&%,/`?4X-'!08H4G&YITF#1LF_%"BU% | ||
6541 | +M=%G2T.)(&S[^_/GC@@Q9C1HU:M1`5@,9,F3(&C2HT:!!@W?OWKUS@6L6"#Y, | ||
6542 | +MFC1ITJ1)DR9-FC1ITJ1)DR9-FBQKTJ1)"R-XQ'`08L:,$"%"./CRQ2J!'3!@ | ||
6543 | +MGI005RI2('H]?-"A0P<%ABC8`&'#-B8>BA$C1HR`1TU:BA0I1(P8,6*,`V<5 | ||
6544 | +MG(T9,R9>E#%CQE2HX&Q+!4!1HN2+DL]9E#%1QF#"-,\!NC/8`"[!!FB,,V?. | ||
6545 | +ML&F)D09'C'Q88L3()P<%)@<.XLW#("?_7KPQ8\9LF3-GRYPH4:(X&S/&P1AG | ||
6546 | +M%2ILJ;!ERY8*SL:,<4"-VHAJI.!T2Y,&"Y9]*U;LNR8MFH80+8Z0XQ/`GS]D | ||
6547 | +M-6K4J%XT:7&K40-:@1HT&-1HT:/#.A0MDN*#0@L:D29,F39HT:=*D29,F | ||
6548 | +M39HT:=)D69,F>)HTX<1I!P<S9LRH$*+"%RM6"1(D^"9.7+$/?B)!\-/(VAT? | ||
6549 | +M\*3)R8<A'B!L\<:,<>!@Q(@1=*1Y29$B!9T1#AQ@&E-AC+,Q%<;$&^.L@K,* | ||
6550 | +M6RI4V%(A2KY\..;-PX8%![9N.#`LP;0D2@5`@%8XVQ<#1YH8,;"DB9$OGYQY | ||
6551 | +M#C"-P30FGIQX_P#C.<`T9LR6+8"V``($J(*S,<[&.*M0H4*%+16V;-E288P# | ||
6552 | +M%-1&P,,!!TZW--FP8-&R;]^^:^P8W$`SH`6Y-E!`^$-6HP8W;C4"^*M1`UF- | ||
6553 | +M!C4:U&A0HP&R!LB0(?,'!1JY(T>:-%G68EF3)LN:-&G2I,FR%DU:+&O2Q(@1 | ||
6554 | +M,5*$"#%CQI<*%>94L&(%ZYNX8C^40(```0($"!`:4:KUX($T!#&BQ!N#;<P8 | ||
6555 | +M!V,<H*,S@HX($2E2I*`SPL&8,<Z<C1D3+]Z8,6.<.=M2H4(%9V/&S,N'88R# | ||
6556 | +M?'#@X$B3)DV,?/GR15D!:,Z6+5&PQ$B3)D:,&%CRQ1OCP!DF9P[BC?^)YV", | ||
6557 | +M@S%C``':`@@0H`H5G(T9,\99A0I;*FS94F%+!8`5*HQQX(G:B"*ING5+@P6# | ||
6558 | +MEGW[]FDI<H+!)GPW6APAQ\>?/W_^:@2H$:!&C1HU:M2H4:-&C1HU:C1`5L,? | ||
6559 | +MGS;D_@P8D*5)DR9-FC1ITF)9DR;+FN!9UF1!DR8M.(FIPX&#+U8J5'`PIT(% | ||
6560 | +M*SO?]!13HH0($2)$B!"!8,A/('H&\HA(@2.?'$#8`&$;,V;)"`<CZ(B@(Z): | ||
6561 | +M"CJ>/#D8XVS,F#%CQC@;,Z9"A0K.G#D;,V8,BB@88L3`$@,+!@PQTL3(AZ'" | ||
6562 | +MEBUSMCA3L`)#OA@QTJ3!DB_>F#%CQC@8,V;_#(HQ#L:,J3`&4(4*@"I4<.9L | ||
6563 | +MS)@Q8YQ5V%*API8*6[9LJ3`FGH,1GD9<(]4M31HL6+1HV;?OFK1HFS;A0S,` | ||
6564 | +M#T!R?*#X\\?-7X``-0+X\U?#7XT:-6K4J%&C1HT``=J0^S,@RX`L`YHT:8*G | ||
6565 | +M28ME>/`T:=$$3Q,\3?`T,6*D3AT.0GSY\J7"W`$5*EC9>:*G6")O1&+%BA6+ | ||
6566 | +M"!$(2CZ0.43/&@$OU7#DDQ,O"B!LSK`Y0.%IQ`A==(X=.X;"$R8'SL9$B1(/ | ||
6567 | +MDP-GSBHXJ^"LPI@Q\3QAFI<O1KY\&*)$P1`#!XY\@+9L`;1ESI856J)@R!<C | ||
6568 | +M1@P,4<:,&8.MPAAG_V/&C'$PQL$8;(#&8!M3H4*%,6,PC1DSID*%+16V5-A2 | ||
6569 | +M84N%"A7&Q!OAB=HQ.&G28,&B1<N*?5J*H+(4(@*^$#<&'.$3`$J```$"!`A0 | ||
6570 | +M@UL-?_YJU*A1HT:-``$"!&AS`>"?`0,&#!CPYT:3)DV:-&G2I,F")G@6-&G2 | ||
6571 | +MI(D13D/J<!#BRY<*%0?,F5.A`@R8<38F#;-`)%:L6+&(0%#R@8H+"8<H]*CU | ||
6572 | +M@!2.?/.BQ`,$:`RV>"@\C8!'3<2Q8P@<.'#@`!.&?%'&8!HSQIDS9\Z<C7$P | ||
6573 | +MQM.($?'BS9N'`4,^+/G2X,B'S5F%+5L4;`&4#U"4*!CRY8LR9LP80("B`/_" | ||
6574 | +M-F;,&`=CQHRI,`;;&&R`L(T9@VF,@S%CG%78LJ5"A0I;*FRI,&9,/`>>/,7H | ||
6575 | +MEB8-%BU:]JW`=LU8&65-;H2X$6)`"W)\`D`)$"!`@``!`M0(X*]&C1HU`@0( | ||
6576 | +M$*#-!7)__OSY\^?/GS\W-#1I@J<)GB9XFN!IT@1/DR:%C-3A`%"($`Z^5'`P | ||
6577 | +M=\"<.16LP(S3,RF1B4_>8A&)!0$"A`^JUDDPQ8("!6M7>,'!<2P?ABCQQF"+ | ||
6578 | +M%\\!G1'4J*$XAL*!`P>8QN3#D2_>F#%CQCASY@P3)D^>''CRY`#%/&Q+YF'( | ||
6579 | +MER]&FGSS`%6H``@0("WY`(T9$T6+%D`5*HP!%*7_`J`*8\:@&#-FS)@*%;"- | ||
6580 | +M`30&T)@Q8\:,&3/&684*6RILJ;"EPI8*%<;$\^0)79IN:=)HT;)OWXIYU]@I | ||
6581 | +M:X+GQHT;^&X,.$*.3X```0($"!`@0(`:W&H$"!`@0(``;=JTN7#ASY\C%_Y< | ||
6582 | +MN*#AQHTF39HT:=($3Y,%39K@P6.DS@XA'(2HX*#"W`%SYEC9`<-HG(USDUP- | ||
6583 | +M,V'"V[!A?HI]`+A.PHX=)%A4Z='CR@,X<'#$P!`E2I0Q\1R@D#-BQ(@1*%#$ | ||
6584 | +M0^$`4Y08^>(Y&#-F3(4Q8\8X<.")V@@'7^*-<+#$P;QK^;#$P!`/6Q1`4;1@ | ||
6585 | +MR(=E#"9G%0`!`E2A`J`*_Q4J5!@S9DR\,6/&C!E380R@,8#&5!CCS,&8,6.< | ||
6586 | +M.:M0H4*%"A6V5*@P9LP8!^A0X$B3!HN6?2M6[+M6I(RR)BV:W+@1(LN`/^3: | ||
6587 | +M\&D3($"```$"U`A0(T"-``$"!&C3IDV;"Q>.7+A`CMP%<B%N:+C1I$D3/,OP | ||
6588 | +M-,'39`&>!76D"!'"P1<'%>;,F3.G@A482)#$Z;$Q:=*D1(DFE2M6K)2X5V9V | ||
6589 | +M;"-19UN5'CW^/<`!!T>,?/FB5(@W)MXQ!R-&`/0T`H4#%/$<H(@7;XR#,6/& | ||
6590 | +MC(DR!@4*%"BH>4*!8(0G=.CFS;L6(T:^+TL<.,`6)4H40%'&.,,&"-"6+5LJ | ||
6591 | +M5/^H4,&9LPK.XHV)-V9,A0H5*E2H4*%"!6?.QHP9,V9,!6=;*E2H4&%+A0H5 | ||
6592 | +MQCAPX"D?CC3YYFG9MV*%EFOLTC71T*>)AA`A0F1I<80<GP`!V@0($"!``&X! | ||
6593 | +M`@0($*!-FP!MVK1I0XX<.7+DR%VX$.(&FB8WFC1I@@?/@B9X\'`:LD,(!PX< | ||
6594 | +M.)@S=^"`.16L$H"!!$F/'CTV;-BP84./N%+B%E6BL>.>&$X+ABSH4>:.EP<X | ||
6595 | +MX,#!D2]?E'SQXLGQY,D3'10./#F(%\\!)@<.4(P9$V6,,P<.'#@8(8?.B!$C | ||
6596 | +M`(Y`-V+>/#ERKEV3@P*3@S'.G%6HX`P0H#F``&W9LF7_"Z`*6[94J#!FS)@Q | ||
6597 | +M\;"-P59A3(4Q%2I4&.-LC(,Q8\8XJU"A0H4*%;94J#!F#"84F&)TPX)!BY85 | ||
6598 | +M*U9H<>*#QXT;-YK<"'$#7Y8!+<B1:Q.@39LV`0($"!`@0(``;0*T"="FS84V | ||
6599 | +M;<BUF="&'#ER(="@N8&F29,F39K@P=-D"(D=4H0($<+!G+`#YLRI4,$*#!A( | ||
6600 | +MC!B)T\-('"-QXL2)>Z*OA!DS=>IP6K!@09@P!.Z(\'*L&AQ2.'`<DQ,OGP-/ | ||
6601 | +MGD:,<##"@0,'#L:@<.``DX-X8\:,&>-@Q`@Z(U"@0(%BQ(@S3E#(D2-'CAP4 | ||
6602 | +M#AR,&;/%V18=<^;,V3)GRYPM_P!U;-FR98NS"F/&C(DW9DR%"A4J5*@P9LR8 | ||
6603 | +M,0[&C!DS9LR8,14J5*A0H4*%"F/&C'&`#4<,+%JTK%BQ;]\U:0QXA`AQXT:( | ||
6604 | +M$/AN9+G1X@^Y-FW:!`C0)D"``#4"!`@0H$V`-FW:M&G3I@VY-N3:M&FS)P0: | ||
6605 | +M-!K0-&FRK$D3/'B&U)$B10H'-N8.'#A@SIP*5JS`@`'#Z`FC;T\8?7NB[XD^ | ||
6606 | +M?;!*F!%2AP0>3G@6+"A#H)87$0^J58-#BA2.8W+R><(TPH&G$2-&.'#@P($# | ||
6607 | +M!PX<.!@S9LP8!PX<.!@Q8L0(.BB6C!CAR0D*!'(0H!CAR<&8,5NV;)DS9\N< | ||
6608 | +M.3ITZ/_0H4/'ECE;*E3`-F;,F#%CL%48LV5,A0ICQC@;,\;!&(`.QHP9,Z9" | ||
6609 | +MA0H5*E08,V8,)@?YTF#1HD7+OA7[M'R)QF/7K@@A0H3`AP_?C2/D)I#CTZ9- | ||
6610 | +MFS8!`@0($"!`@`!M`@1HTR9`FS;DVK3ATZ9-FS81]NQ!@^:&AAM-FC3!PZE. | ||
6611 | +MG1ULI+`1=N#``7/FS*E@90<,&#!@8(%Y`NN)G2>P2M@I`<N,F5O;ABS@M`!/ | ||
6612 | +MF3!WO"!(<>Q8M6IP2,&!@^.8`T\C1HP8X<"!`P?Q'#APX"">`T]C'(QQX&#$ | ||
6613 | +M"$^>1GAR,`(%"A0.4*!`@0(%"D\.'(QQ5F'+G"U;=,S1H4/_APX=.G3,V3(' | ||
6614 | +M4`5L8\;$&S.FPI@*%2I4<%9AC`-,8\8X&#-FS)@QSL8X&S-FS)@Q8QR,21,# | ||
6615 | +MRSXM^_:MV'?-"4`&/$*LB1`A0H@0(?"UX`.%#Y\V;=JT"1`@0(```6H$"!`@ | ||
6616 | +M0(`V`=JT:=.&3YLVY-H$"+!KUYX0(="@N=&D21,\G,34X2"%S8$#JPX<.&!. | ||
6617 | +M!2L[=NS8`0,&#"P[8.S8L5/)3B58E<P(D3)JP1`\>/`L6$!`1`HYQXY5@U,- | ||
6618 | +M#APX<'`X&.%@Q(@1(T:,<#`&DP,'#AR,P.3``28'#AR,<#!BA(,1(QR,<(`" | ||
6619 | +MA0,4#E"@<.#`V9@*6[9LT;%ECHXM_W/FS-$Q9XZ.+8``C1DSQL&8,8"P51A3 | ||
6620 | +MH4(%0&.<C1GC8(R#,0[&.!LS9LR8,6/&.!CC`%,4'%BT[-.R8L6^:T72\=BT | ||
6621 | +M)D($?"$V1;C1@H\+*LCXD&O3)D";``$"U`@0`&"```$"M`D0H$T;/FW:\.'3 | ||
6622 | +M)D"``&LB1-@3`@T:#7UN]#'"J4Z=.FR$<5JUZH`Y<RI4L+)CQPX8.V#LP+)C | ||
6623 | +MQXX=.W;LV*EDQHR0;:/*+."$!QB>!01$($!P+$:U:M6JP8$#!\>($2-&C!@Q | ||
6624 | +MPH$#!P[&.'#@P(&#$0X<.'#@P($#!R@<C'#@8(2G$2A0.!CAP($#!Y@PC:FP | ||
6625 | +M9<Z<.7.VS/^9,V?+G#E;MFR9`Z@"MC%CQL0;,V9,A0H5`%6H,&;,&`=C'(QQ | ||
6626 | +M,,;!&`<.'#@8X\#!&`<.XL6(@66%EA4K5F@I@HH'#W=KUN##%P&?AA9\7#!C | ||
6627 | +MYB)`FS9MV@0($*!&@``U`@0($"!`@#9\VK1IPZ=-FS8!`OA;LV;7GETAT*"Y | ||
6628 | +M`1#-C1:<Q+`1(VS5JE6K#I@SIX(5*U9V[-@!8\>.'3MV[-BQ`\9.I025S.S8 | ||
6629 | +M-JK,`CQ'CBQ84$9$D2(QCAW#4>T8'!QPY#CP-&+$"`<C'(QPX&",`P<C1HQP | ||
6630 | +MX,!!O#$./#D8X6"$@Q$.1CC`Y,`!"@<H'#@X@\G9E@J`M@#:`FC_#J`M@+9L | ||
6631 | +MV3)GRYP*%;`Y&^-@S)@Q@,8`<K:B`J`*8\:,P>3`@0,'#AR,<>#`@0,'*%"@ | ||
6632 | +M<.`@2@PL6E;LF[-BQ;4IZ7ALVK4K0H0($?"18"!@,ORU:=,F0(``-6H$ | ||
6633 | +MJ!$@0(``;0+P"1"@#9\V`0+P"1`@0(`U:];LVK4G1`@T:/KTX<2)D[`#G%:M | ||
6634 | +M.F!.A0I6K.R`867'CAT[=NS8`<C*CAT[=NQ4LF/&E)0Z"\H8N7>DQ9$%86J) | ||
6635 | +MD'/M6(QJ<'#@D",GW@@'(QR,<##"@0,'F!PX<.!@Q(@1#E#$B^?`P0@'#D8X | ||
6636 | +M<.#`@2<'#AR,B1<OG@,'SIQ5`#0'T)8Y_ULJ;*FP9<N6+8```:I0P=F8,6/& | ||
6637 | +MC!DSIL*8"H`J`*HP9LP8!PX<.'#@P($#!PY&H*#C@(X#!P[RQ="R;]^*%2NT | ||
6638 | +M%(G&8->>79LB1(B`KP4?&<&"!6,FPU^`-FW:!*@1H(:_`/X"!&@3($"`-@': | ||
6639 | +M!&@3@$^`-OYJU%BS9LV:7;MV[4&#!DT?#V*$>1!VX,`!<RI8L;)CQPXK.W98 | ||
6640 | +MV;'#RHX=.W;L5+)3R8X94T+J#%FP8`&>(T>.+%C60X07!-?D`(R!`P<.%/$\ | ||
6641 | +M>4+A8(0#%`X<.!B#"9,#!RA&C!@Q`H4<.2@<.'#@P,&($9X<.'#@P($#!PX< | ||
6642 | +MC!E3`1`@0("VS/^IL*5"A0J`*@"JL`50A0ICQHS!Y@#;&&QC`%6H4*$"H`IC | ||
6643 | +MQCASX,"!`P<.'#APX&#$B!$CZ#AP`"@?%BW[]JW8ART;*@8A-NS9M6G3)GPW | ||
6644 | +MR)%A%BP8,RNG_`6XT*9-@!HU`M0($"!`@`!M`O`)$*!-FP!M`@0($"!`C35K | ||
6645 | +MUJQ9LVO/KCUHT/0IY,$#IP,>#I@SI\*.'3!@P-AAQ<H.*SNL[-BQ8\>.'3N5 | ||
6646 | +MS)BYM6/(O04+\-S#<V_!O65E:GE!("=?OAAR4#AP,,;!&`<.'#AP,&:,,TP. | ||
6647 | +M/#F@,V+$B!&>`,J)XLF!@Q$.1CAP,,*!)P<.QL0;,V9,O"A1`%68`VC_RY8* | ||
6648 | +M@,:,&0,(4`5`@``!PC9FS!@'8["-P58!&R!`@`!5`(1MC`,'#AR,<#!BA(,1 | ||
6649 | +M(T:,&#$"!0I/,;!HV;=BQ8I]6%`IVQ1BSZ9=FS9%R'+!GQ5FP9C)D(&,SX4+ | ||
6650 | +M;0($"%`C0(```0*T:1,@0)L`;0($"!"@38``-6K46+,&P)HU:W;MV;,'S:\^ | ||
6651 | +M'CAYX'1`&!L5=EB!`0/&CAU6=EC9L6/'CAT[=BK9J23$S*T==>YQPH/G'IX% | ||
6652 | +M]_#<"Q.&0"T1<C#DRR<GG@,'8^(Y<.#`@0,'8\:,P>3)`1T'=$:,<.!`3KP1 | ||
6653 | +M#AR,&.'`P0@'#AQ@<N#`@0-,F,:,B0)H2X4Y_P`KS,$V9HRS,5&B1(D":,R8 | ||
6654 | +M,6/&C!DS9@RV"F,``:I0`5"%"MC&.'#@:<2($2-&C!@Q8L0(:B-&.!@3`X.6 | ||
6655 | +M%2M6[+N&ZH2E37OVH$'#8%,3$OYD6`DFPXJ5=U#(7;C0IDV```%J!`@0($"; | ||
6656 | +M`&T"!`@0($"`-@$"!`A0HT:--6O6K%FS9M>:/7OV_"K4QX.'`YS8L%%A!PP8 | ||
6657 | +M,';`V+&C@A4K.PG`V+%CQTXE.S2$;*M#XAZ>>WCPW%NPX-X]$@O*W$$@!P,& | ||
6658 | +M0&/&C!DS9LP8!PX<C!GC;(P#3"-&C!A!9\0(3_'BH7`P8H0G!R,<C'#@P),# | ||
6659 | +M!V,P.1LS9@P@0!4J5/^H,`80-F?8Y&#)AR%*A3%CQHP9,P8;MC$5L%4`A*T" | ||
6660 | +M((`5*E08,V:,@Q$.1HP8,6+$B!$CZ,`;`<^3)PPQM.Q;$47+O"+1-*!!LV?7 | ||
6661 | +MKDT\0BR`\LZ*%2LRF,E`1F[`GS9MV@0($"!`@``!VK0)T"9`@``!`@0($"!` | ||
6662 | +MC1HU:C18LV;-FEUK=NV*L`<-FCY]"A7RP$F8%"%V[(`!`P:,'15V5)BQ8\<. | ||
6663 | +M+%B5S)@1(J0.B2'W%N#!<Z3%`CP+%BQ8L"S,'2_YHD3!-&;,F#'.QC@8X\"! | ||
6664 | +M`P<.G#EPX&G$"#H.1C@8D<^!`Q0C1HP8,6*$`T\.'&!R@,G!F#%CH@`:`ZC_ | ||
6665 | +MPI@YSL9@RQ<#1XQ\4<8X&S-FS)@Q8\94&#.F`K8*8P!AJP!H3(5X#AQX&C%B | ||
6666 | +M!+P1\$;`@S<"'K41U$;$P*!E'T!L\ZX58;=,`QHT(?!MBK#I!@D),F0\>L1, | ||
6667 | +MA@L^`P8,N$"N38```0($:!.@39L``0($".`O0(```0($J%&C08,($7;MVA4A | ||
6668 | +M0H0]>_"A^=6G3Q\C'CC5X:#"#A@P3\#8L6-'B`HS9NR8J61&R*UM.^K<6X!G | ||
6669 | +M`9Y[>.[A67!O09@P9>Z(0(!B3`5G8YR-<39FS!@'#APX&#-FS)@1(ZB-&#'" | ||
6670 | +MP0@'^5`X<.!IQ(@1#D8X<##"@0-,F)R-&1-ES)@*_X```1HS9E^4;CABQ'.` | ||
6671 | +M:4R\,6/&C'&&K<(80&,``1H#:$P%0!4`C<'F`,6($2/@P1L!#QX\>/#@P:-& | ||
6672 | +M;4D:#%JBS+MF3!J!93?0W,`7`A^^`4?X2'#Q3H85*RZ@M,@R`."`(VW:!`@0 | ||
6673 | +M($"``&T"!`@0((`_?P$"!*@1H$:-&@T:U`@1(<*>/7OV[`F!#TV6&WWZ],'3 | ||
6674 | +M@I,8*4+,V`%C!XP=5D*$"%$AQ(P0,T)N[:@SY-Z">POP++B'!\^]!??"+.A! | ||
6675 | +MX`X=.@Z<.1LS9HRS,<[&C''@P($#!PX<.!@Q`AZU$0Y&.(B7+YX#%".HP1LQ | ||
6676 | +MPM.($0X<.!@3;\R8>(#&5/\8@PW0&$`88N!((\>!)P<HQHP9,V;,F#$5QHRI | ||
6677 | +M,`;0&$!C`(T!!&@,MC$H'(SP!`\>/'CPX,&#!P\>O`PCY*3!H&7>-6DB<O1` | ||
6678 | +M<^-&B`@1LOSAX\^?"Q<N9,CPQZ=%EBQ96EP@UR9`@``!`@1H$Z!-@``!`@0( | ||
6679 | +M$*!&@``U:M1H`+!!@Q!HT*`)L0?-'C19;MRXT:=%GQ9X\!RI(T6(&3MV[)@1 | ||
6680 | +M(D6*%"E2I`CA4*=.'1+W%N!9<&_!O07W%MR[=^]>F%IW=(T8@<G!F#%CG(T9 | ||
6681 | +M,\:!`P<.1CAPX&",@Q'PJ%$;,<*!`P=1\L6C,X+:B!$C1GARX,F!@WCQX@&* | ||
6682 | +M,J;_PI@*8\8`BA(C1@P4(SR-<!`OWI@QV,:,P3:F`J`Q@,8``C0&D#-`8\9@ | ||
6683 | +MP^9@!)T1\.#!@P<O`[P,&3)D$"`B6PP,\^9]8<>N2I4LOT)LVA3B0H!'[USX | ||
6684 | +M@R+!!9\C-[+@PY=EP!%R;0($"!`@0(```0($"!`@@+\:-6K4J%&C1H,J@ | ||
6685 | +M"8$F"YH;:/#=N''CQHT^35JTP-."$Z<Z'(0(`4C#C!DA4MC48<.&39TZ=4C< | ||
6686 | +M6W`/SX)[]Q;<6[#@WH)[8<(0(*`+GB<'#AR,<39FC+,QSL8X<.!@!`H'#APX | ||
6687 | +MH`,/'K41(T8X<!`O7SP4**B-0($"A0,4*.+%BS=FS)@Q_V/&`(H7;TP\#!@< | ||
6688 | +M>#HSP@$*%&/&`!HS9@RV"F,`C0$T!A"@,8#&`!H#:,P8!RA&C(`'#QZ\#!G@ | ||
6689 | +M9<B0)$,&`0C@R+E6Y(NQ.SVJ5&EQ(T*(%N2067GT"%D;%E#XX,$7(0(^?/BR | ||
6690 | +M'"'')T"-``$"!`@0((`_*`$"!*A1HT:-&C4:-*C1H,:-&S>:W.ASH\F-)C>: | ||
6691 | +MM,#3!`\>/'CP<!I2IXX4*;=N[=@VA!,G3ISP&,%C!`\>/`ON+;BWX-X1$@O* | ||
6692 | +M``S3H]:=.[K@P?/DP)FS,6/&C!GCP,$8!PX<.'#@P(&#$2/@4:,V8H0G!PX< | ||
6693 | +MQ(N'@@XU.2A0H(@7+]Z8,14`5?\8,V9,/!0H1GBBYFD$G1$.4&##!F@,H#&` | ||
6694 | +MQE3`-F8,(&=CG(T9,P;0&$!CL&%#@6($'6KP,F3(D$%`A@PGD@@042U;$1'2 | ||
6695 | +M[A"XTZ-'E1;X\+4(((.9E4?(VAPYTN(&/GPA\.T)@2_+D0MM`@2H$2!`@``! | ||
6696 | +M_`4(X"]`C1HU:M2HT:!!@P8U`C1ITN1&DR9-;C1ITJ1)DQ9-\"QH@F<!GGOW | ||
6697 | +MAI#81J+.D"&<..$!AJ</GCYX\.!9@*?%`CSW\-PC<:\,@3LB1.C2!6_$"`<. | ||
6698 | +M'(P9XV",@S%C'(QQ,,:!@S$.`#H8,0(>-6KPZ(P8X<F!@WARY,B)%P^%`P?Q | ||
6699 | +MQHRI,`;_4(4*%>*-03%BQ`AJ(^B,H.,`!;8Q8RH`JC"F`K8Q@,9@&S,&VQA` | ||
6700 | +MV,9@&X-M##8'=$;`@Z<K0X8,&3*<B!8M2081QU*(N'.'`($>/7I4:?&'G#\9 | ||
6701 | +MS&2X:$/NR(`;62)$B!!BSQY\^+*T(,?'7X```6H$"!"@1H`:`6H$J%&C1HT& | ||
6702 | +M#1HT"!"@38LF>)HTP=,$3Y,6+?#@:8('#YY[>/`LX'1O`:=[0^[=XX2GB1$\ | ||
6703 | +M??KTZ=.D#YX6>!;@N7?O'AX2]\+4$J&+#ATZ(^!Y&N'`P1@'8\:,<>#,@8,Q | ||
6704 | +M#AR,<>#``9T1\*A1@S=B!!T'GAPX0"$GWA@'SAR,&1.O`J`*_P#'.,,V!EL\ | ||
6705 | +M3R.H4:,&;\0(%"A0C!E3H0*@,8#&5!@SIL*8,8"PC<$V9LP8;&.6H$`Q`AZU | ||
6706 | +M#!DR9,B0)$.2)-&BZ1(A0H2N.P1Z].C1@T"5"5!<,&,FP]^1+`.R9,$7(<*N | ||
6707 | +M/2'P10BQ)\L?<FW\!:@1H$:`&@%J!`A0(T"-&C5J-&C0H$:-`!<N&,&#!X\1 | ||
6708 | +M/$WPX#'2!(\1/`OP+,!S#P^>!9SP<+J'A],"/`OPX,'3I,^-&TWZ-&G2H@4> | ||
6709 | +M/'CPD""Q($RM6M*<C!@QPM.($71&.!CC8(R#,0[&.'`PQH$#!PX<T!D!CYH` | ||
6710 | +M>+I&C!@QPI,#!PX<C''F;,P8;("P`?^J4,%9A3%C/(V@!@\>/'CP1HQ`@2(> | ||
6711 | +MMC&`*E0`5&$,((`5L`$:,V;,F#'8QHQ9L@2%DQ'PJ&7(D"%#A@P9DIR(5B^) | ||
6712 | +MCSMW[MPA0(``@1X]>E0Y)(,9,Q=06N"+@`\?OA`1]H2(L&?/GCWXLK0@Q\=? | ||
6713 | +MC1H!:@2H42-`C1H!:M2H4:-!C08-:@1H<^$"G@5X\.!9@`</G@5X%N"YAP</ | ||
6714 | +MGGOW[MV[A^?>O7OW[MW#<^\>'CQ-^MSH<^-&GSY]FK1H@0?/D7L+PM3R(L*) | ||
6715 | +M@S$.'(P8,8*.`P=C'(QQX,"!`P<.'#APX,#!"#KP,@C(`$\7O!$C'(QP@,(! | ||
6716 | +MH#%CG(T9XVS_S)@*8P!A&X/)TPAX\.#!@P>/VH@1#N*-&8.M0H4*@"J,J3`F | ||
6717 | +MWI@Q\<8LP;9DR1(4=$;`HY9!0(8,&:(ER9`D&L`329+XN*.+P!T"!,+T"-.C | ||
6718 | +M1Q4)+JA`.7(#WYH($2+@V[,G0H1=(?9$V(,ORQ]R?/SYJU&C1H`:-6K4"%"C | ||
6719 | +M1HT:-1HT:%`C0)L`;2[@P;,`SP(\>!;@N8<'SST\]^[=PW,/S[TC]^[=PW,/ | ||
6720 | +M#YY[>.[AP8.G29,;(6Z@N7'C1I\^+5JTP--D0:U_(N2@P#;&@0-X=."-&./` | ||
6721 | +M@8,Q#L8X&./`P1@'#AS0&0$/7@8!&>#1&3%BA"<'#L94J`!H#"!L_]BPC1F# | ||
6722 | +M#=N8)9ZHP8,';P0\>/#@41LQ`L48;&.P`:H`J$*%>!7&Q!L3#T4\%`Z6T!DQ | ||
6723 | +M`AXU`1DR9#@1+4.T:-&21*L7K<P=`@0($`A#($R/'CUZL.##IP6^"!$B1(@0 | ||
6724 | +M`>`>-'M"[(H0(D*$/?BRM"`7P%^-`#5JU*A1HT:-`#5JU&C0H$&#&@$"M&G3 | ||
6725 | +MYL(]/'CNX;F'YQZ>>WCNW;N'Y]Z]>R3NW;MW#P^)>WA(W+M'XAZ>>WA:]+EQ | ||
6726 | +M`\T--%ENW+CQJT^?)DT6A"%PY]H\;&/&.*!#!YX#!P[&.'#@P($#!PX<.'#@ | ||
6727 | +MP,$(>/#@94B2P8>N$2,\><+D8`RV"H"B8/^+APT;)G1+EHP8X0G>"'BZ,NB" | ||
6728 | +M!P\>/&HC/#EP$&\,H#$5L`$:$R5>O'CQ'*!8XH0./'@9,F3(D"%#M`S1HD5+ | ||
6729 | +M$BU)O70G"!`@4(9`#P(]PA#H0:#*O18#\.&+@"\"O@A[T/P*L2="A#T1(H2( | ||
6730 | +MD*4%N3;^:OBK42-`C1HU:M2H`;!&@P8-:M0($*!-@`!M+N"Y=^_>/3SW[N&Y | ||
6731 | +M=P_//3SW[MTC@><>GGMX[MW#<^_>/3SW\-S#LP!/BR8W;J"YD07-KU\W?MWH | ||
6732 | +M<Z-)$V4$1""(-V:,`P<CX#EPX,"!`P<.'#APX,"!`P<.'(P8`0]>!@$9X&48 | ||
6733 | +M06>$`P<.X@$"A&W_WA('GCQY&H%NQ`AJ\.!ER)!!EZX,\.#!@S?"TP@'#N+% | ||
6734 | +M`S0FRIAX8\;$0X$"A9,1(^!1RY!!0(9H&9*<B!8M6K1Z2>HEB5:&@(\R!'H0 | ||
6735 | +M"$.@1X\>!'JTN!$!'SY\^-:LV?/K1A8T(2+L"K%GUYX(6?Z0X^.O1H`:-6K4 | ||
6736 | +MJ%$C0(T:-1HT:%"C1ILV;0*T:7/AWCT\]_#<NX?GWKU[]^[=`XCGWKU[]^[= | ||
6737 | +MNW?O'AX2]_"0('&/!)Y[>.[AP7/C1A8T:-#@0Y-E3Y\;:+(TT5#FWS$Y\^+% | ||
6738 | +M0^'`@2<'#APX<.!@C`,'#APX<.#`P8@1\.!E$)`A`[P1\#`Y<!`ORKQY__$< | ||
6739 | +MC(`'CQHJ>/`R9,@0+4.&#!DR9-#E0Q<\>-3@41LQPL&8>/'&Q(L7#T4\%"A& | ||
6740 | +M4*-&30"J)!F21(L6+5JT:-&B18M6+TFZ$P1\A/%!(`R!'@3"$"!`H$J3`5EN | ||
6741 | +M9(D0`5^$7YQ:],$7(D($?!'V[(F0I06Y`/[\!:@1H$:-&C5JU*C1H$&#!@': | ||
6742 | +M!`@0($"`-A?NX;EW[QZ>>_?NW<-S#\^]>WCN<;J'YQZ>>_?NW;MW[]X]//?N | ||
6743 | +MW<-S#P^>/C=N`,R2!0V^+&CPH<&'[\8-#<NNI#B6+\J8>"@<.'#@P($#!PX< | ||
6744 | +M.'#@P($#!PX<C*!#!UX&`0($P*,V`D6\>!BBQ/^;AV+$"'BH4,%#E2%#AF@G | ||
6745 | +M3IS(D"&#CPP9,F3(``\>O!$C1M!QX"`>BG@H4*"@,P(>/'@",F3(<")#M`PG | ||
6746 | +MHD6+5B]:O7I)ZD7+0,!'F3`$RA`@0(!`#P)A>K1H<:3%`'P1?@$[<J3%#7PA | ||
6747 | +M(H2($"("O@A96K1IX\]?C1HU:M2H4:-&C1H-&C2H$:!-FP`!`G!K<^'>/3SW | ||
6748 | +M[MW#<P_/O7MX[MW#<^_>O2'WAMR[=^\>GGMX[MV[=^_>O7MX[N%IT>0&&C19 | ||
6749 | +MT.#[]0O?GBPW-H7H84U$BF/YXD6)-V:$@Q$.`(YP,,+!"`<.'#APX,"!)T^> | ||
6750 | +MJ%$3(`#>"!3QY,2+$B__'@H43N"A0N7#AX\3/DZ<.''B1+1H&:*=.)'A1(8, | ||
6751 | +M&3)0RP`/WH@1(^@XH#."S@AXU.`)R(`J0Y(3T:)%BQ8M6K1ZT>I%JU<O230? | ||
6752 | +M!,J<\!&&``$"!'KD(!"FBBDH4"8,P)=E@!@Q1X"AP8<O0H0($2*$B)#E#SDH | ||
6753 | +M_FH$J%&C1HT:-6HT:-"@08``;=H$"!"@39LV%_#<NW</S[U[]^[=NW?OWKU[ | ||
6754 | +M]^YQNG>/T[U[]^[=NT?BWCT2>.[=NT<"SX(6>&[<R((F"YH0>[+@0Y/%TK(> | ||
6755 | +MM7P@.)8O'X8H\1PX&.%@A`,'#AR@<(`"!0H4*%"@0$&'C@@4"!#(D1-%3KQX | ||
6756 | +M_P#CQ9,V`AX\'SY\E#EQXL0)92>BG4@2+5J&:-&BG<B0)$.&#!G@P:,V`MX( | ||
6757 | +M>"/@4:.604"&#$DR1#L1+5JT),JB18NF+%J]>O7JE?'AXT29,@0($"!`@$"/ | ||
6758 | +M'E4.29#`YTB6+,#(,3G2(DN6$/A"[-JS:\\>?%E:D&OCKX:_&C5JU*A1HT:# | ||
6759 | +M!C5J!&C3IDV```':M&ESX=X]//?NW<-S[]Z]>_?NW;O'Z=Z](??NW;MW[]Z1 | ||
6760 | +M>_?NW;MWC\2]>_=(X,&#ITF?&VC0H,$7(@N:&R'J]:@%3P`=!#B.88@G)QX* | ||
6761 | +M%`Y0H$"!0DX\.?'BR8D73TX^.7+D()`C1TZ\>/'BQ?^+%^\+"CKP?&3PX>/$ | ||
6762 | +MB1,G3IQ0%BU:M&C1HD4[$2U)-(#1HB7)D"$:J@P9J&6@EH%:!G@9,B3)$"U: | ||
6763 | +MM&C1HD6+ED19M'K1ZM5+5R])F3)ERI0I0X```0($"(2I4H7%A",#!@PX0H[/ | ||
6764 | +MGP%9\(7`AR]"A`@1(H3`AV\`N0#^_`6H42-`C1HU&C1H4"-`FS8!`@0($"!` | ||
6765 | +MFS87[MV[=P_/O7OW[MV[=^_>/1+WAMR[=^_>O7M'2-R[=^_>O7OW2-R[1^(> | ||
6766 | +MB7MX\#1I<N-&%C3X\&4)H>'$'6D"1M!!@`/'L7PQY,A!@0(%BG@HY*"()R>> | ||
6767 | +MG'ARYL63$P^%'!3QXL6+%P7_6Y1X\>;1<0)/EX\3)WR<.'$B6K03T4Y$BQ8M | ||
6768 | +M6K03T4Y$BW8B6K1HT9)DR)`A0X8,\#)D2)(A0[1HT4XDB98D"<!Z2>HEJ1>M | ||
6769 | +M7KUZ]925.5&F3)DP!`@0($"@1X\%>/!DR9)E`+DVY(ZTR((/'SY\$2)LBK!K | ||
6770 | +MSYX(65H<:1/`7XT:-6K4J-&@08,:`0*T:1,@0(```0)`NW#A'IY[]^[=PW/O | ||
6771 | +M'IXC]^[=NW?OR+U[8NX=N7?O'@D2).X=N7?OWKU[]TC<NX<'#YX^-VZ$N!$B | ||
6772 | +M"SX-RNY(@X?.B9,OQW#@."9'#@(4*%"@0($"!0H4*%#$BQ<O7KQX\>3$BR<' | ||
6773 | +M4!1`_U'BC1F#(IZ#$?#@^<C@(]J)$]&B18MV(MJ):-%.1(L6+=J):-&B18L6 | ||
6774 | +M+5J2:-$R9,B0(4.&:-&B18L6+4FT:$GJ):F7I%Z]:/72U8L6K4R9,LO"A`E# | ||
6775 | +M@``!`CVJ++AQ`V"6%D?(D9MP9,``?/CPH<&W9T^$"!'VX,.';\"?-@'\!:A1 | ||
6776 | +MHT:-&@UJU*@1H$V;`&T"M`G0)D";"Q?NW;MW#\^]>_?ND;AW[]Z1>_?NW;MW | ||
6777 | +M[QZ)>R1(W+M'XMZ]>R3NW;MWC\2]>_<6X&G2Y,:-$"'PA=`0AITN:E^<.!E! | ||
6778 | +M)\4Q.0A0H$"!`@4*%`Y0H$`1#T4\%/&P88L7+UZ\>-CB`?^*-P90O'CQ4*"# | ||
6779 | +M-T)7AA,93D3+D"1#DFC1HD6+%BU:M&C1ZM6+IBQ:O6CUHIU($BU)DFC1DD3+ | ||
6780 | +M$.U$M&C1HD6+5B])O23UTB6I5R]=/67*PI0I4R8,@3)E"!`HLZ`*GAM9!OR9 | ||
6781 | +M0.[(GS\#\.&+$`%?B#T1]H2($"$$O@@#CI"#`C"`OQHU:M2HT:!&C0!MV@0( | ||
6782 | +MT"9`@``!VK2Y<.$>GGOW[MV[AT?,O7OW[MV[=^_>/1+W[MV[=^\>"3PD[I&X | ||
6783 | +M=^_>/1+W[MV[=P_//3PMFMRX$>)&"`U5KEPQ)H*.$VE?4'Q!\`4%"A0H4*!` | ||
6784 | +M@8(."A0H4*"(ARU>O'CQYL6+%R7_7KQX\>)ABQ</Q9(1J.!ER'#BQ(D3)Z*= | ||
6785 | +M2)(A6K03T:)%BQ8M6K1HT:)%BQ8M6KUHT:)%2Q(M6K1HT:)%JQ>M7KUH]>K5 | ||
6786 | +MJU<O7;UZZ>K5JU>F3)@R9<H0($"`0)DP/1;T:3&`#SER?XX,&#``7X0U^"+@ | ||
6787 | +M0[-G5X0($?;LP8>O!3D^_OS5J%&C1H,&-=H$:-.F39L``=H$:-.FS84_]^[A | ||
6788 | +M`7COWI%[)/#<NX?GWKU[]X[<NW?OWCT2>.[=(W&/Q+U[]^[=NW>/!(E[1\20 | ||
6789 | +M($'B'IXF-VZ$"+%@09D3/MB)$"%"A`AI(A!(<[($!0H4=%"@H(,"1;PE\;#- | ||
6790 | +MBS<O7KQY__'BQ<,6;TP\;/%0T'%"+4.&$]%.1(L6+5JT#-&B18MV(EJT:-&B | ||
6791 | +M18L635FT:/6B18M6+UJT:-&B1:L7K5ZT>M'J1:M7KUZ2>O72U4M7KUZZ>B<6 | ||
6792 | +ME`E3AD`9`@3*A`E#@@0)<A/('?DS8$"+`5GPX8L084^(/7LB1(@0(4*$$/A: | ||
6793 | +M'.$3($"-&C5J-*@1H$V;-FT"M`D0($";`&W:7/AS[]Z]>_?NW;MW[]Z]>_?P | ||
6794 | +MW+MW[]Z](_?NW2-!XMX]$O?N`21QC\2">_=(D"!Q[]Z$'2QV3*B"IT6($"$T | ||
6795 | +M6`I1KUZ]:"=\$&!WQXL(:72DH8CG``4*%"CDH)@7+UX\;/'BQ?^+%R]>O'CQ | ||
6796 | +MXL6+%R\>"CHC4`F(%NW$"64GHD6+%BU#M&C1HIV(%JU>M&C1HD6+%BU:M&C1 | ||
6797 | +MHM6K%ZU>M&CUHM6+5J]>O6CIZM5+5R]=O7J6TEFJMXQ`F3)E"!`@4"9,F##W | ||
6798 | +M2$R80.[/@`$#!@S(,B`+O@@1(NR)$"'"G@@1]NS!%V+`D39\`M2H4:-!#6X! | ||
6799 | +MVK1ITZ9-FS8!V@1HTZ;-A3_W\-S#<^_>O7OW[AW!<^_>O7OW[MV[=^_(O7OW | ||
6800 | +M[I&X=X_$O7M5[MV[=^_>$#'W=IAZ14:"*3YX6F0)@6]3"`TA`&[:9,F2)0W* | ||
6801 | +MRA"X(T*:$Q3Q4*!`$0]%O"_QXL6+%R__WKQX\^+%BX<B'HIX*%"@H.,$7H9H | ||
6802 | +M)TZ<B!8M6K0,2:)%BQ8M6K1HT:)%JQ<M6KUHT>I%JQ>M7K1H]:+5BZ8L6KUH | ||
6803 | +M]:+5JU<O7;UZ]2S52V>I7KIZ)\J4(5"&0!@"8<)4N;?@WI$C`P;<R)(E2Y8; | ||
6804 | +M-V[@PQ<APIX($2+LB;`G0H@(^&X<(=<F0(T:#6K4"-"F39LV;=JT"=`F0)LV | ||
6805 | +M;2[\^7/OWI%[1^X=N7?OWCTQ]X[<PW/DWKU[]^[=PT."Q+U[1^[=NT>"1)5[ | ||
6806 | +M]TC4V6'JU;I%JJBL<\/BR(T;64)D07/C1H@0NS9MVL1`69D[NJ1]0;$D7KQX | ||
6807 | +M\>+%BQ=O7KQX_P#CQ8N'(AX*%"A0H(B'(AX*%'3@P<L0[<2)$]&B13MQ(EJT | ||
6808 | +M:-&B18L6+5JT:-&B18M6+UJT:/6BU8M6+YJR:/6BU:L7K5ZZ>O7JI4M7+UT] | ||
6809 | +M2^DL6:IWH@R!,@3"$`@S:L&"!2U:M&B1!1\^?/CP9<ER(TL6-/@B[-D3(<*> | ||
6810 | +M-7LB1(B`[\8`<@'\U4!6HP:W-A?:M&G3IDV;`&W:M&G3YL*%/WCNW;MW[]X] | ||
6811 | +M,7CNW;MW[]X]$O?NW;MW[]X]$O?ND;AW[QZ)>_?ND1A"HHZI5XL^E$ODIURY | ||
6812 | +M#^M,D;B1!0V^+'OP[=F##PT^-+M":#AQQPL")_-0Q/L2+QZ*>/.6S/^+-P]% | ||
6813 | +MO'@HY*"(AP(%"A0HQJ"@0P=5AA,GHIV(%NU$$H#1HD6+%BU:M&CUHD6K%RV: | ||
6814 | +MLFC1HM6+5B]:NFCUZD6K5Z]>O7KUZM6K5R]=O7KI+-5+9RF=)4LGRI0A4(9` | ||
6815 | +MF`5A[BW`TZ=/'WSX(D18$R'"'GSXLJ#)@@\?O@@1]JS9LRM"A!#XLK0@QR=` | ||
6816 | +MC08U:@2XT.9"FS9MVK1ITZ9-FS9M+OSY<^\>'C'W[AVY1^(>GB/W[N$Y<N_> | ||
6817 | +MD7OWCMR[1^+>/1+W2-R[=T_,/3$33"WZ4,[$IQDO/GD;YB>0A"IX;J#!E^77 | ||
6818 | +MKSU[]D2($"+$)DMEV'DI@@#!EWGSXL6+%R__7KQX\>+%0Q$O'@H4*%"@0!$/ | ||
6819 | +M!0H4=.!ER!#M1+03T:*=B!8M6K1HT:)%BQ8M6K1H]:)%JQ>M7K1ZT>K5JQ>M | ||
6820 | +M'L!Z]:+5JU>O7KIZZ>JELY3.4CU+EM(QL'2BC`\"8<*$6;#@7HL^-[+@B[`F | ||
6821 | +M0H0U:]9$B+!G3Q9\O_#ABQ!A380U$?9$B!`A2XL+;?S5J%$C0)L+%]I<:-.F | ||
6822 | +M39LV;=JT:=/FPH4!1_#<NW?OWKU[]X[<NW?OR+U[]^[=NW?OWKU[]^X=N7?O | ||
6823 | +MWKTA)$B0J&-J4;E$KCZ]>0/DS0QPB`Q](+.CQ8TL:++@0Q,B1(A=>_9LVF2I | ||
6824 | +MS+\K7KP@0"!G7A1L__'BS5LR;TF\>/'BH8B'`@4*%/'B.4!!1Q>\)">BG8@6 | ||
6825 | +M[42T#-&B18L6+5JT>M&BU8L6+5JT:,JBU8M6KUZ]>O7JU:M7KUZ]>O7JU:M7 | ||
6826 | +MKYZE=)8LI;-DR9(E964(E"$0!N"">PM:H,&'!M^:"'O61(@084V$-1'P[?GU | ||
6827 | +MZQ<^?/C6K(FP9E>$""'P#3C2QE^-&C7:M+EPH4V;"VW:M&G3IDV;-FTN_!EP | ||
6828 | +MC\21>T?N';EW[]Z](_?NW1-S[]Z](_=(D+A'XMX]$B1(D+AW3\R.5\7*?9KQ | ||
6829 | +M!@@0($"``'G3Q9&A2%1,X;F1!0V:+"$V;0JQ!\VN3<LRM8,AZH$7$0CBS?^+ | ||
6830 | +M,F_>DB78YL5;LB0>BG@H4*!`$2\>"A0CZ&3($.W$B6@GHD4[$2U:M"31ZD6+ | ||
6831 | +M%JU>M&CUHM6+IBR:LGKUHM5+5Z]>O7KUZM5+EZY>O7KI+*6S9*F>)08,&%B* | ||
6832 | +M5H9`F04+1N&Y@08-/GP1]D2($&%7A%T1UD18$R$"OE^_\.'#!W#-FC5K(NR) | ||
6833 | +M$`%?EB-M_-7P%Z#-A0L7+EQH<Z%-FS9M+K1I<^'"GRSW[MV[=^_>O7OWCMR[ | ||
6834 | +M=^_(O7OW[MV[1^+>/1+W2)"X=^\>B7MBZIA:5.X3/R!`@``!`@0($"`S9L2" | ||
6835 | +M\(.*J2,W;H0($2+$IA"[-O0Q4F==)$2(^N7Q4@3_P;QX*%!\F8=BR9)X8Y9@ | ||
6836 | +M0X$B'@H4\<8XH",-7H8,&4Y$.Q$M6K1HT:)%BQ8M2;1ZT:+5BQ9-6;1HRNI% | ||
6837 | +MJU>O7KUZ]>K5JU?/4KUZ]>K5JV>IGJ5T#"PQ8&")`0-E9<J,*K.@R8T0^/#M | ||
6838 | +MB1`A0H1=>W;MV15A380U:R+@VX/O%[X]$=:L6;-K5X0($08<X>,/68T`;2Y< | ||
6839 | +MN-#FPH4V%]JT`=CF0ILVT/[\^77DWI%[1^Z)N7?DWCTQ]^[=.W+OWI%[]TB0 | ||
6840 | +MN$?BWCT2)$C<(R%FAYMBKEX``0($"!`@0(```0($2"P+1()1D7"D1980(="@ | ||
6841 | +M01.BSX(=ZSX,^S3CS8Q4___H2)-S#0$*%"CBH8BW!`4V%/%0.(CG(!X*%'3H | ||
6842 | +M9,@0[<2):">413L1+5JT>M'J18L6+5JT>M&B*:L735F]>O7JU:MGJ9ZE>I;J | ||
6843 | +M6:I7KUZ]>O4L6;)DB0$#2Y886%)69D&8!4U"A-@5(4*$"'OV1(BP9\V>-7O6 | ||
6844 | +M1(@0(0*^/?CP_<*W)\*:-6O61(@0(<L1/OYJ<&MSX<*%"Q<NM+EPH4V;"VW: | ||
6845 | +M7+CP!QB^>_?NW;MW[]Z]>_?NW;MWY-Z](_?N`;Q'XMX]$O=(D+A'XAX)$B3, | ||
6846 | +M+"IGXH4F($"```$"!`@0($"`S.!GH=4/&5".W,ARXP8:-&B&F%KW(9&)&3.` | ||
6847 | +M`/_ITBF.%R?21""0A@+!ER5+4#B(YP`%"A1C4*!`0<<)J@P93D0[<2):M&C1 | ||
6848 | +MHD6+%BU:M'K1ZD6+IBQ:O1/UZM6K5\]2.DOU+-6S5,]2/4O*+-6S5*]>.DOI | ||
6849 | +M+#&PQ("!I66C%BQ#LRE$A`@1UD38LR9"A`B[]NR*$"'"F@@1UJS!AP\?OE^_ | ||
6850 | +M]D18LV97A%WXLI"#PH5+@`L7+ERX<.'"A0L7+K2Y`.T"M`O`?N$[<D_,D7M' | ||
6851 | +MCMP[(N;>D7OWQ-R[=^\>B7LD[I&X1^(>"1(D2)#8,8M8.5?\@``!`@0($"!` | ||
6852 | +M``(!`D03$$VQ++3Z084/GAM9T*!!P\G4HF)^3'29`>3_S8PW0&:DNG)'A`@O | ||
6853 | +M(NC008%B"0H4*%"@0($"!0H4=.!ER!`MVHEHRJ*=4!:M7K1H]:*EBQ8MVHEZ | ||
6854 | +MT>I%JU>O7KUZ]2S5LU3/4CU+&NI9LE3/DJ5ZEBQ9LF3)$@,&EGBD6["@"9I- | ||
6855 | +MFR)$B!`A0H0(>_:LB1!A380(:_9$B+`&7X0U^/#]VH-O3X0(:]:LB1#A!CDH | ||
6856 | +MR/RUN?#GPI\_?R[\N7"!'#ER;<A=N/`+WYI[1^[=$W/OWI%[]^X=N7?DWKTC | ||
6857 | +M]^[=NW>/Q#T2]TC<(T&"!(DZM&!)2O0"B"8@0(```0($"#\@0(```6*!B!)5 | ||
6858 | +M$H[<N-'G5Q]:Z_R8,/%I!I`9_P"!``$"Y,T,1W%JZ1(A@LZ(+W3HH%B"`@4* | ||
6859 | +M%$M0H)#F1%<&5!E.G(AV(EJT:-&B18L6+5JT>M'JG:AWHEZT>O7J6:IGJ9ZE | ||
6860 | +M>I;J6;)4SY*E>I;JI;-DJ9ZE=`PL66)@R9*R!1K0;(JP*T*$-1$B[%D3(4*$ | ||
6861 | +M-6LB[%D380V^-1'61%B#;PV^/;_P18@0(<*:76L&,`$!`MJ%/W_^_+GPY\^? | ||
6862 | +M/Q?(76A##MJ%/[\BK#ER[]Z1>_?$W#MR[\B]>V+NW;MW3\P]$B3ND;A'@@0) | ||
6863 | +M$B2J#!&S8Q:Q2:[X`=$$!`@0($"`S`"B:0:0&3.(^(E$9D*+/BV.B'E5;%@7 | ||
6864 | +M<#/>`/\!`@0($"!`@`")U>G?G3LB1$BC@T(:"FDHZ"Q!@0(%'8`C4*'*$"W: | ||
6865 | +MB1/1E$4[42]:M'K1ZD6+%DU9M'K1ZM6K5Z]>/4OU+-6S9,E2/4N6+&FP5,^2 | ||
6866 | +MI7KU+"E39DF9)4O*EBE;%F+7FCU[=JW9%2'"F@AKUD2($&'-&GQK\*V)$"%" | ||
6867 | +MA#5K\*V)L`??'GP1(NQ:$V$`$S[0H/WY\^?/GS]__ORY0.X".7+0+EP8L&<- | ||
6868 | +M@'M'[MT[<N_(O7MB[MT[<N_(O2/W[MV[=^\>B7LD[I$@48>$F#H[S'1(9(L? | ||
6869 | +M$"!`@``!`@0($"!`@``!,L,1A`\26.#Q<&0'+6(_3'1Y`^3_S1L@0(```0($ | ||
6870 | +M"!`@,Q!1(G#G#AUITE#004$'!1T47^@X@9<A`ZH,)TY$BQ8M6K1HT:)%BQ:M | ||
6871 | +M7K1ZT>I%JY<N&L!Z]>I9JF>IGH9ZENI9LE3/4CU+ENK5TU#/DC)ERI1IL+2@ | ||
6872 | +MQX(F>W9%B!!A380]:]9$6+,FPIH(:]9$6!-AS9HU$=9$6!-A#;XU>_;\VK,G | ||
6873 | +MPIHU$?HP80+MSY\!?_[\^?/GSY\_%RZ0NT".W)\!$=8`('%/S#TQ]X[<.W)/ | ||
6874 | +MS)%[8NZ)N7=/S#T2)$B0P$."Q(0A1W:8>H6$6*)/_(```0($"!`@0(```0($ | ||
6875 | +M"!`@0&(1^>&BRI$C.V:Y*9;HQ9LW_T"```$"!`@0($"```$"!,B,0;5\B)!& | ||
6876 | +MAPZ*+RA0T$%!1YH(7:A.G#AQXL2):">B18L6K5ZT=-'J):D7K5Z]:/72U:MG | ||
6877 | +MJ9ZE>I;J6;)4SU(]2_4L64IGJ5Z]>AKJ:="P#*"&>U58F-(0(4*$-1$BK(D0 | ||
6878 | +M(<*:"+O6[(JP)L*:-6LBK,&W9DV$-6O6K(D0(<(>?/CPX<,7(<N1(\`&_!HP | ||
6879 | +MX,^?/W]:_/ESY`(Y)A<N`/NU9@V`>V+N';DGYAZ)>T?ND;AWY!Z)>T?ND1A" | ||
6880 | +M8@@)$B1(D"!1AQ8L8I-<O7@#!`@0($"```$"!`@0($!F``$RPUNK#Q*8X#E" | ||
6881 | +MZU6'<B9>O/\!`@0($"!`@``!`@0($"!`@`"9T8R2CSO2$$BC0X>.-#IT1.C2 | ||
6882 | +MY</'B3(G3D2+%BU:M&C1HM6+5B]:O7KUZD6K5Z]>NGJ6ZM6S5,]2/4N6+-6S | ||
6883 | +M5,]2O7KUZFFHIT&9,@W+FE39<<C4KPAK(NQ9$V'/F@AK(JR)$&'-FC5K(JR) | ||
6884 | +M`'#-FC41UJQ9$V%-A#5KUD38@V]/!'SX!@`#-N#7@%]_@/WY\V?`GS\7+C"Y | ||
6885 | +MP.3"@"QK```X<N_(/1+WCI`0<T_,/3'WCMP3<^\>B7M#2)`@08*$F`D[7A&; | ||
6886 | +M%.0-$"!`@``!`@0($"!`^`'A!P3(#""QO"EA)F'"!%JSJ!!K]6G_!A`@0(`` | ||
6887 | +M`0($"!`@0(```0($"!`@0!`-\G'G#CPZ"!#004$'`1U=/C+X.''BQ(D3T:)% | ||
6888 | +MJZ>L7K1Z]>I%JQ>M7KUZ]>K5JU?/4KUZENI92F>IGJ5ZEI35TU#/DC)E&I1I | ||
6889 | +M:+)@`0E3$DRAB1`APIH(:R*LB1!A380U:R*LB;!F380U:R*L61-AS9HU:]:L | ||
6890 | +MB1!AS9X]>_#AV_.KSP!\^+(,`#C@#[`_`_X,&/#G"#DF%X#]PK=F#0`2).Z) | ||
6891 | +MN2>&Q+TC]TC<.W*/!(E[8NZ)N4>"!`D2)$B0F"!D4;E$+X```0($"!`@0(`` | ||
6892 | +M`3*#'S]^0/@!F<&/B!)55"1(<*.JG))/_R^```$"!`@0($"```$"!`@0($"` | ||
6893 | +MO'D#!,@,0Y1\W*DE@@X=.BBDT=$%#Q6J$R>4G5"F[(2R:,JB*8M63UF]>O7J | ||
6894 | +MU:M7KYZE>O7JU;-4KYXE99;J6;)4SY(E91HL:="@K(F&92WND3`E8<*>-1'6 | ||
6895 | +M1(BP)L*:"&LBK(FP9DV$-6O6K%FS9DV$-6O6K%FS)L*:-6LBK%D38<\>?/A^ | ||
6896 | +MX8N`#]^O`0.``0,V8,"`(Q>87!#SY]>:-0``'+DGYMZ1>V+N`21Q3\R1>R3$ | ||
6897 | +MW#MR[]X0$D-(D"!!8L*$':8Z3'+%#P@0($"```$"!`B0&?PL6)AA808_?K&\ | ||
6898 | +M*?'SX<.'<HE<F?]X\08($"!`@``!`@0($"!`@``!`@0($"!`@``!$BM0#Q]W | ||
6899 | +M[M"A0X<.'3JH,J!"=>*$,F4GEBE3IDR9,F7*E"E3IJR>AGJ6+"FK5Z]>O7KU | ||
6900 | +M+-6K5\^2)0V6-%C2H$&#,@U--#1ILNP>"5.F@$6($&%-A#41UD18$V%-A#41 | ||
6901 | +MUJQ9$V%-A#41UJQ9LV;-FC5KUJR)L&;-F@AK(N"+L`??G@@1\.'[-6#``&!_ | ||
6902 | +M@`'[PX0)DR/`?JU9`P#`/1+WCI`@<>_(/3'W2-P[<D_,/1)B[HFY1X+$$1)B | ||
6903 | +M)NR@M6B2*R!```(!`@0($"!`@+SA]\+")PO\^,6:8<&;$@A*E"0:]NG_Q9LW | ||
6904 | +M0(```0($"!`@0(```0($"!`@0(```0($"!`@0&8TLG;GSATZ=*31<0(/%2I4 | ||
6905 | +M)TZ<**-,F3)ERI0I4Z:LGC)ERI0ILZ1,0[UZZ>K52U?/4CU+EBPILZ1!F08- | ||
6906 | +MRIHT:=*D29,F+4A,,$7K%[XU$2)$6!-A380U$=9$6!-A380U:]:L6;-FS9HU | ||
6907 | +M:]:L6;-FS9HU$2*L6;,FPIHU:_!%P(<O`CY\6;(,&#``&+`C1Y@P^3,`WQH` | ||
6908 | +M``"((7&/Q#TQ]\3<.W)/S#T2]X[<(W'OWCT2)$B0(#%!S`0A;B1]T@0$"!`@ | ||
6909 | +M0(```0+D#3\+G_A9X#<C%K]8WH9Y&S:LRXL9_P#?``$"!`@0($"```$"!`@0 | ||
6910 | +M($"```$"!`@0()J`:`("!`@01-;*W!%!1YHT7;I0H3J!ZH0R9<J6*5.FK)XR | ||
6911 | +M9<J4*5.F3)DE91KJ*:M7KUZ]>O7J6;*D3(,E#1HT:+C19-F"%LN:-&G1@L0$ | ||
6912 | +M/B0BX-L38<V>-1'61(BP)L*:"&LBK%FS9LV:-6O6K%FS9LV:-6O6K%FS9LT: | ||
6913 | +M?&LBK(D0`=\>?/@BX(N`#]^O+`,&``-VA,D1#[_PK5D#`,"](_?$W#MR[PB) | ||
6914 | +M>T?NB;DGAL2]>V)(D!A"@@2)"23$B-GA1H^K%T"```$"!`@0($#XS7AA80:_ | ||
6915 | +M6!9F6.CB;=@P$UW>O/]Y\P8($"!`@``!`@0($"!`@``!`@0($"!`@``!`@0( | ||
6916 | +M$(!`@`"9$:N?M3MW[MRY(P)5!E0G3IPXH4S9,F7*3BA3IDR9,F7*E"E39DF9 | ||
6917 | +MLGKUZM6K9\E2/0V6-&C0H$%#"`TM\"QHT:))BQ8M)DR@]6?-G@@1]JS9$R%" | ||
6918 | +MA#41(JR)L&9-A#5KUJQ9LR;"FC5KUJQ9LV;-FC5K(JQ9$V%-A`AKUNS9@V\/ | ||
6919 | +MOC7X]N#+DJ4/,&!'F(CY\VL-@#5K`)"X)^;>D7LD[HDA08+$$1+WQ-PC<6\( | ||
6920 | +MB7LD2$P@P63"A!VS.DQRQ0\($"!`@``!`@3(#$W\^`'AQR_6#&_>AGES!.[_ | ||
6921 | +MS1L@0(```0($"!`@0(```0($"!`@0(```0($"!`@0(```0($"!`@,V)1JN7C | ||
6922 | +MSIT[/NXD.7$BV@EERI354Z9,&<!HRI0I4Z9,F3)ERI0IJU>O7CUE&NIIT*!! | ||
6923 | +M0Y,0FRSM:G+CQHT6]_"T:-%B`A\2^"+@6Q-ASYH]:R)$B!`A0H0U$2*LB1!A | ||
6924 | +M380U:]9$6+-FS9HU:]:LB;!F380U:R*L6;,&WQY\OW[]VH,O0H0(^&X,`(;G | ||
6925 | +MR!$/OR*L6;,&P+TC]X[<$W/O"(E[8DB0N'>$A!@2]\20&$*"Q`028B8PH96@ | ||
6926 | +M0Z)/_(```0($"!`@0(```3*#7ZQ8L2Q8,.'-A(DN_S/>O`$"!`@0($"```$" | ||
6927 | +M!`@0($"```$"!`@0($"```$"!`@0($"```$"9,:,?M;"]"!`@$`9'R?**#NA | ||
6928 | +M3-D)9=&4*5.F3)DR9<J4*5.FS)(R2\HTU-.@08,V4A=BT"6"$&S>RA+C1 | ||
6929 | +MH@6>%B0F3,"390V^/7LB[(D0(4*$"!$B1(@0(4*$"&LB1%@3(<*:-6O6K%FS | ||
6930 | +M9LV:-6O6K%FS9LV:"&O61%BS9\^O7_CP1<"'+\LO8,#$`.OS*\*:-6O6B+E' | ||
6931 | +M@@2)>V+ND1!S[\@]$B3ND;A'XAX)$B3$D"`Q@0F3'4B()7(%!`@0($"```$" | ||
6932 | +M!`B_&?SX6;#@S9LW;R:Z=/\!]P8($"!`@``!`@0($"!`@``!`@0($"!`@``! | ||
6933 | +M`@0($"!`@``!`@0($"!`@``!$JL9O3!E"/0H<T*9,F7*E"FK5T_9"67*RM13 | ||
6934 | +MILR2,DO*E&G0H$R#!@T:-#0)H:'%C4TA0N#+$@)?B!M'2."9,&%"E@CX\.V) | ||
6935 | +ML&=/A#T1(NR)`##"G@@1(D2($"'"FCUK(D18$V'-FC5KUJQ9LV;-FC5KUJR) | ||
6936 | +ML&;-FC5[]OSZ]>L7OCT1\.'[!0P8,&"_(JQ9LV;-O2/WQ-P[0H+$$1(D2)`0 | ||
6937 | +M0T+,/3$DAI`80H($"28DF.Q@@J2#*U?\@``!`@0($"!`9@"9P<\"$6^MO'D; | ||
6938 | +M]JG_RYLW;X"\`0($"!`@0(```0($"!`@0(```0($"!`@0(```0($"!`@0(`` | ||
6939 | +M`0($"!`@0&;,0&1OV;)E)Y:56:;,4IEERI0MLV3)DC(-&I1IT&!)@P8-&C1H | ||
6940 | +MT*`A1),0+4C@N9'E1H@L^/#AN]&"Q(0)$_#@BX`/WYX]>_;LB;!GSYX]>_;L | ||
6941 | +MV;-G3X0($?9$V!,APIXU$2*L6;-FS9HU:]:L`;AFS9H(:]:L61-ASYY?OW[] | ||
6942 | +MPH<O0H1?OX`!^X5O3X0(:]8<N7?OR#T2]\3<(W%/S+TC]TB0N'>/Q!`2)$A, | ||
6943 | +M.#*!"9,=LR1-<O4&"!`@0(```0($"!!-L2QX:S5LV+!/_UUFO`$"!`@0($"` | ||
6944 | +M``$"!`@0($"```$"!`@0($"```$"!`@0($"`O`$"!`@0($"`S``"!`@0(+$0 | ||
6945 | +M10I$8<&R9<N6*5.F0=DR9<N6:="@08,HT:-#01T.?&S<TW+AQC\6$%C>R | ||
6946 | +MX,-W`Q^^$#=:3&`QH44(?'LB[-FS9\^>"'LB[-D384^$/7OV[-FS9\^>"!$B | ||
6947 | +M1(@08<V>-6O6K%FS9LV:-6O6K%FS9LV:-1$B_/KUZ]<O?/CPX</WZ]>O7Q'6 | ||
6948 | +M`%RS9LT],?=(W!-#@L0],22.D"!Q[PB)>R2&D"!!XL@$,1/$,&$RJX.K3_R` | ||
6949 | +M``$"!`@0($"```'"SX*W5DJ4#/\S`>X-$"!`@``!`@0($"!`@``!`@0($"!` | ||
6950 | +M@``!`@0($"!`@``!`@0($"!`@``!`@0($"!`W@`!`@0(D!F.B$0*1(_"O04+ | ||
6951 | +M-%@*H2&$!@T:-#31H*%)DR9-;C1I<N/&C1LD^$QH<2-$%GSX;MRXD>7&A`E' | ||
6952 | +M;J"Y@6;/GCU[]NS9LV=/A`A[]NS9LV?/GCU[]NS9LV?/GCT1]D2($`'?FC5K | ||
6953 | +MUJQ9LV;-FC5KUJQ9LV9-!'Q9?OW*D@4?OBR_?OWZ%0'?F@AK[MT[<D\,B2,D | ||
6954 | +MQ-PC<8^$&!+W[I&X1V(("1(D`))@,H$)$R9()"6R]08($"!`@``!`@0($'X6 | ||
6955 | +M++2"H$3_R;!A7=Z\`0($"!`@0(```0($"!`@0(```0($"!`@0(```0($"!`@ | ||
6956 | +M0(```0($"!`@0(```0($"!`@0(```0($")`9,V;$FH%(PH)E330T:=*DB88F | ||
6957 | +M39K<:'*CR8T;-V[<:'&$1(LL6;+@NY'E1I80-UJ0(+&@18L;-T+@V[-GSYX] | ||
6958 | +M>_;LV;-GSYX]>_;LV;-GSYX]>_;LV;-GSYX]$2)$B+!FS9HU:]:L6;-FS9H( | ||
6959 | +M:]:LP9?E5Y9?6;+@R_+KUR]\$2*L6;,&SY%[1^Z1(''O"`DQ),3<$T/BGA@2 | ||
6960 | +M0X[4(4'B"`DQ3)@P02+)U0L@0(```0($"!`@0(#$LN`-@A(__P#+^1GVZ0T0 | ||
6961 | +M($"```$"!`@0($"```$"!`@0($"```$"!`@0($"```$"!`@0($"```$"!`@0 | ||
6962 | +M($"```$"!`@0($"```$"!,B;&8[(+`MQ0T.3)DUN-&G2I$F3&TUNW+AQX\:- | ||
6963 | +M&\!:9,&7)<N-+#=NW+C1@@0)/"WPX&EQX\:>7WM^[<&W9\^>/7OV[,&WY]>> | ||
6964 | +M/7OV[-FS9\^>/7OV[-FS9\^>"'LB1%BS9LV:-6O6K%FS9LV:"/BR_,J2)4N6 | ||
6965 | +M+%E^9?F%+T*$-1&.'#ER1,P1$B1('+EW[QZ)>R1(D"!!@L0],21(,#DRH8ZO | ||
6966 | +M#HI<O=`$!`@0($"``)DQ(Q8_"\.&^?_Y\*&<'Q/@W@`!`@0($"!`@``!`@0( | ||
6967 | +M$"!`@``!`@0($(!`@``!`@0($"!`@``!`@0($"!`@``!`@0($"!`@``!`@0( | ||
6968 | +M$"!`@``!$LO4C29-;MQH<J/)C1LW;MRX<>/&C1LWLMS(D@5?EALWLK1H<2-+ | ||
6969 | +M"SQ'6K1HT0)/BR8M;J!!$V+/GCU[]NS9LV</OCWX]OS:LV?/GCU[]NSYM6?/ | ||
6970 | +MKSV_?NWY%6'/'GQK(JR)$&$-/GSXL@S(,B#+@"R_?F7Y-6#`@%^_UD18L^;( | ||
6971 | +MD2-BCAP1(X8$B2,DQ)`@08($"3$D2)`@(>8("3%,F-#JD,@5OS=`@``!`@3( | ||
6972 | +M#"`S+%CPIL3_SX</'XKY,0'N#1`@0(```0($"!`@0(```0($"!`@0(```0($ | ||
6973 | +M"!`@0(```0($"!`@0-[,`/<&"!`@0(```0($"$`@0(```0($R`P@1"3<N''C | ||
6974 | +MQHTF-VZT:'*CQ8T;36X,N'$CRX`;-[+<R'+CQHT!+5H<:=&B28L6+9JT:-&G | ||
6975 | +MQ8T;-T*@0;-GSYX]>_;L^84/WYX]^/;LV;/GUYX]>W[MV;/GUYY?OW[AVX-O | ||
6976 | +MSYX]>R+@RS+@SY\+?_X,^/4KRZ\!P(#]&9`ERYHU:XX<.7+D"(D)1TB0($&" | ||
6977 | +M!`D2)$B0($%"S)`C)$@<F<"$UJP.DUR]``($"!`@0/C-B&7!VS`(_S\^?/@0 | ||
6978 | +MR<\P$^#>``$"!`@0($"```$"!`@0($"```$"!`@0($"```$"!`@0($"```'R | ||
6979 | +MIHL)1S.```$"!`@0($"```$"!`@0($"``"%BZH:&&S>:W&ARX\:-&S=NW+C1 | ||
6980 | +M`N"-&UENW,B2Y4:6&RT&M&A!SM2$%C=NW+AQXT:+&RV:-+EQXT:($'M^[=FS | ||
6981 | +M!]^>/?CP[?FU9P^^/;_V[/FU9\^>7[_V_/JUY]>O7WM^[?FU!U^6+'\NM&ES | ||
6982 | +MX<^`7UGP_1H`[,\?8`-^K5FSYLB1(V*.,!$S0<P$$B1(D"!1AP0),4/$W"-! | ||
6983 | +MXHB8(V)H)4`BR=4G?D"`:`+";P8_;\.4*/_Q\^%')#_#3'QZ\^8-$"!`@``! | ||
6984 | +M`@0($"!`@``!`@0($"!`@``!`@0($"!`@``!`@0($"!`NCCJ\@8($"!`@``! | ||
6985 | +M`@0($"!`@``!`@0(D%BF;MQH<N-&DQLMFMQH<>/&C1M9;MRX,>#&@!M96@QH | ||
6986 | +MT8(<'PDN_$WXT^+&C1LW;MQH`K!%BR8W;MSXA6;/GCU[]N#;@V_/KSU[]NS9 | ||
6987 | +ML^?7GCU[?NWYM>?7AE^_?NWYM6?/KSU[\&49\.?"A0L7_OSZA2]"EE]_//SY | ||
6988 | +M,P`?O@@1CAPY<N0(B0E')I"H0X($"1(D2)`@<>2>&!)B2!P1PV0'""0=$KG2 | ||
6989 | +M!`3(&WXS+'AKI430R8\/'_SX&=:ERYLW0(```0($"!`@0(```0($"!`@0(`` | ||
6990 | +M`0($"!`@0(```0($"!`@0(```0)DQHP9;X```0($"!`@0(```0($"!`@,X`` | ||
6991 | +MB67J1I,;36XTN='D1I,;-V[<N''CQH`;-P;<&-"B18LC)/RYD$'%A80)1V[< | ||
6992 | +MN''CQHT;36XTN7'C!AHT:/;LV8,/'SY\>_;\VH-OSZ\]>_;\`KAGSYY?>W[] | ||
6993 | +JVO-KSZ\]>_;LV;-G#[X!?RY<N/!GP"]\:_#ARS+@SQ%@`WZM6;,F(``[ | ||
6994 | +` | ||
6995 | +end | ||
6996 | --- /dev/null | ||
6997 | +++ jpeg-6b/ltconfig.new | ||
6998 | @@ -0,0 +1,3016 @@ | ||
6999 | +#! /bin/sh | ||
7000 | + | ||
7001 | +# ltconfig - Create a system-specific libtool. | ||
7002 | +# Copyright (C) 1996-1999 Free Software Foundation, Inc. | ||
7003 | +# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 | ||
7004 | +# | ||
7005 | +# This file is free software; you can redistribute it and/or modify it | ||
7006 | +# under the terms of the GNU General Public License as published by | ||
7007 | +# the Free Software Foundation; either version 2 of the License, or | ||
7008 | +# (at your option) any later version. | ||
7009 | +# | ||
7010 | +# This program is distributed in the hope that it will be useful, but | ||
7011 | +# WITHOUT ANY WARRANTY; without even the implied warranty of | ||
7012 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
7013 | +# General Public License for more details. | ||
7014 | +# | ||
7015 | +# You should have received a copy of the GNU General Public License | ||
7016 | +# along with this program; if not, write to the Free Software | ||
7017 | +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
7018 | +# | ||
7019 | +# As a special exception to the GNU General Public License, if you | ||
7020 | +# distribute this file as part of a program that contains a | ||
7021 | +# configuration script generated by Autoconf, you may include it under | ||
7022 | +# the same distribution terms that you use for the rest of that program. | ||
7023 | + | ||
7024 | +# A lot of this script is taken from autoconf-2.10. | ||
7025 | + | ||
7026 | +# Check that we are running under the correct shell. | ||
7027 | +SHELL=${CONFIG_SHELL-/bin/sh} | ||
7028 | +echo=echo | ||
7029 | +if test "X$1" = X--no-reexec; then | ||
7030 | + # Discard the --no-reexec flag, and continue. | ||
7031 | + shift | ||
7032 | +elif test "X$1" = X--fallback-echo; then | ||
7033 | + # Avoid inline document here, it may be left over | ||
7034 | + : | ||
7035 | +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then | ||
7036 | + # Yippee, $echo works! | ||
7037 | + : | ||
7038 | +else | ||
7039 | + # Restart under the correct shell. | ||
7040 | + exec "$SHELL" "$0" --no-reexec ${1+"$@"} | ||
7041 | +fi | ||
7042 | + | ||
7043 | +if test "X$1" = X--fallback-echo; then | ||
7044 | + # used as fallback echo | ||
7045 | + shift | ||
7046 | + cat <<EOF | ||
7047 | +$* | ||
7048 | +EOF | ||
7049 | + exit 0 | ||
7050 | +fi | ||
7051 | + | ||
7052 | +# Find the correct PATH separator. Usually this is `:', but | ||
7053 | +# DJGPP uses `;' like DOS. | ||
7054 | +if test "X${PATH_SEPARATOR+set}" != "Xset"; then | ||
7055 | + UNAME=${UNAME-`uname 2>/dev/null`} | ||
7056 | + case X$UNAME in | ||
7057 | + *-DOS) PATH_SEPARATOR=';' ;; | ||
7058 | + *) PATH_SEPARATOR=':' ;; | ||
7059 | + esac | ||
7060 | +fi | ||
7061 | + | ||
7062 | +# The HP-UX ksh and POSIX shell print the target directory to stdout | ||
7063 | +# if CDPATH is set. | ||
7064 | +if test "${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi | ||
7065 | + | ||
7066 | +if test "X${echo_test_string+set}" != "Xset"; then | ||
7067 | + # find a string as large as possible, as long as the shell can cope with it | ||
7068 | + for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do | ||
7069 | + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... | ||
7070 | + if (echo_test_string="`eval $cmd`") 2>/dev/null && | ||
7071 | + echo_test_string="`eval $cmd`" && | ||
7072 | + (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null; then | ||
7073 | + break | ||
7074 | + fi | ||
7075 | + done | ||
7076 | +fi | ||
7077 | + | ||
7078 | +if test "X`($echo '\t') 2>/dev/null`" != 'X\t' || | ||
7079 | + test "X`($echo "$echo_test_string") 2>/dev/null`" != X"$echo_test_string"; then | ||
7080 | + # The Solaris, AIX, and Digital Unix default echo programs unquote | ||
7081 | + # backslashes. This makes it impossible to quote backslashes using | ||
7082 | + # echo "$something" | sed 's/\\/\\\\/g' | ||
7083 | + # | ||
7084 | + # So, first we look for a working echo in the user's PATH. | ||
7085 | + | ||
7086 | + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" | ||
7087 | + for dir in $PATH /usr/ucb; do | ||
7088 | + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && | ||
7089 | + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && | ||
7090 | + test "X`($dir/echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then | ||
7091 | + echo="$dir/echo" | ||
7092 | + break | ||
7093 | + fi | ||
7094 | + done | ||
7095 | + IFS="$save_ifs" | ||
7096 | + | ||
7097 | + if test "X$echo" = Xecho; then | ||
7098 | + # We didn't find a better echo, so look for alternatives. | ||
7099 | + if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && | ||
7100 | + test "X`(print -r "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then | ||
7101 | + # This shell has a builtin print -r that does the trick. | ||
7102 | + echo='print -r' | ||
7103 | + elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && | ||
7104 | + test "X$CONFIG_SHELL" != X/bin/ksh; then | ||
7105 | + # If we have ksh, try running ltconfig again with it. | ||
7106 | + ORIGINAL_CONFIG_SHELL="${CONFIG_SHELL-/bin/sh}" | ||
7107 | + export ORIGINAL_CONFIG_SHELL | ||
7108 | + CONFIG_SHELL=/bin/ksh | ||
7109 | + export CONFIG_SHELL | ||
7110 | + exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"} | ||
7111 | + else | ||
7112 | + # Try using printf. | ||
7113 | + echo='printf "%s\n"' | ||
7114 | + if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && | ||
7115 | + test "X`($echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then | ||
7116 | + # Cool, printf works | ||
7117 | + : | ||
7118 | + elif test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' && | ||
7119 | + test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then | ||
7120 | + CONFIG_SHELL="$ORIGINAL_CONFIG_SHELL" | ||
7121 | + export CONFIG_SHELL | ||
7122 | + SHELL="$CONFIG_SHELL" | ||
7123 | + export SHELL | ||
7124 | + echo="$CONFIG_SHELL $0 --fallback-echo" | ||
7125 | + elif test "X`("$CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' && | ||
7126 | + test "X`("$CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then | ||
7127 | + echo="$CONFIG_SHELL $0 --fallback-echo" | ||
7128 | + else | ||
7129 | + # maybe with a smaller string... | ||
7130 | + prev=: | ||
7131 | + | ||
7132 | + for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do | ||
7133 | + if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null; then | ||
7134 | + break | ||
7135 | + fi | ||
7136 | + prev="$cmd" | ||
7137 | + done | ||
7138 | + | ||
7139 | + if test "$prev" != 'sed 50q "$0"'; then | ||
7140 | + echo_test_string=`eval $prev` | ||
7141 | + export echo_test_string | ||
7142 | + exec "${ORIGINAL_CONFIG_SHELL}" "$0" ${1+"$@"} | ||
7143 | + else | ||
7144 | + # Oops. We lost completely, so just stick with echo. | ||
7145 | + echo=echo | ||
7146 | + fi | ||
7147 | + fi | ||
7148 | + fi | ||
7149 | + fi | ||
7150 | +fi | ||
7151 | + | ||
7152 | +# Sed substitution that helps us do robust quoting. It backslashifies | ||
7153 | +# metacharacters that are still active within double-quoted strings. | ||
7154 | +Xsed='sed -e s/^X//' | ||
7155 | +sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' | ||
7156 | + | ||
7157 | +# Same as above, but do not quote variable references. | ||
7158 | +double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' | ||
7159 | + | ||
7160 | +# Sed substitution to delay expansion of an escaped shell variable in a | ||
7161 | +# double_quote_subst'ed string. | ||
7162 | +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' | ||
7163 | + | ||
7164 | +# The name of this program. | ||
7165 | +progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'` | ||
7166 | + | ||
7167 | +# Constants: | ||
7168 | +PROGRAM=ltconfig | ||
7169 | +PACKAGE=libtool | ||
7170 | +VERSION=1.3.3 | ||
7171 | +TIMESTAMP=" (1.385.2.181 1999/07/02 15:49:11)" | ||
7172 | +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5' | ||
7173 | +ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS 1>&5' | ||
7174 | +rm="rm -f" | ||
7175 | + | ||
7176 | +help="Try \`$progname --help' for more information." | ||
7177 | + | ||
7178 | +# Global variables: | ||
7179 | +default_ofile=libtool | ||
7180 | +can_build_shared=yes | ||
7181 | +enable_shared=yes | ||
7182 | +# All known linkers require a `.a' archive for static linking (except M$VC, | ||
7183 | +# which needs '.lib'). | ||
7184 | +enable_static=yes | ||
7185 | +enable_fast_install=yes | ||
7186 | +enable_dlopen=unknown | ||
7187 | +enable_win32_dll=no | ||
7188 | +ltmain= | ||
7189 | +silent= | ||
7190 | +srcdir= | ||
7191 | +ac_config_guess= | ||
7192 | +ac_config_sub= | ||
7193 | +host= | ||
7194 | +nonopt= | ||
7195 | +ofile="$default_ofile" | ||
7196 | +verify_host=yes | ||
7197 | +with_gcc=no | ||
7198 | +with_gnu_ld=no | ||
7199 | +need_locks=yes | ||
7200 | +ac_ext=c | ||
7201 | +objext=o | ||
7202 | +libext=a | ||
7203 | +exeext= | ||
7204 | +cache_file= | ||
7205 | + | ||
7206 | +old_AR="$AR" | ||
7207 | +old_CC="$CC" | ||
7208 | +old_CFLAGS="$CFLAGS" | ||
7209 | +old_CPPFLAGS="$CPPFLAGS" | ||
7210 | +old_LDFLAGS="$LDFLAGS" | ||
7211 | +old_LD="$LD" | ||
7212 | +old_LN_S="$LN_S" | ||
7213 | +old_LIBS="$LIBS" | ||
7214 | +old_NM="$NM" | ||
7215 | +old_RANLIB="$RANLIB" | ||
7216 | +old_DLLTOOL="$DLLTOOL" | ||
7217 | +old_OBJDUMP="$OBJDUMP" | ||
7218 | +old_AS="$AS" | ||
7219 | + | ||
7220 | +# Parse the command line options. | ||
7221 | +args= | ||
7222 | +prev= | ||
7223 | +for option | ||
7224 | +do | ||
7225 | + case "$option" in | ||
7226 | + -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; | ||
7227 | + *) optarg= ;; | ||
7228 | + esac | ||
7229 | + | ||
7230 | + # If the previous option needs an argument, assign it. | ||
7231 | + if test -n "$prev"; then | ||
7232 | + eval "$prev=\$option" | ||
7233 | + prev= | ||
7234 | + continue | ||
7235 | + fi | ||
7236 | + | ||
7237 | + case "$option" in | ||
7238 | + --help) cat <<EOM | ||
7239 | +Usage: $progname [OPTION]... [HOST [LTMAIN]] | ||
7240 | + | ||
7241 | +Generate a system-specific libtool script. | ||
7242 | + | ||
7243 | + --debug enable verbose shell tracing | ||
7244 | + --disable-shared do not build shared libraries | ||
7245 | + --disable-static do not build static libraries | ||
7246 | + --disable-fast-install do not optimize for fast installation | ||
7247 | + --enable-dlopen enable dlopen support | ||
7248 | + --enable-win32-dll enable building dlls on win32 hosts | ||
7249 | + --help display this help and exit | ||
7250 | + --no-verify do not verify that HOST is a valid host type | ||
7251 | +-o, --output=FILE specify the output file [default=$default_ofile] | ||
7252 | + --quiet same as \`--silent' | ||
7253 | + --silent do not print informational messages | ||
7254 | + --srcdir=DIR find \`config.guess' in DIR | ||
7255 | + --version output version information and exit | ||
7256 | + --with-gcc assume that the GNU C compiler will be used | ||
7257 | + --with-gnu-ld assume that the C compiler uses the GNU linker | ||
7258 | + --disable-lock disable file locking | ||
7259 | + --cache-file=FILE configure cache file | ||
7260 | + | ||
7261 | +LTMAIN is the \`ltmain.sh' shell script fragment or \`ltmain.c' program | ||
7262 | +that provides basic libtool functionality. | ||
7263 | + | ||
7264 | +HOST is the canonical host system name [default=guessed]. | ||
7265 | +EOM | ||
7266 | + exit 0 | ||
7267 | + ;; | ||
7268 | + | ||
7269 | + --debug) | ||
7270 | + echo "$progname: enabling shell trace mode" | ||
7271 | + set -x | ||
7272 | + ;; | ||
7273 | + | ||
7274 | + --disable-shared) enable_shared=no ;; | ||
7275 | + | ||
7276 | + --disable-static) enable_static=no ;; | ||
7277 | + | ||
7278 | + --disable-fast-install) enable_fast_install=no ;; | ||
7279 | + | ||
7280 | + --enable-dlopen) enable_dlopen=yes ;; | ||
7281 | + | ||
7282 | + --enable-win32-dll) enable_win32_dll=yes ;; | ||
7283 | + | ||
7284 | + --quiet | --silent) silent=yes ;; | ||
7285 | + | ||
7286 | + --srcdir) prev=srcdir ;; | ||
7287 | + --srcdir=*) srcdir="$optarg" ;; | ||
7288 | + | ||
7289 | + --no-verify) verify_host=no ;; | ||
7290 | + | ||
7291 | + --output | -o) prev=ofile ;; | ||
7292 | + --output=*) ofile="$optarg" ;; | ||
7293 | + | ||
7294 | + --version) echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"; exit 0 ;; | ||
7295 | + | ||
7296 | + --with-gcc) with_gcc=yes ;; | ||
7297 | + --with-gnu-ld) with_gnu_ld=yes ;; | ||
7298 | + | ||
7299 | + --disable-lock) need_locks=no ;; | ||
7300 | + | ||
7301 | + --cache-file=*) cache_file="$optarg" ;; | ||
7302 | + | ||
7303 | + -*) | ||
7304 | + echo "$progname: unrecognized option \`$option'" 1>&2 | ||
7305 | + echo "$help" 1>&2 | ||
7306 | + exit 1 | ||
7307 | + ;; | ||
7308 | + | ||
7309 | + *) | ||
7310 | + if test -z "$ltmain"; then | ||
7311 | + ltmain="$option" | ||
7312 | + elif test -z "$host"; then | ||
7313 | +# This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1 | ||
7314 | +# if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then | ||
7315 | +# echo "$progname: warning \`$option' is not a valid host type" 1>&2 | ||
7316 | +# fi | ||
7317 | + host="$option" | ||
7318 | + else | ||
7319 | + echo "$progname: too many arguments" 1>&2 | ||
7320 | + echo "$help" 1>&2 | ||
7321 | + exit 1 | ||
7322 | + fi ;; | ||
7323 | + esac | ||
7324 | +done | ||
7325 | + | ||
7326 | +if test -z "$ltmain"; then | ||
7327 | + echo "$progname: you must specify a LTMAIN file" 1>&2 | ||
7328 | + echo "$help" 1>&2 | ||
7329 | + exit 1 | ||
7330 | +fi | ||
7331 | + | ||
7332 | +if test ! -f "$ltmain"; then | ||
7333 | + echo "$progname: \`$ltmain' does not exist" 1>&2 | ||
7334 | + echo "$help" 1>&2 | ||
7335 | + exit 1 | ||
7336 | +fi | ||
7337 | + | ||
7338 | +# Quote any args containing shell metacharacters. | ||
7339 | +ltconfig_args= | ||
7340 | +for arg | ||
7341 | +do | ||
7342 | + case "$arg" in | ||
7343 | + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) | ||
7344 | + ltconfig_args="$ltconfig_args '$arg'" ;; | ||
7345 | + *) ltconfig_args="$ltconfig_args $arg" ;; | ||
7346 | + esac | ||
7347 | +done | ||
7348 | + | ||
7349 | +# A relevant subset of AC_INIT. | ||
7350 | + | ||
7351 | +# File descriptor usage: | ||
7352 | +# 0 standard input | ||
7353 | +# 1 file creation | ||
7354 | +# 2 errors and warnings | ||
7355 | +# 3 some systems may open it to /dev/tty | ||
7356 | +# 4 used on the Kubota Titan | ||
7357 | +# 5 compiler messages saved in config.log | ||
7358 | +# 6 checking for... messages and results | ||
7359 | +if test "$silent" = yes; then | ||
7360 | + exec 6>/dev/null | ||
7361 | +else | ||
7362 | + exec 6>&1 | ||
7363 | +fi | ||
7364 | +exec 5>>./config.log | ||
7365 | + | ||
7366 | +# NLS nuisances. | ||
7367 | +# Only set LANG and LC_ALL to C if already set. | ||
7368 | +# These must not be set unconditionally because not all systems understand | ||
7369 | +# e.g. LANG=C (notably SCO). | ||
7370 | +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi | ||
7371 | +if test "${LANG+set}" = set; then LANG=C; export LANG; fi | ||
7372 | + | ||
7373 | +if test -n "$cache_file" && test -r "$cache_file"; then | ||
7374 | + echo "loading cache $cache_file within ltconfig" | ||
7375 | + . $cache_file | ||
7376 | +fi | ||
7377 | + | ||
7378 | +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then | ||
7379 | + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. | ||
7380 | + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then | ||
7381 | + ac_n= ac_c=' | ||
7382 | +' ac_t=' ' | ||
7383 | + else | ||
7384 | + ac_n=-n ac_c= ac_t= | ||
7385 | + fi | ||
7386 | +else | ||
7387 | + ac_n= ac_c='\c' ac_t= | ||
7388 | +fi | ||
7389 | + | ||
7390 | +if test -z "$srcdir"; then | ||
7391 | + # Assume the source directory is the same one as the path to LTMAIN. | ||
7392 | + srcdir=`$echo "X$ltmain" | $Xsed -e 's%/[^/]*$%%'` | ||
7393 | + test "$srcdir" = "$ltmain" && srcdir=. | ||
7394 | +fi | ||
7395 | + | ||
7396 | +trap "$rm conftest*; exit 1" 1 2 15 | ||
7397 | +if test "$verify_host" = yes; then | ||
7398 | + # Check for config.guess and config.sub. | ||
7399 | + ac_aux_dir= | ||
7400 | + for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do | ||
7401 | + if test -f $ac_dir/config.guess; then | ||
7402 | + ac_aux_dir=$ac_dir | ||
7403 | + break | ||
7404 | + fi | ||
7405 | + done | ||
7406 | + if test -z "$ac_aux_dir"; then | ||
7407 | + echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2 | ||
7408 | + echo "$help" 1>&2 | ||
7409 | + exit 1 | ||
7410 | + fi | ||
7411 | + ac_config_guess=$ac_aux_dir/config.guess | ||
7412 | + ac_config_sub=$ac_aux_dir/config.sub | ||
7413 | + | ||
7414 | + # Make sure we can run config.sub. | ||
7415 | + if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then : | ||
7416 | + else | ||
7417 | + echo "$progname: cannot run $ac_config_sub" 1>&2 | ||
7418 | + echo "$help" 1>&2 | ||
7419 | + exit 1 | ||
7420 | + fi | ||
7421 | + | ||
7422 | + echo $ac_n "checking host system type""... $ac_c" 1>&6 | ||
7423 | + | ||
7424 | + host_alias=$host | ||
7425 | + case "$host_alias" in | ||
7426 | + "") | ||
7427 | + if host_alias=`$SHELL $ac_config_guess`; then : | ||
7428 | + else | ||
7429 | + echo "$progname: cannot guess host type; you must specify one" 1>&2 | ||
7430 | + echo "$help" 1>&2 | ||
7431 | + exit 1 | ||
7432 | + fi ;; | ||
7433 | + esac | ||
7434 | + host=`$SHELL $ac_config_sub $host_alias` | ||
7435 | + echo "$ac_t$host" 1>&6 | ||
7436 | + | ||
7437 | + # Make sure the host verified. | ||
7438 | + test -z "$host" && exit 1 | ||
7439 | + | ||
7440 | +elif test -z "$host"; then | ||
7441 | + echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2 | ||
7442 | + echo "$help" 1>&2 | ||
7443 | + exit 1 | ||
7444 | +else | ||
7445 | + host_alias=$host | ||
7446 | +fi | ||
7447 | + | ||
7448 | +# Transform linux* to *-*-linux-gnu*, to support old configure scripts. | ||
7449 | +case "$host_os" in | ||
7450 | +linux-gnu*) ;; | ||
7451 | +linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` | ||
7452 | +esac | ||
7453 | + | ||
7454 | +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` | ||
7455 | +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` | ||
7456 | +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` | ||
7457 | + | ||
7458 | +case "$host_os" in | ||
7459 | +aix3*) | ||
7460 | + # AIX sometimes has problems with the GCC collect2 program. For some | ||
7461 | + # reason, if we set the COLLECT_NAMES environment variable, the problems | ||
7462 | + # vanish in a puff of smoke. | ||
7463 | + if test "${COLLECT_NAMES+set}" != set; then | ||
7464 | + COLLECT_NAMES= | ||
7465 | + export COLLECT_NAMES | ||
7466 | + fi | ||
7467 | + ;; | ||
7468 | +esac | ||
7469 | + | ||
7470 | +# Determine commands to create old-style static archives. | ||
7471 | +old_archive_cmds='$AR cru $oldlib$oldobjs' | ||
7472 | +old_postinstall_cmds='chmod 644 $oldlib' | ||
7473 | +old_postuninstall_cmds= | ||
7474 | + | ||
7475 | +# Set a sane default for `AR'. | ||
7476 | +test -z "$AR" && AR=ar | ||
7477 | + | ||
7478 | +# Set a sane default for `OBJDUMP'. | ||
7479 | +test -z "$OBJDUMP" && OBJDUMP=objdump | ||
7480 | + | ||
7481 | +# If RANLIB is not set, then run the test. | ||
7482 | +if test "${RANLIB+set}" != "set"; then | ||
7483 | + result=no | ||
7484 | + | ||
7485 | + echo $ac_n "checking for ranlib... $ac_c" 1>&6 | ||
7486 | + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" | ||
7487 | + for dir in $PATH; do | ||
7488 | + test -z "$dir" && dir=. | ||
7489 | + if test -f $dir/ranlib || test -f $dir/ranlib$ac_exeext; then | ||
7490 | + RANLIB="ranlib" | ||
7491 | + result="ranlib" | ||
7492 | + break | ||
7493 | + fi | ||
7494 | + done | ||
7495 | + IFS="$save_ifs" | ||
7496 | + | ||
7497 | + echo "$ac_t$result" 1>&6 | ||
7498 | +fi | ||
7499 | + | ||
7500 | +if test -n "$RANLIB"; then | ||
7501 | + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" | ||
7502 | + old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" | ||
7503 | +fi | ||
7504 | + | ||
7505 | +# Set sane defaults for `DLLTOOL', `OBJDUMP', and `AS', used on cygwin. | ||
7506 | +test -z "$DLLTOOL" && DLLTOOL=dlltool | ||
7507 | +test -z "$OBJDUMP" && OBJDUMP=objdump | ||
7508 | +test -z "$AS" && AS=as | ||
7509 | + | ||
7510 | +# Check to see if we are using GCC. | ||
7511 | +if test "$with_gcc" != yes || test -z "$CC"; then | ||
7512 | + # If CC is not set, then try to find GCC or a usable CC. | ||
7513 | + if test -z "$CC"; then | ||
7514 | + echo $ac_n "checking for gcc... $ac_c" 1>&6 | ||
7515 | + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" | ||
7516 | + for dir in $PATH; do | ||
7517 | + test -z "$dir" && dir=. | ||
7518 | + if test -f $dir/gcc || test -f $dir/gcc$ac_exeext; then | ||
7519 | + CC="gcc" | ||
7520 | + break | ||
7521 | + fi | ||
7522 | + done | ||
7523 | + IFS="$save_ifs" | ||
7524 | + | ||
7525 | + if test -n "$CC"; then | ||
7526 | + echo "$ac_t$CC" 1>&6 | ||
7527 | + else | ||
7528 | + echo "$ac_t"no 1>&6 | ||
7529 | + fi | ||
7530 | + fi | ||
7531 | + | ||
7532 | + # Not "gcc", so try "cc", rejecting "/usr/ucb/cc". | ||
7533 | + if test -z "$CC"; then | ||
7534 | + echo $ac_n "checking for cc... $ac_c" 1>&6 | ||
7535 | + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" | ||
7536 | + cc_rejected=no | ||
7537 | + for dir in $PATH; do | ||
7538 | + test -z "$dir" && dir=. | ||
7539 | + if test -f $dir/cc || test -f $dir/cc$ac_exeext; then | ||
7540 | + if test "$dir/cc" = "/usr/ucb/cc"; then | ||
7541 | + cc_rejected=yes | ||
7542 | + continue | ||
7543 | + fi | ||
7544 | + CC="cc" | ||
7545 | + break | ||
7546 | + fi | ||
7547 | + done | ||
7548 | + IFS="$save_ifs" | ||
7549 | + if test $cc_rejected = yes; then | ||
7550 | + # We found a bogon in the path, so make sure we never use it. | ||
7551 | + set dummy $CC | ||
7552 | + shift | ||
7553 | + if test $# -gt 0; then | ||
7554 | + # We chose a different compiler from the bogus one. | ||
7555 | + # However, it has the same name, so the bogon will be chosen | ||
7556 | + # first if we set CC to just the name; use the full file name. | ||
7557 | + shift | ||
7558 | + set dummy "$dir/cc" "$@" | ||
7559 | + shift | ||
7560 | + CC="$@" | ||
7561 | + fi | ||
7562 | + fi | ||
7563 | + | ||
7564 | + if test -n "$CC"; then | ||
7565 | + echo "$ac_t$CC" 1>&6 | ||
7566 | + else | ||
7567 | + echo "$ac_t"no 1>&6 | ||
7568 | + fi | ||
7569 | + | ||
7570 | + if test -z "$CC"; then | ||
7571 | + echo "$progname: error: no acceptable cc found in \$PATH" 1>&2 | ||
7572 | + exit 1 | ||
7573 | + fi | ||
7574 | + fi | ||
7575 | + | ||
7576 | + # Now see if the compiler is really GCC. | ||
7577 | + with_gcc=no | ||
7578 | + echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6 | ||
7579 | + echo "$progname:581: checking whether we are using GNU C" >&5 | ||
7580 | + | ||
7581 | + $rm conftest.c | ||
7582 | + cat > conftest.c <<EOF | ||
7583 | +#ifdef __GNUC__ | ||
7584 | + yes; | ||
7585 | +#endif | ||
7586 | +EOF | ||
7587 | + if { ac_try='${CC-cc} -E conftest.c'; { (eval echo $progname:589: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then | ||
7588 | + with_gcc=yes | ||
7589 | + fi | ||
7590 | + $rm conftest.c | ||
7591 | + echo "$ac_t$with_gcc" 1>&6 | ||
7592 | +fi | ||
7593 | + | ||
7594 | +# Allow CC to be a program name with arguments. | ||
7595 | +set dummy $CC | ||
7596 | +compiler="$2" | ||
7597 | + | ||
7598 | +echo $ac_n "checking for object suffix... $ac_c" 1>&6 | ||
7599 | +$rm conftest* | ||
7600 | +echo 'int i = 1;' > conftest.c | ||
7601 | +echo "$progname:603: checking for object suffix" >& 5 | ||
7602 | +if { (eval echo $progname:604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; }; then | ||
7603 | + # Append any warnings to the config.log. | ||
7604 | + cat conftest.err 1>&5 | ||
7605 | + | ||
7606 | + for ac_file in conftest.*; do | ||
7607 | + case $ac_file in | ||
7608 | + *.c) ;; | ||
7609 | + *) objext=`echo $ac_file | sed -e s/conftest.//` ;; | ||
7610 | + esac | ||
7611 | + done | ||
7612 | +else | ||
7613 | + cat conftest.err 1>&5 | ||
7614 | + echo "$progname: failed program was:" >&5 | ||
7615 | + cat conftest.c >&5 | ||
7616 | +fi | ||
7617 | +$rm conftest* | ||
7618 | +echo "$ac_t$objext" 1>&6 | ||
7619 | + | ||
7620 | +echo $ac_n "checking for executable suffix... $ac_c" 1>&6 | ||
7621 | +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then | ||
7622 | + echo $ac_n "(cached) $ac_c" 1>&6 | ||
7623 | +else | ||
7624 | + ac_cv_exeext="no" | ||
7625 | + $rm conftest* | ||
7626 | + echo 'main () { return 0; }' > conftest.c | ||
7627 | + echo "$progname:629: checking for executable suffix" >& 5 | ||
7628 | + if { (eval echo $progname:630: \"$ac_link\") 1>&5; (eval $ac_link) 2>conftest.err; }; then | ||
7629 | + # Append any warnings to the config.log. | ||
7630 | + cat conftest.err 1>&5 | ||
7631 | + | ||
7632 | + for ac_file in conftest.*; do | ||
7633 | + case $ac_file in | ||
7634 | + *.c | *.err | *.$objext ) ;; | ||
7635 | + *) ac_cv_exeext=.`echo $ac_file | sed -e s/conftest.//` ;; | ||
7636 | + esac | ||
7637 | + done | ||
7638 | + else | ||
7639 | + cat conftest.err 1>&5 | ||
7640 | + echo "$progname: failed program was:" >&5 | ||
7641 | + cat conftest.c >&5 | ||
7642 | + fi | ||
7643 | + $rm conftest* | ||
7644 | +fi | ||
7645 | +if test "X$ac_cv_exeext" = Xno; then | ||
7646 | + exeext="" | ||
7647 | +else | ||
7648 | + exeext="$ac_cv_exeext" | ||
7649 | +fi | ||
7650 | +echo "$ac_t$ac_cv_exeext" 1>&6 | ||
7651 | + | ||
7652 | +echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6 | ||
7653 | +pic_flag= | ||
7654 | +special_shlib_compile_flags= | ||
7655 | +wl= | ||
7656 | +link_static_flag= | ||
7657 | +no_builtin_flag= | ||
7658 | + | ||
7659 | +if test "$with_gcc" = yes; then | ||
7660 | + wl='-Wl,' | ||
7661 | + link_static_flag='-static' | ||
7662 | + | ||
7663 | + case "$host_os" in | ||
7664 | + beos* | irix5* | irix6* | osf3* | osf4*) | ||
7665 | + # PIC is the default for these OSes. | ||
7666 | + ;; | ||
7667 | + aix*) | ||
7668 | + # Below there is a dirty hack to force normal static linking with -ldl | ||
7669 | + # The problem is because libdl dynamically linked with both libc and | ||
7670 | + # libC (AIX C++ library), which obviously doesn't included in libraries | ||
7671 | + # list by gcc. This cause undefined symbols with -static flags. | ||
7672 | + # This hack allows C programs to be linked with "-static -ldl", but | ||
7673 | + # we not sure about C++ programs. | ||
7674 | + link_static_flag="$link_static_flag ${wl}-lC" | ||
7675 | + ;; | ||
7676 | + cygwin* | mingw* | os2*) | ||
7677 | + # We can build DLLs from non-PIC. | ||
7678 | + ;; | ||
7679 | + amigaos*) | ||
7680 | + # FIXME: we need at least 68020 code to build shared libraries, but | ||
7681 | + # adding the `-m68020' flag to GCC prevents building anything better, | ||
7682 | + # like `-m68040'. | ||
7683 | + pic_flag='-m68020 -resident32 -malways-restore-a4' | ||
7684 | + ;; | ||
7685 | + sysv4*MP*) | ||
7686 | + if test -d /usr/nec; then | ||
7687 | + pic_flag=-Kconform_pic | ||
7688 | + fi | ||
7689 | + ;; | ||
7690 | + *) | ||
7691 | + pic_flag='-fPIC' | ||
7692 | + ;; | ||
7693 | + esac | ||
7694 | +else | ||
7695 | + # PORTME Check for PIC flags for the system compiler. | ||
7696 | + case "$host_os" in | ||
7697 | + aix3* | aix4*) | ||
7698 | + # All AIX code is PIC. | ||
7699 | + link_static_flag='-bnso -bI:/lib/syscalls.exp' | ||
7700 | + ;; | ||
7701 | + | ||
7702 | + hpux9* | hpux10* | hpux11*) | ||
7703 | + # Is there a better link_static_flag that works with the bundled CC? | ||
7704 | + wl='-Wl,' | ||
7705 | + link_static_flag="${wl}-a ${wl}archive" | ||
7706 | + pic_flag='+Z' | ||
7707 | + ;; | ||
7708 | + | ||
7709 | + irix5* | irix6*) | ||
7710 | + wl='-Wl,' | ||
7711 | + link_static_flag='-non_shared' | ||
7712 | + # PIC (with -KPIC) is the default. | ||
7713 | + ;; | ||
7714 | + | ||
7715 | + cygwin* | mingw* | os2*) | ||
7716 | + # We can build DLLs from non-PIC. | ||
7717 | + ;; | ||
7718 | + | ||
7719 | + osf3* | osf4*) | ||
7720 | + # All OSF/1 code is PIC. | ||
7721 | + wl='-Wl,' | ||
7722 | + link_static_flag='-non_shared' | ||
7723 | + ;; | ||
7724 | + | ||
7725 | + sco3.2v5*) | ||
7726 | + pic_flag='-Kpic' | ||
7727 | + link_static_flag='-dn' | ||
7728 | + special_shlib_compile_flags='-belf' | ||
7729 | + ;; | ||
7730 | + | ||
7731 | + solaris*) | ||
7732 | + pic_flag='-KPIC' | ||
7733 | + link_static_flag='-Bstatic' | ||
7734 | + wl='-Wl,' | ||
7735 | + ;; | ||
7736 | + | ||
7737 | + sunos4*) | ||
7738 | + pic_flag='-PIC' | ||
7739 | + link_static_flag='-Bstatic' | ||
7740 | + wl='-Qoption ld ' | ||
7741 | + ;; | ||
7742 | + | ||
7743 | + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) | ||
7744 | + pic_flag='-KPIC' | ||
7745 | + link_static_flag='-Bstatic' | ||
7746 | + wl='-Wl,' | ||
7747 | + ;; | ||
7748 | + | ||
7749 | + uts4*) | ||
7750 | + pic_flag='-pic' | ||
7751 | + link_static_flag='-Bstatic' | ||
7752 | + ;; | ||
7753 | + sysv4*MP*) | ||
7754 | + if test -d /usr/nec ;then | ||
7755 | + pic_flag='-Kconform_pic' | ||
7756 | + link_static_flag='-Bstatic' | ||
7757 | + fi | ||
7758 | + ;; | ||
7759 | + *) | ||
7760 | + can_build_shared=no | ||
7761 | + ;; | ||
7762 | + esac | ||
7763 | +fi | ||
7764 | + | ||
7765 | +if test -n "$pic_flag"; then | ||
7766 | + echo "$ac_t$pic_flag" 1>&6 | ||
7767 | + | ||
7768 | + # Check to make sure the pic_flag actually works. | ||
7769 | + echo $ac_n "checking if $compiler PIC flag $pic_flag works... $ac_c" 1>&6 | ||
7770 | + $rm conftest* | ||
7771 | + echo "int some_variable = 0;" > conftest.c | ||
7772 | + save_CFLAGS="$CFLAGS" | ||
7773 | + CFLAGS="$CFLAGS $pic_flag -DPIC" | ||
7774 | + echo "$progname:776: checking if $compiler PIC flag $pic_flag works" >&5 | ||
7775 | + if { (eval echo $progname:777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then | ||
7776 | + # Append any warnings to the config.log. | ||
7777 | + cat conftest.err 1>&5 | ||
7778 | + | ||
7779 | + case "$host_os" in | ||
7780 | + hpux9* | hpux10* | hpux11*) | ||
7781 | + # On HP-UX, both CC and GCC only warn that PIC is supported... then they | ||
7782 | + # create non-PIC objects. So, if there were any warnings, we assume that | ||
7783 | + # PIC is not supported. | ||
7784 | + if test -s conftest.err; then | ||
7785 | + echo "$ac_t"no 1>&6 | ||
7786 | + can_build_shared=no | ||
7787 | + pic_flag= | ||
7788 | + else | ||
7789 | + echo "$ac_t"yes 1>&6 | ||
7790 | + pic_flag=" $pic_flag" | ||
7791 | + fi | ||
7792 | + ;; | ||
7793 | + *) | ||
7794 | + echo "$ac_t"yes 1>&6 | ||
7795 | + pic_flag=" $pic_flag" | ||
7796 | + ;; | ||
7797 | + esac | ||
7798 | + else | ||
7799 | + # Append any errors to the config.log. | ||
7800 | + cat conftest.err 1>&5 | ||
7801 | + can_build_shared=no | ||
7802 | + pic_flag= | ||
7803 | + echo "$ac_t"no 1>&6 | ||
7804 | + fi | ||
7805 | + CFLAGS="$save_CFLAGS" | ||
7806 | + $rm conftest* | ||
7807 | +else | ||
7808 | + echo "$ac_t"none 1>&6 | ||
7809 | +fi | ||
7810 | + | ||
7811 | +# Check to see if options -o and -c are simultaneously supported by compiler | ||
7812 | +echo $ac_n "checking if $compiler supports -c -o file.o... $ac_c" 1>&6 | ||
7813 | +$rm -r conftest 2>/dev/null | ||
7814 | +mkdir conftest | ||
7815 | +cd conftest | ||
7816 | +$rm conftest* | ||
7817 | +echo "int some_variable = 0;" > conftest.c | ||
7818 | +mkdir out | ||
7819 | +# According to Tom Tromey, Ian Lance Taylor reported there are C compilers | ||
7820 | +# that will create temporary files in the current directory regardless of | ||
7821 | +# the output directory. Thus, making CWD read-only will cause this test | ||
7822 | +# to fail, enabling locking or at least warning the user not to do parallel | ||
7823 | +# builds. | ||
7824 | +chmod -w . | ||
7825 | +save_CFLAGS="$CFLAGS" | ||
7826 | +CFLAGS="$CFLAGS -o out/conftest2.o" | ||
7827 | +echo "$progname:829: checking if $compiler supports -c -o file.o" >&5 | ||
7828 | +if { (eval echo $progname:830: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.o; then | ||
7829 | + | ||
7830 | + # The compiler can only warn and ignore the option if not recognized | ||
7831 | + # So say no if there are warnings | ||
7832 | + if test -s out/conftest.err; then | ||
7833 | + echo "$ac_t"no 1>&6 | ||
7834 | + compiler_c_o=no | ||
7835 | + else | ||
7836 | + echo "$ac_t"yes 1>&6 | ||
7837 | + compiler_c_o=yes | ||
7838 | + fi | ||
7839 | +else | ||
7840 | + # Append any errors to the config.log. | ||
7841 | + cat out/conftest.err 1>&5 | ||
7842 | + compiler_c_o=no | ||
7843 | + echo "$ac_t"no 1>&6 | ||
7844 | +fi | ||
7845 | +CFLAGS="$save_CFLAGS" | ||
7846 | +chmod u+w . | ||
7847 | +$rm conftest* out/* | ||
7848 | +rmdir out | ||
7849 | +cd .. | ||
7850 | +rmdir conftest | ||
7851 | +$rm -r conftest 2>/dev/null | ||
7852 | + | ||
7853 | +if test x"$compiler_c_o" = x"yes"; then | ||
7854 | + # Check to see if we can write to a .lo | ||
7855 | + echo $ac_n "checking if $compiler supports -c -o file.lo... $ac_c" 1>&6 | ||
7856 | + $rm conftest* | ||
7857 | + echo "int some_variable = 0;" > conftest.c | ||
7858 | + save_CFLAGS="$CFLAGS" | ||
7859 | + CFLAGS="$CFLAGS -c -o conftest.lo" | ||
7860 | + echo "$progname:862: checking if $compiler supports -c -o file.lo" >&5 | ||
7861 | +if { (eval echo $progname:863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; then | ||
7862 | + | ||
7863 | + # The compiler can only warn and ignore the option if not recognized | ||
7864 | + # So say no if there are warnings | ||
7865 | + if test -s conftest.err; then | ||
7866 | + echo "$ac_t"no 1>&6 | ||
7867 | + compiler_o_lo=no | ||
7868 | + else | ||
7869 | + echo "$ac_t"yes 1>&6 | ||
7870 | + compiler_o_lo=yes | ||
7871 | + fi | ||
7872 | + else | ||
7873 | + # Append any errors to the config.log. | ||
7874 | + cat conftest.err 1>&5 | ||
7875 | + compiler_o_lo=no | ||
7876 | + echo "$ac_t"no 1>&6 | ||
7877 | + fi | ||
7878 | + CFLAGS="$save_CFLAGS" | ||
7879 | + $rm conftest* | ||
7880 | +else | ||
7881 | + compiler_o_lo=no | ||
7882 | +fi | ||
7883 | + | ||
7884 | +# Check to see if we can do hard links to lock some files if needed | ||
7885 | +hard_links="nottested" | ||
7886 | +if test "$compiler_c_o" = no && test "$need_locks" != no; then | ||
7887 | + # do not overwrite the value of need_locks provided by the user | ||
7888 | + echo $ac_n "checking if we can lock with hard links... $ac_c" 1>&6 | ||
7889 | + hard_links=yes | ||
7890 | + $rm conftest* | ||
7891 | + ln conftest.a conftest.b 2>/dev/null && hard_links=no | ||
7892 | + touch conftest.a | ||
7893 | + ln conftest.a conftest.b 2>&5 || hard_links=no | ||
7894 | + ln conftest.a conftest.b 2>/dev/null && hard_links=no | ||
7895 | + echo "$ac_t$hard_links" 1>&6 | ||
7896 | + $rm conftest* | ||
7897 | + if test "$hard_links" = no; then | ||
7898 | + echo "*** WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2 | ||
7899 | + need_locks=warn | ||
7900 | + fi | ||
7901 | +else | ||
7902 | + need_locks=no | ||
7903 | +fi | ||
7904 | + | ||
7905 | +if test "$with_gcc" = yes; then | ||
7906 | + # Check to see if options -fno-rtti -fno-exceptions are supported by compiler | ||
7907 | + echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions ... $ac_c" 1>&6 | ||
7908 | + $rm conftest* | ||
7909 | + echo "int some_variable = 0;" > conftest.c | ||
7910 | + save_CFLAGS="$CFLAGS" | ||
7911 | + CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.c" | ||
7912 | + echo "$progname:914: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 | ||
7913 | + if { (eval echo $progname:915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then | ||
7914 | + | ||
7915 | + # The compiler can only warn and ignore the option if not recognized | ||
7916 | + # So say no if there are warnings | ||
7917 | + if test -s conftest.err; then | ||
7918 | + echo "$ac_t"no 1>&6 | ||
7919 | + compiler_rtti_exceptions=no | ||
7920 | + else | ||
7921 | + echo "$ac_t"yes 1>&6 | ||
7922 | + compiler_rtti_exceptions=yes | ||
7923 | + fi | ||
7924 | + else | ||
7925 | + # Append any errors to the config.log. | ||
7926 | + cat conftest.err 1>&5 | ||
7927 | + compiler_rtti_exceptions=no | ||
7928 | + echo "$ac_t"no 1>&6 | ||
7929 | + fi | ||
7930 | + CFLAGS="$save_CFLAGS" | ||
7931 | + $rm conftest* | ||
7932 | + | ||
7933 | + if test "$compiler_rtti_exceptions" = "yes"; then | ||
7934 | + no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' | ||
7935 | + else | ||
7936 | + no_builtin_flag=' -fno-builtin' | ||
7937 | + fi | ||
7938 | + | ||
7939 | +fi | ||
7940 | + | ||
7941 | +# Check for any special shared library compilation flags. | ||
7942 | +if test -n "$special_shlib_compile_flags"; then | ||
7943 | + echo "$progname: warning: \`$CC' requires \`$special_shlib_compile_flags' to build shared libraries" 1>&2 | ||
7944 | + if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$special_shlib_compile_flags[ ]" >/dev/null; then : | ||
7945 | + else | ||
7946 | + echo "$progname: add \`$special_shlib_compile_flags' to the CC or CFLAGS env variable and reconfigure" 1>&2 | ||
7947 | + can_build_shared=no | ||
7948 | + fi | ||
7949 | +fi | ||
7950 | + | ||
7951 | +echo $ac_n "checking if $compiler static flag $link_static_flag works... $ac_c" 1>&6 | ||
7952 | +$rm conftest* | ||
7953 | +echo 'main(){return(0);}' > conftest.c | ||
7954 | +save_LDFLAGS="$LDFLAGS" | ||
7955 | +LDFLAGS="$LDFLAGS $link_static_flag" | ||
7956 | +echo "$progname:958: checking if $compiler static flag $link_static_flag works" >&5 | ||
7957 | +if { (eval echo $progname:959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then | ||
7958 | + echo "$ac_t$link_static_flag" 1>&6 | ||
7959 | +else | ||
7960 | + echo "$ac_t"none 1>&6 | ||
7961 | + link_static_flag= | ||
7962 | +fi | ||
7963 | +LDFLAGS="$save_LDFLAGS" | ||
7964 | +$rm conftest* | ||
7965 | + | ||
7966 | +if test -z "$LN_S"; then | ||
7967 | + # Check to see if we can use ln -s, or we need hard links. | ||
7968 | + echo $ac_n "checking whether ln -s works... $ac_c" 1>&6 | ||
7969 | + $rm conftest.dat | ||
7970 | + if ln -s X conftest.dat 2>/dev/null; then | ||
7971 | + $rm conftest.dat | ||
7972 | + LN_S="ln -s" | ||
7973 | + else | ||
7974 | + LN_S=ln | ||
7975 | + fi | ||
7976 | + if test "$LN_S" = "ln -s"; then | ||
7977 | + echo "$ac_t"yes 1>&6 | ||
7978 | + else | ||
7979 | + echo "$ac_t"no 1>&6 | ||
7980 | + fi | ||
7981 | +fi | ||
7982 | + | ||
7983 | +# Make sure LD is an absolute path. | ||
7984 | +if test -z "$LD"; then | ||
7985 | + ac_prog=ld | ||
7986 | + if test "$with_gcc" = yes; then | ||
7987 | + # Check if gcc -print-prog-name=ld gives a path. | ||
7988 | + echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6 | ||
7989 | + echo "$progname:991: checking for ld used by GCC" >&5 | ||
7990 | + ac_prog=`($CC -print-prog-name=ld) 2>&5` | ||
7991 | + case "$ac_prog" in | ||
7992 | + # Accept absolute paths. | ||
7993 | + [\\/]* | [A-Za-z]:[\\/]*) | ||
7994 | + re_direlt='/[^/][^/]*/\.\./' | ||
7995 | + # Canonicalize the path of ld | ||
7996 | + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` | ||
7997 | + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do | ||
7998 | + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` | ||
7999 | + done | ||
8000 | + test -z "$LD" && LD="$ac_prog" | ||
8001 | + ;; | ||
8002 | + "") | ||
8003 | + # If it fails, then pretend we are not using GCC. | ||
8004 | + ac_prog=ld | ||
8005 | + ;; | ||
8006 | + *) | ||
8007 | + # If it is relative, then search for the first ld in PATH. | ||
8008 | + with_gnu_ld=unknown | ||
8009 | + ;; | ||
8010 | + esac | ||
8011 | + elif test "$with_gnu_ld" = yes; then | ||
8012 | + echo $ac_n "checking for GNU ld... $ac_c" 1>&6 | ||
8013 | + echo "$progname:1015: checking for GNU ld" >&5 | ||
8014 | + else | ||
8015 | + echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 | ||
8016 | + echo "$progname:1018: checking for non-GNU ld" >&5 | ||
8017 | + fi | ||
8018 | + | ||
8019 | + if test -z "$LD"; then | ||
8020 | + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" | ||
8021 | + for ac_dir in $PATH; do | ||
8022 | + test -z "$ac_dir" && ac_dir=. | ||
8023 | + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then | ||
8024 | + LD="$ac_dir/$ac_prog" | ||
8025 | + # Check to see if the program is GNU ld. I'd rather use --version, | ||
8026 | + # but apparently some GNU ld's only accept -v. | ||
8027 | + # Break only if it was the GNU/non-GNU ld that we prefer. | ||
8028 | + if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then | ||
8029 | + test "$with_gnu_ld" != no && break | ||
8030 | + else | ||
8031 | + test "$with_gnu_ld" != yes && break | ||
8032 | + fi | ||
8033 | + fi | ||
8034 | + done | ||
8035 | + IFS="$ac_save_ifs" | ||
8036 | + fi | ||
8037 | + | ||
8038 | + if test -n "$LD"; then | ||
8039 | + echo "$ac_t$LD" 1>&6 | ||
8040 | + else | ||
8041 | + echo "$ac_t"no 1>&6 | ||
8042 | + fi | ||
8043 | + | ||
8044 | + if test -z "$LD"; then | ||
8045 | + echo "$progname: error: no acceptable ld found in \$PATH" 1>&2 | ||
8046 | + exit 1 | ||
8047 | + fi | ||
8048 | +fi | ||
8049 | + | ||
8050 | +# Check to see if it really is or is not GNU ld. | ||
8051 | +echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6 | ||
8052 | +# I'd rather use --version here, but apparently some GNU ld's only accept -v. | ||
8053 | +if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then | ||
8054 | + with_gnu_ld=yes | ||
8055 | +else | ||
8056 | + with_gnu_ld=no | ||
8057 | +fi | ||
8058 | +echo "$ac_t$with_gnu_ld" 1>&6 | ||
8059 | + | ||
8060 | +# See if the linker supports building shared libraries. | ||
8061 | +echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6 | ||
8062 | + | ||
8063 | +allow_undefined_flag= | ||
8064 | +no_undefined_flag= | ||
8065 | +need_lib_prefix=unknown | ||
8066 | +need_version=unknown | ||
8067 | +# when you set need_version to no, make sure it does not cause -set_version | ||
8068 | +# flags to be left without arguments | ||
8069 | +archive_cmds= | ||
8070 | +archive_expsym_cmds= | ||
8071 | +old_archive_from_new_cmds= | ||
8072 | +export_dynamic_flag_spec= | ||
8073 | +whole_archive_flag_spec= | ||
8074 | +thread_safe_flag_spec= | ||
8075 | +hardcode_libdir_flag_spec= | ||
8076 | +hardcode_libdir_separator= | ||
8077 | +hardcode_direct=no | ||
8078 | +hardcode_minus_L=no | ||
8079 | +hardcode_shlibpath_var=unsupported | ||
8080 | +runpath_var= | ||
8081 | +always_export_symbols=no | ||
8082 | +export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' | ||
8083 | +# include_expsyms should be a list of space-separated symbols to be *always* | ||
8084 | +# included in the symbol list | ||
8085 | +include_expsyms= | ||
8086 | +# exclude_expsyms can be an egrep regular expression of symbols to exclude | ||
8087 | +# it will be wrapped by ` (' and `)$', so one must not match beginning or | ||
8088 | +# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', | ||
8089 | +# as well as any symbol that contains `d'. | ||
8090 | +exclude_expsyms="_GLOBAL_OFFSET_TABLE_" | ||
8091 | +# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out | ||
8092 | +# platforms (ab)use it in PIC code, but their linkers get confused if | ||
8093 | +# the symbol is explicitly referenced. Since portable code cannot | ||
8094 | +# rely on this symbol name, it's probably fine to never include it in | ||
8095 | +# preloaded symbol tables. | ||
8096 | + | ||
8097 | +case "$host_os" in | ||
8098 | +cygwin* | mingw*) | ||
8099 | + # FIXME: the MSVC++ port hasn't been tested in a loooong time | ||
8100 | + # When not using gcc, we currently assume that we are using | ||
8101 | + # Microsoft Visual C++. | ||
8102 | + if test "$with_gcc" != yes; then | ||
8103 | + with_gnu_ld=no | ||
8104 | + fi | ||
8105 | + ;; | ||
8106 | + | ||
8107 | +esac | ||
8108 | + | ||
8109 | +ld_shlibs=yes | ||
8110 | +if test "$with_gnu_ld" = yes; then | ||
8111 | + # If archive_cmds runs LD, not CC, wlarc should be empty | ||
8112 | + wlarc='${wl}' | ||
8113 | + | ||
8114 | + # See if GNU ld supports shared libraries. | ||
8115 | + case "$host_os" in | ||
8116 | + aix3* | aix4*) | ||
8117 | + # On AIX, the GNU linker is very broken | ||
8118 | + ld_shlibs=no | ||
8119 | + cat <<EOF 1>&2 | ||
8120 | + | ||
8121 | +*** Warning: the GNU linker, at least up to release 2.9.1, is reported | ||
8122 | +*** to be unable to reliably create shared libraries on AIX. | ||
8123 | +*** Therefore, libtool is disabling shared libraries support. If you | ||
8124 | +*** really care for shared libraries, you may want to modify your PATH | ||
8125 | +*** so that a non-GNU linker is found, and then restart. | ||
8126 | + | ||
8127 | +EOF | ||
8128 | + ;; | ||
8129 | + | ||
8130 | + amigaos*) | ||
8131 | + archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)' | ||
8132 | + hardcode_libdir_flag_spec='-L$libdir' | ||
8133 | + hardcode_minus_L=yes | ||
8134 | + | ||
8135 | + # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports | ||
8136 | + # that the semantics of dynamic libraries on AmigaOS, at least up | ||
8137 | + # to version 4, is to share data among multiple programs linked | ||
8138 | + # with the same dynamic library. Since this doesn't match the | ||
8139 | + # behavior of shared libraries on other platforms, we can use | ||
8140 | + # them. | ||
8141 | + ld_shlibs=no | ||
8142 | + ;; | ||
8143 | + | ||
8144 | + beos*) | ||
8145 | + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then | ||
8146 | + allow_undefined_flag=unsupported | ||
8147 | + # Joseph Beckenbach <jrb3@best.com> says some releases of gcc | ||
8148 | + # support --undefined. This deserves some investigation. FIXME | ||
8149 | + archive_cmds='$CC -nostart $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' | ||
8150 | + else | ||
8151 | + ld_shlibs=no | ||
8152 | + fi | ||
8153 | + ;; | ||
8154 | + | ||
8155 | + cygwin* | mingw*) | ||
8156 | + # hardcode_libdir_flag_spec is actually meaningless, as there is | ||
8157 | + # no search path for DLLs. | ||
8158 | + hardcode_libdir_flag_spec='-L$libdir' | ||
8159 | + allow_undefined_flag=unsupported | ||
8160 | + always_export_symbols=yes | ||
8161 | + | ||
8162 | + # Extract the symbol export list from an `--export-all' def file, | ||
8163 | + # then regenerate the def file from the symbol export list, so that | ||
8164 | + # the compiled dll only exports the symbol export list. | ||
8165 | + export_symbols_cmds='test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~ | ||
8166 | + test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~ | ||
8167 | + $DLLTOOL --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs $convenience~ | ||
8168 | + sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]* ; *//" < $objdir/$soname-def > $export_symbols' | ||
8169 | + | ||
8170 | + archive_expsym_cmds='echo EXPORTS > $objdir/$soname-def~ | ||
8171 | + _lt_hint=1; | ||
8172 | + for symbol in `cat $export_symbols`; do | ||
8173 | + echo " \$symbol @ \$_lt_hint ; " >> $objdir/$soname-def; | ||
8174 | + _lt_hint=`expr 1 + \$_lt_hint`; | ||
8175 | + done~ | ||
8176 | + test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~ | ||
8177 | + test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~ | ||
8178 | + $CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~ | ||
8179 | + $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ | ||
8180 | + $CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~ | ||
8181 | + $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ | ||
8182 | + $CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts' | ||
8183 | + | ||
8184 | + old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a' | ||
8185 | + ;; | ||
8186 | + | ||
8187 | + netbsd*) | ||
8188 | + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then | ||
8189 | + archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' | ||
8190 | + archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' | ||
8191 | + else | ||
8192 | + archive_cmds='$LD -Bshareable $libobjs $deplibs $linkopts -o $lib' | ||
8193 | + # can we support soname and/or expsyms with a.out? -oliva | ||
8194 | + fi | ||
8195 | + ;; | ||
8196 | + | ||
8197 | + solaris*) | ||
8198 | + if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then | ||
8199 | + ld_shlibs=no | ||
8200 | + cat <<EOF 1>&2 | ||
8201 | + | ||
8202 | +*** Warning: The releases 2.8.* of the GNU linker cannot reliably | ||
8203 | +*** create shared libraries on Solaris systems. Therefore, libtool | ||
8204 | +*** is disabling shared libraries support. We urge you to upgrade GNU | ||
8205 | +*** binutils to release 2.9.1 or newer. Another option is to modify | ||
8206 | +*** your PATH or compiler configuration so that the native linker is | ||
8207 | +*** used, and then restart. | ||
8208 | + | ||
8209 | +EOF | ||
8210 | + elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then | ||
8211 | + archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' | ||
8212 | + archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' | ||
8213 | + else | ||
8214 | + ld_shlibs=no | ||
8215 | + fi | ||
8216 | + ;; | ||
8217 | + | ||
8218 | + sunos4*) | ||
8219 | + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linkopts' | ||
8220 | + wlarc= | ||
8221 | + hardcode_direct=yes | ||
8222 | + hardcode_shlibpath_var=no | ||
8223 | + ;; | ||
8224 | + | ||
8225 | + *) | ||
8226 | + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then | ||
8227 | + archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' | ||
8228 | + archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' | ||
8229 | + else | ||
8230 | + ld_shlibs=no | ||
8231 | + fi | ||
8232 | + ;; | ||
8233 | + esac | ||
8234 | + | ||
8235 | + if test "$ld_shlibs" = yes; then | ||
8236 | + runpath_var=LD_RUN_PATH | ||
8237 | + hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' | ||
8238 | + export_dynamic_flag_spec='${wl}--export-dynamic' | ||
8239 | + case $host_os in | ||
8240 | + cygwin* | mingw*) | ||
8241 | + # dlltool doesn't understand --whole-archive et. al. | ||
8242 | + whole_archive_flag_spec= | ||
8243 | + ;; | ||
8244 | + *) | ||
8245 | + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' | ||
8246 | + ;; | ||
8247 | + esac | ||
8248 | + fi | ||
8249 | +else | ||
8250 | + # PORTME fill in a description of your system's linker (not GNU ld) | ||
8251 | + case "$host_os" in | ||
8252 | + aix3*) | ||
8253 | + allow_undefined_flag=unsupported | ||
8254 | + always_export_symbols=yes | ||
8255 | + archive_expsym_cmds='$LD -o $objdir/$soname $libobjs $deplibs $linkopts -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname' | ||
8256 | + # Note: this linker hardcodes the directories in LIBPATH if there | ||
8257 | + # are no directories specified by -L. | ||
8258 | + hardcode_minus_L=yes | ||
8259 | + if test "$with_gcc" = yes && test -z "$link_static_flag"; then | ||
8260 | + # Neither direct hardcoding nor static linking is supported with a | ||
8261 | + # broken collect2. | ||
8262 | + hardcode_direct=unsupported | ||
8263 | + fi | ||
8264 | + ;; | ||
8265 | + | ||
8266 | + aix4*) | ||
8267 | + hardcode_libdir_flag_spec='${wl}-b ${wl}nolibpath ${wl}-b ${wl}libpath:$libdir:/usr/lib:/lib' | ||
8268 | + hardcode_libdir_separator=':' | ||
8269 | + if test "$with_gcc" = yes; then | ||
8270 | + collect2name=`${CC} -print-prog-name=collect2` | ||
8271 | + if test -f "$collect2name" && \ | ||
8272 | + strings "$collect2name" | grep resolve_lib_name >/dev/null | ||
8273 | + then | ||
8274 | + # We have reworked collect2 | ||
8275 | + hardcode_direct=yes | ||
8276 | + else | ||
8277 | + # We have old collect2 | ||
8278 | + hardcode_direct=unsupported | ||
8279 | + # It fails to find uninstalled libraries when the uninstalled | ||
8280 | + # path is not listed in the libpath. Setting hardcode_minus_L | ||
8281 | + # to unsupported forces relinking | ||
8282 | + hardcode_minus_L=yes | ||
8283 | + hardcode_libdir_flag_spec='-L$libdir' | ||
8284 | + hardcode_libdir_separator= | ||
8285 | + fi | ||
8286 | + shared_flag='-shared' | ||
8287 | + else | ||
8288 | + shared_flag='${wl}-bM:SRE' | ||
8289 | + hardcode_direct=yes | ||
8290 | + fi | ||
8291 | + allow_undefined_flag=' ${wl}-berok' | ||
8292 | + archive_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bexpall ${wl}-bnoentry${allow_undefined_flag}' | ||
8293 | + archive_expsym_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}' | ||
8294 | + case "$host_os" in aix4.[01]|aix4.[01].*) | ||
8295 | + # According to Greg Wooledge, -bexpall is only supported from AIX 4.2 on | ||
8296 | + always_export_symbols=yes ;; | ||
8297 | + esac | ||
8298 | + ;; | ||
8299 | + | ||
8300 | + amigaos*) | ||
8301 | + archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)' | ||
8302 | + hardcode_libdir_flag_spec='-L$libdir' | ||
8303 | + hardcode_minus_L=yes | ||
8304 | + # see comment about different semantics on the GNU ld section | ||
8305 | + ld_shlibs=no | ||
8306 | + ;; | ||
8307 | + | ||
8308 | + cygwin* | mingw*) | ||
8309 | + # When not using gcc, we currently assume that we are using | ||
8310 | + # Microsoft Visual C++. | ||
8311 | + # hardcode_libdir_flag_spec is actually meaningless, as there is | ||
8312 | + # no search path for DLLs. | ||
8313 | + hardcode_libdir_flag_spec=' ' | ||
8314 | + allow_undefined_flag=unsupported | ||
8315 | + # Tell ltmain to make .lib files, not .a files. | ||
8316 | + libext=lib | ||
8317 | + # FIXME: Setting linknames here is a bad hack. | ||
8318 | + archive_cmds='$CC -o $lib $libobjs $linkopts `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' | ||
8319 | + # The linker will automatically build a .lib file if we build a DLL. | ||
8320 | + old_archive_from_new_cmds='true' | ||
8321 | + # FIXME: Should let the user specify the lib program. | ||
8322 | + old_archive_cmds='lib /OUT:$oldlib$oldobjs' | ||
8323 | + fix_srcfile_path='`cygpath -w $srcfile`' | ||
8324 | + ;; | ||
8325 | + | ||
8326 | + freebsd1*) | ||
8327 | + ld_shlibs=no | ||
8328 | + ;; | ||
8329 | + | ||
8330 | + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor | ||
8331 | + # support. Future versions do this automatically, but an explicit c++rt0.o | ||
8332 | + # does not break anything, and helps significantly (at the cost of a little | ||
8333 | + # extra space). | ||
8334 | + freebsd2.2*) | ||
8335 | + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts /usr/lib/c++rt0.o' | ||
8336 | + hardcode_libdir_flag_spec='-R$libdir' | ||
8337 | + hardcode_direct=yes | ||
8338 | + hardcode_shlibpath_var=no | ||
8339 | + ;; | ||
8340 | + | ||
8341 | + # Unfortunately, older versions of FreeBSD 2 do not have this feature. | ||
8342 | + freebsd2*) | ||
8343 | + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' | ||
8344 | + hardcode_direct=yes | ||
8345 | + hardcode_minus_L=yes | ||
8346 | + hardcode_shlibpath_var=no | ||
8347 | + ;; | ||
8348 | + | ||
8349 | + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. | ||
8350 | + freebsd*) | ||
8351 | + archive_cmds='$CC -shared -o $lib $libobjs $deplibs $linkopts' | ||
8352 | + hardcode_libdir_flag_spec='-R$libdir' | ||
8353 | + hardcode_direct=yes | ||
8354 | + hardcode_shlibpath_var=no | ||
8355 | + ;; | ||
8356 | + | ||
8357 | + hpux9* | hpux10* | hpux11*) | ||
8358 | + case "$host_os" in | ||
8359 | + hpux9*) archive_cmds='$rm $objdir/$soname~$LD -b +b $install_libdir -o $objdir/$soname $libobjs $deplibs $linkopts~test $objdir/$soname = $lib || mv $objdir/$soname $lib' ;; | ||
8360 | + *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linkopts' ;; | ||
8361 | + esac | ||
8362 | + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' | ||
8363 | + hardcode_libdir_separator=: | ||
8364 | + hardcode_direct=yes | ||
8365 | + hardcode_minus_L=yes # Not in the search PATH, but as the default | ||
8366 | + # location of the library. | ||
8367 | + export_dynamic_flag_spec='${wl}-E' | ||
8368 | + ;; | ||
8369 | + | ||
8370 | + irix5* | irix6*) | ||
8371 | + if test "$with_gcc" = yes; then | ||
8372 | + archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' | ||
8373 | + else | ||
8374 | + archive_cmds='$LD -shared $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' | ||
8375 | + fi | ||
8376 | + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' | ||
8377 | + hardcode_libdir_separator=: | ||
8378 | + ;; | ||
8379 | + | ||
8380 | + netbsd*) | ||
8381 | + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then | ||
8382 | + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' # a.out | ||
8383 | + else | ||
8384 | + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linkopts' # ELF | ||
8385 | + fi | ||
8386 | + hardcode_libdir_flag_spec='${wl}-R$libdir' | ||
8387 | + hardcode_direct=yes | ||
8388 | + hardcode_shlibpath_var=no | ||
8389 | + ;; | ||
8390 | + | ||
8391 | + openbsd*) | ||
8392 | + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' | ||
8393 | + hardcode_libdir_flag_spec='-R$libdir' | ||
8394 | + hardcode_direct=yes | ||
8395 | + hardcode_shlibpath_var=no | ||
8396 | + ;; | ||
8397 | + | ||
8398 | + os2*) | ||
8399 | + hardcode_libdir_flag_spec='-L$libdir' | ||
8400 | + hardcode_minus_L=yes | ||
8401 | + allow_undefined_flag=unsupported | ||
8402 | + archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $linkopts $objdir/$libname.def' | ||
8403 | + old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def' | ||
8404 | + ;; | ||
8405 | + | ||
8406 | + osf3* | osf4*) | ||
8407 | + if test "$with_gcc" = yes; then | ||
8408 | + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' | ||
8409 | + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' | ||
8410 | + else | ||
8411 | + allow_undefined_flag=' -expect_unresolved \*' | ||
8412 | + archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' | ||
8413 | + fi | ||
8414 | + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' | ||
8415 | + hardcode_libdir_separator=: | ||
8416 | + ;; | ||
8417 | + | ||
8418 | + sco3.2v5*) | ||
8419 | + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' | ||
8420 | + hardcode_shlibpath_var=no | ||
8421 | + runpath_var=LD_RUN_PATH | ||
8422 | + hardcode_runpath_var=yes | ||
8423 | + ;; | ||
8424 | + | ||
8425 | + solaris*) | ||
8426 | + no_undefined_flag=' -z text' | ||
8427 | + # $CC -shared without GNU ld will not create a library from C++ | ||
8428 | + # object files and a static libstdc++, better avoid it by now | ||
8429 | + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts' | ||
8430 | + archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ | ||
8431 | + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp' | ||
8432 | + hardcode_libdir_flag_spec='-R$libdir' | ||
8433 | + hardcode_shlibpath_var=no | ||
8434 | + case "$host_os" in | ||
8435 | + solaris2.[0-5] | solaris2.[0-5].*) ;; | ||
8436 | + *) # Supported since Solaris 2.6 (maybe 2.5.1?) | ||
8437 | + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; | ||
8438 | + esac | ||
8439 | + ;; | ||
8440 | + | ||
8441 | + sunos4*) | ||
8442 | + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linkopts' | ||
8443 | + hardcode_libdir_flag_spec='-L$libdir' | ||
8444 | + hardcode_direct=yes | ||
8445 | + hardcode_minus_L=yes | ||
8446 | + hardcode_shlibpath_var=no | ||
8447 | + ;; | ||
8448 | + | ||
8449 | + sysv4) | ||
8450 | + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' | ||
8451 | + runpath_var='LD_RUN_PATH' | ||
8452 | + hardcode_shlibpath_var=no | ||
8453 | + hardcode_direct=no #Motorola manual says yes, but my tests say they lie | ||
8454 | + ;; | ||
8455 | + | ||
8456 | + sysv4.3*) | ||
8457 | + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' | ||
8458 | + hardcode_shlibpath_var=no | ||
8459 | + export_dynamic_flag_spec='-Bexport' | ||
8460 | + ;; | ||
8461 | + | ||
8462 | + uts4*) | ||
8463 | + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' | ||
8464 | + hardcode_libdir_flag_spec='-L$libdir' | ||
8465 | + hardcode_shlibpath_var=no | ||
8466 | + ;; | ||
8467 | + | ||
8468 | + dgux*) | ||
8469 | + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' | ||
8470 | + hardcode_libdir_flag_spec='-L$libdir' | ||
8471 | + hardcode_shlibpath_var=no | ||
8472 | + ;; | ||
8473 | + | ||
8474 | + sysv4*MP*) | ||
8475 | + if test -d /usr/nec ;then | ||
8476 | + # archive_cmds='$LD -G -z text -h $soname -o $lib$libobjs$deplibs' | ||
8477 | + archive_cmds='$LD -G -h $soname -o $lib$libobjs$deplibs' | ||
8478 | + hardcode_shlibpath_var=no | ||
8479 | + runpath_var=LD_RUN_PATH | ||
8480 | + hardcode_runpath_var=yes | ||
8481 | + ld_shlibs=yes | ||
8482 | + fi | ||
8483 | + ;; | ||
8484 | + | ||
8485 | + *) | ||
8486 | + ld_shlibs=no | ||
8487 | + ;; | ||
8488 | + esac | ||
8489 | +fi | ||
8490 | +echo "$ac_t$ld_shlibs" 1>&6 | ||
8491 | +test "$ld_shlibs" = no && can_build_shared=no | ||
8492 | + | ||
8493 | +if test -z "$NM"; then | ||
8494 | + echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6 | ||
8495 | + case "$NM" in | ||
8496 | + [\\/]* | [A-Za-z]:[\\/]*) ;; # Let the user override the test with a path. | ||
8497 | + *) | ||
8498 | + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" | ||
8499 | + for ac_dir in $PATH /usr/ucb /usr/ccs/bin /bin; do | ||
8500 | + test -z "$ac_dir" && ac_dir=. | ||
8501 | + if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext; then | ||
8502 | + # Check to see if the nm accepts a BSD-compat flag. | ||
8503 | + # Adding the `sed 1q' prevents false positives on HP-UX, which says: | ||
8504 | + # nm: unknown option "B" ignored | ||
8505 | + if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then | ||
8506 | + NM="$ac_dir/nm -B" | ||
8507 | + break | ||
8508 | + elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then | ||
8509 | + NM="$ac_dir/nm -p" | ||
8510 | + break | ||
8511 | + else | ||
8512 | + NM=${NM="$ac_dir/nm"} # keep the first match, but | ||
8513 | + continue # so that we can try to find one that supports BSD flags | ||
8514 | + fi | ||
8515 | + fi | ||
8516 | + done | ||
8517 | + IFS="$ac_save_ifs" | ||
8518 | + test -z "$NM" && NM=nm | ||
8519 | + ;; | ||
8520 | + esac | ||
8521 | + echo "$ac_t$NM" 1>&6 | ||
8522 | +fi | ||
8523 | + | ||
8524 | +# Check for command to grab the raw symbol name followed by C symbol from nm. | ||
8525 | +echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6 | ||
8526 | + | ||
8527 | +# These are sane defaults that work on at least a few old systems. | ||
8528 | +# [They come from Ultrix. What could be older than Ultrix?!! ;)] | ||
8529 | + | ||
8530 | +# Character class describing NM global symbol codes. | ||
8531 | +symcode='[BCDEGRST]' | ||
8532 | + | ||
8533 | +# Regexp to match symbols that can be accessed directly from C. | ||
8534 | +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' | ||
8535 | + | ||
8536 | +# Transform the above into a raw symbol and a C symbol. | ||
8537 | +symxfrm='\1 \2\3 \3' | ||
8538 | + | ||
8539 | +# Transform an extracted symbol line into a proper C declaration | ||
8540 | +global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" | ||
8541 | + | ||
8542 | +# Define system-specific variables. | ||
8543 | +case "$host_os" in | ||
8544 | +aix*) | ||
8545 | + symcode='[BCDT]' | ||
8546 | + ;; | ||
8547 | +cygwin* | mingw*) | ||
8548 | + symcode='[ABCDGISTW]' | ||
8549 | + ;; | ||
8550 | +hpux*) # Its linker distinguishes data from code symbols | ||
8551 | + global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'" | ||
8552 | + ;; | ||
8553 | +irix*) | ||
8554 | + symcode='[BCDEGRST]' | ||
8555 | + ;; | ||
8556 | +solaris*) | ||
8557 | + symcode='[BDT]' | ||
8558 | + ;; | ||
8559 | +sysv4) | ||
8560 | + symcode='[DFNSTU]' | ||
8561 | + ;; | ||
8562 | +esac | ||
8563 | + | ||
8564 | +# If we're using GNU nm, then use its standard symbol codes. | ||
8565 | +if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then | ||
8566 | + symcode='[ABCDGISTW]' | ||
8567 | +fi | ||
8568 | + | ||
8569 | +# Try without a prefix undercore, then with it. | ||
8570 | +for ac_symprfx in "" "_"; do | ||
8571 | + | ||
8572 | + # Write the raw and C identifiers. | ||
8573 | + global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode\)[ ][ ]*\($ac_symprfx\)$sympat$/$symxfrm/p'" | ||
8574 | + | ||
8575 | + # Check to see that the pipe works correctly. | ||
8576 | + pipe_works=no | ||
8577 | + $rm conftest* | ||
8578 | + cat > conftest.c <<EOF | ||
8579 | +#ifdef __cplusplus | ||
8580 | +extern "C" { | ||
8581 | +#endif | ||
8582 | +char nm_test_var; | ||
8583 | +void nm_test_func(){} | ||
8584 | +#ifdef __cplusplus | ||
8585 | +} | ||
8586 | +#endif | ||
8587 | +main(){nm_test_var='a';nm_test_func();return(0);} | ||
8588 | +EOF | ||
8589 | + | ||
8590 | + echo "$progname:1592: checking if global_symbol_pipe works" >&5 | ||
8591 | + if { (eval echo $progname:1593: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then | ||
8592 | + # Now try to grab the symbols. | ||
8593 | + nlist=conftest.nm | ||
8594 | + if { echo "$progname:1596: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then | ||
8595 | + | ||
8596 | + # Try sorting and uniquifying the output. | ||
8597 | + if sort "$nlist" | uniq > "$nlist"T; then | ||
8598 | + mv -f "$nlist"T "$nlist" | ||
8599 | + else | ||
8600 | + rm -f "$nlist"T | ||
8601 | + fi | ||
8602 | + | ||
8603 | + # Make sure that we snagged all the symbols we need. | ||
8604 | + if egrep ' nm_test_var$' "$nlist" >/dev/null; then | ||
8605 | + if egrep ' nm_test_func$' "$nlist" >/dev/null; then | ||
8606 | + cat <<EOF > conftest.c | ||
8607 | +#ifdef __cplusplus | ||
8608 | +extern "C" { | ||
8609 | +#endif | ||
8610 | + | ||
8611 | +EOF | ||
8612 | + # Now generate the symbol file. | ||
8613 | + eval "$global_symbol_to_cdecl"' < "$nlist" >> conftest.c' | ||
8614 | + | ||
8615 | + cat <<EOF >> conftest.c | ||
8616 | +#if defined (__STDC__) && __STDC__ | ||
8617 | +# define lt_ptr_t void * | ||
8618 | +#else | ||
8619 | +# define lt_ptr_t char * | ||
8620 | +# define const | ||
8621 | +#endif | ||
8622 | + | ||
8623 | +/* The mapping between symbol names and symbols. */ | ||
8624 | +const struct { | ||
8625 | + const char *name; | ||
8626 | + lt_ptr_t address; | ||
8627 | +} | ||
8628 | +lt_preloaded_symbols[] = | ||
8629 | +{ | ||
8630 | +EOF | ||
8631 | + sed 's/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$nlist" >> conftest.c | ||
8632 | + cat <<\EOF >> conftest.c | ||
8633 | + {0, (lt_ptr_t) 0} | ||
8634 | +}; | ||
8635 | + | ||
8636 | +#ifdef __cplusplus | ||
8637 | +} | ||
8638 | +#endif | ||
8639 | +EOF | ||
8640 | + # Now try linking the two files. | ||
8641 | + mv conftest.$objext conftstm.$objext | ||
8642 | + save_LIBS="$LIBS" | ||
8643 | + save_CFLAGS="$CFLAGS" | ||
8644 | + LIBS="conftstm.$objext" | ||
8645 | + CFLAGS="$CFLAGS$no_builtin_flag" | ||
8646 | + if { (eval echo $progname:1648: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then | ||
8647 | + pipe_works=yes | ||
8648 | + else | ||
8649 | + echo "$progname: failed program was:" >&5 | ||
8650 | + cat conftest.c >&5 | ||
8651 | + fi | ||
8652 | + LIBS="$save_LIBS" | ||
8653 | + else | ||
8654 | + echo "cannot find nm_test_func in $nlist" >&5 | ||
8655 | + fi | ||
8656 | + else | ||
8657 | + echo "cannot find nm_test_var in $nlist" >&5 | ||
8658 | + fi | ||
8659 | + else | ||
8660 | + echo "cannot run $global_symbol_pipe" >&5 | ||
8661 | + fi | ||
8662 | + else | ||
8663 | + echo "$progname: failed program was:" >&5 | ||
8664 | + cat conftest.c >&5 | ||
8665 | + fi | ||
8666 | + $rm conftest* conftst* | ||
8667 | + | ||
8668 | + # Do not use the global_symbol_pipe unless it works. | ||
8669 | + if test "$pipe_works" = yes; then | ||
8670 | + break | ||
8671 | + else | ||
8672 | + global_symbol_pipe= | ||
8673 | + fi | ||
8674 | +done | ||
8675 | +if test "$pipe_works" = yes; then | ||
8676 | + echo "${ac_t}ok" 1>&6 | ||
8677 | +else | ||
8678 | + echo "${ac_t}failed" 1>&6 | ||
8679 | +fi | ||
8680 | + | ||
8681 | +if test -z "$global_symbol_pipe"; then | ||
8682 | + global_symbol_to_cdecl= | ||
8683 | +fi | ||
8684 | + | ||
8685 | +# Check hardcoding attributes. | ||
8686 | +echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6 | ||
8687 | +hardcode_action= | ||
8688 | +if test -n "$hardcode_libdir_flag_spec" || \ | ||
8689 | + test -n "$runpath_var"; then | ||
8690 | + | ||
8691 | + # We can hardcode non-existant directories. | ||
8692 | + if test "$hardcode_direct" != no && | ||
8693 | + # If the only mechanism to avoid hardcoding is shlibpath_var, we | ||
8694 | + # have to relink, otherwise we might link with an installed library | ||
8695 | + # when we should be linking with a yet-to-be-installed one | ||
8696 | + ## test "$hardcode_shlibpath_var" != no && | ||
8697 | + test "$hardcode_minus_L" != no; then | ||
8698 | + # Linking always hardcodes the temporary library directory. | ||
8699 | + hardcode_action=relink | ||
8700 | + else | ||
8701 | + # We can link without hardcoding, and we can hardcode nonexisting dirs. | ||
8702 | + hardcode_action=immediate | ||
8703 | + fi | ||
8704 | +else | ||
8705 | + # We cannot hardcode anything, or else we can only hardcode existing | ||
8706 | + # directories. | ||
8707 | + hardcode_action=unsupported | ||
8708 | +fi | ||
8709 | +echo "$ac_t$hardcode_action" 1>&6 | ||
8710 | + | ||
8711 | + | ||
8712 | +reload_flag= | ||
8713 | +reload_cmds='$LD$reload_flag -o $output$reload_objs' | ||
8714 | +echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6 | ||
8715 | +# PORTME Some linkers may need a different reload flag. | ||
8716 | +reload_flag='-r' | ||
8717 | +echo "$ac_t$reload_flag" 1>&6 | ||
8718 | +test -n "$reload_flag" && reload_flag=" $reload_flag" | ||
8719 | + | ||
8720 | +# PORTME Fill in your ld.so characteristics | ||
8721 | +library_names_spec= | ||
8722 | +libname_spec='lib$name' | ||
8723 | +soname_spec= | ||
8724 | +postinstall_cmds= | ||
8725 | +postuninstall_cmds= | ||
8726 | +finish_cmds= | ||
8727 | +finish_eval= | ||
8728 | +shlibpath_var= | ||
8729 | +shlibpath_overrides_runpath=unknown | ||
8730 | +version_type=none | ||
8731 | +dynamic_linker="$host_os ld.so" | ||
8732 | +sys_lib_dlsearch_path_spec="/lib /usr/lib" | ||
8733 | +sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" | ||
8734 | +file_magic_cmd= | ||
8735 | +file_magic_test_file= | ||
8736 | +deplibs_check_method='unknown' | ||
8737 | +# Need to set the preceding variable on all platforms that support | ||
8738 | +# interlibrary dependencies. | ||
8739 | +# 'none' -- dependencies not supported. | ||
8740 | +# `unknown' -- same as none, but documents that we really don't know. | ||
8741 | +# 'pass_all' -- all dependencies passed with no checks. | ||
8742 | +# 'test_compile' -- check by making test program. | ||
8743 | +# 'file_magic [regex]' -- check by looking for files in library path | ||
8744 | +# which responds to the $file_magic_cmd with a given egrep regex. | ||
8745 | +# If you have `file' or equivalent on your system and you're not sure | ||
8746 | +# whether `pass_all' will *always* work, you probably want this one. | ||
8747 | +echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6 | ||
8748 | +case "$host_os" in | ||
8749 | +aix3*) | ||
8750 | + version_type=linux | ||
8751 | + library_names_spec='${libname}${release}.so$versuffix $libname.a' | ||
8752 | + shlibpath_var=LIBPATH | ||
8753 | + | ||
8754 | + # AIX has no versioning support, so we append a major version to the name. | ||
8755 | + soname_spec='${libname}${release}.so$major' | ||
8756 | + ;; | ||
8757 | + | ||
8758 | +aix4*) | ||
8759 | + version_type=linux | ||
8760 | + # AIX has no versioning support, so currently we can not hardcode correct | ||
8761 | + # soname into executable. Probably we can add versioning support to | ||
8762 | + # collect2, so additional links can be useful in future. | ||
8763 | + # We preserve .a as extension for shared libraries though AIX4.2 | ||
8764 | + # and later linker supports .so | ||
8765 | + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.a' | ||
8766 | + shlibpath_var=LIBPATH | ||
8767 | + deplibs_check_method=pass_all | ||
8768 | + ;; | ||
8769 | + | ||
8770 | +amigaos*) | ||
8771 | + library_names_spec='$libname.ixlibrary $libname.a' | ||
8772 | + # Create ${libname}_ixlibrary.a entries in /sys/libs. | ||
8773 | + 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' | ||
8774 | + ;; | ||
8775 | + | ||
8776 | +beos*) | ||
8777 | + library_names_spec='${libname}.so' | ||
8778 | + dynamic_linker="$host_os ld.so" | ||
8779 | + shlibpath_var=LIBRARY_PATH | ||
8780 | + deplibs_check_method=pass_all | ||
8781 | + lt_cv_dlopen="load_add_on" | ||
8782 | + lt_cv_dlopen_libs= | ||
8783 | + lt_cv_dlopen_self=yes | ||
8784 | + ;; | ||
8785 | + | ||
8786 | +bsdi4*) | ||
8787 | + version_type=linux | ||
8788 | + library_names_spec='${libname}.so$major ${libname}.so' | ||
8789 | + soname_spec='${libname}.so' | ||
8790 | + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' | ||
8791 | + shlibpath_var=LD_LIBRARY_PATH | ||
8792 | + deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' | ||
8793 | + file_magic_cmd=/usr/bin/file | ||
8794 | + file_magic_test_file=/shlib/libc.so | ||
8795 | + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" | ||
8796 | + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" | ||
8797 | + # the default ld.so.conf also contains /usr/contrib/lib and | ||
8798 | + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow | ||
8799 | + # libtool to hard-code these into programs | ||
8800 | + ;; | ||
8801 | + | ||
8802 | +cygwin* | mingw*) | ||
8803 | + version_type=windows | ||
8804 | + need_version=no | ||
8805 | + need_lib_prefix=no | ||
8806 | + if test "$with_gcc" = yes; then | ||
8807 | + library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a' | ||
8808 | + else | ||
8809 | + library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib' | ||
8810 | + fi | ||
8811 | + dynamic_linker='Win32 ld.exe' | ||
8812 | + deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' | ||
8813 | + file_magic_cmd='${OBJDUMP} -f' | ||
8814 | + # FIXME: first we should search . and the directory the executable is in | ||
8815 | + shlibpath_var=PATH | ||
8816 | + lt_cv_dlopen="LoadLibrary" | ||
8817 | + lt_cv_dlopen_libs= | ||
8818 | + ;; | ||
8819 | + | ||
8820 | +freebsd1*) | ||
8821 | + dynamic_linker=no | ||
8822 | + ;; | ||
8823 | + | ||
8824 | +freebsd*) | ||
8825 | + objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` | ||
8826 | + version_type=freebsd-$objformat | ||
8827 | + case "$version_type" in | ||
8828 | + freebsd-elf*) | ||
8829 | + deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' | ||
8830 | + file_magic_cmd=/usr/bin/file | ||
8831 | + file_magic_test_file=`echo /usr/lib/libc.so*` | ||
8832 | + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' | ||
8833 | + need_version=no | ||
8834 | + need_lib_prefix=no | ||
8835 | + ;; | ||
8836 | + freebsd-*) | ||
8837 | + deplibs_check_method=unknown | ||
8838 | + library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' | ||
8839 | + need_version=yes | ||
8840 | + ;; | ||
8841 | + esac | ||
8842 | + finish_cmds='PATH="\$PATH:/sbin" OBJFORMAT="'"$objformat"'" ldconfig -m $libdir' | ||
8843 | + shlibpath_var=LD_LIBRARY_PATH | ||
8844 | + case "$host_os" in | ||
8845 | + freebsd2* | freebsd3.[01]*) | ||
8846 | + shlibpath_overrides_runpath=yes | ||
8847 | + ;; | ||
8848 | + *) # from 3.2 on | ||
8849 | + shlibpath_overrides_runpath=no | ||
8850 | + ;; | ||
8851 | + esac | ||
8852 | + ;; | ||
8853 | + | ||
8854 | +gnu*) | ||
8855 | + version_type=linux | ||
8856 | + need_lib_prefix=no | ||
8857 | + need_version=no | ||
8858 | + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' | ||
8859 | + soname_spec='${libname}${release}.so$major' | ||
8860 | + shlibpath_var=LD_LIBRARY_PATH | ||
8861 | + ;; | ||
8862 | + | ||
8863 | +hpux9* | hpux10* | hpux11*) | ||
8864 | + # Give a soname corresponding to the major version so that dld.sl refuses to | ||
8865 | + # link against other versions. | ||
8866 | + dynamic_linker="$host_os dld.sl" | ||
8867 | + version_type=sunos | ||
8868 | + need_lib_prefix=no | ||
8869 | + need_version=no | ||
8870 | + shlibpath_var=SHLIB_PATH | ||
8871 | + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH | ||
8872 | + library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' | ||
8873 | + soname_spec='${libname}${release}.sl$major' | ||
8874 | + # HP-UX runs *really* slowly unless shared libraries are mode 555. | ||
8875 | + postinstall_cmds='chmod 555 $lib' | ||
8876 | + ;; | ||
8877 | + | ||
8878 | +irix5* | irix6*) | ||
8879 | + version_type=irix | ||
8880 | + need_lib_prefix=no | ||
8881 | + need_version=no | ||
8882 | + soname_spec='${libname}${release}.so.$major' | ||
8883 | + library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major ${libname}${release}.so $libname.so' | ||
8884 | + case "$host_os" in | ||
8885 | + irix5*) | ||
8886 | + libsuff= shlibsuff= | ||
8887 | + # this will be overridden with pass_all, but let us keep it just in case | ||
8888 | + deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" | ||
8889 | + ;; | ||
8890 | + *) | ||
8891 | + case "$LD" in # libtool.m4 will add one of these switches to LD | ||
8892 | + *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; | ||
8893 | + *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; | ||
8894 | + *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; | ||
8895 | + *) libsuff= shlibsuff= libmagic=never-match;; | ||
8896 | + esac | ||
8897 | + # this will be overridden with pass_all, but let us keep it just in case | ||
8898 | + deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1" | ||
8899 | + ;; | ||
8900 | + esac | ||
8901 | + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH | ||
8902 | + shlibpath_overrides_runpath=no | ||
8903 | + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" | ||
8904 | + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" | ||
8905 | + file_magic_cmd=/usr/bin/file | ||
8906 | + file_magic_test_file=`echo /lib${libsuff}/libc.so*` | ||
8907 | + deplibs_check_method='pass_all' | ||
8908 | + ;; | ||
8909 | + | ||
8910 | +# No shared lib support for Linux oldld, aout, or coff. | ||
8911 | +linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) | ||
8912 | + dynamic_linker=no | ||
8913 | + ;; | ||
8914 | + | ||
8915 | +# This must be Linux ELF. | ||
8916 | +linux-gnu*) | ||
8917 | + version_type=linux | ||
8918 | + need_lib_prefix=no | ||
8919 | + need_version=no | ||
8920 | + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' | ||
8921 | + soname_spec='${libname}${release}.so$major' | ||
8922 | + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' | ||
8923 | + shlibpath_var=LD_LIBRARY_PATH | ||
8924 | + shlibpath_overrides_runpath=no | ||
8925 | + deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' | ||
8926 | + file_magic_cmd=/usr/bin/file | ||
8927 | + file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` | ||
8928 | + | ||
8929 | + if test -f /lib/ld.so.1; then | ||
8930 | + dynamic_linker='GNU ld.so' | ||
8931 | + else | ||
8932 | + # Only the GNU ld.so supports shared libraries on MkLinux. | ||
8933 | + case "$host_cpu" in | ||
8934 | + *) dynamic_linker='Linux ld.so' ;; | ||
8935 | + esac | ||
8936 | + fi | ||
8937 | + ;; | ||
8938 | + | ||
8939 | +netbsd*) | ||
8940 | + version_type=sunos | ||
8941 | + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then | ||
8942 | + library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' | ||
8943 | + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' | ||
8944 | + dynamic_linker='NetBSD (a.out) ld.so' | ||
8945 | + else | ||
8946 | + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' | ||
8947 | + soname_spec='${libname}${release}.so$major' | ||
8948 | + dynamic_linker='NetBSD ld.elf_so' | ||
8949 | + fi | ||
8950 | + shlibpath_var=LD_LIBRARY_PATH | ||
8951 | + ;; | ||
8952 | + | ||
8953 | +openbsd*) | ||
8954 | + version_type=sunos | ||
8955 | + if test "$with_gnu_ld" = yes; then | ||
8956 | + need_lib_prefix=no | ||
8957 | + need_version=no | ||
8958 | + fi | ||
8959 | + library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' | ||
8960 | + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' | ||
8961 | + shlibpath_var=LD_LIBRARY_PATH | ||
8962 | + ;; | ||
8963 | + | ||
8964 | +os2*) | ||
8965 | + libname_spec='$name' | ||
8966 | + need_lib_prefix=no | ||
8967 | + library_names_spec='$libname.dll $libname.a' | ||
8968 | + dynamic_linker='OS/2 ld.exe' | ||
8969 | + shlibpath_var=LIBPATH | ||
8970 | + ;; | ||
8971 | + | ||
8972 | +osf3* | osf4*) | ||
8973 | + version_type=osf | ||
8974 | + need_version=no | ||
8975 | + soname_spec='${libname}${release}.so' | ||
8976 | + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' | ||
8977 | + shlibpath_var=LD_LIBRARY_PATH | ||
8978 | + # this will be overridden with pass_all, but let us keep it just in case | ||
8979 | + deplibs_check_method='file_magic COFF format alpha shared library' | ||
8980 | + file_magic_cmd=/usr/bin/file | ||
8981 | + file_magic_test_file=/shlib/libc.so | ||
8982 | + deplibs_check_method='pass_all' | ||
8983 | + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" | ||
8984 | + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" | ||
8985 | + ;; | ||
8986 | + | ||
8987 | +sco3.2v5*) | ||
8988 | + version_type=osf | ||
8989 | + soname_spec='${libname}${release}.so$major' | ||
8990 | + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' | ||
8991 | + shlibpath_var=LD_LIBRARY_PATH | ||
8992 | + ;; | ||
8993 | + | ||
8994 | +solaris*) | ||
8995 | + version_type=linux | ||
8996 | + need_lib_prefix=no | ||
8997 | + need_version=no | ||
8998 | + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' | ||
8999 | + soname_spec='${libname}${release}.so$major' | ||
9000 | + shlibpath_var=LD_LIBRARY_PATH | ||
9001 | + shlibpath_overrides_runpath=yes | ||
9002 | + # ldd complains unless libraries are executable | ||
9003 | + postinstall_cmds='chmod +x $lib' | ||
9004 | + deplibs_check_method="file_magic ELF [0-9][0-9]-bit [LM]SB dynamic lib" | ||
9005 | + file_magic_cmd=/usr/bin/file | ||
9006 | + file_magic_test_file=/lib/libc.so | ||
9007 | + ;; | ||
9008 | + | ||
9009 | +sunos4*) | ||
9010 | + version_type=sunos | ||
9011 | + library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' | ||
9012 | + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' | ||
9013 | + shlibpath_var=LD_LIBRARY_PATH | ||
9014 | + shlibpath_overrides_runpath=yes | ||
9015 | + if test "$with_gnu_ld" = yes; then | ||
9016 | + need_lib_prefix=no | ||
9017 | + fi | ||
9018 | + need_version=yes | ||
9019 | + ;; | ||
9020 | + | ||
9021 | +sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) | ||
9022 | + version_type=linux | ||
9023 | + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' | ||
9024 | + soname_spec='${libname}${release}.so$major' | ||
9025 | + shlibpath_var=LD_LIBRARY_PATH | ||
9026 | + case "$host_vendor" in | ||
9027 | + ncr) | ||
9028 | + deplibs_check_method='pass_all' | ||
9029 | + ;; | ||
9030 | + motorola) | ||
9031 | + need_lib_prefix=no | ||
9032 | + need_version=no | ||
9033 | + shlibpath_overrides_runpath=no | ||
9034 | + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' | ||
9035 | + 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]' | ||
9036 | + file_magic_cmd=/usr/bin/file | ||
9037 | + file_magic_test_file=`echo /usr/lib/libc.so*` | ||
9038 | + ;; | ||
9039 | + esac | ||
9040 | + ;; | ||
9041 | + | ||
9042 | +uts4*) | ||
9043 | + version_type=linux | ||
9044 | + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' | ||
9045 | + soname_spec='${libname}${release}.so$major' | ||
9046 | + shlibpath_var=LD_LIBRARY_PATH | ||
9047 | + ;; | ||
9048 | + | ||
9049 | +dgux*) | ||
9050 | + version_type=linux | ||
9051 | + need_lib_prefix=no | ||
9052 | + need_version=no | ||
9053 | + library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' | ||
9054 | + soname_spec='${libname}${release}.so$major' | ||
9055 | + shlibpath_var=LD_LIBRARY_PATH | ||
9056 | + ;; | ||
9057 | + | ||
9058 | +sysv4*MP*) | ||
9059 | + if test -d /usr/nec ;then | ||
9060 | + version_type=linux | ||
9061 | + library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' | ||
9062 | + soname_spec='$libname.so.$major' | ||
9063 | + shlibpath_var=LD_LIBRARY_PATH | ||
9064 | + fi | ||
9065 | + ;; | ||
9066 | + | ||
9067 | +*) | ||
9068 | + dynamic_linker=no | ||
9069 | + ;; | ||
9070 | +esac | ||
9071 | +echo "$ac_t$dynamic_linker" 1>&6 | ||
9072 | +test "$dynamic_linker" = no && can_build_shared=no | ||
9073 | + | ||
9074 | +# Report the final consequences. | ||
9075 | +echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6 | ||
9076 | + | ||
9077 | +# Only try to build win32 dlls if AC_LIBTOOL_WIN32_DLL was used in | ||
9078 | +# configure.in, otherwise build static only libraries. | ||
9079 | +case "$host_os" in | ||
9080 | +cygwin* | mingw* | os2*) | ||
9081 | + if test x$can_build_shared = xyes; then | ||
9082 | + test x$enable_win32_dll = xno && can_build_shared=no | ||
9083 | + echo "checking if package supports dlls... $can_build_shared" 1>&6 | ||
9084 | + fi | ||
9085 | +;; | ||
9086 | +esac | ||
9087 | + | ||
9088 | +if test -n "$file_magic_test_file" && test -n "$file_magic_cmd"; then | ||
9089 | + case "$deplibs_check_method" in | ||
9090 | + "file_magic "*) | ||
9091 | + file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" | ||
9092 | + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | | ||
9093 | + egrep "$file_magic_regex" > /dev/null; then | ||
9094 | + : | ||
9095 | + else | ||
9096 | + cat <<EOF 1>&2 | ||
9097 | + | ||
9098 | +*** Warning: the command libtool uses to detect shared libraries, | ||
9099 | +*** $file_magic_cmd, produces output that libtool cannot recognize. | ||
9100 | +*** The result is that libtool may fail to recognize shared libraries | ||
9101 | +*** as such. This will affect the creation of libtool libraries that | ||
9102 | +*** depend on shared libraries, but programs linked with such libtool | ||
9103 | +*** libraries will work regardless of this problem. Nevertheless, you | ||
9104 | +*** may want to report the problem to your system manager and/or to | ||
9105 | +*** bug-libtool@gnu.org | ||
9106 | + | ||
9107 | +EOF | ||
9108 | + fi ;; | ||
9109 | + esac | ||
9110 | +fi | ||
9111 | + | ||
9112 | +echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6 | ||
9113 | +test "$can_build_shared" = "no" && enable_shared=no | ||
9114 | + | ||
9115 | +# On AIX, shared libraries and static libraries use the same namespace, and | ||
9116 | +# are all built from PIC. | ||
9117 | +case "$host_os" in | ||
9118 | +aix3*) | ||
9119 | + test "$enable_shared" = yes && enable_static=no | ||
9120 | + if test -n "$RANLIB"; then | ||
9121 | + archive_cmds="$archive_cmds~\$RANLIB \$lib" | ||
9122 | + postinstall_cmds='$RANLIB $lib' | ||
9123 | + fi | ||
9124 | + ;; | ||
9125 | + | ||
9126 | +aix4*) | ||
9127 | + test "$enable_shared" = yes && enable_static=no | ||
9128 | + ;; | ||
9129 | +esac | ||
9130 | + | ||
9131 | +echo "$ac_t$enable_shared" 1>&6 | ||
9132 | + | ||
9133 | +# Make sure either enable_shared or enable_static is yes. | ||
9134 | +test "$enable_shared" = yes || enable_static=yes | ||
9135 | + | ||
9136 | +echo "checking whether to build static libraries... $enable_static" 1>&6 | ||
9137 | + | ||
9138 | +if test "$hardcode_action" = relink; then | ||
9139 | + # Fast installation is not supported | ||
9140 | + enable_fast_install=no | ||
9141 | +elif test "$shlibpath_overrides_runpath" = yes || | ||
9142 | + test "$enable_shared" = no; then | ||
9143 | + # Fast installation is not necessary | ||
9144 | + enable_fast_install=needless | ||
9145 | +fi | ||
9146 | + | ||
9147 | +echo $ac_n "checking for objdir... $ac_c" 1>&6 | ||
9148 | +rm -f .libs 2>/dev/null | ||
9149 | +mkdir .libs 2>/dev/null | ||
9150 | +if test -d .libs; then | ||
9151 | + objdir=.libs | ||
9152 | +else | ||
9153 | + # MS-DOS does not allow filenames that begin with a dot. | ||
9154 | + objdir=_libs | ||
9155 | +fi | ||
9156 | +rmdir .libs 2>/dev/null | ||
9157 | +echo "$ac_t$objdir" 1>&6 | ||
9158 | + | ||
9159 | +if test "x$enable_dlopen" != xyes; then | ||
9160 | + enable_dlopen=unknown | ||
9161 | + enable_dlopen_self=unknown | ||
9162 | + enable_dlopen_self_static=unknown | ||
9163 | +else | ||
9164 | +if eval "test \"`echo '$''{'lt_cv_dlopen'+set}'`\" != set"; then | ||
9165 | + lt_cv_dlopen=no lt_cv_dlopen_libs= | ||
9166 | +echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 | ||
9167 | +echo "$progname:2170: checking for dlopen in -ldl" >&5 | ||
9168 | +ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` | ||
9169 | +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then | ||
9170 | + echo $ac_n "(cached) $ac_c" 1>&6 | ||
9171 | +else | ||
9172 | + ac_save_LIBS="$LIBS" | ||
9173 | +LIBS="-ldl $LIBS" | ||
9174 | +cat > conftest.$ac_ext <<EOF | ||
9175 | +#line 2178 "ltconfig" | ||
9176 | +/* Override any gcc2 internal prototype to avoid an error. */ | ||
9177 | +/* We use char because int might match the return type of a gcc2 | ||
9178 | + builtin and then its argument prototype would still apply. */ | ||
9179 | +char dlopen(); | ||
9180 | + | ||
9181 | +int main() { | ||
9182 | +dlopen() | ||
9183 | +; return 0; } | ||
9184 | +EOF | ||
9185 | +if { (eval echo $progname:2188: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then | ||
9186 | + rm -rf conftest* | ||
9187 | + eval "ac_cv_lib_$ac_lib_var=yes" | ||
9188 | +else | ||
9189 | + echo "$progname: failed program was:" >&5 | ||
9190 | + cat conftest.$ac_ext >&5 | ||
9191 | + rm -rf conftest* | ||
9192 | + eval "ac_cv_lib_$ac_lib_var=no" | ||
9193 | +fi | ||
9194 | +rm -f conftest* | ||
9195 | +LIBS="$ac_save_LIBS" | ||
9196 | + | ||
9197 | +fi | ||
9198 | +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then | ||
9199 | + echo "$ac_t""yes" 1>&6 | ||
9200 | + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" | ||
9201 | +else | ||
9202 | + echo "$ac_t""no" 1>&6 | ||
9203 | +echo $ac_n "checking for dlopen""... $ac_c" 1>&6 | ||
9204 | +echo "$progname:2207: checking for dlopen" >&5 | ||
9205 | +if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then | ||
9206 | + echo $ac_n "(cached) $ac_c" 1>&6 | ||
9207 | +else | ||
9208 | + cat > conftest.$ac_ext <<EOF | ||
9209 | +#line 2212 "ltconfig" | ||
9210 | +/* System header to define __stub macros and hopefully few prototypes, | ||
9211 | + which can conflict with char dlopen(); below. */ | ||
9212 | +#include <assert.h> | ||
9213 | +/* Override any gcc2 internal prototype to avoid an error. */ | ||
9214 | +/* We use char because int might match the return type of a gcc2 | ||
9215 | + builtin and then its argument prototype would still apply. */ | ||
9216 | +char dlopen(); | ||
9217 | + | ||
9218 | +int main() { | ||
9219 | + | ||
9220 | +/* The GNU C library defines this for functions which it implements | ||
9221 | + to always fail with ENOSYS. Some functions are actually named | ||
9222 | + something starting with __ and the normal name is an alias. */ | ||
9223 | +#if defined (__stub_dlopen) || defined (__stub___dlopen) | ||
9224 | +choke me | ||
9225 | +#else | ||
9226 | +dlopen(); | ||
9227 | +#endif | ||
9228 | + | ||
9229 | +; return 0; } | ||
9230 | +EOF | ||
9231 | +if { (eval echo $progname:2234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then | ||
9232 | + rm -rf conftest* | ||
9233 | + eval "ac_cv_func_dlopen=yes" | ||
9234 | +else | ||
9235 | + echo "$progname: failed program was:" >&5 | ||
9236 | + cat conftest.$ac_ext >&5 | ||
9237 | + rm -rf conftest* | ||
9238 | + eval "ac_cv_func_dlopen=no" | ||
9239 | +fi | ||
9240 | +rm -f conftest* | ||
9241 | +fi | ||
9242 | +if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then | ||
9243 | + echo "$ac_t""yes" 1>&6 | ||
9244 | + lt_cv_dlopen="dlopen" | ||
9245 | +else | ||
9246 | + echo "$ac_t""no" 1>&6 | ||
9247 | +echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6 | ||
9248 | +echo "$progname:2251: checking for dld_link in -ldld" >&5 | ||
9249 | +ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'` | ||
9250 | +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then | ||
9251 | + echo $ac_n "(cached) $ac_c" 1>&6 | ||
9252 | +else | ||
9253 | + ac_save_LIBS="$LIBS" | ||
9254 | +LIBS="-ldld $LIBS" | ||
9255 | +cat > conftest.$ac_ext <<EOF | ||
9256 | +#line 2259 "ltconfig" | ||
9257 | +/* Override any gcc2 internal prototype to avoid an error. */ | ||
9258 | +/* We use char because int might match the return type of a gcc2 | ||
9259 | + builtin and then its argument prototype would still apply. */ | ||
9260 | +char dld_link(); | ||
9261 | + | ||
9262 | +int main() { | ||
9263 | +dld_link() | ||
9264 | +; return 0; } | ||
9265 | +EOF | ||
9266 | +if { (eval echo $progname:2269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then | ||
9267 | + rm -rf conftest* | ||
9268 | + eval "ac_cv_lib_$ac_lib_var=yes" | ||
9269 | +else | ||
9270 | + echo "$progname: failed program was:" >&5 | ||
9271 | + cat conftest.$ac_ext >&5 | ||
9272 | + rm -rf conftest* | ||
9273 | + eval "ac_cv_lib_$ac_lib_var=no" | ||
9274 | +fi | ||
9275 | +rm -f conftest* | ||
9276 | +LIBS="$ac_save_LIBS" | ||
9277 | + | ||
9278 | +fi | ||
9279 | +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then | ||
9280 | + echo "$ac_t""yes" 1>&6 | ||
9281 | + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" | ||
9282 | +else | ||
9283 | + echo "$ac_t""no" 1>&6 | ||
9284 | +echo $ac_n "checking for shl_load""... $ac_c" 1>&6 | ||
9285 | +echo "$progname:2288: checking for shl_load" >&5 | ||
9286 | +if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then | ||
9287 | + echo $ac_n "(cached) $ac_c" 1>&6 | ||
9288 | +else | ||
9289 | + cat > conftest.$ac_ext <<EOF | ||
9290 | +#line 2293 "ltconfig" | ||
9291 | +/* System header to define __stub macros and hopefully few prototypes, | ||
9292 | + which can conflict with char shl_load(); below. */ | ||
9293 | +#include <assert.h> | ||
9294 | +/* Override any gcc2 internal prototype to avoid an error. */ | ||
9295 | +/* We use char because int might match the return type of a gcc2 | ||
9296 | + builtin and then its argument prototype would still apply. */ | ||
9297 | +char shl_load(); | ||
9298 | + | ||
9299 | +int main() { | ||
9300 | + | ||
9301 | +/* The GNU C library defines this for functions which it implements | ||
9302 | + to always fail with ENOSYS. Some functions are actually named | ||
9303 | + something starting with __ and the normal name is an alias. */ | ||
9304 | +#if defined (__stub_shl_load) || defined (__stub___shl_load) | ||
9305 | +choke me | ||
9306 | +#else | ||
9307 | +shl_load(); | ||
9308 | +#endif | ||
9309 | + | ||
9310 | +; return 0; } | ||
9311 | +EOF | ||
9312 | +if { (eval echo $progname:2315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then | ||
9313 | + rm -rf conftest* | ||
9314 | + eval "ac_cv_func_shl_load=yes" | ||
9315 | +else | ||
9316 | + echo "$progname: failed program was:" >&5 | ||
9317 | + cat conftest.$ac_ext >&5 | ||
9318 | + rm -rf conftest* | ||
9319 | + eval "ac_cv_func_shl_load=no" | ||
9320 | +fi | ||
9321 | +rm -f conftest* | ||
9322 | +fi | ||
9323 | + | ||
9324 | +if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then | ||
9325 | + echo "$ac_t""yes" 1>&6 | ||
9326 | + lt_cv_dlopen="shl_load" | ||
9327 | +else | ||
9328 | + echo "$ac_t""no" 1>&6 | ||
9329 | +echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 | ||
9330 | +echo "$progname:2333: checking for shl_load in -ldld" >&5 | ||
9331 | +ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` | ||
9332 | +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then | ||
9333 | + echo $ac_n "(cached) $ac_c" 1>&6 | ||
9334 | +else | ||
9335 | + ac_save_LIBS="$LIBS" | ||
9336 | +LIBS="-ldld $LIBS" | ||
9337 | +cat > conftest.$ac_ext <<EOF | ||
9338 | +#line 2341 "ltconfig" | ||
9339 | +#include "confdefs.h" | ||
9340 | +/* Override any gcc2 internal prototype to avoid an error. */ | ||
9341 | +/* We use char because int might match the return type of a gcc2 | ||
9342 | + builtin and then its argument prototype would still apply. */ | ||
9343 | +char shl_load(); | ||
9344 | + | ||
9345 | +int main() { | ||
9346 | +shl_load() | ||
9347 | +; return 0; } | ||
9348 | +EOF | ||
9349 | +if { (eval echo $progname:2352: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then | ||
9350 | + rm -rf conftest* | ||
9351 | + eval "ac_cv_lib_$ac_lib_var=yes" | ||
9352 | +else | ||
9353 | + echo "$progname: failed program was:" >&5 | ||
9354 | + cat conftest.$ac_ext >&5 | ||
9355 | + rm -rf conftest* | ||
9356 | + eval "ac_cv_lib_$ac_lib_var=no" | ||
9357 | +fi | ||
9358 | +rm -f conftest* | ||
9359 | +LIBS="$ac_save_LIBS" | ||
9360 | + | ||
9361 | +fi | ||
9362 | +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then | ||
9363 | + echo "$ac_t""yes" 1>&6 | ||
9364 | + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" | ||
9365 | +else | ||
9366 | + echo "$ac_t""no" 1>&6 | ||
9367 | +fi | ||
9368 | + | ||
9369 | + | ||
9370 | +fi | ||
9371 | + | ||
9372 | + | ||
9373 | +fi | ||
9374 | + | ||
9375 | + | ||
9376 | +fi | ||
9377 | + | ||
9378 | + | ||
9379 | +fi | ||
9380 | + | ||
9381 | +fi | ||
9382 | + | ||
9383 | + if test "x$lt_cv_dlopen" != xno; then | ||
9384 | + enable_dlopen=yes | ||
9385 | + fi | ||
9386 | + | ||
9387 | + case "$lt_cv_dlopen" in | ||
9388 | + dlopen) | ||
9389 | +for ac_hdr in dlfcn.h; do | ||
9390 | +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` | ||
9391 | +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 | ||
9392 | +echo "$progname:2395: checking for $ac_hdr" >&5 | ||
9393 | +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then | ||
9394 | + echo $ac_n "(cached) $ac_c" 1>&6 | ||
9395 | +else | ||
9396 | + cat > conftest.$ac_ext <<EOF | ||
9397 | +#line 2400 "ltconfig" | ||
9398 | +#include <$ac_hdr> | ||
9399 | +int fnord = 0; | ||
9400 | +EOF | ||
9401 | +ac_try="$ac_compile conftest.$ac_ext >/dev/null 2>conftest.out" | ||
9402 | +{ (eval echo $progname:2405: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } | ||
9403 | +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` | ||
9404 | +if test -z "$ac_err"; then | ||
9405 | + rm -rf conftest* | ||
9406 | + eval "ac_cv_header_$ac_safe=yes" | ||
9407 | +else | ||
9408 | + echo "$ac_err" >&5 | ||
9409 | + echo "$progname: failed program was:" >&5 | ||
9410 | + cat conftest.$ac_ext >&5 | ||
9411 | + rm -rf conftest* | ||
9412 | + eval "ac_cv_header_$ac_safe=no" | ||
9413 | +fi | ||
9414 | +rm -f conftest* | ||
9415 | +fi | ||
9416 | +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then | ||
9417 | + echo "$ac_t""yes" 1>&6 | ||
9418 | +else | ||
9419 | + echo "$ac_t""no" 1>&6 | ||
9420 | +fi | ||
9421 | +done | ||
9422 | + | ||
9423 | + if test "x$ac_cv_header_dlfcn_h" = xyes; then | ||
9424 | + CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" | ||
9425 | + fi | ||
9426 | + eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" | ||
9427 | + LIBS="$lt_cv_dlopen_libs $LIBS" | ||
9428 | + | ||
9429 | + echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6 | ||
9430 | +echo "$progname:2433: checking whether a program can dlopen itself" >&5 | ||
9431 | +if test "${lt_cv_dlopen_self+set}" = set; then | ||
9432 | + echo $ac_n "(cached) $ac_c" 1>&6 | ||
9433 | +else | ||
9434 | + if test "$cross_compiling" = yes; then | ||
9435 | + lt_cv_dlopen_self=cross | ||
9436 | + else | ||
9437 | + cat > conftest.c <<EOF | ||
9438 | +#line 2441 "ltconfig" | ||
9439 | + | ||
9440 | +#if HAVE_DLFCN_H | ||
9441 | +#include <dlfcn.h> | ||
9442 | +#endif | ||
9443 | + | ||
9444 | +#include <stdio.h> | ||
9445 | + | ||
9446 | +#ifdef RTLD_GLOBAL | ||
9447 | +# define LTDL_GLOBAL RTLD_GLOBAL | ||
9448 | +#else | ||
9449 | +# ifdef DL_GLOBAL | ||
9450 | +# define LTDL_GLOBAL DL_GLOBAL | ||
9451 | +# else | ||
9452 | +# define LTDL_GLOBAL 0 | ||
9453 | +# endif | ||
9454 | +#endif | ||
9455 | + | ||
9456 | +/* We may have to define LTDL_LAZY_OR_NOW in the command line if we | ||
9457 | + find out it does not work in some platform. */ | ||
9458 | +#ifndef LTDL_LAZY_OR_NOW | ||
9459 | +# ifdef RTLD_LAZY | ||
9460 | +# define LTDL_LAZY_OR_NOW RTLD_LAZY | ||
9461 | +# else | ||
9462 | +# ifdef DL_LAZY | ||
9463 | +# define LTDL_LAZY_OR_NOW DL_LAZY | ||
9464 | +# else | ||
9465 | +# ifdef RTLD_NOW | ||
9466 | +# define LTDL_LAZY_OR_NOW RTLD_NOW | ||
9467 | +# else | ||
9468 | +# ifdef DL_NOW | ||
9469 | +# define LTDL_LAZY_OR_NOW DL_NOW | ||
9470 | +# else | ||
9471 | +# define LTDL_LAZY_OR_NOW 0 | ||
9472 | +# endif | ||
9473 | +# endif | ||
9474 | +# endif | ||
9475 | +# endif | ||
9476 | +#endif | ||
9477 | + | ||
9478 | +fnord() { int i=42;} | ||
9479 | +main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); | ||
9480 | + if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); | ||
9481 | + if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } | ||
9482 | + | ||
9483 | +EOF | ||
9484 | +if { (eval echo $progname:2487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null | ||
9485 | +then | ||
9486 | + lt_cv_dlopen_self=yes | ||
9487 | +else | ||
9488 | + echo "$progname: failed program was:" >&5 | ||
9489 | + cat conftest.$ac_ext >&5 | ||
9490 | + rm -fr conftest* | ||
9491 | + lt_cv_dlopen_self=no | ||
9492 | +fi | ||
9493 | +rm -fr conftest* | ||
9494 | +fi | ||
9495 | + | ||
9496 | +fi | ||
9497 | + | ||
9498 | +echo "$ac_t""$lt_cv_dlopen_self" 1>&6 | ||
9499 | + | ||
9500 | + if test "$lt_cv_dlopen_self" = yes; then | ||
9501 | + LDFLAGS="$LDFLAGS $link_static_flag" | ||
9502 | + echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6 | ||
9503 | +echo "$progname:2506: checking whether a statically linked program can dlopen itself" >&5 | ||
9504 | +if test "${lt_cv_dlopen_self_static+set}" = set; then | ||
9505 | + echo $ac_n "(cached) $ac_c" 1>&6 | ||
9506 | +else | ||
9507 | + if test "$cross_compiling" = yes; then | ||
9508 | + lt_cv_dlopen_self_static=cross | ||
9509 | + else | ||
9510 | + cat > conftest.c <<EOF | ||
9511 | +#line 2514 "ltconfig" | ||
9512 | + | ||
9513 | +#if HAVE_DLFCN_H | ||
9514 | +#include <dlfcn.h> | ||
9515 | +#endif | ||
9516 | + | ||
9517 | +#include <stdio.h> | ||
9518 | + | ||
9519 | +#ifdef RTLD_GLOBAL | ||
9520 | +# define LTDL_GLOBAL RTLD_GLOBAL | ||
9521 | +#else | ||
9522 | +# ifdef DL_GLOBAL | ||
9523 | +# define LTDL_GLOBAL DL_GLOBAL | ||
9524 | +# else | ||
9525 | +# define LTDL_GLOBAL 0 | ||
9526 | +# endif | ||
9527 | +#endif | ||
9528 | + | ||
9529 | +/* We may have to define LTDL_LAZY_OR_NOW in the command line if we | ||
9530 | + find out it does not work in some platform. */ | ||
9531 | +#ifndef LTDL_LAZY_OR_NOW | ||
9532 | +# ifdef RTLD_LAZY | ||
9533 | +# define LTDL_LAZY_OR_NOW RTLD_LAZY | ||
9534 | +# else | ||
9535 | +# ifdef DL_LAZY | ||
9536 | +# define LTDL_LAZY_OR_NOW DL_LAZY | ||
9537 | +# else | ||
9538 | +# ifdef RTLD_NOW | ||
9539 | +# define LTDL_LAZY_OR_NOW RTLD_NOW | ||
9540 | +# else | ||
9541 | +# ifdef DL_NOW | ||
9542 | +# define LTDL_LAZY_OR_NOW DL_NOW | ||
9543 | +# else | ||
9544 | +# define LTDL_LAZY_OR_NOW 0 | ||
9545 | +# endif | ||
9546 | +# endif | ||
9547 | +# endif | ||
9548 | +# endif | ||
9549 | +#endif | ||
9550 | + | ||
9551 | +fnord() { int i=42;} | ||
9552 | +main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); | ||
9553 | + if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); | ||
9554 | + if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } | ||
9555 | + | ||
9556 | +EOF | ||
9557 | +if { (eval echo $progname:2560: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null | ||
9558 | +then | ||
9559 | + lt_cv_dlopen_self_static=yes | ||
9560 | +else | ||
9561 | + echo "$progname: failed program was:" >&5 | ||
9562 | + cat conftest.$ac_ext >&5 | ||
9563 | + rm -fr conftest* | ||
9564 | + lt_cv_dlopen_self_static=no | ||
9565 | +fi | ||
9566 | +rm -fr conftest* | ||
9567 | +fi | ||
9568 | + | ||
9569 | +fi | ||
9570 | + | ||
9571 | +echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6 | ||
9572 | +fi | ||
9573 | + ;; | ||
9574 | + esac | ||
9575 | + | ||
9576 | + case "$lt_cv_dlopen_self" in | ||
9577 | + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; | ||
9578 | + *) enable_dlopen_self=unknown ;; | ||
9579 | + esac | ||
9580 | + | ||
9581 | + case "$lt_cv_dlopen_self_static" in | ||
9582 | + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; | ||
9583 | + *) enable_dlopen_self_static=unknown ;; | ||
9584 | + esac | ||
9585 | +fi | ||
9586 | + | ||
9587 | +# Copy echo and quote the copy, instead of the original, because it is | ||
9588 | +# used later. | ||
9589 | +ltecho="$echo" | ||
9590 | +if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then | ||
9591 | + ltecho="$CONFIG_SHELL \$0 --fallback-echo" | ||
9592 | +fi | ||
9593 | +LTSHELL="$SHELL" | ||
9594 | + | ||
9595 | +LTCONFIG_VERSION="$VERSION" | ||
9596 | + | ||
9597 | +# Only quote variables if we're using ltmain.sh. | ||
9598 | +case "$ltmain" in | ||
9599 | +*.sh) | ||
9600 | + # Now quote all the things that may contain metacharacters. | ||
9601 | + for var in ltecho old_CC old_CFLAGS old_CPPFLAGS \ | ||
9602 | + old_LD old_LDFLAGS old_LIBS \ | ||
9603 | + old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS \ | ||
9604 | + AR CC LD LN_S NM LTSHELL LTCONFIG_VERSION \ | ||
9605 | + reload_flag reload_cmds wl \ | ||
9606 | + pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ | ||
9607 | + thread_safe_flag_spec whole_archive_flag_spec libname_spec \ | ||
9608 | + library_names_spec soname_spec \ | ||
9609 | + RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ | ||
9610 | + old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds postuninstall_cmds \ | ||
9611 | + file_magic_cmd export_symbols_cmds deplibs_check_method allow_undefined_flag no_undefined_flag \ | ||
9612 | + finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ | ||
9613 | + hardcode_libdir_flag_spec hardcode_libdir_separator \ | ||
9614 | + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ | ||
9615 | + compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do | ||
9616 | + | ||
9617 | + case "$var" in | ||
9618 | + reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ | ||
9619 | + old_postinstall_cmds | old_postuninstall_cmds | \ | ||
9620 | + export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ | ||
9621 | + postinstall_cmds | postuninstall_cmds | \ | ||
9622 | + finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) | ||
9623 | + # Double-quote double-evaled strings. | ||
9624 | + eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" | ||
9625 | + ;; | ||
9626 | + *) | ||
9627 | + eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" | ||
9628 | + ;; | ||
9629 | + esac | ||
9630 | + done | ||
9631 | + | ||
9632 | + case "$ltecho" in | ||
9633 | + *'\$0 --fallback-echo"') | ||
9634 | + ltecho=`$echo "X$ltecho" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` | ||
9635 | + ;; | ||
9636 | + esac | ||
9637 | + | ||
9638 | + trap "$rm \"$ofile\"; exit 1" 1 2 15 | ||
9639 | + echo "creating $ofile" | ||
9640 | + $rm "$ofile" | ||
9641 | + cat <<EOF > "$ofile" | ||
9642 | +#! $SHELL | ||
9643 | + | ||
9644 | +# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. | ||
9645 | +# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) | ||
9646 | +# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh. | ||
9647 | +# | ||
9648 | +# Copyright (C) 1996-1999 Free Software Foundation, Inc. | ||
9649 | +# Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 | ||
9650 | +# | ||
9651 | +# This program is free software; you can redistribute it and/or modify | ||
9652 | +# it under the terms of the GNU General Public License as published by | ||
9653 | +# the Free Software Foundation; either version 2 of the License, or | ||
9654 | +# (at your option) any later version. | ||
9655 | +# | ||
9656 | +# This program is distributed in the hope that it will be useful, but | ||
9657 | +# WITHOUT ANY WARRANTY; without even the implied warranty of | ||
9658 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
9659 | +# General Public License for more details. | ||
9660 | +# | ||
9661 | +# You should have received a copy of the GNU General Public License | ||
9662 | +# along with this program; if not, write to the Free Software | ||
9663 | +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
9664 | +# | ||
9665 | +# As a special exception to the GNU General Public License, if you | ||
9666 | +# distribute this file as part of a program that contains a | ||
9667 | +# configuration script generated by Autoconf, you may include it under | ||
9668 | +# the same distribution terms that you use for the rest of that program. | ||
9669 | + | ||
9670 | +# Sed that helps us avoid accidentally triggering echo(1) options like -n. | ||
9671 | +Xsed="sed -e s/^X//" | ||
9672 | + | ||
9673 | +# The HP-UX ksh and POSIX shell print the target directory to stdout | ||
9674 | +# if CDPATH is set. | ||
9675 | +if test "\${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi | ||
9676 | + | ||
9677 | +### BEGIN LIBTOOL CONFIG | ||
9678 | +EOF | ||
9679 | + cfgfile="$ofile" | ||
9680 | + ;; | ||
9681 | + | ||
9682 | +*) | ||
9683 | + # Double-quote the variables that need it (for aesthetics). | ||
9684 | + for var in old_CC old_CFLAGS old_CPPFLAGS \ | ||
9685 | + old_LD old_LDFLAGS old_LIBS \ | ||
9686 | + old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS; do | ||
9687 | + eval "$var=\\\"\$var\\\"" | ||
9688 | + done | ||
9689 | + | ||
9690 | + # Just create a config file. | ||
9691 | + cfgfile="$ofile.cfg" | ||
9692 | + trap "$rm \"$cfgfile\"; exit 1" 1 2 15 | ||
9693 | + echo "creating $cfgfile" | ||
9694 | + $rm "$cfgfile" | ||
9695 | + cat <<EOF > "$cfgfile" | ||
9696 | +# `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file. | ||
9697 | +# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) | ||
9698 | +EOF | ||
9699 | + ;; | ||
9700 | +esac | ||
9701 | + | ||
9702 | +cat <<EOF >> "$cfgfile" | ||
9703 | +# Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`: | ||
9704 | +# | ||
9705 | +# CC=$old_CC CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\ | ||
9706 | +# LD=$old_LD LDFLAGS=$old_LDFLAGS LIBS=$old_LIBS \\ | ||
9707 | +# NM=$old_NM RANLIB=$old_RANLIB LN_S=$old_LN_S \\ | ||
9708 | +# DLLTOOL=$old_DLLTOOL OBJDUMP=$old_OBJDUMP AS=$old_AS \\ | ||
9709 | +# $0$ltconfig_args | ||
9710 | +# | ||
9711 | +# Compiler and other test output produced by $progname, useful for | ||
9712 | +# debugging $progname, is in ./config.log if it exists. | ||
9713 | + | ||
9714 | +# The version of $progname that generated this script. | ||
9715 | +LTCONFIG_VERSION=$LTCONFIG_VERSION | ||
9716 | + | ||
9717 | +# Shell to use when invoking shell scripts. | ||
9718 | +SHELL=$LTSHELL | ||
9719 | + | ||
9720 | +# Whether or not to build shared libraries. | ||
9721 | +build_libtool_libs=$enable_shared | ||
9722 | + | ||
9723 | +# Whether or not to build static libraries. | ||
9724 | +build_old_libs=$enable_static | ||
9725 | + | ||
9726 | +# Whether or not to optimize for fast installation. | ||
9727 | +fast_install=$enable_fast_install | ||
9728 | + | ||
9729 | +# The host system. | ||
9730 | +host_alias=$host_alias | ||
9731 | +host=$host | ||
9732 | + | ||
9733 | +# An echo program that does not interpret backslashes. | ||
9734 | +echo=$ltecho | ||
9735 | + | ||
9736 | +# The archiver. | ||
9737 | +AR=$AR | ||
9738 | + | ||
9739 | +# The default C compiler. | ||
9740 | +CC=$CC | ||
9741 | + | ||
9742 | +# The linker used to build libraries. | ||
9743 | +LD=$LD | ||
9744 | + | ||
9745 | +# Whether we need hard or soft links. | ||
9746 | +LN_S=$LN_S | ||
9747 | + | ||
9748 | +# A BSD-compatible nm program. | ||
9749 | +NM=$NM | ||
9750 | + | ||
9751 | +# Used on cygwin: DLL creation program. | ||
9752 | +DLLTOOL="$DLLTOOL" | ||
9753 | + | ||
9754 | +# Used on cygwin: object dumper. | ||
9755 | +OBJDUMP="$OBJDUMP" | ||
9756 | + | ||
9757 | +# Used on cygwin: assembler. | ||
9758 | +AS="$AS" | ||
9759 | + | ||
9760 | +# The name of the directory that contains temporary libtool files. | ||
9761 | +objdir=$objdir | ||
9762 | + | ||
9763 | +# How to create reloadable object files. | ||
9764 | +reload_flag=$reload_flag | ||
9765 | +reload_cmds=$reload_cmds | ||
9766 | + | ||
9767 | +# How to pass a linker flag through the compiler. | ||
9768 | +wl=$wl | ||
9769 | + | ||
9770 | +# Object file suffix (normally "o"). | ||
9771 | +objext="$objext" | ||
9772 | + | ||
9773 | +# Old archive suffix (normally "a"). | ||
9774 | +libext="$libext" | ||
9775 | + | ||
9776 | +# Executable file suffix (normally ""). | ||
9777 | +exeext="$exeext" | ||
9778 | + | ||
9779 | +# Additional compiler flags for building library objects. | ||
9780 | +pic_flag=$pic_flag | ||
9781 | + | ||
9782 | +# Does compiler simultaneously support -c and -o options? | ||
9783 | +compiler_c_o=$compiler_c_o | ||
9784 | + | ||
9785 | +# Can we write directly to a .lo ? | ||
9786 | +compiler_o_lo=$compiler_o_lo | ||
9787 | + | ||
9788 | +# Must we lock files when doing compilation ? | ||
9789 | +need_locks=$need_locks | ||
9790 | + | ||
9791 | +# Do we need the lib prefix for modules? | ||
9792 | +need_lib_prefix=$need_lib_prefix | ||
9793 | + | ||
9794 | +# Do we need a version for libraries? | ||
9795 | +need_version=$need_version | ||
9796 | + | ||
9797 | +# Whether dlopen is supported. | ||
9798 | +dlopen=$enable_dlopen | ||
9799 | + | ||
9800 | +# Whether dlopen of programs is supported. | ||
9801 | +dlopen_self=$enable_dlopen_self | ||
9802 | + | ||
9803 | +# Whether dlopen of statically linked programs is supported. | ||
9804 | +dlopen_self_static=$enable_dlopen_self_static | ||
9805 | + | ||
9806 | +# Compiler flag to prevent dynamic linking. | ||
9807 | +link_static_flag=$link_static_flag | ||
9808 | + | ||
9809 | +# Compiler flag to turn off builtin functions. | ||
9810 | +no_builtin_flag=$no_builtin_flag | ||
9811 | + | ||
9812 | +# Compiler flag to allow reflexive dlopens. | ||
9813 | +export_dynamic_flag_spec=$export_dynamic_flag_spec | ||
9814 | + | ||
9815 | +# Compiler flag to generate shared objects directly from archives. | ||
9816 | +whole_archive_flag_spec=$whole_archive_flag_spec | ||
9817 | + | ||
9818 | +# Compiler flag to generate thread-safe objects. | ||
9819 | +thread_safe_flag_spec=$thread_safe_flag_spec | ||
9820 | + | ||
9821 | +# Library versioning type. | ||
9822 | +version_type=$version_type | ||
9823 | + | ||
9824 | +# Format of library name prefix. | ||
9825 | +libname_spec=$libname_spec | ||
9826 | + | ||
9827 | +# List of archive names. First name is the real one, the rest are links. | ||
9828 | +# The last name is the one that the linker finds with -lNAME. | ||
9829 | +library_names_spec=$library_names_spec | ||
9830 | + | ||
9831 | +# The coded name of the library, if different from the real name. | ||
9832 | +soname_spec=$soname_spec | ||
9833 | + | ||
9834 | +# Commands used to build and install an old-style archive. | ||
9835 | +RANLIB=$RANLIB | ||
9836 | +old_archive_cmds=$old_archive_cmds | ||
9837 | +old_postinstall_cmds=$old_postinstall_cmds | ||
9838 | +old_postuninstall_cmds=$old_postuninstall_cmds | ||
9839 | + | ||
9840 | +# Create an old-style archive from a shared archive. | ||
9841 | +old_archive_from_new_cmds=$old_archive_from_new_cmds | ||
9842 | + | ||
9843 | +# Commands used to build and install a shared archive. | ||
9844 | +archive_cmds=$archive_cmds | ||
9845 | +archive_expsym_cmds=$archive_expsym_cmds | ||
9846 | +postinstall_cmds=$postinstall_cmds | ||
9847 | +postuninstall_cmds=$postuninstall_cmds | ||
9848 | + | ||
9849 | +# Method to check whether dependent libraries are shared objects. | ||
9850 | +deplibs_check_method=$deplibs_check_method | ||
9851 | + | ||
9852 | +# Command to use when deplibs_check_method == file_magic. | ||
9853 | +file_magic_cmd=$file_magic_cmd | ||
9854 | + | ||
9855 | +# Flag that allows shared libraries with undefined symbols to be built. | ||
9856 | +allow_undefined_flag=$allow_undefined_flag | ||
9857 | + | ||
9858 | +# Flag that forces no undefined symbols. | ||
9859 | +no_undefined_flag=$no_undefined_flag | ||
9860 | + | ||
9861 | +# Commands used to finish a libtool library installation in a directory. | ||
9862 | +finish_cmds=$finish_cmds | ||
9863 | + | ||
9864 | +# Same as above, but a single script fragment to be evaled but not shown. | ||
9865 | +finish_eval=$finish_eval | ||
9866 | + | ||
9867 | +# Take the output of nm and produce a listing of raw symbols and C names. | ||
9868 | +global_symbol_pipe=$global_symbol_pipe | ||
9869 | + | ||
9870 | +# Transform the output of nm in a proper C declaration | ||
9871 | +global_symbol_to_cdecl=$global_symbol_to_cdecl | ||
9872 | + | ||
9873 | +# This is the shared library runtime path variable. | ||
9874 | +runpath_var=$runpath_var | ||
9875 | + | ||
9876 | +# This is the shared library path variable. | ||
9877 | +shlibpath_var=$shlibpath_var | ||
9878 | + | ||
9879 | +# Is shlibpath searched before the hard-coded library search path? | ||
9880 | +shlibpath_overrides_runpath=$shlibpath_overrides_runpath | ||
9881 | + | ||
9882 | +# How to hardcode a shared library path into an executable. | ||
9883 | +hardcode_action=$hardcode_action | ||
9884 | + | ||
9885 | +# Flag to hardcode \$libdir into a binary during linking. | ||
9886 | +# This must work even if \$libdir does not exist. | ||
9887 | +hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec | ||
9888 | + | ||
9889 | +# Whether we need a single -rpath flag with a separated argument. | ||
9890 | +hardcode_libdir_separator=$hardcode_libdir_separator | ||
9891 | + | ||
9892 | +# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the | ||
9893 | +# resulting binary. | ||
9894 | +hardcode_direct=$hardcode_direct | ||
9895 | + | ||
9896 | +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the | ||
9897 | +# resulting binary. | ||
9898 | +hardcode_minus_L=$hardcode_minus_L | ||
9899 | + | ||
9900 | +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into | ||
9901 | +# the resulting binary. | ||
9902 | +hardcode_shlibpath_var=$hardcode_shlibpath_var | ||
9903 | + | ||
9904 | +# Compile-time system search path for libraries | ||
9905 | +sys_lib_search_path_spec=$sys_lib_search_path_spec | ||
9906 | + | ||
9907 | +# Run-time system search path for libraries | ||
9908 | +sys_lib_dlsearch_path_spec=$sys_lib_dlsearch_path_spec | ||
9909 | + | ||
9910 | +# Fix the shell variable \$srcfile for the compiler. | ||
9911 | +fix_srcfile_path="$fix_srcfile_path" | ||
9912 | + | ||
9913 | +# Set to yes if exported symbols are required. | ||
9914 | +always_export_symbols=$always_export_symbols | ||
9915 | + | ||
9916 | +# The commands to list exported symbols. | ||
9917 | +export_symbols_cmds=$export_symbols_cmds | ||
9918 | + | ||
9919 | +# Symbols that should not be listed in the preloaded symbols. | ||
9920 | +exclude_expsyms=$exclude_expsyms | ||
9921 | + | ||
9922 | +# Symbols that must always be exported. | ||
9923 | +include_expsyms=$include_expsyms | ||
9924 | + | ||
9925 | +EOF | ||
9926 | + | ||
9927 | +case "$ltmain" in | ||
9928 | +*.sh) | ||
9929 | + echo '### END LIBTOOL CONFIG' >> "$ofile" | ||
9930 | + echo >> "$ofile" | ||
9931 | + case "$host_os" in | ||
9932 | + aix3*) | ||
9933 | + cat <<\EOF >> "$ofile" | ||
9934 | + | ||
9935 | +# AIX sometimes has problems with the GCC collect2 program. For some | ||
9936 | +# reason, if we set the COLLECT_NAMES environment variable, the problems | ||
9937 | +# vanish in a puff of smoke. | ||
9938 | +if test "${COLLECT_NAMES+set}" != set; then | ||
9939 | + COLLECT_NAMES= | ||
9940 | + export COLLECT_NAMES | ||
9941 | +fi | ||
9942 | +EOF | ||
9943 | + ;; | ||
9944 | + esac | ||
9945 | + | ||
9946 | + # Append the ltmain.sh script. | ||
9947 | + sed '$q' "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1) | ||
9948 | + | ||
9949 | + chmod +x "$ofile" | ||
9950 | + ;; | ||
9951 | + | ||
9952 | +*) | ||
9953 | + # Compile the libtool program. | ||
9954 | + echo "FIXME: would compile $ltmain" | ||
9955 | + ;; | ||
9956 | +esac | ||
9957 | + | ||
9958 | +test -n "$cache_file" || exit 0 | ||
9959 | + | ||
9960 | +# AC_CACHE_SAVE | ||
9961 | +trap '' 1 2 15 | ||
9962 | +cat > confcache <<\EOF | ||
9963 | +# This file is a shell script that caches the results of configure | ||
9964 | +# tests run on this system so they can be shared between configure | ||
9965 | +# scripts and configure runs. It is not useful on other systems. | ||
9966 | +# If it contains results you don't want to keep, you may remove or edit it. | ||
9967 | +# | ||
9968 | +# By default, configure uses ./config.cache as the cache file, | ||
9969 | +# creating it if it does not exist already. You can give configure | ||
9970 | +# the --cache-file=FILE option to use a different cache file; that is | ||
9971 | +# what configure does when it calls configure scripts in | ||
9972 | +# subdirectories, so they share the cache. | ||
9973 | +# Giving --cache-file=/dev/null disables caching, for debugging configure. | ||
9974 | +# config.status only pays attention to the cache file if you give it the | ||
9975 | +# --recheck option to rerun configure. | ||
9976 | +# | ||
9977 | +EOF | ||
9978 | +# The following way of writing the cache mishandles newlines in values, | ||
9979 | +# but we know of no workaround that is simple, portable, and efficient. | ||
9980 | +# So, don't put newlines in cache variables' values. | ||
9981 | +# Ultrix sh set writes to stderr and can't be redirected directly, | ||
9982 | +# and sets the high bit in the cache file unless we assign to the vars. | ||
9983 | +(set) 2>&1 | | ||
9984 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in | ||
9985 | + *ac_space=\ *) | ||
9986 | + # `set' does not quote correctly, so add quotes (double-quote substitution | ||
9987 | + # turns \\\\ into \\, and sed turns \\ into \). | ||
9988 | + sed -n \ | ||
9989 | + -e "s/'/'\\\\''/g" \ | ||
9990 | + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" | ||
9991 | + ;; | ||
9992 | + *) | ||
9993 | + # `set' quotes correctly as required by POSIX, so do not add quotes. | ||
9994 | + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' | ||
9995 | + ;; | ||
9996 | + esac >> confcache | ||
9997 | +if cmp -s $cache_file confcache; then | ||
9998 | + : | ||
9999 | +else | ||
10000 | + if test -w $cache_file; then | ||
10001 | + echo "updating cache $cache_file" | ||
10002 | + cat confcache > $cache_file | ||
10003 | + else | ||
10004 | + echo "not updating unwritable cache $cache_file" | ||
10005 | + fi | ||
10006 | +fi | ||
10007 | +rm -f confcache | ||
10008 | + | ||
10009 | +exit 0 | ||
10010 | + | ||
10011 | +# Local Variables: | ||
10012 | +# mode:shell-script | ||
10013 | +# sh-indentation:2 | ||
10014 | +# End: | ||
diff --git a/meta/packages/jpeg/jpeg-6b/ldflags.patch b/meta/packages/jpeg/jpeg-6b/ldflags.patch new file mode 100644 index 0000000000..727327bc6e --- /dev/null +++ b/meta/packages/jpeg/jpeg-6b/ldflags.patch | |||
@@ -0,0 +1,16 @@ | |||
1 | |||
2 | # | ||
3 | # Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher | ||
4 | # | ||
5 | |||
6 | --- jpeg-6b/makefile.cfg~ldflags | ||
7 | +++ jpeg-6b/makefile.cfg | ||
8 | @@ -169,7 +169,7 @@ | ||
9 | # with libtool: | ||
10 | libjpeg.la: @A2K_DEPS@ $(LIBOBJECTS) | ||
11 | $(LIBTOOL) --mode=link $(CC) -o libjpeg.la $(LIBOBJECTS) \ | ||
12 | - -rpath $(libdir) -version-info $(JPEG_LIB_VERSION) | ||
13 | + -rpath $(libdir) -version-info $(JPEG_LIB_VERSION) $(LDFLAGS) | ||
14 | |||
15 | # sample programs: | ||
16 | |||
diff --git a/meta/packages/jpeg/jpeg-6b/paths.patch b/meta/packages/jpeg/jpeg-6b/paths.patch new file mode 100644 index 0000000000..014bf4ec0f --- /dev/null +++ b/meta/packages/jpeg/jpeg-6b/paths.patch | |||
@@ -0,0 +1,77 @@ | |||
1 | |||
2 | # | ||
3 | # Patch managed by http://www.holgerschurig.de/patcher.html | ||
4 | # | ||
5 | |||
6 | --- jpeg-6b/makefile.cfg~paths.patch | ||
7 | +++ jpeg-6b/makefile.cfg | ||
8 | @@ -7,17 +7,18 @@ | ||
9 | # For compiling with source and object files in different directories. | ||
10 | srcdir = @srcdir@ | ||
11 | VPATH = @srcdir@ | ||
12 | +DESTDIR = @DESTDIR@ | ||
13 | |||
14 | # Where to install the programs and man pages. | ||
15 | prefix = @prefix@ | ||
16 | exec_prefix = @exec_prefix@ | ||
17 | -bindir = $(exec_prefix)/bin | ||
18 | -libdir = $(exec_prefix)/lib | ||
19 | -includedir = $(prefix)/include | ||
20 | +bindir = @bindir@ | ||
21 | +libdir = @libdir@ | ||
22 | +includedir = @includedir@ | ||
23 | binprefix = | ||
24 | manprefix = | ||
25 | manext = 1 | ||
26 | -mandir = $(prefix)/share/man/man$(manext) | ||
27 | +mandir = @mandir@/man$(manext) | ||
28 | |||
29 | # The name of your C compiler: | ||
30 | CC= @CC@ | ||
31 | @@ -191,30 +192,30 @@ | ||
32 | # Installation rules: | ||
33 | |||
34 | install: cjpeg djpeg jpegtran rdjpgcom wrjpgcom @FORCE_INSTALL_LIB@ | ||
35 | - $(INSTALL_PROGRAM) cjpeg $(bindir)/$(binprefix)cjpeg | ||
36 | - $(INSTALL_PROGRAM) djpeg $(bindir)/$(binprefix)djpeg | ||
37 | - $(INSTALL_PROGRAM) jpegtran $(bindir)/$(binprefix)jpegtran | ||
38 | - $(INSTALL_PROGRAM) rdjpgcom $(bindir)/$(binprefix)rdjpgcom | ||
39 | - $(INSTALL_PROGRAM) wrjpgcom $(bindir)/$(binprefix)wrjpgcom | ||
40 | - $(INSTALL_DATA) $(srcdir)/cjpeg.1 $(mandir)/$(manprefix)cjpeg.$(manext) | ||
41 | - $(INSTALL_DATA) $(srcdir)/djpeg.1 $(mandir)/$(manprefix)djpeg.$(manext) | ||
42 | - $(INSTALL_DATA) $(srcdir)/jpegtran.1 $(mandir)/$(manprefix)jpegtran.$(manext) | ||
43 | - $(INSTALL_DATA) $(srcdir)/rdjpgcom.1 $(mandir)/$(manprefix)rdjpgcom.$(manext) | ||
44 | - $(INSTALL_DATA) $(srcdir)/wrjpgcom.1 $(mandir)/$(manprefix)wrjpgcom.$(manext) | ||
45 | + $(INSTALL_PROGRAM) cjpeg $(DESTDIR)$(bindir)/$(binprefix)cjpeg | ||
46 | + $(INSTALL_PROGRAM) djpeg $(DESTDIR)$(bindir)/$(binprefix)djpeg | ||
47 | + $(INSTALL_PROGRAM) jpegtran $(DESTDIR)$(bindir)/$(binprefix)jpegtran | ||
48 | + $(INSTALL_PROGRAM) rdjpgcom $(DESTDIR)$(bindir)/$(binprefix)rdjpgcom | ||
49 | + $(INSTALL_PROGRAM) wrjpgcom $(DESTDIR)$(bindir)/$(binprefix)wrjpgcom | ||
50 | + $(INSTALL_DATA) $(srcdir)/cjpeg.1 $(DESTDIR)$(mandir)/$(manprefix)cjpeg.$(manext) | ||
51 | + $(INSTALL_DATA) $(srcdir)/djpeg.1 $(DESTDIR)$(mandir)/$(manprefix)djpeg.$(manext) | ||
52 | + $(INSTALL_DATA) $(srcdir)/jpegtran.1 $(DESTDIR)$(mandir)/$(manprefix)jpegtran.$(manext) | ||
53 | + $(INSTALL_DATA) $(srcdir)/rdjpgcom.1 $(DESTDIR)$(mandir)/$(manprefix)rdjpgcom.$(manext) | ||
54 | + $(INSTALL_DATA) $(srcdir)/wrjpgcom.1 $(DESTDIR)$(mandir)/$(manprefix)wrjpgcom.$(manext) | ||
55 | |||
56 | install-lib: libjpeg.$(A) install-headers | ||
57 | - $(INSTALL_LIB) libjpeg.$(A) $(libdir)/$(binprefix)libjpeg.$(A) | ||
58 | + $(INSTALL_LIB) libjpeg.$(A) $(DESTDIR)$(libdir)/$(binprefix)libjpeg.$(A) | ||
59 | |||
60 | install-headers: jconfig.h | ||
61 | - $(INSTALL_DATA) jconfig.h $(includedir)/jconfig.h | ||
62 | - $(INSTALL_DATA) $(srcdir)/jpeglib.h $(includedir)/jpeglib.h | ||
63 | - $(INSTALL_DATA) $(srcdir)/jmorecfg.h $(includedir)/jmorecfg.h | ||
64 | - $(INSTALL_DATA) $(srcdir)/jerror.h $(includedir)/jerror.h | ||
65 | + $(INSTALL_DATA) jconfig.h $(DESTDIR)$(includedir)/jconfig.h | ||
66 | + $(INSTALL_DATA) $(srcdir)/jpeglib.h $(DESTDIR)$(includedir)/jpeglib.h | ||
67 | + $(INSTALL_DATA) $(srcdir)/jmorecfg.h $(DESTDIR)$(includedir)/jmorecfg.h | ||
68 | + $(INSTALL_DATA) $(srcdir)/jerror.h $(DESTDIR)$(includedir)/jerror.h | ||
69 | #<ballombe@debian.org>:mjpegtools require this file to build and header say: | ||
70 | # * These declarations are considered internal to the JPEG library; most | ||
71 | # * applications using the library shouldn't need to include this file. | ||
72 | # So it is not forbidden to use it, therefore it must be installed. | ||
73 | - $(INSTALL_DATA) $(srcdir)/jpegint.h $(includedir)/jpegint.h | ||
74 | + $(INSTALL_DATA) $(srcdir)/jpegint.h $(DESTDIR)$(includedir)/jpegint.h | ||
75 | |||
76 | clean: | ||
77 | $(RM) *.o *.lo libjpeg.a libjpeg.la | ||
diff --git a/meta/packages/jpeg/jpeg-native_6b.bb b/meta/packages/jpeg/jpeg-native_6b.bb new file mode 100644 index 0000000000..b617f1b6c0 --- /dev/null +++ b/meta/packages/jpeg/jpeg-native_6b.bb | |||
@@ -0,0 +1,14 @@ | |||
1 | SECTION = "libs" | ||
2 | include jpeg_${PV}.bb | ||
3 | inherit native | ||
4 | FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/jpeg-${PV}" | ||
5 | DEPENDS = "" | ||
6 | |||
7 | do_stage() { | ||
8 | install -m 644 jconfig.h ${STAGING_INCDIR}/jconfig.h | ||
9 | install -m 644 jpeglib.h ${STAGING_INCDIR}/jpeglib.h | ||
10 | install -m 644 jmorecfg.h ${STAGING_INCDIR}/jmorecfg.h | ||
11 | install -m 644 jerror.h ${STAGING_INCDIR}/jerror.h | ||
12 | install -m 644 jpegint.h ${STAGING_INCDIR}/jpegint.h | ||
13 | oe_libinstall -so libjpeg ${STAGING_LIBDIR} | ||
14 | } | ||
diff --git a/meta/packages/jpeg/jpeg_6b.bb b/meta/packages/jpeg/jpeg_6b.bb new file mode 100644 index 0000000000..23e3ed82be --- /dev/null +++ b/meta/packages/jpeg/jpeg_6b.bb | |||
@@ -0,0 +1,36 @@ | |||
1 | PR = "r2" | ||
2 | SECTION = "libs" | ||
3 | PRIORITY = "required" | ||
4 | MAINTAINER = "Chris Larson <kergoth@handhelds.org>" | ||
5 | DEPENDS = "libtool-cross" | ||
6 | DESCRIPTION = "libjpeg is a library for handling the JPEG (JFIF) image format." | ||
7 | PACKAGES =+ "jpeg-tools " | ||
8 | FILES_jpeg-tools = "${bindir}" | ||
9 | LICENSE ="jpeg" | ||
10 | SRC_URI = "http://www.ijg.org/files/jpegsrc.v${PV}.tar.gz \ | ||
11 | file://debian.patch;patch=1 \ | ||
12 | file://ldflags.patch;patch=1 \ | ||
13 | file://paths.patch;patch=1" | ||
14 | S = "${WORKDIR}/jpeg-${PV}" | ||
15 | |||
16 | inherit autotools | ||
17 | |||
18 | EXTRA_OECONF="--enable-static --enable-shared" | ||
19 | EXTRA_OEMAKE='"LIBTOOL=${STAGING_BINDIR}/${HOST_SYS}-libtool"' | ||
20 | |||
21 | CFLAGS_append = " -D_REENTRANT" | ||
22 | |||
23 | do_stage() { | ||
24 | install -m 644 jconfig.h ${STAGING_INCDIR}/jconfig.h | ||
25 | install -m 644 jpeglib.h ${STAGING_INCDIR}/jpeglib.h | ||
26 | install -m 644 jmorecfg.h ${STAGING_INCDIR}/jmorecfg.h | ||
27 | install -m 644 jerror.h ${STAGING_INCDIR}/jerror.h | ||
28 | install -m 644 jpegint.h ${STAGING_INCDIR}/jpegint.h | ||
29 | oe_libinstall -so libjpeg ${STAGING_LIBDIR} | ||
30 | } | ||
31 | |||
32 | do_install() { | ||
33 | install -d ${D}${bindir} ${D}${includedir} \ | ||
34 | ${D}${mandir}/man1 ${D}${libdir} | ||
35 | oe_runmake 'DESTDIR=${D}' install | ||
36 | } | ||