Improve comment for GeoCodec.dll
[mplayer/glamo.git] / configure
blob823ba60315d2562cb2bb0bd7382a7d819ced762d
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 int main(void) {
6396 int err = FcInit();
6397 if (err == FcFalse) {
6398 printf("Couldn't initialize fontconfig lib\n");
6399 exit(err);
6401 return 0;
6404 _fontconfig=no
6405 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" "-lexpat -lfreetype -lz -liconv" ; do
6406 _ld_tmp="-lfontconfig $_ld_tmp"
6407 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6408 done
6409 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
6410 _inc_tmp=$($_pkg_config --cflags fontconfig)
6411 _ld_tmp=$($_pkg_config --libs fontconfig)
6412 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
6413 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6416 if test "$_fontconfig" = yes ; then
6417 def_fontconfig='#define CONFIG_FONTCONFIG 1'
6418 else
6419 def_fontconfig='#undef CONFIG_FONTCONFIG'
6421 echores "$_fontconfig"
6424 echocheck "SSA/ASS support"
6425 # libass depends on FreeType
6426 if test "$_freetype" = no ; then
6427 _ass=no
6428 ass_internal=no
6429 _res_comment="FreeType support needed"
6432 if test "$_ass" = auto ; then
6433 cat > $TMPC << EOF
6434 #include <ft2build.h>
6435 #include FT_FREETYPE_H
6436 #if ((FREETYPE_MAJOR < 2) || (FREETYPE_MINOR < 2) || ((FREETYPE_MINOR == 2) && (FREETYPE_PATCH < 1)))
6437 #error "Need FreeType 2.2.1 or newer"
6438 #endif
6439 int main(void) { return 0; }
6441 _ass=no
6442 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _ass=yes
6443 if test "$_ass" = no ; then
6444 ass_internal=no
6445 _res_comment="FreeType >= 2.2.1 needed"
6446 elif test "$ass_internal" = no ; then
6447 _res_comment="external"
6448 extra_ldflags="$extra_ldflags -lass"
6451 if test "$_ass" = yes ; then
6452 def_ass='#define CONFIG_ASS 1'
6453 else
6454 def_ass='#undef CONFIG_ASS'
6456 if test "$ass_internal" = yes ; then
6457 def_ass_internal='#define CONFIG_ASS_INTERNAL 1'
6458 else
6459 def_ass_internal='#undef CONFIG_ASS_INTERNAL'
6461 echores "$_ass"
6464 echocheck "fribidi with charsets"
6465 _inc_tmp=""
6466 _ld_tmp=""
6467 if test "$_fribidi" = auto ; then
6468 cat > $TMPC << EOF
6469 #include <stdio.h>
6470 #include <stdlib.h>
6471 /* workaround for fribidi 0.10.4 and below */
6472 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
6473 #include <fribidi/fribidi.h>
6474 int main(void) {
6475 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
6476 printf("Fribidi headers are not consistents with the library!\n");
6477 exit(1);
6479 return 0;
6482 _fribidi=no
6483 _inc_tmp=""
6484 _ld_tmp="-lfribidi"
6485 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6486 if $_fribidiconfig --version > /dev/null 2>&1 &&
6487 test "$_fribidi" = no ; then
6488 _inc_tmp="$($_fribidiconfig --cflags)"
6489 _ld_tmp="$($_fribidiconfig --libs)"
6490 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6493 if test "$_fribidi" = yes ; then
6494 def_fribidi='#define CONFIG_FRIBIDI 1'
6495 extra_cflags="$extra_cflags $_inc_tmp"
6496 extra_ldflags="$extra_ldflags $_ld_tmp"
6497 else
6498 def_fribidi='#undef CONFIG_FRIBIDI'
6500 echores "$_fribidi"
6503 echocheck "ENCA"
6504 if test "$_enca" = auto ; then
6505 cat > $TMPC << EOF
6506 #include <sys/types.h>
6507 #include <enca.h>
6508 int main(void) {
6509 const char **langs;
6510 size_t langcnt;
6511 langs = enca_get_languages(&langcnt);
6512 return 0;
6515 _enca=no
6516 cc_check -lenca $_ld_lm && _enca=yes
6518 if test "$_enca" = yes ; then
6519 def_enca='#define CONFIG_ENCA 1'
6520 extra_ldflags="$extra_ldflags -lenca"
6521 else
6522 def_enca='#undef CONFIG_ENCA'
6524 echores "$_enca"
6527 echocheck "zlib"
6528 cat > $TMPC << EOF
6529 #include <zlib.h>
6530 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
6532 _zlib=no
6533 cc_check -lz && _zlib=yes
6534 if test "$_zlib" = yes ; then
6535 def_zlib='#define CONFIG_ZLIB 1'
6536 extra_ldflags="$extra_ldflags -lz"
6537 else
6538 def_zlib='#define CONFIG_ZLIB 0'
6539 _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//)
6540 _libavencoders=$(echo $_libavencoders | sed -e s/FLASHSV_ENCODER// -e s/PNG_ENCODER// -e s/ZMBV_ENCODER// -e s/ZLIB_ENCODER//)
6542 echores "$_zlib"
6545 echocheck "bzlib"
6546 bzlib=no
6547 def_bzlib='#define CONFIG_BZLIB 0'
6548 cat > $TMPC << EOF
6549 #include <bzlib.h>
6550 int main(void) { BZ2_bzlibVersion(); return 0; }
6552 cc_check -lbz2 && bzlib=yes
6553 if test "$bzlib" = yes ; then
6554 def_bzlib='#define CONFIG_BZLIB 1'
6555 extra_ldflags="$extra_ldflags -lbz2"
6557 echores "$bzlib"
6560 echocheck "RTC"
6561 if test "$_rtc" = auto ; then
6562 cat > $TMPC << EOF
6563 #include <sys/ioctl.h>
6564 #ifdef __linux__
6565 #include <linux/rtc.h>
6566 #else
6567 #include <rtc.h>
6568 #define RTC_PIE_ON RTCIO_PIE_ON
6569 #endif
6570 int main(void) { return RTC_PIE_ON; }
6572 _rtc=no
6573 cc_check && _rtc=yes
6574 ppc && _rtc=no
6576 if test "$_rtc" = yes ; then
6577 def_rtc='#define HAVE_RTC 1'
6578 else
6579 def_rtc='#undef HAVE_RTC'
6581 echores "$_rtc"
6584 echocheck "liblzo2 support"
6585 if test "$_liblzo" = auto ; then
6586 _liblzo=no
6587 cat > $TMPC << EOF
6588 #include <lzo/lzo1x.h>
6589 int main(void) { lzo_init();return 0; }
6591 cc_check -llzo2 && _liblzo=yes
6593 if test "$_liblzo" = yes ; then
6594 def_liblzo='#define CONFIG_LIBLZO 1'
6595 extra_ldflags="$extra_ldflags -llzo2"
6596 _codecmodules="liblzo $_codecmodules"
6597 else
6598 def_liblzo='#undef CONFIG_LIBLZO'
6599 _nocodecmodules="liblzo $_nocodecmodules"
6601 echores "$_liblzo"
6604 echocheck "mad support"
6605 if test "$_mad" = auto ; then
6606 _mad=no
6607 cat > $TMPC << EOF
6608 #include <mad.h>
6609 int main(void) { return 0; }
6611 cc_check -lmad && _mad=yes
6613 if test "$_mad" = yes ; then
6614 def_mad='#define CONFIG_LIBMAD 1'
6615 extra_ldflags="$extra_ldflags -lmad"
6616 _codecmodules="libmad $_codecmodules"
6617 else
6618 def_mad='#undef CONFIG_LIBMAD'
6619 _nocodecmodules="libmad $_nocodecmodules"
6621 echores "$_mad"
6623 echocheck "Twolame"
6624 if test "$_twolame" = auto ; then
6625 cat > $TMPC <<EOF
6626 #include <twolame.h>
6627 int main(void) { twolame_init(); return 0; }
6629 _twolame=no
6630 cc_check -ltwolame $_ld_lm && _twolame=yes
6632 if test "$_twolame" = yes ; then
6633 def_twolame='#define CONFIG_TWOLAME 1'
6634 libs_mencoder="$libs_mencoder -ltwolame"
6635 _codecmodules="twolame $_codecmodules"
6636 else
6637 def_twolame='#undef CONFIG_TWOLAME'
6638 _nocodecmodules="twolame $_nocodecmodules"
6640 echores "$_twolame"
6642 echocheck "Toolame"
6643 if test "$_toolame" = auto ; then
6644 _toolame=no
6645 if test "$_twolame" = yes ; then
6646 _res_comment="disabled by twolame"
6647 else
6648 cat > $TMPC <<EOF
6649 #include <toolame.h>
6650 int main(void) { toolame_init(); return 0; }
6652 cc_check -ltoolame $_ld_lm && _toolame=yes
6655 if test "$_toolame" = yes ; then
6656 def_toolame='#define CONFIG_TOOLAME 1'
6657 libs_mencoder="$libs_mencoder -ltoolame"
6658 _codecmodules="toolame $_codecmodules"
6659 else
6660 def_toolame='#undef CONFIG_TOOLAME'
6661 _nocodecmodules="toolame $_nocodecmodules"
6663 if test "$_toolamedir" ; then
6664 _res_comment="using $_toolamedir"
6666 echores "$_toolame"
6668 echocheck "OggVorbis support"
6669 if test "$_tremor_internal" = yes; then
6670 _libvorbis=no
6671 elif test "$_tremor" = auto; then
6672 _tremor=no
6673 cat > $TMPC << EOF
6674 #include <tremor/ivorbiscodec.h>
6675 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6677 cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6679 if test "$_libvorbis" = auto; then
6680 _libvorbis=no
6681 cat > $TMPC << EOF
6682 #include <vorbis/codec.h>
6683 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6685 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
6687 if test "$_tremor_internal" = yes ; then
6688 _vorbis=yes
6689 def_vorbis='#define CONFIG_OGGVORBIS 1'
6690 def_tremor='#define CONFIG_TREMOR 1'
6691 _codecmodules="tremor(internal) $_codecmodules"
6692 _res_comment="internal Tremor"
6693 if test "$_tremor_low" = yes ; then
6694 cflags_tremor_low="-D_LOW_ACCURACY_"
6695 _res_comment="internal low accuracy Tremor"
6697 elif test "$_tremor" = yes ; then
6698 _vorbis=yes
6699 def_vorbis='#define CONFIG_OGGVORBIS 1'
6700 def_tremor='#define CONFIG_TREMOR 1'
6701 _codecmodules="tremor(external) $_codecmodules"
6702 _res_comment="external Tremor"
6703 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6704 elif test "$_libvorbis" = yes ; then
6705 _vorbis=yes
6706 def_vorbis='#define CONFIG_OGGVORBIS 1'
6707 _codecmodules="libvorbis $_codecmodules"
6708 _res_comment="libvorbis"
6709 extra_ldflags="$extra_ldflags -lvorbis -logg"
6710 else
6711 _vorbis=no
6712 _nocodecmodules="libvorbis $_nocodecmodules"
6714 echores "$_vorbis"
6716 echocheck "libspeex (version >= 1.1 required)"
6717 if test "$_speex" = auto ; then
6718 _speex=no
6719 cat > $TMPC << EOF
6720 #include <speex/speex.h>
6721 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
6723 cc_check -lspeex $_ld_lm && _speex=yes
6725 if test "$_speex" = yes ; then
6726 def_speex='#define CONFIG_SPEEX 1'
6727 extra_ldflags="$extra_ldflags -lspeex"
6728 _codecmodules="speex $_codecmodules"
6729 else
6730 def_speex='#undef CONFIG_SPEEX'
6731 _nocodecmodules="speex $_nocodecmodules"
6733 echores "$_speex"
6735 echocheck "OggTheora support"
6736 if test "$_theora" = auto ; then
6737 _theora=no
6738 cat > $TMPC << EOF
6739 #include <theora/theora.h>
6740 #include <string.h>
6741 int main(void) {
6742 /* Theora is in flux, make sure that all interface routines and datatypes
6743 * exist and work the way we expect it, so we don't break MPlayer. */
6744 ogg_packet op;
6745 theora_comment tc;
6746 theora_info inf;
6747 theora_state st;
6748 yuv_buffer yuv;
6749 int r;
6750 double t;
6752 theora_info_init(&inf);
6753 theora_comment_init(&tc);
6755 return 0;
6757 /* we don't want to execute this kind of nonsense; just for making sure
6758 * that compilation works... */
6759 memset(&op, 0, sizeof(op));
6760 r = theora_decode_header(&inf, &tc, &op);
6761 r = theora_decode_init(&st, &inf);
6762 t = theora_granule_time(&st, op.granulepos);
6763 r = theora_decode_packetin(&st, &op);
6764 r = theora_decode_YUVout(&st, &yuv);
6765 theora_clear(&st);
6767 return 0;
6770 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6771 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6772 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6773 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6774 if test _theora = no; then
6775 _ld_theora="-ltheora -logg"
6776 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6778 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6779 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6780 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6781 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6782 extra_ldflags="$extra_ldflags $_ld_theora" &&
6783 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6784 if test _theora = no; then
6785 _ld_theora="-ltheora -logg"
6786 cc_check tremor/bitwise.c $_ld_theora &&
6787 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6791 if test "$_theora" = yes ; then
6792 def_theora='#define CONFIG_OGGTHEORA 1'
6793 _codecmodules="libtheora $_codecmodules"
6794 # when --enable-theora is forced, we'd better provide a probably sane
6795 # $_ld_theora than nothing
6796 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6797 else
6798 def_theora='#undef CONFIG_OGGTHEORA'
6799 _nocodecmodules="libtheora $_nocodecmodules"
6801 echores "$_theora"
6803 echocheck "internal mp3lib support"
6804 if test "$_mp3lib" = auto ; then
6805 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _mp3lib=no || _mp3lib=yes
6807 if test "$_mp3lib" = yes ; then
6808 def_mp3lib='#define CONFIG_MP3LIB 1'
6809 _codecmodules="mp3lib(internal) $_codecmodules"
6810 else
6811 def_mp3lib='#undef CONFIG_MP3LIB'
6812 _nocodecmodules="mp3lib(internal) $_nocodecmodules"
6814 echores "$_mp3lib"
6816 echocheck "liba52 support"
6817 if test "$_liba52_internal" = auto ; then
6818 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
6820 def_liba52='#undef CONFIG_LIBA52'
6821 def_liba52_internal="#undef CONFIG_LIBA52_INTERNAL"
6822 if test "$_liba52_internal" = yes ; then
6823 _liba52=yes
6824 def_liba52_internal="#define CONFIG_LIBA52_INTERNAL 1"
6825 _res_comment="internal"
6826 elif test "$_liba52_internal" = no && test "$_liba52" = auto ; then
6827 _liba52=no
6828 cat > $TMPC << EOF
6829 #include <inttypes.h>
6830 #include <a52dec/a52.h>
6831 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6833 cc_check -la52 && _liba52=yes && _res_comment="external" && extra_ldflags="$extra_ldflags -la52"
6835 if test "$_liba52" = yes ; then
6836 def_liba52='#define CONFIG_LIBA52 1'
6837 _codecmodules="liba52($_res_comment) $_codecmodules"
6838 else
6839 _nocodecmodules="liba52 $_nocodecmodules"
6841 echores "$_liba52"
6843 echocheck "internal libmpeg2 support"
6844 if test "$_libmpeg2" = auto ; then
6845 _libmpeg2=yes
6846 if alpha && test cc_vendor=gnu; then
6847 case $cc_version in
6848 2*|3.0*|3.1*) # cannot compile MVI instructions
6849 _libmpeg2=no
6850 _res_comment="broken gcc"
6852 esac
6855 if test "$_libmpeg2" = yes ; then
6856 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6857 _codecmodules="libmpeg2(internal) $_codecmodules"
6858 else
6859 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6860 _nocodecmodules="libmpeg2(internal) $_nocodecmodules"
6862 echores "$_libmpeg2"
6864 echocheck "libdca support"
6865 if test "$_libdca" = auto ; then
6866 _libdca=no
6867 cat > $TMPC << EOF
6868 #include <inttypes.h>
6869 #include <dts.h>
6870 int main(void) { dts_init(0); return 0; }
6872 for _ld_dca in -ldca -ldts ; do
6873 cc_check $_ld_dca $_ld_lm && extra_ldflags="$extra_ldflags $_ld_dca" \
6874 && _libdca=yes && break
6875 done
6877 if test "$_libdca" = yes ; then
6878 def_libdca='#define CONFIG_LIBDCA 1'
6879 _codecmodules="libdca $_codecmodules"
6880 else
6881 def_libdca='#undef CONFIG_LIBDCA'
6882 _nocodecmodules="libdca $_nocodecmodules"
6884 echores "$_libdca"
6886 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6887 if test "$_musepack" = auto ; then
6888 _musepack=no
6889 cat > $TMPC << EOF
6890 #include <stddef.h>
6891 #include <mpcdec/mpcdec.h>
6892 int main(void) {
6893 mpc_streaminfo info;
6894 mpc_decoder decoder;
6895 mpc_decoder_set_streaminfo(&decoder, &info);
6896 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6897 return 0;
6900 cc_check -lmpcdec $_ld_lm && _musepack=yes
6902 if test "$_musepack" = yes ; then
6903 def_musepack='#define CONFIG_MUSEPACK 1'
6904 extra_ldflags="$extra_ldflags -lmpcdec"
6905 _codecmodules="musepack $_codecmodules"
6906 else
6907 def_musepack='#undef CONFIG_MUSEPACK'
6908 _nocodecmodules="musepack $_nocodecmodules"
6910 echores "$_musepack"
6913 echocheck "FAAC support"
6914 if test "$_faac" = auto ; then
6915 cat > $TMPC <<EOF
6916 #include <inttypes.h>
6917 #include <faac.h>
6918 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6920 _faac=no
6921 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6922 cc_check -O4 $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6923 done
6925 if test "$_faac" = yes ; then
6926 def_faac="#define CONFIG_FAAC 1"
6927 test "$_faac_lavc" = auto && _faac_lavc=yes
6928 if test "$_faac_lavc" = yes ; then
6929 def_faac_lavc="#define CONFIG_LIBFAAC 1"
6930 libs_mplayer="$libs_mplayer $_ld_faac"
6931 _libavencoders="$_libavencoders LIBFAAC_ENCODER"
6933 _codecmodules="faac $_codecmodules"
6934 else
6935 _faac_lavc=no
6936 def_faac="#undef CONFIG_FAAC"
6937 def_faac_lavc="#define CONFIG_LIBFAAC 0"
6938 _nocodecmodules="faac $_nocodecmodules"
6940 _res_comment="in libavcodec: $_faac_lavc"
6941 echores "$_faac"
6944 echocheck "FAAD2 support"
6945 if test "$_faad_internal" = auto ; then
6946 if x86_32 && test cc_vendor=gnu; then
6947 case $cc_version in
6948 3.1*|3.2) # ICE/insn with these versions
6949 _faad_internal=no
6950 _res_comment="broken gcc"
6953 _faad=yes
6954 _faad_internal=yes
6956 esac
6957 else
6958 _faad=yes
6959 _faad_internal=yes
6962 if test "$_faad" = auto ; then
6963 cat > $TMPC << EOF
6964 #include <faad.h>
6965 #ifndef FAAD_MIN_STREAMSIZE
6966 #error Too old version
6967 #endif
6968 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6969 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6971 cc_check -lfaad $_ld_lm && _faad=yes
6974 def_faad='#undef CONFIG_FAAD'
6975 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6976 if test "$_faad_internal" = yes ; then
6977 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6978 _res_comment="internal floating-point"
6979 if test "$_faad_fixed" = yes ; then
6980 # The FIXED_POINT implementation of FAAD2 improves performance
6981 # on some platforms, especially for SBR files.
6982 cflags_faad_fixed="-DFIXED_POINT"
6983 _res_comment="internal fixed-point"
6985 elif test "$_faad" = yes ; then
6986 extra_ldflags="$extra_ldflags -lfaad"
6989 if test "$_faad" = yes ; then
6990 def_faad='#define CONFIG_FAAD 1'
6991 if test "$_faad_internal" = yes ; then
6992 _codecmodules="faad2(internal) $_codecmodules"
6993 else
6994 _codecmodules="faad2 $_codecmodules"
6996 else
6997 _faad=no
6998 _nocodecmodules="faad2 $_nocodecmodules"
7000 echores "$_faad"
7003 echocheck "LADSPA plugin support"
7004 if test "$_ladspa" = auto ; then
7005 cat > $TMPC <<EOF
7006 #include <stdio.h>
7007 #include <ladspa.h>
7008 int main(void) {
7009 const LADSPA_Descriptor *ld = NULL;
7010 return 0;
7013 _ladspa=no
7014 cc_check && _ladspa=yes
7016 if test "$_ladspa" = yes; then
7017 def_ladspa="#define CONFIG_LADSPA 1"
7018 else
7019 def_ladspa="#undef CONFIG_LADSPA"
7021 echores "$_ladspa"
7024 echocheck "libbs2b audio filter support"
7025 if test "$_libbs2b" = auto ; then
7026 cat > $TMPC <<EOF
7027 #include <bs2b.h>
7028 #if BS2B_VERSION_MAJOR < 3
7029 #error Please use libbs2b >= 3.0.0, older versions are not supported.
7030 #endif
7031 int main(void) {
7032 t_bs2bdp filter;
7033 filter=bs2b_open();
7034 bs2b_close(filter);
7035 return 0;
7038 _libbs2b=no
7039 if $_pkg_config --exists libbs2b ; then
7040 _inc_tmp=$($_pkg_config --cflags libbs2b)
7041 _ld_tmp=$($_pkg_config --libs libbs2b)
7042 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
7043 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
7044 else
7045 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
7046 -I/usr/local/include/bs2b ; do
7047 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
7048 extra_ldflags="$extra_ldflags -lbs2b"
7049 extra_cflags="$extra_cflags $_inc_tmp"
7050 _libbs2b=yes
7051 break
7053 done
7056 def_libbs2b="#undef CONFIG_LIBBS2B"
7057 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
7058 echores "$_libbs2b"
7061 if test -z "$_codecsdir" ; then
7062 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
7063 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
7064 if test -d "$dir" ; then
7065 _codecsdir="$dir"
7066 break;
7068 done
7070 # Fall back on default directory.
7071 if test -z "$_codecsdir" ; then
7072 _codecsdir="$_libdir/codecs"
7073 mingw32 && _codecsdir="codecs"
7074 os2 && _codecsdir="codecs"
7078 echocheck "Win32 codecs"
7079 if test "$_win32dll" = auto ; then
7080 _win32dll=no
7081 if x86_32 && ! qnx; then
7082 _win32dll=yes
7085 if test "$_win32dll" = yes ; then
7086 def_win32dll='#define CONFIG_WIN32DLL 1'
7087 test -z "$_win32codecsdir" && _win32codecsdir=$_codecsdir
7088 _res_comment="using $_win32codecsdir"
7089 if ! win32 ; then
7090 def_win32_loader='#define WIN32_LOADER 1'
7091 _win32_emulation=yes
7092 else
7093 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
7094 _res_comment="using native windows"
7096 _codecmodules="win32 $_codecmodules"
7097 else
7098 def_win32dll='#undef CONFIG_WIN32DLL'
7099 def_win32_loader='#undef WIN32_LOADER'
7100 _nocodecmodules="win32 $_nocodecmodules"
7102 echores "$_win32dll"
7105 echocheck "XAnim codecs"
7106 if test "$_xanim" = auto ; then
7107 _xanim=no
7108 _res_comment="dynamic loader support needed"
7109 if test "$_dl" = yes ; then
7110 _xanim=yes
7113 if test "$_xanim" = yes ; then
7114 test -z "$_xanimcodecsdir" && _xanimcodecsdir=$_codecsdir
7115 def_xanim='#define CONFIG_XANIM 1'
7116 def_xanim_path="#define XACODEC_PATH \"$_xanimcodecsdir\""
7117 _codecmodules="xanim $_codecmodules"
7118 _res_comment="using $_xanimcodecsdir"
7119 else
7120 def_xanim='#undef CONFIG_XANIM'
7121 def_xanim_path='#undef XACODEC_PATH'
7122 _nocodecmodules="xanim $_nocodecmodules"
7124 echores "$_xanim"
7127 echocheck "RealPlayer codecs"
7128 if test "$_real" = auto ; then
7129 _real=no
7130 _res_comment="dynamic loader support needed"
7131 if test "$_dl" = yes || test "$_win32dll" = yes &&
7132 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32) ; then
7133 _real=yes
7136 if test "$_real" = yes ; then
7137 test -z "$_realcodecsdir" && _realcodecsdir="$_codecsdir"
7138 def_real='#define CONFIG_REALCODECS 1'
7139 def_real_path="#define REALCODEC_PATH \"$_realcodecsdir\""
7140 _codecmodules="real $_codecmodules"
7141 _res_comment="using $_realcodecsdir"
7142 else
7143 def_real='#undef CONFIG_REALCODECS'
7144 def_real_path="#undef REALCODEC_PATH"
7145 _nocodecmodules="real $_nocodecmodules"
7147 echores "$_real"
7150 echocheck "QuickTime codecs"
7151 _qtx_emulation=no
7152 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
7153 if test "$_qtx" = auto ; then
7154 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
7156 if test "$_qtx" = yes ; then
7157 def_qtx='#define CONFIG_QTX_CODECS 1'
7158 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
7159 _codecmodules="qtx $_codecmodules"
7160 darwin || win32 || _qtx_emulation=yes
7161 else
7162 def_qtx='#undef CONFIG_QTX_CODECS'
7163 _nocodecmodules="qtx $_nocodecmodules"
7165 echores "$_qtx"
7167 echocheck "Nemesi Streaming Media libraries"
7168 if test "$_nemesi" = auto && test "$_network" = yes ; then
7169 _nemesi=no
7170 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
7171 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
7172 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
7173 _nemesi=yes
7176 if test "$_nemesi" = yes; then
7177 _native_rtsp=no
7178 def_nemesi='#define CONFIG_LIBNEMESI 1'
7179 _inputmodules="nemesi $_inputmodules"
7180 else
7181 _native_rtsp="$_network"
7182 _nemesi=no
7183 def_nemesi='#undef CONFIG_LIBNEMESI'
7184 _noinputmodules="nemesi $_noinputmodules"
7186 echores "$_nemesi"
7188 echocheck "LIVE555 Streaming Media libraries"
7189 if test "$_live" = auto && test "$_network" = yes ; then
7190 cat > $TMPCPP << EOF
7191 #include <liveMedia.hh>
7192 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
7193 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
7194 #endif
7195 int main(void) { return 0; }
7198 _live=no
7199 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
7200 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
7201 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
7202 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
7203 $_livelibdir/groupsock/libgroupsock.a \
7204 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
7205 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
7206 $extra_ldflags -lstdc++" \
7207 extra_cxxflags="-I$_livelibdir/liveMedia/include \
7208 -I$_livelibdir/UsageEnvironment/include \
7209 -I$_livelibdir/BasicUsageEnvironment/include \
7210 -I$_livelibdir/groupsock/include" && \
7211 _live=yes && break
7212 done
7213 if test "$_live" != yes ; then
7214 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
7215 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
7216 _live_dist=yes
7220 if test "$_live" = yes && test "$_network" = yes; then
7221 test $_livelibdir && _res_comment="using $_livelibdir"
7222 def_live='#define CONFIG_LIVE555 1'
7223 _inputmodules="live555 $_inputmodules"
7224 elif test "$_live_dist" = yes && test "$_network" = yes; then
7225 _res_comment="using distribution version"
7226 _live="yes"
7227 def_live='#define CONFIG_LIVE555 1'
7228 extra_ldflags="$extra_ldflags $ld_tmp"
7229 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
7230 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
7231 _inputmodules="live555 $_inputmodules"
7232 else
7233 _live=no
7234 def_live='#undef CONFIG_LIVE555'
7235 _noinputmodules="live555 $_noinputmodules"
7237 echores "$_live"
7240 echocheck "FFmpeg libavutil"
7241 if test "$_libavutil_a" = auto ; then
7242 if test -d libavutil ; then
7243 _libavutil_a=yes
7244 _res_comment="static"
7245 else
7246 die "MPlayer will not compile without libavutil in the source tree."
7248 elif test "$_libavutil_so" = auto ; then
7249 _libavutil_so=no
7250 cat > $TMPC << EOF
7251 #include <libavutil/common.h>
7252 int main(void) { av_gcd(1,1); return 0; }
7254 if $_pkg_config --exists libavutil ; then
7255 _inc_libavutil=$($_pkg_config --cflags libavutil)
7256 _ld_tmp=$($_pkg_config --libs libavutil)
7257 cc_check $_inc_libavutil $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7258 && _libavutil_so=yes
7259 elif cc_check -lavutil $_ld_lm ; then
7260 extra_ldflags="$extra_ldflags -lavutil"
7261 _libavutil_so=yes
7262 _res_comment="using libavutil.so, but static libavutil is recommended"
7265 _libavutil=no
7266 def_libavutil='#undef CONFIG_LIBAVUTIL'
7267 def_libavutil_a='#undef CONFIG_LIBAVUTIL_A'
7268 def_libavutil_so='#undef CONFIG_LIBAVUTIL_SO'
7269 test "$_libavutil_a" = yes || test "$_libavutil_so" = yes && _libavutil=yes
7270 test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1'
7271 test "$_libavutil_a" = yes && def_libavutil_a='#define CONFIG_LIBAVUTIL_A 1'
7272 test "$_libavutil_so" = yes && def_libavutil_so='#define CONFIG_LIBAVUTIL_SO 1'
7273 # neither static nor shared libavutil is available, but it is mandatory ...
7274 if test "$_libavutil" = no ; then
7275 die "You need static or shared libavutil, MPlayer will not compile without!"
7277 echores "$_libavutil"
7279 echocheck "FFmpeg libavcodec"
7280 if test "$_libavcodec_a" = auto ; then
7281 _libavcodec_a=no
7282 if test -d libavcodec && test -f libavcodec/utils.c ; then
7283 _libavcodec_a="yes"
7284 _res_comment="static"
7286 elif test "$_libavcodec_so" = auto ; then
7287 _libavcodec_so=no
7288 _res_comment="libavcodec.so is discouraged over static libavcodec"
7289 cat > $TMPC << EOF
7290 #include <libavcodec/avcodec.h>
7291 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
7293 if $_pkg_config --exists libavcodec ; then
7294 _inc_libavcodec=$($_pkg_config --cflags libavcodec)
7295 _ld_tmp=$($_pkg_config --libs libavcodec)
7296 cc_check $_inc_libavcodec $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7297 && _libavcodec_so=yes
7298 elif cc_check -lavcodec $_ld_lm ; then
7299 extra_ldflags="$extra_ldflags -lavcodec"
7300 _libavcodec_so=yes
7301 _res_comment="using libavcodec.so, but static libavcodec is recommended"
7304 _libavcodec=no
7305 def_libavcodec='#undef CONFIG_LIBAVCODEC'
7306 def_libavcodec_a='#undef CONFIG_LIBAVCODEC_A'
7307 def_libavcodec_so='#undef CONFIG_LIBAVCODEC_SO'
7308 test "$_libavcodec_a" = yes || test "$_libavcodec_so" = yes && _libavcodec=yes
7309 test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1'
7310 test "$_libavcodec_a" = yes && def_libavcodec_a='#define CONFIG_LIBAVCODEC_A 1'
7311 test "$_libavcodec_so" = yes && def_libavcodec_so='#define CONFIG_LIBAVCODEC_SO 1'
7312 test "$_libavcodec_mpegaudio_hp" = yes \
7313 && def_libavcodec_mpegaudio_hp='#define CONFIG_MPEGAUDIO_HP 1' \
7314 && mak_libavcodec_mpegaudio_hp='CONFIG_MPEGAUDIO_HP = yes'
7315 if test "$_libavcodec_a" = yes ; then
7316 _codecmodules="libavcodec(internal) $_codecmodules"
7317 elif test "$_libavcodec_so" = yes ; then
7318 _codecmodules="libavcodec.so $_codecmodules"
7319 else
7320 _nocodecmodules="libavcodec $_nocodecmodules"
7322 echores "$_libavcodec"
7324 echocheck "FFmpeg libavformat"
7325 if test "$_libavformat_a" = auto ; then
7326 _libavformat_a=no
7327 if test -d libavformat && test -f libavformat/utils.c ; then
7328 _libavformat_a=yes
7329 _res_comment="static"
7331 elif test "$_libavformat_so" = auto ; then
7332 _libavformat_so=no
7333 cat > $TMPC <<EOF
7334 #include <libavformat/avformat.h>
7335 #include <libavcodec/opt.h>
7336 int main(void) { av_alloc_format_context(); return 0; }
7338 if $_pkg_config --exists libavformat ; then
7339 _inc_libavformat=$($_pkg_config --cflags libavformat)
7340 _ld_tmp=$($_pkg_config --libs libavformat)
7341 cc_check $_inc_libavformat $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7342 && _libavformat_so=yes
7343 elif cc_check $_ld_lm -lavformat ; then
7344 extra_ldflags="$extra_ldflags -lavformat"
7345 _libavformat_so=yes
7346 _res_comment="using libavformat.so, but static libavformat is recommended"
7349 _libavformat=no
7350 def_libavformat='#undef CONFIG_LIBAVFORMAT'
7351 def_libavformat_a='#undef CONFIG_LIBAVFORMAT_A'
7352 def_libavformat_so='#undef CONFIG_LIBAVFORMAT_SO'
7353 test "$_libavformat_a" = yes || test "$_libavformat_so" = yes && _libavformat=yes
7354 test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1'
7355 test "$_libavformat_a" = yes && def_libavformat_a='#define CONFIG_LIBAVFORMAT_A 1'
7356 test "$_libavformat_so" = yes \
7357 && def_libavformat_so='#define CONFIG_LIBAVFORMAT_SO 1'
7358 echores "$_libavformat"
7360 echocheck "FFmpeg libpostproc"
7361 if test "$_libpostproc_a" = auto ; then
7362 _libpostproc_a=no
7363 if test -d libpostproc && test -f libpostproc/postprocess.h ; then
7364 _libpostproc_a='yes'
7365 _res_comment="static"
7367 elif test "$_libpostproc_so" = auto ; then
7368 _libpostproc_so=no
7369 cat > $TMPC << EOF
7370 #include <inttypes.h>
7371 #include <libpostproc/postprocess.h>
7372 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
7374 if cc_check -lpostproc $_ld_lm ; then
7375 extra_ldflags="$extra_ldflags -lpostproc"
7376 _libpostproc_so=yes
7377 _res_comment="using libpostproc.so, but static libpostproc is recommended"
7380 _libpostproc=no
7381 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
7382 def_libpostproc_a='#undef CONFIG_LIBPOSTPROC_A'
7383 def_libpostproc_so='#undef CONFIG_LIBPOSTPROC_SO'
7384 test "$_libpostproc_a" = yes || test "$_libpostproc_so" = yes && _libpostproc=yes
7385 test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
7386 test "$_libpostproc_a" = yes && def_libpostproc_a='#define CONFIG_LIBPOSTPROC_A 1'
7387 test "$_libpostproc_so" = yes \
7388 && def_libpostproc_so='#define CONFIG_LIBPOSTPROC_SO 1'
7389 echores "$_libpostproc"
7391 echocheck "FFmpeg libswscale"
7392 if test "$_libswscale_a" = auto ; then
7393 _libswscale_a=no
7394 if test -d libswscale && test -f libswscale/swscale.h ; then
7395 _libswscale_a='yes'
7396 _res_comment="static"
7398 elif test "$_libswscale_so" = auto ; then
7399 _libswscale_so=no
7400 _res_comment="using libswscale.so, but static libswscale is recommended"
7401 cat > $TMPC << EOF
7402 #include <libswscale/swscale.h>
7403 int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; }
7405 if $_pkg_config --exists libswscale ; then
7406 _inc_libswscale=$($_pkg_config --cflags libswscale)
7407 _ld_tmp=$($_pkg_config --libs libswscale)
7408 cc_check $_inc_libswscale $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7409 && _libswscale_so=yes
7410 elif cc_check -lswscale ; then
7411 extra_ldflags="$extra_ldflags -lswscale"
7412 _libswscale_so=yes
7415 _libswscale=no
7416 def_libswscale='#undef CONFIG_LIBSWSCALE'
7417 def_libswscale_a='#undef CONFIG_LIBSWSCALE_A'
7418 def_libswscale_so='#undef CONFIG_LIBSWSCALE_SO'
7419 test "$_libswscale_a" = yes || test "$_libswscale_so" = yes && _libswscale=yes
7420 test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1'
7421 test "$_libswscale_a" = yes && def_libswscale_a='#define CONFIG_LIBSWSCALE_A 1'
7422 test "$_libswscale_so" = yes \
7423 && def_libswscale_so='#define CONFIG_LIBSWSCALE_SO 1'
7424 echores "$_libswscale"
7426 echocheck "libopencore_amr narrowband"
7427 if test "$_libopencore_amrnb" = auto ; then
7428 _libopencore_amrnb=no
7429 cat > $TMPC << EOF
7430 #include <opencore-amrnb/interf_dec.h>
7431 int main(void) { Decoder_Interface_init(); return 0; }
7433 cc_check -lopencore-amrnb && _libopencore_amrnb=yes
7434 if test "$_libavcodec_a" != yes ; then
7435 _libopencore_amrnb=no
7436 _res_comment="libavcodec (static) is required by libopencore_amrnb, sorry"
7439 if test "$_libopencore_amrnb" = yes ; then
7440 _libopencore_amr=yes
7441 extra_ldflags="$extra_ldflags -lopencore-amrnb"
7442 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 1'
7443 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRNB_DECODER"
7444 _libavencoders="$_libavencoders LIBOPENCORE_AMRNB_ENCODER"
7445 _codecmodules="libopencore_amrnb $_codecmodules"
7446 else
7447 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 0'
7448 _nocodecmodules="libopencore_amrnb $_nocodecmodules"
7450 echores "$_libopencore_amrnb"
7453 echocheck "libopencore_amr wideband"
7454 if test "$_libopencore_amrwb" = auto ; then
7455 _libopencore_amrwb=no
7456 cat > $TMPC << EOF
7457 #include <opencore-amrwb/dec_if.h>
7458 int main(void) { D_IF_init(); return 0; }
7460 cc_check -lopencore-amrwb && _libopencore_amrwb=yes
7461 if test "$_libavcodec_a" != yes ; then
7462 _libopencore_amrwb=no
7463 _res_comment="libavcodec (static) is required by libopencore_amrwb, sorry"
7466 if test "$_libopencore_amrwb" = yes ; then
7467 _libopencore_amr=yes
7468 extra_ldflags="$extra_ldflags -lopencore-amrwb"
7469 def_libopencore_amrwb='#define CONFIG_LIBOPENCORE_AMRWB 1'
7470 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRWB_DECODER"
7471 _libavencoders="$_libavencoders LIBOPENCORE_AMRWB_DECODER"
7472 _codecmodules="libopencore_amrwb $_codecmodules"
7473 else
7474 def_libopencore_amrwb='#define LIBOPENCORE_AMRWB 0'
7475 _nocodecmodules="libopencore_amrwb $_nocodecmodules"
7477 echores "$_libopencore_amrwb"
7479 echocheck "libdv-0.9.5+"
7480 if test "$_libdv" = auto ; then
7481 _libdv=no
7482 cat > $TMPC <<EOF
7483 #include <libdv/dv.h>
7484 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
7486 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
7488 if test "$_libdv" = yes ; then
7489 def_libdv='#define CONFIG_LIBDV095 1'
7490 extra_ldflags="$extra_ldflags -ldv"
7491 _codecmodules="libdv $_codecmodules"
7492 else
7493 def_libdv='#undef CONFIG_LIBDV095'
7494 _nocodecmodules="libdv $_nocodecmodules"
7496 echores "$_libdv"
7499 echocheck "Xvid"
7500 if test "$_xvid" = auto ; then
7501 _xvid=no
7502 cat > $TMPC << EOF
7503 #include <xvid.h>
7504 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
7506 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
7507 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
7508 done
7511 if test "$_xvid" = yes ; then
7512 def_xvid='#define CONFIG_XVID4 1'
7513 _codecmodules="xvid $_codecmodules"
7514 else
7515 def_xvid='#undef CONFIG_XVID4'
7516 _nocodecmodules="xvid $_nocodecmodules"
7518 echores "$_xvid"
7520 echocheck "Xvid two pass plugin"
7521 if test "$_xvid" = yes && test "$_xvid_lavc" = auto ; then
7522 cat > $TMPC << EOF
7523 #include <xvid.h>
7524 int main(void) { xvid_plugin_2pass2_t s; s.vbv_size=0; return 0; }
7526 cc_check && _xvid_lavc=yes
7528 if test "$_xvid_lavc" = yes ; then
7529 def_xvid_lavc='#define CONFIG_LIBXVID 1'
7530 _libavencoders="$_libavencoders LIBXVID_ENCODER"
7531 else
7532 _xvid_lavc=no
7533 def_xvid_lavc='#define CONFIG_LIBXVID 0'
7535 echores "$_xvid_lavc"
7538 echocheck "x264"
7539 if test "$_x264" = auto ; then
7540 cat > $TMPC << EOF
7541 #include <inttypes.h>
7542 #include <x264.h>
7543 #if X264_BUILD < 83
7544 #error We do not support old versions of x264. Get the latest from git.
7545 #endif
7546 int main(void) { x264_encoder_open((void*)0); return 0; }
7548 _x264=no
7549 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
7550 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
7551 done
7554 if test "$_x264" = yes ; then
7555 def_x264='#define CONFIG_X264 1'
7556 _codecmodules="x264 $_codecmodules"
7557 test "$_x264_lavc" = auto && _x264_lavc=yes
7558 if test "$_x264_lavc" = yes ; then
7559 def_x264_lavc='#define CONFIG_LIBX264 1'
7560 libs_mplayer="$libs_mplayer $_ld_x264"
7561 _libavencoders="$_libavencoders LIBX264_ENCODER"
7563 else
7564 _x264_lavc=no
7565 def_x264='#undef CONFIG_X264'
7566 def_x264_lavc='#define CONFIG_LIBX264 0'
7567 _nocodecmodules="x264 $_nocodecmodules"
7569 _res_comment="in libavcodec: $_x264_lavc"
7570 echores "$_x264"
7573 echocheck "libdirac"
7574 if test "$_libdirac_lavc" = auto; then
7575 _libdirac_lavc=no
7576 if test "$_libavcodec_a" != yes; then
7577 _res_comment="libavcodec (static) is required by libdirac, sorry"
7578 else
7579 cat > $TMPC << EOF
7580 #include <libdirac_encoder/dirac_encoder.h>
7581 #include <libdirac_decoder/dirac_parser.h>
7582 int main(void)
7584 dirac_encoder_context_t enc_ctx;
7585 dirac_decoder_t *dec_handle;
7586 dirac_encoder_context_init(&enc_ctx, VIDEO_FORMAT_SD_576I50);
7587 dec_handle = dirac_decoder_init(0);
7588 if (dec_handle)
7589 dirac_decoder_close(dec_handle);
7590 return 0;
7593 if $_pkg_config --exists dirac ; then
7594 _inc_dirac=$($_pkg_config --silence-errors --cflags dirac)
7595 _ld_dirac=$($_pkg_config --silence-errors --libs dirac)
7596 cc_check $_inc_dirac $_ld_dirac &&
7597 _libdirac_lavc=yes &&
7598 extra_cflags="$extra_cflags $_inc_dirac" &&
7599 extra_ldflags="$extra_ldflags $_ld_dirac"
7603 if test "$_libdirac_lavc" = yes ; then
7604 def_libdirac_lavc='#define CONFIG_LIBDIRAC 1'
7605 _libavencoders="$_libavencoders LIBDIRAC_ENCODER"
7606 _libavdecoders="$_libavdecoders LIBDIRAC_DECODER"
7607 _codecmodules="libdirac $_codecmodules"
7608 else
7609 def_libdirac_lavc='#define CONFIG_LIBDIRAC 0'
7610 _nocodecmodules="libdirac $_nocodecmodules"
7612 echores "$_libdirac_lavc"
7615 echocheck "libschroedinger"
7616 if test "$_libschroedinger_lavc" = auto ; then
7617 _libschroedinger_lavc=no
7618 if test "$_libavcodec_a" != yes; then
7619 _res_comment="libavcodec (static) is required by libschroedinger, sorry"
7620 else
7621 cat > $TMPC << EOF
7622 #include <schroedinger/schro.h>
7623 int main(void) { schro_init(); return 0; }
7625 if $_pkg_config --exists schroedinger-1.0 ; then
7626 _inc_schroedinger=$($_pkg_config --silence-errors --cflags schroedinger-1.0)
7627 _ld_schroedinger=$($_pkg_config --silence-errors --libs schroedinger-1.0)
7628 cc_check $_inc_schroedinger $_ld_schroedinger &&
7629 _libschroedinger_lavc=yes &&
7630 extra_cflags="$extra_cflags $_inc_schroedinger" &&
7631 extra_ldflags="$extra_ldflags $_ld_schroedinger"
7635 if test "$_libschroedinger_lavc" = yes ; then
7636 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 1'
7637 _libavencoders="$_libavencoders LIBSCHROEDINGER_ENCODER"
7638 _libavdecoders="$_libavdecoders LIBSCHROEDINGER_DECODER"
7639 _codecmodules="libschroedinger $_codecmodules"
7640 else
7641 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 0'
7642 _nocodecmodules="libschroedinger $_nocodecmodules"
7644 echores "$_libschroedinger_lavc"
7646 echocheck "libnut"
7647 if test "$_libnut" = auto ; then
7648 cat > $TMPC << EOF
7649 #include <stdio.h>
7650 #include <stdlib.h>
7651 #include <inttypes.h>
7652 #include <libnut.h>
7653 nut_context_tt * nut;
7654 int main(void) { (void)nut_error(0); return 0; }
7656 _libnut=no
7657 cc_check -lnut && _libnut=yes
7660 if test "$_libnut" = yes ; then
7661 def_libnut='#define CONFIG_LIBNUT 1'
7662 extra_ldflags="$extra_ldflags -lnut"
7663 else
7664 def_libnut='#undef CONFIG_LIBNUT'
7666 echores "$_libnut"
7668 #check must be done after libavcodec one
7669 echocheck "zr"
7670 if test "$_zr" = auto ; then
7671 #36067's seem to identify themselves as 36057PQC's, so the line
7672 #below should work for 36067's and 36057's.
7673 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
7674 _zr=yes
7675 else
7676 _zr=no
7679 if test "$_zr" = yes ; then
7680 if test "$_libavcodec_a" = yes ; then
7681 def_zr='#define CONFIG_ZR 1'
7682 _vomodules="zr zr2 $_vomodules"
7683 else
7684 _res_comment="libavcodec (static) is required by zr, sorry"
7685 _novomodules="zr $_novomodules"
7686 def_zr='#undef CONFIG_ZR'
7688 else
7689 def_zr='#undef CONFIG_ZR'
7690 _novomodules="zr zr2 $_novomodules"
7692 echores "$_zr"
7694 # mencoder requires (optional) those libs: libmp3lame
7695 if test "$_mencoder" != no ; then
7697 echocheck "libmp3lame"
7698 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
7699 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
7700 if test "$_mp3lame" = auto ; then
7701 _mp3lame=no
7702 cat > $TMPC <<EOF
7703 #include <lame/lame.h>
7704 int main(void) { lame_version_t lv; (void) lame_init();
7705 get_lame_version_numerical(&lv);
7706 return 0; }
7708 cc_check -lmp3lame $_ld_lm && _mp3lame=yes
7710 if test "$_mp3lame" = yes ; then
7711 def_mp3lame="#define CONFIG_MP3LAME 1"
7712 _ld_mp3lame=-lmp3lame
7713 libs_mencoder="$libs_mencoder $_ld_mp3lame"
7714 cat > $TMPC << EOF
7715 #include <lame/lame.h>
7716 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
7718 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET 1"
7719 cat > $TMPC << EOF
7720 #include <lame/lame.h>
7721 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
7723 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM 1"
7724 test "$_mp3lame_lavc" = auto && _mp3lame_lavc=yes
7725 if test "$_mp3lame_lavc" = yes ; then
7726 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 1"
7727 _libavencoders="$_libavencoders LIBMP3LAME_ENCODER"
7728 libs_mplayer="$libs_mplayer $_ld_mp3lame"
7730 else
7731 _mp3lame_lavc=no
7732 def_mp3lame='#undef CONFIG_MP3LAME'
7733 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 0"
7735 _res_comment="in libavcodec: $_mp3lame_lavc"
7736 echores "$_mp3lame"
7738 fi # test "$_mencoder" != no
7740 echocheck "mencoder"
7741 if test "$_mencoder" = yes ; then
7742 def_muxers='#define CONFIG_MUXERS 1'
7743 else
7744 # mpeg1video for vf_lavc, snow for vf_uspp and vf_mcdeint, png for vf_screenshot
7745 _libavencoders="MPEG1VIDEO_ENCODER SNOW_ENCODER"
7746 test "$_zlib" = yes && _libavencoders="$_libavencoders PNG_ENCODER"
7747 _libavmuxers=""
7748 def_muxers='#define CONFIG_MUXERS 0'
7750 echores "$_mencoder"
7753 echocheck "UnRAR executable"
7754 if test "$_unrar_exec" = auto ; then
7755 _unrar_exec="yes"
7756 mingw32 && _unrar_exec="no"
7758 if test "$_unrar_exec" = yes ; then
7759 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
7760 else
7761 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
7763 echores "$_unrar_exec"
7765 echocheck "TV interface"
7766 if test "$_tv" = yes ; then
7767 def_tv='#define CONFIG_TV 1'
7768 _inputmodules="tv $_inputmodules"
7769 else
7770 _noinputmodules="tv $_noinputmodules"
7771 def_tv='#undef CONFIG_TV'
7773 echores "$_tv"
7776 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
7777 echocheck "*BSD BT848 bt8xx header"
7778 _ioctl_bt848_h=no
7779 for file in "machine/ioctl_bt848.h" \
7780 "dev/bktr/ioctl_bt848.h" \
7781 "dev/video/bktr/ioctl_bt848.h" \
7782 "dev/ic/bt8xx.h" ; do
7783 cat > $TMPC <<EOF
7784 #include <sys/types.h>
7785 #include <sys/ioctl.h>
7786 #include <$file>
7787 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
7789 if cc_check ; then
7790 _ioctl_bt848_h=yes
7791 _ioctl_bt848_h_name="$file"
7792 break;
7794 done
7795 if test "$_ioctl_bt848_h" = yes ; then
7796 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
7797 _res_comment="using $_ioctl_bt848_h_name"
7798 else
7799 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
7801 echores "$_ioctl_bt848_h"
7803 echocheck "*BSD ioctl_meteor.h"
7804 _ioctl_meteor_h=no
7805 for file in "machine/ioctl_meteor.h" \
7806 "dev/bktr/ioctl_meteor.h" \
7807 "dev/video/bktr/ioctl_meteor.h" ; do
7808 cat > $TMPC <<EOF
7809 #include <sys/types.h>
7810 #include <$file>
7811 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
7813 if cc_check ; then
7814 _ioctl_meteor_h=yes
7815 _ioctl_meteor_h_name="$file"
7816 break;
7818 done
7819 if test "$_ioctl_meteor_h" = yes ; then
7820 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
7821 _res_comment="using $_ioctl_meteor_h_name"
7822 else
7823 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
7825 echores "$_ioctl_meteor_h"
7827 echocheck "*BSD BrookTree 848 TV interface"
7828 if test "$_tv_bsdbt848" = auto ; then
7829 _tv_bsdbt848=no
7830 if test "$_tv" = yes ; then
7831 cat > $TMPC <<EOF
7832 #include <sys/types.h>
7833 $def_ioctl_meteor_h_name
7834 $def_ioctl_bt848_h_name
7835 #ifdef IOCTL_METEOR_H_NAME
7836 #include IOCTL_METEOR_H_NAME
7837 #endif
7838 #ifdef IOCTL_BT848_H_NAME
7839 #include IOCTL_BT848_H_NAME
7840 #endif
7841 int main(void) {
7842 ioctl(0, METEORSINPUT, 0);
7843 ioctl(0, TVTUNER_GETFREQ, 0);
7844 return 0;
7847 cc_check && _tv_bsdbt848=yes
7850 if test "$_tv_bsdbt848" = yes ; then
7851 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
7852 _inputmodules="tv-bsdbt848 $_inputmodules"
7853 else
7854 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
7855 _noinputmodules="tv-bsdbt848 $_noinputmodules"
7857 echores "$_tv_bsdbt848"
7858 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
7861 echocheck "DirectShow TV interface"
7862 if test "$_tv_dshow" = auto ; then
7863 _tv_dshow=no
7864 if test "$_tv" = yes && win32 ; then
7865 cat > $TMPC <<EOF
7866 #include <ole2.h>
7867 int main(void) {
7868 void* p;
7869 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
7870 return 0;
7873 cc_check -lole32 -luuid && _tv_dshow=yes
7876 if test "$_tv_dshow" = yes ; then
7877 _inputmodules="tv-dshow $_inputmodules"
7878 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
7879 extra_ldflags="$extra_ldflags -lole32 -luuid"
7880 else
7881 _noinputmodules="tv-dshow $_noinputmodules"
7882 def_tv_dshow='#undef CONFIG_TV_DSHOW'
7884 echores "$_tv_dshow"
7887 echocheck "Video 4 Linux TV interface"
7888 if test "$_tv_v4l1" = auto ; then
7889 _tv_v4l1=no
7890 if test "$_tv" = yes && linux ; then
7891 cat > $TMPC <<EOF
7892 #include <stdlib.h>
7893 #include <linux/videodev.h>
7894 int main(void) { return 0; }
7896 cc_check && _tv_v4l1=yes
7899 if test "$_tv_v4l1" = yes ; then
7900 _audio_input=yes
7901 _tv_v4l=yes
7902 def_tv_v4l='#define CONFIG_TV_V4L 1'
7903 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
7904 _inputmodules="tv-v4l $_inputmodules"
7905 else
7906 _noinputmodules="tv-v4l1 $_noinputmodules"
7907 def_tv_v4l='#undef CONFIG_TV_V4L'
7909 echores "$_tv_v4l1"
7912 echocheck "Video 4 Linux 2 TV interface"
7913 if test "$_tv_v4l2" = auto ; then
7914 _tv_v4l2=no
7915 if test "$_tv" = yes && linux ; then
7916 cat > $TMPC <<EOF
7917 #include <stdlib.h>
7918 #include <linux/types.h>
7919 #include <linux/videodev2.h>
7920 int main(void) { return 0; }
7922 cc_check && _tv_v4l2=yes
7925 if test "$_tv_v4l2" = yes ; then
7926 _audio_input=yes
7927 _tv_v4l=yes
7928 def_tv_v4l='#define CONFIG_TV_V4L 1'
7929 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
7930 _inputmodules="tv-v4l2 $_inputmodules"
7931 else
7932 _noinputmodules="tv-v4l2 $_noinputmodules"
7933 def_tv_v4l2='#undef CONFIG_TV_V4L2'
7935 echores "$_tv_v4l2"
7938 echocheck "Radio interface"
7939 if test "$_radio" = yes ; then
7940 def_radio='#define CONFIG_RADIO 1'
7941 _inputmodules="radio $_inputmodules"
7942 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
7943 _radio_capture=no
7945 if test "$_radio_capture" = yes ; then
7946 _audio_input=yes
7947 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
7948 else
7949 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7951 else
7952 _noinputmodules="radio $_noinputmodules"
7953 def_radio='#undef CONFIG_RADIO'
7954 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7955 _radio_capture=no
7957 echores "$_radio"
7958 echocheck "Capture for Radio interface"
7959 echores "$_radio_capture"
7961 echocheck "Video 4 Linux 2 Radio interface"
7962 if test "$_radio_v4l2" = auto ; then
7963 _radio_v4l2=no
7964 if test "$_radio" = yes && linux ; then
7965 cat > $TMPC <<EOF
7966 #include <stdlib.h>
7967 #include <linux/types.h>
7968 #include <linux/videodev2.h>
7969 int main(void) { return 0; }
7971 cc_check && _radio_v4l2=yes
7974 if test "$_radio_v4l2" = yes ; then
7975 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
7976 else
7977 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
7979 echores "$_radio_v4l2"
7981 echocheck "Video 4 Linux Radio interface"
7982 if test "$_radio_v4l" = auto ; then
7983 _radio_v4l=no
7984 if test "$_radio" = yes && linux ; then
7985 cat > $TMPC <<EOF
7986 #include <stdlib.h>
7987 #include <linux/videodev.h>
7988 int main(void) { return 0; }
7990 cc_check && _radio_v4l=yes
7993 if test "$_radio_v4l" = yes ; then
7994 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
7995 else
7996 def_radio_v4l='#undef CONFIG_RADIO_V4L'
7998 echores "$_radio_v4l"
8000 if freebsd || netbsd || openbsd || dragonfly || bsdos \
8001 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
8002 echocheck "*BSD BrookTree 848 Radio interface"
8003 _radio_bsdbt848=no
8004 cat > $TMPC <<EOF
8005 #include <sys/types.h>
8006 $def_ioctl_bt848_h_name
8007 #ifdef IOCTL_BT848_H_NAME
8008 #include IOCTL_BT848_H_NAME
8009 #endif
8010 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
8012 cc_check && _radio_bsdbt848=yes
8013 echores "$_radio_bsdbt848"
8014 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
8016 if test "$_radio_bsdbt848" = yes ; then
8017 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
8018 else
8019 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
8022 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
8023 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
8024 die "Radio driver requires BSD BT848, V4L or V4L2!"
8027 echocheck "Video 4 Linux 2 MPEG PVR interface"
8028 if test "$_pvr" = auto ; then
8029 _pvr=no
8030 if test "$_tv_v4l2" = yes && linux ; then
8031 cat > $TMPC <<EOF
8032 #include <stdlib.h>
8033 #include <inttypes.h>
8034 #include <linux/types.h>
8035 #include <linux/videodev2.h>
8036 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
8038 cc_check && _pvr=yes
8041 if test "$_pvr" = yes ; then
8042 def_pvr='#define CONFIG_PVR 1'
8043 _inputmodules="pvr $_inputmodules"
8044 else
8045 _noinputmodules="pvr $_noinputmodules"
8046 def_pvr='#undef CONFIG_PVR'
8048 echores "$_pvr"
8051 echocheck "ftp"
8052 if ! beos && test "$_ftp" = yes ; then
8053 def_ftp='#define CONFIG_FTP 1'
8054 _inputmodules="ftp $_inputmodules"
8055 else
8056 _noinputmodules="ftp $_noinputmodules"
8057 def_ftp='#undef CONFIG_FTP'
8059 echores "$_ftp"
8061 echocheck "vstream client"
8062 if test "$_vstream" = auto ; then
8063 _vstream=no
8064 cat > $TMPC <<EOF
8065 #include <vstream-client.h>
8066 void vstream_error(const char *format, ... ) {}
8067 int main(void) { vstream_start(); return 0; }
8069 cc_check -lvstream-client && _vstream=yes
8071 if test "$_vstream" = yes ; then
8072 def_vstream='#define CONFIG_VSTREAM 1'
8073 _inputmodules="vstream $_inputmodules"
8074 extra_ldflags="$extra_ldflags -lvstream-client"
8075 else
8076 _noinputmodules="vstream $_noinputmodules"
8077 def_vstream='#undef CONFIG_VSTREAM'
8079 echores "$_vstream"
8082 echocheck "OSD menu"
8083 if test "$_menu" = yes ; then
8084 def_menu='#define CONFIG_MENU 1'
8085 test $_dvbin = "yes" && _menu_dvbin=yes
8086 else
8087 def_menu='#undef CONFIG_MENU'
8088 _menu_dvbin=no
8090 echores "$_menu"
8093 echocheck "Subtitles sorting"
8094 if test "$_sortsub" = yes ; then
8095 def_sortsub='#define CONFIG_SORTSUB 1'
8096 else
8097 def_sortsub='#undef CONFIG_SORTSUB'
8099 echores "$_sortsub"
8102 echocheck "XMMS inputplugin support"
8103 if test "$_xmms" = yes ; then
8104 if ( xmms-config --version ) >/dev/null 2>&1 ; then
8105 _xmmsplugindir=$(xmms-config --input-plugin-dir)
8106 _xmmslibdir=$(xmms-config --exec-prefix)/lib
8107 else
8108 _xmmsplugindir=/usr/lib/xmms/Input
8109 _xmmslibdir=/usr/lib
8112 def_xmms='#define CONFIG_XMMS 1'
8113 if darwin ; then
8114 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
8115 else
8116 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
8118 else
8119 def_xmms='#undef CONFIG_XMMS'
8121 echores "$_xmms"
8124 # --------------- GUI specific tests begin -------------------
8125 echocheck "GUI"
8126 echo "$_gui"
8127 if test "$_gui" = yes ; then
8129 # Required libraries
8130 if test "$_libavcodec" != yes ||
8131 ! echo $_libavdecoders | grep -q PNG_DECODER ; then
8132 die "The GUI requires libavcodec with PNG support (needs zlib)."
8134 test "$_freetype" = no && test "$_bitmap_font" = no && \
8135 die "The GUI requires either FreeType or bitmap font support."
8136 if ! win32 ; then
8137 _gui_gtk=yes
8138 test "$_x11" != yes && die "X11 support required for GUI compilation."
8140 echocheck "XShape extension"
8141 if test "$_xshape" = auto ; then
8142 _xshape=no
8143 cat > $TMPC << EOF
8144 #include <X11/Xlib.h>
8145 #include <X11/Xproto.h>
8146 #include <X11/Xutil.h>
8147 #include <X11/extensions/shape.h>
8148 #include <stdlib.h>
8149 int main(void) {
8150 char *name = ":0.0";
8151 Display *wsDisplay;
8152 int exitvar = 0;
8153 int eventbase, errorbase;
8154 if (getenv("DISPLAY"))
8155 name=getenv("DISPLAY");
8156 wsDisplay=XOpenDisplay(name);
8157 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
8158 exitvar=1;
8159 XCloseDisplay(wsDisplay);
8160 return exitvar;
8163 cc_check -lXext && _xshape=yes
8165 if test "$_xshape" = yes ; then
8166 def_xshape='#define CONFIG_XSHAPE 1'
8167 else
8168 die "The GUI requires the X11 extension XShape (which was not found)."
8170 echores "$_xshape"
8172 #Check for GTK
8173 if test "$_gtk1" = no ; then
8174 #Check for GTK2 :
8175 echocheck "GTK+ version"
8177 if $_pkg_config gtk+-2.0 --exists ; then
8178 _gtk=$($_pkg_config gtk+-2.0 --modversion 2>/dev/null)
8179 extra_cflags="$extra_cflags $($_pkg_config gtk+-2.0 --cflags 2>/dev/null)"
8180 libs_mplayer="$libs_mplayer $($_pkg_config gtk+-2.0 --libs 2>/dev/null)"
8181 echores "$_gtk"
8183 # Check for GLIB2
8184 if $_pkg_config glib-2.0 --exists ; then
8185 echocheck "glib version"
8186 _glib=$($_pkg_config glib-2.0 --modversion 2>/dev/null)
8187 libs_mplayer="$libs_mplayer $($_pkg_config glib-2.0 --libs 2>/dev/null)"
8188 echores "$_glib"
8190 def_gui='#define CONFIG_GUI 1'
8191 def_gtk2='#define CONFIG_GTK2 1'
8192 else
8193 _gtk1=yes
8194 echo "GLIB-2 devel packages were not found, trying GTK 1.2"
8196 else
8197 echo "GTK-2 devel packages were not found, trying GTK 1.2"
8198 _gtk1=yes
8202 if test "$_gtk1" = yes ; then
8203 # Check for old GTK (1.2.x)
8204 echocheck "GTK version"
8205 if test -z "$_gtkconfig" ; then
8206 if ( gtk-config --version ) >/dev/null 2>&1 ; then
8207 _gtkconfig="gtk-config"
8208 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
8209 _gtkconfig="gtk12-config"
8210 else
8211 die "The GUI requires GTK devel packages (which were not found)."
8214 _gtk=$($_gtkconfig --version 2>&1)
8215 extra_cflags="$extra_cflags $($_gtkconfig --cflags 2>&1)"
8216 libs_mplayer="$libs_mplayer $($_gtkconfig --libs 2>&1)"
8217 echores "$_gtk (using $_gtkconfig)"
8219 # Check for GLIB
8220 echocheck "glib version"
8221 if test -z "$_glibconfig" ; then
8222 if ( glib-config --version ) >/dev/null 2>&1 ; then
8223 _glibconfig="glib-config"
8224 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
8225 _glibconfig="glib12-config"
8226 else
8227 die "The GUI requires GLIB devel packages (which were not found)"
8230 _glib=$($_glibconfig --version 2>&1)
8231 libs_mplayer="$libs_mplayer $($_glibconfig --libs 2>&1)"
8232 echores "$_glib (using $_glibconfig)"
8234 def_gui='#define CONFIG_GUI 1'
8235 def_gtk2='#undef CONFIG_GTK2'
8238 else #if ! win32
8239 _gui_win32=yes
8240 libs_mplayer="$libs_mplayer -lcomdlg32 -lcomctl32 -lshell32 -lkernel32"
8241 def_gui='#define CONFIG_GUI 1'
8242 def_gtk2='#undef CONFIG_GTK2'
8243 fi #if ! win32
8245 else #if test "$_gui"
8246 def_gui='#undef CONFIG_GUI'
8247 def_gtk2='#undef CONFIG_GTK2'
8248 fi #if test "$_gui"
8249 # --------------- GUI specific tests end -------------------
8252 if test "$_charset" != "noconv" ; then
8253 def_charset="#define MSG_CHARSET \"$_charset\""
8254 else
8255 def_charset="#undef MSG_CHARSET"
8256 _charset="UTF-8"
8259 if test -n "$_charset" && test "$_charset" != "UTF-8" ; then
8260 echocheck "iconv program"
8261 iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG"
8262 if test "$?" -ne 0 ; then
8263 echores "no"
8264 echo "No working iconv program found, use "
8265 echo "--charset=UTF-8 to continue anyway."
8266 echo "If you also have problems with iconv library functions use --charset=noconv."
8267 echo "Messages in the GTK-2 interface will be broken then."
8268 exit 1
8269 else
8270 echores "yes"
8274 #############################################################################
8276 echocheck "automatic gdb attach"
8277 if test "$_crash_debug" = yes ; then
8278 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
8279 else
8280 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
8281 _crash_debug=no
8283 echores "$_crash_debug"
8285 echocheck "compiler support for noexecstack"
8286 cat > $TMPC <<EOF
8287 int main(void) { return 0; }
8289 if cc_check -Wl,-z,noexecstack ; then
8290 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
8291 echores "yes"
8292 else
8293 echores "no"
8296 echocheck "linker support for --nxcompat --no-seh --dynamicbase"
8297 if cc_check "-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
8298 extra_ldflags="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
8299 echores "yes"
8300 else
8301 echores "no"
8305 # Dynamic linking flags
8306 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
8307 _ld_dl_dynamic=''
8308 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
8309 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
8310 _ld_dl_dynamic='-rdynamic'
8313 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
8314 bsdos && extra_ldflags="$extra_ldflags -ldvd"
8315 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
8317 def_debug='#undef MP_DEBUG'
8318 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
8321 echocheck "joystick"
8322 def_joystick='#undef CONFIG_JOYSTICK'
8323 if test "$_joystick" = yes ; then
8324 if linux ; then
8325 # TODO add some check
8326 def_joystick='#define CONFIG_JOYSTICK 1'
8327 else
8328 _joystick="no"
8329 _res_comment="unsupported under $system_name"
8332 echores "$_joystick"
8334 echocheck "lirc"
8335 if test "$_lirc" = auto ; then
8336 _lirc=no
8337 cat > $TMPC <<EOF
8338 #include <lirc/lirc_client.h>
8339 int main(void) { return 0; }
8341 cc_check -llirc_client && _lirc=yes
8343 if test "$_lirc" = yes ; then
8344 def_lirc='#define CONFIG_LIRC 1'
8345 libs_mplayer="$libs_mplayer -llirc_client"
8346 else
8347 def_lirc='#undef CONFIG_LIRC'
8349 echores "$_lirc"
8351 echocheck "lircc"
8352 if test "$_lircc" = auto ; then
8353 _lircc=no
8354 cat > $TMPC <<EOF
8355 #include <lirc/lircc.h>
8356 int main(void) { return 0; }
8358 cc_check -llircc && _lircc=yes
8360 if test "$_lircc" = yes ; then
8361 def_lircc='#define CONFIG_LIRCC 1'
8362 libs_mplayer="$libs_mplayer -llircc"
8363 else
8364 def_lircc='#undef CONFIG_LIRCC'
8366 echores "$_lircc"
8368 if arm; then
8369 # Detect maemo development platform libraries availability (http://www.maemo.org),
8370 # they are used when run on Nokia 770|8x0
8371 echocheck "maemo (Nokia 770|8x0)"
8372 if test "$_maemo" = auto ; then
8373 _maemo=no
8374 cat > $TMPC << EOF
8375 #include <libosso.h>
8376 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
8378 cc_check $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
8380 if test "$_maemo" = yes ; then
8381 def_maemo='#define CONFIG_MAEMO 1'
8382 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
8383 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
8384 else
8385 def_maemo='#undef CONFIG_MAEMO'
8387 echores "$_maemo"
8390 #############################################################################
8392 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
8393 # the OMF format needs to come after the 'extern symbol prefix' check, which
8394 # uses nm.
8395 if os2 ; then
8396 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
8399 # linker paths should be the same for mencoder and mplayer
8400 _ld_tmp=""
8401 for I in $libs_mplayer ; do
8402 _tmp=$(echo $I | sed -e 's/^-L.*$//')
8403 if test -z "$_tmp" ; then
8404 extra_ldflags="$extra_ldflags $I"
8405 else
8406 _ld_tmp="$_ld_tmp $I"
8408 done
8409 libs_mplayer=$_ld_tmp
8412 #############################################################################
8413 # 64 bit file offsets?
8414 if test "$_largefiles" = yes || freebsd ; then
8415 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
8416 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
8417 # dvdread support requires this (for off64_t)
8418 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
8422 CXXFLAGS=" $CFLAGS -D__STDC_LIMIT_MACROS"
8424 # This must be the last test to be performed. Any other tests following it
8425 # could fail due to linker errors. libdvdnavmini is intentionally not linked
8426 # against libdvdread (to permit MPlayer to use its own copy of the library).
8427 # So any compilation using the flags added here but not linking against
8428 # libdvdread can fail.
8429 echocheck "DVD support (libdvdnav)"
8430 dvdnav_internal=no
8431 if test "$_dvdnav" = auto ; then
8432 if test "$_dvdread_internal" = yes ; then
8433 _dvdnav=yes
8434 dvdnav_internal=yes
8435 _res_comment="internal"
8436 else
8437 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
8440 if test "$_dvdnav" = auto ; then
8441 cat > $TMPC <<EOF
8442 #include <inttypes.h>
8443 #include <dvdnav/dvdnav.h>
8444 int main(void) { dvdnav_t *dvd=0; return 0; }
8446 _dvdnav=no
8447 _dvdnavdir=$($_dvdnavconfig --cflags)
8448 _dvdnavlibs=$($_dvdnavconfig --libs)
8449 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
8451 if test "$_dvdnav" = yes ; then
8452 _largefiles=yes
8453 def_dvdnav='#define CONFIG_DVDNAV 1'
8454 if test "$dvdnav_internal" = yes ; then
8455 cflags_libdvdnav="-Ilibdvdnav"
8456 _inputmodules="dvdnav(internal) $_inputmodules"
8457 else
8458 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
8459 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
8460 _inputmodules="dvdnav $_inputmodules"
8462 else
8463 def_dvdnav='#undef CONFIG_DVDNAV'
8464 _noinputmodules="dvdnav $_noinputmodules"
8466 echores "$_dvdnav"
8468 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
8469 # Read dvdnav comment above.
8471 #############################################################################
8472 echo "Creating config.mak"
8473 cat > config.mak << EOF
8474 # -------- Generated by configure -----------
8476 # Ensure that locale settings do not interfere with shell commands.
8477 export LC_ALL = C
8479 CONFIGURATION = $_configuration
8481 CHARSET = $_charset
8482 DOC_LANGS = $language_doc
8483 DOC_LANG_ALL = $doc_lang_all
8484 MAN_LANGS = $language_man
8485 MAN_LANG_ALL = $man_lang_all
8487 prefix = \$(DESTDIR)$_prefix
8488 BINDIR = \$(DESTDIR)$_bindir
8489 DATADIR = \$(DESTDIR)$_datadir
8490 LIBDIR = \$(DESTDIR)$_libdir
8491 MANDIR = \$(DESTDIR)$_mandir
8492 CONFDIR = \$(DESTDIR)$_confdir
8494 AR = $_ar
8495 AS = $_cc
8496 CC = $_cc
8497 CXX = $_cc
8498 HOST_CC = $_host_cc
8499 YASM = $_yasm
8500 INSTALL = $_install
8501 INSTALLSTRIP = $_install_strip
8502 RANLIB = $_ranlib
8503 WINDRES = $_windres
8505 CFLAGS = $CFLAGS $extra_cflags
8506 ASFLAGS = $CFLAGS $extra_cflags
8507 OPTFLAGS = $CFLAGS $extra_cflags
8508 CXXFLAGS = $CXXFLAGS $extra_cflags $extra_cxxflags
8509 CFLAGS_DHAHELPER = $cflags_dhahelper
8510 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
8511 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
8512 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
8513 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
8514 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
8515 CFLAGS_STACKREALIGN = $cflags_stackrealign
8516 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
8517 CFLAGS_TREMOR_LOW = $cflags_tremor_low
8518 YASMFLAGS = $YASMFLAGS
8520 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
8521 EXTRALIBS_MPLAYER = $libs_mplayer
8522 EXTRALIBS_MENCODER = $libs_mencoder
8524 DEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.h,\$^) | sed "s,[0-9a-z._-]*: \(\$(SRC_DIR)/\)*\([a-z0-9]*/\)[^/]* ,\\2&,"
8526 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 &,"
8527 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 &,"
8529 GETCH = $_getch
8530 HELP_FILE = $_mp_help
8531 TIMER = $_timer
8533 EXESUF = $_exesuf
8534 EXESUFS_ALL = .exe
8536 $_target_arch
8537 $_target_subarch
8538 $(echo $_cpuexts | tr '[a-z] ' '[A-Z]\n' | sed 's/^/HAVE_/;s/$/=yes/')
8540 MENCODER = $_mencoder
8541 MPLAYER = $_mplayer
8543 NEED_GETTIMEOFDAY = $_need_gettimeofday
8544 NEED_GLOB = $_need_glob
8545 NEED_MMAP = $_need_mmap
8546 NEED_SETENV = $_need_setenv
8547 NEED_SHMEM = $_need_shmem
8548 NEED_STRSEP = $_need_strsep
8549 NEED_SWAB = $_need_swab
8550 NEED_VSSCANF = $_need_vsscanf
8552 # features
8553 3DFX = $_3dfx
8554 AA = $_aa
8555 ALSA1X = $_alsa1x
8556 ALSA9 = $_alsa9
8557 ALSA5 = $_alsa5
8558 APPLE_IR = $_apple_ir
8559 APPLE_REMOTE = $_apple_remote
8560 ARTS = $_arts
8561 AUDIO_INPUT = $_audio_input
8562 BITMAP_FONT = $_bitmap_font
8563 BL = $_bl
8564 CACA = $_caca
8565 CDDA = $_cdda
8566 CDDB = $_cddb
8567 COREAUDIO = $_coreaudio
8568 COREVIDEO = $_corevideo
8569 DART = $_dart
8570 DFBMGA = $_dfbmga
8571 DGA = $_dga
8572 DIRECT3D = $_direct3d
8573 DIRECTFB = $_directfb
8574 DIRECTX = $_directx
8575 DVBIN = $_dvbin
8576 DVDNAV = $_dvdnav
8577 DVDNAV_INTERNAL = $dvdnav_internal
8578 DVDREAD = $_dvdread
8579 DVDREAD_INTERNAL = $_dvdread_internal
8580 DXR2 = $_dxr2
8581 DXR3 = $_dxr3
8582 ESD = $_esd
8583 FAAC=$_faac
8584 FAAD = $_faad
8585 FAAD_INTERNAL = $_faad_internal
8586 FASTMEMCPY = $_fastmemcpy
8587 $mak_hardcoded_tables
8588 $mak_libavcodec_mpegaudio_hp
8589 FBDEV = $_fbdev
8590 FREETYPE = $_freetype
8591 FTP = $_ftp
8592 GIF = $_gif
8593 GGI = $_ggi
8594 GL = $_gl
8595 GL_WIN32 = $_gl_win32
8596 GL_X11 = $_gl_x11
8597 MATRIXVIEW = $matrixview
8598 GUI = $_gui
8599 GUI_GTK = $_gui_gtk
8600 GUI_WIN32 = $_gui_win32
8601 HAVE_POSIX_SELECT = $_posix_select
8602 HAVE_SYS_MMAN_H = $_mman
8603 IVTV = $_ivtv
8604 JACK = $_jack
8605 JOYSTICK = $_joystick
8606 JPEG = $_jpeg
8607 KAI = $_kai
8608 KVA = $_kva
8609 LADSPA = $_ladspa
8610 LIBA52 = $_liba52
8611 LIBA52_INTERNAL = $_liba52_internal
8612 LIBASS = $_ass
8613 LIBASS_INTERNAL = $ass_internal
8614 LIBBS2B = $_libbs2b
8615 LIBDCA = $_libdca
8616 LIBDV = $_libdv
8617 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
8618 LIBLZO = $_liblzo
8619 LIBMAD = $_mad
8620 LIBMENU = $_menu
8621 LIBMENU_DVBIN = $_menu_dvbin
8622 LIBMPEG2 = $_libmpeg2
8623 LIBNEMESI = $_nemesi
8624 LIBNUT = $_libnut
8625 LIBSMBCLIENT = $_smb
8626 LIBTHEORA = $_theora
8627 LIRC = $_lirc
8628 LIVE555 = $_live
8629 MACOSX_BUNDLE = $_macosx_bundle
8630 MACOSX_FINDER = $_macosx_finder
8631 MD5SUM = $_md5sum
8632 MGA = $_mga
8633 MNG = $_mng
8634 MP3LAME = $_mp3lame
8635 MP3LIB = $_mp3lib
8636 MUSEPACK = $_musepack
8637 NAS = $_nas
8638 NATIVE_RTSP = $_native_rtsp
8639 NETWORK = $_network
8640 OPENAL = $_openal
8641 OSS = $_ossaudio
8642 PE_EXECUTABLE = $_pe_executable
8643 PNG = $_png
8644 PNM = $_pnm
8645 PRIORITY = $_priority
8646 PULSE = $_pulse
8647 PVR = $_pvr
8648 QTX_CODECS = $_qtx
8649 QTX_CODECS_WIN32 = $_qtx_codecs_win32
8650 QTX_EMULATION = $_qtx_emulation
8651 QUARTZ = $_quartz
8652 RADIO=$_radio
8653 RADIO_CAPTURE=$_radio_capture
8654 REAL_CODECS = $_real
8655 S3FB = $_s3fb
8656 SDL = $_sdl
8657 SPEEX = $_speex
8658 STREAM_CACHE = $_stream_cache
8659 SGIAUDIO = $_sgiaudio
8660 SUNAUDIO = $_sunaudio
8661 SVGA = $_svga
8662 TDFXFB = $_tdfxfb
8663 TDFXVID = $_tdfxvid
8664 TGA = $_tga
8665 TOOLAME=$_toolame
8666 TREMOR_INTERNAL = $_tremor_internal
8667 TV = $_tv
8668 TV_BSDBT848 = $_tv_bsdbt848
8669 TV_DSHOW = $_tv_dshow
8670 TV_V4L = $_tv_v4l
8671 TV_V4L1 = $_tv_v4l1
8672 TV_V4L2 = $_tv_v4l2
8673 TWOLAME=$_twolame
8674 UNRAR_EXEC = $_unrar_exec
8675 V4L2 = $_v4l2
8676 VCD = $_vcd
8677 VDPAU = $_vdpau
8678 VESA = $_vesa
8679 VIDIX = $_vidix
8680 VIDIX_PCIDB = $_vidix_pcidb_val
8681 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
8682 VIDIX_IVTV=$_vidix_drv_ivtv
8683 VIDIX_MACH64=$_vidix_drv_mach64
8684 VIDIX_MGA=$_vidix_drv_mga
8685 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
8686 VIDIX_NVIDIA=$_vidix_drv_nvidia
8687 VIDIX_PM2=$_vidix_drv_pm2
8688 VIDIX_PM3=$_vidix_drv_pm3
8689 VIDIX_RADEON=$_vidix_drv_radeon
8690 VIDIX_RAGE128=$_vidix_drv_rage128
8691 VIDIX_S3=$_vidix_drv_s3
8692 VIDIX_SH_VEU=$_vidix_drv_sh_veu
8693 VIDIX_SIS=$_vidix_drv_sis
8694 VIDIX_UNICHROME=$_vidix_drv_unichrome
8695 VORBIS = $_vorbis
8696 VSTREAM = $_vstream
8697 WII = $_wii
8698 WIN32DLL = $_win32dll
8699 WIN32WAVEOUT = $_win32waveout
8700 WIN32_EMULATION = $_win32_emulation
8701 WINVIDIX = $winvidix
8702 X11 = $_x11
8703 X264 = $_x264
8704 XANIM_CODECS = $_xanim
8705 XMGA = $_xmga
8706 XMMS_PLUGINS = $_xmms
8707 XV = $_xv
8708 XVID4 = $_xvid
8709 XVIDIX = $xvidix
8710 XVMC = $_xvmc
8711 XVR100 = $_xvr100
8712 YUV4MPEG = $_yuv4mpeg
8713 ZR = $_zr
8715 # FFmpeg
8716 LIBAVUTIL = $_libavutil
8717 LIBAVUTIL_A = $_libavutil_a
8718 LIBAVUTIL_SO = $_libavutil_so
8719 LIBAVCODEC = $_libavcodec
8720 LIBAVCODEC_A = $_libavcodec_a
8721 LIBAVCODEC_SO = $_libavcodec_so
8722 LIBAVFORMAT = $_libavformat
8723 LIBAVFORMAT_A = $_libavformat_a
8724 LIBAVFORMAT_SO = $_libavformat_so
8725 LIBPOSTPROC = $_libpostproc
8726 LIBPOSTPROC_A = $_libpostproc_a
8727 LIBPOSTPROC_SO = $_libpostproc_so
8728 LIBSWSCALE = $_libswscale
8729 LIBSWSCALE_A = $_libswscale_a
8730 LIBSWSCALE_SO = $_libswscale_so
8732 HOSTCC=\$(HOST_CC)
8733 HOSTCFLAGS=-D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -O3
8734 HOSTLIBS=-lm
8735 CC_O=-o \$@
8736 LD=gcc
8737 CONFIG_STATIC=yes
8738 SRC_PATH=..
8739 BUILD_ROOT=..
8740 LIBPREF=lib
8741 LIBSUF=.a
8742 LIBNAME=\$(LIBPREF)\$(NAME)\$(LIBSUF)
8743 FULLNAME=\$(NAME)\$(BUILDSUF)
8745 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
8746 CONFIG_AANDCT=yes
8747 CONFIG_DCT=yes
8748 CONFIG_FFT=yes
8749 CONFIG_FFT_MMX=$fft_mmx
8750 CONFIG_GOLOMB=yes
8751 CONFIG_LPC=yes
8752 CONFIG_MDCT=yes
8753 CONFIG_RDFT=yes
8755 CONFIG_BZLIB=$bzlib
8756 CONFIG_ENCODERS=yes
8757 CONFIG_GPL=yes
8758 CONFIG_LIBDIRAC_DECODER=$_libdirac_lavc
8759 CONFIG_LIBDIRAC_ENCODER=$_libdirac_lavc
8760 CONFIG_LIBFAAC_ENCODER=$_faac_lavc
8761 CONFIG_LIBMP3LAME_ENCODER=$_mp3lame_lavc
8762 CONFIG_LIBOPENCORE_AMRNB_DECODER=$_libopencore_amrnb
8763 CONFIG_LIBOPENCORE_AMRNB_ENCODER=$_libopencore_amrnb
8764 CONFIG_LIBOPENCORE_AMRWB_DECODER=$_libopencore_amrwb
8765 OCNFIG_LIBOPENJPEG_DECODER = $libopenjpeg
8766 OCNFIG_LIBOPENJPEG_ENCODER = $libopenjpeg
8767 CONFIG_LIBSCHROEDINGER_DECODER=$_libschroedinger_lavc
8768 CONFIG_LIBSCHROEDINGER_ENCODER=$_libschroedinger_lavc
8769 CONFIG_LIBVORBIS_ENCODER=$_libvorbis
8770 CONFIG_LIBX264_ENCODER=$_x264_lavc
8771 CONFIG_LIBXVID_ENCODER=$_xvid_lavc
8772 CONFIG_MLIB = $_mlib
8773 CONFIG_MUXERS=$_mencoder
8774 CONFIG_POSTPROC = yes
8775 # Prevent building libavcodec/imgresample.c with conflicting symbols
8776 CONFIG_SWSCALE=yes
8777 CONFIG_VDPAU=$_vdpau
8778 CONFIG_XVMC=$_xvmc
8779 CONFIG_ZLIB=$_zlib
8781 HAVE_PTHREADS = $_pthreads
8782 HAVE_SHM = $_shm
8783 HAVE_W32THREADS = $_w32threads
8784 HAVE_YASM = $_have_yasm
8786 $(echo $_libavdecoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8787 $(echo $_libavencoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8788 $(echo $_libavparsers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8789 $(echo $_libavdemuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8790 $(echo $_libavmuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8791 $(echo $_libavprotocols | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8792 $(echo $_libavbsfs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8793 $(echo $_libavhwaccels | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8796 #############################################################################
8798 ff_config_enable () {
8799 _nprefix=$3;
8800 test -z "$_nprefix" && _nprefix='CONFIG'
8801 for part in $1; do
8802 if $(echo $2 | grep -q -E "(^| )$part($| )"); then
8803 echo "#define ${_nprefix}_$part 1"
8804 else
8805 echo "#define ${_nprefix}_$part 0"
8807 done
8810 echo "Creating config.h"
8811 cat > $TMPH << EOF
8812 /*----------------------------------------------------------------------------
8813 ** This file has been automatically generated by configure any changes in it
8814 ** will be lost when you run configure again.
8815 ** Instead of modifying definitions here, use the --enable/--disable options
8816 ** of the configure script! See ./configure --help for details.
8817 *---------------------------------------------------------------------------*/
8819 #ifndef MPLAYER_CONFIG_H
8820 #define MPLAYER_CONFIG_H
8822 /* Undefine this if you do not want to select mono audio (left or right)
8823 with a stereo MPEG layer 2/3 audio stream. The command line option
8824 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
8825 right-only), with 0 being the default.
8827 #define CONFIG_FAKE_MONO 1
8829 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
8830 #define MAX_OUTBURST 65536
8832 /* set up audio OUTBURST. Do not change this! */
8833 #define OUTBURST 512
8835 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8836 #undef FAST_OSD
8837 #undef FAST_OSD_TABLE
8839 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
8840 #define MPEG12_POSTPROC 1
8841 #define ATTRIBUTE_ALIGNED_MAX 16
8845 #define CONFIGURATION "$_configuration"
8847 #define MPLAYER_DATADIR "$_datadir"
8848 #define MPLAYER_CONFDIR "$_confdir"
8849 #define MPLAYER_LIBDIR "$_libdir"
8851 /* definitions needed by included libraries */
8852 #define HAVE_INTTYPES_H 1
8853 /* libmpeg2 + FFmpeg */
8854 $def_fast_inttypes
8855 /* libdvdcss */
8856 #define HAVE_ERRNO_H 1
8857 /* libdvdcss + libdvdread */
8858 #define HAVE_LIMITS_H 1
8859 /* libdvdcss + libfaad2 */
8860 #define HAVE_UNISTD_H 1
8861 /* libfaad2 + libdvdread */
8862 #define STDC_HEADERS 1
8863 #define HAVE_MEMCPY 1
8864 /* libfaad2 */
8865 #define HAVE_STRING_H 1
8866 #define HAVE_STRINGS_H 1
8867 #define HAVE_SYS_STAT_H 1
8868 #define HAVE_SYS_TYPES_H 1
8869 /* libdvdnav */
8870 #define READ_CACHE_TRACE 0
8871 /* libdvdread */
8872 #define HAVE_DLFCN_H 1
8873 $def_dvdcss
8876 /* system headers */
8877 $def_alloca_h
8878 $def_alsa_asoundlib_h
8879 $def_altivec_h
8880 $def_malloc_h
8881 $def_mman_h
8882 $def_mman_has_map_failed
8883 $def_soundcard_h
8884 $def_sys_asoundlib_h
8885 $def_sys_soundcard_h
8886 $def_sys_sysinfo_h
8887 $def_termios_h
8888 $def_termios_sys_h
8889 $def_winsock2_h
8892 /* system functions */
8893 $def_gethostbyname2
8894 $def_gettimeofday
8895 $def_glob
8896 $def_langinfo
8897 $def_lrintf
8898 $def_map_memalign
8899 $def_memalign
8900 $def_nanosleep
8901 $def_posix_select
8902 $def_select
8903 $def_setenv
8904 $def_shm
8905 $def_strsep
8906 $def_swab
8907 $def_sysi86
8908 $def_sysi86_iv
8909 $def_termcap
8910 $def_termios
8911 $def_vsscanf
8914 /* system-specific features */
8915 $def_asmalign_pot
8916 $def_builtin_expect
8917 $def_dl
8918 $def_dos_paths
8919 $def_extern_asm
8920 $def_extern_prefix
8921 $def_iconv
8922 $def_kstat
8923 $def_macosx_bundle
8924 $def_macosx_finder
8925 $def_maemo
8926 $def_named_asm_args
8927 $def_priority
8928 $def_quicktime
8929 $def_restrict_keyword
8930 $def_rtc
8931 $def_unrar_exec
8934 /* configurable options */
8935 $def_charset
8936 $def_crash_debug
8937 $def_debug
8938 $def_dynamic_plugins
8939 $def_fastmemcpy
8940 $def_hardcoded_tables
8941 $def_menu
8942 $def_runtime_cpudetection
8943 $def_sighandler
8944 $def_sortsub
8945 $def_stream_cache
8946 $def_pthread_cache
8949 /* CPU stuff */
8950 #define __CPU__ $iproc
8951 $def_words_endian
8952 $def_bigendian
8953 $(ff_config_enable "$_arch_all" "$_arch" "ARCH")
8954 $(ff_config_enable "$_cpuexts_all" "$_cpuexts" "HAVE")
8957 /* DVD/VCD/CD */
8958 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
8959 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
8960 $def_bsdi_dvd
8961 $def_cddb
8962 $def_cdio
8963 $def_cdparanoia
8964 $def_cdrom
8965 $def_dvd
8966 $def_dvd_bsd
8967 $def_dvd_darwin
8968 $def_dvd_linux
8969 $def_dvd_openbsd
8970 $def_dvdio
8971 $def_dvdnav
8972 $def_dvdread
8973 $def_hpux_scsi_h
8974 $def_libcdio
8975 $def_sol_scsi_h
8976 $def_vcd
8979 /* codec libraries */
8980 $def_faac
8981 $def_faad
8982 $def_faad_internal
8983 $def_liba52
8984 $def_liba52_internal
8985 $def_libdca
8986 $def_libdv
8987 $def_liblzo
8988 $def_libmpeg2
8989 $def_mad
8990 $def_mp3lame
8991 $def_mp3lame_preset
8992 $def_mp3lame_preset_medium
8993 $def_mp3lib
8994 $def_musepack
8995 $def_speex
8996 $def_theora
8997 $def_toolame
8998 $def_tremor
8999 $def_twolame
9000 $def_vorbis
9001 $def_x264
9002 $def_xvid
9003 $def_zlib
9005 $def_libnut
9008 /* binary codecs */
9009 $def_qtx
9010 $def_qtx_win32
9011 $def_real
9012 $def_real_path
9013 $def_win32_loader
9014 $def_win32dll
9015 #define WIN32_PATH "$_win32codecsdir"
9016 $def_xanim
9017 $def_xanim_path
9018 $def_xmms
9019 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
9022 /* GUI */
9023 $def_gtk2
9024 $def_gui
9025 $def_xshape
9028 /* Audio output drivers */
9029 $def_alsa
9030 $def_alsa1x
9031 $def_alsa5
9032 $def_alsa9
9033 $def_arts
9034 $def_coreaudio
9035 $def_dart
9036 $def_esd
9037 $def_esd_latency
9038 $def_jack
9039 $def_kai
9040 $def_nas
9041 $def_openal
9042 $def_openal_h
9043 $def_ossaudio
9044 $def_ossaudio_devdsp
9045 $def_ossaudio_devmixer
9046 $def_pulse
9047 $def_sgiaudio
9048 $def_sunaudio
9049 $def_win32waveout
9051 $def_ladspa
9052 $def_libbs2b
9055 /* input */
9056 $def_apple_ir
9057 $def_apple_remote
9058 $def_ioctl_bt848_h_name
9059 $def_ioctl_meteor_h_name
9060 $def_joystick
9061 $def_lirc
9062 $def_lircc
9063 $def_pvr
9064 $def_radio
9065 $def_radio_bsdbt848
9066 $def_radio_capture
9067 $def_radio_v4l
9068 $def_radio_v4l2
9069 $def_tv
9070 $def_tv_bsdbt848
9071 $def_tv_dshow
9072 $def_tv_v4l
9073 $def_tv_v4l1
9074 $def_tv_v4l2
9077 /* font stuff */
9078 $def_ass
9079 $def_ass_internal
9080 $def_bitmap_font
9081 $def_enca
9082 $def_fontconfig
9083 $def_freetype
9084 $def_fribidi
9087 /* networking */
9088 $def_closesocket
9089 $def_ftp
9090 $def_inet6
9091 $def_inet_aton
9092 $def_inet_pton
9093 $def_live
9094 $def_nemesi
9095 $def_network
9096 $def_smb
9097 $def_socklen_t
9098 $def_struct_ipv6_mreq
9099 $def_struct_sockaddr_in6
9100 $def_struct_sockaddr_sa_len
9101 $def_vstream
9102 $def_addrinfo
9103 $def_getaddrinfo
9104 $def_sockaddr_storage
9107 /* libvo options */
9108 $def_3dfx
9109 $def_aa
9110 $def_bl
9111 $def_caca
9112 $def_corevideo
9113 $def_dfbmga
9114 $def_dga
9115 $def_dga1
9116 $def_dga2
9117 $def_direct3d
9118 $def_directfb
9119 $def_directfb_version
9120 $def_directx
9121 $def_dvb
9122 $def_dvb_head
9123 $def_dvbin
9124 $def_dxr2
9125 $def_dxr3
9126 $def_fbdev
9127 $def_ggi
9128 $def_ggiwmh
9129 $def_gif
9130 $def_gif_4
9131 $def_gif_tvt_hack
9132 $def_gl
9133 $def_gl_win32
9134 $def_gl_x11
9135 $def_matrixview
9136 $def_ivtv
9137 $def_jpeg
9138 $def_kva
9139 $def_md5sum
9140 $def_mga
9141 $def_mng
9142 $def_png
9143 $def_pnm
9144 $def_quartz
9145 $def_s3fb
9146 $def_sdl
9147 $def_sdl_sdl_h
9148 $def_sdlbuggy
9149 $def_svga
9150 $def_tdfxfb
9151 $def_tdfxvid
9152 $def_tga
9153 $def_v4l2
9154 $def_vdpau
9155 $def_vesa
9156 $def_vidix
9157 $def_vidix_drv_cyberblade
9158 $def_vidix_drv_ivtv
9159 $def_vidix_drv_mach64
9160 $def_vidix_drv_mga
9161 $def_vidix_drv_mga_crtc2
9162 $def_vidix_drv_nvidia
9163 $def_vidix_drv_pm3
9164 $def_vidix_drv_radeon
9165 $def_vidix_drv_rage128
9166 $def_vidix_drv_s3
9167 $def_vidix_drv_sh_veu
9168 $def_vidix_drv_sis
9169 $def_vidix_drv_unichrome
9170 $def_vidix_pfx
9171 $def_vm
9172 $def_wii
9173 $def_x11
9174 $def_xdpms
9175 $def_xf86keysym
9176 $def_xinerama
9177 $def_xmga
9178 $def_xss
9179 $def_xv
9180 $def_xvmc
9181 $def_xvr100
9182 $def_yuv4mpeg
9183 $def_zr
9186 /* FFmpeg */
9187 $def_libavcodec
9188 $def_libavcodec_a
9189 $def_libavcodec_so
9190 $def_libavformat
9191 $def_libavformat_a
9192 $def_libavformat_so
9193 $def_libavutil
9194 $def_libavutil_a
9195 $def_libavutil_so
9196 $def_libpostproc
9197 $def_libpostproc_a
9198 $def_libpostproc_so
9199 $def_libswscale
9200 $def_libswscale_a
9201 $def_libswscale_so
9203 #define CONFIG_DECODERS 1
9204 #define CONFIG_ENCODERS 1
9205 #define CONFIG_DEMUXERS 1
9206 $def_muxers
9208 $def_arpa_inet_h
9209 $def_bswap
9210 $def_bzlib
9211 $def_dcbzl
9212 $def_exp2
9213 $def_exp2f
9214 $def_fast_64bit
9215 $def_fast_unaligned
9216 $def_libavcodec_mpegaudio_hp
9217 $def_llrint
9218 $def_log2
9219 $def_log2f
9220 $def_lrint
9221 $def_memalign_hack
9222 $def_mlib
9223 $def_mkstemp
9224 $def_posix_memalign
9225 $def_pthreads
9226 $def_round
9227 $def_roundf
9228 $def_ten_operands
9229 $def_threads
9230 $def_truncf
9231 $def_xform_asm
9232 $def_yasm
9234 #define CONFIG_FASTDIV 0
9235 #define CONFIG_FFSERVER 0
9236 #define CONFIG_GPL 1
9237 #define CONFIG_GRAY 0
9238 #define CONFIG_LIBVORBIS 0
9239 #define CONFIG_POWERPC_PERF 0
9240 #define CONFIG_SMALL 0
9241 #define CONFIG_SWSCALE 1
9242 #define CONFIG_SWSCALE_ALPHA 1
9244 #if defined(HAVE_AF_INET6) && (!defined(_WIN32) || defined(__CYGWIN__))
9245 #define CONFIG_IPV6 1
9246 #else
9247 #define CONFIG_IPV6 0
9248 #endif
9250 #define HAVE_ATTRIBUTE_MAY_ALIAS 1
9251 #define HAVE_ATTRIBUTE_PACKED 1
9252 #define HAVE_GETHRTIME 0
9253 #define HAVE_INLINE_ASM 1
9254 #define HAVE_LDBRX 0
9255 #define HAVE_POLL_H 1
9256 #define HAVE_PPC4XX 0
9257 #define HAVE_SETMODE 0
9258 #define HAVE_SYS_SELECT_H 0
9259 #define HAVE_VFP_ARGS 1
9260 #define HAVE_VIRTUALALLOC 0
9262 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
9263 #define CONFIG_AANDCT 1
9264 #define CONFIG_FFT 1
9265 #define CONFIG_GOLOMB 1
9266 #define CONFIG_LPC 1
9267 #define CONFIG_MDCT 1
9268 #define CONFIG_RDFT 1
9270 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
9271 $def_ebx_available
9272 #ifndef MP_DEBUG
9273 #define HAVE_EBP_AVAILABLE 1
9274 #else
9275 #define HAVE_EBP_AVAILABLE 0
9276 #endif
9278 #define FFMPEG_CONFIGURATION "--enable-gpl --enable-postproc"
9279 #define FFMPEG_LICENSE "GPL version 2 or later"
9281 /* External libraries used through libavcodec. */
9282 $def_faac_lavc
9283 $def_libdirac_lavc
9284 $def_libopencore_amrnb
9285 $def_libopencore_amrwb
9286 $def_libopenjpeg
9287 $def_libschroedinger_lavc
9288 $def_mp3lame_lavc
9289 $def_x264_lavc
9290 $def_xvid_lavc
9292 $(ff_config_enable "$_libavdecoders_all" "$_libavdecoders")
9293 $(ff_config_enable "$_libavencoders_all" "$_libavencoders")
9294 $(ff_config_enable "$_libavparsers_all" "$_libavparsers")
9295 $(ff_config_enable "$_libavdemuxers_all" "$_libavdemuxers")
9296 $(ff_config_enable "$_libavmuxers_all" "$_libavmuxers")
9297 $(ff_config_enable "$_libavprotocols_all" "$_libavprotocols")
9298 $(ff_config_enable "$_libavbsfs_all" "$_libavbsfs")
9299 $(ff_config_enable "$_libavhwaccels_all" "$_libavhwaccels")
9301 #endif /* MPLAYER_CONFIG_H */
9304 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
9305 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
9307 ############################################################################
9309 # Create avconfig.h for FFmpeg.
9310 cat > "$TMPH" << EOF
9311 /* Generated by mpconfigure */
9312 #ifndef AVUTIL_AVCONFIG_H
9313 #define AVUTIL_AVCONFIG_H
9314 $def_av_bigendian
9315 #endif /* AVUTIL_AVCONFIG_H */
9318 # Do not overwrite an unchanged avconfig.h to avoid superfluous rebuilds.
9319 cmp -s "$TMPH" libavutil/avconfig.h || mv -f "$TMPH" libavutil/avconfig.h
9321 #############################################################################
9323 cat << EOF
9325 Config files successfully generated by ./configure $_configuration !
9327 Install prefix: $_prefix
9328 Data directory: $_datadir
9329 Config direct.: $_confdir
9331 Byte order: $_byte_order
9332 Optimizing for: $_optimizing
9334 Languages:
9335 Messages/GUI: $language_msg
9336 Manual pages: $language_man
9337 Documentation: $language_doc
9339 Enabled optional drivers:
9340 Input: $_inputmodules
9341 Codecs: $_codecmodules
9342 Audio output: $_aomodules
9343 Video output: $_vomodules
9345 Disabled optional drivers:
9346 Input: $_noinputmodules
9347 Codecs: $_nocodecmodules
9348 Audio output: $_noaomodules
9349 Video output: $_novomodules
9351 'config.h' and 'config.mak' contain your configuration options.
9352 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
9353 compile *** DO NOT REPORT BUGS if you tweak these files ***
9355 'make' will now compile MPlayer and 'make install' will install it.
9356 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
9361 if test "$_mtrr" = yes ; then
9362 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)"
9363 echo
9366 if ! x86_32; then
9367 cat <<EOF
9368 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
9369 operating system ($system_name). You may encounter a few files that cannot
9370 be played due to missing open source video/audio codec support.
9376 cat <<EOF
9377 Check $TMPLOG if you wonder why an autodetection failed (make sure
9378 development headers/packages are installed).
9380 NOTE: The --enable-* parameters unconditionally force options on, completely
9381 skipping autodetection. This behavior is unlike what you may be used to from
9382 autoconf-based configure scripts that can decide to override you. This greater
9383 level of control comes at a price. You may have to provide the correct compiler
9384 and linker flags yourself.
9385 If you used one of these options (except --enable-gui and similar ones that
9386 turn on internal features) and experience a compilation or linking failure,
9387 make sure you have passed the necessary compiler/linker flags to configure.
9389 If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html.
9393 if test "$_warn_CFLAGS" = yes; then
9394 cat <<EOF
9396 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
9397 but:
9399 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
9401 It is strongly recommended to let MPlayer choose the correct CFLAGS!
9402 To do so, execute 'CFLAGS= ./configure <options>'
9407 # Last move:
9408 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"