remogatto-ffi 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (324) hide show
  1. data/LICENSE +51 -0
  2. data/README.rdoc +69 -0
  3. data/Rakefile +144 -0
  4. data/ext/ffi_c/AbstractMemory.c +489 -0
  5. data/ext/ffi_c/AbstractMemory.h +160 -0
  6. data/ext/ffi_c/ArrayType.c +129 -0
  7. data/ext/ffi_c/ArrayType.h +58 -0
  8. data/ext/ffi_c/AutoPointer.c +61 -0
  9. data/ext/ffi_c/AutoPointer.h +18 -0
  10. data/ext/ffi_c/Buffer.c +187 -0
  11. data/ext/ffi_c/Call.c +431 -0
  12. data/ext/ffi_c/Call.h +77 -0
  13. data/ext/ffi_c/DynamicLibrary.c +216 -0
  14. data/ext/ffi_c/DynamicLibrary.h +22 -0
  15. data/ext/ffi_c/Function.c +498 -0
  16. data/ext/ffi_c/Function.h +73 -0
  17. data/ext/ffi_c/FunctionInfo.c +213 -0
  18. data/ext/ffi_c/LastError.c +159 -0
  19. data/ext/ffi_c/LastError.h +18 -0
  20. data/ext/ffi_c/MemoryPointer.c +178 -0
  21. data/ext/ffi_c/MemoryPointer.h +20 -0
  22. data/ext/ffi_c/MethodHandle.c +356 -0
  23. data/ext/ffi_c/MethodHandle.h +53 -0
  24. data/ext/ffi_c/Platform.c +59 -0
  25. data/ext/ffi_c/Platform.h +16 -0
  26. data/ext/ffi_c/Pointer.c +217 -0
  27. data/ext/ffi_c/Pointer.h +49 -0
  28. data/ext/ffi_c/Struct.c +770 -0
  29. data/ext/ffi_c/Struct.h +80 -0
  30. data/ext/ffi_c/StructByValue.c +140 -0
  31. data/ext/ffi_c/StructByValue.h +53 -0
  32. data/ext/ffi_c/StructLayout.c +450 -0
  33. data/ext/ffi_c/Type.c +329 -0
  34. data/ext/ffi_c/Type.h +57 -0
  35. data/ext/ffi_c/Types.c +103 -0
  36. data/ext/ffi_c/Types.h +85 -0
  37. data/ext/ffi_c/Variadic.c +260 -0
  38. data/ext/ffi_c/compat.h +72 -0
  39. data/ext/ffi_c/endian.h +40 -0
  40. data/ext/ffi_c/extconf.rb +34 -0
  41. data/ext/ffi_c/ffi.c +80 -0
  42. data/ext/ffi_c/libffi.bsd.mk +34 -0
  43. data/ext/ffi_c/libffi.darwin.mk +75 -0
  44. data/ext/ffi_c/libffi.gnu.mk +29 -0
  45. data/ext/ffi_c/libffi.mk +13 -0
  46. data/ext/ffi_c/libffi/ChangeLog +3243 -0
  47. data/ext/ffi_c/libffi/ChangeLog.libffi +347 -0
  48. data/ext/ffi_c/libffi/ChangeLog.libgcj +40 -0
  49. data/ext/ffi_c/libffi/ChangeLog.v1 +764 -0
  50. data/ext/ffi_c/libffi/LICENSE +21 -0
  51. data/ext/ffi_c/libffi/Makefile.am +177 -0
  52. data/ext/ffi_c/libffi/Makefile.in +1640 -0
  53. data/ext/ffi_c/libffi/README +328 -0
  54. data/ext/ffi_c/libffi/TODO +1 -0
  55. data/ext/ffi_c/libffi/acinclude.m4 +92 -0
  56. data/ext/ffi_c/libffi/aclocal.m4 +7516 -0
  57. data/ext/ffi_c/libffi/compile +142 -0
  58. data/ext/ffi_c/libffi/config.guess +1516 -0
  59. data/ext/ffi_c/libffi/config.sub +1626 -0
  60. data/ext/ffi_c/libffi/configure +24414 -0
  61. data/ext/ffi_c/libffi/configure.ac +365 -0
  62. data/ext/ffi_c/libffi/configure.host +11 -0
  63. data/ext/ffi_c/libffi/depcomp +584 -0
  64. data/ext/ffi_c/libffi/doc/libffi.info +533 -0
  65. data/ext/ffi_c/libffi/doc/libffi.texi +541 -0
  66. data/ext/ffi_c/libffi/doc/stamp-vti +4 -0
  67. data/ext/ffi_c/libffi/doc/version.texi +4 -0
  68. data/ext/ffi_c/libffi/fficonfig.h.in +160 -0
  69. data/ext/ffi_c/libffi/include/Makefile.am +9 -0
  70. data/ext/ffi_c/libffi/include/Makefile.in +422 -0
  71. data/ext/ffi_c/libffi/include/ffi.h.in +393 -0
  72. data/ext/ffi_c/libffi/include/ffi_common.h +98 -0
  73. data/ext/ffi_c/libffi/install-sh +323 -0
  74. data/ext/ffi_c/libffi/libffi.pc.in +10 -0
  75. data/ext/ffi_c/libffi/libtool-version +29 -0
  76. data/ext/ffi_c/libffi/ltcf-c.sh +861 -0
  77. data/ext/ffi_c/libffi/ltcf-cxx.sh +1069 -0
  78. data/ext/ffi_c/libffi/ltcf-gcj.sh +700 -0
  79. data/ext/ffi_c/libffi/ltconfig +2862 -0
  80. data/ext/ffi_c/libffi/ltmain.sh +6930 -0
  81. data/ext/ffi_c/libffi/man/Makefile.am +8 -0
  82. data/ext/ffi_c/libffi/man/Makefile.in +395 -0
  83. data/ext/ffi_c/libffi/man/ffi.3 +31 -0
  84. data/ext/ffi_c/libffi/man/ffi_call.3 +103 -0
  85. data/ext/ffi_c/libffi/man/ffi_prep_cif.3 +66 -0
  86. data/ext/ffi_c/libffi/mdate-sh +201 -0
  87. data/ext/ffi_c/libffi/missing +353 -0
  88. data/ext/ffi_c/libffi/mkinstalldirs +158 -0
  89. data/ext/ffi_c/libffi/src/alpha/ffi.c +284 -0
  90. data/ext/ffi_c/libffi/src/alpha/ffitarget.h +48 -0
  91. data/ext/ffi_c/libffi/src/alpha/osf.S +366 -0
  92. data/ext/ffi_c/libffi/src/arm/ffi.c +309 -0
  93. data/ext/ffi_c/libffi/src/arm/ffitarget.h +49 -0
  94. data/ext/ffi_c/libffi/src/arm/sysv.S +299 -0
  95. data/ext/ffi_c/libffi/src/closures.c +596 -0
  96. data/ext/ffi_c/libffi/src/cris/ffi.c +383 -0
  97. data/ext/ffi_c/libffi/src/cris/ffitarget.h +51 -0
  98. data/ext/ffi_c/libffi/src/cris/sysv.S +215 -0
  99. data/ext/ffi_c/libffi/src/debug.c +59 -0
  100. data/ext/ffi_c/libffi/src/dlmalloc.c +5099 -0
  101. data/ext/ffi_c/libffi/src/frv/eabi.S +128 -0
  102. data/ext/ffi_c/libffi/src/frv/ffi.c +292 -0
  103. data/ext/ffi_c/libffi/src/frv/ffitarget.h +61 -0
  104. data/ext/ffi_c/libffi/src/ia64/ffi.c +580 -0
  105. data/ext/ffi_c/libffi/src/ia64/ffitarget.h +50 -0
  106. data/ext/ffi_c/libffi/src/ia64/ia64_flags.h +40 -0
  107. data/ext/ffi_c/libffi/src/ia64/unix.S +560 -0
  108. data/ext/ffi_c/libffi/src/java_raw_api.c +359 -0
  109. data/ext/ffi_c/libffi/src/m32r/ffi.c +232 -0
  110. data/ext/ffi_c/libffi/src/m32r/ffitarget.h +48 -0
  111. data/ext/ffi_c/libffi/src/m32r/sysv.S +121 -0
  112. data/ext/ffi_c/libffi/src/m68k/ffi.c +278 -0
  113. data/ext/ffi_c/libffi/src/m68k/ffitarget.h +49 -0
  114. data/ext/ffi_c/libffi/src/m68k/sysv.S +234 -0
  115. data/ext/ffi_c/libffi/src/mips/ffi.c +926 -0
  116. data/ext/ffi_c/libffi/src/mips/ffitarget.h +202 -0
  117. data/ext/ffi_c/libffi/src/mips/n32.S +534 -0
  118. data/ext/ffi_c/libffi/src/mips/o32.S +381 -0
  119. data/ext/ffi_c/libffi/src/pa/ffi.c +709 -0
  120. data/ext/ffi_c/libffi/src/pa/ffitarget.h +77 -0
  121. data/ext/ffi_c/libffi/src/pa/hpux32.S +368 -0
  122. data/ext/ffi_c/libffi/src/pa/linux.S +357 -0
  123. data/ext/ffi_c/libffi/src/powerpc/aix.S +225 -0
  124. data/ext/ffi_c/libffi/src/powerpc/aix_closure.S +247 -0
  125. data/ext/ffi_c/libffi/src/powerpc/asm.h +125 -0
  126. data/ext/ffi_c/libffi/src/powerpc/darwin.S +245 -0
  127. data/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +317 -0
  128. data/ext/ffi_c/libffi/src/powerpc/ffi.c +1429 -0
  129. data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +800 -0
  130. data/ext/ffi_c/libffi/src/powerpc/ffitarget.h +118 -0
  131. data/ext/ffi_c/libffi/src/powerpc/linux64.S +187 -0
  132. data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +236 -0
  133. data/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +327 -0
  134. data/ext/ffi_c/libffi/src/powerpc/sysv.S +230 -0
  135. data/ext/ffi_c/libffi/src/prep_cif.c +174 -0
  136. data/ext/ffi_c/libffi/src/raw_api.c +254 -0
  137. data/ext/ffi_c/libffi/src/s390/ffi.c +780 -0
  138. data/ext/ffi_c/libffi/src/s390/ffitarget.h +60 -0
  139. data/ext/ffi_c/libffi/src/s390/sysv.S +434 -0
  140. data/ext/ffi_c/libffi/src/sh/ffi.c +716 -0
  141. data/ext/ffi_c/libffi/src/sh/ffitarget.h +49 -0
  142. data/ext/ffi_c/libffi/src/sh/sysv.S +850 -0
  143. data/ext/ffi_c/libffi/src/sh64/ffi.c +453 -0
  144. data/ext/ffi_c/libffi/src/sh64/ffitarget.h +53 -0
  145. data/ext/ffi_c/libffi/src/sh64/sysv.S +530 -0
  146. data/ext/ffi_c/libffi/src/sparc/ffi.c +610 -0
  147. data/ext/ffi_c/libffi/src/sparc/ffitarget.h +66 -0
  148. data/ext/ffi_c/libffi/src/sparc/v8.S +272 -0
  149. data/ext/ffi_c/libffi/src/sparc/v9.S +307 -0
  150. data/ext/ffi_c/libffi/src/types.c +77 -0
  151. data/ext/ffi_c/libffi/src/x86/darwin.S +443 -0
  152. data/ext/ffi_c/libffi/src/x86/darwin64.S +416 -0
  153. data/ext/ffi_c/libffi/src/x86/ffi.c +475 -0
  154. data/ext/ffi_c/libffi/src/x86/ffi64.c +572 -0
  155. data/ext/ffi_c/libffi/src/x86/ffitarget.h +90 -0
  156. data/ext/ffi_c/libffi/src/x86/freebsd.S +458 -0
  157. data/ext/ffi_c/libffi/src/x86/sysv.S +437 -0
  158. data/ext/ffi_c/libffi/src/x86/unix64.S +418 -0
  159. data/ext/ffi_c/libffi/src/x86/win32.S +391 -0
  160. data/ext/ffi_c/libffi/testsuite/Makefile.am +71 -0
  161. data/ext/ffi_c/libffi/testsuite/Makefile.in +447 -0
  162. data/ext/ffi_c/libffi/testsuite/config/default.exp +1 -0
  163. data/ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp +289 -0
  164. data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +263 -0
  165. data/ext/ffi_c/libffi/testsuite/lib/wrapper.exp +45 -0
  166. data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +36 -0
  167. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn0.c +97 -0
  168. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn1.c +89 -0
  169. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn2.c +89 -0
  170. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn3.c +90 -0
  171. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn4.c +97 -0
  172. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn5.c +99 -0
  173. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn6.c +98 -0
  174. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_stdcall.c +72 -0
  175. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +102 -0
  176. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +103 -0
  177. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +104 -0
  178. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +110 -0
  179. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +97 -0
  180. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +99 -0
  181. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +101 -0
  182. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +121 -0
  183. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +98 -0
  184. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +103 -0
  185. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +98 -0
  186. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +98 -0
  187. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +106 -0
  188. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +98 -0
  189. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +117 -0
  190. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +106 -0
  191. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +132 -0
  192. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +121 -0
  193. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +107 -0
  194. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +125 -0
  195. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +105 -0
  196. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +96 -0
  197. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +98 -0
  198. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +99 -0
  199. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +101 -0
  200. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +99 -0
  201. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +100 -0
  202. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +101 -0
  203. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +99 -0
  204. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +99 -0
  205. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +99 -0
  206. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +99 -0
  207. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +99 -0
  208. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +100 -0
  209. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_double.c +51 -0
  210. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_float.c +51 -0
  211. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_schar.c +82 -0
  212. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshort.c +82 -0
  213. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshortchar.c +94 -0
  214. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_uchar.c +99 -0
  215. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushort.c +82 -0
  216. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushortchar.c +94 -0
  217. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_schar.c +52 -0
  218. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_sint.c +50 -0
  219. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_sshort.c +50 -0
  220. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar.c +50 -0
  221. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint.c +51 -0
  222. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +54 -0
  223. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort.c +51 -0
  224. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +86 -0
  225. data/ext/ffi_c/libffi/testsuite/libffi.call/float.c +59 -0
  226. data/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +58 -0
  227. data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +57 -0
  228. data/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +72 -0
  229. data/ext/ffi_c/libffi/testsuite/libffi.call/float4.c +62 -0
  230. data/ext/ffi_c/libffi/testsuite/libffi.call/many.c +69 -0
  231. data/ext/ffi_c/libffi/testsuite/libffi.call/many_win32.c +63 -0
  232. data/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +53 -0
  233. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +160 -0
  234. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +169 -0
  235. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +141 -0
  236. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +118 -0
  237. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +119 -0
  238. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +119 -0
  239. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +120 -0
  240. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +139 -0
  241. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +119 -0
  242. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +139 -0
  243. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +139 -0
  244. data/ext/ffi_c/libffi/testsuite/libffi.call/problem1.c +98 -0
  245. data/ext/ffi_c/libffi/testsuite/libffi.call/promotion.c +59 -0
  246. data/ext/ffi_c/libffi/testsuite/libffi.call/pyobjc-tc.c +114 -0
  247. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +35 -0
  248. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c +43 -0
  249. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c +42 -0
  250. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c +35 -0
  251. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c +36 -0
  252. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c +49 -0
  253. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c +42 -0
  254. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +34 -0
  255. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c +41 -0
  256. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +42 -0
  257. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +36 -0
  258. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +38 -0
  259. data/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +38 -0
  260. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +38 -0
  261. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +44 -0
  262. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen_win32.c +44 -0
  263. data/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +65 -0
  264. data/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +67 -0
  265. data/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +59 -0
  266. data/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +63 -0
  267. data/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +65 -0
  268. data/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +64 -0
  269. data/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +74 -0
  270. data/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +80 -0
  271. data/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +67 -0
  272. data/ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h +86 -0
  273. data/ext/ffi_c/libffi/testsuite/libffi.special/special.exp +38 -0
  274. data/ext/ffi_c/libffi/testsuite/libffi.special/unwindtest.cc +123 -0
  275. data/ext/ffi_c/libffi/testsuite/libffi.special/unwindtest_ffi_call.cc +53 -0
  276. data/ext/ffi_c/libffi/texinfo.tex +7482 -0
  277. data/ext/ffi_c/rbffi.h +26 -0
  278. data/gen/Rakefile +12 -0
  279. data/lib/ffi.rb +11 -0
  280. data/lib/ffi/autopointer.rb +61 -0
  281. data/lib/ffi/buffer.rb +0 -0
  282. data/lib/ffi/callback.rb +10 -0
  283. data/lib/ffi/enum.rb +78 -0
  284. data/lib/ffi/errno.rb +8 -0
  285. data/lib/ffi/ffi.rb +99 -0
  286. data/lib/ffi/io.rb +21 -0
  287. data/lib/ffi/library.rb +218 -0
  288. data/lib/ffi/managedstruct.rb +55 -0
  289. data/lib/ffi/memorypointer.rb +73 -0
  290. data/lib/ffi/platform.rb +78 -0
  291. data/lib/ffi/pointer.rb +119 -0
  292. data/lib/ffi/struct.rb +164 -0
  293. data/lib/ffi/tools/const_generator.rb +177 -0
  294. data/lib/ffi/tools/generator.rb +58 -0
  295. data/lib/ffi/tools/generator_task.rb +35 -0
  296. data/lib/ffi/tools/struct_generator.rb +194 -0
  297. data/lib/ffi/tools/types_generator.rb +123 -0
  298. data/lib/ffi/types.rb +153 -0
  299. data/lib/ffi/union.rb +12 -0
  300. data/lib/ffi/variadic.rb +25 -0
  301. data/spec/ffi/bool_spec.rb +24 -0
  302. data/spec/ffi/buffer_spec.rb +202 -0
  303. data/spec/ffi/callback_spec.rb +591 -0
  304. data/spec/ffi/enum_spec.rb +164 -0
  305. data/spec/ffi/errno_spec.rb +13 -0
  306. data/spec/ffi/function_spec.rb +47 -0
  307. data/spec/ffi/library_spec.rb +144 -0
  308. data/spec/ffi/managed_struct_spec.rb +56 -0
  309. data/spec/ffi/number_spec.rb +231 -0
  310. data/spec/ffi/pointer_spec.rb +195 -0
  311. data/spec/ffi/rbx/attach_function_spec.rb +27 -0
  312. data/spec/ffi/rbx/memory_pointer_spec.rb +102 -0
  313. data/spec/ffi/rbx/spec_helper.rb +1 -0
  314. data/spec/ffi/rbx/struct_spec.rb +13 -0
  315. data/spec/ffi/spec_helper.rb +17 -0
  316. data/spec/ffi/string_spec.rb +103 -0
  317. data/spec/ffi/struct_callback_spec.rb +62 -0
  318. data/spec/ffi/struct_initialize_spec.rb +30 -0
  319. data/spec/ffi/struct_spec.rb +529 -0
  320. data/spec/ffi/typedef_spec.rb +48 -0
  321. data/spec/ffi/union_spec.rb +60 -0
  322. data/spec/ffi/variadic_spec.rb +84 -0
  323. data/spec/spec.opts +4 -0
  324. metadata +432 -0
@@ -0,0 +1,2862 @@
1
+ #! /bin/sh
2
+
3
+ # ltconfig - Create a system-specific libtool.
4
+ # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
5
+ # Free Software Foundation, Inc.
6
+ # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
7
+ #
8
+ # This file is free software; you can redistribute it and/or modify it
9
+ # under the terms of the GNU General Public License as published by
10
+ # the Free Software Foundation; either version 2 of the License, or
11
+ # (at your option) any later version.
12
+ #
13
+ # This program is distributed in the hope that it will be useful, but
14
+ # WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
+ # General Public License for more details.
17
+ #
18
+ # You should have received a copy of the GNU General Public License
19
+ # along with this program; if not, write to the Free Software
20
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21
+ #
22
+ # As a special exception to the GNU General Public License, if you
23
+ # distribute this file as part of a program that contains a
24
+ # configuration script generated by Autoconf, you may include it under
25
+ # the same distribution terms that you use for the rest of that program.
26
+
27
+ # A lot of this script is taken from autoconf-2.10.
28
+
29
+ # Check that we are running under the correct shell.
30
+ SHELL=${CONFIG_SHELL-/bin/sh}
31
+ echo=echo
32
+ if test "X$1" = X--no-reexec; then
33
+ # Discard the --no-reexec flag, and continue.
34
+ shift
35
+ elif test "X$1" = X--fallback-echo; then
36
+ # Avoid inline document here, it may be left over
37
+ :
38
+ elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
39
+ # Yippee, $echo works!
40
+ :
41
+ else
42
+ # Restart under the correct shell.
43
+ exec "$SHELL" "$0" --no-reexec ${1+"$@"}
44
+ fi
45
+
46
+ if test "X$1" = X--fallback-echo; then
47
+ # used as fallback echo
48
+ shift
49
+ cat <<EOF
50
+ $*
51
+ EOF
52
+ exit 0
53
+ fi
54
+
55
+ # Find the correct PATH separator. Usually this is `:', but
56
+ # DJGPP uses `;' like DOS.
57
+ if test "X${PATH_SEPARATOR+set}" != Xset; then
58
+ UNAME=${UNAME-`uname 2>/dev/null`}
59
+ case X$UNAME in
60
+ *-DOS) PATH_SEPARATOR=';' ;;
61
+ *) PATH_SEPARATOR=':' ;;
62
+ esac
63
+ fi
64
+
65
+ # The HP-UX ksh and POSIX shell print the target directory to stdout
66
+ # if CDPATH is set.
67
+ if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
68
+
69
+ if test "X${echo_test_string+set}" != Xset; then
70
+ # find a string as large as possible, as long as the shell can cope with it
71
+ for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
72
+ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
73
+ if (echo_test_string="`eval $cmd`") 2>/dev/null &&
74
+ echo_test_string="`eval $cmd`" &&
75
+ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null; then
76
+ break
77
+ fi
78
+ done
79
+ fi
80
+
81
+ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
82
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
83
+ test "X$echo_testing_string" = "X$echo_test_string"; then
84
+ :
85
+ else
86
+ # The Solaris, AIX, and Digital Unix default echo programs unquote
87
+ # backslashes. This makes it impossible to quote backslashes using
88
+ # echo "$something" | sed 's/\\/\\\\/g'
89
+ #
90
+ # So, first we look for a working echo in the user's PATH.
91
+
92
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
93
+ for dir in $PATH /usr/ucb; do
94
+ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
95
+ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
96
+ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
97
+ test "X$echo_testing_string" = "X$echo_test_string"; then
98
+ echo="$dir/echo"
99
+ break
100
+ fi
101
+ done
102
+ IFS="$save_ifs"
103
+
104
+ if test "X$echo" = Xecho; then
105
+ # We didn't find a better echo, so look for alternatives.
106
+ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
107
+ echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
108
+ test "X$echo_testing_string" = "X$echo_test_string"; then
109
+ # This shell has a builtin print -r that does the trick.
110
+ echo='print -r'
111
+ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
112
+ test "X$CONFIG_SHELL" != X/bin/ksh; then
113
+ # If we have ksh, try running ltconfig again with it.
114
+ ORIGINAL_CONFIG_SHELL="${CONFIG_SHELL-/bin/sh}"
115
+ export ORIGINAL_CONFIG_SHELL
116
+ CONFIG_SHELL=/bin/ksh
117
+ export CONFIG_SHELL
118
+ exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"}
119
+ else
120
+ # Try using printf.
121
+ echo='printf %s\n'
122
+ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
123
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
124
+ test "X$echo_testing_string" = "X$echo_test_string"; then
125
+ # Cool, printf works
126
+ :
127
+ elif echo_testing_string=`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null` &&
128
+ test "X$echo_testing_string" = 'X\t' &&
129
+ echo_testing_string=`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
130
+ test "X$echo_testing_string" = "X$echo_test_string"; then
131
+ CONFIG_SHELL="$ORIGINAL_CONFIG_SHELL"
132
+ export CONFIG_SHELL
133
+ SHELL="$CONFIG_SHELL"
134
+ export SHELL
135
+ echo="$CONFIG_SHELL $0 --fallback-echo"
136
+ elif echo_testing_string=`("$CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null` &&
137
+ test "X$echo_testing_string" = 'X\t' &&
138
+ echo_testing_string=`("$CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
139
+ test "X$echo_testing_string" = "X$echo_test_string"; then
140
+ echo="$CONFIG_SHELL $0 --fallback-echo"
141
+ else
142
+ # maybe with a smaller string...
143
+ prev=:
144
+
145
+ for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
146
+ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null; then
147
+ break
148
+ fi
149
+ prev="$cmd"
150
+ done
151
+
152
+ if test "$prev" != 'sed 50q "$0"'; then
153
+ echo_test_string=`eval $prev`
154
+
155
+ export echo_test_string
156
+ exec "${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}}" "$0" ${1+"$@"}
157
+ else
158
+ # Oops. We lost completely, so just stick with echo.
159
+ echo=echo
160
+ fi
161
+ fi
162
+ fi
163
+ fi
164
+ fi
165
+
166
+ # Sed substitution that helps us do robust quoting. It backslashifies
167
+ # metacharacters that are still active within double-quoted strings.
168
+ Xsed='sed -e s/^X//'
169
+ sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
170
+
171
+ # Same as above, but do not quote variable references.
172
+ double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
173
+
174
+ # Sed substitution to delay expansion of an escaped shell variable in a
175
+ # double_quote_subst'ed string.
176
+ delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
177
+
178
+ # The name of this program.
179
+ progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'`
180
+
181
+ # Constants:
182
+ PROGRAM=ltconfig
183
+ PACKAGE=libtool
184
+ VERSION=1.4a-GCC3.0
185
+ TIMESTAMP=" (1.641.2.256 2001/05/28 20:09:07 with GCC-local changes)"
186
+ ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
187
+ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
188
+ rm="rm -f"
189
+
190
+ help="Try \`$progname --help' for more information."
191
+
192
+ # Global variables:
193
+ default_ofile=libtool
194
+ can_build_shared=yes
195
+ enable_shared=yes
196
+ # All known linkers require a `.a' archive for static linking (except M$VC,
197
+ # which needs '.lib').
198
+ enable_static=yes
199
+ enable_fast_install=yes
200
+ enable_dlopen=unknown
201
+ enable_win32_dll=no
202
+ pic_mode=default
203
+ ltmain=
204
+ silent=
205
+ srcdir=
206
+ ac_config_guess=
207
+ ac_config_sub=
208
+ host=
209
+ build=NONE
210
+ nonopt=NONE
211
+ ofile="$default_ofile"
212
+ verify_host=yes
213
+ tagname=
214
+ with_gcc=no
215
+ with_gnu_ld=no
216
+ need_locks=yes
217
+ ac_ext=c
218
+ libext=a
219
+ cache_file=
220
+ max_cmd_len=
221
+
222
+ ## Dependencies to place before and after the object being linked:
223
+ predep_objects=
224
+ postdep_objects=
225
+ predeps=
226
+ postdeps=
227
+ compiler_lib_search_path=
228
+
229
+ ## Link characteristics:
230
+ allow_undefined_flag=
231
+ no_undefined_flag=
232
+ need_lib_prefix=unknown
233
+ need_version=unknown
234
+ # when you set need_version to no, make sure it does not cause -set_version
235
+ # flags to be left without arguments
236
+ archive_cmds=
237
+ archive_expsym_cmds=
238
+ old_archive_from_new_cmds=
239
+ old_archive_from_expsyms_cmds=
240
+ striplib=
241
+ old_striplib=
242
+ export_dynamic_flag_spec=
243
+ whole_archive_flag_spec=
244
+ thread_safe_flag_spec=
245
+ hardcode_into_libs=no
246
+ hardcode_libdir_flag_spec=
247
+ hardcode_libdir_separator=
248
+ hardcode_direct=no
249
+ hardcode_minus_L=no
250
+ hardcode_shlibpath_var=unsupported
251
+ runpath_var=
252
+ link_all_deplibs=unknown
253
+ always_export_symbols=no
254
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
255
+ # include_expsyms should be a list of space-separated symbols to be *always*
256
+ # included in the symbol list
257
+ include_expsyms=
258
+ # exclude_expsyms can be an egrep regular expression of symbols to exclude
259
+ # it will be wrapped by ` (' and `)$', so one must not match beginning or
260
+ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
261
+ # as well as any symbol that contains `d'.
262
+ exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
263
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
264
+ # platforms (ab)use it in PIC code, but their linkers get confused if
265
+ # the symbol is explicitly referenced. Since portable code cannot
266
+ # rely on this symbol name, it's probably fine to never include it in
267
+ # preloaded symbol tables.
268
+ extract_expsyms_cmds=
269
+
270
+ ## Tools:
271
+ old_AR="$AR"
272
+ old_AR_FLAGS="$AR_FLAGS"
273
+ old_CC="$CC"
274
+ old_CFLAGS="$CFLAGS"
275
+ old_CPPFLAGS="$CPPFLAGS"
276
+ old_LDFLAGS="$LDFLAGS"
277
+ old_LIBS="$LIBS"
278
+ old_MAGIC_CMD="$MAGIC_CMD"
279
+ old_LD="$LD"
280
+ old_LN_S="$LN_S"
281
+ old_LTCC="$LTCC"
282
+ old_NM="$NM"
283
+ old_RANLIB="$RANLIB"
284
+ old_STRIP="$STRIP"
285
+ old_AS="$AS"
286
+ old_DLLTOOL="$DLLTOOL"
287
+ old_OBJDUMP="$OBJDUMP"
288
+ old_OBJEXT="$OBJEXT"
289
+ old_EXEEXT="$EXEEXT"
290
+ old_reload_flag="$reload_flag"
291
+ old_deplibs_check_method="$deplibs_check_method"
292
+ old_file_magic_cmd="$file_magic_cmd"
293
+
294
+ # Parse the command line options.
295
+ args=
296
+ prev=
297
+ for option
298
+ do
299
+ case $option in
300
+ -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
301
+ *) optarg= ;;
302
+ esac
303
+
304
+ # If the previous option needs an argument, assign it.
305
+ if test -n "$prev"; then
306
+ eval "$prev=\$option"
307
+ prev=
308
+ continue
309
+ fi
310
+
311
+ case $option in
312
+ --help) cat <<EOM
313
+ Usage: $progname [OPTION]... LTMAIN [HOST]
314
+
315
+ Generate a system-specific libtool script.
316
+
317
+ --build configure for building on BUILD [BUILD=HOST]
318
+ --debug enable verbose shell tracing
319
+ --disable-shared do not build shared libraries
320
+ --disable-static do not build static libraries
321
+ --disable-fast-install do not optimize for fast installation
322
+ --enable-dlopen enable dlopen support
323
+ --enable-win32-dll enable building dlls on win32 hosts
324
+ --help display this help and exit
325
+ --no-verify do not verify that HOST is a valid host type
326
+ -o, --output=FILE specify the output file [default=$default_ofile]
327
+ --quiet same as \`--silent'
328
+ --silent do not print informational messages
329
+ --srcdir=DIR find \`config.guess' in DIR
330
+ --version output version information and exit
331
+ --add-tag=TAG append an alternate configuration
332
+ --with-gcc assume that the GNU C compiler will be used
333
+ --with-gnu-ld assume that the C compiler uses the GNU linker
334
+ --prefer-pic try to use only PIC objects
335
+ --prefer-non-pic try to use only non-PIC objects
336
+ --disable-lock disable file locking
337
+ --cache-file=FILE configure cache file
338
+
339
+ LTMAIN is the \`ltmain.sh' shell script fragment or \`ltmain.c' program
340
+ that provides basic libtool functionality.
341
+
342
+ HOST is the canonical host system name [default=guessed].
343
+ EOM
344
+ exit 0
345
+ ;;
346
+
347
+ --build) prev=build ;;
348
+ --build=*) build="$optarg" ;;
349
+
350
+ --debug)
351
+ echo "$progname: enabling shell trace mode"
352
+ set -x
353
+ ;;
354
+
355
+ --disable-shared) enable_shared=no ;;
356
+
357
+ --disable-static) enable_static=no ;;
358
+
359
+ --disable-fast-install) enable_fast_install=no ;;
360
+
361
+ --enable-dlopen) enable_dlopen=yes ;;
362
+
363
+ --enable-win32-dll) enable_win32_dll=yes ;;
364
+
365
+ --quiet | --silent) silent=yes ;;
366
+
367
+ --srcdir) prev=srcdir ;;
368
+ --srcdir=*) srcdir="$optarg" ;;
369
+
370
+ --no-verify) verify_host=no ;;
371
+
372
+ --output | -o) prev=ofile ;;
373
+ --output=*) ofile="$optarg" ;;
374
+
375
+ --version) echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"; exit 0 ;;
376
+
377
+ --add-tag) prev=tagname ;;
378
+ --add-tag=*) tagname="$optarg" ;;
379
+
380
+ --with-gcc) with_gcc=yes ;;
381
+ --with-gnu-ld) with_gnu_ld=yes ;;
382
+
383
+ --prefer-pic) pic_mode=yes ;;
384
+ --prefer-non-pic) pic_mode=no ;;
385
+
386
+ --disable-lock) need_locks=no ;;
387
+
388
+ --cache-file=*) cache_file="$optarg" ;;
389
+
390
+ -*)
391
+ echo "$progname: unrecognized option \`$option'" 1>&2
392
+ echo "$help" 1>&2
393
+ exit 1
394
+ ;;
395
+
396
+ *)
397
+ if test -z "$ltmain"; then
398
+ ltmain="$option"
399
+ elif test -z "$host"; then
400
+ # This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1
401
+ # if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then
402
+ # echo "$progname: warning \`$option' is not a valid host type" 1>&2
403
+ # fi
404
+ host="$option"
405
+ else
406
+ echo "$progname: too many arguments" 1>&2
407
+ echo "$help" 1>&2
408
+ exit 1
409
+ fi ;;
410
+ esac
411
+ done
412
+
413
+ if test -z "$ltmain"; then
414
+ echo "$progname: you must specify a LTMAIN file" 1>&2
415
+ echo "$help" 1>&2
416
+ exit 1
417
+ fi
418
+
419
+ if test ! -f "$ltmain"; then
420
+ echo "$progname: \`$ltmain' does not exist" 1>&2
421
+ echo "$help" 1>&2
422
+ exit 1
423
+ fi
424
+
425
+ if test -n "$tagname"; then
426
+ # Check whether tagname contains only valid characters
427
+ case `$echo "X$tagname" | $Xsed -e 's/[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]//g'` in
428
+ "") ;;
429
+ *)
430
+ echo "$progname: invalid tag name: $tagname" 1>&2
431
+ exit 1
432
+ ;;
433
+ esac
434
+
435
+ if grep "^### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$ofile" > /dev/null; then
436
+ echo "$progname: tag name $tagname already exists" 1>&2
437
+ exit 1
438
+ fi
439
+
440
+ if test ! -f "$ofile"; then
441
+ echo "$progname: warning: output file \`$ofile' does not exist" 1>&2
442
+ fi
443
+
444
+ if test -z "$LTCC"; then
445
+ eval "`$SHELL $ofile --config | grep '^LTCC='`"
446
+ if test -z "$LTCC"; then
447
+ echo "$progname: warning: output file \`$ofile' does not look like a libtool script" 1>&2
448
+ else
449
+ echo "$progname: warning: using \`LTCC=$LTCC', extracted from \`$ofile'" 1>&2
450
+ fi
451
+ fi
452
+ fi
453
+
454
+ # Quote any args containing shell metacharacters.
455
+ ltconfig_args=
456
+ for arg
457
+ do
458
+ case $arg in
459
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
460
+ ltconfig_args="$ltconfig_args '$arg'" ;;
461
+ *) ltconfig_args="$ltconfig_args $arg" ;;
462
+ esac
463
+ done
464
+
465
+ # A relevant subset of AC_INIT.
466
+
467
+ # File descriptor usage:
468
+ # 0 standard input
469
+ # 1 file creation
470
+ # 2 errors and warnings
471
+ # 3 some systems may open it to /dev/tty
472
+ # 4 used on the Kubota Titan
473
+ # 5 compiler messages saved in config.log
474
+ # 6 checking for... messages and results
475
+ if test "$silent" = yes; then
476
+ exec 6>/dev/null
477
+ else
478
+ exec 6>&1
479
+ fi
480
+ exec 5>>./config.log
481
+
482
+ # NLS nuisances.
483
+ # Only set LANG and LC_ALL to C if already set.
484
+ # These must not be set unconditionally because not all systems understand
485
+ # e.g. LANG=C (notably SCO).
486
+ if test "X${LC_ALL+set}" = Xset; then LC_ALL=C; export LC_ALL; fi
487
+ if test "X${LANG+set}" = Xset; then LANG=C; export LANG; fi
488
+
489
+ if test -n "$cache_file" && test -r "$cache_file" && test -f "$cache_file"; then
490
+ echo "loading cache $cache_file within ltconfig"
491
+ . $cache_file
492
+ fi
493
+
494
+ if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
495
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
496
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
497
+ ac_n= ac_c='
498
+ ' ac_t=' '
499
+ else
500
+ ac_n=-n ac_c= ac_t=
501
+ fi
502
+ else
503
+ ac_n= ac_c='\c' ac_t=
504
+ fi
505
+
506
+ if test -z "$srcdir"; then
507
+ # Assume the source directory is the same one as the path to LTMAIN.
508
+ srcdir=`$echo "X$ltmain" | $Xsed -e 's%/[^/]*$%%'`
509
+ test "$srcdir" = "$ltmain" && srcdir=.
510
+ fi
511
+
512
+ trap "$rm conftest*; exit 1" 1 2 15
513
+ if test "$verify_host" = yes; then
514
+ # Check for config.guess and config.sub.
515
+ ac_aux_dir=
516
+ for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
517
+ if test -f $ac_dir/config.guess; then
518
+ ac_aux_dir=$ac_dir
519
+ break
520
+ fi
521
+ done
522
+ if test -z "$ac_aux_dir"; then
523
+ echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2
524
+ echo "$help" 1>&2
525
+ exit 1
526
+ fi
527
+ ac_config_guess=$ac_aux_dir/config.guess
528
+ ac_config_sub=$ac_aux_dir/config.sub
529
+
530
+ # Make sure we can run config.sub.
531
+ if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then :
532
+ else
533
+ echo "$progname: cannot run $ac_config_sub" 1>&2
534
+ echo "$help" 1>&2
535
+ exit 1
536
+ fi
537
+
538
+ echo $ac_n "checking host system type""... $ac_c" 1>&6
539
+
540
+ host_alias=$host
541
+ case $host_alias in
542
+ "")
543
+ # Force config.guess to use the C compiler.
544
+ # CC_FOR_BUILD overrides the CC variable in config.guess but I had
545
+ # problems with it so do it this way for now.
546
+ CC="$LTCC"
547
+
548
+ if host_alias=`$SHELL $ac_config_guess`; then :
549
+ else
550
+ echo "$progname: cannot guess host type; you must specify one" 1>&2
551
+ echo "$help" 1>&2
552
+ exit 1
553
+ fi
554
+
555
+ # Restore the C compiler.
556
+ CC="$old_CC"
557
+ ;;
558
+ esac
559
+ host=`$SHELL $ac_config_sub $host_alias`
560
+ echo "$ac_t$host" 1>&6
561
+
562
+ # Make sure the host verified.
563
+ test -z "$host" && exit 1
564
+
565
+ # Check for the build system type
566
+ echo $ac_n "checking build system type... $ac_c" 1>&6
567
+
568
+ build_alias=$build
569
+ case $build_alias in
570
+ NONE)
571
+ case $nonopt in
572
+ NONE) build_alias=$host_alias ;;
573
+ *) build_alias=$nonopt ;;
574
+ esac ;;
575
+ esac
576
+
577
+ build=`$SHELL $ac_config_sub $build_alias`
578
+ build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
579
+ build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
580
+ build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
581
+ echo "$ac_t""$build" 1>&6
582
+
583
+ elif test -z "$host"; then
584
+ echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2
585
+ echo "$help" 1>&2
586
+ exit 1
587
+ else
588
+ host_alias=$host
589
+ build_alias=$host_alias
590
+ build=$host
591
+ fi
592
+
593
+ if test x"$host" != x"$build"; then
594
+ ac_tool_prefix=${host_alias}-
595
+ else
596
+ ac_tool_prefix=
597
+ fi
598
+
599
+ host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
600
+ host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
601
+ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
602
+
603
+ # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
604
+ case $host_os in
605
+ linux-gnu*) ;;
606
+ linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
607
+ esac
608
+
609
+ case $host_os in
610
+ aix3*)
611
+ # AIX sometimes has problems with the GCC collect2 program. For some
612
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
613
+ # vanish in a puff of smoke.
614
+ if test "X${COLLECT_NAMES+set}" != Xset; then
615
+ COLLECT_NAMES=
616
+ export COLLECT_NAMES
617
+ fi
618
+ ;;
619
+ esac
620
+
621
+ # Determine commands to create old-style static archives.
622
+ old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
623
+ old_postinstall_cmds='chmod 644 $oldlib'
624
+ old_postuninstall_cmds=
625
+
626
+ if test -n "$RANLIB"; then
627
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
628
+ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
629
+ fi
630
+
631
+ # Source the script associated with the $tagname tag configuration.
632
+ if test -n "$tagname"; then
633
+ . $ltmain
634
+ else
635
+ # FIXME: We should use a variable here
636
+ # Configure for a C compiler
637
+ . $srcdir/ltcf-c.sh
638
+ fi
639
+
640
+ # Set sane defaults for various variables
641
+ test -z "$AR" && AR=ar
642
+ test -z "$AR_FLAGS" && AR_FLAGS=cru
643
+ test -z "$AS" && AS=as
644
+ test -z "$CC" && CC=cc
645
+ test -z "$DLLTOOL" && DLLTOOL=dlltool
646
+ test -z "$MAGIC_CMD" && MAGIC_CMD=file
647
+ test -z "$LD" && LD=ld
648
+ test -z "$LN_S" && LN_S="ln -s"
649
+ test -z "$NM" && NM=nm
650
+ test -z "$OBJDUMP" && OBJDUMP=objdump
651
+ test -z "$RANLIB" && RANLIB=:
652
+ test -z "$STRIP" && STRIP=:
653
+ test -z "$objext" && objext=o
654
+
655
+ echo $ac_n "checking for objdir... $ac_c" 1>&6
656
+ rm -f .libs 2>/dev/null
657
+ mkdir .libs 2>/dev/null
658
+ if test -d .libs; then
659
+ objdir=.libs
660
+ else
661
+ # MS-DOS does not allow filenames that begin with a dot.
662
+ objdir=_libs
663
+ fi
664
+ rmdir .libs 2>/dev/null
665
+ echo "$ac_t$objdir" 1>&6
666
+
667
+ # If no C compiler was specified, use CC.
668
+ LTCC=${LTCC-"$CC"}
669
+
670
+ # Allow CC to be a program name with arguments.
671
+ set dummy $CC
672
+ compiler="$2"
673
+
674
+ # We assume here that the value for ac_cv_prog_cc_pic will not be cached
675
+ # in isolation, and that seeing it set (from the cache) indicates that
676
+ # the associated values are set (in the cache) correctly too.
677
+ echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6
678
+ echo "$progname:678:checking for $compiler option to produce PIC" 1>&5
679
+
680
+ if test -z "$ac_cv_prog_cc_pic"; then
681
+ echo "$ac_t"none 1>&6
682
+ else
683
+ echo "$ac_t""$ac_cv_prog_cc_pic" 1>&6
684
+
685
+ # Check to make sure the pic_flag actually works.
686
+ echo $ac_n "checking if $compiler PIC flag $ac_cv_prog_cc_pic works... $ac_c" 1>&6
687
+ echo "$progname:687:checking that $compiler PIC flag $ac_cv_prog_cc_pic works." 1>&5
688
+ if test "X${ac_cv_prog_cc_pic_works+set}" = Xset && \
689
+ test "X${ac_cv_prog_cc_pic_works}" != X; then
690
+ echo $ac_n "(cached) $ac_c" 1>&6
691
+ else
692
+ ac_cv_prog_cc_pic_works=yes
693
+ $rm conftest*
694
+ echo $lt_simple_compile_test_code > conftest.$ac_ext
695
+ save_CFLAGS="$CFLAGS"
696
+ CFLAGS="$CFLAGS $ac_cv_prog_cc_pic -DPIC"
697
+ if { (eval echo $progname:697: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then
698
+ # Append any warnings to the config.log.
699
+ cat conftest.err 1>&5
700
+
701
+ case $host_os in
702
+ hpux9* | hpux10* | hpux11*)
703
+ # On HP-UX, both CC and GCC only warn that PIC is supported... then
704
+ # they create non-PIC objects. So, if there were any warnings, we
705
+ # assume that PIC is not supported.
706
+ if test -s conftest.err; then
707
+ ac_cv_prog_cc_pic_works=no
708
+ ac_cv_prog_cc_can_build_shared=no
709
+ ac_cv_prog_cc_pic=
710
+ else
711
+ ac_cv_prog_cc_pic_works=yes
712
+ ac_cv_prog_cc_pic=" $ac_cv_prog_cc_pic"
713
+ fi
714
+ ;;
715
+ *)
716
+ ac_cv_prog_cc_pic_works=yes
717
+ ac_cv_prog_cc_pic=" $ac_cv_prog_cc_pic"
718
+ ;;
719
+ esac
720
+ else
721
+ # Append any errors to the config.log.
722
+ cat conftest.err 1>&5
723
+ ac_cv_prog_cc_pic_works=no
724
+ ac_cv_prog_cc_can_build_shared=no
725
+ ac_cv_prog_cc_pic=
726
+ fi
727
+ CFLAGS="$save_CFLAGS"
728
+ $rm conftest*
729
+ fi
730
+ # Belt *and* braces to stop my trousers falling down:
731
+ if test "X$ac_cv_prog_cc_pic_works" = Xno; then
732
+ ac_cv_prog_cc_pic=
733
+ ac_cv_prog_cc_can_build_shared=no
734
+ fi
735
+ echo "$ac_t""$ac_cv_prog_cc_pic_works" 1>&6
736
+ fi
737
+
738
+ # Check for any special shared library compilation flags.
739
+ if test -n "$ac_cv_prog_cc_shlib"; then
740
+ echo "$progname: warning: \`$CC' requires \`$ac_cv_prog_cc_shlib' to build shared libraries" 1>&2
741
+ if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$ac_cv_prog_cc_shlib[ ]" >/dev/null; then :
742
+ else
743
+ echo "$progname: add \`$ac_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" 1>&2
744
+ ac_cv_prog_cc_can_build_shared=no
745
+ fi
746
+ fi
747
+
748
+ echo $ac_n "checking if $compiler static flag $ac_cv_prog_cc_static works... $ac_c" 1>&6
749
+ echo "$progname:749: checking if $compiler static flag $ac_cv_prog_cc_static works" >&5
750
+ if test "X${ac_cv_prog_cc_static_works+set}" = Xset && \
751
+ test "X${ac_cv_prog_cc_static_works}" != X; then
752
+ echo $ac_n "(cached) $ac_c" 1>&6
753
+ else
754
+ $rm conftest*
755
+ echo $lt_simple_link_test_code > conftest.$ac_ext
756
+ save_LDFLAGS="$LDFLAGS"
757
+ LDFLAGS="$LDFLAGS $ac_cv_prog_cc_static"
758
+ if { (eval echo $progname:758: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
759
+ ac_cv_prog_cc_static_works=yes
760
+ else
761
+ ac_cv_prog_cc_static_works=no
762
+ ac_cv_prog_cc_static=
763
+ fi
764
+ LDFLAGS="$save_LDFLAGS"
765
+ $rm conftest*
766
+ fi
767
+ # Belt *and* braces to stop my trousers falling down:
768
+ if test "X$ac_cv_prog_cc_static_works" = Xno; then
769
+ ac_cv_prog_cc_static=
770
+ fi
771
+ echo "$ac_t""$ac_cv_prog_cc_static_works" 1>&6
772
+ pic_flag="$ac_cv_prog_cc_pic"
773
+ special_shlib_compile_flags="$ac_cv_prog_cc_shlib"
774
+ wl="$ac_cv_prog_cc_wl"
775
+ link_static_flag="$ac_cv_prog_cc_static"
776
+ no_builtin_flag="$ac_cv_prog_cc_no_builtin"
777
+ can_build_shared="$ac_cv_prog_cc_can_build_shared"
778
+
779
+ # find the maximum length of command line arguments
780
+ echo "$progname:780: finding the maximum length of command line arguments" 1>&5
781
+ echo $ac_n "finding the maximum length of command line arguments... $ac_c" 1>&6
782
+ if test "${lt_cv_sys_max_cmd_len+set}" = set; then
783
+ echo $ac_n "(cached) $ac_c" 1>&6
784
+ else
785
+ i=0
786
+ testring="ABCD"
787
+ # If test is not a shell built-in, we'll probably end up computing a
788
+ # maximum length that is only half of the actual maximum length, but
789
+ # we can't tell.
790
+ while test "X"`$CONFIG_SHELL $0 --fallback-echo "X$testring" 2>/dev/null` \
791
+ = "XX$testring" &&
792
+ new_result=`expr "X$testring" : ".*" 2>&1` &&
793
+ lt_cv_sys_max_cmd_len=$new_result &&
794
+ test $i != 17 # 1/2 MB should be enough
795
+ do
796
+ i=`expr $i + 1`
797
+ testring=$testring$testring
798
+ done
799
+ testring=
800
+ # add a significant safety factor because C++ compilers can tack on massive amounts
801
+ # of additional arguments before passing them to the linker. 1/4 should be good.
802
+ len=`expr $lt_cv_sys_max_cmd_len \/ 4`
803
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len - $len`
804
+ fi
805
+ echo "$progname:@lineno@: result: $lt_cv_sys_max_cmd_len" 1>&5
806
+ echo "${ac_t}$lt_cv_sys_max_cmd_len" 1>&6
807
+
808
+ if test -n $lt_cv_sys_max_cmd_len ; then
809
+ max_cmd_len=$lt_cv_sys_max_cmd_len
810
+ else
811
+ max_cmd_len=none
812
+ fi
813
+
814
+ # Check to see if options -o and -c are simultaneously supported by compiler
815
+ echo $ac_n "checking if $compiler supports -c -o file.$objext... $ac_c" 1>&6
816
+ if test "${lt_cv_compiler_c_o+set}" = set; then
817
+ echo $ac_n "(cached) $ac_c" 1>&6
818
+ else
819
+ $rm -r conftest 2>/dev/null
820
+ mkdir conftest
821
+ cd conftest
822
+ $rm conftest*
823
+ echo $lt_simple_compile_test_code > conftest.$ac_ext
824
+ mkdir out
825
+ # According to Tom Tromey, Ian Lance Taylor reported there are C compilers
826
+ # that will create temporary files in the current directory regardless of
827
+ # the output directory. Thus, making CWD read-only will cause this test
828
+ # to fail, enabling locking or at least warning the user not to do parallel
829
+ # builds.
830
+ chmod -w .
831
+ save_CFLAGS="$CFLAGS"
832
+ CFLAGS="$CFLAGS -o out/conftest2.$objext"
833
+ echo "$progname:833: checking if $compiler supports -c -o file.$objext" >&5
834
+ if { (eval echo $progname:834: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$objext; then
835
+
836
+ # The compiler can only warn and ignore the option if not recognized
837
+ # So say no if there are warnings
838
+ if test -s out/conftest.err; then
839
+ lt_cv_compiler_c_o=no
840
+ else
841
+ lt_cv_compiler_c_o=yes
842
+ fi
843
+ else
844
+ # Append any errors to the config.log.
845
+ cat out/conftest.err 1>&5
846
+ lt_cv_compiler_c_o=no
847
+ fi
848
+ CFLAGS="$save_CFLAGS"
849
+ chmod u+w .
850
+ $rm conftest* out/*
851
+ rmdir out
852
+ cd ..
853
+ rmdir conftest
854
+ $rm -r conftest 2>/dev/null
855
+ fi
856
+ compiler_c_o=$lt_cv_compiler_c_o
857
+ echo "${ac_t}$compiler_c_o" 1>&6
858
+
859
+ # Check to see if we can do hard links to lock some files if needed
860
+ hard_links="nottested"
861
+ if test "$compiler_c_o" = no && test "$need_locks" != no; then
862
+ # do not overwrite the value of need_locks provided by the user
863
+ echo $ac_n "checking if we can lock with hard links... $ac_c" 1>&6
864
+ hard_links=yes
865
+ $rm conftest*
866
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
867
+ touch conftest.a
868
+ ln conftest.a conftest.b 2>&5 || hard_links=no
869
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
870
+ echo "$ac_t$hard_links" 1>&6
871
+ $rm conftest*
872
+ if test "$hard_links" = no; then
873
+ echo "*** WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2
874
+ need_locks=warn
875
+ fi
876
+ else
877
+ need_locks=no
878
+ fi
879
+
880
+ if test "$with_gcc" = yes; then
881
+ # Check to see if options -fno-rtti -fno-exceptions are supported by compiler
882
+ echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions ... $ac_c" 1>&6
883
+ $rm conftest*
884
+ echo $lt_simple_compile_test_code > conftest.$ac_ext
885
+ save_CFLAGS="$CFLAGS"
886
+ CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext"
887
+ echo "$progname:887: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
888
+ if { (eval echo $progname:888: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then
889
+
890
+ # The compiler can only warn and ignore the option if not recognized
891
+ # So say no if there are warnings
892
+ if test -s conftest.err; then
893
+ echo "$ac_t"no 1>&6
894
+ compiler_rtti_exceptions=no
895
+ else
896
+ echo "$ac_t"yes 1>&6
897
+ compiler_rtti_exceptions=yes
898
+ fi
899
+ else
900
+ # Append any errors to the config.log.
901
+ cat conftest.err 1>&5
902
+ compiler_rtti_exceptions=no
903
+ echo "$ac_t"no 1>&6
904
+ fi
905
+ CFLAGS="$save_CFLAGS"
906
+ $rm conftest*
907
+
908
+ if test "$compiler_rtti_exceptions" = "yes"; then
909
+ no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions'
910
+ else
911
+ no_builtin_flag=' -fno-builtin'
912
+ fi
913
+
914
+ fi
915
+
916
+ # See if the linker supports building shared libraries.
917
+ echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6
918
+
919
+ echo "$ac_t$ld_shlibs" 1>&6
920
+ test "$ld_shlibs" = no && can_build_shared=no
921
+
922
+ # Check hardcoding attributes.
923
+ echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6
924
+ hardcode_action=
925
+ if test -n "$hardcode_libdir_flag_spec" || \
926
+ test -n "$runpath_var"; then
927
+
928
+ # We can hardcode non-existant directories.
929
+ if test "$hardcode_direct" != no &&
930
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
931
+ # have to relink, otherwise we might link with an installed library
932
+ # when we should be linking with a yet-to-be-installed one
933
+ ## test "$hardcode_shlibpath_var" != no &&
934
+ test "$hardcode_minus_L" != no; then
935
+ # Linking always hardcodes the temporary library directory.
936
+ hardcode_action=relink
937
+ else
938
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
939
+ hardcode_action=immediate
940
+ fi
941
+ else
942
+ # We cannot hardcode anything, or else we can only hardcode existing
943
+ # directories.
944
+ hardcode_action=unsupported
945
+ fi
946
+ echo "$ac_t$hardcode_action" 1>&6
947
+
948
+ echo $ac_n "checking whether stripping libraries is possible... $ac_c" 1>&6
949
+ if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
950
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
951
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
952
+ echo "${ac_t}yes" 1>&6
953
+ else
954
+ echo "${ac_t}no" 1>&6
955
+ fi
956
+
957
+ case $reload_flag in
958
+ "" | " "*) ;;
959
+ *) reload_flag=" $reload_flag" ;;
960
+ esac
961
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
962
+ test -z "$deplibs_check_method" && deplibs_check_method=unknown
963
+
964
+ # PORTME Fill in your ld.so characteristics
965
+ library_names_spec=
966
+ libname_spec='lib$name'
967
+ soname_spec=
968
+ shrext=".so"
969
+ postinstall_cmds=
970
+ postuninstall_cmds=
971
+ finish_cmds=
972
+ finish_eval=
973
+ shlibpath_var=
974
+ shlibpath_overrides_runpath=unknown
975
+ version_type=none
976
+ dynamic_linker="$host_os ld.so"
977
+ sys_lib_dlsearch_path_spec="/lib /usr/lib"
978
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
979
+
980
+ echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6
981
+ case $host_os in
982
+ aix3*)
983
+ version_type=linux
984
+ library_names_spec='${libname}${release}.so$versuffix $libname.a'
985
+ shlibpath_var=LIBPATH
986
+
987
+ # AIX 3 has no versioning support, so we append a major version to the name.
988
+ soname_spec='${libname}${release}.so$major'
989
+ ;;
990
+
991
+ aix4* | aix5*)
992
+ version_type=linux
993
+ if test "$host_cpu" = ia64; then
994
+ # AIX 5 supports IA64
995
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
996
+ shlibpath_var=LD_LIBRARY_PATH
997
+ else
998
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
999
+ # soname into executable. Probably we can add versioning support to
1000
+ # collect2, so additional links can be useful in future.
1001
+ # We preserve .a as extension for shared libraries though AIX4.2
1002
+ # and later linker supports .so
1003
+ if test "$aix_use_runtimelinking" = yes; then
1004
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so instead of
1005
+ # lib<name>.a to let people know that these are not typical AIX shared libraries.
1006
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
1007
+ else
1008
+ # We preserve .a as extension for shared libraries though AIX4.2
1009
+ # and later when we are not doing run time linking.
1010
+ library_names_spec='${libname}${release}.a $libname.a'
1011
+ soname_spec='${libname}${release}.so$major'
1012
+ fi
1013
+ # If we're using GNU nm, then we don't want the "-C" option.
1014
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
1015
+ if $NM -V 2>&1 | egrep '(GNU)' > /dev/null; then
1016
+ export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
1017
+ else
1018
+ export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
1019
+ fi
1020
+ shlibpath_var=LIBPATH
1021
+ deplibs_check_method=pass_all
1022
+ case $host_os in
1023
+ aix4 | aix4.[01] | aix4.[01].*)
1024
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
1025
+ echo ' yes '
1026
+ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
1027
+ :
1028
+ else
1029
+ # With GCC up to 2.95.x, collect2 would create an import file
1030
+ # for dependence libraries. The import file would start with
1031
+ # the line `#! .'. This would cause the generated library to
1032
+ # depend on `.', always an invalid library. This was fixed in
1033
+ # development snapshots of GCC prior to 3.0.
1034
+ can_build_shared=no
1035
+ fi
1036
+ ;;
1037
+ esac
1038
+ fi
1039
+ ;;
1040
+
1041
+ amigaos*)
1042
+ library_names_spec='$libname.ixlibrary $libname.a'
1043
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
1044
+ 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'
1045
+ ;;
1046
+
1047
+ beos*)
1048
+ library_names_spec='${libname}.so'
1049
+ dynamic_linker="$host_os ld.so"
1050
+ shlibpath_var=LIBRARY_PATH
1051
+ lt_cv_dlopen="load_add_on"
1052
+ lt_cv_dlopen_libs=
1053
+ lt_cv_dlopen_self=yes
1054
+ ;;
1055
+
1056
+ bsdi4*)
1057
+ version_type=linux
1058
+ need_version=no
1059
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
1060
+ soname_spec='${libname}${release}.so$major'
1061
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
1062
+ shlibpath_var=LD_LIBRARY_PATH
1063
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
1064
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
1065
+ export_dynamic_flag_spec=-rdynamic
1066
+ # the default ld.so.conf also contains /usr/contrib/lib and
1067
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
1068
+ # libtool to hard-code these into programs
1069
+ ;;
1070
+
1071
+ cygwin* | mingw* | pw32*)
1072
+ version_type=windows
1073
+ need_version=no
1074
+ need_lib_prefix=no
1075
+ case $with_gcc,$host_os in
1076
+ yes,cygwin*)
1077
+ library_names_spec='$libname.dll.a'
1078
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | [sed -e 's/[.]/-/g']`${versuffix}.dll'
1079
+ postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i; echo \$dlname'\''`~
1080
+ dldir=$destdir/`dirname \$dlpath`~
1081
+ test -d \$dldir || mkdir -p \$dldir~
1082
+ $install_prog .libs/$dlname \$dldir/$dlname'
1083
+ postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~
1084
+ dlpath=$dir/\$dldll; $rm \$dlpath'
1085
+ ;;
1086
+ yes,mingw*)
1087
+ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
1088
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g"`
1089
+ ;;
1090
+ yes,pw32*)
1091
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
1092
+ ;;
1093
+ *)
1094
+ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib'
1095
+ ;;
1096
+ esac
1097
+ dynamic_linker='Win32 ld.exe'
1098
+ # FIXME: first we should search . and the directory the executable is in
1099
+ shlibpath_var=PATH
1100
+ lt_cv_dlopen="LoadLibrary"
1101
+ lt_cv_dlopen_libs=
1102
+ ;;
1103
+
1104
+ darwin* | rhapsody*)
1105
+ dynamic_linker="$host_os dyld"
1106
+ lt_cv_dlopen="dyld"
1107
+ lt_cv_dlopen_libs=
1108
+ lt_cv_dlopen_self=yes
1109
+ version_type=darwin
1110
+ need_lib_prefix=no
1111
+ need_version=no
1112
+ # Disable shared library build on OS-X older than 10.3.
1113
+ case $host_os in
1114
+ darwin[1-6]*)
1115
+ can_build_shared=no
1116
+ ;;
1117
+ darwin7*)
1118
+ can_build_shared=yes
1119
+ ;;
1120
+ esac
1121
+ library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
1122
+ soname_spec='${libname}${release}${major}$shared_ext'
1123
+ shlibpath_overrides_runpath=yes
1124
+ shlibpath_var=DYLD_LIBRARY_PATH
1125
+ shrext='$(test .$module = .yes && echo .so || echo .dylib)'
1126
+ sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
1127
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
1128
+ ;;
1129
+
1130
+ freebsd1*)
1131
+ dynamic_linker=no
1132
+ ;;
1133
+
1134
+ freebsd*)
1135
+ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
1136
+ version_type=freebsd-$objformat
1137
+ case $version_type in
1138
+ freebsd-elf*)
1139
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
1140
+ need_version=no
1141
+ need_lc=no
1142
+ need_lib_prefix=no
1143
+ ;;
1144
+ freebsd-*)
1145
+ library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
1146
+ need_version=yes
1147
+ ;;
1148
+ esac
1149
+ shlibpath_var=LD_LIBRARY_PATH
1150
+ case $host_os in
1151
+ freebsd2*)
1152
+ shlibpath_overrides_runpath=yes
1153
+ ;;
1154
+ *)
1155
+ shlibpath_overrides_runpath=no
1156
+ hardcode_into_libs=yes
1157
+ ;;
1158
+ esac
1159
+ ;;
1160
+
1161
+ gnu*)
1162
+ version_type=linux
1163
+ need_lib_prefix=no
1164
+ need_version=no
1165
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so'
1166
+ soname_spec='${libname}${release}.so$major'
1167
+ shlibpath_var=LD_LIBRARY_PATH
1168
+ hardcode_into_libs=yes
1169
+ ;;
1170
+
1171
+ kfreebsd*-gnu | knetbsd*-gnu)
1172
+ version_type=linux
1173
+ need_lib_prefix=no
1174
+ need_version=no
1175
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so'
1176
+ soname_spec='${libname}${release}.so$major'
1177
+ shlibpath_var=LD_LIBRARY_PATH
1178
+ shlibpath_overrides_runpath=yes
1179
+ hardcode_into_libs=yes
1180
+ ;;
1181
+
1182
+ hpux9* | hpux10* | hpux11*)
1183
+ # Give a soname corresponding to the major version so that dld.sl refuses to
1184
+ # link against other versions.
1185
+ version_type=sunos
1186
+ need_lib_prefix=no
1187
+ need_version=no
1188
+ case "$host_cpu" in
1189
+ ia64*)
1190
+ dynamic_linker="$host_os dld.so"
1191
+ shlibpath_var=LD_LIBRARY_PATH
1192
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
1193
+ soname_spec='${libname}${release}.so$major'
1194
+ shlibpath_var=LD_LIBRARY_PATH
1195
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
1196
+ if test "X$HPUX_IA64_MODE" = X32; then
1197
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
1198
+ else
1199
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
1200
+ fi
1201
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
1202
+ ;;
1203
+ *)
1204
+ dynamic_linker="$host_os dld.sl"
1205
+ shlibpath_var=SHLIB_PATH
1206
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
1207
+ library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
1208
+ soname_spec='${libname}${release}.sl$major'
1209
+ ;;
1210
+ esac
1211
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
1212
+ postinstall_cmds='chmod 555 $lib'
1213
+ ;;
1214
+
1215
+ irix5* | irix6*)
1216
+ if test "$with_gnu_ld" = yes; then
1217
+ version_type=linux
1218
+ else
1219
+ version_type=irix
1220
+ fi
1221
+ need_lib_prefix=no
1222
+ need_version=no
1223
+ soname_spec='${libname}${release}.so$major'
1224
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so'
1225
+ case $host_os in
1226
+ irix5*)
1227
+ libsuff= shlibsuff=
1228
+ ;;
1229
+ *)
1230
+ case $LD in # libtool.m4 will add one of these switches to LD
1231
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
1232
+ libsuff= shlibsuff= libmagic=32-bit;;
1233
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
1234
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
1235
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
1236
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
1237
+ *) libsuff= shlibsuff= libmagic=never-match;;
1238
+ esac
1239
+ ;;
1240
+ esac
1241
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
1242
+ shlibpath_overrides_runpath=no
1243
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
1244
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
1245
+ ;;
1246
+
1247
+ # No shared lib support for Linux oldld, aout, or coff.
1248
+ linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
1249
+ dynamic_linker=no
1250
+ ;;
1251
+
1252
+ # This must be Linux ELF.
1253
+ linux-gnu*)
1254
+ version_type=linux
1255
+ need_lib_prefix=no
1256
+ need_version=no
1257
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
1258
+ soname_spec='${libname}${release}.so$major'
1259
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
1260
+ shlibpath_var=LD_LIBRARY_PATH
1261
+ shlibpath_overrides_runpath=no
1262
+ # This implies no fast_install, which is unacceptable.
1263
+ # Some rework will be needed to allow for fast_install
1264
+ # before this can be enabled.
1265
+ hardcode_into_libs=yes
1266
+
1267
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
1268
+ # powerpc, because MkLinux only supported shared libraries with the
1269
+ # GNU dynamic linker. Since this was broken with cross compilers,
1270
+ # most powerpc-linux boxes support dynamic linking these days and
1271
+ # people can always --disable-shared, the test was removed, and we
1272
+ # assume the GNU/Linux dynamic linker is in use.
1273
+ dynamic_linker='GNU/Linux ld.so'
1274
+ ;;
1275
+
1276
+ netbsd*)
1277
+ need_lib_prefix=no
1278
+ need_version=no
1279
+ version_type=sunos
1280
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
1281
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
1282
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
1283
+ dynamic_linker='NetBSD (a.out) ld.so'
1284
+ else
1285
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so'
1286
+ soname_spec='${libname}${release}.so$major'
1287
+ dynamic_linker='NetBSD ld.elf_so'
1288
+ fi
1289
+ shlibpath_var=LD_LIBRARY_PATH
1290
+ shlibpath_overrides_runpath=yes
1291
+ hardcode_into_libs=yes
1292
+ ;;
1293
+
1294
+ newsos6)
1295
+ version_type=linux
1296
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
1297
+ shlibpath_var=LD_LIBRARY_PATH
1298
+ shlibpath_overrides_runpath=yes
1299
+ ;;
1300
+
1301
+ openbsd*)
1302
+ version_type=sunos
1303
+ if test "$with_gnu_ld" = yes; then
1304
+ need_lib_prefix=no
1305
+ need_version=no
1306
+ fi
1307
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
1308
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
1309
+ shlibpath_var=LD_LIBRARY_PATH
1310
+ ;;
1311
+
1312
+ os2*)
1313
+ libname_spec='$name'
1314
+ need_lib_prefix=no
1315
+ library_names_spec='$libname.dll $libname.a'
1316
+ dynamic_linker='OS/2 ld.exe'
1317
+ shlibpath_var=LIBPATH
1318
+ ;;
1319
+
1320
+ osf3* | osf4* | osf5*)
1321
+ version_type=osf
1322
+ need_version=no
1323
+ soname_spec='${libname}${release}.so$major'
1324
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
1325
+ shlibpath_var=LD_LIBRARY_PATH
1326
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
1327
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
1328
+ ;;
1329
+
1330
+ sco3.2v5*)
1331
+ version_type=osf
1332
+ soname_spec='${libname}${release}.so$major'
1333
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
1334
+ shlibpath_var=LD_LIBRARY_PATH
1335
+ ;;
1336
+
1337
+ solaris*)
1338
+ version_type=linux
1339
+ need_lib_prefix=no
1340
+ need_version=no
1341
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
1342
+ soname_spec='${libname}${release}.so$major'
1343
+ shlibpath_var=LD_LIBRARY_PATH
1344
+ shlibpath_overrides_runpath=yes
1345
+ hardcode_into_libs=yes
1346
+ # ldd complains unless libraries are executable
1347
+ postinstall_cmds='chmod +x $lib'
1348
+ ;;
1349
+
1350
+ sunos4*)
1351
+ version_type=sunos
1352
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
1353
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
1354
+ shlibpath_var=LD_LIBRARY_PATH
1355
+ shlibpath_overrides_runpath=yes
1356
+ if test "$with_gnu_ld" = yes; then
1357
+ need_lib_prefix=no
1358
+ fi
1359
+ need_version=yes
1360
+ ;;
1361
+
1362
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
1363
+ version_type=linux
1364
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
1365
+ soname_spec='${libname}${release}.so$major'
1366
+ shlibpath_var=LD_LIBRARY_PATH
1367
+ case $host_vendor in
1368
+ motorola)
1369
+ need_lib_prefix=no
1370
+ need_version=no
1371
+ shlibpath_overrides_runpath=no
1372
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
1373
+ ;;
1374
+ esac
1375
+ ;;
1376
+
1377
+ tpf*)
1378
+ version_type=linux
1379
+ need_lib_prefix=no
1380
+ need_version=no
1381
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $major $libname.so'
1382
+ soname_spec='${libname}${release}.so$major'
1383
+ shlibpath_var=LD_LIBRARY_PATH
1384
+ shlibpath_overrides_runpath=no
1385
+ hardcode_into_libs=yes
1386
+ dynamic_linker='GNU/Linux ld.so'
1387
+ ;;
1388
+
1389
+ uts4*)
1390
+ version_type=linux
1391
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
1392
+ soname_spec='${libname}${release}.so$major'
1393
+ shlibpath_var=LD_LIBRARY_PATH
1394
+ ;;
1395
+
1396
+ dgux*)
1397
+ version_type=linux
1398
+ need_lib_prefix=no
1399
+ need_version=no
1400
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
1401
+ soname_spec='${libname}${release}.so$major'
1402
+ shlibpath_var=LD_LIBRARY_PATH
1403
+ ;;
1404
+
1405
+ sysv4*MP*)
1406
+ if test -d /usr/nec ;then
1407
+ version_type=linux
1408
+ library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
1409
+ soname_spec='$libname.so.$major'
1410
+ shlibpath_var=LD_LIBRARY_PATH
1411
+ fi
1412
+ ;;
1413
+
1414
+ *)
1415
+ dynamic_linker=no
1416
+ ;;
1417
+ esac
1418
+ echo "$ac_t$dynamic_linker" 1>&6
1419
+ test "$dynamic_linker" = no && can_build_shared=no
1420
+
1421
+ # Check for command to grab the raw symbol name followed by C symbol from nm.
1422
+ echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6
1423
+
1424
+ # These are sane defaults that work on at least a few old systems.
1425
+ # [They come from Ultrix. What could be older than Ultrix?!! ;)]
1426
+
1427
+ # Character class describing NM global symbol codes.
1428
+ symcode='[BCDEGRST]'
1429
+
1430
+ # Regexp to match symbols that can be accessed directly from C.
1431
+ sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
1432
+
1433
+ # Transform the above into a raw symbol and a C symbol.
1434
+ symxfrm='\1 \2\3 \3'
1435
+
1436
+ # Transform an extracted symbol line into a proper C declaration
1437
+ global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
1438
+
1439
+ # Define system-specific variables.
1440
+ case $host_os in
1441
+ aix*)
1442
+ symcode='[BCDT]'
1443
+ ;;
1444
+ cygwin* | mingw* | pw32*)
1445
+ symcode='[ABCDGISTW]'
1446
+ ;;
1447
+ hpux*) # Its linker distinguishes data from code symbols
1448
+ global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
1449
+ ;;
1450
+ irix*)
1451
+ symcode='[BCDEGRST]'
1452
+ ;;
1453
+ solaris* | sysv5*)
1454
+ symcode='[BDT]'
1455
+ ;;
1456
+ sysv4)
1457
+ symcode='[DFNSTU]'
1458
+ ;;
1459
+ esac
1460
+
1461
+ # Handle CRLF in mingw tool chain
1462
+ opt_cr=
1463
+ case $host_os in
1464
+ mingw*)
1465
+ opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
1466
+ ;;
1467
+ esac
1468
+
1469
+ # If we're using GNU nm, then use its standard symbol codes.
1470
+ if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
1471
+ symcode='[ABCDGISTW]'
1472
+ fi
1473
+
1474
+ # Try without a prefix undercore, then with it.
1475
+ for ac_symprfx in "" "_"; do
1476
+
1477
+ # Write the raw and C identifiers.
1478
+ global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
1479
+
1480
+ # Check to see that the pipe works correctly.
1481
+ pipe_works=no
1482
+ $rm conftest*
1483
+ cat > conftest.$ac_ext <<EOF
1484
+ #ifdef __cplusplus
1485
+ extern "C" {
1486
+ #endif
1487
+ char nm_test_var;
1488
+ void nm_test_func(){}
1489
+ #ifdef __cplusplus
1490
+ }
1491
+ #endif
1492
+ int main(){nm_test_var='a';nm_test_func();return(0);}
1493
+ EOF
1494
+
1495
+ echo "$progname:1431: checking if global_symbol_pipe works" >&5
1496
+ if { (eval echo $progname:1432: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then
1497
+ # Now try to grab the symbols.
1498
+ nlist=conftest.nm
1499
+ if { echo "$progname:1435: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
1500
+
1501
+ # Try sorting and uniquifying the output.
1502
+ if sort "$nlist" | uniq > "$nlist"T; then
1503
+ mv -f "$nlist"T "$nlist"
1504
+ else
1505
+ rm -f "$nlist"T
1506
+ fi
1507
+
1508
+ # Make sure that we snagged all the symbols we need.
1509
+ if egrep ' nm_test_var$' "$nlist" >/dev/null; then
1510
+ if egrep ' nm_test_func$' "$nlist" >/dev/null; then
1511
+ cat <<EOF > conftest.$ac_ext
1512
+ #ifdef __cplusplus
1513
+ extern "C" {
1514
+ #endif
1515
+
1516
+ EOF
1517
+ # Now generate the symbol file.
1518
+ eval "$global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext'
1519
+
1520
+ cat <<EOF >> conftest.$ac_ext
1521
+ #if defined (__STDC__) && __STDC__
1522
+ # define lt_ptr_t void *
1523
+ #else
1524
+ # define lt_ptr_t char *
1525
+ # define const
1526
+ #endif
1527
+
1528
+ /* The mapping between symbol names and symbols. */
1529
+ const struct {
1530
+ const char *name;
1531
+ lt_ptr_t address;
1532
+ }
1533
+ lt_preloaded_symbols[] =
1534
+ {
1535
+ EOF
1536
+ sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" >> conftest.$ac_ext
1537
+ cat <<\EOF >> conftest.$ac_ext
1538
+ {0, (lt_ptr_t) 0}
1539
+ };
1540
+
1541
+ #ifdef __cplusplus
1542
+ }
1543
+ #endif
1544
+ EOF
1545
+ # Now try linking the two files.
1546
+ mv conftest.$objext conftstm.$objext
1547
+ save_LIBS="$LIBS"
1548
+ save_CFLAGS="$CFLAGS"
1549
+ LIBS="conftstm.$objext"
1550
+ CFLAGS="$CFLAGS$no_builtin_flag"
1551
+ if { (eval echo $progname:1487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
1552
+ pipe_works=yes
1553
+ else
1554
+ echo "$progname: failed program was:" >&5
1555
+ cat conftest.$ac_ext >&5
1556
+ fi
1557
+ LIBS="$save_LIBS"
1558
+ else
1559
+ echo "cannot find nm_test_func in $nlist" >&5
1560
+ fi
1561
+ else
1562
+ echo "cannot find nm_test_var in $nlist" >&5
1563
+ fi
1564
+ else
1565
+ echo "cannot run $global_symbol_pipe" >&5
1566
+ fi
1567
+ else
1568
+ echo "$progname: failed program was:" >&5
1569
+ cat conftest.$ac_ext >&5
1570
+ fi
1571
+ $rm conftest* conftst*
1572
+
1573
+ # Do not use the global_symbol_pipe unless it works.
1574
+ if test "$pipe_works" = yes; then
1575
+ break
1576
+ else
1577
+ global_symbol_pipe=
1578
+ fi
1579
+ done
1580
+ if test "$pipe_works" = yes; then
1581
+ echo "${ac_t}ok" 1>&6
1582
+ else
1583
+ echo "${ac_t}failed" 1>&6
1584
+ fi
1585
+
1586
+ if test -z "$global_symbol_pipe"; then
1587
+ global_symbol_to_cdecl=
1588
+ fi
1589
+
1590
+ # Report the final consequences.
1591
+ echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6
1592
+
1593
+ # Only try to build win32 dlls if AC_LIBTOOL_WIN32_DLL was used in
1594
+ # configure.in, otherwise build static only libraries.
1595
+ case $host_os in
1596
+ cygwin* | mingw* | pw32* | os2*)
1597
+ if test x$can_build_shared = xyes; then
1598
+ test x$enable_win32_dll = xno && can_build_shared=no
1599
+ echo "checking if package supports dlls... $can_build_shared" 1>&6
1600
+ fi
1601
+ ;;
1602
+ esac
1603
+
1604
+ echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6
1605
+ test "$can_build_shared" = "no" && enable_shared=no
1606
+
1607
+ # On AIX, shared libraries and static libraries use the same namespace, and
1608
+ # are all built from PIC.
1609
+ case $host_os in
1610
+ aix3*)
1611
+ test "$enable_shared" = yes && enable_static=no
1612
+ if test -n "$RANLIB"; then
1613
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
1614
+ postinstall_cmds='$RANLIB $lib'
1615
+ fi
1616
+ ;;
1617
+
1618
+ aix4* | aix5*)
1619
+ test "$enable_shared" = yes && enable_static=no
1620
+ ;;
1621
+ esac
1622
+
1623
+ echo "$ac_t$enable_shared" 1>&6
1624
+
1625
+ # Make sure either enable_shared or enable_static is yes.
1626
+ test "$enable_shared" = yes || enable_static=yes
1627
+
1628
+ echo "checking whether to build static libraries... $enable_static" 1>&6
1629
+
1630
+ if test "$hardcode_action" = relink; then
1631
+ # Fast installation is not supported
1632
+ enable_fast_install=no
1633
+ elif test "$shlibpath_overrides_runpath" = yes ||
1634
+ test "$enable_shared" = no; then
1635
+ # Fast installation is not necessary
1636
+ enable_fast_install=needless
1637
+ fi
1638
+
1639
+ variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
1640
+ if test "$with_gcc" = yes; then
1641
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
1642
+ fi
1643
+
1644
+ # Check whether we must set pic_mode to default
1645
+ test -z "$pic_flag" && pic_mode=default
1646
+
1647
+ if test "x$enable_dlopen" != xyes; then
1648
+ enable_dlopen=unknown
1649
+ enable_dlopen_self=unknown
1650
+ enable_dlopen_self_static=unknown
1651
+ else
1652
+ if test "X${lt_cv_dlopen+set}" != Xset; then
1653
+ lt_cv_dlopen=no lt_cv_dlopen_libs=
1654
+ echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
1655
+ echo "$progname:1591: checking for dlopen in -ldl" >&5
1656
+ if test "X${ac_cv_lib_dl_dlopen+set}" = Xset; then
1657
+ echo $ac_n "(cached) $ac_c" 1>&6
1658
+ else
1659
+ ac_save_LIBS="$LIBS"
1660
+ LIBS="-ldl $LIBS"
1661
+ cat > conftest.$ac_ext <<EOF
1662
+ #line 1598 "ltconfig"
1663
+ /* Override any gcc2 internal prototype to avoid an error. */
1664
+ /* We use char because int might match the return type of a gcc2
1665
+ builtin and then its argument prototype would still apply. */
1666
+ #ifdef __cplusplus
1667
+ extern "C"
1668
+ #endif
1669
+ char dlopen();
1670
+
1671
+ int main() {
1672
+ dlopen()
1673
+ ; return 0; }
1674
+ EOF
1675
+ if { (eval echo $progname:1611: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
1676
+ rm -rf conftest*
1677
+ ac_cv_lib_dl_dlopen=yes
1678
+ else
1679
+ echo "$progname: failed program was:" >&5
1680
+ cat conftest.$ac_ext >&5
1681
+ rm -rf conftest*
1682
+ ac_cv_lib_dl_dlopen=no
1683
+ fi
1684
+ rm -f conftest*
1685
+ LIBS="$ac_save_LIBS"
1686
+
1687
+ fi
1688
+ if test "X$ac_cv_lib_dl_dlopen" = Xyes; then
1689
+ echo "$ac_t""yes" 1>&6
1690
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
1691
+ else
1692
+ echo "$ac_t""no" 1>&6
1693
+ echo $ac_n "checking for dlopen""... $ac_c" 1>&6
1694
+ echo "$progname:1630: checking for dlopen" >&5
1695
+ if test "X${ac_cv_func_dlopen+set}" = Xset; then
1696
+ echo $ac_n "(cached) $ac_c" 1>&6
1697
+ else
1698
+ cat > conftest.$ac_ext <<EOF
1699
+ #line 1635 "ltconfig"
1700
+ /* System header to define __stub macros and hopefully few prototypes,
1701
+ which can conflict with char dlopen(); below. */
1702
+ #include <assert.h>
1703
+ /* Override any gcc2 internal prototype to avoid an error. */
1704
+ /* We use char because int might match the return type of a gcc2
1705
+ builtin and then its argument prototype would still apply. */
1706
+ #ifdef __cplusplus
1707
+ extern "C"
1708
+ #endif
1709
+ char dlopen();
1710
+
1711
+ int main() {
1712
+
1713
+ /* The GNU C library defines this for functions which it implements
1714
+ to always fail with ENOSYS. Some functions are actually named
1715
+ something starting with __ and the normal name is an alias. */
1716
+ #if defined (__stub_dlopen) || defined (__stub___dlopen)
1717
+ choke me
1718
+ #else
1719
+ dlopen();
1720
+ #endif
1721
+
1722
+ ; return 0; }
1723
+ EOF
1724
+ if { (eval echo $progname:1660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
1725
+ rm -rf conftest*
1726
+ ac_cv_func_dlopen=yes
1727
+ else
1728
+ echo "$progname: failed program was:" >&5
1729
+ cat conftest.$ac_ext >&5
1730
+ rm -rf conftest*
1731
+ ac_cv_func_dlopen=no
1732
+ fi
1733
+ rm -f conftest*
1734
+ fi
1735
+ if test "X$ac_cv_func_dlopen" = Xyes; then
1736
+ echo "$ac_t""yes" 1>&6
1737
+ lt_cv_dlopen="dlopen"
1738
+ else
1739
+ echo "$ac_t""no" 1>&6
1740
+ echo $ac_n "checking for dlopen in -lsvld""... $ac_c" 1>&6
1741
+ echo "$progname:1677: checking for dlopen in -lsvld" >&5
1742
+ if test "X${ac_cv_lib_svld_dlopen+set}" = Xset; then
1743
+ echo $ac_n "(cached) $ac_c" 1>&6
1744
+ else
1745
+ ac_save_LIBS="$LIBS"
1746
+ LIBS="-lsvld $LIBS"
1747
+ cat > conftest.$ac_ext <<EOF
1748
+ #line 1684 "ltconfig"
1749
+ /* Override any gcc2 internal prototype to avoid an error. */
1750
+ /* We use char because int might match the return type of a gcc2
1751
+ builtin and then its argument prototype would still apply. */
1752
+ #ifdef __cplusplus
1753
+ extern "C"
1754
+ #endif
1755
+ char dlopen();
1756
+
1757
+ int main() {
1758
+ dlopen()
1759
+ ; return 0; }
1760
+ EOF
1761
+ if { (eval echo $progname:1697: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
1762
+ rm -rf conftest*
1763
+ ac_cv_lib_svld_dlopen=yes
1764
+ else
1765
+ echo "$progname: failed program was:" >&5
1766
+ cat conftest.$ac_ext >&5
1767
+ rm -rf conftest*
1768
+ ac_cv_lib_svld_dlopen=no
1769
+ fi
1770
+ rm -f conftest*
1771
+ LIBS="$ac_save_LIBS"
1772
+
1773
+ fi
1774
+ if test "X$ac_cv_lib_svld_dlopen" = Xyes; then
1775
+ echo "$ac_t""yes" 1>&6
1776
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
1777
+ else
1778
+ echo "$ac_t""no" 1>&6
1779
+ echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6
1780
+ echo "$progname:1716: checking for dld_link in -ldld" >&5
1781
+ if test "X${ac_cv_lib_dld_dld_link+set}" = Xset; then
1782
+ echo $ac_n "(cached) $ac_c" 1>&6
1783
+ else
1784
+ ac_save_LIBS="$LIBS"
1785
+ LIBS="-ldld $LIBS"
1786
+ cat > conftest.$ac_ext <<EOF
1787
+ #line 1723 "ltconfig"
1788
+ /* Override any gcc2 internal prototype to avoid an error. */
1789
+ /* We use char because int might match the return type of a gcc2
1790
+ builtin and then its argument prototype would still apply. */
1791
+ #ifdef __cplusplus
1792
+ extern "C"
1793
+ #endif
1794
+ char dld_link();
1795
+
1796
+ int main() {
1797
+ dld_link()
1798
+ ; return 0; }
1799
+ EOF
1800
+ if { (eval echo $progname:1736: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
1801
+ rm -rf conftest*
1802
+ ac_cv_lib_dld_dld_link=yes
1803
+ else
1804
+ echo "$progname: failed program was:" >&5
1805
+ cat conftest.$ac_ext >&5
1806
+ rm -rf conftest*
1807
+ ac_cv_lib_dld_dld_link=no
1808
+ fi
1809
+ rm -f conftest*
1810
+ LIBS="$ac_save_LIBS"
1811
+
1812
+ fi
1813
+ if test "X$ac_cv_lib_dld_dld_link" = Xyes; then
1814
+ echo "$ac_t""yes" 1>&6
1815
+ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
1816
+ else
1817
+ echo "$ac_t""no" 1>&6
1818
+ echo $ac_n "checking for shl_load""... $ac_c" 1>&6
1819
+ echo "$progname:1755: checking for shl_load" >&5
1820
+ if test "X${ac_cv_func_shl_load+set}" = Xset; then
1821
+ echo $ac_n "(cached) $ac_c" 1>&6
1822
+ else
1823
+ cat > conftest.$ac_ext <<EOF
1824
+ #line 1760 "ltconfig"
1825
+ /* System header to define __stub macros and hopefully few prototypes,
1826
+ which can conflict with char shl_load(); below. */
1827
+ #include <assert.h>
1828
+ /* Override any gcc2 internal prototype to avoid an error. */
1829
+ /* We use char because int might match the return type of a gcc2
1830
+ builtin and then its argument prototype would still apply. */
1831
+ #ifdef __cplusplus
1832
+ extern "C"
1833
+ #endif
1834
+ char shl_load();
1835
+
1836
+ int main() {
1837
+
1838
+ /* The GNU C library defines this for functions which it implements
1839
+ to always fail with ENOSYS. Some functions are actually named
1840
+ something starting with __ and the normal name is an alias. */
1841
+ #if defined (__stub_shl_load) || defined (__stub___shl_load)
1842
+ choke me
1843
+ #else
1844
+ shl_load();
1845
+ #endif
1846
+
1847
+ ; return 0; }
1848
+ EOF
1849
+ if { (eval echo $progname:1785: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
1850
+ rm -rf conftest*
1851
+ ac_cv_func_shl_load=yes
1852
+ else
1853
+ echo "$progname: failed program was:" >&5
1854
+ cat conftest.$ac_ext >&5
1855
+ rm -rf conftest*
1856
+ ac_cv_func_shl_load=no
1857
+ fi
1858
+ rm -f conftest*
1859
+ fi
1860
+
1861
+ if test "X$ac_cv_func_shl_load" = Xyes; then
1862
+ echo "$ac_t""yes" 1>&6
1863
+ lt_cv_dlopen="shl_load"
1864
+ else
1865
+ echo "$ac_t""no" 1>&6
1866
+ echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
1867
+ echo "$progname:1803: checking for shl_load in -ldld" >&5
1868
+ if test "X${ac_cv_lib_dld_shl_load+set}" = Xset; then
1869
+ echo $ac_n "(cached) $ac_c" 1>&6
1870
+ else
1871
+ ac_save_LIBS="$LIBS"
1872
+ LIBS="-ldld $LIBS"
1873
+ cat > conftest.$ac_ext <<EOF
1874
+ #line 1810 "ltconfig"
1875
+ #include "confdefs.h"
1876
+ /* Override any gcc2 internal prototype to avoid an error. */
1877
+ /* We use char because int might match the return type of a gcc2
1878
+ builtin and then its argument prototype would still apply. */
1879
+ #ifdef __cplusplus
1880
+ extern "C"
1881
+ #endif
1882
+ char shl_load();
1883
+
1884
+ int main() {
1885
+ shl_load()
1886
+ ; return 0; }
1887
+ EOF
1888
+ if { (eval echo $progname:1824: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
1889
+ rm -rf conftest*
1890
+ ac_cv_lib_dld_shl_load=yes
1891
+ else
1892
+ echo "$progname: failed program was:" >&5
1893
+ cat conftest.$ac_ext >&5
1894
+ rm -rf conftest*
1895
+ ac_cv_lib_dld_shl_load=no
1896
+ fi
1897
+ rm -f conftest*
1898
+ LIBS="$ac_save_LIBS"
1899
+
1900
+ fi
1901
+ if test "X$ac_cv_lib_dld_shl_load" = Xyes; then
1902
+ echo "$ac_t""yes" 1>&6
1903
+ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
1904
+ else
1905
+ echo "$ac_t""no" 1>&6
1906
+ fi
1907
+
1908
+
1909
+ fi
1910
+
1911
+
1912
+ fi
1913
+
1914
+
1915
+ fi
1916
+
1917
+
1918
+ fi
1919
+
1920
+ fi
1921
+
1922
+ fi
1923
+
1924
+ if test "x$lt_cv_dlopen" != xno; then
1925
+ enable_dlopen=yes
1926
+ else
1927
+ enable_dlopen=no
1928
+ fi
1929
+
1930
+ case $lt_cv_dlopen in
1931
+ dlopen)
1932
+ for ac_hdr in dlfcn.h; do
1933
+ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
1934
+ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
1935
+ echo "$progname:1871: checking for $ac_hdr" >&5
1936
+ if eval "test \"`echo 'X$''{'ac_cv_header_$ac_safe'+set}'`\" = Xset"; then
1937
+ echo $ac_n "(cached) $ac_c" 1>&6
1938
+ else
1939
+ cat > conftest.$ac_ext <<EOF
1940
+ #line 1876 "ltconfig"
1941
+ #include <$ac_hdr>
1942
+ int fnord = 0;
1943
+ int main () { return(0); }
1944
+ EOF
1945
+ ac_try="$ac_compile >/dev/null 2>conftest.out"
1946
+ { (eval echo $progname:1882: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
1947
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
1948
+ if test -z "$ac_err"; then
1949
+ rm -rf conftest*
1950
+ eval "ac_cv_header_$ac_safe=yes"
1951
+ else
1952
+ echo "$ac_err" >&5
1953
+ echo "$progname: failed program was:" >&5
1954
+ cat conftest.$ac_ext >&5
1955
+ rm -rf conftest*
1956
+ eval "ac_cv_header_$ac_safe=no"
1957
+ fi
1958
+ rm -f conftest*
1959
+ fi
1960
+ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
1961
+ echo "$ac_t""yes" 1>&6
1962
+ else
1963
+ echo "$ac_t""no" 1>&6
1964
+ fi
1965
+ done
1966
+
1967
+ if test "x$ac_cv_header_dlfcn_h" = xyes; then
1968
+ CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
1969
+ fi
1970
+ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
1971
+ LIBS="$lt_cv_dlopen_libs $LIBS"
1972
+
1973
+ echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6
1974
+ echo "$progname:1910: checking whether a program can dlopen itself" >&5
1975
+ if test "X${lt_cv_dlopen_self+set}" = Xset; then
1976
+ echo $ac_n "(cached) $ac_c" 1>&6
1977
+ else
1978
+ if test "$cross_compiling" = yes; then
1979
+ lt_cv_dlopen_self=cross
1980
+ else
1981
+ cat > conftest.$ac_ext <<EOF
1982
+ #line 1918 "ltconfig"
1983
+
1984
+ #if HAVE_DLFCN_H
1985
+ #include <dlfcn.h>
1986
+ #endif
1987
+
1988
+ #include <stdio.h>
1989
+
1990
+ #ifdef RTLD_GLOBAL
1991
+ # define LTDL_GLOBAL RTLD_GLOBAL
1992
+ #else
1993
+ # ifdef DL_GLOBAL
1994
+ # define LTDL_GLOBAL DL_GLOBAL
1995
+ # else
1996
+ # define LTDL_GLOBAL 0
1997
+ # endif
1998
+ #endif
1999
+
2000
+ /* We may have to define LTDL_LAZY_OR_NOW in the command line if we
2001
+ find out it does not work in some platform. */
2002
+ #ifndef LTDL_LAZY_OR_NOW
2003
+ # ifdef RTLD_LAZY
2004
+ # define LTDL_LAZY_OR_NOW RTLD_LAZY
2005
+ # else
2006
+ # ifdef DL_LAZY
2007
+ # define LTDL_LAZY_OR_NOW DL_LAZY
2008
+ # else
2009
+ # ifdef RTLD_NOW
2010
+ # define LTDL_LAZY_OR_NOW RTLD_NOW
2011
+ # else
2012
+ # ifdef DL_NOW
2013
+ # define LTDL_LAZY_OR_NOW DL_NOW
2014
+ # else
2015
+ # define LTDL_LAZY_OR_NOW 0
2016
+ # endif
2017
+ # endif
2018
+ # endif
2019
+ # endif
2020
+ #endif
2021
+
2022
+ void fnord() { int i=42; }
2023
+ int main() {
2024
+ void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
2025
+ if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
2026
+ if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); }
2027
+
2028
+ EOF
2029
+ if { (eval echo $progname:1965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
2030
+ then
2031
+ lt_cv_dlopen_self=yes
2032
+ else
2033
+ echo "$progname: failed program was:" >&5
2034
+ cat conftest.$ac_ext >&5
2035
+ rm -fr conftest*
2036
+ lt_cv_dlopen_self=no
2037
+ fi
2038
+ rm -fr conftest*
2039
+ fi
2040
+
2041
+ fi
2042
+
2043
+ echo "$ac_t""$lt_cv_dlopen_self" 1>&6
2044
+
2045
+ if test "$lt_cv_dlopen_self" = yes; then
2046
+ LDFLAGS="$LDFLAGS $link_static_flag"
2047
+ echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6
2048
+ echo "$progname:1984: checking whether a statically linked program can dlopen itself" >&5
2049
+ if test "X${lt_cv_dlopen_self_static+set}" = Xset; then
2050
+ echo $ac_n "(cached) $ac_c" 1>&6
2051
+ else
2052
+ if test "$cross_compiling" = yes; then
2053
+ lt_cv_dlopen_self_static=cross
2054
+ else
2055
+ cat > conftest.$ac_ext <<EOF
2056
+ #line 1992 "ltconfig"
2057
+
2058
+ #if HAVE_DLFCN_H
2059
+ #include <dlfcn.h>
2060
+ #endif
2061
+
2062
+ #include <stdio.h>
2063
+
2064
+ #ifdef RTLD_GLOBAL
2065
+ # define LTDL_GLOBAL RTLD_GLOBAL
2066
+ #else
2067
+ # ifdef DL_GLOBAL
2068
+ # define LTDL_GLOBAL DL_GLOBAL
2069
+ # else
2070
+ # define LTDL_GLOBAL 0
2071
+ # endif
2072
+ #endif
2073
+
2074
+ /* We may have to define LTDL_LAZY_OR_NOW in the command line if we
2075
+ find out it does not work in some platform. */
2076
+ #ifndef LTDL_LAZY_OR_NOW
2077
+ # ifdef RTLD_LAZY
2078
+ # define LTDL_LAZY_OR_NOW RTLD_LAZY
2079
+ # else
2080
+ # ifdef DL_LAZY
2081
+ # define LTDL_LAZY_OR_NOW DL_LAZY
2082
+ # else
2083
+ # ifdef RTLD_NOW
2084
+ # define LTDL_LAZY_OR_NOW RTLD_NOW
2085
+ # else
2086
+ # ifdef DL_NOW
2087
+ # define LTDL_LAZY_OR_NOW DL_NOW
2088
+ # else
2089
+ # define LTDL_LAZY_OR_NOW 0
2090
+ # endif
2091
+ # endif
2092
+ # endif
2093
+ # endif
2094
+ #endif
2095
+
2096
+ void fnord() { int i=42; }
2097
+ int main() {
2098
+ void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW);
2099
+ if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord");
2100
+ if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); }
2101
+
2102
+ EOF
2103
+ if { (eval echo $progname:2039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
2104
+ then
2105
+ lt_cv_dlopen_self_static=yes
2106
+ else
2107
+ echo "$progname: failed program was:" >&5
2108
+ cat conftest.$ac_ext >&5
2109
+ rm -fr conftest*
2110
+ lt_cv_dlopen_self_static=no
2111
+ fi
2112
+ rm -fr conftest*
2113
+ fi
2114
+
2115
+ fi
2116
+
2117
+ echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6
2118
+ fi
2119
+ ;;
2120
+ esac
2121
+
2122
+ case $lt_cv_dlopen_self in
2123
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
2124
+ *) enable_dlopen_self=unknown ;;
2125
+ esac
2126
+
2127
+ case $lt_cv_dlopen_self_static in
2128
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
2129
+ *) enable_dlopen_self_static=unknown ;;
2130
+ esac
2131
+ fi
2132
+
2133
+ # Copy echo and quote the copy, instead of the original, because it is
2134
+ # used later.
2135
+ ltecho="$echo"
2136
+ if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then
2137
+ ltecho="$CONFIG_SHELL \$0 --fallback-echo"
2138
+ fi
2139
+ LTSHELL="$SHELL"
2140
+
2141
+ LTCONFIG_VERSION="$VERSION"
2142
+
2143
+ # Only quote variables if we're using ltmain.sh.
2144
+ case $ltmain in
2145
+ *.sh)
2146
+ # Now quote all the things that may contain metacharacters.
2147
+ for var in ltecho old_AR old_AR_FLAGS old_CC old_LTCC old_CFLAGS old_CPPFLAGS \
2148
+ old_MAGIC_CMD old_LD old_LDFLAGS old_LIBS \
2149
+ old_LN_S old_NM old_RANLIB old_STRIP \
2150
+ old_AS old_DLLTOOL old_OBJDUMP \
2151
+ old_OBJEXT old_EXEEXT old_reload_flag \
2152
+ old_deplibs_check_method old_file_magic_cmd \
2153
+ AR AR_FLAGS CC LTCC LD LN_S NM LTSHELL LTCONFIG_VERSION \
2154
+ reload_flag reload_cmds wl \
2155
+ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
2156
+ thread_safe_flag_spec whole_archive_flag_spec libname_spec \
2157
+ library_names_spec soname_spec \
2158
+ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
2159
+ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \
2160
+ postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \
2161
+ predep_objects postdep_objects predeps postdeps compiler_lib_search_path \
2162
+ old_striplib striplib file_magic_cmd export_symbols_cmds \
2163
+ deplibs_check_method allow_undefined_flag no_undefined_flag \
2164
+ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
2165
+ hardcode_libdir_flag_spec hardcode_libdir_separator \
2166
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
2167
+ compiler_c_o need_locks exclude_expsyms include_expsyms; do
2168
+
2169
+ case $var in
2170
+ reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
2171
+ old_postinstall_cmds | old_postuninstall_cmds | \
2172
+ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
2173
+ extract_expsyms_cmds | old_archive_from_expsyms_cmds | \
2174
+ postinstall_cmds | postuninstall_cmds | \
2175
+ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
2176
+ # Double-quote double-evaled strings.
2177
+ eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ### testsuite: skip nested quoting test
2178
+ ;;
2179
+ *)
2180
+ eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ### testsuite: skip nested quoting test
2181
+ ;;
2182
+ esac
2183
+ done
2184
+
2185
+ case $ltecho in
2186
+ *'\$0 --fallback-echo"')
2187
+ ltecho=`$echo "X$ltecho" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
2188
+ ;;
2189
+ esac
2190
+
2191
+ if test -z "$tagname"; then
2192
+ trap "$rm \"$ofile\"; exit 1" 1 2 15
2193
+ echo "creating $ofile"
2194
+ $rm "$ofile"
2195
+ cat <<EOF > "$ofile"
2196
+ #! $SHELL
2197
+
2198
+ # `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
2199
+ # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
2200
+ # NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh.
2201
+ #
2202
+ # Copyright (C) 1996-2000 Free Software Foundation, Inc.
2203
+ # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
2204
+ #
2205
+ # This program is free software; you can redistribute it and/or modify
2206
+ # it under the terms of the GNU General Public License as published by
2207
+ # the Free Software Foundation; either version 2 of the License, or
2208
+ # (at your option) any later version.
2209
+ #
2210
+ # This program is distributed in the hope that it will be useful, but
2211
+ # WITHOUT ANY WARRANTY; without even the implied warranty of
2212
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2213
+ # General Public License for more details.
2214
+ #
2215
+ # You should have received a copy of the GNU General Public License
2216
+ # along with this program; if not, write to the Free Software
2217
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
2218
+ #
2219
+ # As a special exception to the GNU General Public License, if you
2220
+ # distribute this file as part of a program that contains a
2221
+ # configuration script generated by Autoconf, you may include it under
2222
+ # the same distribution terms that you use for the rest of that program.
2223
+
2224
+ # Sed that helps us avoid accidentally triggering echo(1) options like -n.
2225
+ Xsed="sed -e s/^X//"
2226
+
2227
+ # The HP-UX ksh and POSIX shell print the target directory to stdout
2228
+ # if CDPATH is set.
2229
+ if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
2230
+
2231
+ # The names of the tagged configurations supported by this script.
2232
+ available_tags=
2233
+
2234
+ ### BEGIN LIBTOOL CONFIG
2235
+ EOF
2236
+ else
2237
+ echo "appending configuration tag \"$tagname\" to $ofile"
2238
+ echo "### BEGIN LIBTOOL TAG CONFIG: $tagname" >> "$ofile"
2239
+ fi
2240
+ cfgfile="$ofile"
2241
+ ;;
2242
+
2243
+ *)
2244
+ # Double-quote the variables that need it (for aesthetics).
2245
+ for var in old_AR old_AR_FLAGS old_CC old_LTCC old_CFLAGS old_CPPFLAGS \
2246
+ old_MAGIC_CMD old_LD old_LDFLAGS old_LIBS \
2247
+ old_LN_S old_NM old_RANLIB old_STRIP \
2248
+ old_AS old_DLLTOOL old_OBJDUMP \
2249
+ old_OBJEXT old_EXEEXT old_reload_flag \
2250
+ old_deplibs_check_method old_file_magic_cmd; do
2251
+ eval "$var=\\\"\$var\\\""
2252
+ done
2253
+
2254
+ # Just create a config file.
2255
+ cfgfile="$ofile.cfg"
2256
+ if test -z "$tagname"; then
2257
+ trap "$rm \"$cfgfile\"; exit 1" 1 2 15
2258
+ echo "creating $cfgfile"
2259
+ $rm "$cfgfile"
2260
+ cat <<EOF > "$cfgfile"
2261
+ # `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file.
2262
+ # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
2263
+
2264
+ ### BEGIN LIBTOOL CONFIG
2265
+ EOF
2266
+ else
2267
+ echo "appending to $cfgfile"
2268
+ echo "### BEGIN LIBTOOL TAG CONFIG: $tagname" >> "$ofile"
2269
+ fi
2270
+ ;;
2271
+ esac
2272
+
2273
+ cat <<EOF >> "$cfgfile"
2274
+ # Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
2275
+ #
2276
+ # AR=$old_AR AR_FLAGS=$old_AR_FLAGS LTCC=$old_LTCC CC=$old_CC \\
2277
+ # CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\
2278
+ # MAGIC_CMD=$old_MAGIC_CMD LD=$old_LD LDFLAGS=$old_LDFLAGS LIBS=$old_LIBS \\
2279
+ # LN_S=$old_LN_S NM=$old_NM RANLIB=$old_RANLIB STRIP=$old_STRIP \\
2280
+ # AS=$old_AS DLLTOOL=$old_DLLTOOL OBJDUMP=$old_OBJDUMP \\
2281
+ # objext=$old_OBJEXT exeext=$old_EXEEXT reload_flag=$old_reload_flag \\
2282
+ # deplibs_check_method=$old_deplibs_check_method \\
2283
+ # file_magic_cmd=$old_file_magic_cmd \\
2284
+ # $0$ltconfig_args
2285
+ #
2286
+ # Compiler and other test output produced by $progname, useful for
2287
+ # debugging $progname, is in ./config.log if it exists.
2288
+
2289
+ # The version of $progname that generated this script.
2290
+ LTCONFIG_VERSION=$LTCONFIG_VERSION
2291
+
2292
+ # Shell to use when invoking shell scripts.
2293
+ SHELL=$LTSHELL
2294
+
2295
+ # Whether or not to build shared libraries.
2296
+ build_libtool_libs=$enable_shared
2297
+
2298
+ # Whether or not to add -lc for building shared libraries.
2299
+ build_libtool_need_lc=$need_lc
2300
+
2301
+ # Whether or not to build static libraries.
2302
+ build_old_libs=$enable_static
2303
+
2304
+ # Whether or not to optimize for fast installation.
2305
+ fast_install=$enable_fast_install
2306
+
2307
+ # The host system.
2308
+ host_alias=$host_alias
2309
+ host=$host
2310
+
2311
+ # An echo program that does not interpret backslashes.
2312
+ echo=$ltecho
2313
+
2314
+ # The archiver.
2315
+ AR=$AR
2316
+ AR_FLAGS=$AR_FLAGS
2317
+
2318
+ # A C compiler.
2319
+ LTCC=$LTCC
2320
+
2321
+ # A language-specific compiler.
2322
+ CC=$CC
2323
+
2324
+ # Is the compiler the GNU C compiler?
2325
+ with_gcc=$with_gcc
2326
+
2327
+ # The linker used to build libraries.
2328
+ LD=$LD
2329
+
2330
+ # Whether we need hard or soft links.
2331
+ LN_S=$LN_S
2332
+
2333
+ # A BSD-compatible nm program.
2334
+ NM=$NM
2335
+
2336
+ # A symbol stripping program
2337
+ STRIP=$STRIP
2338
+
2339
+ # Used to examine libraries when file_magic_cmd begins "file"
2340
+ MAGIC_CMD=$MAGIC_CMD
2341
+
2342
+ # Used on cygwin: DLL creation program.
2343
+ DLLTOOL="$DLLTOOL"
2344
+
2345
+ # Used on cygwin: object dumper.
2346
+ OBJDUMP="$OBJDUMP"
2347
+
2348
+ # Used on cygwin: assembler.
2349
+ AS="$AS"
2350
+
2351
+ # The name of the directory that contains temporary libtool files.
2352
+ objdir=$objdir
2353
+
2354
+ # How to create reloadable object files.
2355
+ reload_flag=$reload_flag
2356
+ reload_cmds=$reload_cmds
2357
+
2358
+ # How to pass a linker flag through the compiler.
2359
+ wl=$wl
2360
+
2361
+ # Object file suffix (normally "o").
2362
+ objext="$objext"
2363
+
2364
+ # Old archive suffix (normally "a").
2365
+ libext="$libext"
2366
+
2367
+ # Shared library suffix (normally ".so").
2368
+ shrext='$shrext'
2369
+
2370
+ # Executable file suffix (normally "").
2371
+ exeext="$exeext"
2372
+
2373
+ # Additional compiler flags for building library objects.
2374
+ pic_flag=$pic_flag
2375
+ pic_mode=$pic_mode
2376
+
2377
+ # What is the maximum length of a command?
2378
+ max_cmd_len=$max_cmd_len
2379
+
2380
+ # Does compiler simultaneously support -c and -o options?
2381
+ compiler_c_o=$compiler_c_o
2382
+
2383
+ # Must we lock files when doing compilation ?
2384
+ need_locks=$need_locks
2385
+
2386
+ # Do we need the lib prefix for modules?
2387
+ need_lib_prefix=$need_lib_prefix
2388
+
2389
+ # Do we need a version for libraries?
2390
+ need_version=$need_version
2391
+
2392
+ # Whether dlopen is supported.
2393
+ dlopen_support=$enable_dlopen
2394
+
2395
+ # Whether dlopen of programs is supported.
2396
+ dlopen_self=$enable_dlopen_self
2397
+
2398
+ # Whether dlopen of statically linked programs is supported.
2399
+ dlopen_self_static=$enable_dlopen_self_static
2400
+
2401
+ # Compiler flag to prevent dynamic linking.
2402
+ link_static_flag=$link_static_flag
2403
+
2404
+ # Compiler flag to turn off builtin functions.
2405
+ no_builtin_flag=$no_builtin_flag
2406
+
2407
+ # Compiler flag to allow reflexive dlopens.
2408
+ export_dynamic_flag_spec=$export_dynamic_flag_spec
2409
+
2410
+ # Compiler flag to generate shared objects directly from archives.
2411
+ whole_archive_flag_spec=$whole_archive_flag_spec
2412
+
2413
+ # Compiler flag to generate thread-safe objects.
2414
+ thread_safe_flag_spec=$thread_safe_flag_spec
2415
+
2416
+ # Library versioning type.
2417
+ version_type=$version_type
2418
+
2419
+ # Format of library name prefix.
2420
+ libname_spec=$libname_spec
2421
+
2422
+ # List of archive names. First name is the real one, the rest are links.
2423
+ # The last name is the one that the linker finds with -lNAME.
2424
+ library_names_spec=$library_names_spec
2425
+
2426
+ # The coded name of the library, if different from the real name.
2427
+ soname_spec=$soname_spec
2428
+
2429
+ # Commands used to build and install an old-style archive.
2430
+ RANLIB=$RANLIB
2431
+ old_archive_cmds=$old_archive_cmds
2432
+ old_postinstall_cmds=$old_postinstall_cmds
2433
+ old_postuninstall_cmds=$old_postuninstall_cmds
2434
+
2435
+ # Create an old-style archive from a shared archive.
2436
+ old_archive_from_new_cmds=$old_archive_from_new_cmds
2437
+
2438
+ # Create a temporary old-style archive to link instead of a shared archive.
2439
+ old_archive_from_expsyms_cmds=$old_archive_from_expsyms_cmds
2440
+
2441
+ # Commands used to build and install a shared archive.
2442
+ archive_cmds=$archive_cmds
2443
+ archive_expsym_cmds=$archive_expsym_cmds
2444
+ postinstall_cmds=$postinstall_cmds
2445
+ postuninstall_cmds=$postuninstall_cmds
2446
+
2447
+ # Commands to strip libraries.
2448
+ old_striplib=$old_striplib
2449
+ striplib=$striplib
2450
+
2451
+ # Dependencies to place before the objects being linked to create a
2452
+ # shared library.
2453
+ predep_objects=$predep_objects
2454
+
2455
+ # Dependencies to place after the objects being linked to create a
2456
+ # shared library.
2457
+ postdep_objects=$postdep_objects
2458
+
2459
+ # Dependencies to place before the objects being linked to create a
2460
+ # shared library.
2461
+ predeps=$predeps
2462
+
2463
+ # Dependencies to place after the objects being linked to create a
2464
+ # shared library.
2465
+ postdeps=$postdeps
2466
+
2467
+ # The library search path used internally by the compiler when linking
2468
+ # a shared library.
2469
+ compiler_lib_search_path=$compiler_lib_search_path
2470
+
2471
+ # Method to check whether dependent libraries are shared objects.
2472
+ deplibs_check_method=$deplibs_check_method
2473
+
2474
+ # Command to use when deplibs_check_method == file_magic.
2475
+ file_magic_cmd=$file_magic_cmd
2476
+
2477
+ # Flag that allows shared libraries with undefined symbols to be built.
2478
+ allow_undefined_flag=$allow_undefined_flag
2479
+
2480
+ # Flag that forces no undefined symbols.
2481
+ no_undefined_flag=$no_undefined_flag
2482
+
2483
+ # Commands used to finish a libtool library installation in a directory.
2484
+ finish_cmds=$finish_cmds
2485
+
2486
+ # Same as above, but a single script fragment to be evaled but not shown.
2487
+ finish_eval=$finish_eval
2488
+
2489
+ # Take the output of nm and produce a listing of raw symbols and C names.
2490
+ global_symbol_pipe=$global_symbol_pipe
2491
+
2492
+ # Transform the output of nm in a proper C declaration
2493
+ global_symbol_to_cdecl=$global_symbol_to_cdecl
2494
+
2495
+ # This is the shared library runtime path variable.
2496
+ runpath_var=$runpath_var
2497
+
2498
+ # This is the shared library path variable.
2499
+ shlibpath_var=$shlibpath_var
2500
+
2501
+ # Is shlibpath searched before the hard-coded library search path?
2502
+ shlibpath_overrides_runpath=$shlibpath_overrides_runpath
2503
+
2504
+ # How to hardcode a shared library path into an executable.
2505
+ hardcode_action=$hardcode_action
2506
+
2507
+ # Whether we should hardcode library paths into libraries.
2508
+ hardcode_into_libs=$hardcode_into_libs
2509
+
2510
+ # Flag to hardcode \$libdir into a binary during linking.
2511
+ # This must work even if \$libdir does not exist.
2512
+ hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec
2513
+
2514
+ # Whether we need a single -rpath flag with a separated argument.
2515
+ hardcode_libdir_separator=$hardcode_libdir_separator
2516
+
2517
+ # Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
2518
+ # resulting binary.
2519
+ hardcode_direct=$hardcode_direct
2520
+
2521
+ # Set to yes if using the -LDIR flag during linking hardcodes DIR into the
2522
+ # resulting binary.
2523
+ hardcode_minus_L=$hardcode_minus_L
2524
+
2525
+ # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
2526
+ # the resulting binary.
2527
+ hardcode_shlibpath_var=$hardcode_shlibpath_var
2528
+
2529
+ # Variables whose values should be saved in libtool wrapper scripts and
2530
+ # restored at relink time.
2531
+ variables_saved_for_relink="$variables_saved_for_relink"
2532
+
2533
+ # Whether libtool must link a program against all its dependency libraries.
2534
+ link_all_deplibs=$link_all_deplibs
2535
+
2536
+ # Compile-time system search path for libraries
2537
+ sys_lib_search_path_spec=$sys_lib_search_path_spec
2538
+
2539
+ # Run-time system search path for libraries
2540
+ sys_lib_dlsearch_path_spec=$sys_lib_dlsearch_path_spec
2541
+
2542
+ # Fix the shell variable \$srcfile for the compiler.
2543
+ fix_srcfile_path="$fix_srcfile_path"
2544
+
2545
+ # Set to yes if exported symbols are required.
2546
+ always_export_symbols=$always_export_symbols
2547
+
2548
+ # The commands to list exported symbols.
2549
+ export_symbols_cmds=$export_symbols_cmds
2550
+
2551
+ # The commands to extract the exported symbol list from a shared archive.
2552
+ extract_expsyms_cmds=$extract_expsyms_cmds
2553
+
2554
+ # Symbols that should not be listed in the preloaded symbols.
2555
+ exclude_expsyms=$exclude_expsyms
2556
+
2557
+ # Symbols that must always be exported.
2558
+ include_expsyms=$include_expsyms
2559
+
2560
+ EOF
2561
+
2562
+ if test -z "$tagname"; then
2563
+ echo '### END LIBTOOL CONFIG' >> "$ofile"
2564
+ else
2565
+ echo "### END LIBTOOL TAG CONFIG: $tagname" >> "$ofile"
2566
+ fi
2567
+
2568
+ case $ltmain in
2569
+ *.sh)
2570
+ echo >> "$ofile"
2571
+ if test -z "$tagname"; then
2572
+ case $host_os in
2573
+ aix3*)
2574
+ cat <<\EOF >> "$ofile"
2575
+
2576
+ # AIX sometimes has problems with the GCC collect2 program. For some
2577
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
2578
+ # vanish in a puff of smoke.
2579
+ if test "X${COLLECT_NAMES+set}" != Xset; then
2580
+ COLLECT_NAMES=
2581
+ export COLLECT_NAMES
2582
+ fi
2583
+ EOF
2584
+ ;;
2585
+ esac
2586
+ case $host in
2587
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
2588
+ cat <<'EOF' >> "$ofile"
2589
+ # This is a source program that is used to create dlls on Windows
2590
+ # Don't remove nor modify the starting and closing comments
2591
+ # /* ltdll.c starts here */
2592
+ # #define WIN32_LEAN_AND_MEAN
2593
+ # #include <windows.h>
2594
+ # #undef WIN32_LEAN_AND_MEAN
2595
+ # #include <stdio.h>
2596
+ #
2597
+ # #ifndef __CYGWIN__
2598
+ # # ifdef __CYGWIN32__
2599
+ # # define __CYGWIN__ __CYGWIN32__
2600
+ # # endif
2601
+ # #endif
2602
+ #
2603
+ # #ifdef __cplusplus
2604
+ # extern "C" {
2605
+ # #endif
2606
+ # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
2607
+ # #ifdef __cplusplus
2608
+ # }
2609
+ # #endif
2610
+ #
2611
+ # #ifdef __CYGWIN__
2612
+ # #include <cygwin/cygwin_dll.h>
2613
+ # DECLARE_CYGWIN_DLL( DllMain );
2614
+ # #endif
2615
+ # HINSTANCE __hDllInstance_base;
2616
+ #
2617
+ # BOOL APIENTRY
2618
+ # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
2619
+ # {
2620
+ # __hDllInstance_base = hInst;
2621
+ # return TRUE;
2622
+ # }
2623
+ # /* ltdll.c ends here */
2624
+ # This is a source program that is used to create import libraries
2625
+ # on Windows for dlls which lack them. Don't remove nor modify the
2626
+ # starting and closing comments
2627
+ # /* impgen.c starts here */
2628
+ # /* Copyright (C) 1999-2000 Free Software Foundation, Inc.
2629
+ #
2630
+ # This file is part of GNU libtool.
2631
+ #
2632
+ # This program is free software; you can redistribute it and/or modify
2633
+ # it under the terms of the GNU General Public License as published by
2634
+ # the Free Software Foundation; either version 2 of the License, or
2635
+ # (at your option) any later version.
2636
+ #
2637
+ # This program is distributed in the hope that it will be useful,
2638
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
2639
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2640
+ # GNU General Public License for more details.
2641
+ #
2642
+ # You should have received a copy of the GNU General Public License
2643
+ # along with this program; if not, write to the Free Software
2644
+ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
2645
+ # */
2646
+ #
2647
+ # #include <stdio.h> /* for printf() */
2648
+ # #include <unistd.h> /* for open(), lseek(), read() */
2649
+ # #include <fcntl.h> /* for O_RDONLY, O_BINARY */
2650
+ # #include <string.h> /* for strdup() */
2651
+ #
2652
+ # /* O_BINARY isn't required (or even defined sometimes) under Unix */
2653
+ # #ifndef O_BINARY
2654
+ # #define O_BINARY 0
2655
+ # #endif
2656
+ #
2657
+ # static unsigned int
2658
+ # pe_get16 (fd, offset)
2659
+ # int fd;
2660
+ # int offset;
2661
+ # {
2662
+ # unsigned char b[2];
2663
+ # lseek (fd, offset, SEEK_SET);
2664
+ # read (fd, b, 2);
2665
+ # return b[0] + (b[1]<<8);
2666
+ # }
2667
+ #
2668
+ # static unsigned int
2669
+ # pe_get32 (fd, offset)
2670
+ # int fd;
2671
+ # int offset;
2672
+ # {
2673
+ # unsigned char b[4];
2674
+ # lseek (fd, offset, SEEK_SET);
2675
+ # read (fd, b, 4);
2676
+ # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
2677
+ # }
2678
+ #
2679
+ # static unsigned int
2680
+ # pe_as32 (ptr)
2681
+ # void *ptr;
2682
+ # {
2683
+ # unsigned char *b = ptr;
2684
+ # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
2685
+ # }
2686
+ #
2687
+ # int
2688
+ # main (argc, argv)
2689
+ # int argc;
2690
+ # char *argv[];
2691
+ # {
2692
+ # int dll;
2693
+ # unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
2694
+ # unsigned long export_rva, export_size, nsections, secptr, expptr;
2695
+ # unsigned long name_rvas, nexp;
2696
+ # unsigned char *expdata, *erva;
2697
+ # char *filename, *dll_name;
2698
+ #
2699
+ # filename = argv[1];
2700
+ #
2701
+ # dll = open(filename, O_RDONLY|O_BINARY);
2702
+ # if (dll < 1)
2703
+ # return 1;
2704
+ #
2705
+ # dll_name = filename;
2706
+ #
2707
+ # for (i=0; filename[i]; i++)
2708
+ # if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':')
2709
+ # dll_name = filename + i +1;
2710
+ #
2711
+ # pe_header_offset = pe_get32 (dll, 0x3c);
2712
+ # opthdr_ofs = pe_header_offset + 4 + 20;
2713
+ # num_entries = pe_get32 (dll, opthdr_ofs + 92);
2714
+ #
2715
+ # if (num_entries < 1) /* no exports */
2716
+ # return 1;
2717
+ #
2718
+ # export_rva = pe_get32 (dll, opthdr_ofs + 96);
2719
+ # export_size = pe_get32 (dll, opthdr_ofs + 100);
2720
+ # nsections = pe_get16 (dll, pe_header_offset + 4 +2);
2721
+ # secptr = (pe_header_offset + 4 + 20 +
2722
+ # pe_get16 (dll, pe_header_offset + 4 + 16));
2723
+ #
2724
+ # expptr = 0;
2725
+ # for (i = 0; i < nsections; i++)
2726
+ # {
2727
+ # char sname[8];
2728
+ # unsigned long secptr1 = secptr + 40 * i;
2729
+ # unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
2730
+ # unsigned long vsize = pe_get32 (dll, secptr1 + 16);
2731
+ # unsigned long fptr = pe_get32 (dll, secptr1 + 20);
2732
+ # lseek(dll, secptr1, SEEK_SET);
2733
+ # read(dll, sname, 8);
2734
+ # if (vaddr <= export_rva && vaddr+vsize > export_rva)
2735
+ # {
2736
+ # expptr = fptr + (export_rva - vaddr);
2737
+ # if (export_rva + export_size > vaddr + vsize)
2738
+ # export_size = vsize - (export_rva - vaddr);
2739
+ # break;
2740
+ # }
2741
+ # }
2742
+ #
2743
+ # expdata = (unsigned char*)malloc(export_size);
2744
+ # lseek (dll, expptr, SEEK_SET);
2745
+ # read (dll, expdata, export_size);
2746
+ # erva = expdata - export_rva;
2747
+ #
2748
+ # nexp = pe_as32 (expdata+24);
2749
+ # name_rvas = pe_as32 (expdata+32);
2750
+ #
2751
+ # printf ("EXPORTS\n");
2752
+ # for (i = 0; i<nexp; i++)
2753
+ # {
2754
+ # unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
2755
+ # printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
2756
+ # }
2757
+ #
2758
+ # return 0;
2759
+ # }
2760
+ # /* impgen.c ends here */
2761
+
2762
+ EOF
2763
+ ;;
2764
+ esac
2765
+
2766
+
2767
+ # Append the ltmain.sh script.
2768
+ sed '$q' "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1)
2769
+ # We use sed instead of cat because bash on DJGPP gets confused if
2770
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
2771
+ # text mode, it properly converts lines to CR/LF. This bash problem
2772
+ # is reportedly fixed, but why not run on old versions too?
2773
+
2774
+ chmod +x "$ofile"
2775
+ fi
2776
+ ;;
2777
+
2778
+ *)
2779
+ # Compile the libtool program.
2780
+ echo "FIXME: would compile $ltmain"
2781
+ ;;
2782
+ esac
2783
+
2784
+ # Update the list of available tags.
2785
+ if test -n "$tagname"; then
2786
+
2787
+ # Extract list of available tagged configurations in $ofile.
2788
+ # Note that this assumes the entire list is on one line.
2789
+ available_tags=`grep "^available_tags=" $ofile | sed -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
2790
+
2791
+ # Append the new tag name to the list of available tags.
2792
+ available_tags="$available_tags $tagname"
2793
+
2794
+ # Now substitute the updated of available tags.
2795
+ if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' ${ofile} > ${ofile}.new"; then
2796
+ mv ${ofile}.new ${ofile}
2797
+ chmod +x "$ofile"
2798
+ else
2799
+ rm -f ${ofile}.new
2800
+ echo "$progname: unable to update list of available tagged configurations."
2801
+ exit 1
2802
+ fi
2803
+ fi
2804
+
2805
+ # Don't cache tagged configuration!
2806
+ test -n "$cache_file" && test -z "$tagname" || exit 0
2807
+
2808
+ # AC_CACHE_SAVE
2809
+ trap '' 1 2 15
2810
+ cat > confcache <<\EOF
2811
+ # This file is a shell script that caches the results of configure
2812
+ # tests run on this system so they can be shared between configure
2813
+ # scripts and configure runs. It is not useful on other systems.
2814
+ # If it contains results you don't want to keep, you may remove or edit it.
2815
+ #
2816
+ # By default, configure uses ./config.cache as the cache file,
2817
+ # creating it if it does not exist already. You can give configure
2818
+ # the --cache-file=FILE option to use a different cache file; that is
2819
+ # what configure does when it calls configure scripts in
2820
+ # subdirectories, so they share the cache.
2821
+ # Giving --cache-file=/dev/null disables caching, for debugging configure.
2822
+ # config.status only pays attention to the cache file if you give it the
2823
+ # --recheck option to rerun configure.
2824
+ #
2825
+ EOF
2826
+ # The following way of writing the cache mishandles newlines in values,
2827
+ # but we know of no workaround that is simple, portable, and efficient.
2828
+ # So, don't put newlines in cache variables' values.
2829
+ # Ultrix sh set writes to stderr and can't be redirected directly,
2830
+ # and sets the high bit in the cache file unless we assign to the vars.
2831
+ (set) 2>&1 |
2832
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
2833
+ *ac_space=\ *)
2834
+ # `set' does not quote correctly, so add quotes (double-quote substitution
2835
+ # turns \\\\ into \\, and sed turns \\ into \).
2836
+ sed -n \
2837
+ -e "s/'/'\\\\''/g" \
2838
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
2839
+ ;;
2840
+ *)
2841
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
2842
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
2843
+ ;;
2844
+ esac >> confcache
2845
+ if cmp -s $cache_file confcache; then
2846
+ :
2847
+ else
2848
+ if test -w $cache_file; then
2849
+ echo "updating cache $cache_file"
2850
+ cat confcache > $cache_file
2851
+ else
2852
+ echo "not updating unwritable cache $cache_file"
2853
+ fi
2854
+ fi
2855
+ rm -f confcache
2856
+
2857
+ exit 0
2858
+
2859
+ # Local Variables:
2860
+ # mode:shell-script
2861
+ # sh-indentation:2
2862
+ # End: