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,4 @@
1
+ @set UPDATED 14 February 2008
2
+ @set UPDATED-MONTH February 2008
3
+ @set EDITION 3.0.6
4
+ @set VERSION 3.0.6
@@ -0,0 +1,4 @@
1
+ @set UPDATED 14 February 2008
2
+ @set UPDATED-MONTH February 2008
3
+ @set EDITION 3.0.6
4
+ @set VERSION 3.0.6
@@ -0,0 +1,160 @@
1
+ /* fficonfig.h.in. Generated from configure.ac by autoheader. */
2
+
3
+ /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
4
+ systems. This function is required for `alloca.c' support on those systems.
5
+ */
6
+ #undef CRAY_STACKSEG_END
7
+
8
+ /* Define to 1 if using `alloca.c'. */
9
+ #undef C_ALLOCA
10
+
11
+ /* Define to the flags needed for the .section .eh_frame directive. */
12
+ #undef EH_FRAME_FLAGS
13
+
14
+ /* Define this if you want extra debugging. */
15
+ #undef FFI_DEBUG
16
+
17
+ /* Define this is you do not want support for the raw API. */
18
+ #undef FFI_NO_RAW_API
19
+
20
+ /* Define this is you do not want support for aggregate types. */
21
+ #undef FFI_NO_STRUCTS
22
+
23
+ /* Define to 1 if you have `alloca', as a function or macro. */
24
+ #undef HAVE_ALLOCA
25
+
26
+ /* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
27
+ */
28
+ #undef HAVE_ALLOCA_H
29
+
30
+ /* Define if your assembler supports .cfi_* directives. */
31
+ #undef HAVE_AS_CFI_PSEUDO_OP
32
+
33
+ /* Define if your assembler supports .register. */
34
+ #undef HAVE_AS_REGISTER_PSEUDO_OP
35
+
36
+ /* Define if your assembler and linker support unaligned PC relative relocs.
37
+ */
38
+ #undef HAVE_AS_SPARC_UA_PCREL
39
+
40
+ /* Define to 1 if you have the <dlfcn.h> header file. */
41
+ #undef HAVE_DLFCN_H
42
+
43
+ /* Define if __attribute__((visibility("hidden"))) is supported. */
44
+ #undef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE
45
+
46
+ /* Define to 1 if you have the <inttypes.h> header file. */
47
+ #undef HAVE_INTTYPES_H
48
+
49
+ /* Define if you have the long double type and it is bigger than a double */
50
+ #undef HAVE_LONG_DOUBLE
51
+
52
+ /* Define to 1 if you have the `memcpy' function. */
53
+ #undef HAVE_MEMCPY
54
+
55
+ /* Define to 1 if you have the <memory.h> header file. */
56
+ #undef HAVE_MEMORY_H
57
+
58
+ /* Define to 1 if you have the `mmap' function. */
59
+ #undef HAVE_MMAP
60
+
61
+ /* Define if mmap with MAP_ANON(YMOUS) works. */
62
+ #undef HAVE_MMAP_ANON
63
+
64
+ /* Define if mmap of /dev/zero works. */
65
+ #undef HAVE_MMAP_DEV_ZERO
66
+
67
+ /* Define if read-only mmap of a plain file works. */
68
+ #undef HAVE_MMAP_FILE
69
+
70
+ /* Define if .eh_frame sections should be read-only. */
71
+ #undef HAVE_RO_EH_FRAME
72
+
73
+ /* Define to 1 if you have the <stdint.h> header file. */
74
+ #undef HAVE_STDINT_H
75
+
76
+ /* Define to 1 if you have the <stdlib.h> header file. */
77
+ #undef HAVE_STDLIB_H
78
+
79
+ /* Define to 1 if you have the <strings.h> header file. */
80
+ #undef HAVE_STRINGS_H
81
+
82
+ /* Define to 1 if you have the <string.h> header file. */
83
+ #undef HAVE_STRING_H
84
+
85
+ /* Define to 1 if you have the <sys/mman.h> header file. */
86
+ #undef HAVE_SYS_MMAN_H
87
+
88
+ /* Define to 1 if you have the <sys/stat.h> header file. */
89
+ #undef HAVE_SYS_STAT_H
90
+
91
+ /* Define to 1 if you have the <sys/types.h> header file. */
92
+ #undef HAVE_SYS_TYPES_H
93
+
94
+ /* Define to 1 if you have the <unistd.h> header file. */
95
+ #undef HAVE_UNISTD_H
96
+
97
+ /* Define to 1 if your C compiler doesn't accept -c and -o together. */
98
+ #undef NO_MINUS_C_MINUS_O
99
+
100
+ /* Name of package */
101
+ #undef PACKAGE
102
+
103
+ /* Define to the address where bug reports for this package should be sent. */
104
+ #undef PACKAGE_BUGREPORT
105
+
106
+ /* Define to the full name of this package. */
107
+ #undef PACKAGE_NAME
108
+
109
+ /* Define to the full name and version of this package. */
110
+ #undef PACKAGE_STRING
111
+
112
+ /* Define to the one symbol short name of this package. */
113
+ #undef PACKAGE_TARNAME
114
+
115
+ /* Define to the version of this package. */
116
+ #undef PACKAGE_VERSION
117
+
118
+ /* The size of `double', as computed by sizeof. */
119
+ #undef SIZEOF_DOUBLE
120
+
121
+ /* The size of `long double', as computed by sizeof. */
122
+ #undef SIZEOF_LONG_DOUBLE
123
+
124
+ /* If using the C implementation of alloca, define if you know the
125
+ direction of stack growth for your system; otherwise it will be
126
+ automatically deduced at runtime.
127
+ STACK_DIRECTION > 0 => grows toward higher addresses
128
+ STACK_DIRECTION < 0 => grows toward lower addresses
129
+ STACK_DIRECTION = 0 => direction of growth unknown */
130
+ #undef STACK_DIRECTION
131
+
132
+ /* Define to 1 if you have the ANSI C header files. */
133
+ #undef STDC_HEADERS
134
+
135
+ /* Define this if you are using Purify and want to suppress spurious messages.
136
+ */
137
+ #undef USING_PURIFY
138
+
139
+ /* Version number of package */
140
+ #undef VERSION
141
+
142
+ /* Define to 1 if your processor stores words with the most significant byte
143
+ first (like Motorola and SPARC, unlike Intel and VAX). */
144
+ #undef WORDS_BIGENDIAN
145
+
146
+
147
+ #ifdef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE
148
+ #ifdef LIBFFI_ASM
149
+ #define FFI_HIDDEN(name) .hidden name
150
+ #else
151
+ #define FFI_HIDDEN __attribute__ ((visibility ("hidden")))
152
+ #endif
153
+ #else
154
+ #ifdef LIBFFI_ASM
155
+ #define FFI_HIDDEN(name)
156
+ #else
157
+ #define FFI_HIDDEN
158
+ #endif
159
+ #endif
160
+
@@ -0,0 +1,9 @@
1
+ ## Process this with automake to create Makefile.in
2
+
3
+ AUTOMAKE_OPTIONS=foreign
4
+
5
+ DISTCLEANFILES=ffitarget.h
6
+ EXTRA_DIST=ffi.h.in ffi_common.h
7
+
8
+ includesdir = $(libdir)/@PACKAGE_NAME@-@PACKAGE_VERSION@/include
9
+ nodist_includes_HEADERS = ffi.h ffitarget.h
@@ -0,0 +1,422 @@
1
+ # Makefile.in generated by automake 1.10 from Makefile.am.
2
+ # @configure_input@
3
+
4
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5
+ # 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
6
+ # This Makefile.in is free software; the Free Software Foundation
7
+ # gives unlimited permission to copy and/or distribute it,
8
+ # with or without modifications, as long as this notice is preserved.
9
+
10
+ # This program is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
12
+ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13
+ # PARTICULAR PURPOSE.
14
+
15
+ @SET_MAKE@
16
+
17
+ VPATH = @srcdir@
18
+ pkgdatadir = $(datadir)/@PACKAGE@
19
+ pkglibdir = $(libdir)/@PACKAGE@
20
+ pkgincludedir = $(includedir)/@PACKAGE@
21
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
22
+ install_sh_DATA = $(install_sh) -c -m 644
23
+ install_sh_PROGRAM = $(install_sh) -c
24
+ install_sh_SCRIPT = $(install_sh) -c
25
+ INSTALL_HEADER = $(INSTALL_DATA)
26
+ transform = $(program_transform_name)
27
+ NORMAL_INSTALL = :
28
+ PRE_INSTALL = :
29
+ POST_INSTALL = :
30
+ NORMAL_UNINSTALL = :
31
+ PRE_UNINSTALL = :
32
+ POST_UNINSTALL = :
33
+ build_triplet = @build@
34
+ host_triplet = @host@
35
+ target_triplet = @target@
36
+ subdir = include
37
+ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
38
+ $(srcdir)/ffi.h.in
39
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
40
+ am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
41
+ $(top_srcdir)/configure.ac
42
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
43
+ $(ACLOCAL_M4)
44
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
45
+ CONFIG_HEADER = $(top_builddir)/fficonfig.h
46
+ CONFIG_CLEAN_FILES = ffi.h ffitarget.h
47
+ SOURCES =
48
+ DIST_SOURCES =
49
+ am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
50
+ am__vpath_adj = case $$p in \
51
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
52
+ *) f=$$p;; \
53
+ esac;
54
+ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
55
+ am__installdirs = "$(DESTDIR)$(includesdir)"
56
+ nodist_includesHEADERS_INSTALL = $(INSTALL_HEADER)
57
+ HEADERS = $(nodist_includes_HEADERS)
58
+ ETAGS = etags
59
+ CTAGS = ctags
60
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
61
+ ACLOCAL = @ACLOCAL@
62
+ ALLOCA = @ALLOCA@
63
+ AMTAR = @AMTAR@
64
+ AM_RUNTESTFLAGS = @AM_RUNTESTFLAGS@
65
+ AR = @AR@
66
+ AUTOCONF = @AUTOCONF@
67
+ AUTOHEADER = @AUTOHEADER@
68
+ AUTOMAKE = @AUTOMAKE@
69
+ AWK = @AWK@
70
+ CC = @CC@
71
+ CCAS = @CCAS@
72
+ CCASDEPMODE = @CCASDEPMODE@
73
+ CCASFLAGS = @CCASFLAGS@
74
+ CCDEPMODE = @CCDEPMODE@
75
+ CFLAGS = @CFLAGS@
76
+ CPP = @CPP@
77
+ CPPFLAGS = @CPPFLAGS@
78
+ CXX = @CXX@
79
+ CXXCPP = @CXXCPP@
80
+ CXXDEPMODE = @CXXDEPMODE@
81
+ CXXFLAGS = @CXXFLAGS@
82
+ CYGPATH_W = @CYGPATH_W@
83
+ DEFS = @DEFS@
84
+ DEPDIR = @DEPDIR@
85
+ ECHO = @ECHO@
86
+ ECHO_C = @ECHO_C@
87
+ ECHO_N = @ECHO_N@
88
+ ECHO_T = @ECHO_T@
89
+ EGREP = @EGREP@
90
+ EXEEXT = @EXEEXT@
91
+ F77 = @F77@
92
+ FFLAGS = @FFLAGS@
93
+ GREP = @GREP@
94
+ HAVE_LONG_DOUBLE = @HAVE_LONG_DOUBLE@
95
+ INSTALL = @INSTALL@
96
+ INSTALL_DATA = @INSTALL_DATA@
97
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
98
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
99
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
100
+ LDFLAGS = @LDFLAGS@
101
+ LIBOBJS = @LIBOBJS@
102
+ LIBS = @LIBS@
103
+ LIBTOOL = @LIBTOOL@
104
+ LN_S = @LN_S@
105
+ LTLIBOBJS = @LTLIBOBJS@
106
+ MAINT = @MAINT@
107
+ MAKEINFO = @MAKEINFO@
108
+ MKDIR_P = @MKDIR_P@
109
+ OBJEXT = @OBJEXT@
110
+ PACKAGE = @PACKAGE@
111
+ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
112
+ PACKAGE_NAME = @PACKAGE_NAME@
113
+ PACKAGE_STRING = @PACKAGE_STRING@
114
+ PACKAGE_TARNAME = @PACKAGE_TARNAME@
115
+ PACKAGE_VERSION = @PACKAGE_VERSION@
116
+ PATH_SEPARATOR = @PATH_SEPARATOR@
117
+ RANLIB = @RANLIB@
118
+ SED = @SED@
119
+ SET_MAKE = @SET_MAKE@
120
+ SHELL = @SHELL@
121
+ STRIP = @STRIP@
122
+ TARGET = @TARGET@
123
+ TARGETDIR = @TARGETDIR@
124
+ VERSION = @VERSION@
125
+ abs_builddir = @abs_builddir@
126
+ abs_srcdir = @abs_srcdir@
127
+ abs_top_builddir = @abs_top_builddir@
128
+ abs_top_srcdir = @abs_top_srcdir@
129
+ ac_ct_CC = @ac_ct_CC@
130
+ ac_ct_CXX = @ac_ct_CXX@
131
+ ac_ct_F77 = @ac_ct_F77@
132
+ am__include = @am__include@
133
+ am__leading_dot = @am__leading_dot@
134
+ am__quote = @am__quote@
135
+ am__tar = @am__tar@
136
+ am__untar = @am__untar@
137
+ bindir = @bindir@
138
+ build = @build@
139
+ build_alias = @build_alias@
140
+ build_cpu = @build_cpu@
141
+ build_os = @build_os@
142
+ build_vendor = @build_vendor@
143
+ builddir = @builddir@
144
+ datadir = @datadir@
145
+ datarootdir = @datarootdir@
146
+ docdir = @docdir@
147
+ dvidir = @dvidir@
148
+ exec_prefix = @exec_prefix@
149
+ host = @host@
150
+ host_alias = @host_alias@
151
+ host_cpu = @host_cpu@
152
+ host_os = @host_os@
153
+ host_vendor = @host_vendor@
154
+ htmldir = @htmldir@
155
+ includedir = @includedir@
156
+ infodir = @infodir@
157
+ install_sh = @install_sh@
158
+ libdir = @libdir@
159
+ libexecdir = @libexecdir@
160
+ localedir = @localedir@
161
+ localstatedir = @localstatedir@
162
+ mandir = @mandir@
163
+ mkdir_p = @mkdir_p@
164
+ oldincludedir = @oldincludedir@
165
+ pdfdir = @pdfdir@
166
+ prefix = @prefix@
167
+ program_transform_name = @program_transform_name@
168
+ psdir = @psdir@
169
+ sbindir = @sbindir@
170
+ sharedstatedir = @sharedstatedir@
171
+ srcdir = @srcdir@
172
+ sysconfdir = @sysconfdir@
173
+ target = @target@
174
+ target_alias = @target_alias@
175
+ target_cpu = @target_cpu@
176
+ target_os = @target_os@
177
+ target_vendor = @target_vendor@
178
+ toolexecdir = @toolexecdir@
179
+ toolexeclibdir = @toolexeclibdir@
180
+ top_builddir = @top_builddir@
181
+ top_srcdir = @top_srcdir@
182
+ AUTOMAKE_OPTIONS = foreign
183
+ DISTCLEANFILES = ffitarget.h
184
+ EXTRA_DIST = ffi.h.in ffi_common.h
185
+ includesdir = $(libdir)/@PACKAGE_NAME@-@PACKAGE_VERSION@/include
186
+ nodist_includes_HEADERS = ffi.h ffitarget.h
187
+ all: all-am
188
+
189
+ .SUFFIXES:
190
+ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
191
+ @for dep in $?; do \
192
+ case '$(am__configure_deps)' in \
193
+ *$$dep*) \
194
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
195
+ && exit 0; \
196
+ exit 1;; \
197
+ esac; \
198
+ done; \
199
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \
200
+ cd $(top_srcdir) && \
201
+ $(AUTOMAKE) --foreign include/Makefile
202
+ .PRECIOUS: Makefile
203
+ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
204
+ @case '$?' in \
205
+ *config.status*) \
206
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
207
+ *) \
208
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
209
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
210
+ esac;
211
+
212
+ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
213
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
214
+
215
+ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
216
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
217
+ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
218
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
219
+ ffi.h: $(top_builddir)/config.status $(srcdir)/ffi.h.in
220
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
221
+
222
+ mostlyclean-libtool:
223
+ -rm -f *.lo
224
+
225
+ clean-libtool:
226
+ -rm -rf .libs _libs
227
+ install-nodist_includesHEADERS: $(nodist_includes_HEADERS)
228
+ @$(NORMAL_INSTALL)
229
+ test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
230
+ @list='$(nodist_includes_HEADERS)'; for p in $$list; do \
231
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
232
+ f=$(am__strip_dir) \
233
+ echo " $(nodist_includesHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includesdir)/$$f'"; \
234
+ $(nodist_includesHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includesdir)/$$f"; \
235
+ done
236
+
237
+ uninstall-nodist_includesHEADERS:
238
+ @$(NORMAL_UNINSTALL)
239
+ @list='$(nodist_includes_HEADERS)'; for p in $$list; do \
240
+ f=$(am__strip_dir) \
241
+ echo " rm -f '$(DESTDIR)$(includesdir)/$$f'"; \
242
+ rm -f "$(DESTDIR)$(includesdir)/$$f"; \
243
+ done
244
+
245
+ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
246
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
247
+ unique=`for i in $$list; do \
248
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
249
+ done | \
250
+ $(AWK) ' { files[$$0] = 1; } \
251
+ END { for (i in files) print i; }'`; \
252
+ mkid -fID $$unique
253
+ tags: TAGS
254
+
255
+ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
256
+ $(TAGS_FILES) $(LISP)
257
+ tags=; \
258
+ here=`pwd`; \
259
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
260
+ unique=`for i in $$list; do \
261
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
262
+ done | \
263
+ $(AWK) ' { files[$$0] = 1; } \
264
+ END { for (i in files) print i; }'`; \
265
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
266
+ test -n "$$unique" || unique=$$empty_fix; \
267
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
268
+ $$tags $$unique; \
269
+ fi
270
+ ctags: CTAGS
271
+ CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
272
+ $(TAGS_FILES) $(LISP)
273
+ tags=; \
274
+ here=`pwd`; \
275
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
276
+ unique=`for i in $$list; do \
277
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
278
+ done | \
279
+ $(AWK) ' { files[$$0] = 1; } \
280
+ END { for (i in files) print i; }'`; \
281
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
282
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
283
+ $$tags $$unique
284
+
285
+ GTAGS:
286
+ here=`$(am__cd) $(top_builddir) && pwd` \
287
+ && cd $(top_srcdir) \
288
+ && gtags -i $(GTAGS_ARGS) $$here
289
+
290
+ distclean-tags:
291
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
292
+
293
+ distdir: $(DISTFILES)
294
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
295
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
296
+ list='$(DISTFILES)'; \
297
+ dist_files=`for file in $$list; do echo $$file; done | \
298
+ sed -e "s|^$$srcdirstrip/||;t" \
299
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
300
+ case $$dist_files in \
301
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
302
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
303
+ sort -u` ;; \
304
+ esac; \
305
+ for file in $$dist_files; do \
306
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
307
+ if test -d $$d/$$file; then \
308
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
309
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
310
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
311
+ fi; \
312
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
313
+ else \
314
+ test -f $(distdir)/$$file \
315
+ || cp -p $$d/$$file $(distdir)/$$file \
316
+ || exit 1; \
317
+ fi; \
318
+ done
319
+ check-am: all-am
320
+ check: check-am
321
+ all-am: Makefile $(HEADERS)
322
+ installdirs:
323
+ for dir in "$(DESTDIR)$(includesdir)"; do \
324
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
325
+ done
326
+ install: install-am
327
+ install-exec: install-exec-am
328
+ install-data: install-data-am
329
+ uninstall: uninstall-am
330
+
331
+ install-am: all-am
332
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
333
+
334
+ installcheck: installcheck-am
335
+ install-strip:
336
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
337
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
338
+ `test -z '$(STRIP)' || \
339
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
340
+ mostlyclean-generic:
341
+
342
+ clean-generic:
343
+
344
+ distclean-generic:
345
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
346
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
347
+
348
+ maintainer-clean-generic:
349
+ @echo "This command is intended for maintainers to use"
350
+ @echo "it deletes files that may require special tools to rebuild."
351
+ clean: clean-am
352
+
353
+ clean-am: clean-generic clean-libtool mostlyclean-am
354
+
355
+ distclean: distclean-am
356
+ -rm -f Makefile
357
+ distclean-am: clean-am distclean-generic distclean-tags
358
+
359
+ dvi: dvi-am
360
+
361
+ dvi-am:
362
+
363
+ html: html-am
364
+
365
+ info: info-am
366
+
367
+ info-am:
368
+
369
+ install-data-am: install-nodist_includesHEADERS
370
+
371
+ install-dvi: install-dvi-am
372
+
373
+ install-exec-am:
374
+
375
+ install-html: install-html-am
376
+
377
+ install-info: install-info-am
378
+
379
+ install-man:
380
+
381
+ install-pdf: install-pdf-am
382
+
383
+ install-ps: install-ps-am
384
+
385
+ installcheck-am:
386
+
387
+ maintainer-clean: maintainer-clean-am
388
+ -rm -f Makefile
389
+ maintainer-clean-am: distclean-am maintainer-clean-generic
390
+
391
+ mostlyclean: mostlyclean-am
392
+
393
+ mostlyclean-am: mostlyclean-generic mostlyclean-libtool
394
+
395
+ pdf: pdf-am
396
+
397
+ pdf-am:
398
+
399
+ ps: ps-am
400
+
401
+ ps-am:
402
+
403
+ uninstall-am: uninstall-nodist_includesHEADERS
404
+
405
+ .MAKE: install-am install-strip
406
+
407
+ .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
408
+ clean-libtool ctags distclean distclean-generic \
409
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
410
+ html-am info info-am install install-am install-data \
411
+ install-data-am install-dvi install-dvi-am install-exec \
412
+ install-exec-am install-html install-html-am install-info \
413
+ install-info-am install-man install-nodist_includesHEADERS \
414
+ install-pdf install-pdf-am install-ps install-ps-am \
415
+ install-strip installcheck installcheck-am installdirs \
416
+ maintainer-clean maintainer-clean-generic mostlyclean \
417
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
418
+ tags uninstall uninstall-am uninstall-nodist_includesHEADERS
419
+
420
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
421
+ # Otherwise a system limit (for SysV at least) may be exceeded.
422
+ .NOEXPORT: