seal 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (421) hide show
  1. data/.yardopts +1 -0
  2. data/LICENSE +13 -0
  3. data/README.md +265 -0
  4. data/ext/seal/extconf.rb +45 -0
  5. data/include/al/al.h +724 -0
  6. data/include/al/alc.h +277 -0
  7. data/include/al/efx-presets.h +402 -0
  8. data/include/al/efx.h +758 -0
  9. data/include/mpg123/mpg123.h +1034 -0
  10. data/include/ogg/config_types.h +25 -0
  11. data/include/ogg/ogg.h +210 -0
  12. data/include/ogg/os_types.h +147 -0
  13. data/include/seal.h +23 -0
  14. data/include/seal/buf.h +143 -0
  15. data/include/seal/core.h +95 -0
  16. data/include/seal/efs.h +112 -0
  17. data/include/seal/err.h +93 -0
  18. data/include/seal/fmt.h +58 -0
  19. data/include/seal/listener.h +103 -0
  20. data/include/seal/raw.h +86 -0
  21. data/include/seal/rvb.h +520 -0
  22. data/include/seal/src.h +413 -0
  23. data/include/seal/stream.h +81 -0
  24. data/include/vorbis/codec.h +243 -0
  25. data/include/vorbis/vorbisfile.h +206 -0
  26. data/mpg123/AUTHORS +150 -0
  27. data/mpg123/COPYING +773 -0
  28. data/mpg123/ChangeLog +3 -0
  29. data/mpg123/INSTALL +111 -0
  30. data/mpg123/Makefile.am +99 -0
  31. data/mpg123/Makefile.in +1043 -0
  32. data/mpg123/NEWS +1200 -0
  33. data/mpg123/NEWS.libmpg123 +133 -0
  34. data/mpg123/README +203 -0
  35. data/mpg123/TODO +38 -0
  36. data/mpg123/aclocal.m4 +1168 -0
  37. data/mpg123/build/config.guess +1530 -0
  38. data/mpg123/build/config.sub +1782 -0
  39. data/mpg123/build/depcomp +707 -0
  40. data/mpg123/build/install-sh +527 -0
  41. data/mpg123/build/ltmain.sh +9655 -0
  42. data/mpg123/build/missing +330 -0
  43. data/mpg123/configure +20267 -0
  44. data/mpg123/configure.ac +2178 -0
  45. data/mpg123/doc/ACCURACY +2 -0
  46. data/mpg123/doc/BENCHMARKING +110 -0
  47. data/mpg123/doc/BUGS +3 -0
  48. data/mpg123/doc/CONTACT +17 -0
  49. data/mpg123/doc/LICENSE +22 -0
  50. data/mpg123/doc/Makefile.am +32 -0
  51. data/mpg123/doc/Makefile.in +490 -0
  52. data/mpg123/doc/PATENTS +39 -0
  53. data/mpg123/doc/README.3DNOW +56 -0
  54. data/mpg123/doc/README.gain +171 -0
  55. data/mpg123/doc/README.remote +218 -0
  56. data/mpg123/doc/ROAD_TO_LGPL +270 -0
  57. data/mpg123/doc/THANKS +13 -0
  58. data/mpg123/doc/TODO +63 -0
  59. data/mpg123/doc/doxy_examples.c +21 -0
  60. data/mpg123/doc/doxygen.conf +41 -0
  61. data/mpg123/doc/doxyhead.xhtml +12 -0
  62. data/mpg123/doc/examples/dump_seekindex.c +41 -0
  63. data/mpg123/doc/examples/extract_frames.c +92 -0
  64. data/mpg123/doc/examples/feedseek.c +238 -0
  65. data/mpg123/doc/examples/id3dump.c +178 -0
  66. data/mpg123/doc/examples/mpg123_to_wav.c +118 -0
  67. data/mpg123/doc/examples/mpglib.c +92 -0
  68. data/mpg123/doc/examples/scan.c +47 -0
  69. data/mpg123/doc/libmpg123_speed.txt +84 -0
  70. data/mpg123/equalize.dat +37 -0
  71. data/mpg123/libmpg123.pc.in +11 -0
  72. data/mpg123/m4/addrconfig.m4 +34 -0
  73. data/mpg123/m4/libtool.m4 +7982 -0
  74. data/mpg123/m4/ltoptions.m4 +384 -0
  75. data/mpg123/m4/ltsugar.m4 +123 -0
  76. data/mpg123/m4/ltversion.m4 +23 -0
  77. data/mpg123/m4/lt~obsolete.m4 +98 -0
  78. data/mpg123/makedll.sh +19 -0
  79. data/mpg123/man1/mpg123.1 +512 -0
  80. data/mpg123/mpg123.spec +68 -0
  81. data/mpg123/mpg123.spec.in +68 -0
  82. data/mpg123/ports/MSVC++/2005/libmpg123/libmpg123.vcproj +741 -0
  83. data/mpg123/ports/MSVC++/2008/dump_seekindex/dump_seekindex.vcproj +194 -0
  84. data/mpg123/ports/MSVC++/2008/feedseek/feedseek.vcproj +195 -0
  85. data/mpg123/ports/MSVC++/2008/libmpg123/libmpg123.vcproj +1357 -0
  86. data/mpg123/ports/MSVC++/2008/mpg123.sln +44 -0
  87. data/mpg123/ports/MSVC++/2008/mpglib/mpglib.vcproj +191 -0
  88. data/mpg123/ports/MSVC++/2008/scan/scan.vcproj +195 -0
  89. data/mpg123/ports/MSVC++/2008clr/2008clr.sln +81 -0
  90. data/mpg123/ports/MSVC++/2008clr/examples/ReplaceReaderclr/Program.cs +435 -0
  91. data/mpg123/ports/MSVC++/2008clr/examples/ReplaceReaderclr/Properties/AssemblyInfo.cs +36 -0
  92. data/mpg123/ports/MSVC++/2008clr/examples/ReplaceReaderclr/ReplaceReaderclr.csproj +72 -0
  93. data/mpg123/ports/MSVC++/2008clr/examples/feedseekclr/Program.cs +331 -0
  94. data/mpg123/ports/MSVC++/2008clr/examples/feedseekclr/Properties/AssemblyInfo.cs +36 -0
  95. data/mpg123/ports/MSVC++/2008clr/examples/feedseekclr/feedseekclr.csproj +71 -0
  96. data/mpg123/ports/MSVC++/2008clr/examples/scanclr/Program.cs +79 -0
  97. data/mpg123/ports/MSVC++/2008clr/examples/scanclr/Properties/AssemblyInfo.cs +36 -0
  98. data/mpg123/ports/MSVC++/2008clr/examples/scanclr/scanclr.csproj +70 -0
  99. data/mpg123/ports/MSVC++/2008clr/mpg123clr/AssemblyInfo.cpp +76 -0
  100. data/mpg123/ports/MSVC++/2008clr/mpg123clr/ReadMe.txt +165 -0
  101. data/mpg123/ports/MSVC++/2008clr/mpg123clr/advanced.cpp +91 -0
  102. data/mpg123/ports/MSVC++/2008clr/mpg123clr/advanced.h +130 -0
  103. data/mpg123/ports/MSVC++/2008clr/mpg123clr/dllmain.cpp +19 -0
  104. data/mpg123/ports/MSVC++/2008clr/mpg123clr/enum.h +218 -0
  105. data/mpg123/ports/MSVC++/2008clr/mpg123clr/error.cpp +48 -0
  106. data/mpg123/ports/MSVC++/2008clr/mpg123clr/error.h +134 -0
  107. data/mpg123/ports/MSVC++/2008clr/mpg123clr/id3v1.cpp +92 -0
  108. data/mpg123/ports/MSVC++/2008clr/mpg123clr/id3v1.h +132 -0
  109. data/mpg123/ports/MSVC++/2008clr/mpg123clr/id3v2.cpp +138 -0
  110. data/mpg123/ports/MSVC++/2008clr/mpg123clr/id3v2.h +152 -0
  111. data/mpg123/ports/MSVC++/2008clr/mpg123clr/mpg123clr.cpp +896 -0
  112. data/mpg123/ports/MSVC++/2008clr/mpg123clr/mpg123clr.h +953 -0
  113. data/mpg123/ports/MSVC++/2008clr/mpg123clr/mpg123clr.rc +102 -0
  114. data/mpg123/ports/MSVC++/2008clr/mpg123clr/mpg123clr.vcproj +328 -0
  115. data/mpg123/ports/MSVC++/2008clr/mpg123clr/resource.h +14 -0
  116. data/mpg123/ports/MSVC++/2008clr/mpg123clr/stdafx.cpp +8 -0
  117. data/mpg123/ports/MSVC++/2008clr/mpg123clr/stdafx.h +38 -0
  118. data/mpg123/ports/MSVC++/2008clr/mpg123clr/string.cpp +166 -0
  119. data/mpg123/ports/MSVC++/2008clr/mpg123clr/string.h +265 -0
  120. data/mpg123/ports/MSVC++/2008clr/mpg123clr/targetver.h +24 -0
  121. data/mpg123/ports/MSVC++/2008clr/mpg123clr/text.cpp +67 -0
  122. data/mpg123/ports/MSVC++/2008clr/mpg123clr/text.h +111 -0
  123. data/mpg123/ports/MSVC++/2010/dump_seekindex/dump_seekindex.vcxproj +90 -0
  124. data/mpg123/ports/MSVC++/2010/dump_seekindex/dump_seekindex.vcxproj.filters +6 -0
  125. data/mpg123/ports/MSVC++/2010/feedseek/feedseek.vcxproj +95 -0
  126. data/mpg123/ports/MSVC++/2010/feedseek/feedseek.vcxproj.filters +6 -0
  127. data/mpg123/ports/MSVC++/2010/libmpg123/libmpg123.vcxproj +960 -0
  128. data/mpg123/ports/MSVC++/2010/libmpg123/libmpg123.vcxproj.user +3 -0
  129. data/mpg123/ports/MSVC++/2010/libmpg123/yasm.exe +0 -0
  130. data/mpg123/ports/MSVC++/2010/mpg123.sln +38 -0
  131. data/mpg123/ports/MSVC++/2010/scan/scan.vcxproj +93 -0
  132. data/mpg123/ports/MSVC++/2010/scan/scan.vcxproj.filters +6 -0
  133. data/mpg123/ports/MSVC++/CMP3Stream/INCLUDE/CORE/CORE_FileIn.H +15 -0
  134. data/mpg123/ports/MSVC++/CMP3Stream/INCLUDE/CORE/SourceFilter_MP3.H +139 -0
  135. data/mpg123/ports/MSVC++/CMP3Stream/INCLUDE/IIEP_Def.H +206 -0
  136. data/mpg123/ports/MSVC++/CMP3Stream/INCLUDE/IIEP_FileIn.H +167 -0
  137. data/mpg123/ports/MSVC++/CMP3Stream/README +4 -0
  138. data/mpg123/ports/MSVC++/CMP3Stream/SOURCE/CORE_FileIn.CPP +462 -0
  139. data/mpg123/ports/MSVC++/CMP3Stream/SOURCE/CORE_Log.CPP +122 -0
  140. data/mpg123/ports/MSVC++/CMP3Stream/SOURCE/CORE_Mutex.CPP +35 -0
  141. data/mpg123/ports/MSVC++/CMP3Stream/SOURCE/SourceFilter_MP3Stream.CPP +586 -0
  142. data/mpg123/ports/MSVC++/CMP3Stream/libMPG123/PLACE_LIBMPG123_SOURCES_HERE +0 -0
  143. data/mpg123/ports/MSVC++/CMP3Stream/libMPG123/libMPG123.vcproj +245 -0
  144. data/mpg123/ports/MSVC++/config.h +35 -0
  145. data/mpg123/ports/MSVC++/examples/feedseek.c +240 -0
  146. data/mpg123/ports/MSVC++/examples/scan.c +47 -0
  147. data/mpg123/ports/MSVC++/mpg123.h +46 -0
  148. data/mpg123/ports/MSVC++/msvc.c +59 -0
  149. data/mpg123/ports/README +26 -0
  150. data/mpg123/ports/Sony_PSP/Makefile.psp +38 -0
  151. data/mpg123/ports/Sony_PSP/README +11 -0
  152. data/mpg123/ports/Sony_PSP/config.h +368 -0
  153. data/mpg123/ports/Sony_PSP/readers.c.patch +2 -0
  154. data/mpg123/ports/Xcode/config.h +197 -0
  155. data/mpg123/ports/Xcode/mpg123.h +17 -0
  156. data/mpg123/ports/Xcode/mpg123.xcodeproj/project.pbxproj +670 -0
  157. data/mpg123/ports/mpg123_.pas +478 -0
  158. data/mpg123/scripts/benchmark-cpu.pl +56 -0
  159. data/mpg123/scripts/tag_lyrics.py +76 -0
  160. data/mpg123/src/Makefile.am +186 -0
  161. data/mpg123/src/Makefile.in +1097 -0
  162. data/mpg123/src/audio.c +725 -0
  163. data/mpg123/src/audio.h +106 -0
  164. data/mpg123/src/buffer.c +312 -0
  165. data/mpg123/src/buffer.h +45 -0
  166. data/mpg123/src/common.c +240 -0
  167. data/mpg123/src/common.h +29 -0
  168. data/mpg123/src/config.h.in +436 -0
  169. data/mpg123/src/control_generic.c +809 -0
  170. data/mpg123/src/equalizer.c +48 -0
  171. data/mpg123/src/genre.c +271 -0
  172. data/mpg123/src/genre.h +15 -0
  173. data/mpg123/src/getlopt.c +148 -0
  174. data/mpg123/src/getlopt.h +77 -0
  175. data/mpg123/src/httpget.c +700 -0
  176. data/mpg123/src/httpget.h +66 -0
  177. data/mpg123/src/legacy_module.c +74 -0
  178. data/mpg123/src/libmpg123/Makefile.am +141 -0
  179. data/mpg123/src/libmpg123/Makefile.in +919 -0
  180. data/mpg123/src/libmpg123/compat.c +138 -0
  181. data/mpg123/src/libmpg123/compat.h +178 -0
  182. data/mpg123/src/libmpg123/dct36_3dnow.S +505 -0
  183. data/mpg123/src/libmpg123/dct36_3dnowext.S +512 -0
  184. data/mpg123/src/libmpg123/dct64.c +174 -0
  185. data/mpg123/src/libmpg123/dct64_3dnow.S +712 -0
  186. data/mpg123/src/libmpg123/dct64_3dnowext.S +714 -0
  187. data/mpg123/src/libmpg123/dct64_altivec.c +315 -0
  188. data/mpg123/src/libmpg123/dct64_i386.c +336 -0
  189. data/mpg123/src/libmpg123/dct64_i486.c +342 -0
  190. data/mpg123/src/libmpg123/dct64_mmx.S +811 -0
  191. data/mpg123/src/libmpg123/dct64_neon.S +297 -0
  192. data/mpg123/src/libmpg123/dct64_neon_float.S +270 -0
  193. data/mpg123/src/libmpg123/dct64_sse.S +454 -0
  194. data/mpg123/src/libmpg123/dct64_sse_float.S +401 -0
  195. data/mpg123/src/libmpg123/dct64_x86_64.S +464 -0
  196. data/mpg123/src/libmpg123/dct64_x86_64_float.S +426 -0
  197. data/mpg123/src/libmpg123/debug.h +171 -0
  198. data/mpg123/src/libmpg123/decode.h +268 -0
  199. data/mpg123/src/libmpg123/dither.c +119 -0
  200. data/mpg123/src/libmpg123/dither.h +23 -0
  201. data/mpg123/src/libmpg123/equalizer.c +17 -0
  202. data/mpg123/src/libmpg123/equalizer_3dnow.S +70 -0
  203. data/mpg123/src/libmpg123/feature.c +106 -0
  204. data/mpg123/src/libmpg123/format.c +521 -0
  205. data/mpg123/src/libmpg123/frame.c +1046 -0
  206. data/mpg123/src/libmpg123/frame.h +410 -0
  207. data/mpg123/src/libmpg123/gapless.h +119 -0
  208. data/mpg123/src/libmpg123/getbits.h +100 -0
  209. data/mpg123/src/libmpg123/getcpuflags.S +91 -0
  210. data/mpg123/src/libmpg123/getcpuflags.h +47 -0
  211. data/mpg123/src/libmpg123/huffman.h +340 -0
  212. data/mpg123/src/libmpg123/icy.c +32 -0
  213. data/mpg123/src/libmpg123/icy.h +38 -0
  214. data/mpg123/src/libmpg123/icy2utf8.c +438 -0
  215. data/mpg123/src/libmpg123/icy2utf8.h +10 -0
  216. data/mpg123/src/libmpg123/id3.c +999 -0
  217. data/mpg123/src/libmpg123/id3.h +43 -0
  218. data/mpg123/src/libmpg123/index.c +134 -0
  219. data/mpg123/src/libmpg123/index.h +59 -0
  220. data/mpg123/src/libmpg123/intsym.h +256 -0
  221. data/mpg123/src/libmpg123/l12_integer_tables.h +278 -0
  222. data/mpg123/src/libmpg123/l2tables.h +164 -0
  223. data/mpg123/src/libmpg123/l3_integer_tables.h +1002 -0
  224. data/mpg123/src/libmpg123/layer1.c +155 -0
  225. data/mpg123/src/libmpg123/layer2.c +371 -0
  226. data/mpg123/src/libmpg123/layer3.c +2053 -0
  227. data/mpg123/src/libmpg123/lfs_alias.c +252 -0
  228. data/mpg123/src/libmpg123/lfs_wrap.c +751 -0
  229. data/mpg123/src/libmpg123/libmpg123.c +1607 -0
  230. data/mpg123/src/libmpg123/mangle.h +74 -0
  231. data/mpg123/src/libmpg123/mpeghead.h +87 -0
  232. data/mpg123/src/libmpg123/mpg123.h.in +1075 -0
  233. data/mpg123/src/libmpg123/mpg123lib_intern.h +338 -0
  234. data/mpg123/src/libmpg123/ntom.c +148 -0
  235. data/mpg123/src/libmpg123/optimize.c +964 -0
  236. data/mpg123/src/libmpg123/optimize.h +219 -0
  237. data/mpg123/src/libmpg123/parse.c +1179 -0
  238. data/mpg123/src/libmpg123/parse.h +25 -0
  239. data/mpg123/src/libmpg123/reader.h +137 -0
  240. data/mpg123/src/libmpg123/readers.c +1235 -0
  241. data/mpg123/src/libmpg123/sample.h +152 -0
  242. data/mpg123/src/libmpg123/stringbuf.c +163 -0
  243. data/mpg123/src/libmpg123/synth.c +816 -0
  244. data/mpg123/src/libmpg123/synth.h +196 -0
  245. data/mpg123/src/libmpg123/synth_3dnow.S +318 -0
  246. data/mpg123/src/libmpg123/synth_3dnowext.S +6 -0
  247. data/mpg123/src/libmpg123/synth_8bit.c +142 -0
  248. data/mpg123/src/libmpg123/synth_8bit.h +86 -0
  249. data/mpg123/src/libmpg123/synth_altivec.c +1057 -0
  250. data/mpg123/src/libmpg123/synth_arm.S +271 -0
  251. data/mpg123/src/libmpg123/synth_arm_accurate.S +287 -0
  252. data/mpg123/src/libmpg123/synth_i486.c +252 -0
  253. data/mpg123/src/libmpg123/synth_i586.S +336 -0
  254. data/mpg123/src/libmpg123/synth_i586_dither.S +375 -0
  255. data/mpg123/src/libmpg123/synth_mmx.S +125 -0
  256. data/mpg123/src/libmpg123/synth_mono.h +64 -0
  257. data/mpg123/src/libmpg123/synth_neon.S +123 -0
  258. data/mpg123/src/libmpg123/synth_neon_accurate.S +173 -0
  259. data/mpg123/src/libmpg123/synth_neon_float.S +149 -0
  260. data/mpg123/src/libmpg123/synth_neon_s32.S +168 -0
  261. data/mpg123/src/libmpg123/synth_ntom.h +213 -0
  262. data/mpg123/src/libmpg123/synth_real.c +404 -0
  263. data/mpg123/src/libmpg123/synth_s32.c +411 -0
  264. data/mpg123/src/libmpg123/synth_sse.S +6 -0
  265. data/mpg123/src/libmpg123/synth_sse3d.h +246 -0
  266. data/mpg123/src/libmpg123/synth_sse_accurate.S +294 -0
  267. data/mpg123/src/libmpg123/synth_sse_float.S +241 -0
  268. data/mpg123/src/libmpg123/synth_sse_s32.S +306 -0
  269. data/mpg123/src/libmpg123/synth_stereo_neon.S +175 -0
  270. data/mpg123/src/libmpg123/synth_stereo_neon_accurate.S +262 -0
  271. data/mpg123/src/libmpg123/synth_stereo_neon_float.S +220 -0
  272. data/mpg123/src/libmpg123/synth_stereo_neon_s32.S +247 -0
  273. data/mpg123/src/libmpg123/synth_stereo_sse_accurate.S +508 -0
  274. data/mpg123/src/libmpg123/synth_stereo_sse_float.S +416 -0
  275. data/mpg123/src/libmpg123/synth_stereo_sse_s32.S +540 -0
  276. data/mpg123/src/libmpg123/synth_stereo_x86_64.S +335 -0
  277. data/mpg123/src/libmpg123/synth_stereo_x86_64_accurate.S +454 -0
  278. data/mpg123/src/libmpg123/synth_stereo_x86_64_float.S +396 -0
  279. data/mpg123/src/libmpg123/synth_stereo_x86_64_s32.S +473 -0
  280. data/mpg123/src/libmpg123/synth_x86_64.S +244 -0
  281. data/mpg123/src/libmpg123/synth_x86_64_accurate.S +301 -0
  282. data/mpg123/src/libmpg123/synth_x86_64_float.S +259 -0
  283. data/mpg123/src/libmpg123/synth_x86_64_s32.S +312 -0
  284. data/mpg123/src/libmpg123/synths.h +52 -0
  285. data/mpg123/src/libmpg123/tabinit.c +294 -0
  286. data/mpg123/src/libmpg123/tabinit_mmx.S +210 -0
  287. data/mpg123/src/libmpg123/testcpu.c +35 -0
  288. data/mpg123/src/libmpg123/true.h +14 -0
  289. data/mpg123/src/local.c +63 -0
  290. data/mpg123/src/local.h +21 -0
  291. data/mpg123/src/metaprint.c +373 -0
  292. data/mpg123/src/metaprint.h +17 -0
  293. data/mpg123/src/module.c +306 -0
  294. data/mpg123/src/module.h +48 -0
  295. data/mpg123/src/mpg123.c +1405 -0
  296. data/mpg123/src/mpg123app.h +171 -0
  297. data/mpg123/src/output/Makefile.am +213 -0
  298. data/mpg123/src/output/Makefile.in +1238 -0
  299. data/mpg123/src/output/aix.c +300 -0
  300. data/mpg123/src/output/alib.c +209 -0
  301. data/mpg123/src/output/alsa.c +297 -0
  302. data/mpg123/src/output/arts.c +117 -0
  303. data/mpg123/src/output/coreaudio.c +370 -0
  304. data/mpg123/src/output/dummy.c +78 -0
  305. data/mpg123/src/output/esd.c +167 -0
  306. data/mpg123/src/output/hp.c +184 -0
  307. data/mpg123/src/output/jack.c +450 -0
  308. data/mpg123/src/output/mint.c +197 -0
  309. data/mpg123/src/output/nas.c +335 -0
  310. data/mpg123/src/output/openal.c +197 -0
  311. data/mpg123/src/output/os2.c +665 -0
  312. data/mpg123/src/output/oss.c +319 -0
  313. data/mpg123/src/output/portaudio.c +255 -0
  314. data/mpg123/src/output/pulse.c +164 -0
  315. data/mpg123/src/output/sdl.c +206 -0
  316. data/mpg123/src/output/sgi.c +213 -0
  317. data/mpg123/src/output/sndio.c +161 -0
  318. data/mpg123/src/output/sun.c +281 -0
  319. data/mpg123/src/output/win32.c +229 -0
  320. data/mpg123/src/playlist.c +596 -0
  321. data/mpg123/src/playlist.h +52 -0
  322. data/mpg123/src/resolver.c +319 -0
  323. data/mpg123/src/resolver.h +25 -0
  324. data/mpg123/src/sfifo.c +146 -0
  325. data/mpg123/src/sfifo.h +95 -0
  326. data/mpg123/src/streamdump.c +74 -0
  327. data/mpg123/src/streamdump.h +20 -0
  328. data/mpg123/src/term.c +479 -0
  329. data/mpg123/src/term.h +81 -0
  330. data/mpg123/src/tests/noise.c +52 -0
  331. data/mpg123/src/tests/plain_id3.c +109 -0
  332. data/mpg123/src/tests/seek_accuracy.c +261 -0
  333. data/mpg123/src/tests/seek_whence.c +56 -0
  334. data/mpg123/src/tests/testtext.h +34 -0
  335. data/mpg123/src/tests/text.c +80 -0
  336. data/mpg123/src/wav.c +464 -0
  337. data/mpg123/src/wavhead.h +68 -0
  338. data/mpg123/src/win32_net.c +599 -0
  339. data/mpg123/src/win32_support.c +191 -0
  340. data/mpg123/src/win32_support.h +152 -0
  341. data/mpg123/src/xfermem.c +321 -0
  342. data/mpg123/src/xfermem.h +74 -0
  343. data/mpg123/windows-builds.sh +137 -0
  344. data/msvc/lib/OpenAL32.lib +0 -0
  345. data/spec/fixtures/heal.ogg +0 -0
  346. data/spec/fixtures/tone_up.wav +0 -0
  347. data/spec/seal/buffer_spec.rb +37 -0
  348. data/spec/seal/core_spec.rb +29 -0
  349. data/spec/seal/effect_slot_spec.rb +38 -0
  350. data/spec/seal/listener_spec.rb +33 -0
  351. data/spec/seal/reverb_spec.rb +51 -0
  352. data/spec/seal/source_spec.rb +370 -0
  353. data/spec/seal/stream_spec.rb +38 -0
  354. data/spec/spec_helper.rb +45 -0
  355. data/spec/support/attribute_examples.rb +75 -0
  356. data/spec/support/audio_object_with_format.rb +27 -0
  357. data/spec/support/movable_object.rb +22 -0
  358. data/src/libogg/bitwise.c +857 -0
  359. data/src/libogg/framing.c +2093 -0
  360. data/src/libvorbis/backends.h +144 -0
  361. data/src/libvorbis/bitrate.c +253 -0
  362. data/src/libvorbis/bitrate.h +59 -0
  363. data/src/libvorbis/block.c +1046 -0
  364. data/src/libvorbis/codebook.c +484 -0
  365. data/src/libvorbis/codebook.h +119 -0
  366. data/src/libvorbis/codec_internal.h +167 -0
  367. data/src/libvorbis/envelope.c +375 -0
  368. data/src/libvorbis/envelope.h +80 -0
  369. data/src/libvorbis/floor0.c +221 -0
  370. data/src/libvorbis/floor1.c +1100 -0
  371. data/src/libvorbis/highlevel.h +58 -0
  372. data/src/libvorbis/info.c +668 -0
  373. data/src/libvorbis/lookup.c +94 -0
  374. data/src/libvorbis/lookup.h +32 -0
  375. data/src/libvorbis/lookup_data.h +192 -0
  376. data/src/libvorbis/lpc.c +160 -0
  377. data/src/libvorbis/lpc.h +29 -0
  378. data/src/libvorbis/lsp.c +456 -0
  379. data/src/libvorbis/lsp.h +28 -0
  380. data/src/libvorbis/mapping0.c +816 -0
  381. data/src/libvorbis/masking.h +785 -0
  382. data/src/libvorbis/mdct.c +563 -0
  383. data/src/libvorbis/mdct.h +71 -0
  384. data/src/libvorbis/misc.h +57 -0
  385. data/src/libvorbis/os.h +186 -0
  386. data/src/libvorbis/psy.c +1206 -0
  387. data/src/libvorbis/psy.h +154 -0
  388. data/src/libvorbis/registry.c +45 -0
  389. data/src/libvorbis/registry.h +32 -0
  390. data/src/libvorbis/res0.c +889 -0
  391. data/src/libvorbis/scales.h +90 -0
  392. data/src/libvorbis/sharedbook.c +579 -0
  393. data/src/libvorbis/smallft.c +1255 -0
  394. data/src/libvorbis/smallft.h +34 -0
  395. data/src/libvorbis/synthesis.c +184 -0
  396. data/src/libvorbis/vorbisfile.c +2337 -0
  397. data/src/libvorbis/window.c +2135 -0
  398. data/src/libvorbis/window.h +26 -0
  399. data/src/rubyext.c +2329 -0
  400. data/src/seal/buf.c +124 -0
  401. data/src/seal/core.c +283 -0
  402. data/src/seal/efs.c +74 -0
  403. data/src/seal/err.c +118 -0
  404. data/src/seal/fmt.c +86 -0
  405. data/src/seal/listener.c +111 -0
  406. data/src/seal/mpg.c +174 -0
  407. data/src/seal/mpg.h +24 -0
  408. data/src/seal/ov.c +180 -0
  409. data/src/seal/ov.h +22 -0
  410. data/src/seal/raw.c +59 -0
  411. data/src/seal/reader.c +102 -0
  412. data/src/seal/reader.h +59 -0
  413. data/src/seal/rvb.c +368 -0
  414. data/src/seal/src.c +654 -0
  415. data/src/seal/stream.c +109 -0
  416. data/src/seal/threading.c +66 -0
  417. data/src/seal/threading.h +20 -0
  418. data/src/seal/wav.c +297 -0
  419. data/src/seal/wav.h +23 -0
  420. data/src/win32api.rb +29 -0
  421. metadata +563 -0
@@ -0,0 +1,2178 @@
1
+ dnl configure.ac: source for the configure script
2
+
3
+ dnl copyright by the mpg123 project - free software under the terms of the LGPL 2.1
4
+ dnl see COPYING and AUTHORS files in distribution or http://mpg123.org
5
+ dnl initially written by Nicholas J. Humfrey
6
+
7
+ dnl Require autoconf version >= 2.57
8
+ AC_PREREQ(2.57)
9
+
10
+
11
+ dnl ############# Initialisation
12
+ AC_INIT([mpg123], [1.14.4], [mpg123-devel@lists.sourceforge.net])
13
+ dnl Increment API_VERSION when the API gets changes (new functions).
14
+ API_VERSION=36
15
+ LIB_PATCHLEVEL=6
16
+ dnl Since we want to be backwards compatible, both sides get set to API_VERSION.
17
+ LIBMPG123_VERSION=$API_VERSION:$LIB_PATCHLEVEL:$API_VERSION
18
+ AC_SUBST(LIBMPG123_VERSION)
19
+ AC_SUBST(API_VERSION)
20
+
21
+ AC_CONFIG_SRCDIR(src/mpg123.c)
22
+ AC_CONFIG_AUX_DIR(build)
23
+ AC_CONFIG_SRCDIR(doc)
24
+ AC_CONFIG_MACRO_DIR([m4])
25
+ AC_CANONICAL_HOST
26
+
27
+ dnl Version 1.7 of automake is recommended
28
+ AM_INIT_AUTOMAKE(1.7)
29
+ AM_CONFIG_HEADER(src/config.h)
30
+
31
+
32
+ # You get strange symptoms like jack module build failing because the AC_C_CONST failed to detect the working const support.
33
+ # In that case, the test failed because -Werror, not because no const there...
34
+ # After looking again, there are possibly more tests being obscured by false failures.
35
+ AC_MSG_CHECKING([for -Werror in CFLAGS (It breaks tests)])
36
+ if echo "$CFLAGS" | grep Werror; then
37
+ AC_MSG_RESULT([yes])
38
+ AC_MSG_WARN([You have -Werror in CFLAGS. That may break some tests and make this configure bogus.
39
+ If you want paranoid compilation, use --enable-nagging option, which adds -Werror for gcc.
40
+ Also note that you shall not run make distcheck after configuring with --enable-nagging.
41
+ distcheck uses the generated CFLAGS...
42
+ Anyhow, continuing at your own risk.])
43
+ else
44
+ AC_MSG_RESULT([no])
45
+ fi
46
+
47
+ buffer=enabled # try to build with buffer by default
48
+
49
+ dnl ############# Compiler and tools Checks
50
+
51
+ LT_LDFLAGS=-export-dynamic
52
+ EXEC_LT_LDFLAGS=
53
+ be_static=no
54
+ all_static=no
55
+ AC_MSG_CHECKING([if you are up to something totally static with LDFLAGS/CFLAGS])
56
+ for f in $LDFLAGS $CFLAGS
57
+ do
58
+ case "$f" in
59
+ -all-static)
60
+ be_static=yes
61
+ all_static=yes
62
+ ;;
63
+ -static)
64
+ be_static=yes
65
+ ;;
66
+ esac
67
+ done
68
+ if test "x$be_static" = xyes; then
69
+ AC_MSG_RESULT([yes])
70
+ LT_LDFLAGS=-all-static
71
+ EXEC_LT_LDFLAGS="$LT_LDFLAGS"
72
+ else
73
+ AC_MSG_RESULT([no])
74
+ fi
75
+ if test "x$all_static" = xyes; then
76
+ AC_MSG_WARN( Use -static in LDFLAGS for all-static linking! Your compiler may blow up on that -all-static. )
77
+ fi
78
+
79
+ AM_PROG_AS
80
+ AC_PROG_CC
81
+ AC_PROG_CPP
82
+ AC_PROG_INSTALL
83
+ dnl "Checking for egrep is broken after removal of libltdl stuff... checks use $EGREP, so searching it here."
84
+ AC_PROG_EGREP
85
+ AC_C_CONST
86
+ AC_INLINE
87
+ AC_C_BIGENDIAN
88
+
89
+ dnl ############# Use Libtool for dynamic module loading
90
+
91
+ modules=auto
92
+ OUTPUT_OBJ="module.\$(OBJEXT)"
93
+ AC_ARG_ENABLE(modules,
94
+ [ --enable-modules=[no/yes] dynamically loadable output modules],
95
+ [
96
+ if test "x$enableval" = xyes
97
+ then
98
+ modules=enabled
99
+ else
100
+ modules=disabled
101
+ fi
102
+ ],
103
+ [
104
+ if test "x$be_static" = "xyes"; then
105
+ modules=disabled
106
+ else
107
+ modules=auto
108
+ fi
109
+ ])
110
+
111
+ dnl We only want shared libraries by default
112
+ AC_DISABLE_STATIC
113
+ AC_ENABLE_SHARED
114
+
115
+ if test x"$enable_shared" = xno; then
116
+ modules=disabled
117
+ LT_LDFLAGS=
118
+ else
119
+ AC_DEFINE(DYNAMIC_BUILD, 1, [ Define if building with dynamcally linked libmpg123])
120
+ fi
121
+
122
+ if test x"$modules" = xdisabled
123
+ then
124
+ echo "Modules disabled, not checking for libltdl."
125
+ else
126
+ have_ltdl=no
127
+ AC_CHECK_LIB( [ltdl], [lt_dlinit],
128
+ [ AC_CHECK_HEADER( [ltdl.h],
129
+ [
130
+ have_ltdl=yes
131
+ AC_DEFINE(HAVE_LTDL, 1, [ Define if libltdl is available ])
132
+ ],
133
+ [
134
+ AC_MSG_WARN([Found ltdl library but NOT the header file on your system])
135
+ ] )
136
+ ],
137
+ [
138
+ AC_MSG_WARN([ltdl library not found])
139
+ ]
140
+ )
141
+ if test x"$modules" = xenabled -a x"$have_ltdl" = xno; then
142
+ AC_MSG_ERROR([Modules enabled but no libltdl found! This will not work...])
143
+ fi
144
+ if test x"$modules" = xauto; then
145
+ if test x"$have_ltdl" = xyes; then
146
+ modules=enabled
147
+ echo "We found libltdl: Modules enabled."
148
+ else
149
+ echo "We did not find libltdl: Modules disabled."
150
+ modules=disabled
151
+ fi
152
+ fi
153
+ fi
154
+
155
+ if test x"$modules" = xdisabled
156
+ then
157
+ echo "Modules disabled."
158
+ else
159
+ # Enable module support in source code
160
+ AC_DEFINE( USE_MODULES, 1, [Define if modules are enabled] )
161
+ fi
162
+
163
+ dnl Configure libtool
164
+
165
+ AC_LIBTOOL_WIN32_DLL
166
+ AM_PROG_LIBTOOL
167
+
168
+ if test x"$modules" = xdisabled
169
+ then
170
+ echo "Modules still disabled..."
171
+ MODULE_OBJ="legacy_module.\$(OBJEXT)"
172
+ else
173
+ MODULE_OBJ="module.\$(OBJEXT)"
174
+ fi
175
+
176
+ AM_CONDITIONAL( [HAVE_MODULES], [test "x$modules" = xenabled] )
177
+
178
+ AC_SUBST(MODULE_OBJ)
179
+ AC_SUBST(LT_LDFLAGS)
180
+ AC_SUBST(EXEC_LT_LDFLAGS)
181
+
182
+ dnl ############## Configurable Options
183
+
184
+ AC_ARG_ENABLE(debug,
185
+ [ --enable-debug=[no/yes] turn on debugging],
186
+ [
187
+ if test "x$enableval" = xyes
188
+ then
189
+ debugging="enabled"
190
+ else
191
+ debugging="disabled"
192
+ fi
193
+ ],
194
+ [ debugging="disabled" ]
195
+ )
196
+
197
+ AC_ARG_ENABLE(nagging,
198
+ [ --enable-nagging=[no/yes] turn on GCC's pedantic nagging with error on warnings, also enables debugging ],
199
+ [
200
+ if test "x$enableval" = xyes
201
+ then
202
+ nagging="enabled"
203
+ debugging="enabled"
204
+ else
205
+ nagging="disabled"
206
+ fi
207
+ ],
208
+ [ nagging="disabled" ]
209
+ )
210
+
211
+ if test x"$debugging" = xenabled; then
212
+ AC_DEFINE(DEBUG, 1, [ Define if debugging is enabled. ])
213
+ fi
214
+
215
+ AC_ARG_ENABLE(gapless,
216
+ [ --enable-gapless=[no/yes] turn on gapless (enabled per default)],
217
+ [
218
+ if test "x$enableval" = xyes
219
+ then
220
+ gapless="enabled"
221
+ AC_DEFINE(GAPLESS, 1, [ Define if gapless is enabled. ])
222
+ else
223
+ gapless="disabled"
224
+ fi
225
+ ],
226
+ [
227
+ gapless="enabled"
228
+ AC_DEFINE(GAPLESS, 1, [ Define if gapless is enabled. ])
229
+ ]
230
+ )
231
+
232
+ AC_ARG_ENABLE(fifo,
233
+ [ --enable-fifo=[no/yes] FIFO support for control interface (auto-enabled on linux) ],
234
+ [
235
+ if test "x$enableval" = xyes
236
+ then
237
+ fifo="enabled"
238
+ else
239
+ fifo="disabled"
240
+ fi
241
+ ],
242
+ [
243
+ fifo="auto"
244
+ ]
245
+ )
246
+
247
+ AC_ARG_ENABLE(ipv6,
248
+ [ --enable-ipv6=[no/yes] IPv6 support (actually any protocol your libc does with getaddrinfo) ],
249
+ [
250
+ if test "x$enableval" = xyes
251
+ then
252
+ ipv6="enabled"
253
+ else
254
+ ipv6="disabled"
255
+ fi
256
+ ],
257
+ [
258
+ ipv6="auto"
259
+ ]
260
+ )
261
+
262
+ AC_ARG_ENABLE(network,
263
+ [ --enable-network=[no/yes] network support (http streams / webradio) ],
264
+ [
265
+ if test "x$enableval" = xyes
266
+ then
267
+ network="enabled"
268
+ else
269
+ network="disabled"
270
+ fi
271
+ ],
272
+ [
273
+ network="auto"
274
+ ]
275
+ )
276
+
277
+ dnl Optional objects list, depends on decoder choice and core feature selection.
278
+ dnl Not just for specific decoders anymore...
279
+ s_fpu=
280
+ DECODER_OBJ=
281
+ DECODER_LOBJ=
282
+
283
+ dnl Core features that can be disabled to reduce binary size.
284
+
285
+ id3v2=enabled
286
+ AC_ARG_ENABLE(id3v2,
287
+ [ --disable-id3v2=[no/yes] no ID3v2 parsing ],
288
+ [
289
+ if test "x$enableval" = xno; then
290
+ id3v2="disabled"
291
+ fi
292
+ ], [])
293
+
294
+ # id3v2 depends on strings... so check that in between.
295
+ string=enabled
296
+ AC_ARG_ENABLE(string,
297
+ [ --disable-string=[no/yes] no string API (this will disable ID3v2; main mpg123 won't build anymore) ],
298
+ [
299
+ if test "x$enableval" = xno; then
300
+ string="disabled"
301
+ fi
302
+ ], [])
303
+
304
+ if test "x$string" = "xdisabled"; then
305
+ AC_DEFINE(NO_STRING, 1, [ Define to disable string functions. ])
306
+ id3v2=disabled
307
+ AC_MSG_WARN([ID3v2 support disabled because of string API being disabled.])
308
+ else
309
+ DECODER_OBJ="$DECODER_OBJ stringbuf.\$(OBJEXT)"
310
+ DECODER_LOBJ="$DECODER_LOBJ stringbuf.lo"
311
+ fi
312
+
313
+ if test "x$id3v2" = "xdisabled"; then
314
+ AC_DEFINE(NO_ID3V2, 1, [ Define to disable ID3v2 parsing. ])
315
+ fi
316
+
317
+ icy=enabled
318
+ AC_ARG_ENABLE(icy,
319
+ [ --disable-icy=[no/yes] no ICY metainfo parsing/conversion (main mpg123 won't build!) ],
320
+ [
321
+ if test "x$enableval" = xno; then
322
+ icy="disabled"
323
+ fi
324
+ ], [])
325
+
326
+ if test "x$icy" = "xdisabled"; then
327
+ AC_DEFINE(NO_ICY, 1, [ Define to disable ICY handling. ])
328
+ else
329
+ DECODER_OBJ="$DECODER_OBJ icy.\$(OBJEXT) icy2utf8.\$(OBJEXT)"
330
+ DECODER_LOBJ="$DECODER_LOBJ icy.lo icy2utf8.lo"
331
+ fi
332
+
333
+ ntom=enabled
334
+ AC_ARG_ENABLE(ntom,
335
+ [ --disable-ntom=[no/yes] no flexible resampling ],
336
+ [
337
+ if test "x$enableval" = xno; then
338
+ ntom="disabled"
339
+ fi
340
+ ], [])
341
+
342
+ if test "x$ntom" = "xdisabled"; then
343
+ AC_DEFINE(NO_NTOM, 1, [ Define to disable ntom resampling. ])
344
+ else
345
+ DECODER_OBJ="$DECODER_OBJ ntom.\$(OBJEXT)"
346
+ DECODER_LOBJ="$DECODER_LOBJ ntom.lo"
347
+ fi
348
+
349
+ downsample=enabled
350
+ AC_ARG_ENABLE(downsample,
351
+ [ --disable-downsample=[no/yes] no downsampled decoding ],
352
+ [
353
+ if test "x$enableval" = xno; then
354
+ downsample="disabled"
355
+ fi
356
+ ], [])
357
+
358
+ if test "x$downsample" = "xdisabled"; then
359
+ AC_DEFINE(NO_DOWNSAMPLE, 1, [ Define to disable downsampled decoding. ])
360
+ fi
361
+
362
+ feeder=enabled
363
+ AC_ARG_ENABLE(feeder,
364
+ [ --disable-feeder=[no/yes] no feeder decoding, no buffered readers ],
365
+ [
366
+ if test "x$enableval" = xno; then
367
+ feeder="disabled"
368
+ fi
369
+ ], [])
370
+
371
+ if test "x$feeder" = "xdisabled"; then
372
+ AC_DEFINE(NO_FEEDER, 1, [ Define to disable feeder and buffered readers. ])
373
+ fi
374
+
375
+ messages=enabled
376
+ AC_ARG_ENABLE(messages,
377
+ [ --disable-messages=[no/yes] no error/warning messages on the console ],
378
+ [
379
+ if test "x$enableval" = xno; then
380
+ messages="disabled"
381
+ fi
382
+ ], [])
383
+
384
+ if test "x$messages" = "xdisabled"; then
385
+ AC_DEFINE(NO_WARNING, 1, [ Define to disable warning messages. ])
386
+ AC_DEFINE(NO_ERRORMSG, 1, [ Define to disable error messages. ])
387
+ AC_DEFINE(NO_ERETURN, 1, [ Define to disable error messages in combination with a return value (the return is left intact). ])
388
+ fi
389
+
390
+ integers=fast
391
+ AC_ARG_ENABLE(int-quality,
392
+ [ --enable-int-quality=[yes/no] use rounding instead of fast truncation for integer output, where possible ],
393
+ [
394
+ if test "x$enableval" = xyes; then
395
+ integers=quality
396
+ AC_DEFINE(ACCURATE_ROUNDING, 1, [ Define to use proper rounding. ])
397
+ fi
398
+ ], [])
399
+
400
+ int16=enabled
401
+ AC_ARG_ENABLE(16bit,
402
+ [ --disable-16bit=[no/yes] no 16 bit integer output ],
403
+ [
404
+ if test "x$enableval" = xno; then
405
+ int16="disabled"
406
+ fi
407
+ ], [])
408
+
409
+ int8=enabled
410
+ AC_ARG_ENABLE(8bit,
411
+ [ --disable-8bit=[no/yes] no 8 bit integer output ],
412
+ [
413
+ if test "x$enableval" = xno; then
414
+ int8="disabled"
415
+ fi
416
+ ], [])
417
+
418
+ int32=enabled
419
+ AC_ARG_ENABLE(32bit,
420
+ [ --disable-32bit=[no/yes] no 32 bit integer output (also 24 bit) ],
421
+ [
422
+ if test "x$enableval" = xno; then
423
+ int32="disabled"
424
+ fi
425
+ ], [])
426
+
427
+ real=enabled
428
+ AC_ARG_ENABLE(real,
429
+ [ --disable-real=[no/yes] no real (floating point) output ],
430
+ [
431
+ if test "x$enableval" = xno; then
432
+ real="disabled"
433
+ fi
434
+ ], [])
435
+
436
+ AC_ARG_WITH([cpu], [
437
+ --with-cpu=generic[_fpu] Use generic processor code with floating point arithmetic
438
+ --with-cpu=generic_float Plain alias to generic_fpu now... float output is a normal runtime option!
439
+ --with-cpu=generic_nofpu Use generic processor code with fixed point arithmetic (p.ex. ARM, experimental)
440
+ --with-cpu=generic_dither Use generic processor code with floating point arithmetic and dithering for 1to1 16bit decoding.
441
+ --with-cpu=i386[_fpu] Use code optimized for i386 processors with floating point arithmetic
442
+ --with-cpu=i386_nofpu Use code optimized for i386 processors with fixed point arithmetic (experimental)
443
+ --with-cpu=i486 Use code optimized for i486 processors (only usable alone!)
444
+ --with-cpu=i586 Use code optimized for i586 processors
445
+ --with-cpu=i586_dither Use code optimized for i586 processors with dithering (noise shaping), adds 256K to binary size
446
+ --with-cpu=3dnow Use code optimized for 3DNow processors
447
+ --with-cpu=3dnowext Use code optimized for 3DNowExt processors (K6-3+, Athlon)
448
+ --with-cpu=3dnowext_alone Really only 3DNowExt decoder, without 3DNow fallback for flexible rate
449
+ --with-cpu=mmx Use code optimized for MMX processors
450
+ --with-cpu=mmx_alone Really only MMX decoder, without i586 fallback for flexible rate
451
+ --with-cpu=sse Use code optimized for SSE processors
452
+ --with-cpu=sse_alone Really only SSE decoder, without i586 fallback for flexible rate
453
+ --with-cpu=x86 Pack all x86 opts into one binary (excluding i486, including dither)
454
+ --with-cpu=x86-64 Use code optimized for x86-64 processors (AMD64 and Intel64, including dithered generic)
455
+ --with-cpu=altivec Use code optimized for Altivec processors (PowerPC G4 and G5)
456
+ --with-cpu=ppc_nofpu Use code optimized for PowerPC processors with fixed point arithmetic (experimental)
457
+ --with-cpu=neon Use code optimized for ARM NEON SIMD engine (Cortex-A series)
458
+ --with-cpu=arm_nofpu Use code optimized for ARM processors with fixed point arithmetic (experimental)
459
+ ])
460
+
461
+
462
+ # opt-in for IEEE754 floating point action
463
+ # We want to make sure not to apply hacks relying on IEEE754 storage format on platforms where we did not make sure that this actually is valid.
464
+ # It _should_ be fine for about all computers still out there, but we play safe.
465
+ ieee=no
466
+ case $host in
467
+ i?86-*|x86_64-*|powerpc*|sparc*)
468
+ ieee=yes
469
+ ;;
470
+ esac
471
+ if test "x$ieee" = xyes; then
472
+ echo "We assume IEEE754 floating point format."
473
+ AC_DEFINE(IEEE_FLOAT, 1, [ Define to indicate that float storage follows IEEE754. ])
474
+ fi
475
+
476
+ newoldwritesample=disabled
477
+ case $host in
478
+ arm*-*-linux*)
479
+ # check that... perhaps we are better off on arm with kernel math emulation
480
+ cpu_type="arm_nofpu"
481
+ ;;
482
+ i386-*-linux*|i386-*-kfreebsd*-gnu)
483
+ cpu_type="i386_fpu"
484
+ newoldwritesample=enabled
485
+ ;;
486
+ i486-*-linux*|i486-*-kfreebsd*-gnu)
487
+ cpu_type="i486"
488
+ newoldwritesample=enabled
489
+ ;;
490
+ i586-*-linux*|i586-*-kfreebsd*-gnu)
491
+ cpu_type="x86"
492
+ newoldwritesample=enabled
493
+ ;;
494
+ i686-*-linux*|i686-*-kfreebsd*-gnu)
495
+ cpu_type="x86"
496
+ newoldwritesample=enabled
497
+ ;;
498
+ x86_64-*-linux*|x86_64-*-kfreebsd*-gnu)
499
+ cpu_type="x86-64_all"
500
+ ;;
501
+ *-*-linux*|*-*-kfreebsd*-gnu)
502
+ cpu_type="generic_fpu"
503
+ ;;
504
+ i386-apple-darwin10*)
505
+ AC_MSG_CHECKING([if CPU type supports x86-64])
506
+ case `sysctl -n hw.optional.x86_64` in
507
+ 1)
508
+ AC_MSG_RESULT([yes])
509
+ cpu_type="x86-64_all"
510
+ ;;
511
+ *)
512
+ AC_MSG_RESULT([no])
513
+ cpu_type="x86"
514
+ newoldwritesample=enabled
515
+ ;;
516
+ esac
517
+ ;;
518
+ i386-apple-darwin*)
519
+ cpu_type="x86"
520
+ newoldwritesample=enabled
521
+ ;;
522
+ x86_64-apple-darwin*)
523
+ cpu_type="x86-64_all"
524
+ ;;
525
+ *-apple-darwin*)
526
+ AC_MSG_CHECKING([if CPU type supports AltiVec])
527
+ case `machine` in
528
+ ppc7400 | ppc7450 | ppc970)
529
+ AC_MSG_RESULT([yes])
530
+ cpu_type="altivec"
531
+ ;;
532
+ *)
533
+ AC_MSG_RESULT([no])
534
+ cpu_type="generic_fpu"
535
+ ;;
536
+ esac
537
+ ;;
538
+ i?86-*-dragonfly* | i?86-*-freebsd* | i?86-*-midnightbsd* | i?86-*-mirbsd* | i?86-*-netbsd* | i?86-*-openbsd*)
539
+ cpu_type="x86"
540
+ newoldwritesample=enabled
541
+ ;;
542
+ x86_64-*-dragonfly* | x86_64-*-freebsd* | x86_64-*-midnightbsd* | x86_64-*-mirbsd* | x86_64-*-netbsd* | x86_64-*-openbsd*)
543
+ cpu_type="x86-64_all"
544
+ ;;
545
+ *-*-dragonfly* | *-*-freebsd* | *-*-midnightbsd* | *-*-mirbsd* | *-*-netbsd* | *-*-openbsd*)
546
+ cpu_type="generic_fpu"
547
+ ;;
548
+ i386-*-solaris*)
549
+ cpu_type=x86
550
+ newoldwritesample=enabled
551
+ ;;
552
+ x86_64-*-solaris*)
553
+ cpu_type=x86-64_all
554
+ ;;
555
+ *-*-solaris*)
556
+ cpu_type="generic_fpu"
557
+ ;;
558
+ # os2-emx = OS/2 with some Unix fun; so p.ex. buffer works.
559
+ # Till we sorted out the assembler troubles, generic CPU is default.
560
+ i386-pc-os2-emx)
561
+ cpu_type=generic_fpu
562
+ newoldwritesample=enabled
563
+ ;;
564
+ x86_64-pc-os2-emx)
565
+ # We are optimistic hat the future knows OS/2 on x86-64;-)
566
+ cpu_type=generic_fpu
567
+ ;;
568
+ *-pc-os2-emx)
569
+ cpu_type="generic_fpu"
570
+ ;;
571
+ *-dec-osf*)
572
+ cpu_type="generic_fpu"
573
+ ;;
574
+ x86_64-pc-cygwin*)
575
+ cpu_type="x86-64_all"
576
+ ;;
577
+ i686-pc-cygwin*)
578
+ cpu_type="x86"
579
+ newoldwritesample=enabled
580
+ ;;
581
+ i586-pc-cygwin*)
582
+ cpu_type="x86"
583
+ newoldwritesample=enabled
584
+ ;;
585
+ i486-pc-cygwin*)
586
+ cpu_type="i486"
587
+ newoldwritesample=enabled
588
+ ;;
589
+ i386-pc-cygwin*)
590
+ cpu_type="i386"
591
+ newoldwritesample=enabled
592
+ ;;
593
+ *-pc-cygwin*)
594
+ cpu_type="generic_fpu"
595
+ ;;
596
+ i@<:@3-7@:>@86-*-mingw32*)
597
+ LIBS="$LIBS"
598
+ buffer=disabled
599
+ cpu_type="x86"
600
+ newoldwritesample=enabled
601
+ ;;
602
+ x86_64-*-mingw32*)
603
+ LIBS="$LIBS"
604
+ buffer=disabled
605
+ cpu_type="x86-64"
606
+ ;;
607
+ i386-*)
608
+ AC_MSG_WARN([Unknown host operating system])
609
+ cpu_type="i386"
610
+ buffer=disabled
611
+ ADD_CPPFLAGS="-DGENERIC $ADD_CPPFLAGS"
612
+ newoldwritesample=enabled
613
+ ;;
614
+ i486-*)
615
+ AC_MSG_WARN([Unknown host operating system])
616
+ cpu_type="i486"
617
+ buffer=disabled
618
+ ADD_CPPFLAGS="-DGENERIC $ADD_CPPFLAGS"
619
+ newoldwritesample=enabled
620
+ ;;
621
+ i586-*)
622
+ AC_MSG_WARN([Unknown host operating system])
623
+ cpu_type="x86"
624
+ buffer=disabled
625
+ ADD_CPPFLAGS="-DGENERIC $ADD_CPPFLAGS"
626
+ newoldwritesample=enabled
627
+ ;;
628
+ i686-*)
629
+ AC_MSG_WARN([Unknown host operating system])
630
+ cpu_type="x86"
631
+ buffer=disabled
632
+ ADD_CPPFLAGS="-DGENERIC $ADD_CPPFLAGS"
633
+ newoldwritesample=enabled
634
+ ;;
635
+ x86_64-*)
636
+ AC_MSG_WARN([Unknown host operating system])
637
+ cpu_type="x86-64_all"
638
+ buffer=disabled
639
+ ADD_CPPFLAGS="-DGENERIC $ADD_CPPFLAGS"
640
+ ;;
641
+ *)
642
+ AC_MSG_WARN([Unknown host operating system])
643
+ cpu_type="generic_fpu"
644
+ buffer=disabled
645
+ ADD_CPPFLAGS="-DGENERIC $ADD_CPPFLAGS"
646
+ ;;
647
+ esac
648
+
649
+ AC_ARG_ENABLE(buffer,
650
+ [ --enable-buffer=[yes/no] disable audio buffer code (default uses system whitelist... proper checks later) ],
651
+ [
652
+ if test "x$enableval" = xyes
653
+ then
654
+ echo "Note: Enabling buffer per request... perhaps it will not build anyway."
655
+ buffer="enabled"
656
+ else
657
+ echo "Note: Disabling buffer per request."
658
+ buffer="disabled"
659
+ fi
660
+ ]
661
+ )
662
+
663
+ AC_ARG_ENABLE(newoldwritesample,
664
+ [ --enable-newoldwritesample=[no/yes] enable new/old WRITE_SAMPLE macro for non-accurate 16 bit output, faster on certain CPUs (default on on x86-32)],
665
+ [
666
+ if test "x$enableval" = xyes
667
+ then
668
+ newoldwritesample=enabled
669
+ else
670
+ newoldwritesample=disabled
671
+ fi
672
+ ])
673
+
674
+
675
+
676
+ dnl Did user choose other CPU type ?
677
+ if test "x$with_cpu" != "x"; then
678
+ cpu_type=$with_cpu
679
+ fi
680
+
681
+ if test "x$cpu_type" = "xgeneric_nofpu"; then
682
+ real=disabled
683
+ int32=disabled
684
+ fi
685
+
686
+ if test "x$cpu_type" = "xi386_nofpu"; then
687
+ real=disabled
688
+ int32=disabled
689
+ fi
690
+
691
+ if test "x$cpu_type" = "xppc_nofpu"; then
692
+ real=disabled
693
+ int32=disabled
694
+ fi
695
+
696
+ if test "x$cpu_type" = "xarm_nofpu"; then
697
+ real=disabled
698
+ int32=disabled
699
+ fi
700
+
701
+ if test "x$int16" = "xdisabled"; then
702
+ AC_DEFINE(NO_16BIT, 1, [ Define to disable 16 bit integer output. ])
703
+ else
704
+ DECODER_OBJ="$DECODER_OBJ synth.\$(OBJEXT)"
705
+ DECODER_LOBJ="$DECODER_LOBJ synth.lo"
706
+ fi
707
+
708
+ # 8bit works only through 16bit
709
+ if test "x$int16" = "xdisabled"; then
710
+ int8=disabled
711
+ fi
712
+ if test "x$int8" = "xdisabled"; then
713
+ AC_DEFINE(NO_8BIT, 1, [ Define to disable 8 bit integer output. ])
714
+ else
715
+ DECODER_OBJ="$DECODER_OBJ synth_8bit.\$(OBJEXT)"
716
+ DECODER_LOBJ="$DECODER_LOBJ synth_8bit.lo"
717
+ fi
718
+
719
+ if test "x$int32" = "xdisabled"; then
720
+ AC_DEFINE(NO_32BIT, 1, [ Define to disable 32 bit and 24 bit integer output. ])
721
+ else
722
+ s_fpu="$s_fpu synth_s32"
723
+ fi
724
+
725
+ if test "x$real" = "xdisabled"; then
726
+ AC_DEFINE(NO_REAL, 1, [ Define to disable real output. ])
727
+ else
728
+ s_fpu="$s_fpu synth_real"
729
+ fi
730
+
731
+
732
+
733
+ layer1=enabled
734
+ AC_ARG_ENABLE(layer1,
735
+ [ --disable-layer1=[no/yes] no layer I decoding ],
736
+ [
737
+ if test "x$enableval" = xno; then
738
+ layer1="disabled"
739
+ fi
740
+ ], [])
741
+
742
+ if test "x$layer1" = "xdisabled"; then
743
+ AC_DEFINE(NO_LAYER1, 1, [ Define to disable layer I. ])
744
+ else
745
+ # layer1 needs code in layer2
746
+ DECODER_OBJ="$DECODER_OBJ layer1.\$(OBJEXT) layer2.\$(OBJEXT)"
747
+ DECODER_LOBJ="$DECODER_LOBJ layer1.lo layer2.lo"
748
+ fi
749
+
750
+ layer2=enabled
751
+ AC_ARG_ENABLE(layer2,
752
+ [ --disable-layer2=[no/yes] no layer II decoding ],
753
+ [
754
+ if test "x$enableval" = xno; then
755
+ layer2="disabled"
756
+ fi
757
+ ], [])
758
+
759
+ if test "x$layer2" = "xdisabled"; then
760
+ AC_DEFINE(NO_LAYER2, 1, [ Define to disable layer II. ])
761
+ else
762
+ # layer1 may have added the objects already
763
+ if test "x$layer1" = "xdisabled"; then
764
+ DECODER_OBJ="$DECODER_OBJ layer2.\$(OBJEXT)"
765
+ DECODER_LOBJ="$DECODER_LOBJ layer2.lo"
766
+ fi
767
+ fi
768
+
769
+ layer3=enabled
770
+ AC_ARG_ENABLE(layer3,
771
+ [ --disable-layer3=[no/yes] no layer III decoding ],
772
+ [
773
+ if test "x$enableval" = xno; then
774
+ layer3="disabled"
775
+ fi
776
+ ], [])
777
+
778
+ if test "x$layer3" = "xdisabled"; then
779
+ AC_DEFINE(NO_LAYER3, 1, [ Define to disable layer III. ])
780
+ else
781
+ DECODER_OBJ="$DECODER_OBJ layer3.\$(OBJEXT)"
782
+ DECODER_LOBJ="$DECODER_LOBJ layer3.lo"
783
+ fi
784
+
785
+ AC_ARG_WITH([audio], [
786
+ --with-audio=<list of modules> Select a list (or only one) of audio output modules (comma or space separated list).
787
+ ])
788
+ AC_ARG_WITH([default-audio], [
789
+ --with-default-audio=aix Use AIX as default audio output sub-system
790
+ --with-default-audio=alib Use Alib as default audio output sub-system (for HPUX)
791
+ --with-default-audio=alsa Use ALSA as default audio output sub-system
792
+ --with-default-audio=arts Use aRts as default audio output sub-system (KDE sound server)
793
+ --with-default-audio=dummy Use dummy as default audio (when no sound card is available)
794
+ --with-default-audio=esd Use ESoundD as default audio output sub-system
795
+ --with-default-audio=hp Use HP as default audio output sub-system
796
+ --with-default-audio=jack Use JACK as default low-latency audio server
797
+ --with-default-audio=coreaudio Use Mac OS X as default audio output sub-system (CoreAudio)
798
+ --with-default-audio=mint Use MinT as default audio output sub-system (Atari)
799
+ --with-default-audio=nas Use NAS as default audio output (Network Audio System)
800
+ --with-default-audio=os2 Use OS2 as default audio output sub-system
801
+ --with-default-audio=oss Use OSS as default audio output sub-system (/dev/dsp)
802
+ --with-default-audio=portaudio Use PortAudio as default audio output sub-system
803
+ --with-default-audio=pulse Use Pulse audio server as default audio output sub-system
804
+ --with-default-audio=sdl Use SDL as default audio output sub-system (Simple DirectMedia Layer)
805
+ --with-default-audio=sgi Use SGI as default audio output sub-system (IRIX)
806
+ --with-default-audio=sndio Use OpenBSD's sndio as default audio output sub-system
807
+ --with-default-audio=sun Use Sun as default audio output sub-system (/dev/audio)
808
+ --with-default-audio=win32 Use Win32 audio as default audio output sub-system
809
+ ])
810
+
811
+ AC_ARG_WITH([optimization], [
812
+ --with-optimization=0 No Optimization
813
+ --with-optimization=1 Limited Optimization (-O) (for gcc)
814
+ --with-optimization=2 Default Optimization (-O2 ...) (for gcc)
815
+ --with-optimization=3 More Optimize than default (-O3 ...) (for gcc)
816
+ --with-optimization=4 Optimize yet more (-O4 ...) (for gcc)
817
+ ])
818
+
819
+ AC_ARG_WITH([seektable], [
820
+ --with-seektable=<size> choose size of seek index table (0 disables it), default 1000
821
+ ])
822
+
823
+
824
+ dnl ############## Modules
825
+
826
+ # Dummy audio output module is always supported
827
+ output_modules="dummy"
828
+
829
+ # Decide on module file suffix. Setting it != .la allows removal of .la files.
830
+ AC_ARG_WITH([module-suffix], [
831
+ --with-module-suffix=.la (default) Use libtool's .la files for loading modules.
832
+ --with-module-suffix=[.so|.dll|...] Specify the native module file suffix to bypass .la files.
833
+ ])
834
+ if test x"$with_module_suffix" = x; then
835
+ with_module_suffix=.la
836
+ fi
837
+ AC_DEFINE_UNQUOTED( MODULE_FILE_SUFFIX, "$with_module_suffix", [The suffix for module files.] )
838
+
839
+ dnl ############## Assembler, compiler properties
840
+
841
+ # based on posting from John Dalgliesh <johnd@defyne.org> on ffmpeg (LGPL) mailing list
842
+ # find if .align arg is power-of-two or not
843
+ asmalign_exp="unknown"
844
+ if test x"$asmalign_exp" = xunknown; then
845
+ AC_MSG_CHECKING([if .align takes 2-exponent])
846
+ asmalign_exp="no"
847
+ echo '.align 3' > conftest.s
848
+ if $CCAS -c -o conftest.o conftest.s 1>/dev/null 2>&1; then
849
+ asmalign_exp="yes"
850
+ AC_MSG_RESULT([yes])
851
+ else
852
+ AC_MSG_RESULT([no])
853
+ fi
854
+ rm -f conftest.o conftest.s
855
+ fi
856
+ if test x"$asmalign_exp" = xyes; then
857
+ AC_DEFINE(ASMALIGN_EXP, 1, [ Define if .align takes 3 for alignment of 2^3=8 bytes instead of 8. ])
858
+ fi
859
+
860
+ ccalign="unknown"
861
+ if test x"$ccalign" = xunknown; then
862
+ AC_MSG_CHECKING([__attribute__((aligned(16)))])
863
+ ccalign="no"
864
+ echo '__attribute__((aligned(16))) float var;' > conftest.c
865
+ if $CC -c -o conftest.o conftest.c >/dev/null 2>&1; then
866
+ ccalign="yes"
867
+ AC_MSG_RESULT([yes])
868
+ else
869
+ AC_MSG_RESULT([no])
870
+ fi
871
+ rm -f conftest.o conftest.c
872
+ fi
873
+
874
+ dnl We apply alignment hints only to cpus that need it.
875
+ dnl See further below for the definition of CCALIGN
876
+
877
+ dnl ############## Really basic headers, needed for other checks.
878
+
879
+ AC_HEADER_STDC
880
+ dnl Is it too paranoid to specifically check for stdint.h and limits.h?
881
+ AC_CHECK_HEADERS([stdio.h stdlib.h string.h unistd.h sched.h sys/ioctl.h sys/types.h stdint.h limits.h inttypes.h sys/time.h sys/wait.h sys/resource.h sys/signal.h signal.h])
882
+
883
+ dnl ############## Types
884
+
885
+ dnl Large file support stuff needs cleanup. There are superfluous variables.
886
+
887
+ dnl Detect large file support, enable switches if needed.
888
+ AC_SYS_LARGEFILE
889
+ dnl If we do have a switch for large files, rename off_t-aware API calls.
890
+ dnl Using the file_offset_bits variable here is fine for linux (possibly Solaris),
891
+ dnl Others... we'll have to see.
892
+ dnl Note: I started writing this with with multiline replacements.
893
+ dnl Does not work. Automake insists on putting these into Makefiles where they break things.
894
+ if test "x$ac_cv_sys_file_offset_bits" = x || echo "$ac_cv_sys_file_offset_bits" | $GREP '@<:@^0-9@:>@' > /dev/null; then
895
+ dnl if it has non-numeric chars or is empty... ignore...
896
+ LFS_LOBJ=
897
+ else
898
+ # Add dual-mode wrapper code.
899
+ LFS_LOBJ=lfs_wrap.lo
900
+ fi
901
+
902
+ # Using the lower level macros instead of AC_TYPE_* for compatibility with not freshest autoconf.
903
+ AC_CHECK_TYPE(size_t, unsigned long)
904
+ AC_CHECK_TYPE(uintptr_t, unsigned long)
905
+ AC_CHECK_TYPE(ssize_t, long)
906
+ AC_CHECK_TYPE(off_t, long int)
907
+ AC_CHECK_TYPE(int32_t, int)
908
+ AC_CHECK_TYPE(uint32_t, unsigned int)
909
+ AC_CHECK_TYPE(int16_t, short)
910
+ AC_CHECK_TYPE(uint16_t, unsigned short)
911
+ AC_CHECK_SIZEOF(size_t,4)
912
+ AC_CHECK_SIZEOF(ssize_t,4)
913
+ AC_CHECK_SIZEOF(off_t,4)
914
+ AC_CHECK_SIZEOF(int32_t)
915
+ AC_CHECK_SIZEOF(long,4)
916
+
917
+ # The alias functions want to know the native off_t bits.
918
+ # "Native" also means large file offsets, if enabled, it's what is native to the mpg123 library.
919
+ if test "x$ac_cv_sizeof_long" = "x"; then
920
+ AC_MSG_ERROR([Cannot determine sizeof(long)?])
921
+ else
922
+ LFS_ALIAS_BITS=`expr "$ac_cv_sizeof_long" "*" "8"`
923
+ AC_DEFINE_UNQUOTED([LFS_ALIAS_BITS], $LFS_ALIAS_BITS,
924
+ [Define this to the size of long type in bits, used for LFS small/native alias functions.])
925
+ fi
926
+
927
+ lfs_alias=enabled
928
+ AC_ARG_ENABLE(lfs-alias,
929
+ [ --disable-lfs-alias disable alias wrappers for largefile bitness (mpg123_seek_32 in addition to mpg123_seek, mpg123_seek_64 as alias on x86-64) ],
930
+ [
931
+ if test "x$enableval" = xno; then
932
+ lfs_alias="disabled"
933
+ fi
934
+ ],
935
+ [
936
+ case $host in
937
+ *-cygwin*)
938
+ lfs_alias="disabled"
939
+ AC_MSG_NOTICE([lfs-alias disabled for Cygwin, use --enable-lfs-alias explicitly to enable, only if you know what you are doing])
940
+ ;;
941
+ esac
942
+
943
+ ])
944
+
945
+ AC_MSG_CHECKING([if we want to enable alias wrappers for largefile])
946
+ if test "x$lfs_alias" = "xenabled"; then
947
+ AC_MSG_RESULT([yes])
948
+ LFS_LOBJ="$LFS_LOBJ lfs_alias.lo"
949
+ else
950
+ AC_MSG_RESULT([no])
951
+ fi
952
+
953
+ AC_SUBST(LFS_LOBJ)
954
+
955
+
956
+ dnl ############## Function Checks
957
+
958
+ AC_FUNC_MMAP
959
+
960
+ # Check if system supports termios
961
+ AC_SYS_POSIX_TERMIOS
962
+ if test "x$ac_cv_sys_posix_termios" = "xyes"; then
963
+ AC_DEFINE_UNQUOTED([HAVE_TERMIOS], 1,
964
+ [Define this if you have the POSIX termios library])
965
+ fi
966
+
967
+ AC_CHECK_FUNCS( random )
968
+
969
+ # Check for sched_setscheduler
970
+ AC_CHECK_FUNCS( sched_setscheduler setuid getuid)
971
+
972
+ # Check for setpriority
973
+ AC_CHECK_FUNCS( setpriority )
974
+
975
+ AC_CHECK_FUNCS( strerror )
976
+
977
+ AC_CHECK_FUNCS( setlocale nl_langinfo )
978
+
979
+ AC_CHECK_FUNCS( strdup )
980
+
981
+ AC_CHECK_FUNCS( atoll )
982
+
983
+ AC_CHECK_FUNCS( mkfifo, [ have_mkfifo=yes ], [ have_mkfifo=no ] )
984
+
985
+ dnl ############## Header and Library Checks
986
+
987
+ # locale headers
988
+ AC_CHECK_HEADERS([locale.h langinfo.h])
989
+ # Headers for network (http) stuff
990
+ network_type=Unknown
991
+ AC_CHECK_HEADERS([netdb.h sys/param.h sys/socket.h netinet/in.h arpa/inet.h])
992
+ if test "x$ac_cv_header_netdb_h" = "xyes" &&
993
+ test "x$ac_cv_header_sys_param_h" = "xyes" &&
994
+ test "x$ac_cv_header_sys_socket_h" = "xyes" &&
995
+ test "x$ac_cv_header_netinet_in_h" = "xyes" &&
996
+ test "x$ac_cv_header_arpa_inet_h" = "xyes"; then
997
+ have_network=yes
998
+ network_type=Posix
999
+ else
1000
+ have_network=no
1001
+ fi
1002
+
1003
+ dnl trying to get that socket lib settled in one line
1004
+ AC_SEARCH_LIBS(gethostbyname, nsl socket)
1005
+ dnl OK, two lines... Solaris needs -lnsl -lsocket
1006
+ AC_SEARCH_LIBS(socket, socket)
1007
+
1008
+ AC_CHECK_FUNCS( getaddrinfo, [ have_ipv6=yes ], [ have_ipv6=no ] )
1009
+
1010
+ APR_CHECK_GETADDRINFO_ADDRCONFIG()
1011
+
1012
+ # Substitutions for the installable mpg123.h header
1013
+ if test "x$ac_cv_header_stdio_h" = "xyes"; then
1014
+ INCLUDE_STDIO_H="#include <stdio.h>"
1015
+ else
1016
+ INCLUDE_STDIO_H="/* #include <stdio.h> is not available on this system */"
1017
+ fi
1018
+ AC_SUBST(INCLUDE_STDIO_H)
1019
+
1020
+ if test "x$ac_cv_header_stdlib_h" = "xyes"; then
1021
+ INCLUDE_STDLIB_H="#include <stdlib.h>"
1022
+ else
1023
+ INCLUDE_STDLIB_H="/* #include <stdlib.h> is not available on this system */"
1024
+ fi
1025
+ AC_SUBST(INCLUDE_STDLIB_H)
1026
+
1027
+ if test "x$ac_cv_header_sys_types_h" = "xyes"; then
1028
+ INCLUDE_SYS_TYPE_H="#include <sys/types.h>"
1029
+ else
1030
+ INCLUDE_SYS_TYPE_H="/* #include <sys/types.h> is not available on this system */"
1031
+ fi
1032
+ AC_SUBST(INCLUDE_SYS_TYPE_H)
1033
+
1034
+
1035
+ # Checks for maths libraries.
1036
+ AC_CHECK_LIB([m], [sqrt])
1037
+ AC_CHECK_LIB([mx], [powf])
1038
+
1039
+ # attempt to make the signal stuff work... also with GENERIC - later
1040
+ #if test x"$ac_cv_header_sys_signal_h" = xyes; then
1041
+ # AC_CHECK_FUNCS( sigemptyset sigaddset sigprocmask sigaction )
1042
+ # if test x"$ac_cv_func_sigemptyset" = xyes &&
1043
+ # test x"$ac_cv_func_sigaddset" = xyes &&
1044
+ # test x"$ac_cv_func_sigprocmask" = xyes &&
1045
+ # test x"$ac_cv_func_sigaction" = xyes; then
1046
+ # AC_DEFINE(
1047
+ #fi
1048
+
1049
+ dnl ############## Choose compiler flags and CPU
1050
+
1051
+ # do not assume gcc here, so no flags by default
1052
+ ADD_CFLAGS=""
1053
+ ADD_CPPFLAGS=""
1054
+ ADD_LDFLAGS=""
1055
+ LIBS="$LIBS"
1056
+
1057
+ AC_CHECK_HEADER([os2.h], [ADD_CPPFLAGS="$ADD_CPPFLAGS -DOS2"])
1058
+
1059
+ # If debugging is enabled then make warnings errors
1060
+ if test x"$debugging" = xenabled; then
1061
+ ADD_CFLAGS="-g"
1062
+ # gcc specific...
1063
+ if test x"$GCC" = xyes; then
1064
+ ADD_CFLAGS="$ADD_CFLAGS -Wall -fno-strict-aliasing"
1065
+ if test x"$nagging" = xenabled; then
1066
+ ADD_CFLAGS="$ADD_CFLAGS -Werror -pedantic -DPLAIN_C89"
1067
+ fi
1068
+ fi
1069
+ fi
1070
+
1071
+ dnl Only try the attribute_align_arg mumbo-jumbo on x86, x86-64 warns/errors out on that attribute.
1072
+ dnl ...dunno even what about other architectures.
1073
+ case $host in
1074
+ i?86-*)
1075
+ AC_DEFINE(ABI_ALIGN_FUN, 1, [ Define if your architecture wants/needs/can use attribute_align_arg and alignment checks. It is for 32bit x86... ])
1076
+ ;;
1077
+ esac
1078
+
1079
+ s_altivec="synth_altivec dct64_altivec"
1080
+ s_i386="dct64_i386"
1081
+ s_i486="$s_i386 synth_i486 dct64_i486"
1082
+ s_i586="$s_i386 synth_i586"
1083
+ s_i586d="$s_i386 synth_i586_dither"
1084
+ s_3dnow="$s_i386 synth_3dnow dct64_3dnow equalizer_3dnow"
1085
+ s_3dnowext="$s_i386 dct64_3dnowext tabinit_mmx synth_3dnowext"
1086
+ if test "x$layer3" = "xenabled"; then
1087
+ s_3dnow="$s_3dnow dct36_3dnow"
1088
+ s_3dnowext="$s_3dnowext dct36_3dnowext"
1089
+ fi
1090
+ s_mmx="$s_i386 dct64_mmx tabinit_mmx synth_mmx"
1091
+ s_sse="$s_i386 tabinit_mmx dct64_sse dct64_sse_float synth_sse_float synth_stereo_sse_float synth_sse_s32 synth_stereo_sse_s32 "
1092
+ s_x86_64="dct64_x86_64 dct64_x86_64_float synth_x86_64_float synth_x86_64_s32 synth_stereo_x86_64_float synth_stereo_x86_64_s32"
1093
+ s_x86multi="getcpuflags"
1094
+ s_dither="dither"
1095
+ s_neon="dct64_neon dct64_neon_float synth_neon_float synth_neon_s32 synth_stereo_neon_float synth_stereo_neon_s32"
1096
+
1097
+ # choose optimized 16bit decoder for SSE, quality or fast
1098
+ # note: supporting deactivation of output formats for these decoders would need more logic here
1099
+ if test "x$integers" = "xquality"; then
1100
+ s_sse="$s_sse synth_sse_accurate synth_stereo_sse_accurate"
1101
+ s_x86_64="$s_x86_64 synth_x86_64_accurate synth_stereo_x86_64_accurate"
1102
+ s_arm="synth_arm_accurate"
1103
+ s_neon="$s_neon synth_neon_accurate synth_stereo_neon_accurate"
1104
+ else
1105
+ s_sse="$s_sse synth_sse" # no stereo
1106
+ s_x86_64="$s_x86_64 synth_x86_64 synth_stereo_x86_64"
1107
+ s_arm="synth_arm"
1108
+ s_neon="$s_neon synth_neon synth_stereo_neon"
1109
+ fi
1110
+
1111
+ dnl CPU specific compiler flags and sources
1112
+ case $cpu_type in
1113
+ generic)
1114
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DOPT_GENERIC -DREAL_IS_FLOAT"
1115
+ more_sources="$s_fpu"
1116
+ ccalign=no
1117
+ ;;
1118
+ generic_dither)
1119
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DOPT_GENERIC_DITHER -DREAL_IS_FLOAT"
1120
+ more_sources="$s_fpu $s_dither"
1121
+ ccalign=no
1122
+ ;;
1123
+ dnl Not disabling buffer for float mode... check that this is OK now!
1124
+ generic_fpu | generic_float)
1125
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DOPT_GENERIC -DREAL_IS_FLOAT"
1126
+ more_sources="$s_fpu"
1127
+ ccalign=no
1128
+ ;;
1129
+ generic_nofpu)
1130
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DOPT_GENERIC -DREAL_IS_FIXED"
1131
+ more_sources=
1132
+ ccalign=no
1133
+ ;;
1134
+ ppc_nofpu)
1135
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DOPT_PPC -DREAL_IS_FIXED"
1136
+ more_sources=
1137
+ ccalign=no
1138
+ ;;
1139
+ arm_nofpu)
1140
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DOPT_ARM -DREAL_IS_FIXED"
1141
+ more_sources="$s_arm"
1142
+ ccalign=no
1143
+ ;;
1144
+ altivec)
1145
+ ADD_CFLAGS="$ADD_CFLAGS -maltivec"
1146
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DREAL_IS_FLOAT -DOPT_ALTIVEC"
1147
+ more_sources="$s_altivec $s_fpu"
1148
+ AC_MSG_CHECKING([if $CC accepts -faltivec])
1149
+ touch conftest.c
1150
+ if $CC -faltivec -c -o conftest.o conftest.c >/dev/null 2>&1; then
1151
+ ADD_CFLAGS="$ADD_CFLAGS -faltivec"
1152
+ AC_MSG_RESULT([yes])
1153
+ else
1154
+ AC_MSG_RESULT([no])
1155
+ fi
1156
+ rm -f conftest.o conftest.c
1157
+ ;;
1158
+ neon)
1159
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DOPT_NEON -DREAL_IS_FLOAT"
1160
+ more_sources="$s_neon $s_fpu"
1161
+ ;;
1162
+ i386)
1163
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DOPT_I386 -DREAL_IS_FLOAT"
1164
+ more_sources="$s_fpu $s_i386"
1165
+ ccalign=no
1166
+ ;;
1167
+ i386_fpu)
1168
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DOPT_I386 -DREAL_IS_FLOAT"
1169
+ more_sources="$s_fpu $s_i386"
1170
+ ccalign=no
1171
+ ;;
1172
+ i386_nofpu)
1173
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DOPT_I386 -DREAL_IS_FIXED"
1174
+ more_sources="$s_i386"
1175
+ ccalign=no
1176
+ ;;
1177
+ i486)
1178
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DOPT_I486 -DREAL_IS_FLOAT"
1179
+ more_sources="$s_fpu $s_i486"
1180
+ ccalign=no
1181
+ ;;
1182
+ i586)
1183
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DOPT_I586 -DREAL_IS_FLOAT"
1184
+ more_sources="$s_fpu $s_i586"
1185
+ ;;
1186
+ i586_dither)
1187
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DOPT_I586_DITHER -DREAL_IS_FLOAT"
1188
+ more_sources="$s_fpu $s_i586d $s_dither"
1189
+ ;;
1190
+ 3dnow)
1191
+ # legacy 3dnow had the 3dnow paired with i586...
1192
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DOPT_MULTI -DOPT_I586 -DOPT_3DNOW -DREAL_IS_FLOAT"
1193
+ more_sources="$s_fpu $s_i586 $s_3dnow $s_x86multi "
1194
+ ;;
1195
+ 3dnow_alone)
1196
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DOPT_3DNOW -DREAL_IS_FLOAT"
1197
+ more_sources="$s_fpu $s_3dnow"
1198
+ ;;
1199
+ 3dnowext_alone)
1200
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DOPT_3DNOWEXT -DREAL_IS_FLOAT"
1201
+ more_sources="$s_fpu $s_3dnowext"
1202
+ ;;
1203
+ 3dnowext)
1204
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DOPT_MULTI -DOPT_3DNOW -DOPT_3DNOWEXT -DREAL_IS_FLOAT"
1205
+ more_sources="$s_fpu $s_3dnowext $s_3dnow $s_x86multi"
1206
+ ;;
1207
+ mmx_alone|mmx)
1208
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DOPT_MMX -DREAL_IS_FLOAT"
1209
+ more_sources="$s_fpu $s_mmx"
1210
+ ;;
1211
+ sse_alone|sse)
1212
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DOPT_SSE -DREAL_IS_FLOAT"
1213
+ more_sources="$s_fpu $s_sse"
1214
+ ;;
1215
+ x86|x86_dither)
1216
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DOPT_MULTI -DOPT_GENERIC -DOPT_GENERIC_DITHER -DOPT_I386 -DOPT_I586 -DOPT_I586_DITHER -DOPT_MMX -DOPT_3DNOW -DOPT_3DNOWEXT -DOPT_SSE -DREAL_IS_FLOAT"
1217
+ more_sources="$s_fpu $s_i386 $s_i586 $s_i586d $s_mmx $s_3dnow $s_3dnowext $s_sse $s_x86multi $s_dither"
1218
+ ;;
1219
+ x86-64)
1220
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DOPT_X86_64 -DREAL_IS_FLOAT"
1221
+ more_sources="$s_fpu $s_x86_64"
1222
+ ;;
1223
+ x86-64_all|x86-64_dither)
1224
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DOPT_MULTI -DOPT_X86_64 -DOPT_GENERIC -DOPT_GENERIC_DITHER -DREAL_IS_FLOAT"
1225
+ more_sources="$s_fpu $s_x86_64 $s_dither"
1226
+ ;;
1227
+ *)
1228
+ AC_MSG_ERROR([Unknown CPU type '$cpu_type'])
1229
+ ;;
1230
+ esac
1231
+
1232
+ # Mac OS X specific linker flags
1233
+ case $cpu_type in
1234
+ 3dnow|3dnow_alone|3dnowext|3dnowext_alone|mmx|mmx_alone|sse|sse_alone|x86|x86_dither)
1235
+ case $host in
1236
+ i386-apple-darwin8*|*-apple-darwin10*)
1237
+ ADD_LDFLAGS="$ADD_LDFLAGS -Wl,-read_only_relocs,suppress"
1238
+ ;;
1239
+ i386-apple-darwin9*)
1240
+ ADD_CFLAGS="$ADD_CFLAGS -mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk"
1241
+ ADD_LDFLAGS="$ADD_LDFLAGS -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk -Wl,-classic_linker -Wl,-read_only_relocs,suppress"
1242
+ ;;
1243
+ esac
1244
+ ;;
1245
+ esac
1246
+
1247
+ # Check if we want feature report function.
1248
+ AC_MSG_CHECKING([if we want feature report function])
1249
+ feature_report=enabled
1250
+ AC_ARG_ENABLE(feature_report,
1251
+ [ --disable-feature_report Disable feature report function ],
1252
+ [
1253
+ if test "x$enableval" = xno; then
1254
+ AC_MSG_RESULT([no])
1255
+ feature_report=disabled
1256
+ else
1257
+ AC_MSG_RESULT([yes])
1258
+ fi
1259
+ ],
1260
+ [AC_MSG_RESULT([yes])])
1261
+
1262
+ if test "x$feature_report" = xenabled; then
1263
+ more_sources="$more_sources feature"
1264
+ fi
1265
+
1266
+ for i in $more_sources
1267
+ do
1268
+ # Echo make sure every file is only once in the list.
1269
+ echo "$DECODER_OBJ" | $GREP -v -w "$i\.\$(OBJEXT)" > /dev/null && DECODER_OBJ="$DECODER_OBJ $i.\$(OBJEXT)"
1270
+ echo "$DECODER_LOBJ" | $GREP -v -w "$i\.lo" > /dev/null && DECODER_LOBJ="$DECODER_LOBJ $i.lo"
1271
+ done
1272
+
1273
+ AC_SUBST(DECODER_OBJ)
1274
+ AC_SUBST(DECODER_LOBJ)
1275
+
1276
+ dnl Finally insert the code switch for alignment, above cpu selection having possibly changed the setting.
1277
+ if test x"$ccalign" = xyes; then
1278
+ AC_DEFINE(CCALIGN, 1, [ Define if __attribute__((aligned(16))) shall be used ])
1279
+ fi
1280
+
1281
+
1282
+ dnl ############## Output module choice
1283
+
1284
+ # The full list of supported modules to check, first come, first serve.
1285
+ check_modules="alsa oss coreaudio sndio sun win32 os2 esd jack portaudio pulse sdl nas arts openal dummy"
1286
+ # The final list.
1287
+ output_modules=
1288
+
1289
+ check_forced=no
1290
+ check_failed=no
1291
+ if test "x$with_audio" != "x"; then
1292
+ check_modules="`echo $with_audio|tr , ' '` dummy"
1293
+ echo "Limiting outputs to build according to your preference: $check_modules"
1294
+ check_forced=yes
1295
+ fi
1296
+
1297
+ PKG_PROG_PKG_CONFIG([])
1298
+
1299
+ # Now go through the modules to check and do the chores.
1300
+ for m in $check_modules
1301
+ do
1302
+ case "$m" in
1303
+ dummy)
1304
+ AC_MSG_CHECKING([if you are too dumbing dumb for the dummy])
1305
+ AC_MSG_RESULT([no])
1306
+ output_modules="$output_modules dummy"
1307
+ HAVE_DUMMY=yes
1308
+ ;;
1309
+ oss)
1310
+ AC_CHECK_HEADERS([sys/soundcard.h linux/soundcard.h machine/soundcard.h])
1311
+ if test "x${ac_cv_header_sys_soundcard_h}" = "xyes" \
1312
+ -o "x${ac_cv_header_linux_soundcard_h}" = "xyes" \
1313
+ -o "x${ac_cv_header_machine_soundcard_h}" = "xyes";
1314
+ then
1315
+ output_modules="$output_modules oss"
1316
+ HAVE_OSS="yes"
1317
+ else
1318
+ check_failed=yes
1319
+ fi
1320
+ ;;
1321
+ alsa)
1322
+ ALSA_LIBS="-lasound"
1323
+ # Check for ALSA
1324
+ AC_CHECK_LIB( [asound], [snd_pcm_open],
1325
+ [ AC_CHECK_HEADER( [alsa/asoundlib.h],
1326
+ [ output_modules="$output_modules alsa" HAVE_ALSA="yes"],
1327
+ [ AC_MSG_WARN([Found ALSA library but NOT header files on your system]) ] )
1328
+ ]
1329
+ )
1330
+ if test "x$HAVE_ALSA" != xyes; then
1331
+ check_failed=yes
1332
+ fi
1333
+ ;;
1334
+ jack)
1335
+ PKG_CHECK_MODULES(JACK, jack, output_modules="$output_modules jack" HAVE_JACK="yes", HAVE_JACK="no" check_failed=yes)
1336
+ ;;
1337
+ pulse)
1338
+ PKG_CHECK_MODULES(PULSE, libpulse-simple, output_modules="$output_modules pulse" HAVE_PULSE="yes", HAVE_PULSE="no" check_failed=yes)
1339
+ ;;
1340
+ esd)
1341
+ PKG_CHECK_MODULES(ESD, esound, output_modules="$output_modules esd" HAVE_ESD="yes", HAVE_ESD="no" check_failed=yes)
1342
+ ;;
1343
+ portaudio)
1344
+ # Remember: This looks only insane because you chose an insane tab width!
1345
+ PORTAUDIO_LIBS="-lportaudio"
1346
+ PORTAUDIO_CFLAGS=
1347
+ case $host in
1348
+ *-*-mingw32)
1349
+ # We tested portaudio with MME
1350
+ if test "x$HAVE_PORTAUDIO" != "xyes"; then
1351
+ AC_CHECK_LIB( [portaudio], [Pa_Initialize],
1352
+ [ AC_CHECK_HEADER( [portaudio.h],
1353
+ [ output_modules="$output_modules portaudio" HAVE_PORTAUDIO_WINMM="yes" HAVE_PORTAUDIO="yes" ],
1354
+ [ AC_MSG_WARN([Found PortAudio library but NOT header files on your system]) ] )
1355
+ PORTAUDIO_LIBS="$PORTAUDIO_LIBS -lwinmm"
1356
+ ],
1357
+ [ HAVE_PORTAUDIO="no"],
1358
+ [ -lwinmm ]
1359
+ )
1360
+ fi
1361
+ ;;
1362
+ *)
1363
+ AC_CHECK_LIB( [portaudio], [Pa_Initialize],
1364
+ [ AC_CHECK_HEADER( [portaudio.h],
1365
+ [ output_modules="$output_modules portaudio" HAVE_PORTAUDIO="yes" ],
1366
+ [ AC_MSG_WARN([Found PortAudio library but NOT header files on your system]) ] )
1367
+ ]
1368
+ )
1369
+ ;;
1370
+ esac
1371
+ if test "x$HAVE_PORTAUDIO" != xyes; then
1372
+ check_failed=yes
1373
+ else
1374
+ # See if we have v19 or v18
1375
+ AC_CHECK_LIB( [portaudio], [Pa_GetVersion], [:], [AC_DEFINE( [PORTAUDIO18], 1, [Define if portaudio v18 API is wanted.]) ], [$PORTAUDIO_LIBS] )
1376
+ fi
1377
+ ;;
1378
+ sdl)
1379
+ PKG_CHECK_MODULES(SDL, sdl, output_modules="$output_modules sdl" HAVE_SDL="yes", HAVE_SDL="no" check_failed=yes)
1380
+ ;;
1381
+ nas)
1382
+ NAS_LIBS=-laudio
1383
+ AC_CHECK_LIB( [audio], [AuOpenServer],
1384
+ [ AC_CHECK_HEADER( [audio/audiolib.h],
1385
+ [ output_modules="$output_modules nas" HAVE_NAS="yes"],
1386
+ [ AC_MSG_WARN([Found NAS library but NOT header files on your system]) ] )
1387
+ ]
1388
+ )
1389
+ if test "x$HAVE_NAS" != xyes; then
1390
+ check_failed=yes
1391
+ fi
1392
+ ;;
1393
+ win32)
1394
+ # Check for windows ... and win32 audio
1395
+ # Does not work... instead just check for header
1396
+ # AC_CHECK_LIB( [winmm], [waveOutOpen] )
1397
+ WIN32_LIBS=-lwinmm
1398
+ AC_CHECK_HEADERS([windows.h], output_modules="$output_modules win32" HAVE_WIN32=yes, HAVE_WIN32=no check_failed=yes)
1399
+ ;;
1400
+ sndio)
1401
+ SNDIO_LIBS=-lsndio
1402
+ AC_CHECK_LIB([sndio], [sio_open],
1403
+ [AC_CHECK_HEADERS([sndio.h],
1404
+ [output_modules="$output_modules sndio" HAVE_SNDIO="yes"])
1405
+ ]
1406
+ )
1407
+ if test "x$HAVE_SNDIO" != xyes; then
1408
+ check_failed=yes
1409
+ fi
1410
+ ;;
1411
+ sun)
1412
+ AC_CHECK_HEADERS([sun/audioio.h sys/audioio.h asm/audioio.h sys/audio.h])
1413
+ if test "x${ac_cv_header_sun_audioio_h}" = "xyes" \
1414
+ -o "x${ac_cv_header_sys_audioio_h}" = "xyes" \
1415
+ -o "x${ac_cv_header_asm_audioio_h}" = "xyes";
1416
+ then
1417
+ output_modules="$output_modules sun"
1418
+ HAVE_SUN="yes"
1419
+ else
1420
+ check_failed=yes
1421
+ fi
1422
+ ;;
1423
+ coreaudio)
1424
+ COREAUDIO_LIBS="-framework AudioToolbox -framework AudioUnit -framework CoreServices"
1425
+ AC_CHECK_HEADERS([AudioUnit/AudioUnit.h CoreServices/CoreServices.h AudioToolbox/AudioToolbox.h])
1426
+ if test "x${ac_cv_header_AudioUnit_AudioUnit_h}" = "xyes" \
1427
+ -a "x${ac_cv_header_CoreServices_CoreServices_h}" = "xyes" \
1428
+ -a "x${ac_cv_header_AudioToolbox_AudioToolbox_h}" = "xyes";
1429
+ then
1430
+ if test x"$modules" = xdisabled; then
1431
+ AC_MSG_WARN([Disabling buffer because of directly linked CoreAudio! Use the module if you need the buffer.])
1432
+ buffer=disabled
1433
+ fi
1434
+ output_modules="$output_modules coreaudio"
1435
+ HAVE_COREAUDIO="yes"
1436
+ else
1437
+ check_failed=yes
1438
+ fi
1439
+ ;;
1440
+ arts)
1441
+ AC_MSG_CHECKING([for artsc])
1442
+ if artsc-config; then
1443
+ AC_MSG_RESULT([yes])
1444
+ output_modules="$output_modules arts"
1445
+ HAVE_ARTS=yes
1446
+ ARTS_LIBS=`artsc-config --libs`
1447
+ ARTS_CFLAGS=`artsc-config --cflags`
1448
+ else
1449
+ AC_MSG_RESULT([no])
1450
+ check_failed=yes
1451
+ fi
1452
+ ;;
1453
+ openal)
1454
+ AC_CHECK_HEADERS([OpenAL/al.h OpenAL/alc.h AL/al.h AL/alc.h al.h alc.h])
1455
+ if test "x${ac_cv_header_OpenAL_al_h}" = "xyes" \
1456
+ -a "x${ac_cv_header_OpenAL_alc_h}" = "xyes";
1457
+ then #Mac OS X
1458
+ output_modules="$output_modules openal"
1459
+ OPENAL_LIBS="-framework OpenAL"
1460
+ OPENAL_CFLAGS="-DOPENAL_SUBDIR_OPENAL"
1461
+ HAVE_OPENAL="yes"
1462
+ elif test "x${ac_cv_header_AL_al_h}" = "xyes" \
1463
+ -a "x${ac_cv_header_AL_alc_h}" = "xyes";
1464
+ then #Linux
1465
+ output_modules="$output_modules openal"
1466
+ OPENAL_LIBS="-lopenal"
1467
+ OPENAL_CFLAGS="-DOPENAL_SUBDIR_AL"
1468
+ HAVE_OPENAL="yes"
1469
+ elif test "x${ac_cv_header_al_h}" = "xyes" \
1470
+ -a "x${ac_cv_header_alc_h}" = "xyes";
1471
+ then #Windows?
1472
+ output_modules="$output_modules openal"
1473
+ OPENAL_LIBS="-lopenal"
1474
+ OPENAL_CFLAGS=""
1475
+ HAVE_OPENAL="yes"
1476
+ else
1477
+ check_failed=yes
1478
+ fi
1479
+ ;;
1480
+ os2)
1481
+ OS2_LIBS="-los2me -lmmpm2 -lsocket"
1482
+ AC_CHECK_HEADERS([os2.h])
1483
+ # os2me.h depends on os2.h
1484
+ # Yes, that way of coding it is ugly.
1485
+ if test "x${ac_cv_header_os2_h}" = xyes
1486
+ then
1487
+ # We mimick exactly the way how the header will be used.
1488
+ # It seems to be picky...
1489
+ AC_CHECK_HEADERS([os2me.h], [], [], [#define INCL_OS2MM
1490
+ #define INCL_DOS
1491
+ #define INCL_VIO
1492
+ #define INCL_KBD
1493
+ #include <os2.h>
1494
+ #])
1495
+ fi
1496
+ if test "x${ac_cv_header_os2_h}" = xyes \
1497
+ -a "x${ac_cv_header_os2me_h}" = xyes
1498
+ then
1499
+ output_modules="$output_modules os2"
1500
+ HAVE_OS2=yes
1501
+ else
1502
+ check_failed=yes
1503
+ fi
1504
+ ;;
1505
+ # from here on only forced tests, untested code
1506
+ hp)
1507
+ # What's the deal with that and alib?
1508
+ UNSUPPORTED_AUDIO=yes
1509
+ AC_CHECK_HEADER([sys/audio.h], [output_modules="$output_modules hp" HAVE_HP=yes], [check_failed=yes])
1510
+ ;;
1511
+ alib)
1512
+ UNSUPPORTED_AUDIO=yes
1513
+ # ALIB_CFLAGS="-I/opt/audio/include"
1514
+ ALIB_LIBS=-lAlib
1515
+ # These headers may not be all about audio but they are used.
1516
+ AC_CHECK_HEADERS([ Alib.h CUlib.h netdb.h netinet/in.h netinet/tcp.h])
1517
+ if test "x${ac_cv_header_Alib_h}" = xyes \
1518
+ -a "x${ac_cv_header_CUlib_h}" = xyes \
1519
+ -a "x${ac_cv_header_netdb_h}" = xyes \
1520
+ -a "x${ac_cv_header_netinet_in_h}" = xyes \
1521
+ -a "x${ac_cv_header_netinet_tcp_h}" = xyes
1522
+ then
1523
+ output_modules="$output_modules alib"
1524
+ HAVE_ALIB=yes
1525
+ else
1526
+ check_failed=yes
1527
+ fi
1528
+ ;;
1529
+ mint)
1530
+ UNSUPPORTED_AUDIO=yes
1531
+ AC_CHECK_HEADERS([audios.h], [output_modules="$output_modules mint" HAVE_MINT=yes], [check_failes=yes])
1532
+ ;;
1533
+ aix)
1534
+ UNSUPPORTED_AUDIO=yes
1535
+ AC_CHECK_HEADERS([sys/audio.h], [output_modules="$output_modules aix" HAVE_AIX=yes], [check_failed=yes])
1536
+ ;;
1537
+ sgi)
1538
+ UNSUPPORTED_AUDIO=yes
1539
+ SGI_LIBS=-laudio
1540
+ AC_CHECK_HEADER([dmedia/audio.h], [output_modules="$output_modules sgi" HAVE_SGI=yes], [check_failed=yes])
1541
+ ;;
1542
+ *)
1543
+ AC_MSG_ERROR([Unsupported/-known output '$m' demanded!])
1544
+ ;;
1545
+ esac
1546
+ done
1547
+
1548
+ if test "x$check_forced" = xyes -a "x$UNSUPPORTED_AUDIO" = xyes; then
1549
+ AC_MSG_WARN([You requested bulding of an unsupported audio module. Be prepared for happy hacking and please tell us about your experience!])
1550
+ fi
1551
+
1552
+ if test "x$check_forced" = xyes -a "x$check_failed" = "xyes"; then
1553
+ AC_MSG_ERROR([One/some of your requested audio modules failed the test!])
1554
+ fi
1555
+
1556
+ # When you extend check_modules, you should extend this:
1557
+ #for i in alsa oss coreaudio sndio sun win32 esd jack portaudio pulse sdl nas aix alib arts hp os2 sgi mint openal dummy; do echo $i; done |
1558
+ #perl -ne 'chomp; $big = uc($_); print <<EOT;
1559
+ #AC_SUBST(${big}_LIBS)
1560
+ #AC_SUBST(${big}_LDFLAGS)
1561
+ #AC_SUBST(${big}_CFLAGS)
1562
+ #AM_CONDITIONAL( [HAVE_$big], [test "x\$HAVE_$big" = xyes] )
1563
+ #EOT
1564
+ #'
1565
+ AC_SUBST(ALSA_LIBS)
1566
+ AC_SUBST(ALSA_LDFLAGS)
1567
+ AC_SUBST(ALSA_CFLAGS)
1568
+ AM_CONDITIONAL( [HAVE_ALSA], [test "x$HAVE_ALSA" = xyes] )
1569
+ AC_SUBST(OSS_LIBS)
1570
+ AC_SUBST(OSS_LDFLAGS)
1571
+ AC_SUBST(OSS_CFLAGS)
1572
+ AM_CONDITIONAL( [HAVE_OSS], [test "x$HAVE_OSS" = xyes] )
1573
+ AC_SUBST(COREAUDIO_LIBS)
1574
+ AC_SUBST(COREAUDIO_LDFLAGS)
1575
+ AC_SUBST(COREAUDIO_CFLAGS)
1576
+ AM_CONDITIONAL( [HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = xyes] )
1577
+ AC_SUBST(SNDIO_LIBS)
1578
+ AC_SUBST(SNDIO_LDFLAGS)
1579
+ AC_SUBST(SNDIO_CFLAGS)
1580
+ AM_CONDITIONAL( [HAVE_SNDIO], [test "x$HAVE_SNDIO" = xyes] )
1581
+ AC_SUBST(SUN_LIBS)
1582
+ AC_SUBST(SUN_LDFLAGS)
1583
+ AC_SUBST(SUN_CFLAGS)
1584
+ AM_CONDITIONAL( [HAVE_SUN], [test "x$HAVE_SUN" = xyes] )
1585
+ AC_SUBST(WIN32_LIBS)
1586
+ AC_SUBST(WIN32_LDFLAGS)
1587
+ AC_SUBST(WIN32_CFLAGS)
1588
+ AM_CONDITIONAL( [HAVE_WIN32], [test "x$HAVE_WIN32" = xyes] )
1589
+ AC_SUBST(ESD_LIBS)
1590
+ AC_SUBST(ESD_LDFLAGS)
1591
+ AC_SUBST(ESD_CFLAGS)
1592
+ AM_CONDITIONAL( [HAVE_ESD], [test "x$HAVE_ESD" = xyes] )
1593
+ AC_SUBST(JACK_LIBS)
1594
+ AC_SUBST(JACK_LDFLAGS)
1595
+ AC_SUBST(JACK_CFLAGS)
1596
+ AM_CONDITIONAL( [HAVE_JACK], [test "x$HAVE_JACK" = xyes] )
1597
+ AC_SUBST(PORTAUDIO_LIBS)
1598
+ AC_SUBST(PORTAUDIO_LDFLAGS)
1599
+ AC_SUBST(PORTAUDIO_CFLAGS)
1600
+ AM_CONDITIONAL( [HAVE_PORTAUDIO], [test "x$HAVE_PORTAUDIO" = xyes] )
1601
+ AC_SUBST(PULSE_LIBS)
1602
+ AC_SUBST(PULSE_LDFLAGS)
1603
+ AC_SUBST(PULSE_CFLAGS)
1604
+ AM_CONDITIONAL( [HAVE_PULSE], [test "x$HAVE_PULSE" = xyes] )
1605
+ AC_SUBST(SDL_LIBS)
1606
+ AC_SUBST(SDL_LDFLAGS)
1607
+ AC_SUBST(SDL_CFLAGS)
1608
+ AM_CONDITIONAL( [HAVE_SDL], [test "x$HAVE_SDL" = xyes] )
1609
+ AC_SUBST(NAS_LIBS)
1610
+ AC_SUBST(NAS_LDFLAGS)
1611
+ AC_SUBST(NAS_CFLAGS)
1612
+ AM_CONDITIONAL( [HAVE_NAS], [test "x$HAVE_NAS" = xyes] )
1613
+ AC_SUBST(AIX_LIBS)
1614
+ AC_SUBST(AIX_LDFLAGS)
1615
+ AC_SUBST(AIX_CFLAGS)
1616
+ AM_CONDITIONAL( [HAVE_AIX], [test "x$HAVE_AIX" = xyes] )
1617
+ AC_SUBST(ALIB_LIBS)
1618
+ AC_SUBST(ALIB_LDFLAGS)
1619
+ AC_SUBST(ALIB_CFLAGS)
1620
+ AM_CONDITIONAL( [HAVE_ALIB], [test "x$HAVE_ALIB" = xyes] )
1621
+ AC_SUBST(ARTS_LIBS)
1622
+ AC_SUBST(ARTS_LDFLAGS)
1623
+ AC_SUBST(ARTS_CFLAGS)
1624
+ AM_CONDITIONAL( [HAVE_ARTS], [test "x$HAVE_ARTS" = xyes] )
1625
+ AC_SUBST(HP_LIBS)
1626
+ AC_SUBST(HP_LDFLAGS)
1627
+ AC_SUBST(HP_CFLAGS)
1628
+ AM_CONDITIONAL( [HAVE_HP], [test "x$HAVE_HP" = xyes] )
1629
+ AC_SUBST(OS2_LIBS)
1630
+ AC_SUBST(OS2_LDFLAGS)
1631
+ AC_SUBST(OS2_CFLAGS)
1632
+ AM_CONDITIONAL( [HAVE_OS2], [test "x$HAVE_OS2" = xyes] )
1633
+ AC_SUBST(SGI_LIBS)
1634
+ AC_SUBST(SGI_LDFLAGS)
1635
+ AC_SUBST(SGI_CFLAGS)
1636
+ AM_CONDITIONAL( [HAVE_SGI], [test "x$HAVE_SGI" = xyes] )
1637
+ AC_SUBST(MINT_LIBS)
1638
+ AC_SUBST(MINT_LDFLAGS)
1639
+ AC_SUBST(MINT_CFLAGS)
1640
+ AM_CONDITIONAL( [HAVE_MINT], [test "x$HAVE_MINT" = xyes] )
1641
+ AC_SUBST(OPENAL_LIBS)
1642
+ AC_SUBST(OPENAL_LDFLAGS)
1643
+ AC_SUBST(OPENAL_CFLAGS)
1644
+ AM_CONDITIONAL( [HAVE_OPENAL], [test "x$HAVE_OPENAL" = xyes] )
1645
+ AC_SUBST(DUMMY_LIBS)
1646
+ AC_SUBST(DUMMY_LDFLAGS)
1647
+ AC_SUBST(DUMMY_CFLAGS)
1648
+ AM_CONDITIONAL( [HAVE_DUMMY], [test "x$HAVE_DUMMY" = xyes] )
1649
+
1650
+ # Did user choose default audio subsystem ?
1651
+ if test "x$with_default_audio" != "x"; then
1652
+ default_output_module=$with_default_audio
1653
+ else
1654
+ default_output_module=`echo "$output_modules" | $AWK '{ print $1 }'`
1655
+ fi
1656
+
1657
+ # That's (beginning of) the list for mpg123's internal default.
1658
+ default_output_modules=$default_output_module
1659
+
1660
+ OUTPUT_OBJ=
1661
+ OUTPUT_MOD=
1662
+ OUTPUT_CFLAGS=
1663
+ OUTPUT_LIBS=
1664
+ OUTPUT_LDFLAGS=
1665
+
1666
+ # Setup the static build.
1667
+ if test "x$modules" = xdisabled
1668
+ then
1669
+ echo "Preparing static output $default_output_module"
1670
+ OUTPUT_MOD="$default_output_module"
1671
+ OUTPUT_OBJ="output/$default_output_module.\$(OBJEXT)"
1672
+ OUTPUT_CFLAGS=
1673
+ OUTPUT_LIBS=
1674
+ # That feels stupid... what about hashed arrays?
1675
+ case $OUTPUT_MOD in
1676
+ # Here's a script for that tedious list, perhaps to be outsourced together with the one in src/output/Makefile.am
1677
+ #for i in alsa coreaudio esd jack nas oss portaudio pulse sdl sndio sun win32 aix alib arts hp os2 sgi mint; do echo $i; done |
1678
+ #perl -ne 'chomp; $big = uc($_); print <<EOT;
1679
+ # $_)
1680
+ # OUTPUT_LIBS="\$${big}_LIBS"
1681
+ # OUTPUT_LDFLAGS="\$${big}_LDFLAGS"
1682
+ # OUTPUT_CFLAGS="\$${big}_CFLAGS"
1683
+ # ;;
1684
+ #EOT
1685
+ #'
1686
+ alsa)
1687
+ OUTPUT_LIBS="$ALSA_LIBS"
1688
+ OUTPUT_LDFLAGS="$ALSA_LDFLAGS"
1689
+ OUTPUT_CFLAGS="$ALSA_CFLAGS"
1690
+ ;;
1691
+ coreaudio)
1692
+ OUTPUT_LIBS="$COREAUDIO_LIBS"
1693
+ OUTPUT_LDFLAGS="$COREAUDIO_LDFLAGS"
1694
+ OUTPUT_CFLAGS="$COREAUDIO_CFLAGS"
1695
+ ;;
1696
+ esd)
1697
+ OUTPUT_LIBS="$ESD_LIBS"
1698
+ OUTPUT_LDFLAGS="$ESD_LDFLAGS"
1699
+ OUTPUT_CFLAGS="$ESD_CFLAGS"
1700
+ ;;
1701
+ jack)
1702
+ OUTPUT_LIBS="$JACK_LIBS"
1703
+ OUTPUT_LDFLAGS="$JACK_LDFLAGS"
1704
+ OUTPUT_CFLAGS="$JACK_CFLAGS"
1705
+ ;;
1706
+ nas)
1707
+ OUTPUT_LIBS="$NAS_LIBS"
1708
+ OUTPUT_LDFLAGS="$NAS_LDFLAGS"
1709
+ OUTPUT_CFLAGS="$NAS_CFLAGS"
1710
+ ;;
1711
+ oss)
1712
+ OUTPUT_LIBS="$OSS_LIBS"
1713
+ OUTPUT_LDFLAGS="$OSS_LDFLAGS"
1714
+ OUTPUT_CFLAGS="$OSS_CFLAGS"
1715
+ ;;
1716
+ portaudio)
1717
+ OUTPUT_LIBS="$PORTAUDIO_LIBS"
1718
+ OUTPUT_LDFLAGS="$PORTAUDIO_LDFLAGS"
1719
+ OUTPUT_CFLAGS="$PORTAUDIO_CFLAGS"
1720
+ ;;
1721
+ pulse)
1722
+ OUTPUT_LIBS="$PULSE_LIBS"
1723
+ OUTPUT_LDFLAGS="$PULSE_LDFLAGS"
1724
+ OUTPUT_CFLAGS="$PULSE_CFLAGS"
1725
+ ;;
1726
+ sdl)
1727
+ OUTPUT_LIBS="$SDL_LIBS"
1728
+ OUTPUT_LDFLAGS="$SDL_LDFLAGS"
1729
+ OUTPUT_CFLAGS="$SDL_CFLAGS"
1730
+ ;;
1731
+ sndio)
1732
+ OUTPUT_LIBS="$SNDIO_LIBS"
1733
+ OUTPUT_LDFLAGS="$SNDIO_LDFLAGS"
1734
+ OUTPUT_CFLAGS="$SNDIO_CFLAGS"
1735
+ ;;
1736
+ sun)
1737
+ OUTPUT_LIBS="$SUN_LIBS"
1738
+ OUTPUT_LDFLAGS="$SUN_LDFLAGS"
1739
+ OUTPUT_CFLAGS="$SUN_CFLAGS"
1740
+ ;;
1741
+ win32)
1742
+ OUTPUT_LIBS="$WIN32_LIBS"
1743
+ OUTPUT_LDFLAGS="$WIN32_LDFLAGS"
1744
+ OUTPUT_CFLAGS="$WIN32_CFLAGS"
1745
+ ;;
1746
+ aix)
1747
+ OUTPUT_LIBS="$AIX_LIBS"
1748
+ OUTPUT_LDFLAGS="$AIX_LDFLAGS"
1749
+ OUTPUT_CFLAGS="$AIX_CFLAGS"
1750
+ ;;
1751
+ alib)
1752
+ OUTPUT_LIBS="$ALIB_LIBS"
1753
+ OUTPUT_LDFLAGS="$ALIB_LDFLAGS"
1754
+ OUTPUT_CFLAGS="$ALIB_CFLAGS"
1755
+ ;;
1756
+ arts)
1757
+ OUTPUT_LIBS="$ARTS_LIBS"
1758
+ OUTPUT_LDFLAGS="$ARTS_LDFLAGS"
1759
+ OUTPUT_CFLAGS="$ARTS_CFLAGS"
1760
+ ;;
1761
+ hp)
1762
+ OUTPUT_LIBS="$HP_LIBS"
1763
+ OUTPUT_LDFLAGS="$HP_LDFLAGS"
1764
+ OUTPUT_CFLAGS="$HP_CFLAGS"
1765
+ ;;
1766
+ os2)
1767
+ OUTPUT_LIBS="$OS2_LIBS"
1768
+ OUTPUT_LDFLAGS="$OS2_LDFLAGS"
1769
+ OUTPUT_CFLAGS="$OS2_CFLAGS"
1770
+ ;;
1771
+ sgi)
1772
+ OUTPUT_LIBS="$SGI_LIBS"
1773
+ OUTPUT_LDFLAGS="$SGI_LDFLAGS"
1774
+ OUTPUT_CFLAGS="$SGI_CFLAGS"
1775
+ ;;
1776
+ mint)
1777
+ OUTPUT_LIBS="$MINT_LIBS"
1778
+ OUTPUT_LDFLAGS="$MINT_LDFLAGS"
1779
+ OUTPUT_CFLAGS="$MINT_CFLAGS"
1780
+ ;;
1781
+ openal)
1782
+ OUTPUT_LIBS="$OPENAL_LIBS"
1783
+ OUTPUT_LDFLAGS="$OPENAL_LDFLAGS"
1784
+ OUTPUT_CFLAGS="$OPENAL_CFLAGS"
1785
+ ;;
1786
+ esac
1787
+ else
1788
+ # Now make a comma-separated list again... eliminating the possible duplicate and dummy.
1789
+ for i in $output_modules
1790
+ do
1791
+ if test $i != $default_output_module && test $i != dummy; then
1792
+ default_output_modules=$default_output_modules,$i
1793
+ fi
1794
+ done
1795
+ fi
1796
+
1797
+ AC_DEFINE_UNQUOTED( DEFAULT_OUTPUT_MODULE, "$default_output_modules", [The default audio output module(s) to use] )
1798
+
1799
+
1800
+ AC_SUBST(OUTPUT_OBJ)
1801
+ AC_SUBST(OUTPUT_MOD)
1802
+ AC_SUBST(OUTPUT_CFLAGS)
1803
+ AC_SUBST(OUTPUT_LIBS)
1804
+ AC_SUBST(OUTPUT_LDFLAGS)
1805
+
1806
+ dnl ############## Compiler Optimizations
1807
+
1808
+ CFLAGS="$ADD_CFLAGS $CFLAGS"
1809
+ if test x"$buffer" = xdisabled; then
1810
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DNOXFERMEM"
1811
+ fi
1812
+ if test x"$newoldwritesample" = xenabled; then
1813
+ ADD_CPPFLAGS="$ADD_CPPFLAGS -DNEWOLD_WRITE_SAMPLE"
1814
+ fi
1815
+ CPPFLAGS="$ADD_CPPFLAGS $CPPFLAGS"
1816
+ LDFLAGS="$ADD_LDFLAGS $LDFLAGS"
1817
+
1818
+ # None chosen?
1819
+ if test "x$with_optimization" = "x"; then
1820
+ if test x"$debugging" = xenabled; then
1821
+ with_optimization="0"
1822
+ else
1823
+ # enable (gcc specific) default opts only with gcc
1824
+ if test "x$GCC" = xyes; then
1825
+ with_optimization="2"
1826
+ else
1827
+ with_optimization="0"
1828
+ fi
1829
+ fi
1830
+ fi
1831
+
1832
+ case $with_optimization in
1833
+ 0)
1834
+ # No Optimizations
1835
+ CFLAGS="$CFLAGS"
1836
+ ;;
1837
+ 1)
1838
+ CFLAGS="-O $CFLAGS"
1839
+ ;;
1840
+ 2)
1841
+ CFLAGS="-O2 -fomit-frame-pointer -funroll-all-loops -finline-functions -ffast-math $CFLAGS"
1842
+ ;;
1843
+ 3)
1844
+ CFLAGS="-O3 -fomit-frame-pointer -funroll-all-loops -finline-functions -ffast-math $CFLAGS"
1845
+ ;;
1846
+ 4)
1847
+ CFLAGS="-O4 -fomit-frame-pointer -funroll-all-loops -finline-functions -ffast-math $CFLAGS"
1848
+ ;;
1849
+ *)
1850
+ AC_MSG_ERROR([Unknown optimizations level '$with_optimization'])
1851
+ ;;
1852
+ esac
1853
+
1854
+ dnl If using gcc, prevent a bad alignment option from breaking things.
1855
+ dnl Let's default to safe 16-byte alignment for any special x86 or altivec stuff.
1856
+ if test "x$GCC" = xyes && echo "$CFLAGS" | $GREP 'mpreferred-stack-boundary=' > /dev/null; then
1857
+ case $cpu_type in
1858
+ x86 | i586* | mmx | sse | 3dnow* | altivec)
1859
+ AC_MSG_WARN( [ You are trying to mess with stack alignment. I know better. ] )
1860
+ CFLAGS="$CFLAGS -mpreferred-stack-boundary=4"
1861
+ ;;
1862
+ esac
1863
+ fi
1864
+
1865
+ dnl ############## Seektable size
1866
+
1867
+ if test "x$with_seektable" = "x"; then
1868
+ seektable=1000
1869
+ else
1870
+ seektable=$with_seektable
1871
+ fi
1872
+
1873
+ if test "$seektable" -gt 0; then
1874
+ AC_DEFINE(FRAME_INDEX, 1, [ Define if frame index should be used. ])
1875
+ fi
1876
+ # Define that always... also without frame index enabled.
1877
+ AC_DEFINE_UNQUOTED(INDEX_SIZE, $seektable, [size of the frame index seek table])
1878
+
1879
+ dnl ############## Win32 function checks
1880
+ # Check if we want Unicode for Win32. Cygwin does not need _wopen
1881
+ win32_specific_codes=disabled
1882
+ win32_unicode=unneeded
1883
+ win32_sockets=disabled
1884
+ win32_sockets_working=no
1885
+ win32_wide_working=no
1886
+ win32_winver_bump=no
1887
+ AC_CHECK_HEADERS([windows.h], [win32_specific_codes=enabled])
1888
+ if test "x$win32_specific_codes" = xenabled && test "x$host_os" != "xcygwin"; then
1889
+
1890
+ #### Check for Wide functions
1891
+ AC_CHECK_FUNC([_wopen], [win32_unicode=enabled],[win32_unicode=disabled])
1892
+ AC_MSG_CHECKING([if we want Unicode File Open for Win32])
1893
+ if test "x$win32_unicode" = xenabled; then
1894
+ AC_MSG_RESULT([yes])
1895
+ AC_MSG_CHECKING([if Unicode functions working])
1896
+ AC_LINK_IFELSE([AC_LANG_SOURCE([
1897
+ #include <windows.h>
1898
+ #include <stdlib.h>
1899
+ int main()
1900
+ {
1901
+ MultiByteToWideChar (0, 0, NULL, 0, NULL, 0);
1902
+ WideCharToMultiByte (0, 0, NULL, 0, NULL, 0, NULL, NULL);
1903
+ return 0;
1904
+ }
1905
+ ])], [win32_wide_working=yes], [win32_winver_bump=yes])
1906
+ if test "x$win32_wide_working" = xno; then
1907
+ AC_LINK_IFELSE([AC_LANG_SOURCE([
1908
+ #define WINVER 0x501
1909
+ #define _WIN32_WINNT 0x501
1910
+ #include <windows.h>
1911
+ #include <stdlib.h>
1912
+ int main()
1913
+ {
1914
+ MultiByteToWideChar (0, 0, NULL, 0, NULL, 0);
1915
+ WideCharToMultiByte (0, 0, NULL, 0, NULL, 0, NULL, NULL);
1916
+ return 0;
1917
+ }
1918
+ ])], [win32_wide_working=yes], [AC_MSG_RESULT([no])])
1919
+ fi
1920
+ if test "x$win32_wide_working" = xyes; then
1921
+ AC_MSG_RESULT([yes])
1922
+ AC_DEFINE([WANT_WIN32_UNICODE], [1], [ Define to use Unicode for Windows ])
1923
+ fi
1924
+ else
1925
+ AC_MSG_WARN([Unicode File Open for Win32 disabled])
1926
+ fi
1927
+
1928
+ #### Check for Network functions
1929
+ AC_CHECK_HEADERS([ws2tcpip.h], [win32_sockets=enabled], [AC_MSG_WARN([Please update your headers to support winsock 2.2.])])
1930
+ AC_MSG_CHECKING([if we want Win32 sockets])
1931
+ if test "x$win32_sockets" = "xenabled" && test "x$network" != "xdisabled"; then
1932
+ AC_MSG_RESULT([yes])
1933
+ AC_MSG_CHECKING([if winsock2 API is available])
1934
+ wsoldlibs="$LIBS"
1935
+ LIBS="$LIBS -lws2_32"
1936
+ AC_LINK_IFELSE([AC_LANG_SOURCE([
1937
+ #include <winsock2.h>
1938
+ #include <ws2tcpip.h>
1939
+ #include <stdlib.h>
1940
+ int main()
1941
+ {
1942
+ getaddrinfo(NULL, NULL, NULL, NULL);
1943
+ freeaddrinfo(NULL);
1944
+ return 0;
1945
+ }
1946
+ ])], [win32_sockets_working=yes], [win32_winver_bump=yes])
1947
+ if test "x$win32_sockets_working" = "xno"; then
1948
+ AC_MSG_CHECKING([deeper if winsock2 API is available])
1949
+ AC_LINK_IFELSE([AC_LANG_SOURCE([
1950
+ #define WINVER 0x501
1951
+ #define _WIN32_WINNT 0x501
1952
+ #include <winsock2.h>
1953
+ #include <ws2tcpip.h>
1954
+ #include <stdlib.h>
1955
+ int main()
1956
+ {
1957
+ getaddrinfo(NULL, NULL, NULL, NULL);
1958
+ freeaddrinfo(NULL);
1959
+ return 0;
1960
+ }
1961
+ ])], [win32_sockets_working=yes], [AC_MSG_RESULT([no])])
1962
+ fi
1963
+ if test "x$win32_sockets_working" = "xyes"; then
1964
+ AC_MSG_RESULT([yes])
1965
+ AC_DEFINE([WANT_WIN32_SOCKETS], [1], [ Define to use Win32 sockets ])
1966
+ network_type=Winsock2
1967
+ have_network=yes
1968
+ have_ipv6=yes
1969
+ else
1970
+ LIBS="$wsoldlibs"
1971
+ AC_MSG_WARN([Please update your headers to support winsock 2.2.])
1972
+ fi
1973
+ else
1974
+ AC_MSG_RESULT([no])
1975
+ fi
1976
+
1977
+ #### Check for Win32 Named Pipe functions
1978
+ win32_fifo_working=no
1979
+ if test x$win32_specific_codes = xenabled; then
1980
+ AC_MSG_CHECKING([if we have Named Pipes])
1981
+ if test "x$fifo" != "xdisabled"; then
1982
+ AC_LINK_IFELSE([AC_LANG_SOURCE([
1983
+ #include <windows.h>
1984
+ int main(){
1985
+ CreateNamedPipeA(NULL,PIPE_ACCESS_DUPLEX|FILE_FLAG_OVERLAPPED,PIPE_TYPE_BYTE,1,255,255,0,NULL);
1986
+ CreateNamedPipeW(NULL,PIPE_ACCESS_DUPLEX|FILE_FLAG_OVERLAPPED,PIPE_TYPE_BYTE,1,255,255,0,NULL);
1987
+ return 0;
1988
+ }])],[win32_fifo_working=yes],[win32_winver_bump=yes])
1989
+ if test "x$win32_fifo_working" != "xyes"; then
1990
+ AC_LINK_IFELSE([AC_LANG_SOURCE([
1991
+ #define WINVER 0x501
1992
+ #define _WIN32_WINNT 0x501
1993
+ #include <windows.h>
1994
+ int main(){
1995
+ CreateNamedPipeA(NULL,PIPE_ACCESS_DUPLEX|FILE_FLAG_OVERLAPPED,PIPE_TYPE_BYTE,1,255,255,0,NULL);
1996
+ CreateNamedPipeW(NULL,PIPE_ACCESS_DUPLEX|FILE_FLAG_OVERLAPPED,PIPE_TYPE_BYTE,1,255,255,0,NULL);
1997
+ return 0;
1998
+ }])],[win32_fifo_working=yes],[win32_fifo_working=no])
1999
+ fi
2000
+ fi
2001
+ have_mkfifo=$win32_fifo_working
2002
+ if test "x$win32_fifo_working" = "xyes"; then
2003
+ AC_MSG_RESULT([yes])
2004
+ AC_DEFINE([WANT_WIN32_FIFO], [1], [ Define to use Win32 named pipes ])
2005
+ else
2006
+ AC_MSG_RESULT([no])
2007
+ fi
2008
+ fi
2009
+
2010
+ #### WINVER Bump
2011
+ if test x$win32_specific_codes = xenabled; then
2012
+ AC_MSG_CHECKING([if WINVER and _WIN32_WINNT needs version bumps])
2013
+ if test "x$win32_winver_bump" = "xyes"; then
2014
+ AC_MSG_RESULT([yes])
2015
+ AC_DEFINE([WINVER], [0x0501], [ WinXP and above for ipv6 ])
2016
+ AC_DEFINE([_WIN32_WINNT], [0x0501], [ WinXP and above for ipv6 ])
2017
+ # getaddrinfo and freeaddrinfo are available for Win2K and above
2018
+ # Bug: MinGW.org w32api ws2tcpip.h incorrectly wants (_WIN32_WINNT >= 0x0501) for getaddrinfo and freeaddrinfo
2019
+ # MultiByteToWideChar and WideCharToMultiByte are available for Win2K and above
2020
+ else
2021
+ AC_MSG_RESULT([no])
2022
+ fi
2023
+ fi
2024
+
2025
+ fi #END OF WIN32 CHECKS
2026
+
2027
+ #### Use Win32 support codes
2028
+ AM_CONDITIONAL([WIN32_CODES], [ test "x$win32_specific_codes" = xenabled ])
2029
+
2030
+ if test x"$network" = xauto; then
2031
+ if test x"$have_network" = xyes; then
2032
+ network=enabled
2033
+ else
2034
+ network=disabled
2035
+ fi
2036
+ fi
2037
+ if test x"$ipv6" = xauto; then
2038
+ if test x"$have_ipv6" = xyes; then
2039
+ ipv6=enabled
2040
+ else
2041
+ ipv6=disabled
2042
+ fi
2043
+ fi
2044
+
2045
+ dnl ############## FIFO enable
2046
+
2047
+ if test x"$fifo" = xauto; then
2048
+ if test x"$have_mkfifo" = xyes; then
2049
+ fifo=enabled
2050
+ else
2051
+ fifo=disabled
2052
+ fi
2053
+ fi
2054
+
2055
+ if test x"$fifo" = xenabled; then
2056
+ AC_DEFINE(FIFO, 1, [ Define if FIFO support is enabled. ])
2057
+ if test x"$have_mkfifo" = xno; then
2058
+ AC_MSG_WARN( [ You forced FIFO code while I think there is no mkfifo() available! ] )
2059
+ fi
2060
+ fi
2061
+
2062
+ dnl ############## Network enable
2063
+ if test x"$network" = xenabled; then
2064
+ AC_DEFINE(NETWORK, 1, [ Define if network support is enabled. ])
2065
+ if test x"$have_network" = xno; then
2066
+ AC_MSG_WARN( [ You forced network code while I think there is support missing! ] )
2067
+ fi
2068
+ fi
2069
+
2070
+ if test x"$ipv6" = xenabled; then
2071
+ AC_DEFINE(IPV6, 1, [ Define if IPV6 support is enabled. ])
2072
+ if test x"$have_ipv6" = xno; then
2073
+ AC_MSG_WARN( [ You forced IPv6 code while I think there is no getaddrinfo() available! ] )
2074
+ fi
2075
+ fi
2076
+
2077
+ dnl ############## Final Output
2078
+
2079
+ # Do that here to prevent the above tests usign -lltdl...
2080
+ if test "x$modules" = xenabled; then
2081
+ LIBS="-lltdl $LIBS"
2082
+ fi
2083
+
2084
+ AC_CONFIG_FILES([
2085
+ Makefile
2086
+ libmpg123.pc
2087
+ mpg123.spec
2088
+ doc/Makefile
2089
+ src/Makefile
2090
+ src/output/Makefile
2091
+ src/libmpg123/Makefile
2092
+ src/libmpg123/mpg123.h
2093
+ ])
2094
+
2095
+ AC_OUTPUT
2096
+
2097
+
2098
+
2099
+ dnl ############## Display Message
2100
+
2101
+ echo "
2102
+ $PACKAGE_NAME $PACKAGE_VERSION
2103
+
2104
+ Install path ............ $prefix
2105
+ CPU Optimization ........ $cpu_type
2106
+ Compiler Optimization ... $with_optimization
2107
+ Gapless Support ......... $gapless
2108
+ Debugging ............... $debugging
2109
+ Seek table size ......... $seektable
2110
+ FIFO support ............ $fifo
2111
+ Buffer .................. $buffer
2112
+ Network (http streams) .. $network
2113
+ Network Sockets ......... $network_type
2114
+ IPv6 (getaddrinfo) ...... $ipv6"
2115
+ if test x"$LARGEFILE_BITS" = x; then
2116
+ echo " File offsets ............ default"
2117
+ else
2118
+ echo " File offsets ............ $LARGEFILE_BITS"
2119
+ echo " The lib will (try to) support default offset size, too."
2120
+ fi
2121
+ echo " LFS alias symbols ....... $lfs_alias ($LFS_ALIAS_BITS)"
2122
+
2123
+ echo " Alignment checks ........ $aligncheck"
2124
+ if test x"$aligncheck" = xenabled; then
2125
+ if test x"$ccalign" != xyes; then
2126
+ echo " (without effect since special alignment is not employed)"
2127
+ fi
2128
+ if test x"$GCC" = xyes; then
2129
+ echo " (note that newer gcc 4.x versions do not use/need the align check)"
2130
+ fi
2131
+ fi
2132
+ echo -n "
2133
+ Core libmpg123 features:
2134
+ Integer conversion ...... $integers
2135
+ New/old WRITE_SAMPLE .... $newoldwritesample
2136
+ Layer I ................. $layer1
2137
+ Layer II ................ $layer2
2138
+ Layer III ............... $layer3
2139
+ NtoM resampling ......... $ntom
2140
+ downsampled decoding .... $downsample
2141
+ Feeder/buffered input ... $feeder
2142
+ ID3v2 parsing ........... $id3v2
2143
+ String API .............. $string
2144
+ ICY parsing/conversion .. $icy
2145
+ Error/warning messages .. $messages
2146
+ Win32 Unicode File Open.. $win32_unicode
2147
+ Feature Report Function.. $feature_report
2148
+ Output formats (nofpu will disable all but 16 or 8 bit!):
2149
+ 8 bit integer ........... $int8
2150
+ 16 bit integer .......... $int16
2151
+ 32/24 bit integer ....... $int32
2152
+ real (32 bit float) ..... $real
2153
+
2154
+ Note: Disabling core features is not commonly done and some combinations might not build/work. If you encounter such a case, help yourself (and provide a patch) or just poke the maintainers.
2155
+ "
2156
+ # just an empty line
2157
+ echo
2158
+
2159
+ echo " Modules ................. $modules"
2160
+ echo " Module suffix ........... $with_module_suffix"
2161
+ echo " Checked audio modules ... $check_modules
2162
+ Detected audio support ..$output_modules
2163
+ Default output module ... $default_output_module
2164
+ "
2165
+ if test x"$modules" = xdisabled; then
2166
+ echo "The _single_ active output module is being statically linked in.
2167
+ "
2168
+ fi
2169
+ if test x"$with_optimization" = x0; then
2170
+ echo "No optimization flags chosen, make sure you have something basic in your CFLAGS at least...
2171
+ "
2172
+ fi
2173
+ if test x"$debugging" = xenabled; then
2174
+ echo "CFLAGS='$CFLAGS'"
2175
+ echo "LIBS='$LIBS'"
2176
+ else
2177
+ echo "Next type 'make' and then 'make install'."
2178
+ fi