ffi 1.9.3-x64-mingw32

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 (436) hide show
  1. data/COPYING +49 -0
  2. data/LICENSE +24 -0
  3. data/README.md +109 -0
  4. data/Rakefile +220 -0
  5. data/ext/ffi_c/AbstractMemory.c +1032 -0
  6. data/ext/ffi_c/AbstractMemory.h +175 -0
  7. data/ext/ffi_c/ArrayType.c +162 -0
  8. data/ext/ffi_c/ArrayType.h +59 -0
  9. data/ext/ffi_c/Buffer.c +365 -0
  10. data/ext/ffi_c/Call.c +465 -0
  11. data/ext/ffi_c/Call.h +93 -0
  12. data/ext/ffi_c/ClosurePool.c +283 -0
  13. data/ext/ffi_c/ClosurePool.h +57 -0
  14. data/ext/ffi_c/DataConverter.c +91 -0
  15. data/ext/ffi_c/DynamicLibrary.c +333 -0
  16. data/ext/ffi_c/DynamicLibrary.h +49 -0
  17. data/ext/ffi_c/Function.c +999 -0
  18. data/ext/ffi_c/Function.h +87 -0
  19. data/ext/ffi_c/FunctionInfo.c +271 -0
  20. data/ext/ffi_c/LastError.c +184 -0
  21. data/ext/ffi_c/LastError.h +47 -0
  22. data/ext/ffi_c/LongDouble.c +63 -0
  23. data/ext/ffi_c/LongDouble.h +51 -0
  24. data/ext/ffi_c/MappedType.c +168 -0
  25. data/ext/ffi_c/MappedType.h +59 -0
  26. data/ext/ffi_c/MemoryPointer.c +197 -0
  27. data/ext/ffi_c/MemoryPointer.h +53 -0
  28. data/ext/ffi_c/MethodHandle.c +360 -0
  29. data/ext/ffi_c/MethodHandle.h +55 -0
  30. data/ext/ffi_c/Platform.c +121 -0
  31. data/ext/ffi_c/Platform.h +45 -0
  32. data/ext/ffi_c/Pointer.c +508 -0
  33. data/ext/ffi_c/Pointer.h +63 -0
  34. data/ext/ffi_c/Struct.c +828 -0
  35. data/ext/ffi_c/Struct.h +106 -0
  36. data/ext/ffi_c/StructByReference.c +190 -0
  37. data/ext/ffi_c/StructByReference.h +50 -0
  38. data/ext/ffi_c/StructByValue.c +150 -0
  39. data/ext/ffi_c/StructByValue.h +55 -0
  40. data/ext/ffi_c/StructLayout.c +698 -0
  41. data/ext/ffi_c/Thread.c +352 -0
  42. data/ext/ffi_c/Thread.h +95 -0
  43. data/ext/ffi_c/Type.c +397 -0
  44. data/ext/ffi_c/Type.h +62 -0
  45. data/ext/ffi_c/Types.c +139 -0
  46. data/ext/ffi_c/Types.h +89 -0
  47. data/ext/ffi_c/Variadic.c +276 -0
  48. data/ext/ffi_c/compat.h +83 -0
  49. data/ext/ffi_c/extconf.rb +64 -0
  50. data/ext/ffi_c/ffi.c +98 -0
  51. data/ext/ffi_c/libffi.bsd.mk +34 -0
  52. data/ext/ffi_c/libffi.darwin.mk +95 -0
  53. data/ext/ffi_c/libffi.gnu.mk +31 -0
  54. data/ext/ffi_c/libffi.mk +13 -0
  55. data/ext/ffi_c/libffi.vc.mk +26 -0
  56. data/ext/ffi_c/libffi.vc64.mk +26 -0
  57. data/ext/ffi_c/libffi/ChangeLog +4600 -0
  58. data/ext/ffi_c/libffi/ChangeLog.libffi +584 -0
  59. data/ext/ffi_c/libffi/ChangeLog.libgcj +40 -0
  60. data/ext/ffi_c/libffi/ChangeLog.v1 +764 -0
  61. data/ext/ffi_c/libffi/LICENSE +21 -0
  62. data/ext/ffi_c/libffi/Makefile.am +196 -0
  63. data/ext/ffi_c/libffi/Makefile.in +1820 -0
  64. data/ext/ffi_c/libffi/Makefile.vc +141 -0
  65. data/ext/ffi_c/libffi/Makefile.vc64 +141 -0
  66. data/ext/ffi_c/libffi/README +342 -0
  67. data/ext/ffi_c/libffi/acinclude.m4 +92 -0
  68. data/ext/ffi_c/libffi/aclocal.m4 +1873 -0
  69. data/ext/ffi_c/libffi/build-ios.sh +67 -0
  70. data/ext/ffi_c/libffi/compile +143 -0
  71. data/ext/ffi_c/libffi/config.guess +1501 -0
  72. data/ext/ffi_c/libffi/config.sub +1705 -0
  73. data/ext/ffi_c/libffi/configure +17191 -0
  74. data/ext/ffi_c/libffi/configure.ac +496 -0
  75. data/ext/ffi_c/libffi/configure.host +11 -0
  76. data/ext/ffi_c/libffi/depcomp +630 -0
  77. data/ext/ffi_c/libffi/doc/libffi.info +593 -0
  78. data/ext/ffi_c/libffi/doc/libffi.texi +600 -0
  79. data/ext/ffi_c/libffi/doc/stamp-vti +4 -0
  80. data/ext/ffi_c/libffi/doc/version.texi +4 -0
  81. data/ext/ffi_c/libffi/fficonfig.h.in +199 -0
  82. data/ext/ffi_c/libffi/fficonfig.hw +57 -0
  83. data/ext/ffi_c/libffi/include/Makefile.am +9 -0
  84. data/ext/ffi_c/libffi/include/Makefile.in +487 -0
  85. data/ext/ffi_c/libffi/include/ffi.h.in +427 -0
  86. data/ext/ffi_c/libffi/include/ffi.h.vc +427 -0
  87. data/ext/ffi_c/libffi/include/ffi.h.vc64 +427 -0
  88. data/ext/ffi_c/libffi/include/ffi_common.h +126 -0
  89. data/ext/ffi_c/libffi/install-sh +520 -0
  90. data/ext/ffi_c/libffi/libffi.pc.in +10 -0
  91. data/ext/ffi_c/libffi/libtool-version +29 -0
  92. data/ext/ffi_c/libffi/ltmain.sh +9636 -0
  93. data/ext/ffi_c/libffi/m4/ax_cc_maxopt.m4 +176 -0
  94. data/ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4 +195 -0
  95. data/ext/ffi_c/libffi/m4/ax_check_compiler_flags.m4 +76 -0
  96. data/ext/ffi_c/libffi/m4/ax_compiler_vendor.m4 +63 -0
  97. data/ext/ffi_c/libffi/m4/ax_configure_args.m4 +70 -0
  98. data/ext/ffi_c/libffi/m4/ax_enable_builddir.m4 +300 -0
  99. data/ext/ffi_c/libffi/m4/ax_gcc_archflag.m4 +215 -0
  100. data/ext/ffi_c/libffi/m4/ax_gcc_x86_cpuid.m4 +79 -0
  101. data/ext/ffi_c/libffi/m4/libtool.m4 +7831 -0
  102. data/ext/ffi_c/libffi/m4/ltoptions.m4 +369 -0
  103. data/ext/ffi_c/libffi/m4/ltsugar.m4 +123 -0
  104. data/ext/ffi_c/libffi/m4/ltversion.m4 +23 -0
  105. data/ext/ffi_c/libffi/m4/lt~obsolete.m4 +98 -0
  106. data/ext/ffi_c/libffi/man/Makefile.am +8 -0
  107. data/ext/ffi_c/libffi/man/Makefile.in +466 -0
  108. data/ext/ffi_c/libffi/man/ffi.3 +31 -0
  109. data/ext/ffi_c/libffi/man/ffi_call.3 +103 -0
  110. data/ext/ffi_c/libffi/man/ffi_prep_cif.3 +66 -0
  111. data/ext/ffi_c/libffi/mdate-sh +201 -0
  112. data/ext/ffi_c/libffi/missing +376 -0
  113. data/ext/ffi_c/libffi/msvcc.sh +197 -0
  114. data/ext/ffi_c/libffi/src/alpha/ffi.c +284 -0
  115. data/ext/ffi_c/libffi/src/alpha/ffitarget.h +48 -0
  116. data/ext/ffi_c/libffi/src/alpha/osf.S +387 -0
  117. data/ext/ffi_c/libffi/src/arm/ffi.c +728 -0
  118. data/ext/ffi_c/libffi/src/arm/ffitarget.h +65 -0
  119. data/ext/ffi_c/libffi/src/arm/gentramp.sh +118 -0
  120. data/ext/ffi_c/libffi/src/arm/sysv.S +497 -0
  121. data/ext/ffi_c/libffi/src/arm/trampoline.S +4450 -0
  122. data/ext/ffi_c/libffi/src/avr32/ffi.c +423 -0
  123. data/ext/ffi_c/libffi/src/avr32/ffitarget.h +50 -0
  124. data/ext/ffi_c/libffi/src/avr32/sysv.S +208 -0
  125. data/ext/ffi_c/libffi/src/closures.c +615 -0
  126. data/ext/ffi_c/libffi/src/cris/ffi.c +383 -0
  127. data/ext/ffi_c/libffi/src/cris/ffitarget.h +51 -0
  128. data/ext/ffi_c/libffi/src/cris/sysv.S +215 -0
  129. data/ext/ffi_c/libffi/src/debug.c +59 -0
  130. data/ext/ffi_c/libffi/src/dlmalloc.c +5161 -0
  131. data/ext/ffi_c/libffi/src/frv/eabi.S +128 -0
  132. data/ext/ffi_c/libffi/src/frv/ffi.c +292 -0
  133. data/ext/ffi_c/libffi/src/frv/ffitarget.h +57 -0
  134. data/ext/ffi_c/libffi/src/ia64/ffi.c +582 -0
  135. data/ext/ffi_c/libffi/src/ia64/ffitarget.h +50 -0
  136. data/ext/ffi_c/libffi/src/ia64/ia64_flags.h +40 -0
  137. data/ext/ffi_c/libffi/src/ia64/unix.S +560 -0
  138. data/ext/ffi_c/libffi/src/java_raw_api.c +356 -0
  139. data/ext/ffi_c/libffi/src/m32r/ffi.c +232 -0
  140. data/ext/ffi_c/libffi/src/m32r/ffitarget.h +48 -0
  141. data/ext/ffi_c/libffi/src/m32r/sysv.S +121 -0
  142. data/ext/ffi_c/libffi/src/m68k/ffi.c +288 -0
  143. data/ext/ffi_c/libffi/src/m68k/ffitarget.h +49 -0
  144. data/ext/ffi_c/libffi/src/m68k/sysv.S +270 -0
  145. data/ext/ffi_c/libffi/src/mips/ffi.c +1036 -0
  146. data/ext/ffi_c/libffi/src/mips/ffitarget.h +242 -0
  147. data/ext/ffi_c/libffi/src/mips/n32.S +591 -0
  148. data/ext/ffi_c/libffi/src/mips/o32.S +381 -0
  149. data/ext/ffi_c/libffi/src/moxie/eabi.S +128 -0
  150. data/ext/ffi_c/libffi/src/moxie/ffi.c +276 -0
  151. data/ext/ffi_c/libffi/src/pa/ffi.c +719 -0
  152. data/ext/ffi_c/libffi/src/pa/ffitarget.h +78 -0
  153. data/ext/ffi_c/libffi/src/pa/hpux32.S +368 -0
  154. data/ext/ffi_c/libffi/src/pa/linux.S +357 -0
  155. data/ext/ffi_c/libffi/src/powerpc/aix.S +328 -0
  156. data/ext/ffi_c/libffi/src/powerpc/aix_closure.S +445 -0
  157. data/ext/ffi_c/libffi/src/powerpc/asm.h +125 -0
  158. data/ext/ffi_c/libffi/src/powerpc/darwin.S +383 -0
  159. data/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +575 -0
  160. data/ext/ffi_c/libffi/src/powerpc/ffi.c +1448 -0
  161. data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +1359 -0
  162. data/ext/ffi_c/libffi/src/powerpc/ffitarget.h +139 -0
  163. data/ext/ffi_c/libffi/src/powerpc/linux64.S +187 -0
  164. data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +236 -0
  165. data/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +327 -0
  166. data/ext/ffi_c/libffi/src/powerpc/sysv.S +219 -0
  167. data/ext/ffi_c/libffi/src/prep_cif.c +177 -0
  168. data/ext/ffi_c/libffi/src/raw_api.c +254 -0
  169. data/ext/ffi_c/libffi/src/s390/ffi.c +780 -0
  170. data/ext/ffi_c/libffi/src/s390/ffitarget.h +62 -0
  171. data/ext/ffi_c/libffi/src/s390/sysv.S +434 -0
  172. data/ext/ffi_c/libffi/src/sh/ffi.c +716 -0
  173. data/ext/ffi_c/libffi/src/sh/ffitarget.h +49 -0
  174. data/ext/ffi_c/libffi/src/sh/sysv.S +850 -0
  175. data/ext/ffi_c/libffi/src/sh64/ffi.c +468 -0
  176. data/ext/ffi_c/libffi/src/sh64/ffitarget.h +53 -0
  177. data/ext/ffi_c/libffi/src/sh64/sysv.S +539 -0
  178. data/ext/ffi_c/libffi/src/sparc/ffi.c +669 -0
  179. data/ext/ffi_c/libffi/src/sparc/ffitarget.h +68 -0
  180. data/ext/ffi_c/libffi/src/sparc/v8.S +313 -0
  181. data/ext/ffi_c/libffi/src/sparc/v9.S +307 -0
  182. data/ext/ffi_c/libffi/src/types.c +77 -0
  183. data/ext/ffi_c/libffi/src/x86/darwin.S +444 -0
  184. data/ext/ffi_c/libffi/src/x86/darwin64.S +416 -0
  185. data/ext/ffi_c/libffi/src/x86/ffi.c +644 -0
  186. data/ext/ffi_c/libffi/src/x86/ffi64.c +635 -0
  187. data/ext/ffi_c/libffi/src/x86/ffitarget.h +121 -0
  188. data/ext/ffi_c/libffi/src/x86/freebsd.S +458 -0
  189. data/ext/ffi_c/libffi/src/x86/sysv.S +468 -0
  190. data/ext/ffi_c/libffi/src/x86/unix64.S +426 -0
  191. data/ext/ffi_c/libffi/src/x86/win32.S +1065 -0
  192. data/ext/ffi_c/libffi/src/x86/win64.S +468 -0
  193. data/ext/ffi_c/libffi/testsuite/Makefile.am +80 -0
  194. data/ext/ffi_c/libffi/testsuite/Makefile.in +500 -0
  195. data/ext/ffi_c/libffi/testsuite/config/default.exp +1 -0
  196. data/ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp +300 -0
  197. data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +350 -0
  198. data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +263 -0
  199. data/ext/ffi_c/libffi/testsuite/lib/wrapper.exp +45 -0
  200. data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +32 -0
  201. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn0.c +89 -0
  202. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn1.c +81 -0
  203. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn2.c +81 -0
  204. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn3.c +82 -0
  205. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn4.c +89 -0
  206. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn5.c +92 -0
  207. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn6.c +90 -0
  208. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_loc_fn0.c +95 -0
  209. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_stdcall.c +64 -0
  210. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +94 -0
  211. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +95 -0
  212. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +96 -0
  213. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +102 -0
  214. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +89 -0
  215. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +91 -0
  216. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +93 -0
  217. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +113 -0
  218. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +90 -0
  219. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +95 -0
  220. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +90 -0
  221. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +90 -0
  222. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +98 -0
  223. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +90 -0
  224. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +109 -0
  225. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +98 -0
  226. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +124 -0
  227. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +113 -0
  228. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +99 -0
  229. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +117 -0
  230. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +97 -0
  231. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +88 -0
  232. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +90 -0
  233. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +91 -0
  234. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +93 -0
  235. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +91 -0
  236. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +92 -0
  237. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split.c +134 -0
  238. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c +117 -0
  239. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +95 -0
  240. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +91 -0
  241. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +91 -0
  242. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +92 -0
  243. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +91 -0
  244. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +91 -0
  245. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +93 -0
  246. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_dbls_struct.c +66 -0
  247. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_double.c +43 -0
  248. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_double_va.c +60 -0
  249. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_float.c +42 -0
  250. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble.c +105 -0
  251. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble_va.c +60 -0
  252. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_schar.c +74 -0
  253. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshort.c +74 -0
  254. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshortchar.c +86 -0
  255. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_uchar.c +91 -0
  256. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushort.c +74 -0
  257. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushortchar.c +86 -0
  258. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer.c +74 -0
  259. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer_stack.c +140 -0
  260. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_schar.c +44 -0
  261. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_sint.c +42 -0
  262. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_sshort.c +42 -0
  263. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar.c +42 -0
  264. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint.c +43 -0
  265. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +47 -0
  266. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort.c +43 -0
  267. data/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_abi.c +36 -0
  268. data/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +26 -0
  269. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +153 -0
  270. data/ext/ffi_c/libffi/testsuite/libffi.call/float.c +59 -0
  271. data/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +58 -0
  272. data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +58 -0
  273. data/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +72 -0
  274. data/ext/ffi_c/libffi/testsuite/libffi.call/float4.c +62 -0
  275. data/ext/ffi_c/libffi/testsuite/libffi.call/huge_struct.c +342 -0
  276. data/ext/ffi_c/libffi/testsuite/libffi.call/many.c +69 -0
  277. data/ext/ffi_c/libffi/testsuite/libffi.call/many_win32.c +63 -0
  278. data/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +53 -0
  279. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +152 -0
  280. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +161 -0
  281. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +133 -0
  282. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +110 -0
  283. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +111 -0
  284. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +111 -0
  285. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +112 -0
  286. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +131 -0
  287. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +111 -0
  288. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +131 -0
  289. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +131 -0
  290. data/ext/ffi_c/libffi/testsuite/libffi.call/problem1.c +90 -0
  291. data/ext/ffi_c/libffi/testsuite/libffi.call/promotion.c +59 -0
  292. data/ext/ffi_c/libffi/testsuite/libffi.call/pyobjc-tc.c +114 -0
  293. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +35 -0
  294. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c +43 -0
  295. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c +42 -0
  296. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c +35 -0
  297. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c +36 -0
  298. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c +49 -0
  299. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c +42 -0
  300. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +34 -0
  301. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c +41 -0
  302. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +43 -0
  303. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +36 -0
  304. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +38 -0
  305. data/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +38 -0
  306. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +38 -0
  307. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_large.c +145 -0
  308. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_large2.c +148 -0
  309. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium.c +124 -0
  310. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium2.c +125 -0
  311. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +44 -0
  312. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen_win32.c +44 -0
  313. data/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +65 -0
  314. data/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +67 -0
  315. data/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +59 -0
  316. data/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +63 -0
  317. data/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +65 -0
  318. data/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +64 -0
  319. data/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +74 -0
  320. data/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +80 -0
  321. data/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +67 -0
  322. data/ext/ffi_c/libffi/testsuite/libffi.call/testclosure.c +70 -0
  323. data/ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h +96 -0
  324. data/ext/ffi_c/libffi/testsuite/libffi.special/special.exp +35 -0
  325. data/ext/ffi_c/libffi/testsuite/libffi.special/unwindtest.cc +124 -0
  326. data/ext/ffi_c/libffi/testsuite/libffi.special/unwindtest_ffi_call.cc +53 -0
  327. data/ext/ffi_c/libffi/texinfo.tex +7210 -0
  328. data/ext/ffi_c/rbffi.h +57 -0
  329. data/ext/ffi_c/rbffi_endian.h +59 -0
  330. data/ext/ffi_c/win32/stdbool.h +8 -0
  331. data/ext/ffi_c/win32/stdint.h +201 -0
  332. data/ffi.gemspec +22 -0
  333. data/gen/Rakefile +30 -0
  334. data/lib/ffi.rb +28 -0
  335. data/lib/ffi/autopointer.rb +194 -0
  336. data/lib/ffi/buffer.rb +4 -0
  337. data/lib/ffi/callback.rb +4 -0
  338. data/lib/ffi/enum.rb +173 -0
  339. data/lib/ffi/errno.rb +43 -0
  340. data/lib/ffi/ffi.rb +44 -0
  341. data/lib/ffi/io.rb +62 -0
  342. data/lib/ffi/library.rb +499 -0
  343. data/lib/ffi/managedstruct.rb +84 -0
  344. data/lib/ffi/memorypointer.rb +1 -0
  345. data/lib/ffi/platform.rb +148 -0
  346. data/lib/ffi/platform/arm-linux/types.conf +104 -0
  347. data/lib/ffi/platform/i386-cygwin/types.conf +3 -0
  348. data/lib/ffi/platform/i386-darwin/types.conf +100 -0
  349. data/lib/ffi/platform/i386-freebsd/types.conf +152 -0
  350. data/lib/ffi/platform/i386-gnu/types.conf +107 -0
  351. data/lib/ffi/platform/i386-linux/types.conf +103 -0
  352. data/lib/ffi/platform/i386-netbsd/types.conf +126 -0
  353. data/lib/ffi/platform/i386-openbsd/types.conf +128 -0
  354. data/lib/ffi/platform/i386-solaris/types.conf +122 -0
  355. data/lib/ffi/platform/i386-windows/types.conf +105 -0
  356. data/lib/ffi/platform/ia64-linux/types.conf +104 -0
  357. data/lib/ffi/platform/mips-linux/types.conf +102 -0
  358. data/lib/ffi/platform/mipsel-linux/types.conf +102 -0
  359. data/lib/ffi/platform/powerpc-aix/types.conf +180 -0
  360. data/lib/ffi/platform/powerpc-darwin/types.conf +100 -0
  361. data/lib/ffi/platform/powerpc-linux/types.conf +100 -0
  362. data/lib/ffi/platform/s390-linux/types.conf +102 -0
  363. data/lib/ffi/platform/s390x-linux/types.conf +102 -0
  364. data/lib/ffi/platform/sparc-linux/types.conf +102 -0
  365. data/lib/ffi/platform/sparc-solaris/types.conf +128 -0
  366. data/lib/ffi/platform/sparcv9-solaris/types.conf +128 -0
  367. data/lib/ffi/platform/x86_64-cygwin/types.conf +3 -0
  368. data/lib/ffi/platform/x86_64-darwin/types.conf +100 -0
  369. data/lib/ffi/platform/x86_64-freebsd/types.conf +128 -0
  370. data/lib/ffi/platform/x86_64-linux/types.conf +102 -0
  371. data/lib/ffi/platform/x86_64-netbsd/types.conf +126 -0
  372. data/lib/ffi/platform/x86_64-openbsd/types.conf +128 -0
  373. data/lib/ffi/platform/x86_64-solaris/types.conf +122 -0
  374. data/lib/ffi/platform/x86_64-windows/types.conf +27 -0
  375. data/lib/ffi/pointer.rb +134 -0
  376. data/lib/ffi/struct.rb +367 -0
  377. data/lib/ffi/struct_layout_builder.rb +222 -0
  378. data/lib/ffi/tools/const_generator.rb +229 -0
  379. data/lib/ffi/tools/generator.rb +60 -0
  380. data/lib/ffi/tools/generator_task.rb +36 -0
  381. data/lib/ffi/tools/struct_generator.rb +194 -0
  382. data/lib/ffi/tools/types_generator.rb +135 -0
  383. data/lib/ffi/types.rb +190 -0
  384. data/lib/ffi/union.rb +43 -0
  385. data/lib/ffi/variadic.rb +78 -0
  386. data/lib/ffi/version.rb +4 -0
  387. data/lib/ffi_c.so +0 -0
  388. data/libtest/Benchmark.c +52 -0
  389. data/libtest/BoolTest.c +34 -0
  390. data/libtest/BufferTest.c +31 -0
  391. data/libtest/ClosureTest.c +190 -0
  392. data/libtest/EnumTest.c +34 -0
  393. data/libtest/FunctionTest.c +58 -0
  394. data/libtest/GNUmakefile +149 -0
  395. data/libtest/GlobalVariable.c +62 -0
  396. data/libtest/LastErrorTest.c +21 -0
  397. data/libtest/NumberTest.c +132 -0
  398. data/libtest/PointerTest.c +63 -0
  399. data/libtest/ReferenceTest.c +23 -0
  400. data/libtest/StringTest.c +34 -0
  401. data/libtest/StructTest.c +243 -0
  402. data/libtest/UnionTest.c +43 -0
  403. data/libtest/VariadicTest.c +62 -0
  404. data/spec/ffi/async_callback_spec.rb +35 -0
  405. data/spec/ffi/bool_spec.rb +29 -0
  406. data/spec/ffi/buffer_spec.rb +251 -0
  407. data/spec/ffi/callback_spec.rb +667 -0
  408. data/spec/ffi/custom_param_type.rb +36 -0
  409. data/spec/ffi/custom_type_spec.rb +74 -0
  410. data/spec/ffi/dup_spec.rb +54 -0
  411. data/spec/ffi/enum_spec.rb +220 -0
  412. data/spec/ffi/errno_spec.rb +18 -0
  413. data/spec/ffi/ffi_spec.rb +29 -0
  414. data/spec/ffi/function_spec.rb +76 -0
  415. data/spec/ffi/library_spec.rb +216 -0
  416. data/spec/ffi/long_double.rb +30 -0
  417. data/spec/ffi/managed_struct_spec.rb +57 -0
  418. data/spec/ffi/number_spec.rb +236 -0
  419. data/spec/ffi/pointer_spec.rb +265 -0
  420. data/spec/ffi/rbx/attach_function_spec.rb +28 -0
  421. data/spec/ffi/rbx/memory_pointer_spec.rb +123 -0
  422. data/spec/ffi/rbx/spec_helper.rb +1 -0
  423. data/spec/ffi/rbx/struct_spec.rb +13 -0
  424. data/spec/ffi/spec_helper.rb +33 -0
  425. data/spec/ffi/string_spec.rb +108 -0
  426. data/spec/ffi/strptr_spec.rb +50 -0
  427. data/spec/ffi/struct_by_ref_spec.rb +43 -0
  428. data/spec/ffi/struct_callback_spec.rb +69 -0
  429. data/spec/ffi/struct_initialize_spec.rb +35 -0
  430. data/spec/ffi/struct_packed_spec.rb +51 -0
  431. data/spec/ffi/struct_spec.rb +748 -0
  432. data/spec/ffi/typedef_spec.rb +78 -0
  433. data/spec/ffi/union_spec.rb +65 -0
  434. data/spec/ffi/variadic_spec.rb +92 -0
  435. data/spec/spec.opts +4 -0
  436. metadata +562 -0
@@ -0,0 +1,369 @@
1
+ # Helper functions for option handling. -*- Autoconf -*-
2
+ #
3
+ # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
4
+ # Inc.
5
+ # Written by Gary V. Vaughan, 2004
6
+ #
7
+ # This file is free software; the Free Software Foundation gives
8
+ # unlimited permission to copy and/or distribute it, with or without
9
+ # modifications, as long as this notice is preserved.
10
+
11
+ # serial 7 ltoptions.m4
12
+
13
+ # This is to help aclocal find these macros, as it can't see m4_define.
14
+ AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
15
+
16
+
17
+ # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
18
+ # ------------------------------------------
19
+ m4_define([_LT_MANGLE_OPTION],
20
+ [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
21
+
22
+
23
+ # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
24
+ # ---------------------------------------
25
+ # Set option OPTION-NAME for macro MACRO-NAME, and if there is a
26
+ # matching handler defined, dispatch to it. Other OPTION-NAMEs are
27
+ # saved as a flag.
28
+ m4_define([_LT_SET_OPTION],
29
+ [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
30
+ m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
31
+ _LT_MANGLE_DEFUN([$1], [$2]),
32
+ [m4_warning([Unknown $1 option `$2'])])[]dnl
33
+ ])
34
+
35
+
36
+ # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
37
+ # ------------------------------------------------------------
38
+ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
39
+ m4_define([_LT_IF_OPTION],
40
+ [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
41
+
42
+
43
+ # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
44
+ # -------------------------------------------------------
45
+ # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
46
+ # are set.
47
+ m4_define([_LT_UNLESS_OPTIONS],
48
+ [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
49
+ [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
50
+ [m4_define([$0_found])])])[]dnl
51
+ m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
52
+ ])[]dnl
53
+ ])
54
+
55
+
56
+ # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
57
+ # ----------------------------------------
58
+ # OPTION-LIST is a space-separated list of Libtool options associated
59
+ # with MACRO-NAME. If any OPTION has a matching handler declared with
60
+ # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
61
+ # the unknown option and exit.
62
+ m4_defun([_LT_SET_OPTIONS],
63
+ [# Set options
64
+ m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
65
+ [_LT_SET_OPTION([$1], _LT_Option)])
66
+
67
+ m4_if([$1],[LT_INIT],[
68
+ dnl
69
+ dnl Simply set some default values (i.e off) if boolean options were not
70
+ dnl specified:
71
+ _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
72
+ ])
73
+ _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
74
+ ])
75
+ dnl
76
+ dnl If no reference was made to various pairs of opposing options, then
77
+ dnl we run the default mode handler for the pair. For example, if neither
78
+ dnl `shared' nor `disable-shared' was passed, we enable building of shared
79
+ dnl archives by default:
80
+ _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
81
+ _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
82
+ _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
83
+ _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
84
+ [_LT_ENABLE_FAST_INSTALL])
85
+ ])
86
+ ])# _LT_SET_OPTIONS
87
+
88
+
89
+ ## --------------------------------- ##
90
+ ## Macros to handle LT_INIT options. ##
91
+ ## --------------------------------- ##
92
+
93
+ # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
94
+ # -----------------------------------------
95
+ m4_define([_LT_MANGLE_DEFUN],
96
+ [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
97
+
98
+
99
+ # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
100
+ # -----------------------------------------------
101
+ m4_define([LT_OPTION_DEFINE],
102
+ [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
103
+ ])# LT_OPTION_DEFINE
104
+
105
+
106
+ # dlopen
107
+ # ------
108
+ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
109
+ ])
110
+
111
+ AU_DEFUN([AC_LIBTOOL_DLOPEN],
112
+ [_LT_SET_OPTION([LT_INIT], [dlopen])
113
+ AC_DIAGNOSE([obsolete],
114
+ [$0: Remove this warning and the call to _LT_SET_OPTION when you
115
+ put the `dlopen' option into LT_INIT's first parameter.])
116
+ ])
117
+
118
+ dnl aclocal-1.4 backwards compatibility:
119
+ dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
120
+
121
+
122
+ # win32-dll
123
+ # ---------
124
+ # Declare package support for building win32 dll's.
125
+ LT_OPTION_DEFINE([LT_INIT], [win32-dll],
126
+ [enable_win32_dll=yes
127
+
128
+ case $host in
129
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
130
+ AC_CHECK_TOOL(AS, as, false)
131
+ AC_CHECK_TOOL(DLLTOOL, dlltool, false)
132
+ AC_CHECK_TOOL(OBJDUMP, objdump, false)
133
+ ;;
134
+ esac
135
+
136
+ test -z "$AS" && AS=as
137
+ _LT_DECL([], [AS], [1], [Assembler program])dnl
138
+
139
+ test -z "$DLLTOOL" && DLLTOOL=dlltool
140
+ _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
141
+
142
+ test -z "$OBJDUMP" && OBJDUMP=objdump
143
+ _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
144
+ ])# win32-dll
145
+
146
+ AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
147
+ [AC_REQUIRE([AC_CANONICAL_HOST])dnl
148
+ _LT_SET_OPTION([LT_INIT], [win32-dll])
149
+ AC_DIAGNOSE([obsolete],
150
+ [$0: Remove this warning and the call to _LT_SET_OPTION when you
151
+ put the `win32-dll' option into LT_INIT's first parameter.])
152
+ ])
153
+
154
+ dnl aclocal-1.4 backwards compatibility:
155
+ dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
156
+
157
+
158
+ # _LT_ENABLE_SHARED([DEFAULT])
159
+ # ----------------------------
160
+ # implement the --enable-shared flag, and supports the `shared' and
161
+ # `disable-shared' LT_INIT options.
162
+ # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
163
+ m4_define([_LT_ENABLE_SHARED],
164
+ [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
165
+ AC_ARG_ENABLE([shared],
166
+ [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
167
+ [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
168
+ [p=${PACKAGE-default}
169
+ case $enableval in
170
+ yes) enable_shared=yes ;;
171
+ no) enable_shared=no ;;
172
+ *)
173
+ enable_shared=no
174
+ # Look at the argument we got. We use all the common list separators.
175
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
176
+ for pkg in $enableval; do
177
+ IFS="$lt_save_ifs"
178
+ if test "X$pkg" = "X$p"; then
179
+ enable_shared=yes
180
+ fi
181
+ done
182
+ IFS="$lt_save_ifs"
183
+ ;;
184
+ esac],
185
+ [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
186
+
187
+ _LT_DECL([build_libtool_libs], [enable_shared], [0],
188
+ [Whether or not to build shared libraries])
189
+ ])# _LT_ENABLE_SHARED
190
+
191
+ LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
192
+ LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
193
+
194
+ # Old names:
195
+ AC_DEFUN([AC_ENABLE_SHARED],
196
+ [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
197
+ ])
198
+
199
+ AC_DEFUN([AC_DISABLE_SHARED],
200
+ [_LT_SET_OPTION([LT_INIT], [disable-shared])
201
+ ])
202
+
203
+ AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
204
+ AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
205
+
206
+ dnl aclocal-1.4 backwards compatibility:
207
+ dnl AC_DEFUN([AM_ENABLE_SHARED], [])
208
+ dnl AC_DEFUN([AM_DISABLE_SHARED], [])
209
+
210
+
211
+
212
+ # _LT_ENABLE_STATIC([DEFAULT])
213
+ # ----------------------------
214
+ # implement the --enable-static flag, and support the `static' and
215
+ # `disable-static' LT_INIT options.
216
+ # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
217
+ m4_define([_LT_ENABLE_STATIC],
218
+ [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
219
+ AC_ARG_ENABLE([static],
220
+ [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
221
+ [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
222
+ [p=${PACKAGE-default}
223
+ case $enableval in
224
+ yes) enable_static=yes ;;
225
+ no) enable_static=no ;;
226
+ *)
227
+ enable_static=no
228
+ # Look at the argument we got. We use all the common list separators.
229
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
230
+ for pkg in $enableval; do
231
+ IFS="$lt_save_ifs"
232
+ if test "X$pkg" = "X$p"; then
233
+ enable_static=yes
234
+ fi
235
+ done
236
+ IFS="$lt_save_ifs"
237
+ ;;
238
+ esac],
239
+ [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
240
+
241
+ _LT_DECL([build_old_libs], [enable_static], [0],
242
+ [Whether or not to build static libraries])
243
+ ])# _LT_ENABLE_STATIC
244
+
245
+ LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
246
+ LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
247
+
248
+ # Old names:
249
+ AC_DEFUN([AC_ENABLE_STATIC],
250
+ [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
251
+ ])
252
+
253
+ AC_DEFUN([AC_DISABLE_STATIC],
254
+ [_LT_SET_OPTION([LT_INIT], [disable-static])
255
+ ])
256
+
257
+ AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
258
+ AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
259
+
260
+ dnl aclocal-1.4 backwards compatibility:
261
+ dnl AC_DEFUN([AM_ENABLE_STATIC], [])
262
+ dnl AC_DEFUN([AM_DISABLE_STATIC], [])
263
+
264
+
265
+
266
+ # _LT_ENABLE_FAST_INSTALL([DEFAULT])
267
+ # ----------------------------------
268
+ # implement the --enable-fast-install flag, and support the `fast-install'
269
+ # and `disable-fast-install' LT_INIT options.
270
+ # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
271
+ m4_define([_LT_ENABLE_FAST_INSTALL],
272
+ [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
273
+ AC_ARG_ENABLE([fast-install],
274
+ [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
275
+ [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
276
+ [p=${PACKAGE-default}
277
+ case $enableval in
278
+ yes) enable_fast_install=yes ;;
279
+ no) enable_fast_install=no ;;
280
+ *)
281
+ enable_fast_install=no
282
+ # Look at the argument we got. We use all the common list separators.
283
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
284
+ for pkg in $enableval; do
285
+ IFS="$lt_save_ifs"
286
+ if test "X$pkg" = "X$p"; then
287
+ enable_fast_install=yes
288
+ fi
289
+ done
290
+ IFS="$lt_save_ifs"
291
+ ;;
292
+ esac],
293
+ [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
294
+
295
+ _LT_DECL([fast_install], [enable_fast_install], [0],
296
+ [Whether or not to optimize for fast installation])dnl
297
+ ])# _LT_ENABLE_FAST_INSTALL
298
+
299
+ LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
300
+ LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
301
+
302
+ # Old names:
303
+ AU_DEFUN([AC_ENABLE_FAST_INSTALL],
304
+ [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
305
+ AC_DIAGNOSE([obsolete],
306
+ [$0: Remove this warning and the call to _LT_SET_OPTION when you put
307
+ the `fast-install' option into LT_INIT's first parameter.])
308
+ ])
309
+
310
+ AU_DEFUN([AC_DISABLE_FAST_INSTALL],
311
+ [_LT_SET_OPTION([LT_INIT], [disable-fast-install])
312
+ AC_DIAGNOSE([obsolete],
313
+ [$0: Remove this warning and the call to _LT_SET_OPTION when you put
314
+ the `disable-fast-install' option into LT_INIT's first parameter.])
315
+ ])
316
+
317
+ dnl aclocal-1.4 backwards compatibility:
318
+ dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
319
+ dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
320
+
321
+
322
+ # _LT_WITH_PIC([MODE])
323
+ # --------------------
324
+ # implement the --with-pic flag, and support the `pic-only' and `no-pic'
325
+ # LT_INIT options.
326
+ # MODE is either `yes' or `no'. If omitted, it defaults to `both'.
327
+ m4_define([_LT_WITH_PIC],
328
+ [AC_ARG_WITH([pic],
329
+ [AS_HELP_STRING([--with-pic],
330
+ [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
331
+ [pic_mode="$withval"],
332
+ [pic_mode=default])
333
+
334
+ test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
335
+
336
+ _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
337
+ ])# _LT_WITH_PIC
338
+
339
+ LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
340
+ LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
341
+
342
+ # Old name:
343
+ AU_DEFUN([AC_LIBTOOL_PICMODE],
344
+ [_LT_SET_OPTION([LT_INIT], [pic-only])
345
+ AC_DIAGNOSE([obsolete],
346
+ [$0: Remove this warning and the call to _LT_SET_OPTION when you
347
+ put the `pic-only' option into LT_INIT's first parameter.])
348
+ ])
349
+
350
+ dnl aclocal-1.4 backwards compatibility:
351
+ dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
352
+
353
+ ## ----------------- ##
354
+ ## LTDL_INIT Options ##
355
+ ## ----------------- ##
356
+
357
+ m4_define([_LTDL_MODE], [])
358
+ LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
359
+ [m4_define([_LTDL_MODE], [nonrecursive])])
360
+ LT_OPTION_DEFINE([LTDL_INIT], [recursive],
361
+ [m4_define([_LTDL_MODE], [recursive])])
362
+ LT_OPTION_DEFINE([LTDL_INIT], [subproject],
363
+ [m4_define([_LTDL_MODE], [subproject])])
364
+
365
+ m4_define([_LTDL_TYPE], [])
366
+ LT_OPTION_DEFINE([LTDL_INIT], [installable],
367
+ [m4_define([_LTDL_TYPE], [installable])])
368
+ LT_OPTION_DEFINE([LTDL_INIT], [convenience],
369
+ [m4_define([_LTDL_TYPE], [convenience])])
@@ -0,0 +1,123 @@
1
+ # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
2
+ #
3
+ # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
4
+ # Written by Gary V. Vaughan, 2004
5
+ #
6
+ # This file is free software; the Free Software Foundation gives
7
+ # unlimited permission to copy and/or distribute it, with or without
8
+ # modifications, as long as this notice is preserved.
9
+
10
+ # serial 6 ltsugar.m4
11
+
12
+ # This is to help aclocal find these macros, as it can't see m4_define.
13
+ AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
14
+
15
+
16
+ # lt_join(SEP, ARG1, [ARG2...])
17
+ # -----------------------------
18
+ # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
19
+ # associated separator.
20
+ # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
21
+ # versions in m4sugar had bugs.
22
+ m4_define([lt_join],
23
+ [m4_if([$#], [1], [],
24
+ [$#], [2], [[$2]],
25
+ [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
26
+ m4_define([_lt_join],
27
+ [m4_if([$#$2], [2], [],
28
+ [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
29
+
30
+
31
+ # lt_car(LIST)
32
+ # lt_cdr(LIST)
33
+ # ------------
34
+ # Manipulate m4 lists.
35
+ # These macros are necessary as long as will still need to support
36
+ # Autoconf-2.59 which quotes differently.
37
+ m4_define([lt_car], [[$1]])
38
+ m4_define([lt_cdr],
39
+ [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
40
+ [$#], 1, [],
41
+ [m4_dquote(m4_shift($@))])])
42
+ m4_define([lt_unquote], $1)
43
+
44
+
45
+ # lt_append(MACRO-NAME, STRING, [SEPARATOR])
46
+ # ------------------------------------------
47
+ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
48
+ # Note that neither SEPARATOR nor STRING are expanded; they are appended
49
+ # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
50
+ # No SEPARATOR is output if MACRO-NAME was previously undefined (different
51
+ # than defined and empty).
52
+ #
53
+ # This macro is needed until we can rely on Autoconf 2.62, since earlier
54
+ # versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
55
+ m4_define([lt_append],
56
+ [m4_define([$1],
57
+ m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
58
+
59
+
60
+
61
+ # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
62
+ # ----------------------------------------------------------
63
+ # Produce a SEP delimited list of all paired combinations of elements of
64
+ # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
65
+ # has the form PREFIXmINFIXSUFFIXn.
66
+ # Needed until we can rely on m4_combine added in Autoconf 2.62.
67
+ m4_define([lt_combine],
68
+ [m4_if(m4_eval([$# > 3]), [1],
69
+ [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
70
+ [[m4_foreach([_Lt_prefix], [$2],
71
+ [m4_foreach([_Lt_suffix],
72
+ ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
73
+ [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
74
+
75
+
76
+ # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
77
+ # -----------------------------------------------------------------------
78
+ # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
79
+ # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
80
+ m4_define([lt_if_append_uniq],
81
+ [m4_ifdef([$1],
82
+ [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
83
+ [lt_append([$1], [$2], [$3])$4],
84
+ [$5])],
85
+ [lt_append([$1], [$2], [$3])$4])])
86
+
87
+
88
+ # lt_dict_add(DICT, KEY, VALUE)
89
+ # -----------------------------
90
+ m4_define([lt_dict_add],
91
+ [m4_define([$1($2)], [$3])])
92
+
93
+
94
+ # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
95
+ # --------------------------------------------
96
+ m4_define([lt_dict_add_subkey],
97
+ [m4_define([$1($2:$3)], [$4])])
98
+
99
+
100
+ # lt_dict_fetch(DICT, KEY, [SUBKEY])
101
+ # ----------------------------------
102
+ m4_define([lt_dict_fetch],
103
+ [m4_ifval([$3],
104
+ m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
105
+ m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
106
+
107
+
108
+ # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
109
+ # -----------------------------------------------------------------
110
+ m4_define([lt_if_dict_fetch],
111
+ [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
112
+ [$5],
113
+ [$6])])
114
+
115
+
116
+ # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
117
+ # --------------------------------------------------------------
118
+ m4_define([lt_dict_filter],
119
+ [m4_if([$5], [], [],
120
+ [lt_join(m4_quote(m4_default([$4], [[, ]])),
121
+ lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
122
+ [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
123
+ ])