ffi 0.5.0-x86-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 (328) hide show
  1. data/LICENSE +51 -0
  2. data/README.rdoc +69 -0
  3. data/Rakefile +191 -0
  4. data/ext/ffi_c/AbstractMemory.c +489 -0
  5. data/ext/ffi_c/AbstractMemory.h +160 -0
  6. data/ext/ffi_c/ArrayType.c +129 -0
  7. data/ext/ffi_c/ArrayType.h +58 -0
  8. data/ext/ffi_c/AutoPointer.c +61 -0
  9. data/ext/ffi_c/AutoPointer.h +18 -0
  10. data/ext/ffi_c/Buffer.c +187 -0
  11. data/ext/ffi_c/Call.c +853 -0
  12. data/ext/ffi_c/Call.h +86 -0
  13. data/ext/ffi_c/ClosurePool.c +302 -0
  14. data/ext/ffi_c/ClosurePool.h +29 -0
  15. data/ext/ffi_c/DynamicLibrary.c +216 -0
  16. data/ext/ffi_c/DynamicLibrary.h +22 -0
  17. data/ext/ffi_c/Function.c +478 -0
  18. data/ext/ffi_c/Function.h +80 -0
  19. data/ext/ffi_c/FunctionInfo.c +221 -0
  20. data/ext/ffi_c/LastError.c +159 -0
  21. data/ext/ffi_c/LastError.h +18 -0
  22. data/ext/ffi_c/MemoryPointer.c +178 -0
  23. data/ext/ffi_c/MemoryPointer.h +20 -0
  24. data/ext/ffi_c/MethodHandle.c +346 -0
  25. data/ext/ffi_c/MethodHandle.h +53 -0
  26. data/ext/ffi_c/Platform.c +59 -0
  27. data/ext/ffi_c/Platform.h +16 -0
  28. data/ext/ffi_c/Pointer.c +224 -0
  29. data/ext/ffi_c/Pointer.h +49 -0
  30. data/ext/ffi_c/Struct.c +770 -0
  31. data/ext/ffi_c/Struct.h +80 -0
  32. data/ext/ffi_c/StructByValue.c +140 -0
  33. data/ext/ffi_c/StructByValue.h +53 -0
  34. data/ext/ffi_c/StructLayout.c +450 -0
  35. data/ext/ffi_c/Type.c +329 -0
  36. data/ext/ffi_c/Type.h +57 -0
  37. data/ext/ffi_c/Types.c +103 -0
  38. data/ext/ffi_c/Types.h +85 -0
  39. data/ext/ffi_c/Variadic.c +260 -0
  40. data/ext/ffi_c/compat.h +72 -0
  41. data/ext/ffi_c/endian.h +40 -0
  42. data/ext/ffi_c/extconf.rb +30 -0
  43. data/ext/ffi_c/ffi.c +82 -0
  44. data/ext/ffi_c/libffi.bsd.mk +34 -0
  45. data/ext/ffi_c/libffi.darwin.mk +75 -0
  46. data/ext/ffi_c/libffi.gnu.mk +29 -0
  47. data/ext/ffi_c/libffi.mk +13 -0
  48. data/ext/ffi_c/libffi/ChangeLog +3243 -0
  49. data/ext/ffi_c/libffi/ChangeLog.libffi +347 -0
  50. data/ext/ffi_c/libffi/ChangeLog.libgcj +40 -0
  51. data/ext/ffi_c/libffi/ChangeLog.v1 +764 -0
  52. data/ext/ffi_c/libffi/LICENSE +21 -0
  53. data/ext/ffi_c/libffi/Makefile.am +177 -0
  54. data/ext/ffi_c/libffi/Makefile.in +1640 -0
  55. data/ext/ffi_c/libffi/README +328 -0
  56. data/ext/ffi_c/libffi/TODO +1 -0
  57. data/ext/ffi_c/libffi/acinclude.m4 +92 -0
  58. data/ext/ffi_c/libffi/aclocal.m4 +7516 -0
  59. data/ext/ffi_c/libffi/compile +142 -0
  60. data/ext/ffi_c/libffi/config.guess +1516 -0
  61. data/ext/ffi_c/libffi/config.sub +1626 -0
  62. data/ext/ffi_c/libffi/configure +24414 -0
  63. data/ext/ffi_c/libffi/configure.ac +365 -0
  64. data/ext/ffi_c/libffi/configure.host +11 -0
  65. data/ext/ffi_c/libffi/depcomp +584 -0
  66. data/ext/ffi_c/libffi/doc/libffi.info +533 -0
  67. data/ext/ffi_c/libffi/doc/libffi.texi +541 -0
  68. data/ext/ffi_c/libffi/doc/stamp-vti +4 -0
  69. data/ext/ffi_c/libffi/doc/version.texi +4 -0
  70. data/ext/ffi_c/libffi/fficonfig.h.in +160 -0
  71. data/ext/ffi_c/libffi/include/Makefile.am +9 -0
  72. data/ext/ffi_c/libffi/include/Makefile.in +422 -0
  73. data/ext/ffi_c/libffi/include/ffi.h.in +393 -0
  74. data/ext/ffi_c/libffi/include/ffi_common.h +98 -0
  75. data/ext/ffi_c/libffi/install-sh +323 -0
  76. data/ext/ffi_c/libffi/libffi.pc.in +10 -0
  77. data/ext/ffi_c/libffi/libtool-version +29 -0
  78. data/ext/ffi_c/libffi/ltcf-c.sh +861 -0
  79. data/ext/ffi_c/libffi/ltcf-cxx.sh +1069 -0
  80. data/ext/ffi_c/libffi/ltcf-gcj.sh +700 -0
  81. data/ext/ffi_c/libffi/ltconfig +2862 -0
  82. data/ext/ffi_c/libffi/ltmain.sh +6930 -0
  83. data/ext/ffi_c/libffi/man/Makefile.am +8 -0
  84. data/ext/ffi_c/libffi/man/Makefile.in +395 -0
  85. data/ext/ffi_c/libffi/man/ffi.3 +31 -0
  86. data/ext/ffi_c/libffi/man/ffi_call.3 +103 -0
  87. data/ext/ffi_c/libffi/man/ffi_prep_cif.3 +66 -0
  88. data/ext/ffi_c/libffi/mdate-sh +201 -0
  89. data/ext/ffi_c/libffi/missing +353 -0
  90. data/ext/ffi_c/libffi/mkinstalldirs +158 -0
  91. data/ext/ffi_c/libffi/src/alpha/ffi.c +284 -0
  92. data/ext/ffi_c/libffi/src/alpha/ffitarget.h +48 -0
  93. data/ext/ffi_c/libffi/src/alpha/osf.S +366 -0
  94. data/ext/ffi_c/libffi/src/arm/ffi.c +309 -0
  95. data/ext/ffi_c/libffi/src/arm/ffitarget.h +49 -0
  96. data/ext/ffi_c/libffi/src/arm/sysv.S +299 -0
  97. data/ext/ffi_c/libffi/src/closures.c +596 -0
  98. data/ext/ffi_c/libffi/src/cris/ffi.c +383 -0
  99. data/ext/ffi_c/libffi/src/cris/ffitarget.h +51 -0
  100. data/ext/ffi_c/libffi/src/cris/sysv.S +215 -0
  101. data/ext/ffi_c/libffi/src/debug.c +59 -0
  102. data/ext/ffi_c/libffi/src/dlmalloc.c +5099 -0
  103. data/ext/ffi_c/libffi/src/frv/eabi.S +128 -0
  104. data/ext/ffi_c/libffi/src/frv/ffi.c +292 -0
  105. data/ext/ffi_c/libffi/src/frv/ffitarget.h +61 -0
  106. data/ext/ffi_c/libffi/src/ia64/ffi.c +580 -0
  107. data/ext/ffi_c/libffi/src/ia64/ffitarget.h +50 -0
  108. data/ext/ffi_c/libffi/src/ia64/ia64_flags.h +40 -0
  109. data/ext/ffi_c/libffi/src/ia64/unix.S +560 -0
  110. data/ext/ffi_c/libffi/src/java_raw_api.c +359 -0
  111. data/ext/ffi_c/libffi/src/m32r/ffi.c +232 -0
  112. data/ext/ffi_c/libffi/src/m32r/ffitarget.h +48 -0
  113. data/ext/ffi_c/libffi/src/m32r/sysv.S +121 -0
  114. data/ext/ffi_c/libffi/src/m68k/ffi.c +278 -0
  115. data/ext/ffi_c/libffi/src/m68k/ffitarget.h +49 -0
  116. data/ext/ffi_c/libffi/src/m68k/sysv.S +234 -0
  117. data/ext/ffi_c/libffi/src/mips/ffi.c +926 -0
  118. data/ext/ffi_c/libffi/src/mips/ffitarget.h +202 -0
  119. data/ext/ffi_c/libffi/src/mips/n32.S +534 -0
  120. data/ext/ffi_c/libffi/src/mips/o32.S +381 -0
  121. data/ext/ffi_c/libffi/src/pa/ffi.c +709 -0
  122. data/ext/ffi_c/libffi/src/pa/ffitarget.h +77 -0
  123. data/ext/ffi_c/libffi/src/pa/hpux32.S +368 -0
  124. data/ext/ffi_c/libffi/src/pa/linux.S +357 -0
  125. data/ext/ffi_c/libffi/src/powerpc/aix.S +225 -0
  126. data/ext/ffi_c/libffi/src/powerpc/aix_closure.S +247 -0
  127. data/ext/ffi_c/libffi/src/powerpc/asm.h +125 -0
  128. data/ext/ffi_c/libffi/src/powerpc/darwin.S +245 -0
  129. data/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +317 -0
  130. data/ext/ffi_c/libffi/src/powerpc/ffi.c +1429 -0
  131. data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +800 -0
  132. data/ext/ffi_c/libffi/src/powerpc/ffitarget.h +118 -0
  133. data/ext/ffi_c/libffi/src/powerpc/linux64.S +187 -0
  134. data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +236 -0
  135. data/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +327 -0
  136. data/ext/ffi_c/libffi/src/powerpc/sysv.S +230 -0
  137. data/ext/ffi_c/libffi/src/prep_cif.c +174 -0
  138. data/ext/ffi_c/libffi/src/raw_api.c +254 -0
  139. data/ext/ffi_c/libffi/src/s390/ffi.c +780 -0
  140. data/ext/ffi_c/libffi/src/s390/ffitarget.h +60 -0
  141. data/ext/ffi_c/libffi/src/s390/sysv.S +434 -0
  142. data/ext/ffi_c/libffi/src/sh/ffi.c +716 -0
  143. data/ext/ffi_c/libffi/src/sh/ffitarget.h +49 -0
  144. data/ext/ffi_c/libffi/src/sh/sysv.S +850 -0
  145. data/ext/ffi_c/libffi/src/sh64/ffi.c +453 -0
  146. data/ext/ffi_c/libffi/src/sh64/ffitarget.h +53 -0
  147. data/ext/ffi_c/libffi/src/sh64/sysv.S +530 -0
  148. data/ext/ffi_c/libffi/src/sparc/ffi.c +610 -0
  149. data/ext/ffi_c/libffi/src/sparc/ffitarget.h +66 -0
  150. data/ext/ffi_c/libffi/src/sparc/v8.S +272 -0
  151. data/ext/ffi_c/libffi/src/sparc/v9.S +307 -0
  152. data/ext/ffi_c/libffi/src/types.c +77 -0
  153. data/ext/ffi_c/libffi/src/x86/darwin.S +443 -0
  154. data/ext/ffi_c/libffi/src/x86/darwin64.S +416 -0
  155. data/ext/ffi_c/libffi/src/x86/ffi.c +475 -0
  156. data/ext/ffi_c/libffi/src/x86/ffi64.c +572 -0
  157. data/ext/ffi_c/libffi/src/x86/ffitarget.h +90 -0
  158. data/ext/ffi_c/libffi/src/x86/freebsd.S +458 -0
  159. data/ext/ffi_c/libffi/src/x86/sysv.S +437 -0
  160. data/ext/ffi_c/libffi/src/x86/unix64.S +418 -0
  161. data/ext/ffi_c/libffi/src/x86/win32.S +391 -0
  162. data/ext/ffi_c/libffi/testsuite/Makefile.am +71 -0
  163. data/ext/ffi_c/libffi/testsuite/Makefile.in +447 -0
  164. data/ext/ffi_c/libffi/testsuite/config/default.exp +1 -0
  165. data/ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp +289 -0
  166. data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +263 -0
  167. data/ext/ffi_c/libffi/testsuite/lib/wrapper.exp +45 -0
  168. data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +36 -0
  169. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn0.c +97 -0
  170. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn1.c +89 -0
  171. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn2.c +89 -0
  172. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn3.c +90 -0
  173. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn4.c +97 -0
  174. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn5.c +99 -0
  175. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn6.c +98 -0
  176. data/ext/ffi_c/libffi/testsuite/libffi.call/closure_stdcall.c +72 -0
  177. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +102 -0
  178. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +103 -0
  179. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +104 -0
  180. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +110 -0
  181. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +97 -0
  182. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +99 -0
  183. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +101 -0
  184. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +121 -0
  185. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +98 -0
  186. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +103 -0
  187. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +98 -0
  188. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +98 -0
  189. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +106 -0
  190. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +98 -0
  191. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +117 -0
  192. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +106 -0
  193. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +132 -0
  194. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +121 -0
  195. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +107 -0
  196. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +125 -0
  197. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +105 -0
  198. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +96 -0
  199. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +98 -0
  200. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +99 -0
  201. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +101 -0
  202. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +99 -0
  203. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +100 -0
  204. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +101 -0
  205. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +99 -0
  206. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +99 -0
  207. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +99 -0
  208. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +99 -0
  209. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +99 -0
  210. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +100 -0
  211. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_double.c +51 -0
  212. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_float.c +51 -0
  213. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_schar.c +82 -0
  214. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshort.c +82 -0
  215. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshortchar.c +94 -0
  216. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_uchar.c +99 -0
  217. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushort.c +82 -0
  218. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushortchar.c +94 -0
  219. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_schar.c +52 -0
  220. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_sint.c +50 -0
  221. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_sshort.c +50 -0
  222. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar.c +50 -0
  223. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint.c +51 -0
  224. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +54 -0
  225. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort.c +51 -0
  226. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +86 -0
  227. data/ext/ffi_c/libffi/testsuite/libffi.call/float.c +59 -0
  228. data/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +58 -0
  229. data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +57 -0
  230. data/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +72 -0
  231. data/ext/ffi_c/libffi/testsuite/libffi.call/float4.c +62 -0
  232. data/ext/ffi_c/libffi/testsuite/libffi.call/many.c +69 -0
  233. data/ext/ffi_c/libffi/testsuite/libffi.call/many_win32.c +63 -0
  234. data/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +53 -0
  235. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +160 -0
  236. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +169 -0
  237. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +141 -0
  238. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +118 -0
  239. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +119 -0
  240. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +119 -0
  241. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +120 -0
  242. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +139 -0
  243. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +119 -0
  244. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +139 -0
  245. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +139 -0
  246. data/ext/ffi_c/libffi/testsuite/libffi.call/problem1.c +98 -0
  247. data/ext/ffi_c/libffi/testsuite/libffi.call/promotion.c +59 -0
  248. data/ext/ffi_c/libffi/testsuite/libffi.call/pyobjc-tc.c +114 -0
  249. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +35 -0
  250. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c +43 -0
  251. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c +42 -0
  252. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c +35 -0
  253. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c +36 -0
  254. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c +49 -0
  255. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c +42 -0
  256. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +34 -0
  257. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c +41 -0
  258. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +42 -0
  259. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +36 -0
  260. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +38 -0
  261. data/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +38 -0
  262. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +38 -0
  263. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +44 -0
  264. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen_win32.c +44 -0
  265. data/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +65 -0
  266. data/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +67 -0
  267. data/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +59 -0
  268. data/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +63 -0
  269. data/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +65 -0
  270. data/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +64 -0
  271. data/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +74 -0
  272. data/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +80 -0
  273. data/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +67 -0
  274. data/ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h +86 -0
  275. data/ext/ffi_c/libffi/testsuite/libffi.special/special.exp +38 -0
  276. data/ext/ffi_c/libffi/testsuite/libffi.special/unwindtest.cc +123 -0
  277. data/ext/ffi_c/libffi/testsuite/libffi.special/unwindtest_ffi_call.cc +53 -0
  278. data/ext/ffi_c/libffi/texinfo.tex +7482 -0
  279. data/ext/ffi_c/rbffi.h +26 -0
  280. data/gen/Rakefile +12 -0
  281. data/lib/1.8/ffi_c.so +0 -0
  282. data/lib/1.9/ffi_c.so +0 -0
  283. data/lib/ffi.rb +11 -0
  284. data/lib/ffi/autopointer.rb +61 -0
  285. data/lib/ffi/buffer.rb +0 -0
  286. data/lib/ffi/callback.rb +10 -0
  287. data/lib/ffi/enum.rb +78 -0
  288. data/lib/ffi/errno.rb +8 -0
  289. data/lib/ffi/ffi.rb +99 -0
  290. data/lib/ffi/io.rb +21 -0
  291. data/lib/ffi/library.rb +218 -0
  292. data/lib/ffi/managedstruct.rb +55 -0
  293. data/lib/ffi/memorypointer.rb +73 -0
  294. data/lib/ffi/platform.rb +88 -0
  295. data/lib/ffi/pointer.rb +119 -0
  296. data/lib/ffi/struct.rb +183 -0
  297. data/lib/ffi/tools/const_generator.rb +177 -0
  298. data/lib/ffi/tools/generator.rb +58 -0
  299. data/lib/ffi/tools/generator_task.rb +35 -0
  300. data/lib/ffi/tools/struct_generator.rb +194 -0
  301. data/lib/ffi/tools/types_generator.rb +123 -0
  302. data/lib/ffi/types.rb +153 -0
  303. data/lib/ffi/union.rb +12 -0
  304. data/lib/ffi/variadic.rb +25 -0
  305. data/spec/ffi/bool_spec.rb +24 -0
  306. data/spec/ffi/buffer_spec.rb +202 -0
  307. data/spec/ffi/callback_spec.rb +591 -0
  308. data/spec/ffi/enum_spec.rb +164 -0
  309. data/spec/ffi/errno_spec.rb +13 -0
  310. data/spec/ffi/function_spec.rb +73 -0
  311. data/spec/ffi/library_spec.rb +148 -0
  312. data/spec/ffi/managed_struct_spec.rb +56 -0
  313. data/spec/ffi/number_spec.rb +231 -0
  314. data/spec/ffi/pointer_spec.rb +195 -0
  315. data/spec/ffi/rbx/attach_function_spec.rb +27 -0
  316. data/spec/ffi/rbx/memory_pointer_spec.rb +102 -0
  317. data/spec/ffi/rbx/spec_helper.rb +1 -0
  318. data/spec/ffi/rbx/struct_spec.rb +13 -0
  319. data/spec/ffi/spec_helper.rb +17 -0
  320. data/spec/ffi/string_spec.rb +103 -0
  321. data/spec/ffi/struct_callback_spec.rb +64 -0
  322. data/spec/ffi/struct_initialize_spec.rb +30 -0
  323. data/spec/ffi/struct_spec.rb +529 -0
  324. data/spec/ffi/typedef_spec.rb +48 -0
  325. data/spec/ffi/union_spec.rb +60 -0
  326. data/spec/ffi/variadic_spec.rb +84 -0
  327. data/spec/spec.opts +4 -0
  328. metadata +396 -0
@@ -0,0 +1,142 @@
1
+ #! /bin/sh
2
+ # Wrapper for compilers which do not understand `-c -o'.
3
+
4
+ scriptversion=2005-05-14.22
5
+
6
+ # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
7
+ # Written by Tom Tromey <tromey@cygnus.com>.
8
+ #
9
+ # This program is free software; you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation; either version 2, or (at your option)
12
+ # any later version.
13
+ #
14
+ # This program is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with this program; if not, write to the Free Software
21
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22
+
23
+ # As a special exception to the GNU General Public License, if you
24
+ # distribute this file as part of a program that contains a
25
+ # configuration script generated by Autoconf, you may include it under
26
+ # the same distribution terms that you use for the rest of that program.
27
+
28
+ # This file is maintained in Automake, please report
29
+ # bugs to <bug-automake@gnu.org> or send patches to
30
+ # <automake-patches@gnu.org>.
31
+
32
+ case $1 in
33
+ '')
34
+ echo "$0: No command. Try \`$0 --help' for more information." 1>&2
35
+ exit 1;
36
+ ;;
37
+ -h | --h*)
38
+ cat <<\EOF
39
+ Usage: compile [--help] [--version] PROGRAM [ARGS]
40
+
41
+ Wrapper for compilers which do not understand `-c -o'.
42
+ Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
43
+ arguments, and rename the output as expected.
44
+
45
+ If you are trying to build a whole package this is not the
46
+ right script to run: please start by reading the file `INSTALL'.
47
+
48
+ Report bugs to <bug-automake@gnu.org>.
49
+ EOF
50
+ exit $?
51
+ ;;
52
+ -v | --v*)
53
+ echo "compile $scriptversion"
54
+ exit $?
55
+ ;;
56
+ esac
57
+
58
+ ofile=
59
+ cfile=
60
+ eat=
61
+
62
+ for arg
63
+ do
64
+ if test -n "$eat"; then
65
+ eat=
66
+ else
67
+ case $1 in
68
+ -o)
69
+ # configure might choose to run compile as `compile cc -o foo foo.c'.
70
+ # So we strip `-o arg' only if arg is an object.
71
+ eat=1
72
+ case $2 in
73
+ *.o | *.obj)
74
+ ofile=$2
75
+ ;;
76
+ *)
77
+ set x "$@" -o "$2"
78
+ shift
79
+ ;;
80
+ esac
81
+ ;;
82
+ *.c)
83
+ cfile=$1
84
+ set x "$@" "$1"
85
+ shift
86
+ ;;
87
+ *)
88
+ set x "$@" "$1"
89
+ shift
90
+ ;;
91
+ esac
92
+ fi
93
+ shift
94
+ done
95
+
96
+ if test -z "$ofile" || test -z "$cfile"; then
97
+ # If no `-o' option was seen then we might have been invoked from a
98
+ # pattern rule where we don't need one. That is ok -- this is a
99
+ # normal compilation that the losing compiler can handle. If no
100
+ # `.c' file was seen then we are probably linking. That is also
101
+ # ok.
102
+ exec "$@"
103
+ fi
104
+
105
+ # Name of file we expect compiler to create.
106
+ cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
107
+
108
+ # Create the lock directory.
109
+ # Note: use `[/.-]' here to ensure that we don't use the same name
110
+ # that we are using for the .o file. Also, base the name on the expected
111
+ # object file name, since that is what matters with a parallel build.
112
+ lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
113
+ while true; do
114
+ if mkdir "$lockdir" >/dev/null 2>&1; then
115
+ break
116
+ fi
117
+ sleep 1
118
+ done
119
+ # FIXME: race condition here if user kills between mkdir and trap.
120
+ trap "rmdir '$lockdir'; exit 1" 1 2 15
121
+
122
+ # Run the compile.
123
+ "$@"
124
+ ret=$?
125
+
126
+ if test -f "$cofile"; then
127
+ mv "$cofile" "$ofile"
128
+ elif test -f "${cofile}bj"; then
129
+ mv "${cofile}bj" "$ofile"
130
+ fi
131
+
132
+ rmdir "$lockdir"
133
+ exit $ret
134
+
135
+ # Local Variables:
136
+ # mode: shell-script
137
+ # sh-indentation: 2
138
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
139
+ # time-stamp-start: "scriptversion="
140
+ # time-stamp-format: "%:y-%02m-%02d.%02H"
141
+ # time-stamp-end: "$"
142
+ # End:
@@ -0,0 +1,1516 @@
1
+ #! /bin/sh
2
+ # Attempt to guess a canonical system name.
3
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4
+ # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
5
+ # Inc.
6
+
7
+ timestamp='2007-05-17'
8
+
9
+ # This file is free software; you can redistribute it and/or modify it
10
+ # under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation; either version 2 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # This program is distributed in the hope that it will be useful, but
15
+ # WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
+ # General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with this program; if not, write to the Free Software
21
+ # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
22
+ # 02110-1301, USA.
23
+ #
24
+ # As a special exception to the GNU General Public License, if you
25
+ # distribute this file as part of a program that contains a
26
+ # configuration script generated by Autoconf, you may include it under
27
+ # the same distribution terms that you use for the rest of that program.
28
+
29
+
30
+ # Originally written by Per Bothner <per@bothner.com>.
31
+ # Please send patches to <config-patches@gnu.org>. Submit a context
32
+ # diff and a properly formatted ChangeLog entry.
33
+ #
34
+ # This script attempts to guess a canonical system name similar to
35
+ # config.sub. If it succeeds, it prints the system name on stdout, and
36
+ # exits with 0. Otherwise, it exits with 1.
37
+ #
38
+ # The plan is that this can be called by configure scripts if you
39
+ # don't specify an explicit build system type.
40
+
41
+ me=`echo "$0" | sed -e 's,.*/,,'`
42
+
43
+ usage="\
44
+ Usage: $0 [OPTION]
45
+
46
+ Output the configuration name of the system \`$me' is run on.
47
+
48
+ Operation modes:
49
+ -h, --help print this help, then exit
50
+ -t, --time-stamp print date of last modification, then exit
51
+ -v, --version print version number, then exit
52
+
53
+ Report bugs and patches to <config-patches@gnu.org>."
54
+
55
+ version="\
56
+ GNU config.guess ($timestamp)
57
+
58
+ Originally written by Per Bothner.
59
+ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
60
+ Free Software Foundation, Inc.
61
+
62
+ This is free software; see the source for copying conditions. There is NO
63
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
64
+
65
+ help="
66
+ Try \`$me --help' for more information."
67
+
68
+ # Parse command line
69
+ while test $# -gt 0 ; do
70
+ case $1 in
71
+ --time-stamp | --time* | -t )
72
+ echo "$timestamp" ; exit ;;
73
+ --version | -v )
74
+ echo "$version" ; exit ;;
75
+ --help | --h* | -h )
76
+ echo "$usage"; exit ;;
77
+ -- ) # Stop option processing
78
+ shift; break ;;
79
+ - ) # Use stdin as input.
80
+ break ;;
81
+ -* )
82
+ echo "$me: invalid option $1$help" >&2
83
+ exit 1 ;;
84
+ * )
85
+ break ;;
86
+ esac
87
+ done
88
+
89
+ if test $# != 0; then
90
+ echo "$me: too many arguments$help" >&2
91
+ exit 1
92
+ fi
93
+
94
+ trap 'exit 1' 1 2 15
95
+
96
+ # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
97
+ # compiler to aid in system detection is discouraged as it requires
98
+ # temporary files to be created and, as you can see below, it is a
99
+ # headache to deal with in a portable fashion.
100
+
101
+ # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
102
+ # use `HOST_CC' if defined, but it is deprecated.
103
+
104
+ # Portable tmp directory creation inspired by the Autoconf team.
105
+
106
+ set_cc_for_build='
107
+ trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
108
+ trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
109
+ : ${TMPDIR=/tmp} ;
110
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
111
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
112
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
113
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
114
+ dummy=$tmp/dummy ;
115
+ tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
116
+ case $CC_FOR_BUILD,$HOST_CC,$CC in
117
+ ,,) echo "int x;" > $dummy.c ;
118
+ for c in cc gcc c89 c99 ; do
119
+ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
120
+ CC_FOR_BUILD="$c"; break ;
121
+ fi ;
122
+ done ;
123
+ if test x"$CC_FOR_BUILD" = x ; then
124
+ CC_FOR_BUILD=no_compiler_found ;
125
+ fi
126
+ ;;
127
+ ,,*) CC_FOR_BUILD=$CC ;;
128
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
129
+ esac ; set_cc_for_build= ;'
130
+
131
+ # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
132
+ # (ghazi@noc.rutgers.edu 1994-08-24)
133
+ if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
134
+ PATH=$PATH:/.attbin ; export PATH
135
+ fi
136
+
137
+ UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
138
+ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
139
+ UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
140
+ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
141
+
142
+ # Note: order is significant - the case branches are not exclusive.
143
+
144
+ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
145
+ *:NetBSD:*:*)
146
+ # NetBSD (nbsd) targets should (where applicable) match one or
147
+ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
148
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
149
+ # switched to ELF, *-*-netbsd* would select the old
150
+ # object file format. This provides both forward
151
+ # compatibility and a consistent mechanism for selecting the
152
+ # object file format.
153
+ #
154
+ # Note: NetBSD doesn't particularly care about the vendor
155
+ # portion of the name. We always set it to "unknown".
156
+ sysctl="sysctl -n hw.machine_arch"
157
+ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
158
+ /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
159
+ case "${UNAME_MACHINE_ARCH}" in
160
+ armeb) machine=armeb-unknown ;;
161
+ arm*) machine=arm-unknown ;;
162
+ sh3el) machine=shl-unknown ;;
163
+ sh3eb) machine=sh-unknown ;;
164
+ sh5el) machine=sh5le-unknown ;;
165
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
166
+ esac
167
+ # The Operating System including object format, if it has switched
168
+ # to ELF recently, or will in the future.
169
+ case "${UNAME_MACHINE_ARCH}" in
170
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
171
+ eval $set_cc_for_build
172
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
173
+ | grep __ELF__ >/dev/null
174
+ then
175
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
176
+ # Return netbsd for either. FIX?
177
+ os=netbsd
178
+ else
179
+ os=netbsdelf
180
+ fi
181
+ ;;
182
+ *)
183
+ os=netbsd
184
+ ;;
185
+ esac
186
+ # The OS release
187
+ # Debian GNU/NetBSD machines have a different userland, and
188
+ # thus, need a distinct triplet. However, they do not need
189
+ # kernel version information, so it can be replaced with a
190
+ # suitable tag, in the style of linux-gnu.
191
+ case "${UNAME_VERSION}" in
192
+ Debian*)
193
+ release='-gnu'
194
+ ;;
195
+ *)
196
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
197
+ ;;
198
+ esac
199
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
200
+ # contains redundant information, the shorter form:
201
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
202
+ echo "${machine}-${os}${release}"
203
+ exit ;;
204
+ *:OpenBSD:*:*)
205
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
206
+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
207
+ exit ;;
208
+ *:ekkoBSD:*:*)
209
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
210
+ exit ;;
211
+ *:SolidBSD:*:*)
212
+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
213
+ exit ;;
214
+ macppc:MirBSD:*:*)
215
+ echo powerpc-unknown-mirbsd${UNAME_RELEASE}
216
+ exit ;;
217
+ *:MirBSD:*:*)
218
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
219
+ exit ;;
220
+ alpha:OSF1:*:*)
221
+ case $UNAME_RELEASE in
222
+ *4.0)
223
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
224
+ ;;
225
+ *5.*)
226
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
227
+ ;;
228
+ esac
229
+ # According to Compaq, /usr/sbin/psrinfo has been available on
230
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
231
+ # covers most systems running today. This code pipes the CPU
232
+ # types through head -n 1, so we only detect the type of CPU 0.
233
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
234
+ case "$ALPHA_CPU_TYPE" in
235
+ "EV4 (21064)")
236
+ UNAME_MACHINE="alpha" ;;
237
+ "EV4.5 (21064)")
238
+ UNAME_MACHINE="alpha" ;;
239
+ "LCA4 (21066/21068)")
240
+ UNAME_MACHINE="alpha" ;;
241
+ "EV5 (21164)")
242
+ UNAME_MACHINE="alphaev5" ;;
243
+ "EV5.6 (21164A)")
244
+ UNAME_MACHINE="alphaev56" ;;
245
+ "EV5.6 (21164PC)")
246
+ UNAME_MACHINE="alphapca56" ;;
247
+ "EV5.7 (21164PC)")
248
+ UNAME_MACHINE="alphapca57" ;;
249
+ "EV6 (21264)")
250
+ UNAME_MACHINE="alphaev6" ;;
251
+ "EV6.7 (21264A)")
252
+ UNAME_MACHINE="alphaev67" ;;
253
+ "EV6.8CB (21264C)")
254
+ UNAME_MACHINE="alphaev68" ;;
255
+ "EV6.8AL (21264B)")
256
+ UNAME_MACHINE="alphaev68" ;;
257
+ "EV6.8CX (21264D)")
258
+ UNAME_MACHINE="alphaev68" ;;
259
+ "EV6.9A (21264/EV69A)")
260
+ UNAME_MACHINE="alphaev69" ;;
261
+ "EV7 (21364)")
262
+ UNAME_MACHINE="alphaev7" ;;
263
+ "EV7.9 (21364A)")
264
+ UNAME_MACHINE="alphaev79" ;;
265
+ esac
266
+ # A Pn.n version is a patched version.
267
+ # A Vn.n version is a released version.
268
+ # A Tn.n version is a released field test version.
269
+ # A Xn.n version is an unreleased experimental baselevel.
270
+ # 1.2 uses "1.2" for uname -r.
271
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
272
+ exit ;;
273
+ Alpha\ *:Windows_NT*:*)
274
+ # How do we know it's Interix rather than the generic POSIX subsystem?
275
+ # Should we change UNAME_MACHINE based on the output of uname instead
276
+ # of the specific Alpha model?
277
+ echo alpha-pc-interix
278
+ exit ;;
279
+ 21064:Windows_NT:50:3)
280
+ echo alpha-dec-winnt3.5
281
+ exit ;;
282
+ Amiga*:UNIX_System_V:4.0:*)
283
+ echo m68k-unknown-sysv4
284
+ exit ;;
285
+ *:[Aa]miga[Oo][Ss]:*:*)
286
+ echo ${UNAME_MACHINE}-unknown-amigaos
287
+ exit ;;
288
+ *:[Mm]orph[Oo][Ss]:*:*)
289
+ echo ${UNAME_MACHINE}-unknown-morphos
290
+ exit ;;
291
+ *:OS/390:*:*)
292
+ echo i370-ibm-openedition
293
+ exit ;;
294
+ *:z/VM:*:*)
295
+ echo s390-ibm-zvmoe
296
+ exit ;;
297
+ *:OS400:*:*)
298
+ echo powerpc-ibm-os400
299
+ exit ;;
300
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
301
+ echo arm-acorn-riscix${UNAME_RELEASE}
302
+ exit ;;
303
+ arm:riscos:*:*|arm:RISCOS:*:*)
304
+ echo arm-unknown-riscos
305
+ exit ;;
306
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
307
+ echo hppa1.1-hitachi-hiuxmpp
308
+ exit ;;
309
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
310
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
311
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
312
+ echo pyramid-pyramid-sysv3
313
+ else
314
+ echo pyramid-pyramid-bsd
315
+ fi
316
+ exit ;;
317
+ NILE*:*:*:dcosx)
318
+ echo pyramid-pyramid-svr4
319
+ exit ;;
320
+ DRS?6000:unix:4.0:6*)
321
+ echo sparc-icl-nx6
322
+ exit ;;
323
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
324
+ case `/usr/bin/uname -p` in
325
+ sparc) echo sparc-icl-nx7; exit ;;
326
+ esac ;;
327
+ sun4H:SunOS:5.*:*)
328
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
329
+ exit ;;
330
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
331
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
332
+ exit ;;
333
+ i86pc:SunOS:5.*:* | ix86xen:SunOS:5.*:*)
334
+ echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
335
+ exit ;;
336
+ sun4*:SunOS:6*:*)
337
+ # According to config.sub, this is the proper way to canonicalize
338
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
339
+ # it's likely to be more like Solaris than SunOS4.
340
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
341
+ exit ;;
342
+ sun4*:SunOS:*:*)
343
+ case "`/usr/bin/arch -k`" in
344
+ Series*|S4*)
345
+ UNAME_RELEASE=`uname -v`
346
+ ;;
347
+ esac
348
+ # Japanese Language versions have a version number like `4.1.3-JL'.
349
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
350
+ exit ;;
351
+ sun3*:SunOS:*:*)
352
+ echo m68k-sun-sunos${UNAME_RELEASE}
353
+ exit ;;
354
+ sun*:*:4.2BSD:*)
355
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
356
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
357
+ case "`/bin/arch`" in
358
+ sun3)
359
+ echo m68k-sun-sunos${UNAME_RELEASE}
360
+ ;;
361
+ sun4)
362
+ echo sparc-sun-sunos${UNAME_RELEASE}
363
+ ;;
364
+ esac
365
+ exit ;;
366
+ aushp:SunOS:*:*)
367
+ echo sparc-auspex-sunos${UNAME_RELEASE}
368
+ exit ;;
369
+ # The situation for MiNT is a little confusing. The machine name
370
+ # can be virtually everything (everything which is not
371
+ # "atarist" or "atariste" at least should have a processor
372
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
373
+ # to the lowercase version "mint" (or "freemint"). Finally
374
+ # the system name "TOS" denotes a system which is actually not
375
+ # MiNT. But MiNT is downward compatible to TOS, so this should
376
+ # be no problem.
377
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
378
+ echo m68k-atari-mint${UNAME_RELEASE}
379
+ exit ;;
380
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
381
+ echo m68k-atari-mint${UNAME_RELEASE}
382
+ exit ;;
383
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
384
+ echo m68k-atari-mint${UNAME_RELEASE}
385
+ exit ;;
386
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
387
+ echo m68k-milan-mint${UNAME_RELEASE}
388
+ exit ;;
389
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
390
+ echo m68k-hades-mint${UNAME_RELEASE}
391
+ exit ;;
392
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
393
+ echo m68k-unknown-mint${UNAME_RELEASE}
394
+ exit ;;
395
+ m68k:machten:*:*)
396
+ echo m68k-apple-machten${UNAME_RELEASE}
397
+ exit ;;
398
+ powerpc:machten:*:*)
399
+ echo powerpc-apple-machten${UNAME_RELEASE}
400
+ exit ;;
401
+ RISC*:Mach:*:*)
402
+ echo mips-dec-mach_bsd4.3
403
+ exit ;;
404
+ RISC*:ULTRIX:*:*)
405
+ echo mips-dec-ultrix${UNAME_RELEASE}
406
+ exit ;;
407
+ VAX*:ULTRIX*:*:*)
408
+ echo vax-dec-ultrix${UNAME_RELEASE}
409
+ exit ;;
410
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
411
+ echo clipper-intergraph-clix${UNAME_RELEASE}
412
+ exit ;;
413
+ mips:*:*:UMIPS | mips:*:*:RISCos)
414
+ eval $set_cc_for_build
415
+ sed 's/^ //' << EOF >$dummy.c
416
+ #ifdef __cplusplus
417
+ #include <stdio.h> /* for printf() prototype */
418
+ int main (int argc, char *argv[]) {
419
+ #else
420
+ int main (argc, argv) int argc; char *argv[]; {
421
+ #endif
422
+ #if defined (host_mips) && defined (MIPSEB)
423
+ #if defined (SYSTYPE_SYSV)
424
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
425
+ #endif
426
+ #if defined (SYSTYPE_SVR4)
427
+ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
428
+ #endif
429
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
430
+ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
431
+ #endif
432
+ #endif
433
+ exit (-1);
434
+ }
435
+ EOF
436
+ $CC_FOR_BUILD -o $dummy $dummy.c &&
437
+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
438
+ SYSTEM_NAME=`$dummy $dummyarg` &&
439
+ { echo "$SYSTEM_NAME"; exit; }
440
+ echo mips-mips-riscos${UNAME_RELEASE}
441
+ exit ;;
442
+ Motorola:PowerMAX_OS:*:*)
443
+ echo powerpc-motorola-powermax
444
+ exit ;;
445
+ Motorola:*:4.3:PL8-*)
446
+ echo powerpc-harris-powermax
447
+ exit ;;
448
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
449
+ echo powerpc-harris-powermax
450
+ exit ;;
451
+ Night_Hawk:Power_UNIX:*:*)
452
+ echo powerpc-harris-powerunix
453
+ exit ;;
454
+ m88k:CX/UX:7*:*)
455
+ echo m88k-harris-cxux7
456
+ exit ;;
457
+ m88k:*:4*:R4*)
458
+ echo m88k-motorola-sysv4
459
+ exit ;;
460
+ m88k:*:3*:R3*)
461
+ echo m88k-motorola-sysv3
462
+ exit ;;
463
+ AViiON:dgux:*:*)
464
+ # DG/UX returns AViiON for all architectures
465
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
466
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
467
+ then
468
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
469
+ [ ${TARGET_BINARY_INTERFACE}x = x ]
470
+ then
471
+ echo m88k-dg-dgux${UNAME_RELEASE}
472
+ else
473
+ echo m88k-dg-dguxbcs${UNAME_RELEASE}
474
+ fi
475
+ else
476
+ echo i586-dg-dgux${UNAME_RELEASE}
477
+ fi
478
+ exit ;;
479
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
480
+ echo m88k-dolphin-sysv3
481
+ exit ;;
482
+ M88*:*:R3*:*)
483
+ # Delta 88k system running SVR3
484
+ echo m88k-motorola-sysv3
485
+ exit ;;
486
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
487
+ echo m88k-tektronix-sysv3
488
+ exit ;;
489
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
490
+ echo m68k-tektronix-bsd
491
+ exit ;;
492
+ *:IRIX*:*:*)
493
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
494
+ exit ;;
495
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
496
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
497
+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
498
+ i*86:AIX:*:*)
499
+ echo i386-ibm-aix
500
+ exit ;;
501
+ ia64:AIX:*:*)
502
+ if [ -x /usr/bin/oslevel ] ; then
503
+ IBM_REV=`/usr/bin/oslevel`
504
+ else
505
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
506
+ fi
507
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
508
+ exit ;;
509
+ *:AIX:2:3)
510
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
511
+ eval $set_cc_for_build
512
+ sed 's/^ //' << EOF >$dummy.c
513
+ #include <sys/systemcfg.h>
514
+
515
+ main()
516
+ {
517
+ if (!__power_pc())
518
+ exit(1);
519
+ puts("powerpc-ibm-aix3.2.5");
520
+ exit(0);
521
+ }
522
+ EOF
523
+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
524
+ then
525
+ echo "$SYSTEM_NAME"
526
+ else
527
+ echo rs6000-ibm-aix3.2.5
528
+ fi
529
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
530
+ echo rs6000-ibm-aix3.2.4
531
+ else
532
+ echo rs6000-ibm-aix3.2
533
+ fi
534
+ exit ;;
535
+ *:AIX:*:[45])
536
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
537
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
538
+ IBM_ARCH=rs6000
539
+ else
540
+ IBM_ARCH=powerpc
541
+ fi
542
+ if [ -x /usr/bin/oslevel ] ; then
543
+ IBM_REV=`/usr/bin/oslevel`
544
+ else
545
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
546
+ fi
547
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
548
+ exit ;;
549
+ *:AIX:*:*)
550
+ echo rs6000-ibm-aix
551
+ exit ;;
552
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
553
+ echo romp-ibm-bsd4.4
554
+ exit ;;
555
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
556
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
557
+ exit ;; # report: romp-ibm BSD 4.3
558
+ *:BOSX:*:*)
559
+ echo rs6000-bull-bosx
560
+ exit ;;
561
+ DPX/2?00:B.O.S.:*:*)
562
+ echo m68k-bull-sysv3
563
+ exit ;;
564
+ 9000/[34]??:4.3bsd:1.*:*)
565
+ echo m68k-hp-bsd
566
+ exit ;;
567
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
568
+ echo m68k-hp-bsd4.4
569
+ exit ;;
570
+ 9000/[34678]??:HP-UX:*:*)
571
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
572
+ case "${UNAME_MACHINE}" in
573
+ 9000/31? ) HP_ARCH=m68000 ;;
574
+ 9000/[34]?? ) HP_ARCH=m68k ;;
575
+ 9000/[678][0-9][0-9])
576
+ if [ -x /usr/bin/getconf ]; then
577
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
578
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
579
+ case "${sc_cpu_version}" in
580
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
581
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
582
+ 532) # CPU_PA_RISC2_0
583
+ case "${sc_kernel_bits}" in
584
+ 32) HP_ARCH="hppa2.0n" ;;
585
+ 64) HP_ARCH="hppa2.0w" ;;
586
+ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
587
+ esac ;;
588
+ esac
589
+ fi
590
+ if [ "${HP_ARCH}" = "" ]; then
591
+ eval $set_cc_for_build
592
+ sed 's/^ //' << EOF >$dummy.c
593
+
594
+ #define _HPUX_SOURCE
595
+ #include <stdlib.h>
596
+ #include <unistd.h>
597
+
598
+ int main ()
599
+ {
600
+ #if defined(_SC_KERNEL_BITS)
601
+ long bits = sysconf(_SC_KERNEL_BITS);
602
+ #endif
603
+ long cpu = sysconf (_SC_CPU_VERSION);
604
+
605
+ switch (cpu)
606
+ {
607
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
608
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
609
+ case CPU_PA_RISC2_0:
610
+ #if defined(_SC_KERNEL_BITS)
611
+ switch (bits)
612
+ {
613
+ case 64: puts ("hppa2.0w"); break;
614
+ case 32: puts ("hppa2.0n"); break;
615
+ default: puts ("hppa2.0"); break;
616
+ } break;
617
+ #else /* !defined(_SC_KERNEL_BITS) */
618
+ puts ("hppa2.0"); break;
619
+ #endif
620
+ default: puts ("hppa1.0"); break;
621
+ }
622
+ exit (0);
623
+ }
624
+ EOF
625
+ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
626
+ test -z "$HP_ARCH" && HP_ARCH=hppa
627
+ fi ;;
628
+ esac
629
+ if [ ${HP_ARCH} = "hppa2.0w" ]
630
+ then
631
+ eval $set_cc_for_build
632
+
633
+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
634
+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
635
+ # generating 64-bit code. GNU and HP use different nomenclature:
636
+ #
637
+ # $ CC_FOR_BUILD=cc ./config.guess
638
+ # => hppa2.0w-hp-hpux11.23
639
+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
640
+ # => hppa64-hp-hpux11.23
641
+
642
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
643
+ grep __LP64__ >/dev/null
644
+ then
645
+ HP_ARCH="hppa2.0w"
646
+ else
647
+ HP_ARCH="hppa64"
648
+ fi
649
+ fi
650
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
651
+ exit ;;
652
+ ia64:HP-UX:*:*)
653
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
654
+ echo ia64-hp-hpux${HPUX_REV}
655
+ exit ;;
656
+ 3050*:HI-UX:*:*)
657
+ eval $set_cc_for_build
658
+ sed 's/^ //' << EOF >$dummy.c
659
+ #include <unistd.h>
660
+ int
661
+ main ()
662
+ {
663
+ long cpu = sysconf (_SC_CPU_VERSION);
664
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
665
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
666
+ results, however. */
667
+ if (CPU_IS_PA_RISC (cpu))
668
+ {
669
+ switch (cpu)
670
+ {
671
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
672
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
673
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
674
+ default: puts ("hppa-hitachi-hiuxwe2"); break;
675
+ }
676
+ }
677
+ else if (CPU_IS_HP_MC68K (cpu))
678
+ puts ("m68k-hitachi-hiuxwe2");
679
+ else puts ("unknown-hitachi-hiuxwe2");
680
+ exit (0);
681
+ }
682
+ EOF
683
+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
684
+ { echo "$SYSTEM_NAME"; exit; }
685
+ echo unknown-hitachi-hiuxwe2
686
+ exit ;;
687
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
688
+ echo hppa1.1-hp-bsd
689
+ exit ;;
690
+ 9000/8??:4.3bsd:*:*)
691
+ echo hppa1.0-hp-bsd
692
+ exit ;;
693
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
694
+ echo hppa1.0-hp-mpeix
695
+ exit ;;
696
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
697
+ echo hppa1.1-hp-osf
698
+ exit ;;
699
+ hp8??:OSF1:*:*)
700
+ echo hppa1.0-hp-osf
701
+ exit ;;
702
+ i*86:OSF1:*:*)
703
+ if [ -x /usr/sbin/sysversion ] ; then
704
+ echo ${UNAME_MACHINE}-unknown-osf1mk
705
+ else
706
+ echo ${UNAME_MACHINE}-unknown-osf1
707
+ fi
708
+ exit ;;
709
+ parisc*:Lites*:*:*)
710
+ echo hppa1.1-hp-lites
711
+ exit ;;
712
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
713
+ echo c1-convex-bsd
714
+ exit ;;
715
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
716
+ if getsysinfo -f scalar_acc
717
+ then echo c32-convex-bsd
718
+ else echo c2-convex-bsd
719
+ fi
720
+ exit ;;
721
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
722
+ echo c34-convex-bsd
723
+ exit ;;
724
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
725
+ echo c38-convex-bsd
726
+ exit ;;
727
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
728
+ echo c4-convex-bsd
729
+ exit ;;
730
+ CRAY*Y-MP:*:*:*)
731
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
732
+ exit ;;
733
+ CRAY*[A-Z]90:*:*:*)
734
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
735
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
736
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
737
+ -e 's/\.[^.]*$/.X/'
738
+ exit ;;
739
+ CRAY*TS:*:*:*)
740
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
741
+ exit ;;
742
+ CRAY*T3E:*:*:*)
743
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
744
+ exit ;;
745
+ CRAY*SV1:*:*:*)
746
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
747
+ exit ;;
748
+ *:UNICOS/mp:*:*)
749
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
750
+ exit ;;
751
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
752
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
753
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
754
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
755
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
756
+ exit ;;
757
+ 5000:UNIX_System_V:4.*:*)
758
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
759
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
760
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
761
+ exit ;;
762
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
763
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
764
+ exit ;;
765
+ sparc*:BSD/OS:*:*)
766
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
767
+ exit ;;
768
+ *:BSD/OS:*:*)
769
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
770
+ exit ;;
771
+ *:FreeBSD:*:*)
772
+ case ${UNAME_MACHINE} in
773
+ pc98)
774
+ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
775
+ amd64)
776
+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
777
+ *)
778
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
779
+ esac
780
+ exit ;;
781
+ i*:CYGWIN*:*)
782
+ echo ${UNAME_MACHINE}-pc-cygwin
783
+ exit ;;
784
+ *:MINGW*:*)
785
+ echo ${UNAME_MACHINE}-pc-mingw32
786
+ exit ;;
787
+ i*:windows32*:*)
788
+ # uname -m includes "-pc" on this system.
789
+ echo ${UNAME_MACHINE}-mingw32
790
+ exit ;;
791
+ i*:PW*:*)
792
+ echo ${UNAME_MACHINE}-pc-pw32
793
+ exit ;;
794
+ *:Interix*:[3456]*)
795
+ case ${UNAME_MACHINE} in
796
+ x86)
797
+ echo i586-pc-interix${UNAME_RELEASE}
798
+ exit ;;
799
+ EM64T | authenticamd)
800
+ echo x86_64-unknown-interix${UNAME_RELEASE}
801
+ exit ;;
802
+ esac ;;
803
+ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
804
+ echo i${UNAME_MACHINE}-pc-mks
805
+ exit ;;
806
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
807
+ # How do we know it's Interix rather than the generic POSIX subsystem?
808
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
809
+ # UNAME_MACHINE based on the output of uname instead of i386?
810
+ echo i586-pc-interix
811
+ exit ;;
812
+ i*:UWIN*:*)
813
+ echo ${UNAME_MACHINE}-pc-uwin
814
+ exit ;;
815
+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
816
+ echo x86_64-unknown-cygwin
817
+ exit ;;
818
+ p*:CYGWIN*:*)
819
+ echo powerpcle-unknown-cygwin
820
+ exit ;;
821
+ prep*:SunOS:5.*:*)
822
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
823
+ exit ;;
824
+ *:GNU:*:*)
825
+ # the GNU system
826
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
827
+ exit ;;
828
+ *:GNU/*:*:*)
829
+ # other systems with GNU libc and userland
830
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
831
+ exit ;;
832
+ i*86:Minix:*:*)
833
+ echo ${UNAME_MACHINE}-pc-minix
834
+ exit ;;
835
+ arm*:Linux:*:*)
836
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
837
+ exit ;;
838
+ avr32*:Linux:*:*)
839
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
840
+ exit ;;
841
+ cris:Linux:*:*)
842
+ echo cris-axis-linux-gnu
843
+ exit ;;
844
+ crisv32:Linux:*:*)
845
+ echo crisv32-axis-linux-gnu
846
+ exit ;;
847
+ frv:Linux:*:*)
848
+ echo frv-unknown-linux-gnu
849
+ exit ;;
850
+ ia64:Linux:*:*)
851
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
852
+ exit ;;
853
+ m32r*:Linux:*:*)
854
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
855
+ exit ;;
856
+ m68*:Linux:*:*)
857
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
858
+ exit ;;
859
+ mips:Linux:*:*)
860
+ eval $set_cc_for_build
861
+ sed 's/^ //' << EOF >$dummy.c
862
+ #undef CPU
863
+ #undef mips
864
+ #undef mipsel
865
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
866
+ CPU=mipsel
867
+ #else
868
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
869
+ CPU=mips
870
+ #else
871
+ CPU=
872
+ #endif
873
+ #endif
874
+ EOF
875
+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
876
+ /^CPU/{
877
+ s: ::g
878
+ p
879
+ }'`"
880
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
881
+ ;;
882
+ mips64:Linux:*:*)
883
+ eval $set_cc_for_build
884
+ sed 's/^ //' << EOF >$dummy.c
885
+ #undef CPU
886
+ #undef mips64
887
+ #undef mips64el
888
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
889
+ CPU=mips64el
890
+ #else
891
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
892
+ CPU=mips64
893
+ #else
894
+ CPU=
895
+ #endif
896
+ #endif
897
+ EOF
898
+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
899
+ /^CPU/{
900
+ s: ::g
901
+ p
902
+ }'`"
903
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
904
+ ;;
905
+ or32:Linux:*:*)
906
+ echo or32-unknown-linux-gnu
907
+ exit ;;
908
+ ppc:Linux:*:*)
909
+ echo powerpc-unknown-linux-gnu
910
+ exit ;;
911
+ ppc64:Linux:*:*)
912
+ echo powerpc64-unknown-linux-gnu
913
+ exit ;;
914
+ alpha:Linux:*:*)
915
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
916
+ EV5) UNAME_MACHINE=alphaev5 ;;
917
+ EV56) UNAME_MACHINE=alphaev56 ;;
918
+ PCA56) UNAME_MACHINE=alphapca56 ;;
919
+ PCA57) UNAME_MACHINE=alphapca56 ;;
920
+ EV6) UNAME_MACHINE=alphaev6 ;;
921
+ EV67) UNAME_MACHINE=alphaev67 ;;
922
+ EV68*) UNAME_MACHINE=alphaev68 ;;
923
+ esac
924
+ objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
925
+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
926
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
927
+ exit ;;
928
+ parisc:Linux:*:* | hppa:Linux:*:*)
929
+ # Look for CPU level
930
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
931
+ PA7*) echo hppa1.1-unknown-linux-gnu ;;
932
+ PA8*) echo hppa2.0-unknown-linux-gnu ;;
933
+ *) echo hppa-unknown-linux-gnu ;;
934
+ esac
935
+ exit ;;
936
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
937
+ echo hppa64-unknown-linux-gnu
938
+ exit ;;
939
+ s390:Linux:*:* | s390x:Linux:*:*)
940
+ echo ${UNAME_MACHINE}-ibm-linux
941
+ exit ;;
942
+ sh64*:Linux:*:*)
943
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
944
+ exit ;;
945
+ sh*:Linux:*:*)
946
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
947
+ exit ;;
948
+ sparc:Linux:*:* | sparc64:Linux:*:*)
949
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
950
+ exit ;;
951
+ vax:Linux:*:*)
952
+ echo ${UNAME_MACHINE}-dec-linux-gnu
953
+ exit ;;
954
+ x86_64:Linux:*:*)
955
+ echo x86_64-unknown-linux-gnu
956
+ exit ;;
957
+ xtensa:Linux:*:*)
958
+ echo xtensa-unknown-linux-gnu
959
+ exit ;;
960
+ i*86:Linux:*:*)
961
+ # The BFD linker knows what the default object file format is, so
962
+ # first see if it will tell us. cd to the root directory to prevent
963
+ # problems with other programs or directories called `ld' in the path.
964
+ # Set LC_ALL=C to ensure ld outputs messages in English.
965
+ ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
966
+ | sed -ne '/supported targets:/!d
967
+ s/[ ][ ]*/ /g
968
+ s/.*supported targets: *//
969
+ s/ .*//
970
+ p'`
971
+ case "$ld_supported_targets" in
972
+ elf32-i386)
973
+ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
974
+ ;;
975
+ a.out-i386-linux)
976
+ echo "${UNAME_MACHINE}-pc-linux-gnuaout"
977
+ exit ;;
978
+ coff-i386)
979
+ echo "${UNAME_MACHINE}-pc-linux-gnucoff"
980
+ exit ;;
981
+ "")
982
+ # Either a pre-BFD a.out linker (linux-gnuoldld) or
983
+ # one that does not give us useful --help.
984
+ echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
985
+ exit ;;
986
+ esac
987
+ # Determine whether the default compiler is a.out or elf
988
+ eval $set_cc_for_build
989
+ sed 's/^ //' << EOF >$dummy.c
990
+ #include <features.h>
991
+ #ifdef __ELF__
992
+ # ifdef __GLIBC__
993
+ # if __GLIBC__ >= 2
994
+ LIBC=gnu
995
+ # else
996
+ LIBC=gnulibc1
997
+ # endif
998
+ # else
999
+ LIBC=gnulibc1
1000
+ # endif
1001
+ #else
1002
+ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
1003
+ LIBC=gnu
1004
+ #else
1005
+ LIBC=gnuaout
1006
+ #endif
1007
+ #endif
1008
+ #ifdef __dietlibc__
1009
+ LIBC=dietlibc
1010
+ #endif
1011
+ EOF
1012
+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
1013
+ /^LIBC/{
1014
+ s: ::g
1015
+ p
1016
+ }'`"
1017
+ test x"${LIBC}" != x && {
1018
+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
1019
+ exit
1020
+ }
1021
+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
1022
+ ;;
1023
+ i*86:DYNIX/ptx:4*:*)
1024
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
1025
+ # earlier versions are messed up and put the nodename in both
1026
+ # sysname and nodename.
1027
+ echo i386-sequent-sysv4
1028
+ exit ;;
1029
+ i*86:UNIX_SV:4.2MP:2.*)
1030
+ # Unixware is an offshoot of SVR4, but it has its own version
1031
+ # number series starting with 2...
1032
+ # I am not positive that other SVR4 systems won't match this,
1033
+ # I just have to hope. -- rms.
1034
+ # Use sysv4.2uw... so that sysv4* matches it.
1035
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
1036
+ exit ;;
1037
+ i*86:OS/2:*:*)
1038
+ # If we were able to find `uname', then EMX Unix compatibility
1039
+ # is probably installed.
1040
+ echo ${UNAME_MACHINE}-pc-os2-emx
1041
+ exit ;;
1042
+ i*86:XTS-300:*:STOP)
1043
+ echo ${UNAME_MACHINE}-unknown-stop
1044
+ exit ;;
1045
+ i*86:atheos:*:*)
1046
+ echo ${UNAME_MACHINE}-unknown-atheos
1047
+ exit ;;
1048
+ i*86:syllable:*:*)
1049
+ echo ${UNAME_MACHINE}-pc-syllable
1050
+ exit ;;
1051
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
1052
+ echo i386-unknown-lynxos${UNAME_RELEASE}
1053
+ exit ;;
1054
+ i*86:*DOS:*:*)
1055
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
1056
+ exit ;;
1057
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
1058
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
1059
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1060
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
1061
+ else
1062
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1063
+ fi
1064
+ exit ;;
1065
+ i*86:*:5:[678]*)
1066
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
1067
+ case `/bin/uname -X | grep "^Machine"` in
1068
+ *486*) UNAME_MACHINE=i486 ;;
1069
+ *Pentium) UNAME_MACHINE=i586 ;;
1070
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
1071
+ esac
1072
+ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1073
+ exit ;;
1074
+ i*86:*:3.2:*)
1075
+ if test -f /usr/options/cb.name; then
1076
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1077
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1078
+ elif /bin/uname -X 2>/dev/null >/dev/null ; then
1079
+ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
1080
+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
1081
+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
1082
+ && UNAME_MACHINE=i586
1083
+ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
1084
+ && UNAME_MACHINE=i686
1085
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
1086
+ && UNAME_MACHINE=i686
1087
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1088
+ else
1089
+ echo ${UNAME_MACHINE}-pc-sysv32
1090
+ fi
1091
+ exit ;;
1092
+ pc:*:*:*)
1093
+ # Left here for compatibility:
1094
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
1095
+ # the processor, so we play safe by assuming i386.
1096
+ echo i386-pc-msdosdjgpp
1097
+ exit ;;
1098
+ Intel:Mach:3*:*)
1099
+ echo i386-pc-mach3
1100
+ exit ;;
1101
+ paragon:*:*:*)
1102
+ echo i860-intel-osf1
1103
+ exit ;;
1104
+ i860:*:4.*:*) # i860-SVR4
1105
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1106
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1107
+ else # Add other i860-SVR4 vendors below as they are discovered.
1108
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
1109
+ fi
1110
+ exit ;;
1111
+ mini*:CTIX:SYS*5:*)
1112
+ # "miniframe"
1113
+ echo m68010-convergent-sysv
1114
+ exit ;;
1115
+ mc68k:UNIX:SYSTEM5:3.51m)
1116
+ echo m68k-convergent-sysv
1117
+ exit ;;
1118
+ M680?0:D-NIX:5.3:*)
1119
+ echo m68k-diab-dnix
1120
+ exit ;;
1121
+ M68*:*:R3V[5678]*:*)
1122
+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
1123
+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
1124
+ OS_REL=''
1125
+ test -r /etc/.relid \
1126
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
1127
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1128
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1129
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1130
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1131
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
1132
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1133
+ && { echo i486-ncr-sysv4; exit; } ;;
1134
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1135
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
1136
+ exit ;;
1137
+ mc68030:UNIX_System_V:4.*:*)
1138
+ echo m68k-atari-sysv4
1139
+ exit ;;
1140
+ TSUNAMI:LynxOS:2.*:*)
1141
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
1142
+ exit ;;
1143
+ rs6000:LynxOS:2.*:*)
1144
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
1145
+ exit ;;
1146
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
1147
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
1148
+ exit ;;
1149
+ SM[BE]S:UNIX_SV:*:*)
1150
+ echo mips-dde-sysv${UNAME_RELEASE}
1151
+ exit ;;
1152
+ RM*:ReliantUNIX-*:*:*)
1153
+ echo mips-sni-sysv4
1154
+ exit ;;
1155
+ RM*:SINIX-*:*:*)
1156
+ echo mips-sni-sysv4
1157
+ exit ;;
1158
+ *:SINIX-*:*:*)
1159
+ if uname -p 2>/dev/null >/dev/null ; then
1160
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
1161
+ echo ${UNAME_MACHINE}-sni-sysv4
1162
+ else
1163
+ echo ns32k-sni-sysv
1164
+ fi
1165
+ exit ;;
1166
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
1167
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
1168
+ echo i586-unisys-sysv4
1169
+ exit ;;
1170
+ *:UNIX_System_V:4*:FTX*)
1171
+ # From Gerald Hewes <hewes@openmarket.com>.
1172
+ # How about differentiating between stratus architectures? -djm
1173
+ echo hppa1.1-stratus-sysv4
1174
+ exit ;;
1175
+ *:*:*:FTX*)
1176
+ # From seanf@swdc.stratus.com.
1177
+ echo i860-stratus-sysv4
1178
+ exit ;;
1179
+ i*86:VOS:*:*)
1180
+ # From Paul.Green@stratus.com.
1181
+ echo ${UNAME_MACHINE}-stratus-vos
1182
+ exit ;;
1183
+ *:VOS:*:*)
1184
+ # From Paul.Green@stratus.com.
1185
+ echo hppa1.1-stratus-vos
1186
+ exit ;;
1187
+ mc68*:A/UX:*:*)
1188
+ echo m68k-apple-aux${UNAME_RELEASE}
1189
+ exit ;;
1190
+ news*:NEWS-OS:6*:*)
1191
+ echo mips-sony-newsos6
1192
+ exit ;;
1193
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
1194
+ if [ -d /usr/nec ]; then
1195
+ echo mips-nec-sysv${UNAME_RELEASE}
1196
+ else
1197
+ echo mips-unknown-sysv${UNAME_RELEASE}
1198
+ fi
1199
+ exit ;;
1200
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
1201
+ echo powerpc-be-beos
1202
+ exit ;;
1203
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
1204
+ echo powerpc-apple-beos
1205
+ exit ;;
1206
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
1207
+ echo i586-pc-beos
1208
+ exit ;;
1209
+ SX-4:SUPER-UX:*:*)
1210
+ echo sx4-nec-superux${UNAME_RELEASE}
1211
+ exit ;;
1212
+ SX-5:SUPER-UX:*:*)
1213
+ echo sx5-nec-superux${UNAME_RELEASE}
1214
+ exit ;;
1215
+ SX-6:SUPER-UX:*:*)
1216
+ echo sx6-nec-superux${UNAME_RELEASE}
1217
+ exit ;;
1218
+ SX-7:SUPER-UX:*:*)
1219
+ echo sx7-nec-superux${UNAME_RELEASE}
1220
+ exit ;;
1221
+ SX-8:SUPER-UX:*:*)
1222
+ echo sx8-nec-superux${UNAME_RELEASE}
1223
+ exit ;;
1224
+ SX-8R:SUPER-UX:*:*)
1225
+ echo sx8r-nec-superux${UNAME_RELEASE}
1226
+ exit ;;
1227
+ Power*:Rhapsody:*:*)
1228
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
1229
+ exit ;;
1230
+ *:Rhapsody:*:*)
1231
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1232
+ exit ;;
1233
+ *:Darwin:*:*)
1234
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1235
+ case $UNAME_PROCESSOR in
1236
+ unknown) UNAME_PROCESSOR=powerpc ;;
1237
+ esac
1238
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1239
+ exit ;;
1240
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
1241
+ UNAME_PROCESSOR=`uname -p`
1242
+ if test "$UNAME_PROCESSOR" = "x86"; then
1243
+ UNAME_PROCESSOR=i386
1244
+ UNAME_MACHINE=pc
1245
+ fi
1246
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1247
+ exit ;;
1248
+ *:QNX:*:4*)
1249
+ echo i386-pc-qnx
1250
+ exit ;;
1251
+ NSE-?:NONSTOP_KERNEL:*:*)
1252
+ echo nse-tandem-nsk${UNAME_RELEASE}
1253
+ exit ;;
1254
+ NSR-?:NONSTOP_KERNEL:*:*)
1255
+ echo nsr-tandem-nsk${UNAME_RELEASE}
1256
+ exit ;;
1257
+ *:NonStop-UX:*:*)
1258
+ echo mips-compaq-nonstopux
1259
+ exit ;;
1260
+ BS2000:POSIX*:*:*)
1261
+ echo bs2000-siemens-sysv
1262
+ exit ;;
1263
+ DS/*:UNIX_System_V:*:*)
1264
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1265
+ exit ;;
1266
+ *:Plan9:*:*)
1267
+ # "uname -m" is not consistent, so use $cputype instead. 386
1268
+ # is converted to i386 for consistency with other x86
1269
+ # operating systems.
1270
+ if test "$cputype" = "386"; then
1271
+ UNAME_MACHINE=i386
1272
+ else
1273
+ UNAME_MACHINE="$cputype"
1274
+ fi
1275
+ echo ${UNAME_MACHINE}-unknown-plan9
1276
+ exit ;;
1277
+ *:TOPS-10:*:*)
1278
+ echo pdp10-unknown-tops10
1279
+ exit ;;
1280
+ *:TENEX:*:*)
1281
+ echo pdp10-unknown-tenex
1282
+ exit ;;
1283
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
1284
+ echo pdp10-dec-tops20
1285
+ exit ;;
1286
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
1287
+ echo pdp10-xkl-tops20
1288
+ exit ;;
1289
+ *:TOPS-20:*:*)
1290
+ echo pdp10-unknown-tops20
1291
+ exit ;;
1292
+ *:ITS:*:*)
1293
+ echo pdp10-unknown-its
1294
+ exit ;;
1295
+ SEI:*:*:SEIUX)
1296
+ echo mips-sei-seiux${UNAME_RELEASE}
1297
+ exit ;;
1298
+ *:DragonFly:*:*)
1299
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
1300
+ exit ;;
1301
+ *:*VMS:*:*)
1302
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
1303
+ case "${UNAME_MACHINE}" in
1304
+ A*) echo alpha-dec-vms ; exit ;;
1305
+ I*) echo ia64-dec-vms ; exit ;;
1306
+ V*) echo vax-dec-vms ; exit ;;
1307
+ esac ;;
1308
+ *:XENIX:*:SysV)
1309
+ echo i386-pc-xenix
1310
+ exit ;;
1311
+ i*86:skyos:*:*)
1312
+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
1313
+ exit ;;
1314
+ i*86:rdos:*:*)
1315
+ echo ${UNAME_MACHINE}-pc-rdos
1316
+ exit ;;
1317
+ esac
1318
+
1319
+ #echo '(No uname command or uname output not recognized.)' 1>&2
1320
+ #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
1321
+
1322
+ eval $set_cc_for_build
1323
+ cat >$dummy.c <<EOF
1324
+ #ifdef _SEQUENT_
1325
+ # include <sys/types.h>
1326
+ # include <sys/utsname.h>
1327
+ #endif
1328
+ main ()
1329
+ {
1330
+ #if defined (sony)
1331
+ #if defined (MIPSEB)
1332
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
1333
+ I don't know.... */
1334
+ printf ("mips-sony-bsd\n"); exit (0);
1335
+ #else
1336
+ #include <sys/param.h>
1337
+ printf ("m68k-sony-newsos%s\n",
1338
+ #ifdef NEWSOS4
1339
+ "4"
1340
+ #else
1341
+ ""
1342
+ #endif
1343
+ ); exit (0);
1344
+ #endif
1345
+ #endif
1346
+
1347
+ #if defined (__arm) && defined (__acorn) && defined (__unix)
1348
+ printf ("arm-acorn-riscix\n"); exit (0);
1349
+ #endif
1350
+
1351
+ #if defined (hp300) && !defined (hpux)
1352
+ printf ("m68k-hp-bsd\n"); exit (0);
1353
+ #endif
1354
+
1355
+ #if defined (NeXT)
1356
+ #if !defined (__ARCHITECTURE__)
1357
+ #define __ARCHITECTURE__ "m68k"
1358
+ #endif
1359
+ int version;
1360
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
1361
+ if (version < 4)
1362
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
1363
+ else
1364
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
1365
+ exit (0);
1366
+ #endif
1367
+
1368
+ #if defined (MULTIMAX) || defined (n16)
1369
+ #if defined (UMAXV)
1370
+ printf ("ns32k-encore-sysv\n"); exit (0);
1371
+ #else
1372
+ #if defined (CMU)
1373
+ printf ("ns32k-encore-mach\n"); exit (0);
1374
+ #else
1375
+ printf ("ns32k-encore-bsd\n"); exit (0);
1376
+ #endif
1377
+ #endif
1378
+ #endif
1379
+
1380
+ #if defined (__386BSD__)
1381
+ printf ("i386-pc-bsd\n"); exit (0);
1382
+ #endif
1383
+
1384
+ #if defined (sequent)
1385
+ #if defined (i386)
1386
+ printf ("i386-sequent-dynix\n"); exit (0);
1387
+ #endif
1388
+ #if defined (ns32000)
1389
+ printf ("ns32k-sequent-dynix\n"); exit (0);
1390
+ #endif
1391
+ #endif
1392
+
1393
+ #if defined (_SEQUENT_)
1394
+ struct utsname un;
1395
+
1396
+ uname(&un);
1397
+
1398
+ if (strncmp(un.version, "V2", 2) == 0) {
1399
+ printf ("i386-sequent-ptx2\n"); exit (0);
1400
+ }
1401
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
1402
+ printf ("i386-sequent-ptx1\n"); exit (0);
1403
+ }
1404
+ printf ("i386-sequent-ptx\n"); exit (0);
1405
+
1406
+ #endif
1407
+
1408
+ #if defined (vax)
1409
+ # if !defined (ultrix)
1410
+ # include <sys/param.h>
1411
+ # if defined (BSD)
1412
+ # if BSD == 43
1413
+ printf ("vax-dec-bsd4.3\n"); exit (0);
1414
+ # else
1415
+ # if BSD == 199006
1416
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
1417
+ # else
1418
+ printf ("vax-dec-bsd\n"); exit (0);
1419
+ # endif
1420
+ # endif
1421
+ # else
1422
+ printf ("vax-dec-bsd\n"); exit (0);
1423
+ # endif
1424
+ # else
1425
+ printf ("vax-dec-ultrix\n"); exit (0);
1426
+ # endif
1427
+ #endif
1428
+
1429
+ #if defined (alliant) && defined (i860)
1430
+ printf ("i860-alliant-bsd\n"); exit (0);
1431
+ #endif
1432
+
1433
+ exit (1);
1434
+ }
1435
+ EOF
1436
+
1437
+ $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
1438
+ { echo "$SYSTEM_NAME"; exit; }
1439
+
1440
+ # Apollos put the system type in the environment.
1441
+
1442
+ test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
1443
+
1444
+ # Convex versions that predate uname can use getsysinfo(1)
1445
+
1446
+ if [ -x /usr/convex/getsysinfo ]
1447
+ then
1448
+ case `getsysinfo -f cpu_type` in
1449
+ c1*)
1450
+ echo c1-convex-bsd
1451
+ exit ;;
1452
+ c2*)
1453
+ if getsysinfo -f scalar_acc
1454
+ then echo c32-convex-bsd
1455
+ else echo c2-convex-bsd
1456
+ fi
1457
+ exit ;;
1458
+ c34*)
1459
+ echo c34-convex-bsd
1460
+ exit ;;
1461
+ c38*)
1462
+ echo c38-convex-bsd
1463
+ exit ;;
1464
+ c4*)
1465
+ echo c4-convex-bsd
1466
+ exit ;;
1467
+ esac
1468
+ fi
1469
+
1470
+ cat >&2 <<EOF
1471
+ $0: unable to guess system type
1472
+
1473
+ This script, last modified $timestamp, has failed to recognize
1474
+ the operating system you are using. It is advised that you
1475
+ download the most up to date version of the config scripts from
1476
+
1477
+ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
1478
+ and
1479
+ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
1480
+
1481
+ If the version you run ($0) is already up to date, please
1482
+ send the following data and any information you think might be
1483
+ pertinent to <config-patches@gnu.org> in order to provide the needed
1484
+ information to handle your system.
1485
+
1486
+ config.guess timestamp = $timestamp
1487
+
1488
+ uname -m = `(uname -m) 2>/dev/null || echo unknown`
1489
+ uname -r = `(uname -r) 2>/dev/null || echo unknown`
1490
+ uname -s = `(uname -s) 2>/dev/null || echo unknown`
1491
+ uname -v = `(uname -v) 2>/dev/null || echo unknown`
1492
+
1493
+ /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
1494
+ /bin/uname -X = `(/bin/uname -X) 2>/dev/null`
1495
+
1496
+ hostinfo = `(hostinfo) 2>/dev/null`
1497
+ /bin/universe = `(/bin/universe) 2>/dev/null`
1498
+ /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
1499
+ /bin/arch = `(/bin/arch) 2>/dev/null`
1500
+ /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
1501
+ /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
1502
+
1503
+ UNAME_MACHINE = ${UNAME_MACHINE}
1504
+ UNAME_RELEASE = ${UNAME_RELEASE}
1505
+ UNAME_SYSTEM = ${UNAME_SYSTEM}
1506
+ UNAME_VERSION = ${UNAME_VERSION}
1507
+ EOF
1508
+
1509
+ exit 1
1510
+
1511
+ # Local variables:
1512
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
1513
+ # time-stamp-start: "timestamp='"
1514
+ # time-stamp-format: "%:y-%02m-%02d"
1515
+ # time-stamp-end: "'"
1516
+ # End: