ffi 0.4.0-x86-mswin32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of ffi might be problematic. Click here for more details.

Files changed (316) hide show
  1. data/LICENSE +51 -0
  2. data/README.rdoc +69 -0
  3. data/Rakefile +142 -0
  4. data/ext/ffi_c/AbstractMemory.c +412 -0
  5. data/ext/ffi_c/AbstractMemory.h +68 -0
  6. data/ext/ffi_c/AutoPointer.c +60 -0
  7. data/ext/ffi_c/AutoPointer.h +18 -0
  8. data/ext/ffi_c/Buffer.c +171 -0
  9. data/ext/ffi_c/Callback.c +374 -0
  10. data/ext/ffi_c/Callback.h +47 -0
  11. data/ext/ffi_c/DynamicLibrary.c +213 -0
  12. data/ext/ffi_c/DynamicLibrary.h +22 -0
  13. data/ext/ffi_c/Invoker.c +962 -0
  14. data/ext/ffi_c/LastError.c +135 -0
  15. data/ext/ffi_c/LastError.h +18 -0
  16. data/ext/ffi_c/MemoryPointer.c +156 -0
  17. data/ext/ffi_c/MemoryPointer.h +20 -0
  18. data/ext/ffi_c/NullPointer.c +143 -0
  19. data/ext/ffi_c/Platform.c +59 -0
  20. data/ext/ffi_c/Platform.h +16 -0
  21. data/ext/ffi_c/Pointer.c +164 -0
  22. data/ext/ffi_c/Pointer.h +25 -0
  23. data/ext/ffi_c/Struct.c +477 -0
  24. data/ext/ffi_c/Struct.h +26 -0
  25. data/ext/ffi_c/Type.c +230 -0
  26. data/ext/ffi_c/Type.h +28 -0
  27. data/ext/ffi_c/Types.c +118 -0
  28. data/ext/ffi_c/Types.h +54 -0
  29. data/ext/ffi_c/compat.h +22 -0
  30. data/ext/ffi_c/endian.h +40 -0
  31. data/ext/ffi_c/extconf.rb +31 -0
  32. data/ext/ffi_c/ffi.c +76 -0
  33. data/ext/ffi_c/libffi.bsd.mk +34 -0
  34. data/ext/ffi_c/libffi.darwin.mk +75 -0
  35. data/ext/ffi_c/libffi.gnu.mk +29 -0
  36. data/ext/ffi_c/libffi.mk +13 -0
  37. data/ext/ffi_c/libffi/ChangeLog +3243 -0
  38. data/ext/ffi_c/libffi/ChangeLog.libffi +347 -0
  39. data/ext/ffi_c/libffi/ChangeLog.libgcj +40 -0
  40. data/ext/ffi_c/libffi/ChangeLog.v1 +764 -0
  41. data/ext/ffi_c/libffi/LICENSE +21 -0
  42. data/ext/ffi_c/libffi/Makefile.am +177 -0
  43. data/ext/ffi_c/libffi/Makefile.in +1640 -0
  44. data/ext/ffi_c/libffi/README +328 -0
  45. data/ext/ffi_c/libffi/TODO +1 -0
  46. data/ext/ffi_c/libffi/acinclude.m4 +92 -0
  47. data/ext/ffi_c/libffi/aclocal.m4 +7516 -0
  48. data/ext/ffi_c/libffi/compile +142 -0
  49. data/ext/ffi_c/libffi/config.guess +1516 -0
  50. data/ext/ffi_c/libffi/config.sub +1626 -0
  51. data/ext/ffi_c/libffi/configure +24414 -0
  52. data/ext/ffi_c/libffi/configure.ac +365 -0
  53. data/ext/ffi_c/libffi/configure.host +11 -0
  54. data/ext/ffi_c/libffi/depcomp +584 -0
  55. data/ext/ffi_c/libffi/doc/libffi.info +533 -0
  56. data/ext/ffi_c/libffi/doc/libffi.texi +541 -0
  57. data/ext/ffi_c/libffi/doc/stamp-vti +4 -0
  58. data/ext/ffi_c/libffi/doc/version.texi +4 -0
  59. data/ext/ffi_c/libffi/fficonfig.h.in +160 -0
  60. data/ext/ffi_c/libffi/include/Makefile.am +9 -0
  61. data/ext/ffi_c/libffi/include/Makefile.in +422 -0
  62. data/ext/ffi_c/libffi/include/ffi.h.in +393 -0
  63. data/ext/ffi_c/libffi/include/ffi_common.h +98 -0
  64. data/ext/ffi_c/libffi/install-sh +323 -0
  65. data/ext/ffi_c/libffi/libffi.pc.in +10 -0
  66. data/ext/ffi_c/libffi/libtool-version +29 -0
  67. data/ext/ffi_c/libffi/ltcf-c.sh +861 -0
  68. data/ext/ffi_c/libffi/ltcf-cxx.sh +1069 -0
  69. data/ext/ffi_c/libffi/ltcf-gcj.sh +700 -0
  70. data/ext/ffi_c/libffi/ltconfig +2862 -0
  71. data/ext/ffi_c/libffi/ltmain.sh +6930 -0
  72. data/ext/ffi_c/libffi/man/Makefile.am +8 -0
  73. data/ext/ffi_c/libffi/man/Makefile.in +395 -0
  74. data/ext/ffi_c/libffi/man/ffi.3 +31 -0
  75. data/ext/ffi_c/libffi/man/ffi_call.3 +103 -0
  76. data/ext/ffi_c/libffi/man/ffi_prep_cif.3 +66 -0
  77. data/ext/ffi_c/libffi/mdate-sh +201 -0
  78. data/ext/ffi_c/libffi/missing +353 -0
  79. data/ext/ffi_c/libffi/mkinstalldirs +158 -0
  80. data/ext/ffi_c/libffi/src/alpha/ffi.c +284 -0
  81. data/ext/ffi_c/libffi/src/alpha/ffitarget.h +48 -0
  82. data/ext/ffi_c/libffi/src/alpha/osf.S +366 -0
  83. data/ext/ffi_c/libffi/src/arm/ffi.c +309 -0
  84. data/ext/ffi_c/libffi/src/arm/ffitarget.h +49 -0
  85. data/ext/ffi_c/libffi/src/arm/sysv.S +299 -0
  86. data/ext/ffi_c/libffi/src/closures.c +596 -0
  87. data/ext/ffi_c/libffi/src/cris/ffi.c +383 -0
  88. data/ext/ffi_c/libffi/src/cris/ffitarget.h +51 -0
  89. data/ext/ffi_c/libffi/src/cris/sysv.S +215 -0
  90. data/ext/ffi_c/libffi/src/debug.c +59 -0
  91. data/ext/ffi_c/libffi/src/dlmalloc.c +5099 -0
  92. data/ext/ffi_c/libffi/src/frv/eabi.S +128 -0
  93. data/ext/ffi_c/libffi/src/frv/ffi.c +292 -0
  94. data/ext/ffi_c/libffi/src/frv/ffitarget.h +61 -0
  95. data/ext/ffi_c/libffi/src/ia64/ffi.c +580 -0
  96. data/ext/ffi_c/libffi/src/ia64/ffitarget.h +50 -0
  97. data/ext/ffi_c/libffi/src/ia64/ia64_flags.h +40 -0
  98. data/ext/ffi_c/libffi/src/ia64/unix.S +560 -0
  99. data/ext/ffi_c/libffi/src/java_raw_api.c +359 -0
  100. data/ext/ffi_c/libffi/src/m32r/ffi.c +232 -0
  101. data/ext/ffi_c/libffi/src/m32r/ffitarget.h +48 -0
  102. data/ext/ffi_c/libffi/src/m32r/sysv.S +121 -0
  103. data/ext/ffi_c/libffi/src/m68k/ffi.c +278 -0
  104. data/ext/ffi_c/libffi/src/m68k/ffitarget.h +49 -0
  105. data/ext/ffi_c/libffi/src/m68k/sysv.S +234 -0
  106. data/ext/ffi_c/libffi/src/mips/ffi.c +926 -0
  107. data/ext/ffi_c/libffi/src/mips/ffitarget.h +202 -0
  108. data/ext/ffi_c/libffi/src/mips/n32.S +534 -0
  109. data/ext/ffi_c/libffi/src/mips/o32.S +381 -0
  110. data/ext/ffi_c/libffi/src/pa/ffi.c +709 -0
  111. data/ext/ffi_c/libffi/src/pa/ffitarget.h +77 -0
  112. data/ext/ffi_c/libffi/src/pa/hpux32.S +368 -0
  113. data/ext/ffi_c/libffi/src/pa/linux.S +357 -0
  114. data/ext/ffi_c/libffi/src/powerpc/aix.S +225 -0
  115. data/ext/ffi_c/libffi/src/powerpc/aix_closure.S +247 -0
  116. data/ext/ffi_c/libffi/src/powerpc/asm.h +125 -0
  117. data/ext/ffi_c/libffi/src/powerpc/darwin.S +245 -0
  118. data/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +317 -0
  119. data/ext/ffi_c/libffi/src/powerpc/ffi.c +1429 -0
  120. data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +800 -0
  121. data/ext/ffi_c/libffi/src/powerpc/ffitarget.h +118 -0
  122. data/ext/ffi_c/libffi/src/powerpc/linux64.S +187 -0
  123. data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +236 -0
  124. data/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +327 -0
  125. data/ext/ffi_c/libffi/src/powerpc/sysv.S +230 -0
  126. data/ext/ffi_c/libffi/src/prep_cif.c +174 -0
  127. data/ext/ffi_c/libffi/src/raw_api.c +254 -0
  128. data/ext/ffi_c/libffi/src/s390/ffi.c +780 -0
  129. data/ext/ffi_c/libffi/src/s390/ffitarget.h +60 -0
  130. data/ext/ffi_c/libffi/src/s390/sysv.S +434 -0
  131. data/ext/ffi_c/libffi/src/sh/ffi.c +716 -0
  132. data/ext/ffi_c/libffi/src/sh/ffitarget.h +49 -0
  133. data/ext/ffi_c/libffi/src/sh/sysv.S +850 -0
  134. data/ext/ffi_c/libffi/src/sh64/ffi.c +453 -0
  135. data/ext/ffi_c/libffi/src/sh64/ffitarget.h +53 -0
  136. data/ext/ffi_c/libffi/src/sh64/sysv.S +530 -0
  137. data/ext/ffi_c/libffi/src/sparc/ffi.c +610 -0
  138. data/ext/ffi_c/libffi/src/sparc/ffitarget.h +66 -0
  139. data/ext/ffi_c/libffi/src/sparc/v8.S +272 -0
  140. data/ext/ffi_c/libffi/src/sparc/v9.S +307 -0
  141. data/ext/ffi_c/libffi/src/types.c +77 -0
  142. data/ext/ffi_c/libffi/src/x86/darwin.S +443 -0
  143. data/ext/ffi_c/libffi/src/x86/darwin64.S +416 -0
  144. data/ext/ffi_c/libffi/src/x86/ffi.c +475 -0
  145. data/ext/ffi_c/libffi/src/x86/ffi64.c +572 -0
  146. data/ext/ffi_c/libffi/src/x86/ffitarget.h +90 -0
  147. data/ext/ffi_c/libffi/src/x86/freebsd.S +458 -0
  148. data/ext/ffi_c/libffi/src/x86/sysv.S +437 -0
  149. data/ext/ffi_c/libffi/src/x86/unix64.S +418 -0
  150. data/ext/ffi_c/libffi/src/x86/win32.S +391 -0
  151. data/ext/ffi_c/libffi/testsuite/Makefile.am +71 -0
  152. data/ext/ffi_c/libffi/testsuite/Makefile.in +447 -0
  153. data/ext/ffi_c/libffi/testsuite/config/default.exp +1 -0
  154. data/ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp +289 -0
  155. data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +263 -0
  156. data/ext/ffi_c/libffi/testsuite/lib/wrapper.exp +45 -0
  157. data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +36 -0
  158. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn0.c +97 -0
  159. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn1.c +89 -0
  160. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn2.c +89 -0
  161. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn3.c +90 -0
  162. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn4.c +97 -0
  163. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn5.c +99 -0
  164. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn6.c +98 -0
  165. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_stdcall.c +72 -0
  166. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +102 -0
  167. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +103 -0
  168. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +104 -0
  169. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +110 -0
  170. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +97 -0
  171. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +99 -0
  172. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +101 -0
  173. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +121 -0
  174. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +98 -0
  175. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +103 -0
  176. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +98 -0
  177. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +98 -0
  178. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +106 -0
  179. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +98 -0
  180. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +117 -0
  181. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +106 -0
  182. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +132 -0
  183. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +121 -0
  184. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +107 -0
  185. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +125 -0
  186. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +105 -0
  187. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +96 -0
  188. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +98 -0
  189. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +99 -0
  190. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +101 -0
  191. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +99 -0
  192. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +100 -0
  193. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +101 -0
  194. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +99 -0
  195. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +99 -0
  196. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +99 -0
  197. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +99 -0
  198. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +99 -0
  199. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +100 -0
  200. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_double.c +51 -0
  201. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_float.c +51 -0
  202. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_schar.c +82 -0
  203. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshort.c +82 -0
  204. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshortchar.c +94 -0
  205. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_uchar.c +99 -0
  206. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushort.c +82 -0
  207. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushortchar.c +94 -0
  208. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_schar.c +52 -0
  209. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_sint.c +50 -0
  210. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_sshort.c +50 -0
  211. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar.c +50 -0
  212. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint.c +51 -0
  213. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +54 -0
  214. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort.c +51 -0
  215. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +86 -0
  216. data/ext/ffi_c/libffi/testsuite/libffi.call/float.c +59 -0
  217. data/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +58 -0
  218. data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +57 -0
  219. data/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +72 -0
  220. data/ext/ffi_c/libffi/testsuite/libffi.call/float4.c +62 -0
  221. data/ext/ffi_c/libffi/testsuite/libffi.call/many.c +69 -0
  222. data/ext/ffi_c/libffi/testsuite/libffi.call/many_win32.c +63 -0
  223. data/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +53 -0
  224. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +160 -0
  225. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +169 -0
  226. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +141 -0
  227. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +118 -0
  228. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +119 -0
  229. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +119 -0
  230. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +120 -0
  231. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +139 -0
  232. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +119 -0
  233. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +139 -0
  234. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +139 -0
  235. data/ext/ffi_c/libffi/testsuite/libffi.call/problem1.c +98 -0
  236. data/ext/ffi_c/libffi/testsuite/libffi.call/promotion.c +59 -0
  237. data/ext/ffi_c/libffi/testsuite/libffi.call/pyobjc-tc.c +114 -0
  238. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +35 -0
  239. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c +43 -0
  240. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c +42 -0
  241. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c +35 -0
  242. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c +36 -0
  243. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c +49 -0
  244. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c +42 -0
  245. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +34 -0
  246. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c +41 -0
  247. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +42 -0
  248. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +36 -0
  249. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +38 -0
  250. data/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +38 -0
  251. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +38 -0
  252. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +44 -0
  253. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen_win32.c +44 -0
  254. data/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +65 -0
  255. data/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +67 -0
  256. data/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +59 -0
  257. data/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +63 -0
  258. data/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +65 -0
  259. data/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +64 -0
  260. data/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +74 -0
  261. data/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +80 -0
  262. data/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +67 -0
  263. data/ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h +86 -0
  264. data/ext/ffi_c/libffi/testsuite/libffi.special/special.exp +38 -0
  265. data/ext/ffi_c/libffi/testsuite/libffi.special/unwindtest.cc +123 -0
  266. data/ext/ffi_c/libffi/testsuite/libffi.special/unwindtest_ffi_call.cc +53 -0
  267. data/ext/ffi_c/libffi/texinfo.tex +7482 -0
  268. data/ext/ffi_c/rbffi.h +23 -0
  269. data/gen/Rakefile +12 -0
  270. data/lib/1.8/ffi_c.so +0 -0
  271. data/lib/1.9/ffi_c.so +0 -0
  272. data/lib/ffi.rb +11 -0
  273. data/lib/ffi/autopointer.rb +61 -0
  274. data/lib/ffi/buffer.rb +0 -0
  275. data/lib/ffi/callback.rb +10 -0
  276. data/lib/ffi/enum.rb +78 -0
  277. data/lib/ffi/errno.rb +8 -0
  278. data/lib/ffi/ffi.rb +96 -0
  279. data/lib/ffi/io.rb +21 -0
  280. data/lib/ffi/library.rb +243 -0
  281. data/lib/ffi/managedstruct.rb +55 -0
  282. data/lib/ffi/memorypointer.rb +73 -0
  283. data/lib/ffi/platform.rb +78 -0
  284. data/lib/ffi/pointer.rb +119 -0
  285. data/lib/ffi/struct.rb +354 -0
  286. data/lib/ffi/tools/const_generator.rb +177 -0
  287. data/lib/ffi/tools/generator.rb +58 -0
  288. data/lib/ffi/tools/generator_task.rb +35 -0
  289. data/lib/ffi/tools/struct_generator.rb +194 -0
  290. data/lib/ffi/tools/types_generator.rb +123 -0
  291. data/lib/ffi/types.rb +153 -0
  292. data/lib/ffi/union.rb +17 -0
  293. data/lib/ffi/variadic.rb +30 -0
  294. data/spec/ffi/bool_spec.rb +24 -0
  295. data/spec/ffi/buffer_spec.rb +196 -0
  296. data/spec/ffi/callback_spec.rb +560 -0
  297. data/spec/ffi/enum_spec.rb +164 -0
  298. data/spec/ffi/errno_spec.rb +13 -0
  299. data/spec/ffi/library_spec.rb +144 -0
  300. data/spec/ffi/managed_struct_spec.rb +56 -0
  301. data/spec/ffi/number_spec.rb +231 -0
  302. data/spec/ffi/pointer_spec.rb +195 -0
  303. data/spec/ffi/rbx/attach_function_spec.rb +27 -0
  304. data/spec/ffi/rbx/memory_pointer_spec.rb +102 -0
  305. data/spec/ffi/rbx/spec_helper.rb +1 -0
  306. data/spec/ffi/rbx/struct_spec.rb +13 -0
  307. data/spec/ffi/spec_helper.rb +17 -0
  308. data/spec/ffi/string_spec.rb +103 -0
  309. data/spec/ffi/struct_callback_spec.rb +41 -0
  310. data/spec/ffi/struct_initialize_spec.rb +30 -0
  311. data/spec/ffi/struct_spec.rb +476 -0
  312. data/spec/ffi/typedef_spec.rb +48 -0
  313. data/spec/ffi/union_spec.rb +60 -0
  314. data/spec/ffi/variadic_spec.rb +84 -0
  315. data/spec/spec.opts +4 -0
  316. metadata +375 -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: