Add header for exported DVB-related functions.
[mplayer/glamo.git] / configure
blob93b02eecf33afce84f75882b0da7eeb571793a6e
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 def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 0'
1783 def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 0'
1784 _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 TOMI GENERIC'
1785 case "$host_arch" in
1786 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1787 _arch='X86 X86_32'
1788 _target_arch="ARCH_X86 = yes"
1789 _target_subarch="ARCH_X86_32 = yes"
1790 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1791 def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 1'
1792 def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 1'
1793 iproc=486
1794 proc=i486
1797 if test "$_runtime_cpudetection" = no ; then
1798 case "$pvendor" in
1799 AuthenticAMD)
1800 case "$pfamily" in
1801 3) proc=i386 iproc=386 ;;
1802 4) proc=i486 iproc=486 ;;
1803 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1804 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1805 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1806 proc=k6-3
1807 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1808 proc=geode
1809 elif test "$pmodel" -ge 8; then
1810 proc=k6-2
1811 elif test "$pmodel" -ge 6; then
1812 proc=k6
1813 else
1814 proc=i586
1817 6) iproc=686
1818 # It's a bit difficult to determine the correct type of Family 6
1819 # AMD CPUs just from their signature. Instead, we check directly
1820 # whether it supports SSE.
1821 if test "$_sse" = yes; then
1822 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1823 proc=athlon-xp
1824 else
1825 # Again, gcc treats athlon and athlon-tbird similarly.
1826 proc=athlon
1829 15) iproc=686
1830 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1831 # caught and remedied in the optimization tests below.
1832 proc=k8
1835 *) proc=amdfam10 iproc=686
1836 test $_fast_clz = "auto" && _fast_clz=yes
1838 esac
1840 GenuineIntel)
1841 case "$pfamily" in
1842 3) proc=i386 iproc=386 ;;
1843 4) proc=i486 iproc=486 ;;
1844 5) iproc=586
1845 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1846 proc=pentium-mmx # 4 is desktop, 8 is mobile
1847 else
1848 proc=i586
1851 6) iproc=686
1852 if test "$pmodel" -ge 15; then
1853 proc=core2
1854 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1855 proc=pentium-m
1856 elif test "$pmodel" -ge 7; then
1857 proc=pentium3
1858 elif test "$pmodel" -ge 3; then
1859 proc=pentium2
1860 else
1861 proc=i686
1863 test $_fast_clz = "auto" && _fast_clz=yes
1865 15) iproc=686
1866 # A nocona in 32-bit mode has no more capabilities than a prescott.
1867 if test "$pmodel" -ge 3; then
1868 proc=prescott
1869 else
1870 proc=pentium4
1871 test $_fast_clz = "auto" && _fast_clz=yes
1873 test $_fast_cmov = "auto" && _fast_cmov=no
1875 *) proc=prescott iproc=686 ;;
1876 esac
1878 CentaurHauls)
1879 case "$pfamily" in
1880 5) iproc=586
1881 if test "$pmodel" -ge 8; then
1882 proc=winchip2
1883 elif test "$pmodel" -ge 4; then
1884 proc=winchip-c6
1885 else
1886 proc=i586
1889 6) iproc=686
1890 if test "$pmodel" -ge 9; then
1891 proc=c3-2
1892 else
1893 proc=c3
1894 iproc=586
1897 *) proc=i686 iproc=i686 ;;
1898 esac
1900 unknown)
1901 case "$pfamily" in
1902 3) proc=i386 iproc=386 ;;
1903 4) proc=i486 iproc=486 ;;
1904 *) proc=i586 iproc=586 ;;
1905 esac
1908 proc=i586 iproc=586 ;;
1909 esac
1910 test $_fast_clz = "auto" && _fast_clz=no
1911 fi # test "$_runtime_cpudetection" = no
1914 # check that gcc supports our CPU, if not, fall back to earlier ones
1915 # LGB: check -mcpu and -march swithing step by step with enabling
1916 # to fall back till 386.
1918 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1920 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1921 cpuopt=-mtune
1922 else
1923 cpuopt=-mcpu
1926 echocheck "GCC & CPU optimization abilities"
1927 cat > $TMPC << EOF
1928 int main(void) { return 0; }
1930 if test "$_runtime_cpudetection" = no ; then
1931 cc_check -march=native && proc=native
1932 if test "$proc" = "k8"; then
1933 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1935 if test "$proc" = "athlon-xp"; then
1936 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1938 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1939 cc_check -march=$proc $cpuopt=$proc || proc=k6
1941 if test "$proc" = "k6" || test "$proc" = "c3"; then
1942 if ! cc_check -march=$proc $cpuopt=$proc; then
1943 if cc_check -march=i586 $cpuopt=i686; then
1944 proc=i586-i686
1945 else
1946 proc=i586
1950 if test "$proc" = "prescott" ; then
1951 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1953 if test "$proc" = "core2" ; then
1954 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1956 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
1957 cc_check -march=$proc $cpuopt=$proc || proc=i686
1959 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1960 cc_check -march=$proc $cpuopt=$proc || proc=i586
1962 if test "$proc" = "i586"; then
1963 cc_check -march=$proc $cpuopt=$proc || proc=i486
1965 if test "$proc" = "i486" ; then
1966 cc_check -march=$proc $cpuopt=$proc || proc=i386
1968 if test "$proc" = "i386" ; then
1969 cc_check -march=$proc $cpuopt=$proc || proc=error
1971 if test "$proc" = "error" ; then
1972 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1973 _mcpu=""
1974 _march=""
1975 _optimizing=""
1976 elif test "$proc" = "i586-i686"; then
1977 _march="-march=i586"
1978 _mcpu="$cpuopt=i686"
1979 _optimizing="$proc"
1980 else
1981 _march="-march=$proc"
1982 _mcpu="$cpuopt=$proc"
1983 _optimizing="$proc"
1985 else # if test "$_runtime_cpudetection" = no
1986 _mcpu="$cpuopt=generic"
1987 # at least i486 required, for bswap instruction
1988 _march="-march=i486"
1989 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1990 cc_check $_mcpu || _mcpu=""
1991 cc_check $_march $_mcpu || _march=""
1994 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1995 ## autodetected mcpu/march parameters
1996 if test "$_target" ; then
1997 # TODO: it may be a good idea to check GCC and fall back in all cases
1998 if test "$host_arch" = "i586-i686"; then
1999 _march="-march=i586"
2000 _mcpu="$cpuopt=i686"
2001 else
2002 _march="-march=$host_arch"
2003 _mcpu="$cpuopt=$host_arch"
2006 proc="$host_arch"
2008 case "$proc" in
2009 i386) iproc=386 ;;
2010 i486) iproc=486 ;;
2011 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
2012 i686|athlon*|pentium*) iproc=686 ;;
2013 *) iproc=586 ;;
2014 esac
2017 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
2018 _fast_cmov="yes"
2019 else
2020 _fast_cmov="no"
2022 test $_fast_clz = "auto" && _fast_clz=yes
2024 echores "$proc"
2027 ia64)
2028 _arch='IA64'
2029 _target_arch='ARCH_IA64 = yes'
2030 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2031 iproc='ia64'
2034 x86_64|amd64)
2035 _arch='X86 X86_64'
2036 _target_subarch='ARCH_X86_64 = yes'
2037 _target_arch="ARCH_X86 = yes"
2038 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2039 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2040 iproc='x86_64'
2042 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
2043 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
2044 cpuopt=-mtune
2045 else
2046 cpuopt=-mcpu
2048 if test "$_runtime_cpudetection" = no ; then
2049 case "$pvendor" in
2050 AuthenticAMD)
2051 case "$pfamily" in
2052 15) proc=k8
2053 test $_fast_clz = "auto" && _fast_clz=no
2055 *) proc=amdfam10;;
2056 esac
2058 GenuineIntel)
2059 case "$pfamily" in
2060 6) proc=core2;;
2062 # 64-bit prescotts exist, but as far as GCC is concerned they
2063 # have the same capabilities as a nocona.
2064 proc=nocona
2065 test $_fast_cmov = "auto" && _fast_cmov=no
2066 test $_fast_clz = "auto" && _fast_clz=no
2068 esac
2071 proc=error;;
2072 esac
2073 fi # test "$_runtime_cpudetection" = no
2075 echocheck "GCC & CPU optimization abilities"
2076 cat > $TMPC << EOF
2077 int main(void) { return 0; }
2079 # This is a stripped-down version of the i386 fallback.
2080 if test "$_runtime_cpudetection" = no ; then
2081 cc_check -march=native && proc=native
2082 # --- AMD processors ---
2083 if test "$proc" = "k8"; then
2084 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
2086 # This will fail if gcc version < 3.3, which is ok because earlier
2087 # versions don't really support 64-bit on amd64.
2088 # Is this a valid assumption? -Corey
2089 if test "$proc" = "athlon-xp"; then
2090 cc_check -march=$proc $cpuopt=$proc || proc=error
2092 # --- Intel processors ---
2093 if test "$proc" = "core2"; then
2094 cc_check -march=$proc $cpuopt=$proc || proc=x86-64
2096 if test "$proc" = "x86-64"; then
2097 cc_check -march=$proc $cpuopt=$proc || proc=nocona
2099 if test "$proc" = "nocona"; then
2100 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
2102 if test "$proc" = "pentium4"; then
2103 cc_check -march=$proc $cpuopt=$proc || proc=error
2106 _march="-march=$proc"
2107 _mcpu="$cpuopt=$proc"
2108 if test "$proc" = "error" ; then
2109 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
2110 _mcpu=""
2111 _march=""
2113 else # if test "$_runtime_cpudetection" = no
2114 # x86-64 is an undocumented option, an intersection of k8 and nocona.
2115 _march="-march=x86-64"
2116 _mcpu="$cpuopt=generic"
2117 cc_check $_mcpu || _mcpu="x86-64"
2118 cc_check $_mcpu || _mcpu=""
2119 cc_check $_march $_mcpu || _march=""
2122 _optimizing="$proc"
2123 test $_fast_cmov = "auto" && _fast_cmov=yes
2124 test $_fast_clz = "auto" && _fast_clz=yes
2126 echores "$proc"
2129 sparc|sparc64)
2130 _arch='SPARC'
2131 _target_arch='ARCH_SPARC = yes'
2132 iproc='sparc'
2133 if test "$host_arch" = "sparc64" ; then
2134 _vis='yes'
2135 proc='ultrasparc'
2136 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2137 elif sunos ; then
2138 echocheck "CPU type"
2139 karch=$(uname -m)
2140 case "$(echo $karch)" in
2141 sun4) proc=v7 ;;
2142 sun4c) proc=v7 ;;
2143 sun4d) proc=v8 ;;
2144 sun4m) proc=v8 ;;
2145 sun4u) proc=ultrasparc _vis='yes' ;;
2146 sun4v) proc=v9 ;;
2147 *) proc=v8 ;;
2148 esac
2149 echores "$proc"
2150 else
2151 proc=v8
2153 _mcpu="-mcpu=$proc"
2154 _optimizing="$proc"
2157 arm*)
2158 _arch='ARM'
2159 _target_arch='ARCH_ARM = yes'
2160 iproc='arm'
2163 avr32)
2164 _arch='AVR32'
2165 _target_arch='ARCH_AVR32 = yes'
2166 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2167 iproc='avr32'
2168 test $_fast_clz = "auto" && _fast_clz=yes
2171 sh|sh4)
2172 _arch='SH4'
2173 _target_arch='ARCH_SH4 = yes'
2174 iproc='sh4'
2177 ppc|ppc64|powerpc|powerpc64)
2178 _arch='PPC'
2179 def_dcbzl='#define HAVE_DCBZL 0'
2180 _target_arch='ARCH_PPC = yes'
2181 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2182 def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 1'
2183 def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 1'
2184 iproc='ppc'
2186 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2187 _arch='PPC PPC64'
2188 _target_subarch='ARCH_PPC64 = yes'
2189 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2191 echocheck "CPU type"
2192 case $system_name in
2193 Linux)
2194 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2195 if test -n "$($_cpuinfo | grep altivec)"; then
2196 test $_altivec = auto && _altivec=yes
2199 Darwin)
2200 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2201 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2202 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2203 test $_altivec = auto && _altivec=yes
2206 NetBSD)
2207 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2208 case $cc_version in
2209 2*|3.0*|3.1*|3.2*|3.3*)
2212 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2213 test $_altivec = auto && _altivec=yes
2216 esac
2218 AIX)
2219 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2221 esac
2222 if test "$_altivec" = yes; then
2223 echores "$proc altivec"
2224 else
2225 _altivec=no
2226 echores "$proc"
2229 echocheck "GCC & CPU optimization abilities"
2231 if test -n "$proc"; then
2232 case "$proc" in
2233 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2234 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2235 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2236 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2237 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2238 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2239 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2240 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2241 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2242 *) ;;
2243 esac
2244 # gcc 3.1(.1) and up supports 7400 and 7450
2245 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2246 case "$proc" in
2247 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2248 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2249 *) ;;
2250 esac
2252 # gcc 3.2 and up supports 970
2253 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2254 case "$proc" in
2255 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2256 def_dcbzl='#define HAVE_DCBZL 1' ;;
2257 *) ;;
2258 esac
2260 # gcc 3.3 and up supports POWER4
2261 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2262 case "$proc" in
2263 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2264 *) ;;
2265 esac
2267 # gcc 3.4 and up supports 440*
2268 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2269 case "$proc" in
2270 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2271 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2272 *) ;;
2273 esac
2275 # gcc 4.0 and up supports POWER5
2276 if test "$_cc_major" -ge "4"; then
2277 case "$proc" in
2278 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2279 *) ;;
2280 esac
2284 if test -n "$_mcpu"; then
2285 _optimizing=$(echo $_mcpu | cut -c 8-)
2286 echores "$_optimizing"
2287 else
2288 echores "none"
2291 test $_fast_clz = "auto" && _fast_clz=yes
2295 alpha*)
2296 _arch='ALPHA'
2297 _target_arch='ARCH_ALPHA = yes'
2298 iproc='alpha'
2300 echocheck "CPU type"
2301 cat > $TMPC << EOF
2302 int main(void) {
2303 unsigned long ver, mask;
2304 __asm__ ("implver %0" : "=r" (ver));
2305 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2306 printf("%ld-%x\n", ver, ~mask);
2307 return 0;
2310 $_cc -o "$TMPEXE" "$TMPC"
2311 case $("$TMPEXE") in
2313 0-0) proc="ev4"; _mvi="0";;
2314 1-0) proc="ev5"; _mvi="0";;
2315 1-1) proc="ev56"; _mvi="0";;
2316 1-101) proc="pca56"; _mvi="1";;
2317 2-303) proc="ev6"; _mvi="1";;
2318 2-307) proc="ev67"; _mvi="1";;
2319 2-1307) proc="ev68"; _mvi="1";;
2320 esac
2321 echores "$proc"
2323 echocheck "GCC & CPU optimization abilities"
2324 if test "$proc" = "ev68" ; then
2325 cc_check -mcpu=$proc || proc=ev67
2327 if test "$proc" = "ev67" ; then
2328 cc_check -mcpu=$proc || proc=ev6
2330 _mcpu="-mcpu=$proc"
2331 echores "$proc"
2333 test $_fast_clz = "auto" && _fast_clz=yes
2335 _optimizing="$proc"
2338 mips)
2339 _arch='SGI_MIPS'
2340 _target_arch='ARCH_SGI_MIPS = yes'
2341 iproc='sgi-mips'
2343 if irix ; then
2344 echocheck "CPU type"
2345 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2346 case "$(echo $proc)" in
2347 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2348 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2349 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2350 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2351 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2352 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2353 esac
2354 # gcc < 3.x does not support -mtune.
2355 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2356 _mcpu=''
2358 echores "$proc"
2361 test $_fast_clz = "auto" && _fast_clz=yes
2365 hppa)
2366 _arch='PA_RISC'
2367 _target_arch='ARCH_PA_RISC = yes'
2368 iproc='PA-RISC'
2371 s390)
2372 _arch='S390'
2373 _target_arch='ARCH_S390 = yes'
2374 iproc='390'
2377 s390x)
2378 _arch='S390X'
2379 _target_arch='ARCH_S390X = yes'
2380 iproc='390x'
2383 vax)
2384 _arch='VAX'
2385 _target_arch='ARCH_VAX = yes'
2386 iproc='vax'
2389 xtensa)
2390 _arch='XTENSA'
2391 _target_arch='ARCH_XTENSA = yes'
2392 iproc='xtensa'
2395 generic)
2396 _arch='GENERIC'
2397 _target_arch='ARCH_GENERIC = yes'
2401 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2402 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2403 die "unsupported architecture $host_arch"
2405 esac # case "$host_arch" in
2407 if test "$_runtime_cpudetection" = yes ; then
2408 if x86 ; then
2409 test "$_cmov" != no && _cmov=yes
2410 x86_32 && _cmov=no
2411 test "$_mmx" != no && _mmx=yes
2412 test "$_3dnow" != no && _3dnow=yes
2413 test "$_3dnowext" != no && _3dnowext=yes
2414 test "$_mmxext" != no && _mmxext=yes
2415 test "$_sse" != no && _sse=yes
2416 test "$_sse2" != no && _sse2=yes
2417 test "$_ssse3" != no && _ssse3=yes
2418 test "$_mtrr" != no && _mtrr=yes
2420 if ppc; then
2421 _altivec=yes
2426 # endian testing
2427 echocheck "byte order"
2428 if test "$_big_endian" = auto ; then
2429 cat > $TMPC <<EOF
2430 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
2431 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
2432 int main(void) { return (int)ascii_name; }
2434 if cc_check ; then
2435 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2436 _big_endian=yes
2437 else
2438 _big_endian=no
2440 else
2441 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2444 if test "$_big_endian" = yes ; then
2445 _byte_order='big-endian'
2446 def_words_endian='#define WORDS_BIGENDIAN 1'
2447 def_bigendian='#define HAVE_BIGENDIAN 1'
2448 def_av_bigendian='#define AV_HAVE_BIGENDIAN 1'
2449 else
2450 _byte_order='little-endian'
2451 def_words_endian='#undef WORDS_BIGENDIAN'
2452 def_bigendian='#define HAVE_BIGENDIAN 0'
2453 def_av_bigendian='#define AV_HAVE_BIGENDIAN 0'
2455 echores "$_byte_order"
2458 echocheck "extern symbol prefix"
2459 cat > $TMPC << EOF
2460 int ff_extern;
2462 cc_check -c || die "Symbol mangling check failed."
2463 sym=$($_nm -P -g $TMPEXE)
2464 extern_prefix=${sym%%ff_extern*}
2465 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2466 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2467 echores $extern_prefix
2470 echocheck "assembler support of -pipe option"
2471 cat > $TMPC << EOF
2472 int main(void) { return 0; }
2474 # -I. helps to detect compilers that just misunderstand -pipe like Sun C
2475 cc_check -pipe -I. && _pipe="-pipe" && echores "yes" || echores "no"
2478 echocheck "compiler support of named assembler arguments"
2479 _named_asm_args=yes
2480 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2481 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2482 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2483 _named_asm_args=no
2484 def_named_asm_args="#undef NAMED_ASM_ARGS"
2486 echores $_named_asm_args
2489 if darwin && test "$cc_vendor" = "gnu" ; then
2490 echocheck "GCC support of -mstackrealign"
2491 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2492 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2493 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2494 # wrong code with this flag, but this can be worked around by adding
2495 # -fno-unit-at-a-time as described in the blog post at
2496 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2497 cat > $TMPC << EOF
2498 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2499 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2501 cc_check -O4 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2502 test -z "$cflags_stackrealign" && cc_check -O4 -mstackrealign -fno-unit-at-a-time \
2503 && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2504 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2505 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2508 # Checking for CFLAGS
2509 _install_strip="-s"
2510 if test "$_profile" != "" || test "$_debug" != "" ; then
2511 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2512 _install_strip=
2513 elif test -z "$CFLAGS" ; then
2514 if test "$cc_vendor" = "intel" ; then
2515 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2516 elif test "$cc_vendor" = "sun" ; then
2517 CFLAGS="-O2 $_march $_mcpu $_pipe -xc99 -xregs=frameptr"
2518 elif test "$cc_vendor" != "gnu" ; then
2519 CFLAGS="-O2 $_march $_mcpu $_pipe"
2520 else
2521 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2522 extra_ldflags="$extra_ldflags -ffast-math"
2524 else
2525 _warn_CFLAGS=yes
2528 cat > $TMPC << EOF
2529 int main(void) { return 0; }
2531 if test "$cc_vendor" = "gnu" ; then
2532 cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
2533 cc_check -Wdeclaration-after-statement && CFLAGS="-Wdeclaration-after-statement $CFLAGS"
2534 cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
2535 cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
2536 cc_check -Wundef && CFLAGS="-Wundef $CFLAGS"
2537 else
2538 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2541 cc_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2544 if test -n "$LDFLAGS" ; then
2545 extra_ldflags="$extra_ldflags $LDFLAGS"
2546 _warn_CFLAGS=yes
2547 elif test "$cc_vendor" = "intel" ; then
2548 extra_ldflags="$extra_ldflags -i-static"
2550 if test -n "$CPPFLAGS" ; then
2551 extra_cflags="$extra_cflags $CPPFLAGS"
2552 _warn_CFLAGS=yes
2557 if x86_32 ; then
2558 # Checking assembler (_as) compatibility...
2559 # Added workaround for older as that reads from stdin by default - atmos
2560 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2561 echocheck "assembler ($_as $as_version)"
2563 _pref_as_version='2.9.1'
2564 echo 'nop' > $TMPS
2565 if test "$_mmx" = yes ; then
2566 echo 'emms' >> $TMPS
2568 if test "$_3dnow" = yes ; then
2569 _pref_as_version='2.10.1'
2570 echo 'femms' >> $TMPS
2572 if test "$_3dnowext" = yes ; then
2573 _pref_as_version='2.10.1'
2574 echo 'pswapd %mm0, %mm0' >> $TMPS
2576 if test "$_mmxext" = yes ; then
2577 _pref_as_version='2.10.1'
2578 echo 'movntq %mm0, (%eax)' >> $TMPS
2580 if test "$_sse" = yes ; then
2581 _pref_as_version='2.10.1'
2582 echo 'xorps %xmm0, %xmm0' >> $TMPS
2584 #if test "$_sse2" = yes ; then
2585 # _pref_as_version='2.11'
2586 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2588 if test "$_cmov" = yes ; then
2589 _pref_as_version='2.10.1'
2590 echo 'cmovb %eax, %ebx' >> $TMPS
2592 if test "$_ssse3" = yes ; then
2593 _pref_as_version='2.16.92'
2594 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2596 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2598 if test "$as_verc_fail" != yes ; then
2599 echores "ok"
2600 else
2601 _res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2602 echores "failed"
2603 die "obsolete binutils version"
2606 fi #if x86_32
2608 echocheck ".align is a power of two"
2609 if test "$_asmalign_pot" = auto ; then
2610 _asmalign_pot=no
2611 cat > $TMPC << EOF
2612 int main(void) { __asm__ (".align 3"); return 0; }
2614 cc_check && _asmalign_pot=yes
2616 if test "$_asmalign_pot" = "yes" ; then
2617 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2618 else
2619 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2621 echores $_asmalign_pot
2623 if x86 ; then
2624 echocheck "10 assembler operands"
2625 ten_operands=no
2626 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2627 cat > $TMPC << EOF
2628 int main(void) {
2629 int x=0;
2630 __asm__ volatile(
2632 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2634 return 0;
2637 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2638 echores $ten_operands
2640 echocheck "ebx availability"
2641 ebx_available=no
2642 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2643 cat > $TMPC << EOF
2644 int main(void) {
2645 int x;
2646 __asm__ volatile(
2647 "xor %0, %0"
2648 :"=b"(x)
2649 // just adding ebx to clobber list seems unreliable with some
2650 // compilers, e.g. Haiku's gcc 2.95
2652 // and the above check does not work for OSX 64 bit...
2653 __asm__ volatile("":::"%ebx");
2654 return 0;
2657 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2658 echores $ebx_available
2660 echocheck "PIC"
2661 pic=no
2662 cat > $TMPC << EOF
2663 int main(void) {
2664 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2665 #error PIC not enabled
2666 #endif
2667 return 0;
2670 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2671 echores $pic
2673 echocheck "yasm"
2674 if test -z "$YASMFLAGS" ; then
2675 if darwin ; then
2676 x86_64 && objformat="macho64" || objformat="macho"
2677 elif win32 ; then
2678 objformat="win32"
2679 else
2680 objformat="elf"
2682 # currently tested for Linux x86, x86_64
2683 YASMFLAGS="-f $objformat"
2684 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2685 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2686 case "$objformat" in
2687 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2688 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2689 esac
2690 else
2691 _warn_CFLAGS=yes
2694 echo "pabsw xmm0, xmm0" > $TMPS
2695 yasm_check || _yasm=""
2696 if test $_yasm ; then
2697 test "$_mmx" = "yes" && fft_mmx="yes"
2698 def_yasm='#define HAVE_YASM 1'
2699 _have_yasm="yes"
2700 echores "$_yasm"
2701 else
2702 def_yasm='#define HAVE_YASM 0'
2703 fft_mmx="no"
2704 _have_yasm="no"
2705 echores "no"
2708 echocheck "bswap"
2709 def_bswap='#define HAVE_BSWAP 0'
2710 echo 'bswap %eax' > $TMPS
2711 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2712 echores "$bswap"
2713 fi #if x86
2716 #FIXME: This should happen before the check for CFLAGS..
2717 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2718 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2720 # check if AltiVec is supported by the compiler, and how to enable it
2721 echocheck "GCC AltiVec flags"
2722 cat > $TMPC << EOF
2723 int main(void) { return 0; }
2725 if $(cc_check -maltivec -mabi=altivec) ; then
2726 _altivec_gcc_flags="-maltivec -mabi=altivec"
2727 # check if <altivec.h> should be included
2728 cat > $TMPC << EOF
2729 #include <altivec.h>
2730 int main(void) { return 0; }
2732 if $(cc_check $_altivec_gcc_flags) ; then
2733 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2734 inc_altivec_h='#include <altivec.h>'
2735 else
2736 cat > $TMPC << EOF
2737 int main(void) { return 0; }
2739 if $(cc_check -faltivec) ; then
2740 _altivec_gcc_flags="-faltivec"
2741 else
2742 _altivec=no
2743 _altivec_gcc_flags="none, AltiVec disabled"
2747 echores "$_altivec_gcc_flags"
2749 # check if the compiler supports braces for vector declarations
2750 cat > $TMPC << EOF
2751 $inc_altivec_h
2752 int main(void) { (vector int) {1}; return 0; }
2754 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2756 # Disable runtime cpudetection if we cannot generate AltiVec code or
2757 # AltiVec is disabled by the user.
2758 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2759 && _runtime_cpudetection=no
2761 # Show that we are optimizing for AltiVec (if enabled and supported).
2762 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2763 && _optimizing="$_optimizing altivec"
2765 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2766 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2769 if ppc ; then
2770 def_xform_asm='#define HAVE_XFORM_ASM 0'
2771 xform_asm=no
2772 echocheck "XFORM ASM support"
2773 cat > $TMPC << EOF
2774 int main(void) { __asm__ volatile ("lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)); return 0; }
2776 cc_check && xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2777 echores "$xform_asm"
2780 if arm ; then
2781 echocheck "ARM pld instruction"
2782 cat > $TMPC << EOF
2783 int main(void) { __asm__ volatile ("pld [r0]"); return 0; }
2785 pld=no
2786 cc_check && pld=yes
2787 echores "$pld"
2789 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2790 if test $_armv5te = "auto" ; then
2791 cat > $TMPC << EOF
2792 int main(void) { __asm__ volatile ("qadd r0, r0, r0"); return 0; }
2794 _armv5te=no
2795 cc_check && _armv5te=yes
2797 echores "$_armv5te"
2799 test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz=yes
2801 echocheck "ARMv6 (SIMD instructions)"
2802 if test $_armv6 = "auto" ; then
2803 cat > $TMPC << EOF
2804 int main(void) { __asm__ volatile ("sadd16 r0, r0, r0"); return 0; }
2806 _armv6=no
2807 cc_check && _armv6=yes
2809 echores "$_armv6"
2811 echocheck "ARMv6t2 (SIMD instructions)"
2812 if test $_armv6t2 = "auto" ; then
2813 cat > $TMPC << EOF
2814 int main(void) { __asm__ volatile ("movt r0, #0"); return 0; }
2816 _armv6t2=no
2817 cc_check && _armv6t2=yes
2819 echores "$_armv6"
2821 echocheck "ARM VFP"
2822 if test $_armvfp = "auto" ; then
2823 cat > $TMPC << EOF
2824 int main(void) { __asm__ volatile ("fadds s0, s0, s0"); return 0; }
2826 _armvfp=no
2827 cc_check && _armvfp=yes
2829 echores "$_armvfp"
2831 echocheck "ARM NEON"
2832 if test $neon = "auto" ; then
2833 cat > $TMPC << EOF
2834 int main(void) { __asm__ volatile ("vadd.i16 q0, q0, q0"); return 0; }
2836 neon=no
2837 cc_check && neon=yes
2839 echores "$neon"
2841 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2842 if test $_iwmmxt = "auto" ; then
2843 cat > $TMPC << EOF
2844 int main(void) { __asm__ volatile ("wunpckelub wr6, wr4"); return 0; }
2846 _iwmmxt=no
2847 cc_check && _iwmmxt=yes
2849 echores "$_iwmmxt"
2852 _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'
2853 test "$_altivec" = yes && _cpuexts="ALTIVEC $_cpuexts"
2854 test "$_mmx" = yes && _cpuexts="MMX $_cpuexts"
2855 test "$_mmxext" = yes && _cpuexts="MMX2 $_cpuexts"
2856 test "$_3dnow" = yes && _cpuexts="AMD3DNOW $_cpuexts"
2857 test "$_3dnowext" = yes && _cpuexts="AMD3DNOWEXT $_cpuexts"
2858 test "$_sse" = yes && _cpuexts="SSE $_cpuexts"
2859 test "$_sse2" = yes && _cpuexts="SSE2 $_cpuexts"
2860 test "$_ssse3" = yes && _cpuexts="SSSE3 $_cpuexts"
2861 test "$_cmov" = yes && _cpuexts="CMOV $_cpuexts"
2862 test "$_fast_cmov" = yes && _cpuexts="FAST_CMOV $_cpuexts"
2863 test "$_fast_clz" = yes && _cpuexts="FAST_CLZ $_cpuexts"
2864 test "$pld" = yes && _cpuexts="PLD $_cpuexts"
2865 test "$_armv5te" = yes && _cpuexts="ARMV5TE $_cpuexts"
2866 test "$_armv6" = yes && _cpuexts="ARMV6 $_cpuexts"
2867 test "$_armv6t2" = yes && _cpuexts="ARMV6T2 $_cpuexts"
2868 test "$_armvfp" = yes && _cpuexts="ARMVFP $_cpuexts"
2869 test "$neon" = yes && _cpuexts="NEON $_cpuexts"
2870 test "$_iwmmxt" = yes && _cpuexts="IWMMXT $_cpuexts"
2871 test "$_vis" = yes && _cpuexts="VIS $_cpuexts"
2872 test "$_mvi" = yes && _cpuexts="MVI $_cpuexts"
2874 # Checking kernel version...
2875 if x86_32 && linux ; then
2876 _k_verc_problem=no
2877 kernel_version=$(uname -r 2>&1)
2878 echocheck "$system_name kernel version"
2879 case "$kernel_version" in
2880 '') kernel_version="?.??"; _k_verc_fail=yes;;
2881 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2882 _k_verc_problem=yes;;
2883 esac
2884 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2885 _k_verc_fail=yes
2887 if test "$_k_verc_fail" ; then
2888 echores "$kernel_version, fail"
2889 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2890 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2891 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2892 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2893 echo "2.2.x you must upgrade it to get SSE support!"
2894 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2895 else
2896 echores "$kernel_version, ok"
2900 ######################
2901 # MAIN TESTS GO HERE #
2902 ######################
2905 echocheck "-lposix"
2906 cat > $TMPC <<EOF
2907 int main(void) { return 0; }
2909 if cc_check -lposix ; then
2910 extra_ldflags="$extra_ldflags -lposix"
2911 echores "yes"
2912 else
2913 echores "no"
2916 echocheck "-lm"
2917 cat > $TMPC <<EOF
2918 int main(void) { return 0; }
2920 if cc_check -lm ; then
2921 _ld_lm="-lm"
2922 echores "yes"
2923 else
2924 _ld_lm=""
2925 echores "no"
2929 echocheck "langinfo"
2930 if test "$_langinfo" = auto ; then
2931 cat > $TMPC <<EOF
2932 #include <langinfo.h>
2933 int main(void) { nl_langinfo(CODESET); return 0; }
2935 _langinfo=no
2936 cc_check && _langinfo=yes
2938 if test "$_langinfo" = yes ; then
2939 def_langinfo='#define HAVE_LANGINFO 1'
2940 else
2941 def_langinfo='#undef HAVE_LANGINFO'
2943 echores "$_langinfo"
2946 echocheck "language"
2947 # Set preferred languages, "all" uses English as main language.
2948 test -z "$language" && language=$LINGUAS
2949 test -z "$language_doc" && language_doc=$language
2950 test -z "$language_man" && language_man=$language
2951 test -z "$language_msg" && language_msg=$language
2952 language_doc=$(echo $language_doc | tr , " ")
2953 language_man=$(echo $language_man | tr , " ")
2954 language_msg=$(echo $language_msg | tr , " ")
2956 test "$language_doc" = "all" && language_doc=$doc_lang_all
2957 test "$language_man" = "all" && language_man=$man_lang_all
2958 test "$language_msg" = "all" && language_msg=en
2960 # Prune non-existing translations from language lists.
2961 # Set message translation to the first available language.
2962 # Fall back on English.
2963 for lang in $language_doc ; do
2964 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2965 done
2966 language_doc=$tmp_language_doc
2967 test -z "$language_doc" && language_doc=en
2969 for lang in $language_man ; do
2970 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2971 done
2972 language_man=$tmp_language_man
2973 test -z "$language_man" && language_man=en
2975 for lang in $language_msg ; do
2976 test -f "help/help_mp-${lang}.h" && tmp_language_msg=$lang && break
2977 done
2978 language_msg=$tmp_language_msg
2979 test -z "$language_msg" && language_msg=en
2980 _mp_help="help/help_mp-${language_msg}.h"
2981 echores "messages: $language_msg - man pages: $language_man - documentation: $language_doc"
2984 echocheck "enable sighandler"
2985 if test "$_sighandler" = yes ; then
2986 def_sighandler='#define CONFIG_SIGHANDLER 1'
2987 else
2988 def_sighandler='#undef CONFIG_SIGHANDLER'
2990 echores "$_sighandler"
2992 echocheck "runtime cpudetection"
2993 if test "$_runtime_cpudetection" = yes ; then
2994 _optimizing="Runtime CPU-Detection enabled"
2995 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2996 else
2997 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2999 echores "$_runtime_cpudetection"
3002 echocheck "restrict keyword"
3003 for restrict_keyword in restrict __restrict __restrict__ ; do
3004 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
3005 if cc_check; then
3006 def_restrict_keyword=$restrict_keyword
3007 break;
3009 done
3010 if [ -n "$def_restrict_keyword" ]; then
3011 echores "$def_restrict_keyword"
3012 else
3013 echores "none"
3015 # Avoid infinite recursion loop ("#define restrict restrict")
3016 if [ "$def_restrict_keyword" != "restrict" ]; then
3017 def_restrict_keyword="#define restrict $def_restrict_keyword"
3018 else
3019 def_restrict_keyword=""
3023 echocheck "__builtin_expect"
3024 # GCC branch prediction hint
3025 cat > $TMPC << EOF
3026 int foo(int a) {
3027 a = __builtin_expect(a, 10);
3028 return a == 10 ? 0 : 1;
3030 int main(void) { return foo(10) && foo(0); }
3032 _builtin_expect=no
3033 cc_check && _builtin_expect=yes
3034 if test "$_builtin_expect" = yes ; then
3035 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
3036 else
3037 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
3039 echores "$_builtin_expect"
3042 echocheck "kstat"
3043 cat > $TMPC << EOF
3044 #include <kstat.h>
3045 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
3047 _kstat=no
3048 cc_check -lkstat && _kstat=yes
3049 if test "$_kstat" = yes ; then
3050 def_kstat="#define HAVE_LIBKSTAT 1"
3051 extra_ldflags="$extra_ldflags -lkstat"
3052 else
3053 def_kstat="#undef HAVE_LIBKSTAT"
3055 echores "$_kstat"
3058 echocheck "posix4"
3059 # required for nanosleep on some systems
3060 cat > $TMPC << EOF
3061 #include <time.h>
3062 int main(void) { (void) nanosleep(0, 0); return 0; }
3064 _posix4=no
3065 cc_check -lposix4 && _posix4=yes
3066 if test "$_posix4" = yes ; then
3067 extra_ldflags="$extra_ldflags -lposix4"
3069 echores "$_posix4"
3071 for func in exp2 exp2f llrint log2 log2f lrint lrintf round roundf truncf; do
3072 echocheck $func
3073 cat > $TMPC << EOF
3074 #include <math.h>
3075 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
3077 eval _$func=no
3078 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
3079 if eval test "x\$_$func" = "xyes"; then
3080 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
3081 echores yes
3082 else
3083 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
3084 echores no
3086 done
3089 echocheck "mkstemp"
3090 cat > $TMPC << EOF
3091 #include <stdlib.h>
3092 int main(void) { char a; mkstemp(&a); return 0; }
3094 _mkstemp=no
3095 cc_check && _mkstemp=yes
3096 if test "$_mkstemp" = yes ; then
3097 def_mkstemp='#define HAVE_MKSTEMP 1'
3098 else
3099 def_mkstemp='#undef HAVE_MKSTEMP'
3101 echores "$_mkstemp"
3104 echocheck "nanosleep"
3105 # also check for nanosleep
3106 cat > $TMPC << EOF
3107 #include <time.h>
3108 int main(void) { (void) nanosleep(0, 0); return 0; }
3110 _nanosleep=no
3111 cc_check && _nanosleep=yes
3112 if test "$_nanosleep" = yes ; then
3113 def_nanosleep='#define HAVE_NANOSLEEP 1'
3114 else
3115 def_nanosleep='#undef HAVE_NANOSLEEP'
3117 echores "$_nanosleep"
3120 echocheck "socklib"
3121 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
3122 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
3123 cat > $TMPC << EOF
3124 #include <netdb.h>
3125 #include <sys/socket.h>
3126 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
3128 _socklib=no
3129 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
3130 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
3131 done
3132 test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no
3133 if test $_winsock2_h = auto ; then
3134 _winsock2_h=no
3135 cat > $TMPC << EOF
3136 #include <winsock2.h>
3137 int main(void) { (void) gethostbyname(0); return 0; }
3139 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
3141 test "$_ld_sock" && _res_comment="using $_ld_sock"
3142 echores "$_socklib"
3145 if test $_winsock2_h = yes ; then
3146 _ld_sock="-lws2_32"
3147 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
3148 cc_check_winsock2_h='-DHAVE_WINSOCK2_H=1'
3149 else
3150 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
3151 cc_check_winsock2_h='-DHAVE_WINSOCK2_H=0'
3155 echocheck "netdb.h, struct addrinfo"
3156 if test "$_struct_addrinfo" = auto; then
3157 _struct_addrinfo=no
3158 cat > $TMPC << EOF
3159 #if HAVE_WINSOCK2_H
3160 #include <winsock2.h>
3161 #include <ws2tcpip.h>
3162 #else
3163 #include <sys/types.h>
3164 #include <sys/socket.h>
3165 #include <netdb.h>
3166 #endif
3167 int main(void) { struct addrinfo ai; return 0; }
3169 cc_check $cc_check_winsock2_h && _struct_addrinfo=yes
3171 echores "$_struct_addrinfo"
3173 if test "$_struct_addrinfo" = yes; then
3174 def_addrinfo="#define HAVE_STRUCT_ADDRINFO 1"
3175 else
3176 def_addrinfo="#define HAVE_STRUCT_ADDRINFO 0"
3180 echocheck "netdb.h, getaddrinfo()"
3181 if test "$_getaddrinfo" = auto; then
3182 _getaddrinfo=no
3183 cat > $TMPC << EOF
3184 #if HAVE_WINSOCK2_H
3185 #include <winsock2.h>
3186 #else
3187 #include <sys/types.h>
3188 #include <sys/socket.h>
3189 #include <netdb.h>
3190 #endif
3191 int main(void) { (void) getaddrinfo(0, 0, 0, 0); return 0; }
3193 cc_check $cc_check_winsock2_h && _getaddrinfo=yes
3195 echores "$_getaddrinfo"
3197 if test "$_getaddrinfo" = yes; then
3198 def_getaddrinfo="#define HAVE_GETADDRINFO 1"
3199 else
3200 def_getaddrinfo="#define HAVE_GETADDRINFO 0"
3204 echocheck "sockaddr_storage"
3205 if test "$_struct_sockaddr_storage" = auto; then
3206 _struct_sockaddr_storage=no
3207 cat > $TMPC << EOF
3208 #if HAVE_WINSOCK2_H
3209 #include <winsock2.h>
3210 #else
3211 #include <sys/socket.h>
3212 #endif
3213 int main(void) { struct sockaddr_storage sas; return 0; }
3215 cc_check $cc_check_winsock2_h && _struct_sockaddr_storage=yes
3217 echores "$_struct_sockaddr_storage"
3219 if test "$_struct_sockaddr_storage" = yes; then
3220 def_sockaddr_storage="#define HAVE_STRUCT_SOCKADDR_STORAGE 1"
3221 else
3222 def_sockaddr_storage="#define HAVE_STRUCT_SOCKADDR_STORAGE 0"
3226 echocheck "struct ipv6_mreq"
3227 _struct_ipv6_mreq=no
3228 def_struct_ipv6_mreq="#define HAVE_STRUCT_IPV6_MREQ 0"
3229 for header in "netinet/in.h" "ws2tcpip.h" ; do
3230 cat > $TMPC << EOF
3231 #include <$header>
3232 int main(void) { struct ipv6_mreq mreq6; return 0; }
3234 cc_check && _struct_ipv6_mreq=yes && \
3235 def_struct_ipv6_mreq="#define HAVE_STRUCT_IPV6_MREQ 1" && break
3236 done
3237 echores "$_struct_ipv6_mreq"
3240 echocheck "struct sockaddr_in6"
3241 _struct_sockaddr_in6=no
3242 def_struct_sockaddr_in6="#define HAVE_STRUCT_SOCKADDR_IN6 0"
3243 for header in "netinet/in.h" "ws2tcpip.h" ; do
3244 cat > $TMPC << EOF
3245 #include <$header>
3246 int main(void) { struct sockaddr_in6 addr; return 0; }
3248 cc_check && _struct_sockaddr_in6=yes && \
3249 def_struct_sockaddr_in6="#define HAVE_STRUCT_SOCKADDR_IN6 1" && break
3250 done
3251 echores "$_struct_sockaddr_in6"
3254 echocheck "struct sockaddr sa_len"
3255 _struct_sockaddr_sa_len=no
3256 def_struct_sockaddr_sa_len="#define HAVE_STRUCT_SOCKADDR_SA_LEN 0"
3257 cat > $TMPC << EOF
3258 #if HAVE_WINSOCK2_H
3259 #include <winsock2.h>
3260 #else
3261 #include <sys/types.h>
3262 #include <sys/socket.h>
3263 #endif
3264 int main(void) { const void *p = &((struct sockaddr *)0)->sa_len; return 0; }
3266 cc_check $cc_check_winsock2_h && _struct_sockaddr_sa_len=yes && \
3267 def_struct_sockaddr_sa_len="#define HAVE_STRUCT_SOCKADDR_SA_LEN 1"
3268 echores "$_struct_sockaddr_sa_len"
3271 echocheck "arpa/inet.h"
3272 arpa_inet_h=no
3273 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
3274 cat > $TMPC << EOF
3275 #include <arpa/inet.h>
3276 int main(void) { return 0; }
3278 cc_check && arpa_inet_h=yes && def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
3279 echores "$arpa_inet_h"
3282 echocheck "inet_pton()"
3283 def_inet_pton='#define HAVE_INET_PTON 0'
3284 inet_pton=no
3285 cat > $TMPC << EOF
3286 #include <sys/types.h>
3287 #include <sys/socket.h>
3288 #include <arpa/inet.h>
3289 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
3291 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3292 cc_check $_ld_tmp && inet_pton=yes && break
3293 done
3294 if test $inet_pton = yes ; then
3295 test "$_ld_tmp" && _res_comment="using $_ld_tmp"
3296 def_inet_pton='#define HAVE_INET_PTON 1'
3298 echores "$inet_pton"
3301 echocheck "inet_aton()"
3302 def_inet_aton='#define HAVE_INET_ATON 0'
3303 inet_aton=no
3304 cat > $TMPC << EOF
3305 #include <sys/types.h>
3306 #include <sys/socket.h>
3307 #include <arpa/inet.h>
3308 int main(void) { (void) inet_aton(0, 0); return 0; }
3310 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3311 cc_check $_ld_tmp && inet_aton=yes && break
3312 done
3313 if test $inet_aton = yes ; then
3314 test "$_ld_tmp" && _res_comment="using $_ld_tmp"
3315 def_inet_aton='#define HAVE_INET_ATON 1'
3317 echores "$inet_aton"
3320 echocheck "socklen_t"
3321 _socklen_t=no
3322 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
3323 cat > $TMPC << EOF
3324 #include <$header>
3325 int main(void) { socklen_t v = 0; return v; }
3327 cc_check && _socklen_t=yes && break
3328 done
3329 if test "$_socklen_t" = yes ; then
3330 def_socklen_t='#define HAVE_SOCKLEN_T 1'
3331 else
3332 def_socklen_t='#define HAVE_SOCKLEN_T 0'
3334 echores "$_socklen_t"
3337 echocheck "closesocket()"
3338 _closesocket=no
3339 cat > $TMPC << EOF
3340 #include <winsock2.h>
3341 int main(void) { closesocket(~0); return 0; }
3343 cc_check $_ld_sock && _closesocket=yes
3344 if test "$_closesocket" = yes ; then
3345 def_closesocket='#define HAVE_CLOSESOCKET 1'
3346 else
3347 def_closesocket='#define HAVE_CLOSESOCKET 0'
3349 echores "$_closesocket"
3352 echocheck "network"
3353 test $_winsock2_h = no && test $inet_pton = no &&
3354 test $inet_aton = no && _network=no
3355 if test "$_network" = yes ; then
3356 def_network='#define CONFIG_NETWORK 1'
3357 extra_ldflags="$extra_ldflags $_ld_sock"
3358 _inputmodules="network $_inputmodules"
3359 else
3360 _noinputmodules="network $_noinputmodules"
3361 def_network='#undef CONFIG_NETWORK'
3362 _ftp=no
3363 _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//)
3364 _libavdemuxers=$(echo $_libavdemuxers | sed -e s/RTSP_DEMUXER// -e s/SDP_DEMUXER//)
3366 echores "$_network"
3369 echocheck "inet6"
3370 if test "$_inet6" = auto ; then
3371 cat > $TMPC << EOF
3372 #include <sys/types.h>
3373 #if !defined(_WIN32) || defined(__CYGWIN__)
3374 #include <sys/socket.h>
3375 #include <netinet/in.h>
3376 #else
3377 #include <ws2tcpip.h>
3378 #endif
3379 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3381 _inet6=no
3382 if cc_check $_ld_sock ; then
3383 _inet6=yes
3386 if test "$_inet6" = yes ; then
3387 def_inet6='#define HAVE_AF_INET6 1'
3388 else
3389 def_inet6='#undef HAVE_AF_INET6'
3391 echores "$_inet6"
3394 echocheck "gethostbyname2"
3395 if test "$_gethostbyname2" = auto ; then
3396 cat > $TMPC << EOF
3397 #include <sys/types.h>
3398 #include <sys/socket.h>
3399 #include <netdb.h>
3400 int main(void) { gethostbyname2("", AF_INET); return 0; }
3402 _gethostbyname2=no
3403 if cc_check ; then
3404 _gethostbyname2=yes
3407 if test "$_gethostbyname2" = yes ; then
3408 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3409 else
3410 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3412 echores "$_gethostbyname2"
3415 echocheck "inttypes.h (required)"
3416 cat > $TMPC << EOF
3417 #include <inttypes.h>
3418 int main(void) { return 0; }
3420 _inttypes=no
3421 cc_check && _inttypes=yes
3422 echores "$_inttypes"
3424 if test "$_inttypes" = no ; then
3425 echocheck "bitypes.h (inttypes.h predecessor)"
3426 cat > $TMPC << EOF
3427 #include <sys/bitypes.h>
3428 int main(void) { return 0; }
3430 cc_check && _inttypes=yes
3431 if test "$_inttypes" = yes ; then
3432 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."
3433 else
3434 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3439 echocheck "int_fastXY_t in inttypes.h"
3440 cat > $TMPC << EOF
3441 #include <inttypes.h>
3442 int main(void) {
3443 volatile int_fast16_t v= 0;
3444 return v; }
3446 _fast_inttypes=no
3447 cc_check && _fast_inttypes=yes
3448 if test "$_fast_inttypes" = no ; then
3449 def_fast_inttypes='
3450 typedef signed char int_fast8_t;
3451 typedef signed int int_fast16_t;
3452 typedef signed int int_fast32_t;
3453 typedef signed long long int_fast64_t;
3454 typedef unsigned char uint_fast8_t;
3455 typedef unsigned int uint_fast16_t;
3456 typedef unsigned int uint_fast32_t;
3457 typedef unsigned long long uint_fast64_t;'
3459 echores "$_fast_inttypes"
3462 echocheck "malloc.h"
3463 cat > $TMPC << EOF
3464 #include <malloc.h>
3465 int main(void) { (void) malloc(0); return 0; }
3467 _malloc=no
3468 cc_check && _malloc=yes
3469 if test "$_malloc" = yes ; then
3470 def_malloc_h='#define HAVE_MALLOC_H 1'
3471 else
3472 def_malloc_h='#define HAVE_MALLOC_H 0'
3474 # malloc.h emits a warning in FreeBSD and OpenBSD
3475 freebsd || openbsd || dragonfly && def_malloc_h='#define HAVE_MALLOC_H 0'
3476 echores "$_malloc"
3479 echocheck "memalign()"
3480 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3481 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3482 cat > $TMPC << EOF
3483 #include <malloc.h>
3484 int main(void) { (void) memalign(64, sizeof(char)); return 0; }
3486 _memalign=no
3487 cc_check && _memalign=yes
3488 if test "$_memalign" = yes ; then
3489 def_memalign='#define HAVE_MEMALIGN 1'
3490 else
3491 def_memalign='#define HAVE_MEMALIGN 0'
3492 def_map_memalign='#define memalign(a,b) malloc(b)'
3493 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3495 echores "$_memalign"
3498 echocheck "posix_memalign()"
3499 posix_memalign=no
3500 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3501 cat > $TMPC << EOF
3502 #define _XOPEN_SOURCE 600
3503 #include <stdlib.h>
3504 int main(void) { posix_memalign(NULL, 0, 0); }
3506 cc_check && posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3507 echores "$posix_memalign"
3510 echocheck "alloca.h"
3511 cat > $TMPC << EOF
3512 #include <alloca.h>
3513 int main(void) { (void) alloca(0); return 0; }
3515 _alloca=no
3516 cc_check && _alloca=yes
3517 if cc_check ; then
3518 def_alloca_h='#define HAVE_ALLOCA_H 1'
3519 else
3520 def_alloca_h='#undef HAVE_ALLOCA_H'
3522 echores "$_alloca"
3525 echocheck "fastmemcpy"
3526 if test "$_fastmemcpy" = yes ; then
3527 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3528 else
3529 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3531 echores "$_fastmemcpy"
3534 echocheck "hard-coded tables"
3535 if test "$hardcoded_tables" = yes ; then
3536 def_hardcoded_tables='#define CONFIG_HARDCODED_TABLES 1'
3537 mak_hardcoded_tables='CONFIG_HARDCODED_TABLES = yes'
3538 else
3539 def_hardcoded_tables='#define CONFIG_HARDCODED_TABLES 0'
3541 echores "$hardcoded_tables"
3544 echocheck "mman.h"
3545 cat > $TMPC << EOF
3546 #include <sys/types.h>
3547 #include <sys/mman.h>
3548 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
3550 _mman=no
3551 cc_check && _mman=yes
3552 if test "$_mman" = yes ; then
3553 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3554 else
3555 def_mman_h='#undef HAVE_SYS_MMAN_H'
3556 os2 && _need_mmap=yes
3558 echores "$_mman"
3560 cat > $TMPC << EOF
3561 #include <sys/types.h>
3562 #include <sys/mman.h>
3563 int main(void) { void *p = MAP_FAILED; return 0; }
3565 _mman_has_map_failed=no
3566 cc_check && _mman_has_map_failed=yes
3567 if test "$_mman_has_map_failed" = yes ; then
3568 def_mman_has_map_failed=''
3569 else
3570 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3573 echocheck "dynamic loader"
3574 cat > $TMPC << EOF
3575 #include <stddef.h>
3576 #include <dlfcn.h>
3577 int main(void) { dlopen("", 0); dlclose(NULL); dlsym(NULL, ""); return 0; }
3579 _dl=no
3580 for _ld_tmp in "" "-ldl" ; do
3581 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3582 done
3583 if test "$_dl" = yes ; then
3584 def_dl='#define HAVE_LIBDL 1'
3585 else
3586 def_dl='#undef HAVE_LIBDL'
3588 echores "$_dl"
3591 echocheck "dynamic a/v plugins support"
3592 if test "$_dl" = no ; then
3593 _dynamic_plugins=no
3595 if test "$_dynamic_plugins" = yes ; then
3596 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3597 else
3598 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3600 echores "$_dynamic_plugins"
3603 def_threads='#define HAVE_THREADS 0'
3605 echocheck "pthread"
3606 if linux ; then
3607 THREAD_CFLAGS=-D_REENTRANT
3608 elif freebsd || netbsd || openbsd || bsdos ; then
3609 THREAD_CFLAGS=-D_THREAD_SAFE
3611 if test "$_pthreads" = auto ; then
3612 cat > $TMPC << EOF
3613 #include <pthread.h>
3614 void* func(void *arg) { return arg; }
3615 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3617 _pthreads=no
3618 if ! hpux ; then
3619 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3620 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3621 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3622 done
3625 if test "$_pthreads" = yes ; then
3626 test $_ld_pthread && _res_comment="using $_ld_pthread"
3627 def_pthreads='#define HAVE_PTHREADS 1'
3628 def_threads='#define HAVE_THREADS 1'
3629 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3630 else
3631 _res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3632 def_pthreads='#undef HAVE_PTHREADS'
3633 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3634 mingw32 || _win32dll=no
3636 echores "$_pthreads"
3638 if cygwin ; then
3639 if test "$_pthreads" = yes ; then
3640 def_pthread_cache="#define PTHREAD_CACHE 1"
3641 else
3642 _stream_cache=no
3643 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3647 echocheck "w32threads"
3648 if test "$_pthreads" = yes ; then
3649 _res_comment="using pthread instead"
3650 _w32threads=no
3652 if test "$_w32threads" = auto ; then
3653 _w32threads=no
3654 mingw32 && _w32threads=yes
3656 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3657 echores "$_w32threads"
3659 echocheck "rpath"
3660 netbsd &&_rpath=yes
3661 if test "$_rpath" = yes ; then
3662 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3663 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3664 done
3665 extra_ldflags=$tmp
3667 echores "$_rpath"
3669 echocheck "iconv"
3670 if test "$_iconv" = auto ; then
3671 cat > $TMPC << EOF
3672 #include <stdio.h>
3673 #include <unistd.h>
3674 #include <iconv.h>
3675 #define INBUFSIZE 1024
3676 #define OUTBUFSIZE 4096
3678 char inbuffer[INBUFSIZE];
3679 char outbuffer[OUTBUFSIZE];
3681 int main(void) {
3682 size_t numread;
3683 iconv_t icdsc;
3684 char *tocode="UTF-8";
3685 char *fromcode="cp1250";
3686 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3687 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3688 char *iptr=inbuffer;
3689 char *optr=outbuffer;
3690 size_t inleft=numread;
3691 size_t outleft=OUTBUFSIZE;
3692 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
3693 != (size_t)(-1)) {
3694 write(1, outbuffer, OUTBUFSIZE - outleft);
3697 if (iconv_close(icdsc) == -1)
3700 return 0;
3703 _iconv=no
3704 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3705 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3706 _iconv=yes && break
3707 done
3709 if test "$_iconv" = yes ; then
3710 def_iconv='#define CONFIG_ICONV 1'
3711 else
3712 def_iconv='#undef CONFIG_ICONV'
3714 echores "$_iconv"
3717 echocheck "soundcard.h"
3718 _soundcard_h=no
3719 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3720 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3721 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3722 cat > $TMPC << EOF
3723 #include <$_soundcard_header>
3724 int main(void) { return 0; }
3726 cc_check && _soundcard_h=yes && _res_comment="$_soundcard_header" && break
3727 done
3729 if test "$_soundcard_h" = yes ; then
3730 if test $_soundcard_header = "sys/soundcard.h"; then
3731 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3732 else
3733 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3736 echores "$_soundcard_h"
3739 echocheck "sys/dvdio.h"
3740 cat > $TMPC << EOF
3741 #include <unistd.h>
3742 #include <sys/dvdio.h>
3743 int main(void) { return 0; }
3745 _dvdio=no
3746 cc_check && _dvdio=yes
3747 if test "$_dvdio" = yes ; then
3748 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3749 else
3750 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3752 echores "$_dvdio"
3755 echocheck "sys/cdio.h"
3756 cat > $TMPC << EOF
3757 #include <unistd.h>
3758 #include <sys/cdio.h>
3759 int main(void) { return 0; }
3761 _cdio=no
3762 cc_check && _cdio=yes
3763 if test "$_cdio" = yes ; then
3764 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3765 else
3766 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3768 echores "$_cdio"
3771 echocheck "linux/cdrom.h"
3772 cat > $TMPC << EOF
3773 #include <sys/types.h>
3774 #include <linux/cdrom.h>
3775 int main(void) { return 0; }
3777 _cdrom=no
3778 cc_check && _cdrom=yes
3779 if test "$_cdrom" = yes ; then
3780 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3781 else
3782 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3784 echores "$_cdrom"
3787 echocheck "dvd.h"
3788 cat > $TMPC << EOF
3789 #include <dvd.h>
3790 int main(void) { return 0; }
3792 _dvd=no
3793 cc_check && _dvd=yes
3794 if test "$_dvd" = yes ; then
3795 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3796 else
3797 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3799 echores "$_dvd"
3802 if bsdos; then
3803 echocheck "BSDI dvd.h"
3804 cat > $TMPC << EOF
3805 #include <dvd.h>
3806 int main(void) { return 0; }
3808 _bsdi_dvd=no
3809 cc_check && _bsdi_dvd=yes
3810 if test "$_bsdi_dvd" = yes ; then
3811 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3812 else
3813 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3815 echores "$_bsdi_dvd"
3816 fi #if bsdos
3819 if hpux; then
3820 # also used by AIX, but AIX does not support VCD and/or libdvdread
3821 echocheck "HP-UX SCSI header"
3822 cat > $TMPC << EOF
3823 #include <sys/scsi.h>
3824 int main(void) { return 0; }
3826 _hpux_scsi_h=no
3827 cc_check && _hpux_scsi_h=yes
3828 if test "$_hpux_scsi_h" = yes ; then
3829 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3830 else
3831 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3833 echores "$_hpux_scsi_h"
3834 fi #if hpux
3837 if sunos; then
3838 echocheck "userspace SCSI headers (Solaris)"
3839 cat > $TMPC << EOF
3840 #include <unistd.h>
3841 #include <stropts.h>
3842 #include <sys/scsi/scsi_types.h>
3843 #include <sys/scsi/impl/uscsi.h>
3844 int main(void) { return 0; }
3846 _sol_scsi_h=no
3847 cc_check && _sol_scsi_h=yes
3848 if test "$_sol_scsi_h" = yes ; then
3849 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3850 else
3851 def_sol_scsi_h='#undef SOLARIS_USCSI'
3853 echores "$_sol_scsi_h"
3854 fi #if sunos
3857 echocheck "termcap"
3858 if test "$_termcap" = auto ; then
3859 cat > $TMPC <<EOF
3860 #include <stddef.h>
3861 #include <term.h>
3862 int main(void) { tgetent(NULL, NULL); return 0; }
3864 _termcap=no
3865 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3866 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
3867 && _termcap=yes && break
3868 done
3870 if test "$_termcap" = yes ; then
3871 def_termcap='#define HAVE_TERMCAP 1'
3872 test $_ld_tmp && _res_comment="using $_ld_tmp"
3873 else
3874 def_termcap='#undef HAVE_TERMCAP'
3876 echores "$_termcap"
3879 echocheck "termios"
3880 def_termios='#undef HAVE_TERMIOS'
3881 def_termios_h='#undef HAVE_TERMIOS_H'
3882 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3883 if test "$_termios" = auto ; then
3884 _termios=no
3885 for _termios_header in "sys/termios.h" "termios.h"; do
3886 cat > $TMPC <<EOF
3887 #include <$_termios_header>
3888 int main(void) { return 0; }
3890 cc_check && _termios=yes && _res_comment="using $_termios_header" && break
3891 done
3894 if test "$_termios" = yes ; then
3895 def_termios='#define HAVE_TERMIOS 1'
3896 if test "$_termios_header" = "termios.h" ; then
3897 def_termios_h='#define HAVE_TERMIOS_H 1'
3898 else
3899 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3902 echores "$_termios"
3905 echocheck "shm"
3906 if test "$_shm" = auto ; then
3907 cat > $TMPC << EOF
3908 #include <sys/types.h>
3909 #include <sys/shm.h>
3910 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3912 _shm=no
3913 cc_check && _shm=yes
3915 if test "$_shm" = yes ; then
3916 def_shm='#define HAVE_SHM 1'
3917 else
3918 def_shm='#undef HAVE_SHM'
3920 echores "$_shm"
3923 echocheck "strsep()"
3924 cat > $TMPC << EOF
3925 #include <string.h>
3926 int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3928 _strsep=no
3929 cc_check && _strsep=yes
3930 if test "$_strsep" = yes ; then
3931 def_strsep='#define HAVE_STRSEP 1'
3932 _need_strsep=no
3933 else
3934 def_strsep='#undef HAVE_STRSEP'
3935 _need_strsep=yes
3937 echores "$_strsep"
3940 echocheck "vsscanf()"
3941 cat > $TMPC << EOF
3942 #define _ISOC99_SOURCE
3943 #include <stdarg.h>
3944 #include <stdio.h>
3945 int main(void) { va_list ap; vsscanf("foo", "bar", ap); return 0; }
3947 _vsscanf=no
3948 cc_check && _vsscanf=yes
3949 if test "$_vsscanf" = yes ; then
3950 def_vsscanf='#define HAVE_VSSCANF 1'
3951 _need_vsscanf=no
3952 else
3953 def_vsscanf='#undef HAVE_VSSCANF'
3954 _need_vsscanf=yes
3956 echores "$_vsscanf"
3959 echocheck "swab()"
3960 cat > $TMPC << EOF
3961 #define _XOPEN_SOURCE 600
3962 #include <unistd.h>
3963 int main(void) { swab(0, 0, 0); return 0; }
3965 _swab=no
3966 cc_check && _swab=yes
3967 if test "$_swab" = yes ; then
3968 def_swab='#define HAVE_SWAB 1'
3969 _need_swab=no
3970 else
3971 def_swab='#undef HAVE_SWAB'
3972 _need_swab=yes
3974 echores "$_swab"
3976 echocheck "POSIX select()"
3977 cat > $TMPC << EOF
3978 #include <stdio.h>
3979 #include <stdlib.h>
3980 #include <sys/types.h>
3981 #include <string.h>
3982 #include <sys/time.h>
3983 #include <unistd.h>
3984 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3986 _posix_select=no
3987 def_posix_select='#undef HAVE_POSIX_SELECT'
3988 #select() of kLIBC (OS/2) supports socket only
3989 ! os2 && cc_check && _posix_select=yes \
3990 && def_posix_select='#define HAVE_POSIX_SELECT 1'
3991 echores "$_posix_select"
3994 echocheck "audio select()"
3995 if test "$_select" = no ; then
3996 def_select='#undef HAVE_AUDIO_SELECT'
3997 elif test "$_select" = yes ; then
3998 def_select='#define HAVE_AUDIO_SELECT 1'
4000 echores "$_select"
4003 echocheck "gettimeofday()"
4004 cat > $TMPC << EOF
4005 #include <stdio.h>
4006 #include <sys/time.h>
4007 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
4009 _gettimeofday=no
4010 cc_check && _gettimeofday=yes
4011 if test "$_gettimeofday" = yes ; then
4012 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
4013 _need_gettimeofday=no
4014 else
4015 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
4016 _need_gettimeofday=yes
4018 echores "$_gettimeofday"
4021 echocheck "glob()"
4022 cat > $TMPC << EOF
4023 #include <stdio.h>
4024 #include <glob.h>
4025 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
4027 _glob=no
4028 cc_check && _glob=yes
4029 if test "$_glob" = yes ; then
4030 def_glob='#define HAVE_GLOB 1'
4031 _need_glob=no
4032 else
4033 def_glob='#undef HAVE_GLOB'
4034 _need_glob=yes
4036 echores "$_glob"
4039 echocheck "setenv()"
4040 cat > $TMPC << EOF
4041 #include <stdlib.h>
4042 int main(void) { setenv("","",0); return 0; }
4044 _setenv=no
4045 cc_check && _setenv=yes
4046 if test "$_setenv" = yes ; then
4047 def_setenv='#define HAVE_SETENV 1'
4048 _need_setenv=no
4049 else
4050 def_setenv='#undef HAVE_SETENV'
4051 _need_setenv=yes
4053 echores "$_setenv"
4056 if sunos; then
4057 echocheck "sysi86()"
4058 cat > $TMPC << EOF
4059 #include <sys/sysi86.h>
4060 int main(void) { sysi86(0); return 0; }
4062 _sysi86=no
4063 cc_check && _sysi86=yes
4064 if test "$_sysi86" = yes ; then
4065 def_sysi86='#define HAVE_SYSI86 1'
4066 cat > $TMPC << EOF
4067 #include <sys/sysi86.h>
4068 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
4070 cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
4071 else
4072 def_sysi86='#undef HAVE_SYSI86'
4074 echores "$_sysi86"
4075 fi #if sunos
4078 echocheck "sys/sysinfo.h"
4079 cat > $TMPC << EOF
4080 #include <sys/sysinfo.h>
4081 int main(void) {
4082 struct sysinfo s_info;
4083 sysinfo(&s_info);
4084 return 0;
4087 _sys_sysinfo=no
4088 cc_check && _sys_sysinfo=yes
4089 if test "$_sys_sysinfo" = yes ; then
4090 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
4091 else
4092 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
4094 echores "$_sys_sysinfo"
4097 if darwin; then
4099 echocheck "Mac OS X Finder Support"
4100 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
4101 if test "$_macosx_finder" = yes ; then
4102 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
4103 extra_ldflags="$extra_ldflags -framework Carbon"
4105 echores "$_macosx_finder"
4107 echocheck "Mac OS X Bundle file locations"
4108 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
4109 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
4110 if test "$_macosx_bundle" = yes ; then
4111 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
4112 extra_ldflags="$extra_ldflags -framework Carbon"
4114 echores "$_macosx_bundle"
4116 echocheck "Apple Remote"
4117 if test "$_apple_remote" = auto ; then
4118 _apple_remote=no
4119 cat > $TMPC <<EOF
4120 #include <stdio.h>
4121 #include <IOKit/IOCFPlugIn.h>
4122 int main(void) {
4123 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
4124 CFMutableDictionaryRef hidMatchDictionary;
4125 IOReturn ioReturnValue;
4127 // Set up a matching dictionary to search the I/O Registry by class.
4128 // name for all HID class devices
4129 hidMatchDictionary = IOServiceMatching("AppleIRController");
4131 // Now search I/O Registry for matching devices.
4132 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
4133 hidMatchDictionary, &hidObjectIterator);
4135 // If search is unsuccessful, return nonzero.
4136 if (ioReturnValue != kIOReturnSuccess ||
4137 !IOIteratorIsValid(hidObjectIterator)) {
4138 return 1;
4140 return 0;
4143 cc_check -framework IOKit && tmp_run && _apple_remote=yes
4145 if test "$_apple_remote" = yes ; then
4146 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
4147 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
4148 else
4149 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
4151 echores "$_apple_remote"
4153 fi #if darwin
4155 if linux; then
4157 echocheck "Apple IR"
4158 if test "$_apple_ir" = auto ; then
4159 _apple_ir=no
4160 cat > $TMPC <<EOF
4161 #include <linux/types.h>
4162 #include <linux/input.h>
4163 int main(void) {
4164 struct input_event ev;
4165 struct input_id id;
4166 return 0;
4169 cc_check && _apple_ir=yes
4171 if test "$_apple_ir" = yes ; then
4172 def_apple_ir='#define CONFIG_APPLE_IR 1'
4173 else
4174 def_apple_ir='#undef CONFIG_APPLE_IR'
4176 echores "$_apple_ir"
4177 fi #if linux
4179 echocheck "pkg-config"
4180 _pkg_config=pkg-config
4181 if $($_pkg_config --version > /dev/null 2>&1); then
4182 if test "$_ld_static"; then
4183 _pkg_config="$_pkg_config --static"
4185 echores "yes"
4186 else
4187 _pkg_config=false
4188 echores "no"
4192 echocheck "Samba support (libsmbclient)"
4193 if test "$_smb" = yes; then
4194 extra_ldflags="$extra_ldflags -lsmbclient"
4196 if test "$_smb" = auto; then
4197 _smb=no
4198 cat > $TMPC << EOF
4199 #include <libsmbclient.h>
4200 int main(void) { smbc_opendir("smb://"); return 0; }
4202 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
4203 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
4204 _smb=yes && break
4205 done
4208 if test "$_smb" = yes; then
4209 def_smb="#define CONFIG_LIBSMBCLIENT 1"
4210 _inputmodules="smb $_inputmodules"
4211 else
4212 def_smb="#undef CONFIG_LIBSMBCLIENT"
4213 _noinputmodules="smb $_noinputmodules"
4215 echores "$_smb"
4218 #########
4219 # VIDEO #
4220 #########
4223 echocheck "tdfxfb"
4224 if test "$_tdfxfb" = yes ; then
4225 def_tdfxfb='#define CONFIG_TDFXFB 1'
4226 _vomodules="tdfxfb $_vomodules"
4227 else
4228 def_tdfxfb='#undef CONFIG_TDFXFB'
4229 _novomodules="tdfxfb $_novomodules"
4231 echores "$_tdfxfb"
4233 echocheck "s3fb"
4234 if test "$_s3fb" = yes ; then
4235 def_s3fb='#define CONFIG_S3FB 1'
4236 _vomodules="s3fb $_vomodules"
4237 else
4238 def_s3fb='#undef CONFIG_S3FB'
4239 _novomodules="s3fb $_novomodules"
4241 echores "$_s3fb"
4243 echocheck "wii"
4244 if test "$_wii" = yes ; then
4245 def_wii='#define CONFIG_WII 1'
4246 _vomodules="wii $_vomodules"
4247 else
4248 def_wii='#undef CONFIG_WII'
4249 _novomodules="wii $_novomodules"
4251 echores "$_wii"
4253 echocheck "tdfxvid"
4254 if test "$_tdfxvid" = yes ; then
4255 def_tdfxvid='#define CONFIG_TDFX_VID 1'
4256 _vomodules="tdfx_vid $_vomodules"
4257 else
4258 def_tdfxvid='#undef CONFIG_TDFX_VID'
4259 _novomodules="tdfx_vid $_novomodules"
4261 echores "$_tdfxvid"
4263 echocheck "xvr100"
4264 if test "$_xvr100" = auto ; then
4265 cat > $TMPC << EOF
4266 #include <unistd.h>
4267 #include <sys/fbio.h>
4268 #include <sys/visual_io.h>
4269 int main(void) {
4270 struct vis_identifier ident;
4271 struct fbgattr attr;
4272 ioctl(0, VIS_GETIDENTIFIER, &ident);
4273 ioctl(0, FBIOGATTR, &attr);
4274 return 0;
4277 _xvr100=no
4278 cc_check && _xvr100=yes
4280 if test "$_xvr100" = yes ; then
4281 def_xvr100='#define CONFIG_XVR100 1'
4282 _vomodules="xvr100 $_vomodules"
4283 else
4284 def_tdfxvid='#undef CONFIG_XVR100'
4285 _novomodules="xvr100 $_novomodules"
4287 echores "$_xvr100"
4289 echocheck "tga"
4290 if test "$_tga" = yes ; then
4291 def_tga='#define CONFIG_TGA 1'
4292 _vomodules="tga $_vomodules"
4293 else
4294 def_tga='#undef CONFIG_TGA'
4295 _novomodules="tga $_novomodules"
4297 echores "$_tga"
4300 echocheck "md5sum support"
4301 if test "$_md5sum" = yes; then
4302 def_md5sum="#define CONFIG_MD5SUM 1"
4303 _vomodules="md5sum $_vomodules"
4304 else
4305 def_md5sum="#undef CONFIG_MD5SUM"
4306 _novomodules="md5sum $_novomodules"
4308 echores "$_md5sum"
4311 echocheck "yuv4mpeg support"
4312 if test "$_yuv4mpeg" = yes; then
4313 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
4314 _vomodules="yuv4mpeg $_vomodules"
4315 else
4316 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
4317 _novomodules="yuv4mpeg $_novomodules"
4319 echores "$_yuv4mpeg"
4322 echocheck "bl"
4323 if test "$_bl" = yes ; then
4324 def_bl='#define CONFIG_BL 1'
4325 _vomodules="bl $_vomodules"
4326 else
4327 def_bl='#undef CONFIG_BL'
4328 _novomodules="bl $_novomodules"
4330 echores "$_bl"
4333 echocheck "DirectFB"
4334 if test "$_directfb" = auto ; then
4335 _directfb=no
4336 cat > $TMPC <<EOF
4337 #include <directfb.h>
4338 int main(void) { DirectFBInit(0, 0); return 0; }
4340 for _inc_tmp in "" -I/usr/local/include/directfb \
4341 -I/usr/include/directfb -I/usr/local/include; do
4342 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
4343 extra_cflags="$extra_cflags $_inc_tmp" && break
4344 done
4347 dfb_version() {
4348 expr $1 \* 65536 + $2 \* 256 + $3
4351 if test "$_directfb" = yes; then
4352 cat > $TMPC << EOF
4353 #include <directfb_version.h>
4355 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
4358 if $_cc -E $TMPC $extra_cflags > "$TMPEXE"; then
4359 _directfb_version=$(sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()')
4360 _dfb_major=$(echo $_directfb_version | cut -d . -f 1)
4361 _dfb_minor=$(echo $_directfb_version | cut -d . -f 2)
4362 _dfb_micro=$(echo $_directfb_version | cut -d . -f 3)
4363 _dfb_version=$(dfb_version $_dfb_major $_dfb_minor $_dfb_micro)
4364 if test "$_dfb_version" -ge $(dfb_version 0 9 13); then
4365 def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
4366 _res_comment="$_directfb_version"
4367 test "$_dfb_version" -ge $(dfb_version 0 9 15) && _dfbmga=yes
4368 else
4369 def_directfb_version='#undef DIRECTFBVERSION'
4370 _directfb=no
4371 _res_comment="version >=0.9.13 required"
4373 else
4374 _directfb=no
4375 _res_comment="failed to get version"
4378 echores "$_directfb"
4380 if test "$_directfb" = yes ; then
4381 def_directfb='#define CONFIG_DIRECTFB 1'
4382 _vomodules="directfb $_vomodules"
4383 libs_mplayer="$libs_mplayer -ldirectfb"
4384 else
4385 def_directfb='#undef CONFIG_DIRECTFB'
4386 _novomodules="directfb $_novomodules"
4388 if test "$_dfbmga" = yes; then
4389 _vomodules="dfbmga $_vomodules"
4390 def_dfbmga='#define CONFIG_DFBMGA 1'
4391 else
4392 _novomodules="dfbmga $_novomodules"
4393 def_dfbmga='#undef CONFIG_DFBMGA'
4397 echocheck "X11 headers presence"
4398 _x11_headers="no"
4399 _res_comment="check if the dev(el) packages are installed"
4400 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
4401 if test -f "$I/X11/Xlib.h" ; then
4402 _x11_headers="yes"
4403 _res_comment=""
4404 break
4406 done
4407 if test $_cross_compile = no; then
4408 for I in /usr/X11/include /usr/X11R7/include /usr/local/include /usr/X11R6/include \
4409 /usr/include/X11R6 /usr/openwin/include ; do
4410 if test -f "$I/X11/Xlib.h" ; then
4411 extra_cflags="$extra_cflags -I$I"
4412 _x11_headers="yes"
4413 _res_comment="using $I"
4414 break
4416 done
4418 echores "$_x11_headers"
4421 echocheck "X11"
4422 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
4423 cat > $TMPC <<EOF
4424 #include <X11/Xlib.h>
4425 #include <X11/Xutil.h>
4426 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
4428 for I in "" -L/usr/X11R7/lib -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
4429 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/local/lib64 -L/usr/X11R6/lib64 \
4430 -L/usr/lib ; do
4431 if netbsd; then
4432 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
4433 else
4434 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
4436 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" \
4437 && _x11=yes && break
4438 done
4440 if test "$_x11" = yes ; then
4441 def_x11='#define CONFIG_X11 1'
4442 _vomodules="x11 xover $_vomodules"
4443 else
4444 _x11=no
4445 def_x11='#undef CONFIG_X11'
4446 _novomodules="x11 $_novomodules"
4447 _res_comment="check if the dev(el) packages are installed"
4448 # disable stuff that depends on X
4449 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
4451 echores "$_x11"
4453 echocheck "Xss screensaver extensions"
4454 if test "$_xss" = auto ; then
4455 cat > $TMPC << EOF
4456 #include <X11/Xlib.h>
4457 #include <X11/extensions/scrnsaver.h>
4458 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
4460 _xss=no
4461 cc_check -lXss && _xss=yes
4463 if test "$_xss" = yes ; then
4464 def_xss='#define CONFIG_XSS 1'
4465 libs_mplayer="$libs_mplayer -lXss"
4466 else
4467 def_xss='#undef CONFIG_XSS'
4469 echores "$_xss"
4471 echocheck "DPMS"
4472 _xdpms3=no
4473 _xdpms4=no
4474 if test "$_x11" = yes ; then
4475 cat > $TMPC <<EOF
4476 #include <X11/Xmd.h>
4477 #include <X11/Xlib.h>
4478 #include <X11/Xutil.h>
4479 #include <X11/Xatom.h>
4480 #include <X11/extensions/dpms.h>
4481 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4483 cc_check -lXdpms && _xdpms3=yes
4484 cat > $TMPC <<EOF
4485 #include <X11/Xlib.h>
4486 #include <X11/extensions/dpms.h>
4487 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4489 cc_check -lXext && _xdpms4=yes
4491 if test "$_xdpms4" = yes ; then
4492 def_xdpms='#define CONFIG_XDPMS 1'
4493 _res_comment="using Xdpms 4"
4494 echores "yes"
4495 elif test "$_xdpms3" = yes ; then
4496 def_xdpms='#define CONFIG_XDPMS 1'
4497 libs_mplayer="$libs_mplayer -lXdpms"
4498 _res_comment="using Xdpms 3"
4499 echores "yes"
4500 else
4501 def_xdpms='#undef CONFIG_XDPMS'
4502 echores "no"
4506 echocheck "Xv"
4507 if test "$_xv" = auto ; then
4508 cat > $TMPC <<EOF
4509 #include <X11/Xlib.h>
4510 #include <X11/extensions/Xvlib.h>
4511 int main(void) {
4512 (void) XvGetPortAttribute(0, 0, 0, 0);
4513 (void) XvQueryPortAttributes(0, 0, 0);
4514 return 0; }
4516 _xv=no
4517 cc_check -lXv && _xv=yes
4520 if test "$_xv" = yes ; then
4521 def_xv='#define CONFIG_XV 1'
4522 libs_mplayer="$libs_mplayer -lXv"
4523 _vomodules="xv $_vomodules"
4524 else
4525 def_xv='#undef CONFIG_XV'
4526 _novomodules="xv $_novomodules"
4528 echores "$_xv"
4531 echocheck "XvMC"
4532 if test "$_xv" = yes && test "$_xvmc" != no ; then
4533 _xvmc=no
4534 cat > $TMPC <<EOF
4535 #include <X11/Xlib.h>
4536 #include <X11/extensions/Xvlib.h>
4537 #include <X11/extensions/XvMClib.h>
4538 int main(void) {
4539 (void) XvMCQueryExtension(0,0,0);
4540 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4541 return 0; }
4543 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4544 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4545 done
4547 if test "$_xvmc" = yes ; then
4548 def_xvmc='#define CONFIG_XVMC 1'
4549 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
4550 _vomodules="xvmc $_vomodules"
4551 _res_comment="using $_xvmclib"
4552 else
4553 def_xvmc='#define CONFIG_XVMC 0'
4554 _novomodules="xvmc $_novomodules"
4555 _libavdecoders=$(echo $_libavdecoders | sed -e s/MPEG_XVMC_DECODER//)
4557 echores "$_xvmc"
4560 echocheck "VDPAU"
4561 if test "$_vdpau" = auto ; then
4562 _vdpau=no
4563 if test "$_dl" = yes ; then
4564 cat > $TMPC <<EOF
4565 #include <vdpau/vdpau_x11.h>
4566 int main(void) {
4567 (void) vdp_device_create_x11(0, 0, 0, 0);
4568 return VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1; }
4570 cc_check -lvdpau && _vdpau=yes
4573 if test "$_vdpau" = yes ; then
4574 def_vdpau='#define CONFIG_VDPAU 1'
4575 libs_mplayer="$libs_mplayer -lvdpau"
4576 _vomodules="vdpau $_vomodules"
4577 else
4578 def_vdpau='#define CONFIG_VDPAU 0'
4579 _novomodules="vdpau $_novomodules"
4580 _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//)
4582 echores "$_vdpau"
4585 echocheck "Xinerama"
4586 if test "$_xinerama" = auto ; then
4587 cat > $TMPC <<EOF
4588 #include <X11/Xlib.h>
4589 #include <X11/extensions/Xinerama.h>
4590 int main(void) { (void) XineramaIsActive(0); return 0; }
4592 _xinerama=no
4593 cc_check -lXinerama && _xinerama=yes
4596 if test "$_xinerama" = yes ; then
4597 def_xinerama='#define CONFIG_XINERAMA 1'
4598 libs_mplayer="$libs_mplayer -lXinerama"
4599 else
4600 def_xinerama='#undef CONFIG_XINERAMA'
4602 echores "$_xinerama"
4605 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4606 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4607 # named 'X extensions' or something similar.
4608 # This check may be useful for future mplayer versions (to change resolution)
4609 # If you run into problems, remove '-lXxf86vm'.
4610 echocheck "Xxf86vm"
4611 if test "$_vm" = auto ; then
4612 cat > $TMPC <<EOF
4613 #include <X11/Xlib.h>
4614 #include <X11/extensions/xf86vmode.h>
4615 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4617 _vm=no
4618 cc_check -lXxf86vm && _vm=yes
4620 if test "$_vm" = yes ; then
4621 def_vm='#define CONFIG_XF86VM 1'
4622 libs_mplayer="$libs_mplayer -lXxf86vm"
4623 else
4624 def_vm='#undef CONFIG_XF86VM'
4626 echores "$_vm"
4628 # Check for the presence of special keycodes, like audio control buttons
4629 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4630 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4631 # have these new keycodes.
4632 echocheck "XF86keysym"
4633 if test "$_xf86keysym" = auto; then
4634 _xf86keysym=no
4635 cat > $TMPC <<EOF
4636 #include <X11/Xlib.h>
4637 #include <X11/XF86keysym.h>
4638 int main(void) { return XF86XK_AudioPause; }
4640 cc_check && _xf86keysym=yes
4642 if test "$_xf86keysym" = yes ; then
4643 def_xf86keysym='#define CONFIG_XF86XK 1'
4644 else
4645 def_xf86keysym='#undef CONFIG_XF86XK'
4647 echores "$_xf86keysym"
4649 echocheck "DGA"
4650 if test "$_dga2" = auto && test "$_x11" = yes ; then
4651 cat > $TMPC << EOF
4652 #include <X11/Xlib.h>
4653 #include <X11/extensions/xf86dga.h>
4654 int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4656 _dga2=no
4657 cc_check -lXxf86dga && _dga2=yes
4659 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4660 cat > $TMPC << EOF
4661 #include <X11/Xlib.h>
4662 #include <X11/extensions/xf86dga.h>
4663 int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4665 _dga1=no
4666 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4669 _dga=no
4670 def_dga='#undef CONFIG_DGA'
4671 def_dga1='#undef CONFIG_DGA1'
4672 def_dga2='#undef CONFIG_DGA2'
4673 if test "$_dga1" = yes ; then
4674 _dga=yes
4675 def_dga1='#define CONFIG_DGA1 1'
4676 _res_comment="using DGA 1.0"
4677 elif test "$_dga2" = yes ; then
4678 _dga=yes
4679 def_dga2='#define CONFIG_DGA2 1'
4680 _res_comment="using DGA 2.0"
4682 if test "$_dga" = yes ; then
4683 def_dga='#define CONFIG_DGA 1'
4684 libs_mplayer="$libs_mplayer -lXxf86dga"
4685 _vomodules="dga $_vomodules"
4686 else
4687 _novomodules="dga $_novomodules"
4689 echores "$_dga"
4692 echocheck "3dfx"
4693 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4694 def_3dfx='#define CONFIG_3DFX 1'
4695 _vomodules="3dfx $_vomodules"
4696 else
4697 def_3dfx='#undef CONFIG_3DFX'
4698 _novomodules="3dfx $_novomodules"
4700 echores "$_3dfx"
4703 echocheck "VIDIX"
4704 def_vidix='#undef CONFIG_VIDIX'
4705 def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4706 _vidix_drv_cyberblade=no
4707 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4708 _vidix_drv_ivtv=no
4709 def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4710 _vidix_drv_mach64=no
4711 def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4712 _vidix_drv_mga=no
4713 def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4714 _vidix_drv_mga_crtc2=no
4715 def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4716 _vidix_drv_nvidia=no
4717 def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4718 _vidix_drv_pm2=no
4719 def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4720 _vidix_drv_pm3=no
4721 def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4722 _vidix_drv_radeon=no
4723 def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4724 _vidix_drv_rage128=no
4725 def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4726 _vidix_drv_s3=no
4727 def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU'
4728 _vidix_drv_sh_veu=no
4729 def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4730 _vidix_drv_sis=no
4731 def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4732 _vidix_drv_unichrome=no
4733 if test "$_vidix" = auto ; then
4734 _vidix=no
4735 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4736 && _vidix=yes
4737 x86_64 && win32 && _vidix=no
4738 (ppc || alpha) && linux && _vidix=yes
4740 echores "$_vidix"
4742 if test "$_vidix" = yes ; then
4743 def_vidix='#define CONFIG_VIDIX 1'
4744 _vomodules="cvidix $_vomodules"
4745 # FIXME: ivtv driver temporarily disabled until we have a proper test
4746 #test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4747 test "$_vidix_drivers" || _vidix_drivers="cyberblade mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4749 # some vidix drivers are architecture and os specific, discard them elsewhere
4750 x86 || _vidix_drivers=$(echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//)
4751 (test $host_arch = "sh" && linux) || _vidix_drivers=$(echo $_vidix_drivers | sed s/sh_veu//)
4753 for driver in $_vidix_drivers ; do
4754 uc_driver=$(echo $driver | tr '[a-z]' '[A-Z]')
4755 eval _vidix_drv_${driver}=yes
4756 eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4757 done
4759 echocheck "VIDIX PCI device name database"
4760 echores "$_vidix_pcidb"
4761 if test "$_vidix_pcidb" = yes ; then
4762 _vidix_pcidb_val=1
4763 else
4764 _vidix_pcidb_val=0
4767 echocheck "VIDIX dhahelper support"
4768 test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER
4769 echores "$_dhahelper"
4771 echocheck "VIDIX svgalib_helper support"
4772 test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER
4773 echores "$_svgalib_helper"
4775 else
4776 _novomodules="cvidix $_novomodules"
4779 if test "$_vidix" = yes && win32; then
4780 winvidix=yes
4781 _vomodules="winvidix $_vomodules"
4782 libs_mplayer="$libs_mplayer -lgdi32"
4783 else
4784 _novomodules="winvidix $_novomodules"
4786 if test "$_vidix" = yes && test "$_x11" = yes; then
4787 xvidix=yes
4788 _vomodules="xvidix $_vomodules"
4789 else
4790 _novomodules="xvidix $_novomodules"
4793 echocheck "/dev/mga_vid"
4794 if test "$_mga" = auto ; then
4795 _mga=no
4796 test -c /dev/mga_vid && _mga=yes
4798 if test "$_mga" = yes ; then
4799 def_mga='#define CONFIG_MGA 1'
4800 _vomodules="mga $_vomodules"
4801 else
4802 def_mga='#undef CONFIG_MGA'
4803 _novomodules="mga $_novomodules"
4805 echores "$_mga"
4807 echocheck "xmga"
4808 if test "$_xmga" = auto ; then
4809 _xmga=no
4810 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
4812 if test "$_xmga" = yes ; then
4813 def_xmga='#define CONFIG_XMGA 1'
4814 _vomodules="xmga $_vomodules"
4815 else
4816 def_xmga='#undef CONFIG_XMGA'
4817 _novomodules="xmga $_novomodules"
4819 echores "$_xmga"
4822 echocheck "GGI"
4823 if test "$_ggi" = auto ; then
4824 cat > $TMPC << EOF
4825 #include <ggi/ggi.h>
4826 int main(void) { ggiInit(); return 0; }
4828 _ggi=no
4829 cc_check -lggi && _ggi=yes
4831 if test "$_ggi" = yes ; then
4832 def_ggi='#define CONFIG_GGI 1'
4833 libs_mplayer="$libs_mplayer -lggi"
4834 _vomodules="ggi $_vomodules"
4835 else
4836 def_ggi='#undef CONFIG_GGI'
4837 _novomodules="ggi $_novomodules"
4839 echores "$_ggi"
4841 echocheck "GGI extension: libggiwmh"
4842 if test "$_ggiwmh" = auto ; then
4843 _ggiwmh=no
4844 cat > $TMPC << EOF
4845 #include <ggi/ggi.h>
4846 #include <ggi/wmh.h>
4847 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4849 cc_check -lggi -lggiwmh && _ggiwmh=yes
4851 # needed to get right output on obscure combination
4852 # like --disable-ggi --enable-ggiwmh
4853 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4854 def_ggiwmh='#define CONFIG_GGIWMH 1'
4855 libs_mplayer="$libs_mplayer -lggiwmh"
4856 else
4857 _ggiwmh=no
4858 def_ggiwmh='#undef CONFIG_GGIWMH'
4860 echores "$_ggiwmh"
4863 echocheck "AA"
4864 if test "$_aa" = auto ; then
4865 cat > $TMPC << EOF
4866 #include <aalib.h>
4867 extern struct aa_hardware_params aa_defparams;
4868 extern struct aa_renderparams aa_defrenderparams;
4869 int main(void) {
4870 aa_context *c;
4871 aa_renderparams *p;
4872 (void) aa_init(0, 0, 0);
4873 c = aa_autoinit(&aa_defparams);
4874 p = aa_getrenderparams();
4875 aa_autoinitkbd(c,0);
4876 return 0; }
4878 _aa=no
4879 for _ld_tmp in "-laa" ; do
4880 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4881 done
4883 if test "$_aa" = yes ; then
4884 def_aa='#define CONFIG_AA 1'
4885 if cygwin ; then
4886 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4888 _vomodules="aa $_vomodules"
4889 else
4890 def_aa='#undef CONFIG_AA'
4891 _novomodules="aa $_novomodules"
4893 echores "$_aa"
4896 echocheck "CACA"
4897 if test "$_caca" = auto ; then
4898 _caca=no
4899 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4900 cat > $TMPC << EOF
4901 #include <caca.h>
4902 #ifdef CACA_API_VERSION_1
4903 #include <caca0.h>
4904 #endif
4905 int main(void) { (void) caca_init(); return 0; }
4907 cc_check $(caca-config --libs) && _caca=yes
4910 if test "$_caca" = yes ; then
4911 def_caca='#define CONFIG_CACA 1'
4912 extra_cflags="$extra_cflags $(caca-config --cflags)"
4913 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4914 _vomodules="caca $_vomodules"
4915 else
4916 def_caca='#undef CONFIG_CACA'
4917 _novomodules="caca $_novomodules"
4919 echores "$_caca"
4922 echocheck "SVGAlib"
4923 if test "$_svga" = auto ; then
4924 cat > $TMPC << EOF
4925 #include <vga.h>
4926 int main(void) { return 0; }
4928 _svga=no
4929 cc_check -lvga $_ld_lm && _svga=yes
4931 if test "$_svga" = yes ; then
4932 def_svga='#define CONFIG_SVGALIB 1'
4933 libs_mplayer="$libs_mplayer -lvga"
4934 _vomodules="svga $_vomodules"
4935 else
4936 def_svga='#undef CONFIG_SVGALIB'
4937 _novomodules="svga $_novomodules"
4939 echores "$_svga"
4942 echocheck "FBDev"
4943 if test "$_fbdev" = auto ; then
4944 _fbdev=no
4945 linux && _fbdev=yes
4947 if test "$_fbdev" = yes ; then
4948 def_fbdev='#define CONFIG_FBDEV 1'
4949 _vomodules="fbdev $_vomodules"
4950 else
4951 def_fbdev='#undef CONFIG_FBDEV'
4952 _novomodules="fbdev $_novomodules"
4954 echores "$_fbdev"
4958 echocheck "DVB"
4959 if test "$_dvb" = auto ; then
4960 _dvb=no
4961 cat >$TMPC << EOF
4962 #include <poll.h>
4963 #include <sys/ioctl.h>
4964 #include <stdio.h>
4965 #include <time.h>
4966 #include <unistd.h>
4967 #include <ost/dmx.h>
4968 #include <ost/frontend.h>
4969 #include <ost/sec.h>
4970 #include <ost/video.h>
4971 #include <ost/audio.h>
4972 int main(void) {return 0;}
4974 for _inc_tmp in "" "-I/usr/src/DVB/ost/include" ; do
4975 cc_check $_inc_tmp && _dvb=yes && \
4976 extra_cflags="$extra_cflags $_inc_tmp" && break
4977 done
4979 echores "$_dvb"
4980 if test "$_dvb" = yes ; then
4981 def_dvb='#define CONFIG_DVB 1'
4982 def_dvbin='#define CONFIG_DVBIN 1'
4983 _aomodules="mpegpes(dvb) $_aomodules"
4984 _vomodules="mpegpes(dvb) $_vomodules"
4987 echocheck "DVB HEAD"
4988 if test "$_dvbhead" = auto ; then
4989 _dvbhead=no
4991 cat >$TMPC << EOF
4992 #include <poll.h>
4993 #include <sys/ioctl.h>
4994 #include <stdio.h>
4995 #include <time.h>
4996 #include <unistd.h>
4997 #include <linux/dvb/dmx.h>
4998 #include <linux/dvb/frontend.h>
4999 #include <linux/dvb/video.h>
5000 #include <linux/dvb/audio.h>
5001 int main(void) {return 0;}
5003 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
5004 cc_check $_inc_tmp && _dvbhead=yes && \
5005 extra_cflags="$extra_cflags $_inc_tmp" && break
5006 done
5008 echores "$_dvbhead"
5009 if test "$_dvbhead" = yes ; then
5010 def_dvb='#define CONFIG_DVB 1'
5011 def_dvb_head='#define CONFIG_DVB_HEAD 1'
5012 def_dvbin='#define CONFIG_DVBIN 1'
5013 _aomodules="mpegpes(dvb) $_aomodules"
5014 _vomodules="mpegpes(dvb) $_vomodules"
5017 if test "$_dvbhead" = no && test "$_dvb" = no ; then
5018 def_dvb='#undef CONFIG_DVB'
5019 def_dvb_head='#undef CONFIG_DVB_HEAD'
5020 def_dvbin='#undef CONFIG_DVBIN '
5021 _aomodules="mpegpes(file) $_aomodules"
5022 _vomodules="mpegpes(file) $_vomodules"
5025 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
5026 _dvbin=yes
5027 _inputmodules="dvb $_inputmodules"
5028 else
5029 _dvbin=no
5030 _noinputmodules="dvb $_noinputmodules"
5034 if darwin; then
5036 echocheck "QuickTime"
5037 if test "$quicktime" = auto ; then
5038 cat > $TMPC <<EOF
5039 #include <QuickTime/QuickTime.h>
5040 int main(void) {
5041 ImageDescription *desc;
5042 EnterMovies();
5043 ExitMovies();
5044 return 0;
5047 quicktime=no
5048 cc_check -framework QuickTime && quicktime=yes
5050 if test "$quicktime" = yes ; then
5051 extra_ldflags="$extra_ldflags -framework QuickTime"
5052 def_quicktime='#define CONFIG_QUICKTIME 1'
5053 else
5054 def_quicktime='#undef CONFIG_QUICKTIME'
5055 _quartz=no
5057 echores $quicktime
5059 echocheck "Quartz"
5060 if test "$_quartz" = auto ; then
5061 cat > $TMPC <<EOF
5062 #include <Carbon/Carbon.h>
5063 int main(void) {
5064 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
5065 return 0;
5068 _quartz=no
5069 cc_check -framework Carbon && _quartz=yes
5071 if test "$_quartz" = yes ; then
5072 libs_mplayer="$libs_mplayer -framework Carbon"
5073 def_quartz='#define CONFIG_QUARTZ 1'
5074 _vomodules="quartz $_vomodules"
5075 else
5076 def_quartz='#undef CONFIG_QUARTZ'
5077 _novomodules="quartz $_novomodules"
5079 echores $_quartz
5081 echocheck "CoreVideo"
5082 if test "$_corevideo" = auto ; then
5083 cat > $TMPC <<EOF
5084 #include <Carbon/Carbon.h>
5085 #include <CoreServices/CoreServices.h>
5086 #include <OpenGL/OpenGL.h>
5087 #include <QuartzCore/CoreVideo.h>
5088 int main(void) { return 0; }
5090 _corevideo=no
5091 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
5093 if test "$_corevideo" = yes ; then
5094 _vomodules="corevideo $_vomodules"
5095 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
5096 def_corevideo='#define CONFIG_COREVIDEO 1'
5097 else
5098 _novomodules="corevideo $_novomodules"
5099 def_corevideo='#undef CONFIG_COREVIDEO'
5101 echores "$_corevideo"
5103 fi #if darwin
5106 # make sure this stays below CoreVideo to avoid issues due to namespace
5107 # conflicts between -lGL and -framework OpenGL
5108 echocheck "OpenGL"
5109 #Note: this test is run even with --enable-gl since we autodetect linker flags
5110 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
5111 cat > $TMPC << EOF
5112 #ifdef GL_WIN32
5113 #include <windows.h>
5114 #include <GL/gl.h>
5115 #else
5116 #include <GL/gl.h>
5117 #include <X11/Xlib.h>
5118 #include <GL/glx.h>
5119 #endif
5120 int main(void) {
5121 #ifdef GL_WIN32
5122 HDC dc;
5123 wglCreateContext(dc);
5124 #else
5125 glXCreateContext(NULL, NULL, NULL, True);
5126 #endif
5127 glFinish();
5128 return 0;
5131 _gl=no
5132 for _ld_tmp in -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do
5133 if cc_check $_ld_tmp $_ld_lm ; then
5134 _gl=yes
5135 _gl_x11=yes
5136 libs_mplayer="$libs_mplayer $_ld_tmp $_ld_dl"
5137 break
5139 done
5140 if cc_check -DGL_WIN32 -lopengl32 ; then
5141 _gl=yes
5142 _gl_win32=yes
5143 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
5145 else
5146 _gl=no
5148 if test "$_gl" = yes ; then
5149 def_gl='#define CONFIG_GL 1'
5150 _res_comment="backends:"
5151 if test "$_gl_win32" = yes ; then
5152 def_gl_win32='#define CONFIG_GL_WIN32 1'
5153 _res_comment="$_res_comment win32"
5155 if test "$_gl_x11" = yes ; then
5156 def_gl_x11='#define CONFIG_GL_X11 1'
5157 _res_comment="$_res_comment x11"
5159 _vomodules="opengl $_vomodules"
5160 else
5161 def_gl='#undef CONFIG_GL'
5162 def_gl_win32='#undef CONFIG_GL_WIN32'
5163 def_gl_x11='#undef CONFIG_GL_X11'
5164 _novomodules="opengl $_novomodules"
5166 echores "$_gl"
5169 echocheck "MatrixView"
5170 if test "$_gl" = no ; then
5171 matrixview=no
5173 if test "$matrixview" = yes ; then
5174 _vomodules="matrixview $_vomodules"
5175 def_matrixview='#define CONFIG_MATRIXVIEW 1'
5176 else
5177 _novomodules="matrixview $_novomodules"
5178 def_matrixview='#undef CONFIG_MATRIXVIEW'
5180 echores "$matrixview"
5183 echocheck "PNG support"
5184 if test "$_png" = auto ; then
5185 _png=no
5186 if irix ; then
5187 # Don't check for -lpng on irix since it has its own libpng
5188 # incompatible with the GNU libpng
5189 _res_comment="disabled on irix (not GNU libpng)"
5190 else
5191 cat > $TMPC << EOF
5192 #include <png.h>
5193 #include <string.h>
5194 int main(void) {
5195 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
5196 printf("libpng: %s\n", png_libpng_ver);
5197 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
5200 cc_check -lpng -lz $_ld_lm && _png=yes
5203 echores "$_png"
5204 if test "$_png" = yes ; then
5205 def_png='#define CONFIG_PNG 1'
5206 extra_ldflags="$extra_ldflags -lpng -lz"
5207 else
5208 def_png='#undef CONFIG_PNG'
5211 echocheck "MNG support"
5212 if test "$_mng" = auto ; then
5213 _mng=no
5214 cat > $TMPC << EOF
5215 #include <libmng.h>
5216 int main(void) {
5217 const char * p_ver = mng_version_text();
5218 return !p_ver || p_ver[0] == 0;
5221 if cc_check -lmng -lz $_ld_lm ; then
5222 _mng=yes
5225 echores "$_mng"
5226 if test "$_mng" = yes ; then
5227 def_mng='#define CONFIG_MNG 1'
5228 extra_ldflags="$extra_ldflags -lmng -lz"
5229 else
5230 def_mng='#undef CONFIG_MNG'
5233 echocheck "JPEG support"
5234 if test "$_jpeg" = auto ; then
5235 _jpeg=no
5236 cat > $TMPC << EOF
5237 #include <stdio.h>
5238 #include <stdlib.h>
5239 #include <setjmp.h>
5240 #include <string.h>
5241 #include <jpeglib.h>
5242 int main(void) { return 0; }
5244 cc_check -ljpeg $_ld_lm && _jpeg=yes
5246 echores "$_jpeg"
5248 if test "$_jpeg" = yes ; then
5249 def_jpeg='#define CONFIG_JPEG 1'
5250 _vomodules="jpeg $_vomodules"
5251 extra_ldflags="$extra_ldflags -ljpeg"
5252 else
5253 def_jpeg='#undef CONFIG_JPEG'
5254 _novomodules="jpeg $_novomodules"
5258 echocheck "OpenJPEG (JPEG2000) support"
5259 if test "$libopenjpeg" = auto ; then
5260 libopenjpeg=no
5261 cat > $TMPC << EOF
5262 #define OPJ_STATIC
5263 #include <openjpeg.h>
5264 int main(void) { opj_dparameters_t dec_params; opj_set_default_decoder_parameters(&dec_params); return 0; }
5266 cc_check -lopenjpeg $_ld_lm && libopenjpeg=yes
5268 echores "$libopenjpeg"
5269 if test "$libopenjpeg" = yes ; then
5270 def_libopenjpeg='#define CONFIG_LIBOPENJPEG 1'
5271 extra_ldflags="$extra_ldflags -lopenjpeg"
5272 _libavdecoders="$_libavdecoders LIBOPENJPEG_DECODER"
5273 _libavencoders="$_libavencoders LIBOPENJPEG_ENCODER"
5274 _codecmodules="OpenJPEG $_codecmodules"
5275 else
5276 def_libopenjpeg='#define CONFIG_LIBOPENJPEG 0'
5277 _nocodecmodules="OpenJPEG $_nocodecmodules"
5281 echocheck "PNM support"
5282 if test "$_pnm" = yes; then
5283 def_pnm="#define CONFIG_PNM 1"
5284 _vomodules="pnm $_vomodules"
5285 else
5286 def_pnm="#undef CONFIG_PNM"
5287 _novomodules="pnm $_novomodules"
5289 echores "$_pnm"
5293 echocheck "GIF support"
5294 # This is to appease people who want to force gif support.
5295 # If it is forced to yes, then we still do checks to determine
5296 # which gif library to use.
5297 if test "$_gif" = yes ; then
5298 _force_gif=yes
5299 _gif=auto
5302 if test "$_gif" = auto ; then
5303 _gif=no
5304 cat > $TMPC << EOF
5305 #include <gif_lib.h>
5306 int main(void) { return 0; }
5308 for _ld_gif in "-lungif" "-lgif" ; do
5309 cc_check $_ld_gif && _gif=yes && break
5310 done
5313 # If no library was found, and the user wants support forced,
5314 # then we force it on with libgif, as this is the safest
5315 # assumption IMHO. (libungif & libregif both create symbolic
5316 # links to libgif. We also assume that no x11 support is needed,
5317 # because if you are forcing this, then you _should_ know what
5318 # you are doing. [ Besides, package maintainers should never
5319 # have compiled x11 deps into libungif in the first place. ] )
5320 # </rant>
5321 # --Joey
5322 if test "$_force_gif" = yes && test "$_gif" = no ; then
5323 _gif=yes
5324 _ld_gif="-lgif"
5327 if test "$_gif" = yes ; then
5328 def_gif='#define CONFIG_GIF 1'
5329 _codecmodules="gif $_codecmodules"
5330 _vomodules="gif89a $_vomodules"
5331 _res_comment="old version, some encoding functions disabled"
5332 def_gif_4='#undef CONFIG_GIF_4'
5333 extra_ldflags="$extra_ldflags $_ld_gif"
5335 cat > $TMPC << EOF
5336 #include <signal.h>
5337 #include <gif_lib.h>
5338 void catch() { exit(1); }
5339 int main(void) {
5340 signal(SIGSEGV, catch); // catch segfault
5341 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
5342 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
5343 return 0;
5346 if cc_check "$_ld_gif" ; then
5347 def_gif_4='#define CONFIG_GIF_4 1'
5348 _res_comment=""
5350 else
5351 def_gif='#undef CONFIG_GIF'
5352 def_gif_4='#undef CONFIG_GIF_4'
5353 _novomodules="gif89a $_novomodules"
5354 _nocodecmodules="gif $_nocodecmodules"
5356 echores "$_gif"
5359 case "$_gif" in yes*)
5360 echocheck "broken giflib workaround"
5361 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
5363 cat > $TMPC << EOF
5364 #include <gif_lib.h>
5365 int main(void) {
5366 GifFileType gif;
5367 printf("UserData is at address %p\n", gif.UserData);
5368 return 0;
5371 if cc_check "$_ld_gif" ; then
5372 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
5373 echores "disabled"
5374 else
5375 echores "enabled"
5378 esac
5381 echocheck "VESA support"
5382 if test "$_vesa" = auto ; then
5383 cat > $TMPC << EOF
5384 #include <vbe.h>
5385 int main(void) { vbeVersion(); return 0; }
5387 _vesa=no
5388 cc_check -lvbe -llrmi && _vesa=yes
5390 if test "$_vesa" = yes ; then
5391 def_vesa='#define CONFIG_VESA 1'
5392 libs_mplayer="$libs_mplayer -lvbe -llrmi"
5393 _vomodules="vesa $_vomodules"
5394 else
5395 def_vesa='#undef CONFIG_VESA'
5396 _novomodules="vesa $_novomodules"
5398 echores "$_vesa"
5400 #################
5401 # VIDEO + AUDIO #
5402 #################
5405 echocheck "SDL"
5406 _inc_tmp=""
5407 _ld_tmp=""
5408 def_sdl_sdl_h="#undef CONFIG_SDL_SDL_H"
5409 if test -z "$_sdlconfig" ; then
5410 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
5411 _sdlconfig="sdl-config"
5412 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
5413 _sdlconfig="sdl11-config"
5414 else
5415 _sdlconfig=false
5418 if test "$_sdl" = auto || test "$_sdl" = yes ; then
5419 cat > $TMPC << EOF
5420 #ifdef CONFIG_SDL_SDL_H
5421 #include <SDL/SDL.h>
5422 #else
5423 #include <SDL.h>
5424 #endif
5425 #ifndef __APPLE__
5426 // we allow SDL hacking our main() only on OSX
5427 #undef main
5428 #endif
5429 int main(int argc, char *argv[]) {
5430 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
5431 return 0;
5434 _sdl=no
5435 for _ld_tmp in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" "-lSDL -lwinmm -lgdi32 -ldxguid" ; do
5436 if cc_check -DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then
5437 _sdl=yes
5438 def_sdl_sdl_h="#define CONFIG_SDL_SDL_H 1"
5439 break
5441 done
5442 if test "$_sdl" = no && "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
5443 _res_comment="using $_sdlconfig"
5444 if cygwin ; then
5445 _inc_tmp="$($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
5446 _ld_tmp="$($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
5447 elif mingw32 ; then
5448 _inc_tmp=$($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)
5449 _ld_tmp=$($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)
5450 else
5451 _inc_tmp="$($_sdlconfig --cflags)"
5452 _ld_tmp="$($_sdlconfig --libs)"
5454 if cc_check $_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then
5455 _sdlversion=$($_sdlconfig --version | sed 's/[^0-9]//g')
5456 if test "$_sdlversion" -gt 116 ; then
5457 if test "$_sdlversion" -lt 121 ; then
5458 def_sdlbuggy='#define BUGGY_SDL'
5459 else
5460 def_sdlbuggy='#undef BUGGY_SDL'
5462 _sdl=yes
5467 if test "$_sdl" = yes ; then
5468 def_sdl='#define CONFIG_SDL 1'
5469 extra_cflags="$extra_cflags $_inc_tmp"
5470 libs_mplayer="$libs_mplayer $_ld_tmp"
5471 _vomodules="sdl $_vomodules"
5472 _aomodules="sdl $_aomodules"
5473 else
5474 def_sdl='#undef CONFIG_SDL'
5475 _novomodules="sdl $_novomodules"
5476 _noaomodules="sdl $_noaomodules"
5478 echores "$_sdl"
5481 if os2 ; then
5482 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
5483 if test "$_kva" = auto; then
5484 cat > $TMPC << EOF
5485 #include <os2.h>
5486 #include <kva.h>
5487 int main( void ) { return 0; }
5489 _kva=no;
5490 cc_check -lkva && _kva=yes
5492 if test "$_kva" = yes ; then
5493 def_kva='#define CONFIG_KVA 1'
5494 libs_mplayer="$libs_mplayer -lkva"
5495 _vomodules="kva $_vomodules"
5496 else
5497 def_kva='#undef CONFIG_KVA'
5498 _novomodules="kva $_novomodules"
5500 echores "$_kva"
5501 fi #if os2
5504 if win32; then
5506 echocheck "Windows waveout"
5507 if test "$_win32waveout" = auto ; then
5508 cat > $TMPC << EOF
5509 #include <windows.h>
5510 #include <mmsystem.h>
5511 int main(void) { return 0; }
5513 _win32waveout=no
5514 cc_check -lwinmm && _win32waveout=yes
5516 if test "$_win32waveout" = yes ; then
5517 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
5518 libs_mplayer="$libs_mplayer -lwinmm"
5519 _aomodules="win32 $_aomodules"
5520 else
5521 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
5522 _noaomodules="win32 $_noaomodules"
5524 echores "$_win32waveout"
5526 echocheck "Direct3D"
5527 if test "$_direct3d" = auto ; then
5528 cat > $TMPC << EOF
5529 #include <windows.h>
5530 #include <d3d9.h>
5531 int main(void) { return 0; }
5533 _direct3d=no
5534 cc_check && _direct3d=yes
5536 if test "$_direct3d" = yes ; then
5537 def_direct3d='#define CONFIG_DIRECT3D 1'
5538 _vomodules="direct3d $_vomodules"
5539 else
5540 def_direct3d='#undef CONFIG_DIRECT3D'
5541 _novomodules="direct3d $_novomodules"
5543 echores "$_direct3d"
5545 echocheck "Directx"
5546 if test "$_directx" = auto ; then
5547 cat > $TMPC << EOF
5548 #include <windows.h>
5549 #include <ddraw.h>
5550 #include <dsound.h>
5551 int main(void) { return 0; }
5553 _directx=no
5554 cc_check -lgdi32 && _directx=yes
5556 if test "$_directx" = yes ; then
5557 def_directx='#define CONFIG_DIRECTX 1'
5558 libs_mplayer="$libs_mplayer -lgdi32"
5559 _vomodules="directx $_vomodules"
5560 _aomodules="dsound $_aomodules"
5561 else
5562 def_directx='#undef CONFIG_DIRECTX'
5563 _novomodules="directx $_novomodules"
5564 _noaomodules="dsound $_noaomodules"
5566 echores "$_directx"
5568 fi #if win32; then
5571 echocheck "DXR2"
5572 if test "$_dxr2" = auto; then
5573 _dxr2=no
5574 cat > $TMPC << EOF
5575 #include <dxr2ioctl.h>
5576 int main(void) { return 0; }
5578 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
5579 cc_check $_inc_tmp && _dxr2=yes && \
5580 extra_cflags="$extra_cflags $_inc_tmp" && break
5581 done
5583 if test "$_dxr2" = yes; then
5584 def_dxr2='#define CONFIG_DXR2 1'
5585 _aomodules="dxr2 $_aomodules"
5586 _vomodules="dxr2 $_vomodules"
5587 else
5588 def_dxr2='#undef CONFIG_DXR2'
5589 _noaomodules="dxr2 $_noaomodules"
5590 _novomodules="dxr2 $_novomodules"
5592 echores "$_dxr2"
5594 echocheck "DXR3/H+"
5595 if test "$_dxr3" = auto ; then
5596 cat > $TMPC << EOF
5597 #include <linux/em8300.h>
5598 int main(void) { return 0; }
5600 _dxr3=no
5601 cc_check && _dxr3=yes
5603 if test "$_dxr3" = yes ; then
5604 def_dxr3='#define CONFIG_DXR3 1'
5605 _vomodules="dxr3 $_vomodules"
5606 else
5607 def_dxr3='#undef CONFIG_DXR3'
5608 _novomodules="dxr3 $_novomodules"
5610 echores "$_dxr3"
5613 echocheck "IVTV TV-Out (pre linux-2.6.24)"
5614 if test "$_ivtv" = auto ; then
5615 cat > $TMPC << EOF
5616 #include <stdlib.h>
5617 #include <inttypes.h>
5618 #include <linux/types.h>
5619 #include <linux/videodev2.h>
5620 #include <linux/ivtv.h>
5621 #include <sys/ioctl.h>
5622 int main(void) {
5623 struct ivtv_cfg_stop_decode sd;
5624 struct ivtv_cfg_start_decode sd1;
5625 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
5626 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
5627 return 0; }
5629 _ivtv=no
5630 cc_check && _ivtv=yes
5632 if test "$_ivtv" = yes ; then
5633 def_ivtv='#define CONFIG_IVTV 1'
5634 _vomodules="ivtv $_vomodules"
5635 _aomodules="ivtv $_aomodules"
5636 else
5637 def_ivtv='#undef CONFIG_IVTV'
5638 _novomodules="ivtv $_novomodules"
5639 _noaomodules="ivtv $_noaomodules"
5641 echores "$_ivtv"
5644 echocheck "V4L2 MPEG Decoder"
5645 if test "$_v4l2" = auto ; then
5646 cat > $TMPC << EOF
5647 #include <stdlib.h>
5648 #include <inttypes.h>
5649 #include <linux/types.h>
5650 #include <linux/videodev2.h>
5651 #include <linux/version.h>
5652 int main(void) {
5653 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
5654 #error kernel headers too old, need 2.6.22
5655 #endif
5656 struct v4l2_ext_controls ctrls;
5657 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
5658 return 0;
5661 _v4l2=no
5662 cc_check && _v4l2=yes
5664 if test "$_v4l2" = yes ; then
5665 def_v4l2='#define CONFIG_V4L2_DECODER 1'
5666 _vomodules="v4l2 $_vomodules"
5667 _aomodules="v4l2 $_aomodules"
5668 else
5669 def_v4l2='#undef CONFIG_V4L2_DECODER'
5670 _novomodules="v4l2 $_novomodules"
5671 _noaomodules="v4l2 $_noaomodules"
5673 echores "$_v4l2"
5677 #########
5678 # AUDIO #
5679 #########
5682 echocheck "OSS Audio"
5683 if test "$_ossaudio" = auto ; then
5684 cat > $TMPC << EOF
5685 #include <sys/ioctl.h>
5686 #include <$_soundcard_header>
5687 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5689 _ossaudio=no
5690 cc_check && _ossaudio=yes
5692 if test "$_ossaudio" = yes ; then
5693 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
5694 _aomodules="oss $_aomodules"
5695 if test "$_linux_devfs" = yes; then
5696 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
5697 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
5698 else
5699 cat > $TMPC << EOF
5700 #include <sys/ioctl.h>
5701 #include <$_soundcard_header>
5702 #ifdef OPEN_SOUND_SYSTEM
5703 int main(void) { return 0; }
5704 #else
5705 #error Not the real thing
5706 #endif
5708 _real_ossaudio=no
5709 cc_check && _real_ossaudio=yes
5710 if test "$_real_ossaudio" = yes; then
5711 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5712 elif netbsd || openbsd ; then
5713 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5714 extra_ldflags="$extra_ldflags -lossaudio"
5715 else
5716 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5718 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5720 else
5721 def_ossaudio='#undef CONFIG_OSS_AUDIO'
5722 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5723 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5724 _noaomodules="oss $_noaomodules"
5726 echores "$_ossaudio"
5729 echocheck "aRts"
5730 if test "$_arts" = auto ; then
5731 _arts=no
5732 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5734 cat > $TMPC << EOF
5735 #include <artsc.h>
5736 int main(void) { return 0; }
5738 cc_check $(artsc-config --libs) $(artsc-config --cflags) && _arts=yes
5743 if test "$_arts" = yes ; then
5744 def_arts='#define CONFIG_ARTS 1'
5745 _aomodules="arts $_aomodules"
5746 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
5747 extra_cflags="$extra_cflags $(artsc-config --cflags)"
5748 else
5749 _noaomodules="arts $_noaomodules"
5751 echores "$_arts"
5754 echocheck "EsounD"
5755 if test "$_esd" = auto ; then
5756 _esd=no
5757 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5759 cat > $TMPC << EOF
5760 #include <esd.h>
5761 int main(void) { int fd = esd_open_sound("test"); return fd; }
5763 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd=yes
5767 echores "$_esd"
5769 if test "$_esd" = yes ; then
5770 def_esd='#define CONFIG_ESD 1'
5771 _aomodules="esd $_aomodules"
5772 libs_mplayer="$libs_mplayer $(esd-config --libs)"
5773 extra_cflags="$extra_cflags $(esd-config --cflags)"
5775 echocheck "esd_get_latency()"
5776 cat > $TMPC << EOF
5777 #include <esd.h>
5778 int main(void) { return esd_get_latency(0); }
5780 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
5781 echores "$_esd_latency"
5782 else
5783 def_esd='#undef CONFIG_ESD'
5784 def_esd_latency='#undef CONFIG_ESD_LATENCY'
5785 _noaomodules="esd $_noaomodules"
5789 echocheck "NAS"
5790 if test "$_nas" = auto ; then
5791 cat > $TMPC << EOF
5792 #include <audio/audiolib.h>
5793 int main(void) { return 0; }
5795 _nas=no
5796 cc_check $_ld_lm -laudio -lXt && _nas=yes
5798 if test "$_nas" = yes ; then
5799 def_nas='#define CONFIG_NAS 1'
5800 libs_mplayer="$libs_mplayer -laudio -lXt"
5801 _aomodules="nas $_aomodules"
5802 else
5803 _noaomodules="nas $_noaomodules"
5804 def_nas='#undef CONFIG_NAS'
5806 echores "$_nas"
5809 echocheck "pulse"
5810 if test "$_pulse" = auto ; then
5811 _pulse=no
5812 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5814 cat > $TMPC << EOF
5815 #include <pulse/pulseaudio.h>
5816 int main(void) { return 0; }
5818 cc_check $($_pkg_config --libs --cflags libpulse) && _pulse=yes
5822 echores "$_pulse"
5824 if test "$_pulse" = yes ; then
5825 def_pulse='#define CONFIG_PULSE 1'
5826 _aomodules="pulse $_aomodules"
5827 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
5828 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
5829 else
5830 def_pulse='#undef CONFIG_PULSE'
5831 _noaomodules="pulse $_noaomodules"
5835 echocheck "JACK"
5836 if test "$_jack" = auto ; then
5837 _jack=yes
5839 cat > $TMPC << EOF
5840 #include <jack/jack.h>
5841 int main(void) { jack_client_open("test", JackUseExactName, NULL); return 0; }
5843 if cc_check -ljack ; then
5844 libs_mplayer="$libs_mplayer -ljack"
5845 elif cc_check $($_pkg_config --libs --cflags --silence-errors jack) ; then
5846 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
5847 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
5848 else
5849 _jack=no
5853 if test "$_jack" = yes ; then
5854 def_jack='#define CONFIG_JACK 1'
5855 _aomodules="jack $_aomodules"
5856 else
5857 _noaomodules="jack $_noaomodules"
5859 echores "$_jack"
5861 echocheck "OpenAL"
5862 if test "$_openal" = auto ; then
5863 _openal=no
5864 cat > $TMPC << EOF
5865 #ifdef OPENAL_AL_H
5866 #include <OpenAL/al.h>
5867 #else
5868 #include <AL/al.h>
5869 #endif
5870 int main(void) {
5871 alSourceQueueBuffers(0, 0, 0);
5872 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5873 return 0;
5876 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5877 cc_check $I && _openal=yes && break
5878 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5879 done
5880 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
5882 if test "$_openal" = yes ; then
5883 def_openal='#define CONFIG_OPENAL 1'
5884 _aomodules="openal $_aomodules"
5885 else
5886 _noaomodules="openal $_noaomodules"
5888 echores "$_openal"
5890 echocheck "ALSA audio"
5891 if test "$_alloca" != yes ; then
5892 _alsa=no
5893 _res_comment="alloca missing"
5895 if test "$_alsa" != no ; then
5896 _alsa=no
5897 cat > $TMPC << EOF
5898 #include <sys/time.h>
5899 #include <sys/asoundlib.h>
5900 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5901 #error "alsa version != 0.5.x"
5902 #endif
5903 int main(void) { return 0; }
5905 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5907 cat > $TMPC << EOF
5908 #include <sys/time.h>
5909 #include <sys/asoundlib.h>
5910 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5911 #error "alsa version != 0.9.x"
5912 #endif
5913 int main(void) { return 0; }
5915 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5916 cat > $TMPC << EOF
5917 #include <sys/time.h>
5918 #include <alsa/asoundlib.h>
5919 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5920 #error "alsa version != 0.9.x"
5921 #endif
5922 int main(void) { return 0; }
5924 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5926 cat > $TMPC << EOF
5927 #include <sys/time.h>
5928 #include <sys/asoundlib.h>
5929 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5930 #error "alsa version != 1.0.x"
5931 #endif
5932 int main(void) { return 0; }
5934 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5935 cat > $TMPC << EOF
5936 #include <sys/time.h>
5937 #include <alsa/asoundlib.h>
5938 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5939 #error "alsa version != 1.0.x"
5940 #endif
5941 int main(void) { return 0; }
5943 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5945 def_alsa='#undef CONFIG_ALSA'
5946 def_alsa5='#undef CONFIG_ALSA5'
5947 def_alsa9='#undef CONFIG_ALSA9'
5948 def_alsa1x='#undef CONFIG_ALSA1X'
5949 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5950 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5951 if test "$_alsaver" ; then
5952 _alsa=yes
5953 if test "$_alsaver" = '0.5.x' ; then
5954 _alsa5=yes
5955 _aomodules="alsa5 $_aomodules"
5956 def_alsa5='#define CONFIG_ALSA5 1'
5957 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5958 _res_comment="using alsa 0.5.x and sys/asoundlib.h"
5959 elif test "$_alsaver" = '0.9.x-sys' ; then
5960 _alsa9=yes
5961 _aomodules="alsa $_aomodules"
5962 def_alsa='#define CONFIG_ALSA 1'
5963 def_alsa9='#define CONFIG_ALSA9 1'
5964 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5965 _res_comment="using alsa 0.9.x and sys/asoundlib.h"
5966 elif test "$_alsaver" = '0.9.x-alsa' ; then
5967 _alsa9=yes
5968 _aomodules="alsa $_aomodules"
5969 def_alsa='#define CONFIG_ALSA 1'
5970 def_alsa9='#define CONFIG_ALSA9 1'
5971 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5972 _res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5973 elif test "$_alsaver" = '1.0.x-sys' ; then
5974 _alsa1x=yes
5975 _aomodules="alsa $_aomodules"
5976 def_alsa='#define CONFIG_ALSA 1'
5977 def_alsa1x="#define CONFIG_ALSA1X 1"
5978 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5979 _res_comment="using alsa 1.0.x and sys/asoundlib.h"
5980 elif test "$_alsaver" = '1.0.x-alsa' ; then
5981 _alsa1x=yes
5982 _aomodules="alsa $_aomodules"
5983 def_alsa='#define CONFIG_ALSA 1'
5984 def_alsa1x="#define CONFIG_ALSA1X 1"
5985 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5986 _res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5987 else
5988 _alsa=no
5989 _res_comment="unknown version"
5991 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5992 else
5993 _noaomodules="alsa $_noaomodules"
5995 echores "$_alsa"
5998 echocheck "Sun audio"
5999 if test "$_sunaudio" = auto ; then
6000 cat > $TMPC << EOF
6001 #include <sys/types.h>
6002 #include <sys/audioio.h>
6003 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
6005 _sunaudio=no
6006 cc_check && _sunaudio=yes
6008 if test "$_sunaudio" = yes ; then
6009 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
6010 _aomodules="sun $_aomodules"
6011 else
6012 def_sunaudio='#undef CONFIG_SUN_AUDIO'
6013 _noaomodules="sun $_noaomodules"
6015 echores "$_sunaudio"
6018 def_mlib='#define CONFIG_MLIB 0'
6019 if sunos; then
6020 echocheck "Sun mediaLib"
6021 if test "$_mlib" = auto ; then
6022 _mlib=no
6023 cat > $TMPC << EOF
6024 #include <mlib.h>
6025 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
6027 cc_check -lmlib && _mlib=yes && def_mlib='#define CONFIG_MLIB 1'
6029 echores "$_mlib"
6030 fi #if sunos
6033 if darwin; then
6034 echocheck "CoreAudio"
6035 if test "$_coreaudio" = auto ; then
6036 cat > $TMPC <<EOF
6037 #include <CoreAudio/CoreAudio.h>
6038 #include <AudioToolbox/AudioToolbox.h>
6039 #include <AudioUnit/AudioUnit.h>
6040 int main(void) { return 0; }
6042 _coreaudio=no
6043 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
6045 if test "$_coreaudio" = yes ; then
6046 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
6047 def_coreaudio='#define CONFIG_COREAUDIO 1'
6048 _aomodules="coreaudio $_aomodules"
6049 else
6050 def_coreaudio='#undef CONFIG_COREAUDIO'
6051 _noaomodules="coreaudio $_noaomodules"
6053 echores $_coreaudio
6054 fi #if darwin
6057 if irix; then
6058 echocheck "SGI audio"
6059 if test "$_sgiaudio" = auto ; then
6060 # check for SGI audio
6061 cat > $TMPC << EOF
6062 #include <dmedia/audio.h>
6063 int main(void) { return 0; }
6065 _sgiaudio=no
6066 cc_check && _sgiaudio=yes
6068 if test "$_sgiaudio" = "yes" ; then
6069 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
6070 libs_mplayer="$libs_mplayer -laudio"
6071 _aomodules="sgi $_aomodules"
6072 else
6073 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
6074 _noaomodules="sgi $_noaomodules"
6076 echores "$_sgiaudio"
6077 fi #if irix
6080 if os2 ; then
6081 echocheck "KAI (UNIAUD/DART)"
6082 if test "$_kai" = auto; then
6083 cat > $TMPC << EOF
6084 #include <os2.h>
6085 #include <kai.h>
6086 int main(void) { return 0; }
6088 _kai=no;
6089 cc_check -lkai && _kai=yes
6091 if test "$_kai" = yes ; then
6092 def_kai='#define CONFIG_KAI 1'
6093 libs_mplayer="$libs_mplayer -lkai"
6094 _aomodules="kai $_aomodules"
6095 else
6096 def_kai='#undef CONFIG_KAI'
6097 _noaomodules="kai $_noaomodules"
6099 echores "$_kai"
6101 echocheck "DART"
6102 if test "$_dart" = auto; then
6103 cat > $TMPC << EOF
6104 #include <os2.h>
6105 #include <dart.h>
6106 int main( void ) { return 0; }
6108 _dart=no;
6109 cc_check -ldart && _dart=yes
6111 if test "$_dart" = yes ; then
6112 def_dart='#define CONFIG_DART 1'
6113 libs_mplayer="$libs_mplayer -ldart"
6114 _aomodules="dart $_aomodules"
6115 else
6116 def_dart='#undef CONFIG_DART'
6117 _noaomodules="dart $_noaomodules"
6119 echores "$_dart"
6120 fi #if os2
6123 # set default CD/DVD devices
6124 if win32 || os2 ; then
6125 default_cdrom_device="D:"
6126 elif darwin ; then
6127 default_cdrom_device="/dev/disk1"
6128 elif dragonfly ; then
6129 default_cdrom_device="/dev/cd0"
6130 elif freebsd ; then
6131 default_cdrom_device="/dev/acd0"
6132 elif openbsd ; then
6133 default_cdrom_device="/dev/rcd0a"
6134 elif sunos ; then
6135 default_cdrom_device="/vol/dev/aliases/cdrom0"
6136 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
6137 # file system and the volfs service.
6138 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
6139 elif amigaos ; then
6140 default_cdrom_device="a1ide.device:2"
6141 else
6142 default_cdrom_device="/dev/cdrom"
6145 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
6146 default_dvd_device=$default_cdrom_device
6147 elif darwin ; then
6148 default_dvd_device="/dev/rdiskN"
6149 else
6150 default_dvd_device="/dev/dvd"
6154 echocheck "VCD support"
6155 if test "$_vcd" = auto; then
6156 _vcd=no
6157 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos; then
6158 _vcd=yes
6159 elif mingw32; then
6160 cat > $TMPC << EOF
6161 #include <ddk/ntddcdrm.h>
6162 int main(void) { return 0; }
6164 cc_check && _vcd=yes
6167 if test "$_vcd" = yes; then
6168 _inputmodules="vcd $_inputmodules"
6169 def_vcd='#define CONFIG_VCD 1'
6170 else
6171 def_vcd='#undef CONFIG_VCD'
6172 _noinputmodules="vcd $_noinputmodules"
6173 _res_comment="not supported on this OS"
6175 echores "$_vcd"
6179 echocheck "dvdread"
6180 if test "$_dvdread_internal" = auto ; then
6181 _dvdread_internal=no
6182 _dvdread=no
6183 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
6184 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
6185 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
6186 || darwin || win32 || os2; then
6187 _dvdread_internal=yes
6188 _dvdread=yes
6189 extra_cflags="-Ilibdvdread4 $extra_cflags"
6191 elif test "$_dvdread" = auto ; then
6192 _dvdread=no
6193 if test "$_dl" = yes; then
6194 cat > $TMPC << EOF
6195 #include <inttypes.h>
6196 #include <dvdread/dvd_reader.h>
6197 #include <dvdread/ifo_types.h>
6198 #include <dvdread/ifo_read.h>
6199 #include <dvdread/nav_read.h>
6200 int main(void) { return 0; }
6202 _dvdreadcflags=$($_dvdreadconfig --cflags)
6203 _dvdreadlibs=$($_dvdreadconfig --libs)
6204 if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
6205 $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
6206 _dvdread=yes
6207 extra_cflags="$extra_cflags $_dvdreadcflags"
6208 extra_ldflags="$extra_ldflags $_dvdreadlibs"
6209 _res_comment="external"
6214 if test "$_dvdread_internal" = yes; then
6215 def_dvdread='#define CONFIG_DVDREAD 1'
6216 _inputmodules="dvdread(internal) $_inputmodules"
6217 _largefiles=yes
6218 _res_comment="internal"
6219 elif test "$_dvdread" = yes; then
6220 def_dvdread='#define CONFIG_DVDREAD 1'
6221 _largefiles=yes
6222 extra_ldflags="$extra_ldflags -ldvdread"
6223 _inputmodules="dvdread(external) $_inputmodules"
6224 _res_comment="external"
6225 else
6226 def_dvdread='#undef CONFIG_DVDREAD'
6227 _noinputmodules="dvdread $_noinputmodules"
6229 echores "$_dvdread"
6232 echocheck "internal libdvdcss"
6233 if test "$_libdvdcss_internal" = auto ; then
6234 _libdvdcss_internal=no
6235 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
6236 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
6238 if test "$_libdvdcss_internal" = yes ; then
6239 if linux || netbsd || openbsd || bsdos ; then
6240 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
6241 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
6242 elif freebsd || dragonfly ; then
6243 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
6244 elif darwin ; then
6245 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
6246 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
6247 elif cygwin ; then
6248 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
6249 elif beos ; then
6250 cflags_libdvdcss="-DSYS_BEOS"
6251 elif os2 ; then
6252 cflags_libdvdcss="-DSYS_OS2"
6254 cflags_libdvdcss_dvdread="-Ilibdvdcss"
6255 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
6256 _inputmodules="libdvdcss(internal) $_inputmodules"
6257 _largefiles=yes
6258 else
6259 _noinputmodules="libdvdcss(internal) $_noinputmodules"
6261 echores "$_libdvdcss_internal"
6264 echocheck "cdparanoia"
6265 if test "$_cdparanoia" = auto ; then
6266 cat > $TMPC <<EOF
6267 #include <cdda_interface.h>
6268 #include <cdda_paranoia.h>
6269 // This need a better test. How ?
6270 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
6272 _cdparanoia=no
6273 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
6274 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
6275 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
6276 done
6278 if test "$_cdparanoia" = yes ; then
6279 _cdda='yes'
6280 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
6281 openbsd && extra_ldflags="$extra_ldflags -lutil"
6283 echores "$_cdparanoia"
6286 echocheck "libcdio"
6287 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
6288 cat > $TMPC << EOF
6289 #include <stdio.h>
6290 #include <cdio/version.h>
6291 #include <cdio/cdda.h>
6292 #include <cdio/paranoia.h>
6293 int main(void) {
6294 void *test = cdda_verbose_set;
6295 printf("%s\n", CDIO_VERSION);
6296 return test == (void *)1;
6299 _libcdio=no
6300 for _ld_tmp in "" "-lwinmm" ; do
6301 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
6302 cc_check $_ld_tmp $_ld_lm \
6303 && _libcdio=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6304 done
6305 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
6306 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
6307 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
6308 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
6309 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6312 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
6313 _cdda='yes'
6314 def_libcdio='#define CONFIG_LIBCDIO 1'
6315 def_havelibcdio='yes'
6316 else
6317 if test "$_cdparanoia" = yes ; then
6318 _res_comment="using cdparanoia"
6320 def_libcdio='#undef CONFIG_LIBCDIO'
6321 def_havelibcdio='no'
6323 echores "$_libcdio"
6325 if test "$_cdda" = yes ; then
6326 test $_cddb = auto && test $_network = yes && _cddb=yes
6327 def_cdparanoia='#define CONFIG_CDDA 1'
6328 _inputmodules="cdda $_inputmodules"
6329 else
6330 def_cdparanoia='#undef CONFIG_CDDA'
6331 _noinputmodules="cdda $_noinputmodules"
6334 if test "$_cddb" = yes ; then
6335 def_cddb='#define CONFIG_CDDB 1'
6336 _inputmodules="cddb $_inputmodules"
6337 else
6338 _cddb=no
6339 def_cddb='#undef CONFIG_CDDB'
6340 _noinputmodules="cddb $_noinputmodules"
6343 echocheck "bitmap font support"
6344 if test "$_bitmap_font" = yes ; then
6345 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
6346 else
6347 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
6349 echores "$_bitmap_font"
6352 echocheck "freetype >= 2.0.9"
6354 # freetype depends on iconv
6355 if test "$_iconv" = no ; then
6356 _freetype=no
6357 _res_comment="iconv support needed"
6360 if test "$_freetype" = auto ; then
6361 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
6362 cat > $TMPC << EOF
6363 #include <stdio.h>
6364 #include <ft2build.h>
6365 #include FT_FREETYPE_H
6366 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
6367 #error "Need FreeType 2.0.9 or newer"
6368 #endif
6369 int main(void) {
6370 FT_Library library;
6371 FT_Int major=-1,minor=-1,patch=-1;
6372 int err=FT_Init_FreeType(&library);
6373 return 0;
6376 _freetype=no
6377 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
6378 else
6379 _freetype=no
6382 if test "$_freetype" = yes ; then
6383 def_freetype='#define CONFIG_FREETYPE 1'
6384 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
6385 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
6386 else
6387 def_freetype='#undef CONFIG_FREETYPE'
6389 echores "$_freetype"
6391 if test "$_freetype" = no ; then
6392 _fontconfig=no
6393 _res_comment="FreeType support needed"
6395 echocheck "fontconfig"
6396 if test "$_fontconfig" = auto ; then
6397 cat > $TMPC << EOF
6398 #include <stdio.h>
6399 #include <stdlib.h>
6400 #include <fontconfig/fontconfig.h>
6401 #if FC_VERSION < 20402
6402 #error At least version 2.4.2 of fontconfig required
6403 #endif
6404 int main(void) {
6405 int err = FcInit();
6406 if (err == FcFalse) {
6407 printf("Couldn't initialize fontconfig lib\n");
6408 exit(err);
6410 return 0;
6413 _fontconfig=no
6414 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" "-lexpat -lfreetype -lz -liconv" ; do
6415 _ld_tmp="-lfontconfig $_ld_tmp"
6416 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6417 done
6418 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
6419 _inc_tmp=$($_pkg_config --cflags fontconfig)
6420 _ld_tmp=$($_pkg_config --libs fontconfig)
6421 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
6422 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6425 if test "$_fontconfig" = yes ; then
6426 def_fontconfig='#define CONFIG_FONTCONFIG 1'
6427 else
6428 def_fontconfig='#undef CONFIG_FONTCONFIG'
6430 echores "$_fontconfig"
6433 echocheck "SSA/ASS support"
6434 # libass depends on FreeType
6435 if test "$_freetype" = no ; then
6436 _ass=no
6437 ass_internal=no
6438 _res_comment="FreeType support needed"
6441 if test "$_ass" = auto ; then
6442 cat > $TMPC << EOF
6443 #include <ft2build.h>
6444 #include FT_FREETYPE_H
6445 #if ((FREETYPE_MAJOR < 2) || (FREETYPE_MINOR < 2) || ((FREETYPE_MINOR == 2) && (FREETYPE_PATCH < 1)))
6446 #error "Need FreeType 2.2.1 or newer"
6447 #endif
6448 int main(void) { return 0; }
6450 _ass=no
6451 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _ass=yes
6452 if test "$_ass" = no ; then
6453 ass_internal=no
6454 _res_comment="FreeType >= 2.2.1 needed"
6455 elif test "$ass_internal" = no ; then
6456 _res_comment="external"
6457 extra_ldflags="$extra_ldflags -lass"
6460 if test "$_ass" = yes ; then
6461 def_ass='#define CONFIG_ASS 1'
6462 else
6463 def_ass='#undef CONFIG_ASS'
6465 if test "$ass_internal" = yes ; then
6466 def_ass_internal='#define CONFIG_ASS_INTERNAL 1'
6467 else
6468 def_ass_internal='#undef CONFIG_ASS_INTERNAL'
6470 echores "$_ass"
6473 echocheck "fribidi with charsets"
6474 _inc_tmp=""
6475 _ld_tmp=""
6476 if test "$_fribidi" = auto ; then
6477 cat > $TMPC << EOF
6478 #include <stdio.h>
6479 #include <stdlib.h>
6480 /* workaround for fribidi 0.10.4 and below */
6481 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
6482 #include <fribidi/fribidi.h>
6483 int main(void) {
6484 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
6485 printf("Fribidi headers are not consistents with the library!\n");
6486 exit(1);
6488 return 0;
6491 _fribidi=no
6492 _inc_tmp=""
6493 _ld_tmp="-lfribidi"
6494 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6495 if $_fribidiconfig --version > /dev/null 2>&1 &&
6496 test "$_fribidi" = no ; then
6497 _inc_tmp="$($_fribidiconfig --cflags)"
6498 _ld_tmp="$($_fribidiconfig --libs)"
6499 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6502 if test "$_fribidi" = yes ; then
6503 def_fribidi='#define CONFIG_FRIBIDI 1'
6504 extra_cflags="$extra_cflags $_inc_tmp"
6505 extra_ldflags="$extra_ldflags $_ld_tmp"
6506 else
6507 def_fribidi='#undef CONFIG_FRIBIDI'
6509 echores "$_fribidi"
6512 echocheck "ENCA"
6513 if test "$_enca" = auto ; then
6514 cat > $TMPC << EOF
6515 #include <sys/types.h>
6516 #include <enca.h>
6517 int main(void) {
6518 const char **langs;
6519 size_t langcnt;
6520 langs = enca_get_languages(&langcnt);
6521 return 0;
6524 _enca=no
6525 cc_check -lenca $_ld_lm && _enca=yes
6527 if test "$_enca" = yes ; then
6528 def_enca='#define CONFIG_ENCA 1'
6529 extra_ldflags="$extra_ldflags -lenca"
6530 else
6531 def_enca='#undef CONFIG_ENCA'
6533 echores "$_enca"
6536 echocheck "zlib"
6537 cat > $TMPC << EOF
6538 #include <zlib.h>
6539 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
6541 _zlib=no
6542 cc_check -lz && _zlib=yes
6543 if test "$_zlib" = yes ; then
6544 def_zlib='#define CONFIG_ZLIB 1'
6545 extra_ldflags="$extra_ldflags -lz"
6546 else
6547 def_zlib='#define CONFIG_ZLIB 0'
6548 _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//)
6549 _libavencoders=$(echo $_libavencoders | sed -e s/FLASHSV_ENCODER// -e s/PNG_ENCODER// -e s/ZMBV_ENCODER// -e s/ZLIB_ENCODER//)
6551 echores "$_zlib"
6554 echocheck "bzlib"
6555 bzlib=no
6556 def_bzlib='#define CONFIG_BZLIB 0'
6557 cat > $TMPC << EOF
6558 #include <bzlib.h>
6559 int main(void) { BZ2_bzlibVersion(); return 0; }
6561 cc_check -lbz2 && bzlib=yes
6562 if test "$bzlib" = yes ; then
6563 def_bzlib='#define CONFIG_BZLIB 1'
6564 extra_ldflags="$extra_ldflags -lbz2"
6566 echores "$bzlib"
6569 echocheck "RTC"
6570 if test "$_rtc" = auto ; then
6571 cat > $TMPC << EOF
6572 #include <sys/ioctl.h>
6573 #ifdef __linux__
6574 #include <linux/rtc.h>
6575 #else
6576 #include <rtc.h>
6577 #define RTC_PIE_ON RTCIO_PIE_ON
6578 #endif
6579 int main(void) { return RTC_PIE_ON; }
6581 _rtc=no
6582 cc_check && _rtc=yes
6583 ppc && _rtc=no
6585 if test "$_rtc" = yes ; then
6586 def_rtc='#define HAVE_RTC 1'
6587 else
6588 def_rtc='#undef HAVE_RTC'
6590 echores "$_rtc"
6593 echocheck "liblzo2 support"
6594 if test "$_liblzo" = auto ; then
6595 _liblzo=no
6596 cat > $TMPC << EOF
6597 #include <lzo/lzo1x.h>
6598 int main(void) { lzo_init();return 0; }
6600 cc_check -llzo2 && _liblzo=yes
6602 if test "$_liblzo" = yes ; then
6603 def_liblzo='#define CONFIG_LIBLZO 1'
6604 extra_ldflags="$extra_ldflags -llzo2"
6605 _codecmodules="liblzo $_codecmodules"
6606 else
6607 def_liblzo='#undef CONFIG_LIBLZO'
6608 _nocodecmodules="liblzo $_nocodecmodules"
6610 echores "$_liblzo"
6613 echocheck "mad support"
6614 if test "$_mad" = auto ; then
6615 _mad=no
6616 cat > $TMPC << EOF
6617 #include <mad.h>
6618 int main(void) { return 0; }
6620 cc_check -lmad && _mad=yes
6622 if test "$_mad" = yes ; then
6623 def_mad='#define CONFIG_LIBMAD 1'
6624 extra_ldflags="$extra_ldflags -lmad"
6625 _codecmodules="libmad $_codecmodules"
6626 else
6627 def_mad='#undef CONFIG_LIBMAD'
6628 _nocodecmodules="libmad $_nocodecmodules"
6630 echores "$_mad"
6632 echocheck "Twolame"
6633 if test "$_twolame" = auto ; then
6634 cat > $TMPC <<EOF
6635 #include <twolame.h>
6636 int main(void) { twolame_init(); return 0; }
6638 _twolame=no
6639 cc_check -ltwolame $_ld_lm && _twolame=yes
6641 if test "$_twolame" = yes ; then
6642 def_twolame='#define CONFIG_TWOLAME 1'
6643 libs_mencoder="$libs_mencoder -ltwolame"
6644 _codecmodules="twolame $_codecmodules"
6645 else
6646 def_twolame='#undef CONFIG_TWOLAME'
6647 _nocodecmodules="twolame $_nocodecmodules"
6649 echores "$_twolame"
6651 echocheck "Toolame"
6652 if test "$_toolame" = auto ; then
6653 _toolame=no
6654 if test "$_twolame" = yes ; then
6655 _res_comment="disabled by twolame"
6656 else
6657 cat > $TMPC <<EOF
6658 #include <toolame.h>
6659 int main(void) { toolame_init(); return 0; }
6661 cc_check -ltoolame $_ld_lm && _toolame=yes
6664 if test "$_toolame" = yes ; then
6665 def_toolame='#define CONFIG_TOOLAME 1'
6666 libs_mencoder="$libs_mencoder -ltoolame"
6667 _codecmodules="toolame $_codecmodules"
6668 else
6669 def_toolame='#undef CONFIG_TOOLAME'
6670 _nocodecmodules="toolame $_nocodecmodules"
6672 if test "$_toolamedir" ; then
6673 _res_comment="using $_toolamedir"
6675 echores "$_toolame"
6677 echocheck "OggVorbis support"
6678 if test "$_tremor_internal" = yes; then
6679 _libvorbis=no
6680 elif test "$_tremor" = auto; then
6681 _tremor=no
6682 cat > $TMPC << EOF
6683 #include <tremor/ivorbiscodec.h>
6684 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6686 cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6688 if test "$_libvorbis" = auto; then
6689 _libvorbis=no
6690 cat > $TMPC << EOF
6691 #include <vorbis/codec.h>
6692 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6694 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
6696 if test "$_tremor_internal" = yes ; then
6697 _vorbis=yes
6698 def_vorbis='#define CONFIG_OGGVORBIS 1'
6699 def_tremor='#define CONFIG_TREMOR 1'
6700 _codecmodules="tremor(internal) $_codecmodules"
6701 _res_comment="internal Tremor"
6702 if test "$_tremor_low" = yes ; then
6703 cflags_tremor_low="-D_LOW_ACCURACY_"
6704 _res_comment="internal low accuracy Tremor"
6706 elif test "$_tremor" = yes ; then
6707 _vorbis=yes
6708 def_vorbis='#define CONFIG_OGGVORBIS 1'
6709 def_tremor='#define CONFIG_TREMOR 1'
6710 _codecmodules="tremor(external) $_codecmodules"
6711 _res_comment="external Tremor"
6712 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6713 elif test "$_libvorbis" = yes ; then
6714 _vorbis=yes
6715 def_vorbis='#define CONFIG_OGGVORBIS 1'
6716 _codecmodules="libvorbis $_codecmodules"
6717 _res_comment="libvorbis"
6718 extra_ldflags="$extra_ldflags -lvorbis -logg"
6719 else
6720 _vorbis=no
6721 _nocodecmodules="libvorbis $_nocodecmodules"
6723 echores "$_vorbis"
6725 echocheck "libspeex (version >= 1.1 required)"
6726 if test "$_speex" = auto ; then
6727 _speex=no
6728 cat > $TMPC << EOF
6729 #include <speex/speex.h>
6730 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
6732 cc_check -lspeex $_ld_lm && _speex=yes
6734 if test "$_speex" = yes ; then
6735 def_speex='#define CONFIG_SPEEX 1'
6736 extra_ldflags="$extra_ldflags -lspeex"
6737 _codecmodules="speex $_codecmodules"
6738 else
6739 def_speex='#undef CONFIG_SPEEX'
6740 _nocodecmodules="speex $_nocodecmodules"
6742 echores "$_speex"
6744 echocheck "OggTheora support"
6745 if test "$_theora" = auto ; then
6746 _theora=no
6747 cat > $TMPC << EOF
6748 #include <theora/theora.h>
6749 #include <string.h>
6750 int main(void) {
6751 /* Theora is in flux, make sure that all interface routines and datatypes
6752 * exist and work the way we expect it, so we don't break MPlayer. */
6753 ogg_packet op;
6754 theora_comment tc;
6755 theora_info inf;
6756 theora_state st;
6757 yuv_buffer yuv;
6758 int r;
6759 double t;
6761 theora_info_init(&inf);
6762 theora_comment_init(&tc);
6764 return 0;
6766 /* we don't want to execute this kind of nonsense; just for making sure
6767 * that compilation works... */
6768 memset(&op, 0, sizeof(op));
6769 r = theora_decode_header(&inf, &tc, &op);
6770 r = theora_decode_init(&st, &inf);
6771 t = theora_granule_time(&st, op.granulepos);
6772 r = theora_decode_packetin(&st, &op);
6773 r = theora_decode_YUVout(&st, &yuv);
6774 theora_clear(&st);
6776 return 0;
6779 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6780 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6781 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6782 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6783 if test _theora = no; then
6784 _ld_theora="-ltheora -logg"
6785 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6787 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6788 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6789 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6790 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6791 extra_ldflags="$extra_ldflags $_ld_theora" &&
6792 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6793 if test _theora = no; then
6794 _ld_theora="-ltheora -logg"
6795 cc_check tremor/bitwise.c $_ld_theora &&
6796 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6800 if test "$_theora" = yes ; then
6801 def_theora='#define CONFIG_OGGTHEORA 1'
6802 _codecmodules="libtheora $_codecmodules"
6803 # when --enable-theora is forced, we'd better provide a probably sane
6804 # $_ld_theora than nothing
6805 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6806 else
6807 def_theora='#undef CONFIG_OGGTHEORA'
6808 _nocodecmodules="libtheora $_nocodecmodules"
6810 echores "$_theora"
6812 echocheck "internal mp3lib support"
6813 if test "$_mp3lib" = auto ; then
6814 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _mp3lib=no || _mp3lib=yes
6816 if test "$_mp3lib" = yes ; then
6817 def_mp3lib='#define CONFIG_MP3LIB 1'
6818 _codecmodules="mp3lib(internal) $_codecmodules"
6819 else
6820 def_mp3lib='#undef CONFIG_MP3LIB'
6821 _nocodecmodules="mp3lib(internal) $_nocodecmodules"
6823 echores "$_mp3lib"
6825 echocheck "liba52 support"
6826 if test "$_liba52_internal" = auto ; then
6827 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
6829 def_liba52='#undef CONFIG_LIBA52'
6830 def_liba52_internal="#undef CONFIG_LIBA52_INTERNAL"
6831 if test "$_liba52_internal" = yes ; then
6832 _liba52=yes
6833 def_liba52_internal="#define CONFIG_LIBA52_INTERNAL 1"
6834 _res_comment="internal"
6835 elif test "$_liba52_internal" = no && test "$_liba52" = auto ; then
6836 _liba52=no
6837 cat > $TMPC << EOF
6838 #include <inttypes.h>
6839 #include <a52dec/a52.h>
6840 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6842 cc_check -la52 && _liba52=yes && _res_comment="external" && extra_ldflags="$extra_ldflags -la52"
6844 if test "$_liba52" = yes ; then
6845 def_liba52='#define CONFIG_LIBA52 1'
6846 _codecmodules="liba52($_res_comment) $_codecmodules"
6847 else
6848 _nocodecmodules="liba52 $_nocodecmodules"
6850 echores "$_liba52"
6852 echocheck "internal libmpeg2 support"
6853 if test "$_libmpeg2" = auto ; then
6854 _libmpeg2=yes
6855 if alpha && test cc_vendor=gnu; then
6856 case $cc_version in
6857 2*|3.0*|3.1*) # cannot compile MVI instructions
6858 _libmpeg2=no
6859 _res_comment="broken gcc"
6861 esac
6864 if test "$_libmpeg2" = yes ; then
6865 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6866 _codecmodules="libmpeg2(internal) $_codecmodules"
6867 else
6868 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6869 _nocodecmodules="libmpeg2(internal) $_nocodecmodules"
6871 echores "$_libmpeg2"
6873 echocheck "libdca support"
6874 if test "$_libdca" = auto ; then
6875 _libdca=no
6876 cat > $TMPC << EOF
6877 #include <inttypes.h>
6878 #include <dts.h>
6879 int main(void) { dts_init(0); return 0; }
6881 for _ld_dca in -ldca -ldts ; do
6882 cc_check $_ld_dca $_ld_lm && extra_ldflags="$extra_ldflags $_ld_dca" \
6883 && _libdca=yes && break
6884 done
6886 if test "$_libdca" = yes ; then
6887 def_libdca='#define CONFIG_LIBDCA 1'
6888 _codecmodules="libdca $_codecmodules"
6889 else
6890 def_libdca='#undef CONFIG_LIBDCA'
6891 _nocodecmodules="libdca $_nocodecmodules"
6893 echores "$_libdca"
6895 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6896 if test "$_musepack" = auto ; then
6897 _musepack=no
6898 cat > $TMPC << EOF
6899 #include <stddef.h>
6900 #include <mpcdec/mpcdec.h>
6901 int main(void) {
6902 mpc_streaminfo info;
6903 mpc_decoder decoder;
6904 mpc_decoder_set_streaminfo(&decoder, &info);
6905 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6906 return 0;
6909 cc_check -lmpcdec $_ld_lm && _musepack=yes
6911 if test "$_musepack" = yes ; then
6912 def_musepack='#define CONFIG_MUSEPACK 1'
6913 extra_ldflags="$extra_ldflags -lmpcdec"
6914 _codecmodules="musepack $_codecmodules"
6915 else
6916 def_musepack='#undef CONFIG_MUSEPACK'
6917 _nocodecmodules="musepack $_nocodecmodules"
6919 echores "$_musepack"
6922 echocheck "FAAC support"
6923 if test "$_faac" = auto ; then
6924 cat > $TMPC <<EOF
6925 #include <inttypes.h>
6926 #include <faac.h>
6927 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6929 _faac=no
6930 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6931 cc_check -O4 $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6932 done
6934 if test "$_faac" = yes ; then
6935 def_faac="#define CONFIG_FAAC 1"
6936 test "$_faac_lavc" = auto && _faac_lavc=yes
6937 if test "$_faac_lavc" = yes ; then
6938 def_faac_lavc="#define CONFIG_LIBFAAC 1"
6939 libs_mplayer="$libs_mplayer $_ld_faac"
6940 _libavencoders="$_libavencoders LIBFAAC_ENCODER"
6942 _codecmodules="faac $_codecmodules"
6943 else
6944 _faac_lavc=no
6945 def_faac="#undef CONFIG_FAAC"
6946 def_faac_lavc="#define CONFIG_LIBFAAC 0"
6947 _nocodecmodules="faac $_nocodecmodules"
6949 _res_comment="in libavcodec: $_faac_lavc"
6950 echores "$_faac"
6953 echocheck "FAAD2 support"
6954 if test "$_faad_internal" = auto ; then
6955 if x86_32 && test cc_vendor=gnu; then
6956 case $cc_version in
6957 3.1*|3.2) # ICE/insn with these versions
6958 _faad_internal=no
6959 _res_comment="broken gcc"
6962 _faad=yes
6963 _faad_internal=yes
6965 esac
6966 else
6967 _faad=yes
6968 _faad_internal=yes
6971 if test "$_faad" = auto ; then
6972 cat > $TMPC << EOF
6973 #include <faad.h>
6974 #ifndef FAAD_MIN_STREAMSIZE
6975 #error Too old version
6976 #endif
6977 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6978 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6980 cc_check -lfaad $_ld_lm && _faad=yes
6983 def_faad='#undef CONFIG_FAAD'
6984 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6985 if test "$_faad_internal" = yes ; then
6986 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6987 _res_comment="internal floating-point"
6988 if test "$_faad_fixed" = yes ; then
6989 # The FIXED_POINT implementation of FAAD2 improves performance
6990 # on some platforms, especially for SBR files.
6991 cflags_faad_fixed="-DFIXED_POINT"
6992 _res_comment="internal fixed-point"
6994 elif test "$_faad" = yes ; then
6995 extra_ldflags="$extra_ldflags -lfaad"
6998 if test "$_faad" = yes ; then
6999 def_faad='#define CONFIG_FAAD 1'
7000 if test "$_faad_internal" = yes ; then
7001 _codecmodules="faad2(internal) $_codecmodules"
7002 else
7003 _codecmodules="faad2 $_codecmodules"
7005 else
7006 _faad=no
7007 _nocodecmodules="faad2 $_nocodecmodules"
7009 echores "$_faad"
7012 echocheck "LADSPA plugin support"
7013 if test "$_ladspa" = auto ; then
7014 cat > $TMPC <<EOF
7015 #include <stdio.h>
7016 #include <ladspa.h>
7017 int main(void) {
7018 const LADSPA_Descriptor *ld = NULL;
7019 return 0;
7022 _ladspa=no
7023 cc_check && _ladspa=yes
7025 if test "$_ladspa" = yes; then
7026 def_ladspa="#define CONFIG_LADSPA 1"
7027 else
7028 def_ladspa="#undef CONFIG_LADSPA"
7030 echores "$_ladspa"
7033 echocheck "libbs2b audio filter support"
7034 if test "$_libbs2b" = auto ; then
7035 cat > $TMPC <<EOF
7036 #include <bs2b.h>
7037 #if BS2B_VERSION_MAJOR < 3
7038 #error Please use libbs2b >= 3.0.0, older versions are not supported.
7039 #endif
7040 int main(void) {
7041 t_bs2bdp filter;
7042 filter=bs2b_open();
7043 bs2b_close(filter);
7044 return 0;
7047 _libbs2b=no
7048 if $_pkg_config --exists libbs2b ; then
7049 _inc_tmp=$($_pkg_config --cflags libbs2b)
7050 _ld_tmp=$($_pkg_config --libs libbs2b)
7051 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
7052 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
7053 else
7054 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
7055 -I/usr/local/include/bs2b ; do
7056 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
7057 extra_ldflags="$extra_ldflags -lbs2b"
7058 extra_cflags="$extra_cflags $_inc_tmp"
7059 _libbs2b=yes
7060 break
7062 done
7065 def_libbs2b="#undef CONFIG_LIBBS2B"
7066 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
7067 echores "$_libbs2b"
7070 if test -z "$_codecsdir" ; then
7071 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
7072 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
7073 if test -d "$dir" ; then
7074 _codecsdir="$dir"
7075 break;
7077 done
7079 # Fall back on default directory.
7080 if test -z "$_codecsdir" ; then
7081 _codecsdir="$_libdir/codecs"
7082 mingw32 && _codecsdir="codecs"
7083 os2 && _codecsdir="codecs"
7087 echocheck "Win32 codecs"
7088 if test "$_win32dll" = auto ; then
7089 _win32dll=no
7090 if x86_32 && ! qnx; then
7091 _win32dll=yes
7094 if test "$_win32dll" = yes ; then
7095 def_win32dll='#define CONFIG_WIN32DLL 1'
7096 test -z "$_win32codecsdir" && _win32codecsdir=$_codecsdir
7097 _res_comment="using $_win32codecsdir"
7098 if ! win32 ; then
7099 def_win32_loader='#define WIN32_LOADER 1'
7100 _win32_emulation=yes
7101 else
7102 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
7103 _res_comment="using native windows"
7105 _codecmodules="win32 $_codecmodules"
7106 else
7107 def_win32dll='#undef CONFIG_WIN32DLL'
7108 def_win32_loader='#undef WIN32_LOADER'
7109 _nocodecmodules="win32 $_nocodecmodules"
7111 echores "$_win32dll"
7114 echocheck "XAnim codecs"
7115 if test "$_xanim" = auto ; then
7116 _xanim=no
7117 _res_comment="dynamic loader support needed"
7118 if test "$_dl" = yes ; then
7119 _xanim=yes
7122 if test "$_xanim" = yes ; then
7123 test -z "$_xanimcodecsdir" && _xanimcodecsdir=$_codecsdir
7124 def_xanim='#define CONFIG_XANIM 1'
7125 def_xanim_path="#define XACODEC_PATH \"$_xanimcodecsdir\""
7126 _codecmodules="xanim $_codecmodules"
7127 _res_comment="using $_xanimcodecsdir"
7128 else
7129 def_xanim='#undef CONFIG_XANIM'
7130 def_xanim_path='#undef XACODEC_PATH'
7131 _nocodecmodules="xanim $_nocodecmodules"
7133 echores "$_xanim"
7136 echocheck "RealPlayer codecs"
7137 if test "$_real" = auto ; then
7138 _real=no
7139 _res_comment="dynamic loader support needed"
7140 if test "$_dl" = yes || test "$_win32dll" = yes &&
7141 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32 || os2) ; then
7142 _real=yes
7145 if test "$_real" = yes ; then
7146 test -z "$_realcodecsdir" && _realcodecsdir="$_codecsdir"
7147 def_real='#define CONFIG_REALCODECS 1'
7148 def_real_path="#define REALCODEC_PATH \"$_realcodecsdir\""
7149 _codecmodules="real $_codecmodules"
7150 _res_comment="using $_realcodecsdir"
7151 else
7152 def_real='#undef CONFIG_REALCODECS'
7153 def_real_path="#undef REALCODEC_PATH"
7154 _nocodecmodules="real $_nocodecmodules"
7156 echores "$_real"
7159 echocheck "QuickTime codecs"
7160 _qtx_emulation=no
7161 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
7162 if test "$_qtx" = auto ; then
7163 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
7165 if test "$_qtx" = yes ; then
7166 def_qtx='#define CONFIG_QTX_CODECS 1'
7167 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
7168 _codecmodules="qtx $_codecmodules"
7169 darwin || win32 || _qtx_emulation=yes
7170 else
7171 def_qtx='#undef CONFIG_QTX_CODECS'
7172 _nocodecmodules="qtx $_nocodecmodules"
7174 echores "$_qtx"
7176 echocheck "Nemesi Streaming Media libraries"
7177 if test "$_nemesi" = auto && test "$_network" = yes ; then
7178 _nemesi=no
7179 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
7180 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
7181 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
7182 _nemesi=yes
7185 if test "$_nemesi" = yes; then
7186 _native_rtsp=no
7187 def_nemesi='#define CONFIG_LIBNEMESI 1'
7188 _inputmodules="nemesi $_inputmodules"
7189 else
7190 _native_rtsp="$_network"
7191 _nemesi=no
7192 def_nemesi='#undef CONFIG_LIBNEMESI'
7193 _noinputmodules="nemesi $_noinputmodules"
7195 echores "$_nemesi"
7197 echocheck "LIVE555 Streaming Media libraries"
7198 if test "$_live" = auto && test "$_network" = yes ; then
7199 cat > $TMPCPP << EOF
7200 #include <liveMedia.hh>
7201 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
7202 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
7203 #endif
7204 int main(void) { return 0; }
7207 _live=no
7208 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
7209 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
7210 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
7211 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
7212 $_livelibdir/groupsock/libgroupsock.a \
7213 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
7214 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
7215 $extra_ldflags -lstdc++" \
7216 extra_cxxflags="-I$_livelibdir/liveMedia/include \
7217 -I$_livelibdir/UsageEnvironment/include \
7218 -I$_livelibdir/BasicUsageEnvironment/include \
7219 -I$_livelibdir/groupsock/include" && \
7220 _live=yes && break
7221 done
7222 if test "$_live" != yes ; then
7223 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
7224 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
7225 _live_dist=yes
7229 if test "$_live" = yes && test "$_network" = yes; then
7230 test $_livelibdir && _res_comment="using $_livelibdir"
7231 def_live='#define CONFIG_LIVE555 1'
7232 _inputmodules="live555 $_inputmodules"
7233 elif test "$_live_dist" = yes && test "$_network" = yes; then
7234 _res_comment="using distribution version"
7235 _live="yes"
7236 def_live='#define CONFIG_LIVE555 1'
7237 extra_ldflags="$extra_ldflags $ld_tmp"
7238 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
7239 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
7240 _inputmodules="live555 $_inputmodules"
7241 else
7242 _live=no
7243 def_live='#undef CONFIG_LIVE555'
7244 _noinputmodules="live555 $_noinputmodules"
7246 echores "$_live"
7249 echocheck "FFmpeg libavutil"
7250 if test "$_libavutil_a" = auto ; then
7251 if test -d libavutil ; then
7252 _libavutil_a=yes
7253 _res_comment="static"
7254 else
7255 die "MPlayer will not compile without libavutil in the source tree."
7257 elif test "$_libavutil_so" = auto ; then
7258 _libavutil_so=no
7259 cat > $TMPC << EOF
7260 #include <libavutil/common.h>
7261 int main(void) { av_clip(1, 1, 1); return 0; }
7263 if $_pkg_config --exists libavutil ; then
7264 _inc_libavutil=$($_pkg_config --cflags libavutil)
7265 _ld_tmp=$($_pkg_config --libs libavutil)
7266 cc_check $_inc_libavutil $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7267 && _libavutil_so=yes
7268 elif cc_check -lavutil $_ld_lm ; then
7269 extra_ldflags="$extra_ldflags -lavutil"
7270 _libavutil_so=yes
7271 _res_comment="using libavutil.so, but static libavutil is recommended"
7274 _libavutil=no
7275 def_libavutil='#undef CONFIG_LIBAVUTIL'
7276 def_libavutil_a='#undef CONFIG_LIBAVUTIL_A'
7277 def_libavutil_so='#undef CONFIG_LIBAVUTIL_SO'
7278 test "$_libavutil_a" = yes || test "$_libavutil_so" = yes && _libavutil=yes
7279 test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1'
7280 test "$_libavutil_a" = yes && def_libavutil_a='#define CONFIG_LIBAVUTIL_A 1'
7281 test "$_libavutil_so" = yes && def_libavutil_so='#define CONFIG_LIBAVUTIL_SO 1'
7282 # neither static nor shared libavutil is available, but it is mandatory ...
7283 if test "$_libavutil" = no ; then
7284 die "You need static or shared libavutil, MPlayer will not compile without!"
7286 echores "$_libavutil"
7288 echocheck "FFmpeg libavcodec"
7289 if test "$_libavcodec_a" = auto ; then
7290 _libavcodec_a=no
7291 if test -d libavcodec && test -f libavcodec/utils.c ; then
7292 _libavcodec_a="yes"
7293 _res_comment="static"
7295 elif test "$_libavcodec_so" = auto ; then
7296 _libavcodec_so=no
7297 _res_comment="libavcodec.so is discouraged over static libavcodec"
7298 cat > $TMPC << EOF
7299 #include <libavcodec/avcodec.h>
7300 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
7302 if $_pkg_config --exists libavcodec ; then
7303 _inc_libavcodec=$($_pkg_config --cflags libavcodec)
7304 _ld_tmp=$($_pkg_config --libs libavcodec)
7305 cc_check $_inc_libavcodec $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7306 && _libavcodec_so=yes
7307 elif cc_check -lavcodec $_ld_lm ; then
7308 extra_ldflags="$extra_ldflags -lavcodec"
7309 _libavcodec_so=yes
7310 _res_comment="using libavcodec.so, but static libavcodec is recommended"
7313 _libavcodec=no
7314 def_libavcodec='#undef CONFIG_LIBAVCODEC'
7315 def_libavcodec_a='#undef CONFIG_LIBAVCODEC_A'
7316 def_libavcodec_so='#undef CONFIG_LIBAVCODEC_SO'
7317 test "$_libavcodec_a" = yes || test "$_libavcodec_so" = yes && _libavcodec=yes
7318 test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1'
7319 test "$_libavcodec_a" = yes && def_libavcodec_a='#define CONFIG_LIBAVCODEC_A 1'
7320 test "$_libavcodec_so" = yes && def_libavcodec_so='#define CONFIG_LIBAVCODEC_SO 1'
7321 test "$_libavcodec_mpegaudio_hp" = yes \
7322 && def_libavcodec_mpegaudio_hp='#define CONFIG_MPEGAUDIO_HP 1' \
7323 && mak_libavcodec_mpegaudio_hp='CONFIG_MPEGAUDIO_HP = yes'
7324 if test "$_libavcodec_a" = yes ; then
7325 _codecmodules="libavcodec(internal) $_codecmodules"
7326 elif test "$_libavcodec_so" = yes ; then
7327 _codecmodules="libavcodec.so $_codecmodules"
7328 else
7329 _nocodecmodules="libavcodec $_nocodecmodules"
7331 echores "$_libavcodec"
7333 echocheck "FFmpeg libavformat"
7334 if test "$_libavformat_a" = auto ; then
7335 _libavformat_a=no
7336 if test -d libavformat && test -f libavformat/utils.c ; then
7337 _libavformat_a=yes
7338 _res_comment="static"
7340 elif test "$_libavformat_so" = auto ; then
7341 _libavformat_so=no
7342 cat > $TMPC <<EOF
7343 #include <libavformat/avformat.h>
7344 #include <libavcodec/opt.h>
7345 int main(void) { av_alloc_format_context(); return 0; }
7347 if $_pkg_config --exists libavformat ; then
7348 _inc_libavformat=$($_pkg_config --cflags libavformat)
7349 _ld_tmp=$($_pkg_config --libs libavformat)
7350 cc_check $_inc_libavformat $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7351 && _libavformat_so=yes
7352 elif cc_check $_ld_lm -lavformat ; then
7353 extra_ldflags="$extra_ldflags -lavformat"
7354 _libavformat_so=yes
7355 _res_comment="using libavformat.so, but static libavformat is recommended"
7358 _libavformat=no
7359 def_libavformat='#undef CONFIG_LIBAVFORMAT'
7360 def_libavformat_a='#undef CONFIG_LIBAVFORMAT_A'
7361 def_libavformat_so='#undef CONFIG_LIBAVFORMAT_SO'
7362 test "$_libavformat_a" = yes || test "$_libavformat_so" = yes && _libavformat=yes
7363 test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1'
7364 test "$_libavformat_a" = yes && def_libavformat_a='#define CONFIG_LIBAVFORMAT_A 1'
7365 test "$_libavformat_so" = yes \
7366 && def_libavformat_so='#define CONFIG_LIBAVFORMAT_SO 1'
7367 echores "$_libavformat"
7369 echocheck "FFmpeg libpostproc"
7370 if test "$_libpostproc_a" = auto ; then
7371 _libpostproc_a=no
7372 if test -d libpostproc && test -f libpostproc/postprocess.h ; then
7373 _libpostproc_a='yes'
7374 _res_comment="static"
7376 elif test "$_libpostproc_so" = auto ; then
7377 _libpostproc_so=no
7378 cat > $TMPC << EOF
7379 #include <inttypes.h>
7380 #include <libpostproc/postprocess.h>
7381 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
7383 if cc_check -lpostproc $_ld_lm ; then
7384 extra_ldflags="$extra_ldflags -lpostproc"
7385 _libpostproc_so=yes
7386 _res_comment="using libpostproc.so, but static libpostproc is recommended"
7389 _libpostproc=no
7390 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
7391 def_libpostproc_a='#undef CONFIG_LIBPOSTPROC_A'
7392 def_libpostproc_so='#undef CONFIG_LIBPOSTPROC_SO'
7393 test "$_libpostproc_a" = yes || test "$_libpostproc_so" = yes && _libpostproc=yes
7394 test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
7395 test "$_libpostproc_a" = yes && def_libpostproc_a='#define CONFIG_LIBPOSTPROC_A 1'
7396 test "$_libpostproc_so" = yes \
7397 && def_libpostproc_so='#define CONFIG_LIBPOSTPROC_SO 1'
7398 echores "$_libpostproc"
7400 echocheck "FFmpeg libswscale"
7401 if test "$_libswscale_a" = auto ; then
7402 _libswscale_a=no
7403 if test -d libswscale && test -f libswscale/swscale.h ; then
7404 _libswscale_a='yes'
7405 _res_comment="static"
7407 elif test "$_libswscale_so" = auto ; then
7408 _libswscale_so=no
7409 _res_comment="using libswscale.so, but static libswscale is recommended"
7410 cat > $TMPC << EOF
7411 #include <libswscale/swscale.h>
7412 int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; }
7414 if $_pkg_config --exists libswscale ; then
7415 _inc_libswscale=$($_pkg_config --cflags libswscale)
7416 _ld_tmp=$($_pkg_config --libs libswscale)
7417 cc_check $_inc_libswscale $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7418 && _libswscale_so=yes
7419 elif cc_check -lswscale ; then
7420 extra_ldflags="$extra_ldflags -lswscale"
7421 _libswscale_so=yes
7424 _libswscale=no
7425 def_libswscale='#undef CONFIG_LIBSWSCALE'
7426 def_libswscale_a='#undef CONFIG_LIBSWSCALE_A'
7427 def_libswscale_so='#undef CONFIG_LIBSWSCALE_SO'
7428 test "$_libswscale_a" = yes || test "$_libswscale_so" = yes && _libswscale=yes
7429 test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1'
7430 test "$_libswscale_a" = yes && def_libswscale_a='#define CONFIG_LIBSWSCALE_A 1'
7431 test "$_libswscale_so" = yes \
7432 && def_libswscale_so='#define CONFIG_LIBSWSCALE_SO 1'
7433 echores "$_libswscale"
7435 echocheck "libopencore_amr narrowband"
7436 if test "$_libopencore_amrnb" = auto ; then
7437 _libopencore_amrnb=no
7438 cat > $TMPC << EOF
7439 #include <opencore-amrnb/interf_dec.h>
7440 int main(void) { Decoder_Interface_init(); return 0; }
7442 cc_check -lopencore-amrnb && _libopencore_amrnb=yes
7443 if test "$_libavcodec_a" != yes ; then
7444 _libopencore_amrnb=no
7445 _res_comment="libavcodec (static) is required by libopencore_amrnb, sorry"
7448 if test "$_libopencore_amrnb" = yes ; then
7449 _libopencore_amr=yes
7450 extra_ldflags="$extra_ldflags -lopencore-amrnb"
7451 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 1'
7452 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRNB_DECODER"
7453 _libavencoders="$_libavencoders LIBOPENCORE_AMRNB_ENCODER"
7454 _codecmodules="libopencore_amrnb $_codecmodules"
7455 else
7456 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 0'
7457 _nocodecmodules="libopencore_amrnb $_nocodecmodules"
7459 echores "$_libopencore_amrnb"
7462 echocheck "libopencore_amr wideband"
7463 if test "$_libopencore_amrwb" = auto ; then
7464 _libopencore_amrwb=no
7465 cat > $TMPC << EOF
7466 #include <opencore-amrwb/dec_if.h>
7467 int main(void) { D_IF_init(); return 0; }
7469 cc_check -lopencore-amrwb && _libopencore_amrwb=yes
7470 if test "$_libavcodec_a" != yes ; then
7471 _libopencore_amrwb=no
7472 _res_comment="libavcodec (static) is required by libopencore_amrwb, sorry"
7475 if test "$_libopencore_amrwb" = yes ; then
7476 _libopencore_amr=yes
7477 extra_ldflags="$extra_ldflags -lopencore-amrwb"
7478 def_libopencore_amrwb='#define CONFIG_LIBOPENCORE_AMRWB 1'
7479 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRWB_DECODER"
7480 _libavencoders="$_libavencoders LIBOPENCORE_AMRWB_DECODER"
7481 _codecmodules="libopencore_amrwb $_codecmodules"
7482 else
7483 def_libopencore_amrwb='#define LIBOPENCORE_AMRWB 0'
7484 _nocodecmodules="libopencore_amrwb $_nocodecmodules"
7486 echores "$_libopencore_amrwb"
7488 echocheck "libdv-0.9.5+"
7489 if test "$_libdv" = auto ; then
7490 _libdv=no
7491 cat > $TMPC <<EOF
7492 #include <libdv/dv.h>
7493 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
7495 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
7497 if test "$_libdv" = yes ; then
7498 def_libdv='#define CONFIG_LIBDV095 1'
7499 extra_ldflags="$extra_ldflags -ldv"
7500 _codecmodules="libdv $_codecmodules"
7501 else
7502 def_libdv='#undef CONFIG_LIBDV095'
7503 _nocodecmodules="libdv $_nocodecmodules"
7505 echores "$_libdv"
7508 echocheck "Xvid"
7509 if test "$_xvid" = auto ; then
7510 _xvid=no
7511 cat > $TMPC << EOF
7512 #include <xvid.h>
7513 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
7515 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
7516 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
7517 done
7520 if test "$_xvid" = yes ; then
7521 def_xvid='#define CONFIG_XVID4 1'
7522 _codecmodules="xvid $_codecmodules"
7523 else
7524 def_xvid='#undef CONFIG_XVID4'
7525 _nocodecmodules="xvid $_nocodecmodules"
7527 echores "$_xvid"
7529 echocheck "Xvid two pass plugin"
7530 if test "$_xvid" = yes && test "$_xvid_lavc" = auto ; then
7531 cat > $TMPC << EOF
7532 #include <xvid.h>
7533 int main(void) { xvid_plugin_2pass2_t s; s.vbv_size=0; return 0; }
7535 cc_check && _xvid_lavc=yes
7537 if test "$_xvid_lavc" = yes ; then
7538 def_xvid_lavc='#define CONFIG_LIBXVID 1'
7539 _libavencoders="$_libavencoders LIBXVID_ENCODER"
7540 else
7541 _xvid_lavc=no
7542 def_xvid_lavc='#define CONFIG_LIBXVID 0'
7544 echores "$_xvid_lavc"
7547 echocheck "x264"
7548 if test "$_x264" = auto ; then
7549 cat > $TMPC << EOF
7550 #include <inttypes.h>
7551 #include <x264.h>
7552 #if X264_BUILD < 83
7553 #error We do not support old versions of x264. Get the latest from git.
7554 #endif
7555 int main(void) { x264_encoder_open((void*)0); return 0; }
7557 _x264=no
7558 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
7559 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
7560 done
7563 if test "$_x264" = yes ; then
7564 def_x264='#define CONFIG_X264 1'
7565 _codecmodules="x264 $_codecmodules"
7566 test "$_x264_lavc" = auto && _x264_lavc=yes
7567 if test "$_x264_lavc" = yes ; then
7568 def_x264_lavc='#define CONFIG_LIBX264 1'
7569 libs_mplayer="$libs_mplayer $_ld_x264"
7570 _libavencoders="$_libavencoders LIBX264_ENCODER"
7572 else
7573 _x264_lavc=no
7574 def_x264='#undef CONFIG_X264'
7575 def_x264_lavc='#define CONFIG_LIBX264 0'
7576 _nocodecmodules="x264 $_nocodecmodules"
7578 _res_comment="in libavcodec: $_x264_lavc"
7579 echores "$_x264"
7582 echocheck "libdirac"
7583 if test "$_libdirac_lavc" = auto; then
7584 _libdirac_lavc=no
7585 if test "$_libavcodec_a" != yes; then
7586 _res_comment="libavcodec (static) is required by libdirac, sorry"
7587 else
7588 cat > $TMPC << EOF
7589 #include <libdirac_encoder/dirac_encoder.h>
7590 #include <libdirac_decoder/dirac_parser.h>
7591 int main(void)
7593 dirac_encoder_context_t enc_ctx;
7594 dirac_decoder_t *dec_handle;
7595 dirac_encoder_context_init(&enc_ctx, VIDEO_FORMAT_SD_576I50);
7596 dec_handle = dirac_decoder_init(0);
7597 if (dec_handle)
7598 dirac_decoder_close(dec_handle);
7599 return 0;
7602 if $_pkg_config --exists dirac ; then
7603 _inc_dirac=$($_pkg_config --silence-errors --cflags dirac)
7604 _ld_dirac=$($_pkg_config --silence-errors --libs dirac)
7605 cc_check $_inc_dirac $_ld_dirac &&
7606 _libdirac_lavc=yes &&
7607 extra_cflags="$extra_cflags $_inc_dirac" &&
7608 extra_ldflags="$extra_ldflags $_ld_dirac"
7612 if test "$_libdirac_lavc" = yes ; then
7613 def_libdirac_lavc='#define CONFIG_LIBDIRAC 1'
7614 _libavencoders="$_libavencoders LIBDIRAC_ENCODER"
7615 _libavdecoders="$_libavdecoders LIBDIRAC_DECODER"
7616 _codecmodules="libdirac $_codecmodules"
7617 else
7618 def_libdirac_lavc='#define CONFIG_LIBDIRAC 0'
7619 _nocodecmodules="libdirac $_nocodecmodules"
7621 echores "$_libdirac_lavc"
7624 echocheck "libschroedinger"
7625 if test "$_libschroedinger_lavc" = auto ; then
7626 _libschroedinger_lavc=no
7627 if test "$_libavcodec_a" != yes; then
7628 _res_comment="libavcodec (static) is required by libschroedinger, sorry"
7629 else
7630 cat > $TMPC << EOF
7631 #include <schroedinger/schro.h>
7632 int main(void) { schro_init(); return 0; }
7634 if $_pkg_config --exists schroedinger-1.0 ; then
7635 _inc_schroedinger=$($_pkg_config --silence-errors --cflags schroedinger-1.0)
7636 _ld_schroedinger=$($_pkg_config --silence-errors --libs schroedinger-1.0)
7637 cc_check $_inc_schroedinger $_ld_schroedinger &&
7638 _libschroedinger_lavc=yes &&
7639 extra_cflags="$extra_cflags $_inc_schroedinger" &&
7640 extra_ldflags="$extra_ldflags $_ld_schroedinger"
7644 if test "$_libschroedinger_lavc" = yes ; then
7645 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 1'
7646 _libavencoders="$_libavencoders LIBSCHROEDINGER_ENCODER"
7647 _libavdecoders="$_libavdecoders LIBSCHROEDINGER_DECODER"
7648 _codecmodules="libschroedinger $_codecmodules"
7649 else
7650 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 0'
7651 _nocodecmodules="libschroedinger $_nocodecmodules"
7653 echores "$_libschroedinger_lavc"
7655 echocheck "libnut"
7656 if test "$_libnut" = auto ; then
7657 cat > $TMPC << EOF
7658 #include <stdio.h>
7659 #include <stdlib.h>
7660 #include <inttypes.h>
7661 #include <libnut.h>
7662 nut_context_tt * nut;
7663 int main(void) { (void)nut_error(0); return 0; }
7665 _libnut=no
7666 cc_check -lnut && _libnut=yes
7669 if test "$_libnut" = yes ; then
7670 def_libnut='#define CONFIG_LIBNUT 1'
7671 extra_ldflags="$extra_ldflags -lnut"
7672 else
7673 def_libnut='#undef CONFIG_LIBNUT'
7675 echores "$_libnut"
7677 #check must be done after libavcodec one
7678 echocheck "zr"
7679 if test "$_zr" = auto ; then
7680 #36067's seem to identify themselves as 36057PQC's, so the line
7681 #below should work for 36067's and 36057's.
7682 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
7683 _zr=yes
7684 else
7685 _zr=no
7688 if test "$_zr" = yes ; then
7689 if test "$_libavcodec_a" = yes ; then
7690 def_zr='#define CONFIG_ZR 1'
7691 _vomodules="zr zr2 $_vomodules"
7692 else
7693 _res_comment="libavcodec (static) is required by zr, sorry"
7694 _novomodules="zr $_novomodules"
7695 def_zr='#undef CONFIG_ZR'
7697 else
7698 def_zr='#undef CONFIG_ZR'
7699 _novomodules="zr zr2 $_novomodules"
7701 echores "$_zr"
7703 # mencoder requires (optional) those libs: libmp3lame
7704 if test "$_mencoder" != no ; then
7706 echocheck "libmp3lame"
7707 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
7708 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
7709 if test "$_mp3lame" = auto ; then
7710 _mp3lame=no
7711 cat > $TMPC <<EOF
7712 #include <lame/lame.h>
7713 int main(void) { lame_version_t lv; (void) lame_init();
7714 get_lame_version_numerical(&lv);
7715 return 0; }
7717 cc_check -lmp3lame $_ld_lm && _mp3lame=yes
7719 if test "$_mp3lame" = yes ; then
7720 def_mp3lame="#define CONFIG_MP3LAME 1"
7721 _ld_mp3lame=-lmp3lame
7722 libs_mencoder="$libs_mencoder $_ld_mp3lame"
7723 cat > $TMPC << EOF
7724 #include <lame/lame.h>
7725 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
7727 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET 1"
7728 cat > $TMPC << EOF
7729 #include <lame/lame.h>
7730 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
7732 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM 1"
7733 test "$_mp3lame_lavc" = auto && _mp3lame_lavc=yes
7734 if test "$_mp3lame_lavc" = yes ; then
7735 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 1"
7736 _libavencoders="$_libavencoders LIBMP3LAME_ENCODER"
7737 libs_mplayer="$libs_mplayer $_ld_mp3lame"
7739 else
7740 _mp3lame_lavc=no
7741 def_mp3lame='#undef CONFIG_MP3LAME'
7742 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 0"
7744 _res_comment="in libavcodec: $_mp3lame_lavc"
7745 echores "$_mp3lame"
7747 fi # test "$_mencoder" != no
7749 echocheck "mencoder"
7750 if test "$_mencoder" = yes ; then
7751 def_muxers='#define CONFIG_MUXERS 1'
7752 else
7753 # mpeg1video for vf_lavc, snow for vf_uspp and vf_mcdeint, png for vf_screenshot
7754 _libavencoders="MPEG1VIDEO_ENCODER SNOW_ENCODER"
7755 test "$_zlib" = yes && _libavencoders="$_libavencoders PNG_ENCODER"
7756 _libavmuxers=""
7757 def_muxers='#define CONFIG_MUXERS 0'
7759 echores "$_mencoder"
7762 echocheck "UnRAR executable"
7763 if test "$_unrar_exec" = auto ; then
7764 _unrar_exec="yes"
7765 mingw32 && _unrar_exec="no"
7767 if test "$_unrar_exec" = yes ; then
7768 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
7769 else
7770 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
7772 echores "$_unrar_exec"
7774 echocheck "TV interface"
7775 if test "$_tv" = yes ; then
7776 def_tv='#define CONFIG_TV 1'
7777 _inputmodules="tv $_inputmodules"
7778 else
7779 _noinputmodules="tv $_noinputmodules"
7780 def_tv='#undef CONFIG_TV'
7782 echores "$_tv"
7785 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
7786 echocheck "*BSD BT848 bt8xx header"
7787 _ioctl_bt848_h=no
7788 for file in "machine/ioctl_bt848.h" \
7789 "dev/bktr/ioctl_bt848.h" \
7790 "dev/video/bktr/ioctl_bt848.h" \
7791 "dev/ic/bt8xx.h" ; do
7792 cat > $TMPC <<EOF
7793 #include <sys/types.h>
7794 #include <sys/ioctl.h>
7795 #include <$file>
7796 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
7798 if cc_check ; then
7799 _ioctl_bt848_h=yes
7800 _ioctl_bt848_h_name="$file"
7801 break;
7803 done
7804 if test "$_ioctl_bt848_h" = yes ; then
7805 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
7806 _res_comment="using $_ioctl_bt848_h_name"
7807 else
7808 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
7810 echores "$_ioctl_bt848_h"
7812 echocheck "*BSD ioctl_meteor.h"
7813 _ioctl_meteor_h=no
7814 for file in "machine/ioctl_meteor.h" \
7815 "dev/bktr/ioctl_meteor.h" \
7816 "dev/video/bktr/ioctl_meteor.h" ; do
7817 cat > $TMPC <<EOF
7818 #include <sys/types.h>
7819 #include <$file>
7820 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
7822 if cc_check ; then
7823 _ioctl_meteor_h=yes
7824 _ioctl_meteor_h_name="$file"
7825 break;
7827 done
7828 if test "$_ioctl_meteor_h" = yes ; then
7829 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
7830 _res_comment="using $_ioctl_meteor_h_name"
7831 else
7832 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
7834 echores "$_ioctl_meteor_h"
7836 echocheck "*BSD BrookTree 848 TV interface"
7837 if test "$_tv_bsdbt848" = auto ; then
7838 _tv_bsdbt848=no
7839 if test "$_tv" = yes ; then
7840 cat > $TMPC <<EOF
7841 #include <sys/types.h>
7842 $def_ioctl_meteor_h_name
7843 $def_ioctl_bt848_h_name
7844 #ifdef IOCTL_METEOR_H_NAME
7845 #include IOCTL_METEOR_H_NAME
7846 #endif
7847 #ifdef IOCTL_BT848_H_NAME
7848 #include IOCTL_BT848_H_NAME
7849 #endif
7850 int main(void) {
7851 ioctl(0, METEORSINPUT, 0);
7852 ioctl(0, TVTUNER_GETFREQ, 0);
7853 return 0;
7856 cc_check && _tv_bsdbt848=yes
7859 if test "$_tv_bsdbt848" = yes ; then
7860 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
7861 _inputmodules="tv-bsdbt848 $_inputmodules"
7862 else
7863 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
7864 _noinputmodules="tv-bsdbt848 $_noinputmodules"
7866 echores "$_tv_bsdbt848"
7867 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
7870 echocheck "DirectShow TV interface"
7871 if test "$_tv_dshow" = auto ; then
7872 _tv_dshow=no
7873 if test "$_tv" = yes && win32 ; then
7874 cat > $TMPC <<EOF
7875 #include <ole2.h>
7876 int main(void) {
7877 void* p;
7878 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
7879 return 0;
7882 cc_check -lole32 -luuid && _tv_dshow=yes
7885 if test "$_tv_dshow" = yes ; then
7886 _inputmodules="tv-dshow $_inputmodules"
7887 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
7888 extra_ldflags="$extra_ldflags -lole32 -luuid"
7889 else
7890 _noinputmodules="tv-dshow $_noinputmodules"
7891 def_tv_dshow='#undef CONFIG_TV_DSHOW'
7893 echores "$_tv_dshow"
7896 echocheck "Video 4 Linux TV interface"
7897 if test "$_tv_v4l1" = auto ; then
7898 _tv_v4l1=no
7899 if test "$_tv" = yes && linux ; then
7900 cat > $TMPC <<EOF
7901 #include <stdlib.h>
7902 #include <linux/videodev.h>
7903 int main(void) { return 0; }
7905 cc_check && _tv_v4l1=yes
7908 if test "$_tv_v4l1" = yes ; then
7909 _audio_input=yes
7910 _tv_v4l=yes
7911 def_tv_v4l='#define CONFIG_TV_V4L 1'
7912 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
7913 _inputmodules="tv-v4l $_inputmodules"
7914 else
7915 _noinputmodules="tv-v4l1 $_noinputmodules"
7916 def_tv_v4l='#undef CONFIG_TV_V4L'
7918 echores "$_tv_v4l1"
7921 echocheck "Video 4 Linux 2 TV interface"
7922 if test "$_tv_v4l2" = auto ; then
7923 _tv_v4l2=no
7924 if test "$_tv" = yes && linux ; then
7925 cat > $TMPC <<EOF
7926 #include <stdlib.h>
7927 #include <linux/types.h>
7928 #include <linux/videodev2.h>
7929 int main(void) { return 0; }
7931 cc_check && _tv_v4l2=yes
7934 if test "$_tv_v4l2" = yes ; then
7935 _audio_input=yes
7936 _tv_v4l=yes
7937 def_tv_v4l='#define CONFIG_TV_V4L 1'
7938 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
7939 _inputmodules="tv-v4l2 $_inputmodules"
7940 else
7941 _noinputmodules="tv-v4l2 $_noinputmodules"
7942 def_tv_v4l2='#undef CONFIG_TV_V4L2'
7944 echores "$_tv_v4l2"
7947 echocheck "Radio interface"
7948 if test "$_radio" = yes ; then
7949 def_radio='#define CONFIG_RADIO 1'
7950 _inputmodules="radio $_inputmodules"
7951 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
7952 _radio_capture=no
7954 if test "$_radio_capture" = yes ; then
7955 _audio_input=yes
7956 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
7957 else
7958 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7960 else
7961 _noinputmodules="radio $_noinputmodules"
7962 def_radio='#undef CONFIG_RADIO'
7963 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7964 _radio_capture=no
7966 echores "$_radio"
7967 echocheck "Capture for Radio interface"
7968 echores "$_radio_capture"
7970 echocheck "Video 4 Linux 2 Radio interface"
7971 if test "$_radio_v4l2" = auto ; then
7972 _radio_v4l2=no
7973 if test "$_radio" = yes && linux ; then
7974 cat > $TMPC <<EOF
7975 #include <stdlib.h>
7976 #include <linux/types.h>
7977 #include <linux/videodev2.h>
7978 int main(void) { return 0; }
7980 cc_check && _radio_v4l2=yes
7983 if test "$_radio_v4l2" = yes ; then
7984 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
7985 else
7986 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
7988 echores "$_radio_v4l2"
7990 echocheck "Video 4 Linux Radio interface"
7991 if test "$_radio_v4l" = auto ; then
7992 _radio_v4l=no
7993 if test "$_radio" = yes && linux ; then
7994 cat > $TMPC <<EOF
7995 #include <stdlib.h>
7996 #include <linux/videodev.h>
7997 int main(void) { return 0; }
7999 cc_check && _radio_v4l=yes
8002 if test "$_radio_v4l" = yes ; then
8003 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
8004 else
8005 def_radio_v4l='#undef CONFIG_RADIO_V4L'
8007 echores "$_radio_v4l"
8009 if freebsd || netbsd || openbsd || dragonfly || bsdos \
8010 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
8011 echocheck "*BSD BrookTree 848 Radio interface"
8012 _radio_bsdbt848=no
8013 cat > $TMPC <<EOF
8014 #include <sys/types.h>
8015 $def_ioctl_bt848_h_name
8016 #ifdef IOCTL_BT848_H_NAME
8017 #include IOCTL_BT848_H_NAME
8018 #endif
8019 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
8021 cc_check && _radio_bsdbt848=yes
8022 echores "$_radio_bsdbt848"
8023 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
8025 if test "$_radio_bsdbt848" = yes ; then
8026 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
8027 else
8028 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
8031 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
8032 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
8033 die "Radio driver requires BSD BT848, V4L or V4L2!"
8036 echocheck "Video 4 Linux 2 MPEG PVR interface"
8037 if test "$_pvr" = auto ; then
8038 _pvr=no
8039 if test "$_tv_v4l2" = yes && linux ; then
8040 cat > $TMPC <<EOF
8041 #include <stdlib.h>
8042 #include <inttypes.h>
8043 #include <linux/types.h>
8044 #include <linux/videodev2.h>
8045 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
8047 cc_check && _pvr=yes
8050 if test "$_pvr" = yes ; then
8051 def_pvr='#define CONFIG_PVR 1'
8052 _inputmodules="pvr $_inputmodules"
8053 else
8054 _noinputmodules="pvr $_noinputmodules"
8055 def_pvr='#undef CONFIG_PVR'
8057 echores "$_pvr"
8060 echocheck "ftp"
8061 if ! beos && test "$_ftp" = yes ; then
8062 def_ftp='#define CONFIG_FTP 1'
8063 _inputmodules="ftp $_inputmodules"
8064 else
8065 _noinputmodules="ftp $_noinputmodules"
8066 def_ftp='#undef CONFIG_FTP'
8068 echores "$_ftp"
8070 echocheck "vstream client"
8071 if test "$_vstream" = auto ; then
8072 _vstream=no
8073 cat > $TMPC <<EOF
8074 #include <vstream-client.h>
8075 void vstream_error(const char *format, ... ) {}
8076 int main(void) { vstream_start(); return 0; }
8078 cc_check -lvstream-client && _vstream=yes
8080 if test "$_vstream" = yes ; then
8081 def_vstream='#define CONFIG_VSTREAM 1'
8082 _inputmodules="vstream $_inputmodules"
8083 extra_ldflags="$extra_ldflags -lvstream-client"
8084 else
8085 _noinputmodules="vstream $_noinputmodules"
8086 def_vstream='#undef CONFIG_VSTREAM'
8088 echores "$_vstream"
8091 echocheck "OSD menu"
8092 if test "$_menu" = yes ; then
8093 def_menu='#define CONFIG_MENU 1'
8094 test $_dvbin = "yes" && _menu_dvbin=yes
8095 else
8096 def_menu='#undef CONFIG_MENU'
8097 _menu_dvbin=no
8099 echores "$_menu"
8102 echocheck "Subtitles sorting"
8103 if test "$_sortsub" = yes ; then
8104 def_sortsub='#define CONFIG_SORTSUB 1'
8105 else
8106 def_sortsub='#undef CONFIG_SORTSUB'
8108 echores "$_sortsub"
8111 echocheck "XMMS inputplugin support"
8112 if test "$_xmms" = yes ; then
8113 if ( xmms-config --version ) >/dev/null 2>&1 ; then
8114 _xmmsplugindir=$(xmms-config --input-plugin-dir)
8115 _xmmslibdir=$(xmms-config --exec-prefix)/lib
8116 else
8117 _xmmsplugindir=/usr/lib/xmms/Input
8118 _xmmslibdir=/usr/lib
8121 def_xmms='#define CONFIG_XMMS 1'
8122 if darwin ; then
8123 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
8124 else
8125 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
8127 else
8128 def_xmms='#undef CONFIG_XMMS'
8130 echores "$_xmms"
8133 # --------------- GUI specific tests begin -------------------
8134 echocheck "GUI"
8135 echo "$_gui"
8136 if test "$_gui" = yes ; then
8138 # Required libraries
8139 if test "$_libavcodec" != yes ||
8140 ! echo $_libavdecoders | grep -q PNG_DECODER ; then
8141 die "The GUI requires libavcodec with PNG support (needs zlib)."
8143 test "$_freetype" = no && test "$_bitmap_font" = no && \
8144 die "The GUI requires either FreeType or bitmap font support."
8145 if ! win32 ; then
8146 _gui_gtk=yes
8147 test "$_x11" != yes && die "X11 support required for GUI compilation."
8149 echocheck "XShape extension"
8150 if test "$_xshape" = auto ; then
8151 _xshape=no
8152 cat > $TMPC << EOF
8153 #include <X11/Xlib.h>
8154 #include <X11/Xproto.h>
8155 #include <X11/Xutil.h>
8156 #include <X11/extensions/shape.h>
8157 #include <stdlib.h>
8158 int main(void) {
8159 char *name = ":0.0";
8160 Display *wsDisplay;
8161 int exitvar = 0;
8162 int eventbase, errorbase;
8163 if (getenv("DISPLAY"))
8164 name=getenv("DISPLAY");
8165 wsDisplay=XOpenDisplay(name);
8166 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
8167 exitvar=1;
8168 XCloseDisplay(wsDisplay);
8169 return exitvar;
8172 cc_check -lXext && _xshape=yes
8174 if test "$_xshape" = yes ; then
8175 def_xshape='#define CONFIG_XSHAPE 1'
8176 else
8177 die "The GUI requires the X11 extension XShape (which was not found)."
8179 echores "$_xshape"
8181 #Check for GTK
8182 if test "$_gtk1" = no ; then
8183 #Check for GTK2 :
8184 echocheck "GTK+ version"
8186 if $_pkg_config gtk+-2.0 --exists ; then
8187 _gtk=$($_pkg_config gtk+-2.0 --modversion 2>/dev/null)
8188 extra_cflags="$extra_cflags $($_pkg_config gtk+-2.0 --cflags 2>/dev/null)"
8189 libs_mplayer="$libs_mplayer $($_pkg_config gtk+-2.0 --libs 2>/dev/null)"
8190 echores "$_gtk"
8192 # Check for GLIB2
8193 if $_pkg_config glib-2.0 --exists ; then
8194 echocheck "glib version"
8195 _glib=$($_pkg_config glib-2.0 --modversion 2>/dev/null)
8196 libs_mplayer="$libs_mplayer $($_pkg_config glib-2.0 --libs 2>/dev/null)"
8197 echores "$_glib"
8199 def_gui='#define CONFIG_GUI 1'
8200 def_gtk2='#define CONFIG_GTK2 1'
8201 else
8202 _gtk1=yes
8203 echo "GLIB-2 devel packages were not found, trying GTK 1.2"
8205 else
8206 echo "GTK-2 devel packages were not found, trying GTK 1.2"
8207 _gtk1=yes
8211 if test "$_gtk1" = yes ; then
8212 # Check for old GTK (1.2.x)
8213 echocheck "GTK version"
8214 if test -z "$_gtkconfig" ; then
8215 if ( gtk-config --version ) >/dev/null 2>&1 ; then
8216 _gtkconfig="gtk-config"
8217 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
8218 _gtkconfig="gtk12-config"
8219 else
8220 die "The GUI requires GTK devel packages (which were not found)."
8223 _gtk=$($_gtkconfig --version 2>&1)
8224 extra_cflags="$extra_cflags $($_gtkconfig --cflags 2>&1)"
8225 libs_mplayer="$libs_mplayer $($_gtkconfig --libs 2>&1)"
8226 echores "$_gtk (using $_gtkconfig)"
8228 # Check for GLIB
8229 echocheck "glib version"
8230 if test -z "$_glibconfig" ; then
8231 if ( glib-config --version ) >/dev/null 2>&1 ; then
8232 _glibconfig="glib-config"
8233 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
8234 _glibconfig="glib12-config"
8235 else
8236 die "The GUI requires GLIB devel packages (which were not found)"
8239 _glib=$($_glibconfig --version 2>&1)
8240 libs_mplayer="$libs_mplayer $($_glibconfig --libs 2>&1)"
8241 echores "$_glib (using $_glibconfig)"
8243 def_gui='#define CONFIG_GUI 1'
8244 def_gtk2='#undef CONFIG_GTK2'
8247 else #if ! win32
8248 _gui_win32=yes
8249 libs_mplayer="$libs_mplayer -lcomdlg32 -lcomctl32 -lshell32 -lkernel32"
8250 def_gui='#define CONFIG_GUI 1'
8251 def_gtk2='#undef CONFIG_GTK2'
8252 fi #if ! win32
8254 else #if test "$_gui"
8255 def_gui='#undef CONFIG_GUI'
8256 def_gtk2='#undef CONFIG_GTK2'
8257 fi #if test "$_gui"
8258 # --------------- GUI specific tests end -------------------
8261 if test "$_charset" != "noconv" ; then
8262 def_charset="#define MSG_CHARSET \"$_charset\""
8263 else
8264 def_charset="#undef MSG_CHARSET"
8265 _charset="UTF-8"
8268 if test -n "$_charset" && test "$_charset" != "UTF-8" ; then
8269 echocheck "iconv program"
8270 iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG"
8271 if test "$?" -ne 0 ; then
8272 echores "no"
8273 echo "No working iconv program found, use "
8274 echo "--charset=UTF-8 to continue anyway."
8275 echo "If you also have problems with iconv library functions use --charset=noconv."
8276 echo "Messages in the GTK-2 interface will be broken then."
8277 exit 1
8278 else
8279 echores "yes"
8283 #############################################################################
8285 echocheck "automatic gdb attach"
8286 if test "$_crash_debug" = yes ; then
8287 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
8288 else
8289 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
8290 _crash_debug=no
8292 echores "$_crash_debug"
8294 echocheck "compiler support for noexecstack"
8295 cat > $TMPC <<EOF
8296 int main(void) { return 0; }
8298 if cc_check -Wl,-z,noexecstack ; then
8299 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
8300 echores "yes"
8301 else
8302 echores "no"
8305 echocheck "linker support for --nxcompat --no-seh --dynamicbase"
8306 if cc_check "-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
8307 extra_ldflags="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
8308 echores "yes"
8309 else
8310 echores "no"
8314 # Dynamic linking flags
8315 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
8316 _ld_dl_dynamic=''
8317 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
8318 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
8319 _ld_dl_dynamic='-rdynamic'
8322 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
8323 bsdos && extra_ldflags="$extra_ldflags -ldvd"
8324 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
8326 def_debug='#undef MP_DEBUG'
8327 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
8330 echocheck "joystick"
8331 def_joystick='#undef CONFIG_JOYSTICK'
8332 if test "$_joystick" = yes ; then
8333 if linux ; then
8334 # TODO add some check
8335 def_joystick='#define CONFIG_JOYSTICK 1'
8336 else
8337 _joystick="no"
8338 _res_comment="unsupported under $system_name"
8341 echores "$_joystick"
8343 echocheck "lirc"
8344 if test "$_lirc" = auto ; then
8345 _lirc=no
8346 cat > $TMPC <<EOF
8347 #include <lirc/lirc_client.h>
8348 int main(void) { return 0; }
8350 cc_check -llirc_client && _lirc=yes
8352 if test "$_lirc" = yes ; then
8353 def_lirc='#define CONFIG_LIRC 1'
8354 libs_mplayer="$libs_mplayer -llirc_client"
8355 else
8356 def_lirc='#undef CONFIG_LIRC'
8358 echores "$_lirc"
8360 echocheck "lircc"
8361 if test "$_lircc" = auto ; then
8362 _lircc=no
8363 cat > $TMPC <<EOF
8364 #include <lirc/lircc.h>
8365 int main(void) { return 0; }
8367 cc_check -llircc && _lircc=yes
8369 if test "$_lircc" = yes ; then
8370 def_lircc='#define CONFIG_LIRCC 1'
8371 libs_mplayer="$libs_mplayer -llircc"
8372 else
8373 def_lircc='#undef CONFIG_LIRCC'
8375 echores "$_lircc"
8377 if arm; then
8378 # Detect maemo development platform libraries availability (http://www.maemo.org),
8379 # they are used when run on Nokia 770|8x0
8380 echocheck "maemo (Nokia 770|8x0)"
8381 if test "$_maemo" = auto ; then
8382 _maemo=no
8383 cat > $TMPC << EOF
8384 #include <libosso.h>
8385 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
8387 cc_check $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
8389 if test "$_maemo" = yes ; then
8390 def_maemo='#define CONFIG_MAEMO 1'
8391 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
8392 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
8393 else
8394 def_maemo='#undef CONFIG_MAEMO'
8396 echores "$_maemo"
8399 #############################################################################
8401 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
8402 # the OMF format needs to come after the 'extern symbol prefix' check, which
8403 # uses nm.
8404 if os2 ; then
8405 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
8408 # linker paths should be the same for mencoder and mplayer
8409 _ld_tmp=""
8410 for I in $libs_mplayer ; do
8411 _tmp=$(echo $I | sed -e 's/^-L.*$//')
8412 if test -z "$_tmp" ; then
8413 extra_ldflags="$extra_ldflags $I"
8414 else
8415 _ld_tmp="$_ld_tmp $I"
8417 done
8418 libs_mplayer=$_ld_tmp
8421 #############################################################################
8422 # 64 bit file offsets?
8423 if test "$_largefiles" = yes || freebsd ; then
8424 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
8425 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
8426 # dvdread support requires this (for off64_t)
8427 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
8431 CXXFLAGS=" $CFLAGS -D__STDC_LIMIT_MACROS"
8433 # This must be the last test to be performed. Any other tests following it
8434 # could fail due to linker errors. libdvdnavmini is intentionally not linked
8435 # against libdvdread (to permit MPlayer to use its own copy of the library).
8436 # So any compilation using the flags added here but not linking against
8437 # libdvdread can fail.
8438 echocheck "DVD support (libdvdnav)"
8439 dvdnav_internal=no
8440 if test "$_dvdnav" = auto ; then
8441 if test "$_dvdread_internal" = yes ; then
8442 _dvdnav=yes
8443 dvdnav_internal=yes
8444 _res_comment="internal"
8445 else
8446 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
8449 if test "$_dvdnav" = auto ; then
8450 cat > $TMPC <<EOF
8451 #include <inttypes.h>
8452 #include <dvdnav/dvdnav.h>
8453 int main(void) { dvdnav_t *dvd=0; return 0; }
8455 _dvdnav=no
8456 _dvdnavdir=$($_dvdnavconfig --cflags)
8457 _dvdnavlibs=$($_dvdnavconfig --libs)
8458 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
8460 if test "$_dvdnav" = yes ; then
8461 _largefiles=yes
8462 def_dvdnav='#define CONFIG_DVDNAV 1'
8463 if test "$dvdnav_internal" = yes ; then
8464 cflags_libdvdnav="-Ilibdvdnav"
8465 _inputmodules="dvdnav(internal) $_inputmodules"
8466 else
8467 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
8468 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
8469 _inputmodules="dvdnav $_inputmodules"
8471 else
8472 def_dvdnav='#undef CONFIG_DVDNAV'
8473 _noinputmodules="dvdnav $_noinputmodules"
8475 echores "$_dvdnav"
8477 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
8478 # Read dvdnav comment above.
8480 #############################################################################
8481 echo "Creating config.mak"
8482 cat > config.mak << EOF
8483 # -------- Generated by configure -----------
8485 # Ensure that locale settings do not interfere with shell commands.
8486 export LC_ALL = C
8488 CONFIGURATION = $_configuration
8490 CHARSET = $_charset
8491 DOC_LANGS = $language_doc
8492 DOC_LANG_ALL = $doc_lang_all
8493 MAN_LANGS = $language_man
8494 MAN_LANG_ALL = $man_lang_all
8496 prefix = \$(DESTDIR)$_prefix
8497 BINDIR = \$(DESTDIR)$_bindir
8498 DATADIR = \$(DESTDIR)$_datadir
8499 LIBDIR = \$(DESTDIR)$_libdir
8500 MANDIR = \$(DESTDIR)$_mandir
8501 CONFDIR = \$(DESTDIR)$_confdir
8503 AR = $_ar
8504 AS = $_cc
8505 CC = $_cc
8506 CXX = $_cc
8507 HOST_CC = $_host_cc
8508 YASM = $_yasm
8509 INSTALL = $_install
8510 INSTALLSTRIP = $_install_strip
8511 RANLIB = $_ranlib
8512 WINDRES = $_windres
8514 CFLAGS = $CFLAGS $extra_cflags
8515 ASFLAGS = $CFLAGS $extra_cflags
8516 OPTFLAGS = $CFLAGS $extra_cflags
8517 CXXFLAGS = $CXXFLAGS $extra_cflags $extra_cxxflags
8518 CFLAGS_DHAHELPER = $cflags_dhahelper
8519 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
8520 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
8521 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
8522 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
8523 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
8524 CFLAGS_STACKREALIGN = $cflags_stackrealign
8525 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
8526 CFLAGS_TREMOR_LOW = $cflags_tremor_low
8527 YASMFLAGS = $YASMFLAGS
8529 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
8530 EXTRALIBS_MPLAYER = $libs_mplayer
8531 EXTRALIBS_MENCODER = $libs_mencoder
8533 DEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.h,\$^) | sed "s,[0-9a-z._-]*: \(\$(SRC_DIR)/\)*\([a-z0-9]*/\)[^/]* ,\\2&,"
8535 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 &,"
8536 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 &,"
8538 GETCH = $_getch
8539 HELP_FILE = $_mp_help
8540 TIMER = $_timer
8542 EXESUF = $_exesuf
8543 EXESUFS_ALL = .exe
8545 $_target_arch
8546 $_target_subarch
8547 $(echo $_cpuexts | tr '[a-z] ' '[A-Z]\n' | sed 's/^/HAVE_/;s/$/=yes/')
8549 MENCODER = $_mencoder
8550 MPLAYER = $_mplayer
8552 NEED_GETTIMEOFDAY = $_need_gettimeofday
8553 NEED_GLOB = $_need_glob
8554 NEED_MMAP = $_need_mmap
8555 NEED_SETENV = $_need_setenv
8556 NEED_SHMEM = $_need_shmem
8557 NEED_STRSEP = $_need_strsep
8558 NEED_SWAB = $_need_swab
8559 NEED_VSSCANF = $_need_vsscanf
8561 # features
8562 3DFX = $_3dfx
8563 AA = $_aa
8564 ALSA1X = $_alsa1x
8565 ALSA9 = $_alsa9
8566 ALSA5 = $_alsa5
8567 APPLE_IR = $_apple_ir
8568 APPLE_REMOTE = $_apple_remote
8569 ARTS = $_arts
8570 AUDIO_INPUT = $_audio_input
8571 BITMAP_FONT = $_bitmap_font
8572 BL = $_bl
8573 CACA = $_caca
8574 CDDA = $_cdda
8575 CDDB = $_cddb
8576 COREAUDIO = $_coreaudio
8577 COREVIDEO = $_corevideo
8578 DART = $_dart
8579 DFBMGA = $_dfbmga
8580 DGA = $_dga
8581 DIRECT3D = $_direct3d
8582 DIRECTFB = $_directfb
8583 DIRECTX = $_directx
8584 DVBIN = $_dvbin
8585 DVDNAV = $_dvdnav
8586 DVDNAV_INTERNAL = $dvdnav_internal
8587 DVDREAD = $_dvdread
8588 DVDREAD_INTERNAL = $_dvdread_internal
8589 DXR2 = $_dxr2
8590 DXR3 = $_dxr3
8591 ESD = $_esd
8592 FAAC=$_faac
8593 FAAD = $_faad
8594 FAAD_INTERNAL = $_faad_internal
8595 FASTMEMCPY = $_fastmemcpy
8596 $mak_hardcoded_tables
8597 $mak_libavcodec_mpegaudio_hp
8598 FBDEV = $_fbdev
8599 FREETYPE = $_freetype
8600 FTP = $_ftp
8601 GIF = $_gif
8602 GGI = $_ggi
8603 GL = $_gl
8604 GL_WIN32 = $_gl_win32
8605 GL_X11 = $_gl_x11
8606 MATRIXVIEW = $matrixview
8607 GUI = $_gui
8608 GUI_GTK = $_gui_gtk
8609 GUI_WIN32 = $_gui_win32
8610 HAVE_POSIX_SELECT = $_posix_select
8611 HAVE_SYS_MMAN_H = $_mman
8612 IVTV = $_ivtv
8613 JACK = $_jack
8614 JOYSTICK = $_joystick
8615 JPEG = $_jpeg
8616 KAI = $_kai
8617 KVA = $_kva
8618 LADSPA = $_ladspa
8619 LIBA52 = $_liba52
8620 LIBA52_INTERNAL = $_liba52_internal
8621 LIBASS = $_ass
8622 LIBASS_INTERNAL = $ass_internal
8623 LIBBS2B = $_libbs2b
8624 LIBDCA = $_libdca
8625 LIBDV = $_libdv
8626 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
8627 LIBLZO = $_liblzo
8628 LIBMAD = $_mad
8629 LIBMENU = $_menu
8630 LIBMENU_DVBIN = $_menu_dvbin
8631 LIBMPEG2 = $_libmpeg2
8632 LIBNEMESI = $_nemesi
8633 LIBNUT = $_libnut
8634 LIBSMBCLIENT = $_smb
8635 LIBTHEORA = $_theora
8636 LIRC = $_lirc
8637 LIVE555 = $_live
8638 MACOSX_BUNDLE = $_macosx_bundle
8639 MACOSX_FINDER = $_macosx_finder
8640 MD5SUM = $_md5sum
8641 MGA = $_mga
8642 MNG = $_mng
8643 MP3LAME = $_mp3lame
8644 MP3LIB = $_mp3lib
8645 MUSEPACK = $_musepack
8646 NAS = $_nas
8647 NATIVE_RTSP = $_native_rtsp
8648 NETWORK = $_network
8649 OPENAL = $_openal
8650 OSS = $_ossaudio
8651 PE_EXECUTABLE = $_pe_executable
8652 PNG = $_png
8653 PNM = $_pnm
8654 PRIORITY = $_priority
8655 PULSE = $_pulse
8656 PVR = $_pvr
8657 QTX_CODECS = $_qtx
8658 QTX_CODECS_WIN32 = $_qtx_codecs_win32
8659 QTX_EMULATION = $_qtx_emulation
8660 QUARTZ = $_quartz
8661 RADIO=$_radio
8662 RADIO_CAPTURE=$_radio_capture
8663 REAL_CODECS = $_real
8664 S3FB = $_s3fb
8665 SDL = $_sdl
8666 SPEEX = $_speex
8667 STREAM_CACHE = $_stream_cache
8668 SGIAUDIO = $_sgiaudio
8669 SUNAUDIO = $_sunaudio
8670 SVGA = $_svga
8671 TDFXFB = $_tdfxfb
8672 TDFXVID = $_tdfxvid
8673 TGA = $_tga
8674 TOOLAME=$_toolame
8675 TREMOR_INTERNAL = $_tremor_internal
8676 TV = $_tv
8677 TV_BSDBT848 = $_tv_bsdbt848
8678 TV_DSHOW = $_tv_dshow
8679 TV_V4L = $_tv_v4l
8680 TV_V4L1 = $_tv_v4l1
8681 TV_V4L2 = $_tv_v4l2
8682 TWOLAME=$_twolame
8683 UNRAR_EXEC = $_unrar_exec
8684 V4L2 = $_v4l2
8685 VCD = $_vcd
8686 VDPAU = $_vdpau
8687 VESA = $_vesa
8688 VIDIX = $_vidix
8689 VIDIX_PCIDB = $_vidix_pcidb_val
8690 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
8691 VIDIX_IVTV=$_vidix_drv_ivtv
8692 VIDIX_MACH64=$_vidix_drv_mach64
8693 VIDIX_MGA=$_vidix_drv_mga
8694 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
8695 VIDIX_NVIDIA=$_vidix_drv_nvidia
8696 VIDIX_PM2=$_vidix_drv_pm2
8697 VIDIX_PM3=$_vidix_drv_pm3
8698 VIDIX_RADEON=$_vidix_drv_radeon
8699 VIDIX_RAGE128=$_vidix_drv_rage128
8700 VIDIX_S3=$_vidix_drv_s3
8701 VIDIX_SH_VEU=$_vidix_drv_sh_veu
8702 VIDIX_SIS=$_vidix_drv_sis
8703 VIDIX_UNICHROME=$_vidix_drv_unichrome
8704 VORBIS = $_vorbis
8705 VSTREAM = $_vstream
8706 WII = $_wii
8707 WIN32DLL = $_win32dll
8708 WIN32WAVEOUT = $_win32waveout
8709 WIN32_EMULATION = $_win32_emulation
8710 WINVIDIX = $winvidix
8711 X11 = $_x11
8712 X264 = $_x264
8713 XANIM_CODECS = $_xanim
8714 XMGA = $_xmga
8715 XMMS_PLUGINS = $_xmms
8716 XV = $_xv
8717 XVID4 = $_xvid
8718 XVIDIX = $xvidix
8719 XVMC = $_xvmc
8720 XVR100 = $_xvr100
8721 YUV4MPEG = $_yuv4mpeg
8722 ZR = $_zr
8724 # FFmpeg
8725 LIBAVUTIL = $_libavutil
8726 LIBAVUTIL_A = $_libavutil_a
8727 LIBAVUTIL_SO = $_libavutil_so
8728 LIBAVCODEC = $_libavcodec
8729 LIBAVCODEC_A = $_libavcodec_a
8730 LIBAVCODEC_SO = $_libavcodec_so
8731 LIBAVFORMAT = $_libavformat
8732 LIBAVFORMAT_A = $_libavformat_a
8733 LIBAVFORMAT_SO = $_libavformat_so
8734 LIBPOSTPROC = $_libpostproc
8735 LIBPOSTPROC_A = $_libpostproc_a
8736 LIBPOSTPROC_SO = $_libpostproc_so
8737 LIBSWSCALE = $_libswscale
8738 LIBSWSCALE_A = $_libswscale_a
8739 LIBSWSCALE_SO = $_libswscale_so
8741 HOSTCC=\$(HOST_CC)
8742 HOSTCFLAGS=-D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -O3
8743 HOSTLIBS=-lm
8744 CC_O=-o \$@
8745 LD=gcc
8746 CONFIG_STATIC=yes
8747 SRC_PATH=..
8748 BUILD_ROOT=..
8749 LIBPREF=lib
8750 LIBSUF=.a
8751 LIBNAME=\$(LIBPREF)\$(NAME)\$(LIBSUF)
8752 FULLNAME=\$(NAME)\$(BUILDSUF)
8754 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
8755 CONFIG_AANDCT=yes
8756 CONFIG_DCT=yes
8757 CONFIG_FFT=yes
8758 CONFIG_FFT_MMX=$fft_mmx
8759 CONFIG_GOLOMB=yes
8760 CONFIG_LPC=yes
8761 CONFIG_MDCT=yes
8762 CONFIG_RDFT=yes
8764 CONFIG_BZLIB=$bzlib
8765 CONFIG_ENCODERS=yes
8766 CONFIG_GPL=yes
8767 CONFIG_LIBDIRAC_DECODER=$_libdirac_lavc
8768 CONFIG_LIBDIRAC_ENCODER=$_libdirac_lavc
8769 CONFIG_LIBFAAC_ENCODER=$_faac_lavc
8770 CONFIG_LIBMP3LAME_ENCODER=$_mp3lame_lavc
8771 CONFIG_LIBOPENCORE_AMRNB_DECODER=$_libopencore_amrnb
8772 CONFIG_LIBOPENCORE_AMRNB_ENCODER=$_libopencore_amrnb
8773 CONFIG_LIBOPENCORE_AMRWB_DECODER=$_libopencore_amrwb
8774 OCNFIG_LIBOPENJPEG_DECODER = $libopenjpeg
8775 OCNFIG_LIBOPENJPEG_ENCODER = $libopenjpeg
8776 CONFIG_LIBSCHROEDINGER_DECODER=$_libschroedinger_lavc
8777 CONFIG_LIBSCHROEDINGER_ENCODER=$_libschroedinger_lavc
8778 CONFIG_LIBVORBIS_ENCODER=$_libvorbis
8779 CONFIG_LIBX264_ENCODER=$_x264_lavc
8780 CONFIG_LIBXVID_ENCODER=$_xvid_lavc
8781 CONFIG_MLIB = $_mlib
8782 CONFIG_MUXERS=$_mencoder
8783 CONFIG_POSTPROC = yes
8784 # Prevent building libavcodec/imgresample.c with conflicting symbols
8785 CONFIG_SWSCALE=yes
8786 CONFIG_VDPAU=$_vdpau
8787 CONFIG_XVMC=$_xvmc
8788 CONFIG_ZLIB=$_zlib
8790 HAVE_PTHREADS = $_pthreads
8791 HAVE_SHM = $_shm
8792 HAVE_W32THREADS = $_w32threads
8793 HAVE_YASM = $_have_yasm
8795 $(echo $_libavdecoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8796 $(echo $_libavencoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8797 $(echo $_libavparsers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8798 $(echo $_libavdemuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8799 $(echo $_libavmuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8800 $(echo $_libavprotocols | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8801 $(echo $_libavbsfs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8802 $(echo $_libavhwaccels | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8805 #############################################################################
8807 ff_config_enable () {
8808 _nprefix=$3;
8809 test -z "$_nprefix" && _nprefix='CONFIG'
8810 for part in $1; do
8811 if $(echo $2 | grep -q -E "(^| )$part($| )"); then
8812 echo "#define ${_nprefix}_$part 1"
8813 else
8814 echo "#define ${_nprefix}_$part 0"
8816 done
8819 echo "Creating config.h"
8820 cat > $TMPH << EOF
8821 /*----------------------------------------------------------------------------
8822 ** This file has been automatically generated by configure any changes in it
8823 ** will be lost when you run configure again.
8824 ** Instead of modifying definitions here, use the --enable/--disable options
8825 ** of the configure script! See ./configure --help for details.
8826 *---------------------------------------------------------------------------*/
8828 #ifndef MPLAYER_CONFIG_H
8829 #define MPLAYER_CONFIG_H
8831 /* Undefine this if you do not want to select mono audio (left or right)
8832 with a stereo MPEG layer 2/3 audio stream. The command line option
8833 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
8834 right-only), with 0 being the default.
8836 #define CONFIG_FAKE_MONO 1
8838 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
8839 #define MAX_OUTBURST 65536
8841 /* set up audio OUTBURST. Do not change this! */
8842 #define OUTBURST 512
8844 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8845 #undef FAST_OSD
8846 #undef FAST_OSD_TABLE
8848 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
8849 #define MPEG12_POSTPROC 1
8850 #define ATTRIBUTE_ALIGNED_MAX 16
8854 #define CONFIGURATION "$_configuration"
8856 #define MPLAYER_DATADIR "$_datadir"
8857 #define MPLAYER_CONFDIR "$_confdir"
8858 #define MPLAYER_LIBDIR "$_libdir"
8860 /* definitions needed by included libraries */
8861 #define HAVE_INTTYPES_H 1
8862 /* libmpeg2 + FFmpeg */
8863 $def_fast_inttypes
8864 /* libdvdcss */
8865 #define HAVE_ERRNO_H 1
8866 /* libdvdcss + libdvdread */
8867 #define HAVE_LIMITS_H 1
8868 /* libdvdcss + libfaad2 */
8869 #define HAVE_UNISTD_H 1
8870 /* libfaad2 + libdvdread */
8871 #define STDC_HEADERS 1
8872 #define HAVE_MEMCPY 1
8873 /* libfaad2 */
8874 #define HAVE_STRING_H 1
8875 #define HAVE_STRINGS_H 1
8876 #define HAVE_SYS_STAT_H 1
8877 #define HAVE_SYS_TYPES_H 1
8878 /* libdvdnav */
8879 #define READ_CACHE_TRACE 0
8880 /* libdvdread */
8881 #define HAVE_DLFCN_H 1
8882 $def_dvdcss
8885 /* system headers */
8886 $def_alloca_h
8887 $def_alsa_asoundlib_h
8888 $def_altivec_h
8889 $def_malloc_h
8890 $def_mman_h
8891 $def_mman_has_map_failed
8892 $def_soundcard_h
8893 $def_sys_asoundlib_h
8894 $def_sys_soundcard_h
8895 $def_sys_sysinfo_h
8896 $def_termios_h
8897 $def_termios_sys_h
8898 $def_winsock2_h
8901 /* system functions */
8902 $def_gethostbyname2
8903 $def_gettimeofday
8904 $def_glob
8905 $def_langinfo
8906 $def_lrintf
8907 $def_map_memalign
8908 $def_memalign
8909 $def_nanosleep
8910 $def_posix_select
8911 $def_select
8912 $def_setenv
8913 $def_shm
8914 $def_strsep
8915 $def_swab
8916 $def_sysi86
8917 $def_sysi86_iv
8918 $def_termcap
8919 $def_termios
8920 $def_vsscanf
8923 /* system-specific features */
8924 $def_asmalign_pot
8925 $def_builtin_expect
8926 $def_dl
8927 $def_dos_paths
8928 $def_extern_asm
8929 $def_extern_prefix
8930 $def_iconv
8931 $def_kstat
8932 $def_macosx_bundle
8933 $def_macosx_finder
8934 $def_maemo
8935 $def_named_asm_args
8936 $def_priority
8937 $def_quicktime
8938 $def_restrict_keyword
8939 $def_rtc
8940 $def_unrar_exec
8943 /* configurable options */
8944 $def_charset
8945 $def_crash_debug
8946 $def_debug
8947 $def_dynamic_plugins
8948 $def_fastmemcpy
8949 $def_menu
8950 $def_runtime_cpudetection
8951 $def_sighandler
8952 $def_sortsub
8953 $def_stream_cache
8954 $def_pthread_cache
8957 /* CPU stuff */
8958 #define __CPU__ $iproc
8959 $def_words_endian
8960 $def_bigendian
8961 $(ff_config_enable "$_arch_all" "$_arch" "ARCH")
8962 $(ff_config_enable "$_cpuexts_all" "$_cpuexts" "HAVE")
8965 /* DVD/VCD/CD */
8966 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
8967 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
8968 $def_bsdi_dvd
8969 $def_cddb
8970 $def_cdio
8971 $def_cdparanoia
8972 $def_cdrom
8973 $def_dvd
8974 $def_dvd_bsd
8975 $def_dvd_darwin
8976 $def_dvd_linux
8977 $def_dvd_openbsd
8978 $def_dvdio
8979 $def_dvdnav
8980 $def_dvdread
8981 $def_hpux_scsi_h
8982 $def_libcdio
8983 $def_sol_scsi_h
8984 $def_vcd
8987 /* codec libraries */
8988 $def_faac
8989 $def_faad
8990 $def_faad_internal
8991 $def_liba52
8992 $def_liba52_internal
8993 $def_libdca
8994 $def_libdv
8995 $def_liblzo
8996 $def_libmpeg2
8997 $def_mad
8998 $def_mp3lame
8999 $def_mp3lame_preset
9000 $def_mp3lame_preset_medium
9001 $def_mp3lib
9002 $def_musepack
9003 $def_speex
9004 $def_theora
9005 $def_toolame
9006 $def_tremor
9007 $def_twolame
9008 $def_vorbis
9009 $def_x264
9010 $def_xvid
9011 $def_zlib
9013 $def_libnut
9016 /* binary codecs */
9017 $def_qtx
9018 $def_qtx_win32
9019 $def_real
9020 $def_real_path
9021 $def_win32_loader
9022 $def_win32dll
9023 #define WIN32_PATH "$_win32codecsdir"
9024 $def_xanim
9025 $def_xanim_path
9026 $def_xmms
9027 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
9030 /* GUI */
9031 $def_gtk2
9032 $def_gui
9033 $def_xshape
9036 /* Audio output drivers */
9037 $def_alsa
9038 $def_alsa1x
9039 $def_alsa5
9040 $def_alsa9
9041 $def_arts
9042 $def_coreaudio
9043 $def_dart
9044 $def_esd
9045 $def_esd_latency
9046 $def_jack
9047 $def_kai
9048 $def_nas
9049 $def_openal
9050 $def_openal_h
9051 $def_ossaudio
9052 $def_ossaudio_devdsp
9053 $def_ossaudio_devmixer
9054 $def_pulse
9055 $def_sgiaudio
9056 $def_sunaudio
9057 $def_win32waveout
9059 $def_ladspa
9060 $def_libbs2b
9063 /* input */
9064 $def_apple_ir
9065 $def_apple_remote
9066 $def_ioctl_bt848_h_name
9067 $def_ioctl_meteor_h_name
9068 $def_joystick
9069 $def_lirc
9070 $def_lircc
9071 $def_pvr
9072 $def_radio
9073 $def_radio_bsdbt848
9074 $def_radio_capture
9075 $def_radio_v4l
9076 $def_radio_v4l2
9077 $def_tv
9078 $def_tv_bsdbt848
9079 $def_tv_dshow
9080 $def_tv_v4l
9081 $def_tv_v4l1
9082 $def_tv_v4l2
9085 /* font stuff */
9086 $def_ass
9087 $def_ass_internal
9088 $def_bitmap_font
9089 $def_enca
9090 $def_fontconfig
9091 $def_freetype
9092 $def_fribidi
9095 /* networking */
9096 $def_closesocket
9097 $def_ftp
9098 $def_inet6
9099 $def_inet_aton
9100 $def_inet_pton
9101 $def_live
9102 $def_nemesi
9103 $def_network
9104 $def_smb
9105 $def_socklen_t
9106 $def_struct_ipv6_mreq
9107 $def_struct_sockaddr_in6
9108 $def_struct_sockaddr_sa_len
9109 $def_vstream
9110 $def_addrinfo
9111 $def_getaddrinfo
9112 $def_sockaddr_storage
9115 /* libvo options */
9116 $def_3dfx
9117 $def_aa
9118 $def_bl
9119 $def_caca
9120 $def_corevideo
9121 $def_dfbmga
9122 $def_dga
9123 $def_dga1
9124 $def_dga2
9125 $def_direct3d
9126 $def_directfb
9127 $def_directfb_version
9128 $def_directx
9129 $def_dvb
9130 $def_dvb_head
9131 $def_dvbin
9132 $def_dxr2
9133 $def_dxr3
9134 $def_fbdev
9135 $def_ggi
9136 $def_ggiwmh
9137 $def_gif
9138 $def_gif_4
9139 $def_gif_tvt_hack
9140 $def_gl
9141 $def_gl_win32
9142 $def_gl_x11
9143 $def_matrixview
9144 $def_ivtv
9145 $def_jpeg
9146 $def_kva
9147 $def_md5sum
9148 $def_mga
9149 $def_mng
9150 $def_png
9151 $def_pnm
9152 $def_quartz
9153 $def_s3fb
9154 $def_sdl
9155 $def_sdl_sdl_h
9156 $def_sdlbuggy
9157 $def_svga
9158 $def_tdfxfb
9159 $def_tdfxvid
9160 $def_tga
9161 $def_v4l2
9162 $def_vdpau
9163 $def_vesa
9164 $def_vidix
9165 $def_vidix_drv_cyberblade
9166 $def_vidix_drv_ivtv
9167 $def_vidix_drv_mach64
9168 $def_vidix_drv_mga
9169 $def_vidix_drv_mga_crtc2
9170 $def_vidix_drv_nvidia
9171 $def_vidix_drv_pm3
9172 $def_vidix_drv_radeon
9173 $def_vidix_drv_rage128
9174 $def_vidix_drv_s3
9175 $def_vidix_drv_sh_veu
9176 $def_vidix_drv_sis
9177 $def_vidix_drv_unichrome
9178 $def_vidix_pfx
9179 $def_vm
9180 $def_wii
9181 $def_x11
9182 $def_xdpms
9183 $def_xf86keysym
9184 $def_xinerama
9185 $def_xmga
9186 $def_xss
9187 $def_xv
9188 $def_xvmc
9189 $def_xvr100
9190 $def_yuv4mpeg
9191 $def_zr
9194 /* FFmpeg */
9195 $def_libavcodec
9196 $def_libavcodec_a
9197 $def_libavcodec_so
9198 $def_libavformat
9199 $def_libavformat_a
9200 $def_libavformat_so
9201 $def_libavutil
9202 $def_libavutil_a
9203 $def_libavutil_so
9204 $def_libpostproc
9205 $def_libpostproc_a
9206 $def_libpostproc_so
9207 $def_libswscale
9208 $def_libswscale_a
9209 $def_libswscale_so
9211 #define CONFIG_DECODERS 1
9212 #define CONFIG_ENCODERS 1
9213 #define CONFIG_DEMUXERS 1
9214 $def_muxers
9216 $def_arpa_inet_h
9217 $def_bswap
9218 $def_bzlib
9219 $def_dcbzl
9220 $def_exp2
9221 $def_exp2f
9222 $def_fast_64bit
9223 $def_fast_unaligned
9224 $def_hardcoded_tables
9225 $def_libavcodec_mpegaudio_hp
9226 $def_llrint
9227 $def_local_aligned_8
9228 $def_local_aligned_16
9229 $def_log2
9230 $def_log2f
9231 $def_lrint
9232 $def_memalign_hack
9233 $def_mlib
9234 $def_mkstemp
9235 $def_posix_memalign
9236 $def_pthreads
9237 $def_round
9238 $def_roundf
9239 $def_ten_operands
9240 $def_threads
9241 $def_truncf
9242 $def_xform_asm
9243 $def_yasm
9245 #define CONFIG_FASTDIV 0
9246 #define CONFIG_FFSERVER 0
9247 #define CONFIG_GPL 1
9248 #define CONFIG_GRAY 0
9249 #define CONFIG_LIBVORBIS 0
9250 #define CONFIG_POWERPC_PERF 0
9251 #define CONFIG_SMALL 0
9252 #define CONFIG_SWSCALE 1
9253 #define CONFIG_SWSCALE_ALPHA 1
9255 #if defined(HAVE_AF_INET6) && (!defined(_WIN32) || defined(__CYGWIN__))
9256 #define CONFIG_IPV6 1
9257 #else
9258 #define CONFIG_IPV6 0
9259 #endif
9261 #define HAVE_ATTRIBUTE_MAY_ALIAS 1
9262 #define av_alias __attribute__((may_alias))
9263 #define HAVE_ATTRIBUTE_PACKED 1
9264 #define HAVE_GETHRTIME 0
9265 #define HAVE_INLINE_ASM 1
9266 #define HAVE_LDBRX 0
9267 #define HAVE_POLL_H 1
9268 #define HAVE_PPC4XX 0
9269 #define HAVE_SETMODE 0
9270 #define HAVE_SYS_SELECT_H 0
9271 #define HAVE_VFP_ARGS 1
9272 #define HAVE_VIRTUALALLOC 0
9274 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
9275 #define CONFIG_AANDCT 1
9276 #define CONFIG_FFT 1
9277 #define CONFIG_GOLOMB 1
9278 #define CONFIG_LPC 1
9279 #define CONFIG_MDCT 1
9280 #define CONFIG_RDFT 1
9282 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
9283 $def_ebx_available
9284 #ifndef MP_DEBUG
9285 #define HAVE_EBP_AVAILABLE 1
9286 #else
9287 #define HAVE_EBP_AVAILABLE 0
9288 #endif
9290 #define FFMPEG_CONFIGURATION "--enable-gpl --enable-postproc"
9291 #define FFMPEG_LICENSE "GPL version 2 or later"
9293 /* External libraries used through libavcodec. */
9294 $def_faac_lavc
9295 $def_libdirac_lavc
9296 $def_libopencore_amrnb
9297 $def_libopencore_amrwb
9298 $def_libopenjpeg
9299 $def_libschroedinger_lavc
9300 $def_mp3lame_lavc
9301 $def_x264_lavc
9302 $def_xvid_lavc
9304 $(ff_config_enable "$_libavdecoders_all" "$_libavdecoders")
9305 $(ff_config_enable "$_libavencoders_all" "$_libavencoders")
9306 $(ff_config_enable "$_libavparsers_all" "$_libavparsers")
9307 $(ff_config_enable "$_libavdemuxers_all" "$_libavdemuxers")
9308 $(ff_config_enable "$_libavmuxers_all" "$_libavmuxers")
9309 $(ff_config_enable "$_libavprotocols_all" "$_libavprotocols")
9310 $(ff_config_enable "$_libavbsfs_all" "$_libavbsfs")
9311 $(ff_config_enable "$_libavhwaccels_all" "$_libavhwaccels")
9313 #endif /* MPLAYER_CONFIG_H */
9316 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
9317 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
9319 ############################################################################
9321 # Create avconfig.h for FFmpeg.
9322 cat > "$TMPH" << EOF
9323 /* Generated by mpconfigure */
9324 #ifndef AVUTIL_AVCONFIG_H
9325 #define AVUTIL_AVCONFIG_H
9326 $def_av_bigendian
9327 #endif /* AVUTIL_AVCONFIG_H */
9330 # Do not overwrite an unchanged avconfig.h to avoid superfluous rebuilds.
9331 cmp -s "$TMPH" libavutil/avconfig.h || mv -f "$TMPH" libavutil/avconfig.h
9333 #############################################################################
9335 cat << EOF
9337 Config files successfully generated by ./configure $_configuration !
9339 Install prefix: $_prefix
9340 Data directory: $_datadir
9341 Config direct.: $_confdir
9343 Byte order: $_byte_order
9344 Optimizing for: $_optimizing
9346 Languages:
9347 Messages/GUI: $language_msg
9348 Manual pages: $language_man
9349 Documentation: $language_doc
9351 Enabled optional drivers:
9352 Input: $_inputmodules
9353 Codecs: $_codecmodules
9354 Audio output: $_aomodules
9355 Video output: $_vomodules
9357 Disabled optional drivers:
9358 Input: $_noinputmodules
9359 Codecs: $_nocodecmodules
9360 Audio output: $_noaomodules
9361 Video output: $_novomodules
9363 'config.h' and 'config.mak' contain your configuration options.
9364 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
9365 compile *** DO NOT REPORT BUGS if you tweak these files ***
9367 'make' will now compile MPlayer and 'make install' will install it.
9368 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
9373 if test "$_mtrr" = yes ; then
9374 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)"
9375 echo
9378 if ! x86_32; then
9379 cat <<EOF
9380 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
9381 operating system ($system_name). You may encounter a few files that cannot
9382 be played due to missing open source video/audio codec support.
9388 cat <<EOF
9389 Check $TMPLOG if you wonder why an autodetection failed (make sure
9390 development headers/packages are installed).
9392 NOTE: The --enable-* parameters unconditionally force options on, completely
9393 skipping autodetection. This behavior is unlike what you may be used to from
9394 autoconf-based configure scripts that can decide to override you. This greater
9395 level of control comes at a price. You may have to provide the correct compiler
9396 and linker flags yourself.
9397 If you used one of these options (except --enable-gui and similar ones that
9398 turn on internal features) and experience a compilation or linking failure,
9399 make sure you have passed the necessary compiler/linker flags to configure.
9401 If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html.
9405 if test "$_warn_CFLAGS" = yes; then
9406 cat <<EOF
9408 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
9409 but:
9411 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
9413 It is strongly recommended to let MPlayer choose the correct CFLAGS!
9414 To do so, execute 'CFLAGS= ./configure <options>'
9419 # Last move:
9420 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"