Fix a bunch of typos in the stream cache code.
[mplayer/glamo.git] / configure
blob0e851da0be4733123d3c2044e5ead9e17fc19bdc
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]
222 Optional features:
223 --disable-mencoder disable MEncoder (A/V encoder) compilation [enable]
224 --disable-mplayer disable MPlayer compilation [enable]
225 --enable-gui enable GMPlayer compilation (GTK+ GUI) [disable]
226 --enable-gtk1 force using GTK 1.2 for the GUI [disable]
227 --disable-largefiles disable support for files > 2GB [enable]
228 --enable-linux-devfs set default devices to devfs [disable]
229 --enable-termcap use termcap database for key codes [autodetect]
230 --enable-termios use termios database for key codes [autodetect]
231 --disable-iconv disable iconv for encoding conversion [autodetect]
232 --disable-langinfo do not use langinfo [autodetect]
233 --enable-lirc enable LIRC (remote control) support [autodetect]
234 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
235 --enable-joystick enable joystick support [disable]
236 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
237 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
238 --disable-vm disable X video mode extensions [autodetect]
239 --disable-xf86keysym disable support for multimedia keys [autodetect]
240 --enable-radio enable radio interface [disable]
241 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
242 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
243 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
244 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
245 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
246 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
247 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
248 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
249 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
250 --disable-network disable networking [enable]
251 --enable-winsock2_h enable winsock2_h [autodetect]
252 --enable-smb enable Samba (SMB) input [autodetect]
253 --enable-live enable LIVE555 Streaming Media [autodetect]
254 --enable-nemesi enable Nemesi Streaming Media [autodetect]
255 --disable-vcd disable VCD support [autodetect]
256 --disable-dvdnav disable libdvdnav [autodetect]
257 --disable-dvdread disable libdvdread [autodetect]
258 --disable-dvdread-internal disable internal libdvdread [autodetect]
259 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
260 --disable-cdparanoia disable cdparanoia [autodetect]
261 --disable-cddb disable cddb [autodetect]
262 --disable-bitmap-font disable bitmap font support [enable]
263 --disable-freetype disable FreeType 2 font rendering [autodetect]
264 --disable-fontconfig disable fontconfig font lookup [autodetect]
265 --disable-unrarexec disable using of UnRAR executable [enabled]
266 --enable-menu enable OSD menu (not DVD menu) [disabled]
267 --disable-sortsub disable subtitle sorting [enabled]
268 --enable-fribidi enable the FriBiDi libs [autodetect]
269 --disable-enca disable ENCA charset oracle library [autodetect]
270 --disable-maemo disable maemo specific features [autodetect]
271 --enable-macosx-finder enable Mac OS X Finder invocation parameter
272 parsing [disabled]
273 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
274 --disable-inet6 disable IPv6 support [autodetect]
275 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
276 --disable-ftp disable FTP support [enabled]
277 --disable-vstream disable TiVo vstream client support [autodetect]
278 --disable-pthreads disable Posix threads support [autodetect]
279 --disable-w32threads disable Win32 threads support [autodetect]
280 --disable-ass-internal disable internal SSA/ASS subtitle support [autodetect]
281 --disable-ass disable SSA/ASS subtitle support [autodetect]
282 --enable-rpath enable runtime linker path for extra libs [disabled]
284 Codecs:
285 --enable-gif enable GIF support [autodetect]
286 --enable-png enable PNG input/output support [autodetect]
287 --enable-mng enable MNG input support [autodetect]
288 --enable-jpeg enable JPEG input/output support [autodetect]
289 --enable-libcdio enable libcdio support [autodetect]
290 --enable-liblzo enable liblzo support [autodetect]
291 --disable-win32dll disable Win32 DLL support [autodetect]
292 --disable-qtx disable QuickTime codecs support [enabled]
293 --disable-xanim disable XAnim codecs support [enabled]
294 --disable-real disable RealPlayer codecs support [enabled]
295 --disable-xvid disable Xvid [autodetect]
296 --disable-xvid-lavc disable Xvid in libavcodec [autodetect]
297 --disable-x264 disable x264 [autodetect]
298 --disable-x264-lavc disable x264 in libavcodec [autodetect]
299 --disable-libdirac-lavc disable Dirac in libavcodec [autodetect]
300 --disable-libschroedinger-lavc disable Dirac in libavcodec (Schroedinger
301 decoder) [autodetect]
302 --disable-libvpx-lavc disable libvpx in libavcodec [autodetect]
303 --disable-libnut disable libnut [autodetect]
304 --disable-libavutil_a disable static libavutil [autodetect]
305 --disable-libavcodec_a disable static libavcodec [autodetect]
306 --disable-libavformat_a disable static libavformat [autodetect]
307 --disable-libpostproc_a disable static libpostproc [autodetect]
308 --disable-libswscale_a disable static libswscale [autodetect]
309 --disable-libavutil_so disable shared libavutil [autodetect]
310 --disable-libavcodec_so disable shared libavcodec [autodetect]
311 --disable-libavformat_so disable shared libavformat [autodetect]
312 --disable-libpostproc_so disable shared libpostproc [autodetect]
313 --disable-libswscale_so disable shared libswscale [autodetect]
314 --disable-libavcodec_mpegaudio_hp disable high precision audio decoding
315 in libavcodec [enabled]
316 --disable-tremor-internal disable internal Tremor [enabled]
317 --enable-tremor-low enable lower accuracy internal Tremor [disabled]
318 --enable-tremor enable external Tremor [autodetect]
319 --disable-libvorbis disable libvorbis support [autodetect]
320 --disable-speex disable Speex support [autodetect]
321 --enable-theora enable OggTheora libraries [autodetect]
322 --enable-faad enable external FAAD2 (AAC) [autodetect]
323 --disable-faad-internal disable internal FAAD2 (AAC) [autodetect]
324 --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled]
325 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
326 --disable-faac-lavc disable support for FAAC in libavcodec [autodetect]
327 --disable-ladspa disable LADSPA plugin support [autodetect]
328 --disable-libbs2b disable libbs2b audio filter support [autodetect]
329 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
330 --disable-mad disable libmad (MPEG audio) support [autodetect]
331 --disable-mp3lame disable LAME MP3 encoding support [autodetect]
332 --disable-mp3lame-lavc disable LAME in libavcodec [autodetect]
333 --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect]
334 --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect]
335 --enable-xmms enable XMMS input plugin support [disabled]
336 --enable-libdca enable libdca support [autodetect]
337 --disable-mp3lib disable builtin mp3lib [autodetect]
338 --disable-liba52 disable liba52 [autodetect]
339 --disable-libmpeg2 disable builtin libmpeg2 [autodetect]
340 --disable-musepack disable musepack support [autodetect]
341 --disable-libopencore_amrnb disable libopencore_amr narrowband [autodetect]
342 --disable-libopencore_amrwb disable libopencore_amr wideband [autodetect]
343 --disable-libopenjpeg disable OpenJPEG (JPEG2000) input/output support [autodetect]
344 --disable-decoder=DECODER disable specified FFmpeg decoder
345 --enable-decoder=DECODER enable specified FFmpeg decoder
346 --disable-encoder=ENCODER disable specified FFmpeg encoder
347 --enable-encoder=ENCODER enable specified FFmpeg encoder
348 --disable-parser=PARSER disable specified FFmpeg parser
349 --enable-parser=PARSER enable specified FFmpeg parser
350 --disable-protocol=PROTO disable specified FFmpeg protocol
351 --enable-protocol=PROTO enable specified FFmpeg protocol
352 --disable-demuxer=DEMUXER disable specified FFmpeg demuxer
353 --enable-demuxer=DEMUXER enable specified FFmpeg demuxer
354 --disable-muxer=MUXER disable specified FFmpeg muxer
355 --enable-muxer=MUXER enable specified FFmpeg muxer
357 Video output:
358 --disable-vidix disable VIDIX [for x86 *nix]
359 --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
360 Available: cyberblade,ivtv,mach64,mga,mga_crtc2,
361 nvidia,pm2,pm3,radeon,rage128,s3,sis,unichrome
362 --disable-vidix-pcidb disable VIDIX PCI device name database
363 --enable-dhahelper enable VIDIX dhahelper support
364 --enable-svgalib_helper enable VIDIX svgalib_helper support
365 --enable-gl enable OpenGL video output [autodetect]
366 --disable-matrixview disable OpenGL MatrixView video output [autodetect]
367 --enable-dga2 enable DGA 2 support [autodetect]
368 --enable-dga1 enable DGA 1 support [autodetect]
369 --enable-vesa enable VESA video output [autodetect]
370 --enable-svga enable SVGAlib video output [autodetect]
371 --enable-sdl enable SDL video output [autodetect]
372 --enable-kva enable KVA video output [autodetect]
373 --enable-aa enable AAlib video output [autodetect]
374 --enable-caca enable CACA video output [autodetect]
375 --enable-ggi enable GGI video output [autodetect]
376 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
377 --enable-direct3d enable Direct3D video output [autodetect]
378 --enable-directx enable DirectX video output [autodetect]
379 --enable-dxr2 enable DXR2 video output [autodetect]
380 --enable-dxr3 enable DXR3/H+ video output [autodetect]
381 --enable-ivtv enable IVTV TV-Out video output [autodetect]
382 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
383 --enable-dvb enable DVB video output [autodetect]
384 --enable-mga enable mga_vid video output [autodetect]
385 --enable-xmga enable mga_vid X11 video output [autodetect]
386 --enable-xv enable Xv video output [autodetect]
387 --enable-xvmc enable XvMC acceleration [disable]
388 --enable-vdpau enable VDPAU acceleration [autodetect]
389 --enable-vm enable XF86VidMode support [autodetect]
390 --enable-xinerama enable Xinerama support [autodetect]
391 --enable-x11 enable X11 video output [autodetect]
392 --enable-xshape enable XShape support [autodetect]
393 --disable-xss disable screensaver support via xss [autodetect]
394 --enable-fbdev enable FBDev video output [autodetect]
395 --enable-mlib enable mediaLib video output (Solaris) [disable]
396 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
397 --enable-tdfxfb enable tdfxfb video output [disable]
398 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
399 --enable-wii enable Nintendo Wii/GameCube video output [disable]
400 --enable-directfb enable DirectFB video output [autodetect]
401 --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect]
402 --enable-bl enable Blinkenlights video output [disable]
403 --enable-tdfxvid enable tdfx_vid video output [disable]
404 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
405 --disable-tga disable Targa video output [enable]
406 --disable-pnm disable PNM video output [enable]
407 --disable-md5sum disable md5sum video output [enable]
408 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
409 --disable-corevideo disable CoreVideo video output [autodetect]
410 --disable-quartz disable Quartz video output [autodetect]
412 Audio output:
413 --disable-alsa disable ALSA audio output [autodetect]
414 --disable-ossaudio disable OSS audio output [autodetect]
415 --disable-arts disable aRts audio output [autodetect]
416 --disable-esd disable esd audio output [autodetect]
417 --disable-pulse disable Pulseaudio audio output [autodetect]
418 --disable-jack disable JACK audio output [autodetect]
419 --disable-openal disable OpenAL audio output [autodetect]
420 --disable-nas disable NAS audio output [autodetect]
421 --disable-sgiaudio disable SGI audio output [autodetect]
422 --disable-sunaudio disable Sun audio output [autodetect]
423 --disable-kai disable KAI audio output [autodetect]
424 --disable-dart disable DART audio output [autodetect]
425 --disable-win32waveout disable Windows waveout audio output [autodetect]
426 --disable-coreaudio disable CoreAudio audio output [autodetect]
427 --disable-select disable using select() on the audio device [enable]
429 Language options:
430 --charset=charset convert the console messages to this character set
431 --language-doc=lang language to use for the documentation [en]
432 --language-man=lang language to use for the man pages [en]
433 --language-msg=lang language to use for the messages and the GUI [en]
434 --language=lang default language to use [en]
435 Specific options override --language. You can pass a list of languages separated
436 by whitespace or commas instead of a single language. Nonexisting translations
437 will be dropped from each list. All documentation and man page translations
438 available in the list will be installed, for the messages the first available
439 translation will be used. The value "all" will activate all translations. The
440 LINGUAS environment variable is honored. In all cases the fallback is English.
441 Available values are: all $msg_lang_all
443 Miscellaneous options:
444 --enable-runtime-cpudetection enable runtime CPU detection [disable]
445 --enable-cross-compile enable cross-compilation [autodetect]
446 --cc=COMPILER C compiler to build MPlayer [gcc]
447 --host-cc=COMPILER C compiler for tools needed while building [gcc]
448 --as=ASSEMBLER assembler to build MPlayer [as]
449 --nm=NM nm tool to build MPlayer [nm]
450 --yasm=YASM Yasm assembler to build MPlayer [yasm]
451 --ar=AR librarian to build MPlayer [ar]
452 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
453 --windres=WINDRES windres to build MPlayer [windres]
454 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
455 --enable-static build a statically linked binary
456 --with-install=PATH path to a custom install program
458 Advanced options:
459 --enable-mmx enable MMX [autodetect]
460 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
461 --enable-3dnow enable 3DNow! [autodetect]
462 --enable-3dnowext enable extended 3DNow! [autodetect]
463 --enable-sse enable SSE [autodetect]
464 --enable-sse2 enable SSE2 [autodetect]
465 --enable-ssse3 enable SSSE3 [autodetect]
466 --enable-shm enable shm [autodetect]
467 --enable-altivec enable AltiVec (PowerPC) [autodetect]
468 --enable-armv5te enable DSP extensions (ARM) [autodetect]
469 --enable-armv6 enable ARMv6 (ARM) [autodetect]
470 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
471 --enable-armvfp enable ARM VFP (ARM) [autodetect]
472 --enable-neon enable NEON (ARM) [autodetect]
473 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
474 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
475 --enable-hardcoded-tables put tables in binary instead of calculating them at startup [disable]
476 --enable-big-endian force byte order to big-endian [autodetect]
477 --enable-debug[=1-3] compile-in debugging information [disable]
478 --enable-profile compile-in profiling information [disable]
479 --disable-sighandler disable sighandler for crashes [enable]
480 --enable-crash-debug enable automatic gdb attach on crash [disable]
481 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
483 Use these options if autodetection fails:
484 --extra-cflags=FLAGS extra CFLAGS
485 --extra-ldflags=FLAGS extra LDFLAGS
486 --extra-libs=FLAGS extra linker flags
487 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
488 --extra-libs-mencoder=FLAGS extra linker flags for MEncoder
489 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
491 --with-freetype-config=PATH path to freetype-config
492 --with-glib-config=PATH path to glib*-config
493 --with-gtk-config=PATH path to gtk*-config
494 --with-sdl-config=PATH path to sdl*-config
495 --with-dvdnav-config=PATH path to dvdnav-config
496 --with-dvdread-config=PATH path to dvdread-config
498 This configure script is NOT autoconf-based, even though its output is similar.
499 It will try to autodetect all configuration options. If you --enable an option
500 it will be forcefully turned on, skipping autodetection. This can break
501 compilation, so you need to know what you are doing.
503 exit 0
504 } #show_help()
506 # GOTCHA: the variables below defines the default behavior for autodetection
507 # and have - unless stated otherwise - at least 2 states : yes no
508 # If autodetection is available then the third state is: auto
509 _mmx=auto
510 _3dnow=auto
511 _3dnowext=auto
512 _mmxext=auto
513 _sse=auto
514 _sse2=auto
515 _ssse3=auto
516 _cmov=auto
517 _fast_cmov=auto
518 _fast_clz=auto
519 _armv5te=auto
520 _armv6=auto
521 _armv6t2=auto
522 _armvfp=auto
523 neon=auto
524 _iwmmxt=auto
525 _mtrr=auto
526 _altivec=auto
527 _install=install
528 _ranlib=ranlib
529 _windres=windres
530 _cc=cc
531 _ar=ar
532 test "$CC" && _cc="$CC"
533 _as=auto
534 _nm=auto
535 _yasm=yasm
536 _runtime_cpudetection=no
537 _cross_compile=auto
538 _prefix="/usr/local"
539 _libavutil_a=auto
540 _libavutil_so=auto
541 _libavcodec_a=auto
542 _libopencore_amrnb=auto
543 _libopencore_amrwb=auto
544 libopenjpeg=auto
545 _libavdecoders_all=$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
546 _libavdecoders=$(echo $_libavdecoders_all | sed -e 's/ LIB[A-Z0-9_]*_DECODER//g' -e s/MPEG4AAC_DECODER//)
547 _libavencoders_all=$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
548 _libavencoders=$(echo $_libavencoders_all | sed -e 's/ LIB[A-Z0-9_]*_ENCODER//g' -e s/AAC_ENCODER//)
549 _libavparsers_all=$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
550 _libavparsers=$_libavparsers_all
551 _libavbsfs_all=$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
552 _libavbsfs=$_libavbsfs_all
553 _libavhwaccels_all=$(sed -n 's/^[^#]*HWACCEL.*(.*, *\(.*\)).*/\1_hwaccel/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
554 # Disable all hardware accelerators for now.
555 _libavhwaccels=
556 _libavdemuxers_all=$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
557 _libavdemuxers=$(echo $_libavdemuxers_all | sed -e 's/ LIB[A-Z0-9_]*_DEMUXER//g' -e s/REDIR_DEMUXER// -e s/AVISYNTH_DEMUXER//)
558 _libavmuxers_all=$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
559 _libavmuxers=$(echo $_libavmuxers_all | sed -e 's/ LIB[A-Z0-9_]*_MUXER//g' -e s/RTP_MUXER// -e s/RTSP_MUXER//)
560 _libavprotocols_all=$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
561 _libavprotocols=$_libavprotocols_all
562 _libavcodec_so=auto
563 _libavformat_a=auto
564 _libavformat_so=auto
565 _libpostproc_a=auto
566 _libpostproc_so=auto
567 _libswscale_a=auto
568 _libswscale_so=auto
569 _libavcodec_mpegaudio_hp=yes
570 _mencoder=yes
571 _mplayer=yes
572 _x11=auto
573 _xshape=auto
574 _xss=auto
575 _dga1=auto
576 _dga2=auto
577 _xv=auto
578 _xvmc=no #auto when complete
579 _vdpau=auto
580 _sdl=auto
581 _kva=auto
582 _direct3d=auto
583 _directx=auto
584 _win32waveout=auto
585 _nas=auto
586 _png=auto
587 _mng=auto
588 _jpeg=auto
589 _pnm=yes
590 _md5sum=yes
591 _yuv4mpeg=yes
592 _gif=auto
593 _gl=auto
594 matrixview=yes
595 _ggi=auto
596 _ggiwmh=auto
597 _aa=auto
598 _caca=auto
599 _svga=auto
600 _vesa=auto
601 _fbdev=auto
602 _dvb=auto
603 _dxr2=auto
604 _dxr3=auto
605 _ivtv=auto
606 _v4l2=auto
607 _iconv=auto
608 _langinfo=auto
609 _rtc=auto
610 _ossaudio=auto
611 _arts=auto
612 _esd=auto
613 _pulse=auto
614 _jack=auto
615 _kai=auto
616 _dart=auto
617 _openal=auto
618 _libcdio=auto
619 _liblzo=auto
620 _mad=auto
621 _mp3lame=auto
622 _mp3lame_lavc=auto
623 _toolame=auto
624 _twolame=auto
625 _tremor=auto
626 _tremor_internal=yes
627 _tremor_low=no
628 _libvorbis=auto
629 _speex=auto
630 _theora=auto
631 _mp3lib=auto
632 _liba52=auto
633 _libdca=auto
634 _libmpeg2=auto
635 _faad=auto
636 _faad_internal=auto
637 _faad_fixed=no
638 _faac=auto
639 _faac_lavc=auto
640 _ladspa=auto
641 _libbs2b=auto
642 _xmms=no
643 _vcd=auto
644 _dvdnav=auto
645 _dvdnavconfig=dvdnav-config
646 _dvdreadconfig=dvdread-config
647 _dvdread=auto
648 _dvdread_internal=auto
649 _libdvdcss_internal=auto
650 _xanim=auto
651 _real=auto
652 _live=auto
653 _nemesi=auto
654 _native_rtsp=yes
655 _xinerama=auto
656 _mga=auto
657 _xmga=auto
658 _vm=auto
659 _xf86keysym=auto
660 _mlib=no #broken, thus disabled
661 _sgiaudio=auto
662 _sunaudio=auto
663 _alsa=auto
664 _fastmemcpy=yes
665 hardcoded_tables=no
666 _unrar_exec=auto
667 _win32dll=auto
668 _select=yes
669 _radio=no
670 _radio_capture=no
671 _radio_v4l=auto
672 _radio_v4l2=auto
673 _radio_bsdbt848=auto
674 _tv=yes
675 _tv_v4l1=auto
676 _tv_v4l2=auto
677 _tv_bsdbt848=auto
678 _tv_dshow=auto
679 _pvr=auto
680 _network=yes
681 _winsock2_h=auto
682 _struct_addrinfo=auto
683 _getaddrinfo=auto
684 _struct_sockaddr_storage=auto
685 _smb=auto
686 _vidix=auto
687 _vidix_pcidb=yes
688 _dhahelper=no
689 _svgalib_helper=no
690 _joystick=no
691 _xvid=auto
692 _xvid_lavc=auto
693 _x264=auto
694 _x264_lavc=auto
695 _libdirac_lavc=auto
696 _libschroedinger_lavc=auto
697 _libvpx_lavc=auto
698 _libnut=auto
699 _lirc=auto
700 _lircc=auto
701 _apple_remote=auto
702 _apple_ir=auto
703 _gui=no
704 _gtk1=no
705 _termcap=auto
706 _termios=auto
707 _3dfx=no
708 _s3fb=no
709 _wii=no
710 _tdfxfb=no
711 _tdfxvid=no
712 _xvr100=auto
713 _tga=yes
714 _directfb=auto
715 _zr=auto
716 _bl=no
717 _largefiles=yes
718 #language=en
719 _shm=auto
720 _linux_devfs=no
721 _charset="UTF-8"
722 _dynamic_plugins=no
723 _crash_debug=no
724 _sighandler=yes
725 _libdv=auto
726 _cdparanoia=auto
727 _cddb=auto
728 _big_endian=auto
729 _bitmap_font=yes
730 _freetype=auto
731 _fontconfig=auto
732 _menu=no
733 _qtx=auto
734 _maemo=auto
735 _coreaudio=auto
736 _corevideo=auto
737 _quartz=auto
738 quicktime=auto
739 _macosx_finder=no
740 _macosx_bundle=auto
741 _sortsub=yes
742 _freetypeconfig='freetype-config'
743 _fribidi=auto
744 _enca=auto
745 _inet6=auto
746 _gethostbyname2=auto
747 _ftp=yes
748 _musepack=auto
749 _vstream=auto
750 _pthreads=auto
751 _w32threads=auto
752 _ass=auto
753 ass_internal=yes
754 _rpath=no
755 _asmalign_pot=auto
756 _stream_cache=yes
757 _priority=no
758 def_dos_paths="#define HAVE_DOS_PATHS 0"
759 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
760 def_priority="#undef CONFIG_PRIORITY"
761 def_pthread_cache="#undef PTHREAD_CACHE"
762 _need_shmem=yes
763 for ac_option do
764 case "$ac_option" in
765 --help|-help|-h)
766 show_help
768 --prefix=*)
769 _prefix=$(echo $ac_option | cut -d '=' -f 2)
771 --bindir=*)
772 _bindir=$(echo $ac_option | cut -d '=' -f 2)
774 --datadir=*)
775 _datadir=$(echo $ac_option | cut -d '=' -f 2)
777 --mandir=*)
778 _mandir=$(echo $ac_option | cut -d '=' -f 2)
780 --confdir=*)
781 _confdir=$(echo $ac_option | cut -d '=' -f 2)
783 --libdir=*)
784 _libdir=$(echo $ac_option | cut -d '=' -f 2)
786 --codecsdir=*)
787 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
790 --with-install=*)
791 _install=$(echo $ac_option | cut -d '=' -f 2 )
793 --with-xvmclib=*)
794 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
797 --with-sdl-config=*)
798 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
800 --with-freetype-config=*)
801 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
803 --with-gtk-config=*)
804 _gtkconfig=$(echo $ac_option | cut -d '=' -f 2)
806 --with-glib-config=*)
807 _glibconfig=$(echo $ac_option | cut -d '=' -f 2)
809 --with-dvdnav-config=*)
810 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
812 --with-dvdread-config=*)
813 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
816 --extra-cflags=*)
817 extra_cflags=$(echo $ac_option | cut -d '=' -f 2-)
819 --extra-ldflags=*)
820 extra_ldflags=$(echo $ac_option | cut -d '=' -f 2-)
822 --extra-libs=*)
823 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
825 --extra-libs-mplayer=*)
826 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
828 --extra-libs-mencoder=*)
829 libs_mencoder=$(echo $ac_option | cut -d '=' -f 2)
832 --target=*)
833 _target=$(echo $ac_option | cut -d '=' -f 2)
835 --cc=*)
836 _cc=$(echo $ac_option | cut -d '=' -f 2)
838 --host-cc=*)
839 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
841 --as=*)
842 _as=$(echo $ac_option | cut -d '=' -f 2)
844 --nm=*)
845 _nm=$(echo $ac_option | cut -d '=' -f 2)
847 --yasm=*)
848 _yasm=$(echo $ac_option | cut -d '=' -f 2)
850 --ar=*)
851 _ar=$(echo $ac_option | cut -d '=' -f 2)
853 --ranlib=*)
854 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
856 --windres=*)
857 _windres=$(echo $ac_option | cut -d '=' -f 2)
859 --charset=*)
860 _charset=$(echo $ac_option | cut -d '=' -f 2)
862 --language-doc=*)
863 language_doc=$(echo $ac_option | cut -d '=' -f 2)
865 --language-man=*)
866 language_man=$(echo $ac_option | cut -d '=' -f 2)
868 --language-msg=*)
869 language_msg=$(echo $ac_option | cut -d '=' -f 2)
871 --language=*)
872 language=$(echo $ac_option | cut -d '=' -f 2)
875 --enable-static)
876 _ld_static='-static'
878 --disable-static)
879 _ld_static=''
881 --enable-profile)
882 _profile='-p'
884 --disable-profile)
885 _profile=
887 --enable-debug)
888 _debug='-g'
890 --enable-debug=*)
891 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
893 --disable-debug)
894 _debug=
896 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
897 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
898 --enable-cross-compile) _cross_compile=yes ;;
899 --disable-cross-compile) _cross_compile=no ;;
900 --enable-mencoder) _mencoder=yes ;;
901 --disable-mencoder) _mencoder=no ;;
902 --enable-mplayer) _mplayer=yes ;;
903 --disable-mplayer) _mplayer=no ;;
904 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
905 --disable-dynamic-plugins) _dynamic_plugins=no ;;
906 --enable-x11) _x11=yes ;;
907 --disable-x11) _x11=no ;;
908 --enable-xshape) _xshape=yes ;;
909 --disable-xshape) _xshape=no ;;
910 --enable-xss) _xss=yes ;;
911 --disable-xss) _xss=no ;;
912 --enable-xv) _xv=yes ;;
913 --disable-xv) _xv=no ;;
914 --enable-xvmc) _xvmc=yes ;;
915 --disable-xvmc) _xvmc=no ;;
916 --enable-vdpau) _vdpau=yes ;;
917 --disable-vdpau) _vdpau=no ;;
918 --enable-sdl) _sdl=yes ;;
919 --disable-sdl) _sdl=no ;;
920 --enable-kva) _kva=yes ;;
921 --disable-kva) _kva=no ;;
922 --enable-direct3d) _direct3d=yes ;;
923 --disable-direct3d) _direct3d=no ;;
924 --enable-directx) _directx=yes ;;
925 --disable-directx) _directx=no ;;
926 --enable-win32waveout) _win32waveout=yes ;;
927 --disable-win32waveout) _win32waveout=no ;;
928 --enable-nas) _nas=yes ;;
929 --disable-nas) _nas=no ;;
930 --enable-png) _png=yes ;;
931 --disable-png) _png=no ;;
932 --enable-mng) _mng=yes ;;
933 --disable-mng) _mng=no ;;
934 --enable-jpeg) _jpeg=yes ;;
935 --disable-jpeg) _jpeg=no ;;
936 --enable-libopenjpeg) libopenjpeg=yes ;;
937 --disable-libopenjpeg)libopenjpeg=no ;;
938 --enable-pnm) _pnm=yes ;;
939 --disable-pnm) _pnm=no ;;
940 --enable-md5sum) _md5sum=yes ;;
941 --disable-md5sum) _md5sum=no ;;
942 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
943 --disable-yuv4mpeg) _yuv4mpeg=no ;;
944 --enable-gif) _gif=yes ;;
945 --disable-gif) _gif=no ;;
946 --enable-gl) _gl=yes ;;
947 --disable-gl) _gl=no ;;
948 --enable-matrixview) matrixview=yes ;;
949 --disable-matrixview) matrixview=no ;;
950 --enable-ggi) _ggi=yes ;;
951 --disable-ggi) _ggi=no ;;
952 --enable-ggiwmh) _ggiwmh=yes ;;
953 --disable-ggiwmh) _ggiwmh=no ;;
954 --enable-aa) _aa=yes ;;
955 --disable-aa) _aa=no ;;
956 --enable-caca) _caca=yes ;;
957 --disable-caca) _caca=no ;;
958 --enable-svga) _svga=yes ;;
959 --disable-svga) _svga=no ;;
960 --enable-vesa) _vesa=yes ;;
961 --disable-vesa) _vesa=no ;;
962 --enable-fbdev) _fbdev=yes ;;
963 --disable-fbdev) _fbdev=no ;;
964 --enable-dvb) _dvb=yes ;;
965 --disable-dvb) _dvb=no ;;
966 --enable-dxr2) _dxr2=yes ;;
967 --disable-dxr2) _dxr2=no ;;
968 --enable-dxr3) _dxr3=yes ;;
969 --disable-dxr3) _dxr3=no ;;
970 --enable-ivtv) _ivtv=yes ;;
971 --disable-ivtv) _ivtv=no ;;
972 --enable-v4l2) _v4l2=yes ;;
973 --disable-v4l2) _v4l2=no ;;
974 --enable-iconv) _iconv=yes ;;
975 --disable-iconv) _iconv=no ;;
976 --enable-langinfo) _langinfo=yes ;;
977 --disable-langinfo) _langinfo=no ;;
978 --enable-rtc) _rtc=yes ;;
979 --disable-rtc) _rtc=no ;;
980 --enable-libdv) _libdv=yes ;;
981 --disable-libdv) _libdv=no ;;
982 --enable-ossaudio) _ossaudio=yes ;;
983 --disable-ossaudio) _ossaudio=no ;;
984 --enable-arts) _arts=yes ;;
985 --disable-arts) _arts=no ;;
986 --enable-esd) _esd=yes ;;
987 --disable-esd) _esd=no ;;
988 --enable-pulse) _pulse=yes ;;
989 --disable-pulse) _pulse=no ;;
990 --enable-jack) _jack=yes ;;
991 --disable-jack) _jack=no ;;
992 --enable-openal) _openal=yes ;;
993 --disable-openal) _openal=no ;;
994 --enable-kai) _kai=yes ;;
995 --disable-kai) _kai=no ;;
996 --enable-dart) _dart=yes ;;
997 --disable-dart) _dart=no ;;
998 --enable-mad) _mad=yes ;;
999 --disable-mad) _mad=no ;;
1000 --enable-mp3lame) _mp3lame=yes ;;
1001 --disable-mp3lame) _mp3lame=no ;;
1002 --enable-mp3lame-lavc) _mp3lame_lavc=yes ;;
1003 --disable-mp3lame-lavc) _mp3lame_lavc=no ;;
1004 --enable-toolame) _toolame=yes ;;
1005 --disable-toolame) _toolame=no ;;
1006 --enable-twolame) _twolame=yes ;;
1007 --disable-twolame) _twolame=no ;;
1008 --enable-libcdio) _libcdio=yes ;;
1009 --disable-libcdio) _libcdio=no ;;
1010 --enable-liblzo) _liblzo=yes ;;
1011 --disable-liblzo) _liblzo=no ;;
1012 --enable-libvorbis) _libvorbis=yes ;;
1013 --disable-libvorbis) _libvorbis=no ;;
1014 --enable-speex) _speex=yes ;;
1015 --disable-speex) _speex=no ;;
1016 --enable-tremor) _tremor=yes ;;
1017 --disable-tremor) _tremor=no ;;
1018 --enable-tremor-internal) _tremor_internal=yes ;;
1019 --disable-tremor-internal) _tremor_internal=no ;;
1020 --enable-tremor-low) _tremor_low=yes ;;
1021 --disable-tremor-low) _tremor_low=no ;;
1022 --enable-theora) _theora=yes ;;
1023 --disable-theora) _theora=no ;;
1024 --enable-mp3lib) _mp3lib=yes ;;
1025 --disable-mp3lib) _mp3lib=no ;;
1026 --enable-liba52) _liba52=yes ;;
1027 --disable-liba52) _liba52=no ;;
1028 --enable-libdca) _libdca=yes ;;
1029 --disable-libdca) _libdca=no ;;
1030 --enable-libmpeg2) _libmpeg2=yes ;;
1031 --disable-libmpeg2) _libmpeg2=no ;;
1032 --enable-musepack) _musepack=yes ;;
1033 --disable-musepack) _musepack=no ;;
1034 --enable-faad) _faad=yes ;;
1035 --disable-faad) _faad=no ;;
1036 --enable-faad-internal) _faad_internal=yes ;;
1037 --disable-faad-internal) _faad_internal=no ;;
1038 --enable-faad-fixed) _faad_fixed=yes ;;
1039 --disable-faad-fixed) _faad_fixed=no ;;
1040 --enable-faac) _faac=yes ;;
1041 --disable-faac) _faac=no ;;
1042 --enable-faac-lavc) _faac_lavc=yes ;;
1043 --disable-faac-lavc) _faac_lavc=no ;;
1044 --enable-ladspa) _ladspa=yes ;;
1045 --disable-ladspa) _ladspa=no ;;
1046 --enable-libbs2b) _libbs2b=yes ;;
1047 --disable-libbs2b) _libbs2b=no ;;
1048 --enable-xmms) _xmms=yes ;;
1049 --disable-xmms) _xmms=no ;;
1050 --enable-vcd) _vcd=yes ;;
1051 --disable-vcd) _vcd=no ;;
1052 --enable-dvdread) _dvdread=yes ;;
1053 --disable-dvdread) _dvdread=no ;;
1054 --enable-dvdread-internal) _dvdread_internal=yes ;;
1055 --disable-dvdread-internal) _dvdread_internal=no ;;
1056 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
1057 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
1058 --enable-dvdnav) _dvdnav=yes ;;
1059 --disable-dvdnav) _dvdnav=no ;;
1060 --enable-xanim) _xanim=yes ;;
1061 --disable-xanim) _xanim=no ;;
1062 --enable-real) _real=yes ;;
1063 --disable-real) _real=no ;;
1064 --enable-live) _live=yes ;;
1065 --disable-live) _live=no ;;
1066 --enable-nemesi) _nemesi=yes ;;
1067 --disable-nemesi) _nemesi=no ;;
1068 --enable-xinerama) _xinerama=yes ;;
1069 --disable-xinerama) _xinerama=no ;;
1070 --enable-mga) _mga=yes ;;
1071 --disable-mga) _mga=no ;;
1072 --enable-xmga) _xmga=yes ;;
1073 --disable-xmga) _xmga=no ;;
1074 --enable-vm) _vm=yes ;;
1075 --disable-vm) _vm=no ;;
1076 --enable-xf86keysym) _xf86keysym=yes ;;
1077 --disable-xf86keysym) _xf86keysym=no ;;
1078 --enable-mlib) _mlib=yes ;;
1079 --disable-mlib) _mlib=no ;;
1080 --enable-sunaudio) _sunaudio=yes ;;
1081 --disable-sunaudio) _sunaudio=no ;;
1082 --enable-sgiaudio) _sgiaudio=yes ;;
1083 --disable-sgiaudio) _sgiaudio=no ;;
1084 --enable-alsa) _alsa=yes ;;
1085 --disable-alsa) _alsa=no ;;
1086 --enable-tv) _tv=yes ;;
1087 --disable-tv) _tv=no ;;
1088 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1089 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1090 --enable-tv-v4l1) _tv_v4l1=yes ;;
1091 --disable-tv-v4l1) _tv_v4l1=no ;;
1092 --enable-tv-v4l2) _tv_v4l2=yes ;;
1093 --disable-tv-v4l2) _tv_v4l2=no ;;
1094 --enable-tv-dshow) _tv_dshow=yes ;;
1095 --disable-tv-dshow) _tv_dshow=no ;;
1096 --enable-radio) _radio=yes ;;
1097 --enable-radio-capture) _radio_capture=yes ;;
1098 --disable-radio-capture) _radio_capture=no ;;
1099 --disable-radio) _radio=no ;;
1100 --enable-radio-v4l) _radio_v4l=yes ;;
1101 --disable-radio-v4l) _radio_v4l=no ;;
1102 --enable-radio-v4l2) _radio_v4l2=yes ;;
1103 --disable-radio-v4l2) _radio_v4l2=no ;;
1104 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1105 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1106 --enable-pvr) _pvr=yes ;;
1107 --disable-pvr) _pvr=no ;;
1108 --enable-fastmemcpy) _fastmemcpy=yes ;;
1109 --disable-fastmemcpy) _fastmemcpy=no ;;
1110 --enable-hardcoded-tables) hardcoded_tables=yes ;;
1111 --disable-hardcoded-tables) hardcoded_tables=no ;;
1112 --enable-network) _network=yes ;;
1113 --disable-network) _network=no ;;
1114 --enable-winsock2_h) _winsock2_h=yes ;;
1115 --disable-winsock2_h) _winsock2_h=no ;;
1116 --enable-smb) _smb=yes ;;
1117 --disable-smb) _smb=no ;;
1118 --enable-vidix) _vidix=yes ;;
1119 --disable-vidix) _vidix=no ;;
1120 --with-vidix-drivers=*)
1121 _vidix_drivers=$(echo $ac_option | cut -d '=' -f 2)
1123 --disable-vidix-pcidb) _vidix_pcidb=no ;;
1124 --enable-dhahelper) _dhahelper=yes ;;
1125 --disable-dhahelper) _dhahelper=no ;;
1126 --enable-svgalib_helper) _svgalib_helper=yes ;;
1127 --disable-svgalib_helper) _svgalib_helper=no ;;
1128 --enable-joystick) _joystick=yes ;;
1129 --disable-joystick) _joystick=no ;;
1130 --enable-xvid) _xvid=yes ;;
1131 --disable-xvid) _xvid=no ;;
1132 --enable-xvid-lavc) _xvid_lavc=yes ;;
1133 --disable-xvid-lavc) _xvid_lavc=no ;;
1134 --enable-x264) _x264=yes ;;
1135 --disable-x264) _x264=no ;;
1136 --enable-x264-lavc) _x264_lavc=yes ;;
1137 --disable-x264-lavc) _x264_lavc=no ;;
1138 --enable-libdirac-lavc) _libdirac_lavc=yes ;;
1139 --disable-libdirac-lavc) _libdirac_lavc=no ;;
1140 --enable-libschroedinger-lavc) _libschroedinger_lavc=yes ;;
1141 --disable-libschroedinger-lavc) _libschroedinger_lavc=no ;;
1142 --enable-libvpx-lavc) _libvpx_lavc=yes ;;
1143 --disable-libvpx-lavc) _libvpx_lavc=no ;;
1144 --enable-libnut) _libnut=yes ;;
1145 --disable-libnut) _libnut=no ;;
1146 --enable-libavutil_a) _libavutil_a=yes ;;
1147 --disable-libavutil_a) _libavutil_a=no ;;
1148 --enable-libavutil_so) _libavutil_so=yes ;;
1149 --disable-libavutil_so) _libavutil_so=no ;;
1150 --enable-libavcodec_a) _libavcodec_a=yes ;;
1151 --disable-libavcodec_a) _libavcodec_a=no ;;
1152 --enable-libavcodec_so) _libavcodec_so=yes ;;
1153 --disable-libavcodec_so) _libavcodec_so=no ;;
1154 --enable-libopencore_amrnb) _libopencore_amrnb=yes ;;
1155 --disable-libopencore_amrnb) _libopencore_amrnb=no ;;
1156 --enable-libopencore_amrwb) _libopencore_amrwb=yes ;;
1157 --disable-libopencore_amrwb) _libopencore_amrwb=no ;;
1158 --enable-decoder=*) _libavdecoders="$_libavdecoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1159 --disable-decoder=*) _libavdecoders=$(echo $_libavdecoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1160 --enable-encoder=*) _libavencoders="$_libavencoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1161 --disable-encoder=*) _libavencoders=$(echo $_libavencoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1162 --enable-parser=*) _libavparsers="$_libavparsers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1163 --disable-parser=*) _libavparsers=$(echo $_libavparsers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1164 --enable-protocol=*) _libavprotocols="$_libavprotocols $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1165 --disable-protocol=*) _libavprotocols=$(echo $_libavprotocols | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1166 --enable-demuxer=*) _libavdemuxers="$_libavdemuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1167 --disable-demuxer=*) _libavdemuxers=$(echo $_libavdemuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1168 --enable-muxer=*) _libavmuxers="$_libavmuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1169 --disable-muxer=*) _libavmuxers=$(echo $_libavmuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1170 --enable-libavformat_a) _libavformat_a=yes ;;
1171 --disable-libavformat_a) _libavformat_a=no ;;
1172 --enable-libavformat_so) _libavformat_so=yes ;;
1173 --disable-libavformat_so) _libavformat_so=no ;;
1174 --enable-libpostproc_a) _libpostproc_a=yes ;;
1175 --disable-libpostproc_a) _libpostproc_a=no ;;
1176 --enable-libpostproc_so) _libpostproc_so=yes ;;
1177 --disable-libpostproc_so) _libpostproc_so=no ;;
1178 --enable-libswscale_a) _libswscale_a=yes ;;
1179 --disable-libswscale_a) _libswscale_a=no ;;
1180 --enable-libswscale_so) _libswscale_so=yes ;;
1181 --disable-libswscale_so) _libswscale_so=no ;;
1182 --enable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=yes ;;
1183 --disable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=no ;;
1185 --enable-lirc) _lirc=yes ;;
1186 --disable-lirc) _lirc=no ;;
1187 --enable-lircc) _lircc=yes ;;
1188 --disable-lircc) _lircc=no ;;
1189 --enable-apple-remote) _apple_remote=yes ;;
1190 --disable-apple-remote) _apple_remote=no ;;
1191 --enable-apple-ir) _apple_ir=yes ;;
1192 --disable-apple-ir) _apple_ir=no ;;
1193 --enable-gui) _gui=yes ;;
1194 --disable-gui) _gui=no ;;
1195 --enable-gtk1) _gtk1=yes ;;
1196 --disable-gtk1) _gtk1=no ;;
1197 --enable-termcap) _termcap=yes ;;
1198 --disable-termcap) _termcap=no ;;
1199 --enable-termios) _termios=yes ;;
1200 --disable-termios) _termios=no ;;
1201 --enable-3dfx) _3dfx=yes ;;
1202 --disable-3dfx) _3dfx=no ;;
1203 --enable-s3fb) _s3fb=yes ;;
1204 --disable-s3fb) _s3fb=no ;;
1205 --enable-wii) _wii=yes ;;
1206 --disable-wii) _wii=no ;;
1207 --enable-tdfxfb) _tdfxfb=yes ;;
1208 --disable-tdfxfb) _tdfxfb=no ;;
1209 --disable-tdfxvid) _tdfxvid=no ;;
1210 --enable-tdfxvid) _tdfxvid=yes ;;
1211 --disable-xvr100) _xvr100=no ;;
1212 --enable-xvr100) _xvr100=yes ;;
1213 --disable-tga) _tga=no ;;
1214 --enable-tga) _tga=yes ;;
1215 --enable-directfb) _directfb=yes ;;
1216 --disable-directfb) _directfb=no ;;
1217 --enable-zr) _zr=yes ;;
1218 --disable-zr) _zr=no ;;
1219 --enable-bl) _bl=yes ;;
1220 --disable-bl) _bl=no ;;
1221 --enable-mtrr) _mtrr=yes ;;
1222 --disable-mtrr) _mtrr=no ;;
1223 --enable-largefiles) _largefiles=yes ;;
1224 --disable-largefiles) _largefiles=no ;;
1225 --enable-shm) _shm=yes ;;
1226 --disable-shm) _shm=no ;;
1227 --enable-select) _select=yes ;;
1228 --disable-select) _select=no ;;
1229 --enable-linux-devfs) _linux_devfs=yes ;;
1230 --disable-linux-devfs) _linux_devfs=no ;;
1231 --enable-cdparanoia) _cdparanoia=yes ;;
1232 --disable-cdparanoia) _cdparanoia=no ;;
1233 --enable-cddb) _cddb=yes ;;
1234 --disable-cddb) _cddb=no ;;
1235 --enable-big-endian) _big_endian=yes ;;
1236 --disable-big-endian) _big_endian=no ;;
1237 --enable-bitmap-font) _bitmap_font=yes ;;
1238 --disable-bitmap-font) _bitmap_font=no ;;
1239 --enable-freetype) _freetype=yes ;;
1240 --disable-freetype) _freetype=no ;;
1241 --enable-fontconfig) _fontconfig=yes ;;
1242 --disable-fontconfig) _fontconfig=no ;;
1243 --enable-unrarexec) _unrar_exec=yes ;;
1244 --disable-unrarexec) _unrar_exec=no ;;
1245 --enable-ftp) _ftp=yes ;;
1246 --disable-ftp) _ftp=no ;;
1247 --enable-vstream) _vstream=yes ;;
1248 --disable-vstream) _vstream=no ;;
1249 --enable-pthreads) _pthreads=yes ;;
1250 --disable-pthreads) _pthreads=no ;;
1251 --enable-w32threads) _w32threads=yes ;;
1252 --disable-w32threads) _w32threads=no ;;
1253 --enable-ass) _ass=yes ;;
1254 --disable-ass) _ass=no ;;
1255 --enable-ass-internal) ass_internal=yes ;;
1256 --disable-ass-internal) ass_internal=no ;;
1257 --enable-rpath) _rpath=yes ;;
1258 --disable-rpath) _rpath=no ;;
1260 --enable-fribidi) _fribidi=yes ;;
1261 --disable-fribidi) _fribidi=no ;;
1263 --enable-enca) _enca=yes ;;
1264 --disable-enca) _enca=no ;;
1266 --enable-inet6) _inet6=yes ;;
1267 --disable-inet6) _inet6=no ;;
1269 --enable-gethostbyname2) _gethostbyname2=yes ;;
1270 --disable-gethostbyname2) _gethostbyname2=no ;;
1272 --enable-dga1) _dga1=yes ;;
1273 --disable-dga1) _dga1=no ;;
1274 --enable-dga2) _dga2=yes ;;
1275 --disable-dga2) _dga2=no ;;
1277 --enable-menu) _menu=yes ;;
1278 --disable-menu) _menu=no ;;
1280 --enable-qtx) _qtx=yes ;;
1281 --disable-qtx) _qtx=no ;;
1283 --enable-coreaudio) _coreaudio=yes ;;
1284 --disable-coreaudio) _coreaudio=no ;;
1285 --enable-corevideo) _corevideo=yes ;;
1286 --disable-corevideo) _corevideo=no ;;
1287 --enable-quartz) _quartz=yes ;;
1288 --disable-quartz) _quartz=no ;;
1289 --enable-macosx-finder) _macosx_finder=yes ;;
1290 --disable-macosx-finder) _macosx_finder=no ;;
1291 --enable-macosx-bundle) _macosx_bundle=yes ;;
1292 --disable-macosx-bundle) _macosx_bundle=no ;;
1294 --enable-maemo) _maemo=yes ;;
1295 --disable-maemo) _maemo=no ;;
1297 --enable-sortsub) _sortsub=yes ;;
1298 --disable-sortsub) _sortsub=no ;;
1300 --enable-crash-debug) _crash_debug=yes ;;
1301 --disable-crash-debug) _crash_debug=no ;;
1302 --enable-sighandler) _sighandler=yes ;;
1303 --disable-sighandler) _sighandler=no ;;
1304 --enable-win32dll) _win32dll=yes ;;
1305 --disable-win32dll) _win32dll=no ;;
1307 --enable-sse) _sse=yes ;;
1308 --disable-sse) _sse=no ;;
1309 --enable-sse2) _sse2=yes ;;
1310 --disable-sse2) _sse2=no ;;
1311 --enable-ssse3) _ssse3=yes ;;
1312 --disable-ssse3) _ssse3=no ;;
1313 --enable-mmxext) _mmxext=yes ;;
1314 --disable-mmxext) _mmxext=no ;;
1315 --enable-3dnow) _3dnow=yes ;;
1316 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1317 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1318 --disable-3dnowext) _3dnowext=no ;;
1319 --enable-cmov) _cmov=yes ;;
1320 --disable-cmov) _cmov=no ;;
1321 --enable-fast-cmov) _fast_cmov=yes ;;
1322 --disable-fast-cmov) _fast_cmov=no ;;
1323 --enable-fast-clz) _fast_clz=yes ;;
1324 --disable-fast-clz) _fast_clz=no ;;
1325 --enable-altivec) _altivec=yes ;;
1326 --disable-altivec) _altivec=no ;;
1327 --enable-armv5te) _armv5te=yes ;;
1328 --disable-armv5te) _armv5te=no ;;
1329 --enable-armv6) _armv6=yes ;;
1330 --disable-armv6) _armv6=no ;;
1331 --enable-armv6t2) _armv6t2=yes ;;
1332 --disable-armv6t2) _armv6t2=no ;;
1333 --enable-armvfp) _armvfp=yes ;;
1334 --disable-armvfp) _armvfp=no ;;
1335 --enable-neon) neon=yes ;;
1336 --disable-neon) neon=no ;;
1337 --enable-iwmmxt) _iwmmxt=yes ;;
1338 --disable-iwmmxt) _iwmmxt=no ;;
1339 --enable-mmx) _mmx=yes ;;
1340 --disable-mmx) # 3Dnow! and MMX2 require MMX
1341 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1344 echo "Unknown parameter: $ac_option"
1345 exit 1
1348 esac
1349 done
1351 # Atmos: moved this here, to be correct, if --prefix is specified
1352 test -z "$_bindir" && _bindir="$_prefix/bin"
1353 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1354 test -z "$_mandir" && _mandir="$_prefix/share/man"
1355 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1356 test -z "$_libdir" && _libdir="$_prefix/lib"
1358 # Determine our OS name and CPU architecture
1359 if test -z "$_target" ; then
1360 # OS name
1361 system_name=$(uname -s 2>&1)
1362 case "$system_name" in
1363 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1365 Haiku)
1366 system_name=BeOS
1368 IRIX*)
1369 system_name=IRIX
1371 GNU/kFreeBSD)
1372 system_name=FreeBSD
1374 HP-UX*)
1375 system_name=HP-UX
1377 [cC][yY][gG][wW][iI][nN]*)
1378 system_name=CYGWIN
1380 MINGW32*)
1381 system_name=MINGW32
1383 OS/2*)
1384 system_name=OS/2
1387 system_name="$system_name-UNKNOWN"
1389 esac
1392 # host's CPU/instruction set
1393 host_arch=$(uname -p 2>&1)
1394 case "$host_arch" in
1395 i386|sparc|ppc|alpha|arm|mips|vax)
1397 powerpc) # Darwin returns 'powerpc'
1398 host_arch=ppc
1400 *) # uname -p on Linux returns 'unknown' for the processor type,
1401 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1403 # Maybe uname -m (machine hardware name) returns something we
1404 # recognize.
1406 # x86/x86pc is used by QNX
1407 case "$(uname -m 2>&1)" in
1408 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 ;;
1409 ia64) host_arch=ia64 ;;
1410 macppc|ppc) host_arch=ppc ;;
1411 ppc64) host_arch=ppc64 ;;
1412 alpha) host_arch=alpha ;;
1413 sparc) host_arch=sparc ;;
1414 sparc64) host_arch=sparc64 ;;
1415 parisc*|hppa*|9000*) host_arch=hppa ;;
1416 arm*|zaurus|cats) host_arch=arm ;;
1417 sh3|sh4|sh4a) host_arch=sh ;;
1418 s390) host_arch=s390 ;;
1419 s390x) host_arch=s390x ;;
1420 *mips*) host_arch=mips ;;
1421 vax) host_arch=vax ;;
1422 xtensa*) host_arch=xtensa ;;
1423 *) host_arch=UNKNOWN ;;
1424 esac
1426 esac
1427 else # if test -z "$_target"
1428 system_name=$(echo $_target | cut -d '-' -f 2)
1429 case "$(echo $system_name | tr A-Z a-z)" in
1430 linux) system_name=Linux ;;
1431 freebsd) system_name=FreeBSD ;;
1432 gnu/kfreebsd) system_name=FreeBSD ;;
1433 netbsd) system_name=NetBSD ;;
1434 bsd/os) system_name=BSD/OS ;;
1435 openbsd) system_name=OpenBSD ;;
1436 dragonfly) system_name=DragonFly ;;
1437 sunos) system_name=SunOS ;;
1438 qnx) system_name=QNX ;;
1439 morphos) system_name=MorphOS ;;
1440 amigaos) system_name=AmigaOS ;;
1441 mingw32*) system_name=MINGW32 ;;
1442 esac
1443 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1444 host_arch=$(echo $_target | cut -d '-' -f 1)
1445 if test $(echo $host_arch) != "x86_64" ; then
1446 host_arch=$(echo $host_arch | tr '_' '-')
1450 extra_cflags="-I. $extra_cflags"
1451 _timer=timer-linux.c
1452 _getch=getch2.c
1453 if freebsd ; then
1454 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1455 extra_cflags="$extra_cflags -I/usr/local/include"
1458 if netbsd || dragonfly ; then
1459 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1460 extra_cflags="$extra_cflags -I/usr/pkg/include"
1463 if darwin; then
1464 extra_cflags="-mdynamic-no-pic -falign-loops=16 -shared-libgcc $extra_cflags"
1465 _timer=timer-darwin.c
1468 if aix ; then
1469 extra_ldflags="$extra_ldflags -lC"
1472 if irix ; then
1473 _ranlib='ar -r'
1474 elif linux ; then
1475 _ranlib='true'
1478 if win32 ; then
1479 _exesuf=".exe"
1480 extra_cflags="$extra_cflags -fno-common"
1481 # -lwinmm is always needed for osdep/timer-win2.c
1482 extra_ldflags="$extra_ldflags -lwinmm"
1483 _pe_executable=yes
1484 _timer=timer-win2.c
1485 _priority=yes
1486 def_dos_paths="#define HAVE_DOS_PATHS 1"
1487 def_priority="#define CONFIG_PRIORITY 1"
1490 if mingw32 ; then
1491 _getch=getch2-win.c
1492 _need_shmem=no
1495 if amigaos ; then
1496 _select=no
1497 _sighandler=no
1498 _stream_cache=no
1499 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1500 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1503 if qnx ; then
1504 extra_ldflags="$extra_ldflags -lph"
1507 if os2 ; then
1508 _exesuf=".exe"
1509 _getch=getch2-os2.c
1510 _need_shmem=no
1511 _priority=yes
1512 def_dos_paths="#define HAVE_DOS_PATHS 1"
1513 def_priority="#define CONFIG_PRIORITY 1"
1516 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1517 test "$I" && break
1518 done
1521 TMPLOG="configure.log"
1522 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
1523 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
1524 TMPEXE="$I/mplayer-conf-$RANDOM-$$$_exesuf"
1525 TMPH="$I/mplayer-conf-$RANDOM-$$.h"
1526 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
1528 rm -f "$TMPLOG"
1529 echo configuration: $_configuration > "$TMPLOG"
1530 echo >> "$TMPLOG"
1533 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1534 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1538 # Checking CC version...
1539 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1540 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1541 echocheck "$_cc version"
1542 cc_vendor=intel
1543 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1544 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1545 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1546 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1547 # TODO verify older icc/ecc compatibility
1548 case $cc_version in
1550 cc_version="v. ?.??, bad"
1551 cc_fail=yes
1553 10.1|11.0|11.1)
1554 cc_version="$cc_version, ok"
1557 cc_version="$cc_version, bad"
1558 cc_fail=yes
1560 esac
1561 echores "$cc_version"
1562 else
1563 for _cc in "$_cc" gcc cc ; do
1564 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1565 if test "$cc_name_tmp" = "gcc"; then
1566 cc_name=$cc_name_tmp
1567 echocheck "$_cc version"
1568 cc_vendor=gnu
1569 cc_version=$($_cc -dumpversion 2>&1)
1570 case $cc_version in
1571 2.96*)
1572 cc_fail=yes
1575 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1576 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1577 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1579 esac
1580 echores "$cc_version"
1581 break
1583 cc_name_tmp=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 2,3)
1584 if test "$cc_name_tmp" = "Sun C"; then
1585 echocheck "$_cc version"
1586 cc_vendor=sun
1587 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 4)
1588 res_comment="experimental support only"
1589 echores "Sun C $cc_version"
1590 break
1592 done
1593 fi # icc
1594 test "$cc_fail" = yes && die "unsupported compiler version"
1596 if test -z "$_target" && x86 ; then
1597 cat > $TMPC << EOF
1598 int main(void) {
1599 int test[(int)sizeof(char *)-7];
1600 return 0;
1603 cc_check && host_arch=x86_64 || host_arch=i386
1606 echo "Detected operating system: $system_name"
1607 echo "Detected host architecture: $host_arch"
1609 echocheck "host cc"
1610 test "$_host_cc" || _host_cc=$_cc
1611 echores $_host_cc
1613 echocheck "cross compilation"
1614 if test $_cross_compile = auto ; then
1615 cat > $TMPC << EOF
1616 int main(void) { return 0; }
1618 _cross_compile=yes
1619 cc_check && "$TMPEXE" && _cross_compile=no
1621 echores $_cross_compile
1623 if test $_cross_compile = yes; then
1624 tmp_run() {
1625 return 0
1629 # ---
1631 # now that we know what compiler should be used for compilation, try to find
1632 # out which assembler is used by the $_cc compiler
1633 if test "$_as" = auto ; then
1634 _as=$($_cc -print-prog-name=as)
1635 test -z "$_as" && _as=as
1638 if test "$_nm" = auto ; then
1639 _nm=$($_cc -print-prog-name=nm)
1640 test -z "$_nm" && _nm=nm
1643 # XXX: this should be ok..
1644 _cpuinfo="echo"
1646 if test "$_runtime_cpudetection" = no ; then
1648 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1649 # FIXME: Remove the cygwin check once AMD CPUs are supported
1650 if test -r /proc/cpuinfo && ! cygwin; then
1651 # Linux with /proc mounted, extract CPU information from it
1652 _cpuinfo="cat /proc/cpuinfo"
1653 elif test -r /compat/linux/proc/cpuinfo && ! x86 ; then
1654 # FreeBSD with Linux emulation /proc mounted,
1655 # extract CPU information from it
1656 # Don't use it on x86 though, it never reports 3Dnow
1657 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1658 elif darwin && ! x86 ; then
1659 # use hostinfo on Darwin
1660 _cpuinfo="hostinfo"
1661 elif aix; then
1662 # use 'lsattr' on AIX
1663 _cpuinfo="lsattr -E -l proc0 -a type"
1664 elif x86; then
1665 # all other OSes try to extract CPU information from a small helper
1666 # program cpuinfo instead
1667 $_cc -o cpuinfo$_exesuf cpuinfo.c
1668 _cpuinfo="./cpuinfo$_exesuf"
1671 if [ "$cc_vendor" = "gnu" ] && [ "$_cc_major" = 2 ] ; then
1672 test $_sse = auto && _sse=no
1673 test $_win32dll = auto && _win32dll=no
1674 ass_internal=no
1677 if x86 ; then
1678 # gather more CPU information
1679 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1680 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1681 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1682 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1683 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1685 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1687 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1688 -e s/xmm/sse/ -e s/kni/sse/)
1690 for ext in $pparam ; do
1691 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1692 done
1694 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1695 test $_sse = kernel_check && _mmxext=kernel_check
1697 echocheck "CPU vendor"
1698 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1700 echocheck "CPU type"
1701 echores "$pname"
1704 fi # test "$_runtime_cpudetection" = no
1706 if x86 && test "$_runtime_cpudetection" = no ; then
1707 extcheck() {
1708 if test "$1" = kernel_check ; then
1709 echocheck "kernel support of $2"
1710 cat > $TMPC <<EOF
1711 #include <stdlib.h>
1712 #include <signal.h>
1713 void catch() { exit(1); }
1714 int main(void) {
1715 signal(SIGILL, catch);
1716 __asm__ volatile ("$3":::"memory"); return 0;
1720 if cc_check && tmp_run ; then
1721 eval _$2=yes
1722 echores "yes"
1723 _optimizing="$_optimizing $2"
1724 return 0
1725 else
1726 eval _$2=no
1727 echores "failed"
1728 echo "It seems that your kernel does not correctly support $2."
1729 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1730 return 1
1733 return 0
1736 extcheck $_mmx "mmx" "emms"
1737 extcheck $_mmxext "mmxext" "sfence"
1738 extcheck $_3dnow "3dnow" "femms"
1739 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1740 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1741 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1742 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1743 extcheck $_cmov "cmov" "cmovb %%eax,%%ebx"
1745 echocheck "mtrr support"
1746 if test "$_mtrr" = kernel_check ; then
1747 _mtrr="yes"
1748 _optimizing="$_optimizing mtrr"
1750 echores "$_mtrr"
1752 if test "$_gcc3_ext" != ""; then
1753 # if we had to disable sse/sse2 because the active kernel does not
1754 # support this instruction set extension, we also have to tell
1755 # gcc3 to not generate sse/sse2 instructions for normal C code
1756 cat > $TMPC << EOF
1757 int main(void) { return 0; }
1759 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1765 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1766 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1767 def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 0'
1768 def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 0'
1769 arch_all='X86 IA64 SPARC ARM AVR32 SH4 PPC ALPHA MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC'
1770 subarch_all='X86_32 X86_64 PPC64'
1771 case "$host_arch" in
1772 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1773 arch='x86'
1774 subarch='x86_32'
1775 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1776 def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 1'
1777 def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 1'
1778 iproc=486
1779 proc=i486
1782 if test "$_runtime_cpudetection" = no ; then
1783 case "$pvendor" in
1784 AuthenticAMD)
1785 case "$pfamily" in
1786 3) proc=i386 iproc=386 ;;
1787 4) proc=i486 iproc=486 ;;
1788 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1789 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1790 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1791 proc=k6-3
1792 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1793 proc=geode
1794 elif test "$pmodel" -ge 8; then
1795 proc=k6-2
1796 elif test "$pmodel" -ge 6; then
1797 proc=k6
1798 else
1799 proc=i586
1802 6) iproc=686
1803 # It's a bit difficult to determine the correct type of Family 6
1804 # AMD CPUs just from their signature. Instead, we check directly
1805 # whether it supports SSE.
1806 if test "$_sse" = yes; then
1807 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1808 proc=athlon-xp
1809 else
1810 # Again, gcc treats athlon and athlon-tbird similarly.
1811 proc=athlon
1814 15) iproc=686
1815 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1816 # caught and remedied in the optimization tests below.
1817 proc=k8
1820 *) proc=amdfam10 iproc=686
1821 test $_fast_clz = "auto" && _fast_clz=yes
1823 esac
1825 GenuineIntel)
1826 case "$pfamily" in
1827 3) proc=i386 iproc=386 ;;
1828 4) proc=i486 iproc=486 ;;
1829 5) iproc=586
1830 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1831 proc=pentium-mmx # 4 is desktop, 8 is mobile
1832 else
1833 proc=i586
1836 6) iproc=686
1837 if test "$pmodel" -ge 15; then
1838 proc=core2
1839 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1840 proc=pentium-m
1841 elif test "$pmodel" -ge 7; then
1842 proc=pentium3
1843 elif test "$pmodel" -ge 3; then
1844 proc=pentium2
1845 else
1846 proc=i686
1848 test $_fast_clz = "auto" && _fast_clz=yes
1850 15) iproc=686
1851 # A nocona in 32-bit mode has no more capabilities than a prescott.
1852 if test "$pmodel" -ge 3; then
1853 proc=prescott
1854 else
1855 proc=pentium4
1856 test $_fast_clz = "auto" && _fast_clz=yes
1858 test $_fast_cmov = "auto" && _fast_cmov=no
1860 *) proc=prescott iproc=686 ;;
1861 esac
1863 CentaurHauls)
1864 case "$pfamily" in
1865 5) iproc=586
1866 if test "$pmodel" -ge 8; then
1867 proc=winchip2
1868 elif test "$pmodel" -ge 4; then
1869 proc=winchip-c6
1870 else
1871 proc=i586
1874 6) iproc=686
1875 if test "$pmodel" -ge 9; then
1876 proc=c3-2
1877 else
1878 proc=c3
1879 iproc=586
1882 *) proc=i686 iproc=i686 ;;
1883 esac
1885 unknown)
1886 case "$pfamily" in
1887 3) proc=i386 iproc=386 ;;
1888 4) proc=i486 iproc=486 ;;
1889 *) proc=i586 iproc=586 ;;
1890 esac
1893 proc=i586 iproc=586 ;;
1894 esac
1895 test $_fast_clz = "auto" && _fast_clz=no
1896 fi # test "$_runtime_cpudetection" = no
1899 # check that gcc supports our CPU, if not, fall back to earlier ones
1900 # LGB: check -mcpu and -march swithing step by step with enabling
1901 # to fall back till 386.
1903 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1905 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1906 cpuopt=-mtune
1907 else
1908 cpuopt=-mcpu
1911 echocheck "GCC & CPU optimization abilities"
1912 cat > $TMPC << EOF
1913 int main(void) { return 0; }
1915 if test "$_runtime_cpudetection" = no ; then
1916 if test $cc_vendor != "intel" ; then
1917 cc_check -march=native && proc=native
1919 if test "$proc" = "k8"; then
1920 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1922 if test "$proc" = "athlon-xp"; then
1923 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1925 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1926 cc_check -march=$proc $cpuopt=$proc || proc=k6
1928 if test "$proc" = "k6" || test "$proc" = "c3"; then
1929 if ! cc_check -march=$proc $cpuopt=$proc; then
1930 if cc_check -march=i586 $cpuopt=i686; then
1931 proc=i586-i686
1932 else
1933 proc=i586
1937 if test "$proc" = "prescott" ; then
1938 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1940 if test "$proc" = "core2" ; then
1941 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1943 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
1944 cc_check -march=$proc $cpuopt=$proc || proc=i686
1946 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1947 cc_check -march=$proc $cpuopt=$proc || proc=i586
1949 if test "$proc" = "i586"; then
1950 cc_check -march=$proc $cpuopt=$proc || proc=i486
1952 if test "$proc" = "i486" ; then
1953 cc_check -march=$proc $cpuopt=$proc || proc=i386
1955 if test "$proc" = "i386" ; then
1956 cc_check -march=$proc $cpuopt=$proc || proc=error
1958 if test "$proc" = "error" ; then
1959 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1960 _mcpu=""
1961 _march=""
1962 _optimizing=""
1963 elif test "$proc" = "i586-i686"; then
1964 _march="-march=i586"
1965 _mcpu="$cpuopt=i686"
1966 _optimizing="$proc"
1967 else
1968 _march="-march=$proc"
1969 _mcpu="$cpuopt=$proc"
1970 _optimizing="$proc"
1972 else # if test "$_runtime_cpudetection" = no
1973 _mcpu="$cpuopt=generic"
1974 # at least i486 required, for bswap instruction
1975 _march="-march=i486"
1976 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1977 cc_check $_mcpu || _mcpu=""
1978 cc_check $_march $_mcpu || _march=""
1981 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1982 ## autodetected mcpu/march parameters
1983 if test "$_target" ; then
1984 # TODO: it may be a good idea to check GCC and fall back in all cases
1985 if test "$host_arch" = "i586-i686"; then
1986 _march="-march=i586"
1987 _mcpu="$cpuopt=i686"
1988 else
1989 _march="-march=$host_arch"
1990 _mcpu="$cpuopt=$host_arch"
1993 proc="$host_arch"
1995 case "$proc" in
1996 i386) iproc=386 ;;
1997 i486) iproc=486 ;;
1998 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1999 i686|athlon*|pentium*) iproc=686 ;;
2000 *) iproc=586 ;;
2001 esac
2004 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
2005 _fast_cmov="yes"
2006 else
2007 _fast_cmov="no"
2009 test $_fast_clz = "auto" && _fast_clz=yes
2011 echores "$proc"
2014 ia64)
2015 arch='ia64'
2016 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2017 iproc='ia64'
2020 x86_64|amd64)
2021 arch='x86'
2022 subarch='x86_64'
2023 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2024 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2025 iproc='x86_64'
2027 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
2028 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
2029 cpuopt=-mtune
2030 else
2031 cpuopt=-mcpu
2033 if test "$_runtime_cpudetection" = no ; then
2034 case "$pvendor" in
2035 AuthenticAMD)
2036 case "$pfamily" in
2037 15) proc=k8
2038 test $_fast_clz = "auto" && _fast_clz=no
2040 *) proc=amdfam10;;
2041 esac
2043 GenuineIntel)
2044 case "$pfamily" in
2045 6) proc=core2;;
2047 # 64-bit prescotts exist, but as far as GCC is concerned they
2048 # have the same capabilities as a nocona.
2049 proc=nocona
2050 test $_fast_cmov = "auto" && _fast_cmov=no
2051 test $_fast_clz = "auto" && _fast_clz=no
2053 esac
2056 proc=error;;
2057 esac
2058 fi # test "$_runtime_cpudetection" = no
2060 echocheck "GCC & CPU optimization abilities"
2061 cat > $TMPC << EOF
2062 int main(void) { return 0; }
2064 # This is a stripped-down version of the i386 fallback.
2065 if test "$_runtime_cpudetection" = no ; then
2066 if test $cc_vendor != "intel" ; then
2067 cc_check -march=native && proc=native
2069 # --- AMD processors ---
2070 if test "$proc" = "k8"; then
2071 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
2073 # This will fail if gcc version < 3.3, which is ok because earlier
2074 # versions don't really support 64-bit on amd64.
2075 # Is this a valid assumption? -Corey
2076 if test "$proc" = "athlon-xp"; then
2077 cc_check -march=$proc $cpuopt=$proc || proc=error
2079 # --- Intel processors ---
2080 if test "$proc" = "core2"; then
2081 cc_check -march=$proc $cpuopt=$proc || proc=x86-64
2083 if test "$proc" = "x86-64"; then
2084 cc_check -march=$proc $cpuopt=$proc || proc=nocona
2086 if test "$proc" = "nocona"; then
2087 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
2089 if test "$proc" = "pentium4"; then
2090 cc_check -march=$proc $cpuopt=$proc || proc=error
2093 _march="-march=$proc"
2094 _mcpu="$cpuopt=$proc"
2095 if test "$proc" = "error" ; then
2096 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
2097 _mcpu=""
2098 _march=""
2100 else # if test "$_runtime_cpudetection" = no
2101 # x86-64 is an undocumented option, an intersection of k8 and nocona.
2102 _march="-march=x86-64"
2103 _mcpu="$cpuopt=generic"
2104 cc_check $_mcpu || _mcpu="x86-64"
2105 cc_check $_mcpu || _mcpu=""
2106 cc_check $_march $_mcpu || _march=""
2109 _optimizing="$proc"
2110 test $_fast_cmov = "auto" && _fast_cmov=yes
2111 test $_fast_clz = "auto" && _fast_clz=yes
2113 echores "$proc"
2116 sparc|sparc64)
2117 arch='sparc'
2118 iproc='sparc'
2119 if test "$host_arch" = "sparc64" ; then
2120 _vis='yes'
2121 proc='ultrasparc'
2122 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2123 elif sunos ; then
2124 echocheck "CPU type"
2125 karch=$(uname -m)
2126 case "$(echo $karch)" in
2127 sun4) proc=v7 ;;
2128 sun4c) proc=v7 ;;
2129 sun4d) proc=v8 ;;
2130 sun4m) proc=v8 ;;
2131 sun4u) proc=ultrasparc _vis='yes' ;;
2132 sun4v) proc=v9 ;;
2133 *) proc=v8 ;;
2134 esac
2135 echores "$proc"
2136 else
2137 proc=v8
2139 _mcpu="-mcpu=$proc"
2140 _optimizing="$proc"
2143 arm*)
2144 arch='arm'
2145 iproc='arm'
2148 avr32)
2149 arch='avr32'
2150 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2151 iproc='avr32'
2152 test $_fast_clz = "auto" && _fast_clz=yes
2155 sh|sh4)
2156 arch='sh4'
2157 iproc='sh4'
2160 ppc|ppc64|powerpc|powerpc64)
2161 arch='ppc'
2162 def_dcbzl='#define HAVE_DCBZL 0'
2163 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2164 def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 1'
2165 def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 1'
2166 iproc='ppc'
2168 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2169 subarch='ppc64'
2170 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2172 echocheck "CPU type"
2173 case $system_name in
2174 Linux)
2175 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2176 if test -n "$($_cpuinfo | grep altivec)"; then
2177 test $_altivec = auto && _altivec=yes
2180 Darwin)
2181 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2182 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2183 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2184 test $_altivec = auto && _altivec=yes
2187 NetBSD)
2188 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2189 case $cc_version in
2190 2*|3.0*|3.1*|3.2*|3.3*)
2193 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2194 test $_altivec = auto && _altivec=yes
2197 esac
2199 AIX)
2200 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2202 esac
2203 if test "$_altivec" = yes; then
2204 echores "$proc altivec"
2205 else
2206 _altivec=no
2207 echores "$proc"
2210 echocheck "GCC & CPU optimization abilities"
2212 if test -n "$proc"; then
2213 case "$proc" in
2214 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2215 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2216 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2217 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2218 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2219 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2220 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2221 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2222 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2223 *) ;;
2224 esac
2225 # gcc 3.1(.1) and up supports 7400 and 7450
2226 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2227 case "$proc" in
2228 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2229 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2230 *) ;;
2231 esac
2233 # gcc 3.2 and up supports 970
2234 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2235 case "$proc" in
2236 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2237 def_dcbzl='#define HAVE_DCBZL 1' ;;
2238 *) ;;
2239 esac
2241 # gcc 3.3 and up supports POWER4
2242 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2243 case "$proc" in
2244 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2245 *) ;;
2246 esac
2248 # gcc 3.4 and up supports 440*
2249 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2250 case "$proc" in
2251 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2252 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2253 *) ;;
2254 esac
2256 # gcc 4.0 and up supports POWER5
2257 if test "$_cc_major" -ge "4"; then
2258 case "$proc" in
2259 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2260 *) ;;
2261 esac
2265 if test -n "$_mcpu"; then
2266 _optimizing=$(echo $_mcpu | cut -c 8-)
2267 echores "$_optimizing"
2268 else
2269 echores "none"
2272 test $_fast_clz = "auto" && _fast_clz=yes
2276 alpha*)
2277 arch='alpha'
2278 iproc='alpha'
2280 echocheck "CPU type"
2281 cat > $TMPC << EOF
2282 int main(void) {
2283 unsigned long ver, mask;
2284 __asm__ ("implver %0" : "=r" (ver));
2285 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2286 printf("%ld-%x\n", ver, ~mask);
2287 return 0;
2290 $_cc -o "$TMPEXE" "$TMPC"
2291 case $("$TMPEXE") in
2293 0-0) proc="ev4"; _mvi="0";;
2294 1-0) proc="ev5"; _mvi="0";;
2295 1-1) proc="ev56"; _mvi="0";;
2296 1-101) proc="pca56"; _mvi="1";;
2297 2-303) proc="ev6"; _mvi="1";;
2298 2-307) proc="ev67"; _mvi="1";;
2299 2-1307) proc="ev68"; _mvi="1";;
2300 esac
2301 echores "$proc"
2303 echocheck "GCC & CPU optimization abilities"
2304 if test "$proc" = "ev68" ; then
2305 cc_check -mcpu=$proc || proc=ev67
2307 if test "$proc" = "ev67" ; then
2308 cc_check -mcpu=$proc || proc=ev6
2310 _mcpu="-mcpu=$proc"
2311 echores "$proc"
2313 test $_fast_clz = "auto" && _fast_clz=yes
2315 _optimizing="$proc"
2318 mips)
2319 arch='mips'
2320 iproc='mips'
2322 if irix ; then
2323 echocheck "CPU type"
2324 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2325 case "$(echo $proc)" in
2326 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2327 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2328 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2329 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2330 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2331 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2332 esac
2333 # gcc < 3.x does not support -mtune.
2334 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2335 _mcpu=''
2337 echores "$proc"
2340 test $_fast_clz = "auto" && _fast_clz=yes
2344 hppa)
2345 arch='pa_risc'
2346 iproc='PA-RISC'
2349 s390)
2350 arch='s390'
2351 iproc='390'
2354 s390x)
2355 arch='s390x'
2356 iproc='390x'
2359 vax)
2360 arch='vax'
2361 iproc='vax'
2364 xtensa)
2365 arch='xtensa'
2366 iproc='xtensa'
2369 generic)
2370 arch='generic'
2374 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2375 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2376 die "unsupported architecture $host_arch"
2378 esac # case "$host_arch" in
2380 if test "$_runtime_cpudetection" = yes ; then
2381 if x86 ; then
2382 test "$_cmov" != no && _cmov=yes
2383 x86_32 && _cmov=no
2384 test "$_mmx" != no && _mmx=yes
2385 test "$_3dnow" != no && _3dnow=yes
2386 test "$_3dnowext" != no && _3dnowext=yes
2387 test "$_mmxext" != no && _mmxext=yes
2388 test "$_sse" != no && _sse=yes
2389 test "$_sse2" != no && _sse2=yes
2390 test "$_ssse3" != no && _ssse3=yes
2391 test "$_mtrr" != no && _mtrr=yes
2393 if ppc; then
2394 _altivec=yes
2399 # endian testing
2400 echocheck "byte order"
2401 if test "$_big_endian" = auto ; then
2402 cat > $TMPC <<EOF
2403 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
2404 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
2405 int main(void) { return (int)ascii_name; }
2407 if cc_check ; then
2408 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2409 _big_endian=yes
2410 else
2411 _big_endian=no
2413 else
2414 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2417 if test "$_big_endian" = yes ; then
2418 _byte_order='big-endian'
2419 def_words_endian='#define WORDS_BIGENDIAN 1'
2420 def_bigendian='#define HAVE_BIGENDIAN 1'
2421 def_av_bigendian='#define AV_HAVE_BIGENDIAN 1'
2422 else
2423 _byte_order='little-endian'
2424 def_words_endian='#undef WORDS_BIGENDIAN'
2425 def_bigendian='#define HAVE_BIGENDIAN 0'
2426 def_av_bigendian='#define AV_HAVE_BIGENDIAN 0'
2428 echores "$_byte_order"
2431 echocheck "extern symbol prefix"
2432 cat > $TMPC << EOF
2433 int ff_extern;
2435 cc_check -c || die "Symbol mangling check failed."
2436 sym=$($_nm -P -g $TMPEXE)
2437 extern_prefix=${sym%%ff_extern*}
2438 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2439 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2440 echores $extern_prefix
2443 echocheck "assembler support of -pipe option"
2444 cat > $TMPC << EOF
2445 int main(void) { return 0; }
2447 # -I. helps to detect compilers that just misunderstand -pipe like Sun C
2448 cc_check -pipe -I. && _pipe="-pipe" && echores "yes" || echores "no"
2451 echocheck "compiler support of named assembler arguments"
2452 _named_asm_args=yes
2453 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2454 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2455 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2456 _named_asm_args=no
2457 def_named_asm_args="#undef NAMED_ASM_ARGS"
2459 echores $_named_asm_args
2462 if darwin && test "$cc_vendor" = "gnu" ; then
2463 echocheck "GCC support of -mstackrealign"
2464 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2465 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2466 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2467 # wrong code with this flag, but this can be worked around by adding
2468 # -fno-unit-at-a-time as described in the blog post at
2469 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2470 cat > $TMPC << EOF
2471 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2472 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2474 cc_check -O4 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2475 test -z "$cflags_stackrealign" && cc_check -O4 -mstackrealign -fno-unit-at-a-time \
2476 && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2477 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2478 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2481 # Checking for CFLAGS
2482 _install_strip="-s"
2483 if test "$_profile" != "" || test "$_debug" != "" ; then
2484 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2485 _install_strip=
2486 elif test -z "$CFLAGS" ; then
2487 if test "$cc_vendor" = "intel" ; then
2488 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2489 elif test "$cc_vendor" = "sun" ; then
2490 CFLAGS="-O2 $_march $_mcpu $_pipe -xc99 -xregs=frameptr"
2491 elif test "$cc_vendor" != "gnu" ; then
2492 CFLAGS="-O2 $_march $_mcpu $_pipe"
2493 else
2494 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2495 extra_ldflags="$extra_ldflags -ffast-math"
2497 else
2498 _warn_CFLAGS=yes
2501 cat > $TMPC << EOF
2502 int main(void) { return 0; }
2504 if test "$cc_vendor" = "gnu" ; then
2505 cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
2506 cc_check -Wdeclaration-after-statement && CFLAGS="-Wdeclaration-after-statement $CFLAGS"
2507 cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
2508 cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
2509 cc_check -Wundef && CFLAGS="-Wundef $CFLAGS"
2510 cc_check -Wmissing-prototypes && CFLAGS="-Wmissing-prototypes $CFLAGS"
2511 cc_check -Wstrict-prototypes && CFLAGS="-Wstrict-prototypes $CFLAGS"
2512 else
2513 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2516 cc_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2517 cc_check -MD -MP && CFLAGS="-MD -MP $CFLAGS"
2520 if test -n "$LDFLAGS" ; then
2521 extra_ldflags="$extra_ldflags $LDFLAGS"
2522 _warn_CFLAGS=yes
2523 elif test "$cc_vendor" = "intel" ; then
2524 extra_ldflags="$extra_ldflags -i-static"
2526 if test -n "$CPPFLAGS" ; then
2527 extra_cflags="$extra_cflags $CPPFLAGS"
2528 _warn_CFLAGS=yes
2533 if x86_32 ; then
2534 # Checking assembler (_as) compatibility...
2535 # Added workaround for older as that reads from stdin by default - atmos
2536 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2537 echocheck "assembler ($_as $as_version)"
2539 _pref_as_version='2.9.1'
2540 echo 'nop' > $TMPS
2541 if test "$_mmx" = yes ; then
2542 echo 'emms' >> $TMPS
2544 if test "$_3dnow" = yes ; then
2545 _pref_as_version='2.10.1'
2546 echo 'femms' >> $TMPS
2548 if test "$_3dnowext" = yes ; then
2549 _pref_as_version='2.10.1'
2550 echo 'pswapd %mm0, %mm0' >> $TMPS
2552 if test "$_mmxext" = yes ; then
2553 _pref_as_version='2.10.1'
2554 echo 'movntq %mm0, (%eax)' >> $TMPS
2556 if test "$_sse" = yes ; then
2557 _pref_as_version='2.10.1'
2558 echo 'xorps %xmm0, %xmm0' >> $TMPS
2560 #if test "$_sse2" = yes ; then
2561 # _pref_as_version='2.11'
2562 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2564 if test "$_cmov" = yes ; then
2565 _pref_as_version='2.10.1'
2566 echo 'cmovb %eax, %ebx' >> $TMPS
2568 if test "$_ssse3" = yes ; then
2569 _pref_as_version='2.16.92'
2570 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2572 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2574 if test "$as_verc_fail" != yes ; then
2575 echores "ok"
2576 else
2577 res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2578 echores "failed"
2579 die "obsolete binutils version"
2582 fi #if x86_32
2584 echocheck ".align is a power of two"
2585 if test "$_asmalign_pot" = auto ; then
2586 _asmalign_pot=no
2587 cat > $TMPC << EOF
2588 int main(void) { __asm__ (".align 3"); return 0; }
2590 cc_check && _asmalign_pot=yes
2592 if test "$_asmalign_pot" = "yes" ; then
2593 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2594 else
2595 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2597 echores $_asmalign_pot
2599 if x86 ; then
2600 echocheck "10 assembler operands"
2601 ten_operands=no
2602 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2603 cat > $TMPC << EOF
2604 int main(void) {
2605 int x=0;
2606 __asm__ volatile(
2608 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2610 return 0;
2613 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2614 echores $ten_operands
2616 echocheck "ebx availability"
2617 ebx_available=no
2618 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2619 cat > $TMPC << EOF
2620 int main(void) {
2621 int x;
2622 __asm__ volatile(
2623 "xor %0, %0"
2624 :"=b"(x)
2625 // just adding ebx to clobber list seems unreliable with some
2626 // compilers, e.g. Haiku's gcc 2.95
2628 // and the above check does not work for OSX 64 bit...
2629 __asm__ volatile("":::"%ebx");
2630 return 0;
2633 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2634 echores $ebx_available
2636 echocheck "PIC"
2637 pic=no
2638 cat > $TMPC << EOF
2639 int main(void) {
2640 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2641 #error PIC not enabled
2642 #endif
2643 return 0;
2646 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2647 echores $pic
2649 echocheck "yasm"
2650 if test -z "$YASMFLAGS" ; then
2651 if darwin ; then
2652 x86_64 && objformat="macho64" || objformat="macho"
2653 elif win32 ; then
2654 objformat="win32"
2655 else
2656 objformat="elf"
2658 # currently tested for Linux x86, x86_64
2659 YASMFLAGS="-f $objformat"
2660 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2661 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2662 case "$objformat" in
2663 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2664 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2665 esac
2666 else
2667 _warn_CFLAGS=yes
2670 echo "pabsw xmm0, xmm0" > $TMPS
2671 yasm_check || _yasm=""
2672 if test $_yasm ; then
2673 def_yasm='#define HAVE_YASM 1'
2674 have_yasm="yes"
2675 echores "$_yasm"
2676 else
2677 def_yasm='#define HAVE_YASM 0'
2678 have_yasm="no"
2679 echores "no"
2682 echocheck "bswap"
2683 def_bswap='#define HAVE_BSWAP 0'
2684 echo 'bswap %eax' > $TMPS
2685 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2686 echores "$bswap"
2687 fi #if x86
2690 #FIXME: This should happen before the check for CFLAGS..
2691 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2692 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2694 # check if AltiVec is supported by the compiler, and how to enable it
2695 echocheck "GCC AltiVec flags"
2696 cat > $TMPC << EOF
2697 int main(void) { return 0; }
2699 if $(cc_check -maltivec -mabi=altivec) ; then
2700 _altivec_gcc_flags="-maltivec -mabi=altivec"
2701 # check if <altivec.h> should be included
2702 cat > $TMPC << EOF
2703 #include <altivec.h>
2704 int main(void) { return 0; }
2706 if $(cc_check $_altivec_gcc_flags) ; then
2707 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2708 inc_altivec_h='#include <altivec.h>'
2709 else
2710 cat > $TMPC << EOF
2711 int main(void) { return 0; }
2713 if $(cc_check -faltivec) ; then
2714 _altivec_gcc_flags="-faltivec"
2715 else
2716 _altivec=no
2717 _altivec_gcc_flags="none, AltiVec disabled"
2721 echores "$_altivec_gcc_flags"
2723 # check if the compiler supports braces for vector declarations
2724 cat > $TMPC << EOF
2725 $inc_altivec_h
2726 int main(void) { (vector int) {1}; return 0; }
2728 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2730 # Disable runtime cpudetection if we cannot generate AltiVec code or
2731 # AltiVec is disabled by the user.
2732 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2733 && _runtime_cpudetection=no
2735 # Show that we are optimizing for AltiVec (if enabled and supported).
2736 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2737 && _optimizing="$_optimizing altivec"
2739 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2740 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2743 if ppc ; then
2744 def_xform_asm='#define HAVE_XFORM_ASM 0'
2745 xform_asm=no
2746 echocheck "XFORM ASM support"
2747 cat > $TMPC << EOF
2748 int main(void) { __asm__ volatile ("lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)); return 0; }
2750 cc_check && xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2751 echores "$xform_asm"
2754 if arm ; then
2755 echocheck "ARM pld instruction"
2756 cat > $TMPC << EOF
2757 int main(void) { __asm__ volatile ("pld [r0]"); return 0; }
2759 pld=no
2760 cc_check && pld=yes
2761 echores "$pld"
2763 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2764 if test $_armv5te = "auto" ; then
2765 cat > $TMPC << EOF
2766 int main(void) { __asm__ volatile ("qadd r0, r0, r0"); return 0; }
2768 _armv5te=no
2769 cc_check && _armv5te=yes
2771 echores "$_armv5te"
2773 test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz=yes
2775 echocheck "ARMv6 (SIMD instructions)"
2776 if test $_armv6 = "auto" ; then
2777 cat > $TMPC << EOF
2778 int main(void) { __asm__ volatile ("sadd16 r0, r0, r0"); return 0; }
2780 _armv6=no
2781 cc_check && _armv6=yes
2783 echores "$_armv6"
2785 echocheck "ARMv6t2 (SIMD instructions)"
2786 if test $_armv6t2 = "auto" ; then
2787 cat > $TMPC << EOF
2788 int main(void) { __asm__ volatile ("movt r0, #0"); return 0; }
2790 _armv6t2=no
2791 cc_check && _armv6t2=yes
2793 echores "$_armv6"
2795 echocheck "ARM VFP"
2796 if test $_armvfp = "auto" ; then
2797 cat > $TMPC << EOF
2798 int main(void) { __asm__ volatile ("fadds s0, s0, s0"); return 0; }
2800 _armvfp=no
2801 cc_check && _armvfp=yes
2803 echores "$_armvfp"
2805 echocheck "ARM NEON"
2806 if test $neon = "auto" ; then
2807 cat > $TMPC << EOF
2808 int main(void) { __asm__ volatile ("vadd.i16 q0, q0, q0"); return 0; }
2810 neon=no
2811 cc_check && neon=yes
2813 echores "$neon"
2815 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2816 if test $_iwmmxt = "auto" ; then
2817 cat > $TMPC << EOF
2818 int main(void) { __asm__ volatile ("wunpckelub wr6, wr4"); return 0; }
2820 _iwmmxt=no
2821 cc_check && _iwmmxt=yes
2823 echores "$_iwmmxt"
2826 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'
2827 test "$_altivec" = yes && cpuexts="ALTIVEC $cpuexts"
2828 test "$_mmx" = yes && cpuexts="MMX $cpuexts"
2829 test "$_mmxext" = yes && cpuexts="MMX2 $cpuexts"
2830 test "$_3dnow" = yes && cpuexts="AMD3DNOW $cpuexts"
2831 test "$_3dnowext" = yes && cpuexts="AMD3DNOWEXT $cpuexts"
2832 test "$_sse" = yes && cpuexts="SSE $cpuexts"
2833 test "$_sse2" = yes && cpuexts="SSE2 $cpuexts"
2834 test "$_ssse3" = yes && cpuexts="SSSE3 $cpuexts"
2835 test "$_cmov" = yes && cpuexts="CMOV $cpuexts"
2836 test "$_fast_cmov" = yes && cpuexts="FAST_CMOV $cpuexts"
2837 test "$_fast_clz" = yes && cpuexts="FAST_CLZ $cpuexts"
2838 test "$pld" = yes && cpuexts="PLD $cpuexts"
2839 test "$_armv5te" = yes && cpuexts="ARMV5TE $cpuexts"
2840 test "$_armv6" = yes && cpuexts="ARMV6 $cpuexts"
2841 test "$_armv6t2" = yes && cpuexts="ARMV6T2 $cpuexts"
2842 test "$_armvfp" = yes && cpuexts="ARMVFP $cpuexts"
2843 test "$neon" = yes && cpuexts="NEON $cpuexts"
2844 test "$_iwmmxt" = yes && cpuexts="IWMMXT $cpuexts"
2845 test "$_vis" = yes && cpuexts="VIS $cpuexts"
2846 test "$_mvi" = yes && cpuexts="MVI $cpuexts"
2848 # Checking kernel version...
2849 if x86_32 && linux ; then
2850 _k_verc_problem=no
2851 kernel_version=$(uname -r 2>&1)
2852 echocheck "$system_name kernel version"
2853 case "$kernel_version" in
2854 '') kernel_version="?.??"; _k_verc_fail=yes;;
2855 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2856 _k_verc_problem=yes;;
2857 esac
2858 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2859 _k_verc_fail=yes
2861 if test "$_k_verc_fail" ; then
2862 echores "$kernel_version, fail"
2863 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2864 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2865 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2866 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2867 echo "2.2.x you must upgrade it to get SSE support!"
2868 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2869 else
2870 echores "$kernel_version, ok"
2874 ######################
2875 # MAIN TESTS GO HERE #
2876 ######################
2879 echocheck "-lposix"
2880 cat > $TMPC <<EOF
2881 int main(void) { return 0; }
2883 if cc_check -lposix ; then
2884 extra_ldflags="$extra_ldflags -lposix"
2885 echores "yes"
2886 else
2887 echores "no"
2890 echocheck "-lm"
2891 cat > $TMPC <<EOF
2892 int main(void) { return 0; }
2894 if cc_check -lm ; then
2895 _ld_lm="-lm"
2896 echores "yes"
2897 else
2898 _ld_lm=""
2899 echores "no"
2903 echocheck "langinfo"
2904 if test "$_langinfo" = auto ; then
2905 cat > $TMPC <<EOF
2906 #include <langinfo.h>
2907 int main(void) { nl_langinfo(CODESET); return 0; }
2909 _langinfo=no
2910 cc_check && _langinfo=yes
2912 if test "$_langinfo" = yes ; then
2913 def_langinfo='#define HAVE_LANGINFO 1'
2914 else
2915 def_langinfo='#undef HAVE_LANGINFO'
2917 echores "$_langinfo"
2920 echocheck "language"
2921 # Set preferred languages, "all" uses English as main language.
2922 test -z "$language" && language=$LINGUAS
2923 test -z "$language_doc" && language_doc=$language
2924 test -z "$language_man" && language_man=$language
2925 test -z "$language_msg" && language_msg=$language
2926 language_doc=$(echo $language_doc | tr , " ")
2927 language_man=$(echo $language_man | tr , " ")
2928 language_msg=$(echo $language_msg | tr , " ")
2930 test "$language_doc" = "all" && language_doc=$doc_lang_all
2931 test "$language_man" = "all" && language_man=$man_lang_all
2932 test "$language_msg" = "all" && language_msg=en
2934 # Prune non-existing translations from language lists.
2935 # Set message translation to the first available language.
2936 # Fall back on English.
2937 for lang in $language_doc ; do
2938 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2939 done
2940 language_doc=$tmp_language_doc
2941 test -z "$language_doc" && language_doc=en
2943 for lang in $language_man ; do
2944 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2945 done
2946 language_man=$tmp_language_man
2947 test -z "$language_man" && language_man=en
2949 for lang in $language_msg ; do
2950 test -f "help/help_mp-${lang}.h" && tmp_language_msg=$lang && break
2951 done
2952 language_msg=$tmp_language_msg
2953 test -z "$language_msg" && language_msg=en
2954 _mp_help="help/help_mp-${language_msg}.h"
2955 echores "messages: $language_msg - man pages: $language_man - documentation: $language_doc"
2958 echocheck "enable sighandler"
2959 if test "$_sighandler" = yes ; then
2960 def_sighandler='#define CONFIG_SIGHANDLER 1'
2961 else
2962 def_sighandler='#undef CONFIG_SIGHANDLER'
2964 echores "$_sighandler"
2966 echocheck "runtime cpudetection"
2967 if test "$_runtime_cpudetection" = yes ; then
2968 _optimizing="Runtime CPU-Detection enabled"
2969 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2970 else
2971 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2973 echores "$_runtime_cpudetection"
2976 echocheck "restrict keyword"
2977 for restrict_keyword in restrict __restrict __restrict__ ; do
2978 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2979 if cc_check; then
2980 def_restrict_keyword=$restrict_keyword
2981 break;
2983 done
2984 if [ -n "$def_restrict_keyword" ]; then
2985 echores "$def_restrict_keyword"
2986 else
2987 echores "none"
2989 # Avoid infinite recursion loop ("#define restrict restrict")
2990 if [ "$def_restrict_keyword" != "restrict" ]; then
2991 def_restrict_keyword="#define restrict $def_restrict_keyword"
2992 else
2993 def_restrict_keyword=""
2997 echocheck "__builtin_expect"
2998 # GCC branch prediction hint
2999 cat > $TMPC << EOF
3000 int foo(int a) {
3001 a = __builtin_expect(a, 10);
3002 return a == 10 ? 0 : 1;
3004 int main(void) { return foo(10) && foo(0); }
3006 _builtin_expect=no
3007 cc_check && _builtin_expect=yes
3008 if test "$_builtin_expect" = yes ; then
3009 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
3010 else
3011 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
3013 echores "$_builtin_expect"
3016 echocheck "kstat"
3017 cat > $TMPC << EOF
3018 #include <kstat.h>
3019 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
3021 _kstat=no
3022 cc_check -lkstat && _kstat=yes
3023 if test "$_kstat" = yes ; then
3024 def_kstat="#define HAVE_LIBKSTAT 1"
3025 extra_ldflags="$extra_ldflags -lkstat"
3026 else
3027 def_kstat="#undef HAVE_LIBKSTAT"
3029 echores "$_kstat"
3032 echocheck "posix4"
3033 # required for nanosleep on some systems
3034 cat > $TMPC << EOF
3035 #include <time.h>
3036 int main(void) { (void) nanosleep(0, 0); return 0; }
3038 _posix4=no
3039 cc_check -lposix4 && _posix4=yes
3040 if test "$_posix4" = yes ; then
3041 extra_ldflags="$extra_ldflags -lposix4"
3043 echores "$_posix4"
3045 for func in exp2 exp2f llrint llrintf log2 log2f lrint lrintf round roundf truncf; do
3046 echocheck $func
3047 cat > $TMPC << EOF
3048 #include <math.h>
3049 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
3051 eval _$func=no
3052 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
3053 if eval test "x\$_$func" = "xyes"; then
3054 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
3055 echores yes
3056 else
3057 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
3058 echores no
3060 done
3063 echocheck "mkstemp"
3064 cat > $TMPC << EOF
3065 #include <stdlib.h>
3066 int main(void) { char a; mkstemp(&a); return 0; }
3068 _mkstemp=no
3069 cc_check && _mkstemp=yes
3070 if test "$_mkstemp" = yes ; then
3071 def_mkstemp='#define HAVE_MKSTEMP 1'
3072 else
3073 def_mkstemp='#undef HAVE_MKSTEMP'
3075 echores "$_mkstemp"
3078 echocheck "nanosleep"
3079 # also check for nanosleep
3080 cat > $TMPC << EOF
3081 #include <time.h>
3082 int main(void) { (void) nanosleep(0, 0); return 0; }
3084 _nanosleep=no
3085 cc_check && _nanosleep=yes
3086 if test "$_nanosleep" = yes ; then
3087 def_nanosleep='#define HAVE_NANOSLEEP 1'
3088 else
3089 def_nanosleep='#undef HAVE_NANOSLEEP'
3091 echores "$_nanosleep"
3094 echocheck "socklib"
3095 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
3096 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
3097 cat > $TMPC << EOF
3098 #include <netdb.h>
3099 #include <sys/socket.h>
3100 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
3102 _socklib=no
3103 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
3104 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
3105 done
3106 test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no
3107 if test $_winsock2_h = auto ; then
3108 _winsock2_h=no
3109 cat > $TMPC << EOF
3110 #include <winsock2.h>
3111 int main(void) { (void) gethostbyname(0); return 0; }
3113 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
3115 test "$_ld_sock" && res_comment="using $_ld_sock"
3116 echores "$_socklib"
3119 if test $_winsock2_h = yes ; then
3120 _ld_sock="-lws2_32"
3121 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
3122 cc_check_winsock2_h='-DHAVE_WINSOCK2_H=1'
3123 else
3124 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
3125 cc_check_winsock2_h='-DHAVE_WINSOCK2_H=0'
3129 echocheck "netdb.h, struct addrinfo"
3130 if test "$_struct_addrinfo" = auto; then
3131 _struct_addrinfo=no
3132 cat > $TMPC << EOF
3133 #if HAVE_WINSOCK2_H
3134 #include <winsock2.h>
3135 #include <ws2tcpip.h>
3136 #else
3137 #include <sys/types.h>
3138 #include <sys/socket.h>
3139 #include <netdb.h>
3140 #endif
3141 int main(void) { struct addrinfo ai; return 0; }
3143 cc_check $cc_check_winsock2_h && _struct_addrinfo=yes
3145 echores "$_struct_addrinfo"
3147 if test "$_struct_addrinfo" = yes; then
3148 def_addrinfo="#define HAVE_STRUCT_ADDRINFO 1"
3149 else
3150 def_addrinfo="#define HAVE_STRUCT_ADDRINFO 0"
3154 echocheck "netdb.h, getaddrinfo()"
3155 if test "$_getaddrinfo" = auto; then
3156 _getaddrinfo=no
3157 cat > $TMPC << EOF
3158 #if HAVE_WINSOCK2_H
3159 #include <winsock2.h>
3160 #else
3161 #include <sys/types.h>
3162 #include <sys/socket.h>
3163 #include <netdb.h>
3164 #endif
3165 int main(void) { (void) getaddrinfo(0, 0, 0, 0); return 0; }
3167 cc_check $cc_check_winsock2_h && _getaddrinfo=yes
3169 echores "$_getaddrinfo"
3171 if test "$_getaddrinfo" = yes; then
3172 def_getaddrinfo="#define HAVE_GETADDRINFO 1"
3173 else
3174 def_getaddrinfo="#define HAVE_GETADDRINFO 0"
3178 echocheck "sockaddr_storage"
3179 if test "$_struct_sockaddr_storage" = auto; then
3180 _struct_sockaddr_storage=no
3181 cat > $TMPC << EOF
3182 #if HAVE_WINSOCK2_H
3183 #include <winsock2.h>
3184 #else
3185 #include <sys/socket.h>
3186 #endif
3187 int main(void) { struct sockaddr_storage sas; return 0; }
3189 cc_check $cc_check_winsock2_h && _struct_sockaddr_storage=yes
3191 echores "$_struct_sockaddr_storage"
3193 if test "$_struct_sockaddr_storage" = yes; then
3194 def_sockaddr_storage="#define HAVE_STRUCT_SOCKADDR_STORAGE 1"
3195 else
3196 def_sockaddr_storage="#define HAVE_STRUCT_SOCKADDR_STORAGE 0"
3200 echocheck "struct ipv6_mreq"
3201 _struct_ipv6_mreq=no
3202 def_struct_ipv6_mreq="#define HAVE_STRUCT_IPV6_MREQ 0"
3203 for header in "netinet/in.h" "ws2tcpip.h" ; do
3204 cat > $TMPC << EOF
3205 #include <$header>
3206 int main(void) { struct ipv6_mreq mreq6; return 0; }
3208 cc_check && _struct_ipv6_mreq=yes && \
3209 def_struct_ipv6_mreq="#define HAVE_STRUCT_IPV6_MREQ 1" && break
3210 done
3211 echores "$_struct_ipv6_mreq"
3214 echocheck "struct sockaddr_in6"
3215 _struct_sockaddr_in6=no
3216 def_struct_sockaddr_in6="#define HAVE_STRUCT_SOCKADDR_IN6 0"
3217 for header in "netinet/in.h" "ws2tcpip.h" ; do
3218 cat > $TMPC << EOF
3219 #include <$header>
3220 int main(void) { struct sockaddr_in6 addr; return 0; }
3222 cc_check && _struct_sockaddr_in6=yes && \
3223 def_struct_sockaddr_in6="#define HAVE_STRUCT_SOCKADDR_IN6 1" && break
3224 done
3225 echores "$_struct_sockaddr_in6"
3228 echocheck "struct sockaddr sa_len"
3229 _struct_sockaddr_sa_len=no
3230 def_struct_sockaddr_sa_len="#define HAVE_STRUCT_SOCKADDR_SA_LEN 0"
3231 cat > $TMPC << EOF
3232 #if HAVE_WINSOCK2_H
3233 #include <winsock2.h>
3234 #else
3235 #include <sys/types.h>
3236 #include <sys/socket.h>
3237 #endif
3238 int main(void) { const void *p = &((struct sockaddr *)0)->sa_len; return 0; }
3240 cc_check $cc_check_winsock2_h && _struct_sockaddr_sa_len=yes && \
3241 def_struct_sockaddr_sa_len="#define HAVE_STRUCT_SOCKADDR_SA_LEN 1"
3242 echores "$_struct_sockaddr_sa_len"
3245 echocheck "arpa/inet.h"
3246 arpa_inet_h=no
3247 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
3248 cat > $TMPC << EOF
3249 #include <arpa/inet.h>
3250 int main(void) { return 0; }
3252 cc_check && arpa_inet_h=yes && def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
3253 echores "$arpa_inet_h"
3256 echocheck "inet_pton()"
3257 def_inet_pton='#define HAVE_INET_PTON 0'
3258 inet_pton=no
3259 cat > $TMPC << EOF
3260 #include <sys/types.h>
3261 #include <sys/socket.h>
3262 #include <arpa/inet.h>
3263 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
3265 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3266 cc_check $_ld_tmp && inet_pton=yes && break
3267 done
3268 if test $inet_pton = yes ; then
3269 test "$_ld_tmp" && res_comment="using $_ld_tmp"
3270 def_inet_pton='#define HAVE_INET_PTON 1'
3272 echores "$inet_pton"
3275 echocheck "inet_aton()"
3276 def_inet_aton='#define HAVE_INET_ATON 0'
3277 inet_aton=no
3278 cat > $TMPC << EOF
3279 #include <sys/types.h>
3280 #include <sys/socket.h>
3281 #include <arpa/inet.h>
3282 int main(void) { (void) inet_aton(0, 0); return 0; }
3284 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3285 cc_check $_ld_tmp && inet_aton=yes && break
3286 done
3287 if test $inet_aton = yes ; then
3288 test "$_ld_tmp" && res_comment="using $_ld_tmp"
3289 def_inet_aton='#define HAVE_INET_ATON 1'
3291 echores "$inet_aton"
3294 echocheck "socklen_t"
3295 _socklen_t=no
3296 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
3297 cat > $TMPC << EOF
3298 #include <$header>
3299 int main(void) { socklen_t v = 0; return v; }
3301 cc_check && _socklen_t=yes && break
3302 done
3303 if test "$_socklen_t" = yes ; then
3304 def_socklen_t='#define HAVE_SOCKLEN_T 1'
3305 else
3306 def_socklen_t='#define HAVE_SOCKLEN_T 0'
3308 echores "$_socklen_t"
3311 echocheck "closesocket()"
3312 _closesocket=no
3313 cat > $TMPC << EOF
3314 #include <winsock2.h>
3315 int main(void) { closesocket(~0); return 0; }
3317 cc_check $_ld_sock && _closesocket=yes
3318 if test "$_closesocket" = yes ; then
3319 def_closesocket='#define HAVE_CLOSESOCKET 1'
3320 else
3321 def_closesocket='#define HAVE_CLOSESOCKET 0'
3323 echores "$_closesocket"
3326 echocheck "network"
3327 test $_winsock2_h = no && test $inet_pton = no &&
3328 test $inet_aton = no && _network=no
3329 if test "$_network" = yes ; then
3330 def_network='#define CONFIG_NETWORK 1'
3331 extra_ldflags="$extra_ldflags $_ld_sock"
3332 inputmodules="network $inputmodules"
3333 else
3334 _noinputmodules="network $_noinputmodules"
3335 def_network='#undef CONFIG_NETWORK'
3336 _ftp=no
3337 _libavprotocols=$(echo $_libavprotocols | sed -e s/GOPHER_PROTOCOL// -e s/HTTP_PROTOCOL// -e s/RTMP_PROTOCOL// -e s/RTP_PROTOCOL// -e s/TCP_PROTOCOL// -e s/UDP_PROTOCOL//)
3338 _libavdemuxers=$(echo $_libavdemuxers | sed -e s/RTSP_DEMUXER// -e s/SDP_DEMUXER//)
3340 echores "$_network"
3343 echocheck "inet6"
3344 if test "$_inet6" = auto ; then
3345 cat > $TMPC << EOF
3346 #include <sys/types.h>
3347 #if !defined(_WIN32) || defined(__CYGWIN__)
3348 #include <sys/socket.h>
3349 #include <netinet/in.h>
3350 #else
3351 #include <ws2tcpip.h>
3352 #endif
3353 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3355 _inet6=no
3356 if cc_check $_ld_sock ; then
3357 _inet6=yes
3360 if test "$_inet6" = yes ; then
3361 def_inet6='#define HAVE_AF_INET6 1'
3362 else
3363 def_inet6='#undef HAVE_AF_INET6'
3365 echores "$_inet6"
3368 echocheck "gethostbyname2"
3369 if test "$_gethostbyname2" = auto ; then
3370 cat > $TMPC << EOF
3371 #include <sys/types.h>
3372 #include <sys/socket.h>
3373 #include <netdb.h>
3374 int main(void) { gethostbyname2("", AF_INET); return 0; }
3376 _gethostbyname2=no
3377 if cc_check ; then
3378 _gethostbyname2=yes
3381 if test "$_gethostbyname2" = yes ; then
3382 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3383 else
3384 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3386 echores "$_gethostbyname2"
3389 echocheck "inttypes.h (required)"
3390 cat > $TMPC << EOF
3391 #include <inttypes.h>
3392 int main(void) { return 0; }
3394 _inttypes=no
3395 cc_check && _inttypes=yes
3396 echores "$_inttypes"
3398 if test "$_inttypes" = no ; then
3399 echocheck "bitypes.h (inttypes.h predecessor)"
3400 cat > $TMPC << EOF
3401 #include <sys/bitypes.h>
3402 int main(void) { return 0; }
3404 cc_check && _inttypes=yes
3405 if test "$_inttypes" = yes ; then
3406 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."
3407 else
3408 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3413 echocheck "int_fastXY_t in inttypes.h"
3414 cat > $TMPC << EOF
3415 #include <inttypes.h>
3416 int main(void) {
3417 volatile int_fast16_t v= 0;
3418 return v; }
3420 _fast_inttypes=no
3421 cc_check && _fast_inttypes=yes
3422 if test "$_fast_inttypes" = no ; then
3423 def_fast_inttypes='
3424 typedef signed char int_fast8_t;
3425 typedef signed int int_fast16_t;
3426 typedef signed int int_fast32_t;
3427 typedef signed long long int_fast64_t;
3428 typedef unsigned char uint_fast8_t;
3429 typedef unsigned int uint_fast16_t;
3430 typedef unsigned int uint_fast32_t;
3431 typedef unsigned long long uint_fast64_t;'
3433 echores "$_fast_inttypes"
3436 echocheck "malloc.h"
3437 cat > $TMPC << EOF
3438 #include <malloc.h>
3439 int main(void) { (void) malloc(0); return 0; }
3441 _malloc=no
3442 cc_check && _malloc=yes
3443 if test "$_malloc" = yes ; then
3444 def_malloc_h='#define HAVE_MALLOC_H 1'
3445 else
3446 def_malloc_h='#define HAVE_MALLOC_H 0'
3448 echores "$_malloc"
3451 echocheck "memalign()"
3452 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3453 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3454 cat > $TMPC << EOF
3455 #include <malloc.h>
3456 int main(void) { (void) memalign(64, sizeof(char)); return 0; }
3458 _memalign=no
3459 cc_check && _memalign=yes
3460 if test "$_memalign" = yes ; then
3461 def_memalign='#define HAVE_MEMALIGN 1'
3462 else
3463 def_memalign='#define HAVE_MEMALIGN 0'
3464 def_map_memalign='#define memalign(a,b) malloc(b)'
3465 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3467 echores "$_memalign"
3470 echocheck "posix_memalign()"
3471 posix_memalign=no
3472 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3473 cat > $TMPC << EOF
3474 #define _XOPEN_SOURCE 600
3475 #include <stdlib.h>
3476 int main(void) { posix_memalign(NULL, 0, 0); }
3478 cc_check && posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3479 echores "$posix_memalign"
3482 echocheck "alloca.h"
3483 cat > $TMPC << EOF
3484 #include <alloca.h>
3485 int main(void) { (void) alloca(0); return 0; }
3487 _alloca=no
3488 cc_check && _alloca=yes
3489 if cc_check ; then
3490 def_alloca_h='#define HAVE_ALLOCA_H 1'
3491 else
3492 def_alloca_h='#undef HAVE_ALLOCA_H'
3494 echores "$_alloca"
3497 echocheck "fastmemcpy"
3498 if test "$_fastmemcpy" = yes ; then
3499 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3500 else
3501 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3503 echores "$_fastmemcpy"
3506 echocheck "hard-coded tables"
3507 if test "$hardcoded_tables" = yes ; then
3508 def_hardcoded_tables='#define CONFIG_HARDCODED_TABLES 1'
3509 mak_hardcoded_tables='CONFIG_HARDCODED_TABLES = yes'
3510 else
3511 def_hardcoded_tables='#define CONFIG_HARDCODED_TABLES 0'
3513 echores "$hardcoded_tables"
3516 echocheck "mman.h"
3517 cat > $TMPC << EOF
3518 #include <sys/types.h>
3519 #include <sys/mman.h>
3520 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
3522 _mman=no
3523 cc_check && _mman=yes
3524 if test "$_mman" = yes ; then
3525 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3526 else
3527 def_mman_h='#undef HAVE_SYS_MMAN_H'
3528 os2 && _need_mmap=yes
3530 echores "$_mman"
3532 cat > $TMPC << EOF
3533 #include <sys/types.h>
3534 #include <sys/mman.h>
3535 int main(void) { void *p = MAP_FAILED; return 0; }
3537 _mman_has_map_failed=no
3538 cc_check && _mman_has_map_failed=yes
3539 if test "$_mman_has_map_failed" = yes ; then
3540 def_mman_has_map_failed=''
3541 else
3542 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3545 echocheck "dynamic loader"
3546 cat > $TMPC << EOF
3547 #include <stddef.h>
3548 #include <dlfcn.h>
3549 int main(void) { dlopen("", 0); dlclose(NULL); dlsym(NULL, ""); return 0; }
3551 _dl=no
3552 for _ld_tmp in "" "-ldl" ; do
3553 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3554 done
3555 if test "$_dl" = yes ; then
3556 def_dl='#define HAVE_LIBDL 1'
3557 else
3558 def_dl='#undef HAVE_LIBDL'
3560 echores "$_dl"
3563 echocheck "dynamic a/v plugins support"
3564 if test "$_dl" = no ; then
3565 _dynamic_plugins=no
3567 if test "$_dynamic_plugins" = yes ; then
3568 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3569 else
3570 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3572 echores "$_dynamic_plugins"
3575 def_threads='#define HAVE_THREADS 0'
3577 echocheck "pthread"
3578 if linux ; then
3579 THREAD_CFLAGS=-D_REENTRANT
3580 elif freebsd || netbsd || openbsd || bsdos ; then
3581 THREAD_CFLAGS=-D_THREAD_SAFE
3583 if test "$_pthreads" = auto ; then
3584 cat > $TMPC << EOF
3585 #include <pthread.h>
3586 void* func(void *arg) { return arg; }
3587 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3589 _pthreads=no
3590 if ! hpux ; then
3591 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3592 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3593 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3594 done
3597 if test "$_pthreads" = yes ; then
3598 test $_ld_pthread && res_comment="using $_ld_pthread"
3599 def_pthreads='#define HAVE_PTHREADS 1'
3600 def_threads='#define HAVE_THREADS 1'
3601 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3602 else
3603 res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3604 def_pthreads='#undef HAVE_PTHREADS'
3605 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3606 mingw32 || _win32dll=no
3608 echores "$_pthreads"
3610 if cygwin ; then
3611 if test "$_pthreads" = yes ; then
3612 def_pthread_cache="#define PTHREAD_CACHE 1"
3613 else
3614 _stream_cache=no
3615 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3619 echocheck "w32threads"
3620 if test "$_pthreads" = yes ; then
3621 res_comment="using pthread instead"
3622 _w32threads=no
3624 if test "$_w32threads" = auto ; then
3625 _w32threads=no
3626 mingw32 && _w32threads=yes
3628 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3629 echores "$_w32threads"
3631 echocheck "rpath"
3632 netbsd &&_rpath=yes
3633 if test "$_rpath" = yes ; then
3634 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3635 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3636 done
3637 extra_ldflags=$tmp
3639 echores "$_rpath"
3641 echocheck "iconv"
3642 if test "$_iconv" = auto ; then
3643 cat > $TMPC << EOF
3644 #include <stdio.h>
3645 #include <unistd.h>
3646 #include <iconv.h>
3647 #define INBUFSIZE 1024
3648 #define OUTBUFSIZE 4096
3650 char inbuffer[INBUFSIZE];
3651 char outbuffer[OUTBUFSIZE];
3653 int main(void) {
3654 size_t numread;
3655 iconv_t icdsc;
3656 char *tocode="UTF-8";
3657 char *fromcode="cp1250";
3658 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3659 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3660 char *iptr=inbuffer;
3661 char *optr=outbuffer;
3662 size_t inleft=numread;
3663 size_t outleft=OUTBUFSIZE;
3664 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
3665 != (size_t)(-1)) {
3666 write(1, outbuffer, OUTBUFSIZE - outleft);
3669 if (iconv_close(icdsc) == -1)
3672 return 0;
3675 _iconv=no
3676 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3677 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3678 _iconv=yes && break
3679 done
3681 if test "$_iconv" = yes ; then
3682 def_iconv='#define CONFIG_ICONV 1'
3683 else
3684 def_iconv='#undef CONFIG_ICONV'
3686 echores "$_iconv"
3689 echocheck "soundcard.h"
3690 _soundcard_h=no
3691 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3692 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3693 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3694 cat > $TMPC << EOF
3695 #include <$_soundcard_header>
3696 int main(void) { return 0; }
3698 cc_check && _soundcard_h=yes && res_comment="$_soundcard_header" && break
3699 done
3701 if test "$_soundcard_h" = yes ; then
3702 if test $_soundcard_header = "sys/soundcard.h"; then
3703 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3704 else
3705 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3708 echores "$_soundcard_h"
3711 echocheck "sys/dvdio.h"
3712 cat > $TMPC << EOF
3713 #include <unistd.h>
3714 #include <sys/dvdio.h>
3715 int main(void) { return 0; }
3717 _dvdio=no
3718 cc_check && _dvdio=yes
3719 if test "$_dvdio" = yes ; then
3720 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3721 else
3722 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3724 echores "$_dvdio"
3727 echocheck "sys/cdio.h"
3728 cat > $TMPC << EOF
3729 #include <unistd.h>
3730 #include <sys/cdio.h>
3731 int main(void) { return 0; }
3733 _cdio=no
3734 cc_check && _cdio=yes
3735 if test "$_cdio" = yes ; then
3736 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3737 else
3738 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3740 echores "$_cdio"
3743 echocheck "linux/cdrom.h"
3744 cat > $TMPC << EOF
3745 #include <sys/types.h>
3746 #include <linux/cdrom.h>
3747 int main(void) { return 0; }
3749 _cdrom=no
3750 cc_check && _cdrom=yes
3751 if test "$_cdrom" = yes ; then
3752 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3753 else
3754 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3756 echores "$_cdrom"
3759 echocheck "dvd.h"
3760 cat > $TMPC << EOF
3761 #include <dvd.h>
3762 int main(void) { return 0; }
3764 _dvd=no
3765 cc_check && _dvd=yes
3766 if test "$_dvd" = yes ; then
3767 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3768 else
3769 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3771 echores "$_dvd"
3774 if bsdos; then
3775 echocheck "BSDI dvd.h"
3776 cat > $TMPC << EOF
3777 #include <dvd.h>
3778 int main(void) { return 0; }
3780 _bsdi_dvd=no
3781 cc_check && _bsdi_dvd=yes
3782 if test "$_bsdi_dvd" = yes ; then
3783 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3784 else
3785 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3787 echores "$_bsdi_dvd"
3788 fi #if bsdos
3791 if hpux; then
3792 # also used by AIX, but AIX does not support VCD and/or libdvdread
3793 echocheck "HP-UX SCSI header"
3794 cat > $TMPC << EOF
3795 #include <sys/scsi.h>
3796 int main(void) { return 0; }
3798 _hpux_scsi_h=no
3799 cc_check && _hpux_scsi_h=yes
3800 if test "$_hpux_scsi_h" = yes ; then
3801 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3802 else
3803 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3805 echores "$_hpux_scsi_h"
3806 fi #if hpux
3809 if sunos; then
3810 echocheck "userspace SCSI headers (Solaris)"
3811 cat > $TMPC << EOF
3812 #include <unistd.h>
3813 #include <stropts.h>
3814 #include <sys/scsi/scsi_types.h>
3815 #include <sys/scsi/impl/uscsi.h>
3816 int main(void) { return 0; }
3818 _sol_scsi_h=no
3819 cc_check && _sol_scsi_h=yes
3820 if test "$_sol_scsi_h" = yes ; then
3821 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3822 else
3823 def_sol_scsi_h='#undef SOLARIS_USCSI'
3825 echores "$_sol_scsi_h"
3826 fi #if sunos
3829 echocheck "termcap"
3830 if test "$_termcap" = auto ; then
3831 cat > $TMPC <<EOF
3832 #include <stddef.h>
3833 #include <term.h>
3834 int main(void) { tgetent(NULL, NULL); return 0; }
3836 _termcap=no
3837 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3838 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
3839 && _termcap=yes && break
3840 done
3842 if test "$_termcap" = yes ; then
3843 def_termcap='#define HAVE_TERMCAP 1'
3844 test $_ld_tmp && res_comment="using $_ld_tmp"
3845 else
3846 def_termcap='#undef HAVE_TERMCAP'
3848 echores "$_termcap"
3851 echocheck "termios"
3852 def_termios='#undef HAVE_TERMIOS'
3853 def_termios_h='#undef HAVE_TERMIOS_H'
3854 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3855 if test "$_termios" = auto ; then
3856 _termios=no
3857 for _termios_header in "termios.h" "sys/termios.h"; do
3858 cat > $TMPC <<EOF
3859 #include <$_termios_header>
3860 int main(void) { return 0; }
3862 cc_check && _termios=yes && res_comment="using $_termios_header" && break
3863 done
3866 if test "$_termios" = yes ; then
3867 def_termios='#define HAVE_TERMIOS 1'
3868 if test "$_termios_header" = "termios.h" ; then
3869 def_termios_h='#define HAVE_TERMIOS_H 1'
3870 else
3871 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3874 echores "$_termios"
3877 echocheck "shm"
3878 if test "$_shm" = auto ; then
3879 cat > $TMPC << EOF
3880 #include <sys/types.h>
3881 #include <sys/shm.h>
3882 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3884 _shm=no
3885 cc_check && _shm=yes
3887 if test "$_shm" = yes ; then
3888 def_shm='#define HAVE_SHM 1'
3889 else
3890 def_shm='#undef HAVE_SHM'
3892 echores "$_shm"
3895 echocheck "strsep()"
3896 cat > $TMPC << EOF
3897 #include <string.h>
3898 int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3900 _strsep=no
3901 cc_check && _strsep=yes
3902 if test "$_strsep" = yes ; then
3903 def_strsep='#define HAVE_STRSEP 1'
3904 _need_strsep=no
3905 else
3906 def_strsep='#undef HAVE_STRSEP'
3907 _need_strsep=yes
3909 echores "$_strsep"
3912 echocheck "vsscanf()"
3913 cat > $TMPC << EOF
3914 #define _ISOC99_SOURCE
3915 #include <stdarg.h>
3916 #include <stdio.h>
3917 int main(void) { va_list ap; vsscanf("foo", "bar", ap); return 0; }
3919 _vsscanf=no
3920 cc_check && _vsscanf=yes
3921 if test "$_vsscanf" = yes ; then
3922 def_vsscanf='#define HAVE_VSSCANF 1'
3923 _need_vsscanf=no
3924 else
3925 def_vsscanf='#undef HAVE_VSSCANF'
3926 _need_vsscanf=yes
3928 echores "$_vsscanf"
3931 echocheck "swab()"
3932 cat > $TMPC << EOF
3933 #define _XOPEN_SOURCE 600
3934 #include <unistd.h>
3935 int main(void) { swab(0, 0, 0); return 0; }
3937 _swab=no
3938 cc_check && _swab=yes
3939 if test "$_swab" = yes ; then
3940 def_swab='#define HAVE_SWAB 1'
3941 _need_swab=no
3942 else
3943 def_swab='#undef HAVE_SWAB'
3944 _need_swab=yes
3946 echores "$_swab"
3948 echocheck "POSIX select()"
3949 cat > $TMPC << EOF
3950 #include <stdio.h>
3951 #include <stdlib.h>
3952 #include <sys/types.h>
3953 #include <string.h>
3954 #include <sys/time.h>
3955 #include <unistd.h>
3956 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3958 _posix_select=no
3959 def_posix_select='#undef HAVE_POSIX_SELECT'
3960 #select() of kLIBC (OS/2) supports socket only
3961 ! os2 && cc_check && _posix_select=yes \
3962 && def_posix_select='#define HAVE_POSIX_SELECT 1'
3963 echores "$_posix_select"
3966 echocheck "audio select()"
3967 if test "$_select" = no ; then
3968 def_select='#undef HAVE_AUDIO_SELECT'
3969 elif test "$_select" = yes ; then
3970 def_select='#define HAVE_AUDIO_SELECT 1'
3972 echores "$_select"
3975 echocheck "gettimeofday()"
3976 cat > $TMPC << EOF
3977 #include <stdio.h>
3978 #include <sys/time.h>
3979 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3981 _gettimeofday=no
3982 cc_check && _gettimeofday=yes
3983 if test "$_gettimeofday" = yes ; then
3984 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3985 _need_gettimeofday=no
3986 else
3987 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3988 _need_gettimeofday=yes
3990 echores "$_gettimeofday"
3993 echocheck "glob()"
3994 cat > $TMPC << EOF
3995 #include <stdio.h>
3996 #include <glob.h>
3997 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3999 _glob=no
4000 cc_check && _glob=yes
4001 if test "$_glob" = yes ; then
4002 def_glob='#define HAVE_GLOB 1'
4003 _need_glob=no
4004 else
4005 def_glob='#undef HAVE_GLOB'
4006 _need_glob=yes
4008 echores "$_glob"
4011 echocheck "setenv()"
4012 cat > $TMPC << EOF
4013 #include <stdlib.h>
4014 int main(void) { setenv("","",0); return 0; }
4016 _setenv=no
4017 cc_check && _setenv=yes
4018 if test "$_setenv" = yes ; then
4019 def_setenv='#define HAVE_SETENV 1'
4020 _need_setenv=no
4021 else
4022 def_setenv='#undef HAVE_SETENV'
4023 _need_setenv=yes
4025 echores "$_setenv"
4028 echocheck "setmode()"
4029 _setmode=no
4030 def_setmode='#define HAVE_SETMODE 0'
4031 cat > $TMPC << EOF
4032 #include <io.h>
4033 int main(void) { setmode(0, 0); return 0; }
4035 cc_check && _setmode=yes && def_setmode='#define HAVE_SETMODE 1'
4036 echores "$_setmode"
4039 if sunos; then
4040 echocheck "sysi86()"
4041 cat > $TMPC << EOF
4042 #include <sys/sysi86.h>
4043 int main(void) { sysi86(0); return 0; }
4045 _sysi86=no
4046 cc_check && _sysi86=yes
4047 if test "$_sysi86" = yes ; then
4048 def_sysi86='#define HAVE_SYSI86 1'
4049 cat > $TMPC << EOF
4050 #include <sys/sysi86.h>
4051 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
4053 cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
4054 else
4055 def_sysi86='#undef HAVE_SYSI86'
4057 echores "$_sysi86"
4058 fi #if sunos
4061 echocheck "sys/sysinfo.h"
4062 cat > $TMPC << EOF
4063 #include <sys/sysinfo.h>
4064 int main(void) {
4065 struct sysinfo s_info;
4066 sysinfo(&s_info);
4067 return 0;
4070 _sys_sysinfo=no
4071 cc_check && _sys_sysinfo=yes
4072 if test "$_sys_sysinfo" = yes ; then
4073 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
4074 else
4075 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
4077 echores "$_sys_sysinfo"
4080 if darwin; then
4082 echocheck "Mac OS X Finder Support"
4083 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
4084 if test "$_macosx_finder" = yes ; then
4085 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
4086 extra_ldflags="$extra_ldflags -framework Carbon"
4088 echores "$_macosx_finder"
4090 echocheck "Mac OS X Bundle file locations"
4091 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
4092 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
4093 if test "$_macosx_bundle" = yes ; then
4094 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
4095 extra_ldflags="$extra_ldflags -framework Carbon"
4097 echores "$_macosx_bundle"
4099 echocheck "Apple Remote"
4100 if test "$_apple_remote" = auto ; then
4101 _apple_remote=no
4102 cat > $TMPC <<EOF
4103 #include <stdio.h>
4104 #include <IOKit/IOCFPlugIn.h>
4105 int main(void) {
4106 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
4107 CFMutableDictionaryRef hidMatchDictionary;
4108 IOReturn ioReturnValue;
4110 // Set up a matching dictionary to search the I/O Registry by class.
4111 // name for all HID class devices
4112 hidMatchDictionary = IOServiceMatching("AppleIRController");
4114 // Now search I/O Registry for matching devices.
4115 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
4116 hidMatchDictionary, &hidObjectIterator);
4118 // If search is unsuccessful, return nonzero.
4119 if (ioReturnValue != kIOReturnSuccess ||
4120 !IOIteratorIsValid(hidObjectIterator)) {
4121 return 1;
4123 return 0;
4126 cc_check -framework IOKit && tmp_run && _apple_remote=yes
4128 if test "$_apple_remote" = yes ; then
4129 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
4130 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
4131 else
4132 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
4134 echores "$_apple_remote"
4136 fi #if darwin
4138 if linux; then
4140 echocheck "Apple IR"
4141 if test "$_apple_ir" = auto ; then
4142 _apple_ir=no
4143 cat > $TMPC <<EOF
4144 #include <linux/types.h>
4145 #include <linux/input.h>
4146 int main(void) {
4147 struct input_event ev;
4148 struct input_id id;
4149 return 0;
4152 cc_check && _apple_ir=yes
4154 if test "$_apple_ir" = yes ; then
4155 def_apple_ir='#define CONFIG_APPLE_IR 1'
4156 else
4157 def_apple_ir='#undef CONFIG_APPLE_IR'
4159 echores "$_apple_ir"
4160 fi #if linux
4162 echocheck "pkg-config"
4163 _pkg_config=pkg-config
4164 if $($_pkg_config --version > /dev/null 2>&1); then
4165 if test "$_ld_static"; then
4166 _pkg_config="$_pkg_config --static"
4168 echores "yes"
4169 else
4170 _pkg_config=false
4171 echores "no"
4175 echocheck "Samba support (libsmbclient)"
4176 if test "$_smb" = yes; then
4177 extra_ldflags="$extra_ldflags -lsmbclient"
4179 if test "$_smb" = auto; then
4180 _smb=no
4181 cat > $TMPC << EOF
4182 #include <libsmbclient.h>
4183 int main(void) { smbc_opendir("smb://"); return 0; }
4185 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
4186 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
4187 _smb=yes && break
4188 done
4191 if test "$_smb" = yes; then
4192 def_smb="#define CONFIG_LIBSMBCLIENT 1"
4193 inputmodules="smb $inputmodules"
4194 else
4195 def_smb="#undef CONFIG_LIBSMBCLIENT"
4196 _noinputmodules="smb $_noinputmodules"
4198 echores "$_smb"
4201 #########
4202 # VIDEO #
4203 #########
4206 echocheck "tdfxfb"
4207 if test "$_tdfxfb" = yes ; then
4208 def_tdfxfb='#define CONFIG_TDFXFB 1'
4209 vomodules="tdfxfb $vomodules"
4210 else
4211 def_tdfxfb='#undef CONFIG_TDFXFB'
4212 novomodules="tdfxfb $novomodules"
4214 echores "$_tdfxfb"
4216 echocheck "s3fb"
4217 if test "$_s3fb" = yes ; then
4218 def_s3fb='#define CONFIG_S3FB 1'
4219 vomodules="s3fb $vomodules"
4220 else
4221 def_s3fb='#undef CONFIG_S3FB'
4222 novomodules="s3fb $novomodules"
4224 echores "$_s3fb"
4226 echocheck "wii"
4227 if test "$_wii" = yes ; then
4228 def_wii='#define CONFIG_WII 1'
4229 vomodules="wii $vomodules"
4230 else
4231 def_wii='#undef CONFIG_WII'
4232 novomodules="wii $novomodules"
4234 echores "$_wii"
4236 echocheck "tdfxvid"
4237 if test "$_tdfxvid" = yes ; then
4238 def_tdfxvid='#define CONFIG_TDFX_VID 1'
4239 vomodules="tdfx_vid $vomodules"
4240 else
4241 def_tdfxvid='#undef CONFIG_TDFX_VID'
4242 novomodules="tdfx_vid $novomodules"
4244 echores "$_tdfxvid"
4246 echocheck "xvr100"
4247 if test "$_xvr100" = auto ; then
4248 cat > $TMPC << EOF
4249 #include <unistd.h>
4250 #include <sys/fbio.h>
4251 #include <sys/visual_io.h>
4252 int main(void) {
4253 struct vis_identifier ident;
4254 struct fbgattr attr;
4255 ioctl(0, VIS_GETIDENTIFIER, &ident);
4256 ioctl(0, FBIOGATTR, &attr);
4257 return 0;
4260 _xvr100=no
4261 cc_check && _xvr100=yes
4263 if test "$_xvr100" = yes ; then
4264 def_xvr100='#define CONFIG_XVR100 1'
4265 vomodules="xvr100 $vomodules"
4266 else
4267 def_tdfxvid='#undef CONFIG_XVR100'
4268 novomodules="xvr100 $novomodules"
4270 echores "$_xvr100"
4272 echocheck "tga"
4273 if test "$_tga" = yes ; then
4274 def_tga='#define CONFIG_TGA 1'
4275 vomodules="tga $vomodules"
4276 else
4277 def_tga='#undef CONFIG_TGA'
4278 novomodules="tga $novomodules"
4280 echores "$_tga"
4283 echocheck "md5sum support"
4284 if test "$_md5sum" = yes; then
4285 def_md5sum="#define CONFIG_MD5SUM 1"
4286 vomodules="md5sum $vomodules"
4287 else
4288 def_md5sum="#undef CONFIG_MD5SUM"
4289 novomodules="md5sum $novomodules"
4291 echores "$_md5sum"
4294 echocheck "yuv4mpeg support"
4295 if test "$_yuv4mpeg" = yes; then
4296 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
4297 vomodules="yuv4mpeg $vomodules"
4298 else
4299 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
4300 novomodules="yuv4mpeg $novomodules"
4302 echores "$_yuv4mpeg"
4305 echocheck "bl"
4306 if test "$_bl" = yes ; then
4307 def_bl='#define CONFIG_BL 1'
4308 vomodules="bl $vomodules"
4309 else
4310 def_bl='#undef CONFIG_BL'
4311 novomodules="bl $novomodules"
4313 echores "$_bl"
4316 echocheck "DirectFB"
4317 if test "$_directfb" = auto ; then
4318 _directfb=no
4319 cat > $TMPC <<EOF
4320 #include <directfb.h>
4321 int main(void) { DirectFBInit(0, 0); return 0; }
4323 for _inc_tmp in "" -I/usr/local/include/directfb \
4324 -I/usr/include/directfb -I/usr/local/include; do
4325 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
4326 extra_cflags="$extra_cflags $_inc_tmp" && break
4327 done
4330 dfb_version() {
4331 expr $1 \* 65536 + $2 \* 256 + $3
4334 if test "$_directfb" = yes; then
4335 cat > $TMPC << EOF
4336 #include <directfb_version.h>
4338 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
4341 if $_cc -E $TMPC $extra_cflags > "$TMPEXE"; then
4342 _directfb_version=$(sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()')
4343 _dfb_major=$(echo $_directfb_version | cut -d . -f 1)
4344 _dfb_minor=$(echo $_directfb_version | cut -d . -f 2)
4345 _dfb_micro=$(echo $_directfb_version | cut -d . -f 3)
4346 _dfb_version=$(dfb_version $_dfb_major $_dfb_minor $_dfb_micro)
4347 if test "$_dfb_version" -ge $(dfb_version 0 9 13); then
4348 def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
4349 res_comment="$_directfb_version"
4350 test "$_dfb_version" -ge $(dfb_version 0 9 15) && _dfbmga=yes
4351 else
4352 def_directfb_version='#undef DIRECTFBVERSION'
4353 _directfb=no
4354 res_comment="version >=0.9.13 required"
4356 else
4357 _directfb=no
4358 res_comment="failed to get version"
4361 echores "$_directfb"
4363 if test "$_directfb" = yes ; then
4364 def_directfb='#define CONFIG_DIRECTFB 1'
4365 vomodules="directfb $vomodules"
4366 libs_mplayer="$libs_mplayer -ldirectfb"
4367 else
4368 def_directfb='#undef CONFIG_DIRECTFB'
4369 novomodules="directfb $novomodules"
4371 if test "$_dfbmga" = yes; then
4372 vomodules="dfbmga $vomodules"
4373 def_dfbmga='#define CONFIG_DFBMGA 1'
4374 else
4375 novomodules="dfbmga $novomodules"
4376 def_dfbmga='#undef CONFIG_DFBMGA'
4380 echocheck "X11 headers presence"
4381 _x11_headers="no"
4382 res_comment="check if the dev(el) packages are installed"
4383 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
4384 if test -f "$I/X11/Xlib.h" ; then
4385 _x11_headers="yes"
4386 res_comment=""
4387 break
4389 done
4390 if test $_cross_compile = no; then
4391 for I in /usr/X11/include /usr/X11R7/include /usr/local/include /usr/X11R6/include \
4392 /usr/include/X11R6 /usr/openwin/include ; do
4393 if test -f "$I/X11/Xlib.h" ; then
4394 extra_cflags="$extra_cflags -I$I"
4395 _x11_headers="yes"
4396 res_comment="using $I"
4397 break
4399 done
4401 echores "$_x11_headers"
4404 echocheck "X11"
4405 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
4406 cat > $TMPC <<EOF
4407 #include <X11/Xlib.h>
4408 #include <X11/Xutil.h>
4409 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
4411 for I in "" -L/usr/X11R7/lib -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
4412 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/local/lib64 -L/usr/X11R6/lib64 \
4413 -L/usr/lib ; do
4414 if netbsd; then
4415 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
4416 else
4417 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
4419 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" \
4420 && _x11=yes && break
4421 done
4423 if test "$_x11" = yes ; then
4424 def_x11='#define CONFIG_X11 1'
4425 vomodules="x11 xover $vomodules"
4426 else
4427 _x11=no
4428 def_x11='#undef CONFIG_X11'
4429 novomodules="x11 $novomodules"
4430 res_comment="check if the dev(el) packages are installed"
4431 # disable stuff that depends on X
4432 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
4434 echores "$_x11"
4436 echocheck "Xss screensaver extensions"
4437 if test "$_xss" = auto ; then
4438 cat > $TMPC << EOF
4439 #include <X11/Xlib.h>
4440 #include <X11/extensions/scrnsaver.h>
4441 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
4443 _xss=no
4444 cc_check -lXss && _xss=yes
4446 if test "$_xss" = yes ; then
4447 def_xss='#define CONFIG_XSS 1'
4448 libs_mplayer="$libs_mplayer -lXss"
4449 else
4450 def_xss='#undef CONFIG_XSS'
4452 echores "$_xss"
4454 echocheck "DPMS"
4455 _xdpms3=no
4456 _xdpms4=no
4457 if test "$_x11" = yes ; then
4458 cat > $TMPC <<EOF
4459 #include <X11/Xmd.h>
4460 #include <X11/Xlib.h>
4461 #include <X11/Xutil.h>
4462 #include <X11/Xatom.h>
4463 #include <X11/extensions/dpms.h>
4464 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4466 cc_check -lXdpms && _xdpms3=yes
4467 cat > $TMPC <<EOF
4468 #include <X11/Xlib.h>
4469 #include <X11/extensions/dpms.h>
4470 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4472 cc_check -lXext && _xdpms4=yes
4474 if test "$_xdpms4" = yes ; then
4475 def_xdpms='#define CONFIG_XDPMS 1'
4476 res_comment="using Xdpms 4"
4477 echores "yes"
4478 elif test "$_xdpms3" = yes ; then
4479 def_xdpms='#define CONFIG_XDPMS 1'
4480 libs_mplayer="$libs_mplayer -lXdpms"
4481 res_comment="using Xdpms 3"
4482 echores "yes"
4483 else
4484 def_xdpms='#undef CONFIG_XDPMS'
4485 echores "no"
4489 echocheck "Xv"
4490 if test "$_xv" = auto ; then
4491 cat > $TMPC <<EOF
4492 #include <X11/Xlib.h>
4493 #include <X11/extensions/Xvlib.h>
4494 int main(void) {
4495 (void) XvGetPortAttribute(0, 0, 0, 0);
4496 (void) XvQueryPortAttributes(0, 0, 0);
4497 return 0; }
4499 _xv=no
4500 cc_check -lXv && _xv=yes
4503 if test "$_xv" = yes ; then
4504 def_xv='#define CONFIG_XV 1'
4505 libs_mplayer="$libs_mplayer -lXv"
4506 vomodules="xv $vomodules"
4507 else
4508 def_xv='#undef CONFIG_XV'
4509 novomodules="xv $novomodules"
4511 echores "$_xv"
4514 echocheck "XvMC"
4515 if test "$_xv" = yes && test "$_xvmc" != no ; then
4516 _xvmc=no
4517 cat > $TMPC <<EOF
4518 #include <X11/Xlib.h>
4519 #include <X11/extensions/Xvlib.h>
4520 #include <X11/extensions/XvMClib.h>
4521 int main(void) {
4522 (void) XvMCQueryExtension(0,0,0);
4523 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4524 return 0; }
4526 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4527 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4528 done
4530 if test "$_xvmc" = yes ; then
4531 def_xvmc='#define CONFIG_XVMC 1'
4532 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
4533 vomodules="xvmc $vomodules"
4534 res_comment="using $_xvmclib"
4535 else
4536 def_xvmc='#define CONFIG_XVMC 0'
4537 novomodules="xvmc $novomodules"
4538 _libavdecoders=$(echo $_libavdecoders | sed -e s/MPEG_XVMC_DECODER//)
4540 echores "$_xvmc"
4543 echocheck "VDPAU"
4544 if test "$_vdpau" = auto ; then
4545 _vdpau=no
4546 if test "$_dl" = yes ; then
4547 cat > $TMPC <<EOF
4548 #include <vdpau/vdpau_x11.h>
4549 int main(void) {
4550 (void) vdp_device_create_x11(0, 0, 0, 0);
4551 return VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1; }
4553 cc_check -lvdpau && _vdpau=yes
4556 if test "$_vdpau" = yes ; then
4557 def_vdpau='#define CONFIG_VDPAU 1'
4558 libs_mplayer="$libs_mplayer -lvdpau"
4559 vomodules="vdpau $vomodules"
4560 else
4561 def_vdpau='#define CONFIG_VDPAU 0'
4562 novomodules="vdpau $novomodules"
4563 _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//)
4565 echores "$_vdpau"
4568 echocheck "Xinerama"
4569 if test "$_xinerama" = auto ; then
4570 cat > $TMPC <<EOF
4571 #include <X11/Xlib.h>
4572 #include <X11/extensions/Xinerama.h>
4573 int main(void) { (void) XineramaIsActive(0); return 0; }
4575 _xinerama=no
4576 cc_check -lXinerama && _xinerama=yes
4579 if test "$_xinerama" = yes ; then
4580 def_xinerama='#define CONFIG_XINERAMA 1'
4581 libs_mplayer="$libs_mplayer -lXinerama"
4582 else
4583 def_xinerama='#undef CONFIG_XINERAMA'
4585 echores "$_xinerama"
4588 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4589 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4590 # named 'X extensions' or something similar.
4591 # This check may be useful for future mplayer versions (to change resolution)
4592 # If you run into problems, remove '-lXxf86vm'.
4593 echocheck "Xxf86vm"
4594 if test "$_vm" = auto ; then
4595 cat > $TMPC <<EOF
4596 #include <X11/Xlib.h>
4597 #include <X11/extensions/xf86vmode.h>
4598 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4600 _vm=no
4601 cc_check -lXxf86vm && _vm=yes
4603 if test "$_vm" = yes ; then
4604 def_vm='#define CONFIG_XF86VM 1'
4605 libs_mplayer="$libs_mplayer -lXxf86vm"
4606 else
4607 def_vm='#undef CONFIG_XF86VM'
4609 echores "$_vm"
4611 # Check for the presence of special keycodes, like audio control buttons
4612 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4613 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4614 # have these new keycodes.
4615 echocheck "XF86keysym"
4616 if test "$_xf86keysym" = auto; then
4617 _xf86keysym=no
4618 cat > $TMPC <<EOF
4619 #include <X11/Xlib.h>
4620 #include <X11/XF86keysym.h>
4621 int main(void) { return XF86XK_AudioPause; }
4623 cc_check && _xf86keysym=yes
4625 if test "$_xf86keysym" = yes ; then
4626 def_xf86keysym='#define CONFIG_XF86XK 1'
4627 else
4628 def_xf86keysym='#undef CONFIG_XF86XK'
4630 echores "$_xf86keysym"
4632 echocheck "DGA"
4633 if test "$_dga2" = auto && test "$_x11" = yes ; then
4634 cat > $TMPC << EOF
4635 #include <X11/Xlib.h>
4636 #include <X11/extensions/xf86dga.h>
4637 int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4639 _dga2=no
4640 cc_check -lXxf86dga && _dga2=yes
4642 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4643 cat > $TMPC << EOF
4644 #include <X11/Xlib.h>
4645 #include <X11/extensions/xf86dga.h>
4646 int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4648 _dga1=no
4649 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4652 _dga=no
4653 def_dga='#undef CONFIG_DGA'
4654 def_dga1='#undef CONFIG_DGA1'
4655 def_dga2='#undef CONFIG_DGA2'
4656 if test "$_dga1" = yes ; then
4657 _dga=yes
4658 def_dga1='#define CONFIG_DGA1 1'
4659 res_comment="using DGA 1.0"
4660 elif test "$_dga2" = yes ; then
4661 _dga=yes
4662 def_dga2='#define CONFIG_DGA2 1'
4663 res_comment="using DGA 2.0"
4665 if test "$_dga" = yes ; then
4666 def_dga='#define CONFIG_DGA 1'
4667 libs_mplayer="$libs_mplayer -lXxf86dga"
4668 vomodules="dga $vomodules"
4669 else
4670 novomodules="dga $novomodules"
4672 echores "$_dga"
4675 echocheck "3dfx"
4676 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4677 def_3dfx='#define CONFIG_3DFX 1'
4678 vomodules="3dfx $vomodules"
4679 else
4680 def_3dfx='#undef CONFIG_3DFX'
4681 novomodules="3dfx $novomodules"
4683 echores "$_3dfx"
4686 echocheck "VIDIX"
4687 def_vidix='#undef CONFIG_VIDIX'
4688 def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4689 _vidix_drv_cyberblade=no
4690 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4691 _vidix_drv_ivtv=no
4692 def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4693 _vidix_drv_mach64=no
4694 def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4695 _vidix_drv_mga=no
4696 def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4697 _vidix_drv_mga_crtc2=no
4698 def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4699 _vidix_drv_nvidia=no
4700 def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4701 _vidix_drv_pm2=no
4702 def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4703 _vidix_drv_pm3=no
4704 def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4705 _vidix_drv_radeon=no
4706 def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4707 _vidix_drv_rage128=no
4708 def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4709 _vidix_drv_s3=no
4710 def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU'
4711 _vidix_drv_sh_veu=no
4712 def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4713 _vidix_drv_sis=no
4714 def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4715 _vidix_drv_unichrome=no
4716 if test "$_vidix" = auto ; then
4717 _vidix=no
4718 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4719 && _vidix=yes
4720 x86_64 && ! linux && _vidix=no
4721 (ppc || alpha) && linux && _vidix=yes
4723 echores "$_vidix"
4725 if test "$_vidix" = yes ; then
4726 def_vidix='#define CONFIG_VIDIX 1'
4727 vomodules="cvidix $vomodules"
4728 # FIXME: ivtv driver temporarily disabled until we have a proper test
4729 #test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4730 test "$_vidix_drivers" || _vidix_drivers="cyberblade mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4732 # some vidix drivers are architecture and os specific, discard them elsewhere
4733 x86 || _vidix_drivers=$(echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//)
4734 (test $host_arch = "sh" && linux) || _vidix_drivers=$(echo $_vidix_drivers | sed s/sh_veu//)
4736 for driver in $_vidix_drivers ; do
4737 uc_driver=$(echo $driver | tr '[a-z]' '[A-Z]')
4738 eval _vidix_drv_${driver}=yes
4739 eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4740 done
4742 echocheck "VIDIX PCI device name database"
4743 echores "$_vidix_pcidb"
4744 if test "$_vidix_pcidb" = yes ; then
4745 _vidix_pcidb_val=1
4746 else
4747 _vidix_pcidb_val=0
4750 echocheck "VIDIX dhahelper support"
4751 test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER
4752 echores "$_dhahelper"
4754 echocheck "VIDIX svgalib_helper support"
4755 test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER
4756 echores "$_svgalib_helper"
4758 else
4759 novomodules="cvidix $novomodules"
4762 if test "$_vidix" = yes && win32; then
4763 winvidix=yes
4764 vomodules="winvidix $vomodules"
4765 libs_mplayer="$libs_mplayer -lgdi32"
4766 else
4767 novomodules="winvidix $novomodules"
4769 if test "$_vidix" = yes && test "$_x11" = yes; then
4770 xvidix=yes
4771 vomodules="xvidix $vomodules"
4772 else
4773 novomodules="xvidix $novomodules"
4776 echocheck "/dev/mga_vid"
4777 if test "$_mga" = auto ; then
4778 _mga=no
4779 test -c /dev/mga_vid && _mga=yes
4781 if test "$_mga" = yes ; then
4782 def_mga='#define CONFIG_MGA 1'
4783 vomodules="mga $vomodules"
4784 else
4785 def_mga='#undef CONFIG_MGA'
4786 novomodules="mga $novomodules"
4788 echores "$_mga"
4790 echocheck "xmga"
4791 if test "$_xmga" = auto ; then
4792 _xmga=no
4793 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
4795 if test "$_xmga" = yes ; then
4796 def_xmga='#define CONFIG_XMGA 1'
4797 vomodules="xmga $vomodules"
4798 else
4799 def_xmga='#undef CONFIG_XMGA'
4800 novomodules="xmga $novomodules"
4802 echores "$_xmga"
4805 echocheck "GGI"
4806 if test "$_ggi" = auto ; then
4807 cat > $TMPC << EOF
4808 #include <ggi/ggi.h>
4809 int main(void) { ggiInit(); return 0; }
4811 _ggi=no
4812 cc_check -lggi && _ggi=yes
4814 if test "$_ggi" = yes ; then
4815 def_ggi='#define CONFIG_GGI 1'
4816 libs_mplayer="$libs_mplayer -lggi"
4817 vomodules="ggi $vomodules"
4818 else
4819 def_ggi='#undef CONFIG_GGI'
4820 novomodules="ggi $novomodules"
4822 echores "$_ggi"
4824 echocheck "GGI extension: libggiwmh"
4825 if test "$_ggiwmh" = auto ; then
4826 _ggiwmh=no
4827 cat > $TMPC << EOF
4828 #include <ggi/ggi.h>
4829 #include <ggi/wmh.h>
4830 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4832 cc_check -lggi -lggiwmh && _ggiwmh=yes
4834 # needed to get right output on obscure combination
4835 # like --disable-ggi --enable-ggiwmh
4836 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4837 def_ggiwmh='#define CONFIG_GGIWMH 1'
4838 libs_mplayer="$libs_mplayer -lggiwmh"
4839 else
4840 _ggiwmh=no
4841 def_ggiwmh='#undef CONFIG_GGIWMH'
4843 echores "$_ggiwmh"
4846 echocheck "AA"
4847 if test "$_aa" = auto ; then
4848 cat > $TMPC << EOF
4849 #include <aalib.h>
4850 extern struct aa_hardware_params aa_defparams;
4851 extern struct aa_renderparams aa_defrenderparams;
4852 int main(void) {
4853 aa_context *c;
4854 aa_renderparams *p;
4855 (void) aa_init(0, 0, 0);
4856 c = aa_autoinit(&aa_defparams);
4857 p = aa_getrenderparams();
4858 aa_autoinitkbd(c,0);
4859 return 0; }
4861 _aa=no
4862 for _ld_tmp in "-laa" ; do
4863 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4864 done
4866 if test "$_aa" = yes ; then
4867 def_aa='#define CONFIG_AA 1'
4868 if cygwin ; then
4869 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4871 vomodules="aa $vomodules"
4872 else
4873 def_aa='#undef CONFIG_AA'
4874 novomodules="aa $novomodules"
4876 echores "$_aa"
4879 echocheck "CACA"
4880 if test "$_caca" = auto ; then
4881 _caca=no
4882 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4883 cat > $TMPC << EOF
4884 #include <caca.h>
4885 #ifdef CACA_API_VERSION_1
4886 #include <caca0.h>
4887 #endif
4888 int main(void) { (void) caca_init(); return 0; }
4890 cc_check $(caca-config --libs) && _caca=yes
4893 if test "$_caca" = yes ; then
4894 def_caca='#define CONFIG_CACA 1'
4895 extra_cflags="$extra_cflags $(caca-config --cflags)"
4896 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4897 vomodules="caca $vomodules"
4898 else
4899 def_caca='#undef CONFIG_CACA'
4900 novomodules="caca $novomodules"
4902 echores "$_caca"
4905 echocheck "SVGAlib"
4906 if test "$_svga" = auto ; then
4907 cat > $TMPC << EOF
4908 #include <vga.h>
4909 int main(void) { return 0; }
4911 _svga=no
4912 cc_check -lvga $_ld_lm && _svga=yes
4914 if test "$_svga" = yes ; then
4915 def_svga='#define CONFIG_SVGALIB 1'
4916 libs_mplayer="$libs_mplayer -lvga"
4917 vomodules="svga $vomodules"
4918 else
4919 def_svga='#undef CONFIG_SVGALIB'
4920 novomodules="svga $novomodules"
4922 echores "$_svga"
4925 echocheck "FBDev"
4926 if test "$_fbdev" = auto ; then
4927 _fbdev=no
4928 linux && _fbdev=yes
4930 if test "$_fbdev" = yes ; then
4931 def_fbdev='#define CONFIG_FBDEV 1'
4932 vomodules="fbdev $vomodules"
4933 else
4934 def_fbdev='#undef CONFIG_FBDEV'
4935 novomodules="fbdev $novomodules"
4937 echores "$_fbdev"
4941 echocheck "DVB"
4942 if test "$_dvb" = auto ; then
4943 _dvb=no
4944 cat >$TMPC << EOF
4945 #include <poll.h>
4946 #include <sys/ioctl.h>
4947 #include <stdio.h>
4948 #include <time.h>
4949 #include <unistd.h>
4950 #include <linux/dvb/dmx.h>
4951 #include <linux/dvb/frontend.h>
4952 #include <linux/dvb/video.h>
4953 #include <linux/dvb/audio.h>
4954 int main(void) {return 0;}
4956 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4957 cc_check $_inc_tmp && _dvb=yes && \
4958 extra_cflags="$extra_cflags $_inc_tmp" && break
4959 done
4961 echores "$_dvb"
4962 if test "$_dvb" = yes ; then
4963 _dvbin=yes
4964 inputmodules="dvb $inputmodules"
4965 def_dvb='#define CONFIG_DVB 1'
4966 def_dvbin='#define CONFIG_DVBIN 1'
4967 aomodules="mpegpes(dvb) $aomodules"
4968 vomodules="mpegpes(dvb) $vomodules"
4969 else
4970 _dvbin=no
4971 _noinputmodules="dvb $_noinputmodules"
4972 def_dvb='#undef CONFIG_DVB'
4973 def_dvbin='#undef CONFIG_DVBIN '
4974 aomodules="mpegpes(file) $aomodules"
4975 vomodules="mpegpes(file) $vomodules"
4979 if darwin; then
4981 echocheck "QuickTime"
4982 if test "$quicktime" = auto ; then
4983 cat > $TMPC <<EOF
4984 #include <QuickTime/QuickTime.h>
4985 int main(void) {
4986 ImageDescription *desc;
4987 EnterMovies();
4988 ExitMovies();
4989 return 0;
4992 quicktime=no
4993 cc_check -framework QuickTime && quicktime=yes
4995 if test "$quicktime" = yes ; then
4996 extra_ldflags="$extra_ldflags -framework QuickTime"
4997 def_quicktime='#define CONFIG_QUICKTIME 1'
4998 else
4999 def_quicktime='#undef CONFIG_QUICKTIME'
5000 _quartz=no
5002 echores $quicktime
5004 echocheck "Quartz"
5005 if test "$_quartz" = auto ; then
5006 cat > $TMPC <<EOF
5007 #include <Carbon/Carbon.h>
5008 int main(void) {
5009 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
5010 return 0;
5013 _quartz=no
5014 cc_check -framework Carbon && _quartz=yes
5016 if test "$_quartz" = yes ; then
5017 libs_mplayer="$libs_mplayer -framework Carbon"
5018 def_quartz='#define CONFIG_QUARTZ 1'
5019 vomodules="quartz $vomodules"
5020 else
5021 def_quartz='#undef CONFIG_QUARTZ'
5022 novomodules="quartz $novomodules"
5024 echores $_quartz
5026 echocheck "CoreVideo"
5027 if test "$_corevideo" = auto ; then
5028 cat > $TMPC <<EOF
5029 #include <Carbon/Carbon.h>
5030 #include <CoreServices/CoreServices.h>
5031 #include <OpenGL/OpenGL.h>
5032 #include <QuartzCore/CoreVideo.h>
5033 int main(void) { return 0; }
5035 _corevideo=no
5036 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
5038 if test "$_corevideo" = yes ; then
5039 vomodules="corevideo $vomodules"
5040 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
5041 def_corevideo='#define CONFIG_COREVIDEO 1'
5042 else
5043 novomodules="corevideo $novomodules"
5044 def_corevideo='#undef CONFIG_COREVIDEO'
5046 echores "$_corevideo"
5048 fi #if darwin
5051 echocheck "PNG support"
5052 if test "$_png" = auto ; then
5053 _png=no
5054 if irix ; then
5055 # Don't check for -lpng on irix since it has its own libpng
5056 # incompatible with the GNU libpng
5057 res_comment="disabled on irix (not GNU libpng)"
5058 else
5059 cat > $TMPC << EOF
5060 #include <png.h>
5061 #include <string.h>
5062 int main(void) {
5063 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
5064 printf("libpng: %s\n", png_libpng_ver);
5065 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
5068 cc_check -lpng -lz $_ld_lm && _png=yes
5071 echores "$_png"
5072 if test "$_png" = yes ; then
5073 def_png='#define CONFIG_PNG 1'
5074 extra_ldflags="$extra_ldflags -lpng -lz"
5075 else
5076 def_png='#undef CONFIG_PNG'
5079 echocheck "MNG support"
5080 if test "$_mng" = auto ; then
5081 _mng=no
5082 cat > $TMPC << EOF
5083 #include <libmng.h>
5084 int main(void) {
5085 const char * p_ver = mng_version_text();
5086 return !p_ver || p_ver[0] == 0;
5089 if cc_check -lmng -lz $_ld_lm ; then
5090 _mng=yes
5093 echores "$_mng"
5094 if test "$_mng" = yes ; then
5095 def_mng='#define CONFIG_MNG 1'
5096 extra_ldflags="$extra_ldflags -lmng -lz"
5097 else
5098 def_mng='#undef CONFIG_MNG'
5101 echocheck "JPEG support"
5102 if test "$_jpeg" = auto ; then
5103 _jpeg=no
5104 cat > $TMPC << EOF
5105 #include <stdio.h>
5106 #include <stdlib.h>
5107 #include <setjmp.h>
5108 #include <string.h>
5109 #include <jpeglib.h>
5110 int main(void) { return 0; }
5112 cc_check -ljpeg $_ld_lm && _jpeg=yes
5114 echores "$_jpeg"
5116 if test "$_jpeg" = yes ; then
5117 def_jpeg='#define CONFIG_JPEG 1'
5118 vomodules="jpeg $vomodules"
5119 extra_ldflags="$extra_ldflags -ljpeg"
5120 else
5121 def_jpeg='#undef CONFIG_JPEG'
5122 novomodules="jpeg $novomodules"
5126 echocheck "OpenJPEG (JPEG2000) support"
5127 if test "$libopenjpeg" = auto ; then
5128 libopenjpeg=no
5129 cat > $TMPC << EOF
5130 #define OPJ_STATIC
5131 #include <openjpeg.h>
5132 int main(void) { opj_dparameters_t dec_params; opj_set_default_decoder_parameters(&dec_params); return 0; }
5134 cc_check -lopenjpeg $_ld_lm && libopenjpeg=yes
5136 echores "$libopenjpeg"
5137 if test "$libopenjpeg" = yes ; then
5138 def_libopenjpeg='#define CONFIG_LIBOPENJPEG 1'
5139 extra_ldflags="$extra_ldflags -lopenjpeg"
5140 _libavdecoders="$_libavdecoders LIBOPENJPEG_DECODER"
5141 _libavencoders="$_libavencoders LIBOPENJPEG_ENCODER"
5142 codecmodules="OpenJPEG $codecmodules"
5143 else
5144 def_libopenjpeg='#define CONFIG_LIBOPENJPEG 0'
5145 nocodecmodules="OpenJPEG $nocodecmodules"
5149 echocheck "PNM support"
5150 if test "$_pnm" = yes; then
5151 def_pnm="#define CONFIG_PNM 1"
5152 vomodules="pnm $vomodules"
5153 else
5154 def_pnm="#undef CONFIG_PNM"
5155 novomodules="pnm $novomodules"
5157 echores "$_pnm"
5161 echocheck "GIF support"
5162 # This is to appease people who want to force gif support.
5163 # If it is forced to yes, then we still do checks to determine
5164 # which gif library to use.
5165 if test "$_gif" = yes ; then
5166 _force_gif=yes
5167 _gif=auto
5170 if test "$_gif" = auto ; then
5171 _gif=no
5172 cat > $TMPC << EOF
5173 #include <gif_lib.h>
5174 int main(void) { return 0; }
5176 for _ld_gif in "-lungif" "-lgif" ; do
5177 cc_check $_ld_gif && _gif=yes && break
5178 done
5181 # If no library was found, and the user wants support forced,
5182 # then we force it on with libgif, as this is the safest
5183 # assumption IMHO. (libungif & libregif both create symbolic
5184 # links to libgif. We also assume that no x11 support is needed,
5185 # because if you are forcing this, then you _should_ know what
5186 # you are doing. [ Besides, package maintainers should never
5187 # have compiled x11 deps into libungif in the first place. ] )
5188 # </rant>
5189 # --Joey
5190 if test "$_force_gif" = yes && test "$_gif" = no ; then
5191 _gif=yes
5192 _ld_gif="-lgif"
5195 if test "$_gif" = yes ; then
5196 def_gif='#define CONFIG_GIF 1'
5197 codecmodules="gif $codecmodules"
5198 vomodules="gif89a $vomodules"
5199 res_comment="old version, some encoding functions disabled"
5200 def_gif_4='#undef CONFIG_GIF_4'
5201 extra_ldflags="$extra_ldflags $_ld_gif"
5203 cat > $TMPC << EOF
5204 #include <signal.h>
5205 #include <gif_lib.h>
5206 void catch() { exit(1); }
5207 int main(void) {
5208 signal(SIGSEGV, catch); // catch segfault
5209 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
5210 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
5211 return 0;
5214 if cc_check "$_ld_gif" ; then
5215 def_gif_4='#define CONFIG_GIF_4 1'
5216 res_comment=""
5218 else
5219 def_gif='#undef CONFIG_GIF'
5220 def_gif_4='#undef CONFIG_GIF_4'
5221 novomodules="gif89a $novomodules"
5222 nocodecmodules="gif $nocodecmodules"
5224 echores "$_gif"
5227 case "$_gif" in yes*)
5228 echocheck "broken giflib workaround"
5229 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
5231 cat > $TMPC << EOF
5232 #include <gif_lib.h>
5233 int main(void) {
5234 GifFileType gif;
5235 printf("UserData is at address %p\n", gif.UserData);
5236 return 0;
5239 if cc_check "$_ld_gif" ; then
5240 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
5241 echores "disabled"
5242 else
5243 echores "enabled"
5246 esac
5249 echocheck "VESA support"
5250 if test "$_vesa" = auto ; then
5251 cat > $TMPC << EOF
5252 #include <vbe.h>
5253 int main(void) { vbeVersion(); return 0; }
5255 _vesa=no
5256 cc_check -lvbe -llrmi && _vesa=yes
5258 if test "$_vesa" = yes ; then
5259 def_vesa='#define CONFIG_VESA 1'
5260 libs_mplayer="$libs_mplayer -lvbe -llrmi"
5261 vomodules="vesa $vomodules"
5262 else
5263 def_vesa='#undef CONFIG_VESA'
5264 novomodules="vesa $novomodules"
5266 echores "$_vesa"
5268 #################
5269 # VIDEO + AUDIO #
5270 #################
5273 echocheck "SDL"
5274 _inc_tmp=""
5275 _ld_tmp=""
5276 def_sdl_sdl_h="#undef CONFIG_SDL_SDL_H"
5277 if test -z "$_sdlconfig" ; then
5278 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
5279 _sdlconfig="sdl-config"
5280 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
5281 _sdlconfig="sdl11-config"
5282 else
5283 _sdlconfig=false
5286 if test "$_sdl" = auto || test "$_sdl" = yes ; then
5287 cat > $TMPC << EOF
5288 #ifdef CONFIG_SDL_SDL_H
5289 #include <SDL/SDL.h>
5290 #else
5291 #include <SDL.h>
5292 #endif
5293 #ifndef __APPLE__
5294 // we allow SDL hacking our main() only on OSX
5295 #undef main
5296 #endif
5297 int main(int argc, char *argv[]) {
5298 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
5299 return 0;
5302 _sdl=no
5303 for _ld_tmp in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" "-lSDL -lwinmm -lgdi32 -ldxguid" ; do
5304 if cc_check -DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then
5305 _sdl=yes
5306 def_sdl_sdl_h="#define CONFIG_SDL_SDL_H 1"
5307 break
5309 done
5310 if test "$_sdl" = no && "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
5311 res_comment="using $_sdlconfig"
5312 if cygwin ; then
5313 _inc_tmp="$($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
5314 _ld_tmp="$($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
5315 elif mingw32 ; then
5316 _inc_tmp=$($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)
5317 _ld_tmp=$($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)
5318 else
5319 _inc_tmp="$($_sdlconfig --cflags)"
5320 _ld_tmp="$($_sdlconfig --libs)"
5322 if cc_check $_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then
5323 _sdl=yes
5327 if test "$_sdl" = yes ; then
5328 def_sdl='#define CONFIG_SDL 1'
5329 extra_cflags="$extra_cflags $_inc_tmp"
5330 libs_mplayer="$libs_mplayer $_ld_tmp"
5331 vomodules="sdl $vomodules"
5332 aomodules="sdl $aomodules"
5333 else
5334 def_sdl='#undef CONFIG_SDL'
5335 novomodules="sdl $novomodules"
5336 noaomodules="sdl $noaomodules"
5338 echores "$_sdl"
5341 # make sure this stays below CoreVideo to avoid issues due to namespace
5342 # conflicts between -lGL and -framework OpenGL
5343 echocheck "OpenGL"
5344 #Note: this test is run even with --enable-gl since we autodetect linker flags
5345 if (test "$_x11" = yes || test "$_sdl" = yes || win32) && test "$_gl" != no ; then
5346 cat > $TMPC << EOF
5347 #ifdef GL_WIN32
5348 #include <windows.h>
5349 #include <GL/gl.h>
5350 #elif defined(GL_SDL)
5351 #include <GL/gl.h>
5352 #ifdef CONFIG_SDL_SDL_H
5353 #include <SDL/SDL.h>
5354 #else
5355 #include <SDL.h>
5356 #endif
5357 #ifndef __APPLE__
5358 // we allow SDL hacking our main() only on OSX
5359 #undef main
5360 #endif
5361 #else
5362 #include <GL/gl.h>
5363 #include <X11/Xlib.h>
5364 #include <GL/glx.h>
5365 #endif
5366 int main(void) {
5367 #ifdef GL_WIN32
5368 HDC dc;
5369 wglCreateContext(dc);
5370 #elif defined(GL_SDL)
5371 SDL_GL_SwapBuffers();
5372 #else
5373 glXCreateContext(NULL, NULL, NULL, True);
5374 #endif
5375 glFinish();
5376 return 0;
5379 _gl=no
5380 for _ld_tmp in "" -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do
5381 if cc_check $_ld_tmp $_ld_lm ; then
5382 _gl=yes
5383 _gl_x11=yes
5384 libs_mplayer="$libs_mplayer $_ld_tmp $_ld_dl"
5385 break
5387 done
5388 if cc_check -DGL_WIN32 -lopengl32 ; then
5389 _gl=yes
5390 _gl_win32=yes
5391 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
5393 # last so it can reuse any linker etc. flags detected before
5394 if test "$_sdl" = yes ; then
5395 if cc_check -DGL_SDL ||
5396 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL ; then
5397 _gl=yes
5398 _gl_sdl=yes
5399 elif cc_check -DGL_SDL -lGL ||
5400 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL -lGL ; then
5401 _gl=yes
5402 _gl_sdl=yes
5403 libs_mplayer="$libs_mplayer -lGL"
5406 else
5407 _gl=no
5409 if test "$_gl" = yes ; then
5410 def_gl='#define CONFIG_GL 1'
5411 res_comment="backends:"
5412 if test "$_gl_win32" = yes ; then
5413 def_gl_win32='#define CONFIG_GL_WIN32 1'
5414 res_comment="$res_comment win32"
5416 if test "$_gl_x11" = yes ; then
5417 def_gl_x11='#define CONFIG_GL_X11 1'
5418 res_comment="$res_comment x11"
5420 if test "$_gl_sdl" = yes ; then
5421 def_gl_sdl='#define CONFIG_GL_SDL 1'
5422 res_comment="$res_comment sdl"
5424 vomodules="opengl $vomodules"
5425 else
5426 def_gl='#undef CONFIG_GL'
5427 def_gl_win32='#undef CONFIG_GL_WIN32'
5428 def_gl_x11='#undef CONFIG_GL_X11'
5429 def_gl_sdl='#undef CONFIG_GL_SDL'
5430 novomodules="opengl $novomodules"
5432 echores "$_gl"
5435 echocheck "MatrixView"
5436 if test "$_gl" = no ; then
5437 matrixview=no
5439 if test "$matrixview" = yes ; then
5440 vomodules="matrixview $vomodules"
5441 def_matrixview='#define CONFIG_MATRIXVIEW 1'
5442 else
5443 novomodules="matrixview $novomodules"
5444 def_matrixview='#undef CONFIG_MATRIXVIEW'
5446 echores "$matrixview"
5449 if os2 ; then
5450 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
5451 if test "$_kva" = auto; then
5452 cat > $TMPC << EOF
5453 #include <os2.h>
5454 #include <kva.h>
5455 int main( void ) { return 0; }
5457 _kva=no;
5458 cc_check -lkva && _kva=yes
5460 if test "$_kva" = yes ; then
5461 def_kva='#define CONFIG_KVA 1'
5462 libs_mplayer="$libs_mplayer -lkva"
5463 vomodules="kva $vomodules"
5464 else
5465 def_kva='#undef CONFIG_KVA'
5466 novomodules="kva $novomodules"
5468 echores "$_kva"
5469 fi #if os2
5472 if win32; then
5474 echocheck "Windows waveout"
5475 if test "$_win32waveout" = auto ; then
5476 cat > $TMPC << EOF
5477 #include <windows.h>
5478 #include <mmsystem.h>
5479 int main(void) { return 0; }
5481 _win32waveout=no
5482 cc_check -lwinmm && _win32waveout=yes
5484 if test "$_win32waveout" = yes ; then
5485 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
5486 libs_mplayer="$libs_mplayer -lwinmm"
5487 aomodules="win32 $aomodules"
5488 else
5489 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
5490 noaomodules="win32 $noaomodules"
5492 echores "$_win32waveout"
5494 echocheck "Direct3D"
5495 if test "$_direct3d" = auto ; then
5496 cat > $TMPC << EOF
5497 #include <windows.h>
5498 #include <d3d9.h>
5499 int main(void) { return 0; }
5501 _direct3d=no
5502 cc_check && _direct3d=yes
5504 if test "$_direct3d" = yes ; then
5505 def_direct3d='#define CONFIG_DIRECT3D 1'
5506 vomodules="direct3d $vomodules"
5507 else
5508 def_direct3d='#undef CONFIG_DIRECT3D'
5509 novomodules="direct3d $novomodules"
5511 echores "$_direct3d"
5513 echocheck "Directx"
5514 if test "$_directx" = auto ; then
5515 cat > $TMPC << EOF
5516 #include <windows.h>
5517 #include <ddraw.h>
5518 #include <dsound.h>
5519 int main(void) { return 0; }
5521 _directx=no
5522 cc_check -lgdi32 && _directx=yes
5524 if test "$_directx" = yes ; then
5525 def_directx='#define CONFIG_DIRECTX 1'
5526 libs_mplayer="$libs_mplayer -lgdi32"
5527 vomodules="directx $vomodules"
5528 aomodules="dsound $aomodules"
5529 else
5530 def_directx='#undef CONFIG_DIRECTX'
5531 novomodules="directx $novomodules"
5532 noaomodules="dsound $noaomodules"
5534 echores "$_directx"
5536 fi #if win32; then
5539 echocheck "DXR2"
5540 if test "$_dxr2" = auto; then
5541 _dxr2=no
5542 cat > $TMPC << EOF
5543 #include <dxr2ioctl.h>
5544 int main(void) { return 0; }
5546 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
5547 cc_check $_inc_tmp && _dxr2=yes && \
5548 extra_cflags="$extra_cflags $_inc_tmp" && break
5549 done
5551 if test "$_dxr2" = yes; then
5552 def_dxr2='#define CONFIG_DXR2 1'
5553 aomodules="dxr2 $aomodules"
5554 vomodules="dxr2 $vomodules"
5555 else
5556 def_dxr2='#undef CONFIG_DXR2'
5557 noaomodules="dxr2 $noaomodules"
5558 novomodules="dxr2 $novomodules"
5560 echores "$_dxr2"
5562 echocheck "DXR3/H+"
5563 if test "$_dxr3" = auto ; then
5564 cat > $TMPC << EOF
5565 #include <linux/em8300.h>
5566 int main(void) { return 0; }
5568 _dxr3=no
5569 cc_check && _dxr3=yes
5571 if test "$_dxr3" = yes ; then
5572 def_dxr3='#define CONFIG_DXR3 1'
5573 vomodules="dxr3 $vomodules"
5574 else
5575 def_dxr3='#undef CONFIG_DXR3'
5576 novomodules="dxr3 $novomodules"
5578 echores "$_dxr3"
5581 echocheck "IVTV TV-Out (pre linux-2.6.24)"
5582 if test "$_ivtv" = auto ; then
5583 cat > $TMPC << EOF
5584 #include <stdlib.h>
5585 #include <inttypes.h>
5586 #include <linux/types.h>
5587 #include <linux/videodev2.h>
5588 #include <linux/ivtv.h>
5589 #include <sys/ioctl.h>
5590 int main(void) {
5591 struct ivtv_cfg_stop_decode sd;
5592 struct ivtv_cfg_start_decode sd1;
5593 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
5594 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
5595 return 0; }
5597 _ivtv=no
5598 cc_check && _ivtv=yes
5600 if test "$_ivtv" = yes ; then
5601 def_ivtv='#define CONFIG_IVTV 1'
5602 vomodules="ivtv $vomodules"
5603 aomodules="ivtv $aomodules"
5604 else
5605 def_ivtv='#undef CONFIG_IVTV'
5606 novomodules="ivtv $novomodules"
5607 noaomodules="ivtv $noaomodules"
5609 echores "$_ivtv"
5612 echocheck "V4L2 MPEG Decoder"
5613 if test "$_v4l2" = auto ; then
5614 cat > $TMPC << EOF
5615 #include <stdlib.h>
5616 #include <inttypes.h>
5617 #include <linux/types.h>
5618 #include <linux/videodev2.h>
5619 #include <linux/version.h>
5620 int main(void) {
5621 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
5622 #error kernel headers too old, need 2.6.22
5623 #endif
5624 struct v4l2_ext_controls ctrls;
5625 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
5626 return 0;
5629 _v4l2=no
5630 cc_check && _v4l2=yes
5632 if test "$_v4l2" = yes ; then
5633 def_v4l2='#define CONFIG_V4L2_DECODER 1'
5634 vomodules="v4l2 $vomodules"
5635 aomodules="v4l2 $aomodules"
5636 else
5637 def_v4l2='#undef CONFIG_V4L2_DECODER'
5638 novomodules="v4l2 $novomodules"
5639 noaomodules="v4l2 $noaomodules"
5641 echores "$_v4l2"
5645 #########
5646 # AUDIO #
5647 #########
5650 echocheck "OSS Audio"
5651 if test "$_ossaudio" = auto ; then
5652 cat > $TMPC << EOF
5653 #include <sys/ioctl.h>
5654 #include <$_soundcard_header>
5655 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5657 _ossaudio=no
5658 cc_check && _ossaudio=yes
5660 if test "$_ossaudio" = yes ; then
5661 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
5662 aomodules="oss $aomodules"
5663 if test "$_linux_devfs" = yes; then
5664 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
5665 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
5666 else
5667 cat > $TMPC << EOF
5668 #include <sys/ioctl.h>
5669 #include <$_soundcard_header>
5670 #ifdef OPEN_SOUND_SYSTEM
5671 int main(void) { return 0; }
5672 #else
5673 #error Not the real thing
5674 #endif
5676 _real_ossaudio=no
5677 cc_check && _real_ossaudio=yes
5678 if test "$_real_ossaudio" = yes; then
5679 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5680 elif netbsd || openbsd ; then
5681 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5682 extra_ldflags="$extra_ldflags -lossaudio"
5683 else
5684 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5686 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5688 else
5689 def_ossaudio='#undef CONFIG_OSS_AUDIO'
5690 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5691 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5692 noaomodules="oss $noaomodules"
5694 echores "$_ossaudio"
5697 echocheck "aRts"
5698 if test "$_arts" = auto ; then
5699 _arts=no
5700 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5702 cat > $TMPC << EOF
5703 #include <artsc.h>
5704 int main(void) { return 0; }
5706 cc_check $(artsc-config --libs) $(artsc-config --cflags) && _arts=yes
5711 if test "$_arts" = yes ; then
5712 def_arts='#define CONFIG_ARTS 1'
5713 aomodules="arts $aomodules"
5714 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
5715 extra_cflags="$extra_cflags $(artsc-config --cflags)"
5716 else
5717 noaomodules="arts $noaomodules"
5719 echores "$_arts"
5722 echocheck "EsounD"
5723 if test "$_esd" = auto ; then
5724 _esd=no
5725 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5727 cat > $TMPC << EOF
5728 #include <esd.h>
5729 int main(void) { int fd = esd_open_sound("test"); return fd; }
5731 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd=yes
5735 echores "$_esd"
5737 if test "$_esd" = yes ; then
5738 def_esd='#define CONFIG_ESD 1'
5739 aomodules="esd $aomodules"
5740 libs_mplayer="$libs_mplayer $(esd-config --libs)"
5741 extra_cflags="$extra_cflags $(esd-config --cflags)"
5743 echocheck "esd_get_latency()"
5744 cat > $TMPC << EOF
5745 #include <esd.h>
5746 int main(void) { return esd_get_latency(0); }
5748 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
5749 echores "$_esd_latency"
5750 else
5751 def_esd='#undef CONFIG_ESD'
5752 def_esd_latency='#undef CONFIG_ESD_LATENCY'
5753 noaomodules="esd $noaomodules"
5757 echocheck "NAS"
5758 if test "$_nas" = auto ; then
5759 cat > $TMPC << EOF
5760 #include <audio/audiolib.h>
5761 int main(void) { return 0; }
5763 _nas=no
5764 cc_check $_ld_lm -laudio -lXt && _nas=yes
5766 if test "$_nas" = yes ; then
5767 def_nas='#define CONFIG_NAS 1'
5768 libs_mplayer="$libs_mplayer -laudio -lXt"
5769 aomodules="nas $aomodules"
5770 else
5771 noaomodules="nas $noaomodules"
5772 def_nas='#undef CONFIG_NAS'
5774 echores "$_nas"
5777 echocheck "pulse"
5778 if test "$_pulse" = auto ; then
5779 _pulse=no
5780 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5782 cat > $TMPC << EOF
5783 #include <pulse/pulseaudio.h>
5784 int main(void) { return 0; }
5786 cc_check $($_pkg_config --libs --cflags libpulse) && _pulse=yes
5790 echores "$_pulse"
5792 if test "$_pulse" = yes ; then
5793 def_pulse='#define CONFIG_PULSE 1'
5794 aomodules="pulse $aomodules"
5795 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
5796 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
5797 else
5798 def_pulse='#undef CONFIG_PULSE'
5799 noaomodules="pulse $noaomodules"
5803 echocheck "JACK"
5804 if test "$_jack" = auto ; then
5805 _jack=yes
5807 cat > $TMPC << EOF
5808 #include <jack/jack.h>
5809 int main(void) { jack_client_open("test", JackUseExactName, NULL); return 0; }
5811 if cc_check -ljack ; then
5812 libs_mplayer="$libs_mplayer -ljack"
5813 elif cc_check $($_pkg_config --libs --cflags --silence-errors jack) ; then
5814 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
5815 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
5816 else
5817 _jack=no
5821 if test "$_jack" = yes ; then
5822 def_jack='#define CONFIG_JACK 1'
5823 aomodules="jack $aomodules"
5824 else
5825 noaomodules="jack $noaomodules"
5827 echores "$_jack"
5829 echocheck "OpenAL"
5830 if test "$_openal" = auto ; then
5831 _openal=no
5832 cat > $TMPC << EOF
5833 #ifdef OPENAL_AL_H
5834 #include <OpenAL/al.h>
5835 #else
5836 #include <AL/al.h>
5837 #endif
5838 int main(void) {
5839 alSourceQueueBuffers(0, 0, 0);
5840 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5841 return 0;
5844 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5845 cc_check $I && _openal=yes && break
5846 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5847 done
5848 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
5850 if test "$_openal" = yes ; then
5851 def_openal='#define CONFIG_OPENAL 1'
5852 aomodules="openal $aomodules"
5853 else
5854 noaomodules="openal $noaomodules"
5856 echores "$_openal"
5858 echocheck "ALSA audio"
5859 if test "$_alloca" != yes ; then
5860 _alsa=no
5861 res_comment="alloca missing"
5863 if test "$_alsa" != no ; then
5864 _alsa=no
5865 cat > $TMPC << EOF
5866 #include <sys/time.h>
5867 #include <sys/asoundlib.h>
5868 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5869 #error "alsa version != 0.5.x"
5870 #endif
5871 int main(void) { return 0; }
5873 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5875 cat > $TMPC << EOF
5876 #include <sys/time.h>
5877 #include <sys/asoundlib.h>
5878 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5879 #error "alsa version != 0.9.x"
5880 #endif
5881 int main(void) { return 0; }
5883 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5884 cat > $TMPC << EOF
5885 #include <sys/time.h>
5886 #include <alsa/asoundlib.h>
5887 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5888 #error "alsa version != 0.9.x"
5889 #endif
5890 int main(void) { return 0; }
5892 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5894 cat > $TMPC << EOF
5895 #include <sys/time.h>
5896 #include <sys/asoundlib.h>
5897 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5898 #error "alsa version != 1.0.x"
5899 #endif
5900 int main(void) { return 0; }
5902 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5903 cat > $TMPC << EOF
5904 #include <sys/time.h>
5905 #include <alsa/asoundlib.h>
5906 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5907 #error "alsa version != 1.0.x"
5908 #endif
5909 int main(void) { return 0; }
5911 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5913 def_alsa='#undef CONFIG_ALSA'
5914 def_alsa5='#undef CONFIG_ALSA5'
5915 def_alsa9='#undef CONFIG_ALSA9'
5916 def_alsa1x='#undef CONFIG_ALSA1X'
5917 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5918 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5919 if test "$_alsaver" ; then
5920 _alsa=yes
5921 if test "$_alsaver" = '0.5.x' ; then
5922 _alsa5=yes
5923 aomodules="alsa5 $aomodules"
5924 def_alsa5='#define CONFIG_ALSA5 1'
5925 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5926 res_comment="using alsa 0.5.x and sys/asoundlib.h"
5927 elif test "$_alsaver" = '0.9.x-sys' ; then
5928 _alsa9=yes
5929 aomodules="alsa $aomodules"
5930 def_alsa='#define CONFIG_ALSA 1'
5931 def_alsa9='#define CONFIG_ALSA9 1'
5932 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5933 res_comment="using alsa 0.9.x and sys/asoundlib.h"
5934 elif test "$_alsaver" = '0.9.x-alsa' ; then
5935 _alsa9=yes
5936 aomodules="alsa $aomodules"
5937 def_alsa='#define CONFIG_ALSA 1'
5938 def_alsa9='#define CONFIG_ALSA9 1'
5939 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5940 res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5941 elif test "$_alsaver" = '1.0.x-sys' ; then
5942 _alsa1x=yes
5943 aomodules="alsa $aomodules"
5944 def_alsa='#define CONFIG_ALSA 1'
5945 def_alsa1x="#define CONFIG_ALSA1X 1"
5946 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5947 res_comment="using alsa 1.0.x and sys/asoundlib.h"
5948 elif test "$_alsaver" = '1.0.x-alsa' ; then
5949 _alsa1x=yes
5950 aomodules="alsa $aomodules"
5951 def_alsa='#define CONFIG_ALSA 1'
5952 def_alsa1x="#define CONFIG_ALSA1X 1"
5953 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5954 res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5955 else
5956 _alsa=no
5957 res_comment="unknown version"
5959 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5960 else
5961 noaomodules="alsa $noaomodules"
5963 echores "$_alsa"
5966 echocheck "Sun audio"
5967 if test "$_sunaudio" = auto ; then
5968 cat > $TMPC << EOF
5969 #include <sys/types.h>
5970 #include <sys/audioio.h>
5971 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5973 _sunaudio=no
5974 cc_check && _sunaudio=yes
5976 if test "$_sunaudio" = yes ; then
5977 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5978 aomodules="sun $aomodules"
5979 else
5980 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5981 noaomodules="sun $noaomodules"
5983 echores "$_sunaudio"
5986 def_mlib='#define CONFIG_MLIB 0'
5987 if sunos; then
5988 echocheck "Sun mediaLib"
5989 if test "$_mlib" = auto ; then
5990 _mlib=no
5991 cat > $TMPC << EOF
5992 #include <mlib.h>
5993 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
5995 cc_check -lmlib && _mlib=yes && def_mlib='#define CONFIG_MLIB 1'
5997 echores "$_mlib"
5998 fi #if sunos
6001 if darwin; then
6002 echocheck "CoreAudio"
6003 if test "$_coreaudio" = auto ; then
6004 cat > $TMPC <<EOF
6005 #include <CoreAudio/CoreAudio.h>
6006 #include <AudioToolbox/AudioToolbox.h>
6007 #include <AudioUnit/AudioUnit.h>
6008 int main(void) { return 0; }
6010 _coreaudio=no
6011 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
6013 if test "$_coreaudio" = yes ; then
6014 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
6015 def_coreaudio='#define CONFIG_COREAUDIO 1'
6016 aomodules="coreaudio $aomodules"
6017 else
6018 def_coreaudio='#undef CONFIG_COREAUDIO'
6019 noaomodules="coreaudio $noaomodules"
6021 echores $_coreaudio
6022 fi #if darwin
6025 if irix; then
6026 echocheck "SGI audio"
6027 if test "$_sgiaudio" = auto ; then
6028 # check for SGI audio
6029 cat > $TMPC << EOF
6030 #include <dmedia/audio.h>
6031 int main(void) { return 0; }
6033 _sgiaudio=no
6034 cc_check && _sgiaudio=yes
6036 if test "$_sgiaudio" = "yes" ; then
6037 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
6038 libs_mplayer="$libs_mplayer -laudio"
6039 aomodules="sgi $aomodules"
6040 else
6041 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
6042 noaomodules="sgi $noaomodules"
6044 echores "$_sgiaudio"
6045 fi #if irix
6048 if os2 ; then
6049 echocheck "KAI (UNIAUD/DART)"
6050 if test "$_kai" = auto; then
6051 cat > $TMPC << EOF
6052 #include <os2.h>
6053 #include <kai.h>
6054 int main(void) { return 0; }
6056 _kai=no;
6057 cc_check -lkai && _kai=yes
6059 if test "$_kai" = yes ; then
6060 def_kai='#define CONFIG_KAI 1'
6061 libs_mplayer="$libs_mplayer -lkai"
6062 aomodules="kai $aomodules"
6063 else
6064 def_kai='#undef CONFIG_KAI'
6065 noaomodules="kai $noaomodules"
6067 echores "$_kai"
6069 echocheck "DART"
6070 if test "$_dart" = auto; then
6071 cat > $TMPC << EOF
6072 #include <os2.h>
6073 #include <dart.h>
6074 int main( void ) { return 0; }
6076 _dart=no;
6077 cc_check -ldart && _dart=yes
6079 if test "$_dart" = yes ; then
6080 def_dart='#define CONFIG_DART 1'
6081 libs_mplayer="$libs_mplayer -ldart"
6082 aomodules="dart $aomodules"
6083 else
6084 def_dart='#undef CONFIG_DART'
6085 noaomodules="dart $noaomodules"
6087 echores "$_dart"
6088 fi #if os2
6091 # set default CD/DVD devices
6092 if win32 || os2 ; then
6093 default_cdrom_device="D:"
6094 elif darwin ; then
6095 default_cdrom_device="/dev/disk1"
6096 elif dragonfly ; then
6097 default_cdrom_device="/dev/cd0"
6098 elif freebsd ; then
6099 default_cdrom_device="/dev/acd0"
6100 elif openbsd ; then
6101 default_cdrom_device="/dev/rcd0a"
6102 elif sunos ; then
6103 default_cdrom_device="/vol/dev/aliases/cdrom0"
6104 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
6105 # file system and the volfs service.
6106 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
6107 elif amigaos ; then
6108 default_cdrom_device="a1ide.device:2"
6109 else
6110 default_cdrom_device="/dev/cdrom"
6113 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
6114 default_dvd_device=$default_cdrom_device
6115 elif darwin ; then
6116 default_dvd_device="/dev/rdiskN"
6117 else
6118 default_dvd_device="/dev/dvd"
6122 echocheck "VCD support"
6123 if test "$_vcd" = auto; then
6124 _vcd=no
6125 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos || os2; then
6126 _vcd=yes
6127 elif mingw32; then
6128 cat > $TMPC << EOF
6129 #include <ddk/ntddcdrm.h>
6130 int main(void) { return 0; }
6132 cc_check && _vcd=yes
6135 if test "$_vcd" = yes; then
6136 inputmodules="vcd $inputmodules"
6137 def_vcd='#define CONFIG_VCD 1'
6138 else
6139 def_vcd='#undef CONFIG_VCD'
6140 _noinputmodules="vcd $_noinputmodules"
6141 res_comment="not supported on this OS"
6143 echores "$_vcd"
6147 echocheck "dvdread"
6148 if test "$_dvdread_internal" = auto ; then
6149 _dvdread_internal=no
6150 _dvdread=no
6151 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
6152 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
6153 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
6154 || darwin || win32 || os2; then
6155 _dvdread_internal=yes
6156 _dvdread=yes
6157 extra_cflags="-Ilibdvdread4 $extra_cflags"
6159 elif test "$_dvdread" = auto ; then
6160 _dvdread=no
6161 if test "$_dl" = yes; then
6162 cat > $TMPC << EOF
6163 #include <inttypes.h>
6164 #include <dvdread/dvd_reader.h>
6165 #include <dvdread/ifo_types.h>
6166 #include <dvdread/ifo_read.h>
6167 #include <dvdread/nav_read.h>
6168 int main(void) { return 0; }
6170 _dvdreadcflags=$($_dvdreadconfig --cflags)
6171 _dvdreadlibs=$($_dvdreadconfig --libs)
6172 if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
6173 $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
6174 _dvdread=yes
6175 extra_cflags="$extra_cflags $_dvdreadcflags"
6176 extra_ldflags="$extra_ldflags $_dvdreadlibs"
6177 res_comment="external"
6182 if test "$_dvdread_internal" = yes; then
6183 def_dvdread='#define CONFIG_DVDREAD 1'
6184 inputmodules="dvdread(internal) $inputmodules"
6185 _largefiles=yes
6186 res_comment="internal"
6187 elif test "$_dvdread" = yes; then
6188 def_dvdread='#define CONFIG_DVDREAD 1'
6189 _largefiles=yes
6190 extra_ldflags="$extra_ldflags -ldvdread"
6191 inputmodules="dvdread(external) $inputmodules"
6192 res_comment="external"
6193 else
6194 def_dvdread='#undef CONFIG_DVDREAD'
6195 _noinputmodules="dvdread $_noinputmodules"
6197 echores "$_dvdread"
6200 echocheck "internal libdvdcss"
6201 if test "$_libdvdcss_internal" = auto ; then
6202 _libdvdcss_internal=no
6203 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
6204 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
6206 if test "$_libdvdcss_internal" = yes ; then
6207 if linux || netbsd || openbsd || bsdos ; then
6208 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
6209 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
6210 elif freebsd || dragonfly ; then
6211 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
6212 elif darwin ; then
6213 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
6214 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
6215 elif cygwin ; then
6216 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
6217 elif beos ; then
6218 cflags_libdvdcss="-DSYS_BEOS"
6219 elif os2 ; then
6220 cflags_libdvdcss="-DSYS_OS2"
6222 cflags_libdvdcss_dvdread="-Ilibdvdcss"
6223 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
6224 inputmodules="libdvdcss(internal) $inputmodules"
6225 _largefiles=yes
6226 else
6227 _noinputmodules="libdvdcss(internal) $_noinputmodules"
6229 echores "$_libdvdcss_internal"
6232 echocheck "cdparanoia"
6233 if test "$_cdparanoia" = auto ; then
6234 cat > $TMPC <<EOF
6235 #include <cdda_interface.h>
6236 #include <cdda_paranoia.h>
6237 // This need a better test. How ?
6238 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
6240 _cdparanoia=no
6241 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
6242 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
6243 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
6244 done
6246 if test "$_cdparanoia" = yes ; then
6247 _cdda='yes'
6248 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
6249 openbsd && extra_ldflags="$extra_ldflags -lutil"
6251 echores "$_cdparanoia"
6254 echocheck "libcdio"
6255 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
6256 cat > $TMPC << EOF
6257 #include <stdio.h>
6258 #include <cdio/version.h>
6259 #include <cdio/cdda.h>
6260 #include <cdio/paranoia.h>
6261 int main(void) {
6262 void *test = cdda_verbose_set;
6263 printf("%s\n", CDIO_VERSION);
6264 return test == (void *)1;
6267 _libcdio=no
6268 for _ld_tmp in "" "-lwinmm" ; do
6269 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
6270 cc_check $_ld_tmp $_ld_lm \
6271 && _libcdio=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6272 done
6273 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
6274 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
6275 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
6276 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
6277 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6280 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
6281 _cdda='yes'
6282 def_libcdio='#define CONFIG_LIBCDIO 1'
6283 def_havelibcdio='yes'
6284 else
6285 if test "$_cdparanoia" = yes ; then
6286 res_comment="using cdparanoia"
6288 def_libcdio='#undef CONFIG_LIBCDIO'
6289 def_havelibcdio='no'
6291 echores "$_libcdio"
6293 if test "$_cdda" = yes ; then
6294 test $_cddb = auto && test $_network = yes && _cddb=yes
6295 def_cdparanoia='#define CONFIG_CDDA 1'
6296 inputmodules="cdda $inputmodules"
6297 else
6298 def_cdparanoia='#undef CONFIG_CDDA'
6299 _noinputmodules="cdda $_noinputmodules"
6302 if test "$_cddb" = yes ; then
6303 def_cddb='#define CONFIG_CDDB 1'
6304 inputmodules="cddb $inputmodules"
6305 else
6306 _cddb=no
6307 def_cddb='#undef CONFIG_CDDB'
6308 _noinputmodules="cddb $_noinputmodules"
6311 echocheck "bitmap font support"
6312 if test "$_bitmap_font" = yes ; then
6313 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
6314 else
6315 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
6317 echores "$_bitmap_font"
6320 echocheck "freetype >= 2.0.9"
6322 # freetype depends on iconv
6323 if test "$_iconv" = no ; then
6324 _freetype=no
6325 res_comment="iconv support needed"
6328 if test "$_freetype" = auto ; then
6329 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
6330 cat > $TMPC << EOF
6331 #include <stdio.h>
6332 #include <ft2build.h>
6333 #include FT_FREETYPE_H
6334 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
6335 #error "Need FreeType 2.0.9 or newer"
6336 #endif
6337 int main(void) {
6338 FT_Library library;
6339 FT_Int major=-1,minor=-1,patch=-1;
6340 int err=FT_Init_FreeType(&library);
6341 return 0;
6344 _freetype=no
6345 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
6346 else
6347 _freetype=no
6350 if test "$_freetype" = yes ; then
6351 def_freetype='#define CONFIG_FREETYPE 1'
6352 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
6353 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
6354 else
6355 def_freetype='#undef CONFIG_FREETYPE'
6357 echores "$_freetype"
6359 if test "$_freetype" = no ; then
6360 _fontconfig=no
6361 res_comment="FreeType support needed"
6363 echocheck "fontconfig"
6364 if test "$_fontconfig" = auto ; then
6365 cat > $TMPC << EOF
6366 #include <stdio.h>
6367 #include <stdlib.h>
6368 #include <fontconfig/fontconfig.h>
6369 #if FC_VERSION < 20402
6370 #error At least version 2.4.2 of fontconfig required
6371 #endif
6372 int main(void) {
6373 int err = FcInit();
6374 if (err == FcFalse) {
6375 printf("Couldn't initialize fontconfig lib\n");
6376 exit(err);
6378 return 0;
6381 _fontconfig=no
6382 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" "-lexpat -lfreetype -lz -liconv" ; do
6383 _ld_tmp="-lfontconfig $_ld_tmp"
6384 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6385 done
6386 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
6387 _inc_tmp=$($_pkg_config --cflags fontconfig)
6388 _ld_tmp=$($_pkg_config --libs fontconfig)
6389 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
6390 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6393 if test "$_fontconfig" = yes ; then
6394 def_fontconfig='#define CONFIG_FONTCONFIG 1'
6395 else
6396 def_fontconfig='#undef CONFIG_FONTCONFIG'
6398 echores "$_fontconfig"
6401 echocheck "SSA/ASS support"
6402 # libass depends on FreeType
6403 if test "$_freetype" = no ; then
6404 _ass=no
6405 ass_internal=no
6406 res_comment="FreeType support needed"
6409 if test "$_ass" = auto ; then
6410 cat > $TMPC << EOF
6411 #include <ft2build.h>
6412 #include FT_FREETYPE_H
6413 #if ((FREETYPE_MAJOR < 2) || (FREETYPE_MINOR < 2) || ((FREETYPE_MINOR == 2) && (FREETYPE_PATCH < 1)))
6414 #error "Need FreeType 2.2.1 or newer"
6415 #endif
6416 int main(void) { return 0; }
6418 _ass=no
6419 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _ass=yes
6420 if test "$_ass" = no ; then
6421 ass_internal=no
6422 res_comment="FreeType >= 2.2.1 needed"
6423 elif test "$ass_internal" = no ; then
6424 res_comment="external"
6425 extra_ldflags="$extra_ldflags -lass"
6428 if test "$_ass" = yes ; then
6429 def_ass='#define CONFIG_ASS 1'
6430 else
6431 def_ass='#undef CONFIG_ASS'
6433 if test "$ass_internal" = yes ; then
6434 def_ass_internal='#define CONFIG_ASS_INTERNAL 1'
6435 else
6436 def_ass_internal='#undef CONFIG_ASS_INTERNAL'
6438 echores "$_ass"
6441 echocheck "fribidi with charsets"
6442 _inc_tmp=""
6443 _ld_tmp=""
6444 if test "$_fribidi" = auto ; then
6445 cat > $TMPC << EOF
6446 #include <stdio.h>
6447 #include <stdlib.h>
6448 /* workaround for fribidi 0.10.4 and below */
6449 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
6450 #include <fribidi/fribidi.h>
6451 int main(void) {
6452 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
6453 printf("Fribidi headers are not consistents with the library!\n");
6454 exit(1);
6456 return 0;
6459 _fribidi=no
6460 _inc_tmp=""
6461 _ld_tmp="-lfribidi"
6462 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6463 if $_pkg_config --exists fribidi > /dev/null 2>&1 &&
6464 test "$_fribidi" = no ; then
6465 _inc_tmp="$($_pkg_config --cflags)"
6466 _ld_tmp="$($_pkg_config --libs)"
6467 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6470 if test "$_fribidi" = yes ; then
6471 def_fribidi='#define CONFIG_FRIBIDI 1'
6472 extra_cflags="$extra_cflags $_inc_tmp"
6473 extra_ldflags="$extra_ldflags $_ld_tmp"
6474 else
6475 def_fribidi='#undef CONFIG_FRIBIDI'
6477 echores "$_fribidi"
6480 echocheck "ENCA"
6481 if test "$_enca" = auto ; then
6482 cat > $TMPC << EOF
6483 #include <sys/types.h>
6484 #include <enca.h>
6485 int main(void) {
6486 const char **langs;
6487 size_t langcnt;
6488 langs = enca_get_languages(&langcnt);
6489 return 0;
6492 _enca=no
6493 cc_check -lenca $_ld_lm && _enca=yes
6495 if test "$_enca" = yes ; then
6496 def_enca='#define CONFIG_ENCA 1'
6497 extra_ldflags="$extra_ldflags -lenca"
6498 else
6499 def_enca='#undef CONFIG_ENCA'
6501 echores "$_enca"
6504 echocheck "zlib"
6505 cat > $TMPC << EOF
6506 #include <zlib.h>
6507 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
6509 _zlib=no
6510 cc_check -lz && _zlib=yes
6511 if test "$_zlib" = yes ; then
6512 def_zlib='#define CONFIG_ZLIB 1'
6513 extra_ldflags="$extra_ldflags -lz"
6514 else
6515 def_zlib='#define CONFIG_ZLIB 0'
6516 _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//)
6517 _libavencoders=$(echo $_libavencoders | sed -e s/FLASHSV_ENCODER// -e s/PNG_ENCODER// -e s/ZMBV_ENCODER// -e s/ZLIB_ENCODER//)
6519 echores "$_zlib"
6522 echocheck "bzlib"
6523 bzlib=no
6524 def_bzlib='#define CONFIG_BZLIB 0'
6525 cat > $TMPC << EOF
6526 #include <bzlib.h>
6527 int main(void) { BZ2_bzlibVersion(); return 0; }
6529 cc_check -lbz2 && bzlib=yes
6530 if test "$bzlib" = yes ; then
6531 def_bzlib='#define CONFIG_BZLIB 1'
6532 extra_ldflags="$extra_ldflags -lbz2"
6534 echores "$bzlib"
6537 echocheck "RTC"
6538 if test "$_rtc" = auto ; then
6539 cat > $TMPC << EOF
6540 #include <sys/ioctl.h>
6541 #ifdef __linux__
6542 #include <linux/rtc.h>
6543 #else
6544 #include <rtc.h>
6545 #define RTC_PIE_ON RTCIO_PIE_ON
6546 #endif
6547 int main(void) { return RTC_PIE_ON; }
6549 _rtc=no
6550 cc_check && _rtc=yes
6551 ppc && _rtc=no
6553 if test "$_rtc" = yes ; then
6554 def_rtc='#define HAVE_RTC 1'
6555 else
6556 def_rtc='#undef HAVE_RTC'
6558 echores "$_rtc"
6561 echocheck "liblzo2 support"
6562 if test "$_liblzo" = auto ; then
6563 _liblzo=no
6564 cat > $TMPC << EOF
6565 #include <lzo/lzo1x.h>
6566 int main(void) { lzo_init();return 0; }
6568 cc_check -llzo2 && _liblzo=yes
6570 if test "$_liblzo" = yes ; then
6571 def_liblzo='#define CONFIG_LIBLZO 1'
6572 extra_ldflags="$extra_ldflags -llzo2"
6573 codecmodules="liblzo $codecmodules"
6574 else
6575 def_liblzo='#undef CONFIG_LIBLZO'
6576 nocodecmodules="liblzo $nocodecmodules"
6578 echores "$_liblzo"
6581 echocheck "mad support"
6582 if test "$_mad" = auto ; then
6583 _mad=no
6584 cat > $TMPC << EOF
6585 #include <mad.h>
6586 int main(void) { return 0; }
6588 cc_check -lmad && _mad=yes
6590 if test "$_mad" = yes ; then
6591 def_mad='#define CONFIG_LIBMAD 1'
6592 extra_ldflags="$extra_ldflags -lmad"
6593 codecmodules="libmad $codecmodules"
6594 else
6595 def_mad='#undef CONFIG_LIBMAD'
6596 nocodecmodules="libmad $nocodecmodules"
6598 echores "$_mad"
6600 echocheck "Twolame"
6601 if test "$_twolame" = auto ; then
6602 cat > $TMPC <<EOF
6603 #include <twolame.h>
6604 int main(void) { twolame_init(); return 0; }
6606 _twolame=no
6607 cc_check -ltwolame $_ld_lm && _twolame=yes
6609 if test "$_twolame" = yes ; then
6610 def_twolame='#define CONFIG_TWOLAME 1'
6611 libs_mencoder="$libs_mencoder -ltwolame"
6612 codecmodules="twolame $codecmodules"
6613 else
6614 def_twolame='#undef CONFIG_TWOLAME'
6615 nocodecmodules="twolame $nocodecmodules"
6617 echores "$_twolame"
6619 echocheck "Toolame"
6620 if test "$_toolame" = auto ; then
6621 _toolame=no
6622 if test "$_twolame" = yes ; then
6623 res_comment="disabled by twolame"
6624 else
6625 cat > $TMPC <<EOF
6626 #include <toolame.h>
6627 int main(void) { toolame_init(); return 0; }
6629 cc_check -ltoolame $_ld_lm && _toolame=yes
6632 if test "$_toolame" = yes ; then
6633 def_toolame='#define CONFIG_TOOLAME 1'
6634 libs_mencoder="$libs_mencoder -ltoolame"
6635 codecmodules="toolame $codecmodules"
6636 else
6637 def_toolame='#undef CONFIG_TOOLAME'
6638 nocodecmodules="toolame $nocodecmodules"
6640 if test "$_toolamedir" ; then
6641 res_comment="using $_toolamedir"
6643 echores "$_toolame"
6645 echocheck "OggVorbis support"
6646 if test "$_tremor_internal" = yes; then
6647 _libvorbis=no
6648 elif test "$_tremor" = auto; then
6649 _tremor=no
6650 cat > $TMPC << EOF
6651 #include <tremor/ivorbiscodec.h>
6652 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6654 cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6656 if test "$_libvorbis" = auto; then
6657 _libvorbis=no
6658 cat > $TMPC << EOF
6659 #include <vorbis/codec.h>
6660 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6662 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
6664 if test "$_tremor_internal" = yes ; then
6665 _vorbis=yes
6666 def_vorbis='#define CONFIG_OGGVORBIS 1'
6667 def_tremor='#define CONFIG_TREMOR 1'
6668 codecmodules="tremor(internal) $codecmodules"
6669 res_comment="internal Tremor"
6670 if test "$_tremor_low" = yes ; then
6671 cflags_tremor_low="-D_LOW_ACCURACY_"
6672 res_comment="internal low accuracy Tremor"
6674 elif test "$_tremor" = yes ; then
6675 _vorbis=yes
6676 def_vorbis='#define CONFIG_OGGVORBIS 1'
6677 def_tremor='#define CONFIG_TREMOR 1'
6678 codecmodules="tremor(external) $codecmodules"
6679 res_comment="external Tremor"
6680 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6681 elif test "$_libvorbis" = yes ; then
6682 _vorbis=yes
6683 def_vorbis='#define CONFIG_OGGVORBIS 1'
6684 codecmodules="libvorbis $codecmodules"
6685 res_comment="libvorbis"
6686 extra_ldflags="$extra_ldflags -lvorbis -logg"
6687 else
6688 _vorbis=no
6689 nocodecmodules="libvorbis $nocodecmodules"
6691 echores "$_vorbis"
6693 echocheck "libspeex (version >= 1.1 required)"
6694 if test "$_speex" = auto ; then
6695 _speex=no
6696 cat > $TMPC << EOF
6697 #include <speex/speex.h>
6698 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
6700 cc_check -lspeex $_ld_lm && _speex=yes
6702 if test "$_speex" = yes ; then
6703 def_speex='#define CONFIG_SPEEX 1'
6704 extra_ldflags="$extra_ldflags -lspeex"
6705 codecmodules="speex $codecmodules"
6706 else
6707 def_speex='#undef CONFIG_SPEEX'
6708 nocodecmodules="speex $nocodecmodules"
6710 echores "$_speex"
6712 echocheck "OggTheora support"
6713 if test "$_theora" = auto ; then
6714 _theora=no
6715 cat > $TMPC << EOF
6716 #include <theora/theora.h>
6717 #include <string.h>
6718 int main(void) {
6719 /* Theora is in flux, make sure that all interface routines and datatypes
6720 * exist and work the way we expect it, so we don't break MPlayer. */
6721 ogg_packet op;
6722 theora_comment tc;
6723 theora_info inf;
6724 theora_state st;
6725 yuv_buffer yuv;
6726 int r;
6727 double t;
6729 theora_info_init(&inf);
6730 theora_comment_init(&tc);
6732 return 0;
6734 /* we don't want to execute this kind of nonsense; just for making sure
6735 * that compilation works... */
6736 memset(&op, 0, sizeof(op));
6737 r = theora_decode_header(&inf, &tc, &op);
6738 r = theora_decode_init(&st, &inf);
6739 t = theora_granule_time(&st, op.granulepos);
6740 r = theora_decode_packetin(&st, &op);
6741 r = theora_decode_YUVout(&st, &yuv);
6742 theora_clear(&st);
6744 return 0;
6747 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6748 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6749 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6750 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6751 if test _theora = no; then
6752 _ld_theora="-ltheora -logg"
6753 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6755 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6756 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6757 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6758 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6759 extra_ldflags="$extra_ldflags $_ld_theora" &&
6760 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6761 if test _theora = no; then
6762 _ld_theora="-ltheora -logg"
6763 cc_check tremor/bitwise.c $_ld_theora &&
6764 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6768 if test "$_theora" = yes ; then
6769 def_theora='#define CONFIG_OGGTHEORA 1'
6770 codecmodules="libtheora $codecmodules"
6771 # when --enable-theora is forced, we'd better provide a probably sane
6772 # $_ld_theora than nothing
6773 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6774 else
6775 def_theora='#undef CONFIG_OGGTHEORA'
6776 nocodecmodules="libtheora $nocodecmodules"
6778 echores "$_theora"
6780 echocheck "mp3lib support"
6781 if test "$_mp3lib" = auto ; then
6782 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _mp3lib=no || _mp3lib=yes
6784 if test "$_mp3lib" = yes ; then
6785 def_mp3lib='#define CONFIG_MP3LIB 1'
6786 codecmodules="mp3lib(internal) $codecmodules"
6787 else
6788 def_mp3lib='#undef CONFIG_MP3LIB'
6789 nocodecmodules="mp3lib(internal) $nocodecmodules"
6791 echores "$_mp3lib"
6793 echocheck "liba52 support"
6794 def_liba52='#undef CONFIG_LIBA52'
6795 if test "$_liba52" = auto ; then
6796 _liba52=no
6797 cat > $TMPC << EOF
6798 #include <inttypes.h>
6799 #include <a52dec/a52.h>
6800 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6802 cc_check -la52 && _liba52=yes && extra_ldflags="$extra_ldflags -la52"
6804 if test "$_liba52" = yes ; then
6805 def_liba52='#define CONFIG_LIBA52 1'
6806 codecmodules="liba52 $codecmodules"
6807 else
6808 nocodecmodules="liba52 $nocodecmodules"
6810 echores "$_liba52"
6812 echocheck "internal libmpeg2 support"
6813 if test "$_libmpeg2" = auto ; then
6814 _libmpeg2=yes
6815 if alpha && test cc_vendor=gnu; then
6816 case $cc_version in
6817 2*|3.0*|3.1*) # cannot compile MVI instructions
6818 _libmpeg2=no
6819 res_comment="broken gcc"
6821 esac
6824 if test "$_libmpeg2" = yes ; then
6825 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6826 codecmodules="libmpeg2(internal) $codecmodules"
6827 else
6828 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6829 nocodecmodules="libmpeg2(internal) $nocodecmodules"
6831 echores "$_libmpeg2"
6833 echocheck "libdca support"
6834 if test "$_libdca" = auto ; then
6835 _libdca=no
6836 cat > $TMPC << EOF
6837 #include <inttypes.h>
6838 #include <dts.h>
6839 int main(void) { dts_init(0); return 0; }
6841 for _ld_dca in -ldca -ldts ; do
6842 cc_check $_ld_dca $_ld_lm && extra_ldflags="$extra_ldflags $_ld_dca" \
6843 && _libdca=yes && break
6844 done
6846 if test "$_libdca" = yes ; then
6847 def_libdca='#define CONFIG_LIBDCA 1'
6848 codecmodules="libdca $codecmodules"
6849 else
6850 def_libdca='#undef CONFIG_LIBDCA'
6851 nocodecmodules="libdca $nocodecmodules"
6853 echores "$_libdca"
6855 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6856 if test "$_musepack" = auto ; then
6857 _musepack=no
6858 cat > $TMPC << EOF
6859 #include <stddef.h>
6860 #include <mpcdec/mpcdec.h>
6861 int main(void) {
6862 mpc_streaminfo info;
6863 mpc_decoder decoder;
6864 mpc_decoder_set_streaminfo(&decoder, &info);
6865 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6866 return 0;
6869 cc_check -lmpcdec $_ld_lm && _musepack=yes
6871 if test "$_musepack" = yes ; then
6872 def_musepack='#define CONFIG_MUSEPACK 1'
6873 extra_ldflags="$extra_ldflags -lmpcdec"
6874 codecmodules="musepack $codecmodules"
6875 else
6876 def_musepack='#undef CONFIG_MUSEPACK'
6877 nocodecmodules="musepack $nocodecmodules"
6879 echores "$_musepack"
6882 echocheck "FAAC support"
6883 if test "$_faac" = auto ; then
6884 cat > $TMPC <<EOF
6885 #include <inttypes.h>
6886 #include <faac.h>
6887 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6889 _faac=no
6890 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6891 cc_check $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6892 done
6894 if test "$_faac" = yes ; then
6895 def_faac="#define CONFIG_FAAC 1"
6896 test "$_faac_lavc" = auto && _faac_lavc=yes
6897 if test "$_faac_lavc" = yes ; then
6898 def_faac_lavc="#define CONFIG_LIBFAAC 1"
6899 libs_mplayer="$libs_mplayer $_ld_faac"
6900 _libavencoders="$_libavencoders LIBFAAC_ENCODER"
6902 codecmodules="faac $codecmodules"
6903 else
6904 _faac_lavc=no
6905 def_faac="#undef CONFIG_FAAC"
6906 def_faac_lavc="#define CONFIG_LIBFAAC 0"
6907 nocodecmodules="faac $nocodecmodules"
6909 res_comment="in libavcodec: $_faac_lavc"
6910 echores "$_faac"
6913 echocheck "FAAD2 support"
6914 if test "$_faad_internal" = auto ; then
6915 if x86_32 && test cc_vendor=gnu; then
6916 case $cc_version in
6917 3.1*|3.2) # ICE/insn with these versions
6918 _faad_internal=no
6919 res_comment="broken gcc"
6922 _faad=yes
6923 _faad_internal=yes
6925 esac
6926 else
6927 _faad=yes
6928 _faad_internal=yes
6931 if test "$_faad" = auto ; then
6932 cat > $TMPC << EOF
6933 #include <faad.h>
6934 #ifndef FAAD_MIN_STREAMSIZE
6935 #error Too old version
6936 #endif
6937 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6938 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6940 cc_check -lfaad $_ld_lm && _faad=yes
6943 def_faad='#undef CONFIG_FAAD'
6944 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6945 if test "$_faad_internal" = yes ; then
6946 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6947 res_comment="internal floating-point"
6948 if test "$_faad_fixed" = yes ; then
6949 # The FIXED_POINT implementation of FAAD2 improves performance
6950 # on some platforms, especially for SBR files.
6951 cflags_faad_fixed="-DFIXED_POINT"
6952 res_comment="internal fixed-point"
6954 elif test "$_faad" = yes ; then
6955 extra_ldflags="$extra_ldflags -lfaad"
6958 if test "$_faad" = yes ; then
6959 def_faad='#define CONFIG_FAAD 1'
6960 if test "$_faad_internal" = yes ; then
6961 codecmodules="faad2(internal) $codecmodules"
6962 else
6963 codecmodules="faad2 $codecmodules"
6965 else
6966 _faad=no
6967 nocodecmodules="faad2 $nocodecmodules"
6969 echores "$_faad"
6972 echocheck "LADSPA plugin support"
6973 if test "$_ladspa" = auto ; then
6974 cat > $TMPC <<EOF
6975 #include <stdio.h>
6976 #include <ladspa.h>
6977 int main(void) {
6978 const LADSPA_Descriptor *ld = NULL;
6979 return 0;
6982 _ladspa=no
6983 cc_check && _ladspa=yes
6985 if test "$_ladspa" = yes; then
6986 def_ladspa="#define CONFIG_LADSPA 1"
6987 else
6988 def_ladspa="#undef CONFIG_LADSPA"
6990 echores "$_ladspa"
6993 echocheck "libbs2b audio filter support"
6994 if test "$_libbs2b" = auto ; then
6995 cat > $TMPC <<EOF
6996 #include <bs2b.h>
6997 #if BS2B_VERSION_MAJOR < 3
6998 #error Please use libbs2b >= 3.0.0, older versions are not supported.
6999 #endif
7000 int main(void) {
7001 t_bs2bdp filter;
7002 filter=bs2b_open();
7003 bs2b_close(filter);
7004 return 0;
7007 _libbs2b=no
7008 if $_pkg_config --exists libbs2b ; then
7009 _inc_tmp=$($_pkg_config --cflags libbs2b)
7010 _ld_tmp=$($_pkg_config --libs libbs2b)
7011 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
7012 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
7013 else
7014 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
7015 -I/usr/local/include/bs2b ; do
7016 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
7017 extra_ldflags="$extra_ldflags -lbs2b"
7018 extra_cflags="$extra_cflags $_inc_tmp"
7019 _libbs2b=yes
7020 break
7022 done
7025 def_libbs2b="#undef CONFIG_LIBBS2B"
7026 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
7027 echores "$_libbs2b"
7030 if test -z "$_codecsdir" ; then
7031 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
7032 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
7033 if test -d "$dir" ; then
7034 _codecsdir="$dir"
7035 break;
7037 done
7039 # Fall back on default directory.
7040 if test -z "$_codecsdir" ; then
7041 _codecsdir="$_libdir/codecs"
7042 mingw32 || os2 && _codecsdir="codecs"
7046 echocheck "Win32 codecs"
7047 if test "$_win32dll" = auto ; then
7048 _win32dll=no
7049 if x86_32 && ! qnx; then
7050 _win32dll=yes
7053 if test "$_win32dll" = yes ; then
7054 def_win32dll='#define CONFIG_WIN32DLL 1'
7055 if ! win32 ; then
7056 def_win32_loader='#define WIN32_LOADER 1'
7057 _win32_emulation=yes
7058 else
7059 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
7060 res_comment="using native windows"
7062 codecmodules="win32 $codecmodules"
7063 else
7064 def_win32dll='#undef CONFIG_WIN32DLL'
7065 def_win32_loader='#undef WIN32_LOADER'
7066 nocodecmodules="win32 $nocodecmodules"
7068 echores "$_win32dll"
7071 echocheck "XAnim codecs"
7072 if test "$_xanim" = auto ; then
7073 _xanim=no
7074 res_comment="dynamic loader support needed"
7075 if test "$_dl" = yes ; then
7076 _xanim=yes
7079 if test "$_xanim" = yes ; then
7080 def_xanim='#define CONFIG_XANIM 1'
7081 codecmodules="xanim $codecmodules"
7082 else
7083 def_xanim='#undef CONFIG_XANIM'
7084 nocodecmodules="xanim $nocodecmodules"
7086 echores "$_xanim"
7089 echocheck "RealPlayer codecs"
7090 if test "$_real" = auto ; then
7091 _real=no
7092 res_comment="dynamic loader support needed"
7093 if test "$_dl" = yes || test "$_win32dll" = yes &&
7094 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32 || os2) ; then
7095 _real=yes
7098 if test "$_real" = yes ; then
7099 def_real='#define CONFIG_REALCODECS 1'
7100 codecmodules="real $codecmodules"
7101 else
7102 def_real='#undef CONFIG_REALCODECS'
7103 nocodecmodules="real $nocodecmodules"
7105 echores "$_real"
7108 echocheck "QuickTime codecs"
7109 _qtx_emulation=no
7110 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
7111 if test "$_qtx" = auto ; then
7112 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
7114 if test "$_qtx" = yes ; then
7115 def_qtx='#define CONFIG_QTX_CODECS 1'
7116 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
7117 codecmodules="qtx $codecmodules"
7118 darwin || win32 || _qtx_emulation=yes
7119 else
7120 def_qtx='#undef CONFIG_QTX_CODECS'
7121 nocodecmodules="qtx $nocodecmodules"
7123 echores "$_qtx"
7125 echocheck "Nemesi Streaming Media libraries"
7126 if test "$_nemesi" = auto && test "$_network" = yes ; then
7127 _nemesi=no
7128 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
7129 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
7130 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
7131 _nemesi=yes
7134 if test "$_nemesi" = yes; then
7135 _native_rtsp=no
7136 def_nemesi='#define CONFIG_LIBNEMESI 1'
7137 inputmodules="nemesi $inputmodules"
7138 else
7139 _native_rtsp="$_network"
7140 _nemesi=no
7141 def_nemesi='#undef CONFIG_LIBNEMESI'
7142 _noinputmodules="nemesi $_noinputmodules"
7144 echores "$_nemesi"
7146 echocheck "LIVE555 Streaming Media libraries"
7147 if test "$_live" = auto && test "$_network" = yes ; then
7148 cat > $TMPCPP << EOF
7149 #include <liveMedia.hh>
7150 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
7151 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
7152 #endif
7153 int main(void) { return 0; }
7156 _live=no
7157 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
7158 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
7159 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
7160 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
7161 $_livelibdir/groupsock/libgroupsock.a \
7162 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
7163 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
7164 $extra_ldflags -lstdc++" \
7165 extra_cxxflags="-I$_livelibdir/liveMedia/include \
7166 -I$_livelibdir/UsageEnvironment/include \
7167 -I$_livelibdir/BasicUsageEnvironment/include \
7168 -I$_livelibdir/groupsock/include" && \
7169 _live=yes && break
7170 done
7171 if test "$_live" != yes ; then
7172 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
7173 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
7174 _live_dist=yes
7178 if test "$_live" = yes && test "$_network" = yes; then
7179 test $_livelibdir && res_comment="using $_livelibdir"
7180 def_live='#define CONFIG_LIVE555 1'
7181 inputmodules="live555 $inputmodules"
7182 elif test "$_live_dist" = yes && test "$_network" = yes; then
7183 res_comment="using distribution version"
7184 _live="yes"
7185 def_live='#define CONFIG_LIVE555 1'
7186 extra_ldflags="$extra_ldflags $ld_tmp"
7187 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
7188 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
7189 inputmodules="live555 $inputmodules"
7190 else
7191 _live=no
7192 def_live='#undef CONFIG_LIVE555'
7193 _noinputmodules="live555 $_noinputmodules"
7195 echores "$_live"
7198 echocheck "FFmpeg libavutil"
7199 if test "$_libavutil_a" = auto ; then
7200 if test -d libavutil ; then
7201 _libavutil_a=yes
7202 res_comment="static"
7203 else
7204 die "MPlayer will not compile without libavutil in the source tree."
7206 elif test "$_libavutil_so" = auto ; then
7207 _libavutil_so=no
7208 cat > $TMPC << EOF
7209 #include <libavutil/common.h>
7210 int main(void) { av_clip(1, 1, 1); return 0; }
7212 if $_pkg_config --exists libavutil ; then
7213 _inc_libavutil=$($_pkg_config --cflags libavutil)
7214 _ld_tmp=$($_pkg_config --libs libavutil)
7215 cc_check $_inc_libavutil $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7216 && _libavutil_so=yes
7217 elif cc_check -lavutil $_ld_lm ; then
7218 extra_ldflags="$extra_ldflags -lavutil"
7219 _libavutil_so=yes
7220 res_comment="using libavutil.so, but static libavutil is recommended"
7223 _libavutil=no
7224 def_libavutil='#undef CONFIG_LIBAVUTIL'
7225 def_libavutil_a='#undef CONFIG_LIBAVUTIL_A'
7226 def_libavutil_so='#undef CONFIG_LIBAVUTIL_SO'
7227 test "$_libavutil_a" = yes || test "$_libavutil_so" = yes && _libavutil=yes
7228 test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1'
7229 test "$_libavutil_a" = yes && def_libavutil_a='#define CONFIG_LIBAVUTIL_A 1'
7230 test "$_libavutil_so" = yes && def_libavutil_so='#define CONFIG_LIBAVUTIL_SO 1'
7231 # neither static nor shared libavutil is available, but it is mandatory ...
7232 if test "$_libavutil" = no ; then
7233 die "You need static or shared libavutil, MPlayer will not compile without!"
7235 echores "$_libavutil"
7237 echocheck "FFmpeg libavcodec"
7238 if test "$_libavcodec_a" = auto ; then
7239 _libavcodec_a=no
7240 if test -d libavcodec && test -f libavcodec/utils.c ; then
7241 _libavcodec_a="yes"
7242 res_comment="static"
7244 elif test "$_libavcodec_so" = auto ; then
7245 _libavcodec_so=no
7246 res_comment="libavcodec.so is discouraged over static libavcodec"
7247 cat > $TMPC << EOF
7248 #include <libavcodec/avcodec.h>
7249 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
7251 if $_pkg_config --exists libavcodec ; then
7252 _inc_libavcodec=$($_pkg_config --cflags libavcodec)
7253 _ld_tmp=$($_pkg_config --libs libavcodec)
7254 cc_check $_inc_libavcodec $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7255 && _libavcodec_so=yes
7256 elif cc_check -lavcodec $_ld_lm ; then
7257 extra_ldflags="$extra_ldflags -lavcodec"
7258 _libavcodec_so=yes
7259 res_comment="using libavcodec.so, but static libavcodec is recommended"
7262 _libavcodec=no
7263 def_libavcodec='#undef CONFIG_LIBAVCODEC'
7264 def_libavcodec_a='#undef CONFIG_LIBAVCODEC_A'
7265 def_libavcodec_so='#undef CONFIG_LIBAVCODEC_SO'
7266 test "$_libavcodec_a" = yes || test "$_libavcodec_so" = yes && _libavcodec=yes
7267 test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1'
7268 test "$_libavcodec_a" = yes && def_libavcodec_a='#define CONFIG_LIBAVCODEC_A 1'
7269 test "$_libavcodec_so" = yes && def_libavcodec_so='#define CONFIG_LIBAVCODEC_SO 1'
7270 test "$_libavcodec_mpegaudio_hp" = yes \
7271 && def_libavcodec_mpegaudio_hp='#define CONFIG_MPEGAUDIO_HP 1' \
7272 && mak_libavcodec_mpegaudio_hp='CONFIG_MPEGAUDIO_HP = yes'
7273 if test "$_libavcodec_a" = yes ; then
7274 codecmodules="libavcodec(internal) $codecmodules"
7275 elif test "$_libavcodec_so" = yes ; then
7276 codecmodules="libavcodec.so $codecmodules"
7277 else
7278 nocodecmodules="libavcodec $nocodecmodules"
7280 echores "$_libavcodec"
7282 echocheck "FFmpeg libavformat"
7283 if test "$_libavformat_a" = auto ; then
7284 _libavformat_a=no
7285 if test -d libavformat && test -f libavformat/utils.c ; then
7286 _libavformat_a=yes
7287 res_comment="static"
7289 elif test "$_libavformat_so" = auto ; then
7290 _libavformat_so=no
7291 cat > $TMPC <<EOF
7292 #include <libavformat/avformat.h>
7293 #include <libavcodec/opt.h>
7294 int main(void) { av_alloc_format_context(); return 0; }
7296 if $_pkg_config --exists libavformat ; then
7297 _inc_libavformat=$($_pkg_config --cflags libavformat)
7298 _ld_tmp=$($_pkg_config --libs libavformat)
7299 cc_check $_inc_libavformat $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7300 && _libavformat_so=yes
7301 elif cc_check $_ld_lm -lavformat ; then
7302 extra_ldflags="$extra_ldflags -lavformat"
7303 _libavformat_so=yes
7304 res_comment="using libavformat.so, but static libavformat is recommended"
7307 _libavformat=no
7308 def_libavformat='#undef CONFIG_LIBAVFORMAT'
7309 def_libavformat_a='#undef CONFIG_LIBAVFORMAT_A'
7310 def_libavformat_so='#undef CONFIG_LIBAVFORMAT_SO'
7311 test "$_libavformat_a" = yes || test "$_libavformat_so" = yes && _libavformat=yes
7312 test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1'
7313 test "$_libavformat_a" = yes && def_libavformat_a='#define CONFIG_LIBAVFORMAT_A 1'
7314 test "$_libavformat_so" = yes \
7315 && def_libavformat_so='#define CONFIG_LIBAVFORMAT_SO 1'
7316 echores "$_libavformat"
7318 echocheck "FFmpeg libpostproc"
7319 if test "$_libpostproc_a" = auto ; then
7320 _libpostproc_a=no
7321 if test -d libpostproc && test -f libpostproc/postprocess.h ; then
7322 _libpostproc_a='yes'
7323 res_comment="static"
7325 elif test "$_libpostproc_so" = auto ; then
7326 _libpostproc_so=no
7327 cat > $TMPC << EOF
7328 #include <inttypes.h>
7329 #include <libpostproc/postprocess.h>
7330 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
7332 if cc_check -lpostproc $_ld_lm ; then
7333 extra_ldflags="$extra_ldflags -lpostproc"
7334 _libpostproc_so=yes
7335 res_comment="using libpostproc.so, but static libpostproc is recommended"
7338 _libpostproc=no
7339 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
7340 def_libpostproc_a='#undef CONFIG_LIBPOSTPROC_A'
7341 def_libpostproc_so='#undef CONFIG_LIBPOSTPROC_SO'
7342 test "$_libpostproc_a" = yes || test "$_libpostproc_so" = yes && _libpostproc=yes
7343 test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
7344 test "$_libpostproc_a" = yes && def_libpostproc_a='#define CONFIG_LIBPOSTPROC_A 1'
7345 test "$_libpostproc_so" = yes \
7346 && def_libpostproc_so='#define CONFIG_LIBPOSTPROC_SO 1'
7347 echores "$_libpostproc"
7349 echocheck "FFmpeg libswscale"
7350 if test "$_libswscale_a" = auto ; then
7351 _libswscale_a=no
7352 if test -d libswscale && test -f libswscale/swscale.h ; then
7353 _libswscale_a='yes'
7354 res_comment="static"
7356 elif test "$_libswscale_so" = auto ; then
7357 _libswscale_so=no
7358 res_comment="using libswscale.so, but static libswscale is recommended"
7359 cat > $TMPC << EOF
7360 #include <libswscale/swscale.h>
7361 int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; }
7363 if $_pkg_config --exists libswscale ; then
7364 _inc_libswscale=$($_pkg_config --cflags libswscale)
7365 _ld_tmp=$($_pkg_config --libs libswscale)
7366 cc_check $_inc_libswscale $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7367 && _libswscale_so=yes
7368 elif cc_check -lswscale ; then
7369 extra_ldflags="$extra_ldflags -lswscale"
7370 _libswscale_so=yes
7373 _libswscale=no
7374 def_libswscale='#undef CONFIG_LIBSWSCALE'
7375 def_libswscale_a='#undef CONFIG_LIBSWSCALE_A'
7376 def_libswscale_so='#undef CONFIG_LIBSWSCALE_SO'
7377 test "$_libswscale_a" = yes || test "$_libswscale_so" = yes && _libswscale=yes
7378 test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1'
7379 test "$_libswscale_a" = yes && def_libswscale_a='#define CONFIG_LIBSWSCALE_A 1'
7380 test "$_libswscale_so" = yes \
7381 && def_libswscale_so='#define CONFIG_LIBSWSCALE_SO 1'
7382 echores "$_libswscale"
7384 echocheck "libopencore_amr narrowband"
7385 if test "$_libopencore_amrnb" = auto ; then
7386 _libopencore_amrnb=no
7387 cat > $TMPC << EOF
7388 #include <opencore-amrnb/interf_dec.h>
7389 int main(void) { Decoder_Interface_init(); return 0; }
7391 cc_check -lopencore-amrnb && _libopencore_amrnb=yes
7392 if test "$_libavcodec_a" != yes ; then
7393 _libopencore_amrnb=no
7394 res_comment="libavcodec (static) is required by libopencore_amrnb, sorry"
7397 if test "$_libopencore_amrnb" = yes ; then
7398 _libopencore_amr=yes
7399 extra_ldflags="$extra_ldflags -lopencore-amrnb"
7400 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 1'
7401 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRNB_DECODER"
7402 _libavencoders="$_libavencoders LIBOPENCORE_AMRNB_ENCODER"
7403 codecmodules="libopencore_amrnb $codecmodules"
7404 else
7405 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 0'
7406 nocodecmodules="libopencore_amrnb $nocodecmodules"
7408 echores "$_libopencore_amrnb"
7411 echocheck "libopencore_amr wideband"
7412 if test "$_libopencore_amrwb" = auto ; then
7413 _libopencore_amrwb=no
7414 cat > $TMPC << EOF
7415 #include <opencore-amrwb/dec_if.h>
7416 int main(void) { D_IF_init(); return 0; }
7418 cc_check -lopencore-amrwb && _libopencore_amrwb=yes
7419 if test "$_libavcodec_a" != yes ; then
7420 _libopencore_amrwb=no
7421 res_comment="libavcodec (static) is required by libopencore_amrwb, sorry"
7424 if test "$_libopencore_amrwb" = yes ; then
7425 _libopencore_amr=yes
7426 extra_ldflags="$extra_ldflags -lopencore-amrwb"
7427 def_libopencore_amrwb='#define CONFIG_LIBOPENCORE_AMRWB 1'
7428 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRWB_DECODER"
7429 codecmodules="libopencore_amrwb $codecmodules"
7430 else
7431 def_libopencore_amrwb='#define LIBOPENCORE_AMRWB 0'
7432 nocodecmodules="libopencore_amrwb $nocodecmodules"
7434 echores "$_libopencore_amrwb"
7436 echocheck "libdv-0.9.5+"
7437 if test "$_libdv" = auto ; then
7438 _libdv=no
7439 cat > $TMPC <<EOF
7440 #include <libdv/dv.h>
7441 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
7443 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
7445 if test "$_libdv" = yes ; then
7446 def_libdv='#define CONFIG_LIBDV095 1'
7447 extra_ldflags="$extra_ldflags -ldv"
7448 codecmodules="libdv $codecmodules"
7449 else
7450 def_libdv='#undef CONFIG_LIBDV095'
7451 nocodecmodules="libdv $nocodecmodules"
7453 echores "$_libdv"
7456 echocheck "Xvid"
7457 if test "$_xvid" = auto ; then
7458 _xvid=no
7459 cat > $TMPC << EOF
7460 #include <xvid.h>
7461 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
7463 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
7464 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
7465 done
7468 if test "$_xvid" = yes ; then
7469 def_xvid='#define CONFIG_XVID4 1'
7470 codecmodules="xvid $codecmodules"
7471 else
7472 def_xvid='#undef CONFIG_XVID4'
7473 nocodecmodules="xvid $nocodecmodules"
7475 echores "$_xvid"
7477 echocheck "Xvid two pass plugin"
7478 if test "$_xvid" = yes && test "$_xvid_lavc" = auto ; then
7479 cat > $TMPC << EOF
7480 #include <xvid.h>
7481 int main(void) { xvid_plugin_2pass2_t s; s.vbv_size=0; return 0; }
7483 cc_check && _xvid_lavc=yes
7485 if test "$_xvid_lavc" = yes ; then
7486 def_xvid_lavc='#define CONFIG_LIBXVID 1'
7487 _libavencoders="$_libavencoders LIBXVID_ENCODER"
7488 else
7489 _xvid_lavc=no
7490 def_xvid_lavc='#define CONFIG_LIBXVID 0'
7492 echores "$_xvid_lavc"
7495 echocheck "x264"
7496 if test "$_x264" = auto ; then
7497 cat > $TMPC << EOF
7498 #include <inttypes.h>
7499 #include <x264.h>
7500 #if X264_BUILD < 89
7501 #error We do not support old versions of x264. Get the latest from git.
7502 #endif
7503 int main(void) { x264_encoder_open((void*)0); return 0; }
7505 _x264=no
7506 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
7507 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
7508 done
7511 if test "$_x264" = yes ; then
7512 def_x264='#define CONFIG_X264 1'
7513 codecmodules="x264 $codecmodules"
7514 test "$_x264_lavc" = auto && _x264_lavc=yes
7515 if test "$_x264_lavc" = yes ; then
7516 def_x264_lavc='#define CONFIG_LIBX264 1'
7517 libs_mplayer="$libs_mplayer $_ld_x264"
7518 _libavencoders="$_libavencoders LIBX264_ENCODER"
7520 else
7521 _x264_lavc=no
7522 def_x264='#undef CONFIG_X264'
7523 def_x264_lavc='#define CONFIG_LIBX264 0'
7524 nocodecmodules="x264 $nocodecmodules"
7526 res_comment="in libavcodec: $_x264_lavc"
7527 echores "$_x264"
7530 echocheck "libdirac"
7531 if test "$_libdirac_lavc" = auto; then
7532 _libdirac_lavc=no
7533 if test "$_libavcodec_a" != yes; then
7534 res_comment="libavcodec (static) is required by libdirac, sorry"
7535 else
7536 cat > $TMPC << EOF
7537 #include <libdirac_encoder/dirac_encoder.h>
7538 #include <libdirac_decoder/dirac_parser.h>
7539 int main(void)
7541 dirac_encoder_context_t enc_ctx;
7542 dirac_decoder_t *dec_handle;
7543 dirac_encoder_context_init(&enc_ctx, VIDEO_FORMAT_SD_576I50);
7544 dec_handle = dirac_decoder_init(0);
7545 if (dec_handle)
7546 dirac_decoder_close(dec_handle);
7547 return 0;
7550 if $_pkg_config --exists dirac ; then
7551 _inc_dirac=$($_pkg_config --silence-errors --cflags dirac)
7552 _ld_dirac=$($_pkg_config --silence-errors --libs dirac)
7553 cc_check $_inc_dirac $_ld_dirac &&
7554 _libdirac_lavc=yes &&
7555 extra_cflags="$extra_cflags $_inc_dirac" &&
7556 extra_ldflags="$extra_ldflags $_ld_dirac"
7560 if test "$_libdirac_lavc" = yes ; then
7561 def_libdirac_lavc='#define CONFIG_LIBDIRAC 1'
7562 _libavencoders="$_libavencoders LIBDIRAC_ENCODER"
7563 _libavdecoders="$_libavdecoders LIBDIRAC_DECODER"
7564 codecmodules="libdirac $codecmodules"
7565 else
7566 def_libdirac_lavc='#define CONFIG_LIBDIRAC 0'
7567 nocodecmodules="libdirac $nocodecmodules"
7569 echores "$_libdirac_lavc"
7572 echocheck "libschroedinger"
7573 if test "$_libschroedinger_lavc" = auto ; then
7574 _libschroedinger_lavc=no
7575 if test "$_libavcodec_a" != yes; then
7576 res_comment="libavcodec (static) is required by libschroedinger, sorry"
7577 else
7578 cat > $TMPC << EOF
7579 #include <schroedinger/schro.h>
7580 int main(void) { schro_init(); return SCHRO_ENCODER_RATE_CONTROL_CONSTANT_QUALITY; }
7582 if $_pkg_config --exists schroedinger-1.0 ; then
7583 _inc_schroedinger=$($_pkg_config --silence-errors --cflags schroedinger-1.0)
7584 _ld_schroedinger=$($_pkg_config --silence-errors --libs schroedinger-1.0)
7585 cc_check $_inc_schroedinger $_ld_schroedinger &&
7586 _libschroedinger_lavc=yes &&
7587 extra_cflags="$extra_cflags $_inc_schroedinger" &&
7588 extra_ldflags="$extra_ldflags $_ld_schroedinger"
7592 if test "$_libschroedinger_lavc" = yes ; then
7593 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 1'
7594 _libavencoders="$_libavencoders LIBSCHROEDINGER_ENCODER"
7595 _libavdecoders="$_libavdecoders LIBSCHROEDINGER_DECODER"
7596 codecmodules="libschroedinger $codecmodules"
7597 else
7598 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 0'
7599 nocodecmodules="libschroedinger $nocodecmodules"
7601 echores "$_libschroedinger_lavc"
7603 echocheck "libvpx"
7604 if test "$_libvpx_lavc" = auto; then
7605 _libvpx_lavc=no
7606 if test "$_libavcodec_a" != yes; then
7607 res_comment="libavcodec (static) is required by libvpx, sorry"
7608 else
7609 cat > $TMPC << EOF
7610 #include <vpx/vpx_decoder.h>
7611 #include <vpx/vp8dx.h>
7612 int main(void) { vpx_codec_dec_init(NULL, &vpx_codec_vp8_dx_algo, NULL, 0); return 0; }
7614 cc_check -lvpx && _libvpx_lavc=yes && extra_ldflags="$extra_ldflags -lvpx"
7617 if test "$_libvpx_lavc" = yes ; then
7618 def_libvpx_lavc='#define CONFIG_LIBVPX 1'
7619 _libavdecoders="$_libavdecoders LIBVPX_DECODER"
7620 codecmodules="libvpx $codecmodules"
7621 else
7622 def_libvpx_lavc='#define CONFIG_LIBVPX 0'
7623 nocodecmodules="libvpx $nocodecmodules"
7625 echores "$_libvpx_lavc"
7627 echocheck "libnut"
7628 if test "$_libnut" = auto ; then
7629 cat > $TMPC << EOF
7630 #include <stdio.h>
7631 #include <stdlib.h>
7632 #include <inttypes.h>
7633 #include <libnut.h>
7634 nut_context_tt * nut;
7635 int main(void) { (void)nut_error(0); return 0; }
7637 _libnut=no
7638 cc_check -lnut && _libnut=yes
7641 if test "$_libnut" = yes ; then
7642 def_libnut='#define CONFIG_LIBNUT 1'
7643 extra_ldflags="$extra_ldflags -lnut"
7644 else
7645 def_libnut='#undef CONFIG_LIBNUT'
7647 echores "$_libnut"
7649 #check must be done after libavcodec one
7650 echocheck "zr"
7651 if test "$_zr" = auto ; then
7652 #36067's seem to identify themselves as 36057PQC's, so the line
7653 #below should work for 36067's and 36057's.
7654 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
7655 _zr=yes
7656 else
7657 _zr=no
7660 if test "$_zr" = yes ; then
7661 if test "$_libavcodec_a" = yes ; then
7662 def_zr='#define CONFIG_ZR 1'
7663 vomodules="zr zr2 $vomodules"
7664 else
7665 res_comment="libavcodec (static) is required by zr, sorry"
7666 novomodules="zr $novomodules"
7667 def_zr='#undef CONFIG_ZR'
7669 else
7670 def_zr='#undef CONFIG_ZR'
7671 novomodules="zr zr2 $novomodules"
7673 echores "$_zr"
7675 # mencoder requires (optional) those libs: libmp3lame
7676 if test "$_mencoder" != no ; then
7678 echocheck "libmp3lame"
7679 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
7680 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
7681 if test "$_mp3lame" = auto ; then
7682 _mp3lame=no
7683 cat > $TMPC <<EOF
7684 #include <lame/lame.h>
7685 int main(void) { lame_version_t lv; (void) lame_init();
7686 get_lame_version_numerical(&lv);
7687 return 0; }
7689 cc_check -lmp3lame $_ld_lm && _mp3lame=yes
7691 if test "$_mp3lame" = yes ; then
7692 def_mp3lame="#define CONFIG_MP3LAME 1"
7693 _ld_mp3lame=-lmp3lame
7694 libs_mencoder="$libs_mencoder $_ld_mp3lame"
7695 cat > $TMPC << EOF
7696 #include <lame/lame.h>
7697 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
7699 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET 1"
7700 cat > $TMPC << EOF
7701 #include <lame/lame.h>
7702 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
7704 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM 1"
7705 test "$_mp3lame_lavc" = auto && _mp3lame_lavc=yes
7706 if test "$_mp3lame_lavc" = yes ; then
7707 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 1"
7708 _libavencoders="$_libavencoders LIBMP3LAME_ENCODER"
7709 libs_mplayer="$libs_mplayer $_ld_mp3lame"
7711 else
7712 _mp3lame_lavc=no
7713 def_mp3lame='#undef CONFIG_MP3LAME'
7714 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 0"
7716 res_comment="in libavcodec: $_mp3lame_lavc"
7717 echores "$_mp3lame"
7719 fi # test "$_mencoder" != no
7721 echocheck "mencoder"
7722 if test "$_mencoder" = yes ; then
7723 def_muxers='#define CONFIG_MUXERS 1'
7724 else
7725 # mpeg1video for vf_lavc, snow for vf_uspp / vf_mcdeint,
7726 # png for vf_screenshot, mjpeg for zr
7727 _libavencoders="MPEG1VIDEO_ENCODER SNOW_ENCODER"
7728 test "$_zlib" = yes && _libavencoders="$_libavencoders PNG_ENCODER"
7729 test "$_zr" = yes && _libavencoders="$_libavencoders MJPEG_ENCODER"
7730 _libavmuxers=""
7731 def_muxers='#define CONFIG_MUXERS 0'
7733 echores "$_mencoder"
7736 echocheck "UnRAR executable"
7737 if test "$_unrar_exec" = auto ; then
7738 _unrar_exec="yes"
7739 mingw32 && _unrar_exec="no"
7741 if test "$_unrar_exec" = yes ; then
7742 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
7743 else
7744 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
7746 echores "$_unrar_exec"
7748 echocheck "TV interface"
7749 if test "$_tv" = yes ; then
7750 def_tv='#define CONFIG_TV 1'
7751 inputmodules="tv $inputmodules"
7752 else
7753 _noinputmodules="tv $_noinputmodules"
7754 def_tv='#undef CONFIG_TV'
7756 echores "$_tv"
7759 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
7760 echocheck "*BSD BT848 bt8xx header"
7761 _ioctl_bt848_h=no
7762 for file in "machine/ioctl_bt848.h" \
7763 "dev/bktr/ioctl_bt848.h" \
7764 "dev/video/bktr/ioctl_bt848.h" \
7765 "dev/ic/bt8xx.h" ; do
7766 cat > $TMPC <<EOF
7767 #include <sys/types.h>
7768 #include <sys/ioctl.h>
7769 #include <$file>
7770 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
7772 if cc_check ; then
7773 _ioctl_bt848_h=yes
7774 _ioctl_bt848_h_name="$file"
7775 break;
7777 done
7778 if test "$_ioctl_bt848_h" = yes ; then
7779 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
7780 res_comment="using $_ioctl_bt848_h_name"
7781 else
7782 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
7784 echores "$_ioctl_bt848_h"
7786 echocheck "*BSD ioctl_meteor.h"
7787 _ioctl_meteor_h=no
7788 for file in "machine/ioctl_meteor.h" \
7789 "dev/bktr/ioctl_meteor.h" \
7790 "dev/video/bktr/ioctl_meteor.h" ; do
7791 cat > $TMPC <<EOF
7792 #include <sys/types.h>
7793 #include <$file>
7794 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
7796 if cc_check ; then
7797 _ioctl_meteor_h=yes
7798 _ioctl_meteor_h_name="$file"
7799 break;
7801 done
7802 if test "$_ioctl_meteor_h" = yes ; then
7803 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
7804 res_comment="using $_ioctl_meteor_h_name"
7805 else
7806 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
7808 echores "$_ioctl_meteor_h"
7810 echocheck "*BSD BrookTree 848 TV interface"
7811 if test "$_tv_bsdbt848" = auto ; then
7812 _tv_bsdbt848=no
7813 if test "$_tv" = yes ; then
7814 cat > $TMPC <<EOF
7815 #include <sys/types.h>
7816 $def_ioctl_meteor_h_name
7817 $def_ioctl_bt848_h_name
7818 #ifdef IOCTL_METEOR_H_NAME
7819 #include IOCTL_METEOR_H_NAME
7820 #endif
7821 #ifdef IOCTL_BT848_H_NAME
7822 #include IOCTL_BT848_H_NAME
7823 #endif
7824 int main(void) {
7825 ioctl(0, METEORSINPUT, 0);
7826 ioctl(0, TVTUNER_GETFREQ, 0);
7827 return 0;
7830 cc_check && _tv_bsdbt848=yes
7833 if test "$_tv_bsdbt848" = yes ; then
7834 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
7835 inputmodules="tv-bsdbt848 $inputmodules"
7836 else
7837 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
7838 _noinputmodules="tv-bsdbt848 $_noinputmodules"
7840 echores "$_tv_bsdbt848"
7841 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
7844 echocheck "DirectShow TV interface"
7845 if test "$_tv_dshow" = auto ; then
7846 _tv_dshow=no
7847 if test "$_tv" = yes && win32 ; then
7848 cat > $TMPC <<EOF
7849 #include <ole2.h>
7850 int main(void) {
7851 void* p;
7852 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
7853 return 0;
7856 cc_check -lole32 -luuid && _tv_dshow=yes
7859 if test "$_tv_dshow" = yes ; then
7860 inputmodules="tv-dshow $inputmodules"
7861 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
7862 extra_ldflags="$extra_ldflags -lole32 -luuid"
7863 else
7864 _noinputmodules="tv-dshow $_noinputmodules"
7865 def_tv_dshow='#undef CONFIG_TV_DSHOW'
7867 echores "$_tv_dshow"
7870 echocheck "Video 4 Linux TV interface"
7871 if test "$_tv_v4l1" = auto ; then
7872 _tv_v4l1=no
7873 if test "$_tv" = yes && linux ; then
7874 cat > $TMPC <<EOF
7875 #include <stdlib.h>
7876 #include <linux/videodev.h>
7877 int main(void) { return 0; }
7879 cc_check && _tv_v4l1=yes
7882 if test "$_tv_v4l1" = yes ; then
7883 _audio_input=yes
7884 _tv_v4l=yes
7885 def_tv_v4l='#define CONFIG_TV_V4L 1'
7886 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
7887 inputmodules="tv-v4l $inputmodules"
7888 else
7889 _noinputmodules="tv-v4l1 $_noinputmodules"
7890 def_tv_v4l='#undef CONFIG_TV_V4L'
7892 echores "$_tv_v4l1"
7895 echocheck "Video 4 Linux 2 TV interface"
7896 if test "$_tv_v4l2" = auto ; then
7897 _tv_v4l2=no
7898 if test "$_tv" = yes && linux ; then
7899 cat > $TMPC <<EOF
7900 #include <stdlib.h>
7901 #include <linux/types.h>
7902 #include <linux/videodev2.h>
7903 int main(void) { return 0; }
7905 cc_check && _tv_v4l2=yes
7908 if test "$_tv_v4l2" = yes ; then
7909 _audio_input=yes
7910 _tv_v4l=yes
7911 def_tv_v4l='#define CONFIG_TV_V4L 1'
7912 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
7913 inputmodules="tv-v4l2 $inputmodules"
7914 else
7915 _noinputmodules="tv-v4l2 $_noinputmodules"
7916 def_tv_v4l2='#undef CONFIG_TV_V4L2'
7918 echores "$_tv_v4l2"
7921 echocheck "Radio interface"
7922 if test "$_radio" = yes ; then
7923 def_radio='#define CONFIG_RADIO 1'
7924 inputmodules="radio $inputmodules"
7925 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
7926 _radio_capture=no
7928 if test "$_radio_capture" = yes ; then
7929 _audio_input=yes
7930 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
7931 else
7932 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7934 else
7935 _noinputmodules="radio $_noinputmodules"
7936 def_radio='#undef CONFIG_RADIO'
7937 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7938 _radio_capture=no
7940 echores "$_radio"
7941 echocheck "Capture for Radio interface"
7942 echores "$_radio_capture"
7944 echocheck "Video 4 Linux 2 Radio interface"
7945 if test "$_radio_v4l2" = auto ; then
7946 _radio_v4l2=no
7947 if test "$_radio" = yes && linux ; then
7948 cat > $TMPC <<EOF
7949 #include <stdlib.h>
7950 #include <linux/types.h>
7951 #include <linux/videodev2.h>
7952 int main(void) { return 0; }
7954 cc_check && _radio_v4l2=yes
7957 if test "$_radio_v4l2" = yes ; then
7958 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
7959 else
7960 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
7962 echores "$_radio_v4l2"
7964 echocheck "Video 4 Linux Radio interface"
7965 if test "$_radio_v4l" = auto ; then
7966 _radio_v4l=no
7967 if test "$_radio" = yes && linux ; then
7968 cat > $TMPC <<EOF
7969 #include <stdlib.h>
7970 #include <linux/videodev.h>
7971 int main(void) { return 0; }
7973 cc_check && _radio_v4l=yes
7976 if test "$_radio_v4l" = yes ; then
7977 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
7978 else
7979 def_radio_v4l='#undef CONFIG_RADIO_V4L'
7981 echores "$_radio_v4l"
7983 if freebsd || netbsd || openbsd || dragonfly || bsdos \
7984 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
7985 echocheck "*BSD BrookTree 848 Radio interface"
7986 _radio_bsdbt848=no
7987 cat > $TMPC <<EOF
7988 #include <sys/types.h>
7989 $def_ioctl_bt848_h_name
7990 #ifdef IOCTL_BT848_H_NAME
7991 #include IOCTL_BT848_H_NAME
7992 #endif
7993 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
7995 cc_check && _radio_bsdbt848=yes
7996 echores "$_radio_bsdbt848"
7997 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
7999 if test "$_radio_bsdbt848" = yes ; then
8000 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
8001 else
8002 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
8005 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
8006 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
8007 die "Radio driver requires BSD BT848, V4L or V4L2!"
8010 echocheck "Video 4 Linux 2 MPEG PVR interface"
8011 if test "$_pvr" = auto ; then
8012 _pvr=no
8013 if test "$_tv_v4l2" = yes && linux ; then
8014 cat > $TMPC <<EOF
8015 #include <stdlib.h>
8016 #include <inttypes.h>
8017 #include <linux/types.h>
8018 #include <linux/videodev2.h>
8019 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
8021 cc_check && _pvr=yes
8024 if test "$_pvr" = yes ; then
8025 def_pvr='#define CONFIG_PVR 1'
8026 inputmodules="pvr $inputmodules"
8027 else
8028 _noinputmodules="pvr $_noinputmodules"
8029 def_pvr='#undef CONFIG_PVR'
8031 echores "$_pvr"
8034 echocheck "ftp"
8035 if ! beos && test "$_ftp" = yes ; then
8036 def_ftp='#define CONFIG_FTP 1'
8037 inputmodules="ftp $inputmodules"
8038 else
8039 _noinputmodules="ftp $_noinputmodules"
8040 def_ftp='#undef CONFIG_FTP'
8042 echores "$_ftp"
8044 echocheck "vstream client"
8045 if test "$_vstream" = auto ; then
8046 _vstream=no
8047 cat > $TMPC <<EOF
8048 #include <vstream-client.h>
8049 void vstream_error(const char *format, ... ) {}
8050 int main(void) { vstream_start(); return 0; }
8052 cc_check -lvstream-client && _vstream=yes
8054 if test "$_vstream" = yes ; then
8055 def_vstream='#define CONFIG_VSTREAM 1'
8056 inputmodules="vstream $inputmodules"
8057 extra_ldflags="$extra_ldflags -lvstream-client"
8058 else
8059 _noinputmodules="vstream $_noinputmodules"
8060 def_vstream='#undef CONFIG_VSTREAM'
8062 echores "$_vstream"
8065 echocheck "OSD menu"
8066 if test "$_menu" = yes ; then
8067 def_menu='#define CONFIG_MENU 1'
8068 test $_dvbin = "yes" && _menu_dvbin=yes
8069 else
8070 def_menu='#undef CONFIG_MENU'
8071 _menu_dvbin=no
8073 echores "$_menu"
8076 echocheck "Subtitles sorting"
8077 if test "$_sortsub" = yes ; then
8078 def_sortsub='#define CONFIG_SORTSUB 1'
8079 else
8080 def_sortsub='#undef CONFIG_SORTSUB'
8082 echores "$_sortsub"
8085 echocheck "XMMS inputplugin support"
8086 if test "$_xmms" = yes ; then
8087 if ( xmms-config --version ) >/dev/null 2>&1 ; then
8088 _xmmsplugindir=$(xmms-config --input-plugin-dir)
8089 _xmmslibdir=$(xmms-config --exec-prefix)/lib
8090 else
8091 _xmmsplugindir=/usr/lib/xmms/Input
8092 _xmmslibdir=/usr/lib
8095 def_xmms='#define CONFIG_XMMS 1'
8096 if darwin ; then
8097 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
8098 else
8099 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
8101 else
8102 def_xmms='#undef CONFIG_XMMS'
8104 echores "$_xmms"
8107 # --------------- GUI specific tests begin -------------------
8108 echocheck "GUI"
8109 echo "$_gui"
8110 if test "$_gui" = yes ; then
8112 # Required libraries
8113 if test "$_libavcodec" != yes ||
8114 ! echo $_libavdecoders | grep -q PNG_DECODER ; then
8115 die "The GUI requires libavcodec with PNG support (needs zlib)."
8117 test "$_freetype" = no && test "$_bitmap_font" = no && \
8118 die "The GUI requires either FreeType or bitmap font support."
8119 if ! win32 ; then
8120 _gui_gtk=yes
8121 test "$_x11" != yes && die "X11 support required for GUI compilation."
8123 echocheck "XShape extension"
8124 if test "$_xshape" = auto ; then
8125 _xshape=no
8126 cat > $TMPC << EOF
8127 #include <X11/Xlib.h>
8128 #include <X11/Xproto.h>
8129 #include <X11/Xutil.h>
8130 #include <X11/extensions/shape.h>
8131 #include <stdlib.h>
8132 int main(void) {
8133 char *name = ":0.0";
8134 Display *wsDisplay;
8135 int exitvar = 0;
8136 int eventbase, errorbase;
8137 if (getenv("DISPLAY"))
8138 name=getenv("DISPLAY");
8139 wsDisplay=XOpenDisplay(name);
8140 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
8141 exitvar=1;
8142 XCloseDisplay(wsDisplay);
8143 return exitvar;
8146 cc_check -lXext && _xshape=yes
8148 if test "$_xshape" = yes ; then
8149 def_xshape='#define CONFIG_XSHAPE 1'
8150 else
8151 die "The GUI requires the X11 extension XShape (which was not found)."
8153 echores "$_xshape"
8155 #Check for GTK
8156 if test "$_gtk1" = no ; then
8157 #Check for GTK2 :
8158 echocheck "GTK+ version"
8160 if $_pkg_config gtk+-2.0 --exists ; then
8161 _gtk=$($_pkg_config gtk+-2.0 --modversion 2>/dev/null)
8162 extra_cflags="$extra_cflags $($_pkg_config gtk+-2.0 --cflags 2>/dev/null)"
8163 libs_mplayer="$libs_mplayer $($_pkg_config gtk+-2.0 --libs 2>/dev/null)"
8164 echores "$_gtk"
8166 # Check for GLIB2
8167 if $_pkg_config glib-2.0 --exists ; then
8168 echocheck "glib version"
8169 _glib=$($_pkg_config glib-2.0 --modversion 2>/dev/null)
8170 libs_mplayer="$libs_mplayer $($_pkg_config glib-2.0 --libs 2>/dev/null)"
8171 echores "$_glib"
8173 def_gui='#define CONFIG_GUI 1'
8174 def_gtk2='#define CONFIG_GTK2 1'
8175 else
8176 _gtk1=yes
8177 echo "GLIB-2 devel packages were not found, trying GTK 1.2"
8179 else
8180 echo "GTK-2 devel packages were not found, trying GTK 1.2"
8181 _gtk1=yes
8185 if test "$_gtk1" = yes ; then
8186 # Check for old GTK (1.2.x)
8187 echocheck "GTK version"
8188 if test -z "$_gtkconfig" ; then
8189 if ( gtk-config --version ) >/dev/null 2>&1 ; then
8190 _gtkconfig="gtk-config"
8191 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
8192 _gtkconfig="gtk12-config"
8193 else
8194 die "The GUI requires GTK devel packages (which were not found)."
8197 _gtk=$($_gtkconfig --version 2>&1)
8198 extra_cflags="$extra_cflags $($_gtkconfig --cflags 2>&1)"
8199 libs_mplayer="$libs_mplayer $($_gtkconfig --libs 2>&1)"
8200 echores "$_gtk (using $_gtkconfig)"
8202 # Check for GLIB
8203 echocheck "glib version"
8204 if test -z "$_glibconfig" ; then
8205 if ( glib-config --version ) >/dev/null 2>&1 ; then
8206 _glibconfig="glib-config"
8207 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
8208 _glibconfig="glib12-config"
8209 else
8210 die "The GUI requires GLIB devel packages (which were not found)"
8213 _glib=$($_glibconfig --version 2>&1)
8214 libs_mplayer="$libs_mplayer $($_glibconfig --libs 2>&1)"
8215 echores "$_glib (using $_glibconfig)"
8217 def_gui='#define CONFIG_GUI 1'
8218 def_gtk2='#undef CONFIG_GTK2'
8221 else #if ! win32
8222 _gui_win32=yes
8223 libs_mplayer="$libs_mplayer -lcomdlg32 -lcomctl32 -lshell32 -lkernel32"
8224 def_gui='#define CONFIG_GUI 1'
8225 def_gtk2='#undef CONFIG_GTK2'
8226 fi #if ! win32
8228 else #if test "$_gui"
8229 def_gui='#undef CONFIG_GUI'
8230 def_gtk2='#undef CONFIG_GTK2'
8231 fi #if test "$_gui"
8232 # --------------- GUI specific tests end -------------------
8235 if test "$_charset" != "noconv" ; then
8236 def_charset="#define MSG_CHARSET \"$_charset\""
8237 else
8238 def_charset="#undef MSG_CHARSET"
8239 _charset="UTF-8"
8242 if test -n "$_charset" && test "$_charset" != "UTF-8" ; then
8243 echocheck "iconv program"
8244 iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG"
8245 if test "$?" -ne 0 ; then
8246 echores "no"
8247 echo "No working iconv program found, use "
8248 echo "--charset=UTF-8 to continue anyway."
8249 echo "If you also have problems with iconv library functions use --charset=noconv."
8250 echo "Messages in the GTK-2 interface will be broken then."
8251 exit 1
8252 else
8253 echores "yes"
8257 #############################################################################
8259 echocheck "automatic gdb attach"
8260 if test "$_crash_debug" = yes ; then
8261 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
8262 else
8263 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
8264 _crash_debug=no
8266 echores "$_crash_debug"
8268 echocheck "compiler support for noexecstack"
8269 cat > $TMPC <<EOF
8270 int main(void) { return 0; }
8272 if cc_check -Wl,-z,noexecstack ; then
8273 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
8274 echores "yes"
8275 else
8276 echores "no"
8279 echocheck "linker support for --nxcompat --no-seh --dynamicbase"
8280 if cc_check "-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
8281 extra_ldflags="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
8282 echores "yes"
8283 else
8284 echores "no"
8288 # Dynamic linking flags
8289 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
8290 _ld_dl_dynamic=''
8291 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
8292 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
8293 _ld_dl_dynamic='-rdynamic'
8296 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
8297 bsdos && extra_ldflags="$extra_ldflags -ldvd"
8298 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
8300 def_debug='#undef MP_DEBUG'
8301 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
8304 echocheck "joystick"
8305 def_joystick='#undef CONFIG_JOYSTICK'
8306 if test "$_joystick" = yes ; then
8307 if linux ; then
8308 # TODO add some check
8309 def_joystick='#define CONFIG_JOYSTICK 1'
8310 else
8311 _joystick="no"
8312 res_comment="unsupported under $system_name"
8315 echores "$_joystick"
8317 echocheck "lirc"
8318 if test "$_lirc" = auto ; then
8319 _lirc=no
8320 cat > $TMPC <<EOF
8321 #include <lirc/lirc_client.h>
8322 int main(void) { return 0; }
8324 cc_check -llirc_client && _lirc=yes
8326 if test "$_lirc" = yes ; then
8327 def_lirc='#define CONFIG_LIRC 1'
8328 libs_mplayer="$libs_mplayer -llirc_client"
8329 else
8330 def_lirc='#undef CONFIG_LIRC'
8332 echores "$_lirc"
8334 echocheck "lircc"
8335 if test "$_lircc" = auto ; then
8336 _lircc=no
8337 cat > $TMPC <<EOF
8338 #include <lirc/lircc.h>
8339 int main(void) { return 0; }
8341 cc_check -llircc && _lircc=yes
8343 if test "$_lircc" = yes ; then
8344 def_lircc='#define CONFIG_LIRCC 1'
8345 libs_mplayer="$libs_mplayer -llircc"
8346 else
8347 def_lircc='#undef CONFIG_LIRCC'
8349 echores "$_lircc"
8351 if arm; then
8352 # Detect maemo development platform libraries availability (http://www.maemo.org),
8353 # they are used when run on Nokia 770|8x0
8354 echocheck "maemo (Nokia 770|8x0)"
8355 if test "$_maemo" = auto ; then
8356 _maemo=no
8357 cat > $TMPC << EOF
8358 #include <libosso.h>
8359 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
8361 cc_check $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
8363 if test "$_maemo" = yes ; then
8364 def_maemo='#define CONFIG_MAEMO 1'
8365 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
8366 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
8367 else
8368 def_maemo='#undef CONFIG_MAEMO'
8370 echores "$_maemo"
8373 #############################################################################
8375 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
8376 # the OMF format needs to come after the 'extern symbol prefix' check, which
8377 # uses nm.
8378 if os2 ; then
8379 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
8382 # linker paths should be the same for mencoder and mplayer
8383 _ld_tmp=""
8384 for I in $libs_mplayer ; do
8385 _tmp=$(echo $I | sed -e 's/^-L.*$//')
8386 if test -z "$_tmp" ; then
8387 extra_ldflags="$extra_ldflags $I"
8388 else
8389 _ld_tmp="$_ld_tmp $I"
8391 done
8392 libs_mplayer=$_ld_tmp
8395 #############################################################################
8396 # 64 bit file offsets?
8397 if test "$_largefiles" = yes || freebsd ; then
8398 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
8399 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
8400 # dvdread support requires this (for off64_t)
8401 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
8405 CXXFLAGS=" $CFLAGS -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS"
8407 # This must be the last test to be performed. Any other tests following it
8408 # could fail due to linker errors. libdvdnavmini is intentionally not linked
8409 # against libdvdread (to permit MPlayer to use its own copy of the library).
8410 # So any compilation using the flags added here but not linking against
8411 # libdvdread can fail.
8412 echocheck "DVD support (libdvdnav)"
8413 dvdnav_internal=no
8414 if test "$_dvdnav" = auto ; then
8415 if test "$_dvdread_internal" = yes ; then
8416 _dvdnav=yes
8417 dvdnav_internal=yes
8418 res_comment="internal"
8419 else
8420 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
8423 if test "$_dvdnav" = auto ; then
8424 cat > $TMPC <<EOF
8425 #include <inttypes.h>
8426 #include <dvdnav/dvdnav.h>
8427 int main(void) { dvdnav_t *dvd=0; return 0; }
8429 _dvdnav=no
8430 _dvdnavdir=$($_dvdnavconfig --cflags)
8431 _dvdnavlibs=$($_dvdnavconfig --libs)
8432 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
8434 if test "$_dvdnav" = yes ; then
8435 _largefiles=yes
8436 def_dvdnav='#define CONFIG_DVDNAV 1'
8437 if test "$dvdnav_internal" = yes ; then
8438 cflags_libdvdnav="-Ilibdvdnav"
8439 inputmodules="dvdnav(internal) $inputmodules"
8440 else
8441 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
8442 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
8443 inputmodules="dvdnav $inputmodules"
8445 else
8446 def_dvdnav='#undef CONFIG_DVDNAV'
8447 _noinputmodules="dvdnav $_noinputmodules"
8449 echores "$_dvdnav"
8451 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
8452 # Read dvdnav comment above.
8454 mak_enable () {
8455 list=$(echo $1 | tr '[a-z]' '[A-Z]')
8456 item=$(echo $2 | tr '[a-z]' '[A-Z]')
8457 nprefix=$3;
8458 for part in $list; do
8459 if $(echo $item | grep -q -E "(^| )$part($| )"); then
8460 echo "${nprefix}_$part = yes"
8462 done
8465 #############################################################################
8466 echo "Creating config.mak"
8467 cat > config.mak << EOF
8468 # -------- Generated by configure -----------
8470 # Ensure that locale settings do not interfere with shell commands.
8471 export LC_ALL = C
8473 CONFIGURATION = $_configuration
8475 CHARSET = $_charset
8476 DOC_LANGS = $language_doc
8477 DOC_LANG_ALL = $doc_lang_all
8478 MAN_LANGS = $language_man
8479 MAN_LANG_ALL = $man_lang_all
8481 prefix = \$(DESTDIR)$_prefix
8482 BINDIR = \$(DESTDIR)$_bindir
8483 DATADIR = \$(DESTDIR)$_datadir
8484 LIBDIR = \$(DESTDIR)$_libdir
8485 MANDIR = \$(DESTDIR)$_mandir
8486 CONFDIR = \$(DESTDIR)$_confdir
8488 AR = $_ar
8489 AS = $_cc
8490 CC = $_cc
8491 CXX = $_cc
8492 HOST_CC = $_host_cc
8493 INSTALL = $_install
8494 INSTALLSTRIP = $_install_strip
8495 WINDRES = $_windres
8497 CFLAGS = $CFLAGS $extra_cflags
8498 ASFLAGS = \$(CFLAGS)
8499 CXXFLAGS = $CXXFLAGS $extra_cflags $extra_cxxflags
8501 CFLAGS_DHAHELPER = $cflags_dhahelper
8502 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
8503 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
8504 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
8505 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
8506 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
8507 CFLAGS_STACKREALIGN = $cflags_stackrealign
8508 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
8509 CFLAGS_TREMOR_LOW = $cflags_tremor_low
8511 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
8512 EXTRALIBS_MPLAYER = $libs_mplayer
8513 EXTRALIBS_MENCODER = $libs_mencoder
8515 GETCH = $_getch
8516 HELP_FILE = $_mp_help
8517 TIMER = $_timer
8519 EXESUF = $_exesuf
8520 EXESUFS_ALL = .exe
8522 ARCH = $arch
8523 $(mak_enable "$arch_all" "$arch" ARCH)
8524 $(mak_enable "$subarch_all" "$subarch" ARCH)
8525 $(mak_enable "$cpuexts_all" "$cpuexts" HAVE)
8527 MENCODER = $_mencoder
8528 MPLAYER = $_mplayer
8530 NEED_GETTIMEOFDAY = $_need_gettimeofday
8531 NEED_GLOB = $_need_glob
8532 NEED_MMAP = $_need_mmap
8533 NEED_SETENV = $_need_setenv
8534 NEED_SHMEM = $_need_shmem
8535 NEED_STRSEP = $_need_strsep
8536 NEED_SWAB = $_need_swab
8537 NEED_VSSCANF = $_need_vsscanf
8539 # features
8540 3DFX = $_3dfx
8541 AA = $_aa
8542 ALSA1X = $_alsa1x
8543 ALSA9 = $_alsa9
8544 ALSA5 = $_alsa5
8545 APPLE_IR = $_apple_ir
8546 APPLE_REMOTE = $_apple_remote
8547 ARTS = $_arts
8548 AUDIO_INPUT = $_audio_input
8549 BITMAP_FONT = $_bitmap_font
8550 BL = $_bl
8551 CACA = $_caca
8552 CDDA = $_cdda
8553 CDDB = $_cddb
8554 COREAUDIO = $_coreaudio
8555 COREVIDEO = $_corevideo
8556 DART = $_dart
8557 DFBMGA = $_dfbmga
8558 DGA = $_dga
8559 DIRECT3D = $_direct3d
8560 DIRECTFB = $_directfb
8561 DIRECTX = $_directx
8562 DVBIN = $_dvbin
8563 DVDNAV = $_dvdnav
8564 DVDNAV_INTERNAL = $dvdnav_internal
8565 DVDREAD = $_dvdread
8566 DVDREAD_INTERNAL = $_dvdread_internal
8567 DXR2 = $_dxr2
8568 DXR3 = $_dxr3
8569 ESD = $_esd
8570 FAAC=$_faac
8571 FAAD = $_faad
8572 FAAD_INTERNAL = $_faad_internal
8573 FASTMEMCPY = $_fastmemcpy
8574 FBDEV = $_fbdev
8575 FREETYPE = $_freetype
8576 FTP = $_ftp
8577 GIF = $_gif
8578 GGI = $_ggi
8579 GL = $_gl
8580 GL_WIN32 = $_gl_win32
8581 GL_X11 = $_gl_x11
8582 GL_SDL = $_gl_sdl
8583 MATRIXVIEW = $matrixview
8584 GUI = $_gui
8585 GUI_GTK = $_gui_gtk
8586 GUI_WIN32 = $_gui_win32
8587 HAVE_POSIX_SELECT = $_posix_select
8588 HAVE_SYS_MMAN_H = $_mman
8589 IVTV = $_ivtv
8590 JACK = $_jack
8591 JOYSTICK = $_joystick
8592 JPEG = $_jpeg
8593 KAI = $_kai
8594 KVA = $_kva
8595 LADSPA = $_ladspa
8596 LIBA52 = $_liba52
8597 LIBASS = $_ass
8598 LIBASS_INTERNAL = $ass_internal
8599 LIBBS2B = $_libbs2b
8600 LIBDCA = $_libdca
8601 LIBDV = $_libdv
8602 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
8603 LIBLZO = $_liblzo
8604 LIBMAD = $_mad
8605 LIBMENU = $_menu
8606 LIBMENU_DVBIN = $_menu_dvbin
8607 LIBMPEG2 = $_libmpeg2
8608 LIBNEMESI = $_nemesi
8609 LIBNUT = $_libnut
8610 LIBSMBCLIENT = $_smb
8611 LIBTHEORA = $_theora
8612 LIRC = $_lirc
8613 LIVE555 = $_live
8614 MACOSX_FINDER = $_macosx_finder
8615 MD5SUM = $_md5sum
8616 MGA = $_mga
8617 MNG = $_mng
8618 MP3LAME = $_mp3lame
8619 MP3LIB = $_mp3lib
8620 MUSEPACK = $_musepack
8621 NAS = $_nas
8622 NATIVE_RTSP = $_native_rtsp
8623 NETWORK = $_network
8624 OPENAL = $_openal
8625 OSS = $_ossaudio
8626 PE_EXECUTABLE = $_pe_executable
8627 PNG = $_png
8628 PNM = $_pnm
8629 PRIORITY = $_priority
8630 PULSE = $_pulse
8631 PVR = $_pvr
8632 QTX_CODECS = $_qtx
8633 QTX_CODECS_WIN32 = $_qtx_codecs_win32
8634 QTX_EMULATION = $_qtx_emulation
8635 QUARTZ = $_quartz
8636 RADIO=$_radio
8637 RADIO_CAPTURE=$_radio_capture
8638 REAL_CODECS = $_real
8639 S3FB = $_s3fb
8640 SDL = $_sdl
8641 SPEEX = $_speex
8642 STREAM_CACHE = $_stream_cache
8643 SGIAUDIO = $_sgiaudio
8644 SUNAUDIO = $_sunaudio
8645 SVGA = $_svga
8646 TDFXFB = $_tdfxfb
8647 TDFXVID = $_tdfxvid
8648 TGA = $_tga
8649 TOOLAME=$_toolame
8650 TREMOR_INTERNAL = $_tremor_internal
8651 TV = $_tv
8652 TV_BSDBT848 = $_tv_bsdbt848
8653 TV_DSHOW = $_tv_dshow
8654 TV_V4L = $_tv_v4l
8655 TV_V4L1 = $_tv_v4l1
8656 TV_V4L2 = $_tv_v4l2
8657 TWOLAME=$_twolame
8658 UNRAR_EXEC = $_unrar_exec
8659 V4L2 = $_v4l2
8660 VCD = $_vcd
8661 VDPAU = $_vdpau
8662 VESA = $_vesa
8663 VIDIX = $_vidix
8664 VIDIX_PCIDB = $_vidix_pcidb_val
8665 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
8666 VIDIX_IVTV=$_vidix_drv_ivtv
8667 VIDIX_MACH64=$_vidix_drv_mach64
8668 VIDIX_MGA=$_vidix_drv_mga
8669 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
8670 VIDIX_NVIDIA=$_vidix_drv_nvidia
8671 VIDIX_PM2=$_vidix_drv_pm2
8672 VIDIX_PM3=$_vidix_drv_pm3
8673 VIDIX_RADEON=$_vidix_drv_radeon
8674 VIDIX_RAGE128=$_vidix_drv_rage128
8675 VIDIX_S3=$_vidix_drv_s3
8676 VIDIX_SH_VEU=$_vidix_drv_sh_veu
8677 VIDIX_SIS=$_vidix_drv_sis
8678 VIDIX_UNICHROME=$_vidix_drv_unichrome
8679 VORBIS = $_vorbis
8680 VSTREAM = $_vstream
8681 WII = $_wii
8682 WIN32DLL = $_win32dll
8683 WIN32WAVEOUT = $_win32waveout
8684 WIN32_EMULATION = $_win32_emulation
8685 WINVIDIX = $winvidix
8686 X11 = $_x11
8687 X264 = $_x264
8688 XANIM_CODECS = $_xanim
8689 XMGA = $_xmga
8690 XMMS_PLUGINS = $_xmms
8691 XV = $_xv
8692 XVID4 = $_xvid
8693 XVIDIX = $xvidix
8694 XVMC = $_xvmc
8695 XVR100 = $_xvr100
8696 YUV4MPEG = $_yuv4mpeg
8697 ZR = $_zr
8699 # FFmpeg
8700 LIBAVUTIL = $_libavutil
8701 LIBAVUTIL_A = $_libavutil_a
8702 LIBAVUTIL_SO = $_libavutil_so
8703 LIBAVCODEC = $_libavcodec
8704 LIBAVCODEC_A = $_libavcodec_a
8705 LIBAVCODEC_SO = $_libavcodec_so
8706 LIBAVFORMAT = $_libavformat
8707 LIBAVFORMAT_A = $_libavformat_a
8708 LIBAVFORMAT_SO = $_libavformat_so
8709 LIBPOSTPROC = $_libpostproc
8710 LIBPOSTPROC_A = $_libpostproc_a
8711 LIBPOSTPROC_SO = $_libpostproc_so
8712 LIBSWSCALE = $_libswscale
8713 LIBSWSCALE_A = $_libswscale_a
8714 LIBSWSCALE_SO = $_libswscale_so
8716 HOSTCC = \$(HOST_CC)
8717 HOSTCFLAGS = -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -O3
8718 HOSTLIBS = -lm
8719 CC_O = -o \$@
8720 LD = gcc
8721 RANLIB = $_ranlib
8722 YASM = $_yasm
8723 YASMFLAGS = $YASMFLAGS
8725 CONFIG_STATIC = yes
8726 SRC_PATH = ..
8727 BUILD_ROOT = ..
8728 LIBPREF = lib
8729 LIBSUF = .a
8730 LIBNAME = \$(LIBPREF)\$(NAME)\$(LIBSUF)
8731 FULLNAME = \$(NAME)\$(BUILDSUF)
8733 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
8734 CONFIG_AANDCT = yes
8735 CONFIG_DCT = yes
8736 CONFIG_DWT = yes
8737 CONFIG_FFT = yes
8738 CONFIG_GOLOMB = yes
8739 CONFIG_H264DSP = yes
8740 CONFIG_LPC = yes
8741 CONFIG_LSP = yes
8742 CONFIG_MDCT = yes
8743 CONFIG_RDFT = yes
8745 $mak_hardcoded_tables
8746 $mak_libavcodec_mpegaudio_hp
8747 !CONFIG_LIBRTMP = yes
8749 CONFIG_BZLIB = $bzlib
8750 CONFIG_ENCODERS = yes
8751 CONFIG_GPL = yes
8752 CONFIG_LIBDIRAC_DECODER = $_libdirac_lavc
8753 CONFIG_LIBDIRAC_ENCODER = $_libdirac_lavc
8754 CONFIG_LIBFAAC_ENCODER = $_faac_lavc
8755 CONFIG_LIBMP3LAME_ENCODER = $_mp3lame_lavc
8756 CONFIG_LIBOPENCORE_AMRNB_DECODER = $_libopencore_amrnb
8757 CONFIG_LIBOPENCORE_AMRNB_ENCODER = $_libopencore_amrnb
8758 CONFIG_LIBOPENCORE_AMRWB_DECODER = $_libopencore_amrwb
8759 OCNFIG_LIBOPENJPEG_DECODER = $libopenjpeg
8760 OCNFIG_LIBOPENJPEG_ENCODER = $libopenjpeg
8761 CONFIG_LIBSCHROEDINGER_DECODER = $_libschroedinger_lavc
8762 CONFIG_LIBSCHROEDINGER_ENCODER = $_libschroedinger_lavc
8763 CONFIG_LIBVORBIS_ENCODER = $_libvorbis
8764 CONFIG_LIBX264_ENCODER = $_x264_lavc
8765 CONFIG_LIBXVID_ENCODER = $_xvid_lavc
8766 CONFIG_MLIB = $_mlib
8767 CONFIG_MUXERS = $_mencoder
8768 CONFIG_POSTPROC = yes
8769 CONFIG_VDPAU = $_vdpau
8770 CONFIG_XVMC = $_xvmc
8771 CONFIG_ZLIB = $_zlib
8773 HAVE_PTHREADS = $_pthreads
8774 HAVE_SHM = $_shm
8775 HAVE_W32THREADS = $_w32threads
8776 HAVE_YASM = $have_yasm
8778 $(echo $_libavdecoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8779 $(echo $_libavencoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8780 $(echo $_libavparsers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8781 $(echo $_libavdemuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8782 $(echo $_libavmuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8783 $(echo $_libavprotocols | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8784 $(echo $_libavbsfs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8785 $(echo $_libavhwaccels | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8788 #############################################################################
8790 ff_config_enable () {
8791 list=$(echo $1 | tr '[a-z]' '[A-Z]')
8792 item=$(echo $2 | tr '[a-z]' '[A-Z]')
8793 _nprefix=$3;
8794 test -z "$_nprefix" && _nprefix='CONFIG'
8795 for part in $list; do
8796 if $(echo $item | grep -q -E "(^| )$part($| )"); then
8797 echo "#define ${_nprefix}_$part 1"
8798 else
8799 echo "#define ${_nprefix}_$part 0"
8801 done
8804 echo "Creating config.h"
8805 cat > $TMPH << EOF
8806 /*----------------------------------------------------------------------------
8807 ** This file has been automatically generated by configure any changes in it
8808 ** will be lost when you run configure again.
8809 ** Instead of modifying definitions here, use the --enable/--disable options
8810 ** of the configure script! See ./configure --help for details.
8811 *---------------------------------------------------------------------------*/
8813 #ifndef MPLAYER_CONFIG_H
8814 #define MPLAYER_CONFIG_H
8816 /* Undefine this if you do not want to select mono audio (left or right)
8817 with a stereo MPEG layer 2/3 audio stream. The command line option
8818 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
8819 right-only), with 0 being the default.
8821 #define CONFIG_FAKE_MONO 1
8823 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
8824 #define MAX_OUTBURST 65536
8826 /* set up audio OUTBURST. Do not change this! */
8827 #define OUTBURST 512
8829 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8830 #undef FAST_OSD
8831 #undef FAST_OSD_TABLE
8833 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
8834 #define MPEG12_POSTPROC 1
8835 #define ATTRIBUTE_ALIGNED_MAX 16
8839 #define CONFIGURATION "$_configuration"
8841 #define MPLAYER_DATADIR "$_datadir"
8842 #define MPLAYER_CONFDIR "$_confdir"
8843 #define MPLAYER_LIBDIR "$_libdir"
8845 /* definitions needed by included libraries */
8846 #define HAVE_INTTYPES_H 1
8847 /* libmpeg2 + FFmpeg */
8848 $def_fast_inttypes
8849 /* libdvdcss */
8850 #define HAVE_ERRNO_H 1
8851 /* libdvdcss + libdvdread */
8852 #define HAVE_LIMITS_H 1
8853 /* libdvdcss + libfaad2 */
8854 #define HAVE_UNISTD_H 1
8855 /* libfaad2 + libdvdread */
8856 #define STDC_HEADERS 1
8857 #define HAVE_MEMCPY 1
8858 /* libfaad2 */
8859 #define HAVE_STRING_H 1
8860 #define HAVE_STRINGS_H 1
8861 #define HAVE_SYS_STAT_H 1
8862 #define HAVE_SYS_TYPES_H 1
8863 /* libdvdnav */
8864 #define READ_CACHE_TRACE 0
8865 /* libdvdread */
8866 #define HAVE_DLFCN_H 1
8867 $def_dvdcss
8870 /* system headers */
8871 $def_alloca_h
8872 $def_alsa_asoundlib_h
8873 $def_altivec_h
8874 $def_malloc_h
8875 $def_mman_h
8876 $def_mman_has_map_failed
8877 $def_soundcard_h
8878 $def_sys_asoundlib_h
8879 $def_sys_soundcard_h
8880 $def_sys_sysinfo_h
8881 $def_termios_h
8882 $def_termios_sys_h
8883 $def_winsock2_h
8886 /* system functions */
8887 $def_gethostbyname2
8888 $def_gettimeofday
8889 $def_glob
8890 $def_langinfo
8891 $def_lrintf
8892 $def_map_memalign
8893 $def_memalign
8894 $def_nanosleep
8895 $def_posix_select
8896 $def_select
8897 $def_setenv
8898 $def_setmode
8899 $def_shm
8900 $def_strsep
8901 $def_swab
8902 $def_sysi86
8903 $def_sysi86_iv
8904 $def_termcap
8905 $def_termios
8906 $def_vsscanf
8909 /* system-specific features */
8910 $def_asmalign_pot
8911 $def_builtin_expect
8912 $def_dl
8913 $def_dos_paths
8914 $def_extern_asm
8915 $def_extern_prefix
8916 $def_iconv
8917 $def_kstat
8918 $def_macosx_bundle
8919 $def_macosx_finder
8920 $def_maemo
8921 $def_named_asm_args
8922 $def_priority
8923 $def_quicktime
8924 $def_restrict_keyword
8925 $def_rtc
8926 $def_unrar_exec
8929 /* configurable options */
8930 $def_charset
8931 $def_crash_debug
8932 $def_debug
8933 $def_dynamic_plugins
8934 $def_fastmemcpy
8935 $def_menu
8936 $def_runtime_cpudetection
8937 $def_sighandler
8938 $def_sortsub
8939 $def_stream_cache
8940 $def_pthread_cache
8943 /* CPU stuff */
8944 #define __CPU__ $iproc
8945 $def_words_endian
8946 $def_bigendian
8947 $(ff_config_enable "$arch_all" "$arch" "ARCH")
8948 $(ff_config_enable "$subarch_all" "$subarch" "ARCH")
8949 $(ff_config_enable "$cpuexts_all" "$cpuexts" "HAVE")
8952 /* DVD/VCD/CD */
8953 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
8954 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
8955 $def_bsdi_dvd
8956 $def_cddb
8957 $def_cdio
8958 $def_cdparanoia
8959 $def_cdrom
8960 $def_dvd
8961 $def_dvd_bsd
8962 $def_dvd_darwin
8963 $def_dvd_linux
8964 $def_dvd_openbsd
8965 $def_dvdio
8966 $def_dvdnav
8967 $def_dvdread
8968 $def_hpux_scsi_h
8969 $def_libcdio
8970 $def_sol_scsi_h
8971 $def_vcd
8974 /* codec libraries */
8975 $def_faac
8976 $def_faad
8977 $def_faad_internal
8978 $def_liba52
8979 $def_libdca
8980 $def_libdv
8981 $def_liblzo
8982 $def_libmpeg2
8983 $def_mad
8984 $def_mp3lame
8985 $def_mp3lame_preset
8986 $def_mp3lame_preset_medium
8987 $def_mp3lib
8988 $def_musepack
8989 $def_speex
8990 $def_theora
8991 $def_toolame
8992 $def_tremor
8993 $def_twolame
8994 $def_vorbis
8995 $def_x264
8996 $def_xvid
8997 $def_zlib
8999 $def_libnut
9002 /* binary codecs */
9003 $def_qtx
9004 $def_qtx_win32
9005 $def_real
9006 $def_win32_loader
9007 $def_win32dll
9008 $def_xanim
9009 $def_xmms
9010 #define BINARY_CODECS_PATH "$_codecsdir"
9011 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
9014 /* GUI */
9015 $def_gtk2
9016 $def_gui
9017 $def_xshape
9020 /* Audio output drivers */
9021 $def_alsa
9022 $def_alsa1x
9023 $def_alsa5
9024 $def_alsa9
9025 $def_arts
9026 $def_coreaudio
9027 $def_dart
9028 $def_esd
9029 $def_esd_latency
9030 $def_jack
9031 $def_kai
9032 $def_nas
9033 $def_openal
9034 $def_openal_h
9035 $def_ossaudio
9036 $def_ossaudio_devdsp
9037 $def_ossaudio_devmixer
9038 $def_pulse
9039 $def_sgiaudio
9040 $def_sunaudio
9041 $def_win32waveout
9043 $def_ladspa
9044 $def_libbs2b
9047 /* input */
9048 $def_apple_ir
9049 $def_apple_remote
9050 $def_ioctl_bt848_h_name
9051 $def_ioctl_meteor_h_name
9052 $def_joystick
9053 $def_lirc
9054 $def_lircc
9055 $def_pvr
9056 $def_radio
9057 $def_radio_bsdbt848
9058 $def_radio_capture
9059 $def_radio_v4l
9060 $def_radio_v4l2
9061 $def_tv
9062 $def_tv_bsdbt848
9063 $def_tv_dshow
9064 $def_tv_v4l
9065 $def_tv_v4l1
9066 $def_tv_v4l2
9069 /* font stuff */
9070 $def_ass
9071 $def_ass_internal
9072 $def_bitmap_font
9073 $def_enca
9074 $def_fontconfig
9075 $def_freetype
9076 $def_fribidi
9079 /* networking */
9080 $def_closesocket
9081 $def_ftp
9082 $def_inet6
9083 $def_inet_aton
9084 $def_inet_pton
9085 $def_live
9086 $def_nemesi
9087 $def_network
9088 $def_smb
9089 $def_socklen_t
9090 $def_struct_ipv6_mreq
9091 $def_struct_sockaddr_in6
9092 $def_struct_sockaddr_sa_len
9093 $def_vstream
9094 $def_addrinfo
9095 $def_getaddrinfo
9096 $def_sockaddr_storage
9099 /* libvo options */
9100 $def_3dfx
9101 $def_aa
9102 $def_bl
9103 $def_caca
9104 $def_corevideo
9105 $def_dfbmga
9106 $def_dga
9107 $def_dga1
9108 $def_dga2
9109 $def_direct3d
9110 $def_directfb
9111 $def_directfb_version
9112 $def_directx
9113 $def_dvb
9114 $def_dvbin
9115 $def_dxr2
9116 $def_dxr3
9117 $def_fbdev
9118 $def_ggi
9119 $def_ggiwmh
9120 $def_gif
9121 $def_gif_4
9122 $def_gif_tvt_hack
9123 $def_gl
9124 $def_gl_win32
9125 $def_gl_x11
9126 $def_gl_sdl
9127 $def_matrixview
9128 $def_ivtv
9129 $def_jpeg
9130 $def_kva
9131 $def_md5sum
9132 $def_mga
9133 $def_mng
9134 $def_png
9135 $def_pnm
9136 $def_quartz
9137 $def_s3fb
9138 $def_sdl
9139 $def_sdl_sdl_h
9140 $def_svga
9141 $def_tdfxfb
9142 $def_tdfxvid
9143 $def_tga
9144 $def_v4l2
9145 $def_vdpau
9146 $def_vesa
9147 $def_vidix
9148 $def_vidix_drv_cyberblade
9149 $def_vidix_drv_ivtv
9150 $def_vidix_drv_mach64
9151 $def_vidix_drv_mga
9152 $def_vidix_drv_mga_crtc2
9153 $def_vidix_drv_nvidia
9154 $def_vidix_drv_pm3
9155 $def_vidix_drv_radeon
9156 $def_vidix_drv_rage128
9157 $def_vidix_drv_s3
9158 $def_vidix_drv_sh_veu
9159 $def_vidix_drv_sis
9160 $def_vidix_drv_unichrome
9161 $def_vidix_pfx
9162 $def_vm
9163 $def_wii
9164 $def_x11
9165 $def_xdpms
9166 $def_xf86keysym
9167 $def_xinerama
9168 $def_xmga
9169 $def_xss
9170 $def_xv
9171 $def_xvmc
9172 $def_xvr100
9173 $def_yuv4mpeg
9174 $def_zr
9177 /* FFmpeg */
9178 $def_libavcodec
9179 $def_libavcodec_a
9180 $def_libavcodec_so
9181 $def_libavformat
9182 $def_libavformat_a
9183 $def_libavformat_so
9184 $def_libavutil
9185 $def_libavutil_a
9186 $def_libavutil_so
9187 $def_libpostproc
9188 $def_libpostproc_a
9189 $def_libpostproc_so
9190 $def_libswscale
9191 $def_libswscale_a
9192 $def_libswscale_so
9194 #define CONFIG_DECODERS 1
9195 #define CONFIG_ENCODERS 1
9196 #define CONFIG_DEMUXERS 1
9197 $def_muxers
9199 $def_arpa_inet_h
9200 $def_bswap
9201 $def_bzlib
9202 $def_dcbzl
9203 $def_exp2
9204 $def_exp2f
9205 $def_fast_64bit
9206 $def_fast_unaligned
9207 $def_hardcoded_tables
9208 $def_libavcodec_mpegaudio_hp
9209 $def_llrint
9210 $def_llrintf
9211 $def_local_aligned_8
9212 $def_local_aligned_16
9213 $def_log2
9214 $def_log2f
9215 $def_lrint
9216 $def_memalign_hack
9217 $def_mlib
9218 $def_mkstemp
9219 $def_posix_memalign
9220 $def_pthreads
9221 $def_round
9222 $def_roundf
9223 $def_ten_operands
9224 $def_threads
9225 $def_truncf
9226 $def_xform_asm
9227 $def_yasm
9229 #define CONFIG_FASTDIV 0
9230 #define CONFIG_FFSERVER 0
9231 #define CONFIG_GPL 1
9232 #define CONFIG_GRAY 0
9233 #define CONFIG_LIBRTMP 0
9234 #define CONFIG_LIBVORBIS 0
9235 #define CONFIG_POWERPC_PERF 0
9236 #define CONFIG_SMALL 0
9237 #define CONFIG_SWSCALE_ALPHA 1
9239 #if defined(HAVE_AF_INET6) && (!defined(_WIN32) || defined(__CYGWIN__))
9240 #define CONFIG_IPV6 1
9241 #else
9242 #define CONFIG_IPV6 0
9243 #endif
9245 #define HAVE_ATTRIBUTE_MAY_ALIAS 1
9246 #define av_alias __attribute__((may_alias))
9247 #define HAVE_ATTRIBUTE_PACKED 1
9248 #define HAVE_GETHRTIME 0
9249 #define HAVE_INLINE_ASM 1
9250 #define HAVE_LDBRX 0
9251 #define HAVE_POLL_H 1
9252 #define HAVE_PPC4XX 0
9253 #define HAVE_STRERROR_R 0
9254 #define HAVE_SYS_SELECT_H 0
9255 #define HAVE_VFP_ARGS 1
9256 #define HAVE_VIRTUALALLOC 0
9258 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
9259 #define CONFIG_AANDCT 1
9260 #define CONFIG_DCT 1
9261 #define CONFIG_DWT 1
9262 #define CONFIG_FFT 1
9263 #define CONFIG_GOLOMB 1
9264 #define CONFIG_H264DSP 1
9265 #define CONFIG_LPC 1
9266 #define CONFIG_MDCT 1
9267 #define CONFIG_RDFT 1
9269 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
9270 $def_ebx_available
9271 #ifndef MP_DEBUG
9272 #define HAVE_EBP_AVAILABLE 1
9273 #else
9274 #define HAVE_EBP_AVAILABLE 0
9275 #endif
9277 #define FFMPEG_CONFIGURATION "--enable-gpl --enable-postproc"
9278 #define FFMPEG_LICENSE "GPL version 2 or later"
9280 /* External libraries used through libavcodec. */
9281 $def_faac_lavc
9282 $def_libdirac_lavc
9283 $def_libopencore_amrnb
9284 $def_libopencore_amrwb
9285 $def_libopenjpeg
9286 $def_libschroedinger_lavc
9287 $def_mp3lame_lavc
9288 $def_x264_lavc
9289 $def_xvid_lavc
9291 $(ff_config_enable "$_libavdecoders_all" "$_libavdecoders")
9292 $(ff_config_enable "$_libavencoders_all" "$_libavencoders")
9293 $(ff_config_enable "$_libavparsers_all" "$_libavparsers")
9294 $(ff_config_enable "$_libavdemuxers_all" "$_libavdemuxers")
9295 $(ff_config_enable "$_libavmuxers_all" "$_libavmuxers")
9296 $(ff_config_enable "$_libavprotocols_all" "$_libavprotocols")
9297 $(ff_config_enable "$_libavbsfs_all" "$_libavbsfs")
9298 $(ff_config_enable "$_libavhwaccels_all" "$_libavhwaccels")
9300 #endif /* MPLAYER_CONFIG_H */
9303 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
9304 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
9306 ############################################################################
9308 # Create avconfig.h for FFmpeg.
9309 cat > "$TMPH" << EOF
9310 /* Generated by mpconfigure */
9311 #ifndef AVUTIL_AVCONFIG_H
9312 #define AVUTIL_AVCONFIG_H
9313 $def_av_bigendian
9314 #endif /* AVUTIL_AVCONFIG_H */
9317 # Do not overwrite an unchanged avconfig.h to avoid superfluous rebuilds.
9318 cmp -s "$TMPH" libavutil/avconfig.h || mv -f "$TMPH" libavutil/avconfig.h
9320 #############################################################################
9322 cat << EOF
9324 Config files successfully generated by ./configure $_configuration !
9326 Install prefix: $_prefix
9327 Data directory: $_datadir
9328 Config direct.: $_confdir
9330 Byte order: $_byte_order
9331 Optimizing for: $_optimizing
9333 Languages:
9334 Messages/GUI: $language_msg
9335 Manual pages: $language_man
9336 Documentation: $language_doc
9338 Enabled optional drivers:
9339 Input: $inputmodules
9340 Codecs: $codecmodules
9341 Audio output: $aomodules
9342 Video output: $vomodules
9344 Disabled optional drivers:
9345 Input: $_noinputmodules
9346 Codecs: $nocodecmodules
9347 Audio output: $noaomodules
9348 Video output: $novomodules
9350 'config.h' and 'config.mak' contain your configuration options.
9351 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
9352 compile *** DO NOT REPORT BUGS if you tweak these files ***
9354 'make' will now compile MPlayer and 'make install' will install it.
9355 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
9360 if test "$_mtrr" = yes ; then
9361 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)"
9362 echo
9365 if ! x86_32; then
9366 cat <<EOF
9367 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
9368 operating system ($system_name). You may encounter a few files that cannot
9369 be played due to missing open source video/audio codec support.
9375 cat <<EOF
9376 Check $TMPLOG if you wonder why an autodetection failed (make sure
9377 development headers/packages are installed).
9379 NOTE: The --enable-* parameters unconditionally force options on, completely
9380 skipping autodetection. This behavior is unlike what you may be used to from
9381 autoconf-based configure scripts that can decide to override you. This greater
9382 level of control comes at a price. You may have to provide the correct compiler
9383 and linker flags yourself.
9384 If you used one of these options (except --enable-menu and similar ones that
9385 turn on internal features) and experience a compilation or linking failure,
9386 make sure you have passed the necessary compiler/linker flags to configure.
9388 If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html.
9392 if test "$_warn_CFLAGS" = yes; then
9393 cat <<EOF
9395 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
9396 but:
9398 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
9400 It is strongly recommended to let MPlayer choose the correct CFLAGS!
9401 To do so, execute 'CFLAGS= ./configure <options>'
9406 # Last move:
9407 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"