Move up demux_ogg_sub_id, demux_ogg_sub_reverse_id; avoids forward declarations.
[mplayer/glamo.git] / configure
blobab3a347746f5c57f5f5906494ed964284b55a7ee
1 #! /bin/sh
3 # Original version (C) 2000 Pontscho/fresh!mindworkz
4 # pontscho@makacs.poliod.hu
6 # History / Contributors: Check the Subversion log.
8 # Cleanups all over the place (c) 2001 pl
11 # This configure script is *not* autoconf-based and has different semantics.
12 # It attempts to autodetect all settings and options where possible. It is
13 # possible to override autodetection with the --enable-option/--disable-option
14 # command line parameters. --enable-option forces the option on skipping
15 # autodetection. Yes, this means that compilation may fail and yes, this is not
16 # how autoconf-based configure scripts behave.
18 # configure generates a series of configuration files:
19 # - config.h contains #defines that are used in the C code.
20 # - config.mak is included from the Makefiles.
22 # If you want to add a new check for $feature, here is a simple skeleton:
24 # echocheck "$feature"
25 # if test "$_feature" = auto; then
26 # cat > $TMPC << EOF
27 # #include <feature.h>
28 # int main(void) { return 0; }
29 # EOF
30 # _feature=no
31 # cc_check && _feature=yes
32 # fi
33 # if test "$_feature" = yes ; then
34 # def_feature='#define CONFIG_FEATURE 1'
35 # else
36 # def_feature='#undef CONFIG_FEATURE'
37 # fi
38 # echores "$_feature"
40 # Furthermore you need to add the variable _feature to the list of default
41 # settings and set it to one of yes/no/auto. Also add appropriate
42 # --enable-feature/--disable-feature command line options.
43 # The results of the check should be written to config.h and config.mak
44 # at the end of this script. The variable names used for this should be
45 # uniform, i.e. if the option is named 'feature':
47 # _feature : should have a value of yes/no/auto
48 # def_feature : '#define ... 1' or '#undef ...' for conditional compilation
49 # _ld_feature : '-L/path/dir -lfeature' GCC options
51 #############################################################################
53 # Prevent locale nonsense from breaking basic text processing utils
54 export LC_ALL=C
56 # Store the configure line that was used
57 _configuration="$*"
59 # Prefer these macros to full length text !
60 # These macros only return an error code - NO display is done
61 compile_check() {
62 echo >> "$TMPLOG"
63 cat "$1" >> "$TMPLOG"
64 echo >> "$TMPLOG"
65 echo "$_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o $TMPEXE $@" >> "$TMPLOG"
66 rm -f "$TMPEXE"
67 $_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1
68 TMPRES="$?"
69 echo >> "$TMPLOG"
70 echo >> "$TMPLOG"
71 return "$TMPRES"
74 cc_check() {
75 compile_check $TMPC $@
78 cxx_check() {
79 compile_check $TMPCPP $@ -lstdc++
82 yasm_check() {
83 echo >> "$TMPLOG"
84 cat "$TMPS" >> "$TMPLOG"
85 echo >> "$TMPLOG"
86 echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
87 rm -f "$TMPEXE"
88 $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
89 TMPRES="$?"
90 echo >> "$TMPLOG"
91 echo >> "$TMPLOG"
92 return "$TMPRES"
95 tmp_run() {
96 "$TMPEXE" >> "$TMPLOG" 2>&1
99 # Display error message, flushes tempfile, exit
100 die () {
101 echo
102 echo "Error: $@" >&2
103 echo >&2
104 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
105 echo "Check \"$TMPLOG\" if you do not understand why it failed."
106 exit 1
109 # OS test booleans functions
110 issystem() {
111 test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
113 aix() { issystem "AIX"; }
114 amigaos() { issystem "AmigaOS"; }
115 beos() { issystem "BEOS"; }
116 bsdos() { issystem "BSD/OS"; }
117 cygwin() { issystem "CYGWIN"; }
118 darwin() { issystem "Darwin"; }
119 dragonfly() { issystem "DragonFly"; }
120 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; }
121 gnu() { issystem "GNU"; }
122 hpux() { issystem "HP-UX"; }
123 irix() { issystem "IRIX"; }
124 linux() { issystem "Linux"; }
125 mingw32() { issystem "MINGW32"; }
126 morphos() { issystem "MorphOS"; }
127 netbsd() { issystem "NetBSD"; }
128 openbsd() { issystem "OpenBSD"; }
129 os2() { issystem "OS/2"; }
130 qnx() { issystem "QNX"; }
131 sunos() { issystem "SunOS"; }
132 win32() { cygwin || mingw32; }
134 # arch test boolean functions
135 # x86/x86pc is used by QNX
136 x86_32() {
137 case "$host_arch" in
138 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
139 *) return 1 ;;
140 esac
143 x86_64() {
144 case "$host_arch" in
145 x86_64|amd64) return 0 ;;
146 *) return 1 ;;
147 esac
150 x86() {
151 x86_32 || x86_64
154 ppc() {
155 case "$host_arch" in
156 ppc|ppc64|powerpc|powerpc64) return 0;;
157 *) return 1;;
158 esac
161 alpha() {
162 case "$host_arch" in
163 alpha*) return 0;;
164 *) return 1;;
165 esac
168 arm() {
169 case "$host_arch" in
170 arm*) return 0;;
171 *) return 1;;
172 esac
175 # Use this before starting a check
176 echocheck() {
177 echo "============ Checking for $@ ============" >> "$TMPLOG"
178 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
181 # Use this to echo the results of a check
182 echores() {
183 if test "$_res_comment" ; then
184 _res_comment="($_res_comment)"
186 echo "Result is: $@ $_res_comment" >> "$TMPLOG"
187 echo "##########################################" >> "$TMPLOG"
188 echo "" >> "$TMPLOG"
189 echo "$@ $_res_comment"
190 _res_comment=""
192 #############################################################################
194 # Check how echo works in this /bin/sh
195 case $(echo -n) in
196 -n) _echo_n= _echo_c='\c' ;; # SysV echo
197 *) _echo_n='-n ' _echo_c= ;; # BSD echo
198 esac
200 msg_lang_all=$(echo help/help_mp-??.h help/help_mp-??_??.h | sed -e "s:help/help_mp-\(..\).h:\1:g" -e "s:help/help_mp-\(.....\).h:\1:g")
201 man_lang_all=$(echo DOCS/man/??/mplayer.1 DOCS/man/??_??/mplayer.1 | sed -e "s:DOCS/man/\(..\)/mplayer.1:\1:g" -e "s:DOCS/man/\(.._..\)/mplayer.1:\1:g")
202 doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
204 show_help(){
205 cat << EOF
206 Usage: $0 [OPTIONS]...
208 Configuration:
209 -h, --help display this help and exit
211 Installation directories:
212 --prefix=DIR prefix directory for installation [/usr/local]
213 --bindir=DIR directory for installing binaries [PREFIX/bin]
214 --datadir=DIR directory for installing machine independent
215 data files (skins, etc) [PREFIX/share/mplayer]
216 --mandir=DIR directory for installing man pages [PREFIX/share/man]
217 --confdir=DIR directory for installing configuration files
218 [PREFIX/etc/mplayer]
219 --libdir=DIR directory for object code libraries [PREFIX/lib]
220 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
221 --win32codecsdir=DIR directory for Windows DLLs [LIBDIR/codecs]
222 --xanimcodecsdir=DIR directory for XAnim codecs [LIBDIR/codecs]
223 --realcodecsdir=DIR directory for RealPlayer codecs [LIBDIR/codecs]
225 Optional features:
226 --disable-mencoder disable MEncoder (A/V encoder) compilation [enable]
227 --disable-mplayer disable MPlayer compilation [enable]
228 --enable-gui enable GMPlayer compilation (GTK+ GUI) [disable]
229 --enable-gtk1 force using GTK 1.2 for the GUI [disable]
230 --disable-largefiles disable support for files > 2GB [enable]
231 --enable-linux-devfs set default devices to devfs [disable]
232 --enable-termcap use termcap database for key codes [autodetect]
233 --enable-termios use termios database for key codes [autodetect]
234 --disable-iconv disable iconv for encoding conversion [autodetect]
235 --disable-langinfo do not use langinfo [autodetect]
236 --enable-lirc enable LIRC (remote control) support [autodetect]
237 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
238 --enable-joystick enable joystick support [disable]
239 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
240 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
241 --disable-vm disable X video mode extensions [autodetect]
242 --disable-xf86keysym disable support for multimedia keys [autodetect]
243 --enable-radio enable radio interface [disable]
244 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
245 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
246 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
247 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
248 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
249 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
250 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
251 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
252 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
253 --disable-network disable networking [enable]
254 --enable-winsock2_h enable winsock2_h [autodetect]
255 --enable-smb enable Samba (SMB) input [autodetect]
256 --enable-live enable LIVE555 Streaming Media [autodetect]
257 --enable-nemesi enable Nemesi Streaming Media [autodetect]
258 --disable-vcd disable VCD support [autodetect]
259 --disable-dvdnav disable libdvdnav [autodetect]
260 --disable-dvdread disable libdvdread [autodetect]
261 --disable-dvdread-internal disable internal libdvdread [autodetect]
262 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
263 --disable-cdparanoia disable cdparanoia [autodetect]
264 --disable-cddb disable cddb [autodetect]
265 --disable-bitmap-font disable bitmap font support [enable]
266 --disable-freetype disable FreeType 2 font rendering [autodetect]
267 --disable-fontconfig disable fontconfig font lookup [autodetect]
268 --disable-unrarexec disable using of UnRAR executable [enabled]
269 --enable-menu enable OSD menu (not DVD menu) [disabled]
270 --disable-sortsub disable subtitle sorting [enabled]
271 --enable-fribidi enable the FriBiDi libs [autodetect]
272 --disable-enca disable ENCA charset oracle library [autodetect]
273 --disable-maemo disable maemo specific features [autodetect]
274 --enable-macosx-finder enable Mac OS X Finder invocation parameter
275 parsing [disabled]
276 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
277 --disable-inet6 disable IPv6 support [autodetect]
278 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
279 --disable-ftp disable FTP support [enabled]
280 --disable-vstream disable TiVo vstream client support [autodetect]
281 --disable-pthreads disable Posix threads support [autodetect]
282 --disable-w32threads disable Win32 threads support [autodetect]
283 --disable-ass-internal disable internal SSA/ASS subtitle support [autodetect]
284 --disable-ass disable SSA/ASS subtitle support [autodetect]
285 --enable-rpath enable runtime linker path for extra libs [disabled]
287 Codecs:
288 --enable-gif enable GIF support [autodetect]
289 --enable-png enable PNG input/output support [autodetect]
290 --enable-mng enable MNG input support [autodetect]
291 --enable-jpeg enable JPEG input/output support [autodetect]
292 --enable-libcdio enable libcdio support [autodetect]
293 --enable-liblzo enable liblzo support [autodetect]
294 --disable-win32dll disable Win32 DLL support [enabled]
295 --disable-qtx disable QuickTime codecs support [enabled]
296 --disable-xanim disable XAnim codecs support [enabled]
297 --disable-real disable RealPlayer codecs support [enabled]
298 --disable-xvid disable Xvid [autodetect]
299 --disable-xvid-lavc disable Xvid in libavcodec [autodetect]
300 --disable-x264 disable x264 [autodetect]
301 --disable-x264-lavc disable x264 in libavcodec [autodetect]
302 --disable-libdirac-lavc disable Dirac in libavcodec [autodetect]
303 --disable-libschroedinger-lavc disable Dirac in libavcodec (Schroedinger
304 decoder) [autodetect]
305 --disable-libnut disable libnut [autodetect]
306 --disable-libavutil_a disable static libavutil [autodetect]
307 --disable-libavcodec_a disable static libavcodec [autodetect]
308 --disable-libavformat_a disable static libavformat [autodetect]
309 --disable-libpostproc_a disable static libpostproc [autodetect]
310 --disable-libswscale_a disable static libswscale [autodetect]
311 --disable-libavutil_so disable shared libavutil [autodetect]
312 --disable-libavcodec_so disable shared libavcodec [autodetect]
313 --disable-libavformat_so disable shared libavformat [autodetect]
314 --disable-libpostproc_so disable shared libpostproc [autodetect]
315 --disable-libswscale_so disable shared libswscale [autodetect]
316 --disable-libavcodec_mpegaudio_hp disable high precision audio decoding
317 in libavcodec [enabled]
318 --disable-tremor-internal disable internal Tremor [enabled]
319 --enable-tremor-low enable lower accuracy internal Tremor [disabled]
320 --enable-tremor enable external Tremor [autodetect]
321 --disable-libvorbis disable libvorbis support [autodetect]
322 --disable-speex disable Speex support [autodetect]
323 --enable-theora enable OggTheora libraries [autodetect]
324 --enable-faad enable external FAAD2 (AAC) [autodetect]
325 --disable-faad-internal disable internal FAAD2 (AAC) [autodetect]
326 --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled]
327 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
328 --disable-faac-lavc disable support for FAAC in libavcodec [autodetect]
329 --disable-ladspa disable LADSPA plugin support [autodetect]
330 --disable-libbs2b disable libbs2b audio filter support [autodetect]
331 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
332 --disable-mad disable libmad (MPEG audio) support [autodetect]
333 --disable-mp3lame disable LAME MP3 encoding support [autodetect]
334 --disable-mp3lame-lavc disable LAME in libavcodec [autodetect]
335 --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect]
336 --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect]
337 --enable-xmms enable XMMS input plugin support [disabled]
338 --enable-libdca enable libdca support [autodetect]
339 --disable-mp3lib disable builtin mp3lib [autodetect]
340 --disable-liba52 disable liba52 [autodetect]
341 --enable-liba52-internal enable builtin liba52 [disabled]
342 --disable-libmpeg2 disable builtin libmpeg2 [autodetect]
343 --disable-musepack disable musepack support [autodetect]
344 --disable-libopencore_amrnb disable libopencore_amr narrowband [autodetect]
345 --disable-libopencore_amrwb disable libopencore_amr wideband [autodetect]
346 --disable-libopenjpeg disable OpenJPEG (JPEG2000) input/output support [autodetect]
347 --disable-decoder=DECODER disable specified FFmpeg decoder
348 --enable-decoder=DECODER enable specified FFmpeg decoder
349 --disable-encoder=ENCODER disable specified FFmpeg encoder
350 --enable-encoder=ENCODER enable specified FFmpeg encoder
351 --disable-parser=PARSER disable specified FFmpeg parser
352 --enable-parser=PARSER enable specified FFmpeg parser
353 --disable-protocol=PROTO disable specified FFmpeg protocol
354 --enable-protocol=PROTO enable specified FFmpeg protocol
355 --disable-demuxer=DEMUXER disable specified FFmpeg demuxer
356 --enable-demuxer=DEMUXER enable specified FFmpeg demuxer
357 --disable-muxer=MUXER disable specified FFmpeg muxer
358 --enable-muxer=MUXER enable specified FFmpeg muxer
360 Video output:
361 --disable-vidix disable VIDIX [for x86 *nix]
362 --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
363 Available: cyberblade,ivtv,mach64,mga,mga_crtc2,
364 nvidia,pm2,pm3,radeon,rage128,s3,sis,unichrome
365 --disable-vidix-pcidb disable VIDIX PCI device name database
366 --enable-dhahelper enable VIDIX dhahelper support
367 --enable-svgalib_helper enable VIDIX svgalib_helper support
368 --enable-gl enable OpenGL video output [autodetect]
369 --disable-matrixview disable OpenGL MatrixView video output [autodetect]
370 --enable-dga2 enable DGA 2 support [autodetect]
371 --enable-dga1 enable DGA 1 support [autodetect]
372 --enable-vesa enable VESA video output [autodetect]
373 --enable-svga enable SVGAlib video output [autodetect]
374 --enable-sdl enable SDL video output [autodetect]
375 --enable-kva enable KVA video output [autodetect]
376 --enable-aa enable AAlib video output [autodetect]
377 --enable-caca enable CACA video output [autodetect]
378 --enable-ggi enable GGI video output [autodetect]
379 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
380 --enable-direct3d enable Direct3D video output [autodetect]
381 --enable-directx enable DirectX video output [autodetect]
382 --enable-dxr2 enable DXR2 video output [autodetect]
383 --enable-dxr3 enable DXR3/H+ video output [autodetect]
384 --enable-ivtv enable IVTV TV-Out video output [autodetect]
385 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
386 --enable-dvb enable DVB video output [autodetect]
387 --enable-dvbhead enable DVB video output (HEAD version) [autodetect]
388 --enable-mga enable mga_vid video output [autodetect]
389 --enable-xmga enable mga_vid X11 video output [autodetect]
390 --enable-xv enable Xv video output [autodetect]
391 --enable-xvmc enable XvMC acceleration [disable]
392 --enable-vdpau enable VDPAU acceleration [autodetect]
393 --enable-vm enable XF86VidMode support [autodetect]
394 --enable-xinerama enable Xinerama support [autodetect]
395 --enable-x11 enable X11 video output [autodetect]
396 --enable-xshape enable XShape support [autodetect]
397 --disable-xss disable screensaver support via xss [autodetect]
398 --enable-fbdev enable FBDev video output [autodetect]
399 --enable-mlib enable mediaLib video output (Solaris) [disable]
400 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
401 --enable-tdfxfb enable tdfxfb video output [disable]
402 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
403 --enable-wii enable Nintendo Wii/GameCube video output [disable]
404 --enable-directfb enable DirectFB video output [autodetect]
405 --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect]
406 --enable-bl enable Blinkenlights video output [disable]
407 --enable-tdfxvid enable tdfx_vid video output [disable]
408 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
409 --disable-tga disable Targa video output [enable]
410 --disable-pnm disable PNM video output [enable]
411 --disable-md5sum disable md5sum video output [enable]
412 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
413 --disable-corevideo disable CoreVideo video output [autodetect]
414 --disable-quartz disable Quartz video output [autodetect]
416 Audio output:
417 --disable-alsa disable ALSA audio output [autodetect]
418 --disable-ossaudio disable OSS audio output [autodetect]
419 --disable-arts disable aRts audio output [autodetect]
420 --disable-esd disable esd audio output [autodetect]
421 --disable-pulse disable Pulseaudio audio output [autodetect]
422 --disable-jack disable JACK audio output [autodetect]
423 --disable-openal disable OpenAL audio output [autodetect]
424 --disable-nas disable NAS audio output [autodetect]
425 --disable-sgiaudio disable SGI audio output [autodetect]
426 --disable-sunaudio disable Sun audio output [autodetect]
427 --disable-kai disable KAI audio output [autodetect]
428 --disable-dart disable DART audio output [autodetect]
429 --disable-win32waveout disable Windows waveout audio output [autodetect]
430 --disable-coreaudio disable CoreAudio audio output [autodetect]
431 --disable-select disable using select() on the audio device [enable]
433 Language options:
434 --charset=charset convert the console messages to this character set
435 --language-doc=lang language to use for the documentation [en]
436 --language-man=lang language to use for the man pages [en]
437 --language-msg=lang language to use for the messages and the GUI [en]
438 --language=lang default language to use [en]
439 Specific options override --language. You can pass a list of languages separated
440 by whitespace or commas instead of a single language. Nonexisting translations
441 will be dropped from each list. All documentation and man page translations
442 available in the list will be installed, for the messages the first available
443 translation will be used. The value "all" will activate all translations. The
444 LINGUAS environment variable is honored. In all cases the fallback is English.
445 Available values are: all $msg_lang_all
447 Miscellaneous options:
448 --enable-runtime-cpudetection enable runtime CPU detection [disable]
449 --enable-cross-compile enable cross-compilation [autodetect]
450 --cc=COMPILER C compiler to build MPlayer [gcc]
451 --host-cc=COMPILER C compiler for tools needed while building [gcc]
452 --as=ASSEMBLER assembler to build MPlayer [as]
453 --nm=NM nm tool to build MPlayer [nm]
454 --yasm=YASM Yasm assembler to build MPlayer [yasm]
455 --ar=AR librarian to build MPlayer [ar]
456 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
457 --windres=WINDRES windres to build MPlayer [windres]
458 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
459 --enable-static build a statically linked binary
460 --with-install=PATH path to a custom install program
462 Advanced options:
463 --enable-mmx enable MMX [autodetect]
464 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
465 --enable-3dnow enable 3DNow! [autodetect]
466 --enable-3dnowext enable extended 3DNow! [autodetect]
467 --enable-sse enable SSE [autodetect]
468 --enable-sse2 enable SSE2 [autodetect]
469 --enable-ssse3 enable SSSE3 [autodetect]
470 --enable-shm enable shm [autodetect]
471 --enable-altivec enable AltiVec (PowerPC) [autodetect]
472 --enable-armv5te enable DSP extensions (ARM) [autodetect]
473 --enable-armv6 enable ARMv6 (ARM) [autodetect]
474 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
475 --enable-armvfp enable ARM VFP (ARM) [autodetect]
476 --enable-neon enable NEON (ARM) [autodetect]
477 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
478 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
479 --enable-hardcoded-tables put tables in binary instead of calculating them at startup [disable]
480 --enable-big-endian force byte order to big-endian [autodetect]
481 --enable-debug[=1-3] compile-in debugging information [disable]
482 --enable-profile compile-in profiling information [disable]
483 --disable-sighandler disable sighandler for crashes [enable]
484 --enable-crash-debug enable automatic gdb attach on crash [disable]
485 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
487 Use these options if autodetection fails:
488 --extra-cflags=FLAGS extra CFLAGS
489 --extra-ldflags=FLAGS extra LDFLAGS
490 --extra-libs=FLAGS extra linker flags
491 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
492 --extra-libs-mencoder=FLAGS extra linker flags for MEncoder
493 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
495 --with-freetype-config=PATH path to freetype-config
496 --with-fribidi-config=PATH path to fribidi-config
497 --with-glib-config=PATH path to glib*-config
498 --with-gtk-config=PATH path to gtk*-config
499 --with-sdl-config=PATH path to sdl*-config
500 --with-dvdnav-config=PATH path to dvdnav-config
501 --with-dvdread-config=PATH path to dvdread-config
503 This configure script is NOT autoconf-based, even though its output is similar.
504 It will try to autodetect all configuration options. If you --enable an option
505 it will be forcefully turned on, skipping autodetection. This can break
506 compilation, so you need to know what you are doing.
508 exit 0
509 } #show_help()
511 # GOTCHA: the variables below defines the default behavior for autodetection
512 # and have - unless stated otherwise - at least 2 states : yes no
513 # If autodetection is available then the third state is: auto
514 _mmx=auto
515 _3dnow=auto
516 _3dnowext=auto
517 _mmxext=auto
518 _sse=auto
519 _sse2=auto
520 _ssse3=auto
521 _cmov=auto
522 _fast_cmov=auto
523 _fast_clz=auto
524 _armv5te=auto
525 _armv6=auto
526 _armv6t2=auto
527 _armvfp=auto
528 neon=auto
529 _iwmmxt=auto
530 _mtrr=auto
531 _altivec=auto
532 _install=install
533 _ranlib=ranlib
534 _windres=windres
535 _cc=cc
536 _ar=ar
537 test "$CC" && _cc="$CC"
538 _as=auto
539 _nm=auto
540 _yasm=yasm
541 _runtime_cpudetection=no
542 _cross_compile=auto
543 _prefix="/usr/local"
544 _libavutil_a=auto
545 _libavutil_so=auto
546 _libavcodec_a=auto
547 _libopencore_amrnb=auto
548 _libopencore_amrwb=auto
549 libopenjpeg=auto
550 _libavdecoders_all=$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
551 _libavdecoders=$(echo $_libavdecoders_all | sed -e 's/ LIB[A-Z0-9_]*_DECODER//g' -e s/MPEG4AAC_DECODER//)
552 _libavencoders_all=$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
553 _libavencoders=$(echo $_libavencoders_all | sed -e 's/ LIB[A-Z0-9_]*_ENCODER//g' -e s/AAC_ENCODER//)
554 _libavparsers_all=$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
555 _libavparsers=$_libavparsers_all
556 _libavbsfs_all=$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
557 _libavbsfs=$_libavbsfs_all
558 _libavhwaccels_all=$(sed -n 's/^[^#]*HWACCEL.*(.*, *\(.*\)).*/\1_hwaccel/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
559 # Disable all hardware accelerators for now.
560 _libavhwaccels=
561 _libavdemuxers_all=$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
562 _libavdemuxers=$(echo $_libavdemuxers_all | sed -e 's/ LIB[A-Z0-9_]*_DEMUXER//g' -e s/REDIR_DEMUXER// -e s/AVISYNTH_DEMUXER//)
563 _libavmuxers_all=$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
564 _libavmuxers=$(echo $_libavmuxers_all | sed -e 's/ LIB[A-Z0-9_]*_MUXER//g' -e s/RTP_MUXER//)
565 _libavprotocols_all=$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
566 _libavprotocols=$_libavprotocols_all
567 _libavcodec_so=auto
568 _libavformat_a=auto
569 _libavformat_so=auto
570 _libpostproc_a=auto
571 _libpostproc_so=auto
572 _libswscale_a=auto
573 _libswscale_so=auto
574 _libavcodec_mpegaudio_hp=yes
575 _mencoder=yes
576 _mplayer=yes
577 _x11=auto
578 _xshape=auto
579 _xss=auto
580 _dga1=auto
581 _dga2=auto
582 _xv=auto
583 _xvmc=no #auto when complete
584 _vdpau=auto
585 _sdl=auto
586 _kva=auto
587 _direct3d=auto
588 _directx=auto
589 _win32waveout=auto
590 _nas=auto
591 _png=auto
592 _mng=auto
593 _jpeg=auto
594 _pnm=yes
595 _md5sum=yes
596 _yuv4mpeg=yes
597 _gif=auto
598 _gl=auto
599 matrixview=yes
600 _ggi=auto
601 _ggiwmh=auto
602 _aa=auto
603 _caca=auto
604 _svga=auto
605 _vesa=auto
606 _fbdev=auto
607 _dvb=auto
608 _dvbhead=auto
609 _dxr2=auto
610 _dxr3=auto
611 _ivtv=auto
612 _v4l2=auto
613 _iconv=auto
614 _langinfo=auto
615 _rtc=auto
616 _ossaudio=auto
617 _arts=auto
618 _esd=auto
619 _pulse=auto
620 _jack=auto
621 _kai=auto
622 _dart=auto
623 _openal=auto
624 _libcdio=auto
625 _liblzo=auto
626 _mad=auto
627 _mp3lame=auto
628 _mp3lame_lavc=auto
629 _toolame=auto
630 _twolame=auto
631 _tremor=auto
632 _tremor_internal=yes
633 _tremor_low=no
634 _libvorbis=auto
635 _speex=auto
636 _theora=auto
637 _mp3lib=auto
638 _liba52=auto
639 _liba52_internal=no
640 _libdca=auto
641 _libmpeg2=auto
642 _faad=auto
643 _faad_internal=auto
644 _faad_fixed=no
645 _faac=auto
646 _faac_lavc=auto
647 _ladspa=auto
648 _libbs2b=auto
649 _xmms=no
650 _vcd=auto
651 _dvdnav=auto
652 _dvdnavconfig=dvdnav-config
653 _dvdreadconfig=dvdread-config
654 _dvdread=auto
655 _dvdread_internal=auto
656 _libdvdcss_internal=auto
657 _xanim=auto
658 _real=auto
659 _live=auto
660 _nemesi=auto
661 _native_rtsp=yes
662 _xinerama=auto
663 _mga=auto
664 _xmga=auto
665 _vm=auto
666 _xf86keysym=auto
667 _mlib=no #broken, thus disabled
668 _sgiaudio=auto
669 _sunaudio=auto
670 _alsa=auto
671 _fastmemcpy=yes
672 hardcoded_tables=no
673 _unrar_exec=auto
674 _win32dll=auto
675 _select=yes
676 _radio=no
677 _radio_capture=no
678 _radio_v4l=auto
679 _radio_v4l2=auto
680 _radio_bsdbt848=auto
681 _tv=yes
682 _tv_v4l1=auto
683 _tv_v4l2=auto
684 _tv_bsdbt848=auto
685 _tv_dshow=auto
686 _pvr=auto
687 _network=yes
688 _winsock2_h=auto
689 _struct_addrinfo=auto
690 _getaddrinfo=auto
691 _struct_sockaddr_storage=auto
692 _smb=auto
693 _vidix=auto
694 _vidix_pcidb=yes
695 _dhahelper=no
696 _svgalib_helper=no
697 _joystick=no
698 _xvid=auto
699 _xvid_lavc=auto
700 _x264=auto
701 _x264_lavc=auto
702 _libdirac_lavc=auto
703 _libschroedinger_lavc=auto
704 _libnut=auto
705 _lirc=auto
706 _lircc=auto
707 _apple_remote=auto
708 _apple_ir=auto
709 _gui=no
710 _gtk1=no
711 _termcap=auto
712 _termios=auto
713 _3dfx=no
714 _s3fb=no
715 _wii=no
716 _tdfxfb=no
717 _tdfxvid=no
718 _xvr100=auto
719 _tga=yes
720 _directfb=auto
721 _zr=auto
722 _bl=no
723 _largefiles=yes
724 #language=en
725 _shm=auto
726 _linux_devfs=no
727 _charset="UTF-8"
728 _dynamic_plugins=no
729 _crash_debug=no
730 _sighandler=yes
731 _libdv=auto
732 _cdparanoia=auto
733 _cddb=auto
734 _big_endian=auto
735 _bitmap_font=yes
736 _freetype=auto
737 _fontconfig=auto
738 _menu=no
739 _qtx=auto
740 _maemo=auto
741 _coreaudio=auto
742 _corevideo=auto
743 _quartz=auto
744 quicktime=auto
745 _macosx_finder=no
746 _macosx_bundle=auto
747 _sortsub=yes
748 _freetypeconfig='freetype-config'
749 _fribidi=auto
750 _fribidiconfig='fribidi-config'
751 _enca=auto
752 _inet6=auto
753 _gethostbyname2=auto
754 _ftp=yes
755 _musepack=auto
756 _vstream=auto
757 _pthreads=auto
758 _w32threads=auto
759 _ass=auto
760 ass_internal=yes
761 _rpath=no
762 _asmalign_pot=auto
763 _stream_cache=yes
764 _priority=no
765 def_dos_paths="#define HAVE_DOS_PATHS 0"
766 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
767 def_priority="#undef CONFIG_PRIORITY"
768 def_pthread_cache="#undef PTHREAD_CACHE"
769 _need_shmem=yes
770 for ac_option do
771 case "$ac_option" in
772 --help|-help|-h)
773 show_help
775 --prefix=*)
776 _prefix=$(echo $ac_option | cut -d '=' -f 2)
778 --bindir=*)
779 _bindir=$(echo $ac_option | cut -d '=' -f 2)
781 --datadir=*)
782 _datadir=$(echo $ac_option | cut -d '=' -f 2)
784 --mandir=*)
785 _mandir=$(echo $ac_option | cut -d '=' -f 2)
787 --confdir=*)
788 _confdir=$(echo $ac_option | cut -d '=' -f 2)
790 --libdir=*)
791 _libdir=$(echo $ac_option | cut -d '=' -f 2)
793 --codecsdir=*)
794 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
796 --win32codecsdir=*)
797 _win32codecsdir=$(echo $ac_option | cut -d '=' -f 2)
799 --xanimcodecsdir=*)
800 _xanimcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
802 --realcodecsdir=*)
803 _realcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
806 --with-install=*)
807 _install=$(echo $ac_option | cut -d '=' -f 2 )
809 --with-xvmclib=*)
810 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
813 --with-sdl-config=*)
814 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
816 --with-freetype-config=*)
817 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
819 --with-fribidi-config=*)
820 _fribidiconfig=$(echo $ac_option | cut -d '=' -f 2)
822 --with-gtk-config=*)
823 _gtkconfig=$(echo $ac_option | cut -d '=' -f 2)
825 --with-glib-config=*)
826 _glibconfig=$(echo $ac_option | cut -d '=' -f 2)
828 --with-dvdnav-config=*)
829 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
831 --with-dvdread-config=*)
832 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
835 --extra-cflags=*)
836 extra_cflags=$(echo $ac_option | cut -d '=' -f 2-)
838 --extra-ldflags=*)
839 extra_ldflags=$(echo $ac_option | cut -d '=' -f 2-)
841 --extra-libs=*)
842 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
844 --extra-libs-mplayer=*)
845 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
847 --extra-libs-mencoder=*)
848 libs_mencoder=$(echo $ac_option | cut -d '=' -f 2)
851 --target=*)
852 _target=$(echo $ac_option | cut -d '=' -f 2)
854 --cc=*)
855 _cc=$(echo $ac_option | cut -d '=' -f 2)
857 --host-cc=*)
858 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
860 --as=*)
861 _as=$(echo $ac_option | cut -d '=' -f 2)
863 --nm=*)
864 _nm=$(echo $ac_option | cut -d '=' -f 2)
866 --yasm=*)
867 _yasm=$(echo $ac_option | cut -d '=' -f 2)
869 --ar=*)
870 _ar=$(echo $ac_option | cut -d '=' -f 2)
872 --ranlib=*)
873 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
875 --windres=*)
876 _windres=$(echo $ac_option | cut -d '=' -f 2)
878 --charset=*)
879 _charset=$(echo $ac_option | cut -d '=' -f 2)
881 --language-doc=*)
882 language_doc=$(echo $ac_option | cut -d '=' -f 2)
884 --language-man=*)
885 language_man=$(echo $ac_option | cut -d '=' -f 2)
887 --language-msg=*)
888 language_msg=$(echo $ac_option | cut -d '=' -f 2)
890 --language=*)
891 language=$(echo $ac_option | cut -d '=' -f 2)
894 --enable-static)
895 _ld_static='-static'
897 --disable-static)
898 _ld_static=''
900 --enable-profile)
901 _profile='-p'
903 --disable-profile)
904 _profile=
906 --enable-debug)
907 _debug='-g'
909 --enable-debug=*)
910 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
912 --disable-debug)
913 _debug=
915 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
916 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
917 --enable-cross-compile) _cross_compile=yes ;;
918 --disable-cross-compile) _cross_compile=no ;;
919 --enable-mencoder) _mencoder=yes ;;
920 --disable-mencoder) _mencoder=no ;;
921 --enable-mplayer) _mplayer=yes ;;
922 --disable-mplayer) _mplayer=no ;;
923 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
924 --disable-dynamic-plugins) _dynamic_plugins=no ;;
925 --enable-x11) _x11=yes ;;
926 --disable-x11) _x11=no ;;
927 --enable-xshape) _xshape=yes ;;
928 --disable-xshape) _xshape=no ;;
929 --enable-xss) _xss=yes ;;
930 --disable-xss) _xss=no ;;
931 --enable-xv) _xv=yes ;;
932 --disable-xv) _xv=no ;;
933 --enable-xvmc) _xvmc=yes ;;
934 --disable-xvmc) _xvmc=no ;;
935 --enable-vdpau) _vdpau=yes ;;
936 --disable-vdpau) _vdpau=no ;;
937 --enable-sdl) _sdl=yes ;;
938 --disable-sdl) _sdl=no ;;
939 --enable-kva) _kva=yes ;;
940 --disable-kva) _kva=no ;;
941 --enable-direct3d) _direct3d=yes ;;
942 --disable-direct3d) _direct3d=no ;;
943 --enable-directx) _directx=yes ;;
944 --disable-directx) _directx=no ;;
945 --enable-win32waveout) _win32waveout=yes ;;
946 --disable-win32waveout) _win32waveout=no ;;
947 --enable-nas) _nas=yes ;;
948 --disable-nas) _nas=no ;;
949 --enable-png) _png=yes ;;
950 --disable-png) _png=no ;;
951 --enable-mng) _mng=yes ;;
952 --disable-mng) _mng=no ;;
953 --enable-jpeg) _jpeg=yes ;;
954 --disable-jpeg) _jpeg=no ;;
955 --enable-libopenjpeg) libopenjpeg=yes ;;
956 --disable-libopenjpeg)libopenjpeg=no ;;
957 --enable-pnm) _pnm=yes ;;
958 --disable-pnm) _pnm=no ;;
959 --enable-md5sum) _md5sum=yes ;;
960 --disable-md5sum) _md5sum=no ;;
961 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
962 --disable-yuv4mpeg) _yuv4mpeg=no ;;
963 --enable-gif) _gif=yes ;;
964 --disable-gif) _gif=no ;;
965 --enable-gl) _gl=yes ;;
966 --disable-gl) _gl=no ;;
967 --enable-matrixview) matrixview=yes ;;
968 --disable-matrixview) matrixview=no ;;
969 --enable-ggi) _ggi=yes ;;
970 --disable-ggi) _ggi=no ;;
971 --enable-ggiwmh) _ggiwmh=yes ;;
972 --disable-ggiwmh) _ggiwmh=no ;;
973 --enable-aa) _aa=yes ;;
974 --disable-aa) _aa=no ;;
975 --enable-caca) _caca=yes ;;
976 --disable-caca) _caca=no ;;
977 --enable-svga) _svga=yes ;;
978 --disable-svga) _svga=no ;;
979 --enable-vesa) _vesa=yes ;;
980 --disable-vesa) _vesa=no ;;
981 --enable-fbdev) _fbdev=yes ;;
982 --disable-fbdev) _fbdev=no ;;
983 --enable-dvb) _dvb=yes ;;
984 --disable-dvb) _dvb=no ;;
985 --enable-dvbhead) _dvbhead=yes ;;
986 --disable-dvbhead) _dvbhead=no ;;
987 --enable-dxr2) _dxr2=yes ;;
988 --disable-dxr2) _dxr2=no ;;
989 --enable-dxr3) _dxr3=yes ;;
990 --disable-dxr3) _dxr3=no ;;
991 --enable-ivtv) _ivtv=yes ;;
992 --disable-ivtv) _ivtv=no ;;
993 --enable-v4l2) _v4l2=yes ;;
994 --disable-v4l2) _v4l2=no ;;
995 --enable-iconv) _iconv=yes ;;
996 --disable-iconv) _iconv=no ;;
997 --enable-langinfo) _langinfo=yes ;;
998 --disable-langinfo) _langinfo=no ;;
999 --enable-rtc) _rtc=yes ;;
1000 --disable-rtc) _rtc=no ;;
1001 --enable-libdv) _libdv=yes ;;
1002 --disable-libdv) _libdv=no ;;
1003 --enable-ossaudio) _ossaudio=yes ;;
1004 --disable-ossaudio) _ossaudio=no ;;
1005 --enable-arts) _arts=yes ;;
1006 --disable-arts) _arts=no ;;
1007 --enable-esd) _esd=yes ;;
1008 --disable-esd) _esd=no ;;
1009 --enable-pulse) _pulse=yes ;;
1010 --disable-pulse) _pulse=no ;;
1011 --enable-jack) _jack=yes ;;
1012 --disable-jack) _jack=no ;;
1013 --enable-openal) _openal=yes ;;
1014 --disable-openal) _openal=no ;;
1015 --enable-kai) _kai=yes ;;
1016 --disable-kai) _kai=no ;;
1017 --enable-dart) _dart=yes ;;
1018 --disable-dart) _dart=no ;;
1019 --enable-mad) _mad=yes ;;
1020 --disable-mad) _mad=no ;;
1021 --enable-mp3lame) _mp3lame=yes ;;
1022 --disable-mp3lame) _mp3lame=no ;;
1023 --enable-mp3lame-lavc) _mp3lame_lavc=yes ;;
1024 --disable-mp3lame-lavc) _mp3lame_lavc=no ;;
1025 --enable-toolame) _toolame=yes ;;
1026 --disable-toolame) _toolame=no ;;
1027 --enable-twolame) _twolame=yes ;;
1028 --disable-twolame) _twolame=no ;;
1029 --enable-libcdio) _libcdio=yes ;;
1030 --disable-libcdio) _libcdio=no ;;
1031 --enable-liblzo) _liblzo=yes ;;
1032 --disable-liblzo) _liblzo=no ;;
1033 --enable-libvorbis) _libvorbis=yes ;;
1034 --disable-libvorbis) _libvorbis=no ;;
1035 --enable-speex) _speex=yes ;;
1036 --disable-speex) _speex=no ;;
1037 --enable-tremor) _tremor=yes ;;
1038 --disable-tremor) _tremor=no ;;
1039 --enable-tremor-internal) _tremor_internal=yes ;;
1040 --disable-tremor-internal) _tremor_internal=no ;;
1041 --enable-tremor-low) _tremor_low=yes ;;
1042 --disable-tremor-low) _tremor_low=no ;;
1043 --enable-theora) _theora=yes ;;
1044 --disable-theora) _theora=no ;;
1045 --enable-mp3lib) _mp3lib=yes ;;
1046 --disable-mp3lib) _mp3lib=no ;;
1047 --enable-liba52-internal) _liba52_internal=yes ;;
1048 --disable-liba52-internal) _liba52_internal=no ;;
1049 --enable-liba52) _liba52=yes ;;
1050 --disable-liba52) _liba52=no ;;
1051 --enable-libdca) _libdca=yes ;;
1052 --disable-libdca) _libdca=no ;;
1053 --enable-libmpeg2) _libmpeg2=yes ;;
1054 --disable-libmpeg2) _libmpeg2=no ;;
1055 --enable-musepack) _musepack=yes ;;
1056 --disable-musepack) _musepack=no ;;
1057 --enable-faad) _faad=yes ;;
1058 --disable-faad) _faad=no ;;
1059 --enable-faad-internal) _faad_internal=yes ;;
1060 --disable-faad-internal) _faad_internal=no ;;
1061 --enable-faad-fixed) _faad_fixed=yes ;;
1062 --disable-faad-fixed) _faad_fixed=no ;;
1063 --enable-faac) _faac=yes ;;
1064 --disable-faac) _faac=no ;;
1065 --enable-faac-lavc) _faac_lavc=yes ;;
1066 --disable-faac-lavc) _faac_lavc=no ;;
1067 --enable-ladspa) _ladspa=yes ;;
1068 --disable-ladspa) _ladspa=no ;;
1069 --enable-libbs2b) _libbs2b=yes ;;
1070 --disable-libbs2b) _libbs2b=no ;;
1071 --enable-xmms) _xmms=yes ;;
1072 --disable-xmms) _xmms=no ;;
1073 --enable-vcd) _vcd=yes ;;
1074 --disable-vcd) _vcd=no ;;
1075 --enable-dvdread) _dvdread=yes ;;
1076 --disable-dvdread) _dvdread=no ;;
1077 --enable-dvdread-internal) _dvdread_internal=yes ;;
1078 --disable-dvdread-internal) _dvdread_internal=no ;;
1079 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
1080 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
1081 --enable-dvdnav) _dvdnav=yes ;;
1082 --disable-dvdnav) _dvdnav=no ;;
1083 --enable-xanim) _xanim=yes ;;
1084 --disable-xanim) _xanim=no ;;
1085 --enable-real) _real=yes ;;
1086 --disable-real) _real=no ;;
1087 --enable-live) _live=yes ;;
1088 --disable-live) _live=no ;;
1089 --enable-nemesi) _nemesi=yes ;;
1090 --disable-nemesi) _nemesi=no ;;
1091 --enable-xinerama) _xinerama=yes ;;
1092 --disable-xinerama) _xinerama=no ;;
1093 --enable-mga) _mga=yes ;;
1094 --disable-mga) _mga=no ;;
1095 --enable-xmga) _xmga=yes ;;
1096 --disable-xmga) _xmga=no ;;
1097 --enable-vm) _vm=yes ;;
1098 --disable-vm) _vm=no ;;
1099 --enable-xf86keysym) _xf86keysym=yes ;;
1100 --disable-xf86keysym) _xf86keysym=no ;;
1101 --enable-mlib) _mlib=yes ;;
1102 --disable-mlib) _mlib=no ;;
1103 --enable-sunaudio) _sunaudio=yes ;;
1104 --disable-sunaudio) _sunaudio=no ;;
1105 --enable-sgiaudio) _sgiaudio=yes ;;
1106 --disable-sgiaudio) _sgiaudio=no ;;
1107 --enable-alsa) _alsa=yes ;;
1108 --disable-alsa) _alsa=no ;;
1109 --enable-tv) _tv=yes ;;
1110 --disable-tv) _tv=no ;;
1111 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1112 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1113 --enable-tv-v4l1) _tv_v4l1=yes ;;
1114 --disable-tv-v4l1) _tv_v4l1=no ;;
1115 --enable-tv-v4l2) _tv_v4l2=yes ;;
1116 --disable-tv-v4l2) _tv_v4l2=no ;;
1117 --enable-tv-dshow) _tv_dshow=yes ;;
1118 --disable-tv-dshow) _tv_dshow=no ;;
1119 --enable-radio) _radio=yes ;;
1120 --enable-radio-capture) _radio_capture=yes ;;
1121 --disable-radio-capture) _radio_capture=no ;;
1122 --disable-radio) _radio=no ;;
1123 --enable-radio-v4l) _radio_v4l=yes ;;
1124 --disable-radio-v4l) _radio_v4l=no ;;
1125 --enable-radio-v4l2) _radio_v4l2=yes ;;
1126 --disable-radio-v4l2) _radio_v4l2=no ;;
1127 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1128 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1129 --enable-pvr) _pvr=yes ;;
1130 --disable-pvr) _pvr=no ;;
1131 --enable-fastmemcpy) _fastmemcpy=yes ;;
1132 --disable-fastmemcpy) _fastmemcpy=no ;;
1133 --enable-hardcoded-tables) hardcoded_tables=yes ;;
1134 --disable-hardcoded-tables) hardcoded_tables=no ;;
1135 --enable-network) _network=yes ;;
1136 --disable-network) _network=no ;;
1137 --enable-winsock2_h) _winsock2_h=yes ;;
1138 --disable-winsock2_h) _winsock2_h=no ;;
1139 --enable-smb) _smb=yes ;;
1140 --disable-smb) _smb=no ;;
1141 --enable-vidix) _vidix=yes ;;
1142 --disable-vidix) _vidix=no ;;
1143 --with-vidix-drivers=*)
1144 _vidix_drivers=$(echo $ac_option | cut -d '=' -f 2)
1146 --disable-vidix-pcidb) _vidix_pcidb=no ;;
1147 --enable-dhahelper) _dhahelper=yes ;;
1148 --disable-dhahelper) _dhahelper=no ;;
1149 --enable-svgalib_helper) _svgalib_helper=yes ;;
1150 --disable-svgalib_helper) _svgalib_helper=no ;;
1151 --enable-joystick) _joystick=yes ;;
1152 --disable-joystick) _joystick=no ;;
1153 --enable-xvid) _xvid=yes ;;
1154 --disable-xvid) _xvid=no ;;
1155 --enable-xvid-lavc) _xvid_lavc=yes ;;
1156 --disable-xvid-lavc) _xvid_lavc=no ;;
1157 --enable-x264) _x264=yes ;;
1158 --disable-x264) _x264=no ;;
1159 --enable-x264-lavc) _x264_lavc=yes ;;
1160 --disable-x264-lavc) _x264_lavc=no ;;
1161 --enable-libdirac-lavc) _libdirac_lavc=yes ;;
1162 --disable-libdirac-lavc) _libdirac_lavc=no ;;
1163 --enable-libschroedinger-lavc) _libschroedinger_lavc=yes ;;
1164 --disable-libschroedinger-lavc) _libschroedinger_lavc=no ;;
1165 --enable-libnut) _libnut=yes ;;
1166 --disable-libnut) _libnut=no ;;
1167 --enable-libavutil_a) _libavutil_a=yes ;;
1168 --disable-libavutil_a) _libavutil_a=no ;;
1169 --enable-libavutil_so) _libavutil_so=yes ;;
1170 --disable-libavutil_so) _libavutil_so=no ;;
1171 --enable-libavcodec_a) _libavcodec_a=yes ;;
1172 --disable-libavcodec_a) _libavcodec_a=no ;;
1173 --enable-libavcodec_so) _libavcodec_so=yes ;;
1174 --disable-libavcodec_so) _libavcodec_so=no ;;
1175 --enable-libopencore_amrnb) _libopencore_amrnb=yes ;;
1176 --disable-libopencore_amrnb) _libopencore_amrnb=no ;;
1177 --enable-libopencore_amrwb) _libopencore_amrwb=yes ;;
1178 --disable-libopencore_amrwb) _libopencore_amrwb=no ;;
1179 --enable-decoder=*) _libavdecoders="$_libavdecoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1180 --disable-decoder=*) _libavdecoders=$(echo $_libavdecoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1181 --enable-encoder=*) _libavencoders="$_libavencoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1182 --disable-encoder=*) _libavencoders=$(echo $_libavencoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1183 --enable-parser=*) _libavparsers="$_libavparsers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1184 --disable-parser=*) _libavparsers=$(echo $_libavparsers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1185 --enable-protocol=*) _libavprotocols="$_libavprotocols $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1186 --disable-protocol=*) _libavprotocols=$(echo $_libavprotocols | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1187 --enable-demuxer=*) _libavdemuxers="$_libavdemuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1188 --disable-demuxer=*) _libavdemuxers=$(echo $_libavdemuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1189 --enable-muxer=*) _libavmuxers="$_libavmuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1190 --disable-muxer=*) _libavmuxers=$(echo $_libavmuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1191 --enable-libavformat_a) _libavformat_a=yes ;;
1192 --disable-libavformat_a) _libavformat_a=no ;;
1193 --enable-libavformat_so) _libavformat_so=yes ;;
1194 --disable-libavformat_so) _libavformat_so=no ;;
1195 --enable-libpostproc_a) _libpostproc_a=yes ;;
1196 --disable-libpostproc_a) _libpostproc_a=no ;;
1197 --enable-libpostproc_so) _libpostproc_so=yes ;;
1198 --disable-libpostproc_so) _libpostproc_so=no ;;
1199 --enable-libswscale_a) _libswscale_a=yes ;;
1200 --disable-libswscale_a) _libswscale_a=no ;;
1201 --enable-libswscale_so) _libswscale_so=yes ;;
1202 --disable-libswscale_so) _libswscale_so=no ;;
1203 --enable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=yes ;;
1204 --disable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=no ;;
1206 --enable-lirc) _lirc=yes ;;
1207 --disable-lirc) _lirc=no ;;
1208 --enable-lircc) _lircc=yes ;;
1209 --disable-lircc) _lircc=no ;;
1210 --enable-apple-remote) _apple_remote=yes ;;
1211 --disable-apple-remote) _apple_remote=no ;;
1212 --enable-apple-ir) _apple_ir=yes ;;
1213 --disable-apple-ir) _apple_ir=no ;;
1214 --enable-gui) _gui=yes ;;
1215 --disable-gui) _gui=no ;;
1216 --enable-gtk1) _gtk1=yes ;;
1217 --disable-gtk1) _gtk1=no ;;
1218 --enable-termcap) _termcap=yes ;;
1219 --disable-termcap) _termcap=no ;;
1220 --enable-termios) _termios=yes ;;
1221 --disable-termios) _termios=no ;;
1222 --enable-3dfx) _3dfx=yes ;;
1223 --disable-3dfx) _3dfx=no ;;
1224 --enable-s3fb) _s3fb=yes ;;
1225 --disable-s3fb) _s3fb=no ;;
1226 --enable-wii) _wii=yes ;;
1227 --disable-wii) _wii=no ;;
1228 --enable-tdfxfb) _tdfxfb=yes ;;
1229 --disable-tdfxfb) _tdfxfb=no ;;
1230 --disable-tdfxvid) _tdfxvid=no ;;
1231 --enable-tdfxvid) _tdfxvid=yes ;;
1232 --disable-xvr100) _xvr100=no ;;
1233 --enable-xvr100) _xvr100=yes ;;
1234 --disable-tga) _tga=no ;;
1235 --enable-tga) _tga=yes ;;
1236 --enable-directfb) _directfb=yes ;;
1237 --disable-directfb) _directfb=no ;;
1238 --enable-zr) _zr=yes ;;
1239 --disable-zr) _zr=no ;;
1240 --enable-bl) _bl=yes ;;
1241 --disable-bl) _bl=no ;;
1242 --enable-mtrr) _mtrr=yes ;;
1243 --disable-mtrr) _mtrr=no ;;
1244 --enable-largefiles) _largefiles=yes ;;
1245 --disable-largefiles) _largefiles=no ;;
1246 --enable-shm) _shm=yes ;;
1247 --disable-shm) _shm=no ;;
1248 --enable-select) _select=yes ;;
1249 --disable-select) _select=no ;;
1250 --enable-linux-devfs) _linux_devfs=yes ;;
1251 --disable-linux-devfs) _linux_devfs=no ;;
1252 --enable-cdparanoia) _cdparanoia=yes ;;
1253 --disable-cdparanoia) _cdparanoia=no ;;
1254 --enable-cddb) _cddb=yes ;;
1255 --disable-cddb) _cddb=no ;;
1256 --enable-big-endian) _big_endian=yes ;;
1257 --disable-big-endian) _big_endian=no ;;
1258 --enable-bitmap-font) _bitmap_font=yes ;;
1259 --disable-bitmap-font) _bitmap_font=no ;;
1260 --enable-freetype) _freetype=yes ;;
1261 --disable-freetype) _freetype=no ;;
1262 --enable-fontconfig) _fontconfig=yes ;;
1263 --disable-fontconfig) _fontconfig=no ;;
1264 --enable-unrarexec) _unrar_exec=yes ;;
1265 --disable-unrarexec) _unrar_exec=no ;;
1266 --enable-ftp) _ftp=yes ;;
1267 --disable-ftp) _ftp=no ;;
1268 --enable-vstream) _vstream=yes ;;
1269 --disable-vstream) _vstream=no ;;
1270 --enable-pthreads) _pthreads=yes ;;
1271 --disable-pthreads) _pthreads=no ;;
1272 --enable-w32threads) _w32threads=yes ;;
1273 --disable-w32threads) _w32threads=no ;;
1274 --enable-ass) _ass=yes ;;
1275 --disable-ass) _ass=no ;;
1276 --enable-ass-internal) ass_internal=yes ;;
1277 --disable-ass-internal) ass_internal=no ;;
1278 --enable-rpath) _rpath=yes ;;
1279 --disable-rpath) _rpath=no ;;
1281 --enable-fribidi) _fribidi=yes ;;
1282 --disable-fribidi) _fribidi=no ;;
1284 --enable-enca) _enca=yes ;;
1285 --disable-enca) _enca=no ;;
1287 --enable-inet6) _inet6=yes ;;
1288 --disable-inet6) _inet6=no ;;
1290 --enable-gethostbyname2) _gethostbyname2=yes ;;
1291 --disable-gethostbyname2) _gethostbyname2=no ;;
1293 --enable-dga1) _dga1=yes ;;
1294 --disable-dga1) _dga1=no ;;
1295 --enable-dga2) _dga2=yes ;;
1296 --disable-dga2) _dga2=no ;;
1298 --enable-menu) _menu=yes ;;
1299 --disable-menu) _menu=no ;;
1301 --enable-qtx) _qtx=yes ;;
1302 --disable-qtx) _qtx=no ;;
1304 --enable-coreaudio) _coreaudio=yes ;;
1305 --disable-coreaudio) _coreaudio=no ;;
1306 --enable-corevideo) _corevideo=yes ;;
1307 --disable-corevideo) _corevideo=no ;;
1308 --enable-quartz) _quartz=yes ;;
1309 --disable-quartz) _quartz=no ;;
1310 --enable-macosx-finder) _macosx_finder=yes ;;
1311 --disable-macosx-finder) _macosx_finder=no ;;
1312 --enable-macosx-bundle) _macosx_bundle=yes ;;
1313 --disable-macosx-bundle) _macosx_bundle=no ;;
1315 --enable-maemo) _maemo=yes ;;
1316 --disable-maemo) _maemo=no ;;
1318 --enable-sortsub) _sortsub=yes ;;
1319 --disable-sortsub) _sortsub=no ;;
1321 --enable-crash-debug) _crash_debug=yes ;;
1322 --disable-crash-debug) _crash_debug=no ;;
1323 --enable-sighandler) _sighandler=yes ;;
1324 --disable-sighandler) _sighandler=no ;;
1325 --enable-win32dll) _win32dll=yes ;;
1326 --disable-win32dll) _win32dll=no ;;
1328 --enable-sse) _sse=yes ;;
1329 --disable-sse) _sse=no ;;
1330 --enable-sse2) _sse2=yes ;;
1331 --disable-sse2) _sse2=no ;;
1332 --enable-ssse3) _ssse3=yes ;;
1333 --disable-ssse3) _ssse3=no ;;
1334 --enable-mmxext) _mmxext=yes ;;
1335 --disable-mmxext) _mmxext=no ;;
1336 --enable-3dnow) _3dnow=yes ;;
1337 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1338 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1339 --disable-3dnowext) _3dnowext=no ;;
1340 --enable-cmov) _cmov=yes ;;
1341 --disable-cmov) _cmov=no ;;
1342 --enable-fast-cmov) _fast_cmov=yes ;;
1343 --disable-fast-cmov) _fast_cmov=no ;;
1344 --enable-fast-clz) _fast_clz=yes ;;
1345 --disable-fast-clz) _fast_clz=no ;;
1346 --enable-altivec) _altivec=yes ;;
1347 --disable-altivec) _altivec=no ;;
1348 --enable-armv5te) _armv5te=yes ;;
1349 --disable-armv5te) _armv5te=no ;;
1350 --enable-armv6) _armv6=yes ;;
1351 --disable-armv6) _armv6=no ;;
1352 --enable-armv6t2) _armv6t2=yes ;;
1353 --disable-armv6t2) _armv6t2=no ;;
1354 --enable-armvfp) _armvfp=yes ;;
1355 --disable-armvfp) _armvfp=no ;;
1356 --enable-neon) neon=yes ;;
1357 --disable-neon) neon=no ;;
1358 --enable-iwmmxt) _iwmmxt=yes ;;
1359 --disable-iwmmxt) _iwmmxt=no ;;
1360 --enable-mmx) _mmx=yes ;;
1361 --disable-mmx) # 3Dnow! and MMX2 require MMX
1362 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1365 echo "Unknown parameter: $ac_option"
1366 exit 1
1369 esac
1370 done
1372 # Atmos: moved this here, to be correct, if --prefix is specified
1373 test -z "$_bindir" && _bindir="$_prefix/bin"
1374 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1375 test -z "$_mandir" && _mandir="$_prefix/share/man"
1376 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1377 test -z "$_libdir" && _libdir="$_prefix/lib"
1379 # Determine our OS name and CPU architecture
1380 if test -z "$_target" ; then
1381 # OS name
1382 system_name=$(uname -s 2>&1)
1383 case "$system_name" in
1384 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1386 Haiku)
1387 system_name=BeOS
1389 IRIX*)
1390 system_name=IRIX
1392 GNU/kFreeBSD)
1393 system_name=FreeBSD
1395 HP-UX*)
1396 system_name=HP-UX
1398 [cC][yY][gG][wW][iI][nN]*)
1399 system_name=CYGWIN
1401 MINGW32*)
1402 system_name=MINGW32
1404 OS/2*)
1405 system_name=OS/2
1408 system_name="$system_name-UNKNOWN"
1410 esac
1413 # host's CPU/instruction set
1414 host_arch=$(uname -p 2>&1)
1415 case "$host_arch" in
1416 i386|sparc|ppc|alpha|arm|mips|vax)
1418 powerpc) # Darwin returns 'powerpc'
1419 host_arch=ppc
1421 *) # uname -p on Linux returns 'unknown' for the processor type,
1422 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1424 # Maybe uname -m (machine hardware name) returns something we
1425 # recognize.
1427 # x86/x86pc is used by QNX
1428 case "$(uname -m 2>&1)" in
1429 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 ;;
1430 ia64) host_arch=ia64 ;;
1431 macppc|ppc) host_arch=ppc ;;
1432 ppc64) host_arch=ppc64 ;;
1433 alpha) host_arch=alpha ;;
1434 sparc) host_arch=sparc ;;
1435 sparc64) host_arch=sparc64 ;;
1436 parisc*|hppa*|9000*) host_arch=hppa ;;
1437 arm*|zaurus|cats) host_arch=arm ;;
1438 sh3|sh4|sh4a) host_arch=sh ;;
1439 s390) host_arch=s390 ;;
1440 s390x) host_arch=s390x ;;
1441 *mips*) host_arch=mips ;;
1442 vax) host_arch=vax ;;
1443 xtensa*) host_arch=xtensa ;;
1444 *) host_arch=UNKNOWN ;;
1445 esac
1447 esac
1448 else # if test -z "$_target"
1449 system_name=$(echo $_target | cut -d '-' -f 2)
1450 case "$(echo $system_name | tr A-Z a-z)" in
1451 linux) system_name=Linux ;;
1452 freebsd) system_name=FreeBSD ;;
1453 gnu/kfreebsd) system_name=FreeBSD ;;
1454 netbsd) system_name=NetBSD ;;
1455 bsd/os) system_name=BSD/OS ;;
1456 openbsd) system_name=OpenBSD ;;
1457 dragonfly) system_name=DragonFly ;;
1458 sunos) system_name=SunOS ;;
1459 qnx) system_name=QNX ;;
1460 morphos) system_name=MorphOS ;;
1461 amigaos) system_name=AmigaOS ;;
1462 mingw32*) system_name=MINGW32 ;;
1463 esac
1464 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1465 host_arch=$(echo $_target | cut -d '-' -f 1)
1466 if test $(echo $host_arch) != "x86_64" ; then
1467 host_arch=$(echo $host_arch | tr '_' '-')
1471 extra_cflags="-I. $extra_cflags"
1472 _timer=timer-linux.c
1473 _getch=getch2.c
1474 if freebsd ; then
1475 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1476 extra_cflags="$extra_cflags -I/usr/local/include"
1479 if netbsd || dragonfly ; then
1480 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1481 extra_cflags="$extra_cflags -I/usr/pkg/include"
1484 if darwin; then
1485 extra_cflags="-mdynamic-no-pic -falign-loops=16 -shared-libgcc $extra_cflags"
1486 _timer=timer-darwin.c
1489 if aix ; then
1490 extra_ldflags="$extra_ldflags -lC"
1493 if irix ; then
1494 _ranlib='ar -r'
1495 elif linux ; then
1496 _ranlib='true'
1499 if win32 ; then
1500 _exesuf=".exe"
1501 extra_cflags="$extra_cflags -fno-common"
1502 # -lwinmm is always needed for osdep/timer-win2.c
1503 extra_ldflags="$extra_ldflags -lwinmm"
1504 _pe_executable=yes
1505 _timer=timer-win2.c
1506 _priority=yes
1507 def_dos_paths="#define HAVE_DOS_PATHS 1"
1508 def_priority="#define CONFIG_PRIORITY 1"
1511 if mingw32 ; then
1512 _getch=getch2-win.c
1513 _need_shmem=no
1516 if amigaos ; then
1517 _select=no
1518 _sighandler=no
1519 _stream_cache=no
1520 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1521 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1524 if qnx ; then
1525 extra_ldflags="$extra_ldflags -lph"
1528 if os2 ; then
1529 _exesuf=".exe"
1530 _getch=getch2-os2.c
1531 _need_shmem=no
1532 _priority=yes
1533 def_dos_paths="#define HAVE_DOS_PATHS 1"
1534 def_priority="#define CONFIG_PRIORITY 1"
1537 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1538 test "$I" && break
1539 done
1542 TMPLOG="configure.log"
1543 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
1544 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
1545 TMPEXE="$I/mplayer-conf-$RANDOM-$$$_exesuf"
1546 TMPH="$I/mplayer-conf-$RANDOM-$$.h"
1547 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
1549 rm -f "$TMPLOG"
1550 echo configuration: $_configuration > "$TMPLOG"
1551 echo >> "$TMPLOG"
1554 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1555 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1559 # Checking CC version...
1560 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1561 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1562 echocheck "$_cc version"
1563 cc_vendor=intel
1564 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1565 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1566 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1567 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1568 # TODO verify older icc/ecc compatibility
1569 case $cc_version in
1571 cc_version="v. ?.??, bad"
1572 cc_fail=yes
1574 10.1|11.0|11.1)
1575 cc_version="$cc_version, ok"
1578 cc_version="$cc_version, bad"
1579 cc_fail=yes
1581 esac
1582 echores "$cc_version"
1583 else
1584 for _cc in "$_cc" gcc cc ; do
1585 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1586 if test "$cc_name_tmp" = "gcc"; then
1587 cc_name=$cc_name_tmp
1588 echocheck "$_cc version"
1589 cc_vendor=gnu
1590 cc_version=$($_cc -dumpversion 2>&1)
1591 case $cc_version in
1592 2.96*)
1593 cc_fail=yes
1596 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1597 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1598 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1600 esac
1601 echores "$cc_version"
1602 break
1604 cc_name_tmp=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 2,3)
1605 if test "$cc_name_tmp" = "Sun C"; then
1606 echocheck "$_cc version"
1607 cc_vendor=sun
1608 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 4)
1609 _res_comment="experimental support only"
1610 echores "Sun C $cc_version"
1611 break
1613 done
1614 fi # icc
1615 test "$cc_fail" = yes && die "unsupported compiler version"
1617 if test -z "$_target" && x86 ; then
1618 cat > $TMPC << EOF
1619 int main(void) {
1620 int test[(int)sizeof(char *)-7];
1621 return 0;
1624 cc_check && host_arch=x86_64 || host_arch=i386
1627 echo "Detected operating system: $system_name"
1628 echo "Detected host architecture: $host_arch"
1630 echocheck "host cc"
1631 test "$_host_cc" || _host_cc=$_cc
1632 echores $_host_cc
1634 echocheck "cross compilation"
1635 if test $_cross_compile = auto ; then
1636 cat > $TMPC << EOF
1637 int main(void) { return 0; }
1639 _cross_compile=yes
1640 cc_check && "$TMPEXE" && _cross_compile=no
1642 echores $_cross_compile
1644 if test $_cross_compile = yes; then
1645 tmp_run() {
1646 return 0
1650 # ---
1652 # now that we know what compiler should be used for compilation, try to find
1653 # out which assembler is used by the $_cc compiler
1654 if test "$_as" = auto ; then
1655 _as=$($_cc -print-prog-name=as)
1656 test -z "$_as" && _as=as
1659 if test "$_nm" = auto ; then
1660 _nm=$($_cc -print-prog-name=nm)
1661 test -z "$_nm" && _nm=nm
1664 # XXX: this should be ok..
1665 _cpuinfo="echo"
1667 if test "$_runtime_cpudetection" = no ; then
1669 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1670 # FIXME: Remove the cygwin check once AMD CPUs are supported
1671 if test -r /proc/cpuinfo && ! cygwin; then
1672 # Linux with /proc mounted, extract CPU information from it
1673 _cpuinfo="cat /proc/cpuinfo"
1674 elif test -r /compat/linux/proc/cpuinfo && ! x86 ; then
1675 # FreeBSD with Linux emulation /proc mounted,
1676 # extract CPU information from it
1677 # Don't use it on x86 though, it never reports 3Dnow
1678 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1679 elif darwin && ! x86 ; then
1680 # use hostinfo on Darwin
1681 _cpuinfo="hostinfo"
1682 elif aix; then
1683 # use 'lsattr' on AIX
1684 _cpuinfo="lsattr -E -l proc0 -a type"
1685 elif x86; then
1686 # all other OSes try to extract CPU information from a small helper
1687 # program cpuinfo instead
1688 $_cc -o cpuinfo$_exesuf cpuinfo.c
1689 _cpuinfo="./cpuinfo$_exesuf"
1692 if x86 ; then
1693 # gather more CPU information
1694 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1695 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1696 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1697 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1698 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1700 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1702 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1703 -e s/xmm/sse/ -e s/kni/sse/)
1705 for ext in $pparam ; do
1706 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1707 done
1709 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1710 test $_sse = kernel_check && _mmxext=kernel_check
1712 echocheck "CPU vendor"
1713 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1715 echocheck "CPU type"
1716 echores "$pname"
1719 fi # test "$_runtime_cpudetection" = no
1721 if x86 && test "$_runtime_cpudetection" = no ; then
1722 extcheck() {
1723 if test "$1" = kernel_check ; then
1724 echocheck "kernel support of $2"
1725 cat > $TMPC <<EOF
1726 #include <stdlib.h>
1727 #include <signal.h>
1728 void catch() { exit(1); }
1729 int main(void) {
1730 signal(SIGILL, catch);
1731 __asm__ volatile ("$3":::"memory"); return 0;
1735 if cc_check && tmp_run ; then
1736 eval _$2=yes
1737 echores "yes"
1738 _optimizing="$_optimizing $2"
1739 return 0
1740 else
1741 eval _$2=no
1742 echores "failed"
1743 echo "It seems that your kernel does not correctly support $2."
1744 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1745 return 1
1748 return 0
1751 extcheck $_mmx "mmx" "emms"
1752 extcheck $_mmxext "mmxext" "sfence"
1753 extcheck $_3dnow "3dnow" "femms"
1754 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1755 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1756 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1757 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1758 extcheck $_cmov "cmov" "cmovb %%eax,%%ebx"
1760 echocheck "mtrr support"
1761 if test "$_mtrr" = kernel_check ; then
1762 _mtrr="yes"
1763 _optimizing="$_optimizing mtrr"
1765 echores "$_mtrr"
1767 if test "$_gcc3_ext" != ""; then
1768 # if we had to disable sse/sse2 because the active kernel does not
1769 # support this instruction set extension, we also have to tell
1770 # gcc3 to not generate sse/sse2 instructions for normal C code
1771 cat > $TMPC << EOF
1772 int main(void) { return 0; }
1774 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1780 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1781 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1782 _arch_all='X86 X86_32 X86_64 IA64 SPARC ARM AVR32 SH4 PPC PPC64 ALPHA MIPS SGI_MIPS PA_RISC S390 S390X VAX BFIN XTENSA GENERIC'
1783 case "$host_arch" in
1784 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1785 _arch='X86 X86_32'
1786 _target_arch="ARCH_X86 = yes"
1787 _target_subarch="ARCH_X86_32 = yes"
1788 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1789 iproc=486
1790 proc=i486
1793 if test "$_runtime_cpudetection" = no ; then
1794 case "$pvendor" in
1795 AuthenticAMD)
1796 case "$pfamily" in
1797 3) proc=i386 iproc=386 ;;
1798 4) proc=i486 iproc=486 ;;
1799 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1800 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1801 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1802 proc=k6-3
1803 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1804 proc=geode
1805 elif test "$pmodel" -ge 8; then
1806 proc=k6-2
1807 elif test "$pmodel" -ge 6; then
1808 proc=k6
1809 else
1810 proc=i586
1813 6) iproc=686
1814 # It's a bit difficult to determine the correct type of Family 6
1815 # AMD CPUs just from their signature. Instead, we check directly
1816 # whether it supports SSE.
1817 if test "$_sse" = yes; then
1818 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1819 proc=athlon-xp
1820 else
1821 # Again, gcc treats athlon and athlon-tbird similarly.
1822 proc=athlon
1825 15) iproc=686
1826 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1827 # caught and remedied in the optimization tests below.
1828 proc=k8
1831 *) proc=amdfam10 iproc=686
1832 test $_fast_clz = "auto" && _fast_clz=yes
1834 esac
1836 GenuineIntel)
1837 case "$pfamily" in
1838 3) proc=i386 iproc=386 ;;
1839 4) proc=i486 iproc=486 ;;
1840 5) iproc=586
1841 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1842 proc=pentium-mmx # 4 is desktop, 8 is mobile
1843 else
1844 proc=i586
1847 6) iproc=686
1848 if test "$pmodel" -ge 15; then
1849 proc=core2
1850 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1851 proc=pentium-m
1852 elif test "$pmodel" -ge 7; then
1853 proc=pentium3
1854 elif test "$pmodel" -ge 3; then
1855 proc=pentium2
1856 else
1857 proc=i686
1859 test $_fast_clz = "auto" && _fast_clz=yes
1861 15) iproc=686
1862 # A nocona in 32-bit mode has no more capabilities than a prescott.
1863 if test "$pmodel" -ge 3; then
1864 proc=prescott
1865 else
1866 proc=pentium4
1867 test $_fast_clz = "auto" && _fast_clz=yes
1869 test $_fast_cmov = "auto" && _fast_cmov=no
1871 *) proc=prescott iproc=686 ;;
1872 esac
1874 CentaurHauls)
1875 case "$pfamily" in
1876 5) iproc=586
1877 if test "$pmodel" -ge 8; then
1878 proc=winchip2
1879 elif test "$pmodel" -ge 4; then
1880 proc=winchip-c6
1881 else
1882 proc=i586
1885 6) iproc=686
1886 if test "$pmodel" -ge 9; then
1887 proc=c3-2
1888 else
1889 proc=c3
1890 iproc=586
1893 *) proc=i686 iproc=i686 ;;
1894 esac
1896 unknown)
1897 case "$pfamily" in
1898 3) proc=i386 iproc=386 ;;
1899 4) proc=i486 iproc=486 ;;
1900 *) proc=i586 iproc=586 ;;
1901 esac
1904 proc=i586 iproc=586 ;;
1905 esac
1906 test $_fast_clz = "auto" && _fast_clz=no
1907 fi # test "$_runtime_cpudetection" = no
1910 # check that gcc supports our CPU, if not, fall back to earlier ones
1911 # LGB: check -mcpu and -march swithing step by step with enabling
1912 # to fall back till 386.
1914 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1916 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1917 cpuopt=-mtune
1918 else
1919 cpuopt=-mcpu
1922 echocheck "GCC & CPU optimization abilities"
1923 cat > $TMPC << EOF
1924 int main(void) { return 0; }
1926 if test "$_runtime_cpudetection" = no ; then
1927 cc_check -march=native && proc=native
1928 if test "$proc" = "k8"; then
1929 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1931 if test "$proc" = "athlon-xp"; then
1932 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1934 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1935 cc_check -march=$proc $cpuopt=$proc || proc=k6
1937 if test "$proc" = "k6" || test "$proc" = "c3"; then
1938 if ! cc_check -march=$proc $cpuopt=$proc; then
1939 if cc_check -march=i586 $cpuopt=i686; then
1940 proc=i586-i686
1941 else
1942 proc=i586
1946 if test "$proc" = "prescott" ; then
1947 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1949 if test "$proc" = "core2" ; then
1950 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1952 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
1953 cc_check -march=$proc $cpuopt=$proc || proc=i686
1955 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1956 cc_check -march=$proc $cpuopt=$proc || proc=i586
1958 if test "$proc" = "i586"; then
1959 cc_check -march=$proc $cpuopt=$proc || proc=i486
1961 if test "$proc" = "i486" ; then
1962 cc_check -march=$proc $cpuopt=$proc || proc=i386
1964 if test "$proc" = "i386" ; then
1965 cc_check -march=$proc $cpuopt=$proc || proc=error
1967 if test "$proc" = "error" ; then
1968 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1969 _mcpu=""
1970 _march=""
1971 _optimizing=""
1972 elif test "$proc" = "i586-i686"; then
1973 _march="-march=i586"
1974 _mcpu="$cpuopt=i686"
1975 _optimizing="$proc"
1976 else
1977 _march="-march=$proc"
1978 _mcpu="$cpuopt=$proc"
1979 _optimizing="$proc"
1981 else # if test "$_runtime_cpudetection" = no
1982 _mcpu="$cpuopt=generic"
1983 # at least i486 required, for bswap instruction
1984 _march="-march=i486"
1985 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1986 cc_check $_mcpu || _mcpu=""
1987 cc_check $_march $_mcpu || _march=""
1990 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1991 ## autodetected mcpu/march parameters
1992 if test "$_target" ; then
1993 # TODO: it may be a good idea to check GCC and fall back in all cases
1994 if test "$host_arch" = "i586-i686"; then
1995 _march="-march=i586"
1996 _mcpu="$cpuopt=i686"
1997 else
1998 _march="-march=$host_arch"
1999 _mcpu="$cpuopt=$host_arch"
2002 proc="$host_arch"
2004 case "$proc" in
2005 i386) iproc=386 ;;
2006 i486) iproc=486 ;;
2007 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
2008 i686|athlon*|pentium*) iproc=686 ;;
2009 *) iproc=586 ;;
2010 esac
2013 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
2014 _fast_cmov="yes"
2015 else
2016 _fast_cmov="no"
2018 test $_fast_clz = "auto" && _fast_clz=yes
2020 echores "$proc"
2023 ia64)
2024 _arch='IA64'
2025 _target_arch='ARCH_IA64 = yes'
2026 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2027 iproc='ia64'
2030 x86_64|amd64)
2031 _arch='X86 X86_64'
2032 _target_subarch='ARCH_X86_64 = yes'
2033 _target_arch="ARCH_X86 = yes"
2034 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2035 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2036 iproc='x86_64'
2038 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
2039 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
2040 cpuopt=-mtune
2041 else
2042 cpuopt=-mcpu
2044 if test "$_runtime_cpudetection" = no ; then
2045 case "$pvendor" in
2046 AuthenticAMD)
2047 case "$pfamily" in
2048 15) proc=k8
2049 test $_fast_clz = "auto" && _fast_clz=no
2051 *) proc=amdfam10;;
2052 esac
2054 GenuineIntel)
2055 case "$pfamily" in
2056 6) proc=core2;;
2058 # 64-bit prescotts exist, but as far as GCC is concerned they
2059 # have the same capabilities as a nocona.
2060 proc=nocona
2061 test $_fast_cmov = "auto" && _fast_cmov=no
2062 test $_fast_clz = "auto" && _fast_clz=no
2064 esac
2067 proc=error;;
2068 esac
2069 fi # test "$_runtime_cpudetection" = no
2071 echocheck "GCC & CPU optimization abilities"
2072 cat > $TMPC << EOF
2073 int main(void) { return 0; }
2075 # This is a stripped-down version of the i386 fallback.
2076 if test "$_runtime_cpudetection" = no ; then
2077 cc_check -march=native && proc=native
2078 # --- AMD processors ---
2079 if test "$proc" = "k8"; then
2080 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
2082 # This will fail if gcc version < 3.3, which is ok because earlier
2083 # versions don't really support 64-bit on amd64.
2084 # Is this a valid assumption? -Corey
2085 if test "$proc" = "athlon-xp"; then
2086 cc_check -march=$proc $cpuopt=$proc || proc=error
2088 # --- Intel processors ---
2089 if test "$proc" = "core2"; then
2090 cc_check -march=$proc $cpuopt=$proc || proc=x86-64
2092 if test "$proc" = "x86-64"; then
2093 cc_check -march=$proc $cpuopt=$proc || proc=nocona
2095 if test "$proc" = "nocona"; then
2096 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
2098 if test "$proc" = "pentium4"; then
2099 cc_check -march=$proc $cpuopt=$proc || proc=error
2102 _march="-march=$proc"
2103 _mcpu="$cpuopt=$proc"
2104 if test "$proc" = "error" ; then
2105 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
2106 _mcpu=""
2107 _march=""
2109 else # if test "$_runtime_cpudetection" = no
2110 # x86-64 is an undocumented option, an intersection of k8 and nocona.
2111 _march="-march=x86-64"
2112 _mcpu="$cpuopt=generic"
2113 cc_check $_mcpu || _mcpu="x86-64"
2114 cc_check $_mcpu || _mcpu=""
2115 cc_check $_march $_mcpu || _march=""
2118 _optimizing="$proc"
2119 test $_fast_cmov = "auto" && _fast_cmov=yes
2120 test $_fast_clz = "auto" && _fast_clz=yes
2122 echores "$proc"
2125 sparc|sparc64)
2126 _arch='SPARC'
2127 _target_arch='ARCH_SPARC = yes'
2128 iproc='sparc'
2129 if test "$host_arch" = "sparc64" ; then
2130 _vis='yes'
2131 proc='ultrasparc'
2132 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2133 elif sunos ; then
2134 echocheck "CPU type"
2135 karch=$(uname -m)
2136 case "$(echo $karch)" in
2137 sun4) proc=v7 ;;
2138 sun4c) proc=v7 ;;
2139 sun4d) proc=v8 ;;
2140 sun4m) proc=v8 ;;
2141 sun4u) proc=ultrasparc _vis='yes' ;;
2142 sun4v) proc=v9 ;;
2143 *) proc=v8 ;;
2144 esac
2145 echores "$proc"
2146 else
2147 proc=v8
2149 _mcpu="-mcpu=$proc"
2150 _optimizing="$proc"
2153 arm*)
2154 _arch='ARM'
2155 _target_arch='ARCH_ARM = yes'
2156 iproc='arm'
2159 avr32)
2160 _arch='AVR32'
2161 _target_arch='ARCH_AVR32 = yes'
2162 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2163 iproc='avr32'
2164 test $_fast_clz = "auto" && _fast_clz=yes
2167 sh|sh4)
2168 _arch='SH4'
2169 _target_arch='ARCH_SH4 = yes'
2170 iproc='sh4'
2173 ppc|ppc64|powerpc|powerpc64)
2174 _arch='PPC'
2175 def_dcbzl='#define HAVE_DCBZL 0'
2176 _target_arch='ARCH_PPC = yes'
2177 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2178 iproc='ppc'
2180 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2181 _arch='PPC PPC64'
2182 _target_subarch='ARCH_PPC64 = yes'
2183 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2185 echocheck "CPU type"
2186 case $system_name in
2187 Linux)
2188 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2189 if test -n "$($_cpuinfo | grep altivec)"; then
2190 test $_altivec = auto && _altivec=yes
2193 Darwin)
2194 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2195 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2196 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2197 test $_altivec = auto && _altivec=yes
2200 NetBSD)
2201 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2202 case $cc_version in
2203 2*|3.0*|3.1*|3.2*|3.3*)
2206 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2207 test $_altivec = auto && _altivec=yes
2210 esac
2212 AIX)
2213 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2215 esac
2216 if test "$_altivec" = yes; then
2217 echores "$proc altivec"
2218 else
2219 _altivec=no
2220 echores "$proc"
2223 echocheck "GCC & CPU optimization abilities"
2225 if test -n "$proc"; then
2226 case "$proc" in
2227 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2228 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2229 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2230 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2231 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2232 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2233 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2234 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2235 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2236 *) ;;
2237 esac
2238 # gcc 3.1(.1) and up supports 7400 and 7450
2239 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2240 case "$proc" in
2241 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2242 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2243 *) ;;
2244 esac
2246 # gcc 3.2 and up supports 970
2247 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2248 case "$proc" in
2249 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2250 def_dcbzl='#define HAVE_DCBZL 1' ;;
2251 *) ;;
2252 esac
2254 # gcc 3.3 and up supports POWER4
2255 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2256 case "$proc" in
2257 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2258 *) ;;
2259 esac
2261 # gcc 3.4 and up supports 440*
2262 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2263 case "$proc" in
2264 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2265 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2266 *) ;;
2267 esac
2269 # gcc 4.0 and up supports POWER5
2270 if test "$_cc_major" -ge "4"; then
2271 case "$proc" in
2272 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2273 *) ;;
2274 esac
2278 if test -n "$_mcpu"; then
2279 _optimizing=$(echo $_mcpu | cut -c 8-)
2280 echores "$_optimizing"
2281 else
2282 echores "none"
2285 test $_fast_clz = "auto" && _fast_clz=yes
2289 alpha*)
2290 _arch='ALPHA'
2291 _target_arch='ARCH_ALPHA = yes'
2292 iproc='alpha'
2294 echocheck "CPU type"
2295 cat > $TMPC << EOF
2296 int main(void) {
2297 unsigned long ver, mask;
2298 __asm__ ("implver %0" : "=r" (ver));
2299 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2300 printf("%ld-%x\n", ver, ~mask);
2301 return 0;
2304 $_cc -o "$TMPEXE" "$TMPC"
2305 case $("$TMPEXE") in
2307 0-0) proc="ev4"; _mvi="0";;
2308 1-0) proc="ev5"; _mvi="0";;
2309 1-1) proc="ev56"; _mvi="0";;
2310 1-101) proc="pca56"; _mvi="1";;
2311 2-303) proc="ev6"; _mvi="1";;
2312 2-307) proc="ev67"; _mvi="1";;
2313 2-1307) proc="ev68"; _mvi="1";;
2314 esac
2315 echores "$proc"
2317 echocheck "GCC & CPU optimization abilities"
2318 if test "$proc" = "ev68" ; then
2319 cc_check -mcpu=$proc || proc=ev67
2321 if test "$proc" = "ev67" ; then
2322 cc_check -mcpu=$proc || proc=ev6
2324 _mcpu="-mcpu=$proc"
2325 echores "$proc"
2327 test $_fast_clz = "auto" && _fast_clz=yes
2329 _optimizing="$proc"
2332 mips)
2333 _arch='SGI_MIPS'
2334 _target_arch='ARCH_SGI_MIPS = yes'
2335 iproc='sgi-mips'
2337 if irix ; then
2338 echocheck "CPU type"
2339 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2340 case "$(echo $proc)" in
2341 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2342 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2343 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2344 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2345 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2346 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2347 esac
2348 # gcc < 3.x does not support -mtune.
2349 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2350 _mcpu=''
2352 echores "$proc"
2355 test $_fast_clz = "auto" && _fast_clz=yes
2359 hppa)
2360 _arch='PA_RISC'
2361 _target_arch='ARCH_PA_RISC = yes'
2362 iproc='PA-RISC'
2365 s390)
2366 _arch='S390'
2367 _target_arch='ARCH_S390 = yes'
2368 iproc='390'
2371 s390x)
2372 _arch='S390X'
2373 _target_arch='ARCH_S390X = yes'
2374 iproc='390x'
2377 vax)
2378 _arch='VAX'
2379 _target_arch='ARCH_VAX = yes'
2380 iproc='vax'
2383 xtensa)
2384 _arch='XTENSA'
2385 _target_arch='ARCH_XTENSA = yes'
2386 iproc='xtensa'
2389 generic)
2390 _arch='GENERIC'
2391 _target_arch='ARCH_GENERIC = yes'
2395 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2396 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2397 die "unsupported architecture $host_arch"
2399 esac # case "$host_arch" in
2401 if test "$_runtime_cpudetection" = yes ; then
2402 if x86 ; then
2403 test "$_cmov" != no && _cmov=yes
2404 x86_32 && _cmov=no
2405 test "$_mmx" != no && _mmx=yes
2406 test "$_3dnow" != no && _3dnow=yes
2407 test "$_3dnowext" != no && _3dnowext=yes
2408 test "$_mmxext" != no && _mmxext=yes
2409 test "$_sse" != no && _sse=yes
2410 test "$_sse2" != no && _sse2=yes
2411 test "$_ssse3" != no && _ssse3=yes
2412 test "$_mtrr" != no && _mtrr=yes
2414 if ppc; then
2415 _altivec=yes
2420 # endian testing
2421 echocheck "byte order"
2422 if test "$_big_endian" = auto ; then
2423 cat > $TMPC <<EOF
2424 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
2425 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
2426 int main(void) { return (int)ascii_name; }
2428 if cc_check ; then
2429 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2430 _big_endian=yes
2431 else
2432 _big_endian=no
2434 else
2435 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2438 if test "$_big_endian" = yes ; then
2439 _byte_order='big-endian'
2440 def_words_endian='#define WORDS_BIGENDIAN 1'
2441 def_bigendian='#define HAVE_BIGENDIAN 1'
2442 def_av_bigendian='#define AV_HAVE_BIGENDIAN 1'
2443 else
2444 _byte_order='little-endian'
2445 def_words_endian='#undef WORDS_BIGENDIAN'
2446 def_bigendian='#define HAVE_BIGENDIAN 0'
2447 def_av_bigendian='#define AV_HAVE_BIGENDIAN 0'
2449 echores "$_byte_order"
2452 echocheck "extern symbol prefix"
2453 cat > $TMPC << EOF
2454 int ff_extern;
2456 cc_check -c || die "Symbol mangling check failed."
2457 sym=$($_nm -P -g $TMPEXE)
2458 extern_prefix=${sym%%ff_extern*}
2459 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2460 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2461 echores $extern_prefix
2464 echocheck "assembler support of -pipe option"
2465 cat > $TMPC << EOF
2466 int main(void) { return 0; }
2468 # -I. helps to detect compilers that just misunderstand -pipe like Sun C
2469 cc_check -pipe -I. && _pipe="-pipe" && echores "yes" || echores "no"
2472 echocheck "compiler support of named assembler arguments"
2473 _named_asm_args=yes
2474 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2475 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2476 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2477 _named_asm_args=no
2478 def_named_asm_args="#undef NAMED_ASM_ARGS"
2480 echores $_named_asm_args
2483 if darwin && test "$cc_vendor" = "gnu" ; then
2484 echocheck "GCC support of -mstackrealign"
2485 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2486 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2487 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2488 # wrong code with this flag, but this can be worked around by adding
2489 # -fno-unit-at-a-time as described in the blog post at
2490 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2491 cat > $TMPC << EOF
2492 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2493 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2495 cc_check -O4 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2496 test -z "$cflags_stackrealign" && cc_check -O4 -mstackrealign -fno-unit-at-a-time \
2497 && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2498 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2499 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2502 # Checking for CFLAGS
2503 _install_strip="-s"
2504 if test "$_profile" != "" || test "$_debug" != "" ; then
2505 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2506 _install_strip=
2507 elif test -z "$CFLAGS" ; then
2508 if test "$cc_vendor" = "intel" ; then
2509 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2510 elif test "$cc_vendor" = "sun" ; then
2511 CFLAGS="-O2 $_march $_mcpu $_pipe -xc99 -xregs=frameptr"
2512 elif test "$cc_vendor" != "gnu" ; then
2513 CFLAGS="-O2 $_march $_mcpu $_pipe"
2514 else
2515 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2516 extra_ldflags="$extra_ldflags -ffast-math"
2518 else
2519 _warn_CFLAGS=yes
2522 cat > $TMPC << EOF
2523 int main(void) { return 0; }
2525 if test "$cc_vendor" = "gnu" ; then
2526 cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
2527 cc_check -Wdeclaration-after-statement && CFLAGS="-Wdeclaration-after-statement $CFLAGS"
2528 cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
2529 cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
2530 cc_check -Wundef && CFLAGS="-Wundef $CFLAGS"
2531 else
2532 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2535 cc_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2538 if test -n "$LDFLAGS" ; then
2539 extra_ldflags="$extra_ldflags $LDFLAGS"
2540 _warn_CFLAGS=yes
2541 elif test "$cc_vendor" = "intel" ; then
2542 extra_ldflags="$extra_ldflags -i-static"
2544 if test -n "$CPPFLAGS" ; then
2545 extra_cflags="$extra_cflags $CPPFLAGS"
2546 _warn_CFLAGS=yes
2551 if x86_32 ; then
2552 # Checking assembler (_as) compatibility...
2553 # Added workaround for older as that reads from stdin by default - atmos
2554 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2555 echocheck "assembler ($_as $as_version)"
2557 _pref_as_version='2.9.1'
2558 echo 'nop' > $TMPS
2559 if test "$_mmx" = yes ; then
2560 echo 'emms' >> $TMPS
2562 if test "$_3dnow" = yes ; then
2563 _pref_as_version='2.10.1'
2564 echo 'femms' >> $TMPS
2566 if test "$_3dnowext" = yes ; then
2567 _pref_as_version='2.10.1'
2568 echo 'pswapd %mm0, %mm0' >> $TMPS
2570 if test "$_mmxext" = yes ; then
2571 _pref_as_version='2.10.1'
2572 echo 'movntq %mm0, (%eax)' >> $TMPS
2574 if test "$_sse" = yes ; then
2575 _pref_as_version='2.10.1'
2576 echo 'xorps %xmm0, %xmm0' >> $TMPS
2578 #if test "$_sse2" = yes ; then
2579 # _pref_as_version='2.11'
2580 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2582 if test "$_cmov" = yes ; then
2583 _pref_as_version='2.10.1'
2584 echo 'cmovb %eax, %ebx' >> $TMPS
2586 if test "$_ssse3" = yes ; then
2587 _pref_as_version='2.16.92'
2588 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2590 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2592 if test "$as_verc_fail" != yes ; then
2593 echores "ok"
2594 else
2595 _res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2596 echores "failed"
2597 die "obsolete binutils version"
2600 fi #if x86_32
2602 echocheck ".align is a power of two"
2603 if test "$_asmalign_pot" = auto ; then
2604 _asmalign_pot=no
2605 cat > $TMPC << EOF
2606 int main(void) { __asm__ (".align 3"); return 0; }
2608 cc_check && _asmalign_pot=yes
2610 if test "$_asmalign_pot" = "yes" ; then
2611 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2612 else
2613 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2615 echores $_asmalign_pot
2617 if x86 ; then
2618 echocheck "10 assembler operands"
2619 ten_operands=no
2620 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2621 cat > $TMPC << EOF
2622 int main(void) {
2623 int x=0;
2624 __asm__ volatile(
2626 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2628 return 0;
2631 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2632 echores $ten_operands
2634 echocheck "ebx availability"
2635 ebx_available=no
2636 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2637 cat > $TMPC << EOF
2638 int main(void) {
2639 int x;
2640 __asm__ volatile(
2641 "xor %0, %0"
2642 :"=b"(x)
2643 // just adding ebx to clobber list seems unreliable with some
2644 // compilers, e.g. Haiku's gcc 2.95
2646 // and the above check does not work for OSX 64 bit...
2647 __asm__ volatile("":::"%ebx");
2648 return 0;
2651 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2652 echores $ebx_available
2654 echocheck "PIC"
2655 pic=no
2656 cat > $TMPC << EOF
2657 int main(void) {
2658 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2659 #error PIC not enabled
2660 #endif
2661 return 0;
2664 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2665 echores $pic
2667 echocheck "yasm"
2668 if test -z "$YASMFLAGS" ; then
2669 if darwin ; then
2670 x86_64 && objformat="macho64" || objformat="macho"
2671 elif win32 ; then
2672 objformat="win32"
2673 else
2674 objformat="elf"
2676 # currently tested for Linux x86, x86_64
2677 YASMFLAGS="-f $objformat"
2678 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2679 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2680 case "$objformat" in
2681 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2682 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2683 esac
2684 else
2685 _warn_CFLAGS=yes
2688 echo "pabsw xmm0, xmm0" > $TMPS
2689 yasm_check || _yasm=""
2690 if test $_yasm ; then
2691 test "$_mmx" = "yes" && fft_mmx="yes"
2692 def_yasm='#define HAVE_YASM 1'
2693 _have_yasm="yes"
2694 echores "$_yasm"
2695 else
2696 def_yasm='#define HAVE_YASM 0'
2697 fft_mmx="no"
2698 _have_yasm="no"
2699 echores "no"
2702 echocheck "bswap"
2703 def_bswap='#define HAVE_BSWAP 0'
2704 echo 'bswap %eax' > $TMPS
2705 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2706 echores "$bswap"
2707 fi #if x86
2710 #FIXME: This should happen before the check for CFLAGS..
2711 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2712 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2714 # check if AltiVec is supported by the compiler, and how to enable it
2715 echocheck "GCC AltiVec flags"
2716 cat > $TMPC << EOF
2717 int main(void) { return 0; }
2719 if $(cc_check -maltivec -mabi=altivec) ; then
2720 _altivec_gcc_flags="-maltivec -mabi=altivec"
2721 # check if <altivec.h> should be included
2722 cat > $TMPC << EOF
2723 #include <altivec.h>
2724 int main(void) { return 0; }
2726 if $(cc_check $_altivec_gcc_flags) ; then
2727 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2728 inc_altivec_h='#include <altivec.h>'
2729 else
2730 cat > $TMPC << EOF
2731 int main(void) { return 0; }
2733 if $(cc_check -faltivec) ; then
2734 _altivec_gcc_flags="-faltivec"
2735 else
2736 _altivec=no
2737 _altivec_gcc_flags="none, AltiVec disabled"
2741 echores "$_altivec_gcc_flags"
2743 # check if the compiler supports braces for vector declarations
2744 cat > $TMPC << EOF
2745 $inc_altivec_h
2746 int main(void) { (vector int) {1}; return 0; }
2748 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2750 # Disable runtime cpudetection if we cannot generate AltiVec code or
2751 # AltiVec is disabled by the user.
2752 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2753 && _runtime_cpudetection=no
2755 # Show that we are optimizing for AltiVec (if enabled and supported).
2756 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2757 && _optimizing="$_optimizing altivec"
2759 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2760 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2763 if ppc ; then
2764 def_xform_asm='#define HAVE_XFORM_ASM 0'
2765 xform_asm=no
2766 echocheck "XFORM ASM support"
2767 cat > $TMPC << EOF
2768 int main(void) { __asm__ volatile ("lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)); return 0; }
2770 cc_check && xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2771 echores "$xform_asm"
2774 if arm ; then
2775 echocheck "ARM pld instruction"
2776 cat > $TMPC << EOF
2777 int main(void) { __asm__ volatile ("pld [r0]"); return 0; }
2779 pld=no
2780 cc_check && pld=yes
2781 echores "$pld"
2783 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2784 if test $_armv5te = "auto" ; then
2785 cat > $TMPC << EOF
2786 int main(void) { __asm__ volatile ("qadd r0, r0, r0"); return 0; }
2788 _armv5te=no
2789 cc_check && _armv5te=yes
2791 echores "$_armv5te"
2793 test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz=yes
2795 echocheck "ARMv6 (SIMD instructions)"
2796 if test $_armv6 = "auto" ; then
2797 cat > $TMPC << EOF
2798 int main(void) { __asm__ volatile ("sadd16 r0, r0, r0"); return 0; }
2800 _armv6=no
2801 cc_check && _armv6=yes
2803 echores "$_armv6"
2805 echocheck "ARMv6t2 (SIMD instructions)"
2806 if test $_armv6t2 = "auto" ; then
2807 cat > $TMPC << EOF
2808 int main(void) { __asm__ volatile ("movt r0, #0"); return 0; }
2810 _armv6t2=no
2811 cc_check && _armv6t2=yes
2813 echores "$_armv6"
2815 echocheck "ARM VFP"
2816 if test $_armvfp = "auto" ; then
2817 cat > $TMPC << EOF
2818 int main(void) { __asm__ volatile ("fadds s0, s0, s0"); return 0; }
2820 _armvfp=no
2821 cc_check && _armvfp=yes
2823 echores "$_armvfp"
2825 echocheck "ARM NEON"
2826 if test $neon = "auto" ; then
2827 cat > $TMPC << EOF
2828 int main(void) { __asm__ volatile ("vadd.i16 q0, q0, q0"); return 0; }
2830 neon=no
2831 cc_check && neon=yes
2833 echores "$neon"
2835 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2836 if test $_iwmmxt = "auto" ; then
2837 cat > $TMPC << EOF
2838 int main(void) { __asm__ volatile ("wunpckelub wr6, wr4"); return 0; }
2840 _iwmmxt=no
2841 cc_check && _iwmmxt=yes
2843 echores "$_iwmmxt"
2846 _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'
2847 test "$_altivec" = yes && _cpuexts="ALTIVEC $_cpuexts"
2848 test "$_mmx" = yes && _cpuexts="MMX $_cpuexts"
2849 test "$_mmxext" = yes && _cpuexts="MMX2 $_cpuexts"
2850 test "$_3dnow" = yes && _cpuexts="AMD3DNOW $_cpuexts"
2851 test "$_3dnowext" = yes && _cpuexts="AMD3DNOWEXT $_cpuexts"
2852 test "$_sse" = yes && _cpuexts="SSE $_cpuexts"
2853 test "$_sse2" = yes && _cpuexts="SSE2 $_cpuexts"
2854 test "$_ssse3" = yes && _cpuexts="SSSE3 $_cpuexts"
2855 test "$_cmov" = yes && _cpuexts="CMOV $_cpuexts"
2856 test "$_fast_cmov" = yes && _cpuexts="FAST_CMOV $_cpuexts"
2857 test "$_fast_clz" = yes && _cpuexts="FAST_CLZ $_cpuexts"
2858 test "$pld" = yes && _cpuexts="PLD $_cpuexts"
2859 test "$_armv5te" = yes && _cpuexts="ARMV5TE $_cpuexts"
2860 test "$_armv6" = yes && _cpuexts="ARMV6 $_cpuexts"
2861 test "$_armv6t2" = yes && _cpuexts="ARMV6T2 $_cpuexts"
2862 test "$_armvfp" = yes && _cpuexts="ARMVFP $_cpuexts"
2863 test "$neon" = yes && _cpuexts="NEON $_cpuexts"
2864 test "$_iwmmxt" = yes && _cpuexts="IWMMXT $_cpuexts"
2865 test "$_vis" = yes && _cpuexts="VIS $_cpuexts"
2866 test "$_mvi" = yes && _cpuexts="MVI $_cpuexts"
2868 # Checking kernel version...
2869 if x86_32 && linux ; then
2870 _k_verc_problem=no
2871 kernel_version=$(uname -r 2>&1)
2872 echocheck "$system_name kernel version"
2873 case "$kernel_version" in
2874 '') kernel_version="?.??"; _k_verc_fail=yes;;
2875 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2876 _k_verc_problem=yes;;
2877 esac
2878 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2879 _k_verc_fail=yes
2881 if test "$_k_verc_fail" ; then
2882 echores "$kernel_version, fail"
2883 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2884 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2885 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2886 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2887 echo "2.2.x you must upgrade it to get SSE support!"
2888 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2889 else
2890 echores "$kernel_version, ok"
2894 ######################
2895 # MAIN TESTS GO HERE #
2896 ######################
2899 echocheck "-lposix"
2900 cat > $TMPC <<EOF
2901 int main(void) { return 0; }
2903 if cc_check -lposix ; then
2904 extra_ldflags="$extra_ldflags -lposix"
2905 echores "yes"
2906 else
2907 echores "no"
2910 echocheck "-lm"
2911 cat > $TMPC <<EOF
2912 int main(void) { return 0; }
2914 if cc_check -lm ; then
2915 _ld_lm="-lm"
2916 echores "yes"
2917 else
2918 _ld_lm=""
2919 echores "no"
2923 echocheck "langinfo"
2924 if test "$_langinfo" = auto ; then
2925 cat > $TMPC <<EOF
2926 #include <langinfo.h>
2927 int main(void) { nl_langinfo(CODESET); return 0; }
2929 _langinfo=no
2930 cc_check && _langinfo=yes
2932 if test "$_langinfo" = yes ; then
2933 def_langinfo='#define HAVE_LANGINFO 1'
2934 else
2935 def_langinfo='#undef HAVE_LANGINFO'
2937 echores "$_langinfo"
2940 echocheck "language"
2941 # Set preferred languages, "all" uses English as main language.
2942 test -z "$language" && language=$LINGUAS
2943 test -z "$language_doc" && language_doc=$language
2944 test -z "$language_man" && language_man=$language
2945 test -z "$language_msg" && language_msg=$language
2946 language_doc=$(echo $language_doc | tr , " ")
2947 language_man=$(echo $language_man | tr , " ")
2948 language_msg=$(echo $language_msg | tr , " ")
2950 test "$language_doc" = "all" && language_doc=$doc_lang_all
2951 test "$language_man" = "all" && language_man=$man_lang_all
2952 test "$language_msg" = "all" && language_msg=en
2954 # Prune non-existing translations from language lists.
2955 # Set message translation to the first available language.
2956 # Fall back on English.
2957 for lang in $language_doc ; do
2958 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2959 done
2960 language_doc=$tmp_language_doc
2961 test -z "$language_doc" && language_doc=en
2963 for lang in $language_man ; do
2964 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2965 done
2966 language_man=$tmp_language_man
2967 test -z "$language_man" && language_man=en
2969 for lang in $language_msg ; do
2970 test -f "help/help_mp-${lang}.h" && tmp_language_msg=$lang && break
2971 done
2972 language_msg=$tmp_language_msg
2973 test -z "$language_msg" && language_msg=en
2974 _mp_help="help/help_mp-${language_msg}.h"
2975 echores "messages: $language_msg - man pages: $language_man - documentation: $language_doc"
2978 echocheck "enable sighandler"
2979 if test "$_sighandler" = yes ; then
2980 def_sighandler='#define CONFIG_SIGHANDLER 1'
2981 else
2982 def_sighandler='#undef CONFIG_SIGHANDLER'
2984 echores "$_sighandler"
2986 echocheck "runtime cpudetection"
2987 if test "$_runtime_cpudetection" = yes ; then
2988 _optimizing="Runtime CPU-Detection enabled"
2989 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2990 else
2991 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2993 echores "$_runtime_cpudetection"
2996 echocheck "restrict keyword"
2997 for restrict_keyword in restrict __restrict __restrict__ ; do
2998 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2999 if cc_check; then
3000 def_restrict_keyword=$restrict_keyword
3001 break;
3003 done
3004 if [ -n "$def_restrict_keyword" ]; then
3005 echores "$def_restrict_keyword"
3006 else
3007 echores "none"
3009 # Avoid infinite recursion loop ("#define restrict restrict")
3010 if [ "$def_restrict_keyword" != "restrict" ]; then
3011 def_restrict_keyword="#define restrict $def_restrict_keyword"
3012 else
3013 def_restrict_keyword=""
3017 echocheck "__builtin_expect"
3018 # GCC branch prediction hint
3019 cat > $TMPC << EOF
3020 int foo(int a) {
3021 a = __builtin_expect(a, 10);
3022 return a == 10 ? 0 : 1;
3024 int main(void) { return foo(10) && foo(0); }
3026 _builtin_expect=no
3027 cc_check && _builtin_expect=yes
3028 if test "$_builtin_expect" = yes ; then
3029 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
3030 else
3031 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
3033 echores "$_builtin_expect"
3036 echocheck "kstat"
3037 cat > $TMPC << EOF
3038 #include <kstat.h>
3039 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
3041 _kstat=no
3042 cc_check -lkstat && _kstat=yes
3043 if test "$_kstat" = yes ; then
3044 def_kstat="#define HAVE_LIBKSTAT 1"
3045 extra_ldflags="$extra_ldflags -lkstat"
3046 else
3047 def_kstat="#undef HAVE_LIBKSTAT"
3049 echores "$_kstat"
3052 echocheck "posix4"
3053 # required for nanosleep on some systems
3054 cat > $TMPC << EOF
3055 #include <time.h>
3056 int main(void) { (void) nanosleep(0, 0); return 0; }
3058 _posix4=no
3059 cc_check -lposix4 && _posix4=yes
3060 if test "$_posix4" = yes ; then
3061 extra_ldflags="$extra_ldflags -lposix4"
3063 echores "$_posix4"
3065 for func in exp2 exp2f llrint log2 log2f lrint lrintf round roundf truncf; do
3066 echocheck $func
3067 cat > $TMPC << EOF
3068 #include <math.h>
3069 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
3071 eval _$func=no
3072 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
3073 if eval test "x\$_$func" = "xyes"; then
3074 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
3075 echores yes
3076 else
3077 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
3078 echores no
3080 done
3083 echocheck "mkstemp"
3084 cat > $TMPC << EOF
3085 #include <stdlib.h>
3086 int main(void) { char a; mkstemp(&a); return 0; }
3088 _mkstemp=no
3089 cc_check && _mkstemp=yes
3090 if test "$_mkstemp" = yes ; then
3091 def_mkstemp='#define HAVE_MKSTEMP 1'
3092 else
3093 def_mkstemp='#undef HAVE_MKSTEMP'
3095 echores "$_mkstemp"
3098 echocheck "nanosleep"
3099 # also check for nanosleep
3100 cat > $TMPC << EOF
3101 #include <time.h>
3102 int main(void) { (void) nanosleep(0, 0); return 0; }
3104 _nanosleep=no
3105 cc_check && _nanosleep=yes
3106 if test "$_nanosleep" = yes ; then
3107 def_nanosleep='#define HAVE_NANOSLEEP 1'
3108 else
3109 def_nanosleep='#undef HAVE_NANOSLEEP'
3111 echores "$_nanosleep"
3114 echocheck "socklib"
3115 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
3116 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
3117 cat > $TMPC << EOF
3118 #include <netdb.h>
3119 #include <sys/socket.h>
3120 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
3122 _socklib=no
3123 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
3124 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
3125 done
3126 test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no
3127 if test $_winsock2_h = auto ; then
3128 _winsock2_h=no
3129 cat > $TMPC << EOF
3130 #include <winsock2.h>
3131 int main(void) { (void) gethostbyname(0); return 0; }
3133 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
3135 test "$_ld_sock" && _res_comment="using $_ld_sock"
3136 echores "$_socklib"
3139 if test $_winsock2_h = yes ; then
3140 _ld_sock="-lws2_32"
3141 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
3142 cc_check_winsock2_h='-DHAVE_WINSOCK2_H=1'
3143 else
3144 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
3145 cc_check_winsock2_h='-DHAVE_WINSOCK2_H=0'
3149 echocheck "netdb.h, struct addrinfo"
3150 if test "$_struct_addrinfo" = auto; then
3151 _struct_addrinfo=no
3152 cat > $TMPC << EOF
3153 #if HAVE_WINSOCK2_H
3154 #include <winsock2.h>
3155 #include <ws2tcpip.h>
3156 #else
3157 #include <sys/types.h>
3158 #include <sys/socket.h>
3159 #include <netdb.h>
3160 #endif
3161 int main(void) { struct addrinfo ai; return 0; }
3163 cc_check $cc_check_winsock2_h && _struct_addrinfo=yes
3165 echores "$_struct_addrinfo"
3167 if test "$_struct_addrinfo" = yes; then
3168 def_addrinfo="#define HAVE_STRUCT_ADDRINFO 1"
3169 else
3170 def_addrinfo="#define HAVE_STRUCT_ADDRINFO 0"
3174 echocheck "netdb.h, getaddrinfo()"
3175 if test "$_getaddrinfo" = auto; then
3176 _getaddrinfo=no
3177 cat > $TMPC << EOF
3178 #if HAVE_WINSOCK2_H
3179 #include <winsock2.h>
3180 #else
3181 #include <sys/types.h>
3182 #include <sys/socket.h>
3183 #include <netdb.h>
3184 #endif
3185 int main(void) { (void) getaddrinfo(0, 0, 0, 0); return 0; }
3187 cc_check $cc_check_winsock2_h && _getaddrinfo=yes
3189 echores "$_getaddrinfo"
3191 if test "$_getaddrinfo" = yes; then
3192 def_getaddrinfo="#define HAVE_GETADDRINFO 1"
3193 else
3194 def_getaddrinfo="#define HAVE_GETADDRINFO 0"
3198 echocheck "sockaddr_storage"
3199 if test "$_struct_sockaddr_storage" = auto; then
3200 _struct_sockaddr_storage=no
3201 cat > $TMPC << EOF
3202 #if HAVE_WINSOCK2_H
3203 #include <winsock2.h>
3204 #else
3205 #include <sys/socket.h>
3206 #endif
3207 int main(void) { struct sockaddr_storage sas; return 0; }
3209 cc_check $cc_check_winsock2_h && _struct_sockaddr_storage=yes
3211 echores "$_struct_sockaddr_storage"
3213 if test "$_struct_sockaddr_storage" = yes; then
3214 def_sockaddr_storage="#define HAVE_STRUCT_SOCKADDR_STORAGE 1"
3215 else
3216 def_sockaddr_storage="#define HAVE_STRUCT_SOCKADDR_STORAGE 0"
3220 echocheck "struct ipv6_mreq"
3221 _struct_ipv6_mreq=no
3222 def_struct_ipv6_mreq="#define HAVE_STRUCT_IPV6_MREQ 0"
3223 for header in "netinet/in.h" "ws2tcpip.h" ; do
3224 cat > $TMPC << EOF
3225 #include <$header>
3226 int main(void) { struct ipv6_mreq mreq6; return 0; }
3228 cc_check && _struct_ipv6_mreq=yes && \
3229 def_struct_ipv6_mreq="#define HAVE_STRUCT_IPV6_MREQ 1" && break
3230 done
3231 echores "$_struct_ipv6_mreq"
3234 echocheck "struct sockaddr_in6"
3235 _struct_sockaddr_in6=no
3236 def_struct_sockaddr_in6="#define HAVE_STRUCT_SOCKADDR_IN6 0"
3237 for header in "netinet/in.h" "ws2tcpip.h" ; do
3238 cat > $TMPC << EOF
3239 #include <$header>
3240 int main(void) { struct sockaddr_in6 addr; return 0; }
3242 cc_check && _struct_sockaddr_in6=yes && \
3243 def_struct_sockaddr_in6="#define HAVE_STRUCT_SOCKADDR_IN6 1" && break
3244 done
3245 echores "$_struct_sockaddr_in6"
3248 echocheck "struct sockaddr sa_len"
3249 _struct_sockaddr_sa_len=no
3250 def_struct_sockaddr_sa_len="#define HAVE_STRUCT_SOCKADDR_SA_LEN 0"
3251 cat > $TMPC << EOF
3252 #if HAVE_WINSOCK2_H
3253 #include <winsock2.h>
3254 #else
3255 #include <sys/types.h>
3256 #include <sys/socket.h>
3257 #endif
3258 int main(void) { const void *p = &((struct sockaddr *)0)->sa_len; return 0; }
3260 cc_check $cc_check_winsock2_h && _struct_sockaddr_sa_len=yes && \
3261 def_struct_sockaddr_sa_len="#define HAVE_STRUCT_SOCKADDR_SA_LEN 1"
3262 echores "$_struct_sockaddr_sa_len"
3265 echocheck "arpa/inet.h"
3266 arpa_inet_h=no
3267 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
3268 cat > $TMPC << EOF
3269 #include <arpa/inet.h>
3270 int main(void) { return 0; }
3272 cc_check && arpa_inet_h=yes && def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
3273 echores "$arpa_inet_h"
3276 echocheck "inet_pton()"
3277 def_inet_pton='#define HAVE_INET_PTON 0'
3278 inet_pton=no
3279 cat > $TMPC << EOF
3280 #include <sys/types.h>
3281 #include <sys/socket.h>
3282 #include <arpa/inet.h>
3283 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
3285 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3286 cc_check $_ld_tmp && inet_pton=yes && break
3287 done
3288 if test $inet_pton = yes ; then
3289 test "$_ld_tmp" && _res_comment="using $_ld_tmp"
3290 def_inet_pton='#define HAVE_INET_PTON 1'
3292 echores "$inet_pton"
3295 echocheck "inet_aton()"
3296 def_inet_aton='#define HAVE_INET_ATON 0'
3297 inet_aton=no
3298 cat > $TMPC << EOF
3299 #include <sys/types.h>
3300 #include <sys/socket.h>
3301 #include <arpa/inet.h>
3302 int main(void) { (void) inet_aton(0, 0); return 0; }
3304 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3305 cc_check $_ld_tmp && inet_aton=yes && break
3306 done
3307 if test $inet_aton = yes ; then
3308 test "$_ld_tmp" && _res_comment="using $_ld_tmp"
3309 def_inet_aton='#define HAVE_INET_ATON 1'
3311 echores "$inet_aton"
3314 echocheck "socklen_t"
3315 _socklen_t=no
3316 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
3317 cat > $TMPC << EOF
3318 #include <$header>
3319 int main(void) { socklen_t v = 0; return v; }
3321 cc_check && _socklen_t=yes && break
3322 done
3323 if test "$_socklen_t" = yes ; then
3324 def_socklen_t='#define HAVE_SOCKLEN_T 1'
3325 else
3326 def_socklen_t='#define HAVE_SOCKLEN_T 0'
3328 echores "$_socklen_t"
3331 echocheck "closesocket()"
3332 _closesocket=no
3333 cat > $TMPC << EOF
3334 #include <winsock2.h>
3335 int main(void) { closesocket(~0); return 0; }
3337 cc_check $_ld_sock && _closesocket=yes
3338 if test "$_closesocket" = yes ; then
3339 def_closesocket='#define HAVE_CLOSESOCKET 1'
3340 else
3341 def_closesocket='#define HAVE_CLOSESOCKET 0'
3343 echores "$_closesocket"
3346 echocheck "network"
3347 test $_winsock2_h = no && test $inet_pton = no &&
3348 test $inet_aton = no && _network=no
3349 if test "$_network" = yes ; then
3350 def_network='#define CONFIG_NETWORK 1'
3351 extra_ldflags="$extra_ldflags $_ld_sock"
3352 _inputmodules="network $_inputmodules"
3353 else
3354 _noinputmodules="network $_noinputmodules"
3355 def_network='#undef CONFIG_NETWORK'
3356 _ftp=no
3357 _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//)
3358 _libavdemuxers=$(echo $_libavdemuxers | sed -e s/RTSP_DEMUXER// -e s/SDP_DEMUXER//)
3360 echores "$_network"
3363 echocheck "inet6"
3364 if test "$_inet6" = auto ; then
3365 cat > $TMPC << EOF
3366 #include <sys/types.h>
3367 #if !defined(_WIN32) || defined(__CYGWIN__)
3368 #include <sys/socket.h>
3369 #include <netinet/in.h>
3370 #else
3371 #include <ws2tcpip.h>
3372 #endif
3373 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3375 _inet6=no
3376 if cc_check $_ld_sock ; then
3377 _inet6=yes
3380 if test "$_inet6" = yes ; then
3381 def_inet6='#define HAVE_AF_INET6 1'
3382 else
3383 def_inet6='#undef HAVE_AF_INET6'
3385 echores "$_inet6"
3388 echocheck "gethostbyname2"
3389 if test "$_gethostbyname2" = auto ; then
3390 cat > $TMPC << EOF
3391 #include <sys/types.h>
3392 #include <sys/socket.h>
3393 #include <netdb.h>
3394 int main(void) { gethostbyname2("", AF_INET); return 0; }
3396 _gethostbyname2=no
3397 if cc_check ; then
3398 _gethostbyname2=yes
3401 if test "$_gethostbyname2" = yes ; then
3402 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3403 else
3404 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3406 echores "$_gethostbyname2"
3409 echocheck "inttypes.h (required)"
3410 cat > $TMPC << EOF
3411 #include <inttypes.h>
3412 int main(void) { return 0; }
3414 _inttypes=no
3415 cc_check && _inttypes=yes
3416 echores "$_inttypes"
3418 if test "$_inttypes" = no ; then
3419 echocheck "bitypes.h (inttypes.h predecessor)"
3420 cat > $TMPC << EOF
3421 #include <sys/bitypes.h>
3422 int main(void) { return 0; }
3424 cc_check && _inttypes=yes
3425 if test "$_inttypes" = yes ; then
3426 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."
3427 else
3428 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3433 echocheck "int_fastXY_t in inttypes.h"
3434 cat > $TMPC << EOF
3435 #include <inttypes.h>
3436 int main(void) {
3437 volatile int_fast16_t v= 0;
3438 return v; }
3440 _fast_inttypes=no
3441 cc_check && _fast_inttypes=yes
3442 if test "$_fast_inttypes" = no ; then
3443 def_fast_inttypes='
3444 typedef signed char int_fast8_t;
3445 typedef signed int int_fast16_t;
3446 typedef signed int int_fast32_t;
3447 typedef signed long long int_fast64_t;
3448 typedef unsigned char uint_fast8_t;
3449 typedef unsigned int uint_fast16_t;
3450 typedef unsigned int uint_fast32_t;
3451 typedef unsigned long long uint_fast64_t;'
3453 echores "$_fast_inttypes"
3456 echocheck "malloc.h"
3457 cat > $TMPC << EOF
3458 #include <malloc.h>
3459 int main(void) { (void) malloc(0); return 0; }
3461 _malloc=no
3462 cc_check && _malloc=yes
3463 if test "$_malloc" = yes ; then
3464 def_malloc_h='#define HAVE_MALLOC_H 1'
3465 else
3466 def_malloc_h='#define HAVE_MALLOC_H 0'
3468 # malloc.h emits a warning in FreeBSD and OpenBSD
3469 freebsd || openbsd || dragonfly && def_malloc_h='#define HAVE_MALLOC_H 0'
3470 echores "$_malloc"
3473 echocheck "memalign()"
3474 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3475 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3476 cat > $TMPC << EOF
3477 #include <malloc.h>
3478 int main(void) { (void) memalign(64, sizeof(char)); return 0; }
3480 _memalign=no
3481 cc_check && _memalign=yes
3482 if test "$_memalign" = yes ; then
3483 def_memalign='#define HAVE_MEMALIGN 1'
3484 else
3485 def_memalign='#define HAVE_MEMALIGN 0'
3486 def_map_memalign='#define memalign(a,b) malloc(b)'
3487 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3489 echores "$_memalign"
3492 echocheck "posix_memalign()"
3493 posix_memalign=no
3494 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3495 cat > $TMPC << EOF
3496 #define _XOPEN_SOURCE 600
3497 #include <stdlib.h>
3498 int main(void) { posix_memalign(NULL, 0, 0); }
3500 cc_check && posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3501 echores "$posix_memalign"
3504 echocheck "alloca.h"
3505 cat > $TMPC << EOF
3506 #include <alloca.h>
3507 int main(void) { (void) alloca(0); return 0; }
3509 _alloca=no
3510 cc_check && _alloca=yes
3511 if cc_check ; then
3512 def_alloca_h='#define HAVE_ALLOCA_H 1'
3513 else
3514 def_alloca_h='#undef HAVE_ALLOCA_H'
3516 echores "$_alloca"
3519 echocheck "fastmemcpy"
3520 if test "$_fastmemcpy" = yes ; then
3521 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3522 else
3523 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3525 echores "$_fastmemcpy"
3528 echocheck "hard-coded tables"
3529 if test "$hardcoded_tables" = yes ; then
3530 def_hardcoded_tables='#define CONFIG_HARDCODED_TABLES 1'
3531 mak_hardcoded_tables='CONFIG_HARDCODED_TABLES = yes'
3532 else
3533 def_hardcoded_tables='#define CONFIG_HARDCODED_TABLES 0'
3535 echores "$hardcoded_tables"
3538 echocheck "mman.h"
3539 cat > $TMPC << EOF
3540 #include <sys/types.h>
3541 #include <sys/mman.h>
3542 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
3544 _mman=no
3545 cc_check && _mman=yes
3546 if test "$_mman" = yes ; then
3547 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3548 else
3549 def_mman_h='#undef HAVE_SYS_MMAN_H'
3550 os2 && _need_mmap=yes
3552 echores "$_mman"
3554 cat > $TMPC << EOF
3555 #include <sys/types.h>
3556 #include <sys/mman.h>
3557 int main(void) { void *p = MAP_FAILED; return 0; }
3559 _mman_has_map_failed=no
3560 cc_check && _mman_has_map_failed=yes
3561 if test "$_mman_has_map_failed" = yes ; then
3562 def_mman_has_map_failed=''
3563 else
3564 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3567 echocheck "dynamic loader"
3568 cat > $TMPC << EOF
3569 #include <stddef.h>
3570 #include <dlfcn.h>
3571 int main(void) { dlopen("", 0); dlclose(NULL); dlsym(NULL, ""); return 0; }
3573 _dl=no
3574 for _ld_tmp in "" "-ldl" ; do
3575 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3576 done
3577 if test "$_dl" = yes ; then
3578 def_dl='#define HAVE_LIBDL 1'
3579 else
3580 def_dl='#undef HAVE_LIBDL'
3582 echores "$_dl"
3585 echocheck "dynamic a/v plugins support"
3586 if test "$_dl" = no ; then
3587 _dynamic_plugins=no
3589 if test "$_dynamic_plugins" = yes ; then
3590 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3591 else
3592 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3594 echores "$_dynamic_plugins"
3597 def_threads='#define HAVE_THREADS 0'
3599 echocheck "pthread"
3600 if linux ; then
3601 THREAD_CFLAGS=-D_REENTRANT
3602 elif freebsd || netbsd || openbsd || bsdos ; then
3603 THREAD_CFLAGS=-D_THREAD_SAFE
3605 if test "$_pthreads" = auto ; then
3606 cat > $TMPC << EOF
3607 #include <pthread.h>
3608 void* func(void *arg) { return arg; }
3609 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3611 _pthreads=no
3612 if ! hpux ; then
3613 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3614 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3615 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3616 done
3619 if test "$_pthreads" = yes ; then
3620 test $_ld_pthread && _res_comment="using $_ld_pthread"
3621 def_pthreads='#define HAVE_PTHREADS 1'
3622 def_threads='#define HAVE_THREADS 1'
3623 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3624 else
3625 _res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3626 def_pthreads='#undef HAVE_PTHREADS'
3627 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3628 mingw32 || _win32dll=no
3630 echores "$_pthreads"
3632 if cygwin ; then
3633 if test "$_pthreads" = yes ; then
3634 def_pthread_cache="#define PTHREAD_CACHE 1"
3635 else
3636 _stream_cache=no
3637 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3641 echocheck "w32threads"
3642 if test "$_pthreads" = yes ; then
3643 _res_comment="using pthread instead"
3644 _w32threads=no
3646 if test "$_w32threads" = auto ; then
3647 _w32threads=no
3648 mingw32 && _w32threads=yes
3650 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3651 echores "$_w32threads"
3653 echocheck "rpath"
3654 netbsd &&_rpath=yes
3655 if test "$_rpath" = yes ; then
3656 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3657 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3658 done
3659 extra_ldflags=$tmp
3661 echores "$_rpath"
3663 echocheck "iconv"
3664 if test "$_iconv" = auto ; then
3665 cat > $TMPC << EOF
3666 #include <stdio.h>
3667 #include <unistd.h>
3668 #include <iconv.h>
3669 #define INBUFSIZE 1024
3670 #define OUTBUFSIZE 4096
3672 char inbuffer[INBUFSIZE];
3673 char outbuffer[OUTBUFSIZE];
3675 int main(void) {
3676 size_t numread;
3677 iconv_t icdsc;
3678 char *tocode="UTF-8";
3679 char *fromcode="cp1250";
3680 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3681 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3682 char *iptr=inbuffer;
3683 char *optr=outbuffer;
3684 size_t inleft=numread;
3685 size_t outleft=OUTBUFSIZE;
3686 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
3687 != (size_t)(-1)) {
3688 write(1, outbuffer, OUTBUFSIZE - outleft);
3691 if (iconv_close(icdsc) == -1)
3694 return 0;
3697 _iconv=no
3698 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3699 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3700 _iconv=yes && break
3701 done
3703 if test "$_iconv" = yes ; then
3704 def_iconv='#define CONFIG_ICONV 1'
3705 else
3706 def_iconv='#undef CONFIG_ICONV'
3708 echores "$_iconv"
3711 echocheck "soundcard.h"
3712 _soundcard_h=no
3713 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3714 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3715 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3716 cat > $TMPC << EOF
3717 #include <$_soundcard_header>
3718 int main(void) { return 0; }
3720 cc_check && _soundcard_h=yes && _res_comment="$_soundcard_header" && break
3721 done
3723 if test "$_soundcard_h" = yes ; then
3724 if test $_soundcard_header = "sys/soundcard.h"; then
3725 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3726 else
3727 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3730 echores "$_soundcard_h"
3733 echocheck "sys/dvdio.h"
3734 cat > $TMPC << EOF
3735 #include <unistd.h>
3736 #include <sys/dvdio.h>
3737 int main(void) { return 0; }
3739 _dvdio=no
3740 cc_check && _dvdio=yes
3741 if test "$_dvdio" = yes ; then
3742 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3743 else
3744 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3746 echores "$_dvdio"
3749 echocheck "sys/cdio.h"
3750 cat > $TMPC << EOF
3751 #include <unistd.h>
3752 #include <sys/cdio.h>
3753 int main(void) { return 0; }
3755 _cdio=no
3756 cc_check && _cdio=yes
3757 if test "$_cdio" = yes ; then
3758 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3759 else
3760 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3762 echores "$_cdio"
3765 echocheck "linux/cdrom.h"
3766 cat > $TMPC << EOF
3767 #include <sys/types.h>
3768 #include <linux/cdrom.h>
3769 int main(void) { return 0; }
3771 _cdrom=no
3772 cc_check && _cdrom=yes
3773 if test "$_cdrom" = yes ; then
3774 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3775 else
3776 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3778 echores "$_cdrom"
3781 echocheck "dvd.h"
3782 cat > $TMPC << EOF
3783 #include <dvd.h>
3784 int main(void) { return 0; }
3786 _dvd=no
3787 cc_check && _dvd=yes
3788 if test "$_dvd" = yes ; then
3789 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3790 else
3791 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3793 echores "$_dvd"
3796 if bsdos; then
3797 echocheck "BSDI dvd.h"
3798 cat > $TMPC << EOF
3799 #include <dvd.h>
3800 int main(void) { return 0; }
3802 _bsdi_dvd=no
3803 cc_check && _bsdi_dvd=yes
3804 if test "$_bsdi_dvd" = yes ; then
3805 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3806 else
3807 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3809 echores "$_bsdi_dvd"
3810 fi #if bsdos
3813 if hpux; then
3814 # also used by AIX, but AIX does not support VCD and/or libdvdread
3815 echocheck "HP-UX SCSI header"
3816 cat > $TMPC << EOF
3817 #include <sys/scsi.h>
3818 int main(void) { return 0; }
3820 _hpux_scsi_h=no
3821 cc_check && _hpux_scsi_h=yes
3822 if test "$_hpux_scsi_h" = yes ; then
3823 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3824 else
3825 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3827 echores "$_hpux_scsi_h"
3828 fi #if hpux
3831 if sunos; then
3832 echocheck "userspace SCSI headers (Solaris)"
3833 cat > $TMPC << EOF
3834 #include <unistd.h>
3835 #include <stropts.h>
3836 #include <sys/scsi/scsi_types.h>
3837 #include <sys/scsi/impl/uscsi.h>
3838 int main(void) { return 0; }
3840 _sol_scsi_h=no
3841 cc_check && _sol_scsi_h=yes
3842 if test "$_sol_scsi_h" = yes ; then
3843 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3844 else
3845 def_sol_scsi_h='#undef SOLARIS_USCSI'
3847 echores "$_sol_scsi_h"
3848 fi #if sunos
3851 echocheck "termcap"
3852 if test "$_termcap" = auto ; then
3853 cat > $TMPC <<EOF
3854 #include <stddef.h>
3855 #include <term.h>
3856 int main(void) { tgetent(NULL, NULL); return 0; }
3858 _termcap=no
3859 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3860 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
3861 && _termcap=yes && break
3862 done
3864 if test "$_termcap" = yes ; then
3865 def_termcap='#define HAVE_TERMCAP 1'
3866 test $_ld_tmp && _res_comment="using $_ld_tmp"
3867 else
3868 def_termcap='#undef HAVE_TERMCAP'
3870 echores "$_termcap"
3873 echocheck "termios"
3874 def_termios='#undef HAVE_TERMIOS'
3875 def_termios_h='#undef HAVE_TERMIOS_H'
3876 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3877 if test "$_termios" = auto ; then
3878 _termios=no
3879 for _termios_header in "sys/termios.h" "termios.h"; do
3880 cat > $TMPC <<EOF
3881 #include <$_termios_header>
3882 int main(void) { return 0; }
3884 cc_check && _termios=yes && _res_comment="using $_termios_header" && break
3885 done
3888 if test "$_termios" = yes ; then
3889 def_termios='#define HAVE_TERMIOS 1'
3890 if test "$_termios_header" = "termios.h" ; then
3891 def_termios_h='#define HAVE_TERMIOS_H 1'
3892 else
3893 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3896 echores "$_termios"
3899 echocheck "shm"
3900 if test "$_shm" = auto ; then
3901 cat > $TMPC << EOF
3902 #include <sys/types.h>
3903 #include <sys/shm.h>
3904 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3906 _shm=no
3907 cc_check && _shm=yes
3909 if test "$_shm" = yes ; then
3910 def_shm='#define HAVE_SHM 1'
3911 else
3912 def_shm='#undef HAVE_SHM'
3914 echores "$_shm"
3917 echocheck "strsep()"
3918 cat > $TMPC << EOF
3919 #include <string.h>
3920 int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3922 _strsep=no
3923 cc_check && _strsep=yes
3924 if test "$_strsep" = yes ; then
3925 def_strsep='#define HAVE_STRSEP 1'
3926 _need_strsep=no
3927 else
3928 def_strsep='#undef HAVE_STRSEP'
3929 _need_strsep=yes
3931 echores "$_strsep"
3934 echocheck "vsscanf()"
3935 cat > $TMPC << EOF
3936 #define _ISOC99_SOURCE
3937 #include <stdarg.h>
3938 #include <stdio.h>
3939 int main(void) { va_list ap; vsscanf("foo", "bar", ap); return 0; }
3941 _vsscanf=no
3942 cc_check && _vsscanf=yes
3943 if test "$_vsscanf" = yes ; then
3944 def_vsscanf='#define HAVE_VSSCANF 1'
3945 _need_vsscanf=no
3946 else
3947 def_vsscanf='#undef HAVE_VSSCANF'
3948 _need_vsscanf=yes
3950 echores "$_vsscanf"
3953 echocheck "swab()"
3954 cat > $TMPC << EOF
3955 #define _XOPEN_SOURCE 600
3956 #include <unistd.h>
3957 int main(void) { swab(0, 0, 0); return 0; }
3959 _swab=no
3960 cc_check && _swab=yes
3961 if test "$_swab" = yes ; then
3962 def_swab='#define HAVE_SWAB 1'
3963 _need_swab=no
3964 else
3965 def_swab='#undef HAVE_SWAB'
3966 _need_swab=yes
3968 echores "$_swab"
3970 echocheck "POSIX select()"
3971 cat > $TMPC << EOF
3972 #include <stdio.h>
3973 #include <stdlib.h>
3974 #include <sys/types.h>
3975 #include <string.h>
3976 #include <sys/time.h>
3977 #include <unistd.h>
3978 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3980 _posix_select=no
3981 def_posix_select='#undef HAVE_POSIX_SELECT'
3982 #select() of kLIBC (OS/2) supports socket only
3983 ! os2 && cc_check && _posix_select=yes \
3984 && def_posix_select='#define HAVE_POSIX_SELECT 1'
3985 echores "$_posix_select"
3988 echocheck "audio select()"
3989 if test "$_select" = no ; then
3990 def_select='#undef HAVE_AUDIO_SELECT'
3991 elif test "$_select" = yes ; then
3992 def_select='#define HAVE_AUDIO_SELECT 1'
3994 echores "$_select"
3997 echocheck "gettimeofday()"
3998 cat > $TMPC << EOF
3999 #include <stdio.h>
4000 #include <sys/time.h>
4001 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
4003 _gettimeofday=no
4004 cc_check && _gettimeofday=yes
4005 if test "$_gettimeofday" = yes ; then
4006 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
4007 _need_gettimeofday=no
4008 else
4009 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
4010 _need_gettimeofday=yes
4012 echores "$_gettimeofday"
4015 echocheck "glob()"
4016 cat > $TMPC << EOF
4017 #include <stdio.h>
4018 #include <glob.h>
4019 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
4021 _glob=no
4022 cc_check && _glob=yes
4023 if test "$_glob" = yes ; then
4024 def_glob='#define HAVE_GLOB 1'
4025 _need_glob=no
4026 else
4027 def_glob='#undef HAVE_GLOB'
4028 _need_glob=yes
4030 echores "$_glob"
4033 echocheck "setenv()"
4034 cat > $TMPC << EOF
4035 #include <stdlib.h>
4036 int main(void) { setenv("","",0); return 0; }
4038 _setenv=no
4039 cc_check && _setenv=yes
4040 if test "$_setenv" = yes ; then
4041 def_setenv='#define HAVE_SETENV 1'
4042 _need_setenv=no
4043 else
4044 def_setenv='#undef HAVE_SETENV'
4045 _need_setenv=yes
4047 echores "$_setenv"
4050 if sunos; then
4051 echocheck "sysi86()"
4052 cat > $TMPC << EOF
4053 #include <sys/sysi86.h>
4054 int main(void) { sysi86(0); return 0; }
4056 _sysi86=no
4057 cc_check && _sysi86=yes
4058 if test "$_sysi86" = yes ; then
4059 def_sysi86='#define HAVE_SYSI86 1'
4060 cat > $TMPC << EOF
4061 #include <sys/sysi86.h>
4062 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
4064 cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
4065 else
4066 def_sysi86='#undef HAVE_SYSI86'
4068 echores "$_sysi86"
4069 fi #if sunos
4072 echocheck "sys/sysinfo.h"
4073 cat > $TMPC << EOF
4074 #include <sys/sysinfo.h>
4075 int main(void) {
4076 struct sysinfo s_info;
4077 sysinfo(&s_info);
4078 return 0;
4081 _sys_sysinfo=no
4082 cc_check && _sys_sysinfo=yes
4083 if test "$_sys_sysinfo" = yes ; then
4084 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
4085 else
4086 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
4088 echores "$_sys_sysinfo"
4091 if darwin; then
4093 echocheck "Mac OS X Finder Support"
4094 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
4095 if test "$_macosx_finder" = yes ; then
4096 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
4097 extra_ldflags="$extra_ldflags -framework Carbon"
4099 echores "$_macosx_finder"
4101 echocheck "Mac OS X Bundle file locations"
4102 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
4103 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
4104 if test "$_macosx_bundle" = yes ; then
4105 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
4106 extra_ldflags="$extra_ldflags -framework Carbon"
4108 echores "$_macosx_bundle"
4110 echocheck "Apple Remote"
4111 if test "$_apple_remote" = auto ; then
4112 _apple_remote=no
4113 cat > $TMPC <<EOF
4114 #include <stdio.h>
4115 #include <IOKit/IOCFPlugIn.h>
4116 int main(void) {
4117 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
4118 CFMutableDictionaryRef hidMatchDictionary;
4119 IOReturn ioReturnValue;
4121 // Set up a matching dictionary to search the I/O Registry by class.
4122 // name for all HID class devices
4123 hidMatchDictionary = IOServiceMatching("AppleIRController");
4125 // Now search I/O Registry for matching devices.
4126 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
4127 hidMatchDictionary, &hidObjectIterator);
4129 // If search is unsuccessful, return nonzero.
4130 if (ioReturnValue != kIOReturnSuccess ||
4131 !IOIteratorIsValid(hidObjectIterator)) {
4132 return 1;
4134 return 0;
4137 cc_check -framework IOKit && tmp_run && _apple_remote=yes
4139 if test "$_apple_remote" = yes ; then
4140 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
4141 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
4142 else
4143 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
4145 echores "$_apple_remote"
4147 fi #if darwin
4149 if linux; then
4151 echocheck "Apple IR"
4152 if test "$_apple_ir" = auto ; then
4153 _apple_ir=no
4154 cat > $TMPC <<EOF
4155 #include <linux/types.h>
4156 #include <linux/input.h>
4157 int main(void) {
4158 struct input_event ev;
4159 struct input_id id;
4160 return 0;
4163 cc_check && _apple_ir=yes
4165 if test "$_apple_ir" = yes ; then
4166 def_apple_ir='#define CONFIG_APPLE_IR 1'
4167 else
4168 def_apple_ir='#undef CONFIG_APPLE_IR'
4170 echores "$_apple_ir"
4171 fi #if linux
4173 echocheck "pkg-config"
4174 _pkg_config=pkg-config
4175 if $($_pkg_config --version > /dev/null 2>&1); then
4176 if test "$_ld_static"; then
4177 _pkg_config="$_pkg_config --static"
4179 echores "yes"
4180 else
4181 _pkg_config=false
4182 echores "no"
4186 echocheck "Samba support (libsmbclient)"
4187 if test "$_smb" = yes; then
4188 extra_ldflags="$extra_ldflags -lsmbclient"
4190 if test "$_smb" = auto; then
4191 _smb=no
4192 cat > $TMPC << EOF
4193 #include <libsmbclient.h>
4194 int main(void) { smbc_opendir("smb://"); return 0; }
4196 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
4197 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
4198 _smb=yes && break
4199 done
4202 if test "$_smb" = yes; then
4203 def_smb="#define CONFIG_LIBSMBCLIENT 1"
4204 _inputmodules="smb $_inputmodules"
4205 else
4206 def_smb="#undef CONFIG_LIBSMBCLIENT"
4207 _noinputmodules="smb $_noinputmodules"
4209 echores "$_smb"
4212 #########
4213 # VIDEO #
4214 #########
4217 echocheck "tdfxfb"
4218 if test "$_tdfxfb" = yes ; then
4219 def_tdfxfb='#define CONFIG_TDFXFB 1'
4220 _vomodules="tdfxfb $_vomodules"
4221 else
4222 def_tdfxfb='#undef CONFIG_TDFXFB'
4223 _novomodules="tdfxfb $_novomodules"
4225 echores "$_tdfxfb"
4227 echocheck "s3fb"
4228 if test "$_s3fb" = yes ; then
4229 def_s3fb='#define CONFIG_S3FB 1'
4230 _vomodules="s3fb $_vomodules"
4231 else
4232 def_s3fb='#undef CONFIG_S3FB'
4233 _novomodules="s3fb $_novomodules"
4235 echores "$_s3fb"
4237 echocheck "wii"
4238 if test "$_wii" = yes ; then
4239 def_wii='#define CONFIG_WII 1'
4240 _vomodules="wii $_vomodules"
4241 else
4242 def_wii='#undef CONFIG_WII'
4243 _novomodules="wii $_novomodules"
4245 echores "$_wii"
4247 echocheck "tdfxvid"
4248 if test "$_tdfxvid" = yes ; then
4249 def_tdfxvid='#define CONFIG_TDFX_VID 1'
4250 _vomodules="tdfx_vid $_vomodules"
4251 else
4252 def_tdfxvid='#undef CONFIG_TDFX_VID'
4253 _novomodules="tdfx_vid $_novomodules"
4255 echores "$_tdfxvid"
4257 echocheck "xvr100"
4258 if test "$_xvr100" = auto ; then
4259 cat > $TMPC << EOF
4260 #include <unistd.h>
4261 #include <sys/fbio.h>
4262 #include <sys/visual_io.h>
4263 int main(void) {
4264 struct vis_identifier ident;
4265 struct fbgattr attr;
4266 ioctl(0, VIS_GETIDENTIFIER, &ident);
4267 ioctl(0, FBIOGATTR, &attr);
4268 return 0;
4271 _xvr100=no
4272 cc_check && _xvr100=yes
4274 if test "$_xvr100" = yes ; then
4275 def_xvr100='#define CONFIG_XVR100 1'
4276 _vomodules="xvr100 $_vomodules"
4277 else
4278 def_tdfxvid='#undef CONFIG_XVR100'
4279 _novomodules="xvr100 $_novomodules"
4281 echores "$_xvr100"
4283 echocheck "tga"
4284 if test "$_tga" = yes ; then
4285 def_tga='#define CONFIG_TGA 1'
4286 _vomodules="tga $_vomodules"
4287 else
4288 def_tga='#undef CONFIG_TGA'
4289 _novomodules="tga $_novomodules"
4291 echores "$_tga"
4294 echocheck "md5sum support"
4295 if test "$_md5sum" = yes; then
4296 def_md5sum="#define CONFIG_MD5SUM 1"
4297 _vomodules="md5sum $_vomodules"
4298 else
4299 def_md5sum="#undef CONFIG_MD5SUM"
4300 _novomodules="md5sum $_novomodules"
4302 echores "$_md5sum"
4305 echocheck "yuv4mpeg support"
4306 if test "$_yuv4mpeg" = yes; then
4307 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
4308 _vomodules="yuv4mpeg $_vomodules"
4309 else
4310 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
4311 _novomodules="yuv4mpeg $_novomodules"
4313 echores "$_yuv4mpeg"
4316 echocheck "bl"
4317 if test "$_bl" = yes ; then
4318 def_bl='#define CONFIG_BL 1'
4319 _vomodules="bl $_vomodules"
4320 else
4321 def_bl='#undef CONFIG_BL'
4322 _novomodules="bl $_novomodules"
4324 echores "$_bl"
4327 echocheck "DirectFB"
4328 if test "$_directfb" = auto ; then
4329 _directfb=no
4330 cat > $TMPC <<EOF
4331 #include <directfb.h>
4332 int main(void) { DirectFBInit(0, 0); return 0; }
4334 for _inc_tmp in "" -I/usr/local/include/directfb \
4335 -I/usr/include/directfb -I/usr/local/include; do
4336 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
4337 extra_cflags="$extra_cflags $_inc_tmp" && break
4338 done
4341 dfb_version() {
4342 expr $1 \* 65536 + $2 \* 256 + $3
4345 if test "$_directfb" = yes; then
4346 cat > $TMPC << EOF
4347 #include <directfb_version.h>
4349 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
4352 if $_cc -E $TMPC $extra_cflags > "$TMPEXE"; then
4353 _directfb_version=$(sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()')
4354 _dfb_major=$(echo $_directfb_version | cut -d . -f 1)
4355 _dfb_minor=$(echo $_directfb_version | cut -d . -f 2)
4356 _dfb_micro=$(echo $_directfb_version | cut -d . -f 3)
4357 _dfb_version=$(dfb_version $_dfb_major $_dfb_minor $_dfb_micro)
4358 if test "$_dfb_version" -ge $(dfb_version 0 9 13); then
4359 def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
4360 _res_comment="$_directfb_version"
4361 test "$_dfb_version" -ge $(dfb_version 0 9 15) && _dfbmga=yes
4362 else
4363 def_directfb_version='#undef DIRECTFBVERSION'
4364 _directfb=no
4365 _res_comment="version >=0.9.13 required"
4367 else
4368 _directfb=no
4369 _res_comment="failed to get version"
4372 echores "$_directfb"
4374 if test "$_directfb" = yes ; then
4375 def_directfb='#define CONFIG_DIRECTFB 1'
4376 _vomodules="directfb $_vomodules"
4377 libs_mplayer="$libs_mplayer -ldirectfb"
4378 else
4379 def_directfb='#undef CONFIG_DIRECTFB'
4380 _novomodules="directfb $_novomodules"
4382 if test "$_dfbmga" = yes; then
4383 _vomodules="dfbmga $_vomodules"
4384 def_dfbmga='#define CONFIG_DFBMGA 1'
4385 else
4386 _novomodules="dfbmga $_novomodules"
4387 def_dfbmga='#undef CONFIG_DFBMGA'
4391 echocheck "X11 headers presence"
4392 _x11_headers="no"
4393 _res_comment="check if the dev(el) packages are installed"
4394 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
4395 if test -f "$I/X11/Xlib.h" ; then
4396 _x11_headers="yes"
4397 _res_comment=""
4398 break
4400 done
4401 if test $_cross_compile = no; then
4402 for I in /usr/X11/include /usr/X11R7/include /usr/local/include /usr/X11R6/include \
4403 /usr/include/X11R6 /usr/openwin/include ; do
4404 if test -f "$I/X11/Xlib.h" ; then
4405 extra_cflags="$extra_cflags -I$I"
4406 _x11_headers="yes"
4407 _res_comment="using $I"
4408 break
4410 done
4412 echores "$_x11_headers"
4415 echocheck "X11"
4416 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
4417 cat > $TMPC <<EOF
4418 #include <X11/Xlib.h>
4419 #include <X11/Xutil.h>
4420 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
4422 for I in "" -L/usr/X11R7/lib -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
4423 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/local/lib64 -L/usr/X11R6/lib64 \
4424 -L/usr/lib ; do
4425 if netbsd; then
4426 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
4427 else
4428 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
4430 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" \
4431 && _x11=yes && break
4432 done
4434 if test "$_x11" = yes ; then
4435 def_x11='#define CONFIG_X11 1'
4436 _vomodules="x11 xover $_vomodules"
4437 else
4438 _x11=no
4439 def_x11='#undef CONFIG_X11'
4440 _novomodules="x11 $_novomodules"
4441 _res_comment="check if the dev(el) packages are installed"
4442 # disable stuff that depends on X
4443 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
4445 echores "$_x11"
4447 echocheck "Xss screensaver extensions"
4448 if test "$_xss" = auto ; then
4449 cat > $TMPC << EOF
4450 #include <X11/Xlib.h>
4451 #include <X11/extensions/scrnsaver.h>
4452 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
4454 _xss=no
4455 cc_check -lXss && _xss=yes
4457 if test "$_xss" = yes ; then
4458 def_xss='#define CONFIG_XSS 1'
4459 libs_mplayer="$libs_mplayer -lXss"
4460 else
4461 def_xss='#undef CONFIG_XSS'
4463 echores "$_xss"
4465 echocheck "DPMS"
4466 _xdpms3=no
4467 _xdpms4=no
4468 if test "$_x11" = yes ; then
4469 cat > $TMPC <<EOF
4470 #include <X11/Xmd.h>
4471 #include <X11/Xlib.h>
4472 #include <X11/Xutil.h>
4473 #include <X11/Xatom.h>
4474 #include <X11/extensions/dpms.h>
4475 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4477 cc_check -lXdpms && _xdpms3=yes
4478 cat > $TMPC <<EOF
4479 #include <X11/Xlib.h>
4480 #include <X11/extensions/dpms.h>
4481 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4483 cc_check -lXext && _xdpms4=yes
4485 if test "$_xdpms4" = yes ; then
4486 def_xdpms='#define CONFIG_XDPMS 1'
4487 _res_comment="using Xdpms 4"
4488 echores "yes"
4489 elif test "$_xdpms3" = yes ; then
4490 def_xdpms='#define CONFIG_XDPMS 1'
4491 libs_mplayer="$libs_mplayer -lXdpms"
4492 _res_comment="using Xdpms 3"
4493 echores "yes"
4494 else
4495 def_xdpms='#undef CONFIG_XDPMS'
4496 echores "no"
4500 echocheck "Xv"
4501 if test "$_xv" = auto ; then
4502 cat > $TMPC <<EOF
4503 #include <X11/Xlib.h>
4504 #include <X11/extensions/Xvlib.h>
4505 int main(void) {
4506 (void) XvGetPortAttribute(0, 0, 0, 0);
4507 (void) XvQueryPortAttributes(0, 0, 0);
4508 return 0; }
4510 _xv=no
4511 cc_check -lXv && _xv=yes
4514 if test "$_xv" = yes ; then
4515 def_xv='#define CONFIG_XV 1'
4516 libs_mplayer="$libs_mplayer -lXv"
4517 _vomodules="xv $_vomodules"
4518 else
4519 def_xv='#undef CONFIG_XV'
4520 _novomodules="xv $_novomodules"
4522 echores "$_xv"
4525 echocheck "XvMC"
4526 if test "$_xv" = yes && test "$_xvmc" != no ; then
4527 _xvmc=no
4528 cat > $TMPC <<EOF
4529 #include <X11/Xlib.h>
4530 #include <X11/extensions/Xvlib.h>
4531 #include <X11/extensions/XvMClib.h>
4532 int main(void) {
4533 (void) XvMCQueryExtension(0,0,0);
4534 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4535 return 0; }
4537 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4538 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4539 done
4541 if test "$_xvmc" = yes ; then
4542 def_xvmc='#define CONFIG_XVMC 1'
4543 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
4544 _vomodules="xvmc $_vomodules"
4545 _res_comment="using $_xvmclib"
4546 else
4547 def_xvmc='#define CONFIG_XVMC 0'
4548 _novomodules="xvmc $_novomodules"
4549 _libavdecoders=$(echo $_libavdecoders | sed -e s/MPEG_XVMC_DECODER//)
4551 echores "$_xvmc"
4554 echocheck "VDPAU"
4555 if test "$_vdpau" = auto ; then
4556 _vdpau=no
4557 if test "$_dl" = yes ; then
4558 cat > $TMPC <<EOF
4559 #include <vdpau/vdpau_x11.h>
4560 int main(void) {
4561 (void) vdp_device_create_x11(0, 0, 0, 0);
4562 return VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1; }
4564 cc_check -lvdpau && _vdpau=yes
4567 if test "$_vdpau" = yes ; then
4568 def_vdpau='#define CONFIG_VDPAU 1'
4569 libs_mplayer="$libs_mplayer -lvdpau"
4570 _vomodules="vdpau $_vomodules"
4571 else
4572 def_vdpau='#define CONFIG_VDPAU 0'
4573 _novomodules="vdpau $_novomodules"
4574 _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//)
4576 echores "$_vdpau"
4579 echocheck "Xinerama"
4580 if test "$_xinerama" = auto ; then
4581 cat > $TMPC <<EOF
4582 #include <X11/Xlib.h>
4583 #include <X11/extensions/Xinerama.h>
4584 int main(void) { (void) XineramaIsActive(0); return 0; }
4586 _xinerama=no
4587 cc_check -lXinerama && _xinerama=yes
4590 if test "$_xinerama" = yes ; then
4591 def_xinerama='#define CONFIG_XINERAMA 1'
4592 libs_mplayer="$libs_mplayer -lXinerama"
4593 else
4594 def_xinerama='#undef CONFIG_XINERAMA'
4596 echores "$_xinerama"
4599 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4600 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4601 # named 'X extensions' or something similar.
4602 # This check may be useful for future mplayer versions (to change resolution)
4603 # If you run into problems, remove '-lXxf86vm'.
4604 echocheck "Xxf86vm"
4605 if test "$_vm" = auto ; then
4606 cat > $TMPC <<EOF
4607 #include <X11/Xlib.h>
4608 #include <X11/extensions/xf86vmode.h>
4609 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4611 _vm=no
4612 cc_check -lXxf86vm && _vm=yes
4614 if test "$_vm" = yes ; then
4615 def_vm='#define CONFIG_XF86VM 1'
4616 libs_mplayer="$libs_mplayer -lXxf86vm"
4617 else
4618 def_vm='#undef CONFIG_XF86VM'
4620 echores "$_vm"
4622 # Check for the presence of special keycodes, like audio control buttons
4623 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4624 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4625 # have these new keycodes.
4626 echocheck "XF86keysym"
4627 if test "$_xf86keysym" = auto; then
4628 _xf86keysym=no
4629 cat > $TMPC <<EOF
4630 #include <X11/Xlib.h>
4631 #include <X11/XF86keysym.h>
4632 int main(void) { return XF86XK_AudioPause; }
4634 cc_check && _xf86keysym=yes
4636 if test "$_xf86keysym" = yes ; then
4637 def_xf86keysym='#define CONFIG_XF86XK 1'
4638 else
4639 def_xf86keysym='#undef CONFIG_XF86XK'
4641 echores "$_xf86keysym"
4643 echocheck "DGA"
4644 if test "$_dga2" = auto && test "$_x11" = yes ; then
4645 cat > $TMPC << EOF
4646 #include <X11/Xlib.h>
4647 #include <X11/extensions/xf86dga.h>
4648 int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4650 _dga2=no
4651 cc_check -lXxf86dga && _dga2=yes
4653 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4654 cat > $TMPC << EOF
4655 #include <X11/Xlib.h>
4656 #include <X11/extensions/xf86dga.h>
4657 int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4659 _dga1=no
4660 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4663 _dga=no
4664 def_dga='#undef CONFIG_DGA'
4665 def_dga1='#undef CONFIG_DGA1'
4666 def_dga2='#undef CONFIG_DGA2'
4667 if test "$_dga1" = yes ; then
4668 _dga=yes
4669 def_dga1='#define CONFIG_DGA1 1'
4670 _res_comment="using DGA 1.0"
4671 elif test "$_dga2" = yes ; then
4672 _dga=yes
4673 def_dga2='#define CONFIG_DGA2 1'
4674 _res_comment="using DGA 2.0"
4676 if test "$_dga" = yes ; then
4677 def_dga='#define CONFIG_DGA 1'
4678 libs_mplayer="$libs_mplayer -lXxf86dga"
4679 _vomodules="dga $_vomodules"
4680 else
4681 _novomodules="dga $_novomodules"
4683 echores "$_dga"
4686 echocheck "3dfx"
4687 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4688 def_3dfx='#define CONFIG_3DFX 1'
4689 _vomodules="3dfx $_vomodules"
4690 else
4691 def_3dfx='#undef CONFIG_3DFX'
4692 _novomodules="3dfx $_novomodules"
4694 echores "$_3dfx"
4697 echocheck "VIDIX"
4698 def_vidix='#undef CONFIG_VIDIX'
4699 def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4700 _vidix_drv_cyberblade=no
4701 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4702 _vidix_drv_ivtv=no
4703 def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4704 _vidix_drv_mach64=no
4705 def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4706 _vidix_drv_mga=no
4707 def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4708 _vidix_drv_mga_crtc2=no
4709 def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4710 _vidix_drv_nvidia=no
4711 def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4712 _vidix_drv_pm2=no
4713 def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4714 _vidix_drv_pm3=no
4715 def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4716 _vidix_drv_radeon=no
4717 def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4718 _vidix_drv_rage128=no
4719 def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4720 _vidix_drv_s3=no
4721 def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU'
4722 _vidix_drv_sh_veu=no
4723 def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4724 _vidix_drv_sis=no
4725 def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4726 _vidix_drv_unichrome=no
4727 if test "$_vidix" = auto ; then
4728 _vidix=no
4729 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4730 && _vidix=yes
4731 x86_64 && win32 && _vidix=no
4732 (ppc || alpha) && linux && _vidix=yes
4734 echores "$_vidix"
4736 if test "$_vidix" = yes ; then
4737 def_vidix='#define CONFIG_VIDIX 1'
4738 _vomodules="cvidix $_vomodules"
4739 # FIXME: ivtv driver temporarily disabled until we have a proper test
4740 #test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4741 test "$_vidix_drivers" || _vidix_drivers="cyberblade mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4743 # some vidix drivers are architecture and os specific, discard them elsewhere
4744 x86 || _vidix_drivers=$(echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//)
4745 (test $host_arch = "sh" && linux) || _vidix_drivers=$(echo $_vidix_drivers | sed s/sh_veu//)
4747 for driver in $_vidix_drivers ; do
4748 uc_driver=$(echo $driver | tr '[a-z]' '[A-Z]')
4749 eval _vidix_drv_${driver}=yes
4750 eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4751 done
4753 echocheck "VIDIX PCI device name database"
4754 echores "$_vidix_pcidb"
4755 if test "$_vidix_pcidb" = yes ; then
4756 _vidix_pcidb_val=1
4757 else
4758 _vidix_pcidb_val=0
4761 echocheck "VIDIX dhahelper support"
4762 test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER
4763 echores "$_dhahelper"
4765 echocheck "VIDIX svgalib_helper support"
4766 test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER
4767 echores "$_svgalib_helper"
4769 else
4770 _novomodules="cvidix $_novomodules"
4773 if test "$_vidix" = yes && win32; then
4774 winvidix=yes
4775 _vomodules="winvidix $_vomodules"
4776 libs_mplayer="$libs_mplayer -lgdi32"
4777 else
4778 _novomodules="winvidix $_novomodules"
4780 if test "$_vidix" = yes && test "$_x11" = yes; then
4781 xvidix=yes
4782 _vomodules="xvidix $_vomodules"
4783 else
4784 _novomodules="xvidix $_novomodules"
4787 echocheck "/dev/mga_vid"
4788 if test "$_mga" = auto ; then
4789 _mga=no
4790 test -c /dev/mga_vid && _mga=yes
4792 if test "$_mga" = yes ; then
4793 def_mga='#define CONFIG_MGA 1'
4794 _vomodules="mga $_vomodules"
4795 else
4796 def_mga='#undef CONFIG_MGA'
4797 _novomodules="mga $_novomodules"
4799 echores "$_mga"
4801 echocheck "xmga"
4802 if test "$_xmga" = auto ; then
4803 _xmga=no
4804 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
4806 if test "$_xmga" = yes ; then
4807 def_xmga='#define CONFIG_XMGA 1'
4808 _vomodules="xmga $_vomodules"
4809 else
4810 def_xmga='#undef CONFIG_XMGA'
4811 _novomodules="xmga $_novomodules"
4813 echores "$_xmga"
4816 echocheck "GGI"
4817 if test "$_ggi" = auto ; then
4818 cat > $TMPC << EOF
4819 #include <ggi/ggi.h>
4820 int main(void) { ggiInit(); return 0; }
4822 _ggi=no
4823 cc_check -lggi && _ggi=yes
4825 if test "$_ggi" = yes ; then
4826 def_ggi='#define CONFIG_GGI 1'
4827 libs_mplayer="$libs_mplayer -lggi"
4828 _vomodules="ggi $_vomodules"
4829 else
4830 def_ggi='#undef CONFIG_GGI'
4831 _novomodules="ggi $_novomodules"
4833 echores "$_ggi"
4835 echocheck "GGI extension: libggiwmh"
4836 if test "$_ggiwmh" = auto ; then
4837 _ggiwmh=no
4838 cat > $TMPC << EOF
4839 #include <ggi/ggi.h>
4840 #include <ggi/wmh.h>
4841 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4843 cc_check -lggi -lggiwmh && _ggiwmh=yes
4845 # needed to get right output on obscure combination
4846 # like --disable-ggi --enable-ggiwmh
4847 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4848 def_ggiwmh='#define CONFIG_GGIWMH 1'
4849 libs_mplayer="$libs_mplayer -lggiwmh"
4850 else
4851 _ggiwmh=no
4852 def_ggiwmh='#undef CONFIG_GGIWMH'
4854 echores "$_ggiwmh"
4857 echocheck "AA"
4858 if test "$_aa" = auto ; then
4859 cat > $TMPC << EOF
4860 #include <aalib.h>
4861 extern struct aa_hardware_params aa_defparams;
4862 extern struct aa_renderparams aa_defrenderparams;
4863 int main(void) {
4864 aa_context *c;
4865 aa_renderparams *p;
4866 (void) aa_init(0, 0, 0);
4867 c = aa_autoinit(&aa_defparams);
4868 p = aa_getrenderparams();
4869 aa_autoinitkbd(c,0);
4870 return 0; }
4872 _aa=no
4873 for _ld_tmp in "-laa" ; do
4874 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4875 done
4877 if test "$_aa" = yes ; then
4878 def_aa='#define CONFIG_AA 1'
4879 if cygwin ; then
4880 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4882 _vomodules="aa $_vomodules"
4883 else
4884 def_aa='#undef CONFIG_AA'
4885 _novomodules="aa $_novomodules"
4887 echores "$_aa"
4890 echocheck "CACA"
4891 if test "$_caca" = auto ; then
4892 _caca=no
4893 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4894 cat > $TMPC << EOF
4895 #include <caca.h>
4896 #ifdef CACA_API_VERSION_1
4897 #include <caca0.h>
4898 #endif
4899 int main(void) { (void) caca_init(); return 0; }
4901 cc_check $(caca-config --libs) && _caca=yes
4904 if test "$_caca" = yes ; then
4905 def_caca='#define CONFIG_CACA 1'
4906 extra_cflags="$extra_cflags $(caca-config --cflags)"
4907 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4908 _vomodules="caca $_vomodules"
4909 else
4910 def_caca='#undef CONFIG_CACA'
4911 _novomodules="caca $_novomodules"
4913 echores "$_caca"
4916 echocheck "SVGAlib"
4917 if test "$_svga" = auto ; then
4918 cat > $TMPC << EOF
4919 #include <vga.h>
4920 int main(void) { return 0; }
4922 _svga=no
4923 cc_check -lvga $_ld_lm && _svga=yes
4925 if test "$_svga" = yes ; then
4926 def_svga='#define CONFIG_SVGALIB 1'
4927 libs_mplayer="$libs_mplayer -lvga"
4928 _vomodules="svga $_vomodules"
4929 else
4930 def_svga='#undef CONFIG_SVGALIB'
4931 _novomodules="svga $_novomodules"
4933 echores "$_svga"
4936 echocheck "FBDev"
4937 if test "$_fbdev" = auto ; then
4938 _fbdev=no
4939 linux && _fbdev=yes
4941 if test "$_fbdev" = yes ; then
4942 def_fbdev='#define CONFIG_FBDEV 1'
4943 _vomodules="fbdev $_vomodules"
4944 else
4945 def_fbdev='#undef CONFIG_FBDEV'
4946 _novomodules="fbdev $_novomodules"
4948 echores "$_fbdev"
4952 echocheck "DVB"
4953 if test "$_dvb" = auto ; then
4954 _dvb=no
4955 cat >$TMPC << EOF
4956 #include <poll.h>
4957 #include <sys/ioctl.h>
4958 #include <stdio.h>
4959 #include <time.h>
4960 #include <unistd.h>
4961 #include <ost/dmx.h>
4962 #include <ost/frontend.h>
4963 #include <ost/sec.h>
4964 #include <ost/video.h>
4965 #include <ost/audio.h>
4966 int main(void) {return 0;}
4968 for _inc_tmp in "" "-I/usr/src/DVB/ost/include" ; do
4969 cc_check $_inc_tmp && _dvb=yes && \
4970 extra_cflags="$extra_cflags $_inc_tmp" && break
4971 done
4973 echores "$_dvb"
4974 if test "$_dvb" = yes ; then
4975 def_dvb='#define CONFIG_DVB 1'
4976 def_dvbin='#define CONFIG_DVBIN 1'
4977 _aomodules="mpegpes(dvb) $_aomodules"
4978 _vomodules="mpegpes(dvb) $_vomodules"
4981 echocheck "DVB HEAD"
4982 if test "$_dvbhead" = auto ; then
4983 _dvbhead=no
4985 cat >$TMPC << EOF
4986 #include <poll.h>
4987 #include <sys/ioctl.h>
4988 #include <stdio.h>
4989 #include <time.h>
4990 #include <unistd.h>
4991 #include <linux/dvb/dmx.h>
4992 #include <linux/dvb/frontend.h>
4993 #include <linux/dvb/video.h>
4994 #include <linux/dvb/audio.h>
4995 int main(void) {return 0;}
4997 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4998 cc_check $_inc_tmp && _dvbhead=yes && \
4999 extra_cflags="$extra_cflags $_inc_tmp" && break
5000 done
5002 echores "$_dvbhead"
5003 if test "$_dvbhead" = yes ; then
5004 def_dvb='#define CONFIG_DVB 1'
5005 def_dvb_head='#define CONFIG_DVB_HEAD 1'
5006 def_dvbin='#define CONFIG_DVBIN 1'
5007 _aomodules="mpegpes(dvb) $_aomodules"
5008 _vomodules="mpegpes(dvb) $_vomodules"
5011 if test "$_dvbhead" = no && test "$_dvb" = no ; then
5012 def_dvb='#undef CONFIG_DVB'
5013 def_dvb_head='#undef CONFIG_DVB_HEAD'
5014 def_dvbin='#undef CONFIG_DVBIN '
5015 _aomodules="mpegpes(file) $_aomodules"
5016 _vomodules="mpegpes(file) $_vomodules"
5019 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
5020 _dvbin=yes
5021 _inputmodules="dvb $_inputmodules"
5022 else
5023 _dvbin=no
5024 _noinputmodules="dvb $_noinputmodules"
5028 if darwin; then
5030 echocheck "QuickTime"
5031 if test "$quicktime" = auto ; then
5032 cat > $TMPC <<EOF
5033 #include <QuickTime/QuickTime.h>
5034 int main(void) {
5035 ImageDescription *desc;
5036 EnterMovies();
5037 ExitMovies();
5038 return 0;
5041 quicktime=no
5042 cc_check -framework QuickTime && quicktime=yes
5044 if test "$quicktime" = yes ; then
5045 extra_ldflags="$extra_ldflags -framework QuickTime"
5046 def_quicktime='#define CONFIG_QUICKTIME 1'
5047 else
5048 def_quicktime='#undef CONFIG_QUICKTIME'
5049 _quartz=no
5051 echores $quicktime
5053 echocheck "Quartz"
5054 if test "$_quartz" = auto ; then
5055 cat > $TMPC <<EOF
5056 #include <Carbon/Carbon.h>
5057 int main(void) {
5058 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
5059 return 0;
5062 _quartz=no
5063 cc_check -framework Carbon && _quartz=yes
5065 if test "$_quartz" = yes ; then
5066 libs_mplayer="$libs_mplayer -framework Carbon"
5067 def_quartz='#define CONFIG_QUARTZ 1'
5068 _vomodules="quartz $_vomodules"
5069 else
5070 def_quartz='#undef CONFIG_QUARTZ'
5071 _novomodules="quartz $_novomodules"
5073 echores $_quartz
5075 echocheck "CoreVideo"
5076 if test "$_corevideo" = auto ; then
5077 cat > $TMPC <<EOF
5078 #include <Carbon/Carbon.h>
5079 #include <CoreServices/CoreServices.h>
5080 #include <OpenGL/OpenGL.h>
5081 #include <QuartzCore/CoreVideo.h>
5082 int main(void) { return 0; }
5084 _corevideo=no
5085 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
5087 if test "$_corevideo" = yes ; then
5088 _vomodules="corevideo $_vomodules"
5089 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
5090 def_corevideo='#define CONFIG_COREVIDEO 1'
5091 else
5092 _novomodules="corevideo $_novomodules"
5093 def_corevideo='#undef CONFIG_COREVIDEO'
5095 echores "$_corevideo"
5097 fi #if darwin
5100 # make sure this stays below CoreVideo to avoid issues due to namespace
5101 # conflicts between -lGL and -framework OpenGL
5102 echocheck "OpenGL"
5103 #Note: this test is run even with --enable-gl since we autodetect linker flags
5104 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
5105 cat > $TMPC << EOF
5106 #ifdef GL_WIN32
5107 #include <windows.h>
5108 #include <GL/gl.h>
5109 #else
5110 #include <GL/gl.h>
5111 #include <X11/Xlib.h>
5112 #include <GL/glx.h>
5113 #endif
5114 int main(void) {
5115 #ifdef GL_WIN32
5116 HDC dc;
5117 wglCreateContext(dc);
5118 #else
5119 glXCreateContext(NULL, NULL, NULL, True);
5120 #endif
5121 glFinish();
5122 return 0;
5125 _gl=no
5126 for _ld_tmp in -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do
5127 if cc_check $_ld_tmp $_ld_lm ; then
5128 _gl=yes
5129 _gl_x11=yes
5130 libs_mplayer="$libs_mplayer $_ld_tmp $_ld_dl"
5131 break
5133 done
5134 if cc_check -DGL_WIN32 -lopengl32 ; then
5135 _gl=yes
5136 _gl_win32=yes
5137 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
5139 else
5140 _gl=no
5142 if test "$_gl" = yes ; then
5143 def_gl='#define CONFIG_GL 1'
5144 _res_comment="backends:"
5145 if test "$_gl_win32" = yes ; then
5146 def_gl_win32='#define CONFIG_GL_WIN32 1'
5147 _res_comment="$_res_comment win32"
5149 if test "$_gl_x11" = yes ; then
5150 def_gl_x11='#define CONFIG_GL_X11 1'
5151 _res_comment="$_res_comment x11"
5153 _vomodules="opengl $_vomodules"
5154 else
5155 def_gl='#undef CONFIG_GL'
5156 def_gl_win32='#undef CONFIG_GL_WIN32'
5157 def_gl_x11='#undef CONFIG_GL_X11'
5158 _novomodules="opengl $_novomodules"
5160 echores "$_gl"
5163 echocheck "MatrixView"
5164 if test "$_gl" = no ; then
5165 matrixview=no
5167 if test "$matrixview" = yes ; then
5168 _vomodules="matrixview $_vomodules"
5169 def_matrixview='#define CONFIG_MATRIXVIEW 1'
5170 else
5171 _novomodules="matrixview $_novomodules"
5172 def_matrixview='#undef CONFIG_MATRIXVIEW'
5174 echores "$matrixview"
5177 echocheck "PNG support"
5178 if test "$_png" = auto ; then
5179 _png=no
5180 if irix ; then
5181 # Don't check for -lpng on irix since it has its own libpng
5182 # incompatible with the GNU libpng
5183 _res_comment="disabled on irix (not GNU libpng)"
5184 else
5185 cat > $TMPC << EOF
5186 #include <png.h>
5187 #include <string.h>
5188 int main(void) {
5189 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
5190 printf("libpng: %s\n", png_libpng_ver);
5191 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
5194 cc_check -lpng -lz $_ld_lm && _png=yes
5197 echores "$_png"
5198 if test "$_png" = yes ; then
5199 def_png='#define CONFIG_PNG 1'
5200 extra_ldflags="$extra_ldflags -lpng -lz"
5201 else
5202 def_png='#undef CONFIG_PNG'
5205 echocheck "MNG support"
5206 if test "$_mng" = auto ; then
5207 _mng=no
5208 cat > $TMPC << EOF
5209 #include <libmng.h>
5210 int main(void) {
5211 const char * p_ver = mng_version_text();
5212 return !p_ver || p_ver[0] == 0;
5215 if cc_check -lmng -lz $_ld_lm ; then
5216 _mng=yes
5219 echores "$_mng"
5220 if test "$_mng" = yes ; then
5221 def_mng='#define CONFIG_MNG 1'
5222 extra_ldflags="$extra_ldflags -lmng -lz"
5223 else
5224 def_mng='#undef CONFIG_MNG'
5227 echocheck "JPEG support"
5228 if test "$_jpeg" = auto ; then
5229 _jpeg=no
5230 cat > $TMPC << EOF
5231 #include <stdio.h>
5232 #include <stdlib.h>
5233 #include <setjmp.h>
5234 #include <string.h>
5235 #include <jpeglib.h>
5236 int main(void) { return 0; }
5238 cc_check -ljpeg $_ld_lm && _jpeg=yes
5240 echores "$_jpeg"
5242 if test "$_jpeg" = yes ; then
5243 def_jpeg='#define CONFIG_JPEG 1'
5244 _vomodules="jpeg $_vomodules"
5245 extra_ldflags="$extra_ldflags -ljpeg"
5246 else
5247 def_jpeg='#undef CONFIG_JPEG'
5248 _novomodules="jpeg $_novomodules"
5252 echocheck "OpenJPEG (JPEG2000) support"
5253 if test "$libopenjpeg" = auto ; then
5254 libopenjpeg=no
5255 cat > $TMPC << EOF
5256 #define OPJ_STATIC
5257 #include <openjpeg.h>
5258 int main(void) { opj_dparameters_t dec_params; opj_set_default_decoder_parameters(&dec_params); return 0; }
5260 cc_check -lopenjpeg $_ld_lm && libopenjpeg=yes
5262 echores "$libopenjpeg"
5263 if test "$libopenjpeg" = yes ; then
5264 def_libopenjpeg='#define CONFIG_LIBOPENJPEG 1'
5265 extra_ldflags="$extra_ldflags -lopenjpeg"
5266 _libavdecoders="$_libavdecoders LIBOPENJPEG_DECODER"
5267 _libavencoders="$_libavencoders LIBOPENJPEG_ENCODER"
5268 _codecmodules="OpenJPEG $_codecmodules"
5269 else
5270 def_libopenjpeg='#define CONFIG_LIBOPENJPEG 0'
5271 _nocodecmodules="OpenJPEG $_nocodecmodules"
5275 echocheck "PNM support"
5276 if test "$_pnm" = yes; then
5277 def_pnm="#define CONFIG_PNM 1"
5278 _vomodules="pnm $_vomodules"
5279 else
5280 def_pnm="#undef CONFIG_PNM"
5281 _novomodules="pnm $_novomodules"
5283 echores "$_pnm"
5287 echocheck "GIF support"
5288 # This is to appease people who want to force gif support.
5289 # If it is forced to yes, then we still do checks to determine
5290 # which gif library to use.
5291 if test "$_gif" = yes ; then
5292 _force_gif=yes
5293 _gif=auto
5296 if test "$_gif" = auto ; then
5297 _gif=no
5298 cat > $TMPC << EOF
5299 #include <gif_lib.h>
5300 int main(void) { return 0; }
5302 for _ld_gif in "-lungif" "-lgif" ; do
5303 cc_check $_ld_gif && _gif=yes && break
5304 done
5307 # If no library was found, and the user wants support forced,
5308 # then we force it on with libgif, as this is the safest
5309 # assumption IMHO. (libungif & libregif both create symbolic
5310 # links to libgif. We also assume that no x11 support is needed,
5311 # because if you are forcing this, then you _should_ know what
5312 # you are doing. [ Besides, package maintainers should never
5313 # have compiled x11 deps into libungif in the first place. ] )
5314 # </rant>
5315 # --Joey
5316 if test "$_force_gif" = yes && test "$_gif" = no ; then
5317 _gif=yes
5318 _ld_gif="-lgif"
5321 if test "$_gif" = yes ; then
5322 def_gif='#define CONFIG_GIF 1'
5323 _codecmodules="gif $_codecmodules"
5324 _vomodules="gif89a $_vomodules"
5325 _res_comment="old version, some encoding functions disabled"
5326 def_gif_4='#undef CONFIG_GIF_4'
5327 extra_ldflags="$extra_ldflags $_ld_gif"
5329 cat > $TMPC << EOF
5330 #include <signal.h>
5331 #include <gif_lib.h>
5332 void catch() { exit(1); }
5333 int main(void) {
5334 signal(SIGSEGV, catch); // catch segfault
5335 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
5336 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
5337 return 0;
5340 if cc_check "$_ld_gif" ; then
5341 def_gif_4='#define CONFIG_GIF_4 1'
5342 _res_comment=""
5344 else
5345 def_gif='#undef CONFIG_GIF'
5346 def_gif_4='#undef CONFIG_GIF_4'
5347 _novomodules="gif89a $_novomodules"
5348 _nocodecmodules="gif $_nocodecmodules"
5350 echores "$_gif"
5353 case "$_gif" in yes*)
5354 echocheck "broken giflib workaround"
5355 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
5357 cat > $TMPC << EOF
5358 #include <gif_lib.h>
5359 int main(void) {
5360 GifFileType gif;
5361 printf("UserData is at address %p\n", gif.UserData);
5362 return 0;
5365 if cc_check "$_ld_gif" ; then
5366 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
5367 echores "disabled"
5368 else
5369 echores "enabled"
5372 esac
5375 echocheck "VESA support"
5376 if test "$_vesa" = auto ; then
5377 cat > $TMPC << EOF
5378 #include <vbe.h>
5379 int main(void) { vbeVersion(); return 0; }
5381 _vesa=no
5382 cc_check -lvbe -llrmi && _vesa=yes
5384 if test "$_vesa" = yes ; then
5385 def_vesa='#define CONFIG_VESA 1'
5386 libs_mplayer="$libs_mplayer -lvbe -llrmi"
5387 _vomodules="vesa $_vomodules"
5388 else
5389 def_vesa='#undef CONFIG_VESA'
5390 _novomodules="vesa $_novomodules"
5392 echores "$_vesa"
5394 #################
5395 # VIDEO + AUDIO #
5396 #################
5399 echocheck "SDL"
5400 _inc_tmp=""
5401 _ld_tmp=""
5402 def_sdl_sdl_h="#undef CONFIG_SDL_SDL_H"
5403 if test -z "$_sdlconfig" ; then
5404 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
5405 _sdlconfig="sdl-config"
5406 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
5407 _sdlconfig="sdl11-config"
5408 else
5409 _sdlconfig=false
5412 if test "$_sdl" = auto || test "$_sdl" = yes ; then
5413 cat > $TMPC << EOF
5414 #ifdef CONFIG_SDL_SDL_H
5415 #include <SDL/SDL.h>
5416 #else
5417 #include <SDL.h>
5418 #endif
5419 #ifndef __APPLE__
5420 // we allow SDL hacking our main() only on OSX
5421 #undef main
5422 #endif
5423 int main(int argc, char *argv[]) {
5424 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
5425 return 0;
5428 _sdl=no
5429 for _ld_tmp in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" "-lSDL -lwinmm -lgdi32 -ldxguid" ; do
5430 if cc_check -DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then
5431 _sdl=yes
5432 def_sdl_sdl_h="#define CONFIG_SDL_SDL_H 1"
5433 break
5435 done
5436 if test "$_sdl" = no && "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
5437 _res_comment="using $_sdlconfig"
5438 if cygwin ; then
5439 _inc_tmp="$($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
5440 _ld_tmp="$($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
5441 elif mingw32 ; then
5442 _inc_tmp=$($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)
5443 _ld_tmp=$($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)
5444 else
5445 _inc_tmp="$($_sdlconfig --cflags)"
5446 _ld_tmp="$($_sdlconfig --libs)"
5448 if cc_check $_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then
5449 _sdlversion=$($_sdlconfig --version | sed 's/[^0-9]//g')
5450 if test "$_sdlversion" -gt 116 ; then
5451 if test "$_sdlversion" -lt 121 ; then
5452 def_sdlbuggy='#define BUGGY_SDL'
5453 else
5454 def_sdlbuggy='#undef BUGGY_SDL'
5456 _sdl=yes
5461 if test "$_sdl" = yes ; then
5462 def_sdl='#define CONFIG_SDL 1'
5463 extra_cflags="$extra_cflags $_inc_tmp"
5464 libs_mplayer="$libs_mplayer $_ld_tmp"
5465 _vomodules="sdl $_vomodules"
5466 _aomodules="sdl $_aomodules"
5467 else
5468 def_sdl='#undef CONFIG_SDL'
5469 _novomodules="sdl $_novomodules"
5470 _noaomodules="sdl $_noaomodules"
5472 echores "$_sdl"
5475 if os2 ; then
5476 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
5477 if test "$_kva" = auto; then
5478 cat > $TMPC << EOF
5479 #include <os2.h>
5480 #include <kva.h>
5481 int main( void ) { return 0; }
5483 _kva=no;
5484 cc_check -lkva && _kva=yes
5486 if test "$_kva" = yes ; then
5487 def_kva='#define CONFIG_KVA 1'
5488 libs_mplayer="$libs_mplayer -lkva"
5489 _vomodules="kva $_vomodules"
5490 else
5491 def_kva='#undef CONFIG_KVA'
5492 _novomodules="kva $_novomodules"
5494 echores "$_kva"
5495 fi #if os2
5498 if win32; then
5500 echocheck "Windows waveout"
5501 if test "$_win32waveout" = auto ; then
5502 cat > $TMPC << EOF
5503 #include <windows.h>
5504 #include <mmsystem.h>
5505 int main(void) { return 0; }
5507 _win32waveout=no
5508 cc_check -lwinmm && _win32waveout=yes
5510 if test "$_win32waveout" = yes ; then
5511 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
5512 libs_mplayer="$libs_mplayer -lwinmm"
5513 _aomodules="win32 $_aomodules"
5514 else
5515 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
5516 _noaomodules="win32 $_noaomodules"
5518 echores "$_win32waveout"
5520 echocheck "Direct3D"
5521 if test "$_direct3d" = auto ; then
5522 cat > $TMPC << EOF
5523 #include <windows.h>
5524 #include <d3d9.h>
5525 int main(void) { return 0; }
5527 _direct3d=no
5528 cc_check && _direct3d=yes
5530 if test "$_direct3d" = yes ; then
5531 def_direct3d='#define CONFIG_DIRECT3D 1'
5532 _vomodules="direct3d $_vomodules"
5533 else
5534 def_direct3d='#undef CONFIG_DIRECT3D'
5535 _novomodules="direct3d $_novomodules"
5537 echores "$_direct3d"
5539 echocheck "Directx"
5540 if test "$_directx" = auto ; then
5541 cat > $TMPC << EOF
5542 #include <windows.h>
5543 #include <ddraw.h>
5544 #include <dsound.h>
5545 int main(void) { return 0; }
5547 _directx=no
5548 cc_check -lgdi32 && _directx=yes
5550 if test "$_directx" = yes ; then
5551 def_directx='#define CONFIG_DIRECTX 1'
5552 libs_mplayer="$libs_mplayer -lgdi32"
5553 _vomodules="directx $_vomodules"
5554 _aomodules="dsound $_aomodules"
5555 else
5556 def_directx='#undef CONFIG_DIRECTX'
5557 _novomodules="directx $_novomodules"
5558 _noaomodules="dsound $_noaomodules"
5560 echores "$_directx"
5562 fi #if win32; then
5565 echocheck "DXR2"
5566 if test "$_dxr2" = auto; then
5567 _dxr2=no
5568 cat > $TMPC << EOF
5569 #include <dxr2ioctl.h>
5570 int main(void) { return 0; }
5572 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
5573 cc_check $_inc_tmp && _dxr2=yes && \
5574 extra_cflags="$extra_cflags $_inc_tmp" && break
5575 done
5577 if test "$_dxr2" = yes; then
5578 def_dxr2='#define CONFIG_DXR2 1'
5579 _aomodules="dxr2 $_aomodules"
5580 _vomodules="dxr2 $_vomodules"
5581 else
5582 def_dxr2='#undef CONFIG_DXR2'
5583 _noaomodules="dxr2 $_noaomodules"
5584 _novomodules="dxr2 $_novomodules"
5586 echores "$_dxr2"
5588 echocheck "DXR3/H+"
5589 if test "$_dxr3" = auto ; then
5590 cat > $TMPC << EOF
5591 #include <linux/em8300.h>
5592 int main(void) { return 0; }
5594 _dxr3=no
5595 cc_check && _dxr3=yes
5597 if test "$_dxr3" = yes ; then
5598 def_dxr3='#define CONFIG_DXR3 1'
5599 _vomodules="dxr3 $_vomodules"
5600 else
5601 def_dxr3='#undef CONFIG_DXR3'
5602 _novomodules="dxr3 $_novomodules"
5604 echores "$_dxr3"
5607 echocheck "IVTV TV-Out (pre linux-2.6.24)"
5608 if test "$_ivtv" = auto ; then
5609 cat > $TMPC << EOF
5610 #include <stdlib.h>
5611 #include <inttypes.h>
5612 #include <linux/types.h>
5613 #include <linux/videodev2.h>
5614 #include <linux/ivtv.h>
5615 #include <sys/ioctl.h>
5616 int main(void) {
5617 struct ivtv_cfg_stop_decode sd;
5618 struct ivtv_cfg_start_decode sd1;
5619 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
5620 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
5621 return 0; }
5623 _ivtv=no
5624 cc_check && _ivtv=yes
5626 if test "$_ivtv" = yes ; then
5627 def_ivtv='#define CONFIG_IVTV 1'
5628 _vomodules="ivtv $_vomodules"
5629 _aomodules="ivtv $_aomodules"
5630 else
5631 def_ivtv='#undef CONFIG_IVTV'
5632 _novomodules="ivtv $_novomodules"
5633 _noaomodules="ivtv $_noaomodules"
5635 echores "$_ivtv"
5638 echocheck "V4L2 MPEG Decoder"
5639 if test "$_v4l2" = auto ; then
5640 cat > $TMPC << EOF
5641 #include <stdlib.h>
5642 #include <inttypes.h>
5643 #include <linux/types.h>
5644 #include <linux/videodev2.h>
5645 #include <linux/version.h>
5646 int main(void) {
5647 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
5648 #error kernel headers too old, need 2.6.22
5649 #endif
5650 struct v4l2_ext_controls ctrls;
5651 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
5652 return 0;
5655 _v4l2=no
5656 cc_check && _v4l2=yes
5658 if test "$_v4l2" = yes ; then
5659 def_v4l2='#define CONFIG_V4L2_DECODER 1'
5660 _vomodules="v4l2 $_vomodules"
5661 _aomodules="v4l2 $_aomodules"
5662 else
5663 def_v4l2='#undef CONFIG_V4L2_DECODER'
5664 _novomodules="v4l2 $_novomodules"
5665 _noaomodules="v4l2 $_noaomodules"
5667 echores "$_v4l2"
5671 #########
5672 # AUDIO #
5673 #########
5676 echocheck "OSS Audio"
5677 if test "$_ossaudio" = auto ; then
5678 cat > $TMPC << EOF
5679 #include <sys/ioctl.h>
5680 #include <$_soundcard_header>
5681 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5683 _ossaudio=no
5684 cc_check && _ossaudio=yes
5686 if test "$_ossaudio" = yes ; then
5687 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
5688 _aomodules="oss $_aomodules"
5689 if test "$_linux_devfs" = yes; then
5690 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
5691 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
5692 else
5693 cat > $TMPC << EOF
5694 #include <sys/ioctl.h>
5695 #include <$_soundcard_header>
5696 #ifdef OPEN_SOUND_SYSTEM
5697 int main(void) { return 0; }
5698 #else
5699 #error Not the real thing
5700 #endif
5702 _real_ossaudio=no
5703 cc_check && _real_ossaudio=yes
5704 if test "$_real_ossaudio" = yes; then
5705 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5706 elif netbsd || openbsd ; then
5707 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5708 extra_ldflags="$extra_ldflags -lossaudio"
5709 else
5710 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5712 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5714 else
5715 def_ossaudio='#undef CONFIG_OSS_AUDIO'
5716 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5717 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5718 _noaomodules="oss $_noaomodules"
5720 echores "$_ossaudio"
5723 echocheck "aRts"
5724 if test "$_arts" = auto ; then
5725 _arts=no
5726 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5728 cat > $TMPC << EOF
5729 #include <artsc.h>
5730 int main(void) { return 0; }
5732 cc_check $(artsc-config --libs) $(artsc-config --cflags) && _arts=yes
5737 if test "$_arts" = yes ; then
5738 def_arts='#define CONFIG_ARTS 1'
5739 _aomodules="arts $_aomodules"
5740 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
5741 extra_cflags="$extra_cflags $(artsc-config --cflags)"
5742 else
5743 _noaomodules="arts $_noaomodules"
5745 echores "$_arts"
5748 echocheck "EsounD"
5749 if test "$_esd" = auto ; then
5750 _esd=no
5751 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5753 cat > $TMPC << EOF
5754 #include <esd.h>
5755 int main(void) { int fd = esd_open_sound("test"); return fd; }
5757 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd=yes
5761 echores "$_esd"
5763 if test "$_esd" = yes ; then
5764 def_esd='#define CONFIG_ESD 1'
5765 _aomodules="esd $_aomodules"
5766 libs_mplayer="$libs_mplayer $(esd-config --libs)"
5767 extra_cflags="$extra_cflags $(esd-config --cflags)"
5769 echocheck "esd_get_latency()"
5770 cat > $TMPC << EOF
5771 #include <esd.h>
5772 int main(void) { return esd_get_latency(0); }
5774 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
5775 echores "$_esd_latency"
5776 else
5777 def_esd='#undef CONFIG_ESD'
5778 def_esd_latency='#undef CONFIG_ESD_LATENCY'
5779 _noaomodules="esd $_noaomodules"
5783 echocheck "NAS"
5784 if test "$_nas" = auto ; then
5785 cat > $TMPC << EOF
5786 #include <audio/audiolib.h>
5787 int main(void) { return 0; }
5789 _nas=no
5790 cc_check $_ld_lm -laudio -lXt && _nas=yes
5792 if test "$_nas" = yes ; then
5793 def_nas='#define CONFIG_NAS 1'
5794 libs_mplayer="$libs_mplayer -laudio -lXt"
5795 _aomodules="nas $_aomodules"
5796 else
5797 _noaomodules="nas $_noaomodules"
5798 def_nas='#undef CONFIG_NAS'
5800 echores "$_nas"
5803 echocheck "pulse"
5804 if test "$_pulse" = auto ; then
5805 _pulse=no
5806 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5808 cat > $TMPC << EOF
5809 #include <pulse/pulseaudio.h>
5810 int main(void) { return 0; }
5812 cc_check $($_pkg_config --libs --cflags libpulse) && _pulse=yes
5816 echores "$_pulse"
5818 if test "$_pulse" = yes ; then
5819 def_pulse='#define CONFIG_PULSE 1'
5820 _aomodules="pulse $_aomodules"
5821 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
5822 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
5823 else
5824 def_pulse='#undef CONFIG_PULSE'
5825 _noaomodules="pulse $_noaomodules"
5829 echocheck "JACK"
5830 if test "$_jack" = auto ; then
5831 _jack=yes
5833 cat > $TMPC << EOF
5834 #include <jack/jack.h>
5835 int main(void) { jack_client_open("test", JackUseExactName, NULL); return 0; }
5837 if cc_check -ljack ; then
5838 libs_mplayer="$libs_mplayer -ljack"
5839 elif cc_check $($_pkg_config --libs --cflags --silence-errors jack) ; then
5840 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
5841 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
5842 else
5843 _jack=no
5847 if test "$_jack" = yes ; then
5848 def_jack='#define CONFIG_JACK 1'
5849 _aomodules="jack $_aomodules"
5850 else
5851 _noaomodules="jack $_noaomodules"
5853 echores "$_jack"
5855 echocheck "OpenAL"
5856 if test "$_openal" = auto ; then
5857 _openal=no
5858 cat > $TMPC << EOF
5859 #ifdef OPENAL_AL_H
5860 #include <OpenAL/al.h>
5861 #else
5862 #include <AL/al.h>
5863 #endif
5864 int main(void) {
5865 alSourceQueueBuffers(0, 0, 0);
5866 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5867 return 0;
5870 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5871 cc_check $I && _openal=yes && break
5872 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5873 done
5874 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
5876 if test "$_openal" = yes ; then
5877 def_openal='#define CONFIG_OPENAL 1'
5878 _aomodules="openal $_aomodules"
5879 else
5880 _noaomodules="openal $_noaomodules"
5882 echores "$_openal"
5884 echocheck "ALSA audio"
5885 if test "$_alloca" != yes ; then
5886 _alsa=no
5887 _res_comment="alloca missing"
5889 if test "$_alsa" != no ; then
5890 _alsa=no
5891 cat > $TMPC << EOF
5892 #include <sys/time.h>
5893 #include <sys/asoundlib.h>
5894 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5895 #error "alsa version != 0.5.x"
5896 #endif
5897 int main(void) { return 0; }
5899 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5901 cat > $TMPC << EOF
5902 #include <sys/time.h>
5903 #include <sys/asoundlib.h>
5904 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5905 #error "alsa version != 0.9.x"
5906 #endif
5907 int main(void) { return 0; }
5909 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5910 cat > $TMPC << EOF
5911 #include <sys/time.h>
5912 #include <alsa/asoundlib.h>
5913 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5914 #error "alsa version != 0.9.x"
5915 #endif
5916 int main(void) { return 0; }
5918 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5920 cat > $TMPC << EOF
5921 #include <sys/time.h>
5922 #include <sys/asoundlib.h>
5923 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5924 #error "alsa version != 1.0.x"
5925 #endif
5926 int main(void) { return 0; }
5928 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5929 cat > $TMPC << EOF
5930 #include <sys/time.h>
5931 #include <alsa/asoundlib.h>
5932 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5933 #error "alsa version != 1.0.x"
5934 #endif
5935 int main(void) { return 0; }
5937 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5939 def_alsa='#undef CONFIG_ALSA'
5940 def_alsa5='#undef CONFIG_ALSA5'
5941 def_alsa9='#undef CONFIG_ALSA9'
5942 def_alsa1x='#undef CONFIG_ALSA1X'
5943 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5944 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5945 if test "$_alsaver" ; then
5946 _alsa=yes
5947 if test "$_alsaver" = '0.5.x' ; then
5948 _alsa5=yes
5949 _aomodules="alsa5 $_aomodules"
5950 def_alsa5='#define CONFIG_ALSA5 1'
5951 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5952 _res_comment="using alsa 0.5.x and sys/asoundlib.h"
5953 elif test "$_alsaver" = '0.9.x-sys' ; then
5954 _alsa9=yes
5955 _aomodules="alsa $_aomodules"
5956 def_alsa='#define CONFIG_ALSA 1'
5957 def_alsa9='#define CONFIG_ALSA9 1'
5958 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5959 _res_comment="using alsa 0.9.x and sys/asoundlib.h"
5960 elif test "$_alsaver" = '0.9.x-alsa' ; then
5961 _alsa9=yes
5962 _aomodules="alsa $_aomodules"
5963 def_alsa='#define CONFIG_ALSA 1'
5964 def_alsa9='#define CONFIG_ALSA9 1'
5965 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5966 _res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5967 elif test "$_alsaver" = '1.0.x-sys' ; then
5968 _alsa1x=yes
5969 _aomodules="alsa $_aomodules"
5970 def_alsa='#define CONFIG_ALSA 1'
5971 def_alsa1x="#define CONFIG_ALSA1X 1"
5972 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5973 _res_comment="using alsa 1.0.x and sys/asoundlib.h"
5974 elif test "$_alsaver" = '1.0.x-alsa' ; then
5975 _alsa1x=yes
5976 _aomodules="alsa $_aomodules"
5977 def_alsa='#define CONFIG_ALSA 1'
5978 def_alsa1x="#define CONFIG_ALSA1X 1"
5979 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5980 _res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5981 else
5982 _alsa=no
5983 _res_comment="unknown version"
5985 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5986 else
5987 _noaomodules="alsa $_noaomodules"
5989 echores "$_alsa"
5992 echocheck "Sun audio"
5993 if test "$_sunaudio" = auto ; then
5994 cat > $TMPC << EOF
5995 #include <sys/types.h>
5996 #include <sys/audioio.h>
5997 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5999 _sunaudio=no
6000 cc_check && _sunaudio=yes
6002 if test "$_sunaudio" = yes ; then
6003 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
6004 _aomodules="sun $_aomodules"
6005 else
6006 def_sunaudio='#undef CONFIG_SUN_AUDIO'
6007 _noaomodules="sun $_noaomodules"
6009 echores "$_sunaudio"
6012 def_mlib='#define CONFIG_MLIB 0'
6013 if sunos; then
6014 echocheck "Sun mediaLib"
6015 if test "$_mlib" = auto ; then
6016 _mlib=no
6017 cat > $TMPC << EOF
6018 #include <mlib.h>
6019 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
6021 cc_check -lmlib && _mlib=yes && def_mlib='#define CONFIG_MLIB 1'
6023 echores "$_mlib"
6024 fi #if sunos
6027 if darwin; then
6028 echocheck "CoreAudio"
6029 if test "$_coreaudio" = auto ; then
6030 cat > $TMPC <<EOF
6031 #include <CoreAudio/CoreAudio.h>
6032 #include <AudioToolbox/AudioToolbox.h>
6033 #include <AudioUnit/AudioUnit.h>
6034 int main(void) { return 0; }
6036 _coreaudio=no
6037 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
6039 if test "$_coreaudio" = yes ; then
6040 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
6041 def_coreaudio='#define CONFIG_COREAUDIO 1'
6042 _aomodules="coreaudio $_aomodules"
6043 else
6044 def_coreaudio='#undef CONFIG_COREAUDIO'
6045 _noaomodules="coreaudio $_noaomodules"
6047 echores $_coreaudio
6048 fi #if darwin
6051 if irix; then
6052 echocheck "SGI audio"
6053 if test "$_sgiaudio" = auto ; then
6054 # check for SGI audio
6055 cat > $TMPC << EOF
6056 #include <dmedia/audio.h>
6057 int main(void) { return 0; }
6059 _sgiaudio=no
6060 cc_check && _sgiaudio=yes
6062 if test "$_sgiaudio" = "yes" ; then
6063 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
6064 libs_mplayer="$libs_mplayer -laudio"
6065 _aomodules="sgi $_aomodules"
6066 else
6067 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
6068 _noaomodules="sgi $_noaomodules"
6070 echores "$_sgiaudio"
6071 fi #if irix
6074 if os2 ; then
6075 echocheck "KAI (UNIAUD/DART)"
6076 if test "$_kai" = auto; then
6077 cat > $TMPC << EOF
6078 #include <os2.h>
6079 #include <kai.h>
6080 int main(void) { return 0; }
6082 _kai=no;
6083 cc_check -lkai && _kai=yes
6085 if test "$_kai" = yes ; then
6086 def_kai='#define CONFIG_KAI 1'
6087 libs_mplayer="$libs_mplayer -lkai"
6088 _aomodules="kai $_aomodules"
6089 else
6090 def_kai='#undef CONFIG_KAI'
6091 _noaomodules="kai $_noaomodules"
6093 echores "$_kai"
6095 echocheck "DART"
6096 if test "$_dart" = auto; then
6097 cat > $TMPC << EOF
6098 #include <os2.h>
6099 #include <dart.h>
6100 int main( void ) { return 0; }
6102 _dart=no;
6103 cc_check -ldart && _dart=yes
6105 if test "$_dart" = yes ; then
6106 def_dart='#define CONFIG_DART 1'
6107 libs_mplayer="$libs_mplayer -ldart"
6108 _aomodules="dart $_aomodules"
6109 else
6110 def_dart='#undef CONFIG_DART'
6111 _noaomodules="dart $_noaomodules"
6113 echores "$_dart"
6114 fi #if os2
6117 # set default CD/DVD devices
6118 if win32 || os2 ; then
6119 default_cdrom_device="D:"
6120 elif darwin ; then
6121 default_cdrom_device="/dev/disk1"
6122 elif dragonfly ; then
6123 default_cdrom_device="/dev/cd0"
6124 elif freebsd ; then
6125 default_cdrom_device="/dev/acd0"
6126 elif openbsd ; then
6127 default_cdrom_device="/dev/rcd0a"
6128 elif sunos ; then
6129 default_cdrom_device="/vol/dev/aliases/cdrom0"
6130 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
6131 # file system and the volfs service.
6132 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
6133 elif amigaos ; then
6134 default_cdrom_device="a1ide.device:2"
6135 else
6136 default_cdrom_device="/dev/cdrom"
6139 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
6140 default_dvd_device=$default_cdrom_device
6141 elif darwin ; then
6142 default_dvd_device="/dev/rdiskN"
6143 else
6144 default_dvd_device="/dev/dvd"
6148 echocheck "VCD support"
6149 if test "$_vcd" = auto; then
6150 _vcd=no
6151 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos; then
6152 _vcd=yes
6153 elif mingw32; then
6154 cat > $TMPC << EOF
6155 #include <ddk/ntddcdrm.h>
6156 int main(void) { return 0; }
6158 cc_check && _vcd=yes
6161 if test "$_vcd" = yes; then
6162 _inputmodules="vcd $_inputmodules"
6163 def_vcd='#define CONFIG_VCD 1'
6164 else
6165 def_vcd='#undef CONFIG_VCD'
6166 _noinputmodules="vcd $_noinputmodules"
6167 _res_comment="not supported on this OS"
6169 echores "$_vcd"
6173 echocheck "dvdread"
6174 if test "$_dvdread_internal" = auto ; then
6175 _dvdread_internal=no
6176 _dvdread=no
6177 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
6178 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
6179 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
6180 || darwin || win32 || os2; then
6181 _dvdread_internal=yes
6182 _dvdread=yes
6183 extra_cflags="-Ilibdvdread4 $extra_cflags"
6185 elif test "$_dvdread" = auto ; then
6186 _dvdread=no
6187 if test "$_dl" = yes; then
6188 cat > $TMPC << EOF
6189 #include <inttypes.h>
6190 #include <dvdread/dvd_reader.h>
6191 #include <dvdread/ifo_types.h>
6192 #include <dvdread/ifo_read.h>
6193 #include <dvdread/nav_read.h>
6194 int main(void) { return 0; }
6196 _dvdreadcflags=$($_dvdreadconfig --cflags)
6197 _dvdreadlibs=$($_dvdreadconfig --libs)
6198 if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
6199 $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
6200 _dvdread=yes
6201 extra_cflags="$extra_cflags $_dvdreadcflags"
6202 extra_ldflags="$extra_ldflags $_dvdreadlibs"
6203 _res_comment="external"
6208 if test "$_dvdread_internal" = yes; then
6209 def_dvdread='#define CONFIG_DVDREAD 1'
6210 _inputmodules="dvdread(internal) $_inputmodules"
6211 _largefiles=yes
6212 _res_comment="internal"
6213 elif test "$_dvdread" = yes; then
6214 def_dvdread='#define CONFIG_DVDREAD 1'
6215 _largefiles=yes
6216 extra_ldflags="$extra_ldflags -ldvdread"
6217 _inputmodules="dvdread(external) $_inputmodules"
6218 _res_comment="external"
6219 else
6220 def_dvdread='#undef CONFIG_DVDREAD'
6221 _noinputmodules="dvdread $_noinputmodules"
6223 echores "$_dvdread"
6226 echocheck "internal libdvdcss"
6227 if test "$_libdvdcss_internal" = auto ; then
6228 _libdvdcss_internal=no
6229 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
6230 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
6232 if test "$_libdvdcss_internal" = yes ; then
6233 if linux || netbsd || openbsd || bsdos ; then
6234 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
6235 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
6236 elif freebsd || dragonfly ; then
6237 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
6238 elif darwin ; then
6239 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
6240 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
6241 elif cygwin ; then
6242 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
6243 elif beos ; then
6244 cflags_libdvdcss="-DSYS_BEOS"
6245 elif os2 ; then
6246 cflags_libdvdcss="-DSYS_OS2"
6248 cflags_libdvdcss_dvdread="-Ilibdvdcss"
6249 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
6250 _inputmodules="libdvdcss(internal) $_inputmodules"
6251 _largefiles=yes
6252 else
6253 _noinputmodules="libdvdcss(internal) $_noinputmodules"
6255 echores "$_libdvdcss_internal"
6258 echocheck "cdparanoia"
6259 if test "$_cdparanoia" = auto ; then
6260 cat > $TMPC <<EOF
6261 #include <cdda_interface.h>
6262 #include <cdda_paranoia.h>
6263 // This need a better test. How ?
6264 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
6266 _cdparanoia=no
6267 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
6268 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
6269 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
6270 done
6272 if test "$_cdparanoia" = yes ; then
6273 _cdda='yes'
6274 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
6275 openbsd && extra_ldflags="$extra_ldflags -lutil"
6277 echores "$_cdparanoia"
6280 echocheck "libcdio"
6281 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
6282 cat > $TMPC << EOF
6283 #include <stdio.h>
6284 #include <cdio/version.h>
6285 #include <cdio/cdda.h>
6286 #include <cdio/paranoia.h>
6287 int main(void) {
6288 void *test = cdda_verbose_set;
6289 printf("%s\n", CDIO_VERSION);
6290 return test == (void *)1;
6293 _libcdio=no
6294 for _ld_tmp in "" "-lwinmm" ; do
6295 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
6296 cc_check $_ld_tmp $_ld_lm \
6297 && _libcdio=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6298 done
6299 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
6300 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
6301 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
6302 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
6303 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6306 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
6307 _cdda='yes'
6308 def_libcdio='#define CONFIG_LIBCDIO 1'
6309 def_havelibcdio='yes'
6310 else
6311 if test "$_cdparanoia" = yes ; then
6312 _res_comment="using cdparanoia"
6314 def_libcdio='#undef CONFIG_LIBCDIO'
6315 def_havelibcdio='no'
6317 echores "$_libcdio"
6319 if test "$_cdda" = yes ; then
6320 test $_cddb = auto && test $_network = yes && _cddb=yes
6321 def_cdparanoia='#define CONFIG_CDDA 1'
6322 _inputmodules="cdda $_inputmodules"
6323 else
6324 def_cdparanoia='#undef CONFIG_CDDA'
6325 _noinputmodules="cdda $_noinputmodules"
6328 if test "$_cddb" = yes ; then
6329 def_cddb='#define CONFIG_CDDB 1'
6330 _inputmodules="cddb $_inputmodules"
6331 else
6332 _cddb=no
6333 def_cddb='#undef CONFIG_CDDB'
6334 _noinputmodules="cddb $_noinputmodules"
6337 echocheck "bitmap font support"
6338 if test "$_bitmap_font" = yes ; then
6339 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
6340 else
6341 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
6343 echores "$_bitmap_font"
6346 echocheck "freetype >= 2.0.9"
6348 # freetype depends on iconv
6349 if test "$_iconv" = no ; then
6350 _freetype=no
6351 _res_comment="iconv support needed"
6354 if test "$_freetype" = auto ; then
6355 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
6356 cat > $TMPC << EOF
6357 #include <stdio.h>
6358 #include <ft2build.h>
6359 #include FT_FREETYPE_H
6360 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
6361 #error "Need FreeType 2.0.9 or newer"
6362 #endif
6363 int main(void) {
6364 FT_Library library;
6365 FT_Int major=-1,minor=-1,patch=-1;
6366 int err=FT_Init_FreeType(&library);
6367 return 0;
6370 _freetype=no
6371 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
6372 else
6373 _freetype=no
6376 if test "$_freetype" = yes ; then
6377 def_freetype='#define CONFIG_FREETYPE 1'
6378 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
6379 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
6380 else
6381 def_freetype='#undef CONFIG_FREETYPE'
6383 echores "$_freetype"
6385 if test "$_freetype" = no ; then
6386 _fontconfig=no
6387 _res_comment="FreeType support needed"
6389 echocheck "fontconfig"
6390 if test "$_fontconfig" = auto ; then
6391 cat > $TMPC << EOF
6392 #include <stdio.h>
6393 #include <stdlib.h>
6394 #include <fontconfig/fontconfig.h>
6395 #if FC_VERSION < 20402
6396 #error At least version 2.4.2 of fontconfig required
6397 #endif
6398 int main(void) {
6399 int err = FcInit();
6400 if (err == FcFalse) {
6401 printf("Couldn't initialize fontconfig lib\n");
6402 exit(err);
6404 return 0;
6407 _fontconfig=no
6408 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" "-lexpat -lfreetype -lz -liconv" ; do
6409 _ld_tmp="-lfontconfig $_ld_tmp"
6410 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6411 done
6412 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
6413 _inc_tmp=$($_pkg_config --cflags fontconfig)
6414 _ld_tmp=$($_pkg_config --libs fontconfig)
6415 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
6416 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6419 if test "$_fontconfig" = yes ; then
6420 def_fontconfig='#define CONFIG_FONTCONFIG 1'
6421 else
6422 def_fontconfig='#undef CONFIG_FONTCONFIG'
6424 echores "$_fontconfig"
6427 echocheck "SSA/ASS support"
6428 # libass depends on FreeType
6429 if test "$_freetype" = no ; then
6430 _ass=no
6431 ass_internal=no
6432 _res_comment="FreeType support needed"
6435 if test "$_ass" = auto ; then
6436 cat > $TMPC << EOF
6437 #include <ft2build.h>
6438 #include FT_FREETYPE_H
6439 #if ((FREETYPE_MAJOR < 2) || (FREETYPE_MINOR < 2) || ((FREETYPE_MINOR == 2) && (FREETYPE_PATCH < 1)))
6440 #error "Need FreeType 2.2.1 or newer"
6441 #endif
6442 int main(void) { return 0; }
6444 _ass=no
6445 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _ass=yes
6446 if test "$_ass" = no ; then
6447 ass_internal=no
6448 _res_comment="FreeType >= 2.2.1 needed"
6449 elif test "$ass_internal" = no ; then
6450 _res_comment="external"
6451 extra_ldflags="$extra_ldflags -lass"
6454 if test "$_ass" = yes ; then
6455 def_ass='#define CONFIG_ASS 1'
6456 else
6457 def_ass='#undef CONFIG_ASS'
6459 if test "$ass_internal" = yes ; then
6460 def_ass_internal='#define CONFIG_ASS_INTERNAL 1'
6461 else
6462 def_ass_internal='#undef CONFIG_ASS_INTERNAL'
6464 echores "$_ass"
6467 echocheck "fribidi with charsets"
6468 _inc_tmp=""
6469 _ld_tmp=""
6470 if test "$_fribidi" = auto ; then
6471 cat > $TMPC << EOF
6472 #include <stdio.h>
6473 #include <stdlib.h>
6474 /* workaround for fribidi 0.10.4 and below */
6475 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
6476 #include <fribidi/fribidi.h>
6477 int main(void) {
6478 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
6479 printf("Fribidi headers are not consistents with the library!\n");
6480 exit(1);
6482 return 0;
6485 _fribidi=no
6486 _inc_tmp=""
6487 _ld_tmp="-lfribidi"
6488 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6489 if $_fribidiconfig --version > /dev/null 2>&1 &&
6490 test "$_fribidi" = no ; then
6491 _inc_tmp="$($_fribidiconfig --cflags)"
6492 _ld_tmp="$($_fribidiconfig --libs)"
6493 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6496 if test "$_fribidi" = yes ; then
6497 def_fribidi='#define CONFIG_FRIBIDI 1'
6498 extra_cflags="$extra_cflags $_inc_tmp"
6499 extra_ldflags="$extra_ldflags $_ld_tmp"
6500 else
6501 def_fribidi='#undef CONFIG_FRIBIDI'
6503 echores "$_fribidi"
6506 echocheck "ENCA"
6507 if test "$_enca" = auto ; then
6508 cat > $TMPC << EOF
6509 #include <sys/types.h>
6510 #include <enca.h>
6511 int main(void) {
6512 const char **langs;
6513 size_t langcnt;
6514 langs = enca_get_languages(&langcnt);
6515 return 0;
6518 _enca=no
6519 cc_check -lenca $_ld_lm && _enca=yes
6521 if test "$_enca" = yes ; then
6522 def_enca='#define CONFIG_ENCA 1'
6523 extra_ldflags="$extra_ldflags -lenca"
6524 else
6525 def_enca='#undef CONFIG_ENCA'
6527 echores "$_enca"
6530 echocheck "zlib"
6531 cat > $TMPC << EOF
6532 #include <zlib.h>
6533 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
6535 _zlib=no
6536 cc_check -lz && _zlib=yes
6537 if test "$_zlib" = yes ; then
6538 def_zlib='#define CONFIG_ZLIB 1'
6539 extra_ldflags="$extra_ldflags -lz"
6540 else
6541 def_zlib='#define CONFIG_ZLIB 0'
6542 _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//)
6543 _libavencoders=$(echo $_libavencoders | sed -e s/FLASHSV_ENCODER// -e s/PNG_ENCODER// -e s/ZMBV_ENCODER// -e s/ZLIB_ENCODER//)
6545 echores "$_zlib"
6548 echocheck "bzlib"
6549 bzlib=no
6550 def_bzlib='#define CONFIG_BZLIB 0'
6551 cat > $TMPC << EOF
6552 #include <bzlib.h>
6553 int main(void) { BZ2_bzlibVersion(); return 0; }
6555 cc_check -lbz2 && bzlib=yes
6556 if test "$bzlib" = yes ; then
6557 def_bzlib='#define CONFIG_BZLIB 1'
6558 extra_ldflags="$extra_ldflags -lbz2"
6560 echores "$bzlib"
6563 echocheck "RTC"
6564 if test "$_rtc" = auto ; then
6565 cat > $TMPC << EOF
6566 #include <sys/ioctl.h>
6567 #ifdef __linux__
6568 #include <linux/rtc.h>
6569 #else
6570 #include <rtc.h>
6571 #define RTC_PIE_ON RTCIO_PIE_ON
6572 #endif
6573 int main(void) { return RTC_PIE_ON; }
6575 _rtc=no
6576 cc_check && _rtc=yes
6577 ppc && _rtc=no
6579 if test "$_rtc" = yes ; then
6580 def_rtc='#define HAVE_RTC 1'
6581 else
6582 def_rtc='#undef HAVE_RTC'
6584 echores "$_rtc"
6587 echocheck "liblzo2 support"
6588 if test "$_liblzo" = auto ; then
6589 _liblzo=no
6590 cat > $TMPC << EOF
6591 #include <lzo/lzo1x.h>
6592 int main(void) { lzo_init();return 0; }
6594 cc_check -llzo2 && _liblzo=yes
6596 if test "$_liblzo" = yes ; then
6597 def_liblzo='#define CONFIG_LIBLZO 1'
6598 extra_ldflags="$extra_ldflags -llzo2"
6599 _codecmodules="liblzo $_codecmodules"
6600 else
6601 def_liblzo='#undef CONFIG_LIBLZO'
6602 _nocodecmodules="liblzo $_nocodecmodules"
6604 echores "$_liblzo"
6607 echocheck "mad support"
6608 if test "$_mad" = auto ; then
6609 _mad=no
6610 cat > $TMPC << EOF
6611 #include <mad.h>
6612 int main(void) { return 0; }
6614 cc_check -lmad && _mad=yes
6616 if test "$_mad" = yes ; then
6617 def_mad='#define CONFIG_LIBMAD 1'
6618 extra_ldflags="$extra_ldflags -lmad"
6619 _codecmodules="libmad $_codecmodules"
6620 else
6621 def_mad='#undef CONFIG_LIBMAD'
6622 _nocodecmodules="libmad $_nocodecmodules"
6624 echores "$_mad"
6626 echocheck "Twolame"
6627 if test "$_twolame" = auto ; then
6628 cat > $TMPC <<EOF
6629 #include <twolame.h>
6630 int main(void) { twolame_init(); return 0; }
6632 _twolame=no
6633 cc_check -ltwolame $_ld_lm && _twolame=yes
6635 if test "$_twolame" = yes ; then
6636 def_twolame='#define CONFIG_TWOLAME 1'
6637 libs_mencoder="$libs_mencoder -ltwolame"
6638 _codecmodules="twolame $_codecmodules"
6639 else
6640 def_twolame='#undef CONFIG_TWOLAME'
6641 _nocodecmodules="twolame $_nocodecmodules"
6643 echores "$_twolame"
6645 echocheck "Toolame"
6646 if test "$_toolame" = auto ; then
6647 _toolame=no
6648 if test "$_twolame" = yes ; then
6649 _res_comment="disabled by twolame"
6650 else
6651 cat > $TMPC <<EOF
6652 #include <toolame.h>
6653 int main(void) { toolame_init(); return 0; }
6655 cc_check -ltoolame $_ld_lm && _toolame=yes
6658 if test "$_toolame" = yes ; then
6659 def_toolame='#define CONFIG_TOOLAME 1'
6660 libs_mencoder="$libs_mencoder -ltoolame"
6661 _codecmodules="toolame $_codecmodules"
6662 else
6663 def_toolame='#undef CONFIG_TOOLAME'
6664 _nocodecmodules="toolame $_nocodecmodules"
6666 if test "$_toolamedir" ; then
6667 _res_comment="using $_toolamedir"
6669 echores "$_toolame"
6671 echocheck "OggVorbis support"
6672 if test "$_tremor_internal" = yes; then
6673 _libvorbis=no
6674 elif test "$_tremor" = auto; then
6675 _tremor=no
6676 cat > $TMPC << EOF
6677 #include <tremor/ivorbiscodec.h>
6678 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6680 cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6682 if test "$_libvorbis" = auto; then
6683 _libvorbis=no
6684 cat > $TMPC << EOF
6685 #include <vorbis/codec.h>
6686 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6688 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
6690 if test "$_tremor_internal" = yes ; then
6691 _vorbis=yes
6692 def_vorbis='#define CONFIG_OGGVORBIS 1'
6693 def_tremor='#define CONFIG_TREMOR 1'
6694 _codecmodules="tremor(internal) $_codecmodules"
6695 _res_comment="internal Tremor"
6696 if test "$_tremor_low" = yes ; then
6697 cflags_tremor_low="-D_LOW_ACCURACY_"
6698 _res_comment="internal low accuracy Tremor"
6700 elif test "$_tremor" = yes ; then
6701 _vorbis=yes
6702 def_vorbis='#define CONFIG_OGGVORBIS 1'
6703 def_tremor='#define CONFIG_TREMOR 1'
6704 _codecmodules="tremor(external) $_codecmodules"
6705 _res_comment="external Tremor"
6706 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6707 elif test "$_libvorbis" = yes ; then
6708 _vorbis=yes
6709 def_vorbis='#define CONFIG_OGGVORBIS 1'
6710 _codecmodules="libvorbis $_codecmodules"
6711 _res_comment="libvorbis"
6712 extra_ldflags="$extra_ldflags -lvorbis -logg"
6713 else
6714 _vorbis=no
6715 _nocodecmodules="libvorbis $_nocodecmodules"
6717 echores "$_vorbis"
6719 echocheck "libspeex (version >= 1.1 required)"
6720 if test "$_speex" = auto ; then
6721 _speex=no
6722 cat > $TMPC << EOF
6723 #include <speex/speex.h>
6724 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
6726 cc_check -lspeex $_ld_lm && _speex=yes
6728 if test "$_speex" = yes ; then
6729 def_speex='#define CONFIG_SPEEX 1'
6730 extra_ldflags="$extra_ldflags -lspeex"
6731 _codecmodules="speex $_codecmodules"
6732 else
6733 def_speex='#undef CONFIG_SPEEX'
6734 _nocodecmodules="speex $_nocodecmodules"
6736 echores "$_speex"
6738 echocheck "OggTheora support"
6739 if test "$_theora" = auto ; then
6740 _theora=no
6741 cat > $TMPC << EOF
6742 #include <theora/theora.h>
6743 #include <string.h>
6744 int main(void) {
6745 /* Theora is in flux, make sure that all interface routines and datatypes
6746 * exist and work the way we expect it, so we don't break MPlayer. */
6747 ogg_packet op;
6748 theora_comment tc;
6749 theora_info inf;
6750 theora_state st;
6751 yuv_buffer yuv;
6752 int r;
6753 double t;
6755 theora_info_init(&inf);
6756 theora_comment_init(&tc);
6758 return 0;
6760 /* we don't want to execute this kind of nonsense; just for making sure
6761 * that compilation works... */
6762 memset(&op, 0, sizeof(op));
6763 r = theora_decode_header(&inf, &tc, &op);
6764 r = theora_decode_init(&st, &inf);
6765 t = theora_granule_time(&st, op.granulepos);
6766 r = theora_decode_packetin(&st, &op);
6767 r = theora_decode_YUVout(&st, &yuv);
6768 theora_clear(&st);
6770 return 0;
6773 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6774 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6775 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6776 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6777 if test _theora = no; then
6778 _ld_theora="-ltheora -logg"
6779 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6781 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6782 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6783 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6784 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6785 extra_ldflags="$extra_ldflags $_ld_theora" &&
6786 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6787 if test _theora = no; then
6788 _ld_theora="-ltheora -logg"
6789 cc_check tremor/bitwise.c $_ld_theora &&
6790 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6794 if test "$_theora" = yes ; then
6795 def_theora='#define CONFIG_OGGTHEORA 1'
6796 _codecmodules="libtheora $_codecmodules"
6797 # when --enable-theora is forced, we'd better provide a probably sane
6798 # $_ld_theora than nothing
6799 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6800 else
6801 def_theora='#undef CONFIG_OGGTHEORA'
6802 _nocodecmodules="libtheora $_nocodecmodules"
6804 echores "$_theora"
6806 echocheck "internal mp3lib support"
6807 if test "$_mp3lib" = auto ; then
6808 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _mp3lib=no || _mp3lib=yes
6810 if test "$_mp3lib" = yes ; then
6811 def_mp3lib='#define CONFIG_MP3LIB 1'
6812 _codecmodules="mp3lib(internal) $_codecmodules"
6813 else
6814 def_mp3lib='#undef CONFIG_MP3LIB'
6815 _nocodecmodules="mp3lib(internal) $_nocodecmodules"
6817 echores "$_mp3lib"
6819 echocheck "liba52 support"
6820 if test "$_liba52_internal" = auto ; then
6821 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _liba52_internal=no || _liba52_internal=yes
6823 def_liba52='#undef CONFIG_LIBA52'
6824 def_liba52_internal="#undef CONFIG_LIBA52_INTERNAL"
6825 if test "$_liba52_internal" = yes ; then
6826 _liba52=yes
6827 def_liba52_internal="#define CONFIG_LIBA52_INTERNAL 1"
6828 _res_comment="internal"
6829 elif test "$_liba52_internal" = no && test "$_liba52" = auto ; then
6830 _liba52=no
6831 cat > $TMPC << EOF
6832 #include <inttypes.h>
6833 #include <a52dec/a52.h>
6834 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6836 cc_check -la52 && _liba52=yes && _res_comment="external" && extra_ldflags="$extra_ldflags -la52"
6838 if test "$_liba52" = yes ; then
6839 def_liba52='#define CONFIG_LIBA52 1'
6840 _codecmodules="liba52($_res_comment) $_codecmodules"
6841 else
6842 _nocodecmodules="liba52 $_nocodecmodules"
6844 echores "$_liba52"
6846 echocheck "internal libmpeg2 support"
6847 if test "$_libmpeg2" = auto ; then
6848 _libmpeg2=yes
6849 if alpha && test cc_vendor=gnu; then
6850 case $cc_version in
6851 2*|3.0*|3.1*) # cannot compile MVI instructions
6852 _libmpeg2=no
6853 _res_comment="broken gcc"
6855 esac
6858 if test "$_libmpeg2" = yes ; then
6859 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6860 _codecmodules="libmpeg2(internal) $_codecmodules"
6861 else
6862 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6863 _nocodecmodules="libmpeg2(internal) $_nocodecmodules"
6865 echores "$_libmpeg2"
6867 echocheck "libdca support"
6868 if test "$_libdca" = auto ; then
6869 _libdca=no
6870 cat > $TMPC << EOF
6871 #include <inttypes.h>
6872 #include <dts.h>
6873 int main(void) { dts_init(0); return 0; }
6875 for _ld_dca in -ldca -ldts ; do
6876 cc_check $_ld_dca $_ld_lm && extra_ldflags="$extra_ldflags $_ld_dca" \
6877 && _libdca=yes && break
6878 done
6880 if test "$_libdca" = yes ; then
6881 def_libdca='#define CONFIG_LIBDCA 1'
6882 _codecmodules="libdca $_codecmodules"
6883 else
6884 def_libdca='#undef CONFIG_LIBDCA'
6885 _nocodecmodules="libdca $_nocodecmodules"
6887 echores "$_libdca"
6889 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6890 if test "$_musepack" = auto ; then
6891 _musepack=no
6892 cat > $TMPC << EOF
6893 #include <stddef.h>
6894 #include <mpcdec/mpcdec.h>
6895 int main(void) {
6896 mpc_streaminfo info;
6897 mpc_decoder decoder;
6898 mpc_decoder_set_streaminfo(&decoder, &info);
6899 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6900 return 0;
6903 cc_check -lmpcdec $_ld_lm && _musepack=yes
6905 if test "$_musepack" = yes ; then
6906 def_musepack='#define CONFIG_MUSEPACK 1'
6907 extra_ldflags="$extra_ldflags -lmpcdec"
6908 _codecmodules="musepack $_codecmodules"
6909 else
6910 def_musepack='#undef CONFIG_MUSEPACK'
6911 _nocodecmodules="musepack $_nocodecmodules"
6913 echores "$_musepack"
6916 echocheck "FAAC support"
6917 if test "$_faac" = auto ; then
6918 cat > $TMPC <<EOF
6919 #include <inttypes.h>
6920 #include <faac.h>
6921 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6923 _faac=no
6924 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6925 cc_check -O4 $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6926 done
6928 if test "$_faac" = yes ; then
6929 def_faac="#define CONFIG_FAAC 1"
6930 test "$_faac_lavc" = auto && _faac_lavc=yes
6931 if test "$_faac_lavc" = yes ; then
6932 def_faac_lavc="#define CONFIG_LIBFAAC 1"
6933 libs_mplayer="$libs_mplayer $_ld_faac"
6934 _libavencoders="$_libavencoders LIBFAAC_ENCODER"
6936 _codecmodules="faac $_codecmodules"
6937 else
6938 _faac_lavc=no
6939 def_faac="#undef CONFIG_FAAC"
6940 def_faac_lavc="#define CONFIG_LIBFAAC 0"
6941 _nocodecmodules="faac $_nocodecmodules"
6943 _res_comment="in libavcodec: $_faac_lavc"
6944 echores "$_faac"
6947 echocheck "FAAD2 support"
6948 if test "$_faad_internal" = auto ; then
6949 if x86_32 && test cc_vendor=gnu; then
6950 case $cc_version in
6951 3.1*|3.2) # ICE/insn with these versions
6952 _faad_internal=no
6953 _res_comment="broken gcc"
6956 _faad=yes
6957 _faad_internal=yes
6959 esac
6960 else
6961 _faad=yes
6962 _faad_internal=yes
6965 if test "$_faad" = auto ; then
6966 cat > $TMPC << EOF
6967 #include <faad.h>
6968 #ifndef FAAD_MIN_STREAMSIZE
6969 #error Too old version
6970 #endif
6971 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6972 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6974 cc_check -lfaad $_ld_lm && _faad=yes
6977 def_faad='#undef CONFIG_FAAD'
6978 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6979 if test "$_faad_internal" = yes ; then
6980 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6981 _res_comment="internal floating-point"
6982 if test "$_faad_fixed" = yes ; then
6983 # The FIXED_POINT implementation of FAAD2 improves performance
6984 # on some platforms, especially for SBR files.
6985 cflags_faad_fixed="-DFIXED_POINT"
6986 _res_comment="internal fixed-point"
6988 elif test "$_faad" = yes ; then
6989 extra_ldflags="$extra_ldflags -lfaad"
6992 if test "$_faad" = yes ; then
6993 def_faad='#define CONFIG_FAAD 1'
6994 if test "$_faad_internal" = yes ; then
6995 _codecmodules="faad2(internal) $_codecmodules"
6996 else
6997 _codecmodules="faad2 $_codecmodules"
6999 else
7000 _faad=no
7001 _nocodecmodules="faad2 $_nocodecmodules"
7003 echores "$_faad"
7006 echocheck "LADSPA plugin support"
7007 if test "$_ladspa" = auto ; then
7008 cat > $TMPC <<EOF
7009 #include <stdio.h>
7010 #include <ladspa.h>
7011 int main(void) {
7012 const LADSPA_Descriptor *ld = NULL;
7013 return 0;
7016 _ladspa=no
7017 cc_check && _ladspa=yes
7019 if test "$_ladspa" = yes; then
7020 def_ladspa="#define CONFIG_LADSPA 1"
7021 else
7022 def_ladspa="#undef CONFIG_LADSPA"
7024 echores "$_ladspa"
7027 echocheck "libbs2b audio filter support"
7028 if test "$_libbs2b" = auto ; then
7029 cat > $TMPC <<EOF
7030 #include <bs2b.h>
7031 #if BS2B_VERSION_MAJOR < 3
7032 #error Please use libbs2b >= 3.0.0, older versions are not supported.
7033 #endif
7034 int main(void) {
7035 t_bs2bdp filter;
7036 filter=bs2b_open();
7037 bs2b_close(filter);
7038 return 0;
7041 _libbs2b=no
7042 if $_pkg_config --exists libbs2b ; then
7043 _inc_tmp=$($_pkg_config --cflags libbs2b)
7044 _ld_tmp=$($_pkg_config --libs libbs2b)
7045 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
7046 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
7047 else
7048 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
7049 -I/usr/local/include/bs2b ; do
7050 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
7051 extra_ldflags="$extra_ldflags -lbs2b"
7052 extra_cflags="$extra_cflags $_inc_tmp"
7053 _libbs2b=yes
7054 break
7056 done
7059 def_libbs2b="#undef CONFIG_LIBBS2B"
7060 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
7061 echores "$_libbs2b"
7064 if test -z "$_codecsdir" ; then
7065 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
7066 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
7067 if test -d "$dir" ; then
7068 _codecsdir="$dir"
7069 break;
7071 done
7073 # Fall back on default directory.
7074 if test -z "$_codecsdir" ; then
7075 _codecsdir="$_libdir/codecs"
7076 mingw32 && _codecsdir="codecs"
7077 os2 && _codecsdir="codecs"
7081 echocheck "Win32 codecs"
7082 if test "$_win32dll" = auto ; then
7083 _win32dll=no
7084 if x86_32 && ! qnx; then
7085 _win32dll=yes
7088 if test "$_win32dll" = yes ; then
7089 def_win32dll='#define CONFIG_WIN32DLL 1'
7090 test -z "$_win32codecsdir" && _win32codecsdir=$_codecsdir
7091 _res_comment="using $_win32codecsdir"
7092 if ! win32 ; then
7093 def_win32_loader='#define WIN32_LOADER 1'
7094 _win32_emulation=yes
7095 else
7096 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
7097 _res_comment="using native windows"
7099 _codecmodules="win32 $_codecmodules"
7100 else
7101 def_win32dll='#undef CONFIG_WIN32DLL'
7102 def_win32_loader='#undef WIN32_LOADER'
7103 _nocodecmodules="win32 $_nocodecmodules"
7105 echores "$_win32dll"
7108 echocheck "XAnim codecs"
7109 if test "$_xanim" = auto ; then
7110 _xanim=no
7111 _res_comment="dynamic loader support needed"
7112 if test "$_dl" = yes ; then
7113 _xanim=yes
7116 if test "$_xanim" = yes ; then
7117 test -z "$_xanimcodecsdir" && _xanimcodecsdir=$_codecsdir
7118 def_xanim='#define CONFIG_XANIM 1'
7119 def_xanim_path="#define XACODEC_PATH \"$_xanimcodecsdir\""
7120 _codecmodules="xanim $_codecmodules"
7121 _res_comment="using $_xanimcodecsdir"
7122 else
7123 def_xanim='#undef CONFIG_XANIM'
7124 def_xanim_path='#undef XACODEC_PATH'
7125 _nocodecmodules="xanim $_nocodecmodules"
7127 echores "$_xanim"
7130 echocheck "RealPlayer codecs"
7131 if test "$_real" = auto ; then
7132 _real=no
7133 _res_comment="dynamic loader support needed"
7134 if test "$_dl" = yes || test "$_win32dll" = yes &&
7135 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32 || os2) ; then
7136 _real=yes
7139 if test "$_real" = yes ; then
7140 test -z "$_realcodecsdir" && _realcodecsdir="$_codecsdir"
7141 def_real='#define CONFIG_REALCODECS 1'
7142 def_real_path="#define REALCODEC_PATH \"$_realcodecsdir\""
7143 _codecmodules="real $_codecmodules"
7144 _res_comment="using $_realcodecsdir"
7145 else
7146 def_real='#undef CONFIG_REALCODECS'
7147 def_real_path="#undef REALCODEC_PATH"
7148 _nocodecmodules="real $_nocodecmodules"
7150 echores "$_real"
7153 echocheck "QuickTime codecs"
7154 _qtx_emulation=no
7155 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
7156 if test "$_qtx" = auto ; then
7157 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
7159 if test "$_qtx" = yes ; then
7160 def_qtx='#define CONFIG_QTX_CODECS 1'
7161 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
7162 _codecmodules="qtx $_codecmodules"
7163 darwin || win32 || _qtx_emulation=yes
7164 else
7165 def_qtx='#undef CONFIG_QTX_CODECS'
7166 _nocodecmodules="qtx $_nocodecmodules"
7168 echores "$_qtx"
7170 echocheck "Nemesi Streaming Media libraries"
7171 if test "$_nemesi" = auto && test "$_network" = yes ; then
7172 _nemesi=no
7173 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
7174 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
7175 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
7176 _nemesi=yes
7179 if test "$_nemesi" = yes; then
7180 _native_rtsp=no
7181 def_nemesi='#define CONFIG_LIBNEMESI 1'
7182 _inputmodules="nemesi $_inputmodules"
7183 else
7184 _native_rtsp="$_network"
7185 _nemesi=no
7186 def_nemesi='#undef CONFIG_LIBNEMESI'
7187 _noinputmodules="nemesi $_noinputmodules"
7189 echores "$_nemesi"
7191 echocheck "LIVE555 Streaming Media libraries"
7192 if test "$_live" = auto && test "$_network" = yes ; then
7193 cat > $TMPCPP << EOF
7194 #include <liveMedia.hh>
7195 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
7196 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
7197 #endif
7198 int main(void) { return 0; }
7201 _live=no
7202 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
7203 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
7204 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
7205 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
7206 $_livelibdir/groupsock/libgroupsock.a \
7207 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
7208 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
7209 $extra_ldflags -lstdc++" \
7210 extra_cxxflags="-I$_livelibdir/liveMedia/include \
7211 -I$_livelibdir/UsageEnvironment/include \
7212 -I$_livelibdir/BasicUsageEnvironment/include \
7213 -I$_livelibdir/groupsock/include" && \
7214 _live=yes && break
7215 done
7216 if test "$_live" != yes ; then
7217 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
7218 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
7219 _live_dist=yes
7223 if test "$_live" = yes && test "$_network" = yes; then
7224 test $_livelibdir && _res_comment="using $_livelibdir"
7225 def_live='#define CONFIG_LIVE555 1'
7226 _inputmodules="live555 $_inputmodules"
7227 elif test "$_live_dist" = yes && test "$_network" = yes; then
7228 _res_comment="using distribution version"
7229 _live="yes"
7230 def_live='#define CONFIG_LIVE555 1'
7231 extra_ldflags="$extra_ldflags $ld_tmp"
7232 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
7233 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
7234 _inputmodules="live555 $_inputmodules"
7235 else
7236 _live=no
7237 def_live='#undef CONFIG_LIVE555'
7238 _noinputmodules="live555 $_noinputmodules"
7240 echores "$_live"
7243 echocheck "FFmpeg libavutil"
7244 if test "$_libavutil_a" = auto ; then
7245 if test -d libavutil ; then
7246 _libavutil_a=yes
7247 _res_comment="static"
7248 else
7249 die "MPlayer will not compile without libavutil in the source tree."
7251 elif test "$_libavutil_so" = auto ; then
7252 _libavutil_so=no
7253 cat > $TMPC << EOF
7254 #include <libavutil/common.h>
7255 int main(void) { av_clip(1, 1, 1); return 0; }
7257 if $_pkg_config --exists libavutil ; then
7258 _inc_libavutil=$($_pkg_config --cflags libavutil)
7259 _ld_tmp=$($_pkg_config --libs libavutil)
7260 cc_check $_inc_libavutil $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7261 && _libavutil_so=yes
7262 elif cc_check -lavutil $_ld_lm ; then
7263 extra_ldflags="$extra_ldflags -lavutil"
7264 _libavutil_so=yes
7265 _res_comment="using libavutil.so, but static libavutil is recommended"
7268 _libavutil=no
7269 def_libavutil='#undef CONFIG_LIBAVUTIL'
7270 def_libavutil_a='#undef CONFIG_LIBAVUTIL_A'
7271 def_libavutil_so='#undef CONFIG_LIBAVUTIL_SO'
7272 test "$_libavutil_a" = yes || test "$_libavutil_so" = yes && _libavutil=yes
7273 test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1'
7274 test "$_libavutil_a" = yes && def_libavutil_a='#define CONFIG_LIBAVUTIL_A 1'
7275 test "$_libavutil_so" = yes && def_libavutil_so='#define CONFIG_LIBAVUTIL_SO 1'
7276 # neither static nor shared libavutil is available, but it is mandatory ...
7277 if test "$_libavutil" = no ; then
7278 die "You need static or shared libavutil, MPlayer will not compile without!"
7280 echores "$_libavutil"
7282 echocheck "FFmpeg libavcodec"
7283 if test "$_libavcodec_a" = auto ; then
7284 _libavcodec_a=no
7285 if test -d libavcodec && test -f libavcodec/utils.c ; then
7286 _libavcodec_a="yes"
7287 _res_comment="static"
7289 elif test "$_libavcodec_so" = auto ; then
7290 _libavcodec_so=no
7291 _res_comment="libavcodec.so is discouraged over static libavcodec"
7292 cat > $TMPC << EOF
7293 #include <libavcodec/avcodec.h>
7294 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
7296 if $_pkg_config --exists libavcodec ; then
7297 _inc_libavcodec=$($_pkg_config --cflags libavcodec)
7298 _ld_tmp=$($_pkg_config --libs libavcodec)
7299 cc_check $_inc_libavcodec $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7300 && _libavcodec_so=yes
7301 elif cc_check -lavcodec $_ld_lm ; then
7302 extra_ldflags="$extra_ldflags -lavcodec"
7303 _libavcodec_so=yes
7304 _res_comment="using libavcodec.so, but static libavcodec is recommended"
7307 _libavcodec=no
7308 def_libavcodec='#undef CONFIG_LIBAVCODEC'
7309 def_libavcodec_a='#undef CONFIG_LIBAVCODEC_A'
7310 def_libavcodec_so='#undef CONFIG_LIBAVCODEC_SO'
7311 test "$_libavcodec_a" = yes || test "$_libavcodec_so" = yes && _libavcodec=yes
7312 test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1'
7313 test "$_libavcodec_a" = yes && def_libavcodec_a='#define CONFIG_LIBAVCODEC_A 1'
7314 test "$_libavcodec_so" = yes && def_libavcodec_so='#define CONFIG_LIBAVCODEC_SO 1'
7315 test "$_libavcodec_mpegaudio_hp" = yes \
7316 && def_libavcodec_mpegaudio_hp='#define CONFIG_MPEGAUDIO_HP 1' \
7317 && mak_libavcodec_mpegaudio_hp='CONFIG_MPEGAUDIO_HP = yes'
7318 if test "$_libavcodec_a" = yes ; then
7319 _codecmodules="libavcodec(internal) $_codecmodules"
7320 elif test "$_libavcodec_so" = yes ; then
7321 _codecmodules="libavcodec.so $_codecmodules"
7322 else
7323 _nocodecmodules="libavcodec $_nocodecmodules"
7325 echores "$_libavcodec"
7327 echocheck "FFmpeg libavformat"
7328 if test "$_libavformat_a" = auto ; then
7329 _libavformat_a=no
7330 if test -d libavformat && test -f libavformat/utils.c ; then
7331 _libavformat_a=yes
7332 _res_comment="static"
7334 elif test "$_libavformat_so" = auto ; then
7335 _libavformat_so=no
7336 cat > $TMPC <<EOF
7337 #include <libavformat/avformat.h>
7338 #include <libavcodec/opt.h>
7339 int main(void) { av_alloc_format_context(); return 0; }
7341 if $_pkg_config --exists libavformat ; then
7342 _inc_libavformat=$($_pkg_config --cflags libavformat)
7343 _ld_tmp=$($_pkg_config --libs libavformat)
7344 cc_check $_inc_libavformat $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7345 && _libavformat_so=yes
7346 elif cc_check $_ld_lm -lavformat ; then
7347 extra_ldflags="$extra_ldflags -lavformat"
7348 _libavformat_so=yes
7349 _res_comment="using libavformat.so, but static libavformat is recommended"
7352 _libavformat=no
7353 def_libavformat='#undef CONFIG_LIBAVFORMAT'
7354 def_libavformat_a='#undef CONFIG_LIBAVFORMAT_A'
7355 def_libavformat_so='#undef CONFIG_LIBAVFORMAT_SO'
7356 test "$_libavformat_a" = yes || test "$_libavformat_so" = yes && _libavformat=yes
7357 test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1'
7358 test "$_libavformat_a" = yes && def_libavformat_a='#define CONFIG_LIBAVFORMAT_A 1'
7359 test "$_libavformat_so" = yes \
7360 && def_libavformat_so='#define CONFIG_LIBAVFORMAT_SO 1'
7361 echores "$_libavformat"
7363 echocheck "FFmpeg libpostproc"
7364 if test "$_libpostproc_a" = auto ; then
7365 _libpostproc_a=no
7366 if test -d libpostproc && test -f libpostproc/postprocess.h ; then
7367 _libpostproc_a='yes'
7368 _res_comment="static"
7370 elif test "$_libpostproc_so" = auto ; then
7371 _libpostproc_so=no
7372 cat > $TMPC << EOF
7373 #include <inttypes.h>
7374 #include <libpostproc/postprocess.h>
7375 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
7377 if cc_check -lpostproc $_ld_lm ; then
7378 extra_ldflags="$extra_ldflags -lpostproc"
7379 _libpostproc_so=yes
7380 _res_comment="using libpostproc.so, but static libpostproc is recommended"
7383 _libpostproc=no
7384 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
7385 def_libpostproc_a='#undef CONFIG_LIBPOSTPROC_A'
7386 def_libpostproc_so='#undef CONFIG_LIBPOSTPROC_SO'
7387 test "$_libpostproc_a" = yes || test "$_libpostproc_so" = yes && _libpostproc=yes
7388 test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
7389 test "$_libpostproc_a" = yes && def_libpostproc_a='#define CONFIG_LIBPOSTPROC_A 1'
7390 test "$_libpostproc_so" = yes \
7391 && def_libpostproc_so='#define CONFIG_LIBPOSTPROC_SO 1'
7392 echores "$_libpostproc"
7394 echocheck "FFmpeg libswscale"
7395 if test "$_libswscale_a" = auto ; then
7396 _libswscale_a=no
7397 if test -d libswscale && test -f libswscale/swscale.h ; then
7398 _libswscale_a='yes'
7399 _res_comment="static"
7401 elif test "$_libswscale_so" = auto ; then
7402 _libswscale_so=no
7403 _res_comment="using libswscale.so, but static libswscale is recommended"
7404 cat > $TMPC << EOF
7405 #include <libswscale/swscale.h>
7406 int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; }
7408 if $_pkg_config --exists libswscale ; then
7409 _inc_libswscale=$($_pkg_config --cflags libswscale)
7410 _ld_tmp=$($_pkg_config --libs libswscale)
7411 cc_check $_inc_libswscale $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7412 && _libswscale_so=yes
7413 elif cc_check -lswscale ; then
7414 extra_ldflags="$extra_ldflags -lswscale"
7415 _libswscale_so=yes
7418 _libswscale=no
7419 def_libswscale='#undef CONFIG_LIBSWSCALE'
7420 def_libswscale_a='#undef CONFIG_LIBSWSCALE_A'
7421 def_libswscale_so='#undef CONFIG_LIBSWSCALE_SO'
7422 test "$_libswscale_a" = yes || test "$_libswscale_so" = yes && _libswscale=yes
7423 test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1'
7424 test "$_libswscale_a" = yes && def_libswscale_a='#define CONFIG_LIBSWSCALE_A 1'
7425 test "$_libswscale_so" = yes \
7426 && def_libswscale_so='#define CONFIG_LIBSWSCALE_SO 1'
7427 echores "$_libswscale"
7429 echocheck "libopencore_amr narrowband"
7430 if test "$_libopencore_amrnb" = auto ; then
7431 _libopencore_amrnb=no
7432 cat > $TMPC << EOF
7433 #include <opencore-amrnb/interf_dec.h>
7434 int main(void) { Decoder_Interface_init(); return 0; }
7436 cc_check -lopencore-amrnb && _libopencore_amrnb=yes
7437 if test "$_libavcodec_a" != yes ; then
7438 _libopencore_amrnb=no
7439 _res_comment="libavcodec (static) is required by libopencore_amrnb, sorry"
7442 if test "$_libopencore_amrnb" = yes ; then
7443 _libopencore_amr=yes
7444 extra_ldflags="$extra_ldflags -lopencore-amrnb"
7445 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 1'
7446 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRNB_DECODER"
7447 _libavencoders="$_libavencoders LIBOPENCORE_AMRNB_ENCODER"
7448 _codecmodules="libopencore_amrnb $_codecmodules"
7449 else
7450 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 0'
7451 _nocodecmodules="libopencore_amrnb $_nocodecmodules"
7453 echores "$_libopencore_amrnb"
7456 echocheck "libopencore_amr wideband"
7457 if test "$_libopencore_amrwb" = auto ; then
7458 _libopencore_amrwb=no
7459 cat > $TMPC << EOF
7460 #include <opencore-amrwb/dec_if.h>
7461 int main(void) { D_IF_init(); return 0; }
7463 cc_check -lopencore-amrwb && _libopencore_amrwb=yes
7464 if test "$_libavcodec_a" != yes ; then
7465 _libopencore_amrwb=no
7466 _res_comment="libavcodec (static) is required by libopencore_amrwb, sorry"
7469 if test "$_libopencore_amrwb" = yes ; then
7470 _libopencore_amr=yes
7471 extra_ldflags="$extra_ldflags -lopencore-amrwb"
7472 def_libopencore_amrwb='#define CONFIG_LIBOPENCORE_AMRWB 1'
7473 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRWB_DECODER"
7474 _libavencoders="$_libavencoders LIBOPENCORE_AMRWB_DECODER"
7475 _codecmodules="libopencore_amrwb $_codecmodules"
7476 else
7477 def_libopencore_amrwb='#define LIBOPENCORE_AMRWB 0'
7478 _nocodecmodules="libopencore_amrwb $_nocodecmodules"
7480 echores "$_libopencore_amrwb"
7482 echocheck "libdv-0.9.5+"
7483 if test "$_libdv" = auto ; then
7484 _libdv=no
7485 cat > $TMPC <<EOF
7486 #include <libdv/dv.h>
7487 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
7489 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
7491 if test "$_libdv" = yes ; then
7492 def_libdv='#define CONFIG_LIBDV095 1'
7493 extra_ldflags="$extra_ldflags -ldv"
7494 _codecmodules="libdv $_codecmodules"
7495 else
7496 def_libdv='#undef CONFIG_LIBDV095'
7497 _nocodecmodules="libdv $_nocodecmodules"
7499 echores "$_libdv"
7502 echocheck "Xvid"
7503 if test "$_xvid" = auto ; then
7504 _xvid=no
7505 cat > $TMPC << EOF
7506 #include <xvid.h>
7507 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
7509 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
7510 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
7511 done
7514 if test "$_xvid" = yes ; then
7515 def_xvid='#define CONFIG_XVID4 1'
7516 _codecmodules="xvid $_codecmodules"
7517 else
7518 def_xvid='#undef CONFIG_XVID4'
7519 _nocodecmodules="xvid $_nocodecmodules"
7521 echores "$_xvid"
7523 echocheck "Xvid two pass plugin"
7524 if test "$_xvid" = yes && test "$_xvid_lavc" = auto ; then
7525 cat > $TMPC << EOF
7526 #include <xvid.h>
7527 int main(void) { xvid_plugin_2pass2_t s; s.vbv_size=0; return 0; }
7529 cc_check && _xvid_lavc=yes
7531 if test "$_xvid_lavc" = yes ; then
7532 def_xvid_lavc='#define CONFIG_LIBXVID 1'
7533 _libavencoders="$_libavencoders LIBXVID_ENCODER"
7534 else
7535 _xvid_lavc=no
7536 def_xvid_lavc='#define CONFIG_LIBXVID 0'
7538 echores "$_xvid_lavc"
7541 echocheck "x264"
7542 if test "$_x264" = auto ; then
7543 cat > $TMPC << EOF
7544 #include <inttypes.h>
7545 #include <x264.h>
7546 #if X264_BUILD < 83
7547 #error We do not support old versions of x264. Get the latest from git.
7548 #endif
7549 int main(void) { x264_encoder_open((void*)0); return 0; }
7551 _x264=no
7552 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
7553 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
7554 done
7557 if test "$_x264" = yes ; then
7558 def_x264='#define CONFIG_X264 1'
7559 _codecmodules="x264 $_codecmodules"
7560 test "$_x264_lavc" = auto && _x264_lavc=yes
7561 if test "$_x264_lavc" = yes ; then
7562 def_x264_lavc='#define CONFIG_LIBX264 1'
7563 libs_mplayer="$libs_mplayer $_ld_x264"
7564 _libavencoders="$_libavencoders LIBX264_ENCODER"
7566 else
7567 _x264_lavc=no
7568 def_x264='#undef CONFIG_X264'
7569 def_x264_lavc='#define CONFIG_LIBX264 0'
7570 _nocodecmodules="x264 $_nocodecmodules"
7572 _res_comment="in libavcodec: $_x264_lavc"
7573 echores "$_x264"
7576 echocheck "libdirac"
7577 if test "$_libdirac_lavc" = auto; then
7578 _libdirac_lavc=no
7579 if test "$_libavcodec_a" != yes; then
7580 _res_comment="libavcodec (static) is required by libdirac, sorry"
7581 else
7582 cat > $TMPC << EOF
7583 #include <libdirac_encoder/dirac_encoder.h>
7584 #include <libdirac_decoder/dirac_parser.h>
7585 int main(void)
7587 dirac_encoder_context_t enc_ctx;
7588 dirac_decoder_t *dec_handle;
7589 dirac_encoder_context_init(&enc_ctx, VIDEO_FORMAT_SD_576I50);
7590 dec_handle = dirac_decoder_init(0);
7591 if (dec_handle)
7592 dirac_decoder_close(dec_handle);
7593 return 0;
7596 if $_pkg_config --exists dirac ; then
7597 _inc_dirac=$($_pkg_config --silence-errors --cflags dirac)
7598 _ld_dirac=$($_pkg_config --silence-errors --libs dirac)
7599 cc_check $_inc_dirac $_ld_dirac &&
7600 _libdirac_lavc=yes &&
7601 extra_cflags="$extra_cflags $_inc_dirac" &&
7602 extra_ldflags="$extra_ldflags $_ld_dirac"
7606 if test "$_libdirac_lavc" = yes ; then
7607 def_libdirac_lavc='#define CONFIG_LIBDIRAC 1'
7608 _libavencoders="$_libavencoders LIBDIRAC_ENCODER"
7609 _libavdecoders="$_libavdecoders LIBDIRAC_DECODER"
7610 _codecmodules="libdirac $_codecmodules"
7611 else
7612 def_libdirac_lavc='#define CONFIG_LIBDIRAC 0'
7613 _nocodecmodules="libdirac $_nocodecmodules"
7615 echores "$_libdirac_lavc"
7618 echocheck "libschroedinger"
7619 if test "$_libschroedinger_lavc" = auto ; then
7620 _libschroedinger_lavc=no
7621 if test "$_libavcodec_a" != yes; then
7622 _res_comment="libavcodec (static) is required by libschroedinger, sorry"
7623 else
7624 cat > $TMPC << EOF
7625 #include <schroedinger/schro.h>
7626 int main(void) { schro_init(); return 0; }
7628 if $_pkg_config --exists schroedinger-1.0 ; then
7629 _inc_schroedinger=$($_pkg_config --silence-errors --cflags schroedinger-1.0)
7630 _ld_schroedinger=$($_pkg_config --silence-errors --libs schroedinger-1.0)
7631 cc_check $_inc_schroedinger $_ld_schroedinger &&
7632 _libschroedinger_lavc=yes &&
7633 extra_cflags="$extra_cflags $_inc_schroedinger" &&
7634 extra_ldflags="$extra_ldflags $_ld_schroedinger"
7638 if test "$_libschroedinger_lavc" = yes ; then
7639 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 1'
7640 _libavencoders="$_libavencoders LIBSCHROEDINGER_ENCODER"
7641 _libavdecoders="$_libavdecoders LIBSCHROEDINGER_DECODER"
7642 _codecmodules="libschroedinger $_codecmodules"
7643 else
7644 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 0'
7645 _nocodecmodules="libschroedinger $_nocodecmodules"
7647 echores "$_libschroedinger_lavc"
7649 echocheck "libnut"
7650 if test "$_libnut" = auto ; then
7651 cat > $TMPC << EOF
7652 #include <stdio.h>
7653 #include <stdlib.h>
7654 #include <inttypes.h>
7655 #include <libnut.h>
7656 nut_context_tt * nut;
7657 int main(void) { (void)nut_error(0); return 0; }
7659 _libnut=no
7660 cc_check -lnut && _libnut=yes
7663 if test "$_libnut" = yes ; then
7664 def_libnut='#define CONFIG_LIBNUT 1'
7665 extra_ldflags="$extra_ldflags -lnut"
7666 else
7667 def_libnut='#undef CONFIG_LIBNUT'
7669 echores "$_libnut"
7671 #check must be done after libavcodec one
7672 echocheck "zr"
7673 if test "$_zr" = auto ; then
7674 #36067's seem to identify themselves as 36057PQC's, so the line
7675 #below should work for 36067's and 36057's.
7676 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
7677 _zr=yes
7678 else
7679 _zr=no
7682 if test "$_zr" = yes ; then
7683 if test "$_libavcodec_a" = yes ; then
7684 def_zr='#define CONFIG_ZR 1'
7685 _vomodules="zr zr2 $_vomodules"
7686 else
7687 _res_comment="libavcodec (static) is required by zr, sorry"
7688 _novomodules="zr $_novomodules"
7689 def_zr='#undef CONFIG_ZR'
7691 else
7692 def_zr='#undef CONFIG_ZR'
7693 _novomodules="zr zr2 $_novomodules"
7695 echores "$_zr"
7697 # mencoder requires (optional) those libs: libmp3lame
7698 if test "$_mencoder" != no ; then
7700 echocheck "libmp3lame"
7701 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
7702 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
7703 if test "$_mp3lame" = auto ; then
7704 _mp3lame=no
7705 cat > $TMPC <<EOF
7706 #include <lame/lame.h>
7707 int main(void) { lame_version_t lv; (void) lame_init();
7708 get_lame_version_numerical(&lv);
7709 return 0; }
7711 cc_check -lmp3lame $_ld_lm && _mp3lame=yes
7713 if test "$_mp3lame" = yes ; then
7714 def_mp3lame="#define CONFIG_MP3LAME 1"
7715 _ld_mp3lame=-lmp3lame
7716 libs_mencoder="$libs_mencoder $_ld_mp3lame"
7717 cat > $TMPC << EOF
7718 #include <lame/lame.h>
7719 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
7721 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET 1"
7722 cat > $TMPC << EOF
7723 #include <lame/lame.h>
7724 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
7726 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM 1"
7727 test "$_mp3lame_lavc" = auto && _mp3lame_lavc=yes
7728 if test "$_mp3lame_lavc" = yes ; then
7729 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 1"
7730 _libavencoders="$_libavencoders LIBMP3LAME_ENCODER"
7731 libs_mplayer="$libs_mplayer $_ld_mp3lame"
7733 else
7734 _mp3lame_lavc=no
7735 def_mp3lame='#undef CONFIG_MP3LAME'
7736 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 0"
7738 _res_comment="in libavcodec: $_mp3lame_lavc"
7739 echores "$_mp3lame"
7741 fi # test "$_mencoder" != no
7743 echocheck "mencoder"
7744 if test "$_mencoder" = yes ; then
7745 def_muxers='#define CONFIG_MUXERS 1'
7746 else
7747 # mpeg1video for vf_lavc, snow for vf_uspp and vf_mcdeint, png for vf_screenshot
7748 _libavencoders="MPEG1VIDEO_ENCODER SNOW_ENCODER"
7749 test "$_zlib" = yes && _libavencoders="$_libavencoders PNG_ENCODER"
7750 _libavmuxers=""
7751 def_muxers='#define CONFIG_MUXERS 0'
7753 echores "$_mencoder"
7756 echocheck "UnRAR executable"
7757 if test "$_unrar_exec" = auto ; then
7758 _unrar_exec="yes"
7759 mingw32 && _unrar_exec="no"
7761 if test "$_unrar_exec" = yes ; then
7762 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
7763 else
7764 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
7766 echores "$_unrar_exec"
7768 echocheck "TV interface"
7769 if test "$_tv" = yes ; then
7770 def_tv='#define CONFIG_TV 1'
7771 _inputmodules="tv $_inputmodules"
7772 else
7773 _noinputmodules="tv $_noinputmodules"
7774 def_tv='#undef CONFIG_TV'
7776 echores "$_tv"
7779 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
7780 echocheck "*BSD BT848 bt8xx header"
7781 _ioctl_bt848_h=no
7782 for file in "machine/ioctl_bt848.h" \
7783 "dev/bktr/ioctl_bt848.h" \
7784 "dev/video/bktr/ioctl_bt848.h" \
7785 "dev/ic/bt8xx.h" ; do
7786 cat > $TMPC <<EOF
7787 #include <sys/types.h>
7788 #include <sys/ioctl.h>
7789 #include <$file>
7790 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
7792 if cc_check ; then
7793 _ioctl_bt848_h=yes
7794 _ioctl_bt848_h_name="$file"
7795 break;
7797 done
7798 if test "$_ioctl_bt848_h" = yes ; then
7799 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
7800 _res_comment="using $_ioctl_bt848_h_name"
7801 else
7802 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
7804 echores "$_ioctl_bt848_h"
7806 echocheck "*BSD ioctl_meteor.h"
7807 _ioctl_meteor_h=no
7808 for file in "machine/ioctl_meteor.h" \
7809 "dev/bktr/ioctl_meteor.h" \
7810 "dev/video/bktr/ioctl_meteor.h" ; do
7811 cat > $TMPC <<EOF
7812 #include <sys/types.h>
7813 #include <$file>
7814 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
7816 if cc_check ; then
7817 _ioctl_meteor_h=yes
7818 _ioctl_meteor_h_name="$file"
7819 break;
7821 done
7822 if test "$_ioctl_meteor_h" = yes ; then
7823 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
7824 _res_comment="using $_ioctl_meteor_h_name"
7825 else
7826 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
7828 echores "$_ioctl_meteor_h"
7830 echocheck "*BSD BrookTree 848 TV interface"
7831 if test "$_tv_bsdbt848" = auto ; then
7832 _tv_bsdbt848=no
7833 if test "$_tv" = yes ; then
7834 cat > $TMPC <<EOF
7835 #include <sys/types.h>
7836 $def_ioctl_meteor_h_name
7837 $def_ioctl_bt848_h_name
7838 #ifdef IOCTL_METEOR_H_NAME
7839 #include IOCTL_METEOR_H_NAME
7840 #endif
7841 #ifdef IOCTL_BT848_H_NAME
7842 #include IOCTL_BT848_H_NAME
7843 #endif
7844 int main(void) {
7845 ioctl(0, METEORSINPUT, 0);
7846 ioctl(0, TVTUNER_GETFREQ, 0);
7847 return 0;
7850 cc_check && _tv_bsdbt848=yes
7853 if test "$_tv_bsdbt848" = yes ; then
7854 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
7855 _inputmodules="tv-bsdbt848 $_inputmodules"
7856 else
7857 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
7858 _noinputmodules="tv-bsdbt848 $_noinputmodules"
7860 echores "$_tv_bsdbt848"
7861 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
7864 echocheck "DirectShow TV interface"
7865 if test "$_tv_dshow" = auto ; then
7866 _tv_dshow=no
7867 if test "$_tv" = yes && win32 ; then
7868 cat > $TMPC <<EOF
7869 #include <ole2.h>
7870 int main(void) {
7871 void* p;
7872 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
7873 return 0;
7876 cc_check -lole32 -luuid && _tv_dshow=yes
7879 if test "$_tv_dshow" = yes ; then
7880 _inputmodules="tv-dshow $_inputmodules"
7881 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
7882 extra_ldflags="$extra_ldflags -lole32 -luuid"
7883 else
7884 _noinputmodules="tv-dshow $_noinputmodules"
7885 def_tv_dshow='#undef CONFIG_TV_DSHOW'
7887 echores "$_tv_dshow"
7890 echocheck "Video 4 Linux TV interface"
7891 if test "$_tv_v4l1" = auto ; then
7892 _tv_v4l1=no
7893 if test "$_tv" = yes && linux ; then
7894 cat > $TMPC <<EOF
7895 #include <stdlib.h>
7896 #include <linux/videodev.h>
7897 int main(void) { return 0; }
7899 cc_check && _tv_v4l1=yes
7902 if test "$_tv_v4l1" = yes ; then
7903 _audio_input=yes
7904 _tv_v4l=yes
7905 def_tv_v4l='#define CONFIG_TV_V4L 1'
7906 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
7907 _inputmodules="tv-v4l $_inputmodules"
7908 else
7909 _noinputmodules="tv-v4l1 $_noinputmodules"
7910 def_tv_v4l='#undef CONFIG_TV_V4L'
7912 echores "$_tv_v4l1"
7915 echocheck "Video 4 Linux 2 TV interface"
7916 if test "$_tv_v4l2" = auto ; then
7917 _tv_v4l2=no
7918 if test "$_tv" = yes && linux ; then
7919 cat > $TMPC <<EOF
7920 #include <stdlib.h>
7921 #include <linux/types.h>
7922 #include <linux/videodev2.h>
7923 int main(void) { return 0; }
7925 cc_check && _tv_v4l2=yes
7928 if test "$_tv_v4l2" = yes ; then
7929 _audio_input=yes
7930 _tv_v4l=yes
7931 def_tv_v4l='#define CONFIG_TV_V4L 1'
7932 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
7933 _inputmodules="tv-v4l2 $_inputmodules"
7934 else
7935 _noinputmodules="tv-v4l2 $_noinputmodules"
7936 def_tv_v4l2='#undef CONFIG_TV_V4L2'
7938 echores "$_tv_v4l2"
7941 echocheck "Radio interface"
7942 if test "$_radio" = yes ; then
7943 def_radio='#define CONFIG_RADIO 1'
7944 _inputmodules="radio $_inputmodules"
7945 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
7946 _radio_capture=no
7948 if test "$_radio_capture" = yes ; then
7949 _audio_input=yes
7950 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
7951 else
7952 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7954 else
7955 _noinputmodules="radio $_noinputmodules"
7956 def_radio='#undef CONFIG_RADIO'
7957 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7958 _radio_capture=no
7960 echores "$_radio"
7961 echocheck "Capture for Radio interface"
7962 echores "$_radio_capture"
7964 echocheck "Video 4 Linux 2 Radio interface"
7965 if test "$_radio_v4l2" = auto ; then
7966 _radio_v4l2=no
7967 if test "$_radio" = yes && linux ; then
7968 cat > $TMPC <<EOF
7969 #include <stdlib.h>
7970 #include <linux/types.h>
7971 #include <linux/videodev2.h>
7972 int main(void) { return 0; }
7974 cc_check && _radio_v4l2=yes
7977 if test "$_radio_v4l2" = yes ; then
7978 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
7979 else
7980 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
7982 echores "$_radio_v4l2"
7984 echocheck "Video 4 Linux Radio interface"
7985 if test "$_radio_v4l" = auto ; then
7986 _radio_v4l=no
7987 if test "$_radio" = yes && linux ; then
7988 cat > $TMPC <<EOF
7989 #include <stdlib.h>
7990 #include <linux/videodev.h>
7991 int main(void) { return 0; }
7993 cc_check && _radio_v4l=yes
7996 if test "$_radio_v4l" = yes ; then
7997 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
7998 else
7999 def_radio_v4l='#undef CONFIG_RADIO_V4L'
8001 echores "$_radio_v4l"
8003 if freebsd || netbsd || openbsd || dragonfly || bsdos \
8004 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
8005 echocheck "*BSD BrookTree 848 Radio interface"
8006 _radio_bsdbt848=no
8007 cat > $TMPC <<EOF
8008 #include <sys/types.h>
8009 $def_ioctl_bt848_h_name
8010 #ifdef IOCTL_BT848_H_NAME
8011 #include IOCTL_BT848_H_NAME
8012 #endif
8013 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
8015 cc_check && _radio_bsdbt848=yes
8016 echores "$_radio_bsdbt848"
8017 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
8019 if test "$_radio_bsdbt848" = yes ; then
8020 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
8021 else
8022 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
8025 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
8026 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
8027 die "Radio driver requires BSD BT848, V4L or V4L2!"
8030 echocheck "Video 4 Linux 2 MPEG PVR interface"
8031 if test "$_pvr" = auto ; then
8032 _pvr=no
8033 if test "$_tv_v4l2" = yes && linux ; then
8034 cat > $TMPC <<EOF
8035 #include <stdlib.h>
8036 #include <inttypes.h>
8037 #include <linux/types.h>
8038 #include <linux/videodev2.h>
8039 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
8041 cc_check && _pvr=yes
8044 if test "$_pvr" = yes ; then
8045 def_pvr='#define CONFIG_PVR 1'
8046 _inputmodules="pvr $_inputmodules"
8047 else
8048 _noinputmodules="pvr $_noinputmodules"
8049 def_pvr='#undef CONFIG_PVR'
8051 echores "$_pvr"
8054 echocheck "ftp"
8055 if ! beos && test "$_ftp" = yes ; then
8056 def_ftp='#define CONFIG_FTP 1'
8057 _inputmodules="ftp $_inputmodules"
8058 else
8059 _noinputmodules="ftp $_noinputmodules"
8060 def_ftp='#undef CONFIG_FTP'
8062 echores "$_ftp"
8064 echocheck "vstream client"
8065 if test "$_vstream" = auto ; then
8066 _vstream=no
8067 cat > $TMPC <<EOF
8068 #include <vstream-client.h>
8069 void vstream_error(const char *format, ... ) {}
8070 int main(void) { vstream_start(); return 0; }
8072 cc_check -lvstream-client && _vstream=yes
8074 if test "$_vstream" = yes ; then
8075 def_vstream='#define CONFIG_VSTREAM 1'
8076 _inputmodules="vstream $_inputmodules"
8077 extra_ldflags="$extra_ldflags -lvstream-client"
8078 else
8079 _noinputmodules="vstream $_noinputmodules"
8080 def_vstream='#undef CONFIG_VSTREAM'
8082 echores "$_vstream"
8085 echocheck "OSD menu"
8086 if test "$_menu" = yes ; then
8087 def_menu='#define CONFIG_MENU 1'
8088 test $_dvbin = "yes" && _menu_dvbin=yes
8089 else
8090 def_menu='#undef CONFIG_MENU'
8091 _menu_dvbin=no
8093 echores "$_menu"
8096 echocheck "Subtitles sorting"
8097 if test "$_sortsub" = yes ; then
8098 def_sortsub='#define CONFIG_SORTSUB 1'
8099 else
8100 def_sortsub='#undef CONFIG_SORTSUB'
8102 echores "$_sortsub"
8105 echocheck "XMMS inputplugin support"
8106 if test "$_xmms" = yes ; then
8107 if ( xmms-config --version ) >/dev/null 2>&1 ; then
8108 _xmmsplugindir=$(xmms-config --input-plugin-dir)
8109 _xmmslibdir=$(xmms-config --exec-prefix)/lib
8110 else
8111 _xmmsplugindir=/usr/lib/xmms/Input
8112 _xmmslibdir=/usr/lib
8115 def_xmms='#define CONFIG_XMMS 1'
8116 if darwin ; then
8117 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
8118 else
8119 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
8121 else
8122 def_xmms='#undef CONFIG_XMMS'
8124 echores "$_xmms"
8127 # --------------- GUI specific tests begin -------------------
8128 echocheck "GUI"
8129 echo "$_gui"
8130 if test "$_gui" = yes ; then
8132 # Required libraries
8133 if test "$_libavcodec" != yes ||
8134 ! echo $_libavdecoders | grep -q PNG_DECODER ; then
8135 die "The GUI requires libavcodec with PNG support (needs zlib)."
8137 test "$_freetype" = no && test "$_bitmap_font" = no && \
8138 die "The GUI requires either FreeType or bitmap font support."
8139 if ! win32 ; then
8140 _gui_gtk=yes
8141 test "$_x11" != yes && die "X11 support required for GUI compilation."
8143 echocheck "XShape extension"
8144 if test "$_xshape" = auto ; then
8145 _xshape=no
8146 cat > $TMPC << EOF
8147 #include <X11/Xlib.h>
8148 #include <X11/Xproto.h>
8149 #include <X11/Xutil.h>
8150 #include <X11/extensions/shape.h>
8151 #include <stdlib.h>
8152 int main(void) {
8153 char *name = ":0.0";
8154 Display *wsDisplay;
8155 int exitvar = 0;
8156 int eventbase, errorbase;
8157 if (getenv("DISPLAY"))
8158 name=getenv("DISPLAY");
8159 wsDisplay=XOpenDisplay(name);
8160 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
8161 exitvar=1;
8162 XCloseDisplay(wsDisplay);
8163 return exitvar;
8166 cc_check -lXext && _xshape=yes
8168 if test "$_xshape" = yes ; then
8169 def_xshape='#define CONFIG_XSHAPE 1'
8170 else
8171 die "The GUI requires the X11 extension XShape (which was not found)."
8173 echores "$_xshape"
8175 #Check for GTK
8176 if test "$_gtk1" = no ; then
8177 #Check for GTK2 :
8178 echocheck "GTK+ version"
8180 if $_pkg_config gtk+-2.0 --exists ; then
8181 _gtk=$($_pkg_config gtk+-2.0 --modversion 2>/dev/null)
8182 extra_cflags="$extra_cflags $($_pkg_config gtk+-2.0 --cflags 2>/dev/null)"
8183 libs_mplayer="$libs_mplayer $($_pkg_config gtk+-2.0 --libs 2>/dev/null)"
8184 echores "$_gtk"
8186 # Check for GLIB2
8187 if $_pkg_config glib-2.0 --exists ; then
8188 echocheck "glib version"
8189 _glib=$($_pkg_config glib-2.0 --modversion 2>/dev/null)
8190 libs_mplayer="$libs_mplayer $($_pkg_config glib-2.0 --libs 2>/dev/null)"
8191 echores "$_glib"
8193 def_gui='#define CONFIG_GUI 1'
8194 def_gtk2='#define CONFIG_GTK2 1'
8195 else
8196 _gtk1=yes
8197 echo "GLIB-2 devel packages were not found, trying GTK 1.2"
8199 else
8200 echo "GTK-2 devel packages were not found, trying GTK 1.2"
8201 _gtk1=yes
8205 if test "$_gtk1" = yes ; then
8206 # Check for old GTK (1.2.x)
8207 echocheck "GTK version"
8208 if test -z "$_gtkconfig" ; then
8209 if ( gtk-config --version ) >/dev/null 2>&1 ; then
8210 _gtkconfig="gtk-config"
8211 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
8212 _gtkconfig="gtk12-config"
8213 else
8214 die "The GUI requires GTK devel packages (which were not found)."
8217 _gtk=$($_gtkconfig --version 2>&1)
8218 extra_cflags="$extra_cflags $($_gtkconfig --cflags 2>&1)"
8219 libs_mplayer="$libs_mplayer $($_gtkconfig --libs 2>&1)"
8220 echores "$_gtk (using $_gtkconfig)"
8222 # Check for GLIB
8223 echocheck "glib version"
8224 if test -z "$_glibconfig" ; then
8225 if ( glib-config --version ) >/dev/null 2>&1 ; then
8226 _glibconfig="glib-config"
8227 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
8228 _glibconfig="glib12-config"
8229 else
8230 die "The GUI requires GLIB devel packages (which were not found)"
8233 _glib=$($_glibconfig --version 2>&1)
8234 libs_mplayer="$libs_mplayer $($_glibconfig --libs 2>&1)"
8235 echores "$_glib (using $_glibconfig)"
8237 def_gui='#define CONFIG_GUI 1'
8238 def_gtk2='#undef CONFIG_GTK2'
8241 else #if ! win32
8242 _gui_win32=yes
8243 libs_mplayer="$libs_mplayer -lcomdlg32 -lcomctl32 -lshell32 -lkernel32"
8244 def_gui='#define CONFIG_GUI 1'
8245 def_gtk2='#undef CONFIG_GTK2'
8246 fi #if ! win32
8248 else #if test "$_gui"
8249 def_gui='#undef CONFIG_GUI'
8250 def_gtk2='#undef CONFIG_GTK2'
8251 fi #if test "$_gui"
8252 # --------------- GUI specific tests end -------------------
8255 if test "$_charset" != "noconv" ; then
8256 def_charset="#define MSG_CHARSET \"$_charset\""
8257 else
8258 def_charset="#undef MSG_CHARSET"
8259 _charset="UTF-8"
8262 if test -n "$_charset" && test "$_charset" != "UTF-8" ; then
8263 echocheck "iconv program"
8264 iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG"
8265 if test "$?" -ne 0 ; then
8266 echores "no"
8267 echo "No working iconv program found, use "
8268 echo "--charset=UTF-8 to continue anyway."
8269 echo "If you also have problems with iconv library functions use --charset=noconv."
8270 echo "Messages in the GTK-2 interface will be broken then."
8271 exit 1
8272 else
8273 echores "yes"
8277 #############################################################################
8279 echocheck "automatic gdb attach"
8280 if test "$_crash_debug" = yes ; then
8281 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
8282 else
8283 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
8284 _crash_debug=no
8286 echores "$_crash_debug"
8288 echocheck "compiler support for noexecstack"
8289 cat > $TMPC <<EOF
8290 int main(void) { return 0; }
8292 if cc_check -Wl,-z,noexecstack ; then
8293 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
8294 echores "yes"
8295 else
8296 echores "no"
8299 echocheck "linker support for --nxcompat --no-seh --dynamicbase"
8300 if cc_check "-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
8301 extra_ldflags="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
8302 echores "yes"
8303 else
8304 echores "no"
8308 # Dynamic linking flags
8309 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
8310 _ld_dl_dynamic=''
8311 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
8312 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
8313 _ld_dl_dynamic='-rdynamic'
8316 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
8317 bsdos && extra_ldflags="$extra_ldflags -ldvd"
8318 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
8320 def_debug='#undef MP_DEBUG'
8321 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
8324 echocheck "joystick"
8325 def_joystick='#undef CONFIG_JOYSTICK'
8326 if test "$_joystick" = yes ; then
8327 if linux ; then
8328 # TODO add some check
8329 def_joystick='#define CONFIG_JOYSTICK 1'
8330 else
8331 _joystick="no"
8332 _res_comment="unsupported under $system_name"
8335 echores "$_joystick"
8337 echocheck "lirc"
8338 if test "$_lirc" = auto ; then
8339 _lirc=no
8340 cat > $TMPC <<EOF
8341 #include <lirc/lirc_client.h>
8342 int main(void) { return 0; }
8344 cc_check -llirc_client && _lirc=yes
8346 if test "$_lirc" = yes ; then
8347 def_lirc='#define CONFIG_LIRC 1'
8348 libs_mplayer="$libs_mplayer -llirc_client"
8349 else
8350 def_lirc='#undef CONFIG_LIRC'
8352 echores "$_lirc"
8354 echocheck "lircc"
8355 if test "$_lircc" = auto ; then
8356 _lircc=no
8357 cat > $TMPC <<EOF
8358 #include <lirc/lircc.h>
8359 int main(void) { return 0; }
8361 cc_check -llircc && _lircc=yes
8363 if test "$_lircc" = yes ; then
8364 def_lircc='#define CONFIG_LIRCC 1'
8365 libs_mplayer="$libs_mplayer -llircc"
8366 else
8367 def_lircc='#undef CONFIG_LIRCC'
8369 echores "$_lircc"
8371 if arm; then
8372 # Detect maemo development platform libraries availability (http://www.maemo.org),
8373 # they are used when run on Nokia 770|8x0
8374 echocheck "maemo (Nokia 770|8x0)"
8375 if test "$_maemo" = auto ; then
8376 _maemo=no
8377 cat > $TMPC << EOF
8378 #include <libosso.h>
8379 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
8381 cc_check $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
8383 if test "$_maemo" = yes ; then
8384 def_maemo='#define CONFIG_MAEMO 1'
8385 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
8386 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
8387 else
8388 def_maemo='#undef CONFIG_MAEMO'
8390 echores "$_maemo"
8393 #############################################################################
8395 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
8396 # the OMF format needs to come after the 'extern symbol prefix' check, which
8397 # uses nm.
8398 if os2 ; then
8399 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
8402 # linker paths should be the same for mencoder and mplayer
8403 _ld_tmp=""
8404 for I in $libs_mplayer ; do
8405 _tmp=$(echo $I | sed -e 's/^-L.*$//')
8406 if test -z "$_tmp" ; then
8407 extra_ldflags="$extra_ldflags $I"
8408 else
8409 _ld_tmp="$_ld_tmp $I"
8411 done
8412 libs_mplayer=$_ld_tmp
8415 #############################################################################
8416 # 64 bit file offsets?
8417 if test "$_largefiles" = yes || freebsd ; then
8418 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
8419 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
8420 # dvdread support requires this (for off64_t)
8421 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
8425 CXXFLAGS=" $CFLAGS -D__STDC_LIMIT_MACROS"
8427 # This must be the last test to be performed. Any other tests following it
8428 # could fail due to linker errors. libdvdnavmini is intentionally not linked
8429 # against libdvdread (to permit MPlayer to use its own copy of the library).
8430 # So any compilation using the flags added here but not linking against
8431 # libdvdread can fail.
8432 echocheck "DVD support (libdvdnav)"
8433 dvdnav_internal=no
8434 if test "$_dvdnav" = auto ; then
8435 if test "$_dvdread_internal" = yes ; then
8436 _dvdnav=yes
8437 dvdnav_internal=yes
8438 _res_comment="internal"
8439 else
8440 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
8443 if test "$_dvdnav" = auto ; then
8444 cat > $TMPC <<EOF
8445 #include <inttypes.h>
8446 #include <dvdnav/dvdnav.h>
8447 int main(void) { dvdnav_t *dvd=0; return 0; }
8449 _dvdnav=no
8450 _dvdnavdir=$($_dvdnavconfig --cflags)
8451 _dvdnavlibs=$($_dvdnavconfig --libs)
8452 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
8454 if test "$_dvdnav" = yes ; then
8455 _largefiles=yes
8456 def_dvdnav='#define CONFIG_DVDNAV 1'
8457 if test "$dvdnav_internal" = yes ; then
8458 cflags_libdvdnav="-Ilibdvdnav"
8459 _inputmodules="dvdnav(internal) $_inputmodules"
8460 else
8461 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
8462 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
8463 _inputmodules="dvdnav $_inputmodules"
8465 else
8466 def_dvdnav='#undef CONFIG_DVDNAV'
8467 _noinputmodules="dvdnav $_noinputmodules"
8469 echores "$_dvdnav"
8471 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
8472 # Read dvdnav comment above.
8474 #############################################################################
8475 echo "Creating config.mak"
8476 cat > config.mak << EOF
8477 # -------- Generated by configure -----------
8479 # Ensure that locale settings do not interfere with shell commands.
8480 export LC_ALL = C
8482 CONFIGURATION = $_configuration
8484 CHARSET = $_charset
8485 DOC_LANGS = $language_doc
8486 DOC_LANG_ALL = $doc_lang_all
8487 MAN_LANGS = $language_man
8488 MAN_LANG_ALL = $man_lang_all
8490 prefix = \$(DESTDIR)$_prefix
8491 BINDIR = \$(DESTDIR)$_bindir
8492 DATADIR = \$(DESTDIR)$_datadir
8493 LIBDIR = \$(DESTDIR)$_libdir
8494 MANDIR = \$(DESTDIR)$_mandir
8495 CONFDIR = \$(DESTDIR)$_confdir
8497 AR = $_ar
8498 AS = $_cc
8499 CC = $_cc
8500 CXX = $_cc
8501 HOST_CC = $_host_cc
8502 YASM = $_yasm
8503 INSTALL = $_install
8504 INSTALLSTRIP = $_install_strip
8505 RANLIB = $_ranlib
8506 WINDRES = $_windres
8508 CFLAGS = $CFLAGS $extra_cflags
8509 ASFLAGS = $CFLAGS $extra_cflags
8510 OPTFLAGS = $CFLAGS $extra_cflags
8511 CXXFLAGS = $CXXFLAGS $extra_cflags $extra_cxxflags
8512 CFLAGS_DHAHELPER = $cflags_dhahelper
8513 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
8514 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
8515 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
8516 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
8517 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
8518 CFLAGS_STACKREALIGN = $cflags_stackrealign
8519 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
8520 CFLAGS_TREMOR_LOW = $cflags_tremor_low
8521 YASMFLAGS = $YASMFLAGS
8523 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
8524 EXTRALIBS_MPLAYER = $libs_mplayer
8525 EXTRALIBS_MENCODER = $libs_mencoder
8527 DEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.h,\$^) | sed "s,[0-9a-z._-]*: \(\$(SRC_DIR)/\)*\([a-z0-9]*/\)[^/]* ,\\2&,"
8529 MPDEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.xpm,\$(filter-out %.h,$^)) | sed -e "s,[0-9a-z._-]*: \([a-z0-9/]*/\)[^/]* ,\1&," -e "s,\(.*\)\.o: ,\1.d &,"
8530 MPDEPEND_CMD_CXX = \$(CC) -MM \$(CXXFLAGS) \$(filter-out %.hh,\$(filter-out %.h,$^)) | sed -e "s,[0-9a-z._-]*: \([a-z0-9/]*/\)[^/]* ,\1&," -e "s,\(.*\)\.o: ,\1.d &,"
8532 GETCH = $_getch
8533 HELP_FILE = $_mp_help
8534 TIMER = $_timer
8536 EXESUF = $_exesuf
8537 EXESUFS_ALL = .exe
8539 $_target_arch
8540 $_target_subarch
8541 $(echo $_cpuexts | tr '[a-z] ' '[A-Z]\n' | sed 's/^/HAVE_/;s/$/=yes/')
8543 MENCODER = $_mencoder
8544 MPLAYER = $_mplayer
8546 NEED_GETTIMEOFDAY = $_need_gettimeofday
8547 NEED_GLOB = $_need_glob
8548 NEED_MMAP = $_need_mmap
8549 NEED_SETENV = $_need_setenv
8550 NEED_SHMEM = $_need_shmem
8551 NEED_STRSEP = $_need_strsep
8552 NEED_SWAB = $_need_swab
8553 NEED_VSSCANF = $_need_vsscanf
8555 # features
8556 3DFX = $_3dfx
8557 AA = $_aa
8558 ALSA1X = $_alsa1x
8559 ALSA9 = $_alsa9
8560 ALSA5 = $_alsa5
8561 APPLE_IR = $_apple_ir
8562 APPLE_REMOTE = $_apple_remote
8563 ARTS = $_arts
8564 AUDIO_INPUT = $_audio_input
8565 BITMAP_FONT = $_bitmap_font
8566 BL = $_bl
8567 CACA = $_caca
8568 CDDA = $_cdda
8569 CDDB = $_cddb
8570 COREAUDIO = $_coreaudio
8571 COREVIDEO = $_corevideo
8572 DART = $_dart
8573 DFBMGA = $_dfbmga
8574 DGA = $_dga
8575 DIRECT3D = $_direct3d
8576 DIRECTFB = $_directfb
8577 DIRECTX = $_directx
8578 DVBIN = $_dvbin
8579 DVDNAV = $_dvdnav
8580 DVDNAV_INTERNAL = $dvdnav_internal
8581 DVDREAD = $_dvdread
8582 DVDREAD_INTERNAL = $_dvdread_internal
8583 DXR2 = $_dxr2
8584 DXR3 = $_dxr3
8585 ESD = $_esd
8586 FAAC=$_faac
8587 FAAD = $_faad
8588 FAAD_INTERNAL = $_faad_internal
8589 FASTMEMCPY = $_fastmemcpy
8590 $mak_hardcoded_tables
8591 $mak_libavcodec_mpegaudio_hp
8592 FBDEV = $_fbdev
8593 FREETYPE = $_freetype
8594 FTP = $_ftp
8595 GIF = $_gif
8596 GGI = $_ggi
8597 GL = $_gl
8598 GL_WIN32 = $_gl_win32
8599 GL_X11 = $_gl_x11
8600 MATRIXVIEW = $matrixview
8601 GUI = $_gui
8602 GUI_GTK = $_gui_gtk
8603 GUI_WIN32 = $_gui_win32
8604 HAVE_POSIX_SELECT = $_posix_select
8605 HAVE_SYS_MMAN_H = $_mman
8606 IVTV = $_ivtv
8607 JACK = $_jack
8608 JOYSTICK = $_joystick
8609 JPEG = $_jpeg
8610 KAI = $_kai
8611 KVA = $_kva
8612 LADSPA = $_ladspa
8613 LIBA52 = $_liba52
8614 LIBA52_INTERNAL = $_liba52_internal
8615 LIBASS = $_ass
8616 LIBASS_INTERNAL = $ass_internal
8617 LIBBS2B = $_libbs2b
8618 LIBDCA = $_libdca
8619 LIBDV = $_libdv
8620 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
8621 LIBLZO = $_liblzo
8622 LIBMAD = $_mad
8623 LIBMENU = $_menu
8624 LIBMENU_DVBIN = $_menu_dvbin
8625 LIBMPEG2 = $_libmpeg2
8626 LIBNEMESI = $_nemesi
8627 LIBNUT = $_libnut
8628 LIBSMBCLIENT = $_smb
8629 LIBTHEORA = $_theora
8630 LIRC = $_lirc
8631 LIVE555 = $_live
8632 MACOSX_BUNDLE = $_macosx_bundle
8633 MACOSX_FINDER = $_macosx_finder
8634 MD5SUM = $_md5sum
8635 MGA = $_mga
8636 MNG = $_mng
8637 MP3LAME = $_mp3lame
8638 MP3LIB = $_mp3lib
8639 MUSEPACK = $_musepack
8640 NAS = $_nas
8641 NATIVE_RTSP = $_native_rtsp
8642 NETWORK = $_network
8643 OPENAL = $_openal
8644 OSS = $_ossaudio
8645 PE_EXECUTABLE = $_pe_executable
8646 PNG = $_png
8647 PNM = $_pnm
8648 PRIORITY = $_priority
8649 PULSE = $_pulse
8650 PVR = $_pvr
8651 QTX_CODECS = $_qtx
8652 QTX_CODECS_WIN32 = $_qtx_codecs_win32
8653 QTX_EMULATION = $_qtx_emulation
8654 QUARTZ = $_quartz
8655 RADIO=$_radio
8656 RADIO_CAPTURE=$_radio_capture
8657 REAL_CODECS = $_real
8658 S3FB = $_s3fb
8659 SDL = $_sdl
8660 SPEEX = $_speex
8661 STREAM_CACHE = $_stream_cache
8662 SGIAUDIO = $_sgiaudio
8663 SUNAUDIO = $_sunaudio
8664 SVGA = $_svga
8665 TDFXFB = $_tdfxfb
8666 TDFXVID = $_tdfxvid
8667 TGA = $_tga
8668 TOOLAME=$_toolame
8669 TREMOR_INTERNAL = $_tremor_internal
8670 TV = $_tv
8671 TV_BSDBT848 = $_tv_bsdbt848
8672 TV_DSHOW = $_tv_dshow
8673 TV_V4L = $_tv_v4l
8674 TV_V4L1 = $_tv_v4l1
8675 TV_V4L2 = $_tv_v4l2
8676 TWOLAME=$_twolame
8677 UNRAR_EXEC = $_unrar_exec
8678 V4L2 = $_v4l2
8679 VCD = $_vcd
8680 VDPAU = $_vdpau
8681 VESA = $_vesa
8682 VIDIX = $_vidix
8683 VIDIX_PCIDB = $_vidix_pcidb_val
8684 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
8685 VIDIX_IVTV=$_vidix_drv_ivtv
8686 VIDIX_MACH64=$_vidix_drv_mach64
8687 VIDIX_MGA=$_vidix_drv_mga
8688 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
8689 VIDIX_NVIDIA=$_vidix_drv_nvidia
8690 VIDIX_PM2=$_vidix_drv_pm2
8691 VIDIX_PM3=$_vidix_drv_pm3
8692 VIDIX_RADEON=$_vidix_drv_radeon
8693 VIDIX_RAGE128=$_vidix_drv_rage128
8694 VIDIX_S3=$_vidix_drv_s3
8695 VIDIX_SH_VEU=$_vidix_drv_sh_veu
8696 VIDIX_SIS=$_vidix_drv_sis
8697 VIDIX_UNICHROME=$_vidix_drv_unichrome
8698 VORBIS = $_vorbis
8699 VSTREAM = $_vstream
8700 WII = $_wii
8701 WIN32DLL = $_win32dll
8702 WIN32WAVEOUT = $_win32waveout
8703 WIN32_EMULATION = $_win32_emulation
8704 WINVIDIX = $winvidix
8705 X11 = $_x11
8706 X264 = $_x264
8707 XANIM_CODECS = $_xanim
8708 XMGA = $_xmga
8709 XMMS_PLUGINS = $_xmms
8710 XV = $_xv
8711 XVID4 = $_xvid
8712 XVIDIX = $xvidix
8713 XVMC = $_xvmc
8714 XVR100 = $_xvr100
8715 YUV4MPEG = $_yuv4mpeg
8716 ZR = $_zr
8718 # FFmpeg
8719 LIBAVUTIL = $_libavutil
8720 LIBAVUTIL_A = $_libavutil_a
8721 LIBAVUTIL_SO = $_libavutil_so
8722 LIBAVCODEC = $_libavcodec
8723 LIBAVCODEC_A = $_libavcodec_a
8724 LIBAVCODEC_SO = $_libavcodec_so
8725 LIBAVFORMAT = $_libavformat
8726 LIBAVFORMAT_A = $_libavformat_a
8727 LIBAVFORMAT_SO = $_libavformat_so
8728 LIBPOSTPROC = $_libpostproc
8729 LIBPOSTPROC_A = $_libpostproc_a
8730 LIBPOSTPROC_SO = $_libpostproc_so
8731 LIBSWSCALE = $_libswscale
8732 LIBSWSCALE_A = $_libswscale_a
8733 LIBSWSCALE_SO = $_libswscale_so
8735 HOSTCC=\$(HOST_CC)
8736 HOSTCFLAGS=-D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -O3
8737 HOSTLIBS=-lm
8738 CC_O=-o \$@
8739 LD=gcc
8740 CONFIG_STATIC=yes
8741 SRC_PATH=..
8742 BUILD_ROOT=..
8743 LIBPREF=lib
8744 LIBSUF=.a
8745 LIBNAME=\$(LIBPREF)\$(NAME)\$(LIBSUF)
8746 FULLNAME=\$(NAME)\$(BUILDSUF)
8748 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
8749 CONFIG_AANDCT=yes
8750 CONFIG_DCT=yes
8751 CONFIG_FFT=yes
8752 CONFIG_FFT_MMX=$fft_mmx
8753 CONFIG_GOLOMB=yes
8754 CONFIG_LPC=yes
8755 CONFIG_MDCT=yes
8756 CONFIG_RDFT=yes
8758 CONFIG_BZLIB=$bzlib
8759 CONFIG_ENCODERS=yes
8760 CONFIG_GPL=yes
8761 CONFIG_LIBDIRAC_DECODER=$_libdirac_lavc
8762 CONFIG_LIBDIRAC_ENCODER=$_libdirac_lavc
8763 CONFIG_LIBFAAC_ENCODER=$_faac_lavc
8764 CONFIG_LIBMP3LAME_ENCODER=$_mp3lame_lavc
8765 CONFIG_LIBOPENCORE_AMRNB_DECODER=$_libopencore_amrnb
8766 CONFIG_LIBOPENCORE_AMRNB_ENCODER=$_libopencore_amrnb
8767 CONFIG_LIBOPENCORE_AMRWB_DECODER=$_libopencore_amrwb
8768 OCNFIG_LIBOPENJPEG_DECODER = $libopenjpeg
8769 OCNFIG_LIBOPENJPEG_ENCODER = $libopenjpeg
8770 CONFIG_LIBSCHROEDINGER_DECODER=$_libschroedinger_lavc
8771 CONFIG_LIBSCHROEDINGER_ENCODER=$_libschroedinger_lavc
8772 CONFIG_LIBVORBIS_ENCODER=$_libvorbis
8773 CONFIG_LIBX264_ENCODER=$_x264_lavc
8774 CONFIG_LIBXVID_ENCODER=$_xvid_lavc
8775 CONFIG_MLIB = $_mlib
8776 CONFIG_MUXERS=$_mencoder
8777 CONFIG_POSTPROC = yes
8778 # Prevent building libavcodec/imgresample.c with conflicting symbols
8779 CONFIG_SWSCALE=yes
8780 CONFIG_VDPAU=$_vdpau
8781 CONFIG_XVMC=$_xvmc
8782 CONFIG_ZLIB=$_zlib
8784 HAVE_PTHREADS = $_pthreads
8785 HAVE_SHM = $_shm
8786 HAVE_W32THREADS = $_w32threads
8787 HAVE_YASM = $_have_yasm
8789 $(echo $_libavdecoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8790 $(echo $_libavencoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8791 $(echo $_libavparsers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8792 $(echo $_libavdemuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8793 $(echo $_libavmuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8794 $(echo $_libavprotocols | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8795 $(echo $_libavbsfs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8796 $(echo $_libavhwaccels | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8799 #############################################################################
8801 ff_config_enable () {
8802 _nprefix=$3;
8803 test -z "$_nprefix" && _nprefix='CONFIG'
8804 for part in $1; do
8805 if $(echo $2 | grep -q -E "(^| )$part($| )"); then
8806 echo "#define ${_nprefix}_$part 1"
8807 else
8808 echo "#define ${_nprefix}_$part 0"
8810 done
8813 echo "Creating config.h"
8814 cat > $TMPH << EOF
8815 /*----------------------------------------------------------------------------
8816 ** This file has been automatically generated by configure any changes in it
8817 ** will be lost when you run configure again.
8818 ** Instead of modifying definitions here, use the --enable/--disable options
8819 ** of the configure script! See ./configure --help for details.
8820 *---------------------------------------------------------------------------*/
8822 #ifndef MPLAYER_CONFIG_H
8823 #define MPLAYER_CONFIG_H
8825 /* Undefine this if you do not want to select mono audio (left or right)
8826 with a stereo MPEG layer 2/3 audio stream. The command line option
8827 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
8828 right-only), with 0 being the default.
8830 #define CONFIG_FAKE_MONO 1
8832 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
8833 #define MAX_OUTBURST 65536
8835 /* set up audio OUTBURST. Do not change this! */
8836 #define OUTBURST 512
8838 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8839 #undef FAST_OSD
8840 #undef FAST_OSD_TABLE
8842 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
8843 #define MPEG12_POSTPROC 1
8844 #define ATTRIBUTE_ALIGNED_MAX 16
8848 #define CONFIGURATION "$_configuration"
8850 #define MPLAYER_DATADIR "$_datadir"
8851 #define MPLAYER_CONFDIR "$_confdir"
8852 #define MPLAYER_LIBDIR "$_libdir"
8854 /* definitions needed by included libraries */
8855 #define HAVE_INTTYPES_H 1
8856 /* libmpeg2 + FFmpeg */
8857 $def_fast_inttypes
8858 /* libdvdcss */
8859 #define HAVE_ERRNO_H 1
8860 /* libdvdcss + libdvdread */
8861 #define HAVE_LIMITS_H 1
8862 /* libdvdcss + libfaad2 */
8863 #define HAVE_UNISTD_H 1
8864 /* libfaad2 + libdvdread */
8865 #define STDC_HEADERS 1
8866 #define HAVE_MEMCPY 1
8867 /* libfaad2 */
8868 #define HAVE_STRING_H 1
8869 #define HAVE_STRINGS_H 1
8870 #define HAVE_SYS_STAT_H 1
8871 #define HAVE_SYS_TYPES_H 1
8872 /* libdvdnav */
8873 #define READ_CACHE_TRACE 0
8874 /* libdvdread */
8875 #define HAVE_DLFCN_H 1
8876 $def_dvdcss
8879 /* system headers */
8880 $def_alloca_h
8881 $def_alsa_asoundlib_h
8882 $def_altivec_h
8883 $def_malloc_h
8884 $def_mman_h
8885 $def_mman_has_map_failed
8886 $def_soundcard_h
8887 $def_sys_asoundlib_h
8888 $def_sys_soundcard_h
8889 $def_sys_sysinfo_h
8890 $def_termios_h
8891 $def_termios_sys_h
8892 $def_winsock2_h
8895 /* system functions */
8896 $def_gethostbyname2
8897 $def_gettimeofday
8898 $def_glob
8899 $def_langinfo
8900 $def_lrintf
8901 $def_map_memalign
8902 $def_memalign
8903 $def_nanosleep
8904 $def_posix_select
8905 $def_select
8906 $def_setenv
8907 $def_shm
8908 $def_strsep
8909 $def_swab
8910 $def_sysi86
8911 $def_sysi86_iv
8912 $def_termcap
8913 $def_termios
8914 $def_vsscanf
8917 /* system-specific features */
8918 $def_asmalign_pot
8919 $def_builtin_expect
8920 $def_dl
8921 $def_dos_paths
8922 $def_extern_asm
8923 $def_extern_prefix
8924 $def_iconv
8925 $def_kstat
8926 $def_macosx_bundle
8927 $def_macosx_finder
8928 $def_maemo
8929 $def_named_asm_args
8930 $def_priority
8931 $def_quicktime
8932 $def_restrict_keyword
8933 $def_rtc
8934 $def_unrar_exec
8937 /* configurable options */
8938 $def_charset
8939 $def_crash_debug
8940 $def_debug
8941 $def_dynamic_plugins
8942 $def_fastmemcpy
8943 $def_menu
8944 $def_runtime_cpudetection
8945 $def_sighandler
8946 $def_sortsub
8947 $def_stream_cache
8948 $def_pthread_cache
8951 /* CPU stuff */
8952 #define __CPU__ $iproc
8953 $def_words_endian
8954 $def_bigendian
8955 $(ff_config_enable "$_arch_all" "$_arch" "ARCH")
8956 $(ff_config_enable "$_cpuexts_all" "$_cpuexts" "HAVE")
8959 /* DVD/VCD/CD */
8960 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
8961 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
8962 $def_bsdi_dvd
8963 $def_cddb
8964 $def_cdio
8965 $def_cdparanoia
8966 $def_cdrom
8967 $def_dvd
8968 $def_dvd_bsd
8969 $def_dvd_darwin
8970 $def_dvd_linux
8971 $def_dvd_openbsd
8972 $def_dvdio
8973 $def_dvdnav
8974 $def_dvdread
8975 $def_hpux_scsi_h
8976 $def_libcdio
8977 $def_sol_scsi_h
8978 $def_vcd
8981 /* codec libraries */
8982 $def_faac
8983 $def_faad
8984 $def_faad_internal
8985 $def_liba52
8986 $def_liba52_internal
8987 $def_libdca
8988 $def_libdv
8989 $def_liblzo
8990 $def_libmpeg2
8991 $def_mad
8992 $def_mp3lame
8993 $def_mp3lame_preset
8994 $def_mp3lame_preset_medium
8995 $def_mp3lib
8996 $def_musepack
8997 $def_speex
8998 $def_theora
8999 $def_toolame
9000 $def_tremor
9001 $def_twolame
9002 $def_vorbis
9003 $def_x264
9004 $def_xvid
9005 $def_zlib
9007 $def_libnut
9010 /* binary codecs */
9011 $def_qtx
9012 $def_qtx_win32
9013 $def_real
9014 $def_real_path
9015 $def_win32_loader
9016 $def_win32dll
9017 #define WIN32_PATH "$_win32codecsdir"
9018 $def_xanim
9019 $def_xanim_path
9020 $def_xmms
9021 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
9024 /* GUI */
9025 $def_gtk2
9026 $def_gui
9027 $def_xshape
9030 /* Audio output drivers */
9031 $def_alsa
9032 $def_alsa1x
9033 $def_alsa5
9034 $def_alsa9
9035 $def_arts
9036 $def_coreaudio
9037 $def_dart
9038 $def_esd
9039 $def_esd_latency
9040 $def_jack
9041 $def_kai
9042 $def_nas
9043 $def_openal
9044 $def_openal_h
9045 $def_ossaudio
9046 $def_ossaudio_devdsp
9047 $def_ossaudio_devmixer
9048 $def_pulse
9049 $def_sgiaudio
9050 $def_sunaudio
9051 $def_win32waveout
9053 $def_ladspa
9054 $def_libbs2b
9057 /* input */
9058 $def_apple_ir
9059 $def_apple_remote
9060 $def_ioctl_bt848_h_name
9061 $def_ioctl_meteor_h_name
9062 $def_joystick
9063 $def_lirc
9064 $def_lircc
9065 $def_pvr
9066 $def_radio
9067 $def_radio_bsdbt848
9068 $def_radio_capture
9069 $def_radio_v4l
9070 $def_radio_v4l2
9071 $def_tv
9072 $def_tv_bsdbt848
9073 $def_tv_dshow
9074 $def_tv_v4l
9075 $def_tv_v4l1
9076 $def_tv_v4l2
9079 /* font stuff */
9080 $def_ass
9081 $def_ass_internal
9082 $def_bitmap_font
9083 $def_enca
9084 $def_fontconfig
9085 $def_freetype
9086 $def_fribidi
9089 /* networking */
9090 $def_closesocket
9091 $def_ftp
9092 $def_inet6
9093 $def_inet_aton
9094 $def_inet_pton
9095 $def_live
9096 $def_nemesi
9097 $def_network
9098 $def_smb
9099 $def_socklen_t
9100 $def_struct_ipv6_mreq
9101 $def_struct_sockaddr_in6
9102 $def_struct_sockaddr_sa_len
9103 $def_vstream
9104 $def_addrinfo
9105 $def_getaddrinfo
9106 $def_sockaddr_storage
9109 /* libvo options */
9110 $def_3dfx
9111 $def_aa
9112 $def_bl
9113 $def_caca
9114 $def_corevideo
9115 $def_dfbmga
9116 $def_dga
9117 $def_dga1
9118 $def_dga2
9119 $def_direct3d
9120 $def_directfb
9121 $def_directfb_version
9122 $def_directx
9123 $def_dvb
9124 $def_dvb_head
9125 $def_dvbin
9126 $def_dxr2
9127 $def_dxr3
9128 $def_fbdev
9129 $def_ggi
9130 $def_ggiwmh
9131 $def_gif
9132 $def_gif_4
9133 $def_gif_tvt_hack
9134 $def_gl
9135 $def_gl_win32
9136 $def_gl_x11
9137 $def_matrixview
9138 $def_ivtv
9139 $def_jpeg
9140 $def_kva
9141 $def_md5sum
9142 $def_mga
9143 $def_mng
9144 $def_png
9145 $def_pnm
9146 $def_quartz
9147 $def_s3fb
9148 $def_sdl
9149 $def_sdl_sdl_h
9150 $def_sdlbuggy
9151 $def_svga
9152 $def_tdfxfb
9153 $def_tdfxvid
9154 $def_tga
9155 $def_v4l2
9156 $def_vdpau
9157 $def_vesa
9158 $def_vidix
9159 $def_vidix_drv_cyberblade
9160 $def_vidix_drv_ivtv
9161 $def_vidix_drv_mach64
9162 $def_vidix_drv_mga
9163 $def_vidix_drv_mga_crtc2
9164 $def_vidix_drv_nvidia
9165 $def_vidix_drv_pm3
9166 $def_vidix_drv_radeon
9167 $def_vidix_drv_rage128
9168 $def_vidix_drv_s3
9169 $def_vidix_drv_sh_veu
9170 $def_vidix_drv_sis
9171 $def_vidix_drv_unichrome
9172 $def_vidix_pfx
9173 $def_vm
9174 $def_wii
9175 $def_x11
9176 $def_xdpms
9177 $def_xf86keysym
9178 $def_xinerama
9179 $def_xmga
9180 $def_xss
9181 $def_xv
9182 $def_xvmc
9183 $def_xvr100
9184 $def_yuv4mpeg
9185 $def_zr
9188 /* FFmpeg */
9189 $def_libavcodec
9190 $def_libavcodec_a
9191 $def_libavcodec_so
9192 $def_libavformat
9193 $def_libavformat_a
9194 $def_libavformat_so
9195 $def_libavutil
9196 $def_libavutil_a
9197 $def_libavutil_so
9198 $def_libpostproc
9199 $def_libpostproc_a
9200 $def_libpostproc_so
9201 $def_libswscale
9202 $def_libswscale_a
9203 $def_libswscale_so
9205 #define CONFIG_DECODERS 1
9206 #define CONFIG_ENCODERS 1
9207 #define CONFIG_DEMUXERS 1
9208 $def_muxers
9210 $def_arpa_inet_h
9211 $def_bswap
9212 $def_bzlib
9213 $def_dcbzl
9214 $def_exp2
9215 $def_exp2f
9216 $def_fast_64bit
9217 $def_fast_unaligned
9218 $def_hardcoded_tables
9219 $def_libavcodec_mpegaudio_hp
9220 $def_llrint
9221 $def_log2
9222 $def_log2f
9223 $def_lrint
9224 $def_memalign_hack
9225 $def_mlib
9226 $def_mkstemp
9227 $def_posix_memalign
9228 $def_pthreads
9229 $def_round
9230 $def_roundf
9231 $def_ten_operands
9232 $def_threads
9233 $def_truncf
9234 $def_xform_asm
9235 $def_yasm
9237 #define CONFIG_FASTDIV 0
9238 #define CONFIG_FFSERVER 0
9239 #define CONFIG_GPL 1
9240 #define CONFIG_GRAY 0
9241 #define CONFIG_LIBVORBIS 0
9242 #define CONFIG_POWERPC_PERF 0
9243 #define CONFIG_SMALL 0
9244 #define CONFIG_SWSCALE 1
9245 #define CONFIG_SWSCALE_ALPHA 1
9247 #if defined(HAVE_AF_INET6) && (!defined(_WIN32) || defined(__CYGWIN__))
9248 #define CONFIG_IPV6 1
9249 #else
9250 #define CONFIG_IPV6 0
9251 #endif
9253 #define HAVE_ATTRIBUTE_MAY_ALIAS 1
9254 #define HAVE_ATTRIBUTE_PACKED 1
9255 #define HAVE_GETHRTIME 0
9256 #define HAVE_INLINE_ASM 1
9257 #define HAVE_LDBRX 0
9258 #define HAVE_POLL_H 1
9259 #define HAVE_PPC4XX 0
9260 #define HAVE_SETMODE 0
9261 #define HAVE_SYS_SELECT_H 0
9262 #define HAVE_VFP_ARGS 1
9263 #define HAVE_VIRTUALALLOC 0
9265 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
9266 #define CONFIG_AANDCT 1
9267 #define CONFIG_FFT 1
9268 #define CONFIG_GOLOMB 1
9269 #define CONFIG_LPC 1
9270 #define CONFIG_MDCT 1
9271 #define CONFIG_RDFT 1
9273 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
9274 $def_ebx_available
9275 #ifndef MP_DEBUG
9276 #define HAVE_EBP_AVAILABLE 1
9277 #else
9278 #define HAVE_EBP_AVAILABLE 0
9279 #endif
9281 #define FFMPEG_CONFIGURATION "--enable-gpl --enable-postproc"
9282 #define FFMPEG_LICENSE "GPL version 2 or later"
9284 /* External libraries used through libavcodec. */
9285 $def_faac_lavc
9286 $def_libdirac_lavc
9287 $def_libopencore_amrnb
9288 $def_libopencore_amrwb
9289 $def_libopenjpeg
9290 $def_libschroedinger_lavc
9291 $def_mp3lame_lavc
9292 $def_x264_lavc
9293 $def_xvid_lavc
9295 $(ff_config_enable "$_libavdecoders_all" "$_libavdecoders")
9296 $(ff_config_enable "$_libavencoders_all" "$_libavencoders")
9297 $(ff_config_enable "$_libavparsers_all" "$_libavparsers")
9298 $(ff_config_enable "$_libavdemuxers_all" "$_libavdemuxers")
9299 $(ff_config_enable "$_libavmuxers_all" "$_libavmuxers")
9300 $(ff_config_enable "$_libavprotocols_all" "$_libavprotocols")
9301 $(ff_config_enable "$_libavbsfs_all" "$_libavbsfs")
9302 $(ff_config_enable "$_libavhwaccels_all" "$_libavhwaccels")
9304 #endif /* MPLAYER_CONFIG_H */
9307 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
9308 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
9310 ############################################################################
9312 # Create avconfig.h for FFmpeg.
9313 cat > "$TMPH" << EOF
9314 /* Generated by mpconfigure */
9315 #ifndef AVUTIL_AVCONFIG_H
9316 #define AVUTIL_AVCONFIG_H
9317 $def_av_bigendian
9318 #endif /* AVUTIL_AVCONFIG_H */
9321 # Do not overwrite an unchanged avconfig.h to avoid superfluous rebuilds.
9322 cmp -s "$TMPH" libavutil/avconfig.h || mv -f "$TMPH" libavutil/avconfig.h
9324 #############################################################################
9326 cat << EOF
9328 Config files successfully generated by ./configure $_configuration !
9330 Install prefix: $_prefix
9331 Data directory: $_datadir
9332 Config direct.: $_confdir
9334 Byte order: $_byte_order
9335 Optimizing for: $_optimizing
9337 Languages:
9338 Messages/GUI: $language_msg
9339 Manual pages: $language_man
9340 Documentation: $language_doc
9342 Enabled optional drivers:
9343 Input: $_inputmodules
9344 Codecs: $_codecmodules
9345 Audio output: $_aomodules
9346 Video output: $_vomodules
9348 Disabled optional drivers:
9349 Input: $_noinputmodules
9350 Codecs: $_nocodecmodules
9351 Audio output: $_noaomodules
9352 Video output: $_novomodules
9354 'config.h' and 'config.mak' contain your configuration options.
9355 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
9356 compile *** DO NOT REPORT BUGS if you tweak these files ***
9358 'make' will now compile MPlayer and 'make install' will install it.
9359 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
9364 if test "$_mtrr" = yes ; then
9365 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)"
9366 echo
9369 if ! x86_32; then
9370 cat <<EOF
9371 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
9372 operating system ($system_name). You may encounter a few files that cannot
9373 be played due to missing open source video/audio codec support.
9379 cat <<EOF
9380 Check $TMPLOG if you wonder why an autodetection failed (make sure
9381 development headers/packages are installed).
9383 NOTE: The --enable-* parameters unconditionally force options on, completely
9384 skipping autodetection. This behavior is unlike what you may be used to from
9385 autoconf-based configure scripts that can decide to override you. This greater
9386 level of control comes at a price. You may have to provide the correct compiler
9387 and linker flags yourself.
9388 If you used one of these options (except --enable-gui and similar ones that
9389 turn on internal features) and experience a compilation or linking failure,
9390 make sure you have passed the necessary compiler/linker flags to configure.
9392 If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html.
9396 if test "$_warn_CFLAGS" = yes; then
9397 cat <<EOF
9399 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
9400 but:
9402 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
9404 It is strongly recommended to let MPlayer choose the correct CFLAGS!
9405 To do so, execute 'CFLAGS= ./configure <options>'
9410 # Last move:
9411 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"