tcc 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +35 -0
  3. data/README.md +196 -0
  4. data/ext/tcc/extconf.rb +25 -0
  5. data/ext/tcc/tcc-0.9.26.patch +30 -0
  6. data/ext/tcc/tcc-0.9.26/COPYING +504 -0
  7. data/ext/tcc/tcc-0.9.26/Changelog +396 -0
  8. data/ext/tcc/tcc-0.9.26/Makefile +349 -0
  9. data/ext/tcc/tcc-0.9.26/README +101 -0
  10. data/ext/tcc/tcc-0.9.26/TODO +93 -0
  11. data/ext/tcc/tcc-0.9.26/VERSION +1 -0
  12. data/ext/tcc/tcc-0.9.26/arm-gen.c +2005 -0
  13. data/ext/tcc/tcc-0.9.26/c67-gen.c +2560 -0
  14. data/ext/tcc/tcc-0.9.26/coff.h +446 -0
  15. data/ext/tcc/tcc-0.9.26/config.h +8 -0
  16. data/ext/tcc/tcc-0.9.26/config.mak +28 -0
  17. data/ext/tcc/tcc-0.9.26/config.texi +1 -0
  18. data/ext/tcc/tcc-0.9.26/configure +540 -0
  19. data/ext/tcc/tcc-0.9.26/conftest.c +71 -0
  20. data/ext/tcc/tcc-0.9.26/elf.h +1731 -0
  21. data/ext/tcc/tcc-0.9.26/examples/ex1.c +8 -0
  22. data/ext/tcc/tcc-0.9.26/examples/ex2.c +98 -0
  23. data/ext/tcc/tcc-0.9.26/examples/ex3.c +24 -0
  24. data/ext/tcc/tcc-0.9.26/examples/ex4.c +26 -0
  25. data/ext/tcc/tcc-0.9.26/examples/ex5.c +8 -0
  26. data/ext/tcc/tcc-0.9.26/i386-asm.c +1498 -0
  27. data/ext/tcc/tcc-0.9.26/i386-asm.h +473 -0
  28. data/ext/tcc/tcc-0.9.26/i386-gen.c +1096 -0
  29. data/ext/tcc/tcc-0.9.26/i386-tok.h +243 -0
  30. data/ext/tcc/tcc-0.9.26/il-gen.c +667 -0
  31. data/ext/tcc/tcc-0.9.26/il-opcodes.h +251 -0
  32. data/ext/tcc/tcc-0.9.26/include/float.h +57 -0
  33. data/ext/tcc/tcc-0.9.26/include/stdarg.h +41 -0
  34. data/ext/tcc/tcc-0.9.26/include/stdbool.h +10 -0
  35. data/ext/tcc/tcc-0.9.26/include/stddef.h +28 -0
  36. data/ext/tcc/tcc-0.9.26/include/tcclib.h +78 -0
  37. data/ext/tcc/tcc-0.9.26/include/varargs.h +12 -0
  38. data/ext/tcc/tcc-0.9.26/lib/Makefile +102 -0
  39. data/ext/tcc/tcc-0.9.26/lib/alloca86-bt.S +47 -0
  40. data/ext/tcc/tcc-0.9.26/lib/alloca86.S +35 -0
  41. data/ext/tcc/tcc-0.9.26/lib/alloca86_64.S +42 -0
  42. data/ext/tcc/tcc-0.9.26/lib/bcheck.c +875 -0
  43. data/ext/tcc/tcc-0.9.26/lib/libtcc1.c +691 -0
  44. data/ext/tcc/tcc-0.9.26/libtcc.c +1941 -0
  45. data/ext/tcc/tcc-0.9.26/libtcc.h +103 -0
  46. data/ext/tcc/tcc-0.9.26/stab.def +234 -0
  47. data/ext/tcc/tcc-0.9.26/stab.h +17 -0
  48. data/ext/tcc/tcc-0.9.26/tcc-doc.html +2332 -0
  49. data/ext/tcc/tcc-0.9.26/tcc-doc.info +1151 -0
  50. data/ext/tcc/tcc-0.9.26/tcc-doc.texi +1268 -0
  51. data/ext/tcc/tcc-0.9.26/tcc.1 +415 -0
  52. data/ext/tcc/tcc-0.9.26/tcc.c +352 -0
  53. data/ext/tcc/tcc-0.9.26/tcc.h +1379 -0
  54. data/ext/tcc/tcc-0.9.26/tccasm.c +1118 -0
  55. data/ext/tcc/tcc-0.9.26/tcccoff.c +948 -0
  56. data/ext/tcc/tcc-0.9.26/tccelf.c +3129 -0
  57. data/ext/tcc/tcc-0.9.26/tccgen.c +5841 -0
  58. data/ext/tcc/tcc-0.9.26/tccpe.c +1887 -0
  59. data/ext/tcc/tcc-0.9.26/tccpp.c +3128 -0
  60. data/ext/tcc/tcc-0.9.26/tccrun.c +737 -0
  61. data/ext/tcc/tcc-0.9.26/tcctok.h +278 -0
  62. data/ext/tcc/tcc-0.9.26/tests/Makefile +199 -0
  63. data/ext/tcc/tcc-0.9.26/tests/asmtest.S +609 -0
  64. data/ext/tcc/tcc-0.9.26/tests/boundtest.c +233 -0
  65. data/ext/tcc/tcc-0.9.26/tests/gcctestsuite.sh +33 -0
  66. data/ext/tcc/tcc-0.9.26/tests/libtcc_test.c +76 -0
  67. data/ext/tcc/tcc-0.9.26/tests/tcctest.c +2713 -0
  68. data/ext/tcc/tcc-0.9.26/tests/tests2/00_assignment.c +18 -0
  69. data/ext/tcc/tcc-0.9.26/tests/tests2/00_assignment.expect +3 -0
  70. data/ext/tcc/tcc-0.9.26/tests/tests2/01_comment.c +14 -0
  71. data/ext/tcc/tcc-0.9.26/tests/tests2/01_comment.expect +5 -0
  72. data/ext/tcc/tcc-0.9.26/tests/tests2/02_printf.c +18 -0
  73. data/ext/tcc/tcc-0.9.26/tests/tests2/02_printf.expect +15 -0
  74. data/ext/tcc/tcc-0.9.26/tests/tests2/03_struct.c +31 -0
  75. data/ext/tcc/tcc-0.9.26/tests/tests2/03_struct.expect +6 -0
  76. data/ext/tcc/tcc-0.9.26/tests/tests2/04_for.c +15 -0
  77. data/ext/tcc/tcc-0.9.26/tests/tests2/04_for.expect +10 -0
  78. data/ext/tcc/tcc-0.9.26/tests/tests2/05_array.c +21 -0
  79. data/ext/tcc/tcc-0.9.26/tests/tests2/05_array.expect +10 -0
  80. data/ext/tcc/tcc-0.9.26/tests/tests2/06_case.c +29 -0
  81. data/ext/tcc/tcc-0.9.26/tests/tests2/06_case.expect +8 -0
  82. data/ext/tcc/tcc-0.9.26/tests/tests2/07_function.c +30 -0
  83. data/ext/tcc/tcc-0.9.26/tests/tests2/07_function.expect +4 -0
  84. data/ext/tcc/tcc-0.9.26/tests/tests2/08_while.c +24 -0
  85. data/ext/tcc/tcc-0.9.26/tests/tests2/08_while.expect +11 -0
  86. data/ext/tcc/tcc-0.9.26/tests/tests2/09_do_while.c +24 -0
  87. data/ext/tcc/tcc-0.9.26/tests/tests2/09_do_while.expect +11 -0
  88. data/ext/tcc/tcc-0.9.26/tests/tests2/10_pointer.c +40 -0
  89. data/ext/tcc/tcc-0.9.26/tests/tests2/10_pointer.expect +8 -0
  90. data/ext/tcc/tcc-0.9.26/tests/tests2/11_precedence.c +40 -0
  91. data/ext/tcc/tcc-0.9.26/tests/tests2/11_precedence.expect +15 -0
  92. data/ext/tcc/tcc-0.9.26/tests/tests2/12_hashdefine.c +14 -0
  93. data/ext/tcc/tcc-0.9.26/tests/tests2/12_hashdefine.expect +2 -0
  94. data/ext/tcc/tcc-0.9.26/tests/tests2/13_integer_literals.c +20 -0
  95. data/ext/tcc/tcc-0.9.26/tests/tests2/13_integer_literals.expect +5 -0
  96. data/ext/tcc/tcc-0.9.26/tests/tests2/14_if.c +21 -0
  97. data/ext/tcc/tcc-0.9.26/tests/tests2/14_if.expect +2 -0
  98. data/ext/tcc/tcc-0.9.26/tests/tests2/15_recursion.c +21 -0
  99. data/ext/tcc/tcc-0.9.26/tests/tests2/15_recursion.expect +10 -0
  100. data/ext/tcc/tcc-0.9.26/tests/tests2/16_nesting.c +21 -0
  101. data/ext/tcc/tcc-0.9.26/tests/tests2/16_nesting.expect +18 -0
  102. data/ext/tcc/tcc-0.9.26/tests/tests2/17_enum.c +29 -0
  103. data/ext/tcc/tcc-0.9.26/tests/tests2/17_enum.expect +3 -0
  104. data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.c +12 -0
  105. data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.expect +3 -0
  106. data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.h +1 -0
  107. data/ext/tcc/tcc-0.9.26/tests/tests2/19_pointer_arithmetic.c +28 -0
  108. data/ext/tcc/tcc-0.9.26/tests/tests2/19_pointer_arithmetic.expect +3 -0
  109. data/ext/tcc/tcc-0.9.26/tests/tests2/20_pointer_comparison.c +24 -0
  110. data/ext/tcc/tcc-0.9.26/tests/tests2/20_pointer_comparison.expect +6 -0
  111. data/ext/tcc/tcc-0.9.26/tests/tests2/21_char_array.c +33 -0
  112. data/ext/tcc/tcc-0.9.26/tests/tests2/21_char_array.expect +7 -0
  113. data/ext/tcc/tcc-0.9.26/tests/tests2/22_floating_point.c +50 -0
  114. data/ext/tcc/tcc-0.9.26/tests/tests2/22_floating_point.expect +16 -0
  115. data/ext/tcc/tcc-0.9.26/tests/tests2/23_type_coercion.c +54 -0
  116. data/ext/tcc/tcc-0.9.26/tests/tests2/23_type_coercion.expect +12 -0
  117. data/ext/tcc/tcc-0.9.26/tests/tests2/24_math_library.c +28 -0
  118. data/ext/tcc/tcc-0.9.26/tests/tests2/24_math_library.expect +18 -0
  119. data/ext/tcc/tcc-0.9.26/tests/tests2/25_quicksort.c +83 -0
  120. data/ext/tcc/tcc-0.9.26/tests/tests2/25_quicksort.expect +2 -0
  121. data/ext/tcc/tcc-0.9.26/tests/tests2/26_character_constants.c +17 -0
  122. data/ext/tcc/tcc-0.9.26/tests/tests2/26_character_constants.expect +8 -0
  123. data/ext/tcc/tcc-0.9.26/tests/tests2/27_sizeof.c +16 -0
  124. data/ext/tcc/tcc-0.9.26/tests/tests2/27_sizeof.expect +3 -0
  125. data/ext/tcc/tcc-0.9.26/tests/tests2/28_strings.c +46 -0
  126. data/ext/tcc/tcc-0.9.26/tests/tests2/28_strings.expect +19 -0
  127. data/ext/tcc/tcc-0.9.26/tests/tests2/29_array_address.c +13 -0
  128. data/ext/tcc/tcc-0.9.26/tests/tests2/29_array_address.expect +1 -0
  129. data/ext/tcc/tcc-0.9.26/tests/tests2/30_hanoi.c +122 -0
  130. data/ext/tcc/tcc-0.9.26/tests/tests2/30_hanoi.expect +71 -0
  131. data/ext/tcc/tcc-0.9.26/tests/tests2/31_args.c +14 -0
  132. data/ext/tcc/tcc-0.9.26/tests/tests2/31_args.expect +7 -0
  133. data/ext/tcc/tcc-0.9.26/tests/tests2/32_led.c +266 -0
  134. data/ext/tcc/tcc-0.9.26/tests/tests2/32_led.expect +4 -0
  135. data/ext/tcc/tcc-0.9.26/tests/tests2/33_ternary_op.c +15 -0
  136. data/ext/tcc/tcc-0.9.26/tests/tests2/33_ternary_op.expect +10 -0
  137. data/ext/tcc/tcc-0.9.26/tests/tests2/34_array_assignment.c +23 -0
  138. data/ext/tcc/tcc-0.9.26/tests/tests2/34_array_assignment.expect +2 -0
  139. data/ext/tcc/tcc-0.9.26/tests/tests2/35_sizeof.c +14 -0
  140. data/ext/tcc/tcc-0.9.26/tests/tests2/35_sizeof.expect +2 -0
  141. data/ext/tcc/tcc-0.9.26/tests/tests2/36_array_initialisers.c +21 -0
  142. data/ext/tcc/tcc-0.9.26/tests/tests2/36_array_initialisers.expect +20 -0
  143. data/ext/tcc/tcc-0.9.26/tests/tests2/37_sprintf.c +17 -0
  144. data/ext/tcc/tcc-0.9.26/tests/tests2/37_sprintf.expect +20 -0
  145. data/ext/tcc/tcc-0.9.26/tests/tests2/38_multiple_array_index.c +32 -0
  146. data/ext/tcc/tcc-0.9.26/tests/tests2/38_multiple_array_index.expect +4 -0
  147. data/ext/tcc/tcc-0.9.26/tests/tests2/39_typedef.c +31 -0
  148. data/ext/tcc/tcc-0.9.26/tests/tests2/39_typedef.expect +3 -0
  149. data/ext/tcc/tcc-0.9.26/tests/tests2/40_stdio.c +52 -0
  150. data/ext/tcc/tcc-0.9.26/tests/tests2/40_stdio.expect +27 -0
  151. data/ext/tcc/tcc-0.9.26/tests/tests2/41_hashif.c +85 -0
  152. data/ext/tcc/tcc-0.9.26/tests/tests2/41_hashif.expect +6 -0
  153. data/ext/tcc/tcc-0.9.26/tests/tests2/42_function_pointer.c +18 -0
  154. data/ext/tcc/tcc-0.9.26/tests/tests2/42_function_pointer.expect +2 -0
  155. data/ext/tcc/tcc-0.9.26/tests/tests2/43_void_param.c +15 -0
  156. data/ext/tcc/tcc-0.9.26/tests/tests2/43_void_param.expect +1 -0
  157. data/ext/tcc/tcc-0.9.26/tests/tests2/44_scoped_declarations.c +17 -0
  158. data/ext/tcc/tcc-0.9.26/tests/tests2/44_scoped_declarations.expect +1 -0
  159. data/ext/tcc/tcc-0.9.26/tests/tests2/45_empty_for.c +18 -0
  160. data/ext/tcc/tcc-0.9.26/tests/tests2/45_empty_for.expect +10 -0
  161. data/ext/tcc/tcc-0.9.26/tests/tests2/46_grep.c +564 -0
  162. data/ext/tcc/tcc-0.9.26/tests/tests2/47_switch_return.c +24 -0
  163. data/ext/tcc/tcc-0.9.26/tests/tests2/47_switch_return.expect +4 -0
  164. data/ext/tcc/tcc-0.9.26/tests/tests2/48_nested_break.c +26 -0
  165. data/ext/tcc/tcc-0.9.26/tests/tests2/48_nested_break.expect +1 -0
  166. data/ext/tcc/tcc-0.9.26/tests/tests2/49_bracket_evaluation.c +23 -0
  167. data/ext/tcc/tcc-0.9.26/tests/tests2/49_bracket_evaluation.expect +1 -0
  168. data/ext/tcc/tcc-0.9.26/tests/tests2/50_logical_second_arg.c +29 -0
  169. data/ext/tcc/tcc-0.9.26/tests/tests2/50_logical_second_arg.expect +20 -0
  170. data/ext/tcc/tcc-0.9.26/tests/tests2/51_static.c +30 -0
  171. data/ext/tcc/tcc-0.9.26/tests/tests2/51_static.expect +8 -0
  172. data/ext/tcc/tcc-0.9.26/tests/tests2/52_unnamed_enum.c +27 -0
  173. data/ext/tcc/tcc-0.9.26/tests/tests2/52_unnamed_enum.expect +9 -0
  174. data/ext/tcc/tcc-0.9.26/tests/tests2/54_goto.c +56 -0
  175. data/ext/tcc/tcc-0.9.26/tests/tests2/54_goto.expect +8 -0
  176. data/ext/tcc/tcc-0.9.26/tests/tests2/55_lshift_type.c +52 -0
  177. data/ext/tcc/tcc-0.9.26/tests/tests2/55_lshift_type.expect +1 -0
  178. data/ext/tcc/tcc-0.9.26/tests/tests2/LICENSE +37 -0
  179. data/ext/tcc/tcc-0.9.26/tests/tests2/Makefile +98 -0
  180. data/ext/tcc/tcc-0.9.26/texi2pod.pl +427 -0
  181. data/ext/tcc/tcc-0.9.26/win32/build-tcc.bat +60 -0
  182. data/ext/tcc/tcc-0.9.26/win32/examples/dll.c +12 -0
  183. data/ext/tcc/tcc-0.9.26/win32/examples/fib.c +23 -0
  184. data/ext/tcc/tcc-0.9.26/win32/examples/hello_dll.c +19 -0
  185. data/ext/tcc/tcc-0.9.26/win32/examples/hello_win.c +163 -0
  186. data/ext/tcc/tcc-0.9.26/win32/include/_mingw.h +139 -0
  187. data/ext/tcc/tcc-0.9.26/win32/include/assert.h +54 -0
  188. data/ext/tcc/tcc-0.9.26/win32/include/conio.h +409 -0
  189. data/ext/tcc/tcc-0.9.26/win32/include/ctype.h +281 -0
  190. data/ext/tcc/tcc-0.9.26/win32/include/dir.h +31 -0
  191. data/ext/tcc/tcc-0.9.26/win32/include/direct.h +68 -0
  192. data/ext/tcc/tcc-0.9.26/win32/include/dirent.h +135 -0
  193. data/ext/tcc/tcc-0.9.26/win32/include/dos.h +55 -0
  194. data/ext/tcc/tcc-0.9.26/win32/include/errno.h +75 -0
  195. data/ext/tcc/tcc-0.9.26/win32/include/excpt.h +123 -0
  196. data/ext/tcc/tcc-0.9.26/win32/include/fcntl.h +52 -0
  197. data/ext/tcc/tcc-0.9.26/win32/include/fenv.h +108 -0
  198. data/ext/tcc/tcc-0.9.26/win32/include/inttypes.h +297 -0
  199. data/ext/tcc/tcc-0.9.26/win32/include/io.h +418 -0
  200. data/ext/tcc/tcc-0.9.26/win32/include/limits.h +111 -0
  201. data/ext/tcc/tcc-0.9.26/win32/include/locale.h +91 -0
  202. data/ext/tcc/tcc-0.9.26/win32/include/malloc.h +175 -0
  203. data/ext/tcc/tcc-0.9.26/win32/include/math.h +777 -0
  204. data/ext/tcc/tcc-0.9.26/win32/include/mem.h +13 -0
  205. data/ext/tcc/tcc-0.9.26/win32/include/memory.h +40 -0
  206. data/ext/tcc/tcc-0.9.26/win32/include/process.h +176 -0
  207. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/conio_s.h +42 -0
  208. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/crtdbg_s.h +19 -0
  209. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/io_s.h +33 -0
  210. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/mbstring_s.h +52 -0
  211. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/search_s.h +25 -0
  212. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stdio_s.h +145 -0
  213. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stdlib_s.h +67 -0
  214. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stralign_s.h +30 -0
  215. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/string_s.h +41 -0
  216. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/sys/timeb_s.h +34 -0
  217. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/tchar_s.h +266 -0
  218. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/time_s.h +61 -0
  219. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/wchar_s.h +128 -0
  220. data/ext/tcc/tcc-0.9.26/win32/include/setjmp.h +160 -0
  221. data/ext/tcc/tcc-0.9.26/win32/include/share.h +28 -0
  222. data/ext/tcc/tcc-0.9.26/win32/include/signal.h +63 -0
  223. data/ext/tcc/tcc-0.9.26/win32/include/stdint.h +209 -0
  224. data/ext/tcc/tcc-0.9.26/win32/include/stdio.h +429 -0
  225. data/ext/tcc/tcc-0.9.26/win32/include/stdlib.h +580 -0
  226. data/ext/tcc/tcc-0.9.26/win32/include/string.h +164 -0
  227. data/ext/tcc/tcc-0.9.26/win32/include/sys/fcntl.h +13 -0
  228. data/ext/tcc/tcc-0.9.26/win32/include/sys/file.h +14 -0
  229. data/ext/tcc/tcc-0.9.26/win32/include/sys/locking.h +30 -0
  230. data/ext/tcc/tcc-0.9.26/win32/include/sys/stat.h +290 -0
  231. data/ext/tcc/tcc-0.9.26/win32/include/sys/time.h +69 -0
  232. data/ext/tcc/tcc-0.9.26/win32/include/sys/timeb.h +133 -0
  233. data/ext/tcc/tcc-0.9.26/win32/include/sys/types.h +118 -0
  234. data/ext/tcc/tcc-0.9.26/win32/include/sys/unistd.h +14 -0
  235. data/ext/tcc/tcc-0.9.26/win32/include/sys/utime.h +146 -0
  236. data/ext/tcc/tcc-0.9.26/win32/include/tchar.h +1102 -0
  237. data/ext/tcc/tcc-0.9.26/win32/include/time.h +287 -0
  238. data/ext/tcc/tcc-0.9.26/win32/include/vadefs.h +11 -0
  239. data/ext/tcc/tcc-0.9.26/win32/include/values.h +4 -0
  240. data/ext/tcc/tcc-0.9.26/win32/include/wchar.h +871 -0
  241. data/ext/tcc/tcc-0.9.26/win32/include/wctype.h +172 -0
  242. data/ext/tcc/tcc-0.9.26/win32/include/winapi/basetsd.h +149 -0
  243. data/ext/tcc/tcc-0.9.26/win32/include/winapi/basetyps.h +85 -0
  244. data/ext/tcc/tcc-0.9.26/win32/include/winapi/guiddef.h +151 -0
  245. data/ext/tcc/tcc-0.9.26/win32/include/winapi/intrin.h +11 -0
  246. data/ext/tcc/tcc-0.9.26/win32/include/winapi/poppack.h +8 -0
  247. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack1.h +8 -0
  248. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack2.h +8 -0
  249. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack4.h +8 -0
  250. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack8.h +8 -0
  251. data/ext/tcc/tcc-0.9.26/win32/include/winapi/reason.h +80 -0
  252. data/ext/tcc/tcc-0.9.26/win32/include/winapi/specstrings.h +7 -0
  253. data/ext/tcc/tcc-0.9.26/win32/include/winapi/stralign.h +154 -0
  254. data/ext/tcc/tcc-0.9.26/win32/include/winapi/tvout.h +79 -0
  255. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winbase.h +2951 -0
  256. data/ext/tcc/tcc-0.9.26/win32/include/winapi/wincon.h +301 -0
  257. data/ext/tcc/tcc-0.9.26/win32/include/winapi/windef.h +293 -0
  258. data/ext/tcc/tcc-0.9.26/win32/include/winapi/windows.h +123 -0
  259. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winerror.h +3166 -0
  260. data/ext/tcc/tcc-0.9.26/win32/include/winapi/wingdi.h +4080 -0
  261. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnetwk.h +476 -0
  262. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnls.h +765 -0
  263. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnt.h +5770 -0
  264. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winreg.h +272 -0
  265. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winuser.h +5651 -0
  266. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winver.h +160 -0
  267. data/ext/tcc/tcc-0.9.26/win32/lib/chkstk.S +191 -0
  268. data/ext/tcc/tcc-0.9.26/win32/lib/crt1.c +34 -0
  269. data/ext/tcc/tcc-0.9.26/win32/lib/dllcrt1.c +13 -0
  270. data/ext/tcc/tcc-0.9.26/win32/lib/dllmain.c +9 -0
  271. data/ext/tcc/tcc-0.9.26/win32/lib/gdi32.def +337 -0
  272. data/ext/tcc/tcc-0.9.26/win32/lib/kernel32.def +765 -0
  273. data/ext/tcc/tcc-0.9.26/win32/lib/msvcrt.def +1399 -0
  274. data/ext/tcc/tcc-0.9.26/win32/lib/user32.def +654 -0
  275. data/ext/tcc/tcc-0.9.26/win32/lib/wincrt1.c +64 -0
  276. data/ext/tcc/tcc-0.9.26/win32/tcc-win32.txt +156 -0
  277. data/ext/tcc/tcc-0.9.26/win32/tools/tiny_impdef.c +243 -0
  278. data/ext/tcc/tcc-0.9.26/win32/tools/tiny_libmaker.c +258 -0
  279. data/ext/tcc/tcc-0.9.26/x86_64-asm.h +448 -0
  280. data/ext/tcc/tcc-0.9.26/x86_64-gen.c +1701 -0
  281. data/lib/tcc.rb +291 -0
  282. data/tcc.gemspec +15 -0
  283. metadata +343 -0
@@ -0,0 +1,28 @@
1
+ # Automatically generated by configure - do not modify
2
+ prefix=/home/quark/src/github/quark-zju/libtcc-ruby/ext/tcc/build
3
+ bindir=$(DESTDIR)/home/quark/src/github/quark-zju/libtcc-ruby/ext/tcc/build/bin
4
+ tccdir=$(DESTDIR)/home/quark/src/github/quark-zju/libtcc-ruby/ext/tcc/build/lib/tcc
5
+ libdir=$(DESTDIR)/home/quark/src/github/quark-zju/libtcc-ruby/ext/tcc/build/lib
6
+ ln_libdir=/home/quark/src/github/quark-zju/libtcc-ruby/ext/tcc/build/lib
7
+ includedir=$(DESTDIR)/home/quark/src/github/quark-zju/libtcc-ruby/ext/tcc/build/include
8
+ mandir=$(DESTDIR)/home/quark/src/github/quark-zju/libtcc-ruby/ext/tcc/build/share/man
9
+ infodir=$(DESTDIR)/home/quark/src/github/quark-zju/libtcc-ruby/ext/tcc/build/share/info
10
+ docdir=$(DESTDIR)/home/quark/src/github/quark-zju/libtcc-ruby/ext/tcc/build/share/doc/tcc
11
+ CC=gcc
12
+ GCC_MAJOR=4
13
+ GCC_MINOR=8
14
+ HOST_CC=gcc
15
+ AR=ar
16
+ STRIP=strip -s -R .comment -R .note
17
+ CFLAGS=-Wall -g -O2
18
+ LDFLAGS=
19
+ LIBSUF=.a
20
+ EXESUF=
21
+ NATIVE_DEFINES+=-DCONFIG_LDDIR="\"lib64\""
22
+ ARCH=x86-64
23
+ TARGETOS=Linux
24
+ DISABLE_STATIC=yes
25
+ VERSION=0.9.26
26
+ SRC_PATH=/home/quark/src/github/quark-zju/libtcc-ruby/ext/tcc/tcc-0.9.26
27
+ top_srcdir=$(TOP)
28
+ top_builddir=$(TOP)
@@ -0,0 +1 @@
1
+ @set VERSION 0.9.26
@@ -0,0 +1,540 @@
1
+ #!/bin/sh
2
+ #
3
+ # tcc configure script (c) 2003 Fabrice Bellard
4
+
5
+ # set temporary file name
6
+ # if test ! -z "$TMPDIR" ; then
7
+ # TMPDIR1="${TMPDIR}"
8
+ # elif test ! -z "$TEMPDIR" ; then
9
+ # TMPDIR1="${TEMPDIR}"
10
+ # else
11
+ # TMPDIR1="/tmp"
12
+ # fi
13
+ #
14
+ # bashism: TMPN="${TMPDIR1}/tcc-conf-${RANDOM}-$$-${RANDOM}.c"
15
+
16
+ TMPN="./conftest-$$"
17
+ TMPH=$TMPN.h
18
+
19
+ # default parameters
20
+ build_cross="no"
21
+ use_libgcc="no"
22
+ prefix=""
23
+ execprefix=""
24
+ bindir=""
25
+ libdir=""
26
+ tccdir=""
27
+ includedir=""
28
+ mandir=""
29
+ infodir=""
30
+ sysroot=""
31
+ cross_prefix=""
32
+ cc="gcc"
33
+ host_cc="gcc"
34
+ ar="ar"
35
+ strip="strip"
36
+ cygwin="no"
37
+ gprof="no"
38
+ bigendian="no"
39
+ mingw32="no"
40
+ LIBSUF=".a"
41
+ EXESUF=""
42
+ tcc_sysincludepaths=""
43
+ tcc_libpaths=""
44
+ tcc_crtprefix=""
45
+ tcc_elfinterp=""
46
+ tcc_lddir=
47
+ confvars=
48
+
49
+ cpu=`uname -m`
50
+
51
+ # OS specific
52
+ targetos=`uname -s`
53
+ case $targetos in
54
+ MINGW32*) mingw32=yes;;
55
+ DragonFly) noldl=yes;;
56
+ OpenBSD) noldl=yes;;
57
+ *) ;;
58
+ esac
59
+
60
+ # find source path
61
+ # XXX: we assume an absolute path is given when launching configure,
62
+ # except in './configure' case.
63
+ source_path=${0%configure}
64
+ source_path=${source_path%/}
65
+ source_path_used="yes"
66
+ if test -z "$source_path" -o "$source_path" = "." ; then
67
+ source_path=`pwd`
68
+ source_path_used="no"
69
+ fi
70
+
71
+ case "$cpu" in
72
+ i386|i486|i586|i686|i86pc|BePC|i686-AT386)
73
+ cpu="x86"
74
+ ;;
75
+ x86_64)
76
+ cpu="x86-64"
77
+ ;;
78
+ arm*)
79
+ case "$cpu" in
80
+ arm|armv4l)
81
+ cpuver=4
82
+ ;;
83
+ armv5tel|armv5tejl)
84
+ cpuver=5
85
+ ;;
86
+ armv6j|armv6l)
87
+ cpuver=6
88
+ ;;
89
+ armv7a|armv7l)
90
+ cpuver=7
91
+ ;;
92
+ esac
93
+ cpu="armv4l"
94
+ ;;
95
+ alpha)
96
+ cpu="alpha"
97
+ ;;
98
+ "Power Macintosh"|ppc|ppc64)
99
+ cpu="powerpc"
100
+ ;;
101
+ mips)
102
+ cpu="mips"
103
+ ;;
104
+ s390)
105
+ cpu="s390"
106
+ ;;
107
+ *)
108
+ cpu="unknown"
109
+ ;;
110
+ esac
111
+
112
+ for opt do
113
+ eval opt=\"$opt\"
114
+ case "$opt" in
115
+ --prefix=*) prefix=`echo $opt | cut -d '=' -f 2`
116
+ ;;
117
+ --exec-prefix=*) execprefix=`echo $opt | cut -d '=' -f 2`
118
+ ;;
119
+ --tccdir=*) tccdir=`echo $opt | cut -d '=' -f 2`
120
+ ;;
121
+ --bindir=*) bindir=`echo $opt | cut -d '=' -f 2`
122
+ ;;
123
+ --libdir=*) libdir=`echo $opt | cut -d '=' -f 2`
124
+ ;;
125
+ --includedir=*) includedir=`echo $opt | cut -d '=' -f 2`
126
+ ;;
127
+ --sharedir=*) sharedir=`echo $opt | cut -d '=' -f 2`
128
+ ;;
129
+ --mandir=*) mandir=`echo $opt | cut -d '=' -f 2`
130
+ ;;
131
+ --infodir=*) infodir=`echo $opt | cut -d '=' -f 2`
132
+ ;;
133
+ --docdir=*) docdir=`echo $opt | cut -d '=' -f 2`
134
+ ;;
135
+ --sysroot=*) sysroot=`echo $opt | cut -d '=' -f 2`
136
+ ;;
137
+ --source-path=*) source_path=`echo $opt | cut -d '=' -f 2`
138
+ ;;
139
+ --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2`
140
+ ;;
141
+ --cc=*) cc=`echo $opt | cut -d '=' -f 2`
142
+ ;;
143
+ --extra-cflags=*) CFLAGS="${opt#--extra-cflags=}"
144
+ ;;
145
+ --extra-ldflags=*) LDFLAGS="${opt#--extra-ldflags=}"
146
+ ;;
147
+ --extra-libs=*) extralibs=${opt#--extra-libs=}
148
+ ;;
149
+ --sysincludepaths=*) tcc_sysincludepaths=`echo $opt | cut -d '=' -f 2`
150
+ ;;
151
+ --libpaths=*) tcc_libpaths=`echo $opt | cut -d '=' -f 2`
152
+ ;;
153
+ --crtprefix=*) tcc_crtprefix=`echo $opt | cut -d '=' -f 2`
154
+ ;;
155
+ --elfinterp=*) tcc_elfinterp=`echo $opt | cut -d '=' -f 2`
156
+ ;;
157
+ --cpu=*) cpu=`echo $opt | cut -d '=' -f 2`
158
+ ;;
159
+ --enable-gprof) gprof="yes"
160
+ ;;
161
+ --enable-mingw32) mingw32="yes" ; cross_prefix="i686-pc-mingw32-" ; cpu=x86
162
+ ;;
163
+ --enable-cygwin) mingw32="yes" ; cygwin="yes" ; cross_prefix="mingw32-" ; cpu=x86
164
+ ;;
165
+ --enable-cross) build_cross="yes"
166
+ ;;
167
+ --disable-static) disable_static="yes"
168
+ ;;
169
+ --disable-rpath) disable_rpath="yes"
170
+ ;;
171
+ --strip-binaries) strip_binaries="yes"
172
+ ;;
173
+ --with-libgcc) use_libgcc="yes"
174
+ ;;
175
+ --with-selinux) have_selinux="yes"
176
+ ;;
177
+ --help|-h) show_help="yes"
178
+ ;;
179
+ *) echo "configure: WARNING: unrecognized option $opt"
180
+ ;;
181
+ esac
182
+ done
183
+
184
+ # Checking for CFLAGS
185
+ if test -z "$CFLAGS"; then
186
+ CFLAGS="-Wall -g -O2"
187
+ fi
188
+
189
+ if test "$mingw32" = "yes" ; then
190
+ if test x"$tccdir" = x""; then
191
+ tccdir="tcc"
192
+ fi
193
+ if test -z "$prefix" ; then
194
+ prefix="C:/Program Files/${tccdir}"
195
+ fi
196
+ if test -z "$sharedir" ; then
197
+ sharedir="${prefix}"
198
+ fi
199
+ execprefix="$prefix"
200
+ bindir="${prefix}"
201
+ tccdir="${prefix}"
202
+ libdir="${prefix}/lib"
203
+ docdir="${sharedir}/doc"
204
+ mandir="${sharedir}/man"
205
+ infodir="${sharedir}/info"
206
+ LIBSUF=".lib"
207
+ EXESUF=".exe"
208
+ else
209
+ if test -z "$prefix" ; then
210
+ prefix="/usr/local"
211
+ fi
212
+ if test -z "$sharedir" ; then
213
+ sharedir="${prefix}/share"
214
+ fi
215
+ if test x"$execprefix" = x""; then
216
+ execprefix="${prefix}"
217
+ fi
218
+ if test x"$libdir" = x""; then
219
+ libdir="${execprefix}/lib"
220
+ fi
221
+ if test x"$bindir" = x""; then
222
+ bindir="${execprefix}/bin"
223
+ fi
224
+ if test x"$tccdir" = x""; then
225
+ tccdir="tcc"
226
+ fi
227
+ if test x"$docdir" = x""; then
228
+ docdir="${sharedir}/doc/${tccdir}"
229
+ fi
230
+ if test x"$mandir" = x""; then
231
+ mandir="${sharedir}/man"
232
+ fi
233
+ if test x"$infodir" = x""; then
234
+ infodir="${sharedir}/info"
235
+ fi
236
+ tccdir="${libdir}/${tccdir}"
237
+ fi # mingw32
238
+
239
+ if test x"$includedir" = x""; then
240
+ includedir="${prefix}/include"
241
+ fi
242
+
243
+ if test x"$show_help" = "xyes" ; then
244
+ cat << EOF
245
+ Usage: configure [options]
246
+ Options: [defaults in brackets after descriptions]
247
+
248
+ Standard options:
249
+ --help print this message
250
+ --prefix=PREFIX install in PREFIX [$prefix]
251
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
252
+ [same as prefix]
253
+ --bindir=DIR user executables in DIR [EPREFIX/bin]
254
+ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
255
+ --tccdir=DIR installation directory [EPREFIX/lib/tcc]
256
+ --includedir=DIR C header files in DIR [PREFIX/include]
257
+ --sharedir=DIR documentation root DIR [PREFIX/share]
258
+ --docdir=DIR documentation in DIR [SHAREDIR/doc/tcc]
259
+ --mandir=DIR man documentation in DIR [SHAREDIR/man]
260
+ --infodir=DIR info documentation in DIR [SHAREDIR/info]
261
+
262
+ Advanced options (experts only):
263
+ --source-path=PATH path of source code [$source_path]
264
+ --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]
265
+ --sysroot=PREFIX prepend PREFIX to library/include paths []
266
+ --cc=CC use C compiler CC [$cc]
267
+ --extra-cflags= specify compiler flags [$CFLAGS]
268
+ --extra-ldflags= specify linker options []
269
+ --strip-binaries strip symbol tables from resulting binaries
270
+ --disable-static make libtcc.so instead of libtcc.a
271
+ --disable-rpath disable use of -rpath with the above
272
+ --with-libgcc use /lib/libgcc_s.so.1 instead of libtcc.a
273
+ --enable-mingw32 build windows version on linux with mingw32
274
+ --enable-cygwin build windows version on windows with cygwin
275
+ --enable-cross build cross compilers
276
+ --with-selinux use mmap for exec mem [needs writable /tmp]
277
+ --sysincludepaths=... specify system include paths, colon separated
278
+ --libpaths=... specify system library paths, colon separated
279
+ --crtprefix=... specify locations of crt?.o, colon separated
280
+ --elfinterp=... specify elf interpreter
281
+ EOF
282
+ #echo "NOTE: The object files are build at the place where configure is launched"
283
+ exit 1
284
+ fi
285
+
286
+ cc="${cross_prefix}${cc}"
287
+ ar="${cross_prefix}${ar}"
288
+ strip="${cross_prefix}${strip}"
289
+
290
+ CONFTEST=./conftest$EXESUF
291
+
292
+ if test -z "$cross_prefix" ; then
293
+ if ! $cc -o $CONFTEST $source_path/conftest.c 2>/dev/null ; then
294
+ echo "configure: error: '$cc' failed to compile conftest.c."
295
+ else
296
+ bigendian="$($CONFTEST bigendian)"
297
+ gcc_major="$($CONFTEST version)"
298
+ gcc_minor="$($CONFTEST minor)"
299
+ if test "$mingw32" = "no" ; then
300
+ triplet="$($CONFTEST triplet)"
301
+ if test -f "/usr/lib/$triplet/crti.o" ; then
302
+ tcc_lddir="lib/$triplet"
303
+ multiarch_triplet="$triplet"
304
+ elif test -f "/usr/lib64/crti.o" ; then
305
+ tcc_lddir="lib64"
306
+ fi
307
+
308
+ if test "$cpu" = "armv4l" ; then
309
+ if test "${triplet%eabihf}" != "$triplet" ; then
310
+ confvars="$confvars arm_eabihf"
311
+ elif test "${triplet%eabi}" != "$triplet" ; then
312
+ confvars="$confvars arm_eabi"
313
+ fi
314
+ if grep -s -q "^Features.* \(vfp\|iwmmxt\) " /proc/cpuinfo ; then
315
+ confvars="$confvars arm_vfp"
316
+ fi
317
+ fi
318
+
319
+ # multiarch_triplet=${libc_dir#*/}
320
+ # multiarch_triplet=${multiarch_triplet%/}
321
+ # tcc_lddir="${libc_dir%%/*}"
322
+ # if test -n "$multiarch_triplet" ; then
323
+ # tcc_lddir="$tcc_lddir/$multiarch_triplet"
324
+ # fi
325
+
326
+ if test -f "/lib/ld-uClibc.so.0" ; then
327
+ confvars="$confvars uClibc"
328
+ fi
329
+ # gr: maybe for after the release:
330
+ # tcc_elfinterp="$(ldd $CONFTEST | grep 'ld.*.so' | sed 's,\s*\(\S\+\).*,\1,')"
331
+ # echo "elfinterp $tcc_elfinterp"
332
+
333
+ fi
334
+ fi
335
+ else
336
+ # if cross compiling, cannot launch a program, so make a static guess
337
+ case $cpu in
338
+ powerpc|mips|s390) bigendian=yes;;
339
+ esac
340
+ fi
341
+
342
+ cat <<EOF
343
+ Binary directory $bindir
344
+ TinyCC directory $tccdir
345
+ Library directory $libdir
346
+ Include directory $includedir
347
+ Manual directory $mandir
348
+ Info directory $infodir
349
+ Doc directory $docdir
350
+ Target root prefix $sysroot
351
+ Source path $source_path
352
+ C compiler $cc
353
+ Target OS $targetos
354
+ CPU $cpu
355
+ Big Endian $bigendian
356
+ gprof enabled $gprof
357
+ cross compilers $build_cross
358
+ use libgcc $use_libgcc
359
+ EOF
360
+
361
+ echo "Creating config.mak and config.h"
362
+
363
+ cat >config.mak <<EOF
364
+ # Automatically generated by configure - do not modify
365
+ prefix=$prefix
366
+ bindir=\$(DESTDIR)$bindir
367
+ tccdir=\$(DESTDIR)$tccdir
368
+ libdir=\$(DESTDIR)$libdir
369
+ ln_libdir=$libdir
370
+ includedir=\$(DESTDIR)$includedir
371
+ mandir=\$(DESTDIR)$mandir
372
+ infodir=\$(DESTDIR)$infodir
373
+ docdir=\$(DESTDIR)$docdir
374
+ CC=$cc
375
+ GCC_MAJOR=$gcc_major
376
+ GCC_MINOR=$gcc_minor
377
+ HOST_CC=$host_cc
378
+ AR=$ar
379
+ STRIP=$strip -s -R .comment -R .note
380
+ CFLAGS=$CFLAGS
381
+ LDFLAGS=$LDFLAGS
382
+ LIBSUF=$LIBSUF
383
+ EXESUF=$EXESUF
384
+ EOF
385
+
386
+ print_inc() {
387
+ if test -n "$2"; then
388
+ echo "#ifndef $1" >> $TMPH
389
+ echo "# define $1 \"$2\"" >> $TMPH
390
+ echo "#endif" >> $TMPH
391
+ fi
392
+ }
393
+ print_mak() {
394
+ if test -n "$2"; then
395
+ echo "NATIVE_DEFINES+=-D$1=\"\\\"$2\\\"\"" >> config.mak
396
+ fi
397
+ }
398
+
399
+ echo "/* Automatically generated by configure - do not modify */" > $TMPH
400
+
401
+ print_inc CONFIG_SYSROOT "$sysroot"
402
+ print_inc CONFIG_TCCDIR "$tccdir"
403
+ print_mak CONFIG_TCC_SYSINCLUDEPATHS "$tcc_sysincludepaths"
404
+ print_mak CONFIG_TCC_LIBPATHS "$tcc_libpaths"
405
+ print_mak CONFIG_TCC_CRTPREFIX "$tcc_crtprefix"
406
+ print_mak CONFIG_TCC_ELFINTERP "$tcc_elfinterp"
407
+ print_mak CONFIG_LDDIR "$tcc_lddir"
408
+ print_mak CONFIG_MULTIARCHDIR "$multiarch_triplet"
409
+
410
+ echo "#define GCC_MAJOR $gcc_major" >> $TMPH
411
+ echo "#define GCC_MINOR $gcc_minor" >> $TMPH
412
+
413
+ if test "$cpu" = "x86" ; then
414
+ echo "ARCH=i386" >> config.mak
415
+ echo "#define HOST_I386 1" >> $TMPH
416
+ elif test "$cpu" = "x86-64" ; then
417
+ echo "ARCH=x86-64" >> config.mak
418
+ echo "#define HOST_X86_64 1" >> $TMPH
419
+ elif test "$cpu" = "armv4l" ; then
420
+ echo "ARCH=arm" >> config.mak
421
+ echo "#define HOST_ARM 1" >> $TMPH
422
+ echo "#define TCC_ARM_VERSION $cpuver" >> $TMPH
423
+ elif test "$cpu" = "powerpc" ; then
424
+ echo "ARCH=ppc" >> config.mak
425
+ echo "#define HOST_PPC 1" >> $TMPH
426
+ elif test "$cpu" = "mips" ; then
427
+ echo "ARCH=mips" >> config.mak
428
+ echo "#define HOST_MIPS 1" >> $TMPH
429
+ elif test "$cpu" = "s390" ; then
430
+ echo "ARCH=s390" >> config.mak
431
+ echo "#define HOST_S390 1" >> $TMPH
432
+ elif test "$cpu" = "alpha" ; then
433
+ echo "ARCH=alpha" >> config.mak
434
+ echo "#define HOST_ALPHA 1" >> $TMPH
435
+ else
436
+ echo "Unsupported CPU"
437
+ exit 1
438
+ fi
439
+
440
+ echo "TARGETOS=$targetos" >> config.mak
441
+
442
+ for v in $confvars ; do
443
+ echo "CONFIG_$v=yes" >> config.mak
444
+ done
445
+ if test "$noldl" = "yes" ; then
446
+ echo "CONFIG_NOLDL=yes" >> config.mak
447
+ fi
448
+ if test "$mingw32" = "yes" ; then
449
+ echo "CONFIG_WIN32=yes" >> config.mak
450
+ echo "#define CONFIG_WIN32 1" >> $TMPH
451
+ fi
452
+ if test "$cygwin" = "yes" ; then
453
+ echo "#ifndef _WIN32" >> $TMPH
454
+ echo "# define _WIN32" >> $TMPH
455
+ echo "#endif" >> $TMPH
456
+ echo "AR=ar" >> config.mak
457
+ fi
458
+ if test "$bigendian" = "yes" ; then
459
+ echo "WORDS_BIGENDIAN=yes" >> config.mak
460
+ echo "#define WORDS_BIGENDIAN 1" >> $TMPH
461
+ fi
462
+ if test "$gprof" = "yes" ; then
463
+ echo "TARGET_GPROF=yes" >> config.mak
464
+ echo "#define HAVE_GPROF 1" >> $TMPH
465
+ fi
466
+ if test "$build_cross" = "yes" ; then
467
+ echo "CONFIG_CROSS=yes" >> config.mak
468
+ fi
469
+ if test "$disable_static" = "yes" ; then
470
+ echo "DISABLE_STATIC=yes" >> config.mak
471
+ fi
472
+ if test "$disable_rpath" = "yes" ; then
473
+ echo "DISABLE_RPATH=yes" >> config.mak
474
+ fi
475
+ if test "$strip_binaries" = "yes" ; then
476
+ echo "STRIP_BINARIES=yes" >> config.mak
477
+ fi
478
+ if test "$use_libgcc" = "yes" ; then
479
+ echo "#define CONFIG_USE_LIBGCC" >> $TMPH
480
+ echo "CONFIG_USE_LIBGCC=yes" >> config.mak
481
+ fi
482
+ if test "$have_selinux" = "yes" ; then
483
+ echo "#define HAVE_SELINUX" >> $TMPH
484
+ echo "HAVE_SELINUX=yes" >> config.mak
485
+ fi
486
+
487
+ version=`head $source_path/VERSION`
488
+ echo "VERSION=$version" >>config.mak
489
+ echo "#define TCC_VERSION \"$version\"" >> $TMPH
490
+ echo "@set VERSION $version" > config.texi
491
+ echo "SRC_PATH=$source_path" >>config.mak
492
+
493
+ if test "$source_path_used" = "yes" ; then
494
+ case $source_path in
495
+ /*) echo "top_srcdir=$source_path";;
496
+ *) echo "top_srcdir=\$(TOP)/$source_path";;
497
+ esac >>config.mak
498
+ else
499
+ echo 'top_srcdir=$(TOP)' >>config.mak
500
+ fi
501
+ echo 'top_builddir=$(TOP)' >>config.mak
502
+
503
+ diff $TMPH config.h >/dev/null 2>&1
504
+ if test $? -ne 0 ; then
505
+ mv -f $TMPH config.h
506
+ else
507
+ echo "config.h is unchanged"
508
+ fi
509
+
510
+ rm -f $TMPN* $CONFTEST
511
+
512
+ # ---------------------------------------------------------------------------
513
+ # build tree in object directory if source path is different from current one
514
+
515
+ fn_makelink()
516
+ {
517
+ tgt=$1/$2
518
+ case $2 in
519
+ */*) dn=${2%/*}
520
+ test -d $dn || mkdir -p $dn
521
+ case $1 in
522
+ /*) ;;
523
+ *) while test $dn ; do
524
+ tgt=../$tgt; dn=${dn#${dn%%/*}}; dn=${dn#/}
525
+ done
526
+ ;;
527
+ esac
528
+ ;;
529
+ esac
530
+ ln -sfn $tgt $2
531
+ }
532
+
533
+ if test "$source_path_used" = "yes" ; then
534
+ FILES="Makefile lib/Makefile tests/Makefile tests/tests2/Makefile"
535
+ for f in $FILES ; do
536
+ fn_makelink $source_path $f
537
+ done
538
+ fi
539
+
540
+ # ---------------------------------------------------------------------------