seal 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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