Fix compilation for new Bink audio decoder.
[mplayer/glamo.git] / configure
blob7dcd9e961cdf2b7f463f74052beb33480c8a67f0
1 #! /bin/sh
3 # Original version (C) 2000 Pontscho/fresh!mindworkz
4 # pontscho@makacs.poliod.hu
6 # History / Contributors: Check the Subversion log.
8 # Cleanups all over the place (c) 2001 pl
11 # This configure script is *not* autoconf-based and has different semantics.
12 # It attempts to autodetect all settings and options where possible. It is
13 # possible to override autodetection with the --enable-option/--disable-option
14 # command line parameters. --enable-option forces the option on skipping
15 # autodetection. Yes, this means that compilation may fail and yes, this is not
16 # how autoconf-based configure scripts behave.
18 # configure generates a series of configuration files:
19 # - config.h contains #defines that are used in the C code.
20 # - config.mak is included from the Makefiles.
22 # If you want to add a new check for $feature, here is a simple skeleton:
24 # echocheck "$feature"
25 # if test "$_feature" = auto; then
26 # cat > $TMPC << EOF
27 # #include <feature.h>
28 # int main(void) { return 0; }
29 # EOF
30 # _feature=no
31 # cc_check && _feature=yes
32 # fi
33 # if test "$_feature" = yes ; then
34 # def_feature='#define CONFIG_FEATURE 1'
35 # else
36 # def_feature='#undef CONFIG_FEATURE'
37 # fi
38 # echores "$_feature"
40 # Furthermore you need to add the variable _feature to the list of default
41 # settings and set it to one of yes/no/auto. Also add appropriate
42 # --enable-feature/--disable-feature command line options.
43 # The results of the check should be written to config.h and config.mak
44 # at the end of this script. The variable names used for this should be
45 # uniform, i.e. if the option is named 'feature':
47 # _feature : should have a value of yes/no/auto
48 # def_feature : '#define ... 1' or '#undef ...' for conditional compilation
49 # _ld_feature : '-L/path/dir -lfeature' GCC options
51 #############################################################################
53 # Prevent locale nonsense from breaking basic text processing utils
54 export LC_ALL=C
56 # Store the configure line that was used
57 _configuration="$*"
59 # Prefer these macros to full length text !
60 # These macros only return an error code - NO display is done
61 compile_check() {
62 echo >> "$TMPLOG"
63 cat "$1" >> "$TMPLOG"
64 echo >> "$TMPLOG"
65 echo "$_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o $TMPEXE $@" >> "$TMPLOG"
66 rm -f "$TMPEXE"
67 $_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1
68 TMPRES="$?"
69 echo >> "$TMPLOG"
70 echo >> "$TMPLOG"
71 return "$TMPRES"
74 cc_check() {
75 compile_check $TMPC $@
78 cxx_check() {
79 compile_check $TMPCPP $@ -lstdc++
82 yasm_check() {
83 echo >> "$TMPLOG"
84 cat "$TMPS" >> "$TMPLOG"
85 echo >> "$TMPLOG"
86 echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
87 rm -f "$TMPEXE"
88 $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
89 TMPRES="$?"
90 echo >> "$TMPLOG"
91 echo >> "$TMPLOG"
92 return "$TMPRES"
95 tmp_run() {
96 "$TMPEXE" >> "$TMPLOG" 2>&1
99 # Display error message, flushes tempfile, exit
100 die () {
101 echo
102 echo "Error: $@" >&2
103 echo >&2
104 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
105 echo "Check \"$TMPLOG\" if you do not understand why it failed."
106 exit 1
109 # OS test booleans functions
110 issystem() {
111 test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
113 aix() { issystem "AIX"; }
114 amigaos() { issystem "AmigaOS"; }
115 beos() { issystem "BEOS"; }
116 bsdos() { issystem "BSD/OS"; }
117 cygwin() { issystem "CYGWIN"; }
118 darwin() { issystem "Darwin"; }
119 dragonfly() { issystem "DragonFly"; }
120 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; }
121 gnu() { issystem "GNU"; }
122 hpux() { issystem "HP-UX"; }
123 irix() { issystem "IRIX"; }
124 linux() { issystem "Linux"; }
125 mingw32() { issystem "MINGW32"; }
126 morphos() { issystem "MorphOS"; }
127 netbsd() { issystem "NetBSD"; }
128 openbsd() { issystem "OpenBSD"; }
129 os2() { issystem "OS/2"; }
130 qnx() { issystem "QNX"; }
131 sunos() { issystem "SunOS"; }
132 win32() { cygwin || mingw32; }
134 # arch test boolean functions
135 # x86/x86pc is used by QNX
136 x86_32() {
137 case "$host_arch" in
138 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
139 *) return 1 ;;
140 esac
143 x86_64() {
144 case "$host_arch" in
145 x86_64|amd64) return 0 ;;
146 *) return 1 ;;
147 esac
150 x86() {
151 x86_32 || x86_64
154 ppc() {
155 case "$host_arch" in
156 ppc|ppc64|powerpc|powerpc64) return 0;;
157 *) return 1;;
158 esac
161 alpha() {
162 case "$host_arch" in
163 alpha*) return 0;;
164 *) return 1;;
165 esac
168 arm() {
169 case "$host_arch" in
170 arm*) return 0;;
171 *) return 1;;
172 esac
175 # Use this before starting a check
176 echocheck() {
177 echo "============ Checking for $@ ============" >> "$TMPLOG"
178 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
181 # Use this to echo the results of a check
182 echores() {
183 if test "$_res_comment" ; then
184 _res_comment="($_res_comment)"
186 echo "Result is: $@ $_res_comment" >> "$TMPLOG"
187 echo "##########################################" >> "$TMPLOG"
188 echo "" >> "$TMPLOG"
189 echo "$@ $_res_comment"
190 _res_comment=""
192 #############################################################################
194 # Check how echo works in this /bin/sh
195 case $(echo -n) in
196 -n) _echo_n= _echo_c='\c' ;; # SysV echo
197 *) _echo_n='-n ' _echo_c= ;; # BSD echo
198 esac
200 msg_lang_all=$(echo help/help_mp-??.h help/help_mp-??_??.h | sed -e "s:help/help_mp-\(..\).h:\1:g" -e "s:help/help_mp-\(.....\).h:\1:g")
201 man_lang_all=$(echo DOCS/man/??/mplayer.1 DOCS/man/??_??/mplayer.1 | sed -e "s:DOCS/man/\(..\)/mplayer.1:\1:g" -e "s:DOCS/man/\(.._..\)/mplayer.1:\1:g")
202 doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
204 show_help(){
205 cat << EOF
206 Usage: $0 [OPTIONS]...
208 Configuration:
209 -h, --help display this help and exit
211 Installation directories:
212 --prefix=DIR prefix directory for installation [/usr/local]
213 --bindir=DIR directory for installing binaries [PREFIX/bin]
214 --datadir=DIR directory for installing machine independent
215 data files (skins, etc) [PREFIX/share/mplayer]
216 --mandir=DIR directory for installing man pages [PREFIX/share/man]
217 --confdir=DIR directory for installing configuration files
218 [PREFIX/etc/mplayer]
219 --libdir=DIR directory for object code libraries [PREFIX/lib]
220 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
221 --win32codecsdir=DIR directory for Windows DLLs [LIBDIR/codecs]
222 --xanimcodecsdir=DIR directory for XAnim codecs [LIBDIR/codecs]
223 --realcodecsdir=DIR directory for RealPlayer codecs [LIBDIR/codecs]
225 Optional features:
226 --disable-mencoder disable MEncoder (A/V encoder) compilation [enable]
227 --disable-mplayer disable MPlayer compilation [enable]
228 --enable-gui enable GMPlayer compilation (GTK+ GUI) [disable]
229 --enable-gtk1 force using GTK 1.2 for the GUI [disable]
230 --disable-largefiles disable support for files > 2GB [enable]
231 --enable-linux-devfs set default devices to devfs [disable]
232 --enable-termcap use termcap database for key codes [autodetect]
233 --enable-termios use termios database for key codes [autodetect]
234 --disable-iconv disable iconv for encoding conversion [autodetect]
235 --disable-langinfo do not use langinfo [autodetect]
236 --enable-lirc enable LIRC (remote control) support [autodetect]
237 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
238 --enable-joystick enable joystick support [disable]
239 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
240 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
241 --disable-vm disable X video mode extensions [autodetect]
242 --disable-xf86keysym disable support for multimedia keys [autodetect]
243 --enable-radio enable radio interface [disable]
244 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
245 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
246 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
247 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
248 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
249 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
250 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
251 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
252 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
253 --disable-network disable networking [enable]
254 --enable-winsock2_h enable winsock2_h [autodetect]
255 --enable-smb enable Samba (SMB) input [autodetect]
256 --enable-live enable LIVE555 Streaming Media [autodetect]
257 --enable-nemesi enable Nemesi Streaming Media [autodetect]
258 --disable-vcd disable VCD support [autodetect]
259 --disable-dvdnav disable libdvdnav [autodetect]
260 --disable-dvdread disable libdvdread [autodetect]
261 --disable-dvdread-internal disable internal libdvdread [autodetect]
262 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
263 --disable-cdparanoia disable cdparanoia [autodetect]
264 --disable-cddb disable cddb [autodetect]
265 --disable-bitmap-font disable bitmap font support [enable]
266 --disable-freetype disable FreeType 2 font rendering [autodetect]
267 --disable-fontconfig disable fontconfig font lookup [autodetect]
268 --disable-unrarexec disable using of UnRAR executable [enabled]
269 --enable-menu enable OSD menu (not DVD menu) [disabled]
270 --disable-sortsub disable subtitle sorting [enabled]
271 --enable-fribidi enable the FriBiDi libs [autodetect]
272 --disable-enca disable ENCA charset oracle library [autodetect]
273 --disable-maemo disable maemo specific features [autodetect]
274 --enable-macosx-finder enable Mac OS X Finder invocation parameter
275 parsing [disabled]
276 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
277 --disable-inet6 disable IPv6 support [autodetect]
278 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
279 --disable-ftp disable FTP support [enabled]
280 --disable-vstream disable TiVo vstream client support [autodetect]
281 --disable-pthreads disable Posix threads support [autodetect]
282 --disable-w32threads disable Win32 threads support [autodetect]
283 --disable-ass-internal disable internal SSA/ASS subtitle support [autodetect]
284 --disable-ass disable SSA/ASS subtitle support [autodetect]
285 --enable-rpath enable runtime linker path for extra libs [disabled]
287 Codecs:
288 --enable-gif enable GIF support [autodetect]
289 --enable-png enable PNG input/output support [autodetect]
290 --enable-mng enable MNG input support [autodetect]
291 --enable-jpeg enable JPEG input/output support [autodetect]
292 --enable-libcdio enable libcdio support [autodetect]
293 --enable-liblzo enable liblzo support [autodetect]
294 --disable-win32dll disable Win32 DLL support [enabled]
295 --disable-qtx disable QuickTime codecs support [enabled]
296 --disable-xanim disable XAnim codecs support [enabled]
297 --disable-real disable RealPlayer codecs support [enabled]
298 --disable-xvid disable Xvid [autodetect]
299 --disable-xvid-lavc disable Xvid in libavcodec [autodetect]
300 --disable-x264 disable x264 [autodetect]
301 --disable-x264-lavc disable x264 in libavcodec [autodetect]
302 --disable-libdirac-lavc disable Dirac in libavcodec [autodetect]
303 --disable-libschroedinger-lavc disable Dirac in libavcodec (Schroedinger
304 decoder) [autodetect]
305 --disable-libnut disable libnut [autodetect]
306 --disable-libavutil_a disable static libavutil [autodetect]
307 --disable-libavcodec_a disable static libavcodec [autodetect]
308 --disable-libavformat_a disable static libavformat [autodetect]
309 --disable-libpostproc_a disable static libpostproc [autodetect]
310 --disable-libswscale_a disable static libswscale [autodetect]
311 --disable-libavutil_so disable shared libavutil [autodetect]
312 --disable-libavcodec_so disable shared libavcodec [autodetect]
313 --disable-libavformat_so disable shared libavformat [autodetect]
314 --disable-libpostproc_so disable shared libpostproc [autodetect]
315 --disable-libswscale_so disable shared libswscale [autodetect]
316 --disable-libavcodec_mpegaudio_hp disable high precision audio decoding
317 in libavcodec [enabled]
318 --disable-tremor-internal disable internal Tremor [enabled]
319 --enable-tremor-low enable lower accuracy internal Tremor [disabled]
320 --enable-tremor enable external Tremor [autodetect]
321 --disable-libvorbis disable libvorbis support [autodetect]
322 --disable-speex disable Speex support [autodetect]
323 --enable-theora enable OggTheora libraries [autodetect]
324 --enable-faad enable external FAAD2 (AAC) [autodetect]
325 --disable-faad-internal disable internal FAAD2 (AAC) [autodetect]
326 --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled]
327 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
328 --disable-faac-lavc disable support for FAAC in libavcodec [autodetect]
329 --disable-ladspa disable LADSPA plugin support [autodetect]
330 --disable-libbs2b disable libbs2b audio filter support [autodetect]
331 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
332 --disable-mad disable libmad (MPEG audio) support [autodetect]
333 --disable-mp3lame disable LAME MP3 encoding support [autodetect]
334 --disable-mp3lame-lavc disable LAME in libavcodec [autodetect]
335 --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect]
336 --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect]
337 --enable-xmms enable XMMS input plugin support [disabled]
338 --enable-libdca enable libdca support [autodetect]
339 --disable-mp3lib disable builtin mp3lib [autodetect]
340 --disable-liba52 disable liba52 [autodetect]
341 --enable-liba52-internal enable builtin liba52 [disabled]
342 --disable-libmpeg2 disable builtin libmpeg2 [autodetect]
343 --disable-musepack disable musepack support [autodetect]
344 --disable-libopencore_amrnb disable libopencore_amr narrowband [autodetect]
345 --disable-libopencore_amrwb disable libopencore_amr wideband [autodetect]
346 --disable-libopenjpeg disable OpenJPEG (JPEG2000) input/output support [autodetect]
347 --disable-decoder=DECODER disable specified FFmpeg decoder
348 --enable-decoder=DECODER enable specified FFmpeg decoder
349 --disable-encoder=ENCODER disable specified FFmpeg encoder
350 --enable-encoder=ENCODER enable specified FFmpeg encoder
351 --disable-parser=PARSER disable specified FFmpeg parser
352 --enable-parser=PARSER enable specified FFmpeg parser
353 --disable-protocol=PROTO disable specified FFmpeg protocol
354 --enable-protocol=PROTO enable specified FFmpeg protocol
355 --disable-demuxer=DEMUXER disable specified FFmpeg demuxer
356 --enable-demuxer=DEMUXER enable specified FFmpeg demuxer
357 --disable-muxer=MUXER disable specified FFmpeg muxer
358 --enable-muxer=MUXER enable specified FFmpeg muxer
360 Video output:
361 --disable-vidix disable VIDIX [for x86 *nix]
362 --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
363 Available: cyberblade,ivtv,mach64,mga,mga_crtc2,
364 nvidia,pm2,pm3,radeon,rage128,s3,sis,unichrome
365 --disable-vidix-pcidb disable VIDIX PCI device name database
366 --enable-dhahelper enable VIDIX dhahelper support
367 --enable-svgalib_helper enable VIDIX svgalib_helper support
368 --enable-gl enable OpenGL video output [autodetect]
369 --disable-matrixview disable OpenGL MatrixView video output [autodetect]
370 --enable-dga2 enable DGA 2 support [autodetect]
371 --enable-dga1 enable DGA 1 support [autodetect]
372 --enable-vesa enable VESA video output [autodetect]
373 --enable-svga enable SVGAlib video output [autodetect]
374 --enable-sdl enable SDL video output [autodetect]
375 --enable-kva enable KVA video output [autodetect]
376 --enable-aa enable AAlib video output [autodetect]
377 --enable-caca enable CACA video output [autodetect]
378 --enable-ggi enable GGI video output [autodetect]
379 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
380 --enable-direct3d enable Direct3D video output [autodetect]
381 --enable-directx enable DirectX video output [autodetect]
382 --enable-dxr2 enable DXR2 video output [autodetect]
383 --enable-dxr3 enable DXR3/H+ video output [autodetect]
384 --enable-ivtv enable IVTV TV-Out video output [autodetect]
385 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
386 --enable-dvb enable DVB video output [autodetect]
387 --enable-dvbhead enable DVB video output (HEAD version) [autodetect]
388 --enable-mga enable mga_vid video output [autodetect]
389 --enable-xmga enable mga_vid X11 video output [autodetect]
390 --enable-xv enable Xv video output [autodetect]
391 --enable-xvmc enable XvMC acceleration [disable]
392 --enable-vdpau enable VDPAU acceleration [autodetect]
393 --enable-vm enable XF86VidMode support [autodetect]
394 --enable-xinerama enable Xinerama support [autodetect]
395 --enable-x11 enable X11 video output [autodetect]
396 --enable-xshape enable XShape support [autodetect]
397 --disable-xss disable screensaver support via xss [autodetect]
398 --enable-fbdev enable FBDev video output [autodetect]
399 --enable-mlib enable mediaLib video output (Solaris) [disable]
400 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
401 --enable-tdfxfb enable tdfxfb video output [disable]
402 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
403 --enable-wii enable Nintendo Wii/GameCube video output [disable]
404 --enable-directfb enable DirectFB video output [autodetect]
405 --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect]
406 --enable-bl enable Blinkenlights video output [disable]
407 --enable-tdfxvid enable tdfx_vid video output [disable]
408 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
409 --disable-tga disable Targa video output [enable]
410 --disable-pnm disable PNM video output [enable]
411 --disable-md5sum disable md5sum video output [enable]
412 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
413 --disable-corevideo disable CoreVideo video output [autodetect]
414 --disable-quartz disable Quartz video output [autodetect]
416 Audio output:
417 --disable-alsa disable ALSA audio output [autodetect]
418 --disable-ossaudio disable OSS audio output [autodetect]
419 --disable-arts disable aRts audio output [autodetect]
420 --disable-esd disable esd audio output [autodetect]
421 --disable-pulse disable Pulseaudio audio output [autodetect]
422 --disable-jack disable JACK audio output [autodetect]
423 --disable-openal disable OpenAL audio output [autodetect]
424 --disable-nas disable NAS audio output [autodetect]
425 --disable-sgiaudio disable SGI audio output [autodetect]
426 --disable-sunaudio disable Sun audio output [autodetect]
427 --disable-dart disable DART audio output [autodetect]
428 --disable-win32waveout disable Windows waveout audio output [autodetect]
429 --disable-coreaudio disable CoreAudio audio output [autodetect]
430 --disable-select disable using select() on the audio device [enable]
432 Language options:
433 --charset=charset convert the console messages to this character set
434 --language-doc=lang language to use for the documentation [en]
435 --language-man=lang language to use for the man pages [en]
436 --language-msg=lang language to use for the messages and the GUI [en]
437 --language=lang default language to use [en]
438 Specific options override --language. You can pass a list of languages separated
439 by whitespace or commas instead of a single language. Nonexisting translations
440 will be dropped from each list. All documentation and man page translations
441 available in the list will be installed, for the messages the first available
442 translation will be used. The value "all" will activate all translations. The
443 LINGUAS environment variable is honored. In all cases the fallback is English.
444 Available values are: all $msg_lang_all
446 Miscellaneous options:
447 --enable-runtime-cpudetection enable runtime CPU detection [disable]
448 --enable-cross-compile enable cross-compilation [autodetect]
449 --cc=COMPILER C compiler to build MPlayer [gcc]
450 --host-cc=COMPILER C compiler for tools needed while building [gcc]
451 --as=ASSEMBLER assembler to build MPlayer [as]
452 --nm=NM nm tool to build MPlayer [nm]
453 --yasm=YASM Yasm assembler to build MPlayer [yasm]
454 --ar=AR librarian to build MPlayer [ar]
455 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
456 --windres=WINDRES windres to build MPlayer [windres]
457 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
458 --enable-static build a statically linked binary
459 --with-install=PATH path to a custom install program
461 Advanced options:
462 --enable-mmx enable MMX [autodetect]
463 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
464 --enable-3dnow enable 3DNow! [autodetect]
465 --enable-3dnowext enable extended 3DNow! [autodetect]
466 --enable-sse enable SSE [autodetect]
467 --enable-sse2 enable SSE2 [autodetect]
468 --enable-ssse3 enable SSSE3 [autodetect]
469 --enable-shm enable shm [autodetect]
470 --enable-altivec enable AltiVec (PowerPC) [autodetect]
471 --enable-armv5te enable DSP extensions (ARM) [autodetect]
472 --enable-armv6 enable ARMv6 (ARM) [autodetect]
473 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
474 --enable-armvfp enable ARM VFP (ARM) [autodetect]
475 --enable-neon enable NEON (ARM) [autodetect]
476 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
477 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
478 --enable-hardcoded-tables put tables in binary instead of calculating them at startup [disable]
479 --enable-big-endian force byte order to big-endian [autodetect]
480 --enable-debug[=1-3] compile-in debugging information [disable]
481 --enable-profile compile-in profiling information [disable]
482 --disable-sighandler disable sighandler for crashes [enable]
483 --enable-crash-debug enable automatic gdb attach on crash [disable]
484 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
486 Use these options if autodetection fails:
487 --extra-cflags=FLAGS extra CFLAGS
488 --extra-ldflags=FLAGS extra LDFLAGS
489 --extra-libs=FLAGS extra linker flags
490 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
491 --extra-libs-mencoder=FLAGS extra linker flags for MEncoder
492 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
494 --with-freetype-config=PATH path to freetype-config
495 --with-fribidi-config=PATH path to fribidi-config
496 --with-glib-config=PATH path to glib*-config
497 --with-gtk-config=PATH path to gtk*-config
498 --with-sdl-config=PATH path to sdl*-config
499 --with-dvdnav-config=PATH path to dvdnav-config
500 --with-dvdread-config=PATH path to dvdread-config
502 This configure script is NOT autoconf-based, even though its output is similar.
503 It will try to autodetect all configuration options. If you --enable an option
504 it will be forcefully turned on, skipping autodetection. This can break
505 compilation, so you need to know what you are doing.
507 exit 0
508 } #show_help()
510 # GOTCHA: the variables below defines the default behavior for autodetection
511 # and have - unless stated otherwise - at least 2 states : yes no
512 # If autodetection is available then the third state is: auto
513 _mmx=auto
514 _3dnow=auto
515 _3dnowext=auto
516 _mmxext=auto
517 _sse=auto
518 _sse2=auto
519 _ssse3=auto
520 _cmov=auto
521 _fast_cmov=auto
522 _fast_clz=auto
523 _armv5te=auto
524 _armv6=auto
525 _armv6t2=auto
526 _armvfp=auto
527 neon=auto
528 _iwmmxt=auto
529 _mtrr=auto
530 _altivec=auto
531 _install=install
532 _ranlib=ranlib
533 _windres=windres
534 _cc=cc
535 _ar=ar
536 test "$CC" && _cc="$CC"
537 _as=auto
538 _nm=auto
539 _yasm=yasm
540 _runtime_cpudetection=no
541 _cross_compile=auto
542 _prefix="/usr/local"
543 _libavutil_a=auto
544 _libavutil_so=auto
545 _libavcodec_a=auto
546 _libopencore_amrnb=auto
547 _libopencore_amrwb=auto
548 libopenjpeg=auto
549 _libavdecoders_all=$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
550 _libavdecoders=$(echo $_libavdecoders_all | sed -e 's/ LIB[A-Z0-9_]*_DECODER//g' -e s/MPEG4AAC_DECODER//)
551 _libavencoders_all=$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
552 _libavencoders=$(echo $_libavencoders_all | sed -e 's/ LIB[A-Z0-9_]*_ENCODER//g' -e s/AAC_ENCODER//)
553 _libavparsers_all=$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
554 _libavparsers=$_libavparsers_all
555 _libavbsfs_all=$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
556 _libavbsfs=$_libavbsfs_all
557 _libavhwaccels_all=$(sed -n 's/^[^#]*HWACCEL.*(.*, *\(.*\)).*/\1_hwaccel/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
558 # Disable all hardware accelerators for now.
559 _libavhwaccels=
560 _libavdemuxers_all=$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
561 _libavdemuxers=$(echo $_libavdemuxers_all | sed -e 's/ LIB[A-Z0-9_]*_DEMUXER//g' -e s/REDIR_DEMUXER// -e s/RTSP_DEMUXER// -e s/SDP_DEMUXER// -e s/AVISYNTH_DEMUXER//)
562 _libavmuxers_all=$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
563 _libavmuxers=$(echo $_libavmuxers_all | sed -e 's/ LIB[A-Z0-9_]*_MUXER//g' -e s/RTP_MUXER//)
564 _libavprotocols_all=$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
565 _libavprotocols=$_libavprotocols_all
566 _libavcodec_so=auto
567 _libavformat_a=auto
568 _libavformat_so=auto
569 _libpostproc_a=auto
570 _libpostproc_so=auto
571 _libswscale_a=auto
572 _libswscale_so=auto
573 _libavcodec_mpegaudio_hp=yes
574 _mencoder=yes
575 _mplayer=yes
576 _x11=auto
577 _xshape=auto
578 _xss=auto
579 _dga1=auto
580 _dga2=auto
581 _xv=auto
582 _xvmc=no #auto when complete
583 _vdpau=auto
584 _sdl=auto
585 _kva=auto
586 _direct3d=auto
587 _directx=auto
588 _win32waveout=auto
589 _nas=auto
590 _png=auto
591 _mng=auto
592 _jpeg=auto
593 _pnm=yes
594 _md5sum=yes
595 _yuv4mpeg=yes
596 _gif=auto
597 _gl=auto
598 matrixview=yes
599 _ggi=auto
600 _ggiwmh=auto
601 _aa=auto
602 _caca=auto
603 _svga=auto
604 _vesa=auto
605 _fbdev=auto
606 _dvb=auto
607 _dvbhead=auto
608 _dxr2=auto
609 _dxr3=auto
610 _ivtv=auto
611 _v4l2=auto
612 _iconv=auto
613 _langinfo=auto
614 _rtc=auto
615 _ossaudio=auto
616 _arts=auto
617 _esd=auto
618 _pulse=auto
619 _jack=auto
620 _dart=auto
621 _openal=auto
622 _libcdio=auto
623 _liblzo=auto
624 _mad=auto
625 _mp3lame=auto
626 _mp3lame_lavc=auto
627 _toolame=auto
628 _twolame=auto
629 _tremor=auto
630 _tremor_internal=yes
631 _tremor_low=no
632 _libvorbis=auto
633 _speex=auto
634 _theora=auto
635 _mp3lib=auto
636 _liba52=auto
637 _liba52_internal=no
638 _libdca=auto
639 _libmpeg2=auto
640 _faad=auto
641 _faad_internal=auto
642 _faad_fixed=no
643 _faac=auto
644 _faac_lavc=auto
645 _ladspa=auto
646 _libbs2b=auto
647 _xmms=no
648 _vcd=auto
649 _dvdnav=auto
650 _dvdnavconfig=dvdnav-config
651 _dvdreadconfig=dvdread-config
652 _dvdread=auto
653 _dvdread_internal=auto
654 _libdvdcss_internal=auto
655 _xanim=auto
656 _real=auto
657 _live=auto
658 _nemesi=auto
659 _native_rtsp=yes
660 _xinerama=auto
661 _mga=auto
662 _xmga=auto
663 _vm=auto
664 _xf86keysym=auto
665 _mlib=no #broken, thus disabled
666 _sgiaudio=auto
667 _sunaudio=auto
668 _alsa=auto
669 _fastmemcpy=yes
670 hardcoded_tables=no
671 _unrar_exec=auto
672 _win32dll=auto
673 _select=yes
674 _radio=no
675 _radio_capture=no
676 _radio_v4l=auto
677 _radio_v4l2=auto
678 _radio_bsdbt848=auto
679 _tv=yes
680 _tv_v4l1=auto
681 _tv_v4l2=auto
682 _tv_bsdbt848=auto
683 _tv_dshow=auto
684 _pvr=auto
685 _network=yes
686 _winsock2_h=auto
687 _struct_addrinfo=auto
688 _getaddrinfo=auto
689 _struct_sockaddr_storage=auto
690 _smb=auto
691 _vidix=auto
692 _vidix_pcidb=yes
693 _dhahelper=no
694 _svgalib_helper=no
695 _joystick=no
696 _xvid=auto
697 _xvid_lavc=auto
698 _x264=auto
699 _x264_lavc=auto
700 _libdirac_lavc=auto
701 _libschroedinger_lavc=auto
702 _libnut=auto
703 _lirc=auto
704 _lircc=auto
705 _apple_remote=auto
706 _apple_ir=auto
707 _gui=no
708 _gtk1=no
709 _termcap=auto
710 _termios=auto
711 _3dfx=no
712 _s3fb=no
713 _wii=no
714 _tdfxfb=no
715 _tdfxvid=no
716 _xvr100=auto
717 _tga=yes
718 _directfb=auto
719 _zr=auto
720 _bl=no
721 _largefiles=yes
722 #language=en
723 _shm=auto
724 _linux_devfs=no
725 _charset="UTF-8"
726 _dynamic_plugins=no
727 _crash_debug=no
728 _sighandler=yes
729 _libdv=auto
730 _cdparanoia=auto
731 _cddb=auto
732 _big_endian=auto
733 _bitmap_font=yes
734 _freetype=auto
735 _fontconfig=auto
736 _menu=no
737 _qtx=auto
738 _maemo=auto
739 _coreaudio=auto
740 _corevideo=auto
741 _quartz=auto
742 quicktime=auto
743 _macosx_finder=no
744 _macosx_bundle=auto
745 _sortsub=yes
746 _freetypeconfig='freetype-config'
747 _fribidi=auto
748 _fribidiconfig='fribidi-config'
749 _enca=auto
750 _inet6=auto
751 _gethostbyname2=auto
752 _ftp=yes
753 _musepack=auto
754 _vstream=auto
755 _pthreads=auto
756 _w32threads=auto
757 _ass=auto
758 ass_internal=yes
759 _rpath=no
760 _asmalign_pot=auto
761 _stream_cache=yes
762 _priority=no
763 def_dos_paths="#define HAVE_DOS_PATHS 0"
764 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
765 def_priority="#undef CONFIG_PRIORITY"
766 def_pthread_cache="#undef PTHREAD_CACHE"
767 _need_shmem=yes
768 for ac_option do
769 case "$ac_option" in
770 --help|-help|-h)
771 show_help
773 --prefix=*)
774 _prefix=$(echo $ac_option | cut -d '=' -f 2)
776 --bindir=*)
777 _bindir=$(echo $ac_option | cut -d '=' -f 2)
779 --datadir=*)
780 _datadir=$(echo $ac_option | cut -d '=' -f 2)
782 --mandir=*)
783 _mandir=$(echo $ac_option | cut -d '=' -f 2)
785 --confdir=*)
786 _confdir=$(echo $ac_option | cut -d '=' -f 2)
788 --libdir=*)
789 _libdir=$(echo $ac_option | cut -d '=' -f 2)
791 --codecsdir=*)
792 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
794 --win32codecsdir=*)
795 _win32codecsdir=$(echo $ac_option | cut -d '=' -f 2)
797 --xanimcodecsdir=*)
798 _xanimcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
800 --realcodecsdir=*)
801 _realcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
804 --with-install=*)
805 _install=$(echo $ac_option | cut -d '=' -f 2 )
807 --with-xvmclib=*)
808 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
811 --with-sdl-config=*)
812 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
814 --with-freetype-config=*)
815 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
817 --with-fribidi-config=*)
818 _fribidiconfig=$(echo $ac_option | cut -d '=' -f 2)
820 --with-gtk-config=*)
821 _gtkconfig=$(echo $ac_option | cut -d '=' -f 2)
823 --with-glib-config=*)
824 _glibconfig=$(echo $ac_option | cut -d '=' -f 2)
826 --with-dvdnav-config=*)
827 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
829 --with-dvdread-config=*)
830 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
833 --extra-cflags=*)
834 extra_cflags=$(echo $ac_option | cut -d '=' -f 2-)
836 --extra-ldflags=*)
837 extra_ldflags=$(echo $ac_option | cut -d '=' -f 2-)
839 --extra-libs=*)
840 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
842 --extra-libs-mplayer=*)
843 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
845 --extra-libs-mencoder=*)
846 libs_mencoder=$(echo $ac_option | cut -d '=' -f 2)
849 --target=*)
850 _target=$(echo $ac_option | cut -d '=' -f 2)
852 --cc=*)
853 _cc=$(echo $ac_option | cut -d '=' -f 2)
855 --host-cc=*)
856 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
858 --as=*)
859 _as=$(echo $ac_option | cut -d '=' -f 2)
861 --nm=*)
862 _nm=$(echo $ac_option | cut -d '=' -f 2)
864 --yasm=*)
865 _yasm=$(echo $ac_option | cut -d '=' -f 2)
867 --ar=*)
868 _ar=$(echo $ac_option | cut -d '=' -f 2)
870 --ranlib=*)
871 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
873 --windres=*)
874 _windres=$(echo $ac_option | cut -d '=' -f 2)
876 --charset=*)
877 _charset=$(echo $ac_option | cut -d '=' -f 2)
879 --language-doc=*)
880 language_doc=$(echo $ac_option | cut -d '=' -f 2)
882 --language-man=*)
883 language_man=$(echo $ac_option | cut -d '=' -f 2)
885 --language-msg=*)
886 language_msg=$(echo $ac_option | cut -d '=' -f 2)
888 --language=*)
889 language=$(echo $ac_option | cut -d '=' -f 2)
892 --enable-static)
893 _ld_static='-static'
895 --disable-static)
896 _ld_static=''
898 --enable-profile)
899 _profile='-p'
901 --disable-profile)
902 _profile=
904 --enable-debug)
905 _debug='-g'
907 --enable-debug=*)
908 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
910 --disable-debug)
911 _debug=
913 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
914 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
915 --enable-cross-compile) _cross_compile=yes ;;
916 --disable-cross-compile) _cross_compile=no ;;
917 --enable-mencoder) _mencoder=yes ;;
918 --disable-mencoder) _mencoder=no ;;
919 --enable-mplayer) _mplayer=yes ;;
920 --disable-mplayer) _mplayer=no ;;
921 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
922 --disable-dynamic-plugins) _dynamic_plugins=no ;;
923 --enable-x11) _x11=yes ;;
924 --disable-x11) _x11=no ;;
925 --enable-xshape) _xshape=yes ;;
926 --disable-xshape) _xshape=no ;;
927 --enable-xss) _xss=yes ;;
928 --disable-xss) _xss=no ;;
929 --enable-xv) _xv=yes ;;
930 --disable-xv) _xv=no ;;
931 --enable-xvmc) _xvmc=yes ;;
932 --disable-xvmc) _xvmc=no ;;
933 --enable-vdpau) _vdpau=yes ;;
934 --disable-vdpau) _vdpau=no ;;
935 --enable-sdl) _sdl=yes ;;
936 --disable-sdl) _sdl=no ;;
937 --enable-kva) _kva=yes ;;
938 --disable-kva) _kva=no ;;
939 --enable-direct3d) _direct3d=yes ;;
940 --disable-direct3d) _direct3d=no ;;
941 --enable-directx) _directx=yes ;;
942 --disable-directx) _directx=no ;;
943 --enable-win32waveout) _win32waveout=yes ;;
944 --disable-win32waveout) _win32waveout=no ;;
945 --enable-nas) _nas=yes ;;
946 --disable-nas) _nas=no ;;
947 --enable-png) _png=yes ;;
948 --disable-png) _png=no ;;
949 --enable-mng) _mng=yes ;;
950 --disable-mng) _mng=no ;;
951 --enable-jpeg) _jpeg=yes ;;
952 --disable-jpeg) _jpeg=no ;;
953 --enable-libopenjpeg) libopenjpeg=yes ;;
954 --disable-libopenjpeg)libopenjpeg=no ;;
955 --enable-pnm) _pnm=yes ;;
956 --disable-pnm) _pnm=no ;;
957 --enable-md5sum) _md5sum=yes ;;
958 --disable-md5sum) _md5sum=no ;;
959 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
960 --disable-yuv4mpeg) _yuv4mpeg=no ;;
961 --enable-gif) _gif=yes ;;
962 --disable-gif) _gif=no ;;
963 --enable-gl) _gl=yes ;;
964 --disable-gl) _gl=no ;;
965 --enable-matrixview) matrixview=yes ;;
966 --disable-matrixview) matrixview=no ;;
967 --enable-ggi) _ggi=yes ;;
968 --disable-ggi) _ggi=no ;;
969 --enable-ggiwmh) _ggiwmh=yes ;;
970 --disable-ggiwmh) _ggiwmh=no ;;
971 --enable-aa) _aa=yes ;;
972 --disable-aa) _aa=no ;;
973 --enable-caca) _caca=yes ;;
974 --disable-caca) _caca=no ;;
975 --enable-svga) _svga=yes ;;
976 --disable-svga) _svga=no ;;
977 --enable-vesa) _vesa=yes ;;
978 --disable-vesa) _vesa=no ;;
979 --enable-fbdev) _fbdev=yes ;;
980 --disable-fbdev) _fbdev=no ;;
981 --enable-dvb) _dvb=yes ;;
982 --disable-dvb) _dvb=no ;;
983 --enable-dvbhead) _dvbhead=yes ;;
984 --disable-dvbhead) _dvbhead=no ;;
985 --enable-dxr2) _dxr2=yes ;;
986 --disable-dxr2) _dxr2=no ;;
987 --enable-dxr3) _dxr3=yes ;;
988 --disable-dxr3) _dxr3=no ;;
989 --enable-ivtv) _ivtv=yes ;;
990 --disable-ivtv) _ivtv=no ;;
991 --enable-v4l2) _v4l2=yes ;;
992 --disable-v4l2) _v4l2=no ;;
993 --enable-iconv) _iconv=yes ;;
994 --disable-iconv) _iconv=no ;;
995 --enable-langinfo) _langinfo=yes ;;
996 --disable-langinfo) _langinfo=no ;;
997 --enable-rtc) _rtc=yes ;;
998 --disable-rtc) _rtc=no ;;
999 --enable-libdv) _libdv=yes ;;
1000 --disable-libdv) _libdv=no ;;
1001 --enable-ossaudio) _ossaudio=yes ;;
1002 --disable-ossaudio) _ossaudio=no ;;
1003 --enable-arts) _arts=yes ;;
1004 --disable-arts) _arts=no ;;
1005 --enable-esd) _esd=yes ;;
1006 --disable-esd) _esd=no ;;
1007 --enable-pulse) _pulse=yes ;;
1008 --disable-pulse) _pulse=no ;;
1009 --enable-jack) _jack=yes ;;
1010 --disable-jack) _jack=no ;;
1011 --enable-openal) _openal=yes ;;
1012 --disable-openal) _openal=no ;;
1013 --enable-dart) _dart=yes ;;
1014 --disable-dart) _dart=no ;;
1015 --enable-mad) _mad=yes ;;
1016 --disable-mad) _mad=no ;;
1017 --enable-mp3lame) _mp3lame=yes ;;
1018 --disable-mp3lame) _mp3lame=no ;;
1019 --enable-mp3lame-lavc) _mp3lame_lavc=yes ;;
1020 --disable-mp3lame-lavc) _mp3lame_lavc=no ;;
1021 --enable-toolame) _toolame=yes ;;
1022 --disable-toolame) _toolame=no ;;
1023 --enable-twolame) _twolame=yes ;;
1024 --disable-twolame) _twolame=no ;;
1025 --enable-libcdio) _libcdio=yes ;;
1026 --disable-libcdio) _libcdio=no ;;
1027 --enable-liblzo) _liblzo=yes ;;
1028 --disable-liblzo) _liblzo=no ;;
1029 --enable-libvorbis) _libvorbis=yes ;;
1030 --disable-libvorbis) _libvorbis=no ;;
1031 --enable-speex) _speex=yes ;;
1032 --disable-speex) _speex=no ;;
1033 --enable-tremor) _tremor=yes ;;
1034 --disable-tremor) _tremor=no ;;
1035 --enable-tremor-internal) _tremor_internal=yes ;;
1036 --disable-tremor-internal) _tremor_internal=no ;;
1037 --enable-tremor-low) _tremor_low=yes ;;
1038 --disable-tremor-low) _tremor_low=no ;;
1039 --enable-theora) _theora=yes ;;
1040 --disable-theora) _theora=no ;;
1041 --enable-mp3lib) _mp3lib=yes ;;
1042 --disable-mp3lib) _mp3lib=no ;;
1043 --enable-liba52-internal) _liba52_internal=yes ;;
1044 --disable-liba52-internal) _liba52_internal=no ;;
1045 --enable-liba52) _liba52=yes ;;
1046 --disable-liba52) _liba52=no ;;
1047 --enable-libdca) _libdca=yes ;;
1048 --disable-libdca) _libdca=no ;;
1049 --enable-libmpeg2) _libmpeg2=yes ;;
1050 --disable-libmpeg2) _libmpeg2=no ;;
1051 --enable-musepack) _musepack=yes ;;
1052 --disable-musepack) _musepack=no ;;
1053 --enable-faad) _faad=yes ;;
1054 --disable-faad) _faad=no ;;
1055 --enable-faad-internal) _faad_internal=yes ;;
1056 --disable-faad-internal) _faad_internal=no ;;
1057 --enable-faad-fixed) _faad_fixed=yes ;;
1058 --disable-faad-fixed) _faad_fixed=no ;;
1059 --enable-faac) _faac=yes ;;
1060 --disable-faac) _faac=no ;;
1061 --enable-faac-lavc) _faac_lavc=yes ;;
1062 --disable-faac-lavc) _faac_lavc=no ;;
1063 --enable-ladspa) _ladspa=yes ;;
1064 --disable-ladspa) _ladspa=no ;;
1065 --enable-libbs2b) _libbs2b=yes ;;
1066 --disable-libbs2b) _libbs2b=no ;;
1067 --enable-xmms) _xmms=yes ;;
1068 --disable-xmms) _xmms=no ;;
1069 --enable-vcd) _vcd=yes ;;
1070 --disable-vcd) _vcd=no ;;
1071 --enable-dvdread) _dvdread=yes ;;
1072 --disable-dvdread) _dvdread=no ;;
1073 --enable-dvdread-internal) _dvdread_internal=yes ;;
1074 --disable-dvdread-internal) _dvdread_internal=no ;;
1075 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
1076 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
1077 --enable-dvdnav) _dvdnav=yes ;;
1078 --disable-dvdnav) _dvdnav=no ;;
1079 --enable-xanim) _xanim=yes ;;
1080 --disable-xanim) _xanim=no ;;
1081 --enable-real) _real=yes ;;
1082 --disable-real) _real=no ;;
1083 --enable-live) _live=yes ;;
1084 --disable-live) _live=no ;;
1085 --enable-nemesi) _nemesi=yes ;;
1086 --disable-nemesi) _nemesi=no ;;
1087 --enable-xinerama) _xinerama=yes ;;
1088 --disable-xinerama) _xinerama=no ;;
1089 --enable-mga) _mga=yes ;;
1090 --disable-mga) _mga=no ;;
1091 --enable-xmga) _xmga=yes ;;
1092 --disable-xmga) _xmga=no ;;
1093 --enable-vm) _vm=yes ;;
1094 --disable-vm) _vm=no ;;
1095 --enable-xf86keysym) _xf86keysym=yes ;;
1096 --disable-xf86keysym) _xf86keysym=no ;;
1097 --enable-mlib) _mlib=yes ;;
1098 --disable-mlib) _mlib=no ;;
1099 --enable-sunaudio) _sunaudio=yes ;;
1100 --disable-sunaudio) _sunaudio=no ;;
1101 --enable-sgiaudio) _sgiaudio=yes ;;
1102 --disable-sgiaudio) _sgiaudio=no ;;
1103 --enable-alsa) _alsa=yes ;;
1104 --disable-alsa) _alsa=no ;;
1105 --enable-tv) _tv=yes ;;
1106 --disable-tv) _tv=no ;;
1107 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1108 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1109 --enable-tv-v4l1) _tv_v4l1=yes ;;
1110 --disable-tv-v4l1) _tv_v4l1=no ;;
1111 --enable-tv-v4l2) _tv_v4l2=yes ;;
1112 --disable-tv-v4l2) _tv_v4l2=no ;;
1113 --enable-tv-dshow) _tv_dshow=yes ;;
1114 --disable-tv-dshow) _tv_dshow=no ;;
1115 --enable-radio) _radio=yes ;;
1116 --enable-radio-capture) _radio_capture=yes ;;
1117 --disable-radio-capture) _radio_capture=no ;;
1118 --disable-radio) _radio=no ;;
1119 --enable-radio-v4l) _radio_v4l=yes ;;
1120 --disable-radio-v4l) _radio_v4l=no ;;
1121 --enable-radio-v4l2) _radio_v4l2=yes ;;
1122 --disable-radio-v4l2) _radio_v4l2=no ;;
1123 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1124 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1125 --enable-pvr) _pvr=yes ;;
1126 --disable-pvr) _pvr=no ;;
1127 --enable-fastmemcpy) _fastmemcpy=yes ;;
1128 --disable-fastmemcpy) _fastmemcpy=no ;;
1129 --enable-hardcoded-tables) hardcoded_tables=yes ;;
1130 --disable-hardcoded-tables) hardcoded_tables=no ;;
1131 --enable-network) _network=yes ;;
1132 --disable-network) _network=no ;;
1133 --enable-winsock2_h) _winsock2_h=yes ;;
1134 --disable-winsock2_h) _winsock2_h=no ;;
1135 --enable-smb) _smb=yes ;;
1136 --disable-smb) _smb=no ;;
1137 --enable-vidix) _vidix=yes ;;
1138 --disable-vidix) _vidix=no ;;
1139 --with-vidix-drivers=*)
1140 _vidix_drivers=$(echo $ac_option | cut -d '=' -f 2)
1142 --disable-vidix-pcidb) _vidix_pcidb=no ;;
1143 --enable-dhahelper) _dhahelper=yes ;;
1144 --disable-dhahelper) _dhahelper=no ;;
1145 --enable-svgalib_helper) _svgalib_helper=yes ;;
1146 --disable-svgalib_helper) _svgalib_helper=no ;;
1147 --enable-joystick) _joystick=yes ;;
1148 --disable-joystick) _joystick=no ;;
1149 --enable-xvid) _xvid=yes ;;
1150 --disable-xvid) _xvid=no ;;
1151 --enable-xvid-lavc) _xvid_lavc=yes ;;
1152 --disable-xvid-lavc) _xvid_lavc=no ;;
1153 --enable-x264) _x264=yes ;;
1154 --disable-x264) _x264=no ;;
1155 --enable-x264-lavc) _x264_lavc=yes ;;
1156 --disable-x264-lavc) _x264_lavc=no ;;
1157 --enable-libdirac-lavc) _libdirac_lavc=yes ;;
1158 --disable-libdirac-lavc) _libdirac_lavc=no ;;
1159 --enable-libschroedinger-lavc) _libschroedinger_lavc=yes ;;
1160 --disable-libschroedinger-lavc) _libschroedinger_lavc=no ;;
1161 --enable-libnut) _libnut=yes ;;
1162 --disable-libnut) _libnut=no ;;
1163 --enable-libavutil_a) _libavutil_a=yes ;;
1164 --disable-libavutil_a) _libavutil_a=no ;;
1165 --enable-libavutil_so) _libavutil_so=yes ;;
1166 --disable-libavutil_so) _libavutil_so=no ;;
1167 --enable-libavcodec_a) _libavcodec_a=yes ;;
1168 --disable-libavcodec_a) _libavcodec_a=no ;;
1169 --enable-libavcodec_so) _libavcodec_so=yes ;;
1170 --disable-libavcodec_so) _libavcodec_so=no ;;
1171 --enable-libopencore_amrnb) _libopencore_amrnb=yes ;;
1172 --disable-libopencore_amrnb) _libopencore_amrnb=no ;;
1173 --enable-libopencore_amrwb) _libopencore_amrwb=yes ;;
1174 --disable-libopencore_amrwb) _libopencore_amrwb=no ;;
1175 --enable-decoder=*) _libavdecoders="$_libavdecoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1176 --disable-decoder=*) _libavdecoders=$(echo $_libavdecoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1177 --enable-encoder=*) _libavencoders="$_libavencoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1178 --disable-encoder=*) _libavencoders=$(echo $_libavencoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1179 --enable-parser=*) _libavparsers="$_libavparsers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1180 --disable-parser=*) _libavparsers=$(echo $_libavparsers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1181 --enable-protocol=*) _libavprotocols="$_libavprotocols $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1182 --disable-protocol=*) _libavprotocols=$(echo $_libavprotocols | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1183 --enable-demuxer=*) _libavdemuxers="$_libavdemuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1184 --disable-demuxer=*) _libavdemuxers=$(echo $_libavdemuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1185 --enable-muxer=*) _libavmuxers="$_libavmuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1186 --disable-muxer=*) _libavmuxers=$(echo $_libavmuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1187 --enable-libavformat_a) _libavformat_a=yes ;;
1188 --disable-libavformat_a) _libavformat_a=no ;;
1189 --enable-libavformat_so) _libavformat_so=yes ;;
1190 --disable-libavformat_so) _libavformat_so=no ;;
1191 --enable-libpostproc_a) _libpostproc_a=yes ;;
1192 --disable-libpostproc_a) _libpostproc_a=no ;;
1193 --enable-libpostproc_so) _libpostproc_so=yes ;;
1194 --disable-libpostproc_so) _libpostproc_so=no ;;
1195 --enable-libswscale_a) _libswscale_a=yes ;;
1196 --disable-libswscale_a) _libswscale_a=no ;;
1197 --enable-libswscale_so) _libswscale_so=yes ;;
1198 --disable-libswscale_so) _libswscale_so=no ;;
1199 --enable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=yes ;;
1200 --disable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=no ;;
1202 --enable-lirc) _lirc=yes ;;
1203 --disable-lirc) _lirc=no ;;
1204 --enable-lircc) _lircc=yes ;;
1205 --disable-lircc) _lircc=no ;;
1206 --enable-apple-remote) _apple_remote=yes ;;
1207 --disable-apple-remote) _apple_remote=no ;;
1208 --enable-apple-ir) _apple_ir=yes ;;
1209 --disable-apple-ir) _apple_ir=no ;;
1210 --enable-gui) _gui=yes ;;
1211 --disable-gui) _gui=no ;;
1212 --enable-gtk1) _gtk1=yes ;;
1213 --disable-gtk1) _gtk1=no ;;
1214 --enable-termcap) _termcap=yes ;;
1215 --disable-termcap) _termcap=no ;;
1216 --enable-termios) _termios=yes ;;
1217 --disable-termios) _termios=no ;;
1218 --enable-3dfx) _3dfx=yes ;;
1219 --disable-3dfx) _3dfx=no ;;
1220 --enable-s3fb) _s3fb=yes ;;
1221 --disable-s3fb) _s3fb=no ;;
1222 --enable-wii) _wii=yes ;;
1223 --disable-wii) _wii=no ;;
1224 --enable-tdfxfb) _tdfxfb=yes ;;
1225 --disable-tdfxfb) _tdfxfb=no ;;
1226 --disable-tdfxvid) _tdfxvid=no ;;
1227 --enable-tdfxvid) _tdfxvid=yes ;;
1228 --disable-xvr100) _xvr100=no ;;
1229 --enable-xvr100) _xvr100=yes ;;
1230 --disable-tga) _tga=no ;;
1231 --enable-tga) _tga=yes ;;
1232 --enable-directfb) _directfb=yes ;;
1233 --disable-directfb) _directfb=no ;;
1234 --enable-zr) _zr=yes ;;
1235 --disable-zr) _zr=no ;;
1236 --enable-bl) _bl=yes ;;
1237 --disable-bl) _bl=no ;;
1238 --enable-mtrr) _mtrr=yes ;;
1239 --disable-mtrr) _mtrr=no ;;
1240 --enable-largefiles) _largefiles=yes ;;
1241 --disable-largefiles) _largefiles=no ;;
1242 --enable-shm) _shm=yes ;;
1243 --disable-shm) _shm=no ;;
1244 --enable-select) _select=yes ;;
1245 --disable-select) _select=no ;;
1246 --enable-linux-devfs) _linux_devfs=yes ;;
1247 --disable-linux-devfs) _linux_devfs=no ;;
1248 --enable-cdparanoia) _cdparanoia=yes ;;
1249 --disable-cdparanoia) _cdparanoia=no ;;
1250 --enable-cddb) _cddb=yes ;;
1251 --disable-cddb) _cddb=no ;;
1252 --enable-big-endian) _big_endian=yes ;;
1253 --disable-big-endian) _big_endian=no ;;
1254 --enable-bitmap-font) _bitmap_font=yes ;;
1255 --disable-bitmap-font) _bitmap_font=no ;;
1256 --enable-freetype) _freetype=yes ;;
1257 --disable-freetype) _freetype=no ;;
1258 --enable-fontconfig) _fontconfig=yes ;;
1259 --disable-fontconfig) _fontconfig=no ;;
1260 --enable-unrarexec) _unrar_exec=yes ;;
1261 --disable-unrarexec) _unrar_exec=no ;;
1262 --enable-ftp) _ftp=yes ;;
1263 --disable-ftp) _ftp=no ;;
1264 --enable-vstream) _vstream=yes ;;
1265 --disable-vstream) _vstream=no ;;
1266 --enable-pthreads) _pthreads=yes ;;
1267 --disable-pthreads) _pthreads=no ;;
1268 --enable-w32threads) _w32threads=yes ;;
1269 --disable-w32threads) _w32threads=no ;;
1270 --enable-ass) _ass=yes ;;
1271 --disable-ass) _ass=no ;;
1272 --enable-ass-internal) ass_internal=yes ;;
1273 --disable-ass-internal) ass_internal=no ;;
1274 --enable-rpath) _rpath=yes ;;
1275 --disable-rpath) _rpath=no ;;
1277 --enable-fribidi) _fribidi=yes ;;
1278 --disable-fribidi) _fribidi=no ;;
1280 --enable-enca) _enca=yes ;;
1281 --disable-enca) _enca=no ;;
1283 --enable-inet6) _inet6=yes ;;
1284 --disable-inet6) _inet6=no ;;
1286 --enable-gethostbyname2) _gethostbyname2=yes ;;
1287 --disable-gethostbyname2) _gethostbyname2=no ;;
1289 --enable-dga1) _dga1=yes ;;
1290 --disable-dga1) _dga1=no ;;
1291 --enable-dga2) _dga2=yes ;;
1292 --disable-dga2) _dga2=no ;;
1294 --enable-menu) _menu=yes ;;
1295 --disable-menu) _menu=no ;;
1297 --enable-qtx) _qtx=yes ;;
1298 --disable-qtx) _qtx=no ;;
1300 --enable-coreaudio) _coreaudio=yes ;;
1301 --disable-coreaudio) _coreaudio=no ;;
1302 --enable-corevideo) _corevideo=yes ;;
1303 --disable-corevideo) _corevideo=no ;;
1304 --enable-quartz) _quartz=yes ;;
1305 --disable-quartz) _quartz=no ;;
1306 --enable-macosx-finder) _macosx_finder=yes ;;
1307 --disable-macosx-finder) _macosx_finder=no ;;
1308 --enable-macosx-bundle) _macosx_bundle=yes ;;
1309 --disable-macosx-bundle) _macosx_bundle=no ;;
1311 --enable-maemo) _maemo=yes ;;
1312 --disable-maemo) _maemo=no ;;
1314 --enable-sortsub) _sortsub=yes ;;
1315 --disable-sortsub) _sortsub=no ;;
1317 --enable-crash-debug) _crash_debug=yes ;;
1318 --disable-crash-debug) _crash_debug=no ;;
1319 --enable-sighandler) _sighandler=yes ;;
1320 --disable-sighandler) _sighandler=no ;;
1321 --enable-win32dll) _win32dll=yes ;;
1322 --disable-win32dll) _win32dll=no ;;
1324 --enable-sse) _sse=yes ;;
1325 --disable-sse) _sse=no ;;
1326 --enable-sse2) _sse2=yes ;;
1327 --disable-sse2) _sse2=no ;;
1328 --enable-ssse3) _ssse3=yes ;;
1329 --disable-ssse3) _ssse3=no ;;
1330 --enable-mmxext) _mmxext=yes ;;
1331 --disable-mmxext) _mmxext=no ;;
1332 --enable-3dnow) _3dnow=yes ;;
1333 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1334 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1335 --disable-3dnowext) _3dnowext=no ;;
1336 --enable-cmov) _cmov=yes ;;
1337 --disable-cmov) _cmov=no ;;
1338 --enable-fast-cmov) _fast_cmov=yes ;;
1339 --disable-fast-cmov) _fast_cmov=no ;;
1340 --enable-fast-clz) _fast_clz=yes ;;
1341 --disable-fast-clz) _fast_clz=no ;;
1342 --enable-altivec) _altivec=yes ;;
1343 --disable-altivec) _altivec=no ;;
1344 --enable-armv5te) _armv5te=yes ;;
1345 --disable-armv5te) _armv5te=no ;;
1346 --enable-armv6) _armv6=yes ;;
1347 --disable-armv6) _armv6=no ;;
1348 --enable-armv6t2) _armv6t2=yes ;;
1349 --disable-armv6t2) _armv6t2=no ;;
1350 --enable-armvfp) _armvfp=yes ;;
1351 --disable-armvfp) _armvfp=no ;;
1352 --enable-neon) neon=yes ;;
1353 --disable-neon) neon=no ;;
1354 --enable-iwmmxt) _iwmmxt=yes ;;
1355 --disable-iwmmxt) _iwmmxt=no ;;
1356 --enable-mmx) _mmx=yes ;;
1357 --disable-mmx) # 3Dnow! and MMX2 require MMX
1358 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1361 echo "Unknown parameter: $ac_option"
1362 exit 1
1365 esac
1366 done
1368 # Atmos: moved this here, to be correct, if --prefix is specified
1369 test -z "$_bindir" && _bindir="$_prefix/bin"
1370 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1371 test -z "$_mandir" && _mandir="$_prefix/share/man"
1372 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1373 test -z "$_libdir" && _libdir="$_prefix/lib"
1375 # Determine our OS name and CPU architecture
1376 if test -z "$_target" ; then
1377 # OS name
1378 system_name=$(uname -s 2>&1)
1379 case "$system_name" in
1380 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1382 Haiku)
1383 system_name=BeOS
1385 IRIX*)
1386 system_name=IRIX
1388 GNU/kFreeBSD)
1389 system_name=FreeBSD
1391 HP-UX*)
1392 system_name=HP-UX
1394 [cC][yY][gG][wW][iI][nN]*)
1395 system_name=CYGWIN
1397 MINGW32*)
1398 system_name=MINGW32
1400 OS/2*)
1401 system_name=OS/2
1404 system_name="$system_name-UNKNOWN"
1406 esac
1409 # host's CPU/instruction set
1410 host_arch=$(uname -p 2>&1)
1411 case "$host_arch" in
1412 i386|sparc|ppc|alpha|arm|mips|vax)
1414 powerpc) # Darwin returns 'powerpc'
1415 host_arch=ppc
1417 *) # uname -p on Linux returns 'unknown' for the processor type,
1418 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1420 # Maybe uname -m (machine hardware name) returns something we
1421 # recognize.
1423 # x86/x86pc is used by QNX
1424 case "$(uname -m 2>&1)" in
1425 x86_64|amd64|i[3-9]86*|x86|x86pc|k5|k6|k6_2|k6_3|k6-2|k6-3|pentium*|athlon*|i586_i686|i586-i686|BePC) host_arch=i386 ;;
1426 ia64) host_arch=ia64 ;;
1427 macppc|ppc) host_arch=ppc ;;
1428 ppc64) host_arch=ppc64 ;;
1429 alpha) host_arch=alpha ;;
1430 sparc) host_arch=sparc ;;
1431 sparc64) host_arch=sparc64 ;;
1432 parisc*|hppa*|9000*) host_arch=hppa ;;
1433 arm*|zaurus|cats) host_arch=arm ;;
1434 sh3|sh4|sh4a) host_arch=sh ;;
1435 s390) host_arch=s390 ;;
1436 s390x) host_arch=s390x ;;
1437 *mips*) host_arch=mips ;;
1438 vax) host_arch=vax ;;
1439 xtensa*) host_arch=xtensa ;;
1440 *) host_arch=UNKNOWN ;;
1441 esac
1443 esac
1444 else # if test -z "$_target"
1445 system_name=$(echo $_target | cut -d '-' -f 2)
1446 case "$(echo $system_name | tr A-Z a-z)" in
1447 linux) system_name=Linux ;;
1448 freebsd) system_name=FreeBSD ;;
1449 gnu/kfreebsd) system_name=FreeBSD ;;
1450 netbsd) system_name=NetBSD ;;
1451 bsd/os) system_name=BSD/OS ;;
1452 openbsd) system_name=OpenBSD ;;
1453 dragonfly) system_name=DragonFly ;;
1454 sunos) system_name=SunOS ;;
1455 qnx) system_name=QNX ;;
1456 morphos) system_name=MorphOS ;;
1457 amigaos) system_name=AmigaOS ;;
1458 mingw32*) system_name=MINGW32 ;;
1459 esac
1460 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1461 host_arch=$(echo $_target | cut -d '-' -f 1)
1462 if test $(echo $host_arch) != "x86_64" ; then
1463 host_arch=$(echo $host_arch | tr '_' '-')
1467 extra_cflags="-I. $extra_cflags"
1468 _timer=timer-linux.c
1469 _getch=getch2.c
1470 if freebsd ; then
1471 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1472 extra_cflags="$extra_cflags -I/usr/local/include"
1475 if netbsd || dragonfly ; then
1476 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1477 extra_cflags="$extra_cflags -I/usr/pkg/include"
1480 if darwin; then
1481 extra_cflags="-mdynamic-no-pic -falign-loops=16 -shared-libgcc $extra_cflags"
1482 _timer=timer-darwin.c
1485 if aix ; then
1486 extra_ldflags="$extra_ldflags -lC"
1489 if irix ; then
1490 _ranlib='ar -r'
1491 elif linux ; then
1492 _ranlib='true'
1495 if win32 ; then
1496 _exesuf=".exe"
1497 extra_cflags="$extra_cflags -fno-common"
1498 # -lwinmm is always needed for osdep/timer-win2.c
1499 extra_ldflags="$extra_ldflags -lwinmm"
1500 _pe_executable=yes
1501 _timer=timer-win2.c
1502 _priority=yes
1503 def_dos_paths="#define HAVE_DOS_PATHS 1"
1504 def_priority="#define CONFIG_PRIORITY 1"
1507 if mingw32 ; then
1508 _getch=getch2-win.c
1509 _need_shmem=no
1512 if amigaos ; then
1513 _select=no
1514 _sighandler=no
1515 _stream_cache=no
1516 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1517 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1520 if qnx ; then
1521 extra_ldflags="$extra_ldflags -lph"
1524 if os2 ; then
1525 _exesuf=".exe"
1526 _getch=getch2-os2.c
1527 _need_shmem=no
1528 _priority=yes
1529 def_dos_paths="#define HAVE_DOS_PATHS 1"
1530 def_priority="#define CONFIG_PRIORITY 1"
1533 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1534 test "$I" && break
1535 done
1538 TMPLOG="configure.log"
1539 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
1540 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
1541 TMPEXE="$I/mplayer-conf-$RANDOM-$$$_exesuf"
1542 TMPH="$I/mplayer-conf-$RANDOM-$$.h"
1543 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
1545 rm -f "$TMPLOG"
1546 echo configuration: $_configuration > "$TMPLOG"
1547 echo >> "$TMPLOG"
1550 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1551 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1555 # Checking CC version...
1556 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1557 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1558 echocheck "$_cc version"
1559 cc_vendor=intel
1560 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1561 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1562 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1563 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1564 # TODO verify older icc/ecc compatibility
1565 case $cc_version in
1567 cc_version="v. ?.??, bad"
1568 cc_fail=yes
1570 10.1|11.0|11.1)
1571 cc_version="$cc_version, ok"
1574 cc_version="$cc_version, bad"
1575 cc_fail=yes
1577 esac
1578 echores "$cc_version"
1579 else
1580 for _cc in "$_cc" gcc cc ; do
1581 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1582 if test "$cc_name_tmp" = "gcc"; then
1583 cc_name=$cc_name_tmp
1584 echocheck "$_cc version"
1585 cc_vendor=gnu
1586 cc_version=$($_cc -dumpversion 2>&1)
1587 case $cc_version in
1588 2.96*)
1589 cc_fail=yes
1592 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1593 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1594 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1596 esac
1597 echores "$cc_version"
1598 break
1600 cc_name_tmp=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 2,3)
1601 if test "$cc_name_tmp" = "Sun C"; then
1602 echocheck "$_cc version"
1603 cc_vendor=sun
1604 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 4)
1605 _res_comment="experimental support only"
1606 echores "Sun C $cc_version"
1607 break
1609 done
1610 fi # icc
1611 test "$cc_fail" = yes && die "unsupported compiler version"
1613 if test -z "$_target" && x86 ; then
1614 cat > $TMPC << EOF
1615 int main(void) {
1616 int test[(int)sizeof(char *)-7];
1617 return 0;
1620 cc_check && host_arch=x86_64 || host_arch=i386
1623 echo "Detected operating system: $system_name"
1624 echo "Detected host architecture: $host_arch"
1626 echocheck "host cc"
1627 test "$_host_cc" || _host_cc=$_cc
1628 echores $_host_cc
1630 echocheck "cross compilation"
1631 if test $_cross_compile = auto ; then
1632 cat > $TMPC << EOF
1633 int main(void) { return 0; }
1635 _cross_compile=yes
1636 cc_check && "$TMPEXE" && _cross_compile=no
1638 echores $_cross_compile
1640 if test $_cross_compile = yes; then
1641 tmp_run() {
1642 return 0
1646 # ---
1648 # now that we know what compiler should be used for compilation, try to find
1649 # out which assembler is used by the $_cc compiler
1650 if test "$_as" = auto ; then
1651 _as=$($_cc -print-prog-name=as)
1652 test -z "$_as" && _as=as
1655 if test "$_nm" = auto ; then
1656 _nm=$($_cc -print-prog-name=nm)
1657 test -z "$_nm" && _nm=nm
1660 # XXX: this should be ok..
1661 _cpuinfo="echo"
1663 if test "$_runtime_cpudetection" = no ; then
1665 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1666 # FIXME: Remove the cygwin check once AMD CPUs are supported
1667 if test -r /proc/cpuinfo && ! cygwin; then
1668 # Linux with /proc mounted, extract CPU information from it
1669 _cpuinfo="cat /proc/cpuinfo"
1670 elif test -r /compat/linux/proc/cpuinfo && ! x86 ; then
1671 # FreeBSD with Linux emulation /proc mounted,
1672 # extract CPU information from it
1673 # Don't use it on x86 though, it never reports 3Dnow
1674 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1675 elif darwin && ! x86 ; then
1676 # use hostinfo on Darwin
1677 _cpuinfo="hostinfo"
1678 elif aix; then
1679 # use 'lsattr' on AIX
1680 _cpuinfo="lsattr -E -l proc0 -a type"
1681 elif x86; then
1682 # all other OSes try to extract CPU information from a small helper
1683 # program cpuinfo instead
1684 $_cc -o cpuinfo$_exesuf cpuinfo.c
1685 _cpuinfo="./cpuinfo$_exesuf"
1688 if x86 ; then
1689 # gather more CPU information
1690 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1691 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1692 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1693 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1694 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1696 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1698 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1699 -e s/xmm/sse/ -e s/kni/sse/)
1701 for ext in $pparam ; do
1702 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1703 done
1705 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1706 test $_sse = kernel_check && _mmxext=kernel_check
1708 echocheck "CPU vendor"
1709 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1711 echocheck "CPU type"
1712 echores "$pname"
1715 fi # test "$_runtime_cpudetection" = no
1717 if x86 && test "$_runtime_cpudetection" = no ; then
1718 extcheck() {
1719 if test "$1" = kernel_check ; then
1720 echocheck "kernel support of $2"
1721 cat > $TMPC <<EOF
1722 #include <stdlib.h>
1723 #include <signal.h>
1724 void catch() { exit(1); }
1725 int main(void) {
1726 signal(SIGILL, catch);
1727 __asm__ volatile ("$3":::"memory"); return 0;
1731 if cc_check && tmp_run ; then
1732 eval _$2=yes
1733 echores "yes"
1734 _optimizing="$_optimizing $2"
1735 return 0
1736 else
1737 eval _$2=no
1738 echores "failed"
1739 echo "It seems that your kernel does not correctly support $2."
1740 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1741 return 1
1744 return 0
1747 extcheck $_mmx "mmx" "emms"
1748 extcheck $_mmxext "mmxext" "sfence"
1749 extcheck $_3dnow "3dnow" "femms"
1750 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1751 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1752 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1753 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1754 extcheck $_cmov "cmov" "cmovb %%eax,%%ebx"
1756 echocheck "mtrr support"
1757 if test "$_mtrr" = kernel_check ; then
1758 _mtrr="yes"
1759 _optimizing="$_optimizing mtrr"
1761 echores "$_mtrr"
1763 if test "$_gcc3_ext" != ""; then
1764 # if we had to disable sse/sse2 because the active kernel does not
1765 # support this instruction set extension, we also have to tell
1766 # gcc3 to not generate sse/sse2 instructions for normal C code
1767 cat > $TMPC << EOF
1768 int main(void) { return 0; }
1770 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1776 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1777 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1778 _arch_all='X86 X86_32 X86_64 IA64 SPARC ARM AVR32 SH4 PPC PPC64 ALPHA MIPS SGI_MIPS PA_RISC S390 S390X VAX BFIN XTENSA GENERIC'
1779 case "$host_arch" in
1780 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1781 _arch='X86 X86_32'
1782 _target_arch="ARCH_X86 = yes"
1783 _target_subarch="ARCH_X86_32 = yes"
1784 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1785 iproc=486
1786 proc=i486
1789 if test "$_runtime_cpudetection" = no ; then
1790 case "$pvendor" in
1791 AuthenticAMD)
1792 case "$pfamily" in
1793 3) proc=i386 iproc=386 ;;
1794 4) proc=i486 iproc=486 ;;
1795 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1796 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1797 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1798 proc=k6-3
1799 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1800 proc=geode
1801 elif test "$pmodel" -ge 8; then
1802 proc=k6-2
1803 elif test "$pmodel" -ge 6; then
1804 proc=k6
1805 else
1806 proc=i586
1809 6) iproc=686
1810 # It's a bit difficult to determine the correct type of Family 6
1811 # AMD CPUs just from their signature. Instead, we check directly
1812 # whether it supports SSE.
1813 if test "$_sse" = yes; then
1814 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1815 proc=athlon-xp
1816 else
1817 # Again, gcc treats athlon and athlon-tbird similarly.
1818 proc=athlon
1821 15) iproc=686
1822 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1823 # caught and remedied in the optimization tests below.
1824 proc=k8
1827 *) proc=amdfam10 iproc=686
1828 test $_fast_clz = "auto" && _fast_clz=yes
1830 esac
1832 GenuineIntel)
1833 case "$pfamily" in
1834 3) proc=i386 iproc=386 ;;
1835 4) proc=i486 iproc=486 ;;
1836 5) iproc=586
1837 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1838 proc=pentium-mmx # 4 is desktop, 8 is mobile
1839 else
1840 proc=i586
1843 6) iproc=686
1844 if test "$pmodel" -ge 15; then
1845 proc=core2
1846 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1847 proc=pentium-m
1848 elif test "$pmodel" -ge 7; then
1849 proc=pentium3
1850 elif test "$pmodel" -ge 3; then
1851 proc=pentium2
1852 else
1853 proc=i686
1855 test $_fast_clz = "auto" && _fast_clz=yes
1857 15) iproc=686
1858 # A nocona in 32-bit mode has no more capabilities than a prescott.
1859 if test "$pmodel" -ge 3; then
1860 proc=prescott
1861 else
1862 proc=pentium4
1863 test $_fast_clz = "auto" && _fast_clz=yes
1865 test $_fast_cmov = "auto" && _fast_cmov=no
1867 *) proc=prescott iproc=686 ;;
1868 esac
1870 CentaurHauls)
1871 case "$pfamily" in
1872 5) iproc=586
1873 if test "$pmodel" -ge 8; then
1874 proc=winchip2
1875 elif test "$pmodel" -ge 4; then
1876 proc=winchip-c6
1877 else
1878 proc=i586
1881 6) iproc=686
1882 if test "$pmodel" -ge 9; then
1883 proc=c3-2
1884 else
1885 proc=c3
1886 iproc=586
1889 *) proc=i686 iproc=i686 ;;
1890 esac
1892 unknown)
1893 case "$pfamily" in
1894 3) proc=i386 iproc=386 ;;
1895 4) proc=i486 iproc=486 ;;
1896 *) proc=i586 iproc=586 ;;
1897 esac
1900 proc=i586 iproc=586 ;;
1901 esac
1902 test $_fast_clz = "auto" && _fast_clz=no
1903 fi # test "$_runtime_cpudetection" = no
1906 # check that gcc supports our CPU, if not, fall back to earlier ones
1907 # LGB: check -mcpu and -march swithing step by step with enabling
1908 # to fall back till 386.
1910 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1912 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1913 cpuopt=-mtune
1914 else
1915 cpuopt=-mcpu
1918 echocheck "GCC & CPU optimization abilities"
1919 cat > $TMPC << EOF
1920 int main(void) { return 0; }
1922 if test "$_runtime_cpudetection" = no ; then
1923 cc_check -march=native && proc=native
1924 if test "$proc" = "k8"; then
1925 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1927 if test "$proc" = "athlon-xp"; then
1928 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1930 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1931 cc_check -march=$proc $cpuopt=$proc || proc=k6
1933 if test "$proc" = "k6" || test "$proc" = "c3"; then
1934 if ! cc_check -march=$proc $cpuopt=$proc; then
1935 if cc_check -march=i586 $cpuopt=i686; then
1936 proc=i586-i686
1937 else
1938 proc=i586
1942 if test "$proc" = "prescott" ; then
1943 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1945 if test "$proc" = "core2" ; then
1946 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1948 if test "$proc" = "pentium4" || test "$proc" = "pentium-m" || test "$proc" = "pentium3" || test "$proc" = "pentium2" || test "$proc" = "athlon" || test "$proc" = "c3-2" || test "$proc" = "geode"; then
1949 cc_check -march=$proc $cpuopt=$proc || proc=i686
1951 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1952 cc_check -march=$proc $cpuopt=$proc || proc=i586
1954 if test "$proc" = "i586"; then
1955 cc_check -march=$proc $cpuopt=$proc || proc=i486
1957 if test "$proc" = "i486" ; then
1958 cc_check -march=$proc $cpuopt=$proc || proc=i386
1960 if test "$proc" = "i386" ; then
1961 cc_check -march=$proc $cpuopt=$proc || proc=error
1963 if test "$proc" = "error" ; then
1964 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1965 _mcpu=""
1966 _march=""
1967 _optimizing=""
1968 elif test "$proc" = "i586-i686"; then
1969 _march="-march=i586"
1970 _mcpu="$cpuopt=i686"
1971 _optimizing="$proc"
1972 else
1973 _march="-march=$proc"
1974 _mcpu="$cpuopt=$proc"
1975 _optimizing="$proc"
1977 else # if test "$_runtime_cpudetection" = no
1978 _mcpu="$cpuopt=generic"
1979 # at least i486 required, for bswap instruction
1980 _march="-march=i486"
1981 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1982 cc_check $_mcpu || _mcpu=""
1983 cc_check $_march $_mcpu || _march=""
1986 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1987 ## autodetected mcpu/march parameters
1988 if test "$_target" ; then
1989 # TODO: it may be a good idea to check GCC and fall back in all cases
1990 if test "$host_arch" = "i586-i686"; then
1991 _march="-march=i586"
1992 _mcpu="$cpuopt=i686"
1993 else
1994 _march="-march=$host_arch"
1995 _mcpu="$cpuopt=$host_arch"
1998 proc="$host_arch"
2000 case "$proc" in
2001 i386) iproc=386 ;;
2002 i486) iproc=486 ;;
2003 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
2004 i686|athlon*|pentium*) iproc=686 ;;
2005 *) iproc=586 ;;
2006 esac
2009 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
2010 _fast_cmov="yes"
2011 else
2012 _fast_cmov="no"
2014 test $_fast_clz = "auto" && _fast_clz=yes
2016 echores "$proc"
2019 ia64)
2020 _arch='IA64'
2021 _target_arch='ARCH_IA64 = yes'
2022 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2023 iproc='ia64'
2026 x86_64|amd64)
2027 _arch='X86 X86_64'
2028 _target_subarch='ARCH_X86_64 = yes'
2029 _target_arch="ARCH_X86 = yes"
2030 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2031 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2032 iproc='x86_64'
2034 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
2035 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
2036 cpuopt=-mtune
2037 else
2038 cpuopt=-mcpu
2040 if test "$_runtime_cpudetection" = no ; then
2041 case "$pvendor" in
2042 AuthenticAMD)
2043 case "$pfamily" in
2044 15) proc=k8
2045 test $_fast_clz = "auto" && _fast_clz=no
2047 *) proc=amdfam10;;
2048 esac
2050 GenuineIntel)
2051 case "$pfamily" in
2052 6) proc=core2;;
2054 # 64-bit prescotts exist, but as far as GCC is concerned they
2055 # have the same capabilities as a nocona.
2056 proc=nocona
2057 test $_fast_cmov = "auto" && _fast_cmov=no
2058 test $_fast_clz = "auto" && _fast_clz=no
2060 esac
2063 proc=error;;
2064 esac
2065 fi # test "$_runtime_cpudetection" = no
2067 echocheck "GCC & CPU optimization abilities"
2068 cat > $TMPC << EOF
2069 int main(void) { return 0; }
2071 # This is a stripped-down version of the i386 fallback.
2072 if test "$_runtime_cpudetection" = no ; then
2073 cc_check -march=native && proc=native
2074 # --- AMD processors ---
2075 if test "$proc" = "k8"; then
2076 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
2078 # This will fail if gcc version < 3.3, which is ok because earlier
2079 # versions don't really support 64-bit on amd64.
2080 # Is this a valid assumption? -Corey
2081 if test "$proc" = "athlon-xp"; then
2082 cc_check -march=$proc $cpuopt=$proc || proc=error
2084 # --- Intel processors ---
2085 if test "$proc" = "core2"; then
2086 cc_check -march=$proc $cpuopt=$proc || proc=x86-64
2088 if test "$proc" = "x86-64"; then
2089 cc_check -march=$proc $cpuopt=$proc || proc=nocona
2091 if test "$proc" = "nocona"; then
2092 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
2094 if test "$proc" = "pentium4"; then
2095 cc_check -march=$proc $cpuopt=$proc || proc=error
2098 _march="-march=$proc"
2099 _mcpu="$cpuopt=$proc"
2100 if test "$proc" = "error" ; then
2101 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
2102 _mcpu=""
2103 _march=""
2105 else # if test "$_runtime_cpudetection" = no
2106 # x86-64 is an undocumented option, an intersection of k8 and nocona.
2107 _march="-march=x86-64"
2108 _mcpu="$cpuopt=generic"
2109 cc_check $_mcpu || _mcpu="x86-64"
2110 cc_check $_mcpu || _mcpu=""
2111 cc_check $_march $_mcpu || _march=""
2114 _optimizing="$proc"
2115 test $_fast_cmov = "auto" && _fast_cmov=yes
2116 test $_fast_clz = "auto" && _fast_clz=yes
2118 echores "$proc"
2121 sparc|sparc64)
2122 _arch='SPARC'
2123 _target_arch='ARCH_SPARC = yes'
2124 iproc='sparc'
2125 if test "$host_arch" = "sparc64" ; then
2126 _vis='yes'
2127 proc='ultrasparc'
2128 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2129 elif sunos ; then
2130 echocheck "CPU type"
2131 karch=$(uname -m)
2132 case "$(echo $karch)" in
2133 sun4) proc=v7 ;;
2134 sun4c) proc=v7 ;;
2135 sun4d) proc=v8 ;;
2136 sun4m) proc=v8 ;;
2137 sun4u) proc=ultrasparc _vis='yes' ;;
2138 sun4v) proc=v9 ;;
2139 *) proc=v8 ;;
2140 esac
2141 echores "$proc"
2142 else
2143 proc=v8
2145 _mcpu="-mcpu=$proc"
2146 _optimizing="$proc"
2149 arm*)
2150 _arch='ARM'
2151 _target_arch='ARCH_ARM = yes'
2152 iproc='arm'
2155 avr32)
2156 _arch='AVR32'
2157 _target_arch='ARCH_AVR32 = yes'
2158 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2159 iproc='avr32'
2160 test $_fast_clz = "auto" && _fast_clz=yes
2163 sh|sh4)
2164 _arch='SH4'
2165 _target_arch='ARCH_SH4 = yes'
2166 iproc='sh4'
2169 ppc|ppc64|powerpc|powerpc64)
2170 _arch='PPC'
2171 def_dcbzl='#define HAVE_DCBZL 0'
2172 _target_arch='ARCH_PPC = yes'
2173 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2174 iproc='ppc'
2176 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2177 _arch='PPC PPC64'
2178 _target_subarch='ARCH_PPC64 = yes'
2179 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2181 echocheck "CPU type"
2182 case $system_name in
2183 Linux)
2184 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2185 if test -n "$($_cpuinfo | grep altivec)"; then
2186 test $_altivec = auto && _altivec=yes
2189 Darwin)
2190 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2191 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2192 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2193 test $_altivec = auto && _altivec=yes
2196 NetBSD)
2197 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2198 case $cc_version in
2199 2*|3.0*|3.1*|3.2*|3.3*)
2202 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2203 test $_altivec = auto && _altivec=yes
2206 esac
2208 AIX)
2209 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2211 esac
2212 if test "$_altivec" = yes; then
2213 echores "$proc altivec"
2214 else
2215 _altivec=no
2216 echores "$proc"
2219 echocheck "GCC & CPU optimization abilities"
2221 if test -n "$proc"; then
2222 case "$proc" in
2223 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2224 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2225 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2226 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2227 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2228 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2229 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2230 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2231 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2232 *) ;;
2233 esac
2234 # gcc 3.1(.1) and up supports 7400 and 7450
2235 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2236 case "$proc" in
2237 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2238 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2239 *) ;;
2240 esac
2242 # gcc 3.2 and up supports 970
2243 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2244 case "$proc" in
2245 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2246 def_dcbzl='#define HAVE_DCBZL 1' ;;
2247 *) ;;
2248 esac
2250 # gcc 3.3 and up supports POWER4
2251 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2252 case "$proc" in
2253 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2254 *) ;;
2255 esac
2257 # gcc 3.4 and up supports 440*
2258 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2259 case "$proc" in
2260 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2261 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2262 *) ;;
2263 esac
2265 # gcc 4.0 and up supports POWER5
2266 if test "$_cc_major" -ge "4"; then
2267 case "$proc" in
2268 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2269 *) ;;
2270 esac
2274 if test -n "$_mcpu"; then
2275 _optimizing=$(echo $_mcpu | cut -c 8-)
2276 echores "$_optimizing"
2277 else
2278 echores "none"
2281 test $_fast_clz = "auto" && _fast_clz=yes
2285 alpha*)
2286 _arch='ALPHA'
2287 _target_arch='ARCH_ALPHA = yes'
2288 iproc='alpha'
2290 echocheck "CPU type"
2291 cat > $TMPC << EOF
2292 int main(void) {
2293 unsigned long ver, mask;
2294 __asm__ ("implver %0" : "=r" (ver));
2295 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2296 printf("%ld-%x\n", ver, ~mask);
2297 return 0;
2300 $_cc -o "$TMPEXE" "$TMPC"
2301 case $("$TMPEXE") in
2303 0-0) proc="ev4"; _mvi="0";;
2304 1-0) proc="ev5"; _mvi="0";;
2305 1-1) proc="ev56"; _mvi="0";;
2306 1-101) proc="pca56"; _mvi="1";;
2307 2-303) proc="ev6"; _mvi="1";;
2308 2-307) proc="ev67"; _mvi="1";;
2309 2-1307) proc="ev68"; _mvi="1";;
2310 esac
2311 echores "$proc"
2313 echocheck "GCC & CPU optimization abilities"
2314 if test "$proc" = "ev68" ; then
2315 cc_check -mcpu=$proc || proc=ev67
2317 if test "$proc" = "ev67" ; then
2318 cc_check -mcpu=$proc || proc=ev6
2320 _mcpu="-mcpu=$proc"
2321 echores "$proc"
2323 test $_fast_clz = "auto" && _fast_clz=yes
2325 _optimizing="$proc"
2328 mips)
2329 _arch='SGI_MIPS'
2330 _target_arch='ARCH_SGI_MIPS = yes'
2331 iproc='sgi-mips'
2333 if irix ; then
2334 echocheck "CPU type"
2335 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2336 case "$(echo $proc)" in
2337 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2338 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2339 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2340 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2341 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2342 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2343 esac
2344 # gcc < 3.x does not support -mtune.
2345 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2346 _mcpu=''
2348 echores "$proc"
2351 test $_fast_clz = "auto" && _fast_clz=yes
2355 hppa)
2356 _arch='PA_RISC'
2357 _target_arch='ARCH_PA_RISC = yes'
2358 iproc='PA-RISC'
2361 s390)
2362 _arch='S390'
2363 _target_arch='ARCH_S390 = yes'
2364 iproc='390'
2367 s390x)
2368 _arch='S390X'
2369 _target_arch='ARCH_S390X = yes'
2370 iproc='390x'
2373 vax)
2374 _arch='VAX'
2375 _target_arch='ARCH_VAX = yes'
2376 iproc='vax'
2379 xtensa)
2380 _arch='XTENSA'
2381 _target_arch='ARCH_XTENSA = yes'
2382 iproc='xtensa'
2385 generic)
2386 _arch='GENERIC'
2387 _target_arch='ARCH_GENERIC = yes'
2391 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2392 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2393 die "unsupported architecture $host_arch"
2395 esac # case "$host_arch" in
2397 if test "$_runtime_cpudetection" = yes ; then
2398 if x86 ; then
2399 test "$_cmov" != no && _cmov=yes
2400 x86_32 && _cmov=no
2401 test "$_mmx" != no && _mmx=yes
2402 test "$_3dnow" != no && _3dnow=yes
2403 test "$_3dnowext" != no && _3dnowext=yes
2404 test "$_mmxext" != no && _mmxext=yes
2405 test "$_sse" != no && _sse=yes
2406 test "$_sse2" != no && _sse2=yes
2407 test "$_ssse3" != no && _ssse3=yes
2408 test "$_mtrr" != no && _mtrr=yes
2410 if ppc; then
2411 _altivec=yes
2416 # endian testing
2417 echocheck "byte order"
2418 if test "$_big_endian" = auto ; then
2419 cat > $TMPC <<EOF
2420 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
2421 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
2422 int main(void) { return (int)ascii_name; }
2424 if cc_check ; then
2425 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2426 _big_endian=yes
2427 else
2428 _big_endian=no
2430 else
2431 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2434 if test "$_big_endian" = yes ; then
2435 _byte_order='big-endian'
2436 def_words_endian='#define WORDS_BIGENDIAN 1'
2437 def_bigendian='#define HAVE_BIGENDIAN 1'
2438 def_av_bigendian='#define AV_HAVE_BIGENDIAN 1'
2439 else
2440 _byte_order='little-endian'
2441 def_words_endian='#undef WORDS_BIGENDIAN'
2442 def_bigendian='#define HAVE_BIGENDIAN 0'
2443 def_av_bigendian='#define AV_HAVE_BIGENDIAN 0'
2445 echores "$_byte_order"
2448 echocheck "extern symbol prefix"
2449 cat > $TMPC << EOF
2450 int ff_extern;
2452 cc_check -c || die "Symbol mangling check failed."
2453 sym=$($_nm -P -g $TMPEXE)
2454 extern_prefix=${sym%%ff_extern*}
2455 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2456 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2457 echores $extern_prefix
2460 echocheck "assembler support of -pipe option"
2461 cat > $TMPC << EOF
2462 int main(void) { return 0; }
2464 # -I. helps to detect compilers that just misunderstand -pipe like Sun C
2465 cc_check -pipe -I. && _pipe="-pipe" && echores "yes" || echores "no"
2468 echocheck "compiler support of named assembler arguments"
2469 _named_asm_args=yes
2470 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2471 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2472 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2473 _named_asm_args=no
2474 def_named_asm_args="#undef NAMED_ASM_ARGS"
2476 echores $_named_asm_args
2479 if darwin && test "$cc_vendor" = "gnu" ; then
2480 echocheck "GCC support of -mstackrealign"
2481 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2482 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2483 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2484 # wrong code with this flag, but this can be worked around by adding
2485 # -fno-unit-at-a-time as described in the blog post at
2486 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2487 cat > $TMPC << EOF
2488 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2489 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2491 cc_check -O4 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2492 test -z "$cflags_stackrealign" && cc_check -O4 -mstackrealign -fno-unit-at-a-time \
2493 && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2494 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2495 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2498 # Checking for CFLAGS
2499 _install_strip="-s"
2500 if test "$_profile" != "" || test "$_debug" != "" ; then
2501 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2502 _install_strip=
2503 elif test -z "$CFLAGS" ; then
2504 if test "$cc_vendor" = "intel" ; then
2505 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2506 elif test "$cc_vendor" = "sun" ; then
2507 CFLAGS="-O2 $_march $_mcpu $_pipe -xc99 -xregs=frameptr"
2508 elif test "$cc_vendor" != "gnu" ; then
2509 CFLAGS="-O2 $_march $_mcpu $_pipe"
2510 else
2511 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2512 extra_ldflags="$extra_ldflags -ffast-math"
2514 else
2515 _warn_CFLAGS=yes
2518 cat > $TMPC << EOF
2519 int main(void) { return 0; }
2521 if test "$cc_vendor" = "gnu" ; then
2522 cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
2523 cc_check -Wdeclaration-after-statement && CFLAGS="-Wdeclaration-after-statement $CFLAGS"
2524 cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
2525 cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
2526 cc_check -Wundef && CFLAGS="-Wundef $CFLAGS"
2527 else
2528 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2531 cc_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2534 if test -n "$LDFLAGS" ; then
2535 extra_ldflags="$extra_ldflags $LDFLAGS"
2536 _warn_CFLAGS=yes
2537 elif test "$cc_vendor" = "intel" ; then
2538 extra_ldflags="$extra_ldflags -i-static"
2540 if test -n "$CPPFLAGS" ; then
2541 extra_cflags="$extra_cflags $CPPFLAGS"
2542 _warn_CFLAGS=yes
2547 if x86_32 ; then
2548 # Checking assembler (_as) compatibility...
2549 # Added workaround for older as that reads from stdin by default - atmos
2550 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2551 echocheck "assembler ($_as $as_version)"
2553 _pref_as_version='2.9.1'
2554 echo 'nop' > $TMPS
2555 if test "$_mmx" = yes ; then
2556 echo 'emms' >> $TMPS
2558 if test "$_3dnow" = yes ; then
2559 _pref_as_version='2.10.1'
2560 echo 'femms' >> $TMPS
2562 if test "$_3dnowext" = yes ; then
2563 _pref_as_version='2.10.1'
2564 echo 'pswapd %mm0, %mm0' >> $TMPS
2566 if test "$_mmxext" = yes ; then
2567 _pref_as_version='2.10.1'
2568 echo 'movntq %mm0, (%eax)' >> $TMPS
2570 if test "$_sse" = yes ; then
2571 _pref_as_version='2.10.1'
2572 echo 'xorps %xmm0, %xmm0' >> $TMPS
2574 #if test "$_sse2" = yes ; then
2575 # _pref_as_version='2.11'
2576 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2578 if test "$_cmov" = yes ; then
2579 _pref_as_version='2.10.1'
2580 echo 'cmovb %eax, %ebx' >> $TMPS
2582 if test "$_ssse3" = yes ; then
2583 _pref_as_version='2.16.92'
2584 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2586 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2588 if test "$as_verc_fail" != yes ; then
2589 echores "ok"
2590 else
2591 _res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2592 echores "failed"
2593 die "obsolete binutils version"
2596 fi #if x86_32
2598 echocheck ".align is a power of two"
2599 if test "$_asmalign_pot" = auto ; then
2600 _asmalign_pot=no
2601 cat > $TMPC << EOF
2602 int main(void) { __asm__ (".align 3"); return 0; }
2604 cc_check && _asmalign_pot=yes
2606 if test "$_asmalign_pot" = "yes" ; then
2607 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2608 else
2609 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2611 echores $_asmalign_pot
2613 if x86 ; then
2614 echocheck "10 assembler operands"
2615 ten_operands=no
2616 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2617 cat > $TMPC << EOF
2618 int main(void) {
2619 int x=0;
2620 __asm__ volatile(
2622 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2624 return 0;
2627 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2628 echores $ten_operands
2630 echocheck "ebx availability"
2631 ebx_available=no
2632 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2633 cat > $TMPC << EOF
2634 int main(void) {
2635 int x;
2636 __asm__ volatile(
2637 "xor %0, %0"
2638 :"=b"(x)
2639 // just adding ebx to clobber list seems unreliable with some
2640 // compilers, e.g. Haiku's gcc 2.95
2642 // and the above check does not work for OSX 64 bit...
2643 __asm__ volatile("":::"%ebx");
2644 return 0;
2647 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2648 echores $ebx_available
2650 echocheck "PIC"
2651 pic=no
2652 cat > $TMPC << EOF
2653 int main(void) {
2654 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2655 #error PIC not enabled
2656 #endif
2657 return 0;
2660 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2661 echores $pic
2663 echocheck "yasm"
2664 if test -z "$YASMFLAGS" ; then
2665 if darwin ; then
2666 x86_64 && objformat="macho64" || objformat="macho"
2667 elif win32 ; then
2668 objformat="win32"
2669 else
2670 objformat="elf"
2672 # currently tested for Linux x86, x86_64
2673 YASMFLAGS="-f $objformat"
2674 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2675 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2676 case "$objformat" in
2677 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2678 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2679 esac
2680 else
2681 _warn_CFLAGS=yes
2684 echo "pabsw xmm0, xmm0" > $TMPS
2685 yasm_check || _yasm=""
2686 if test $_yasm ; then
2687 test "$_mmx" = "yes" && fft_mmx="yes"
2688 def_yasm='#define HAVE_YASM 1'
2689 _have_yasm="yes"
2690 echores "$_yasm"
2691 else
2692 def_yasm='#define HAVE_YASM 0'
2693 fft_mmx="no"
2694 _have_yasm="no"
2695 echores "no"
2698 echocheck "bswap"
2699 def_bswap='#define HAVE_BSWAP 0'
2700 echo 'bswap %eax' > $TMPS
2701 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2702 echores "$bswap"
2703 fi #if x86
2706 #FIXME: This should happen before the check for CFLAGS..
2707 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2708 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2710 # check if AltiVec is supported by the compiler, and how to enable it
2711 echocheck "GCC AltiVec flags"
2712 cat > $TMPC << EOF
2713 int main(void) { return 0; }
2715 if $(cc_check -maltivec -mabi=altivec) ; then
2716 _altivec_gcc_flags="-maltivec -mabi=altivec"
2717 # check if <altivec.h> should be included
2718 cat > $TMPC << EOF
2719 #include <altivec.h>
2720 int main(void) { return 0; }
2722 if $(cc_check $_altivec_gcc_flags) ; then
2723 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2724 inc_altivec_h='#include <altivec.h>'
2725 else
2726 cat > $TMPC << EOF
2727 int main(void) { return 0; }
2729 if $(cc_check -faltivec) ; then
2730 _altivec_gcc_flags="-faltivec"
2731 else
2732 _altivec=no
2733 _altivec_gcc_flags="none, AltiVec disabled"
2737 echores "$_altivec_gcc_flags"
2739 # check if the compiler supports braces for vector declarations
2740 cat > $TMPC << EOF
2741 $inc_altivec_h
2742 int main(void) { (vector int) {1}; return 0; }
2744 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2746 # Disable runtime cpudetection if we cannot generate AltiVec code or
2747 # AltiVec is disabled by the user.
2748 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2749 && _runtime_cpudetection=no
2751 # Show that we are optimizing for AltiVec (if enabled and supported).
2752 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2753 && _optimizing="$_optimizing altivec"
2755 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2756 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2759 if ppc ; then
2760 def_xform_asm='#define HAVE_XFORM_ASM 0'
2761 xform_asm=no
2762 echocheck "XFORM ASM support"
2763 cat > $TMPC << EOF
2764 int main(void) { __asm__ volatile ("lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)); return 0; }
2766 cc_check && xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2767 echores "$xform_asm"
2770 if arm ; then
2771 echocheck "ARM pld instruction"
2772 cat > $TMPC << EOF
2773 int main(void) { __asm__ volatile ("pld [r0]"); return 0; }
2775 pld=no
2776 cc_check && pld=yes
2777 echores "$pld"
2779 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2780 if test $_armv5te = "auto" ; then
2781 cat > $TMPC << EOF
2782 int main(void) { __asm__ volatile ("qadd r0, r0, r0"); return 0; }
2784 _armv5te=no
2785 cc_check && _armv5te=yes
2787 echores "$_armv5te"
2789 test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz=yes
2791 echocheck "ARMv6 (SIMD instructions)"
2792 if test $_armv6 = "auto" ; then
2793 cat > $TMPC << EOF
2794 int main(void) { __asm__ volatile ("sadd16 r0, r0, r0"); return 0; }
2796 _armv6=no
2797 cc_check && _armv6=yes
2799 echores "$_armv6"
2801 echocheck "ARMv6t2 (SIMD instructions)"
2802 if test $_armv6t2 = "auto" ; then
2803 cat > $TMPC << EOF
2804 int main(void) { __asm__ volatile ("movt r0, #0"); return 0; }
2806 _armv6t2=no
2807 cc_check && _armv6t2=yes
2809 echores "$_armv6"
2811 echocheck "ARM VFP"
2812 if test $_armvfp = "auto" ; then
2813 cat > $TMPC << EOF
2814 int main(void) { __asm__ volatile ("fadds s0, s0, s0"); return 0; }
2816 _armvfp=no
2817 cc_check && _armvfp=yes
2819 echores "$_armvfp"
2821 echocheck "ARM NEON"
2822 if test $neon = "auto" ; then
2823 cat > $TMPC << EOF
2824 int main(void) { __asm__ volatile ("vadd.i16 q0, q0, q0"); return 0; }
2826 neon=no
2827 cc_check && neon=yes
2829 echores "$neon"
2831 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2832 if test $_iwmmxt = "auto" ; then
2833 cat > $TMPC << EOF
2834 int main(void) { __asm__ volatile ("wunpckelub wr6, wr4"); return 0; }
2836 _iwmmxt=no
2837 cc_check && _iwmmxt=yes
2839 echores "$_iwmmxt"
2842 _cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV FAST_CLZ PLD ARMV5TE ARMV6 ARMV6T2 ARMVFP NEON IWMMXT MMI VIS MVI'
2843 test "$_altivec" = yes && _cpuexts="ALTIVEC $_cpuexts"
2844 test "$_mmx" = yes && _cpuexts="MMX $_cpuexts"
2845 test "$_mmxext" = yes && _cpuexts="MMX2 $_cpuexts"
2846 test "$_3dnow" = yes && _cpuexts="AMD3DNOW $_cpuexts"
2847 test "$_3dnowext" = yes && _cpuexts="AMD3DNOWEXT $_cpuexts"
2848 test "$_sse" = yes && _cpuexts="SSE $_cpuexts"
2849 test "$_sse2" = yes && _cpuexts="SSE2 $_cpuexts"
2850 test "$_ssse3" = yes && _cpuexts="SSSE3 $_cpuexts"
2851 test "$_cmov" = yes && _cpuexts="CMOV $_cpuexts"
2852 test "$_fast_cmov" = yes && _cpuexts="FAST_CMOV $_cpuexts"
2853 test "$_fast_clz" = yes && _cpuexts="FAST_CLZ $_cpuexts"
2854 test "$pld" = yes && _cpuexts="PLD $_cpuexts"
2855 test "$_armv5te" = yes && _cpuexts="ARMV5TE $_cpuexts"
2856 test "$_armv6" = yes && _cpuexts="ARMV6 $_cpuexts"
2857 test "$_armv6t2" = yes && _cpuexts="ARMV6T2 $_cpuexts"
2858 test "$_armvfp" = yes && _cpuexts="ARMVFP $_cpuexts"
2859 test "$neon" = yes && _cpuexts="NEON $_cpuexts"
2860 test "$_iwmmxt" = yes && _cpuexts="IWMMXT $_cpuexts"
2861 test "$_vis" = yes && _cpuexts="VIS $_cpuexts"
2862 test "$_mvi" = yes && _cpuexts="MVI $_cpuexts"
2864 # Checking kernel version...
2865 if x86_32 && linux ; then
2866 _k_verc_problem=no
2867 kernel_version=$(uname -r 2>&1)
2868 echocheck "$system_name kernel version"
2869 case "$kernel_version" in
2870 '') kernel_version="?.??"; _k_verc_fail=yes;;
2871 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2872 _k_verc_problem=yes;;
2873 esac
2874 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2875 _k_verc_fail=yes
2877 if test "$_k_verc_fail" ; then
2878 echores "$kernel_version, fail"
2879 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2880 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2881 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2882 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2883 echo "2.2.x you must upgrade it to get SSE support!"
2884 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2885 else
2886 echores "$kernel_version, ok"
2890 ######################
2891 # MAIN TESTS GO HERE #
2892 ######################
2895 echocheck "-lposix"
2896 cat > $TMPC <<EOF
2897 int main(void) { return 0; }
2899 if cc_check -lposix ; then
2900 extra_ldflags="$extra_ldflags -lposix"
2901 echores "yes"
2902 else
2903 echores "no"
2906 echocheck "-lm"
2907 cat > $TMPC <<EOF
2908 int main(void) { return 0; }
2910 if cc_check -lm ; then
2911 _ld_lm="-lm"
2912 echores "yes"
2913 else
2914 _ld_lm=""
2915 echores "no"
2919 echocheck "langinfo"
2920 if test "$_langinfo" = auto ; then
2921 cat > $TMPC <<EOF
2922 #include <langinfo.h>
2923 int main(void) { nl_langinfo(CODESET); return 0; }
2925 _langinfo=no
2926 cc_check && _langinfo=yes
2928 if test "$_langinfo" = yes ; then
2929 def_langinfo='#define HAVE_LANGINFO 1'
2930 else
2931 def_langinfo='#undef HAVE_LANGINFO'
2933 echores "$_langinfo"
2936 echocheck "language"
2937 # Set preferred languages, "all" uses English as main language.
2938 test -z "$language" && language=$LINGUAS
2939 test -z "$language_doc" && language_doc=$language
2940 test -z "$language_man" && language_man=$language
2941 test -z "$language_msg" && language_msg=$language
2942 language_doc=$(echo $language_doc | tr , " ")
2943 language_man=$(echo $language_man | tr , " ")
2944 language_msg=$(echo $language_msg | tr , " ")
2946 test "$language_doc" = "all" && language_doc=$doc_lang_all
2947 test "$language_man" = "all" && language_man=$man_lang_all
2948 test "$language_msg" = "all" && language_msg=en
2950 # Prune non-existing translations from language lists.
2951 # Set message translation to the first available language.
2952 # Fall back on English.
2953 for lang in $language_doc ; do
2954 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2955 done
2956 language_doc=$tmp_language_doc
2957 test -z "$language_doc" && language_doc=en
2959 for lang in $language_man ; do
2960 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2961 done
2962 language_man=$tmp_language_man
2963 test -z "$language_man" && language_man=en
2965 for lang in $language_msg ; do
2966 test -f "help/help_mp-${lang}.h" && tmp_language_msg=$lang && break
2967 done
2968 language_msg=$tmp_language_msg
2969 test -z "$language_msg" && language_msg=en
2970 _mp_help="help/help_mp-${language_msg}.h"
2971 echores "messages: $language_msg - man pages: $language_man - documentation: $language_doc"
2974 echocheck "enable sighandler"
2975 if test "$_sighandler" = yes ; then
2976 def_sighandler='#define CONFIG_SIGHANDLER 1'
2977 else
2978 def_sighandler='#undef CONFIG_SIGHANDLER'
2980 echores "$_sighandler"
2982 echocheck "runtime cpudetection"
2983 if test "$_runtime_cpudetection" = yes ; then
2984 _optimizing="Runtime CPU-Detection enabled"
2985 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2986 else
2987 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2989 echores "$_runtime_cpudetection"
2992 echocheck "restrict keyword"
2993 for restrict_keyword in restrict __restrict __restrict__ ; do
2994 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2995 if cc_check; then
2996 def_restrict_keyword=$restrict_keyword
2997 break;
2999 done
3000 if [ -n "$def_restrict_keyword" ]; then
3001 echores "$def_restrict_keyword"
3002 else
3003 echores "none"
3005 # Avoid infinite recursion loop ("#define restrict restrict")
3006 if [ "$def_restrict_keyword" != "restrict" ]; then
3007 def_restrict_keyword="#define restrict $def_restrict_keyword"
3008 else
3009 def_restrict_keyword=""
3013 echocheck "__builtin_expect"
3014 # GCC branch prediction hint
3015 cat > $TMPC << EOF
3016 int foo(int a) {
3017 a = __builtin_expect(a, 10);
3018 return a == 10 ? 0 : 1;
3020 int main(void) { return foo(10) && foo(0); }
3022 _builtin_expect=no
3023 cc_check && _builtin_expect=yes
3024 if test "$_builtin_expect" = yes ; then
3025 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
3026 else
3027 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
3029 echores "$_builtin_expect"
3032 echocheck "kstat"
3033 cat > $TMPC << EOF
3034 #include <kstat.h>
3035 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
3037 _kstat=no
3038 cc_check -lkstat && _kstat=yes
3039 if test "$_kstat" = yes ; then
3040 def_kstat="#define HAVE_LIBKSTAT 1"
3041 extra_ldflags="$extra_ldflags -lkstat"
3042 else
3043 def_kstat="#undef HAVE_LIBKSTAT"
3045 echores "$_kstat"
3048 echocheck "posix4"
3049 # required for nanosleep on some systems
3050 cat > $TMPC << EOF
3051 #include <time.h>
3052 int main(void) { (void) nanosleep(0, 0); return 0; }
3054 _posix4=no
3055 cc_check -lposix4 && _posix4=yes
3056 if test "$_posix4" = yes ; then
3057 extra_ldflags="$extra_ldflags -lposix4"
3059 echores "$_posix4"
3061 for func in exp2 exp2f llrint log2 log2f lrint lrintf round roundf truncf; do
3062 echocheck $func
3063 cat > $TMPC << EOF
3064 #include <math.h>
3065 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
3067 eval _$func=no
3068 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
3069 if eval test "x\$_$func" = "xyes"; then
3070 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
3071 echores yes
3072 else
3073 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
3074 echores no
3076 done
3079 echocheck "mkstemp"
3080 cat > $TMPC << EOF
3081 #include <stdlib.h>
3082 int main(void) { char a; mkstemp(&a); return 0; }
3084 _mkstemp=no
3085 cc_check && _mkstemp=yes
3086 if test "$_mkstemp" = yes ; then
3087 def_mkstemp='#define HAVE_MKSTEMP 1'
3088 else
3089 def_mkstemp='#undef HAVE_MKSTEMP'
3091 echores "$_mkstemp"
3094 echocheck "nanosleep"
3095 # also check for nanosleep
3096 cat > $TMPC << EOF
3097 #include <time.h>
3098 int main(void) { (void) nanosleep(0, 0); return 0; }
3100 _nanosleep=no
3101 cc_check && _nanosleep=yes
3102 if test "$_nanosleep" = yes ; then
3103 def_nanosleep='#define HAVE_NANOSLEEP 1'
3104 else
3105 def_nanosleep='#undef HAVE_NANOSLEEP'
3107 echores "$_nanosleep"
3110 echocheck "socklib"
3111 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
3112 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
3113 cat > $TMPC << EOF
3114 #include <netdb.h>
3115 #include <sys/socket.h>
3116 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
3118 _socklib=no
3119 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
3120 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
3121 done
3122 test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no
3123 if test $_winsock2_h = auto ; then
3124 _winsock2_h=no
3125 cat > $TMPC << EOF
3126 #include <winsock2.h>
3127 int main(void) { (void) gethostbyname(0); return 0; }
3129 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
3131 test "$_ld_sock" && _res_comment="using $_ld_sock"
3132 echores "$_socklib"
3135 if test $_winsock2_h = yes ; then
3136 _ld_sock="-lws2_32"
3137 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
3138 cc_check_winsock2_h='-DHAVE_WINSOCK2_H=1'
3139 else
3140 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
3141 cc_check_winsock2_h='-DHAVE_WINSOCK2_H=0'
3145 echocheck "netdb.h, struct addrinfo"
3146 if test "$_struct_addrinfo" = auto; then
3147 _struct_addrinfo=no
3148 cat > $TMPC << EOF
3149 #if HAVE_WINSOCK2_H
3150 #include <winsock2.h>
3151 #else
3152 #include <sys/types.h>
3153 #include <sys/socket.h>
3154 #include <netdb.h>
3155 #endif
3156 int main(void) { struct addrinfo *ai; return 0; }
3158 cc_check $cc_check_winsock2_h && _struct_addrinfo=yes
3160 echores "$_struct_addrinfo"
3162 if test "$_struct_addrinfo" = yes; then
3163 def_addrinfo="#define HAVE_STRUCT_ADDRINFO 1"
3164 else
3165 def_addrinfo="#define HAVE_STRUCT_ADDRINFO 0"
3169 echocheck "netdb.h, getaddrinfo()"
3170 if test "$_getaddrinfo" = auto; then
3171 _getaddrinfo=no
3172 cat > $TMPC << EOF
3173 #if HAVE_WINSOCK2_H
3174 #include <winsock2.h>
3175 #else
3176 #include <sys/types.h>
3177 #include <sys/socket.h>
3178 #include <netdb.h>
3179 #endif
3180 int main(void) { (void) getaddrinfo(0, 0, 0, 0); return 0; }
3182 cc_check $cc_check_winsock2_h && _getaddrinfo=yes
3184 echores "$_getaddrinfo"
3186 if test "$_getaddrinfo" = yes; then
3187 def_getaddrinfo="#define HAVE_GETADDRINFO 1"
3188 else
3189 def_getaddrinfo="#define HAVE_GETADDRINFO 0"
3193 echocheck "sockaddr_storage"
3194 if test "$_struct_sockaddr_storage" = auto; then
3195 _struct_sockaddr_storage=no
3196 cat > $TMPC << EOF
3197 #if HAVE_WINSOCK2_H
3198 #include <winsock2.h>
3199 #else
3200 #include <sys/socket.h>
3201 #endif
3202 int main(void) { struct sockaddr_storage sas; return 0; }
3204 cc_check $cc_check_winsock2_h && _struct_sockaddr_storage=yes
3206 echores "$_struct_sockaddr_storage"
3208 if test "$_struct_sockaddr_storage" = yes; then
3209 def_sockaddr_storage="#define HAVE_STRUCT_SOCKADDR_STORAGE 1"
3210 else
3211 def_sockaddr_storage="#define HAVE_STRUCT_SOCKADDR_STORAGE 0"
3215 echocheck "arpa/inet.h"
3216 arpa_inet_h=no
3217 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
3218 cat > $TMPC << EOF
3219 #include <arpa/inet.h>
3220 int main(void) { return 0; }
3222 cc_check && arpa_inet_h=yes && def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
3223 echores "$arpa_inet_h"
3226 echocheck "inet_pton()"
3227 def_inet_pton='#define HAVE_INET_PTON 0'
3228 inet_pton=no
3229 cat > $TMPC << EOF
3230 #include <sys/types.h>
3231 #include <sys/socket.h>
3232 #include <arpa/inet.h>
3233 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
3235 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3236 cc_check $_ld_tmp && inet_pton=yes && break
3237 done
3238 if test $inet_pton = yes ; then
3239 test "$_ld_tmp" && _res_comment="using $_ld_tmp"
3240 def_inet_pton='#define HAVE_INET_PTON 1'
3242 echores "$inet_pton"
3245 echocheck "inet_aton()"
3246 def_inet_aton='#define HAVE_INET_ATON 0'
3247 inet_aton=no
3248 cat > $TMPC << EOF
3249 #include <sys/types.h>
3250 #include <sys/socket.h>
3251 #include <arpa/inet.h>
3252 int main(void) { (void) inet_aton(0, 0); return 0; }
3254 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3255 cc_check $_ld_tmp && inet_aton=yes && break
3256 done
3257 if test $inet_aton = yes ; then
3258 test "$_ld_tmp" && _res_comment="using $_ld_tmp"
3259 def_inet_aton='#define HAVE_INET_ATON 1'
3261 echores "$inet_aton"
3264 echocheck "socklen_t"
3265 _socklen_t=no
3266 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
3267 cat > $TMPC << EOF
3268 #include <$header>
3269 int main(void) { socklen_t v = 0; return v; }
3271 cc_check && _socklen_t=yes && break
3272 done
3273 if test "$_socklen_t" = yes ; then
3274 def_socklen_t='#define HAVE_SOCKLEN_T 1'
3275 else
3276 def_socklen_t='#define HAVE_SOCKLEN_T 0'
3278 echores "$_socklen_t"
3281 echocheck "closesocket()"
3282 _closesocket=no
3283 cat > $TMPC << EOF
3284 #include <winsock2.h>
3285 int main(void) { closesocket(~0); return 0; }
3287 cc_check $_ld_sock && _closesocket=yes
3288 if test "$_closesocket" = yes ; then
3289 def_closesocket='#define HAVE_CLOSESOCKET 1'
3290 else
3291 def_closesocket='#define HAVE_CLOSESOCKET 0'
3293 echores "$_closesocket"
3296 echocheck "network"
3297 test $_winsock2_h = no && test $inet_pton = no &&
3298 test $inet_aton = no && _network=no
3299 if test "$_network" = yes ; then
3300 def_network='#define CONFIG_NETWORK 1'
3301 extra_ldflags="$extra_ldflags $_ld_sock"
3302 _inputmodules="network $_inputmodules"
3303 else
3304 _noinputmodules="network $_noinputmodules"
3305 def_network='#undef CONFIG_NETWORK'
3306 _ftp=no
3308 echores "$_network"
3311 echocheck "inet6"
3312 if test "$_inet6" = auto ; then
3313 cat > $TMPC << EOF
3314 #include <sys/types.h>
3315 #if !defined(_WIN32) || defined(__CYGWIN__)
3316 #include <sys/socket.h>
3317 #include <netinet/in.h>
3318 #else
3319 #include <ws2tcpip.h>
3320 #endif
3321 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3323 _inet6=no
3324 if cc_check $_ld_sock ; then
3325 _inet6=yes
3328 if test "$_inet6" = yes ; then
3329 def_inet6='#define HAVE_AF_INET6 1'
3330 else
3331 def_inet6='#undef HAVE_AF_INET6'
3333 echores "$_inet6"
3336 echocheck "gethostbyname2"
3337 if test "$_gethostbyname2" = auto ; then
3338 cat > $TMPC << EOF
3339 #include <sys/types.h>
3340 #include <sys/socket.h>
3341 #include <netdb.h>
3342 int main(void) { gethostbyname2("", AF_INET); return 0; }
3344 _gethostbyname2=no
3345 if cc_check ; then
3346 _gethostbyname2=yes
3349 if test "$_gethostbyname2" = yes ; then
3350 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3351 else
3352 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3354 echores "$_gethostbyname2"
3357 echocheck "inttypes.h (required)"
3358 cat > $TMPC << EOF
3359 #include <inttypes.h>
3360 int main(void) { return 0; }
3362 _inttypes=no
3363 cc_check && _inttypes=yes
3364 echores "$_inttypes"
3366 if test "$_inttypes" = no ; then
3367 echocheck "bitypes.h (inttypes.h predecessor)"
3368 cat > $TMPC << EOF
3369 #include <sys/bitypes.h>
3370 int main(void) { return 0; }
3372 cc_check && _inttypes=yes
3373 if test "$_inttypes" = yes ; then
3374 die "You don't have inttypes.h, but sys/bitypes.h is present. Please copy etc/inttypes.h into the include path, and re-run configure."
3375 else
3376 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3381 echocheck "int_fastXY_t in inttypes.h"
3382 cat > $TMPC << EOF
3383 #include <inttypes.h>
3384 int main(void) {
3385 volatile int_fast16_t v= 0;
3386 return v; }
3388 _fast_inttypes=no
3389 cc_check && _fast_inttypes=yes
3390 if test "$_fast_inttypes" = no ; then
3391 def_fast_inttypes='
3392 typedef signed char int_fast8_t;
3393 typedef signed int int_fast16_t;
3394 typedef signed int int_fast32_t;
3395 typedef signed long long int_fast64_t;
3396 typedef unsigned char uint_fast8_t;
3397 typedef unsigned int uint_fast16_t;
3398 typedef unsigned int uint_fast32_t;
3399 typedef unsigned long long uint_fast64_t;'
3401 echores "$_fast_inttypes"
3404 echocheck "malloc.h"
3405 cat > $TMPC << EOF
3406 #include <malloc.h>
3407 int main(void) { (void) malloc(0); return 0; }
3409 _malloc=no
3410 cc_check && _malloc=yes
3411 if test "$_malloc" = yes ; then
3412 def_malloc_h='#define HAVE_MALLOC_H 1'
3413 else
3414 def_malloc_h='#define HAVE_MALLOC_H 0'
3416 # malloc.h emits a warning in FreeBSD and OpenBSD
3417 freebsd || openbsd || dragonfly && def_malloc_h='#define HAVE_MALLOC_H 0'
3418 echores "$_malloc"
3421 echocheck "memalign()"
3422 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3423 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3424 cat > $TMPC << EOF
3425 #include <malloc.h>
3426 int main(void) { (void) memalign(64, sizeof(char)); return 0; }
3428 _memalign=no
3429 cc_check && _memalign=yes
3430 if test "$_memalign" = yes ; then
3431 def_memalign='#define HAVE_MEMALIGN 1'
3432 else
3433 def_memalign='#define HAVE_MEMALIGN 0'
3434 def_map_memalign='#define memalign(a,b) malloc(b)'
3435 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3437 echores "$_memalign"
3440 echocheck "posix_memalign()"
3441 posix_memalign=no
3442 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3443 cat > $TMPC << EOF
3444 #define _XOPEN_SOURCE 600
3445 #include <stdlib.h>
3446 int main(void) { posix_memalign(NULL, 0, 0); }
3448 cc_check && posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3449 echores "$posix_memalign"
3452 echocheck "alloca.h"
3453 cat > $TMPC << EOF
3454 #include <alloca.h>
3455 int main(void) { (void) alloca(0); return 0; }
3457 _alloca=no
3458 cc_check && _alloca=yes
3459 if cc_check ; then
3460 def_alloca_h='#define HAVE_ALLOCA_H 1'
3461 else
3462 def_alloca_h='#undef HAVE_ALLOCA_H'
3464 echores "$_alloca"
3467 echocheck "fastmemcpy"
3468 if test "$_fastmemcpy" = yes ; then
3469 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3470 else
3471 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3473 echores "$_fastmemcpy"
3476 echocheck "hard-coded tables"
3477 if test "$hardcoded_tables" = yes ; then
3478 def_hardcoded_tables='#define CONFIG_HARDCODED_TABLES 1'
3479 mak_hardcoded_tables='CONFIG_HARDCODED_TABLES = yes'
3480 else
3481 def_hardcoded_tables='#define CONFIG_HARDCODED_TABLES 0'
3483 echores "$hardcoded_tables"
3486 echocheck "mman.h"
3487 cat > $TMPC << EOF
3488 #include <sys/types.h>
3489 #include <sys/mman.h>
3490 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
3492 _mman=no
3493 cc_check && _mman=yes
3494 if test "$_mman" = yes ; then
3495 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3496 else
3497 def_mman_h='#undef HAVE_SYS_MMAN_H'
3498 os2 && _need_mmap=yes
3500 echores "$_mman"
3502 cat > $TMPC << EOF
3503 #include <sys/types.h>
3504 #include <sys/mman.h>
3505 int main(void) { void *p = MAP_FAILED; return 0; }
3507 _mman_has_map_failed=no
3508 cc_check && _mman_has_map_failed=yes
3509 if test "$_mman_has_map_failed" = yes ; then
3510 def_mman_has_map_failed=''
3511 else
3512 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3515 echocheck "dynamic loader"
3516 cat > $TMPC << EOF
3517 #include <stddef.h>
3518 #include <dlfcn.h>
3519 int main(void) { dlopen("", 0); dlclose(NULL); dlsym(NULL, ""); return 0; }
3521 _dl=no
3522 for _ld_tmp in "" "-ldl" ; do
3523 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3524 done
3525 if test "$_dl" = yes ; then
3526 def_dl='#define HAVE_LIBDL 1'
3527 else
3528 def_dl='#undef HAVE_LIBDL'
3530 echores "$_dl"
3533 echocheck "dynamic a/v plugins support"
3534 if test "$_dl" = no ; then
3535 _dynamic_plugins=no
3537 if test "$_dynamic_plugins" = yes ; then
3538 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3539 else
3540 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3542 echores "$_dynamic_plugins"
3545 def_threads='#define HAVE_THREADS 0'
3547 echocheck "pthread"
3548 if linux ; then
3549 THREAD_CFLAGS=-D_REENTRANT
3550 elif freebsd || netbsd || openbsd || bsdos ; then
3551 THREAD_CFLAGS=-D_THREAD_SAFE
3553 if test "$_pthreads" = auto ; then
3554 cat > $TMPC << EOF
3555 #include <pthread.h>
3556 void* func(void *arg) { return arg; }
3557 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3559 _pthreads=no
3560 if ! hpux ; then
3561 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3562 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3563 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3564 done
3567 if test "$_pthreads" = yes ; then
3568 test $_ld_pthread && _res_comment="using $_ld_pthread"
3569 def_pthreads='#define HAVE_PTHREADS 1'
3570 def_threads='#define HAVE_THREADS 1'
3571 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3572 else
3573 _res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3574 def_pthreads='#undef HAVE_PTHREADS'
3575 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3576 mingw32 || _win32dll=no
3578 echores "$_pthreads"
3580 if cygwin ; then
3581 if test "$_pthreads" = yes ; then
3582 def_pthread_cache="#define PTHREAD_CACHE 1"
3583 else
3584 _stream_cache=no
3585 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3589 echocheck "w32threads"
3590 if test "$_pthreads" = yes ; then
3591 _res_comment="using pthread instead"
3592 _w32threads=no
3594 if test "$_w32threads" = auto ; then
3595 _w32threads=no
3596 mingw32 && _w32threads=yes
3598 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3599 echores "$_w32threads"
3601 echocheck "rpath"
3602 netbsd &&_rpath=yes
3603 if test "$_rpath" = yes ; then
3604 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3605 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3606 done
3607 extra_ldflags=$tmp
3609 echores "$_rpath"
3611 echocheck "iconv"
3612 if test "$_iconv" = auto ; then
3613 cat > $TMPC << EOF
3614 #include <stdio.h>
3615 #include <unistd.h>
3616 #include <iconv.h>
3617 #define INBUFSIZE 1024
3618 #define OUTBUFSIZE 4096
3620 char inbuffer[INBUFSIZE];
3621 char outbuffer[OUTBUFSIZE];
3623 int main(void) {
3624 size_t numread;
3625 iconv_t icdsc;
3626 char *tocode="UTF-8";
3627 char *fromcode="cp1250";
3628 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3629 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3630 char *iptr=inbuffer;
3631 char *optr=outbuffer;
3632 size_t inleft=numread;
3633 size_t outleft=OUTBUFSIZE;
3634 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
3635 != (size_t)(-1)) {
3636 write(1, outbuffer, OUTBUFSIZE - outleft);
3639 if (iconv_close(icdsc) == -1)
3642 return 0;
3645 _iconv=no
3646 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3647 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3648 _iconv=yes && break
3649 done
3651 if test "$_iconv" = yes ; then
3652 def_iconv='#define CONFIG_ICONV 1'
3653 else
3654 def_iconv='#undef CONFIG_ICONV'
3656 echores "$_iconv"
3659 echocheck "soundcard.h"
3660 _soundcard_h=no
3661 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3662 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3663 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3664 cat > $TMPC << EOF
3665 #include <$_soundcard_header>
3666 int main(void) { return 0; }
3668 cc_check && _soundcard_h=yes && _res_comment="$_soundcard_header" && break
3669 done
3671 if test "$_soundcard_h" = yes ; then
3672 if test $_soundcard_header = "sys/soundcard.h"; then
3673 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3674 else
3675 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3678 echores "$_soundcard_h"
3681 echocheck "sys/dvdio.h"
3682 cat > $TMPC << EOF
3683 #include <unistd.h>
3684 #include <sys/dvdio.h>
3685 int main(void) { return 0; }
3687 _dvdio=no
3688 cc_check && _dvdio=yes
3689 if test "$_dvdio" = yes ; then
3690 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3691 else
3692 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3694 echores "$_dvdio"
3697 echocheck "sys/cdio.h"
3698 cat > $TMPC << EOF
3699 #include <unistd.h>
3700 #include <sys/cdio.h>
3701 int main(void) { return 0; }
3703 _cdio=no
3704 cc_check && _cdio=yes
3705 if test "$_cdio" = yes ; then
3706 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3707 else
3708 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3710 echores "$_cdio"
3713 echocheck "linux/cdrom.h"
3714 cat > $TMPC << EOF
3715 #include <sys/types.h>
3716 #include <linux/cdrom.h>
3717 int main(void) { return 0; }
3719 _cdrom=no
3720 cc_check && _cdrom=yes
3721 if test "$_cdrom" = yes ; then
3722 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3723 else
3724 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3726 echores "$_cdrom"
3729 echocheck "dvd.h"
3730 cat > $TMPC << EOF
3731 #include <dvd.h>
3732 int main(void) { return 0; }
3734 _dvd=no
3735 cc_check && _dvd=yes
3736 if test "$_dvd" = yes ; then
3737 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3738 else
3739 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3741 echores "$_dvd"
3744 if bsdos; then
3745 echocheck "BSDI dvd.h"
3746 cat > $TMPC << EOF
3747 #include <dvd.h>
3748 int main(void) { return 0; }
3750 _bsdi_dvd=no
3751 cc_check && _bsdi_dvd=yes
3752 if test "$_bsdi_dvd" = yes ; then
3753 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3754 else
3755 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3757 echores "$_bsdi_dvd"
3758 fi #if bsdos
3761 if hpux; then
3762 # also used by AIX, but AIX does not support VCD and/or libdvdread
3763 echocheck "HP-UX SCSI header"
3764 cat > $TMPC << EOF
3765 #include <sys/scsi.h>
3766 int main(void) { return 0; }
3768 _hpux_scsi_h=no
3769 cc_check && _hpux_scsi_h=yes
3770 if test "$_hpux_scsi_h" = yes ; then
3771 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3772 else
3773 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3775 echores "$_hpux_scsi_h"
3776 fi #if hpux
3779 if sunos; then
3780 echocheck "userspace SCSI headers (Solaris)"
3781 cat > $TMPC << EOF
3782 #include <unistd.h>
3783 #include <stropts.h>
3784 #include <sys/scsi/scsi_types.h>
3785 #include <sys/scsi/impl/uscsi.h>
3786 int main(void) { return 0; }
3788 _sol_scsi_h=no
3789 cc_check && _sol_scsi_h=yes
3790 if test "$_sol_scsi_h" = yes ; then
3791 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3792 else
3793 def_sol_scsi_h='#undef SOLARIS_USCSI'
3795 echores "$_sol_scsi_h"
3796 fi #if sunos
3799 echocheck "termcap"
3800 if test "$_termcap" = auto ; then
3801 cat > $TMPC <<EOF
3802 #include <stddef.h>
3803 #include <term.h>
3804 int main(void) { tgetent(NULL, NULL); return 0; }
3806 _termcap=no
3807 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3808 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
3809 && _termcap=yes && break
3810 done
3812 if test "$_termcap" = yes ; then
3813 def_termcap='#define HAVE_TERMCAP 1'
3814 test $_ld_tmp && _res_comment="using $_ld_tmp"
3815 else
3816 def_termcap='#undef HAVE_TERMCAP'
3818 echores "$_termcap"
3821 echocheck "termios"
3822 def_termios='#undef HAVE_TERMIOS'
3823 def_termios_h='#undef HAVE_TERMIOS_H'
3824 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3825 if test "$_termios" = auto ; then
3826 _termios=no
3827 for _termios_header in "sys/termios.h" "termios.h"; do
3828 cat > $TMPC <<EOF
3829 #include <$_termios_header>
3830 int main(void) { return 0; }
3832 cc_check && _termios=yes && _res_comment="using $_termios_header" && break
3833 done
3836 if test "$_termios" = yes ; then
3837 def_termios='#define HAVE_TERMIOS 1'
3838 if test "$_termios_header" = "termios.h" ; then
3839 def_termios_h='#define HAVE_TERMIOS_H 1'
3840 else
3841 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3844 echores "$_termios"
3847 echocheck "shm"
3848 if test "$_shm" = auto ; then
3849 cat > $TMPC << EOF
3850 #include <sys/types.h>
3851 #include <sys/shm.h>
3852 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3854 _shm=no
3855 cc_check && _shm=yes
3857 if test "$_shm" = yes ; then
3858 def_shm='#define HAVE_SHM 1'
3859 else
3860 def_shm='#undef HAVE_SHM'
3862 echores "$_shm"
3865 echocheck "strsep()"
3866 cat > $TMPC << EOF
3867 #include <string.h>
3868 int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3870 _strsep=no
3871 cc_check && _strsep=yes
3872 if test "$_strsep" = yes ; then
3873 def_strsep='#define HAVE_STRSEP 1'
3874 _need_strsep=no
3875 else
3876 def_strsep='#undef HAVE_STRSEP'
3877 _need_strsep=yes
3879 echores "$_strsep"
3882 echocheck "vsscanf()"
3883 cat > $TMPC << EOF
3884 #define _ISOC99_SOURCE
3885 #include <stdarg.h>
3886 #include <stdio.h>
3887 int main(void) { va_list ap; vsscanf("foo", "bar", ap); return 0; }
3889 _vsscanf=no
3890 cc_check && _vsscanf=yes
3891 if test "$_vsscanf" = yes ; then
3892 def_vsscanf='#define HAVE_VSSCANF 1'
3893 _need_vsscanf=no
3894 else
3895 def_vsscanf='#undef HAVE_VSSCANF'
3896 _need_vsscanf=yes
3898 echores "$_vsscanf"
3901 echocheck "swab()"
3902 cat > $TMPC << EOF
3903 #define _XOPEN_SOURCE 600
3904 #include <unistd.h>
3905 int main(void) { swab(0, 0, 0); return 0; }
3907 _swab=no
3908 cc_check && _swab=yes
3909 if test "$_swab" = yes ; then
3910 def_swab='#define HAVE_SWAB 1'
3911 _need_swab=no
3912 else
3913 def_swab='#undef HAVE_SWAB'
3914 _need_swab=yes
3916 echores "$_swab"
3918 echocheck "POSIX select()"
3919 cat > $TMPC << EOF
3920 #include <stdio.h>
3921 #include <stdlib.h>
3922 #include <sys/types.h>
3923 #include <string.h>
3924 #include <sys/time.h>
3925 #include <unistd.h>
3926 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3928 _posix_select=no
3929 def_posix_select='#undef HAVE_POSIX_SELECT'
3930 #select() of kLIBC (OS/2) supports socket only
3931 ! os2 && cc_check && _posix_select=yes \
3932 && def_posix_select='#define HAVE_POSIX_SELECT 1'
3933 echores "$_posix_select"
3936 echocheck "audio select()"
3937 if test "$_select" = no ; then
3938 def_select='#undef HAVE_AUDIO_SELECT'
3939 elif test "$_select" = yes ; then
3940 def_select='#define HAVE_AUDIO_SELECT 1'
3942 echores "$_select"
3945 echocheck "gettimeofday()"
3946 cat > $TMPC << EOF
3947 #include <stdio.h>
3948 #include <sys/time.h>
3949 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3951 _gettimeofday=no
3952 cc_check && _gettimeofday=yes
3953 if test "$_gettimeofday" = yes ; then
3954 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3955 _need_gettimeofday=no
3956 else
3957 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3958 _need_gettimeofday=yes
3960 echores "$_gettimeofday"
3963 echocheck "glob()"
3964 cat > $TMPC << EOF
3965 #include <stdio.h>
3966 #include <glob.h>
3967 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3969 _glob=no
3970 cc_check && _glob=yes
3971 if test "$_glob" = yes ; then
3972 def_glob='#define HAVE_GLOB 1'
3973 _need_glob=no
3974 else
3975 def_glob='#undef HAVE_GLOB'
3976 _need_glob=yes
3978 echores "$_glob"
3981 echocheck "setenv()"
3982 cat > $TMPC << EOF
3983 #include <stdlib.h>
3984 int main(void) { setenv("","",0); return 0; }
3986 _setenv=no
3987 cc_check && _setenv=yes
3988 if test "$_setenv" = yes ; then
3989 def_setenv='#define HAVE_SETENV 1'
3990 _need_setenv=no
3991 else
3992 def_setenv='#undef HAVE_SETENV'
3993 _need_setenv=yes
3995 echores "$_setenv"
3998 if sunos; then
3999 echocheck "sysi86()"
4000 cat > $TMPC << EOF
4001 #include <sys/sysi86.h>
4002 int main(void) { sysi86(0); return 0; }
4004 _sysi86=no
4005 cc_check && _sysi86=yes
4006 if test "$_sysi86" = yes ; then
4007 def_sysi86='#define HAVE_SYSI86 1'
4008 cat > $TMPC << EOF
4009 #include <sys/sysi86.h>
4010 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
4012 cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
4013 else
4014 def_sysi86='#undef HAVE_SYSI86'
4016 echores "$_sysi86"
4017 fi #if sunos
4020 echocheck "sys/sysinfo.h"
4021 cat > $TMPC << EOF
4022 #include <sys/sysinfo.h>
4023 int main(void) {
4024 struct sysinfo s_info;
4025 sysinfo(&s_info);
4026 return 0;
4029 _sys_sysinfo=no
4030 cc_check && _sys_sysinfo=yes
4031 if test "$_sys_sysinfo" = yes ; then
4032 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
4033 else
4034 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
4036 echores "$_sys_sysinfo"
4039 if darwin; then
4041 echocheck "Mac OS X Finder Support"
4042 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
4043 if test "$_macosx_finder" = yes ; then
4044 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
4045 extra_ldflags="$extra_ldflags -framework Carbon"
4047 echores "$_macosx_finder"
4049 echocheck "Mac OS X Bundle file locations"
4050 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
4051 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
4052 if test "$_macosx_bundle" = yes ; then
4053 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
4054 extra_ldflags="$extra_ldflags -framework Carbon"
4056 echores "$_macosx_bundle"
4058 echocheck "Apple Remote"
4059 if test "$_apple_remote" = auto ; then
4060 _apple_remote=no
4061 cat > $TMPC <<EOF
4062 #include <stdio.h>
4063 #include <IOKit/IOCFPlugIn.h>
4064 int main(void) {
4065 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
4066 CFMutableDictionaryRef hidMatchDictionary;
4067 IOReturn ioReturnValue;
4069 // Set up a matching dictionary to search the I/O Registry by class.
4070 // name for all HID class devices
4071 hidMatchDictionary = IOServiceMatching("AppleIRController");
4073 // Now search I/O Registry for matching devices.
4074 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
4075 hidMatchDictionary, &hidObjectIterator);
4077 // If search is unsuccessful, return nonzero.
4078 if (ioReturnValue != kIOReturnSuccess ||
4079 !IOIteratorIsValid(hidObjectIterator)) {
4080 return 1;
4082 return 0;
4085 cc_check -framework IOKit && tmp_run && _apple_remote=yes
4087 if test "$_apple_remote" = yes ; then
4088 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
4089 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
4090 else
4091 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
4093 echores "$_apple_remote"
4095 fi #if darwin
4097 if linux; then
4099 echocheck "Apple IR"
4100 if test "$_apple_ir" = auto ; then
4101 _apple_ir=no
4102 cat > $TMPC <<EOF
4103 #include <linux/types.h>
4104 #include <linux/input.h>
4105 int main(void) {
4106 struct input_event ev;
4107 struct input_id id;
4108 return 0;
4111 cc_check && _apple_ir=yes
4113 if test "$_apple_ir" = yes ; then
4114 def_apple_ir='#define CONFIG_APPLE_IR 1'
4115 else
4116 def_apple_ir='#undef CONFIG_APPLE_IR'
4118 echores "$_apple_ir"
4119 fi #if linux
4121 echocheck "pkg-config"
4122 _pkg_config=pkg-config
4123 if $($_pkg_config --version > /dev/null 2>&1); then
4124 if test "$_ld_static"; then
4125 _pkg_config="$_pkg_config --static"
4127 echores "yes"
4128 else
4129 _pkg_config=false
4130 echores "no"
4134 echocheck "Samba support (libsmbclient)"
4135 if test "$_smb" = yes; then
4136 extra_ldflags="$extra_ldflags -lsmbclient"
4138 if test "$_smb" = auto; then
4139 _smb=no
4140 cat > $TMPC << EOF
4141 #include <libsmbclient.h>
4142 int main(void) { smbc_opendir("smb://"); return 0; }
4144 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
4145 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
4146 _smb=yes && break
4147 done
4150 if test "$_smb" = yes; then
4151 def_smb="#define CONFIG_LIBSMBCLIENT 1"
4152 _inputmodules="smb $_inputmodules"
4153 else
4154 def_smb="#undef CONFIG_LIBSMBCLIENT"
4155 _noinputmodules="smb $_noinputmodules"
4157 echores "$_smb"
4160 #########
4161 # VIDEO #
4162 #########
4165 echocheck "tdfxfb"
4166 if test "$_tdfxfb" = yes ; then
4167 def_tdfxfb='#define CONFIG_TDFXFB 1'
4168 _vomodules="tdfxfb $_vomodules"
4169 else
4170 def_tdfxfb='#undef CONFIG_TDFXFB'
4171 _novomodules="tdfxfb $_novomodules"
4173 echores "$_tdfxfb"
4175 echocheck "s3fb"
4176 if test "$_s3fb" = yes ; then
4177 def_s3fb='#define CONFIG_S3FB 1'
4178 _vomodules="s3fb $_vomodules"
4179 else
4180 def_s3fb='#undef CONFIG_S3FB'
4181 _novomodules="s3fb $_novomodules"
4183 echores "$_s3fb"
4185 echocheck "wii"
4186 if test "$_wii" = yes ; then
4187 def_wii='#define CONFIG_WII 1'
4188 _vomodules="wii $_vomodules"
4189 else
4190 def_wii='#undef CONFIG_WII'
4191 _novomodules="wii $_novomodules"
4193 echores "$_wii"
4195 echocheck "tdfxvid"
4196 if test "$_tdfxvid" = yes ; then
4197 def_tdfxvid='#define CONFIG_TDFX_VID 1'
4198 _vomodules="tdfx_vid $_vomodules"
4199 else
4200 def_tdfxvid='#undef CONFIG_TDFX_VID'
4201 _novomodules="tdfx_vid $_novomodules"
4203 echores "$_tdfxvid"
4205 echocheck "xvr100"
4206 if test "$_xvr100" = auto ; then
4207 cat > $TMPC << EOF
4208 #include <unistd.h>
4209 #include <sys/fbio.h>
4210 #include <sys/visual_io.h>
4211 int main(void) {
4212 struct vis_identifier ident;
4213 struct fbgattr attr;
4214 ioctl(0, VIS_GETIDENTIFIER, &ident);
4215 ioctl(0, FBIOGATTR, &attr);
4216 return 0;
4219 _xvr100=no
4220 cc_check && _xvr100=yes
4222 if test "$_xvr100" = yes ; then
4223 def_xvr100='#define CONFIG_XVR100 1'
4224 _vomodules="xvr100 $_vomodules"
4225 else
4226 def_tdfxvid='#undef CONFIG_XVR100'
4227 _novomodules="xvr100 $_novomodules"
4229 echores "$_xvr100"
4231 echocheck "tga"
4232 if test "$_tga" = yes ; then
4233 def_tga='#define CONFIG_TGA 1'
4234 _vomodules="tga $_vomodules"
4235 else
4236 def_tga='#undef CONFIG_TGA'
4237 _novomodules="tga $_novomodules"
4239 echores "$_tga"
4242 echocheck "md5sum support"
4243 if test "$_md5sum" = yes; then
4244 def_md5sum="#define CONFIG_MD5SUM 1"
4245 _vomodules="md5sum $_vomodules"
4246 else
4247 def_md5sum="#undef CONFIG_MD5SUM"
4248 _novomodules="md5sum $_novomodules"
4250 echores "$_md5sum"
4253 echocheck "yuv4mpeg support"
4254 if test "$_yuv4mpeg" = yes; then
4255 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
4256 _vomodules="yuv4mpeg $_vomodules"
4257 else
4258 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
4259 _novomodules="yuv4mpeg $_novomodules"
4261 echores "$_yuv4mpeg"
4264 echocheck "bl"
4265 if test "$_bl" = yes ; then
4266 def_bl='#define CONFIG_BL 1'
4267 _vomodules="bl $_vomodules"
4268 else
4269 def_bl='#undef CONFIG_BL'
4270 _novomodules="bl $_novomodules"
4272 echores "$_bl"
4275 echocheck "DirectFB"
4276 if test "$_directfb" = auto ; then
4277 _directfb=no
4278 cat > $TMPC <<EOF
4279 #include <directfb.h>
4280 int main(void) { DirectFBInit(0, 0); return 0; }
4282 for _inc_tmp in "" -I/usr/local/include/directfb \
4283 -I/usr/include/directfb -I/usr/local/include; do
4284 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
4285 extra_cflags="$extra_cflags $_inc_tmp" && break
4286 done
4289 dfb_version() {
4290 expr $1 \* 65536 + $2 \* 256 + $3
4293 if test "$_directfb" = yes; then
4294 cat > $TMPC << EOF
4295 #include <directfb_version.h>
4297 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
4300 if $_cc -E $TMPC $extra_cflags > "$TMPEXE"; then
4301 _directfb_version=$(sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()')
4302 _dfb_major=$(echo $_directfb_version | cut -d . -f 1)
4303 _dfb_minor=$(echo $_directfb_version | cut -d . -f 2)
4304 _dfb_micro=$(echo $_directfb_version | cut -d . -f 3)
4305 _dfb_version=$(dfb_version $_dfb_major $_dfb_minor $_dfb_micro)
4306 if test "$_dfb_version" -ge $(dfb_version 0 9 13); then
4307 def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
4308 _res_comment="$_directfb_version"
4309 test "$_dfb_version" -ge $(dfb_version 0 9 15) && _dfbmga=yes
4310 else
4311 def_directfb_version='#undef DIRECTFBVERSION'
4312 _directfb=no
4313 _res_comment="version >=0.9.13 required"
4315 else
4316 _directfb=no
4317 _res_comment="failed to get version"
4320 echores "$_directfb"
4322 if test "$_directfb" = yes ; then
4323 def_directfb='#define CONFIG_DIRECTFB 1'
4324 _vomodules="directfb $_vomodules"
4325 libs_mplayer="$libs_mplayer -ldirectfb"
4326 else
4327 def_directfb='#undef CONFIG_DIRECTFB'
4328 _novomodules="directfb $_novomodules"
4330 if test "$_dfbmga" = yes; then
4331 _vomodules="dfbmga $_vomodules"
4332 def_dfbmga='#define CONFIG_DFBMGA 1'
4333 else
4334 _novomodules="dfbmga $_novomodules"
4335 def_dfbmga='#undef CONFIG_DFBMGA'
4339 echocheck "X11 headers presence"
4340 _x11_headers="no"
4341 _res_comment="check if the dev(el) packages are installed"
4342 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
4343 if test -f "$I/X11/Xlib.h" ; then
4344 _x11_headers="yes"
4345 _res_comment=""
4346 break
4348 done
4349 if test $_cross_compile = no; then
4350 for I in /usr/X11/include /usr/X11R7/include /usr/local/include /usr/X11R6/include \
4351 /usr/include/X11R6 /usr/openwin/include ; do
4352 if test -f "$I/X11/Xlib.h" ; then
4353 extra_cflags="$extra_cflags -I$I"
4354 _x11_headers="yes"
4355 _res_comment="using $I"
4356 break
4358 done
4360 echores "$_x11_headers"
4363 echocheck "X11"
4364 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
4365 cat > $TMPC <<EOF
4366 #include <X11/Xlib.h>
4367 #include <X11/Xutil.h>
4368 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
4370 for I in "" -L/usr/X11R7/lib -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
4371 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/local/lib64 -L/usr/X11R6/lib64 \
4372 -L/usr/lib ; do
4373 if netbsd; then
4374 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
4375 else
4376 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
4378 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" \
4379 && _x11=yes && break
4380 done
4382 if test "$_x11" = yes ; then
4383 def_x11='#define CONFIG_X11 1'
4384 _vomodules="x11 xover $_vomodules"
4385 else
4386 _x11=no
4387 def_x11='#undef CONFIG_X11'
4388 _novomodules="x11 $_novomodules"
4389 _res_comment="check if the dev(el) packages are installed"
4390 # disable stuff that depends on X
4391 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
4393 echores "$_x11"
4395 echocheck "Xss screensaver extensions"
4396 if test "$_xss" = auto ; then
4397 cat > $TMPC << EOF
4398 #include <X11/Xlib.h>
4399 #include <X11/extensions/scrnsaver.h>
4400 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
4402 _xss=no
4403 cc_check -lXss && _xss=yes
4405 if test "$_xss" = yes ; then
4406 def_xss='#define CONFIG_XSS 1'
4407 libs_mplayer="$libs_mplayer -lXss"
4408 else
4409 def_xss='#undef CONFIG_XSS'
4411 echores "$_xss"
4413 echocheck "DPMS"
4414 _xdpms3=no
4415 _xdpms4=no
4416 if test "$_x11" = yes ; then
4417 cat > $TMPC <<EOF
4418 #include <X11/Xmd.h>
4419 #include <X11/Xlib.h>
4420 #include <X11/Xutil.h>
4421 #include <X11/Xatom.h>
4422 #include <X11/extensions/dpms.h>
4423 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4425 cc_check -lXdpms && _xdpms3=yes
4426 cat > $TMPC <<EOF
4427 #include <X11/Xlib.h>
4428 #include <X11/extensions/dpms.h>
4429 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4431 cc_check -lXext && _xdpms4=yes
4433 if test "$_xdpms4" = yes ; then
4434 def_xdpms='#define CONFIG_XDPMS 1'
4435 _res_comment="using Xdpms 4"
4436 echores "yes"
4437 elif test "$_xdpms3" = yes ; then
4438 def_xdpms='#define CONFIG_XDPMS 1'
4439 libs_mplayer="$libs_mplayer -lXdpms"
4440 _res_comment="using Xdpms 3"
4441 echores "yes"
4442 else
4443 def_xdpms='#undef CONFIG_XDPMS'
4444 echores "no"
4448 echocheck "Xv"
4449 if test "$_xv" = auto ; then
4450 cat > $TMPC <<EOF
4451 #include <X11/Xlib.h>
4452 #include <X11/extensions/Xvlib.h>
4453 int main(void) {
4454 (void) XvGetPortAttribute(0, 0, 0, 0);
4455 (void) XvQueryPortAttributes(0, 0, 0);
4456 return 0; }
4458 _xv=no
4459 cc_check -lXv && _xv=yes
4462 if test "$_xv" = yes ; then
4463 def_xv='#define CONFIG_XV 1'
4464 libs_mplayer="$libs_mplayer -lXv"
4465 _vomodules="xv $_vomodules"
4466 else
4467 def_xv='#undef CONFIG_XV'
4468 _novomodules="xv $_novomodules"
4470 echores "$_xv"
4473 echocheck "XvMC"
4474 if test "$_xv" = yes && test "$_xvmc" != no ; then
4475 _xvmc=no
4476 cat > $TMPC <<EOF
4477 #include <X11/Xlib.h>
4478 #include <X11/extensions/Xvlib.h>
4479 #include <X11/extensions/XvMClib.h>
4480 int main(void) {
4481 (void) XvMCQueryExtension(0,0,0);
4482 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4483 return 0; }
4485 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4486 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4487 done
4489 if test "$_xvmc" = yes ; then
4490 def_xvmc='#define CONFIG_XVMC 1'
4491 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
4492 _vomodules="xvmc $_vomodules"
4493 _res_comment="using $_xvmclib"
4494 else
4495 def_xvmc='#define CONFIG_XVMC 0'
4496 _novomodules="xvmc $_novomodules"
4497 _libavdecoders=$(echo $_libavdecoders | sed -e s/MPEG_XVMC_DECODER//)
4499 echores "$_xvmc"
4502 echocheck "VDPAU"
4503 if test "$_vdpau" = auto ; then
4504 _vdpau=no
4505 if test "$_dl" = yes ; then
4506 cat > $TMPC <<EOF
4507 #include <vdpau/vdpau_x11.h>
4508 int main(void) {
4509 (void) vdp_device_create_x11(0, 0, 0, 0);
4510 return VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1; }
4512 cc_check -lvdpau && _vdpau=yes
4515 if test "$_vdpau" = yes ; then
4516 def_vdpau='#define CONFIG_VDPAU 1'
4517 libs_mplayer="$libs_mplayer -lvdpau"
4518 _vomodules="vdpau $_vomodules"
4519 else
4520 def_vdpau='#define CONFIG_VDPAU 0'
4521 _novomodules="vdpau $_novomodules"
4522 _libavdecoders=$(echo $_libavdecoders | sed -e s/MPEG_VDPAU_DECODER// -e s/MPEG1_VDPAU_DECODER// -e s/H264_VDPAU_DECODER// -e s/WMV3_VDPAU_DECODER// -e s/VC1_VDPAU_DECODER// -e s/MPEG4_VDPAU_DECODER//)
4524 echores "$_vdpau"
4527 echocheck "Xinerama"
4528 if test "$_xinerama" = auto ; then
4529 cat > $TMPC <<EOF
4530 #include <X11/Xlib.h>
4531 #include <X11/extensions/Xinerama.h>
4532 int main(void) { (void) XineramaIsActive(0); return 0; }
4534 _xinerama=no
4535 cc_check -lXinerama && _xinerama=yes
4538 if test "$_xinerama" = yes ; then
4539 def_xinerama='#define CONFIG_XINERAMA 1'
4540 libs_mplayer="$libs_mplayer -lXinerama"
4541 else
4542 def_xinerama='#undef CONFIG_XINERAMA'
4544 echores "$_xinerama"
4547 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4548 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4549 # named 'X extensions' or something similar.
4550 # This check may be useful for future mplayer versions (to change resolution)
4551 # If you run into problems, remove '-lXxf86vm'.
4552 echocheck "Xxf86vm"
4553 if test "$_vm" = auto ; then
4554 cat > $TMPC <<EOF
4555 #include <X11/Xlib.h>
4556 #include <X11/extensions/xf86vmode.h>
4557 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4559 _vm=no
4560 cc_check -lXxf86vm && _vm=yes
4562 if test "$_vm" = yes ; then
4563 def_vm='#define CONFIG_XF86VM 1'
4564 libs_mplayer="$libs_mplayer -lXxf86vm"
4565 else
4566 def_vm='#undef CONFIG_XF86VM'
4568 echores "$_vm"
4570 # Check for the presence of special keycodes, like audio control buttons
4571 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4572 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4573 # have these new keycodes.
4574 echocheck "XF86keysym"
4575 if test "$_xf86keysym" = auto; then
4576 _xf86keysym=no
4577 cat > $TMPC <<EOF
4578 #include <X11/Xlib.h>
4579 #include <X11/XF86keysym.h>
4580 int main(void) { return XF86XK_AudioPause; }
4582 cc_check && _xf86keysym=yes
4584 if test "$_xf86keysym" = yes ; then
4585 def_xf86keysym='#define CONFIG_XF86XK 1'
4586 else
4587 def_xf86keysym='#undef CONFIG_XF86XK'
4589 echores "$_xf86keysym"
4591 echocheck "DGA"
4592 if test "$_dga2" = auto && test "$_x11" = yes ; then
4593 cat > $TMPC << EOF
4594 #include <X11/Xlib.h>
4595 #include <X11/extensions/xf86dga.h>
4596 int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4598 _dga2=no
4599 cc_check -lXxf86dga && _dga2=yes
4601 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4602 cat > $TMPC << EOF
4603 #include <X11/Xlib.h>
4604 #include <X11/extensions/xf86dga.h>
4605 int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4607 _dga1=no
4608 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4611 _dga=no
4612 def_dga='#undef CONFIG_DGA'
4613 def_dga1='#undef CONFIG_DGA1'
4614 def_dga2='#undef CONFIG_DGA2'
4615 if test "$_dga1" = yes ; then
4616 _dga=yes
4617 def_dga1='#define CONFIG_DGA1 1'
4618 _res_comment="using DGA 1.0"
4619 elif test "$_dga2" = yes ; then
4620 _dga=yes
4621 def_dga2='#define CONFIG_DGA2 1'
4622 _res_comment="using DGA 2.0"
4624 if test "$_dga" = yes ; then
4625 def_dga='#define CONFIG_DGA 1'
4626 libs_mplayer="$libs_mplayer -lXxf86dga"
4627 _vomodules="dga $_vomodules"
4628 else
4629 _novomodules="dga $_novomodules"
4631 echores "$_dga"
4634 echocheck "3dfx"
4635 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4636 def_3dfx='#define CONFIG_3DFX 1'
4637 _vomodules="3dfx $_vomodules"
4638 else
4639 def_3dfx='#undef CONFIG_3DFX'
4640 _novomodules="3dfx $_novomodules"
4642 echores "$_3dfx"
4645 echocheck "VIDIX"
4646 def_vidix='#undef CONFIG_VIDIX'
4647 def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4648 _vidix_drv_cyberblade=no
4649 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4650 _vidix_drv_ivtv=no
4651 def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4652 _vidix_drv_mach64=no
4653 def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4654 _vidix_drv_mga=no
4655 def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4656 _vidix_drv_mga_crtc2=no
4657 def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4658 _vidix_drv_nvidia=no
4659 def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4660 _vidix_drv_pm2=no
4661 def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4662 _vidix_drv_pm3=no
4663 def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4664 _vidix_drv_radeon=no
4665 def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4666 _vidix_drv_rage128=no
4667 def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4668 _vidix_drv_s3=no
4669 def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU'
4670 _vidix_drv_sh_veu=no
4671 def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4672 _vidix_drv_sis=no
4673 def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4674 _vidix_drv_unichrome=no
4675 if test "$_vidix" = auto ; then
4676 _vidix=no
4677 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4678 && _vidix=yes
4679 x86_64 && win32 && _vidix=no
4680 (ppc || alpha) && linux && _vidix=yes
4682 echores "$_vidix"
4684 if test "$_vidix" = yes ; then
4685 def_vidix='#define CONFIG_VIDIX 1'
4686 _vomodules="cvidix $_vomodules"
4687 # FIXME: ivtv driver temporarily disabled until we have a proper test
4688 #test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4689 test "$_vidix_drivers" || _vidix_drivers="cyberblade mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4691 # some vidix drivers are architecture and os specific, discard them elsewhere
4692 x86 || _vidix_drivers=$(echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//)
4693 (test $host_arch = "sh" && linux) || _vidix_drivers=$(echo $_vidix_drivers | sed s/sh_veu//)
4695 for driver in $_vidix_drivers ; do
4696 uc_driver=$(echo $driver | tr '[a-z]' '[A-Z]')
4697 eval _vidix_drv_${driver}=yes
4698 eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4699 done
4701 echocheck "VIDIX PCI device name database"
4702 echores "$_vidix_pcidb"
4703 if test "$_vidix_pcidb" = yes ; then
4704 _vidix_pcidb_val=1
4705 else
4706 _vidix_pcidb_val=0
4709 echocheck "VIDIX dhahelper support"
4710 test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER
4711 echores "$_dhahelper"
4713 echocheck "VIDIX svgalib_helper support"
4714 test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER
4715 echores "$_svgalib_helper"
4717 else
4718 _novomodules="cvidix $_novomodules"
4721 if test "$_vidix" = yes && win32; then
4722 winvidix=yes
4723 _vomodules="winvidix $_vomodules"
4724 libs_mplayer="$libs_mplayer -lgdi32"
4725 else
4726 _novomodules="winvidix $_novomodules"
4728 if test "$_vidix" = yes && test "$_x11" = yes; then
4729 xvidix=yes
4730 _vomodules="xvidix $_vomodules"
4731 else
4732 _novomodules="xvidix $_novomodules"
4735 echocheck "/dev/mga_vid"
4736 if test "$_mga" = auto ; then
4737 _mga=no
4738 test -c /dev/mga_vid && _mga=yes
4740 if test "$_mga" = yes ; then
4741 def_mga='#define CONFIG_MGA 1'
4742 _vomodules="mga $_vomodules"
4743 else
4744 def_mga='#undef CONFIG_MGA'
4745 _novomodules="mga $_novomodules"
4747 echores "$_mga"
4749 echocheck "xmga"
4750 if test "$_xmga" = auto ; then
4751 _xmga=no
4752 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
4754 if test "$_xmga" = yes ; then
4755 def_xmga='#define CONFIG_XMGA 1'
4756 _vomodules="xmga $_vomodules"
4757 else
4758 def_xmga='#undef CONFIG_XMGA'
4759 _novomodules="xmga $_novomodules"
4761 echores "$_xmga"
4764 echocheck "GGI"
4765 if test "$_ggi" = auto ; then
4766 cat > $TMPC << EOF
4767 #include <ggi/ggi.h>
4768 int main(void) { ggiInit(); return 0; }
4770 _ggi=no
4771 cc_check -lggi && _ggi=yes
4773 if test "$_ggi" = yes ; then
4774 def_ggi='#define CONFIG_GGI 1'
4775 libs_mplayer="$libs_mplayer -lggi"
4776 _vomodules="ggi $_vomodules"
4777 else
4778 def_ggi='#undef CONFIG_GGI'
4779 _novomodules="ggi $_novomodules"
4781 echores "$_ggi"
4783 echocheck "GGI extension: libggiwmh"
4784 if test "$_ggiwmh" = auto ; then
4785 _ggiwmh=no
4786 cat > $TMPC << EOF
4787 #include <ggi/ggi.h>
4788 #include <ggi/wmh.h>
4789 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4791 cc_check -lggi -lggiwmh && _ggiwmh=yes
4793 # needed to get right output on obscure combination
4794 # like --disable-ggi --enable-ggiwmh
4795 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4796 def_ggiwmh='#define CONFIG_GGIWMH 1'
4797 libs_mplayer="$libs_mplayer -lggiwmh"
4798 else
4799 _ggiwmh=no
4800 def_ggiwmh='#undef CONFIG_GGIWMH'
4802 echores "$_ggiwmh"
4805 echocheck "AA"
4806 if test "$_aa" = auto ; then
4807 cat > $TMPC << EOF
4808 #include <aalib.h>
4809 extern struct aa_hardware_params aa_defparams;
4810 extern struct aa_renderparams aa_defrenderparams;
4811 int main(void) {
4812 aa_context *c;
4813 aa_renderparams *p;
4814 (void) aa_init(0, 0, 0);
4815 c = aa_autoinit(&aa_defparams);
4816 p = aa_getrenderparams();
4817 aa_autoinitkbd(c,0);
4818 return 0; }
4820 _aa=no
4821 for _ld_tmp in "-laa" ; do
4822 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4823 done
4825 if test "$_aa" = yes ; then
4826 def_aa='#define CONFIG_AA 1'
4827 if cygwin ; then
4828 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4830 _vomodules="aa $_vomodules"
4831 else
4832 def_aa='#undef CONFIG_AA'
4833 _novomodules="aa $_novomodules"
4835 echores "$_aa"
4838 echocheck "CACA"
4839 if test "$_caca" = auto ; then
4840 _caca=no
4841 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4842 cat > $TMPC << EOF
4843 #include <caca.h>
4844 #ifdef CACA_API_VERSION_1
4845 #include <caca0.h>
4846 #endif
4847 int main(void) { (void) caca_init(); return 0; }
4849 cc_check $(caca-config --libs) && _caca=yes
4852 if test "$_caca" = yes ; then
4853 def_caca='#define CONFIG_CACA 1'
4854 extra_cflags="$extra_cflags $(caca-config --cflags)"
4855 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4856 _vomodules="caca $_vomodules"
4857 else
4858 def_caca='#undef CONFIG_CACA'
4859 _novomodules="caca $_novomodules"
4861 echores "$_caca"
4864 echocheck "SVGAlib"
4865 if test "$_svga" = auto ; then
4866 cat > $TMPC << EOF
4867 #include <vga.h>
4868 int main(void) { return 0; }
4870 _svga=no
4871 cc_check -lvga $_ld_lm && _svga=yes
4873 if test "$_svga" = yes ; then
4874 def_svga='#define CONFIG_SVGALIB 1'
4875 libs_mplayer="$libs_mplayer -lvga"
4876 _vomodules="svga $_vomodules"
4877 else
4878 def_svga='#undef CONFIG_SVGALIB'
4879 _novomodules="svga $_novomodules"
4881 echores "$_svga"
4884 echocheck "FBDev"
4885 if test "$_fbdev" = auto ; then
4886 _fbdev=no
4887 linux && _fbdev=yes
4889 if test "$_fbdev" = yes ; then
4890 def_fbdev='#define CONFIG_FBDEV 1'
4891 _vomodules="fbdev $_vomodules"
4892 else
4893 def_fbdev='#undef CONFIG_FBDEV'
4894 _novomodules="fbdev $_novomodules"
4896 echores "$_fbdev"
4900 echocheck "DVB"
4901 if test "$_dvb" = auto ; then
4902 _dvb=no
4903 cat >$TMPC << EOF
4904 #include <poll.h>
4905 #include <sys/ioctl.h>
4906 #include <stdio.h>
4907 #include <time.h>
4908 #include <unistd.h>
4909 #include <ost/dmx.h>
4910 #include <ost/frontend.h>
4911 #include <ost/sec.h>
4912 #include <ost/video.h>
4913 #include <ost/audio.h>
4914 int main(void) {return 0;}
4916 for _inc_tmp in "" "-I/usr/src/DVB/ost/include" ; do
4917 cc_check $_inc_tmp && _dvb=yes && \
4918 extra_cflags="$extra_cflags $_inc_tmp" && break
4919 done
4921 echores "$_dvb"
4922 if test "$_dvb" = yes ; then
4923 def_dvb='#define CONFIG_DVB 1'
4924 def_dvbin='#define CONFIG_DVBIN 1'
4925 _aomodules="mpegpes(dvb) $_aomodules"
4926 _vomodules="mpegpes(dvb) $_vomodules"
4929 echocheck "DVB HEAD"
4930 if test "$_dvbhead" = auto ; then
4931 _dvbhead=no
4933 cat >$TMPC << EOF
4934 #include <poll.h>
4935 #include <sys/ioctl.h>
4936 #include <stdio.h>
4937 #include <time.h>
4938 #include <unistd.h>
4939 #include <linux/dvb/dmx.h>
4940 #include <linux/dvb/frontend.h>
4941 #include <linux/dvb/video.h>
4942 #include <linux/dvb/audio.h>
4943 int main(void) {return 0;}
4945 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4946 cc_check $_inc_tmp && _dvbhead=yes && \
4947 extra_cflags="$extra_cflags $_inc_tmp" && break
4948 done
4950 echores "$_dvbhead"
4951 if test "$_dvbhead" = yes ; then
4952 def_dvb='#define CONFIG_DVB 1'
4953 def_dvb_head='#define CONFIG_DVB_HEAD 1'
4954 def_dvbin='#define CONFIG_DVBIN 1'
4955 _aomodules="mpegpes(dvb) $_aomodules"
4956 _vomodules="mpegpes(dvb) $_vomodules"
4959 if test "$_dvbhead" = no && test "$_dvb" = no ; then
4960 def_dvb='#undef CONFIG_DVB'
4961 def_dvb_head='#undef CONFIG_DVB_HEAD'
4962 def_dvbin='#undef CONFIG_DVBIN '
4963 _aomodules="mpegpes(file) $_aomodules"
4964 _vomodules="mpegpes(file) $_vomodules"
4967 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
4968 _dvbin=yes
4969 _inputmodules="dvb $_inputmodules"
4970 else
4971 _dvbin=no
4972 _noinputmodules="dvb $_noinputmodules"
4976 if darwin; then
4978 echocheck "QuickTime"
4979 if test "$quicktime" = auto ; then
4980 cat > $TMPC <<EOF
4981 #include <QuickTime/QuickTime.h>
4982 int main(void) {
4983 ImageDescription *desc;
4984 EnterMovies();
4985 ExitMovies();
4986 return 0;
4989 quicktime=no
4990 cc_check -framework QuickTime && quicktime=yes
4992 if test "$quicktime" = yes ; then
4993 extra_ldflags="$extra_ldflags -framework QuickTime"
4994 def_quicktime='#define CONFIG_QUICKTIME 1'
4995 else
4996 def_quicktime='#undef CONFIG_QUICKTIME'
4997 _quartz=no
4999 echores $quicktime
5001 echocheck "Quartz"
5002 if test "$_quartz" = auto ; then
5003 cat > $TMPC <<EOF
5004 #include <Carbon/Carbon.h>
5005 int main(void) {
5006 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
5007 return 0;
5010 _quartz=no
5011 cc_check -framework Carbon && _quartz=yes
5013 if test "$_quartz" = yes ; then
5014 libs_mplayer="$libs_mplayer -framework Carbon"
5015 def_quartz='#define CONFIG_QUARTZ 1'
5016 _vomodules="quartz $_vomodules"
5017 else
5018 def_quartz='#undef CONFIG_QUARTZ'
5019 _novomodules="quartz $_novomodules"
5021 echores $_quartz
5023 echocheck "CoreVideo"
5024 if test "$_corevideo" = auto ; then
5025 cat > $TMPC <<EOF
5026 #include <Carbon/Carbon.h>
5027 #include <CoreServices/CoreServices.h>
5028 #include <OpenGL/OpenGL.h>
5029 #include <QuartzCore/CoreVideo.h>
5030 int main(void) { return 0; }
5032 _corevideo=no
5033 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
5035 if test "$_corevideo" = yes ; then
5036 _vomodules="corevideo $_vomodules"
5037 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
5038 def_corevideo='#define CONFIG_COREVIDEO 1'
5039 else
5040 _novomodules="corevideo $_novomodules"
5041 def_corevideo='#undef CONFIG_COREVIDEO'
5043 echores "$_corevideo"
5045 fi #if darwin
5048 # make sure this stays below CoreVideo to avoid issues due to namespace
5049 # conflicts between -lGL and -framework OpenGL
5050 echocheck "OpenGL"
5051 #Note: this test is run even with --enable-gl since we autodetect linker flags
5052 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
5053 cat > $TMPC << EOF
5054 #ifdef GL_WIN32
5055 #include <windows.h>
5056 #include <GL/gl.h>
5057 #else
5058 #include <GL/gl.h>
5059 #include <X11/Xlib.h>
5060 #include <GL/glx.h>
5061 #endif
5062 int main(void) {
5063 #ifdef GL_WIN32
5064 HDC dc;
5065 wglCreateContext(dc);
5066 #else
5067 glXCreateContext(NULL, NULL, NULL, True);
5068 #endif
5069 glFinish();
5070 return 0;
5073 _gl=no
5074 for _ld_tmp in -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do
5075 if cc_check $_ld_tmp $_ld_lm ; then
5076 _gl=yes
5077 _gl_x11=yes
5078 libs_mplayer="$libs_mplayer $_ld_tmp $_ld_dl"
5079 break
5081 done
5082 if cc_check -DGL_WIN32 -lopengl32 ; then
5083 _gl=yes
5084 _gl_win32=yes
5085 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
5087 else
5088 _gl=no
5090 if test "$_gl" = yes ; then
5091 def_gl='#define CONFIG_GL 1'
5092 _res_comment="backends:"
5093 if test "$_gl_win32" = yes ; then
5094 def_gl_win32='#define CONFIG_GL_WIN32 1'
5095 _res_comment="$_res_comment win32"
5097 if test "$_gl_x11" = yes ; then
5098 def_gl_x11='#define CONFIG_GL_X11 1'
5099 _res_comment="$_res_comment x11"
5101 _vomodules="opengl $_vomodules"
5102 else
5103 def_gl='#undef CONFIG_GL'
5104 def_gl_win32='#undef CONFIG_GL_WIN32'
5105 def_gl_x11='#undef CONFIG_GL_X11'
5106 _novomodules="opengl $_novomodules"
5108 echores "$_gl"
5111 echocheck "MatrixView"
5112 if test "$_gl" = no ; then
5113 matrixview=no
5115 if test "$matrixview" = yes ; then
5116 _vomodules="matrixview $_vomodules"
5117 def_matrixview='#define CONFIG_MATRIXVIEW 1'
5118 else
5119 _novomodules="matrixview $_novomodules"
5120 def_matrixview='#undef CONFIG_MATRIXVIEW'
5122 echores "$matrixview"
5125 echocheck "PNG support"
5126 if test "$_png" = auto ; then
5127 _png=no
5128 if irix ; then
5129 # Don't check for -lpng on irix since it has its own libpng
5130 # incompatible with the GNU libpng
5131 _res_comment="disabled on irix (not GNU libpng)"
5132 else
5133 cat > $TMPC << EOF
5134 #include <png.h>
5135 #include <string.h>
5136 int main(void) {
5137 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
5138 printf("libpng: %s\n", png_libpng_ver);
5139 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
5142 cc_check -lpng -lz $_ld_lm && _png=yes
5145 echores "$_png"
5146 if test "$_png" = yes ; then
5147 def_png='#define CONFIG_PNG 1'
5148 extra_ldflags="$extra_ldflags -lpng -lz"
5149 else
5150 def_png='#undef CONFIG_PNG'
5153 echocheck "MNG support"
5154 if test "$_mng" = auto ; then
5155 _mng=no
5156 cat > $TMPC << EOF
5157 #include <libmng.h>
5158 int main(void) {
5159 const char * p_ver = mng_version_text();
5160 return !p_ver || p_ver[0] == 0;
5163 if cc_check -lmng -lz $_ld_lm ; then
5164 _mng=yes
5167 echores "$_mng"
5168 if test "$_mng" = yes ; then
5169 def_mng='#define CONFIG_MNG 1'
5170 extra_ldflags="$extra_ldflags -lmng -lz"
5171 else
5172 def_mng='#undef CONFIG_MNG'
5175 echocheck "JPEG support"
5176 if test "$_jpeg" = auto ; then
5177 _jpeg=no
5178 cat > $TMPC << EOF
5179 #include <stdio.h>
5180 #include <stdlib.h>
5181 #include <setjmp.h>
5182 #include <string.h>
5183 #include <jpeglib.h>
5184 int main(void) { return 0; }
5186 cc_check -ljpeg $_ld_lm && _jpeg=yes
5188 echores "$_jpeg"
5190 if test "$_jpeg" = yes ; then
5191 def_jpeg='#define CONFIG_JPEG 1'
5192 _vomodules="jpeg $_vomodules"
5193 extra_ldflags="$extra_ldflags -ljpeg"
5194 else
5195 def_jpeg='#undef CONFIG_JPEG'
5196 _novomodules="jpeg $_novomodules"
5200 echocheck "OpenJPEG (JPEG2000) support"
5201 if test "$libopenjpeg" = auto ; then
5202 libopenjpeg=no
5203 cat > $TMPC << EOF
5204 #define OPJ_STATIC
5205 #include <openjpeg.h>
5206 int main(void) { opj_dparameters_t dec_params; opj_set_default_decoder_parameters(&dec_params); return 0; }
5208 cc_check -lopenjpeg $_ld_lm && libopenjpeg=yes
5210 echores "$libopenjpeg"
5211 if test "$libopenjpeg" = yes ; then
5212 def_libopenjpeg='#define CONFIG_LIBOPENJPEG 1'
5213 extra_ldflags="$extra_ldflags -lopenjpeg"
5214 _libavdecoders="$_libavdecoders LIBOPENJPEG_DECODER"
5215 _libavencoders="$_libavencoders LIBOPENJPEG_ENCODER"
5216 _codecmodules="OpenJPEG $_codecmodules"
5217 else
5218 def_libopenjpeg='#define CONFIG_LIBOPENJPEG 0'
5219 _nocodecmodules="OpenJPEG $_nocodecmodules"
5223 echocheck "PNM support"
5224 if test "$_pnm" = yes; then
5225 def_pnm="#define CONFIG_PNM 1"
5226 _vomodules="pnm $_vomodules"
5227 else
5228 def_pnm="#undef CONFIG_PNM"
5229 _novomodules="pnm $_novomodules"
5231 echores "$_pnm"
5235 echocheck "GIF support"
5236 # This is to appease people who want to force gif support.
5237 # If it is forced to yes, then we still do checks to determine
5238 # which gif library to use.
5239 if test "$_gif" = yes ; then
5240 _force_gif=yes
5241 _gif=auto
5244 if test "$_gif" = auto ; then
5245 _gif=no
5246 cat > $TMPC << EOF
5247 #include <gif_lib.h>
5248 int main(void) { return 0; }
5250 for _ld_gif in "-lungif" "-lgif" ; do
5251 cc_check $_ld_gif && _gif=yes && break
5252 done
5255 # If no library was found, and the user wants support forced,
5256 # then we force it on with libgif, as this is the safest
5257 # assumption IMHO. (libungif & libregif both create symbolic
5258 # links to libgif. We also assume that no x11 support is needed,
5259 # because if you are forcing this, then you _should_ know what
5260 # you are doing. [ Besides, package maintainers should never
5261 # have compiled x11 deps into libungif in the first place. ] )
5262 # </rant>
5263 # --Joey
5264 if test "$_force_gif" = yes && test "$_gif" = no ; then
5265 _gif=yes
5266 _ld_gif="-lgif"
5269 if test "$_gif" = yes ; then
5270 def_gif='#define CONFIG_GIF 1'
5271 _codecmodules="gif $_codecmodules"
5272 _vomodules="gif89a $_vomodules"
5273 _res_comment="old version, some encoding functions disabled"
5274 def_gif_4='#undef CONFIG_GIF_4'
5275 extra_ldflags="$extra_ldflags $_ld_gif"
5277 cat > $TMPC << EOF
5278 #include <signal.h>
5279 #include <gif_lib.h>
5280 void catch() { exit(1); }
5281 int main(void) {
5282 signal(SIGSEGV, catch); // catch segfault
5283 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
5284 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
5285 return 0;
5288 if cc_check "$_ld_gif" ; then
5289 def_gif_4='#define CONFIG_GIF_4 1'
5290 _res_comment=""
5292 else
5293 def_gif='#undef CONFIG_GIF'
5294 def_gif_4='#undef CONFIG_GIF_4'
5295 _novomodules="gif89a $_novomodules"
5296 _nocodecmodules="gif $_nocodecmodules"
5298 echores "$_gif"
5301 case "$_gif" in yes*)
5302 echocheck "broken giflib workaround"
5303 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
5305 cat > $TMPC << EOF
5306 #include <gif_lib.h>
5307 int main(void) {
5308 GifFileType gif;
5309 printf("UserData is at address %p\n", gif.UserData);
5310 return 0;
5313 if cc_check "$_ld_gif" ; then
5314 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
5315 echores "disabled"
5316 else
5317 echores "enabled"
5320 esac
5323 echocheck "VESA support"
5324 if test "$_vesa" = auto ; then
5325 cat > $TMPC << EOF
5326 #include <vbe.h>
5327 int main(void) { vbeVersion(); return 0; }
5329 _vesa=no
5330 cc_check -lvbe -llrmi && _vesa=yes
5332 if test "$_vesa" = yes ; then
5333 def_vesa='#define CONFIG_VESA 1'
5334 libs_mplayer="$libs_mplayer -lvbe -llrmi"
5335 _vomodules="vesa $_vomodules"
5336 else
5337 def_vesa='#undef CONFIG_VESA'
5338 _novomodules="vesa $_novomodules"
5340 echores "$_vesa"
5342 #################
5343 # VIDEO + AUDIO #
5344 #################
5347 echocheck "SDL"
5348 _inc_tmp=""
5349 _ld_tmp=""
5350 def_sdl_sdl_h="#undef CONFIG_SDL_SDL_H"
5351 if test -z "$_sdlconfig" ; then
5352 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
5353 _sdlconfig="sdl-config"
5354 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
5355 _sdlconfig="sdl11-config"
5356 else
5357 _sdlconfig=false
5360 if test "$_sdl" = auto || test "$_sdl" = yes ; then
5361 cat > $TMPC << EOF
5362 #ifdef CONFIG_SDL_SDL_H
5363 #include <SDL/SDL.h>
5364 #else
5365 #include <SDL.h>
5366 #endif
5367 #ifndef __APPLE__
5368 // we allow SDL hacking our main() only on OSX
5369 #undef main
5370 #endif
5371 int main(int argc, char *argv[]) {
5372 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
5373 return 0;
5376 _sdl=no
5377 for _ld_tmp in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" "-lSDL -lwinmm -lgdi32 -ldxguid" ; do
5378 if cc_check -DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then
5379 _sdl=yes
5380 def_sdl_sdl_h="#define CONFIG_SDL_SDL_H 1"
5381 break
5383 done
5384 if test "$_sdl" = no && "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
5385 _res_comment="using $_sdlconfig"
5386 if cygwin ; then
5387 _inc_tmp="$($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
5388 _ld_tmp="$($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
5389 elif mingw32 ; then
5390 _inc_tmp=$($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)
5391 _ld_tmp=$($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)
5392 else
5393 _inc_tmp="$($_sdlconfig --cflags)"
5394 _ld_tmp="$($_sdlconfig --libs)"
5396 if cc_check $_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then
5397 _sdlversion=$($_sdlconfig --version | sed 's/[^0-9]//g')
5398 if test "$_sdlversion" -gt 116 ; then
5399 if test "$_sdlversion" -lt 121 ; then
5400 def_sdlbuggy='#define BUGGY_SDL'
5401 else
5402 def_sdlbuggy='#undef BUGGY_SDL'
5404 _sdl=yes
5409 if test "$_sdl" = yes ; then
5410 def_sdl='#define CONFIG_SDL 1'
5411 extra_cflags="$extra_cflags $_inc_tmp"
5412 libs_mplayer="$libs_mplayer $_ld_tmp"
5413 _vomodules="sdl $_vomodules"
5414 _aomodules="sdl $_aomodules"
5415 else
5416 def_sdl='#undef CONFIG_SDL'
5417 _novomodules="sdl $_novomodules"
5418 _noaomodules="sdl $_noaomodules"
5420 echores "$_sdl"
5423 if os2 ; then
5424 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
5425 if test "$_kva" = auto; then
5426 cat > $TMPC << EOF
5427 #include <os2.h>
5428 #include <kva.h>
5429 int main( void ) { return 0; }
5431 _kva=no;
5432 cc_check -lkva && _kva=yes
5434 if test "$_kva" = yes ; then
5435 def_kva='#define CONFIG_KVA 1'
5436 libs_mplayer="$libs_mplayer -lkva"
5437 _vomodules="kva $_vomodules"
5438 else
5439 def_kva='#undef CONFIG_KVA'
5440 _novomodules="kva $_novomodules"
5442 echores "$_kva"
5443 fi #if os2
5446 if win32; then
5448 echocheck "Windows waveout"
5449 if test "$_win32waveout" = auto ; then
5450 cat > $TMPC << EOF
5451 #include <windows.h>
5452 #include <mmsystem.h>
5453 int main(void) { return 0; }
5455 _win32waveout=no
5456 cc_check -lwinmm && _win32waveout=yes
5458 if test "$_win32waveout" = yes ; then
5459 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
5460 libs_mplayer="$libs_mplayer -lwinmm"
5461 _aomodules="win32 $_aomodules"
5462 else
5463 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
5464 _noaomodules="win32 $_noaomodules"
5466 echores "$_win32waveout"
5468 echocheck "Direct3D"
5469 if test "$_direct3d" = auto ; then
5470 cat > $TMPC << EOF
5471 #include <windows.h>
5472 #include <d3d9.h>
5473 int main(void) { return 0; }
5475 _direct3d=no
5476 cc_check && _direct3d=yes
5478 if test "$_direct3d" = yes ; then
5479 def_direct3d='#define CONFIG_DIRECT3D 1'
5480 _vomodules="direct3d $_vomodules"
5481 else
5482 def_direct3d='#undef CONFIG_DIRECT3D'
5483 _novomodules="direct3d $_novomodules"
5485 echores "$_direct3d"
5487 echocheck "Directx"
5488 if test "$_directx" = auto ; then
5489 cat > $TMPC << EOF
5490 #include <windows.h>
5491 #include <ddraw.h>
5492 #include <dsound.h>
5493 int main(void) { return 0; }
5495 _directx=no
5496 cc_check -lgdi32 && _directx=yes
5498 if test "$_directx" = yes ; then
5499 def_directx='#define CONFIG_DIRECTX 1'
5500 libs_mplayer="$libs_mplayer -lgdi32"
5501 _vomodules="directx $_vomodules"
5502 _aomodules="dsound $_aomodules"
5503 else
5504 def_directx='#undef CONFIG_DIRECTX'
5505 _novomodules="directx $_novomodules"
5506 _noaomodules="dsound $_noaomodules"
5508 echores "$_directx"
5510 fi #if win32; then
5513 echocheck "DXR2"
5514 if test "$_dxr2" = auto; then
5515 _dxr2=no
5516 cat > $TMPC << EOF
5517 #include <dxr2ioctl.h>
5518 int main(void) { return 0; }
5520 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
5521 cc_check $_inc_tmp && _dxr2=yes && \
5522 extra_cflags="$extra_cflags $_inc_tmp" && break
5523 done
5525 if test "$_dxr2" = yes; then
5526 def_dxr2='#define CONFIG_DXR2 1'
5527 _aomodules="dxr2 $_aomodules"
5528 _vomodules="dxr2 $_vomodules"
5529 else
5530 def_dxr2='#undef CONFIG_DXR2'
5531 _noaomodules="dxr2 $_noaomodules"
5532 _novomodules="dxr2 $_novomodules"
5534 echores "$_dxr2"
5536 echocheck "DXR3/H+"
5537 if test "$_dxr3" = auto ; then
5538 cat > $TMPC << EOF
5539 #include <linux/em8300.h>
5540 int main(void) { return 0; }
5542 _dxr3=no
5543 cc_check && _dxr3=yes
5545 if test "$_dxr3" = yes ; then
5546 def_dxr3='#define CONFIG_DXR3 1'
5547 _vomodules="dxr3 $_vomodules"
5548 else
5549 def_dxr3='#undef CONFIG_DXR3'
5550 _novomodules="dxr3 $_novomodules"
5552 echores "$_dxr3"
5555 echocheck "IVTV TV-Out (pre linux-2.6.24)"
5556 if test "$_ivtv" = auto ; then
5557 cat > $TMPC << EOF
5558 #include <stdlib.h>
5559 #include <inttypes.h>
5560 #include <linux/types.h>
5561 #include <linux/videodev2.h>
5562 #include <linux/ivtv.h>
5563 #include <sys/ioctl.h>
5564 int main(void) {
5565 struct ivtv_cfg_stop_decode sd;
5566 struct ivtv_cfg_start_decode sd1;
5567 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
5568 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
5569 return 0; }
5571 _ivtv=no
5572 cc_check && _ivtv=yes
5574 if test "$_ivtv" = yes ; then
5575 def_ivtv='#define CONFIG_IVTV 1'
5576 _vomodules="ivtv $_vomodules"
5577 _aomodules="ivtv $_aomodules"
5578 else
5579 def_ivtv='#undef CONFIG_IVTV'
5580 _novomodules="ivtv $_novomodules"
5581 _noaomodules="ivtv $_noaomodules"
5583 echores "$_ivtv"
5586 echocheck "V4L2 MPEG Decoder"
5587 if test "$_v4l2" = auto ; then
5588 cat > $TMPC << EOF
5589 #include <stdlib.h>
5590 #include <inttypes.h>
5591 #include <linux/types.h>
5592 #include <linux/videodev2.h>
5593 #include <linux/version.h>
5594 int main(void) {
5595 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
5596 #error kernel headers too old, need 2.6.22
5597 #endif
5598 struct v4l2_ext_controls ctrls;
5599 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
5600 return 0;
5603 _v4l2=no
5604 cc_check && _v4l2=yes
5606 if test "$_v4l2" = yes ; then
5607 def_v4l2='#define CONFIG_V4L2_DECODER 1'
5608 _vomodules="v4l2 $_vomodules"
5609 _aomodules="v4l2 $_aomodules"
5610 else
5611 def_v4l2='#undef CONFIG_V4L2_DECODER'
5612 _novomodules="v4l2 $_novomodules"
5613 _noaomodules="v4l2 $_noaomodules"
5615 echores "$_v4l2"
5619 #########
5620 # AUDIO #
5621 #########
5624 echocheck "OSS Audio"
5625 if test "$_ossaudio" = auto ; then
5626 cat > $TMPC << EOF
5627 #include <sys/ioctl.h>
5628 #include <$_soundcard_header>
5629 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5631 _ossaudio=no
5632 cc_check && _ossaudio=yes
5634 if test "$_ossaudio" = yes ; then
5635 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
5636 _aomodules="oss $_aomodules"
5637 if test "$_linux_devfs" = yes; then
5638 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
5639 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
5640 else
5641 cat > $TMPC << EOF
5642 #include <sys/ioctl.h>
5643 #include <$_soundcard_header>
5644 #ifdef OPEN_SOUND_SYSTEM
5645 int main(void) { return 0; }
5646 #else
5647 #error Not the real thing
5648 #endif
5650 _real_ossaudio=no
5651 cc_check && _real_ossaudio=yes
5652 if test "$_real_ossaudio" = yes; then
5653 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5654 elif netbsd || openbsd ; then
5655 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5656 extra_ldflags="$extra_ldflags -lossaudio"
5657 else
5658 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5660 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5662 else
5663 def_ossaudio='#undef CONFIG_OSS_AUDIO'
5664 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5665 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5666 _noaomodules="oss $_noaomodules"
5668 echores "$_ossaudio"
5671 echocheck "aRts"
5672 if test "$_arts" = auto ; then
5673 _arts=no
5674 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5676 cat > $TMPC << EOF
5677 #include <artsc.h>
5678 int main(void) { return 0; }
5680 cc_check $(artsc-config --libs) $(artsc-config --cflags) && _arts=yes
5685 if test "$_arts" = yes ; then
5686 def_arts='#define CONFIG_ARTS 1'
5687 _aomodules="arts $_aomodules"
5688 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
5689 extra_cflags="$extra_cflags $(artsc-config --cflags)"
5690 else
5691 _noaomodules="arts $_noaomodules"
5693 echores "$_arts"
5696 echocheck "EsounD"
5697 if test "$_esd" = auto ; then
5698 _esd=no
5699 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5701 cat > $TMPC << EOF
5702 #include <esd.h>
5703 int main(void) { int fd = esd_open_sound("test"); return fd; }
5705 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd=yes
5709 echores "$_esd"
5711 if test "$_esd" = yes ; then
5712 def_esd='#define CONFIG_ESD 1'
5713 _aomodules="esd $_aomodules"
5714 libs_mplayer="$libs_mplayer $(esd-config --libs)"
5715 extra_cflags="$extra_cflags $(esd-config --cflags)"
5717 echocheck "esd_get_latency()"
5718 cat > $TMPC << EOF
5719 #include <esd.h>
5720 int main(void) { return esd_get_latency(0); }
5722 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
5723 echores "$_esd_latency"
5724 else
5725 def_esd='#undef CONFIG_ESD'
5726 def_esd_latency='#undef CONFIG_ESD_LATENCY'
5727 _noaomodules="esd $_noaomodules"
5731 echocheck "NAS"
5732 if test "$_nas" = auto ; then
5733 cat > $TMPC << EOF
5734 #include <audio/audiolib.h>
5735 int main(void) { return 0; }
5737 _nas=no
5738 cc_check $_ld_lm -laudio -lXt && _nas=yes
5740 if test "$_nas" = yes ; then
5741 def_nas='#define CONFIG_NAS 1'
5742 libs_mplayer="$libs_mplayer -laudio -lXt"
5743 _aomodules="nas $_aomodules"
5744 else
5745 _noaomodules="nas $_noaomodules"
5746 def_nas='#undef CONFIG_NAS'
5748 echores "$_nas"
5751 echocheck "pulse"
5752 if test "$_pulse" = auto ; then
5753 _pulse=no
5754 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5756 cat > $TMPC << EOF
5757 #include <pulse/pulseaudio.h>
5758 int main(void) { return 0; }
5760 cc_check $($_pkg_config --libs --cflags libpulse) && _pulse=yes
5764 echores "$_pulse"
5766 if test "$_pulse" = yes ; then
5767 def_pulse='#define CONFIG_PULSE 1'
5768 _aomodules="pulse $_aomodules"
5769 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
5770 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
5771 else
5772 def_pulse='#undef CONFIG_PULSE'
5773 _noaomodules="pulse $_noaomodules"
5777 echocheck "JACK"
5778 if test "$_jack" = auto ; then
5779 _jack=yes
5781 cat > $TMPC << EOF
5782 #include <jack/jack.h>
5783 int main(void) { jack_client_open("test", JackUseExactName, NULL); return 0; }
5785 if cc_check -ljack ; then
5786 libs_mplayer="$libs_mplayer -ljack"
5787 elif cc_check $($_pkg_config --libs --cflags --silence-errors jack) ; then
5788 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
5789 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
5790 else
5791 _jack=no
5795 if test "$_jack" = yes ; then
5796 def_jack='#define CONFIG_JACK 1'
5797 _aomodules="jack $_aomodules"
5798 else
5799 _noaomodules="jack $_noaomodules"
5801 echores "$_jack"
5803 echocheck "OpenAL"
5804 if test "$_openal" = auto ; then
5805 _openal=no
5806 cat > $TMPC << EOF
5807 #ifdef OPENAL_AL_H
5808 #include <OpenAL/al.h>
5809 #else
5810 #include <AL/al.h>
5811 #endif
5812 int main(void) {
5813 alSourceQueueBuffers(0, 0, 0);
5814 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5815 return 0;
5818 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5819 cc_check $I && _openal=yes && break
5820 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5821 done
5822 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
5824 if test "$_openal" = yes ; then
5825 def_openal='#define CONFIG_OPENAL 1'
5826 _aomodules="openal $_aomodules"
5827 else
5828 _noaomodules="openal $_noaomodules"
5830 echores "$_openal"
5832 echocheck "ALSA audio"
5833 if test "$_alloca" != yes ; then
5834 _alsa=no
5835 _res_comment="alloca missing"
5837 if test "$_alsa" != no ; then
5838 _alsa=no
5839 cat > $TMPC << EOF
5840 #include <sys/time.h>
5841 #include <sys/asoundlib.h>
5842 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5843 #error "alsa version != 0.5.x"
5844 #endif
5845 int main(void) { return 0; }
5847 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5849 cat > $TMPC << EOF
5850 #include <sys/time.h>
5851 #include <sys/asoundlib.h>
5852 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5853 #error "alsa version != 0.9.x"
5854 #endif
5855 int main(void) { return 0; }
5857 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5858 cat > $TMPC << EOF
5859 #include <sys/time.h>
5860 #include <alsa/asoundlib.h>
5861 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5862 #error "alsa version != 0.9.x"
5863 #endif
5864 int main(void) { return 0; }
5866 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5868 cat > $TMPC << EOF
5869 #include <sys/time.h>
5870 #include <sys/asoundlib.h>
5871 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5872 #error "alsa version != 1.0.x"
5873 #endif
5874 int main(void) { return 0; }
5876 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5877 cat > $TMPC << EOF
5878 #include <sys/time.h>
5879 #include <alsa/asoundlib.h>
5880 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5881 #error "alsa version != 1.0.x"
5882 #endif
5883 int main(void) { return 0; }
5885 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5887 def_alsa='#undef CONFIG_ALSA'
5888 def_alsa5='#undef CONFIG_ALSA5'
5889 def_alsa9='#undef CONFIG_ALSA9'
5890 def_alsa1x='#undef CONFIG_ALSA1X'
5891 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5892 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5893 if test "$_alsaver" ; then
5894 _alsa=yes
5895 if test "$_alsaver" = '0.5.x' ; then
5896 _alsa5=yes
5897 _aomodules="alsa5 $_aomodules"
5898 def_alsa5='#define CONFIG_ALSA5 1'
5899 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5900 _res_comment="using alsa 0.5.x and sys/asoundlib.h"
5901 elif test "$_alsaver" = '0.9.x-sys' ; then
5902 _alsa9=yes
5903 _aomodules="alsa $_aomodules"
5904 def_alsa='#define CONFIG_ALSA 1'
5905 def_alsa9='#define CONFIG_ALSA9 1'
5906 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5907 _res_comment="using alsa 0.9.x and sys/asoundlib.h"
5908 elif test "$_alsaver" = '0.9.x-alsa' ; then
5909 _alsa9=yes
5910 _aomodules="alsa $_aomodules"
5911 def_alsa='#define CONFIG_ALSA 1'
5912 def_alsa9='#define CONFIG_ALSA9 1'
5913 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5914 _res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5915 elif test "$_alsaver" = '1.0.x-sys' ; then
5916 _alsa1x=yes
5917 _aomodules="alsa $_aomodules"
5918 def_alsa='#define CONFIG_ALSA 1'
5919 def_alsa1x="#define CONFIG_ALSA1X 1"
5920 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5921 _res_comment="using alsa 1.0.x and sys/asoundlib.h"
5922 elif test "$_alsaver" = '1.0.x-alsa' ; then
5923 _alsa1x=yes
5924 _aomodules="alsa $_aomodules"
5925 def_alsa='#define CONFIG_ALSA 1'
5926 def_alsa1x="#define CONFIG_ALSA1X 1"
5927 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5928 _res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5929 else
5930 _alsa=no
5931 _res_comment="unknown version"
5933 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5934 else
5935 _noaomodules="alsa $_noaomodules"
5937 echores "$_alsa"
5940 echocheck "Sun audio"
5941 if test "$_sunaudio" = auto ; then
5942 cat > $TMPC << EOF
5943 #include <sys/types.h>
5944 #include <sys/audioio.h>
5945 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5947 _sunaudio=no
5948 cc_check && _sunaudio=yes
5950 if test "$_sunaudio" = yes ; then
5951 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5952 _aomodules="sun $_aomodules"
5953 else
5954 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5955 _noaomodules="sun $_noaomodules"
5957 echores "$_sunaudio"
5960 def_mlib='#define CONFIG_MLIB 0'
5961 if sunos; then
5962 echocheck "Sun mediaLib"
5963 if test "$_mlib" = auto ; then
5964 _mlib=no
5965 cat > $TMPC << EOF
5966 #include <mlib.h>
5967 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
5969 cc_check -lmlib && _mlib=yes && def_mlib='#define CONFIG_MLIB 1'
5971 echores "$_mlib"
5972 fi #if sunos
5975 if darwin; then
5976 echocheck "CoreAudio"
5977 if test "$_coreaudio" = auto ; then
5978 cat > $TMPC <<EOF
5979 #include <CoreAudio/CoreAudio.h>
5980 #include <AudioToolbox/AudioToolbox.h>
5981 #include <AudioUnit/AudioUnit.h>
5982 int main(void) { return 0; }
5984 _coreaudio=no
5985 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
5987 if test "$_coreaudio" = yes ; then
5988 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5989 def_coreaudio='#define CONFIG_COREAUDIO 1'
5990 _aomodules="coreaudio $_aomodules"
5991 else
5992 def_coreaudio='#undef CONFIG_COREAUDIO'
5993 _noaomodules="coreaudio $_noaomodules"
5995 echores $_coreaudio
5996 fi #if darwin
5999 if irix; then
6000 echocheck "SGI audio"
6001 if test "$_sgiaudio" = auto ; then
6002 # check for SGI audio
6003 cat > $TMPC << EOF
6004 #include <dmedia/audio.h>
6005 int main(void) { return 0; }
6007 _sgiaudio=no
6008 cc_check && _sgiaudio=yes
6010 if test "$_sgiaudio" = "yes" ; then
6011 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
6012 libs_mplayer="$libs_mplayer -laudio"
6013 _aomodules="sgi $_aomodules"
6014 else
6015 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
6016 _noaomodules="sgi $_noaomodules"
6018 echores "$_sgiaudio"
6019 fi #if irix
6022 if os2 ; then
6023 echocheck "DART"
6024 if test "$_dart" = auto; then
6025 cat > $TMPC << EOF
6026 #include <os2.h>
6027 #include <dart.h>
6028 int main( void ) { return 0; }
6030 _dart=no;
6031 cc_check -ldart && _dart=yes
6033 if test "$_dart" = yes ; then
6034 def_dart='#define CONFIG_DART 1'
6035 libs_mplayer="$libs_mplayer -ldart"
6036 _aomodules="dart $_aomodules"
6037 else
6038 def_dart='#undef CONFIG_DART'
6039 _noaomodules="dart $_noaomodules"
6041 echores "$_dart"
6042 fi #if os2
6045 # set default CD/DVD devices
6046 if win32 || os2 ; then
6047 default_cdrom_device="D:"
6048 elif darwin ; then
6049 default_cdrom_device="/dev/disk1"
6050 elif dragonfly ; then
6051 default_cdrom_device="/dev/cd0"
6052 elif freebsd ; then
6053 default_cdrom_device="/dev/acd0"
6054 elif openbsd ; then
6055 default_cdrom_device="/dev/rcd0a"
6056 elif sunos ; then
6057 default_cdrom_device="/vol/dev/aliases/cdrom0"
6058 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
6059 # file system and the volfs service.
6060 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
6061 elif amigaos ; then
6062 default_cdrom_device="a1ide.device:2"
6063 else
6064 default_cdrom_device="/dev/cdrom"
6067 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
6068 default_dvd_device=$default_cdrom_device
6069 elif darwin ; then
6070 default_dvd_device="/dev/rdiskN"
6071 else
6072 default_dvd_device="/dev/dvd"
6076 echocheck "VCD support"
6077 if test "$_vcd" = auto; then
6078 _vcd=no
6079 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos; then
6080 _vcd=yes
6081 elif mingw32; then
6082 cat > $TMPC << EOF
6083 #include <ddk/ntddcdrm.h>
6084 int main(void) { return 0; }
6086 cc_check && _vcd=yes
6089 if test "$_vcd" = yes; then
6090 _inputmodules="vcd $_inputmodules"
6091 def_vcd='#define CONFIG_VCD 1'
6092 else
6093 def_vcd='#undef CONFIG_VCD'
6094 _noinputmodules="vcd $_noinputmodules"
6095 _res_comment="not supported on this OS"
6097 echores "$_vcd"
6101 echocheck "dvdread"
6102 if test "$_dvdread_internal" = auto ; then
6103 _dvdread_internal=no
6104 _dvdread=no
6105 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
6106 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
6107 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
6108 || darwin || win32 || os2; then
6109 _dvdread_internal=yes
6110 _dvdread=yes
6111 extra_cflags="-Ilibdvdread4 $extra_cflags"
6113 elif test "$_dvdread" = auto ; then
6114 _dvdread=no
6115 if test "$_dl" = yes; then
6116 cat > $TMPC << EOF
6117 #include <inttypes.h>
6118 #include <dvdread/dvd_reader.h>
6119 #include <dvdread/ifo_types.h>
6120 #include <dvdread/ifo_read.h>
6121 #include <dvdread/nav_read.h>
6122 int main(void) { return 0; }
6124 _dvdreadcflags=$($_dvdreadconfig --cflags)
6125 _dvdreadlibs=$($_dvdreadconfig --libs)
6126 if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
6127 $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
6128 _dvdread=yes
6129 extra_cflags="$extra_cflags $_dvdreadcflags"
6130 extra_ldflags="$extra_ldflags $_dvdreadlibs"
6131 _res_comment="external"
6136 if test "$_dvdread_internal" = yes; then
6137 def_dvdread='#define CONFIG_DVDREAD 1'
6138 _inputmodules="dvdread(internal) $_inputmodules"
6139 _largefiles=yes
6140 _res_comment="internal"
6141 elif test "$_dvdread" = yes; then
6142 def_dvdread='#define CONFIG_DVDREAD 1'
6143 _largefiles=yes
6144 extra_ldflags="$extra_ldflags -ldvdread"
6145 _inputmodules="dvdread(external) $_inputmodules"
6146 _res_comment="external"
6147 else
6148 def_dvdread='#undef CONFIG_DVDREAD'
6149 _noinputmodules="dvdread $_noinputmodules"
6151 echores "$_dvdread"
6154 echocheck "internal libdvdcss"
6155 if test "$_libdvdcss_internal" = auto ; then
6156 _libdvdcss_internal=no
6157 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
6158 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
6160 if test "$_libdvdcss_internal" = yes ; then
6161 if linux || netbsd || openbsd || bsdos ; then
6162 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
6163 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
6164 elif freebsd || dragonfly ; then
6165 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
6166 elif darwin ; then
6167 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
6168 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
6169 elif cygwin ; then
6170 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
6171 elif beos ; then
6172 cflags_libdvdcss="-DSYS_BEOS"
6173 elif os2 ; then
6174 cflags_libdvdcss="-DSYS_OS2"
6176 cflags_libdvdcss_dvdread="-Ilibdvdcss"
6177 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
6178 _inputmodules="libdvdcss(internal) $_inputmodules"
6179 _largefiles=yes
6180 else
6181 _noinputmodules="libdvdcss(internal) $_noinputmodules"
6183 echores "$_libdvdcss_internal"
6186 echocheck "cdparanoia"
6187 if test "$_cdparanoia" = auto ; then
6188 cat > $TMPC <<EOF
6189 #include <cdda_interface.h>
6190 #include <cdda_paranoia.h>
6191 // This need a better test. How ?
6192 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
6194 _cdparanoia=no
6195 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
6196 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
6197 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
6198 done
6200 if test "$_cdparanoia" = yes ; then
6201 _cdda='yes'
6202 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
6203 openbsd && extra_ldflags="$extra_ldflags -lutil"
6205 echores "$_cdparanoia"
6208 echocheck "libcdio"
6209 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
6210 cat > $TMPC << EOF
6211 #include <stdio.h>
6212 #include <cdio/version.h>
6213 #include <cdio/cdda.h>
6214 #include <cdio/paranoia.h>
6215 int main(void) {
6216 void *test = cdda_verbose_set;
6217 printf("%s\n", CDIO_VERSION);
6218 return test == (void *)1;
6221 _libcdio=no
6222 for _ld_tmp in "" "-lwinmm" ; do
6223 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
6224 cc_check $_ld_tmp $_ld_lm \
6225 && _libcdio=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6226 done
6227 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
6228 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
6229 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
6230 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
6231 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6234 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
6235 _cdda='yes'
6236 def_libcdio='#define CONFIG_LIBCDIO 1'
6237 def_havelibcdio='yes'
6238 else
6239 if test "$_cdparanoia" = yes ; then
6240 _res_comment="using cdparanoia"
6242 def_libcdio='#undef CONFIG_LIBCDIO'
6243 def_havelibcdio='no'
6245 echores "$_libcdio"
6247 if test "$_cdda" = yes ; then
6248 test $_cddb = auto && test $_network = yes && _cddb=yes
6249 def_cdparanoia='#define CONFIG_CDDA 1'
6250 _inputmodules="cdda $_inputmodules"
6251 else
6252 def_cdparanoia='#undef CONFIG_CDDA'
6253 _noinputmodules="cdda $_noinputmodules"
6256 if test "$_cddb" = yes ; then
6257 def_cddb='#define CONFIG_CDDB 1'
6258 _inputmodules="cddb $_inputmodules"
6259 else
6260 _cddb=no
6261 def_cddb='#undef CONFIG_CDDB'
6262 _noinputmodules="cddb $_noinputmodules"
6265 echocheck "bitmap font support"
6266 if test "$_bitmap_font" = yes ; then
6267 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
6268 else
6269 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
6271 echores "$_bitmap_font"
6274 echocheck "freetype >= 2.0.9"
6276 # freetype depends on iconv
6277 if test "$_iconv" = no ; then
6278 _freetype=no
6279 _res_comment="iconv support needed"
6282 if test "$_freetype" = auto ; then
6283 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
6284 cat > $TMPC << EOF
6285 #include <stdio.h>
6286 #include <ft2build.h>
6287 #include FT_FREETYPE_H
6288 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
6289 #error "Need FreeType 2.0.9 or newer"
6290 #endif
6291 int main(void) {
6292 FT_Library library;
6293 FT_Int major=-1,minor=-1,patch=-1;
6294 int err=FT_Init_FreeType(&library);
6295 return 0;
6298 _freetype=no
6299 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
6300 else
6301 _freetype=no
6304 if test "$_freetype" = yes ; then
6305 def_freetype='#define CONFIG_FREETYPE 1'
6306 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
6307 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
6308 else
6309 def_freetype='#undef CONFIG_FREETYPE'
6311 echores "$_freetype"
6313 if test "$_freetype" = no ; then
6314 _fontconfig=no
6315 _res_comment="FreeType support needed"
6317 echocheck "fontconfig"
6318 if test "$_fontconfig" = auto ; then
6319 cat > $TMPC << EOF
6320 #include <stdio.h>
6321 #include <stdlib.h>
6322 #include <fontconfig/fontconfig.h>
6323 int main(void) {
6324 int err = FcInit();
6325 if (err == FcFalse) {
6326 printf("Couldn't initialize fontconfig lib\n");
6327 exit(err);
6329 return 0;
6332 _fontconfig=no
6333 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" "-lexpat -lfreetype -lz -liconv" ; do
6334 _ld_tmp="-lfontconfig $_ld_tmp"
6335 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6336 done
6337 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
6338 _inc_tmp=$($_pkg_config --cflags fontconfig)
6339 _ld_tmp=$($_pkg_config --libs fontconfig)
6340 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
6341 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6344 if test "$_fontconfig" = yes ; then
6345 def_fontconfig='#define CONFIG_FONTCONFIG 1'
6346 else
6347 def_fontconfig='#undef CONFIG_FONTCONFIG'
6349 echores "$_fontconfig"
6352 echocheck "SSA/ASS support"
6353 # libass depends on FreeType
6354 if test "$_freetype" = no ; then
6355 _ass=no
6356 ass_internal=no
6357 _res_comment="FreeType support needed"
6360 if test "$_ass" = auto ; then
6361 cat > $TMPC << EOF
6362 #include <ft2build.h>
6363 #include FT_FREETYPE_H
6364 #if ((FREETYPE_MAJOR < 2) || (FREETYPE_MINOR < 2) || ((FREETYPE_MINOR == 2) && (FREETYPE_PATCH < 1)))
6365 #error "Need FreeType 2.2.1 or newer"
6366 #endif
6367 int main(void) { return 0; }
6369 _ass=no
6370 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _ass=yes
6371 if test "$_ass" = no ; then
6372 ass_internal=no
6373 _res_comment="FreeType >= 2.2.1 needed"
6374 elif test "$ass_internal" = no ; then
6375 _res_comment="external"
6376 extra_ldflags="$extra_ldflags -lass"
6379 if test "$_ass" = yes ; then
6380 def_ass='#define CONFIG_ASS 1'
6381 else
6382 def_ass='#undef CONFIG_ASS'
6384 if test "$ass_internal" = yes ; then
6385 def_ass_internal='#define CONFIG_ASS_INTERNAL 1'
6386 else
6387 def_ass_internal='#undef CONFIG_ASS_INTERNAL'
6389 echores "$_ass"
6392 echocheck "fribidi with charsets"
6393 _inc_tmp=""
6394 _ld_tmp=""
6395 if test "$_fribidi" = auto ; then
6396 cat > $TMPC << EOF
6397 #include <stdio.h>
6398 #include <stdlib.h>
6399 /* workaround for fribidi 0.10.4 and below */
6400 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
6401 #include <fribidi/fribidi.h>
6402 int main(void) {
6403 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
6404 printf("Fribidi headers are not consistents with the library!\n");
6405 exit(1);
6407 return 0;
6410 _fribidi=no
6411 _inc_tmp=""
6412 _ld_tmp="-lfribidi"
6413 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6414 if $_fribidiconfig --version > /dev/null 2>&1 &&
6415 test "$_fribidi" = no ; then
6416 _inc_tmp="$($_fribidiconfig --cflags)"
6417 _ld_tmp="$($_fribidiconfig --libs)"
6418 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6421 if test "$_fribidi" = yes ; then
6422 def_fribidi='#define CONFIG_FRIBIDI 1'
6423 extra_cflags="$extra_cflags $_inc_tmp"
6424 extra_ldflags="$extra_ldflags $_ld_tmp"
6425 else
6426 def_fribidi='#undef CONFIG_FRIBIDI'
6428 echores "$_fribidi"
6431 echocheck "ENCA"
6432 if test "$_enca" = auto ; then
6433 cat > $TMPC << EOF
6434 #include <sys/types.h>
6435 #include <enca.h>
6436 int main(void) {
6437 const char **langs;
6438 size_t langcnt;
6439 langs = enca_get_languages(&langcnt);
6440 return 0;
6443 _enca=no
6444 cc_check -lenca $_ld_lm && _enca=yes
6446 if test "$_enca" = yes ; then
6447 def_enca='#define CONFIG_ENCA 1'
6448 extra_ldflags="$extra_ldflags -lenca"
6449 else
6450 def_enca='#undef CONFIG_ENCA'
6452 echores "$_enca"
6455 echocheck "zlib"
6456 cat > $TMPC << EOF
6457 #include <zlib.h>
6458 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
6460 _zlib=no
6461 cc_check -lz && _zlib=yes
6462 if test "$_zlib" = yes ; then
6463 def_zlib='#define CONFIG_ZLIB 1'
6464 extra_ldflags="$extra_ldflags -lz"
6465 else
6466 def_zlib='#define CONFIG_ZLIB 0'
6467 _libavdecoders=$(echo $_libavdecoders | sed -e s/FLASHSV_DECODER// -e s/PNG_DECODER// -e s/ZMBV_DECODER// -e s/ZLIB_DECODER// -e s/DXA_DECODER// -e s/TSCC_DECODER//)
6468 _libavencoders=$(echo $_libavencoders | sed -e s/FLASHSV_ENCODER// -e s/PNG_ENCODER// -e s/ZMBV_ENCODER// -e s/ZLIB_ENCODER//)
6470 echores "$_zlib"
6473 echocheck "bzlib"
6474 bzlib=no
6475 def_bzlib='#define CONFIG_BZLIB 0'
6476 cat > $TMPC << EOF
6477 #include <bzlib.h>
6478 int main(void) { BZ2_bzlibVersion(); return 0; }
6480 cc_check -lbz2 && bzlib=yes
6481 if test "$bzlib" = yes ; then
6482 def_bzlib='#define CONFIG_BZLIB 1'
6483 extra_ldflags="$extra_ldflags -lbz2"
6485 echores "$bzlib"
6488 echocheck "RTC"
6489 if test "$_rtc" = auto ; then
6490 cat > $TMPC << EOF
6491 #include <sys/ioctl.h>
6492 #ifdef __linux__
6493 #include <linux/rtc.h>
6494 #else
6495 #include <rtc.h>
6496 #define RTC_PIE_ON RTCIO_PIE_ON
6497 #endif
6498 int main(void) { return RTC_PIE_ON; }
6500 _rtc=no
6501 cc_check && _rtc=yes
6502 ppc && _rtc=no
6504 if test "$_rtc" = yes ; then
6505 def_rtc='#define HAVE_RTC 1'
6506 else
6507 def_rtc='#undef HAVE_RTC'
6509 echores "$_rtc"
6512 echocheck "liblzo2 support"
6513 if test "$_liblzo" = auto ; then
6514 _liblzo=no
6515 cat > $TMPC << EOF
6516 #include <lzo/lzo1x.h>
6517 int main(void) { lzo_init();return 0; }
6519 cc_check -llzo2 && _liblzo=yes
6521 if test "$_liblzo" = yes ; then
6522 def_liblzo='#define CONFIG_LIBLZO 1'
6523 extra_ldflags="$extra_ldflags -llzo2"
6524 _codecmodules="liblzo $_codecmodules"
6525 else
6526 def_liblzo='#undef CONFIG_LIBLZO'
6527 _nocodecmodules="liblzo $_nocodecmodules"
6529 echores "$_liblzo"
6532 echocheck "mad support"
6533 if test "$_mad" = auto ; then
6534 _mad=no
6535 cat > $TMPC << EOF
6536 #include <mad.h>
6537 int main(void) { return 0; }
6539 cc_check -lmad && _mad=yes
6541 if test "$_mad" = yes ; then
6542 def_mad='#define CONFIG_LIBMAD 1'
6543 extra_ldflags="$extra_ldflags -lmad"
6544 _codecmodules="libmad $_codecmodules"
6545 else
6546 def_mad='#undef CONFIG_LIBMAD'
6547 _nocodecmodules="libmad $_nocodecmodules"
6549 echores "$_mad"
6551 echocheck "Twolame"
6552 if test "$_twolame" = auto ; then
6553 cat > $TMPC <<EOF
6554 #include <twolame.h>
6555 int main(void) { twolame_init(); return 0; }
6557 _twolame=no
6558 cc_check -ltwolame $_ld_lm && _twolame=yes
6560 if test "$_twolame" = yes ; then
6561 def_twolame='#define CONFIG_TWOLAME 1'
6562 libs_mencoder="$libs_mencoder -ltwolame"
6563 _codecmodules="twolame $_codecmodules"
6564 else
6565 def_twolame='#undef CONFIG_TWOLAME'
6566 _nocodecmodules="twolame $_nocodecmodules"
6568 echores "$_twolame"
6570 echocheck "Toolame"
6571 if test "$_toolame" = auto ; then
6572 _toolame=no
6573 if test "$_twolame" = yes ; then
6574 _res_comment="disabled by twolame"
6575 else
6576 cat > $TMPC <<EOF
6577 #include <toolame.h>
6578 int main(void) { toolame_init(); return 0; }
6580 cc_check -ltoolame $_ld_lm && _toolame=yes
6583 if test "$_toolame" = yes ; then
6584 def_toolame='#define CONFIG_TOOLAME 1'
6585 libs_mencoder="$libs_mencoder -ltoolame"
6586 _codecmodules="toolame $_codecmodules"
6587 else
6588 def_toolame='#undef CONFIG_TOOLAME'
6589 _nocodecmodules="toolame $_nocodecmodules"
6591 if test "$_toolamedir" ; then
6592 _res_comment="using $_toolamedir"
6594 echores "$_toolame"
6596 echocheck "OggVorbis support"
6597 if test "$_tremor_internal" = yes; then
6598 _libvorbis=no
6599 elif test "$_tremor" = auto; then
6600 _tremor=no
6601 cat > $TMPC << EOF
6602 #include <tremor/ivorbiscodec.h>
6603 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6605 cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6607 if test "$_libvorbis" = auto; then
6608 _libvorbis=no
6609 cat > $TMPC << EOF
6610 #include <vorbis/codec.h>
6611 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6613 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
6615 if test "$_tremor_internal" = yes ; then
6616 _vorbis=yes
6617 def_vorbis='#define CONFIG_OGGVORBIS 1'
6618 def_tremor='#define CONFIG_TREMOR 1'
6619 _codecmodules="tremor(internal) $_codecmodules"
6620 _res_comment="internal Tremor"
6621 if test "$_tremor_low" = yes ; then
6622 cflags_tremor_low="-D_LOW_ACCURACY_"
6623 _res_comment="internal low accuracy Tremor"
6625 elif test "$_tremor" = yes ; then
6626 _vorbis=yes
6627 def_vorbis='#define CONFIG_OGGVORBIS 1'
6628 def_tremor='#define CONFIG_TREMOR 1'
6629 _codecmodules="tremor(external) $_codecmodules"
6630 _res_comment="external Tremor"
6631 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6632 elif test "$_libvorbis" = yes ; then
6633 _vorbis=yes
6634 def_vorbis='#define CONFIG_OGGVORBIS 1'
6635 _codecmodules="libvorbis $_codecmodules"
6636 _res_comment="libvorbis"
6637 extra_ldflags="$extra_ldflags -lvorbis -logg"
6638 else
6639 _vorbis=no
6640 _nocodecmodules="libvorbis $_nocodecmodules"
6642 echores "$_vorbis"
6644 echocheck "libspeex (version >= 1.1 required)"
6645 if test "$_speex" = auto ; then
6646 _speex=no
6647 cat > $TMPC << EOF
6648 #include <speex/speex.h>
6649 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
6651 cc_check -lspeex $_ld_lm && _speex=yes
6653 if test "$_speex" = yes ; then
6654 def_speex='#define CONFIG_SPEEX 1'
6655 extra_ldflags="$extra_ldflags -lspeex"
6656 _codecmodules="speex $_codecmodules"
6657 else
6658 def_speex='#undef CONFIG_SPEEX'
6659 _nocodecmodules="speex $_nocodecmodules"
6661 echores "$_speex"
6663 echocheck "OggTheora support"
6664 if test "$_theora" = auto ; then
6665 _theora=no
6666 cat > $TMPC << EOF
6667 #include <theora/theora.h>
6668 #include <string.h>
6669 int main(void) {
6670 /* Theora is in flux, make sure that all interface routines and datatypes
6671 * exist and work the way we expect it, so we don't break MPlayer. */
6672 ogg_packet op;
6673 theora_comment tc;
6674 theora_info inf;
6675 theora_state st;
6676 yuv_buffer yuv;
6677 int r;
6678 double t;
6680 theora_info_init(&inf);
6681 theora_comment_init(&tc);
6683 return 0;
6685 /* we don't want to execute this kind of nonsense; just for making sure
6686 * that compilation works... */
6687 memset(&op, 0, sizeof(op));
6688 r = theora_decode_header(&inf, &tc, &op);
6689 r = theora_decode_init(&st, &inf);
6690 t = theora_granule_time(&st, op.granulepos);
6691 r = theora_decode_packetin(&st, &op);
6692 r = theora_decode_YUVout(&st, &yuv);
6693 theora_clear(&st);
6695 return 0;
6698 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6699 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6700 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6701 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6702 if test _theora = no; then
6703 _ld_theora="-ltheora -logg"
6704 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6706 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6707 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6708 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6709 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6710 extra_ldflags="$extra_ldflags $_ld_theora" &&
6711 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6712 if test _theora = no; then
6713 _ld_theora="-ltheora -logg"
6714 cc_check tremor/bitwise.c $_ld_theora &&
6715 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6719 if test "$_theora" = yes ; then
6720 def_theora='#define CONFIG_OGGTHEORA 1'
6721 _codecmodules="libtheora $_codecmodules"
6722 # when --enable-theora is forced, we'd better provide a probably sane
6723 # $_ld_theora than nothing
6724 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6725 else
6726 def_theora='#undef CONFIG_OGGTHEORA'
6727 _nocodecmodules="libtheora $_nocodecmodules"
6729 echores "$_theora"
6731 echocheck "internal mp3lib support"
6732 if test "$_mp3lib" = auto ; then
6733 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _mp3lib=no || _mp3lib=yes
6735 if test "$_mp3lib" = yes ; then
6736 def_mp3lib='#define CONFIG_MP3LIB 1'
6737 _codecmodules="mp3lib(internal) $_codecmodules"
6738 else
6739 def_mp3lib='#undef CONFIG_MP3LIB'
6740 _nocodecmodules="mp3lib(internal) $_nocodecmodules"
6742 echores "$_mp3lib"
6744 echocheck "liba52 support"
6745 if test "$_liba52_internal" = auto ; then
6746 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _liba52_internal=no || _liba52_internal=yes
6748 def_liba52='#undef CONFIG_LIBA52'
6749 def_liba52_internal="#undef CONFIG_LIBA52_INTERNAL"
6750 if test "$_liba52_internal" = yes ; then
6751 _liba52=yes
6752 def_liba52_internal="#define CONFIG_LIBA52_INTERNAL 1"
6753 _res_comment="internal"
6754 elif test "$_liba52_internal" = no && test "$_liba52" = auto ; then
6755 _liba52=no
6756 cat > $TMPC << EOF
6757 #include <inttypes.h>
6758 #include <a52dec/a52.h>
6759 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6761 cc_check -la52 && _liba52=yes && _res_comment="external" && extra_ldflags="$extra_ldflags -la52"
6763 if test "$_liba52" = yes ; then
6764 def_liba52='#define CONFIG_LIBA52 1'
6765 _codecmodules="liba52($_res_comment) $_codecmodules"
6766 else
6767 _nocodecmodules="liba52 $_nocodecmodules"
6769 echores "$_liba52"
6771 echocheck "internal libmpeg2 support"
6772 if test "$_libmpeg2" = auto ; then
6773 _libmpeg2=yes
6774 if alpha && test cc_vendor=gnu; then
6775 case $cc_version in
6776 2*|3.0*|3.1*) # cannot compile MVI instructions
6777 _libmpeg2=no
6778 _res_comment="broken gcc"
6780 esac
6783 if test "$_libmpeg2" = yes ; then
6784 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6785 _codecmodules="libmpeg2(internal) $_codecmodules"
6786 else
6787 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6788 _nocodecmodules="libmpeg2(internal) $_nocodecmodules"
6790 echores "$_libmpeg2"
6792 echocheck "libdca support"
6793 if test "$_libdca" = auto ; then
6794 _libdca=no
6795 cat > $TMPC << EOF
6796 #include <inttypes.h>
6797 #include <dts.h>
6798 int main(void) { dts_init(0); return 0; }
6800 for _ld_dca in -ldca -ldts ; do
6801 cc_check $_ld_dca $_ld_lm && extra_ldflags="$extra_ldflags $_ld_dca" \
6802 && _libdca=yes && break
6803 done
6805 if test "$_libdca" = yes ; then
6806 def_libdca='#define CONFIG_LIBDCA 1'
6807 _codecmodules="libdca $_codecmodules"
6808 else
6809 def_libdca='#undef CONFIG_LIBDCA'
6810 _nocodecmodules="libdca $_nocodecmodules"
6812 echores "$_libdca"
6814 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6815 if test "$_musepack" = auto ; then
6816 _musepack=no
6817 cat > $TMPC << EOF
6818 #include <stddef.h>
6819 #include <mpcdec/mpcdec.h>
6820 int main(void) {
6821 mpc_streaminfo info;
6822 mpc_decoder decoder;
6823 mpc_decoder_set_streaminfo(&decoder, &info);
6824 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6825 return 0;
6828 cc_check -lmpcdec $_ld_lm && _musepack=yes
6830 if test "$_musepack" = yes ; then
6831 def_musepack='#define CONFIG_MUSEPACK 1'
6832 extra_ldflags="$extra_ldflags -lmpcdec"
6833 _codecmodules="musepack $_codecmodules"
6834 else
6835 def_musepack='#undef CONFIG_MUSEPACK'
6836 _nocodecmodules="musepack $_nocodecmodules"
6838 echores "$_musepack"
6841 echocheck "FAAC support"
6842 if test "$_faac" = auto ; then
6843 cat > $TMPC <<EOF
6844 #include <inttypes.h>
6845 #include <faac.h>
6846 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6848 _faac=no
6849 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6850 cc_check -O4 $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6851 done
6853 if test "$_faac" = yes ; then
6854 def_faac="#define CONFIG_FAAC 1"
6855 test "$_faac_lavc" = auto && _faac_lavc=yes
6856 if test "$_faac_lavc" = yes ; then
6857 def_faac_lavc="#define CONFIG_LIBFAAC 1"
6858 libs_mplayer="$libs_mplayer $_ld_faac"
6859 _libavencoders="$_libavencoders LIBFAAC_ENCODER"
6861 _codecmodules="faac $_codecmodules"
6862 else
6863 _faac_lavc=no
6864 def_faac="#undef CONFIG_FAAC"
6865 def_faac_lavc="#define CONFIG_LIBFAAC 0"
6866 _nocodecmodules="faac $_nocodecmodules"
6868 _res_comment="in libavcodec: $_faac_lavc"
6869 echores "$_faac"
6872 echocheck "FAAD2 support"
6873 if test "$_faad_internal" = auto ; then
6874 if x86_32 && test cc_vendor=gnu; then
6875 case $cc_version in
6876 3.1*|3.2) # ICE/insn with these versions
6877 _faad_internal=no
6878 _res_comment="broken gcc"
6881 _faad=yes
6882 _faad_internal=yes
6884 esac
6885 else
6886 _faad=yes
6887 _faad_internal=yes
6890 if test "$_faad" = auto ; then
6891 cat > $TMPC << EOF
6892 #include <faad.h>
6893 #ifndef FAAD_MIN_STREAMSIZE
6894 #error Too old version
6895 #endif
6896 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6897 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6899 cc_check -lfaad $_ld_lm && _faad=yes
6902 def_faad='#undef CONFIG_FAAD'
6903 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6904 if test "$_faad_internal" = yes ; then
6905 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6906 _res_comment="internal floating-point"
6907 if test "$_faad_fixed" = yes ; then
6908 # The FIXED_POINT implementation of FAAD2 improves performance
6909 # on some platforms, especially for SBR files.
6910 cflags_faad_fixed="-DFIXED_POINT"
6911 _res_comment="internal fixed-point"
6913 elif test "$_faad" = yes ; then
6914 extra_ldflags="$extra_ldflags -lfaad"
6917 if test "$_faad" = yes ; then
6918 def_faad='#define CONFIG_FAAD 1'
6919 if test "$_faad_internal" = yes ; then
6920 _codecmodules="faad2(internal) $_codecmodules"
6921 else
6922 _codecmodules="faad2 $_codecmodules"
6924 else
6925 _faad=no
6926 _nocodecmodules="faad2 $_nocodecmodules"
6928 echores "$_faad"
6931 echocheck "LADSPA plugin support"
6932 if test "$_ladspa" = auto ; then
6933 cat > $TMPC <<EOF
6934 #include <stdio.h>
6935 #include <ladspa.h>
6936 int main(void) {
6937 const LADSPA_Descriptor *ld = NULL;
6938 return 0;
6941 _ladspa=no
6942 cc_check && _ladspa=yes
6944 if test "$_ladspa" = yes; then
6945 def_ladspa="#define CONFIG_LADSPA 1"
6946 else
6947 def_ladspa="#undef CONFIG_LADSPA"
6949 echores "$_ladspa"
6952 echocheck "libbs2b audio filter support"
6953 if test "$_libbs2b" = auto ; then
6954 cat > $TMPC <<EOF
6955 #include <bs2b.h>
6956 #if BS2B_VERSION_MAJOR < 3
6957 #error Please use libbs2b >= 3.0.0, older versions are not supported.
6958 #endif
6959 int main(void) {
6960 t_bs2bdp filter;
6961 filter=bs2b_open();
6962 bs2b_close(filter);
6963 return 0;
6966 _libbs2b=no
6967 if $_pkg_config --exists libbs2b ; then
6968 _inc_tmp=$($_pkg_config --cflags libbs2b)
6969 _ld_tmp=$($_pkg_config --libs libbs2b)
6970 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
6971 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
6972 else
6973 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
6974 -I/usr/local/include/bs2b ; do
6975 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
6976 extra_ldflags="$extra_ldflags -lbs2b"
6977 extra_cflags="$extra_cflags $_inc_tmp"
6978 _libbs2b=yes
6979 break
6981 done
6984 def_libbs2b="#undef CONFIG_LIBBS2B"
6985 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
6986 echores "$_libbs2b"
6989 if test -z "$_codecsdir" ; then
6990 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
6991 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
6992 if test -d "$dir" ; then
6993 _codecsdir="$dir"
6994 break;
6996 done
6998 # Fall back on default directory.
6999 if test -z "$_codecsdir" ; then
7000 _codecsdir="$_libdir/codecs"
7001 mingw32 && _codecsdir="codecs"
7002 os2 && _codecsdir="codecs"
7006 echocheck "Win32 codecs"
7007 if test "$_win32dll" = auto ; then
7008 _win32dll=no
7009 if x86_32 && ! qnx; then
7010 _win32dll=yes
7013 if test "$_win32dll" = yes ; then
7014 def_win32dll='#define CONFIG_WIN32DLL 1'
7015 test -z "$_win32codecsdir" && _win32codecsdir=$_codecsdir
7016 _res_comment="using $_win32codecsdir"
7017 if ! win32 ; then
7018 def_win32_loader='#define WIN32_LOADER 1'
7019 _win32_emulation=yes
7020 else
7021 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
7022 _res_comment="using native windows"
7024 _codecmodules="win32 $_codecmodules"
7025 else
7026 def_win32dll='#undef CONFIG_WIN32DLL'
7027 def_win32_loader='#undef WIN32_LOADER'
7028 _nocodecmodules="win32 $_nocodecmodules"
7030 echores "$_win32dll"
7033 echocheck "XAnim codecs"
7034 if test "$_xanim" = auto ; then
7035 _xanim=no
7036 _res_comment="dynamic loader support needed"
7037 if test "$_dl" = yes ; then
7038 _xanim=yes
7041 if test "$_xanim" = yes ; then
7042 test -z "$_xanimcodecsdir" && _xanimcodecsdir=$_codecsdir
7043 def_xanim='#define CONFIG_XANIM 1'
7044 def_xanim_path="#define XACODEC_PATH \"$_xanimcodecsdir\""
7045 _codecmodules="xanim $_codecmodules"
7046 _res_comment="using $_xanimcodecsdir"
7047 else
7048 def_xanim='#undef CONFIG_XANIM'
7049 def_xanim_path='#undef XACODEC_PATH'
7050 _nocodecmodules="xanim $_nocodecmodules"
7052 echores "$_xanim"
7055 echocheck "RealPlayer codecs"
7056 if test "$_real" = auto ; then
7057 _real=no
7058 _res_comment="dynamic loader support needed"
7059 if test "$_dl" = yes || test "$_win32dll" = yes &&
7060 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32) ; then
7061 _real=yes
7064 if test "$_real" = yes ; then
7065 test -z "$_realcodecsdir" && _realcodecsdir="$_codecsdir"
7066 def_real='#define CONFIG_REALCODECS 1'
7067 def_real_path="#define REALCODEC_PATH \"$_realcodecsdir\""
7068 _codecmodules="real $_codecmodules"
7069 _res_comment="using $_realcodecsdir"
7070 else
7071 def_real='#undef CONFIG_REALCODECS'
7072 def_real_path="#undef REALCODEC_PATH"
7073 _nocodecmodules="real $_nocodecmodules"
7075 echores "$_real"
7078 echocheck "QuickTime codecs"
7079 _qtx_emulation=no
7080 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
7081 if test "$_qtx" = auto ; then
7082 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
7084 if test "$_qtx" = yes ; then
7085 def_qtx='#define CONFIG_QTX_CODECS 1'
7086 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
7087 _codecmodules="qtx $_codecmodules"
7088 darwin || win32 || _qtx_emulation=yes
7089 else
7090 def_qtx='#undef CONFIG_QTX_CODECS'
7091 _nocodecmodules="qtx $_nocodecmodules"
7093 echores "$_qtx"
7095 echocheck "Nemesi Streaming Media libraries"
7096 if test "$_nemesi" = auto && test "$_network" = yes ; then
7097 _nemesi=no
7098 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
7099 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
7100 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
7101 _nemesi=yes
7104 if test "$_nemesi" = yes; then
7105 _native_rtsp=no
7106 def_nemesi='#define CONFIG_LIBNEMESI 1'
7107 _inputmodules="nemesi $_inputmodules"
7108 else
7109 _native_rtsp="$_network"
7110 _nemesi=no
7111 def_nemesi='#undef CONFIG_LIBNEMESI'
7112 _noinputmodules="nemesi $_noinputmodules"
7114 echores "$_nemesi"
7116 echocheck "LIVE555 Streaming Media libraries"
7117 if test "$_live" = auto && test "$_network" = yes ; then
7118 cat > $TMPCPP << EOF
7119 #include <liveMedia.hh>
7120 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
7121 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
7122 #endif
7123 int main(void) { return 0; }
7126 _live=no
7127 for I in $extra_cflags "-I$_libdir/live" "-I/usr/lib/live" "-I/usr/lib64/live" "-I/usr/local/live" "-I/usr/local/lib/live" ; do
7128 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
7129 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
7130 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
7131 $_livelibdir/groupsock/libgroupsock.a \
7132 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
7133 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
7134 $extra_ldflags -lstdc++" \
7135 extra_cxxflags="-I$_livelibdir/liveMedia/include \
7136 -I$_livelibdir/UsageEnvironment/include \
7137 -I$_livelibdir/BasicUsageEnvironment/include \
7138 -I$_livelibdir/groupsock/include" && \
7139 _live=yes && break
7140 done
7141 if test "$_live" != yes ; then
7142 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
7143 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
7144 _live_dist=yes
7148 if test "$_live" = yes && test "$_network" = yes; then
7149 test $_livelibdir && _res_comment="using $_livelibdir"
7150 def_live='#define CONFIG_LIVE555 1'
7151 _inputmodules="live555 $_inputmodules"
7152 elif test "$_live_dist" = yes && test "$_network" = yes; then
7153 _res_comment="using distribution version"
7154 _live="yes"
7155 def_live='#define CONFIG_LIVE555 1'
7156 extra_ldflags="$extra_ldflags $ld_tmp"
7157 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
7158 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
7159 _inputmodules="live555 $_inputmodules"
7160 else
7161 _live=no
7162 def_live='#undef CONFIG_LIVE555'
7163 _noinputmodules="live555 $_noinputmodules"
7165 echores "$_live"
7168 echocheck "FFmpeg libavutil"
7169 if test "$_libavutil_a" = auto ; then
7170 if test -d libavutil ; then
7171 _libavutil_a=yes
7172 _res_comment="static"
7173 else
7174 die "MPlayer will not compile without libavutil in the source tree."
7176 elif test "$_libavutil_so" = auto ; then
7177 _libavutil_so=no
7178 cat > $TMPC << EOF
7179 #include <libavutil/common.h>
7180 int main(void) { av_gcd(1,1); return 0; }
7182 if $_pkg_config --exists libavutil ; then
7183 _inc_libavutil=$($_pkg_config --cflags libavutil)
7184 _ld_tmp=$($_pkg_config --libs libavutil)
7185 cc_check $_inc_libavutil $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7186 && _libavutil_so=yes
7187 elif cc_check -lavutil $_ld_lm ; then
7188 extra_ldflags="$extra_ldflags -lavutil"
7189 _libavutil_so=yes
7190 _res_comment="using libavutil.so, but static libavutil is recommended"
7193 _libavutil=no
7194 def_libavutil='#undef CONFIG_LIBAVUTIL'
7195 def_libavutil_a='#undef CONFIG_LIBAVUTIL_A'
7196 def_libavutil_so='#undef CONFIG_LIBAVUTIL_SO'
7197 test "$_libavutil_a" = yes || test "$_libavutil_so" = yes && _libavutil=yes
7198 test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1'
7199 test "$_libavutil_a" = yes && def_libavutil_a='#define CONFIG_LIBAVUTIL_A 1'
7200 test "$_libavutil_so" = yes && def_libavutil_so='#define CONFIG_LIBAVUTIL_SO 1'
7201 # neither static nor shared libavutil is available, but it is mandatory ...
7202 if test "$_libavutil" = no ; then
7203 die "You need static or shared libavutil, MPlayer will not compile without!"
7205 echores "$_libavutil"
7207 echocheck "FFmpeg libavcodec"
7208 if test "$_libavcodec_a" = auto ; then
7209 _libavcodec_a=no
7210 if test -d libavcodec && test -f libavcodec/utils.c ; then
7211 _libavcodec_a="yes"
7212 _res_comment="static"
7214 elif test "$_libavcodec_so" = auto ; then
7215 _libavcodec_so=no
7216 _res_comment="libavcodec.so is discouraged over static libavcodec"
7217 cat > $TMPC << EOF
7218 #include <libavcodec/avcodec.h>
7219 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
7221 if $_pkg_config --exists libavcodec ; then
7222 _inc_libavcodec=$($_pkg_config --cflags libavcodec)
7223 _ld_tmp=$($_pkg_config --libs libavcodec)
7224 cc_check $_inc_libavcodec $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7225 && _libavcodec_so=yes
7226 elif cc_check -lavcodec $_ld_lm ; then
7227 extra_ldflags="$extra_ldflags -lavcodec"
7228 _libavcodec_so=yes
7229 _res_comment="using libavcodec.so, but static libavcodec is recommended"
7232 _libavcodec=no
7233 def_libavcodec='#undef CONFIG_LIBAVCODEC'
7234 def_libavcodec_a='#undef CONFIG_LIBAVCODEC_A'
7235 def_libavcodec_so='#undef CONFIG_LIBAVCODEC_SO'
7236 test "$_libavcodec_a" = yes || test "$_libavcodec_so" = yes && _libavcodec=yes
7237 test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1'
7238 test "$_libavcodec_a" = yes && def_libavcodec_a='#define CONFIG_LIBAVCODEC_A 1'
7239 test "$_libavcodec_so" = yes && def_libavcodec_so='#define CONFIG_LIBAVCODEC_SO 1'
7240 test "$_libavcodec_mpegaudio_hp" = yes \
7241 && def_libavcodec_mpegaudio_hp='#define CONFIG_MPEGAUDIO_HP 1' \
7242 && mak_libavcodec_mpegaudio_hp='CONFIG_MPEGAUDIO_HP = yes'
7243 if test "$_libavcodec_a" = yes ; then
7244 _codecmodules="libavcodec(internal) $_codecmodules"
7245 elif test "$_libavcodec_so" = yes ; then
7246 _codecmodules="libavcodec.so $_codecmodules"
7247 else
7248 _nocodecmodules="libavcodec $_nocodecmodules"
7250 echores "$_libavcodec"
7252 echocheck "FFmpeg libavformat"
7253 if test "$_libavformat_a" = auto ; then
7254 _libavformat_a=no
7255 if test -d libavformat && test -f libavformat/utils.c ; then
7256 _libavformat_a=yes
7257 _res_comment="static"
7259 elif test "$_libavformat_so" = auto ; then
7260 _libavformat_so=no
7261 cat > $TMPC <<EOF
7262 #include <libavformat/avformat.h>
7263 #include <libavcodec/opt.h>
7264 int main(void) { av_alloc_format_context(); return 0; }
7266 if $_pkg_config --exists libavformat ; then
7267 _inc_libavformat=$($_pkg_config --cflags libavformat)
7268 _ld_tmp=$($_pkg_config --libs libavformat)
7269 cc_check $_inc_libavformat $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7270 && _libavformat_so=yes
7271 elif cc_check $_ld_lm -lavformat ; then
7272 extra_ldflags="$extra_ldflags -lavformat"
7273 _libavformat_so=yes
7274 _res_comment="using libavformat.so, but static libavformat is recommended"
7277 _libavformat=no
7278 def_libavformat='#undef CONFIG_LIBAVFORMAT'
7279 def_libavformat_a='#undef CONFIG_LIBAVFORMAT_A'
7280 def_libavformat_so='#undef CONFIG_LIBAVFORMAT_SO'
7281 test "$_libavformat_a" = yes || test "$_libavformat_so" = yes && _libavformat=yes
7282 test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1'
7283 test "$_libavformat_a" = yes && def_libavformat_a='#define CONFIG_LIBAVFORMAT_A 1'
7284 test "$_libavformat_so" = yes \
7285 && def_libavformat_so='#define CONFIG_LIBAVFORMAT_SO 1'
7286 echores "$_libavformat"
7288 echocheck "FFmpeg libpostproc"
7289 if test "$_libpostproc_a" = auto ; then
7290 _libpostproc_a=no
7291 if test -d libpostproc && test -f libpostproc/postprocess.h ; then
7292 _libpostproc_a='yes'
7293 _res_comment="static"
7295 elif test "$_libpostproc_so" = auto ; then
7296 _libpostproc_so=no
7297 cat > $TMPC << EOF
7298 #include <inttypes.h>
7299 #include <libpostproc/postprocess.h>
7300 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
7302 if cc_check -lpostproc $_ld_lm ; then
7303 extra_ldflags="$extra_ldflags -lpostproc"
7304 _libpostproc_so=yes
7305 _res_comment="using libpostproc.so, but static libpostproc is recommended"
7308 _libpostproc=no
7309 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
7310 def_libpostproc_a='#undef CONFIG_LIBPOSTPROC_A'
7311 def_libpostproc_so='#undef CONFIG_LIBPOSTPROC_SO'
7312 test "$_libpostproc_a" = yes || test "$_libpostproc_so" = yes && _libpostproc=yes
7313 test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
7314 test "$_libpostproc_a" = yes && def_libpostproc_a='#define CONFIG_LIBPOSTPROC_A 1'
7315 test "$_libpostproc_so" = yes \
7316 && def_libpostproc_so='#define CONFIG_LIBPOSTPROC_SO 1'
7317 echores "$_libpostproc"
7319 echocheck "FFmpeg libswscale"
7320 if test "$_libswscale_a" = auto ; then
7321 _libswscale_a=no
7322 if test -d libswscale && test -f libswscale/swscale.h ; then
7323 _libswscale_a='yes'
7324 _res_comment="static"
7326 elif test "$_libswscale_so" = auto ; then
7327 _libswscale_so=no
7328 _res_comment="using libswscale.so, but static libswscale is recommended"
7329 cat > $TMPC << EOF
7330 #include <libswscale/swscale.h>
7331 int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; }
7333 if $_pkg_config --exists libswscale ; then
7334 _inc_libswscale=$($_pkg_config --cflags libswscale)
7335 _ld_tmp=$($_pkg_config --libs libswscale)
7336 cc_check $_inc_libswscale $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7337 && _libswscale_so=yes
7338 elif cc_check -lswscale ; then
7339 extra_ldflags="$extra_ldflags -lswscale"
7340 _libswscale_so=yes
7343 _libswscale=no
7344 def_libswscale='#undef CONFIG_LIBSWSCALE'
7345 def_libswscale_a='#undef CONFIG_LIBSWSCALE_A'
7346 def_libswscale_so='#undef CONFIG_LIBSWSCALE_SO'
7347 test "$_libswscale_a" = yes || test "$_libswscale_so" = yes && _libswscale=yes
7348 test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1'
7349 test "$_libswscale_a" = yes && def_libswscale_a='#define CONFIG_LIBSWSCALE_A 1'
7350 test "$_libswscale_so" = yes \
7351 && def_libswscale_so='#define CONFIG_LIBSWSCALE_SO 1'
7352 echores "$_libswscale"
7354 echocheck "libopencore_amr narrowband"
7355 if test "$_libopencore_amrnb" = auto ; then
7356 _libopencore_amrnb=no
7357 cat > $TMPC << EOF
7358 #include <opencore-amrnb/interf_dec.h>
7359 int main(void) { Decoder_Interface_init(); return 0; }
7361 cc_check -lopencore-amrnb && _libopencore_amrnb=yes
7362 if test "$_libavcodec_a" != yes ; then
7363 _libopencore_amrnb=no
7364 _res_comment="libavcodec (static) is required by libopencore_amrnb, sorry"
7367 if test "$_libopencore_amrnb" = yes ; then
7368 _libopencore_amr=yes
7369 extra_ldflags="$extra_ldflags -lopencore-amrnb"
7370 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 1'
7371 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRNB_DECODER"
7372 _libavencoders="$_libavencoders LIBOPENCORE_AMRNB_ENCODER"
7373 _codecmodules="libopencore_amrnb $_codecmodules"
7374 else
7375 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 0'
7376 _nocodecmodules="libopencore_amrnb $_nocodecmodules"
7378 echores "$_libopencore_amrnb"
7381 echocheck "libopencore_amr wideband"
7382 if test "$_libopencore_amrwb" = auto ; then
7383 _libopencore_amrwb=no
7384 cat > $TMPC << EOF
7385 #include <opencore-amrwb/dec_if.h>
7386 int main(void) { D_IF_init(); return 0; }
7388 cc_check -lopencore-amrwb && _libopencore_amrwb=yes
7389 if test "$_libavcodec_a" != yes ; then
7390 _libopencore_amrwb=no
7391 _res_comment="libavcodec (static) is required by libopencore_amrwb, sorry"
7394 if test "$_libopencore_amrwb" = yes ; then
7395 _libopencore_amr=yes
7396 extra_ldflags="$extra_ldflags -lopencore-amrwb"
7397 def_libopencore_amrwb='#define CONFIG_LIBOPENCORE_AMRWB 1'
7398 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRWB_DECODER"
7399 _libavencoders="$_libavencoders LIBOPENCORE_AMRWB_DECODER"
7400 _codecmodules="libopencore_amrwb $_codecmodules"
7401 else
7402 def_libopencore_amrwb='#define LIBOPENCORE_AMRWB 0'
7403 _nocodecmodules="libopencore_amrwb $_nocodecmodules"
7405 echores "$_libopencore_amrwb"
7407 echocheck "libdv-0.9.5+"
7408 if test "$_libdv" = auto ; then
7409 _libdv=no
7410 cat > $TMPC <<EOF
7411 #include <libdv/dv.h>
7412 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
7414 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
7416 if test "$_libdv" = yes ; then
7417 def_libdv='#define CONFIG_LIBDV095 1'
7418 extra_ldflags="$extra_ldflags -ldv"
7419 _codecmodules="libdv $_codecmodules"
7420 else
7421 def_libdv='#undef CONFIG_LIBDV095'
7422 _nocodecmodules="libdv $_nocodecmodules"
7424 echores "$_libdv"
7427 echocheck "Xvid"
7428 if test "$_xvid" = auto ; then
7429 _xvid=no
7430 cat > $TMPC << EOF
7431 #include <xvid.h>
7432 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
7434 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
7435 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
7436 done
7439 if test "$_xvid" = yes ; then
7440 def_xvid='#define CONFIG_XVID4 1'
7441 _codecmodules="xvid $_codecmodules"
7442 else
7443 def_xvid='#undef CONFIG_XVID4'
7444 _nocodecmodules="xvid $_nocodecmodules"
7446 echores "$_xvid"
7448 echocheck "Xvid two pass plugin"
7449 if test "$_xvid" = yes && test "$_xvid_lavc" = auto ; then
7450 cat > $TMPC << EOF
7451 #include <xvid.h>
7452 int main(void) { xvid_plugin_2pass2_t s; s.vbv_size=0; return 0; }
7454 cc_check && _xvid_lavc=yes
7456 if test "$_xvid_lavc" = yes ; then
7457 def_xvid_lavc='#define CONFIG_LIBXVID 1'
7458 _libavencoders="$_libavencoders LIBXVID_ENCODER"
7459 else
7460 _xvid_lavc=no
7461 def_xvid_lavc='#define CONFIG_LIBXVID 0'
7463 echores "$_xvid_lavc"
7466 echocheck "x264"
7467 if test "$_x264" = auto ; then
7468 cat > $TMPC << EOF
7469 #include <inttypes.h>
7470 #include <x264.h>
7471 #if X264_BUILD < 83
7472 #error We do not support old versions of x264. Get the latest from git.
7473 #endif
7474 int main(void) { x264_encoder_open((void*)0); return 0; }
7476 _x264=no
7477 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
7478 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
7479 done
7482 if test "$_x264" = yes ; then
7483 def_x264='#define CONFIG_X264 1'
7484 _codecmodules="x264 $_codecmodules"
7485 test "$_x264_lavc" = auto && _x264_lavc=yes
7486 if test "$_x264_lavc" = yes ; then
7487 def_x264_lavc='#define CONFIG_LIBX264 1'
7488 libs_mplayer="$libs_mplayer $_ld_x264"
7489 _libavencoders="$_libavencoders LIBX264_ENCODER"
7491 else
7492 _x264_lavc=no
7493 def_x264='#undef CONFIG_X264'
7494 def_x264_lavc='#define CONFIG_LIBX264 0'
7495 _nocodecmodules="x264 $_nocodecmodules"
7497 _res_comment="in libavcodec: $_x264_lavc"
7498 echores "$_x264"
7501 echocheck "libdirac"
7502 if test "$_libdirac_lavc" = auto; then
7503 _libdirac_lavc=no
7504 if test "$_libavcodec_a" != yes; then
7505 _res_comment="libavcodec (static) is required by libdirac, sorry"
7506 else
7507 cat > $TMPC << EOF
7508 #include <libdirac_encoder/dirac_encoder.h>
7509 #include <libdirac_decoder/dirac_parser.h>
7510 int main(void)
7512 dirac_encoder_context_t enc_ctx;
7513 dirac_decoder_t *dec_handle;
7514 dirac_encoder_context_init(&enc_ctx, VIDEO_FORMAT_SD_576I50);
7515 dec_handle = dirac_decoder_init(0);
7516 if (dec_handle)
7517 dirac_decoder_close(dec_handle);
7518 return 0;
7521 if $_pkg_config --exists dirac ; then
7522 _inc_dirac=$($_pkg_config --silence-errors --cflags dirac)
7523 _ld_dirac=$($_pkg_config --silence-errors --libs dirac)
7524 cc_check $_inc_dirac $_ld_dirac &&
7525 _libdirac_lavc=yes &&
7526 extra_cflags="$extra_cflags $_inc_dirac" &&
7527 extra_ldflags="$extra_ldflags $_ld_dirac"
7531 if test "$_libdirac_lavc" = yes ; then
7532 def_libdirac_lavc='#define CONFIG_LIBDIRAC 1'
7533 _libavencoders="$_libavencoders LIBDIRAC_ENCODER"
7534 _libavdecoders="$_libavdecoders LIBDIRAC_DECODER"
7535 _codecmodules="libdirac $_codecmodules"
7536 else
7537 def_libdirac_lavc='#define CONFIG_LIBDIRAC 0'
7538 _nocodecmodules="libdirac $_nocodecmodules"
7540 echores "$_libdirac_lavc"
7543 echocheck "libschroedinger"
7544 if test "$_libschroedinger_lavc" = auto ; then
7545 _libschroedinger_lavc=no
7546 if test "$_libavcodec_a" != yes; then
7547 _res_comment="libavcodec (static) is required by libschroedinger, sorry"
7548 else
7549 cat > $TMPC << EOF
7550 #include <schroedinger/schro.h>
7551 int main(void) { schro_init(); return 0; }
7553 if $_pkg_config --exists schroedinger-1.0 ; then
7554 _inc_schroedinger=$($_pkg_config --silence-errors --cflags schroedinger-1.0)
7555 _ld_schroedinger=$($_pkg_config --silence-errors --libs schroedinger-1.0)
7556 cc_check $_inc_schroedinger $_ld_schroedinger &&
7557 _libschroedinger_lavc=yes &&
7558 extra_cflags="$extra_cflags $_inc_schroedinger" &&
7559 extra_ldflags="$extra_ldflags $_ld_schroedinger"
7563 if test "$_libschroedinger_lavc" = yes ; then
7564 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 1'
7565 _libavencoders="$_libavencoders LIBSCHROEDINGER_ENCODER"
7566 _libavdecoders="$_libavdecoders LIBSCHROEDINGER_DECODER"
7567 _codecmodules="libschroedinger $_codecmodules"
7568 else
7569 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 0'
7570 _nocodecmodules="libschroedinger $_nocodecmodules"
7572 echores "$_libschroedinger_lavc"
7574 echocheck "libnut"
7575 if test "$_libnut" = auto ; then
7576 cat > $TMPC << EOF
7577 #include <stdio.h>
7578 #include <stdlib.h>
7579 #include <inttypes.h>
7580 #include <libnut.h>
7581 nut_context_tt * nut;
7582 int main(void) { (void)nut_error(0); return 0; }
7584 _libnut=no
7585 cc_check -lnut && _libnut=yes
7588 if test "$_libnut" = yes ; then
7589 def_libnut='#define CONFIG_LIBNUT 1'
7590 extra_ldflags="$extra_ldflags -lnut"
7591 else
7592 def_libnut='#undef CONFIG_LIBNUT'
7594 echores "$_libnut"
7596 #check must be done after libavcodec one
7597 echocheck "zr"
7598 if test "$_zr" = auto ; then
7599 #36067's seem to identify themselves as 36057PQC's, so the line
7600 #below should work for 36067's and 36057's.
7601 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
7602 _zr=yes
7603 else
7604 _zr=no
7607 if test "$_zr" = yes ; then
7608 if test "$_libavcodec_a" = yes ; then
7609 def_zr='#define CONFIG_ZR 1'
7610 _vomodules="zr zr2 $_vomodules"
7611 else
7612 _res_comment="libavcodec (static) is required by zr, sorry"
7613 _novomodules="zr $_novomodules"
7614 def_zr='#undef CONFIG_ZR'
7616 else
7617 def_zr='#undef CONFIG_ZR'
7618 _novomodules="zr zr2 $_novomodules"
7620 echores "$_zr"
7622 # mencoder requires (optional) those libs: libmp3lame
7623 if test "$_mencoder" != no ; then
7625 echocheck "libmp3lame"
7626 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
7627 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
7628 if test "$_mp3lame" = auto ; then
7629 _mp3lame=no
7630 cat > $TMPC <<EOF
7631 #include <lame/lame.h>
7632 int main(void) { lame_version_t lv; (void) lame_init();
7633 get_lame_version_numerical(&lv);
7634 return 0; }
7636 cc_check -lmp3lame $_ld_lm && _mp3lame=yes
7638 if test "$_mp3lame" = yes ; then
7639 def_mp3lame="#define CONFIG_MP3LAME 1"
7640 _ld_mp3lame=-lmp3lame
7641 libs_mencoder="$libs_mencoder $_ld_mp3lame"
7642 cat > $TMPC << EOF
7643 #include <lame/lame.h>
7644 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
7646 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET 1"
7647 cat > $TMPC << EOF
7648 #include <lame/lame.h>
7649 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
7651 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM 1"
7652 test "$_mp3lame_lavc" = auto && _mp3lame_lavc=yes
7653 if test "$_mp3lame_lavc" = yes ; then
7654 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 1"
7655 _libavencoders="$_libavencoders LIBMP3LAME_ENCODER"
7656 libs_mplayer="$libs_mplayer $_ld_mp3lame"
7658 else
7659 _mp3lame_lavc=no
7660 def_mp3lame='#undef CONFIG_MP3LAME'
7661 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 0"
7663 _res_comment="in libavcodec: $_mp3lame_lavc"
7664 echores "$_mp3lame"
7666 fi # test "$_mencoder" != no
7668 echocheck "mencoder"
7669 if test "$_mencoder" = yes ; then
7670 def_muxers='#define CONFIG_MUXERS 1'
7671 else
7672 # mpeg1video for vf_lavc, snow for vf_uspp and vf_mcdeint, png for vf_screenshot
7673 _libavencoders="MPEG1VIDEO_ENCODER SNOW_ENCODER"
7674 test "$_zlib" = yes && _libavencoders="$_libavencoders PNG_ENCODER"
7675 _libavmuxers=""
7676 def_muxers='#define CONFIG_MUXERS 0'
7678 echores "$_mencoder"
7681 echocheck "UnRAR executable"
7682 if test "$_unrar_exec" = auto ; then
7683 _unrar_exec="yes"
7684 mingw32 && _unrar_exec="no"
7686 if test "$_unrar_exec" = yes ; then
7687 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
7688 else
7689 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
7691 echores "$_unrar_exec"
7693 echocheck "TV interface"
7694 if test "$_tv" = yes ; then
7695 def_tv='#define CONFIG_TV 1'
7696 _inputmodules="tv $_inputmodules"
7697 else
7698 _noinputmodules="tv $_noinputmodules"
7699 def_tv='#undef CONFIG_TV'
7701 echores "$_tv"
7704 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
7705 echocheck "*BSD BT848 bt8xx header"
7706 _ioctl_bt848_h=no
7707 for file in "machine/ioctl_bt848.h" \
7708 "dev/bktr/ioctl_bt848.h" \
7709 "dev/video/bktr/ioctl_bt848.h" \
7710 "dev/ic/bt8xx.h" ; do
7711 cat > $TMPC <<EOF
7712 #include <sys/types.h>
7713 #include <sys/ioctl.h>
7714 #include <$file>
7715 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
7717 if cc_check ; then
7718 _ioctl_bt848_h=yes
7719 _ioctl_bt848_h_name="$file"
7720 break;
7722 done
7723 if test "$_ioctl_bt848_h" = yes ; then
7724 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
7725 _res_comment="using $_ioctl_bt848_h_name"
7726 else
7727 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
7729 echores "$_ioctl_bt848_h"
7731 echocheck "*BSD ioctl_meteor.h"
7732 _ioctl_meteor_h=no
7733 for file in "machine/ioctl_meteor.h" \
7734 "dev/bktr/ioctl_meteor.h" \
7735 "dev/video/bktr/ioctl_meteor.h" ; do
7736 cat > $TMPC <<EOF
7737 #include <sys/types.h>
7738 #include <$file>
7739 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
7741 if cc_check ; then
7742 _ioctl_meteor_h=yes
7743 _ioctl_meteor_h_name="$file"
7744 break;
7746 done
7747 if test "$_ioctl_meteor_h" = yes ; then
7748 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
7749 _res_comment="using $_ioctl_meteor_h_name"
7750 else
7751 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
7753 echores "$_ioctl_meteor_h"
7755 echocheck "*BSD BrookTree 848 TV interface"
7756 if test "$_tv_bsdbt848" = auto ; then
7757 _tv_bsdbt848=no
7758 if test "$_tv" = yes ; then
7759 cat > $TMPC <<EOF
7760 #include <sys/types.h>
7761 $def_ioctl_meteor_h_name
7762 $def_ioctl_bt848_h_name
7763 #ifdef IOCTL_METEOR_H_NAME
7764 #include IOCTL_METEOR_H_NAME
7765 #endif
7766 #ifdef IOCTL_BT848_H_NAME
7767 #include IOCTL_BT848_H_NAME
7768 #endif
7769 int main(void) {
7770 ioctl(0, METEORSINPUT, 0);
7771 ioctl(0, TVTUNER_GETFREQ, 0);
7772 return 0;
7775 cc_check && _tv_bsdbt848=yes
7778 if test "$_tv_bsdbt848" = yes ; then
7779 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
7780 _inputmodules="tv-bsdbt848 $_inputmodules"
7781 else
7782 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
7783 _noinputmodules="tv-bsdbt848 $_noinputmodules"
7785 echores "$_tv_bsdbt848"
7786 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
7789 echocheck "DirectShow TV interface"
7790 if test "$_tv_dshow" = auto ; then
7791 _tv_dshow=no
7792 if test "$_tv" = yes && win32 ; then
7793 cat > $TMPC <<EOF
7794 #include <ole2.h>
7795 int main(void) {
7796 void* p;
7797 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
7798 return 0;
7801 cc_check -lole32 -luuid && _tv_dshow=yes
7804 if test "$_tv_dshow" = yes ; then
7805 _inputmodules="tv-dshow $_inputmodules"
7806 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
7807 extra_ldflags="$extra_ldflags -lole32 -luuid"
7808 else
7809 _noinputmodules="tv-dshow $_noinputmodules"
7810 def_tv_dshow='#undef CONFIG_TV_DSHOW'
7812 echores "$_tv_dshow"
7815 echocheck "Video 4 Linux TV interface"
7816 if test "$_tv_v4l1" = auto ; then
7817 _tv_v4l1=no
7818 if test "$_tv" = yes && linux ; then
7819 cat > $TMPC <<EOF
7820 #include <stdlib.h>
7821 #include <linux/videodev.h>
7822 int main(void) { return 0; }
7824 cc_check && _tv_v4l1=yes
7827 if test "$_tv_v4l1" = yes ; then
7828 _audio_input=yes
7829 _tv_v4l=yes
7830 def_tv_v4l='#define CONFIG_TV_V4L 1'
7831 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
7832 _inputmodules="tv-v4l $_inputmodules"
7833 else
7834 _noinputmodules="tv-v4l1 $_noinputmodules"
7835 def_tv_v4l='#undef CONFIG_TV_V4L'
7837 echores "$_tv_v4l1"
7840 echocheck "Video 4 Linux 2 TV interface"
7841 if test "$_tv_v4l2" = auto ; then
7842 _tv_v4l2=no
7843 if test "$_tv" = yes && linux ; then
7844 cat > $TMPC <<EOF
7845 #include <stdlib.h>
7846 #include <linux/types.h>
7847 #include <linux/videodev2.h>
7848 int main(void) { return 0; }
7850 cc_check && _tv_v4l2=yes
7853 if test "$_tv_v4l2" = yes ; then
7854 _audio_input=yes
7855 _tv_v4l=yes
7856 def_tv_v4l='#define CONFIG_TV_V4L 1'
7857 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
7858 _inputmodules="tv-v4l2 $_inputmodules"
7859 else
7860 _noinputmodules="tv-v4l2 $_noinputmodules"
7861 def_tv_v4l2='#undef CONFIG_TV_V4L2'
7863 echores "$_tv_v4l2"
7866 echocheck "Radio interface"
7867 if test "$_radio" = yes ; then
7868 def_radio='#define CONFIG_RADIO 1'
7869 _inputmodules="radio $_inputmodules"
7870 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
7871 _radio_capture=no
7873 if test "$_radio_capture" = yes ; then
7874 _audio_input=yes
7875 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
7876 else
7877 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7879 else
7880 _noinputmodules="radio $_noinputmodules"
7881 def_radio='#undef CONFIG_RADIO'
7882 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7883 _radio_capture=no
7885 echores "$_radio"
7886 echocheck "Capture for Radio interface"
7887 echores "$_radio_capture"
7889 echocheck "Video 4 Linux 2 Radio interface"
7890 if test "$_radio_v4l2" = auto ; then
7891 _radio_v4l2=no
7892 if test "$_radio" = yes && linux ; then
7893 cat > $TMPC <<EOF
7894 #include <stdlib.h>
7895 #include <linux/types.h>
7896 #include <linux/videodev2.h>
7897 int main(void) { return 0; }
7899 cc_check && _radio_v4l2=yes
7902 if test "$_radio_v4l2" = yes ; then
7903 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
7904 else
7905 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
7907 echores "$_radio_v4l2"
7909 echocheck "Video 4 Linux Radio interface"
7910 if test "$_radio_v4l" = auto ; then
7911 _radio_v4l=no
7912 if test "$_radio" = yes && linux ; then
7913 cat > $TMPC <<EOF
7914 #include <stdlib.h>
7915 #include <linux/videodev.h>
7916 int main(void) { return 0; }
7918 cc_check && _radio_v4l=yes
7921 if test "$_radio_v4l" = yes ; then
7922 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
7923 else
7924 def_radio_v4l='#undef CONFIG_RADIO_V4L'
7926 echores "$_radio_v4l"
7928 if freebsd || netbsd || openbsd || dragonfly || bsdos \
7929 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
7930 echocheck "*BSD BrookTree 848 Radio interface"
7931 _radio_bsdbt848=no
7932 cat > $TMPC <<EOF
7933 #include <sys/types.h>
7934 $def_ioctl_bt848_h_name
7935 #ifdef IOCTL_BT848_H_NAME
7936 #include IOCTL_BT848_H_NAME
7937 #endif
7938 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
7940 cc_check && _radio_bsdbt848=yes
7941 echores "$_radio_bsdbt848"
7942 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
7944 if test "$_radio_bsdbt848" = yes ; then
7945 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
7946 else
7947 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
7950 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
7951 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
7952 die "Radio driver requires BSD BT848, V4L or V4L2!"
7955 echocheck "Video 4 Linux 2 MPEG PVR interface"
7956 if test "$_pvr" = auto ; then
7957 _pvr=no
7958 if test "$_tv_v4l2" = yes && linux ; then
7959 cat > $TMPC <<EOF
7960 #include <stdlib.h>
7961 #include <inttypes.h>
7962 #include <linux/types.h>
7963 #include <linux/videodev2.h>
7964 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
7966 cc_check && _pvr=yes
7969 if test "$_pvr" = yes ; then
7970 def_pvr='#define CONFIG_PVR 1'
7971 _inputmodules="pvr $_inputmodules"
7972 else
7973 _noinputmodules="pvr $_noinputmodules"
7974 def_pvr='#undef CONFIG_PVR'
7976 echores "$_pvr"
7979 echocheck "ftp"
7980 if ! beos && test "$_ftp" = yes ; then
7981 def_ftp='#define CONFIG_FTP 1'
7982 _inputmodules="ftp $_inputmodules"
7983 else
7984 _noinputmodules="ftp $_noinputmodules"
7985 def_ftp='#undef CONFIG_FTP'
7987 echores "$_ftp"
7989 echocheck "vstream client"
7990 if test "$_vstream" = auto ; then
7991 _vstream=no
7992 cat > $TMPC <<EOF
7993 #include <vstream-client.h>
7994 void vstream_error(const char *format, ... ) {}
7995 int main(void) { vstream_start(); return 0; }
7997 cc_check -lvstream-client && _vstream=yes
7999 if test "$_vstream" = yes ; then
8000 def_vstream='#define CONFIG_VSTREAM 1'
8001 _inputmodules="vstream $_inputmodules"
8002 extra_ldflags="$extra_ldflags -lvstream-client"
8003 else
8004 _noinputmodules="vstream $_noinputmodules"
8005 def_vstream='#undef CONFIG_VSTREAM'
8007 echores "$_vstream"
8010 echocheck "OSD menu"
8011 if test "$_menu" = yes ; then
8012 def_menu='#define CONFIG_MENU 1'
8013 test $_dvbin = "yes" && _menu_dvbin=yes
8014 else
8015 def_menu='#undef CONFIG_MENU'
8016 _menu_dvbin=no
8018 echores "$_menu"
8021 echocheck "Subtitles sorting"
8022 if test "$_sortsub" = yes ; then
8023 def_sortsub='#define CONFIG_SORTSUB 1'
8024 else
8025 def_sortsub='#undef CONFIG_SORTSUB'
8027 echores "$_sortsub"
8030 echocheck "XMMS inputplugin support"
8031 if test "$_xmms" = yes ; then
8032 if ( xmms-config --version ) >/dev/null 2>&1 ; then
8033 _xmmsplugindir=$(xmms-config --input-plugin-dir)
8034 _xmmslibdir=$(xmms-config --exec-prefix)/lib
8035 else
8036 _xmmsplugindir=/usr/lib/xmms/Input
8037 _xmmslibdir=/usr/lib
8040 def_xmms='#define CONFIG_XMMS 1'
8041 if darwin ; then
8042 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
8043 else
8044 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
8046 else
8047 def_xmms='#undef CONFIG_XMMS'
8049 echores "$_xmms"
8052 # --------------- GUI specific tests begin -------------------
8053 echocheck "GUI"
8054 echo "$_gui"
8055 if test "$_gui" = yes ; then
8057 # Required libraries
8058 if test "$_libavcodec" != yes ||
8059 ! echo $_libavdecoders | grep -q PNG_DECODER ; then
8060 die "The GUI requires libavcodec with PNG support (needs zlib)."
8062 test "$_freetype" = no && test "$_bitmap_font" = no && \
8063 die "The GUI requires either FreeType or bitmap font support."
8064 if ! win32 ; then
8065 _gui_gtk=yes
8066 test "$_x11" != yes && die "X11 support required for GUI compilation."
8068 echocheck "XShape extension"
8069 if test "$_xshape" = auto ; then
8070 _xshape=no
8071 cat > $TMPC << EOF
8072 #include <X11/Xlib.h>
8073 #include <X11/Xproto.h>
8074 #include <X11/Xutil.h>
8075 #include <X11/extensions/shape.h>
8076 #include <stdlib.h>
8077 int main(void) {
8078 char *name = ":0.0";
8079 Display *wsDisplay;
8080 int exitvar = 0;
8081 int eventbase, errorbase;
8082 if (getenv("DISPLAY"))
8083 name=getenv("DISPLAY");
8084 wsDisplay=XOpenDisplay(name);
8085 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
8086 exitvar=1;
8087 XCloseDisplay(wsDisplay);
8088 return exitvar;
8091 cc_check -lXext && _xshape=yes
8093 if test "$_xshape" = yes ; then
8094 def_xshape='#define CONFIG_XSHAPE 1'
8095 else
8096 die "The GUI requires the X11 extension XShape (which was not found)."
8098 echores "$_xshape"
8100 #Check for GTK
8101 if test "$_gtk1" = no ; then
8102 #Check for GTK2 :
8103 echocheck "GTK+ version"
8105 if $_pkg_config gtk+-2.0 --exists ; then
8106 _gtk=$($_pkg_config gtk+-2.0 --modversion 2>/dev/null)
8107 extra_cflags="$extra_cflags $($_pkg_config gtk+-2.0 --cflags 2>/dev/null)"
8108 libs_mplayer="$libs_mplayer $($_pkg_config gtk+-2.0 --libs 2>/dev/null)"
8109 echores "$_gtk"
8111 # Check for GLIB2
8112 if $_pkg_config glib-2.0 --exists ; then
8113 echocheck "glib version"
8114 _glib=$($_pkg_config glib-2.0 --modversion 2>/dev/null)
8115 libs_mplayer="$libs_mplayer $($_pkg_config glib-2.0 --libs 2>/dev/null)"
8116 echores "$_glib"
8118 def_gui='#define CONFIG_GUI 1'
8119 def_gtk2='#define CONFIG_GTK2 1'
8120 else
8121 _gtk1=yes
8122 echo "GLIB-2 devel packages were not found, trying GTK 1.2"
8124 else
8125 echo "GTK-2 devel packages were not found, trying GTK 1.2"
8126 _gtk1=yes
8130 if test "$_gtk1" = yes ; then
8131 # Check for old GTK (1.2.x)
8132 echocheck "GTK version"
8133 if test -z "$_gtkconfig" ; then
8134 if ( gtk-config --version ) >/dev/null 2>&1 ; then
8135 _gtkconfig="gtk-config"
8136 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
8137 _gtkconfig="gtk12-config"
8138 else
8139 die "The GUI requires GTK devel packages (which were not found)."
8142 _gtk=$($_gtkconfig --version 2>&1)
8143 extra_cflags="$extra_cflags $($_gtkconfig --cflags 2>&1)"
8144 libs_mplayer="$libs_mplayer $($_gtkconfig --libs 2>&1)"
8145 echores "$_gtk (using $_gtkconfig)"
8147 # Check for GLIB
8148 echocheck "glib version"
8149 if test -z "$_glibconfig" ; then
8150 if ( glib-config --version ) >/dev/null 2>&1 ; then
8151 _glibconfig="glib-config"
8152 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
8153 _glibconfig="glib12-config"
8154 else
8155 die "The GUI requires GLIB devel packages (which were not found)"
8158 _glib=$($_glibconfig --version 2>&1)
8159 libs_mplayer="$libs_mplayer $($_glibconfig --libs 2>&1)"
8160 echores "$_glib (using $_glibconfig)"
8162 def_gui='#define CONFIG_GUI 1'
8163 def_gtk2='#undef CONFIG_GTK2'
8166 else #if ! win32
8167 _gui_win32=yes
8168 libs_mplayer="$libs_mplayer -lcomdlg32 -lcomctl32 -lshell32 -lkernel32"
8169 def_gui='#define CONFIG_GUI 1'
8170 def_gtk2='#undef CONFIG_GTK2'
8171 fi #if ! win32
8173 else #if test "$_gui"
8174 def_gui='#undef CONFIG_GUI'
8175 def_gtk2='#undef CONFIG_GTK2'
8176 fi #if test "$_gui"
8177 # --------------- GUI specific tests end -------------------
8180 if test "$_charset" != "noconv" ; then
8181 def_charset="#define MSG_CHARSET \"$_charset\""
8182 else
8183 def_charset="#undef MSG_CHARSET"
8184 _charset="UTF-8"
8187 if test -n "$_charset" && test "$_charset" != "UTF-8" ; then
8188 echocheck "iconv program"
8189 iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG"
8190 if test "$?" -ne 0 ; then
8191 echores "no"
8192 echo "No working iconv program found, use "
8193 echo "--charset=UTF-8 to continue anyway."
8194 echo "If you also have problems with iconv library functions use --charset=noconv."
8195 echo "Messages in the GTK-2 interface will be broken then."
8196 exit 1
8197 else
8198 echores "yes"
8202 #############################################################################
8204 echocheck "automatic gdb attach"
8205 if test "$_crash_debug" = yes ; then
8206 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
8207 else
8208 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
8209 _crash_debug=no
8211 echores "$_crash_debug"
8213 echocheck "compiler support for noexecstack"
8214 cat > $TMPC <<EOF
8215 int main(void) { return 0; }
8217 if cc_check -Wl,-z,noexecstack ; then
8218 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
8219 echores "yes"
8220 else
8221 echores "no"
8224 echocheck "linker support for --nxcompat --no-seh --dynamicbase"
8225 if cc_check "-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
8226 extra_ldflags="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
8227 echores "yes"
8228 else
8229 echores "no"
8233 # Dynamic linking flags
8234 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
8235 _ld_dl_dynamic=''
8236 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
8237 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
8238 _ld_dl_dynamic='-rdynamic'
8241 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
8242 bsdos && extra_ldflags="$extra_ldflags -ldvd"
8243 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
8245 def_debug='#undef MP_DEBUG'
8246 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
8249 echocheck "joystick"
8250 def_joystick='#undef CONFIG_JOYSTICK'
8251 if test "$_joystick" = yes ; then
8252 if linux ; then
8253 # TODO add some check
8254 def_joystick='#define CONFIG_JOYSTICK 1'
8255 else
8256 _joystick="no"
8257 _res_comment="unsupported under $system_name"
8260 echores "$_joystick"
8262 echocheck "lirc"
8263 if test "$_lirc" = auto ; then
8264 _lirc=no
8265 cat > $TMPC <<EOF
8266 #include <lirc/lirc_client.h>
8267 int main(void) { return 0; }
8269 cc_check -llirc_client && _lirc=yes
8271 if test "$_lirc" = yes ; then
8272 def_lirc='#define CONFIG_LIRC 1'
8273 libs_mplayer="$libs_mplayer -llirc_client"
8274 else
8275 def_lirc='#undef CONFIG_LIRC'
8277 echores "$_lirc"
8279 echocheck "lircc"
8280 if test "$_lircc" = auto ; then
8281 _lircc=no
8282 cat > $TMPC <<EOF
8283 #include <lirc/lircc.h>
8284 int main(void) { return 0; }
8286 cc_check -llircc && _lircc=yes
8288 if test "$_lircc" = yes ; then
8289 def_lircc='#define CONFIG_LIRCC 1'
8290 libs_mplayer="$libs_mplayer -llircc"
8291 else
8292 def_lircc='#undef CONFIG_LIRCC'
8294 echores "$_lircc"
8296 if arm; then
8297 # Detect maemo development platform libraries availability (http://www.maemo.org),
8298 # they are used when run on Nokia 770|8x0
8299 echocheck "maemo (Nokia 770|8x0)"
8300 if test "$_maemo" = auto ; then
8301 _maemo=no
8302 cat > $TMPC << EOF
8303 #include <libosso.h>
8304 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
8306 cc_check $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
8308 if test "$_maemo" = yes ; then
8309 def_maemo='#define CONFIG_MAEMO 1'
8310 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
8311 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
8312 else
8313 def_maemo='#undef CONFIG_MAEMO'
8315 echores "$_maemo"
8318 #############################################################################
8320 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
8321 # the OMF format needs to come after the 'extern symbol prefix' check, which
8322 # uses nm.
8323 if os2 ; then
8324 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
8327 # linker paths should be the same for mencoder and mplayer
8328 _ld_tmp=""
8329 for I in $libs_mplayer ; do
8330 _tmp=$(echo $I | sed -e 's/^-L.*$//')
8331 if test -z "$_tmp" ; then
8332 extra_ldflags="$extra_ldflags $I"
8333 else
8334 _ld_tmp="$_ld_tmp $I"
8336 done
8337 libs_mplayer=$_ld_tmp
8340 #############################################################################
8341 # 64 bit file offsets?
8342 if test "$_largefiles" = yes || freebsd ; then
8343 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
8344 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
8345 # dvdread support requires this (for off64_t)
8346 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
8350 CXXFLAGS=" $CFLAGS -D__STDC_LIMIT_MACROS"
8352 # This must be the last test to be performed. Any other tests following it
8353 # could fail due to linker errors. libdvdnavmini is intentionally not linked
8354 # against libdvdread (to permit MPlayer to use its own copy of the library).
8355 # So any compilation using the flags added here but not linking against
8356 # libdvdread can fail.
8357 echocheck "DVD support (libdvdnav)"
8358 dvdnav_internal=no
8359 if test "$_dvdnav" = auto ; then
8360 if test "$_dvdread_internal" = yes ; then
8361 _dvdnav=yes
8362 dvdnav_internal=yes
8363 _res_comment="internal"
8364 else
8365 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
8368 if test "$_dvdnav" = auto ; then
8369 cat > $TMPC <<EOF
8370 #include <inttypes.h>
8371 #include <dvdnav/dvdnav.h>
8372 int main(void) { dvdnav_t *dvd=0; return 0; }
8374 _dvdnav=no
8375 _dvdnavdir=$($_dvdnavconfig --cflags)
8376 _dvdnavlibs=$($_dvdnavconfig --libs)
8377 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
8379 if test "$_dvdnav" = yes ; then
8380 _largefiles=yes
8381 def_dvdnav='#define CONFIG_DVDNAV 1'
8382 if test "$dvdnav_internal" = yes ; then
8383 cflags_libdvdnav="-Ilibdvdnav"
8384 _inputmodules="dvdnav(internal) $_inputmodules"
8385 else
8386 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
8387 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
8388 _inputmodules="dvdnav $_inputmodules"
8390 else
8391 def_dvdnav='#undef CONFIG_DVDNAV'
8392 _noinputmodules="dvdnav $_noinputmodules"
8394 echores "$_dvdnav"
8396 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
8397 # Read dvdnav comment above.
8399 #############################################################################
8400 echo "Creating config.mak"
8401 cat > config.mak << EOF
8402 # -------- Generated by configure -----------
8404 # Ensure that locale settings do not interfere with shell commands.
8405 export LC_ALL = C
8407 CONFIGURATION = $_configuration
8409 CHARSET = $_charset
8410 DOC_LANGS = $language_doc
8411 DOC_LANG_ALL = $doc_lang_all
8412 MAN_LANGS = $language_man
8413 MAN_LANG_ALL = $man_lang_all
8415 prefix = \$(DESTDIR)$_prefix
8416 BINDIR = \$(DESTDIR)$_bindir
8417 DATADIR = \$(DESTDIR)$_datadir
8418 LIBDIR = \$(DESTDIR)$_libdir
8419 MANDIR = \$(DESTDIR)$_mandir
8420 CONFDIR = \$(DESTDIR)$_confdir
8422 AR = $_ar
8423 AS = $_cc
8424 CC = $_cc
8425 CXX = $_cc
8426 HOST_CC = $_host_cc
8427 YASM = $_yasm
8428 INSTALL = $_install
8429 INSTALLSTRIP = $_install_strip
8430 RANLIB = $_ranlib
8431 WINDRES = $_windres
8433 CFLAGS = $CFLAGS $extra_cflags
8434 ASFLAGS = $CFLAGS $extra_cflags
8435 OPTFLAGS = $CFLAGS $extra_cflags
8436 CXXFLAGS = $CXXFLAGS $extra_cflags $extra_cxxflags
8437 CFLAGS_DHAHELPER = $cflags_dhahelper
8438 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
8439 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
8440 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
8441 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
8442 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
8443 CFLAGS_STACKREALIGN = $cflags_stackrealign
8444 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
8445 CFLAGS_TREMOR_LOW = $cflags_tremor_low
8446 YASMFLAGS = $YASMFLAGS
8448 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
8449 EXTRALIBS_MPLAYER = $libs_mplayer
8450 EXTRALIBS_MENCODER = $libs_mencoder
8452 DEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.h,\$^) | sed "s,[0-9a-z._-]*: \(\$(SRC_DIR)/\)*\([a-z0-9]*/\)[^/]* ,\\2&,"
8454 MPDEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.xpm,\$(filter-out %.h,$^)) | sed -e "s,[0-9a-z._-]*: \([a-z0-9/]*/\)[^/]* ,\1&," -e "s,\(.*\)\.o: ,\1.d &,"
8455 MPDEPEND_CMD_CXX = \$(CC) -MM \$(CXXFLAGS) \$(filter-out %.hh,\$(filter-out %.h,$^)) | sed -e "s,[0-9a-z._-]*: \([a-z0-9/]*/\)[^/]* ,\1&," -e "s,\(.*\)\.o: ,\1.d &,"
8457 GETCH = $_getch
8458 HELP_FILE = $_mp_help
8459 TIMER = $_timer
8461 EXESUF = $_exesuf
8462 EXESUFS_ALL = .exe
8464 $_target_arch
8465 $_target_subarch
8466 $(echo $_cpuexts | tr '[a-z] ' '[A-Z]\n' | sed 's/^/HAVE_/;s/$/=yes/')
8468 MENCODER = $_mencoder
8469 MPLAYER = $_mplayer
8471 NEED_GETTIMEOFDAY = $_need_gettimeofday
8472 NEED_GLOB = $_need_glob
8473 NEED_MMAP = $_need_mmap
8474 NEED_SETENV = $_need_setenv
8475 NEED_SHMEM = $_need_shmem
8476 NEED_STRSEP = $_need_strsep
8477 NEED_SWAB = $_need_swab
8478 NEED_VSSCANF = $_need_vsscanf
8480 # features
8481 3DFX = $_3dfx
8482 AA = $_aa
8483 ALSA1X = $_alsa1x
8484 ALSA9 = $_alsa9
8485 ALSA5 = $_alsa5
8486 APPLE_IR = $_apple_ir
8487 APPLE_REMOTE = $_apple_remote
8488 ARTS = $_arts
8489 AUDIO_INPUT = $_audio_input
8490 BITMAP_FONT = $_bitmap_font
8491 BL = $_bl
8492 CACA = $_caca
8493 CDDA = $_cdda
8494 CDDB = $_cddb
8495 COREAUDIO = $_coreaudio
8496 COREVIDEO = $_corevideo
8497 DART = $_dart
8498 DFBMGA = $_dfbmga
8499 DGA = $_dga
8500 DIRECT3D = $_direct3d
8501 DIRECTFB = $_directfb
8502 DIRECTX = $_directx
8503 DVBIN = $_dvbin
8504 DVDNAV = $_dvdnav
8505 DVDNAV_INTERNAL = $dvdnav_internal
8506 DVDREAD = $_dvdread
8507 DVDREAD_INTERNAL = $_dvdread_internal
8508 DXR2 = $_dxr2
8509 DXR3 = $_dxr3
8510 ESD = $_esd
8511 FAAC=$_faac
8512 FAAD = $_faad
8513 FAAD_INTERNAL = $_faad_internal
8514 FASTMEMCPY = $_fastmemcpy
8515 $mak_hardcoded_tables
8516 $mak_libavcodec_mpegaudio_hp
8517 FBDEV = $_fbdev
8518 FREETYPE = $_freetype
8519 FTP = $_ftp
8520 GIF = $_gif
8521 GGI = $_ggi
8522 GL = $_gl
8523 GL_WIN32 = $_gl_win32
8524 GL_X11 = $_gl_x11
8525 MATRIXVIEW = $matrixview
8526 GUI = $_gui
8527 GUI_GTK = $_gui_gtk
8528 GUI_WIN32 = $_gui_win32
8529 HAVE_POSIX_SELECT = $_posix_select
8530 HAVE_SYS_MMAN_H = $_mman
8531 IVTV = $_ivtv
8532 JACK = $_jack
8533 JOYSTICK = $_joystick
8534 JPEG = $_jpeg
8535 KVA = $_kva
8536 LADSPA = $_ladspa
8537 LIBA52 = $_liba52
8538 LIBA52_INTERNAL = $_liba52_internal
8539 LIBASS = $_ass
8540 LIBASS_INTERNAL = $ass_internal
8541 LIBBS2B = $_libbs2b
8542 LIBDCA = $_libdca
8543 LIBDV = $_libdv
8544 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
8545 LIBLZO = $_liblzo
8546 LIBMAD = $_mad
8547 LIBMENU = $_menu
8548 LIBMENU_DVBIN = $_menu_dvbin
8549 LIBMPEG2 = $_libmpeg2
8550 LIBNEMESI = $_nemesi
8551 LIBNUT = $_libnut
8552 LIBSMBCLIENT = $_smb
8553 LIBTHEORA = $_theora
8554 LIRC = $_lirc
8555 LIVE555 = $_live
8556 MACOSX_BUNDLE = $_macosx_bundle
8557 MACOSX_FINDER = $_macosx_finder
8558 MD5SUM = $_md5sum
8559 MGA = $_mga
8560 MNG = $_mng
8561 MP3LAME = $_mp3lame
8562 MP3LIB = $_mp3lib
8563 MUSEPACK = $_musepack
8564 NAS = $_nas
8565 NATIVE_RTSP = $_native_rtsp
8566 NETWORK = $_network
8567 OPENAL = $_openal
8568 OSS = $_ossaudio
8569 PE_EXECUTABLE = $_pe_executable
8570 PNG = $_png
8571 PNM = $_pnm
8572 PRIORITY = $_priority
8573 PULSE = $_pulse
8574 PVR = $_pvr
8575 QTX_CODECS = $_qtx
8576 QTX_CODECS_WIN32 = $_qtx_codecs_win32
8577 QTX_EMULATION = $_qtx_emulation
8578 QUARTZ = $_quartz
8579 RADIO=$_radio
8580 RADIO_CAPTURE=$_radio_capture
8581 REAL_CODECS = $_real
8582 S3FB = $_s3fb
8583 SDL = $_sdl
8584 SPEEX = $_speex
8585 STREAM_CACHE = $_stream_cache
8586 SGIAUDIO = $_sgiaudio
8587 SUNAUDIO = $_sunaudio
8588 SVGA = $_svga
8589 TDFXFB = $_tdfxfb
8590 TDFXVID = $_tdfxvid
8591 TGA = $_tga
8592 TOOLAME=$_toolame
8593 TREMOR_INTERNAL = $_tremor_internal
8594 TV = $_tv
8595 TV_BSDBT848 = $_tv_bsdbt848
8596 TV_DSHOW = $_tv_dshow
8597 TV_V4L = $_tv_v4l
8598 TV_V4L1 = $_tv_v4l1
8599 TV_V4L2 = $_tv_v4l2
8600 TWOLAME=$_twolame
8601 UNRAR_EXEC = $_unrar_exec
8602 V4L2 = $_v4l2
8603 VCD = $_vcd
8604 VDPAU = $_vdpau
8605 VESA = $_vesa
8606 VIDIX = $_vidix
8607 VIDIX_PCIDB = $_vidix_pcidb_val
8608 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
8609 VIDIX_IVTV=$_vidix_drv_ivtv
8610 VIDIX_MACH64=$_vidix_drv_mach64
8611 VIDIX_MGA=$_vidix_drv_mga
8612 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
8613 VIDIX_NVIDIA=$_vidix_drv_nvidia
8614 VIDIX_PM2=$_vidix_drv_pm2
8615 VIDIX_PM3=$_vidix_drv_pm3
8616 VIDIX_RADEON=$_vidix_drv_radeon
8617 VIDIX_RAGE128=$_vidix_drv_rage128
8618 VIDIX_S3=$_vidix_drv_s3
8619 VIDIX_SH_VEU=$_vidix_drv_sh_veu
8620 VIDIX_SIS=$_vidix_drv_sis
8621 VIDIX_UNICHROME=$_vidix_drv_unichrome
8622 VORBIS = $_vorbis
8623 VSTREAM = $_vstream
8624 WII = $_wii
8625 WIN32DLL = $_win32dll
8626 WIN32WAVEOUT = $_win32waveout
8627 WIN32_EMULATION = $_win32_emulation
8628 WINVIDIX = $winvidix
8629 X11 = $_x11
8630 X264 = $_x264
8631 XANIM_CODECS = $_xanim
8632 XMGA = $_xmga
8633 XMMS_PLUGINS = $_xmms
8634 XV = $_xv
8635 XVID4 = $_xvid
8636 XVIDIX = $xvidix
8637 XVMC = $_xvmc
8638 XVR100 = $_xvr100
8639 YUV4MPEG = $_yuv4mpeg
8640 ZR = $_zr
8642 # FFmpeg
8643 LIBAVUTIL = $_libavutil
8644 LIBAVUTIL_A = $_libavutil_a
8645 LIBAVUTIL_SO = $_libavutil_so
8646 LIBAVCODEC = $_libavcodec
8647 LIBAVCODEC_A = $_libavcodec_a
8648 LIBAVCODEC_SO = $_libavcodec_so
8649 LIBAVFORMAT = $_libavformat
8650 LIBAVFORMAT_A = $_libavformat_a
8651 LIBAVFORMAT_SO = $_libavformat_so
8652 LIBPOSTPROC = $_libpostproc
8653 LIBPOSTPROC_A = $_libpostproc_a
8654 LIBPOSTPROC_SO = $_libpostproc_so
8655 LIBSWSCALE = $_libswscale
8656 LIBSWSCALE_A = $_libswscale_a
8657 LIBSWSCALE_SO = $_libswscale_so
8659 HOSTCC=\$(HOST_CC)
8660 HOSTCFLAGS=-D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -O3
8661 HOSTLIBS=-lm
8662 CC_O=-o \$@
8663 LD=gcc
8664 CONFIG_STATIC=yes
8665 SRC_PATH=..
8666 BUILD_ROOT=..
8667 LIBPREF=lib
8668 LIBSUF=.a
8669 LIBNAME=\$(LIBPREF)\$(NAME)\$(LIBSUF)
8670 FULLNAME=\$(NAME)\$(BUILDSUF)
8672 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
8673 CONFIG_AANDCT=yes
8674 CONFIG_DCT=yes
8675 CONFIG_FFT=yes
8676 CONFIG_FFT_MMX=$fft_mmx
8677 CONFIG_GOLOMB=yes
8678 CONFIG_LPC=yes
8679 CONFIG_MDCT=yes
8680 CONFIG_RDFT=yes
8682 CONFIG_BZLIB=$bzlib
8683 CONFIG_ENCODERS=yes
8684 CONFIG_GPL=yes
8685 CONFIG_LIBDIRAC_DECODER=$_libdirac_lavc
8686 CONFIG_LIBDIRAC_ENCODER=$_libdirac_lavc
8687 CONFIG_LIBFAAC_ENCODER=$_faac_lavc
8688 CONFIG_LIBMP3LAME_ENCODER=$_mp3lame_lavc
8689 CONFIG_LIBOPENCORE_AMRNB_DECODER=$_libopencore_amrnb
8690 CONFIG_LIBOPENCORE_AMRNB_ENCODER=$_libopencore_amrnb
8691 CONFIG_LIBOPENCORE_AMRWB_DECODER=$_libopencore_amrwb
8692 OCNFIG_LIBOPENJPEG_DECODER = $libopenjpeg
8693 OCNFIG_LIBOPENJPEG_ENCODER = $libopenjpeg
8694 CONFIG_LIBSCHROEDINGER_DECODER=$_libschroedinger_lavc
8695 CONFIG_LIBSCHROEDINGER_ENCODER=$_libschroedinger_lavc
8696 CONFIG_LIBVORBIS_ENCODER=$_libvorbis
8697 CONFIG_LIBX264_ENCODER=$_x264_lavc
8698 CONFIG_LIBXVID_ENCODER=$_xvid_lavc
8699 CONFIG_MLIB = $_mlib
8700 CONFIG_MUXERS=$_mencoder
8701 CONFIG_POSTPROC = yes
8702 # Prevent building libavcodec/imgresample.c with conflicting symbols
8703 CONFIG_SWSCALE=yes
8704 CONFIG_VDPAU=$_vdpau
8705 CONFIG_XVMC=$_xvmc
8706 CONFIG_ZLIB=$_zlib
8708 HAVE_PTHREADS = $_pthreads
8709 HAVE_SHM = $_shm
8710 HAVE_W32THREADS = $_w32threads
8711 HAVE_YASM = $_have_yasm
8713 $(echo $_libavdecoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8714 $(echo $_libavencoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8715 $(echo $_libavparsers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8716 $(echo $_libavdemuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8717 $(echo $_libavmuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8718 $(echo $_libavprotocols | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8719 $(echo $_libavbsfs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8720 $(echo $_libavhwaccels | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8723 #############################################################################
8725 ff_config_enable () {
8726 _nprefix=$3;
8727 test -z "$_nprefix" && _nprefix='CONFIG'
8728 for part in $1; do
8729 if $(echo $2 | grep -q -E "(^| )$part($| )"); then
8730 echo "#define ${_nprefix}_$part 1"
8731 else
8732 echo "#define ${_nprefix}_$part 0"
8734 done
8737 echo "Creating config.h"
8738 cat > $TMPH << EOF
8739 /*----------------------------------------------------------------------------
8740 ** This file has been automatically generated by configure any changes in it
8741 ** will be lost when you run configure again.
8742 ** Instead of modifying definitions here, use the --enable/--disable options
8743 ** of the configure script! See ./configure --help for details.
8744 *---------------------------------------------------------------------------*/
8746 #ifndef MPLAYER_CONFIG_H
8747 #define MPLAYER_CONFIG_H
8749 /* Undefine this if you do not want to select mono audio (left or right)
8750 with a stereo MPEG layer 2/3 audio stream. The command line option
8751 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
8752 right-only), with 0 being the default.
8754 #define CONFIG_FAKE_MONO 1
8756 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
8757 #define MAX_OUTBURST 65536
8759 /* set up audio OUTBURST. Do not change this! */
8760 #define OUTBURST 512
8762 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8763 #undef FAST_OSD
8764 #undef FAST_OSD_TABLE
8766 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
8767 #define MPEG12_POSTPROC 1
8768 #define ATTRIBUTE_ALIGNED_MAX 16
8772 #define CONFIGURATION "$_configuration"
8774 #define MPLAYER_DATADIR "$_datadir"
8775 #define MPLAYER_CONFDIR "$_confdir"
8776 #define MPLAYER_LIBDIR "$_libdir"
8778 /* definitions needed by included libraries */
8779 #define HAVE_INTTYPES_H 1
8780 /* libmpeg2 + FFmpeg */
8781 $def_fast_inttypes
8782 /* libdvdcss */
8783 #define HAVE_ERRNO_H 1
8784 /* libdvdcss + libdvdread */
8785 #define HAVE_LIMITS_H 1
8786 /* libdvdcss + libfaad2 */
8787 #define HAVE_UNISTD_H 1
8788 /* libfaad2 + libdvdread */
8789 #define STDC_HEADERS 1
8790 #define HAVE_MEMCPY 1
8791 /* libfaad2 */
8792 #define HAVE_STRING_H 1
8793 #define HAVE_STRINGS_H 1
8794 #define HAVE_SYS_STAT_H 1
8795 #define HAVE_SYS_TYPES_H 1
8796 /* libdvdnav */
8797 #define READ_CACHE_TRACE 0
8798 /* libdvdread */
8799 #define HAVE_DLFCN_H 1
8800 $def_dvdcss
8803 /* system headers */
8804 $def_alloca_h
8805 $def_alsa_asoundlib_h
8806 $def_altivec_h
8807 $def_malloc_h
8808 $def_mman_h
8809 $def_mman_has_map_failed
8810 $def_soundcard_h
8811 $def_sys_asoundlib_h
8812 $def_sys_soundcard_h
8813 $def_sys_sysinfo_h
8814 $def_termios_h
8815 $def_termios_sys_h
8816 $def_winsock2_h
8819 /* system functions */
8820 $def_exp2
8821 $def_exp2f
8822 $def_gethostbyname2
8823 $def_gettimeofday
8824 $def_glob
8825 $def_langinfo
8826 $def_llrint
8827 $def_log2
8828 $def_log2f
8829 $def_lrint
8830 $def_lrintf
8831 $def_map_memalign
8832 $def_memalign
8833 $def_nanosleep
8834 $def_posix_select
8835 $def_round
8836 $def_roundf
8837 $def_select
8838 $def_setenv
8839 $def_shm
8840 $def_strsep
8841 $def_swab
8842 $def_sysi86
8843 $def_sysi86_iv
8844 $def_termcap
8845 $def_termios
8846 $def_truncf
8847 $def_vsscanf
8850 /* system-specific features */
8851 $def_asmalign_pot
8852 $def_builtin_expect
8853 $def_dl
8854 $def_extern_asm
8855 $def_extern_prefix
8856 $def_iconv
8857 $def_kstat
8858 $def_macosx_bundle
8859 $def_macosx_finder
8860 $def_maemo
8861 $def_named_asm_args
8862 $def_priority
8863 $def_quicktime
8864 $def_restrict_keyword
8865 $def_rtc
8866 $def_unrar_exec
8869 /* configurable options */
8870 $def_charset
8871 $def_crash_debug
8872 $def_debug
8873 $def_dynamic_plugins
8874 $def_fastmemcpy
8875 $def_hardcoded_tables
8876 $def_menu
8877 $def_runtime_cpudetection
8878 $def_sighandler
8879 $def_sortsub
8880 $def_stream_cache
8881 $def_pthread_cache
8884 /* CPU stuff */
8885 #define __CPU__ $iproc
8886 $def_words_endian
8887 $def_bigendian
8888 $(ff_config_enable "$_arch_all" "$_arch" "ARCH")
8889 $(ff_config_enable "$_cpuexts_all" "$_cpuexts" "HAVE")
8892 /* DVD/VCD/CD */
8893 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
8894 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
8895 $def_bsdi_dvd
8896 $def_cddb
8897 $def_cdio
8898 $def_cdparanoia
8899 $def_cdrom
8900 $def_dvd
8901 $def_dvd_bsd
8902 $def_dvd_darwin
8903 $def_dvd_linux
8904 $def_dvd_openbsd
8905 $def_dvdio
8906 $def_dvdnav
8907 $def_dvdread
8908 $def_hpux_scsi_h
8909 $def_libcdio
8910 $def_sol_scsi_h
8911 $def_vcd
8914 /* codec libraries */
8915 $def_faac
8916 $def_faad
8917 $def_faad_internal
8918 $def_liba52
8919 $def_liba52_internal
8920 $def_libdca
8921 $def_libdv
8922 $def_liblzo
8923 $def_libmpeg2
8924 $def_mad
8925 $def_mp3lame
8926 $def_mp3lame_preset
8927 $def_mp3lame_preset_medium
8928 $def_mp3lib
8929 $def_musepack
8930 $def_speex
8931 $def_theora
8932 $def_toolame
8933 $def_tremor
8934 $def_twolame
8935 $def_vorbis
8936 $def_x264
8937 $def_xvid
8938 $def_zlib
8940 $def_libnut
8943 /* binary codecs */
8944 $def_qtx
8945 $def_qtx_win32
8946 $def_real
8947 $def_real_path
8948 $def_win32_loader
8949 $def_win32dll
8950 #define WIN32_PATH "$_win32codecsdir"
8951 $def_xanim
8952 $def_xanim_path
8953 $def_xmms
8954 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
8957 /* GUI */
8958 $def_gtk2
8959 $def_gui
8960 $def_xshape
8963 /* Audio output drivers */
8964 $def_alsa
8965 $def_alsa1x
8966 $def_alsa5
8967 $def_alsa9
8968 $def_arts
8969 $def_coreaudio
8970 $def_dart
8971 $def_esd
8972 $def_esd_latency
8973 $def_jack
8974 $def_nas
8975 $def_openal
8976 $def_openal_h
8977 $def_ossaudio
8978 $def_ossaudio_devdsp
8979 $def_ossaudio_devmixer
8980 $def_pulse
8981 $def_sgiaudio
8982 $def_sunaudio
8983 $def_win32waveout
8985 $def_ladspa
8986 $def_libbs2b
8989 /* input */
8990 $def_apple_ir
8991 $def_apple_remote
8992 $def_ioctl_bt848_h_name
8993 $def_ioctl_meteor_h_name
8994 $def_joystick
8995 $def_lirc
8996 $def_lircc
8997 $def_pvr
8998 $def_radio
8999 $def_radio_bsdbt848
9000 $def_radio_capture
9001 $def_radio_v4l
9002 $def_radio_v4l2
9003 $def_tv
9004 $def_tv_bsdbt848
9005 $def_tv_dshow
9006 $def_tv_v4l
9007 $def_tv_v4l1
9008 $def_tv_v4l2
9011 /* font stuff */
9012 $def_ass
9013 $def_ass_internal
9014 $def_bitmap_font
9015 $def_enca
9016 $def_fontconfig
9017 $def_freetype
9018 $def_fribidi
9021 /* networking */
9022 $def_closesocket
9023 $def_ftp
9024 $def_inet6
9025 $def_inet_aton
9026 $def_inet_pton
9027 $def_live
9028 $def_nemesi
9029 $def_network
9030 $def_smb
9031 $def_socklen_t
9032 $def_vstream
9033 $def_addrinfo
9034 $def_getaddrinfo
9035 $def_sockaddr_storage
9038 /* libvo options */
9039 $def_3dfx
9040 $def_aa
9041 $def_bl
9042 $def_caca
9043 $def_corevideo
9044 $def_dfbmga
9045 $def_dga
9046 $def_dga1
9047 $def_dga2
9048 $def_direct3d
9049 $def_directfb
9050 $def_directfb_version
9051 $def_directx
9052 $def_dvb
9053 $def_dvb_head
9054 $def_dvbin
9055 $def_dxr2
9056 $def_dxr3
9057 $def_fbdev
9058 $def_ggi
9059 $def_ggiwmh
9060 $def_gif
9061 $def_gif_4
9062 $def_gif_tvt_hack
9063 $def_gl
9064 $def_gl_win32
9065 $def_gl_x11
9066 $def_matrixview
9067 $def_ivtv
9068 $def_jpeg
9069 $def_kva
9070 $def_md5sum
9071 $def_mga
9072 $def_mng
9073 $def_png
9074 $def_pnm
9075 $def_quartz
9076 $def_s3fb
9077 $def_sdl
9078 $def_sdl_sdl_h
9079 $def_sdlbuggy
9080 $def_svga
9081 $def_tdfxfb
9082 $def_tdfxvid
9083 $def_tga
9084 $def_v4l2
9085 $def_vdpau
9086 $def_vesa
9087 $def_vidix
9088 $def_vidix_drv_cyberblade
9089 $def_vidix_drv_ivtv
9090 $def_vidix_drv_mach64
9091 $def_vidix_drv_mga
9092 $def_vidix_drv_mga_crtc2
9093 $def_vidix_drv_nvidia
9094 $def_vidix_drv_pm3
9095 $def_vidix_drv_radeon
9096 $def_vidix_drv_rage128
9097 $def_vidix_drv_s3
9098 $def_vidix_drv_sh_veu
9099 $def_vidix_drv_sis
9100 $def_vidix_drv_unichrome
9101 $def_vidix_pfx
9102 $def_vm
9103 $def_wii
9104 $def_x11
9105 $def_xdpms
9106 $def_xf86keysym
9107 $def_xinerama
9108 $def_xmga
9109 $def_xss
9110 $def_xv
9111 $def_xvmc
9112 $def_xvr100
9113 $def_yuv4mpeg
9114 $def_zr
9117 /* FFmpeg */
9118 $def_libavcodec
9119 $def_libavcodec_a
9120 $def_libavcodec_so
9121 $def_libavformat
9122 $def_libavformat_a
9123 $def_libavformat_so
9124 $def_libavutil
9125 $def_libavutil_a
9126 $def_libavutil_so
9127 $def_libpostproc
9128 $def_libpostproc_a
9129 $def_libpostproc_so
9130 $def_libswscale
9131 $def_libswscale_a
9132 $def_libswscale_so
9134 #define CONFIG_DECODERS 1
9135 #define CONFIG_ENCODERS 1
9136 #define CONFIG_DEMUXERS 1
9137 $def_muxers
9139 $def_arpa_inet_h
9140 $def_bswap
9141 $def_bzlib
9142 $def_dcbzl
9143 $def_dos_paths
9144 $def_fast_64bit
9145 $def_fast_unaligned
9146 $def_libavcodec_mpegaudio_hp
9147 $def_memalign_hack
9148 $def_mlib
9149 $def_mkstemp
9150 $def_posix_memalign
9151 $def_pthreads
9152 $def_ten_operands
9153 $def_threads
9154 $def_xform_asm
9155 $def_yasm
9157 #define CONFIG_FASTDIV 0
9158 #define CONFIG_FFSERVER 0
9159 #define CONFIG_GPL 1
9160 #define CONFIG_GRAY 0
9161 #define CONFIG_LIBVORBIS 0
9162 #define CONFIG_POWERPC_PERF 0
9163 #define CONFIG_SMALL 0
9164 #define CONFIG_SWSCALE 1
9165 #define CONFIG_SWSCALE_ALPHA 1
9167 #if defined(HAVE_AF_INET6) && (!defined(_WIN32) || defined(__CYGWIN__))
9168 #define CONFIG_IPV6 1
9169 #else
9170 #define CONFIG_IPV6 0
9171 #endif
9173 #define HAVE_ATTRIBUTE_MAY_ALIAS 1
9174 #define HAVE_ATTRIBUTE_PACKED 1
9175 #define HAVE_GETHRTIME 0
9176 #define HAVE_INLINE_ASM 1
9177 #define HAVE_LDBRX 0
9178 #define HAVE_POLL_H 1
9179 #define HAVE_PPC4XX 0
9180 #define HAVE_SETMODE 0
9181 #define HAVE_STRUCT_IPV6_MREQ 1
9182 #define HAVE_STRUCT_SOCKADDR_IN6 1
9183 #define HAVE_SYS_SELECT_H 0
9184 #define HAVE_VFP_ARGS 1
9185 #define HAVE_VIRTUALALLOC 0
9187 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
9188 #define CONFIG_AANDCT 1
9189 #define CONFIG_FFT 1
9190 #define CONFIG_GOLOMB 1
9191 #define CONFIG_LPC 1
9192 #define CONFIG_MDCT 1
9193 #define CONFIG_RDFT 1
9195 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
9196 $def_ebx_available
9197 #ifndef MP_DEBUG
9198 #define HAVE_EBP_AVAILABLE 1
9199 #else
9200 #define HAVE_EBP_AVAILABLE 0
9201 #endif
9203 #define FFMPEG_CONFIGURATION "--enable-gpl --enable-postproc"
9204 #define FFMPEG_LICENSE "GPL version 2 or later"
9206 /* External libraries used through libavcodec. */
9207 $def_faac_lavc
9208 $def_libdirac_lavc
9209 $def_libopencore_amrnb
9210 $def_libopencore_amrwb
9211 $def_libopenjpeg
9212 $def_libschroedinger_lavc
9213 $def_mp3lame_lavc
9214 $def_x264_lavc
9215 $def_xvid_lavc
9217 $(ff_config_enable "$_libavdecoders_all" "$_libavdecoders")
9218 $(ff_config_enable "$_libavencoders_all" "$_libavencoders")
9219 $(ff_config_enable "$_libavparsers_all" "$_libavparsers")
9220 $(ff_config_enable "$_libavdemuxers_all" "$_libavdemuxers")
9221 $(ff_config_enable "$_libavmuxers_all" "$_libavmuxers")
9222 $(ff_config_enable "$_libavprotocols_all" "$_libavprotocols")
9223 $(ff_config_enable "$_libavbsfs_all" "$_libavbsfs")
9224 $(ff_config_enable "$_libavhwaccels_all" "$_libavhwaccels")
9226 #endif /* MPLAYER_CONFIG_H */
9229 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
9230 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
9232 ############################################################################
9234 # Create avconfig.h for FFmpeg.
9235 cat > "$TMPH" << EOF
9236 /* Generated by mpconfigure */
9237 #ifndef AVUTIL_AVCONFIG_H
9238 #define AVUTIL_AVCONFIG_H
9239 $def_av_bigendian
9240 #endif /* AVUTIL_AVCONFIG_H */
9243 # Do not overwrite an unchanged avconfig.h to avoid superfluous rebuilds.
9244 cmp -s "$TMPH" libavutil/avconfig.h || mv -f "$TMPH" libavutil/avconfig.h
9246 #############################################################################
9248 cat << EOF
9250 Config files successfully generated by ./configure $_configuration !
9252 Install prefix: $_prefix
9253 Data directory: $_datadir
9254 Config direct.: $_confdir
9256 Byte order: $_byte_order
9257 Optimizing for: $_optimizing
9259 Languages:
9260 Messages/GUI: $language_msg
9261 Manual pages: $language_man
9262 Documentation: $language_doc
9264 Enabled optional drivers:
9265 Input: $_inputmodules
9266 Codecs: $_codecmodules
9267 Audio output: $_aomodules
9268 Video output: $_vomodules
9270 Disabled optional drivers:
9271 Input: $_noinputmodules
9272 Codecs: $_nocodecmodules
9273 Audio output: $_noaomodules
9274 Video output: $_novomodules
9276 'config.h' and 'config.mak' contain your configuration options.
9277 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
9278 compile *** DO NOT REPORT BUGS if you tweak these files ***
9280 'make' will now compile MPlayer and 'make install' will install it.
9281 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
9286 if test "$_mtrr" = yes ; then
9287 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)"
9288 echo
9291 if ! x86_32; then
9292 cat <<EOF
9293 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
9294 operating system ($system_name). You may encounter a few files that cannot
9295 be played due to missing open source video/audio codec support.
9301 cat <<EOF
9302 Check $TMPLOG if you wonder why an autodetection failed (make sure
9303 development headers/packages are installed).
9305 NOTE: The --enable-* parameters unconditionally force options on, completely
9306 skipping autodetection. This behavior is unlike what you may be used to from
9307 autoconf-based configure scripts that can decide to override you. This greater
9308 level of control comes at a price. You may have to provide the correct compiler
9309 and linker flags yourself.
9310 If you used one of these options (except --enable-gui and similar ones that
9311 turn on internal features) and experience a compilation or linking failure,
9312 make sure you have passed the necessary compiler/linker flags to configure.
9314 If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html.
9318 if test "$_warn_CFLAGS" = yes; then
9319 cat <<EOF
9321 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
9322 but:
9324 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
9326 It is strongly recommended to let MPlayer choose the correct CFLAGS!
9327 To do so, execute 'CFLAGS= ./configure <options>'
9332 # Last move:
9333 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"