debian/: update changelog
[mplayer.git] / configure
blob2a6481b199a373212aa682adee3aba46b0f520bc
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 --disable-largefiles disable support for files > 2GB [enable]
229 --enable-linux-devfs set default devices to devfs [disable]
230 --enable-termcap use termcap database for key codes [autodetect]
231 --enable-termios use termios database for key codes [autodetect]
232 --disable-iconv disable iconv for encoding conversion [autodetect]
233 --disable-langinfo do not use langinfo [autodetect]
234 --enable-lirc enable LIRC (remote control) support [autodetect]
235 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
236 --enable-joystick enable joystick support [disable]
237 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
238 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
239 --disable-vm disable X video mode extensions [autodetect]
240 --disable-xf86keysym disable support for multimedia keys [autodetect]
241 --enable-radio enable radio interface [disable]
242 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
243 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
244 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
245 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
246 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
247 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
248 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
249 --disable-tv-teletext disable TV teletext interface [autodetect]
250 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
251 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
252 --disable-network disable networking [enable]
253 --enable-winsock2_h enable winsock2_h [autodetect]
254 --enable-smb enable Samba (SMB) input [autodetect]
255 --enable-live enable LIVE555 Streaming Media [autodetect]
256 --enable-nemesi enable Nemesi Streaming Media [autodetect]
257 --disable-vcd disable VCD support [autodetect]
258 --disable-dvdnav disable libdvdnav [autodetect]
259 --disable-dvdread disable libdvdread [autodetect]
260 --disable-dvdread-internal disable internal libdvdread [autodetect]
261 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
262 --disable-cdparanoia disable cdparanoia [autodetect]
263 --disable-cddb disable cddb [autodetect]
264 --disable-bitmap-font disable bitmap font support [enable]
265 --disable-freetype disable FreeType 2 font rendering [autodetect]
266 --disable-fontconfig disable fontconfig font lookup [autodetect]
267 --disable-unrarexec disable using of UnRAR executable [enabled]
268 --enable-menu enable OSD menu (not DVD menu) [disabled]
269 --disable-sortsub disable subtitle sorting [enabled]
270 --enable-fribidi enable the FriBiDi libs [autodetect]
271 --disable-enca disable ENCA charset oracle library [autodetect]
272 --disable-maemo disable maemo specific features [autodetect]
273 --enable-macosx-finder enable Mac OS X Finder invocation parameter
274 parsing [disabled]
275 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
276 --disable-inet6 disable IPv6 support [autodetect]
277 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
278 --disable-ftp disable FTP support [enabled]
279 --disable-vstream disable TiVo vstream client support [autodetect]
280 --disable-pthreads disable Posix threads support [autodetect]
281 --disable-w32threads disable Win32 threads support [autodetect]
282 --disable-ass disable internal SSA/ASS subtitle support [autodetect]
283 --enable-rpath enable runtime linker path for extra libs [disabled]
285 Codecs:
286 --enable-gif enable GIF support [autodetect]
287 --enable-png enable PNG input/output support [autodetect]
288 --enable-mng enable MNG input support [autodetect]
289 --enable-jpeg enable JPEG input/output support [autodetect]
290 --enable-libcdio enable libcdio support [autodetect]
291 --enable-liblzo enable liblzo support [autodetect]
292 --disable-win32dll disable Win32 DLL support [enabled]
293 --disable-qtx disable QuickTime codecs support [enabled]
294 --disable-xanim disable XAnim codecs support [enabled]
295 --disable-real disable RealPlayer codecs support [enabled]
296 --disable-xvid disable Xvid [autodetect]
297 --disable-x264 disable x264 [autodetect]
298 --disable-libnut disable libnut [autodetect]
299 --disable-libavutil disable libavutil [autodetect]
300 --disable-libavcodec disable libavcodec [autodetect]
301 --disable-libavformat disable libavformat [autodetect]
302 --disable-libpostproc disable libpostproc [autodetect]
303 --disable-libswscale disable libswscale [autodetect]
304 --disable-tremor-internal disable internal Tremor [enabled]
305 --enable-tremor-low enable lower accuracy internal Tremor [disabled]
306 --enable-tremor enable external Tremor [autodetect]
307 --disable-libvorbis disable libvorbis support [autodetect]
308 --disable-speex disable Speex support [autodetect]
309 --enable-theora enable OggTheora libraries [autodetect]
310 --enable-faad enable external FAAD2 (AAC) [autodetect]
311 --disable-faad-internal disable internal FAAD2 (AAC) [autodetect]
312 --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled]
313 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
314 --disable-ladspa disable LADSPA plugin support [autodetect]
315 --disable-libbs2b disable libbs2b audio filter support [autodetect]
316 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
317 --disable-mad disable libmad (MPEG audio) support [autodetect]
318 --disable-mp3lame disable LAME MP3 encoding support [autodetect]
319 --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect]
320 --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect]
321 --enable-xmms enable XMMS input plugin support [disabled]
322 --enable-libdca enable libdca support [autodetect]
323 --disable-mp3lib disable builtin mp3lib [autodetect]
324 --disable-liba52 disable liba52 [autodetect]
325 --disable-liba52-internal disable builtin liba52 [autodetect]
326 --disable-libmpeg2 disable builtin libmpeg2 [autodetect]
327 --disable-musepack disable musepack support [autodetect]
329 Video output:
330 --disable-vidix disable VIDIX [for x86 *nix]
331 --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
332 Available: cyberblade,ivtv,mach64,mga,mga_crtc2,
333 nvidia,pm2,pm3,radeon,rage128,s3,sis,unichrome
334 --disable-vidix-pcidb disable VIDIX PCI device name database
335 --enable-dhahelper enable VIDIX dhahelper support
336 --enable-svgalib_helper enable VIDIX svgalib_helper support
337 --enable-gl enable OpenGL video output [autodetect]
338 --enable-dga2 enable DGA 2 support [autodetect]
339 --enable-dga1 enable DGA 1 support [autodetect]
340 --enable-vesa enable VESA video output [autodetect]
341 --enable-svga enable SVGAlib video output [autodetect]
342 --enable-sdl enable SDL video output [autodetect]
343 --enable-kva enable KVA video output [autodetect]
344 --enable-aa enable AAlib video output [autodetect]
345 --enable-caca enable CACA video output [autodetect]
346 --enable-ggi enable GGI video output [autodetect]
347 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
348 --enable-direct3d enable Direct3D video output [autodetect]
349 --enable-directx enable DirectX video output [autodetect]
350 --enable-dxr2 enable DXR2 video output [autodetect]
351 --enable-dxr3 enable DXR3/H+ video output [autodetect]
352 --enable-ivtv enable IVTV TV-Out video output [autodetect]
353 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
354 --enable-dvb enable DVB video output [autodetect]
355 --enable-dvbhead enable DVB video output (HEAD version) [autodetect]
356 --enable-mga enable mga_vid video output [autodetect]
357 --enable-xmga enable mga_vid X11 video output [autodetect]
358 --enable-xv enable Xv video output [autodetect]
359 --enable-xvmc enable XvMC acceleration [disable]
360 --enable-vdpau enable VDPAU acceleration [autodetect]
361 --enable-vm enable XF86VidMode support [autodetect]
362 --enable-xinerama enable Xinerama support [autodetect]
363 --enable-x11 enable X11 video output [autodetect]
364 --enable-xshape enable XShape support [autodetect]
365 --disable-xss disable screensaver support via xss [autodetect]
366 --enable-fbdev enable FBDev video output [autodetect]
367 --enable-mlib enable mediaLib video output (Solaris) [disable]
368 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
369 --enable-tdfxfb enable tdfxfb video output [disable]
370 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
371 --enable-wii enable Nintendo Wii/GameCube video output [disable]
372 --enable-directfb enable DirectFB video output [autodetect]
373 --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect]
374 --enable-bl enable Blinkenlights video output [disable]
375 --enable-tdfxvid enable tdfx_vid video output [disable]
376 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
377 --disable-tga disable Targa video output [enable]
378 --disable-pnm disable PNM video output [enable]
379 --disable-md5sum disable md5sum video output [enable]
380 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
381 --disable-corevideo disable CoreVideo video output [autodetect]
382 --disable-quartz disable Quartz video output [autodetect]
384 Audio output:
385 --disable-alsa disable ALSA audio output [autodetect]
386 --disable-ossaudio disable OSS audio output [autodetect]
387 --disable-arts disable aRts audio output [autodetect]
388 --disable-esd disable esd audio output [autodetect]
389 --disable-pulse disable Pulseaudio audio output [autodetect]
390 --disable-jack disable JACK audio output [autodetect]
391 --disable-openal disable OpenAL audio output [autodetect]
392 --disable-nas disable NAS audio output [autodetect]
393 --disable-sgiaudio disable SGI audio output [autodetect]
394 --disable-sunaudio disable Sun audio output [autodetect]
395 --disable-dart disable DART audio output [autodetect]
396 --disable-win32waveout disable Windows waveout audio output [autodetect]
397 --disable-coreaudio disable CoreAudio audio output [autodetect]
398 --disable-select disable using select() on the audio device [enable]
400 Language options:
401 --charset=charset convert the console messages to this character set
402 --language-doc=lang language to use for the documentation [en]
403 --language-man=lang language to use for the man pages [en]
404 --language-msg=lang language to use for the messages [en]
405 --language=lang default language to use [en]
406 Specific options override --language. You can pass a list of languages separated
407 by whitespace or commas instead of a single language. Nonexisting translations
408 will be dropped from each list. All documentation and man page translations
409 available in the list will be installed, for the messages the first available
410 translation will be used. The value "all" will activate all translations. The
411 LINGUAS environment variable is honored. In all cases the fallback is English.
412 Available values are: all $msg_lang_all
414 Miscellaneous options:
415 --enable-runtime-cpudetection enable runtime CPU detection [disable]
416 --enable-cross-compile enable cross-compilation [autodetect]
417 --cc=COMPILER C compiler to build MPlayer [gcc]
418 --host-cc=COMPILER C compiler for tools needed while building [gcc]
419 --as=ASSEMBLER assembler to build MPlayer [as]
420 --nm=NM nm tool to build MPlayer [nm]
421 --yasm=YASM Yasm assembler to build MPlayer [yasm]
422 --ar=AR librarian to build MPlayer [ar]
423 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
424 --windres=WINDRES windres to build MPlayer [windres]
425 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
426 --enable-static build a statically linked binary
427 --with-install=PATH path to a custom install program
429 Advanced options:
430 --enable-mmx enable MMX [autodetect]
431 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
432 --enable-3dnow enable 3DNow! [autodetect]
433 --enable-3dnowext enable extended 3DNow! [autodetect]
434 --enable-sse enable SSE [autodetect]
435 --enable-sse2 enable SSE2 [autodetect]
436 --enable-ssse3 enable SSSE3 [autodetect]
437 --enable-shm enable shm [autodetect]
438 --enable-altivec enable AltiVec (PowerPC) [autodetect]
439 --enable-armv5te enable DSP extensions (ARM) [autodetect]
440 --enable-armv6 enable ARMv6 (ARM) [autodetect]
441 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
442 --enable-armvfp enable ARM VFP (ARM) [autodetect]
443 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
444 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
445 --enable-big-endian force byte order to big-endian [autodetect]
446 --enable-debug[=1-3] compile-in debugging information [disable]
447 --enable-profile compile-in profiling information [disable]
448 --disable-sighandler disable sighandler for crashes [enable]
449 --enable-crash-debug enable automatic gdb attach on crash [disable]
450 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
451 --ffmpeg-source-dir=PATH enable features requiring internal FFmpeg headers
453 Use these options if autodetection fails:
454 --extra-cflags=FLAGS extra CFLAGS
455 --extra-ldflags=FLAGS extra LDFLAGS
456 --extra-libs=FLAGS extra linker flags
457 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
458 --extra-libs-mencoder=FLAGS extra linker flags for MEncoder
459 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
461 --with-freetype-config=PATH path to freetype-config
462 --with-fribidi-config=PATH path to fribidi-config
463 --with-glib-config=PATH path to glib*-config
464 --with-gtk-config=PATH path to gtk*-config
465 --with-sdl-config=PATH path to sdl*-config
466 --with-dvdnav-config=PATH path to dvdnav-config
467 --with-dvdread-config=PATH path to dvdread-config
469 This configure script is NOT autoconf-based, even though its output is similar.
470 It will try to autodetect all configuration options. If you --enable an option
471 it will be forcefully turned on, skipping autodetection. This can break
472 compilation, so you need to know what you are doing.
474 exit 0
475 } #show_help()
477 # GOTCHA: the variables below defines the default behavior for autodetection
478 # and have - unless stated otherwise - at least 2 states : yes no
479 # If autodetection is available then the third state is: auto
480 _mmx=auto
481 _3dnow=auto
482 _3dnowext=auto
483 _mmxext=auto
484 _sse=auto
485 _sse2=auto
486 _ssse3=auto
487 _cmov=auto
488 _fast_cmov=auto
489 _armv5te=auto
490 _armv6=auto
491 _armv6t2=auto
492 _armvfp=auto
493 _iwmmxt=auto
494 _mtrr=auto
495 _altivec=auto
496 _install=install
497 _ranlib=ranlib
498 _windres=windres
499 _cc=cc
500 _ar=ar
501 test "$CC" && _cc="$CC"
502 _as=auto
503 _nm=auto
504 _yasm=yasm
505 _runtime_cpudetection=no
506 _cross_compile=auto
507 _prefix="/usr/local"
508 _libavutil=auto
509 _libavcodec=auto
510 _libavformat=auto
511 _libpostproc=auto
512 _libswscale=auto
513 _libavcodec_internals=no
514 _libswscale_internals=no
515 _mencoder=yes
516 _mplayer=yes
517 _x11=auto
518 _xshape=auto
519 _xss=auto
520 _dga1=auto
521 _dga2=auto
522 _xv=auto
523 _xvmc=no #auto when complete
524 _vdpau=auto
525 _sdl=auto
526 _kva=auto
527 _direct3d=auto
528 _directx=auto
529 _win32waveout=auto
530 _nas=auto
531 _png=auto
532 _mng=auto
533 _jpeg=auto
534 _pnm=yes
535 _md5sum=yes
536 _yuv4mpeg=yes
537 _gif=auto
538 _gl=auto
539 _ggi=auto
540 _ggiwmh=auto
541 _aa=auto
542 _caca=auto
543 _svga=auto
544 _vesa=auto
545 _fbdev=auto
546 _dvb=auto
547 _dvbhead=auto
548 _dxr2=auto
549 _dxr3=auto
550 _ivtv=auto
551 _v4l2=auto
552 _iconv=auto
553 _langinfo=auto
554 _rtc=auto
555 _ossaudio=auto
556 _arts=auto
557 _esd=auto
558 _pulse=auto
559 _jack=auto
560 _dart=auto
561 _openal=auto
562 _libcdio=auto
563 _liblzo=auto
564 _mad=auto
565 _mp3lame=auto
566 _toolame=auto
567 _twolame=auto
568 _tremor=auto
569 _tremor_internal=yes
570 _tremor_low=no
571 _libvorbis=auto
572 _speex=auto
573 _theora=auto
574 _mp3lib=auto
575 _liba52=auto
576 _liba52_internal=auto
577 _libdca=auto
578 _libmpeg2=auto
579 _faad=auto
580 _faad_internal=auto
581 _faad_fixed=no
582 _faac=auto
583 _ladspa=auto
584 _libbs2b=auto
585 _xmms=no
586 _vcd=auto
587 _dvdnav=auto
588 _dvdnavconfig=dvdnav-config
589 _dvdreadconfig=dvdread-config
590 _dvdread=auto
591 _dvdread_internal=auto
592 _libdvdcss_internal=auto
593 _xanim=auto
594 _real=auto
595 _live=auto
596 _nemesi=auto
597 _native_rtsp=yes
598 _xinerama=auto
599 _mga=auto
600 _xmga=auto
601 _vm=auto
602 _xf86keysym=auto
603 _mlib=no #broken, thus disabled
604 _sgiaudio=auto
605 _sunaudio=auto
606 _alsa=auto
607 _fastmemcpy=yes
608 _unrar_exec=auto
609 _win32dll=auto
610 _select=yes
611 _radio=no
612 _radio_capture=no
613 _radio_v4l=auto
614 _radio_v4l2=auto
615 _radio_bsdbt848=auto
616 _tv=yes
617 _tv_v4l1=auto
618 _tv_v4l2=auto
619 _tv_bsdbt848=auto
620 _tv_dshow=auto
621 _tv_teletext=auto
622 _pvr=auto
623 _network=yes
624 _winsock2_h=auto
625 _smb=auto
626 _vidix=auto
627 _vidix_pcidb=yes
628 _dhahelper=no
629 _svgalib_helper=no
630 _joystick=no
631 _xvid=auto
632 _x264=auto
633 _libnut=auto
634 _lirc=auto
635 _lircc=auto
636 _apple_remote=auto
637 _apple_ir=auto
638 _gui=no
639 _gtk1=no
640 _termcap=auto
641 _termios=auto
642 _3dfx=no
643 _s3fb=no
644 _wii=no
645 _tdfxfb=no
646 _tdfxvid=no
647 _xvr100=auto
648 _tga=yes
649 _directfb=auto
650 _zr=auto
651 _bl=no
652 _largefiles=yes
653 #language=en
654 _shm=auto
655 _linux_devfs=no
656 _charset="UTF-8"
657 _dynamic_plugins=no
658 _crash_debug=no
659 _sighandler=yes
660 _libdv=auto
661 _cdparanoia=auto
662 _cddb=auto
663 _big_endian=auto
664 _bitmap_font=yes
665 _freetype=auto
666 _fontconfig=auto
667 _menu=no
668 _qtx=auto
669 _maemo=auto
670 _coreaudio=auto
671 _corevideo=auto
672 _quartz=auto
673 _macosx_finder=no
674 _macosx_bundle=auto
675 _sortsub=yes
676 _freetypeconfig='freetype-config'
677 _fribidi=auto
678 _fribidiconfig='fribidi-config'
679 _enca=auto
680 _inet6=auto
681 _gethostbyname2=auto
682 _ftp=yes
683 _musepack=auto
684 _vstream=auto
685 _pthreads=auto
686 _w32threads=auto
687 _ass=auto
688 _rpath=no
689 _asmalign_pot=auto
690 _stream_cache=yes
691 _priority=no
692 def_dos_paths="#define HAVE_DOS_PATHS 0"
693 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
694 def_priority="#undef CONFIG_PRIORITY"
695 def_pthread_cache="#undef PTHREAD_CACHE"
696 _need_shmem=yes
697 for ac_option do
698 case "$ac_option" in
699 --help|-help|-h)
700 show_help
702 --prefix=*)
703 _prefix=$(echo $ac_option | cut -d '=' -f 2)
705 --bindir=*)
706 _bindir=$(echo $ac_option | cut -d '=' -f 2)
708 --datadir=*)
709 _datadir=$(echo $ac_option | cut -d '=' -f 2)
711 --mandir=*)
712 _mandir=$(echo $ac_option | cut -d '=' -f 2)
714 --confdir=*)
715 _confdir=$(echo $ac_option | cut -d '=' -f 2)
717 --libdir=*)
718 _libdir=$(echo $ac_option | cut -d '=' -f 2)
720 --codecsdir=*)
721 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
723 --win32codecsdir=*)
724 _win32codecsdir=$(echo $ac_option | cut -d '=' -f 2)
726 --xanimcodecsdir=*)
727 _xanimcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
729 --realcodecsdir=*)
730 _realcodecsdir=$(echo $ac_option | cut -d '=' -f 2)
733 --with-install=*)
734 _install=$(echo $ac_option | cut -d '=' -f 2 )
736 --with-xvmclib=*)
737 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
740 --with-sdl-config=*)
741 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
743 --with-freetype-config=*)
744 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
746 --with-fribidi-config=*)
747 _fribidiconfig=$(echo $ac_option | cut -d '=' -f 2)
749 --with-gtk-config=*)
750 _gtkconfig=$(echo $ac_option | cut -d '=' -f 2)
752 --with-glib-config=*)
753 _glibconfig=$(echo $ac_option | cut -d '=' -f 2)
755 --with-dvdnav-config=*)
756 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
758 --with-dvdread-config=*)
759 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
762 --extra-cflags=*)
763 extra_cflags="$extra_cflags $(echo $ac_option | cut -d '=' -f 2-)"
765 --extra-ldflags=*)
766 extra_ldflags="$extra_ldflags $(echo $ac_option | cut -d '=' -f 2-)"
768 --extra-libs=*)
769 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
771 --extra-libs-mplayer=*)
772 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
774 --extra-libs-mencoder=*)
775 libs_mencoder=$(echo $ac_option | cut -d '=' -f 2)
778 --target=*)
779 _target=$(echo $ac_option | cut -d '=' -f 2)
781 --cc=*)
782 _cc=$(echo $ac_option | cut -d '=' -f 2)
784 --host-cc=*)
785 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
787 --as=*)
788 _as=$(echo $ac_option | cut -d '=' -f 2)
790 --nm=*)
791 _nm=$(echo $ac_option | cut -d '=' -f 2)
793 --yasm=*)
794 _yasm=$(echo $ac_option | cut -d '=' -f 2)
796 --ar=*)
797 _ar=$(echo $ac_option | cut -d '=' -f 2)
799 --ranlib=*)
800 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
802 --windres=*)
803 _windres=$(echo $ac_option | cut -d '=' -f 2)
805 --charset=*)
806 _charset=$(echo $ac_option | cut -d '=' -f 2)
808 --language-doc=*)
809 language_doc=$(echo $ac_option | cut -d '=' -f 2)
811 --language-man=*)
812 language_man=$(echo $ac_option | cut -d '=' -f 2)
814 --language-msg=*)
815 language_msg=$(echo $ac_option | cut -d '=' -f 2)
817 --language=*)
818 language=$(echo $ac_option | cut -d '=' -f 2)
821 --enable-static)
822 _ld_static='-static'
824 --disable-static)
825 _ld_static=''
827 --enable-profile)
828 _profile='-p'
830 --disable-profile)
831 _profile=
833 --enable-debug)
834 _debug='-g'
836 --enable-debug=*)
837 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
839 --disable-debug)
840 _debug=
842 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
843 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
844 --enable-cross-compile) _cross_compile=yes ;;
845 --disable-cross-compile) _cross_compile=no ;;
846 --enable-mencoder) _mencoder=yes ;;
847 --disable-mencoder) _mencoder=no ;;
848 --enable-mplayer) _mplayer=yes ;;
849 --disable-mplayer) _mplayer=no ;;
850 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
851 --disable-dynamic-plugins) _dynamic_plugins=no ;;
852 --enable-x11) _x11=yes ;;
853 --disable-x11) _x11=no ;;
854 --enable-xshape) _xshape=yes ;;
855 --disable-xshape) _xshape=no ;;
856 --enable-xss) _xss=yes ;;
857 --disable-xss) _xss=no ;;
858 --enable-xv) _xv=yes ;;
859 --disable-xv) _xv=no ;;
860 --enable-xvmc) _xvmc=yes ;;
861 --disable-xvmc) _xvmc=no ;;
862 --enable-vdpau) _vdpau=yes ;;
863 --disable-vdpau) _vdpau=no ;;
864 --enable-sdl) _sdl=yes ;;
865 --disable-sdl) _sdl=no ;;
866 --enable-kva) _kva=yes ;;
867 --disable-kva) _kva=no ;;
868 --enable-direct3d) _direct3d=yes ;;
869 --disable-direct3d) _direct3d=no ;;
870 --enable-directx) _directx=yes ;;
871 --disable-directx) _directx=no ;;
872 --enable-win32waveout) _win32waveout=yes ;;
873 --disable-win32waveout) _win32waveout=no ;;
874 --enable-nas) _nas=yes ;;
875 --disable-nas) _nas=no ;;
876 --enable-png) _png=yes ;;
877 --disable-png) _png=no ;;
878 --enable-mng) _mng=yes ;;
879 --disable-mng) _mng=no ;;
880 --enable-jpeg) _jpeg=yes ;;
881 --disable-jpeg) _jpeg=no ;;
882 --enable-pnm) _pnm=yes ;;
883 --disable-pnm) _pnm=no ;;
884 --enable-md5sum) _md5sum=yes ;;
885 --disable-md5sum) _md5sum=no ;;
886 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
887 --disable-yuv4mpeg) _yuv4mpeg=no ;;
888 --enable-gif) _gif=yes ;;
889 --disable-gif) _gif=no ;;
890 --enable-gl) _gl=yes ;;
891 --disable-gl) _gl=no ;;
892 --enable-ggi) _ggi=yes ;;
893 --disable-ggi) _ggi=no ;;
894 --enable-ggiwmh) _ggiwmh=yes ;;
895 --disable-ggiwmh) _ggiwmh=no ;;
896 --enable-aa) _aa=yes ;;
897 --disable-aa) _aa=no ;;
898 --enable-caca) _caca=yes ;;
899 --disable-caca) _caca=no ;;
900 --enable-svga) _svga=yes ;;
901 --disable-svga) _svga=no ;;
902 --enable-vesa) _vesa=yes ;;
903 --disable-vesa) _vesa=no ;;
904 --enable-fbdev) _fbdev=yes ;;
905 --disable-fbdev) _fbdev=no ;;
906 --enable-dvb) _dvb=yes ;;
907 --disable-dvb) _dvb=no ;;
908 --enable-dvbhead) _dvbhead=yes ;;
909 --disable-dvbhead) _dvbhead=no ;;
910 --enable-dxr2) _dxr2=yes ;;
911 --disable-dxr2) _dxr2=no ;;
912 --enable-dxr3) _dxr3=yes ;;
913 --disable-dxr3) _dxr3=no ;;
914 --enable-ivtv) _ivtv=yes ;;
915 --disable-ivtv) _ivtv=no ;;
916 --enable-v4l2) _v4l2=yes ;;
917 --disable-v4l2) _v4l2=no ;;
918 --enable-iconv) _iconv=yes ;;
919 --disable-iconv) _iconv=no ;;
920 --enable-langinfo) _langinfo=yes ;;
921 --disable-langinfo) _langinfo=no ;;
922 --enable-rtc) _rtc=yes ;;
923 --disable-rtc) _rtc=no ;;
924 --enable-libdv) _libdv=yes ;;
925 --disable-libdv) _libdv=no ;;
926 --enable-ossaudio) _ossaudio=yes ;;
927 --disable-ossaudio) _ossaudio=no ;;
928 --enable-arts) _arts=yes ;;
929 --disable-arts) _arts=no ;;
930 --enable-esd) _esd=yes ;;
931 --disable-esd) _esd=no ;;
932 --enable-pulse) _pulse=yes ;;
933 --disable-pulse) _pulse=no ;;
934 --enable-jack) _jack=yes ;;
935 --disable-jack) _jack=no ;;
936 --enable-openal) _openal=yes ;;
937 --disable-openal) _openal=no ;;
938 --enable-dart) _dart=yes ;;
939 --disable-dart) _dart=no ;;
940 --enable-mad) _mad=yes ;;
941 --disable-mad) _mad=no ;;
942 --enable-mp3lame) _mp3lame=yes ;;
943 --disable-mp3lame) _mp3lame=no ;;
944 --enable-toolame) _toolame=yes ;;
945 --disable-toolame) _toolame=no ;;
946 --enable-twolame) _twolame=yes ;;
947 --disable-twolame) _twolame=no ;;
948 --enable-libcdio) _libcdio=yes ;;
949 --disable-libcdio) _libcdio=no ;;
950 --enable-liblzo) _liblzo=yes ;;
951 --disable-liblzo) _liblzo=no ;;
952 --enable-libvorbis) _libvorbis=yes ;;
953 --disable-libvorbis) _libvorbis=no ;;
954 --enable-speex) _speex=yes ;;
955 --disable-speex) _speex=no ;;
956 --enable-tremor) _tremor=yes ;;
957 --disable-tremor) _tremor=no ;;
958 --enable-tremor-internal) _tremor_internal=yes ;;
959 --disable-tremor-internal) _tremor_internal=no ;;
960 --enable-tremor-low) _tremor_low=yes ;;
961 --disable-tremor-low) _tremor_low=no ;;
962 --enable-theora) _theora=yes ;;
963 --disable-theora) _theora=no ;;
964 --enable-mp3lib) _mp3lib=yes ;;
965 --disable-mp3lib) _mp3lib=no ;;
966 --enable-liba52-internal) _liba52_internal=yes ;;
967 --disable-liba52-internal) _liba52_internal=no ;;
968 --enable-liba52) _liba52=yes ;;
969 --disable-liba52) _liba52=no ;;
970 --enable-libdca) _libdca=yes ;;
971 --disable-libdca) _libdca=no ;;
972 --enable-libmpeg2) _libmpeg2=yes ;;
973 --disable-libmpeg2) _libmpeg2=no ;;
974 --enable-musepack) _musepack=yes ;;
975 --disable-musepack) _musepack=no ;;
976 --enable-faad) _faad=yes ;;
977 --disable-faad) _faad=no ;;
978 --enable-faad-internal) _faad_internal=yes ;;
979 --disable-faad-internal) _faad_internal=no ;;
980 --enable-faad-fixed) _faad_fixed=yes ;;
981 --disable-faad-fixed) _faad_fixed=no ;;
982 --enable-faac) _faac=yes ;;
983 --disable-faac) _faac=no ;;
984 --enable-ladspa) _ladspa=yes ;;
985 --disable-ladspa) _ladspa=no ;;
986 --enable-libbs2b) _libbs2b=yes ;;
987 --disable-libbs2b) _libbs2b=no ;;
988 --enable-xmms) _xmms=yes ;;
989 --disable-xmms) _xmms=no ;;
990 --enable-vcd) _vcd=yes ;;
991 --disable-vcd) _vcd=no ;;
992 --enable-dvdread) _dvdread=yes ;;
993 --disable-dvdread) _dvdread=no ;;
994 --enable-dvdread-internal) _dvdread_internal=yes ;;
995 --disable-dvdread-internal) _dvdread_internal=no ;;
996 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
997 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
998 --enable-dvdnav) _dvdnav=yes ;;
999 --disable-dvdnav) _dvdnav=no ;;
1000 --enable-xanim) _xanim=yes ;;
1001 --disable-xanim) _xanim=no ;;
1002 --enable-real) _real=yes ;;
1003 --disable-real) _real=no ;;
1004 --enable-live) _live=yes ;;
1005 --disable-live) _live=no ;;
1006 --enable-nemesi) _nemesi=yes ;;
1007 --disable-nemesi) _nemesi=no ;;
1008 --enable-xinerama) _xinerama=yes ;;
1009 --disable-xinerama) _xinerama=no ;;
1010 --enable-mga) _mga=yes ;;
1011 --disable-mga) _mga=no ;;
1012 --enable-xmga) _xmga=yes ;;
1013 --disable-xmga) _xmga=no ;;
1014 --enable-vm) _vm=yes ;;
1015 --disable-vm) _vm=no ;;
1016 --enable-xf86keysym) _xf86keysym=yes ;;
1017 --disable-xf86keysym) _xf86keysym=no ;;
1018 --enable-mlib) _mlib=yes ;;
1019 --disable-mlib) _mlib=no ;;
1020 --enable-sunaudio) _sunaudio=yes ;;
1021 --disable-sunaudio) _sunaudio=no ;;
1022 --enable-sgiaudio) _sgiaudio=yes ;;
1023 --disable-sgiaudio) _sgiaudio=no ;;
1024 --enable-alsa) _alsa=yes ;;
1025 --disable-alsa) _alsa=no ;;
1026 --enable-tv) _tv=yes ;;
1027 --disable-tv) _tv=no ;;
1028 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1029 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1030 --enable-tv-v4l1) _tv_v4l1=yes ;;
1031 --disable-tv-v4l1) _tv_v4l1=no ;;
1032 --enable-tv-v4l2) _tv_v4l2=yes ;;
1033 --disable-tv-v4l2) _tv_v4l2=no ;;
1034 --enable-tv-dshow) _tv_dshow=yes ;;
1035 --disable-tv-dshow) _tv_dshow=no ;;
1036 --enable-tv-teletext) _tv_teletext=yes ;;
1037 --disable-tv-teletext) _tv_teletext=no ;;
1038 --enable-radio) _radio=yes ;;
1039 --enable-radio-capture) _radio_capture=yes ;;
1040 --disable-radio-capture) _radio_capture=no ;;
1041 --disable-radio) _radio=no ;;
1042 --enable-radio-v4l) _radio_v4l=yes ;;
1043 --disable-radio-v4l) _radio_v4l=no ;;
1044 --enable-radio-v4l2) _radio_v4l2=yes ;;
1045 --disable-radio-v4l2) _radio_v4l2=no ;;
1046 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1047 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1048 --enable-pvr) _pvr=yes ;;
1049 --disable-pvr) _pvr=no ;;
1050 --enable-fastmemcpy) _fastmemcpy=yes ;;
1051 --disable-fastmemcpy) _fastmemcpy=no ;;
1052 --enable-network) _network=yes ;;
1053 --disable-network) _network=no ;;
1054 --enable-winsock2_h) _winsock2_h=yes ;;
1055 --disable-winsock2_h) _winsock2_h=no ;;
1056 --enable-smb) _smb=yes ;;
1057 --disable-smb) _smb=no ;;
1058 --enable-vidix) _vidix=yes ;;
1059 --disable-vidix) _vidix=no ;;
1060 --with-vidix-drivers=*)
1061 _vidix_drivers=$(echo $ac_option | cut -d '=' -f 2)
1063 --disable-vidix-pcidb) _vidix_pcidb=no ;;
1064 --enable-dhahelper) _dhahelper=yes ;;
1065 --disable-dhahelper) _dhahelper=no ;;
1066 --enable-svgalib_helper) _svgalib_helper=yes ;;
1067 --disable-svgalib_helper) _svgalib_helper=no ;;
1068 --enable-joystick) _joystick=yes ;;
1069 --disable-joystick) _joystick=no ;;
1070 --enable-xvid) _xvid=yes ;;
1071 --disable-xvid) _xvid=no ;;
1072 --enable-x264) _x264=yes ;;
1073 --disable-x264) _x264=no ;;
1074 --enable-libnut) _libnut=yes ;;
1075 --disable-libnut) _libnut=no ;;
1076 --enable-libavutil) _libavutil=yes ;;
1077 --disable-libavutil) _libavutil=no ;;
1078 --enable-libavcodec) _libavcodec=yes ;;
1079 --disable-libavcodec) _libavcodec=no ;;
1080 --enable-libavformat) _libavformat=yes ;;
1081 --disable-libavformat) _libavformat=no ;;
1082 --enable-libpostproc) _libpostproc=yes ;;
1083 --disable-libpostproc) _libpostproc=no ;;
1084 --enable-libswscale) _libswscale=yes ;;
1085 --disable-libswscale) _libswscale=no ;;
1086 --ffmpeg-source-dir=*)
1087 _ffmpeg_source=$(echo $ac_option | cut -d '=' -f 2 ) ;;
1089 --enable-lirc) _lirc=yes ;;
1090 --disable-lirc) _lirc=no ;;
1091 --enable-lircc) _lircc=yes ;;
1092 --disable-lircc) _lircc=no ;;
1093 --enable-apple-remote) _apple_remote=yes ;;
1094 --disable-apple-remote) _apple_remote=no ;;
1095 --enable-apple-ir) _apple_ir=yes ;;
1096 --disable-apple-ir) _apple_ir=no ;;
1097 --enable-gui) _gui=yes ;;
1098 --disable-gui) _gui=no ;;
1099 --enable-gtk1) _gtk1=yes ;;
1100 --disable-gtk1) _gtk1=no ;;
1101 --enable-termcap) _termcap=yes ;;
1102 --disable-termcap) _termcap=no ;;
1103 --enable-termios) _termios=yes ;;
1104 --disable-termios) _termios=no ;;
1105 --enable-3dfx) _3dfx=yes ;;
1106 --disable-3dfx) _3dfx=no ;;
1107 --enable-s3fb) _s3fb=yes ;;
1108 --disable-s3fb) _s3fb=no ;;
1109 --enable-wii) _wii=yes ;;
1110 --disable-wii) _wii=no ;;
1111 --enable-tdfxfb) _tdfxfb=yes ;;
1112 --disable-tdfxfb) _tdfxfb=no ;;
1113 --disable-tdfxvid) _tdfxvid=no ;;
1114 --enable-tdfxvid) _tdfxvid=yes ;;
1115 --disable-xvr100) _xvr100=no ;;
1116 --enable-xvr100) _xvr100=yes ;;
1117 --disable-tga) _tga=no ;;
1118 --enable-tga) _tga=yes ;;
1119 --enable-directfb) _directfb=yes ;;
1120 --disable-directfb) _directfb=no ;;
1121 --enable-zr) _zr=yes ;;
1122 --disable-zr) _zr=no ;;
1123 --enable-bl) _bl=yes ;;
1124 --disable-bl) _bl=no ;;
1125 --enable-mtrr) _mtrr=yes ;;
1126 --disable-mtrr) _mtrr=no ;;
1127 --enable-largefiles) _largefiles=yes ;;
1128 --disable-largefiles) _largefiles=no ;;
1129 --enable-shm) _shm=yes ;;
1130 --disable-shm) _shm=no ;;
1131 --enable-select) _select=yes ;;
1132 --disable-select) _select=no ;;
1133 --enable-linux-devfs) _linux_devfs=yes ;;
1134 --disable-linux-devfs) _linux_devfs=no ;;
1135 --enable-cdparanoia) _cdparanoia=yes ;;
1136 --disable-cdparanoia) _cdparanoia=no ;;
1137 --enable-cddb) _cddb=yes ;;
1138 --disable-cddb) _cddb=no ;;
1139 --enable-big-endian) _big_endian=yes ;;
1140 --disable-big-endian) _big_endian=no ;;
1141 --enable-bitmap-font) _bitmap_font=yes ;;
1142 --disable-bitmap-font) _bitmap_font=no ;;
1143 --enable-freetype) _freetype=yes ;;
1144 --disable-freetype) _freetype=no ;;
1145 --enable-fontconfig) _fontconfig=yes ;;
1146 --disable-fontconfig) _fontconfig=no ;;
1147 --enable-unrarexec) _unrar_exec=yes ;;
1148 --disable-unrarexec) _unrar_exec=no ;;
1149 --enable-ftp) _ftp=yes ;;
1150 --disable-ftp) _ftp=no ;;
1151 --enable-vstream) _vstream=yes ;;
1152 --disable-vstream) _vstream=no ;;
1153 --enable-pthreads) _pthreads=yes ;;
1154 --disable-pthreads) _pthreads=no ;;
1155 --enable-w32threads) _w32threads=yes ;;
1156 --disable-w32threads) _w32threads=no ;;
1157 --enable-ass) _ass=yes ;;
1158 --disable-ass) _ass=no ;;
1159 --enable-rpath) _rpath=yes ;;
1160 --disable-rpath) _rpath=no ;;
1162 --enable-fribidi) _fribidi=yes ;;
1163 --disable-fribidi) _fribidi=no ;;
1165 --enable-enca) _enca=yes ;;
1166 --disable-enca) _enca=no ;;
1168 --enable-inet6) _inet6=yes ;;
1169 --disable-inet6) _inet6=no ;;
1171 --enable-gethostbyname2) _gethostbyname2=yes ;;
1172 --disable-gethostbyname2) _gethostbyname2=no ;;
1174 --enable-dga1) _dga1=yes ;;
1175 --disable-dga1) _dga1=no ;;
1176 --enable-dga2) _dga2=yes ;;
1177 --disable-dga2) _dga2=no ;;
1179 --enable-menu) _menu=yes ;;
1180 --disable-menu) _menu=no ;;
1182 --enable-qtx) _qtx=yes ;;
1183 --disable-qtx) _qtx=no ;;
1185 --enable-coreaudio) _coreaudio=yes ;;
1186 --disable-coreaudio) _coreaudio=no ;;
1187 --enable-corevideo) _corevideo=yes ;;
1188 --disable-corevideo) _corevideo=no ;;
1189 --enable-quartz) _quartz=yes ;;
1190 --disable-quartz) _quartz=no ;;
1191 --enable-macosx-finder) _macosx_finder=yes ;;
1192 --disable-macosx-finder) _macosx_finder=no ;;
1193 --enable-macosx-bundle) _macosx_bundle=yes;;
1194 --disable-macosx-bundle) _macosx_bundle=no;;
1196 --enable-maemo) _maemo=yes ;;
1197 --disable-maemo) _maemo=no ;;
1199 --enable-sortsub) _sortsub=yes ;;
1200 --disable-sortsub) _sortsub=no ;;
1202 --enable-crash-debug) _crash_debug=yes ;;
1203 --disable-crash-debug) _crash_debug=no ;;
1204 --enable-sighandler) _sighandler=yes ;;
1205 --disable-sighandler) _sighandler=no ;;
1206 --enable-win32dll) _win32dll=yes ;;
1207 --disable-win32dll) _win32dll=no ;;
1209 --enable-sse) _sse=yes ;;
1210 --disable-sse) _sse=no ;;
1211 --enable-sse2) _sse2=yes ;;
1212 --disable-sse2) _sse2=no ;;
1213 --enable-ssse3) _ssse3=yes ;;
1214 --disable-ssse3) _ssse3=no ;;
1215 --enable-mmxext) _mmxext=yes ;;
1216 --disable-mmxext) _mmxext=no ;;
1217 --enable-3dnow) _3dnow=yes ;;
1218 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1219 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1220 --disable-3dnowext) _3dnowext=no ;;
1221 --enable-cmov) _cmov=yes ;;
1222 --disable-cmov) _cmov=no ;;
1223 --enable-fast-cmov) _fast_cmov=yes ;;
1224 --disable-fast-cmov) _fast_cmov=no ;;
1225 --enable-altivec) _altivec=yes ;;
1226 --disable-altivec) _altivec=no ;;
1227 --enable-armv5te) _armv5te=yes ;;
1228 --disable-armv5te) _armv5te=no ;;
1229 --enable-armv6) _armv6=yes ;;
1230 --disable-armv6) _armv6=no ;;
1231 --enable-armv6t2) _armv6t2=yes ;;
1232 --disable-armv6t2) _armv6t2=no ;;
1233 --enable-armvfp) _armvfp=yes ;;
1234 --disable-armvfp) _armvfp=no ;;
1235 --enable-iwmmxt) _iwmmxt=yes ;;
1236 --disable-iwmmxt) _iwmmxt=no ;;
1237 --enable-mmx) _mmx=yes ;;
1238 --disable-mmx) # 3Dnow! and MMX2 require MMX
1239 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1242 echo "Unknown parameter: $ac_option"
1243 exit 1
1246 esac
1247 done
1249 if test "$_gui" = yes ; then
1250 die "Internal GUI was removed from MPlayer. Please use one of many available\n frontends\
1251 (http://www.mplayerhq.hu/design7/projects.html#mplayer_frontends)."
1254 # Atmos: moved this here, to be correct, if --prefix is specified
1255 test -z "$_bindir" && _bindir="$_prefix/bin"
1256 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1257 test -z "$_mandir" && _mandir="$_prefix/share/man"
1258 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1259 test -z "$_libdir" && _libdir="$_prefix/lib"
1261 # Determine our OS name and CPU architecture
1262 if test -z "$_target" ; then
1263 # OS name
1264 system_name=$(uname -s 2>&1)
1265 case "$system_name" in
1266 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1268 IRIX*)
1269 system_name=IRIX
1271 GNU/kFreeBSD)
1272 system_name=FreeBSD
1274 HP-UX*)
1275 system_name=HP-UX
1277 [cC][yY][gG][wW][iI][nN]*)
1278 system_name=CYGWIN
1280 MINGW32*)
1281 system_name=MINGW32
1283 OS/2*)
1284 system_name=OS/2
1287 system_name="$system_name-UNKNOWN"
1289 esac
1292 # host's CPU/instruction set
1293 host_arch=$(uname -p 2>&1)
1294 case "$host_arch" in
1295 i386|sparc|ppc|alpha|arm|mips|vax)
1297 powerpc) # Darwin returns 'powerpc'
1298 host_arch=ppc
1300 *) # uname -p on Linux returns 'unknown' for the processor type,
1301 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1303 # Maybe uname -m (machine hardware name) returns something we
1304 # recognize.
1306 # x86/x86pc is used by QNX
1307 case "$(uname -m 2>&1)" in
1308 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 ;;
1309 ia64) host_arch=ia64 ;;
1310 x86_64|amd64)
1311 if [ -n "$($_cc -dumpmachine | sed -n '/^x86_64-/p;/^amd64-/p')" -a \
1312 -z "$(echo $CFLAGS $_cc | grep -- -m32)" ]; then
1313 host_arch=x86_64
1314 else
1315 host_arch=i386
1318 macppc|ppc) host_arch=ppc ;;
1319 ppc64) host_arch=ppc64 ;;
1320 alpha) host_arch=alpha ;;
1321 sparc) host_arch=sparc ;;
1322 sparc64) host_arch=sparc64 ;;
1323 parisc*|hppa*|9000*) host_arch=hppa ;;
1324 arm*|zaurus|cats) host_arch=arm ;;
1325 sh3|sh4|sh4a) host_arch=sh ;;
1326 s390) host_arch=s390 ;;
1327 s390x) host_arch=s390x ;;
1328 *mips*) host_arch=mips ;;
1329 vax) host_arch=vax ;;
1330 xtensa*) host_arch=xtensa ;;
1331 *) host_arch=UNKNOWN ;;
1332 esac
1334 esac
1335 else # if test -z "$_target"
1336 system_name=$(echo $_target | cut -d '-' -f 2)
1337 case "$(echo $system_name | tr A-Z a-z)" in
1338 linux) system_name=Linux ;;
1339 freebsd) system_name=FreeBSD ;;
1340 gnu/kfreebsd) system_name=FreeBSD ;;
1341 netbsd) system_name=NetBSD ;;
1342 bsd/os) system_name=BSD/OS ;;
1343 openbsd) system_name=OpenBSD ;;
1344 dragonfly) system_name=DragonFly ;;
1345 sunos) system_name=SunOS ;;
1346 qnx) system_name=QNX ;;
1347 morphos) system_name=MorphOS ;;
1348 amigaos) system_name=AmigaOS ;;
1349 mingw32msvc) system_name=MINGW32 ;;
1350 esac
1351 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1352 host_arch=$(echo $_target | cut -d '-' -f 1)
1353 if test $(echo $host_arch) != "x86_64" ; then
1354 host_arch=$(echo $host_arch | tr '_' '-')
1358 echo "Detected operating system: $system_name"
1359 echo "Detected host architecture: $host_arch"
1361 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1362 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1366 extra_cflags="-I. $extra_cflags"
1367 _timer=timer-linux.c
1368 _getch=getch2.c
1369 if freebsd ; then
1370 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1371 extra_cflags="$extra_cflags -I/usr/local/include"
1374 if netbsd || dragonfly ; then
1375 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1376 extra_cflags="$extra_cflags -I/usr/pkg/include"
1379 if darwin; then
1380 extra_cflags="-mdynamic-no-pic -falign-loops=16 -shared-libgcc $extra_cflags"
1381 _timer=timer-darwin.c
1384 if aix ; then
1385 extra_ldflags="$extra_ldflags -lC"
1388 if irix ; then
1389 _ranlib='ar -r'
1390 elif linux ; then
1391 _ranlib='true'
1394 if win32 ; then
1395 _exesuf=".exe"
1396 # -lwinmm is always needed for osdep/timer-win2.c
1397 extra_ldflags="$extra_ldflags -lwinmm"
1398 _pe_executable=yes
1399 _timer=timer-win2.c
1400 _priority=yes
1401 def_dos_paths="#define HAVE_DOS_PATHS 1"
1402 def_priority="#define CONFIG_PRIORITY 1"
1405 if mingw32 ; then
1406 _getch=getch2-win.c
1407 _need_shmem=no
1410 if amigaos ; then
1411 _select=no
1412 _sighandler=no
1413 _stream_cache=no
1414 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1415 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1418 if qnx ; then
1419 extra_ldflags="$extra_ldflags -lph"
1422 if os2 ; then
1423 _exesuf=".exe"
1424 _getch=getch2-os2.c
1425 _need_shmem=no
1426 _priority=yes
1427 def_dos_paths="#define HAVE_DOS_PATHS 1"
1428 def_priority="#define CONFIG_PRIORITY 1"
1431 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1432 test "$I" && break
1433 done
1436 TMPLOG="configure.log"
1437 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
1438 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
1439 TMPEXE="$I/mplayer-conf-$RANDOM-$$$_exesuf"
1440 TMPH="$I/mplayer-conf-$RANDOM-$$.h"
1441 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
1443 rm -f "$TMPLOG"
1444 echo configuration: $_configuration > "$TMPLOG"
1445 echo >> "$TMPLOG"
1448 # Checking CC version...
1449 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1450 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1451 echocheck "$_cc version"
1452 cc_vendor=intel
1453 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1454 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1455 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1456 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1457 # TODO verify older icc/ecc compatibility
1458 case $cc_version in
1460 cc_version="v. ?.??, bad"
1461 cc_fail=yes
1463 10.1|11.0|11.1)
1464 cc_version="$cc_version, ok"
1467 cc_version="$cc_version, bad"
1468 cc_fail=yes
1470 esac
1471 echores "$cc_version"
1472 else
1473 for _cc in "$_cc" cc gcc ; do
1474 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1475 if test "$cc_name_tmp" = "gcc"; then
1476 cc_name=$cc_name_tmp
1477 echocheck "$_cc version"
1478 cc_vendor=gnu
1479 cc_version=$($_cc -dumpversion 2>&1)
1480 case $cc_version in
1481 2.96*)
1482 cc_fail=yes
1485 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1486 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1487 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1489 esac
1490 echores "$cc_version"
1491 break
1493 done
1494 fi # icc
1495 test "$cc_fail" = yes && die "unsupported compiler version"
1497 echocheck "host cc"
1498 test "$_host_cc" || _host_cc=$_cc
1499 echores $_host_cc
1501 echocheck "cross compilation"
1502 if test $_cross_compile = auto ; then
1503 cat > $TMPC << EOF
1504 int main(void) { return 0; }
1506 _cross_compile=yes
1507 cc_check && "$TMPEXE" && _cross_compile=no
1509 echores $_cross_compile
1511 if test $_cross_compile = yes; then
1512 tmp_run() {
1513 return 0
1517 # ---
1519 # now that we know what compiler should be used for compilation, try to find
1520 # out which assembler is used by the $_cc compiler
1521 if test "$_as" = auto ; then
1522 _as=$($_cc -print-prog-name=as)
1523 test -z "$_as" && _as=as
1526 if test "$_nm" = auto ; then
1527 _nm=$($_cc -print-prog-name=nm)
1528 test -z "$_nm" && _nm=nm
1531 # XXX: this should be ok..
1532 _cpuinfo="echo"
1534 if test "$_runtime_cpudetection" = no ; then
1536 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1537 # FIXME: Remove the cygwin check once AMD CPUs are supported
1538 if test -r /proc/cpuinfo && ! cygwin; then
1539 # Linux with /proc mounted, extract CPU information from it
1540 _cpuinfo="cat /proc/cpuinfo"
1541 elif test -r /compat/linux/proc/cpuinfo && ! x86_32 ; then
1542 # FreeBSD with Linux emulation /proc mounted,
1543 # extract CPU information from it
1544 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1545 elif darwin && ! x86 ; then
1546 # use hostinfo on Darwin
1547 _cpuinfo="hostinfo"
1548 elif aix; then
1549 # use 'lsattr' on AIX
1550 _cpuinfo="lsattr -E -l proc0 -a type"
1551 elif x86; then
1552 # all other OSes try to extract CPU information from a small helper
1553 # program cpuinfo instead
1554 $_cc -o cpuinfo$_exesuf cpuinfo.c
1555 _cpuinfo="./cpuinfo$_exesuf"
1558 if x86 ; then
1559 # gather more CPU information
1560 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1561 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1562 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1563 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1564 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1566 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1568 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1569 -e s/xmm/sse/ -e s/kni/sse/)
1571 for ext in $pparam ; do
1572 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1573 done
1575 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1576 test $_sse = kernel_check && _mmxext=kernel_check
1578 echocheck "CPU vendor"
1579 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1581 echocheck "CPU type"
1582 echores "$pname"
1585 fi # test "$_runtime_cpudetection" = no
1587 if x86 && test "$_runtime_cpudetection" = no ; then
1588 extcheck() {
1589 if test "$1" = kernel_check ; then
1590 echocheck "kernel support of $2"
1591 cat > $TMPC <<EOF
1592 #include <stdlib.h>
1593 #include <signal.h>
1594 void catch() { exit(1); }
1595 int main(void) {
1596 signal(SIGILL, catch);
1597 __asm__ volatile ("$3":::"memory"); return 0;
1601 if cc_check && tmp_run ; then
1602 eval _$2=yes
1603 echores "yes"
1604 _optimizing="$_optimizing $2"
1605 return 0
1606 else
1607 eval _$2=no
1608 echores "failed"
1609 echo "It seems that your kernel does not correctly support $2."
1610 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1611 return 1
1614 return 0
1617 extcheck $_mmx "mmx" "emms"
1618 extcheck $_mmxext "mmxext" "sfence"
1619 extcheck $_3dnow "3dnow" "femms"
1620 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1621 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1622 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1623 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1624 extcheck $_cmov "cmov" "cmovb %%eax,%%ebx"
1626 echocheck "mtrr support"
1627 if test "$_mtrr" = kernel_check ; then
1628 _mtrr="yes"
1629 _optimizing="$_optimizing mtrr"
1631 echores "$_mtrr"
1633 if test "$_gcc3_ext" != ""; then
1634 # if we had to disable sse/sse2 because the active kernel does not
1635 # support this instruction set extension, we also have to tell
1636 # gcc3 to not generate sse/sse2 instructions for normal C code
1637 cat > $TMPC << EOF
1638 int main(void) { return 0; }
1640 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1646 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1647 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1648 _arch_all='X86 X86_32 X86_64 IA64 SPARC ARM AVR32 SH4 PPC PPC64 ALPHA MIPS SGI_MIPS PA_RISC S390 S390X VAX BFIN XTENSA GENERIC'
1649 case "$host_arch" in
1650 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1651 _arch='X86 X86_32'
1652 _target_arch="ARCH_X86 = yes"
1653 _target_subarch="ARCH_X86_32 = yes"
1654 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1655 iproc=486
1656 proc=i486
1659 if test "$_runtime_cpudetection" = no ; then
1660 case "$pvendor" in
1661 AuthenticAMD)
1662 case "$pfamily" in
1663 3) proc=i386 iproc=386 ;;
1664 4) proc=i486 iproc=486 ;;
1665 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1666 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1667 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1668 proc=k6-3
1669 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1670 proc=geode
1671 elif test "$pmodel" -ge 8; then
1672 proc=k6-2
1673 elif test "$pmodel" -ge 6; then
1674 proc=k6
1675 else
1676 proc=i586
1679 6) iproc=686
1680 # It's a bit difficult to determine the correct type of Family 6
1681 # AMD CPUs just from their signature. Instead, we check directly
1682 # whether it supports SSE.
1683 if test "$_sse" = yes; then
1684 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1685 proc=athlon-xp
1686 else
1687 # Again, gcc treats athlon and athlon-tbird similarly.
1688 proc=athlon
1691 15) iproc=686
1692 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1693 # caught and remedied in the optimization tests below.
1694 proc=k8
1697 *) proc=k8 iproc=686 ;;
1698 esac
1700 GenuineIntel)
1701 case "$pfamily" in
1702 3) proc=i386 iproc=386 ;;
1703 4) proc=i486 iproc=486 ;;
1704 5) iproc=586
1705 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1706 proc=pentium-mmx # 4 is desktop, 8 is mobile
1707 else
1708 proc=i586
1711 6) iproc=686
1712 if test "$pmodel" -ge 15; then
1713 proc=core2
1714 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1715 proc=pentium-m
1716 elif test "$pmodel" -ge 7; then
1717 proc=pentium3
1718 elif test "$pmodel" -ge 3; then
1719 proc=pentium2
1720 else
1721 proc=i686
1724 15) iproc=686
1725 # A nocona in 32-bit mode has no more capabilities than a prescott.
1726 if test "$pmodel" -ge 3; then
1727 proc=prescott
1728 else
1729 proc=pentium4
1731 test $_fast_cmov = "auto" && _fast_cmov=no
1733 *) proc=prescott iproc=686 ;;
1734 esac
1736 CentaurHauls)
1737 case "$pfamily" in
1738 5) iproc=586
1739 if test "$pmodel" -ge 8; then
1740 proc=winchip2
1741 elif test "$pmodel" -ge 4; then
1742 proc=winchip-c6
1743 else
1744 proc=i586
1747 6) iproc=686
1748 if test "$pmodel" -ge 9; then
1749 proc=c3-2
1750 else
1751 proc=c3
1752 iproc=586
1755 *) proc=i686 iproc=i686 ;;
1756 esac
1758 unknown)
1759 case "$pfamily" in
1760 3) proc=i386 iproc=386 ;;
1761 4) proc=i486 iproc=486 ;;
1762 *) proc=i586 iproc=586 ;;
1763 esac
1766 proc=i586 iproc=586 ;;
1767 esac
1768 fi # test "$_runtime_cpudetection" = no
1771 # check that gcc supports our CPU, if not, fall back to earlier ones
1772 # LGB: check -mcpu and -march swithing step by step with enabling
1773 # to fall back till 386.
1775 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1777 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1778 cpuopt=-mtune
1779 else
1780 cpuopt=-mcpu
1783 echocheck "GCC & CPU optimization abilities"
1784 cat > $TMPC << EOF
1785 int main(void) { return 0; }
1787 if test "$_runtime_cpudetection" = no ; then
1788 cc_check -march=native && proc=native
1789 if test "$proc" = "k8"; then
1790 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1792 if test "$proc" = "athlon-xp"; then
1793 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1795 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1796 cc_check -march=$proc $cpuopt=$proc || proc=k6
1798 if test "$proc" = "k6" || test "$proc" = "c3"; then
1799 if ! cc_check -march=$proc $cpuopt=$proc; then
1800 if cc_check -march=i586 $cpuopt=i686; then
1801 proc=i586-i686
1802 else
1803 proc=i586
1807 if test "$proc" = "prescott" ; then
1808 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1810 if test "$proc" = "core2" ; then
1811 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1813 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
1814 cc_check -march=$proc $cpuopt=$proc || proc=i686
1816 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1817 cc_check -march=$proc $cpuopt=$proc || proc=i586
1819 if test "$proc" = "i586"; then
1820 cc_check -march=$proc $cpuopt=$proc || proc=i486
1822 if test "$proc" = "i486" ; then
1823 cc_check -march=$proc $cpuopt=$proc || proc=i386
1825 if test "$proc" = "i386" ; then
1826 cc_check -march=$proc $cpuopt=$proc || proc=error
1828 if test "$proc" = "error" ; then
1829 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1830 _mcpu=""
1831 _march=""
1832 _optimizing=""
1833 elif test "$proc" = "i586-i686"; then
1834 _march="-march=i586"
1835 _mcpu="$cpuopt=i686"
1836 _optimizing="$proc"
1837 else
1838 _march="-march=$proc"
1839 _mcpu="$cpuopt=$proc"
1840 _optimizing="$proc"
1842 else # if test "$_runtime_cpudetection" = no
1843 _mcpu="$cpuopt=generic"
1844 # at least i486 required, for bswap instruction
1845 _march="-march=i486"
1846 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1847 cc_check $_mcpu || _mcpu=""
1848 cc_check $_march $_mcpu || _march=""
1851 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1852 ## autodetected mcpu/march parameters
1853 if test "$_target" ; then
1854 # TODO: it may be a good idea to check GCC and fall back in all cases
1855 if test "$host_arch" = "i586-i686"; then
1856 _march="-march=i586"
1857 _mcpu="$cpuopt=i686"
1858 else
1859 _march="-march=$host_arch"
1860 _mcpu="$cpuopt=$host_arch"
1863 proc="$host_arch"
1865 case "$proc" in
1866 i386) iproc=386 ;;
1867 i486) iproc=486 ;;
1868 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1869 i686|athlon*|pentium*) iproc=686 ;;
1870 *) iproc=586 ;;
1871 esac
1874 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
1875 _fast_cmov="yes"
1876 else
1877 _fast_cmov="no"
1880 echores "$proc"
1883 ia64)
1884 _arch='IA64'
1885 _target_arch='ARCH_IA64 = yes'
1886 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1887 iproc='ia64'
1890 x86_64|amd64)
1891 _arch='X86 X86_64'
1892 _target_subarch='ARCH_X86_64 = yes'
1893 _target_arch="ARCH_X86 = yes"
1894 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1895 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1896 iproc='x86_64'
1898 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1899 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1900 cpuopt=-mtune
1901 else
1902 cpuopt=-mcpu
1904 test $_fast_cmov = "auto" && _fast_cmov=yes
1905 if test "$_runtime_cpudetection" = no ; then
1906 case "$pvendor" in
1907 AuthenticAMD)
1908 proc=k8;;
1909 GenuineIntel)
1910 case "$pfamily" in
1911 6) proc=core2;;
1913 # 64-bit prescotts exist, but as far as GCC is concerned they
1914 # have the same capabilities as a nocona.
1915 proc=nocona
1917 esac
1920 proc=error;;
1921 esac
1922 fi # test "$_runtime_cpudetection" = no
1924 echocheck "GCC & CPU optimization abilities"
1925 cat > $TMPC << EOF
1926 int main(void) { return 0; }
1928 # This is a stripped-down version of the i386 fallback.
1929 if test "$_runtime_cpudetection" = no ; then
1930 cc_check -march=native && proc=native
1931 # --- AMD processors ---
1932 if test "$proc" = "k8"; then
1933 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1935 # This will fail if gcc version < 3.3, which is ok because earlier
1936 # versions don't really support 64-bit on amd64.
1937 # Is this a valid assumption? -Corey
1938 if test "$proc" = "athlon-xp"; then
1939 cc_check -march=$proc $cpuopt=$proc || proc=error
1941 # --- Intel processors ---
1942 if test "$proc" = "core2"; then
1943 cc_check -march=$proc $cpuopt=$proc || proc=nocona
1945 if test "$proc" = "nocona"; then
1946 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1948 if test "$proc" = "pentium4"; then
1949 cc_check -march=$proc $cpuopt=$proc || proc=error
1952 _march="-march=$proc"
1953 _mcpu="$cpuopt=$proc"
1954 if test "$proc" = "error" ; then
1955 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1956 _mcpu=""
1957 _march=""
1959 else # if test "$_runtime_cpudetection" = no
1960 # x86-64 is an undocumented option, an intersection of k8 and nocona.
1961 _march="-march=x86-64"
1962 _mcpu="$cpuopt=generic"
1963 cc_check $_mcpu || _mcpu="x86-64"
1964 cc_check $_mcpu || _mcpu=""
1965 cc_check $_march $_mcpu || _march=""
1968 _optimizing=""
1970 echores "$proc"
1973 sparc|sparc64)
1974 _arch='SPARC'
1975 _target_arch='ARCH_SPARC = yes'
1976 iproc='sparc'
1977 if test "$host_arch" = "sparc64" ; then
1978 _vis='yes'
1979 proc='ultrasparc'
1980 def_fast_64bit='#define HAVE_FAST_64BIT 1'
1981 elif sunos ; then
1982 echocheck "CPU type"
1983 karch=$(uname -m)
1984 case "$(echo $karch)" in
1985 sun4) proc=v7 ;;
1986 sun4c) proc=v7 ;;
1987 sun4d) proc=v8 ;;
1988 sun4m) proc=v8 ;;
1989 sun4u) proc=ultrasparc _vis='yes' ;;
1990 sun4v) proc=v9 ;;
1991 *) proc=v8 ;;
1992 esac
1993 echores "$proc"
1994 else
1995 proc=v8
1997 _mcpu="-mcpu=$proc"
1998 _optimizing="$proc"
2001 arm|armv4l|armv5tel)
2002 _arch='ARM'
2003 _target_arch='ARCH_ARM = yes'
2004 iproc='arm'
2007 avr32)
2008 _arch='AVR32'
2009 _target_arch='ARCH_AVR32 = yes'
2010 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2011 iproc='avr32'
2014 sh|sh4)
2015 _arch='SH4'
2016 _target_arch='ARCH_SH4 = yes'
2017 iproc='sh4'
2020 ppc|ppc64|powerpc|powerpc64)
2021 _arch='PPC'
2022 def_dcbzl='#define HAVE_DCBZL 0'
2023 _target_arch='ARCH_PPC = yes'
2024 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2025 iproc='ppc'
2027 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2028 _arch='PPC PPC64'
2029 _target_subarch='ARCH_PPC64 = yes'
2030 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2032 echocheck "CPU type"
2033 case $system_name in
2034 Linux)
2035 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2036 if test -n "$($_cpuinfo | grep altivec)"; then
2037 test $_altivec = auto && _altivec=yes
2040 Darwin)
2041 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2042 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2043 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2044 test $_altivec = auto && _altivec=yes
2047 NetBSD)
2048 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2049 case $cc_version in
2050 2*|3.0*|3.1*|3.2*|3.3*)
2053 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2054 test $_altivec = auto && _altivec=yes
2057 esac
2059 AIX)
2060 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2062 esac
2063 if test "$_altivec" = yes; then
2064 echores "$proc altivec"
2065 else
2066 _altivec=no
2067 echores "$proc"
2070 echocheck "GCC & CPU optimization abilities"
2072 if test -n "$proc"; then
2073 case "$proc" in
2074 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2075 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2076 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2077 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2078 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2079 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2080 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2081 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2082 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2083 *) ;;
2084 esac
2085 # gcc 3.1(.1) and up supports 7400 and 7450
2086 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2087 case "$proc" in
2088 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2089 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2090 *) ;;
2091 esac
2093 # gcc 3.2 and up supports 970
2094 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2095 case "$proc" in
2096 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2097 def_dcbzl='#define HAVE_DCBZL 1' ;;
2098 *) ;;
2099 esac
2101 # gcc 3.3 and up supports POWER4
2102 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2103 case "$proc" in
2104 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2105 *) ;;
2106 esac
2108 # gcc 3.4 and up supports 440*
2109 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2110 case "$proc" in
2111 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2112 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2113 *) ;;
2114 esac
2116 # gcc 4.0 and up supports POWER5
2117 if test "$_cc_major" -ge "4"; then
2118 case "$proc" in
2119 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2120 *) ;;
2121 esac
2125 if test -n "$_mcpu"; then
2126 _optimizing=$(echo $_mcpu | cut -c 8-)
2127 echores "$_optimizing"
2128 else
2129 echores "none"
2134 alpha*)
2135 _arch='ALPHA'
2136 _target_arch='ARCH_ALPHA = yes'
2137 iproc='alpha'
2138 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2140 echocheck "CPU type"
2141 cat > $TMPC << EOF
2142 int main(void) {
2143 unsigned long ver, mask;
2144 __asm__ ("implver %0" : "=r" (ver));
2145 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2146 printf("%ld-%x\n", ver, ~mask);
2147 return 0;
2150 $_cc -o "$TMPEXE" "$TMPC"
2151 case $("$TMPEXE") in
2153 0-0) proc="ev4"; _mvi="0";;
2154 1-0) proc="ev5"; _mvi="0";;
2155 1-1) proc="ev56"; _mvi="0";;
2156 1-101) proc="pca56"; _mvi="1";;
2157 2-303) proc="ev6"; _mvi="1";;
2158 2-307) proc="ev67"; _mvi="1";;
2159 2-1307) proc="ev68"; _mvi="1";;
2160 esac
2161 echores "$proc"
2163 echocheck "GCC & CPU optimization abilities"
2164 if test "$proc" = "ev68" ; then
2165 cc_check -mcpu=$proc || proc=ev67
2167 if test "$proc" = "ev67" ; then
2168 cc_check -mcpu=$proc || proc=ev6
2170 _mcpu="-mcpu=$proc"
2171 echores "$proc"
2173 _optimizing="$proc"
2176 mips)
2177 _arch='SGI_MIPS'
2178 _target_arch='ARCH_SGI_MIPS = yes'
2179 iproc='sgi-mips'
2181 if irix ; then
2182 echocheck "CPU type"
2183 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2184 case "$(echo $proc)" in
2185 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2186 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2187 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2188 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2189 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2190 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2191 esac
2192 # gcc < 3.x does not support -mtune.
2193 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2194 _mcpu=''
2196 echores "$proc"
2201 hppa)
2202 _arch='PA_RISC'
2203 _target_arch='ARCH_PA_RISC = yes'
2204 iproc='PA-RISC'
2207 s390)
2208 _arch='S390'
2209 _target_arch='ARCH_S390 = yes'
2210 iproc='390'
2213 s390x)
2214 _arch='S390X'
2215 _target_arch='ARCH_S390X = yes'
2216 iproc='390x'
2219 vax)
2220 _arch='VAX'
2221 _target_arch='ARCH_VAX = yes'
2222 iproc='vax'
2225 xtensa)
2226 _arch='XTENSA'
2227 _target_arch='ARCH_XTENSA = yes'
2228 iproc='xtensa'
2231 generic)
2232 _arch='GENERIC'
2233 _target_arch='ARCH_GENERIC = yes'
2237 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2238 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2239 die "unsupported architecture $host_arch"
2241 esac # case "$host_arch" in
2243 if test "$_runtime_cpudetection" = yes ; then
2244 if x86 ; then
2245 test "$_cmov" != no && _cmov=yes
2246 x86_32 && _cmov=no
2247 test "$_mmx" != no && _mmx=yes
2248 test "$_3dnow" != no && _3dnow=yes
2249 test "$_3dnowext" != no && _3dnowext=yes
2250 test "$_mmxext" != no && _mmxext=yes
2251 test "$_sse" != no && _sse=yes
2252 test "$_sse2" != no && _sse2=yes
2253 test "$_ssse3" != no && _ssse3=yes
2254 test "$_mtrr" != no && _mtrr=yes
2256 if ppc; then
2257 _altivec=yes
2262 # endian testing
2263 echocheck "byte order"
2264 if test "$_big_endian" = auto ; then
2265 cat > $TMPC <<EOF
2266 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
2267 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
2268 int main(void) { return (int)ascii_name; }
2270 if cc_check ; then
2271 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2272 _big_endian=yes
2273 else
2274 _big_endian=no
2276 else
2277 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2280 if test "$_big_endian" = yes ; then
2281 _byte_order='big-endian'
2282 def_words_endian='#define WORDS_BIGENDIAN 1'
2283 def_bigendian='#define HAVE_BIGENDIAN 1'
2284 else
2285 _byte_order='little-endian'
2286 def_words_endian='#undef WORDS_BIGENDIAN'
2287 def_bigendian='#define HAVE_BIGENDIAN 0'
2289 echores "$_byte_order"
2292 echocheck "extern symbol prefix"
2293 cat > $TMPC << EOF
2294 int ff_extern;
2296 cc_check -c || die "Symbol mangling check failed."
2297 sym=$($_nm -P -g $TMPEXE)
2298 extern_prefix=${sym%%ff_extern*}
2299 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2300 echores $extern_prefix
2303 echocheck "assembler support of -pipe option"
2304 cat > $TMPC << EOF
2305 int main(void) { return 0; }
2307 cc_check -pipe && _pipe="-pipe" && echores "yes" || echores "no"
2310 echocheck "compiler support of named assembler arguments"
2311 _named_asm_args=yes
2312 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2313 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2314 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2315 _named_asm_args=no
2316 def_named_asm_args="#undef NAMED_ASM_ARGS"
2318 echores $_named_asm_args
2321 if darwin && test "$cc_vendor" = "gnu" ; then
2322 echocheck "GCC support of -mstackrealign"
2323 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2324 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2325 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2326 # wrong code with this flag, but this can be worked around by adding
2327 # -fno-unit-at-a-time as described in the blog post at
2328 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2329 cat > $TMPC << EOF
2330 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2331 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2333 cc_check -O2 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2334 test -z "$cflags_stackrealign" && cc_check -O2 -mstackrealign -fno-unit-at-a-time \
2335 && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2336 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2337 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2340 # Checking for CFLAGS
2341 _install_strip="-s"
2342 if test "$_profile" != "" || test "$_debug" != "" ; then
2343 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2344 _install_strip=
2345 elif test -z "$CFLAGS" ; then
2346 if test "$cc_vendor" = "intel" ; then
2347 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2348 elif test "$cc_vendor" != "gnu" ; then
2349 CFLAGS="-O2 $_march $_mcpu $_pipe"
2350 else
2351 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O2 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2352 extra_ldflags="$extra_ldflags -ffast-math"
2354 else
2355 _warn_CFLAGS=yes
2358 cat > $TMPC << EOF
2359 int main(void) { return 0; }
2361 if test "$cc_vendor" = "gnu" ; then
2362 cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
2363 cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
2364 cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
2365 cc_check -Wundef && CFLAGS="-Wundef $CFLAGS"
2366 else
2367 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2370 cc_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2373 if test -n "$LDFLAGS" ; then
2374 extra_ldflags="$extra_ldflags $LDFLAGS"
2375 _warn_CFLAGS=yes
2376 elif test "$cc_vendor" = "intel" ; then
2377 extra_ldflags="$extra_ldflags -i-static"
2379 if test -n "$CPPFLAGS" ; then
2380 extra_cflags="$extra_cflags $CPPFLAGS"
2381 _warn_CFLAGS=yes
2386 if x86_32 ; then
2387 # Checking assembler (_as) compatibility...
2388 # Added workaround for older as that reads from stdin by default - atmos
2389 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2390 echocheck "assembler ($_as $as_version)"
2392 _pref_as_version='2.9.1'
2393 echo 'nop' > $TMPS
2394 if test "$_mmx" = yes ; then
2395 echo 'emms' >> $TMPS
2397 if test "$_3dnow" = yes ; then
2398 _pref_as_version='2.10.1'
2399 echo 'femms' >> $TMPS
2401 if test "$_3dnowext" = yes ; then
2402 _pref_as_version='2.10.1'
2403 echo 'pswapd %mm0, %mm0' >> $TMPS
2405 if test "$_mmxext" = yes ; then
2406 _pref_as_version='2.10.1'
2407 echo 'movntq %mm0, (%eax)' >> $TMPS
2409 if test "$_sse" = yes ; then
2410 _pref_as_version='2.10.1'
2411 echo 'xorps %xmm0, %xmm0' >> $TMPS
2413 #if test "$_sse2" = yes ; then
2414 # _pref_as_version='2.11'
2415 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2417 if test "$_cmov" = yes ; then
2418 _pref_as_version='2.10.1'
2419 echo 'cmovb %eax, %ebx' >> $TMPS
2421 if test "$_ssse3" = yes ; then
2422 _pref_as_version='2.16.92'
2423 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2425 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2427 if test "$as_verc_fail" != yes ; then
2428 echores "ok"
2429 else
2430 _res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2431 echores "failed"
2432 die "obsolete binutils version"
2435 fi #if x86_32
2437 echocheck ".align is a power of two"
2438 if test "$_asmalign_pot" = auto ; then
2439 _asmalign_pot=no
2440 cat > $TMPC << EOF
2441 int main(void) { __asm__ (".align 3"); return 0; }
2443 cc_check && _asmalign_pot=yes
2445 if test "$_asmalign_pot" = "yes" ; then
2446 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2447 else
2448 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2450 echores $_asmalign_pot
2452 if x86 ; then
2453 echocheck "10 assembler operands"
2454 ten_operands=no
2455 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2456 cat > $TMPC << EOF
2457 int main(void) {
2458 int x=0;
2459 __asm__ volatile(
2461 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2463 return 0;
2466 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2467 echores $ten_operands
2469 echocheck "yasm"
2470 if test -z "$YASMFLAGS" ; then
2471 if darwin ; then
2472 x86_64 && objformat="macho64" || objformat="macho"
2473 elif win32 ; then
2474 objformat="win32"
2475 else
2476 objformat="elf"
2478 # currently tested for Linux x86, x86_64
2479 YASMFLAGS="-f $objformat"
2480 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2481 case "$objformat" in
2482 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2483 macho64) YASMFLAGS="$YASMFLAGS -DPIC -DPREFIX" ;;
2484 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2485 esac
2486 else
2487 _warn_CFLAGS=yes
2490 echo "pabsw xmm0, xmm0" > $TMPS
2491 yasm_check || _yasm=""
2492 if test $_yasm ; then
2493 test "$_mmx" = "yes" && fft_mmx="yes"
2494 def_yasm='#define HAVE_YASM 1'
2495 _have_yasm="yes"
2496 echores "$_yasm"
2497 else
2498 def_yasm='#define HAVE_YASM 0'
2499 fft_mmx="no"
2500 _have_yasm="no"
2501 echores "no"
2504 echocheck "bswap"
2505 def_bswap='#define HAVE_BSWAP 0'
2506 echo 'bswap %eax' > $TMPS
2507 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2508 echores "$bswap"
2509 fi #if x86
2512 #FIXME: This should happen before the check for CFLAGS..
2513 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2514 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2516 # check if AltiVec is supported by the compiler, and how to enable it
2517 echocheck "GCC AltiVec flags"
2518 cat > $TMPC << EOF
2519 int main(void) { return 0; }
2521 if $(cc_check -maltivec -mabi=altivec) ; then
2522 _altivec_gcc_flags="-maltivec -mabi=altivec"
2523 # check if <altivec.h> should be included
2524 cat > $TMPC << EOF
2525 #include <altivec.h>
2526 int main(void) { return 0; }
2528 if $(cc_check $_altivec_gcc_flags) ; then
2529 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2530 inc_altivec_h='#include <altivec.h>'
2531 else
2532 cat > $TMPC << EOF
2533 int main(void) { return 0; }
2535 if $(cc_check -faltivec) ; then
2536 _altivec_gcc_flags="-faltivec"
2537 else
2538 _altivec=no
2539 _altivec_gcc_flags="none, AltiVec disabled"
2543 echores "$_altivec_gcc_flags"
2545 # check if the compiler supports braces for vector declarations
2546 cat > $TMPC << EOF
2547 $inc_altivec_h
2548 int main(void) { (vector int) {1}; return 0; }
2550 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2552 # Disable runtime cpudetection if we cannot generate AltiVec code or
2553 # AltiVec is disabled by the user.
2554 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2555 && _runtime_cpudetection=no
2557 # Show that we are optimizing for AltiVec (if enabled and supported).
2558 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2559 && _optimizing="$_optimizing altivec"
2561 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2562 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2565 if ppc ; then
2566 def_xform_asm='#define HAVE_XFORM_ASM 0'
2567 xform_asm=no
2568 echocheck "XFORM ASM support"
2569 cat > $TMPC << EOF
2570 int main(void) { __asm__ volatile ("lwzx 0, %y0" :: "Z"(*(int*)0)); return 0; }
2572 cc_check && xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2573 echores "$xform_asm"
2576 if arm ; then
2577 echocheck "ARM pld instruction"
2578 cat > $TMPC << EOF
2579 int main(void) { __asm__ volatile ("pld [r0]"); return 0; }
2581 pld=no
2582 cc_check && pld=yes
2583 echores "$pld"
2585 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2586 if test $_armv5te = "auto" ; then
2587 cat > $TMPC << EOF
2588 int main(void) { __asm__ volatile ("qadd r0, r0, r0"); return 0; }
2590 _armv5te=no
2591 cc_check && _armv5te=yes
2593 echores "$_armv5te"
2595 echocheck "ARMv6 (SIMD instructions)"
2596 if test $_armv6 = "auto" ; then
2597 cat > $TMPC << EOF
2598 int main(void) { __asm__ volatile ("sadd16 r0, r0, r0"); return 0; }
2600 _armv6=no
2601 cc_check && _armv6=yes
2603 echores "$_armv6"
2605 echocheck "ARMv6t2 (SIMD instructions)"
2606 if test $_armv6t2 = "auto" ; then
2607 cat > $TMPC << EOF
2608 int main(void) { __asm__ volatile ("movt r0, #0"); return 0; }
2610 _armv6t2=no
2611 cc_check && _armv6t2=yes
2613 echores "$_armv6"
2615 echocheck "ARM VFP"
2616 if test $_armvfp = "auto" ; then
2617 cat > $TMPC << EOF
2618 int main(void) { __asm__ volatile ("fadds s0, s0, s0"); return 0; }
2620 _armvfp=no
2621 cc_check && _armvfp=yes
2623 echores "$_armvfp"
2625 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2626 if test $_iwmmxt = "auto" ; then
2627 cat > $TMPC << EOF
2628 int main(void) { __asm__ volatile ("wunpckelub wr6, wr4"); return 0; }
2630 _iwmmxt=no
2631 cc_check && _iwmmxt=yes
2633 echores "$_iwmmxt"
2636 _cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV PLD ARMV5TE ARMV6 ARMV6T2 ARMVFP IWMMXT MMI VIS MVI'
2637 test "$_altivec" = yes && _cpuexts="ALTIVEC $_cpuexts"
2638 test "$_mmx" = yes && _cpuexts="MMX $_cpuexts"
2639 test "$_mmxext" = yes && _cpuexts="MMX2 $_cpuexts"
2640 test "$_3dnow" = yes && _cpuexts="AMD3DNOW $_cpuexts"
2641 test "$_3dnowext" = yes && _cpuexts="AMD3DNOWEXT $_cpuexts"
2642 test "$_sse" = yes && _cpuexts="SSE $_cpuexts"
2643 test "$_sse2" = yes && _cpuexts="SSE2 $_cpuexts"
2644 test "$_ssse3" = yes && _cpuexts="SSSE3 $_cpuexts"
2645 test "$_cmov" = yes && _cpuexts="CMOV $_cpuexts"
2646 test "$_fast_cmov" = yes && _cpuexts="FAST_CMOV $_cpuexts"
2647 test "$pld" = yes && _cpuexts="PLD $_cpuexts"
2648 test "$_armv5te" = yes && _cpuexts="ARMV5TE $_cpuexts"
2649 test "$_armv6" = yes && _cpuexts="ARMV6 $_cpuexts"
2650 test "$_armv6t2" = yes && _cpuexts="ARMV6T2 $_cpuexts"
2651 test "$_armvfp" = yes && _cpuexts="ARMVFP $_cpuexts"
2652 test "$_iwmmxt" = yes && _cpuexts="IWMMXT $_cpuexts"
2653 test "$_vis" = yes && _cpuexts="VIS $_cpuexts"
2654 test "$_mvi" = yes && _cpuexts="MVI $_cpuexts"
2656 # Checking kernel version...
2657 if x86_32 && linux ; then
2658 _k_verc_problem=no
2659 kernel_version=$(uname -r 2>&1)
2660 echocheck "$system_name kernel version"
2661 case "$kernel_version" in
2662 '') kernel_version="?.??"; _k_verc_fail=yes;;
2663 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2664 _k_verc_problem=yes;;
2665 esac
2666 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2667 _k_verc_fail=yes
2669 if test "$_k_verc_fail" ; then
2670 echores "$kernel_version, fail"
2671 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2672 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2673 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2674 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2675 echo "2.2.x you must upgrade it to get SSE support!"
2676 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2677 else
2678 echores "$kernel_version, ok"
2682 ######################
2683 # MAIN TESTS GO HERE #
2684 ######################
2687 echocheck "-lposix"
2688 cat > $TMPC <<EOF
2689 int main(void) { return 0; }
2691 if cc_check -lposix ; then
2692 extra_ldflags="$extra_ldflags -lposix"
2693 echores "yes"
2694 else
2695 echores "no"
2698 echocheck "-lm"
2699 cat > $TMPC <<EOF
2700 int main(void) { return 0; }
2702 if cc_check -lm ; then
2703 _ld_lm="-lm"
2704 echores "yes"
2705 else
2706 _ld_lm=""
2707 echores "no"
2711 echocheck "langinfo"
2712 if test "$_langinfo" = auto ; then
2713 cat > $TMPC <<EOF
2714 #include <langinfo.h>
2715 int main(void) { nl_langinfo(CODESET); return 0; }
2717 _langinfo=no
2718 cc_check && _langinfo=yes
2720 if test "$_langinfo" = yes ; then
2721 def_langinfo='#define HAVE_LANGINFO 1'
2722 else
2723 def_langinfo='#undef HAVE_LANGINFO'
2725 echores "$_langinfo"
2728 echocheck "language"
2729 # Set preferred languages, "all" uses English as main language.
2730 test -z "$language" && language=$LINGUAS
2731 test -z "$language_doc" && language_doc=$language
2732 test -z "$language_man" && language_man=$language
2733 test -z "$language_msg" && language_msg=$language
2734 language_doc=$(echo $language_doc | tr , " ")
2735 language_man=$(echo $language_man | tr , " ")
2736 language_msg=$(echo $language_msg | tr , " ")
2738 test "$language_doc" = "all" && language_doc=$doc_lang_all
2739 test "$language_man" = "all" && language_man=$man_lang_all
2740 test "$language_msg" = "all" && language_msg=en
2742 # Prune non-existing translations from language lists.
2743 # Set message translation to the first available language.
2744 # Fall back on English.
2745 for lang in $language_doc ; do
2746 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2747 done
2748 language_doc=$tmp_language_doc
2749 test -z "$language_doc" && language_doc=en
2751 for lang in $language_man ; do
2752 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2753 done
2754 language_man=$tmp_language_man
2755 test -z "$language_man" && language_man=en
2757 for lang in $language_msg ; do
2758 test -f "help/help_mp-${lang}.h" && tmp_language_msg=$lang && break
2759 done
2760 language_msg=$tmp_language_msg
2761 test -z "$language_msg" && language_msg=en
2762 _mp_help="help/help_mp-${language_msg}.h"
2763 echores "messages: $language_msg - man pages: $language_man - documentation: $language_doc"
2766 echocheck "enable sighandler"
2767 if test "$_sighandler" = yes ; then
2768 def_sighandler='#define CONFIG_SIGHANDLER 1'
2769 else
2770 def_sighandler='#undef CONFIG_SIGHANDLER'
2772 echores "$_sighandler"
2774 echocheck "runtime cpudetection"
2775 if test "$_runtime_cpudetection" = yes ; then
2776 _optimizing="Runtime CPU-Detection enabled"
2777 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2778 else
2779 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2781 echores "$_runtime_cpudetection"
2784 echocheck "restrict keyword"
2785 for restrict_keyword in restrict __restrict __restrict__ ; do
2786 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2787 if cc_check; then
2788 def_restrict_keyword=$restrict_keyword
2789 break;
2791 done
2792 if [ -n "$def_restrict_keyword" ]; then
2793 echores "$def_restrict_keyword"
2794 else
2795 echores "none"
2797 # Avoid infinite recursion loop ("#define restrict restrict")
2798 if [ "$def_restrict_keyword" != "restrict" ]; then
2799 def_restrict_keyword="#define restrict $def_restrict_keyword"
2800 else
2801 def_restrict_keyword=""
2805 echocheck "__builtin_expect"
2806 # GCC branch prediction hint
2807 cat > $TMPC << EOF
2808 int foo(int a) {
2809 a = __builtin_expect(a, 10);
2810 return a == 10 ? 0 : 1;
2812 int main(void) { return foo(10) && foo(0); }
2814 _builtin_expect=no
2815 cc_check && _builtin_expect=yes
2816 if test "$_builtin_expect" = yes ; then
2817 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2818 else
2819 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2821 echores "$_builtin_expect"
2824 echocheck "kstat"
2825 cat > $TMPC << EOF
2826 #include <kstat.h>
2827 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
2829 _kstat=no
2830 cc_check -lkstat && _kstat=yes
2831 if test "$_kstat" = yes ; then
2832 def_kstat="#define HAVE_LIBKSTAT 1"
2833 extra_ldflags="$extra_ldflags -lkstat"
2834 else
2835 def_kstat="#undef HAVE_LIBKSTAT"
2837 echores "$_kstat"
2840 echocheck "posix4"
2841 # required for nanosleep on some systems
2842 cat > $TMPC << EOF
2843 #include <time.h>
2844 int main(void) { (void) nanosleep(0, 0); return 0; }
2846 _posix4=no
2847 cc_check -lposix4 && _posix4=yes
2848 if test "$_posix4" = yes ; then
2849 extra_ldflags="$extra_ldflags -lposix4"
2851 echores "$_posix4"
2853 for func in llrint log2 lrint lrintf round roundf truncf; do
2854 echocheck $func
2855 cat > $TMPC << EOF
2856 #include <math.h>
2857 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
2859 eval _$func=no
2860 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
2861 if eval test "x\$_$func" = "xyes"; then
2862 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
2863 echores yes
2864 else
2865 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
2866 echores no
2868 done
2871 echocheck "mkstemp"
2872 cat > $TMPC << EOF
2873 #include <stdlib.h>
2874 int main(void) { char a; mkstemp(&a); return 0; }
2876 _mkstemp=no
2877 cc_check && _mkstemp=yes
2878 if test "$_mkstemp" = yes ; then
2879 def_mkstemp='#define HAVE_MKSTEMP 1'
2880 else
2881 def_mkstemp='#undef HAVE_MKSTEMP'
2883 echores "$_mkstemp"
2886 echocheck "nanosleep"
2887 # also check for nanosleep
2888 cat > $TMPC << EOF
2889 #include <time.h>
2890 int main(void) { (void) nanosleep(0, 0); return 0; }
2892 _nanosleep=no
2893 cc_check && _nanosleep=yes
2894 if test "$_nanosleep" = yes ; then
2895 def_nanosleep='#define HAVE_NANOSLEEP 1'
2896 else
2897 def_nanosleep='#undef HAVE_NANOSLEEP'
2899 echores "$_nanosleep"
2902 echocheck "socklib"
2903 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2904 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2905 cat > $TMPC << EOF
2906 #include <netdb.h>
2907 #include <sys/socket.h>
2908 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
2910 _socklib=no
2911 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
2912 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
2913 done
2914 if test $_winsock2_h = auto && ! cygwin ; then
2915 _winsock2_h=no
2916 cat > $TMPC << EOF
2917 #include <winsock2.h>
2918 int main(void) { (void) gethostbyname(0); return 0; }
2920 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
2922 test "$_ld_sock" && _res_comment="using $_ld_sock"
2923 echores "$_socklib"
2926 if test $_winsock2_h = yes ; then
2927 _ld_sock="-lws2_32"
2928 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
2929 else
2930 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
2934 echocheck "arpa/inet.h"
2935 arpa_inet_h=no
2936 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
2937 cat > $TMPC << EOF
2938 #include <arpa/inet.h>
2939 int main(void) { return 0; }
2941 cc_check && arpa_inet_h=yes && def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
2942 echores "$arpa_inet_h"
2945 echocheck "inet_pton()"
2946 def_inet_pton='#define HAVE_INET_PTON 0'
2947 inet_pton=no
2948 cat > $TMPC << EOF
2949 #include <sys/types.h>
2950 #include <sys/socket.h>
2951 #include <arpa/inet.h>
2952 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
2954 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
2955 cc_check $_ld_tmp && inet_pton=yes && break
2956 done
2957 if test $inet_pton = yes ; then
2958 test $_ld_tmp && _res_comment="using $_ld_tmp"
2959 def_inet_pton='#define HAVE_INET_PTON 1'
2961 echores "$inet_pton"
2964 echocheck "inet_aton()"
2965 def_inet_aton='#define HAVE_INET_ATON 0'
2966 inet_aton=no
2967 cat > $TMPC << EOF
2968 #include <sys/types.h>
2969 #include <sys/socket.h>
2970 #include <arpa/inet.h>
2971 int main(void) { (void) inet_aton(0, 0); return 0; }
2973 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
2974 cc_check $_ld_tmp && inet_aton=yes && break
2975 done
2976 if test $inet_aton = yes ; then
2977 test $_ld_tmp && _res_comment="using $_ld_tmp"
2978 def_inet_aton='#define HAVE_INET_ATON 1'
2980 echores "$inet_aton"
2983 echocheck "socklen_t"
2984 _socklen_t=no
2985 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
2986 cat > $TMPC << EOF
2987 #include <$header>
2988 int main(void) { socklen_t v = 0; return v; }
2990 cc_check && _socklen_t=yes && break
2991 done
2992 if test "$_socklen_t" = yes ; then
2993 def_socklen_t='#define HAVE_SOCKLEN_T 1'
2994 else
2995 def_socklen_t='#define HAVE_SOCKLEN_T 0'
2997 echores "$_socklen_t"
3000 echocheck "closesocket()"
3001 _closesocket=no
3002 cat > $TMPC << EOF
3003 #include <winsock2.h>
3004 int main(void) { closesocket(~0); return 0; }
3006 cc_check $_ld_sock && _closesocket=yes
3007 if test "$_closesocket" = yes ; then
3008 def_closesocket='#define HAVE_CLOSESOCKET 1'
3009 else
3010 def_closesocket='#define HAVE_CLOSESOCKET 0'
3012 echores "$_closesocket"
3015 echocheck "network"
3016 test $_winsock2_h = no && test $inet_pton = no &&
3017 test $inet_aton = no && _network=no
3018 if test "$_network" = yes ; then
3019 def_network='#define CONFIG_NETWORK 1'
3020 extra_ldflags="$extra_ldflags $_ld_sock"
3021 _inputmodules="network $_inputmodules"
3022 else
3023 _noinputmodules="network $_noinputmodules"
3024 def_network='#undef CONFIG_NETWORK'
3025 _ftp=no
3027 echores "$_network"
3030 echocheck "inet6"
3031 if test "$_inet6" = auto ; then
3032 cat > $TMPC << EOF
3033 #include <sys/types.h>
3034 #if !defined(_WIN32) || defined(__CYGWIN__)
3035 #include <sys/socket.h>
3036 #include <netinet/in.h>
3037 #else
3038 #include <ws2tcpip.h>
3039 #endif
3040 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3042 _inet6=no
3043 if cc_check $_ld_sock ; then
3044 _inet6=yes
3047 if test "$_inet6" = yes ; then
3048 def_inet6='#define HAVE_AF_INET6 1'
3049 else
3050 def_inet6='#undef HAVE_AF_INET6'
3052 echores "$_inet6"
3055 echocheck "gethostbyname2"
3056 if test "$_gethostbyname2" = auto ; then
3057 cat > $TMPC << EOF
3058 #include <sys/types.h>
3059 #include <sys/socket.h>
3060 #include <netdb.h>
3061 int main(void) { gethostbyname2("", AF_INET); return 0; }
3063 _gethostbyname2=no
3064 if cc_check ; then
3065 _gethostbyname2=yes
3068 if test "$_gethostbyname2" = yes ; then
3069 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3070 else
3071 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3073 echores "$_gethostbyname2"
3076 echocheck "inttypes.h (required)"
3077 cat > $TMPC << EOF
3078 #include <inttypes.h>
3079 int main(void) { return 0; }
3081 _inttypes=no
3082 cc_check && _inttypes=yes
3083 echores "$_inttypes"
3085 if test "$_inttypes" = no ; then
3086 echocheck "bitypes.h (inttypes.h predecessor)"
3087 cat > $TMPC << EOF
3088 #include <sys/bitypes.h>
3089 int main(void) { return 0; }
3091 cc_check && _inttypes=yes
3092 if test "$_inttypes" = yes ; then
3093 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."
3094 else
3095 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3100 echocheck "int_fastXY_t in inttypes.h"
3101 cat > $TMPC << EOF
3102 #include <inttypes.h>
3103 int main(void) {
3104 volatile int_fast16_t v= 0;
3105 return v; }
3107 _fast_inttypes=no
3108 cc_check && _fast_inttypes=yes
3109 if test "$_fast_inttypes" = no ; then
3110 def_fast_inttypes='
3111 typedef signed char int_fast8_t;
3112 typedef signed int int_fast16_t;
3113 typedef signed int int_fast32_t;
3114 typedef signed long long int_fast64_t;
3115 typedef unsigned char uint_fast8_t;
3116 typedef unsigned int uint_fast16_t;
3117 typedef unsigned int uint_fast32_t;
3118 typedef unsigned long long uint_fast64_t;'
3120 echores "$_fast_inttypes"
3123 echocheck "malloc.h"
3124 cat > $TMPC << EOF
3125 #include <malloc.h>
3126 int main(void) { (void) malloc(0); return 0; }
3128 _malloc=no
3129 cc_check && _malloc=yes
3130 if test "$_malloc" = yes ; then
3131 def_malloc_h='#define HAVE_MALLOC_H 1'
3132 else
3133 def_malloc_h='#define HAVE_MALLOC_H 0'
3135 # malloc.h emits a warning in FreeBSD and OpenBSD
3136 freebsd || openbsd || dragonfly && def_malloc_h='#define HAVE_MALLOC_H 0'
3137 echores "$_malloc"
3140 echocheck "memalign()"
3141 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3142 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3143 cat > $TMPC << EOF
3144 #include <malloc.h>
3145 int main(void) { (void) memalign(64, sizeof(char)); return 0; }
3147 _memalign=no
3148 cc_check && _memalign=yes
3149 if test "$_memalign" = yes ; then
3150 def_memalign='#define HAVE_MEMALIGN 1'
3151 else
3152 def_memalign='#define HAVE_MEMALIGN 0'
3153 def_map_memalign='#define memalign(a,b) malloc(b)'
3154 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3156 echores "$_memalign"
3159 echocheck "posix_memalign()"
3160 posix_memalign=no
3161 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3162 cat > $TMPC << EOF
3163 #define _XOPEN_SOURCE 600
3164 #include <stdlib.h>
3165 int main(void) { posix_memalign(NULL, 0, 0); }
3167 cc_check && posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3168 echores "$posix_memalign"
3171 echocheck "alloca.h"
3172 cat > $TMPC << EOF
3173 #include <alloca.h>
3174 int main(void) { (void) alloca(0); return 0; }
3176 _alloca=no
3177 cc_check && _alloca=yes
3178 if cc_check ; then
3179 def_alloca_h='#define HAVE_ALLOCA_H 1'
3180 else
3181 def_alloca_h='#undef HAVE_ALLOCA_H'
3183 echores "$_alloca"
3186 echocheck "fastmemcpy"
3187 if test "$_fastmemcpy" = yes ; then
3188 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3189 else
3190 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3192 echores "$_fastmemcpy"
3195 echocheck "mman.h"
3196 cat > $TMPC << EOF
3197 #include <sys/types.h>
3198 #include <sys/mman.h>
3199 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
3201 _mman=no
3202 cc_check && _mman=yes
3203 if test "$_mman" = yes ; then
3204 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3205 else
3206 def_mman_h='#undef HAVE_SYS_MMAN_H'
3207 os2 && _need_mmap=yes
3209 echores "$_mman"
3211 cat > $TMPC << EOF
3212 #include <sys/types.h>
3213 #include <sys/mman.h>
3214 int main(void) { void *p = MAP_FAILED; return 0; }
3216 _mman_has_map_failed=no
3217 cc_check && _mman_has_map_failed=yes
3218 if test "$_mman_has_map_failed" = yes ; then
3219 def_mman_has_map_failed=''
3220 else
3221 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3224 echocheck "dynamic loader"
3225 cat > $TMPC << EOF
3226 #include <stddef.h>
3227 #include <dlfcn.h>
3228 int main(void) { dlopen(NULL, 0); dlclose(NULL); dlsym(NULL, NULL); return 0; }
3230 _dl=no
3231 for _ld_tmp in "" "-ldl" ; do
3232 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3233 done
3234 if test "$_dl" = yes ; then
3235 def_dl='#define HAVE_LIBDL 1'
3236 else
3237 def_dl='#undef HAVE_LIBDL'
3239 echores "$_dl"
3242 echocheck "dynamic a/v plugins support"
3243 if test "$_dl" = no ; then
3244 _dynamic_plugins=no
3246 if test "$_dynamic_plugins" = yes ; then
3247 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3248 else
3249 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3251 echores "$_dynamic_plugins"
3254 def_threads='#define HAVE_THREADS 0'
3256 echocheck "pthread"
3257 if linux ; then
3258 THREAD_CFLAGS=-D_REENTRANT
3259 elif freebsd || netbsd || openbsd || bsdos ; then
3260 THREAD_CFLAGS=-D_THREAD_SAFE
3262 if test "$_pthreads" = auto ; then
3263 cat > $TMPC << EOF
3264 #include <pthread.h>
3265 void* func(void *arg) { return arg; }
3266 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3268 _pthreads=no
3269 if ! hpux ; then
3270 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3271 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3272 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3273 done
3276 if test "$_pthreads" = yes ; then
3277 test $_ld_pthread && _res_comment="using $_ld_pthread"
3278 def_pthreads='#define HAVE_PTHREADS 1'
3279 def_threads='#define HAVE_THREADS 1'
3280 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3281 else
3282 _res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3283 def_pthreads='#undef HAVE_PTHREADS'
3284 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3285 mingw32 || _win32dll=no
3287 echores "$_pthreads"
3289 if cygwin ; then
3290 if test "$_pthreads" = yes ; then
3291 def_pthread_cache="#define PTHREAD_CACHE 1"
3292 else
3293 _stream_cache=no
3294 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3298 echocheck "w32threads"
3299 if test "$_pthreads" = yes ; then
3300 _res_comment="using pthread instead"
3301 _w32threads=no
3303 if test "$_w32threads" = auto ; then
3304 _w32threads=no
3305 mingw32 && _w32threads=yes
3307 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3308 echores "$_w32threads"
3310 echocheck "rpath"
3311 netbsd &&_rpath=yes
3312 if test "$_rpath" = yes ; then
3313 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3314 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3315 done
3316 extra_ldflags=$tmp
3318 echores "$_rpath"
3320 echocheck "iconv"
3321 if test "$_iconv" = auto ; then
3322 cat > $TMPC << EOF
3323 #include <stdio.h>
3324 #include <unistd.h>
3325 #include <iconv.h>
3326 #define INBUFSIZE 1024
3327 #define OUTBUFSIZE 4096
3329 char inbuffer[INBUFSIZE];
3330 char outbuffer[OUTBUFSIZE];
3332 int main(void) {
3333 size_t numread;
3334 iconv_t icdsc;
3335 char *tocode="UTF-8";
3336 char *fromcode="cp1250";
3337 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3338 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3339 char *iptr=inbuffer;
3340 char *optr=outbuffer;
3341 size_t inleft=numread;
3342 size_t outleft=OUTBUFSIZE;
3343 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
3344 != (size_t)(-1)) {
3345 write(1, outbuffer, OUTBUFSIZE - outleft);
3348 if (iconv_close(icdsc) == -1)
3351 return 0;
3354 _iconv=no
3355 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3356 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3357 _iconv=yes && break
3358 done
3360 if test "$_iconv" = yes ; then
3361 def_iconv='#define CONFIG_ICONV 1'
3362 else
3363 def_iconv='#undef CONFIG_ICONV'
3365 echores "$_iconv"
3368 echocheck "soundcard.h"
3369 _soundcard_h=no
3370 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3371 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3372 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3373 cat > $TMPC << EOF
3374 #include <$_soundcard_header>
3375 int main(void) { return 0; }
3377 cc_check && _soundcard_h=yes && _res_comment="$_soundcard_header" && break
3378 done
3380 if test "$_soundcard_h" = yes ; then
3381 if test $_soundcard_header = "sys/soundcard.h"; then
3382 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3383 else
3384 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3387 echores "$_soundcard_h"
3390 echocheck "sys/dvdio.h"
3391 cat > $TMPC << EOF
3392 #include <unistd.h>
3393 #include <sys/dvdio.h>
3394 int main(void) { return 0; }
3396 _dvdio=no
3397 cc_check && _dvdio=yes
3398 if test "$_dvdio" = yes ; then
3399 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3400 else
3401 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3403 echores "$_dvdio"
3406 echocheck "sys/cdio.h"
3407 cat > $TMPC << EOF
3408 #include <unistd.h>
3409 #include <sys/cdio.h>
3410 int main(void) { return 0; }
3412 _cdio=no
3413 cc_check && _cdio=yes
3414 if test "$_cdio" = yes ; then
3415 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3416 else
3417 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3419 echores "$_cdio"
3422 echocheck "linux/cdrom.h"
3423 cat > $TMPC << EOF
3424 #include <sys/types.h>
3425 #include <linux/cdrom.h>
3426 int main(void) { return 0; }
3428 _cdrom=no
3429 cc_check && _cdrom=yes
3430 if test "$_cdrom" = yes ; then
3431 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3432 else
3433 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3435 echores "$_cdrom"
3438 echocheck "dvd.h"
3439 cat > $TMPC << EOF
3440 #include <dvd.h>
3441 int main(void) { return 0; }
3443 _dvd=no
3444 cc_check && _dvd=yes
3445 if test "$_dvd" = yes ; then
3446 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3447 else
3448 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3450 echores "$_dvd"
3453 if bsdos; then
3454 echocheck "BSDI dvd.h"
3455 cat > $TMPC << EOF
3456 #include <dvd.h>
3457 int main(void) { return 0; }
3459 _bsdi_dvd=no
3460 cc_check && _bsdi_dvd=yes
3461 if test "$_bsdi_dvd" = yes ; then
3462 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3463 else
3464 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3466 echores "$_bsdi_dvd"
3467 fi #if bsdos
3470 if hpux; then
3471 # also used by AIX, but AIX does not support VCD and/or libdvdread
3472 echocheck "HP-UX SCSI header"
3473 cat > $TMPC << EOF
3474 #include <sys/scsi.h>
3475 int main(void) { return 0; }
3477 _hpux_scsi_h=no
3478 cc_check && _hpux_scsi_h=yes
3479 if test "$_hpux_scsi_h" = yes ; then
3480 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3481 else
3482 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3484 echores "$_hpux_scsi_h"
3485 fi #if hpux
3488 if sunos; then
3489 echocheck "userspace SCSI headers (Solaris)"
3490 cat > $TMPC << EOF
3491 #include <unistd.h>
3492 #include <stropts.h>
3493 #include <sys/scsi/scsi_types.h>
3494 #include <sys/scsi/impl/uscsi.h>
3495 int main(void) { return 0; }
3497 _sol_scsi_h=no
3498 cc_check && _sol_scsi_h=yes
3499 if test "$_sol_scsi_h" = yes ; then
3500 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3501 else
3502 def_sol_scsi_h='#undef SOLARIS_USCSI'
3504 echores "$_sol_scsi_h"
3505 fi #if sunos
3508 echocheck "termcap"
3509 if test "$_termcap" = auto ; then
3510 cat > $TMPC <<EOF
3511 #include <stddef.h>
3512 #include <term.h>
3513 int main(void) { tgetent(NULL, NULL); return 0; }
3515 _termcap=no
3516 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3517 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
3518 && _termcap=yes && break
3519 done
3521 if test "$_termcap" = yes ; then
3522 def_termcap='#define HAVE_TERMCAP 1'
3523 test $_ld_tmp && _res_comment="using $_ld_tmp"
3524 else
3525 def_termcap='#undef HAVE_TERMCAP'
3527 echores "$_termcap"
3530 echocheck "termios"
3531 def_termios='#undef HAVE_TERMIOS'
3532 def_termios_h='#undef HAVE_TERMIOS_H'
3533 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3534 if test "$_termios" = auto ; then
3535 _termios=no
3536 for _termios_header in "sys/termios.h" "termios.h"; do
3537 cat > $TMPC <<EOF
3538 #include <$_termios_header>
3539 int main(void) { return 0; }
3541 cc_check && _termios=yes && _res_comment="using $_termios_header" && break
3542 done
3545 if test "$_termios" = yes ; then
3546 def_termios='#define HAVE_TERMIOS 1'
3547 if test "$_termios_header" = "termios.h" ; then
3548 def_termios_h='#define HAVE_TERMIOS_H 1'
3549 else
3550 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3553 echores "$_termios"
3556 echocheck "shm"
3557 if test "$_shm" = auto ; then
3558 cat > $TMPC << EOF
3559 #include <sys/types.h>
3560 #include <sys/shm.h>
3561 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3563 _shm=no
3564 cc_check && _shm=yes
3566 if test "$_shm" = yes ; then
3567 def_shm='#define HAVE_SHM 1'
3568 else
3569 def_shm='#undef HAVE_SHM'
3571 echores "$_shm"
3574 echocheck "strsep()"
3575 cat > $TMPC << EOF
3576 #include <string.h>
3577 int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3579 _strsep=no
3580 cc_check && _strsep=yes
3581 if test "$_strsep" = yes ; then
3582 def_strsep='#define HAVE_STRSEP 1'
3583 _need_strsep=no
3584 else
3585 def_strsep='#undef HAVE_STRSEP'
3586 _need_strsep=yes
3588 echores "$_strsep"
3591 echocheck "vsscanf()"
3592 cat > $TMPC << EOF
3593 #define _ISOC99_SOURCE
3594 #include <stdarg.h>
3595 #include <stdio.h>
3596 int main(void) { vsscanf(0, 0, 0); return 0; }
3598 _vsscanf=no
3599 cc_check && _vsscanf=yes
3600 if test "$_vsscanf" = yes ; then
3601 def_vsscanf='#define HAVE_VSSCANF 1'
3602 _need_vsscanf=no
3603 else
3604 def_vsscanf='#undef HAVE_VSSCANF'
3605 _need_vsscanf=yes
3607 echores "$_vsscanf"
3610 echocheck "swab()"
3611 cat > $TMPC << EOF
3612 #define _XOPEN_SOURCE 600
3613 #include <unistd.h>
3614 int main(void) { swab(0, 0, 0); return 0; }
3616 _swab=no
3617 cc_check && _swab=yes
3618 if test "$_swab" = yes ; then
3619 def_swab='#define HAVE_SWAB 1'
3620 _need_swab=no
3621 else
3622 def_swab='#undef HAVE_SWAB'
3623 _need_swab=yes
3625 echores "$_swab"
3627 echocheck "POSIX select()"
3628 cat > $TMPC << EOF
3629 #include <stdio.h>
3630 #include <stdlib.h>
3631 #include <sys/types.h>
3632 #include <string.h>
3633 #include <sys/time.h>
3634 #include <unistd.h>
3635 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3637 _posix_select=no
3638 def_posix_select='#undef HAVE_POSIX_SELECT'
3639 #select() of kLIBC (OS/2) supports socket only
3640 ! os2 && cc_check && _posix_select=yes \
3641 && def_posix_select='#define HAVE_POSIX_SELECT 1'
3642 echores "$_posix_select"
3645 echocheck "audio select()"
3646 if test "$_select" = no ; then
3647 def_select='#undef HAVE_AUDIO_SELECT'
3648 elif test "$_select" = yes ; then
3649 def_select='#define HAVE_AUDIO_SELECT 1'
3651 echores "$_select"
3654 echocheck "gettimeofday()"
3655 cat > $TMPC << EOF
3656 #include <stdio.h>
3657 #include <sys/time.h>
3658 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3660 _gettimeofday=no
3661 cc_check && _gettimeofday=yes
3662 if test "$_gettimeofday" = yes ; then
3663 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3664 _need_gettimeofday=no
3665 else
3666 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3667 _need_gettimeofday=yes
3669 echores "$_gettimeofday"
3672 echocheck "glob()"
3673 cat > $TMPC << EOF
3674 #include <stdio.h>
3675 #include <glob.h>
3676 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3678 _glob=no
3679 cc_check && _glob=yes
3680 if test "$_glob" = yes ; then
3681 def_glob='#define HAVE_GLOB 1'
3682 _need_glob=no
3683 else
3684 def_glob='#undef HAVE_GLOB'
3685 _need_glob=yes
3687 echores "$_glob"
3690 echocheck "setenv()"
3691 cat > $TMPC << EOF
3692 #include <stdlib.h>
3693 int main(void) { setenv("","",0); return 0; }
3695 _setenv=no
3696 cc_check && _setenv=yes
3697 if test "$_setenv" = yes ; then
3698 def_setenv='#define HAVE_SETENV 1'
3699 _need_setenv=no
3700 else
3701 def_setenv='#undef HAVE_SETENV'
3702 _need_setenv=yes
3704 echores "$_setenv"
3707 if sunos; then
3708 echocheck "sysi86()"
3709 cat > $TMPC << EOF
3710 #include <sys/sysi86.h>
3711 int main(void) { sysi86(0); return 0; }
3713 _sysi86=no
3714 cc_check && _sysi86=yes
3715 if test "$_sysi86" = yes ; then
3716 def_sysi86='#define HAVE_SYSI86 1'
3717 cat > $TMPC << EOF
3718 #include <sys/sysi86.h>
3719 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
3721 cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
3722 else
3723 def_sysi86='#undef HAVE_SYSI86'
3725 echores "$_sysi86"
3726 fi #if sunos
3729 echocheck "sys/sysinfo.h"
3730 cat > $TMPC << EOF
3731 #include <sys/sysinfo.h>
3732 int main(void) {
3733 struct sysinfo s_info;
3734 sysinfo(&s_info);
3735 return 0;
3738 _sys_sysinfo=no
3739 cc_check && _sys_sysinfo=yes
3740 if test "$_sys_sysinfo" = yes ; then
3741 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
3742 else
3743 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
3745 echores "$_sys_sysinfo"
3748 if darwin; then
3750 echocheck "Mac OS X Finder Support"
3751 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
3752 if test "$_macosx_finder" = yes ; then
3753 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
3754 extra_ldflags="$extra_ldflags -framework Carbon"
3756 echores "$_macosx_finder"
3758 echocheck "Mac OS X Bundle file locations"
3759 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
3760 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
3761 if test "$_macosx_bundle" = yes ; then
3762 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
3763 extra_ldflags="$extra_ldflags -framework Carbon"
3765 echores "$_macosx_bundle"
3767 echocheck "Apple Remote"
3768 if test "$_apple_remote" = auto ; then
3769 _apple_remote=no
3770 cat > $TMPC <<EOF
3771 #include <stdio.h>
3772 #include <IOKit/IOCFPlugIn.h>
3773 int main(void) {
3774 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
3775 CFMutableDictionaryRef hidMatchDictionary;
3776 IOReturn ioReturnValue;
3778 // Set up a matching dictionary to search the I/O Registry by class.
3779 // name for all HID class devices
3780 hidMatchDictionary = IOServiceMatching("AppleIRController");
3782 // Now search I/O Registry for matching devices.
3783 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
3784 hidMatchDictionary, &hidObjectIterator);
3786 // If search is unsuccessful, return nonzero.
3787 if (ioReturnValue != kIOReturnSuccess ||
3788 !IOIteratorIsValid(hidObjectIterator)) {
3789 return 1;
3791 return 0;
3794 cc_check -framework IOKit && tmp_run && _apple_remote=yes
3796 if test "$_apple_remote" = yes ; then
3797 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
3798 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
3799 else
3800 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
3802 echores "$_apple_remote"
3804 fi #if darwin
3806 if linux; then
3808 echocheck "Apple IR"
3809 if test "$_apple_ir" = auto ; then
3810 _apple_ir=no
3811 cat > $TMPC <<EOF
3812 #include <linux/types.h>
3813 #include <linux/input.h>
3814 int main(void) {
3815 struct input_event ev;
3816 struct input_id id;
3817 return 0;
3820 cc_check && tmp_run && _apple_ir=yes
3822 if test "$_apple_ir" = yes ; then
3823 def_apple_ir='#define CONFIG_APPLE_IR 1'
3824 else
3825 def_apple_ir='#undef CONFIG_APPLE_IR'
3827 echores "$_apple_ir"
3828 fi #if linux
3830 echocheck "pkg-config"
3831 _pkg_config=pkg-config
3832 if $($_pkg_config --version > /dev/null 2>&1); then
3833 if test "$_ld_static"; then
3834 _pkg_config="$_pkg_config --static"
3836 echores "yes"
3837 else
3838 _pkg_config=false
3839 echores "no"
3843 echocheck "Samba support (libsmbclient)"
3844 if test "$_smb" = yes; then
3845 extra_ldflags="$extra_ldflags -lsmbclient"
3847 if test "$_smb" = auto; then
3848 _smb=no
3849 cat > $TMPC << EOF
3850 #include <libsmbclient.h>
3851 int main(void) { smbc_opendir("smb://"); return 0; }
3853 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3854 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3855 _smb=yes && break
3856 done
3859 if test "$_smb" = yes; then
3860 def_smb="#define CONFIG_LIBSMBCLIENT"
3861 _inputmodules="smb $_inputmodules"
3862 else
3863 def_smb="#undef CONFIG_LIBSMBCLIENT"
3864 _noinputmodules="smb $_noinputmodules"
3866 echores "$_smb"
3869 #########
3870 # VIDEO #
3871 #########
3874 echocheck "tdfxfb"
3875 if test "$_tdfxfb" = yes ; then
3876 def_tdfxfb='#define CONFIG_TDFXFB 1'
3877 _vomodules="tdfxfb $_vomodules"
3878 else
3879 def_tdfxfb='#undef CONFIG_TDFXFB'
3880 _novomodules="tdfxfb $_novomodules"
3882 echores "$_tdfxfb"
3884 echocheck "s3fb"
3885 if test "$_s3fb" = yes ; then
3886 def_s3fb='#define CONFIG_S3FB 1'
3887 _vomodules="s3fb $_vomodules"
3888 else
3889 def_s3fb='#undef CONFIG_S3FB'
3890 _novomodules="s3fb $_novomodules"
3892 echores "$_s3fb"
3894 echocheck "wii"
3895 if test "$_wii" = yes ; then
3896 def_wii='#define CONFIG_WII 1'
3897 _vomodules="wii $_vomodules"
3898 else
3899 def_wii='#undef CONFIG_WII'
3900 _novomodules="wii $_novomodules"
3902 echores "$_wii"
3904 echocheck "tdfxvid"
3905 if test "$_tdfxvid" = yes ; then
3906 def_tdfxvid='#define CONFIG_TDFX_VID 1'
3907 _vomodules="tdfx_vid $_vomodules"
3908 else
3909 def_tdfxvid='#undef CONFIG_TDFX_VID'
3910 _novomodules="tdfx_vid $_novomodules"
3912 echores "$_tdfxvid"
3914 echocheck "xvr100"
3915 if test "$_xvr100" = auto ; then
3916 cat > $TMPC << EOF
3917 #include <unistd.h>
3918 #include <sys/fbio.h>
3919 #include <sys/visual_io.h>
3920 int main(void) {
3921 struct vis_identifier ident;
3922 struct fbgattr attr;
3923 ioctl(0, VIS_GETIDENTIFIER, &ident);
3924 ioctl(0, FBIOGATTR, &attr);
3925 return 0;
3928 _xvr100=no
3929 cc_check && _xvr100=yes
3931 if test "$_xvr100" = yes ; then
3932 def_xvr100='#define CONFIG_XVR100 1'
3933 _vomodules="xvr100 $_vomodules"
3934 else
3935 def_tdfxvid='#undef CONFIG_XVR100'
3936 _novomodules="xvr100 $_novomodules"
3938 echores "$_xvr100"
3940 echocheck "tga"
3941 if test "$_tga" = yes ; then
3942 def_tga='#define CONFIG_TGA 1'
3943 _vomodules="tga $_vomodules"
3944 else
3945 def_tga='#undef CONFIG_TGA'
3946 _novomodules="tga $_novomodules"
3948 echores "$_tga"
3951 echocheck "md5sum support"
3952 if test "$_md5sum" = yes; then
3953 def_md5sum="#define CONFIG_MD5SUM"
3954 _vomodules="md5sum $_vomodules"
3955 else
3956 def_md5sum="#undef CONFIG_MD5SUM"
3957 _novomodules="md5sum $_novomodules"
3959 echores "$_md5sum"
3962 echocheck "yuv4mpeg support"
3963 if test "$_yuv4mpeg" = yes; then
3964 def_yuv4mpeg="#define CONFIG_YUV4MPEG"
3965 _vomodules="yuv4mpeg $_vomodules"
3966 else
3967 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
3968 _novomodules="yuv4mpeg $_novomodules"
3970 echores "$_yuv4mpeg"
3973 echocheck "bl"
3974 if test "$_bl" = yes ; then
3975 def_bl='#define CONFIG_BL 1'
3976 _vomodules="bl $_vomodules"
3977 else
3978 def_bl='#undef CONFIG_BL'
3979 _novomodules="bl $_novomodules"
3981 echores "$_bl"
3984 echocheck "DirectFB"
3985 if test "$_directfb" = auto ; then
3986 _directfb=no
3987 cat > $TMPC <<EOF
3988 #include <directfb.h>
3989 int main(void) { IDirectFB *foo; DirectFBInit(0,0); return 0; }
3991 for _inc_tmp in "" -I/usr/local/include/directfb \
3992 -I/usr/include/directfb -I/usr/local/include; do
3993 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
3994 extra_cflags="$extra_cflags $_inc_tmp" && break
3995 done
3998 dfb_version() {
3999 expr $1 \* 65536 + $2 \* 256 + $3
4002 if test "$_directfb" = yes; then
4003 cat > $TMPC << EOF
4004 #include <directfb_version.h>
4006 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
4009 if $_cc -E $TMPC $extra_cflags > "$TMPEXE"; then
4010 _directfb_version=$(sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()')
4011 _dfb_major=$(echo $_directfb_version | cut -d . -f 1)
4012 _dfb_minor=$(echo $_directfb_version | cut -d . -f 2)
4013 _dfb_micro=$(echo $_directfb_version | cut -d . -f 3)
4014 _dfb_version=$(dfb_version $_dfb_major $_dfb_minor $_dfb_micro)
4015 if test "$_dfb_version" -ge $(dfb_version 0 9 13); then
4016 def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
4017 _res_comment="$_directfb_version"
4018 test "$_dfb_version" -ge $(dfb_version 0 9 15) && _dfbmga=yes
4019 else
4020 def_directfb_version='#undef DIRECTFBVERSION'
4021 _directfb=no
4022 _res_comment="version >=0.9.13 required"
4024 else
4025 _directfb=no
4026 _res_comment="failed to get version"
4029 echores "$_directfb"
4031 if test "$_directfb" = yes ; then
4032 def_directfb='#define CONFIG_DIRECTFB 1'
4033 _vomodules="directfb $_vomodules"
4034 libs_mplayer="$libs_mplayer -ldirectfb"
4035 else
4036 def_directfb='#undef CONFIG_DIRECTFB'
4037 _novomodules="directfb $_novomodules"
4039 if test "$_dfbmga" = yes; then
4040 _vomodules="dfbmga $_vomodules"
4041 def_dfbmga='#define CONFIG_DFBMGA 1'
4042 else
4043 _novomodules="dfbmga $_novomodules"
4044 def_dfbmga='#undef CONFIG_DFBMGA'
4048 echocheck "X11 headers presence"
4049 _x11_headers="no"
4050 _res_comment="check if the dev(el) packages are installed"
4051 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
4052 if test -f "$I/X11/Xlib.h" ; then
4053 _x11_headers="yes"
4054 _res_comment=""
4055 break
4057 done
4058 if test $_cross_compile = no; then
4059 for I in /usr/X11/include /usr/X11R7/include /usr/X11R6/include \
4060 /usr/include/X11R6 /usr/openwin/include ; do
4061 if test -f "$I/X11/Xlib.h" ; then
4062 extra_cflags="$extra_cflags -I$I"
4063 _x11_headers="yes"
4064 _res_comment="using $I"
4065 break
4067 done
4069 echores "$_x11_headers"
4072 echocheck "X11"
4073 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
4074 cat > $TMPC <<EOF
4075 #include <X11/Xlib.h>
4076 #include <X11/Xutil.h>
4077 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
4079 for I in "" -L/usr/X11R7/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
4080 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/X11R6/lib64 \
4081 -L/usr/lib ; do
4082 if netbsd; then
4083 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
4084 else
4085 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
4087 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" \
4088 && _x11=yes && break
4089 done
4091 if test "$_x11" = yes ; then
4092 def_x11='#define CONFIG_X11 1'
4093 _vomodules="x11 xover $_vomodules"
4094 else
4095 _x11=no
4096 def_x11='#undef CONFIG_X11'
4097 _novomodules="x11 $_novomodules"
4098 _res_comment="check if the dev(el) packages are installed"
4099 # disable stuff that depends on X
4100 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
4102 echores "$_x11"
4104 echocheck "Xss screensaver extensions"
4105 if test "$_xss" = auto ; then
4106 cat > $TMPC << EOF
4107 #include <X11/Xlib.h>
4108 #include <X11/extensions/scrnsaver.h>
4109 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
4111 _xss=no
4112 cc_check -lXss && _xss=yes
4114 if test "$_xss" = yes ; then
4115 def_xss='#define CONFIG_XSS 1'
4116 libs_mplayer="$libs_mplayer -lXss"
4117 else
4118 def_xss='#undef CONFIG_XSS'
4120 echores "$_xss"
4122 echocheck "DPMS"
4123 _xdpms3=no
4124 _xdpms4=no
4125 if test "$_x11" = yes ; then
4126 cat > $TMPC <<EOF
4127 #include <X11/Xmd.h>
4128 #include <X11/Xlib.h>
4129 #include <X11/Xutil.h>
4130 #include <X11/Xatom.h>
4131 #include <X11/extensions/dpms.h>
4132 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4134 cc_check -lXdpms && _xdpms3=yes
4135 cat > $TMPC <<EOF
4136 #include <X11/Xlib.h>
4137 #include <X11/extensions/dpms.h>
4138 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4140 cc_check -lXext && _xdpms4=yes
4142 if test "$_xdpms4" = yes ; then
4143 def_xdpms='#define CONFIG_XDPMS 1'
4144 _res_comment="using Xdpms 4"
4145 echores "yes"
4146 elif test "$_xdpms3" = yes ; then
4147 def_xdpms='#define CONFIG_XDPMS 1'
4148 libs_mplayer="$libs_mplayer -lXdpms"
4149 _res_comment="using Xdpms 3"
4150 echores "yes"
4151 else
4152 def_xdpms='#undef CONFIG_XDPMS'
4153 echores "no"
4157 echocheck "Xv"
4158 if test "$_xv" = auto ; then
4159 cat > $TMPC <<EOF
4160 #include <X11/Xlib.h>
4161 #include <X11/extensions/Xvlib.h>
4162 int main(void) {
4163 (void) XvGetPortAttribute(0, 0, 0, 0);
4164 (void) XvQueryPortAttributes(0, 0, 0);
4165 return 0; }
4167 _xv=no
4168 cc_check -lXv && _xv=yes
4171 if test "$_xv" = yes ; then
4172 def_xv='#define CONFIG_XV 1'
4173 libs_mplayer="$libs_mplayer -lXv"
4174 _vomodules="xv $_vomodules"
4175 else
4176 def_xv='#undef CONFIG_XV'
4177 _novomodules="xv $_novomodules"
4179 echores "$_xv"
4182 echocheck "XvMC"
4183 if test "$_xv" = yes && test "$_xvmc" != no ; then
4184 _xvmc=no
4185 cat > $TMPC <<EOF
4186 #include <X11/Xlib.h>
4187 #include <X11/extensions/Xvlib.h>
4188 #include <X11/extensions/XvMClib.h>
4189 int main(void) {
4190 (void) XvMCQueryExtension(0,0,0);
4191 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4192 return 0; }
4194 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4195 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4196 done
4198 if test "$_xvmc" = yes ; then
4199 def_xvmc='#define CONFIG_XVMC 1'
4200 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
4201 _vomodules="xvmc $_vomodules"
4202 _res_comment="using $_xvmclib"
4203 else
4204 def_xvmc='#define CONFIG_XVMC 0'
4205 _novomodules="xvmc $_novomodules"
4207 echores "$_xvmc"
4210 echocheck "VDPAU"
4211 if test "$_vdpau" = auto ; then
4212 _vdpau=no
4213 if test "$_dl" = yes ; then
4214 cat > $TMPC <<EOF
4215 #include <vdpau/vdpau_x11.h>
4216 int main(void) {return VDP_VIDEO_MIXER_ATTRIBUTE_SKIP_CHROMA_DEINTERLACE;}
4218 cc_check && _vdpau=yes
4221 if test "$_vdpau" = yes ; then
4222 def_vdpau='#define CONFIG_VDPAU 1'
4223 _vomodules="vdpau $_vomodules"
4224 else
4225 def_vdpau='#define CONFIG_VDPAU 0'
4226 _novomodules="vdpau $_novomodules"
4228 echores "$_vdpau"
4231 echocheck "Xinerama"
4232 if test "$_xinerama" = auto ; then
4233 cat > $TMPC <<EOF
4234 #include <X11/Xlib.h>
4235 #include <X11/extensions/Xinerama.h>
4236 int main(void) { (void) XineramaIsActive(0); return 0; }
4238 _xinerama=no
4239 cc_check -lXinerama && _xinerama=yes
4242 if test "$_xinerama" = yes ; then
4243 def_xinerama='#define CONFIG_XINERAMA 1'
4244 libs_mplayer="$libs_mplayer -lXinerama"
4245 else
4246 def_xinerama='#undef CONFIG_XINERAMA'
4248 echores "$_xinerama"
4251 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4252 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4253 # named 'X extensions' or something similar.
4254 # This check may be useful for future mplayer versions (to change resolution)
4255 # If you run into problems, remove '-lXxf86vm'.
4256 echocheck "Xxf86vm"
4257 if test "$_vm" = auto ; then
4258 cat > $TMPC <<EOF
4259 #include <X11/Xlib.h>
4260 #include <X11/extensions/xf86vmode.h>
4261 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4263 _vm=no
4264 cc_check -lXxf86vm && _vm=yes
4266 if test "$_vm" = yes ; then
4267 def_vm='#define CONFIG_XF86VM 1'
4268 libs_mplayer="$libs_mplayer -lXxf86vm"
4269 else
4270 def_vm='#undef CONFIG_XF86VM'
4272 echores "$_vm"
4274 # Check for the presence of special keycodes, like audio control buttons
4275 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4276 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4277 # have these new keycodes.
4278 echocheck "XF86keysym"
4279 if test "$_xf86keysym" = auto; then
4280 _xf86keysym=no
4281 cat > $TMPC <<EOF
4282 #include <X11/Xlib.h>
4283 #include <X11/XF86keysym.h>
4284 int main(void) { return XF86XK_AudioPause; }
4286 cc_check && _xf86keysym=yes
4288 if test "$_xf86keysym" = yes ; then
4289 def_xf86keysym='#define CONFIG_XF86XK 1'
4290 else
4291 def_xf86keysym='#undef CONFIG_XF86XK'
4293 echores "$_xf86keysym"
4295 echocheck "DGA"
4296 if test "$_dga2" = auto && test "$_x11" = yes ; then
4297 cat > $TMPC << EOF
4298 #include <X11/Xlib.h>
4299 #include <X11/extensions/xf86dga.h>
4300 int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4302 _dga2=no
4303 cc_check -lXxf86dga && _dga2=yes
4305 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4306 cat > $TMPC << EOF
4307 #include <X11/Xlib.h>
4308 #include <X11/extensions/xf86dga.h>
4309 int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4311 _dga1=no
4312 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4315 _dga=no
4316 def_dga='#undef CONFIG_DGA'
4317 def_dga1='#undef CONFIG_DGA1'
4318 def_dga2='#undef CONFIG_DGA2'
4319 if test "$_dga1" = yes ; then
4320 _dga=yes
4321 def_dga1='#define CONFIG_DGA1 1'
4322 _res_comment="using DGA 1.0"
4323 elif test "$_dga2" = yes ; then
4324 _dga=yes
4325 def_dga2='#define CONFIG_DGA2 1'
4326 _res_comment="using DGA 2.0"
4328 if test "$_dga" = yes ; then
4329 def_dga='#define CONFIG_DGA 1'
4330 libs_mplayer="$libs_mplayer -lXxf86dga"
4331 _vomodules="dga $_vomodules"
4332 else
4333 _novomodules="dga $_novomodules"
4335 echores "$_dga"
4338 echocheck "3dfx"
4339 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4340 def_3dfx='#define CONFIG_3DFX 1'
4341 _vomodules="3dfx $_vomodules"
4342 else
4343 def_3dfx='#undef CONFIG_3DFX'
4344 _novomodules="3dfx $_novomodules"
4346 echores "$_3dfx"
4349 echocheck "OpenGL"
4350 #Note: this test is run even with --enable-gl since we autodetect linker flags
4351 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
4352 cat > $TMPC << EOF
4353 #ifdef GL_WIN32
4354 #include <windows.h>
4355 #include <GL/gl.h>
4356 #else
4357 #include <GL/gl.h>
4358 #include <X11/Xlib.h>
4359 #include <GL/glx.h>
4360 #endif
4361 int main(void) {
4362 #ifdef GL_WIN32
4363 HDC dc;
4364 wglCreateContext(dc);
4365 #else
4366 glXCreateContext(NULL, NULL, NULL, True);
4367 #endif
4368 glFinish();
4369 return 0;
4372 _gl=no
4373 if cc_check -lGL $_ld_lm ; then
4374 _gl=yes
4375 libs_mplayer="$libs_mplayer -lGL $_ld_dl"
4376 elif cc_check -lGL $_ld_lm $_ld_pthread ; then
4377 _gl=yes
4378 libs_mplayer="$libs_mplayer -lGL $_ld_pthread $_ld_dl"
4379 elif cc_check -DGL_WIN32 -lopengl32 ; then
4380 _gl=yes
4381 _gl_win32=yes
4382 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
4384 else
4385 _gl=no
4387 if test "$_gl" = yes ; then
4388 def_gl='#define CONFIG_GL 1'
4389 if test "$_gl_win32" = yes ; then
4390 def_gl_win32='#define GL_WIN32 1'
4391 _res_comment="win32 version"
4393 _vomodules="opengl $_vomodules"
4394 else
4395 def_gl='#undef CONFIG_GL'
4396 def_gl_win32='#undef GL_WIN32'
4397 _novomodules="opengl $_novomodules"
4399 echores "$_gl"
4402 echocheck "VIDIX"
4403 def_vidix='#undef CONFIG_VIDIX'
4404 def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4405 _vidix_drv_cyberblade=no
4406 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4407 _vidix_drv_ivtv=no
4408 def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4409 _vidix_drv_mach64=no
4410 def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4411 _vidix_drv_mga=no
4412 def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4413 _vidix_drv_mga_crtc2=no
4414 def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4415 _vidix_drv_nvidia=no
4416 def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4417 _vidix_drv_pm2=no
4418 def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4419 _vidix_drv_pm3=no
4420 def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4421 _vidix_drv_radeon=no
4422 def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4423 _vidix_drv_rage128=no
4424 def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4425 _vidix_drv_s3=no
4426 def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU'
4427 _vidix_drv_sh_veu=no
4428 def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4429 _vidix_drv_sis=no
4430 def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4431 _vidix_drv_unichrome=no
4432 if test "$_vidix" = auto ; then
4433 _vidix=no
4434 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4435 && _vidix=yes
4436 (ppc || alpha) && linux && _vidix=yes
4438 echores "$_vidix"
4440 if test "$_vidix" = yes ; then
4441 def_vidix='#define CONFIG_VIDIX 1'
4442 _vomodules="cvidix $_vomodules"
4443 # FIXME: ivtv driver temporarily disabled until we have a proper test
4444 #test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4445 test "$_vidix_drivers" || _vidix_drivers="cyberblade mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4447 # some vidix drivers are architecture and os specific, discard them elsewhere
4448 x86 || _vidix_drivers=$(echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//)
4449 (test $host_arch = "sh" && linux) || _vidix_drivers=$(echo $_vidix_drivers | sed s/sh_veu//)
4451 for driver in $_vidix_drivers ; do
4452 uc_driver=$(echo $driver | tr '[a-z]' '[A-Z]')
4453 eval _vidix_drv_${driver}=yes
4454 eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4455 done
4457 echocheck "VIDIX PCI device name database"
4458 echores "$_vidix_pcidb"
4459 if test "$_vidix_pcidb" = yes ; then
4460 _vidix_pcidb_val=1
4461 else
4462 _vidix_pcidb_val=0
4465 echocheck "VIDIX dhahelper support"
4466 test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER
4467 echores "$_dhahelper"
4469 echocheck "VIDIX svgalib_helper support"
4470 test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER
4471 echores "$_svgalib_helper"
4473 else
4474 _novomodules="cvidix $_novomodules"
4477 if test "$_vidix" = yes && win32; then
4478 winvidix=yes
4479 _vomodules="winvidix $_vomodules"
4480 libs_mplayer="$libs_mplayer -lgdi32"
4481 else
4482 _novomodules="winvidix $_novomodules"
4484 if test "$_vidix" = yes && test "$_x11" = yes; then
4485 xvidix=yes
4486 _vomodules="xvidix $_vomodules"
4487 else
4488 _novomodules="xvidix $_novomodules"
4491 echocheck "GGI"
4492 if test "$_ggi" = auto ; then
4493 cat > $TMPC << EOF
4494 #include <ggi/ggi.h>
4495 int main(void) { ggiInit(); return 0; }
4497 _ggi=no
4498 cc_check -lggi && _ggi=yes
4500 if test "$_ggi" = yes ; then
4501 def_ggi='#define CONFIG_GGI 1'
4502 libs_mplayer="$libs_mplayer -lggi"
4503 _vomodules="ggi $_vomodules"
4504 else
4505 def_ggi='#undef CONFIG_GGI'
4506 _novomodules="ggi $_novomodules"
4508 echores "$_ggi"
4510 echocheck "GGI extension: libggiwmh"
4511 if test "$_ggiwmh" = auto ; then
4512 _ggiwmh=no
4513 cat > $TMPC << EOF
4514 #include <ggi/ggi.h>
4515 #include <ggi/wmh.h>
4516 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4518 cc_check -lggi -lggiwmh && _ggiwmh=yes
4520 # needed to get right output on obscure combination
4521 # like --disable-ggi --enable-ggiwmh
4522 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4523 def_ggiwmh='#define CONFIG_GGIWMH 1'
4524 libs_mplayer="$libs_mplayer -lggiwmh"
4525 else
4526 _ggiwmh=no
4527 def_ggiwmh='#undef CONFIG_GGIWMH'
4529 echores "$_ggiwmh"
4532 echocheck "AA"
4533 if test "$_aa" = auto ; then
4534 cat > $TMPC << EOF
4535 #include <aalib.h>
4536 extern struct aa_hardware_params aa_defparams;
4537 extern struct aa_renderparams aa_defrenderparams;
4538 int main(void) {
4539 aa_context *c;
4540 aa_renderparams *p;
4541 (void) aa_init(0, 0, 0);
4542 c = aa_autoinit(&aa_defparams);
4543 p = aa_getrenderparams();
4544 aa_autoinitkbd(c,0);
4545 return 0; }
4547 _aa=no
4548 for _ld_tmp in "-laa" ; do
4549 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4550 done
4552 if test "$_aa" = yes ; then
4553 def_aa='#define CONFIG_AA 1'
4554 if cygwin ; then
4555 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4557 _vomodules="aa $_vomodules"
4558 else
4559 def_aa='#undef CONFIG_AA'
4560 _novomodules="aa $_novomodules"
4562 echores "$_aa"
4565 echocheck "CACA"
4566 if test "$_caca" = auto ; then
4567 _caca=no
4568 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4569 cat > $TMPC << EOF
4570 #include <caca.h>
4571 #ifdef CACA_API_VERSION_1
4572 #include <caca0.h>
4573 #endif
4574 int main(void) { (void) caca_init(); return 0; }
4576 cc_check $(caca-config --libs) && _caca=yes
4579 if test "$_caca" = yes ; then
4580 def_caca='#define CONFIG_CACA 1'
4581 extra_cflags="$extra_cflags $(caca-config --cflags)"
4582 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4583 _vomodules="caca $_vomodules"
4584 else
4585 def_caca='#undef CONFIG_CACA'
4586 _novomodules="caca $_novomodules"
4588 echores "$_caca"
4591 echocheck "SVGAlib"
4592 if test "$_svga" = auto ; then
4593 cat > $TMPC << EOF
4594 #include <vga.h>
4595 int main(void) { return 0; }
4597 _svga=no
4598 cc_check -lvga $_ld_lm && _svga=yes
4600 if test "$_svga" = yes ; then
4601 def_svga='#define CONFIG_SVGALIB 1'
4602 libs_mplayer="$libs_mplayer -lvga"
4603 _vomodules="svga $_vomodules"
4604 else
4605 def_svga='#undef CONFIG_SVGALIB'
4606 _novomodules="svga $_novomodules"
4608 echores "$_svga"
4611 echocheck "FBDev"
4612 if test "$_fbdev" = auto ; then
4613 _fbdev=no
4614 linux && _fbdev=yes
4616 if test "$_fbdev" = yes ; then
4617 def_fbdev='#define CONFIG_FBDEV 1'
4618 _vomodules="fbdev $_vomodules"
4619 else
4620 def_fbdev='#undef CONFIG_FBDEV'
4621 _novomodules="fbdev $_novomodules"
4623 echores "$_fbdev"
4627 echocheck "DVB"
4628 if test "$_dvb" = auto ; then
4629 _dvb=no
4630 cat >$TMPC << EOF
4631 #include <poll.h>
4632 #include <sys/ioctl.h>
4633 #include <stdio.h>
4634 #include <time.h>
4635 #include <unistd.h>
4636 #include <ost/dmx.h>
4637 #include <ost/frontend.h>
4638 #include <ost/sec.h>
4639 #include <ost/video.h>
4640 #include <ost/audio.h>
4641 int main(void) {return 0;}
4643 for _inc_tmp in "" "-I/usr/src/DVB/ost/include" ; do
4644 cc_check $_inc_tmp && _dvb=yes && \
4645 extra_cflags="$extra_cflags $_inc_tmp" && break
4646 done
4648 echores "$_dvb"
4649 if test "$_dvb" = yes ; then
4650 def_dvb='#define CONFIG_DVB 1'
4651 def_dvbin='#define CONFIG_DVBIN 1'
4652 _aomodules="mpegpes(dvb) $_aomodules"
4653 _vomodules="mpegpes(dvb) $_vomodules"
4656 echocheck "DVB HEAD"
4657 if test "$_dvbhead" = auto ; then
4658 _dvbhead=no
4660 cat >$TMPC << EOF
4661 #include <poll.h>
4662 #include <sys/ioctl.h>
4663 #include <stdio.h>
4664 #include <time.h>
4665 #include <unistd.h>
4666 #include <linux/dvb/dmx.h>
4667 #include <linux/dvb/frontend.h>
4668 #include <linux/dvb/video.h>
4669 #include <linux/dvb/audio.h>
4670 int main(void) {return 0;}
4672 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4673 cc_check $_inc_tmp && _dvbhead=yes && \
4674 extra_cflags="$extra_cflags $_inc_tmp" && break
4675 done
4677 echores "$_dvbhead"
4678 if test "$_dvbhead" = yes ; then
4679 def_dvb='#define CONFIG_DVB 1'
4680 def_dvb_head='#define CONFIG_DVB_HEAD 1'
4681 def_dvbin='#define CONFIG_DVBIN 1'
4682 _aomodules="mpegpes(dvb) $_aomodules"
4683 _vomodules="mpegpes(dvb) $_vomodules"
4686 if test "$_dvbhead" = no && test "$_dvb" = no ; then
4687 def_dvb='#undef CONFIG_DVB'
4688 def_dvb_head='#undef CONFIG_DVB_HEAD'
4689 def_dvbin='#undef CONFIG_DVBIN '
4690 _aomodules="mpegpes(file) $_aomodules"
4691 _vomodules="mpegpes(file) $_vomodules"
4694 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
4695 _dvbin=yes
4696 _inputmodules="dvb $_inputmodules"
4697 else
4698 _dvbin=no
4699 _noinputmodules="dvb $_noinputmodules"
4703 if darwin; then
4705 echocheck "Quartz"
4706 if test "$_quartz" = auto ; then
4707 cat > $TMPC <<EOF
4708 #include <Carbon/Carbon.h>
4709 #include <QuickTime/QuickTime.h>
4710 int main(void) {
4711 EnterMovies();
4712 ExitMovies();
4713 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
4714 return 0;
4717 _quartz=no
4718 cc_check -framework Carbon -framework QuickTime && _quartz=yes
4720 if test "$_quartz" = yes ; then
4721 libs_mplayer="$libs_mplayer -framework Carbon -framework QuickTime"
4722 def_quartz='#define CONFIG_QUARTZ 1'
4723 _vomodules="quartz $_vomodules"
4724 else
4725 def_quartz='#undef CONFIG_QUARTZ'
4726 _novomodules="quartz $_novomodules"
4728 echores $_quartz
4730 echocheck "CoreVideo"
4731 if test "$_corevideo" = auto ; then
4732 cat > $TMPC <<EOF
4733 #include <Carbon/Carbon.h>
4734 #include <CoreServices/CoreServices.h>
4735 #include <OpenGL/OpenGL.h>
4736 #include <QuartzCore/CoreVideo.h>
4737 int main(void) { return 0; }
4739 _corevideo=no
4740 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
4742 if test "$_corevideo" = yes ; then
4743 _vomodules="corevideo $_vomodules"
4744 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
4745 def_corevideo='#define CONFIG_COREVIDEO 1'
4746 else
4747 _novomodules="corevideo $_novomodules"
4748 def_corevideo='#undef CONFIG_COREVIDEO'
4750 echores "$_corevideo"
4752 fi #if darwin
4755 echocheck "PNG support"
4756 if test "$_png" = auto ; then
4757 _png=no
4758 if irix ; then
4759 # Don't check for -lpng on irix since it has its own libpng
4760 # incompatible with the GNU libpng
4761 _res_comment="disabled on irix (not GNU libpng)"
4762 else
4763 cat > $TMPC << EOF
4764 #include <png.h>
4765 #include <string.h>
4766 int main(void) {
4767 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4768 printf("libpng: %s\n", png_libpng_ver);
4769 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
4772 if cc_check -lpng -lz $_ld_lm ; then
4773 if tmp_run ; then
4774 _png=yes
4775 else
4776 _res_comment="mismatch of library and header versions"
4781 echores "$_png"
4782 if test "$_png" = yes ; then
4783 def_png='#define CONFIG_PNG 1'
4784 extra_ldflags="$extra_ldflags -lpng -lz"
4785 _vomodules="png $_vomodules"
4786 else
4787 def_png='#undef CONFIG_PNG'
4788 _novomodules="png $_novomodules"
4791 echocheck "MNG support"
4792 if test "$_mng" = auto ; then
4793 _mng=no
4794 cat > $TMPC << EOF
4795 #include <libmng.h>
4796 int main(void) {
4797 const char * p_ver = mng_version_text();
4798 return !p_ver || p_ver[0] == 0;
4801 if cc_check -lmng -lz $_ld_lm ; then
4802 _mng=yes
4805 echores "$_mng"
4806 if test "$_mng" = yes ; then
4807 def_mng='#define CONFIG_MNG 1'
4808 extra_ldflags="$extra_ldflags -lmng -lz"
4809 else
4810 def_mng='#undef CONFIG_MNG'
4813 echocheck "JPEG support"
4814 if test "$_jpeg" = auto ; then
4815 _jpeg=no
4816 cat > $TMPC << EOF
4817 #include <stdio.h>
4818 #include <stdlib.h>
4819 #include <setjmp.h>
4820 #include <string.h>
4821 #include <jpeglib.h>
4822 int main(void) { return 0; }
4824 if cc_check -ljpeg $_ld_lm ; then
4825 if tmp_run ; then
4826 _jpeg=yes
4830 echores "$_jpeg"
4832 if test "$_jpeg" = yes ; then
4833 def_jpeg='#define CONFIG_JPEG 1'
4834 _vomodules="jpeg $_vomodules"
4835 extra_ldflags="$extra_ldflags -ljpeg"
4836 else
4837 def_jpeg='#undef CONFIG_JPEG'
4838 _novomodules="jpeg $_novomodules"
4843 echocheck "PNM support"
4844 if test "$_pnm" = yes; then
4845 def_pnm="#define CONFIG_PNM 1"
4846 _vomodules="pnm $_vomodules"
4847 else
4848 def_pnm="#undef CONFIG_PNM"
4849 _novomodules="pnm $_novomodules"
4851 echores "$_pnm"
4855 echocheck "GIF support"
4856 # This is to appease people who want to force gif support.
4857 # If it is forced to yes, then we still do checks to determine
4858 # which gif library to use.
4859 if test "$_gif" = yes ; then
4860 _force_gif=yes
4861 _gif=auto
4864 if test "$_gif" = auto ; then
4865 _gif=no
4866 cat > $TMPC << EOF
4867 #include <gif_lib.h>
4868 int main(void) { return 0; }
4870 for _ld_gif in "-lungif" "-lgif" ; do
4871 cc_check $_ld_gif && tmp_run && _gif=yes && break
4872 done
4875 # If no library was found, and the user wants support forced,
4876 # then we force it on with libgif, as this is the safest
4877 # assumption IMHO. (libungif & libregif both create symbolic
4878 # links to libgif. We also assume that no x11 support is needed,
4879 # because if you are forcing this, then you _should_ know what
4880 # you are doing. [ Besides, package maintainers should never
4881 # have compiled x11 deps into libungif in the first place. ] )
4882 # </rant>
4883 # --Joey
4884 if test "$_force_gif" = yes && test "$_gif" = no ; then
4885 _gif=yes
4886 _ld_gif="-lgif"
4889 if test "$_gif" = yes ; then
4890 def_gif='#define CONFIG_GIF 1'
4891 _codecmodules="gif $_codecmodules"
4892 _vomodules="gif89a $_vomodules"
4893 _res_comment="old version, some encoding functions disabled"
4894 def_gif_4='#undef CONFIG_GIF_4'
4895 extra_ldflags="$extra_ldflags $_ld_gif"
4897 cat > $TMPC << EOF
4898 #include <signal.h>
4899 #include <gif_lib.h>
4900 void catch() { exit(1); }
4901 int main(void) {
4902 signal(SIGSEGV, catch); // catch segfault
4903 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
4904 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
4905 return 0;
4908 if cc_check "$_ld_gif" && tmp_run ; then
4909 def_gif_4='#define CONFIG_GIF_4 1'
4910 _res_comment=""
4912 else
4913 def_gif='#undef CONFIG_GIF'
4914 def_gif_4='#undef CONFIG_GIF_4'
4915 _novomodules="gif89a $_novomodules"
4916 _nocodecmodules="gif $_nocodecmodules"
4918 echores "$_gif"
4921 case "$_gif" in yes*)
4922 echocheck "broken giflib workaround"
4923 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
4925 cat > $TMPC << EOF
4926 #include <gif_lib.h>
4927 int main(void) {
4928 GifFileType gif;
4929 printf("UserData is at address %p\n", gif.UserData);
4930 return 0;
4933 if cc_check "$_ld_gif" && tmp_run ; then
4934 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
4935 echores "disabled"
4936 else
4937 echores "enabled"
4940 esac
4943 echocheck "VESA support"
4944 if test "$_vesa" = auto ; then
4945 cat > $TMPC << EOF
4946 #include <vbe.h>
4947 int main(void) { vbeVersion(); return 0; }
4949 _vesa=no
4950 cc_check -lvbe -llrmi && _vesa=yes
4952 if test "$_vesa" = yes ; then
4953 def_vesa='#define CONFIG_VESA 1'
4954 libs_mplayer="$libs_mplayer -lvbe -llrmi"
4955 _vomodules="vesa $_vomodules"
4956 else
4957 def_vesa='#undef CONFIG_VESA'
4958 _novomodules="vesa $_novomodules"
4960 echores "$_vesa"
4962 #################
4963 # VIDEO + AUDIO #
4964 #################
4967 echocheck "SDL"
4968 if test -z "$_sdlconfig" ; then
4969 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
4970 _sdlconfig="sdl-config"
4971 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
4972 _sdlconfig="sdl11-config"
4973 else
4974 _sdlconfig=false
4977 if test "$_sdl" = auto || test "$_sdl" = yes ; then
4978 cat > $TMPC << EOF
4979 #include <SDL.h>
4980 int main(int argc, char *argv[]) {
4981 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
4982 return 0;
4985 _sdl=no
4986 if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
4987 if cc_check $($_sdlconfig --cflags) $($_sdlconfig --libs) >>"$TMPLOG" 2>&1 ; then
4988 _sdlversion=$($_sdlconfig --version | sed 's/[^0-9]//g')
4989 if test "$_sdlversion" -gt 116 ; then
4990 if test "$_sdlversion" -lt 121 ; then
4991 def_sdlbuggy='#define BUGGY_SDL'
4992 else
4993 def_sdlbuggy='#undef BUGGY_SDL'
4995 _sdl=yes
5000 if test "$_sdl" = yes ; then
5001 def_sdl='#define CONFIG_SDL 1'
5002 if cygwin ; then
5003 libs_mplayer="$libs_mplayer $($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
5004 extra_cflags="$extra_cflags $($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
5005 elif mingw32 ; then
5006 libs_mplayer="$libs_mplayer $($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)"
5007 extra_cflags="$extra_cflags $($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)"
5008 else
5009 libs_mplayer="$libs_mplayer $($_sdlconfig --libs)"
5010 extra_cflags="$extra_cflags $($_sdlconfig --cflags | sed s/-D_GNU_SOURCE=1//)"
5012 _vomodules="sdl $_vomodules"
5013 _aomodules="sdl $_aomodules"
5014 _res_comment="using $_sdlconfig"
5015 else
5016 def_sdl='#undef CONFIG_SDL'
5017 _novomodules="sdl $_novomodules"
5018 _noaomodules="sdl $_noaomodules"
5020 echores "$_sdl"
5023 if os2 ; then
5024 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
5025 if test "$_kva" = auto; then
5026 cat > $TMPC << EOF
5027 #include <os2.h>
5028 #include <kva.h>
5029 int main( void ) { return 0; }
5031 _kva=no;
5032 cc_check -lkva && _kva=yes
5034 if test "$_kva" = yes ; then
5035 def_kva='#define CONFIG_KVA 1'
5036 libs_mplayer="$libs_mplayer -lkva"
5037 _vomodules="kva $_vomodules"
5038 else
5039 def_kva='#undef CONFIG_KVA'
5040 _novomodules="kva $_novomodules"
5042 echores "$_kva"
5043 fi #if os2
5046 if win32; then
5048 echocheck "Windows waveout"
5049 if test "$_win32waveout" = auto ; then
5050 cat > $TMPC << EOF
5051 #include <windows.h>
5052 #include <mmsystem.h>
5053 int main(void) { return 0; }
5055 _win32waveout=no
5056 cc_check -lwinmm && _win32waveout=yes
5058 if test "$_win32waveout" = yes ; then
5059 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
5060 libs_mplayer="$libs_mplayer -lwinmm"
5061 _aomodules="win32 $_aomodules"
5062 else
5063 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
5064 _noaomodules="win32 $_noaomodules"
5066 echores "$_win32waveout"
5068 echocheck "Direct3D"
5069 if test "$_direct3d" = auto ; then
5070 cat > $TMPC << EOF
5071 #include <windows.h>
5072 #include <d3d9.h>
5073 int main(void) { return 0; }
5075 _direct3d=no
5076 cc_check -ld3d9 && _direct3d=yes
5078 if test "$_direct3d" = yes ; then
5079 def_direct3d='#define CONFIG_DIRECT3D 1'
5080 libs_mplayer="$libs_mplayer -ld3d9"
5081 _vomodules="direct3d $_vomodules"
5082 else
5083 def_direct3d='#undef CONFIG_DIRECT3D'
5084 _novomodules="direct3d $_novomodules"
5086 echores "$_direct3d"
5088 echocheck "Directx"
5089 if test "$_directx" = auto ; then
5090 cat > $TMPC << EOF
5091 #include <windows.h>
5092 #include <ddraw.h>
5093 #include <dsound.h>
5094 int main(void) { return 0; }
5096 _directx=no
5097 cc_check -lgdi32 && _directx=yes
5099 if test "$_directx" = yes ; then
5100 def_directx='#define CONFIG_DIRECTX 1'
5101 libs_mplayer="$libs_mplayer -lgdi32"
5102 _vomodules="directx $_vomodules"
5103 _aomodules="dsound $_aomodules"
5104 else
5105 def_directx='#undef CONFIG_DIRECTX'
5106 _novomodules="directx $_novomodules"
5107 _noaomodules="dsound $_noaomodules"
5109 echores "$_directx"
5111 fi #if win32; then
5114 echocheck "DXR2"
5115 if test "$_dxr2" = auto; then
5116 _dxr2=no
5117 cat > $TMPC << EOF
5118 #include <dxr2ioctl.h>
5119 int main(void) { return 0; }
5121 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
5122 cc_check $_inc_tmp && _dxr2=yes && \
5123 extra_cflags="$extra_cflags $_inc_tmp" && break
5124 done
5126 if test "$_dxr2" = yes; then
5127 def_dxr2='#define CONFIG_DXR2 1'
5128 _aomodules="dxr2 $_aomodules"
5129 _vomodules="dxr2 $_vomodules"
5130 else
5131 def_dxr2='#undef CONFIG_DXR2'
5132 _noaomodules="dxr2 $_noaomodules"
5133 _novomodules="dxr2 $_novomodules"
5135 echores "$_dxr2"
5137 echocheck "DXR3/H+"
5138 if test "$_dxr3" = auto ; then
5139 cat > $TMPC << EOF
5140 #include <linux/em8300.h>
5141 int main(void) { return 0; }
5143 _dxr3=no
5144 cc_check && _dxr3=yes
5146 if test "$_dxr3" = yes ; then
5147 def_dxr3='#define CONFIG_DXR3 1'
5148 _vomodules="dxr3 $_vomodules"
5149 else
5150 def_dxr3='#undef CONFIG_DXR3'
5151 _novomodules="dxr3 $_novomodules"
5153 echores "$_dxr3"
5156 echocheck "IVTV TV-Out (pre linux-2.6.24)"
5157 if test "$_ivtv" = auto ; then
5158 cat > $TMPC << EOF
5159 #include <stdlib.h>
5160 #include <inttypes.h>
5161 #include <linux/types.h>
5162 #include <linux/videodev2.h>
5163 #include <linux/ivtv.h>
5164 #include <sys/ioctl.h>
5165 int main(void) {
5166 struct ivtv_cfg_stop_decode sd;
5167 struct ivtv_cfg_start_decode sd1;
5168 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
5169 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
5170 return 0; }
5172 _ivtv=no
5173 cc_check && _ivtv=yes
5175 if test "$_ivtv" = yes ; then
5176 def_ivtv='#define CONFIG_IVTV 1'
5177 _vomodules="ivtv $_vomodules"
5178 _aomodules="ivtv $_aomodules"
5179 else
5180 def_ivtv='#undef CONFIG_IVTV'
5181 _novomodules="ivtv $_novomodules"
5182 _noaomodules="ivtv $_noaomodules"
5184 echores "$_ivtv"
5187 echocheck "V4L2 MPEG Decoder"
5188 if test "$_v4l2" = auto ; then
5189 cat > $TMPC << EOF
5190 #include <stdlib.h>
5191 #include <inttypes.h>
5192 #include <linux/types.h>
5193 #include <linux/videodev2.h>
5194 #include <linux/version.h>
5195 int main(void) {
5196 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
5197 #error kernel headers too old, need 2.6.22
5198 bad_kernel_version();
5199 #endif
5200 struct v4l2_ext_controls ctrls;
5201 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
5202 return 0;
5205 _v4l2=no
5206 cc_check && _v4l2=yes
5208 if test "$_v4l2" = yes ; then
5209 def_v4l2='#define CONFIG_V4L2_DECODER 1'
5210 _vomodules="v4l2 $_vomodules"
5211 _aomodules="v4l2 $_aomodules"
5212 else
5213 def_v4l2='#undef CONFIG_V4L2_DECODER'
5214 _novomodules="v4l2 $_novomodules"
5215 _noaomodules="v4l2 $_noaomodules"
5217 echores "$_v4l2"
5221 #########
5222 # AUDIO #
5223 #########
5226 echocheck "OSS Audio"
5227 if test "$_ossaudio" = auto ; then
5228 cat > $TMPC << EOF
5229 #include <sys/ioctl.h>
5230 #include <$_soundcard_header>
5231 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5233 _ossaudio=no
5234 cc_check && _ossaudio=yes
5236 if test "$_ossaudio" = yes ; then
5237 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
5238 _aomodules="oss $_aomodules"
5239 if test "$_linux_devfs" = yes; then
5240 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
5241 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
5242 else
5243 cat > $TMPC << EOF
5244 #include <sys/ioctl.h>
5245 #include <$_soundcard_header>
5246 #ifdef OPEN_SOUND_SYSTEM
5247 int main(void) { return 0; }
5248 #else
5249 #error Not the real thing
5250 #endif
5252 _real_ossaudio=no
5253 cc_check && _real_ossaudio=yes
5254 if test "$_real_ossaudio" = yes; then
5255 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5256 # Check for OSS4 headers (override default headers)
5257 # Does not apply to systems where OSS4 is native (e.g. FreeBSD)
5258 if test -f /etc/oss.conf; then
5259 . /etc/oss.conf
5260 _ossinc="$OSSLIBDIR/include"
5261 if test -f "$_ossinc/sys/soundcard.h"; then
5262 extra_cflags="-I$_ossinc $extra_cflags"
5265 elif netbsd || openbsd ; then
5266 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5267 extra_ldflags="$extra_ldflags -lossaudio"
5268 else
5269 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5271 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5273 else
5274 def_ossaudio='#undef CONFIG_OSS_AUDIO'
5275 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5276 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5277 _noaomodules="oss $_noaomodules"
5279 echores "$_ossaudio"
5282 echocheck "aRts"
5283 if test "$_arts" = auto ; then
5284 _arts=no
5285 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5287 cat > $TMPC << EOF
5288 #include <artsc.h>
5289 int main(void) { return 0; }
5291 cc_check $(artsc-config --libs) $(artsc-config --cflags) && tmp_run && _arts=yes
5296 if test "$_arts" = yes ; then
5297 def_arts='#define CONFIG_ARTS 1'
5298 _aomodules="arts $_aomodules"
5299 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
5300 extra_cflags="$extra_cflags $(artsc-config --cflags)"
5301 else
5302 _noaomodules="arts $_noaomodules"
5304 echores "$_arts"
5307 echocheck "EsounD"
5308 if test "$_esd" = auto ; then
5309 _esd=no
5310 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5312 cat > $TMPC << EOF
5313 #include <esd.h>
5314 int main(void) { int fd = esd_open_sound("test"); return fd; }
5316 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd=yes
5320 echores "$_esd"
5322 if test "$_esd" = yes ; then
5323 def_esd='#define CONFIG_ESD 1'
5324 _aomodules="esd $_aomodules"
5325 libs_mplayer="$libs_mplayer $(esd-config --libs)"
5326 extra_cflags="$extra_cflags $(esd-config --cflags)"
5328 echocheck "esd_get_latency()"
5329 cat > $TMPC << EOF
5330 #include <esd.h>
5331 int main(void) { return esd_get_latency(0); }
5333 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY'
5334 echores "$_esd_latency"
5335 else
5336 def_esd='#undef CONFIG_ESD'
5337 def_esd_latency='#undef CONFIG_ESD_LATENCY'
5338 _noaomodules="esd $_noaomodules"
5342 echocheck "NAS"
5343 if test "$_nas" = auto ; then
5344 cat > $TMPC << EOF
5345 #include <audio/audiolib.h>
5346 int main(void) { return 0; }
5348 _nas=no
5349 cc_check $_ld_lm -laudio -lXt && _nas=yes
5351 if test "$_nas" = yes ; then
5352 def_nas='#define CONFIG_NAS 1'
5353 libs_mplayer="$libs_mplayer -laudio -lXt"
5354 _aomodules="nas $_aomodules"
5355 else
5356 _noaomodules="nas $_noaomodules"
5357 def_nas='#undef CONFIG_NAS'
5359 echores "$_nas"
5362 echocheck "pulse"
5363 if test "$_pulse" = auto ; then
5364 _pulse=no
5365 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5367 cat > $TMPC << EOF
5368 #include <pulse/pulseaudio.h>
5369 int main(void) { return 0; }
5371 cc_check $($_pkg_config --libs --cflags libpulse) && tmp_run && _pulse=yes
5375 echores "$_pulse"
5377 if test "$_pulse" = yes ; then
5378 def_pulse='#define CONFIG_PULSE 1'
5379 _aomodules="pulse $_aomodules"
5380 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
5381 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
5382 else
5383 def_pulse='#undef CONFIG_PULSE'
5384 _noaomodules="pulse $_noaomodules"
5388 echocheck "JACK"
5389 if test "$_jack" = auto ; then
5390 _jack=yes
5392 cat > $TMPC << EOF
5393 #include <jack/jack.h>
5394 int main(void) { jack_client_open("test", JackUseExactName, NULL); return 0; }
5396 if cc_check -ljack ; then
5397 libs_mplayer="$libs_mplayer -ljack"
5398 elif cc_check $($_pkg_config --libs --cflags --silence-errors jack) ; then
5399 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
5400 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
5401 else
5402 _jack=no
5406 if test "$_jack" = yes ; then
5407 def_jack='#define CONFIG_JACK 1'
5408 _aomodules="jack $_aomodules"
5409 else
5410 _noaomodules="jack $_noaomodules"
5412 echores "$_jack"
5414 echocheck "OpenAL"
5415 if test "$_openal" = auto ; then
5416 _openal=no
5417 cat > $TMPC << EOF
5418 #ifdef OPENAL_AL_H
5419 #include <OpenAL/al.h>
5420 #else
5421 #include <AL/al.h>
5422 #endif
5423 int main(void) {
5424 alSourceQueueBuffers(0, 0, 0);
5425 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5426 return 0;
5429 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5430 cc_check $I && _openal=yes && break
5431 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5432 done
5433 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
5435 if test "$_openal" = yes ; then
5436 def_openal='#define CONFIG_OPENAL 1'
5437 _aomodules="openal $_aomodules"
5438 else
5439 _noaomodules="openal $_noaomodules"
5441 echores "$_openal"
5443 echocheck "ALSA audio"
5444 if test "$_alloca" != yes ; then
5445 _alsa=no
5446 _res_comment="alloca missing"
5448 if test "$_alsa" != no ; then
5449 _alsa=no
5450 cat > $TMPC << EOF
5451 #include <sys/time.h>
5452 #include <sys/asoundlib.h>
5453 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5454 #error "alsa version != 0.5.x"
5455 #endif
5456 int main(void) { return 0; }
5458 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5460 cat > $TMPC << EOF
5461 #include <sys/time.h>
5462 #include <sys/asoundlib.h>
5463 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5464 #error "alsa version != 0.9.x"
5465 #endif
5466 int main(void) { return 0; }
5468 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5469 cat > $TMPC << EOF
5470 #include <sys/time.h>
5471 #include <alsa/asoundlib.h>
5472 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5473 #error "alsa version != 0.9.x"
5474 #endif
5475 int main(void) { return 0; }
5477 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5479 cat > $TMPC << EOF
5480 #include <sys/time.h>
5481 #include <sys/asoundlib.h>
5482 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5483 #error "alsa version != 1.0.x"
5484 #endif
5485 int main(void) { return 0; }
5487 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5488 cat > $TMPC << EOF
5489 #include <sys/time.h>
5490 #include <alsa/asoundlib.h>
5491 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5492 #error "alsa version != 1.0.x"
5493 #endif
5494 int main(void) { return 0; }
5496 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5498 def_alsa='#undef CONFIG_ALSA'
5499 def_alsa5='#undef CONFIG_ALSA5'
5500 def_alsa9='#undef CONFIG_ALSA9'
5501 def_alsa1x='#undef CONFIG_ALSA1X'
5502 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5503 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5504 if test "$_alsaver" ; then
5505 _alsa=yes
5506 if test "$_alsaver" = '0.5.x' ; then
5507 _alsa5=yes
5508 _aomodules="alsa5 $_aomodules"
5509 def_alsa5='#define CONFIG_ALSA5 1'
5510 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5511 _res_comment="using alsa 0.5.x and sys/asoundlib.h"
5512 elif test "$_alsaver" = '0.9.x-sys' ; then
5513 _alsa9=yes
5514 _aomodules="alsa $_aomodules"
5515 def_alsa='#define CONFIG_ALSA 1'
5516 def_alsa9='#define CONFIG_ALSA9 1'
5517 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5518 _res_comment="using alsa 0.9.x and sys/asoundlib.h"
5519 elif test "$_alsaver" = '0.9.x-alsa' ; then
5520 _alsa9=yes
5521 _aomodules="alsa $_aomodules"
5522 def_alsa='#define CONFIG_ALSA 1'
5523 def_alsa9='#define CONFIG_ALSA9 1'
5524 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5525 _res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5526 elif test "$_alsaver" = '1.0.x-sys' ; then
5527 _alsa1x=yes
5528 _aomodules="alsa $_aomodules"
5529 def_alsa='#define CONFIG_ALSA 1'
5530 def_alsa1x="#define CONFIG_ALSA1X 1"
5531 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5532 _res_comment="using alsa 1.0.x and sys/asoundlib.h"
5533 elif test "$_alsaver" = '1.0.x-alsa' ; then
5534 _alsa1x=yes
5535 _aomodules="alsa $_aomodules"
5536 def_alsa='#define CONFIG_ALSA 1'
5537 def_alsa1x="#define CONFIG_ALSA1X 1"
5538 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5539 _res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5540 else
5541 _alsa=no
5542 _res_comment="unknown version"
5544 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5545 else
5546 _noaomodules="alsa $_noaomodules"
5548 echores "$_alsa"
5551 echocheck "Sun audio"
5552 if test "$_sunaudio" = auto ; then
5553 cat > $TMPC << EOF
5554 #include <sys/types.h>
5555 #include <sys/audioio.h>
5556 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5558 _sunaudio=no
5559 cc_check && _sunaudio=yes
5561 if test "$_sunaudio" = yes ; then
5562 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5563 _aomodules="sun $_aomodules"
5564 else
5565 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5566 _noaomodules="sun $_noaomodules"
5568 echores "$_sunaudio"
5571 def_mlib='#define CONFIG_MLIB 0'
5572 if sunos; then
5573 echocheck "Sun mediaLib"
5574 if test "$_mlib" = auto ; then
5575 _mlib=no
5576 cat > $TMPC << EOF
5577 #include <mlib.h>
5578 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
5580 cc_check -lmlib && _mlib=yes && def_mlib='#define CONFIG_MLIB 1'
5582 echores "$_mlib"
5583 fi #if sunos
5586 if darwin; then
5587 echocheck "CoreAudio"
5588 if test "$_coreaudio" = auto ; then
5589 cat > $TMPC <<EOF
5590 #include <CoreAudio/CoreAudio.h>
5591 #include <AudioToolbox/AudioToolbox.h>
5592 #include <AudioUnit/AudioUnit.h>
5593 int main(void) { return 0; }
5595 _coreaudio=no
5596 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
5598 if test "$_coreaudio" = yes ; then
5599 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
5600 def_coreaudio='#define CONFIG_COREAUDIO 1'
5601 _aomodules="coreaudio $_aomodules"
5602 else
5603 def_coreaudio='#undef CONFIG_COREAUDIO'
5604 _noaomodules="coreaudio $_noaomodules"
5606 echores $_coreaudio
5607 fi #if darwin
5610 if irix; then
5611 echocheck "SGI audio"
5612 if test "$_sgiaudio" = auto ; then
5613 # check for SGI audio
5614 cat > $TMPC << EOF
5615 #include <dmedia/audio.h>
5616 int main(void) { return 0; }
5618 _sgiaudio=no
5619 cc_check && _sgiaudio=yes
5621 if test "$_sgiaudio" = "yes" ; then
5622 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
5623 libs_mplayer="$libs_mplayer -laudio"
5624 _aomodules="sgi $_aomodules"
5625 else
5626 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
5627 _noaomodules="sgi $_noaomodules"
5629 echores "$_sgiaudio"
5630 fi #if irix
5633 if os2 ; then
5634 echocheck "DART"
5635 if test "$_dart" = auto; then
5636 cat > $TMPC << EOF
5637 #include <os2.h>
5638 #include <dart.h>
5639 int main( void ) { return 0; }
5641 _dart=no;
5642 cc_check -ldart && _dart=yes
5644 if test "$_dart" = yes ; then
5645 def_dart='#define CONFIG_DART 1'
5646 libs_mplayer="$libs_mplayer -ldart"
5647 _aomodules="dart $_aomodules"
5648 else
5649 def_dart='#undef CONFIG_DART'
5650 _noaomodules="dart $_noaomodules"
5652 echores "$_dart"
5653 fi #if os2
5656 # set default CD/DVD devices
5657 if win32 || os2 ; then
5658 default_cdrom_device="D:"
5659 elif darwin ; then
5660 default_cdrom_device="/dev/disk1"
5661 elif dragonfly ; then
5662 default_cdrom_device="/dev/cd0"
5663 elif freebsd ; then
5664 default_cdrom_device="/dev/acd0"
5665 elif openbsd ; then
5666 default_cdrom_device="/dev/rcd0a"
5667 elif sunos ; then
5668 default_cdrom_device="/vol/dev/aliases/cdrom0"
5669 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
5670 # file system and the volfs service.
5671 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
5672 elif amigaos ; then
5673 default_cdrom_device="a1ide.device:2"
5674 else
5675 default_cdrom_device="/dev/cdrom"
5678 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
5679 default_dvd_device=$default_cdrom_device
5680 elif darwin ; then
5681 default_dvd_device="/dev/rdiskN"
5682 else
5683 default_dvd_device="/dev/dvd"
5687 echocheck "VCD support"
5688 if test "$_vcd" = auto; then
5689 _vcd=no
5690 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos; then
5691 _vcd=yes
5692 elif mingw32; then
5693 cat > $TMPC << EOF
5694 #include <ddk/ntddcdrm.h>
5695 int main(void) { return 0; }
5697 cc_check && _vcd=yes
5700 if test "$_vcd" = yes; then
5701 _inputmodules="vcd $_inputmodules"
5702 def_vcd='#define CONFIG_VCD 1'
5703 else
5704 def_vcd='#undef CONFIG_VCD'
5705 _noinputmodules="vcd $_noinputmodules"
5706 _res_comment="not supported on this OS"
5708 echores "$_vcd"
5712 echocheck "dvdread"
5713 if test "$_dvdread_internal" = auto && test ! -f "libdvdread4/dvd_reader.c" ; then
5714 _dvdread_internal=no
5716 if test "$_dvdread_internal" = auto ; then
5717 _dvdread_internal=no
5718 _dvdread=no
5719 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
5720 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
5721 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
5722 || darwin || win32 || os2; then
5723 _dvdread_internal=yes
5724 _dvdread=yes
5725 extra_cflags="-Ilibdvdread4 $extra_cflags"
5727 elif test "$_dvdread" = auto ; then
5728 _dvdread=no
5729 if test "$_dl" = yes; then
5730 cat > $TMPC << EOF
5731 #include <inttypes.h>
5732 #include <dvdread/dvd_reader.h>
5733 #include <dvdread/ifo_types.h>
5734 #include <dvdread/ifo_read.h>
5735 #include <dvdread/nav_read.h>
5736 int main(void) { return 0; }
5738 _dvdreadcflags=$($_dvdreadconfig --cflags)
5739 _dvdreadlibs=$($_dvdreadconfig --libs)
5740 if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
5741 $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
5742 _dvdread=yes
5743 extra_cflags="$extra_cflags $_dvdreadcflags"
5744 extra_ldflags="$extra_ldflags $_dvdreadlibs"
5745 _res_comment="external"
5750 if test "$_dvdread_internal" = yes; then
5751 def_dvdread='#define CONFIG_DVDREAD 1'
5752 _inputmodules="dvdread(internal) $_inputmodules"
5753 _largefiles=yes
5754 _res_comment="internal"
5755 elif test "$_dvdread" = yes; then
5756 def_dvdread='#define CONFIG_DVDREAD 1'
5757 _largefiles=yes
5758 extra_ldflags="$extra_ldflags -ldvdread"
5759 _inputmodules="dvdread(external) $_inputmodules"
5760 _res_comment="external"
5761 else
5762 def_dvdread='#undef CONFIG_DVDREAD'
5763 _noinputmodules="dvdread $_noinputmodules"
5765 echores "$_dvdread"
5768 echocheck "internal libdvdcss"
5769 if test "$_libdvdcss_internal" = auto ; then
5770 _libdvdcss_internal=no
5771 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
5772 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
5774 if test "$_libdvdcss_internal" = yes ; then
5775 if linux || netbsd || openbsd || bsdos ; then
5776 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
5777 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
5778 elif freebsd || dragonfly ; then
5779 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
5780 elif darwin ; then
5781 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
5782 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
5783 elif cygwin ; then
5784 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
5785 elif beos ; then
5786 cflags_libdvdcss="-DSYS_BEOS"
5787 elif os2 ; then
5788 cflags_libdvdcss="-DSYS_OS2"
5790 cflags_libdvdcss_dvdread="-Ilibdvdcss"
5791 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
5792 _inputmodules="libdvdcss(internal) $_inputmodules"
5793 _largefiles=yes
5794 else
5795 _noinputmodules="libdvdcss(internal) $_noinputmodules"
5797 echores "$_libdvdcss_internal"
5800 echocheck "cdparanoia"
5801 if test "$_cdparanoia" = auto ; then
5802 cat > $TMPC <<EOF
5803 #include <cdda_interface.h>
5804 #include <cdda_paranoia.h>
5805 // This need a better test. How ?
5806 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
5808 _cdparanoia=no
5809 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5810 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
5811 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
5812 done
5814 if test "$_cdparanoia" = yes ; then
5815 _cdda='yes'
5816 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
5817 openbsd && extra_ldflags="$extra_ldflags -lutil"
5819 echores "$_cdparanoia"
5822 echocheck "libcdio"
5823 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5824 cat > $TMPC << EOF
5825 #include <stdio.h>
5826 #include <cdio/version.h>
5827 #include <cdio/cdda.h>
5828 #include <cdio/paranoia.h>
5829 int main(void) {
5830 void *test = cdda_verbose_set;
5831 printf("%s\n", CDIO_VERSION);
5832 return test == (void *)1;
5835 _libcdio=no
5836 for _ld_tmp in "" "-lwinmm" ; do
5837 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
5838 cc_check $_ld_tmp $_ld_lm \
5839 && _libcdio=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
5840 done
5841 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
5842 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
5843 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
5844 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
5845 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
5848 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
5849 _cdda='yes'
5850 def_libcdio='#define CONFIG_LIBCDIO'
5851 def_havelibcdio='yes'
5852 else
5853 if test "$_cdparanoia" = yes ; then
5854 _res_comment="using cdparanoia"
5856 def_libcdio='#undef CONFIG_LIBCDIO'
5857 def_havelibcdio='no'
5859 echores "$_libcdio"
5861 if test "$_cdda" = yes ; then
5862 test $_cddb = auto && test $_network = yes && _cddb=yes
5863 def_cdparanoia='#define CONFIG_CDDA'
5864 _inputmodules="cdda $_inputmodules"
5865 else
5866 def_cdparanoia='#undef CONFIG_CDDA'
5867 _noinputmodules="cdda $_noinputmodules"
5870 if test "$_cddb" = yes ; then
5871 def_cddb='#define CONFIG_CDDB'
5872 _inputmodules="cddb $_inputmodules"
5873 else
5874 _cddb=no
5875 def_cddb='#undef CONFIG_CDDB'
5876 _noinputmodules="cddb $_noinputmodules"
5879 echocheck "bitmap font support"
5880 if test "$_bitmap_font" = yes ; then
5881 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
5882 else
5883 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
5885 echores "$_bitmap_font"
5888 echocheck "freetype >= 2.0.9"
5890 # freetype depends on iconv
5891 if test "$_iconv" = no ; then
5892 _freetype=no
5893 _res_comment="iconv support needed"
5896 if test "$_freetype" = auto ; then
5897 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
5898 cat > $TMPC << EOF
5899 #include <stdio.h>
5900 #include <ft2build.h>
5901 #include FT_FREETYPE_H
5902 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
5903 #error "Need FreeType 2.0.9 or newer"
5904 #endif
5905 int main(void) {
5906 FT_Library library;
5907 FT_Int major=-1,minor=-1,patch=-1;
5908 int err=FT_Init_FreeType(&library);
5909 if (err) {
5910 printf("Couldn't initialize freetype2 lib, err code: %d\n",err);
5911 exit(err);
5913 FT_Library_Version(library,&major,&minor,&patch); // in v2.1.0+ only :(((
5914 printf("freetype2 header version: %d.%d.%d library version: %d.%d.%d\n",
5915 FREETYPE_MAJOR,FREETYPE_MINOR,FREETYPE_PATCH,
5916 (int)major,(int)minor,(int)patch );
5917 if (major!=FREETYPE_MAJOR || minor!=FREETYPE_MINOR) {
5918 printf("Library and header version mismatch! Fix it in your distribution!\n");
5919 exit(1);
5921 return 0;
5924 _freetype=no
5925 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && tmp_run && _freetype=yes
5926 else
5927 _freetype=no
5930 if test "$_freetype" = yes ; then
5931 def_freetype='#define CONFIG_FREETYPE'
5932 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
5933 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
5934 else
5935 def_freetype='#undef CONFIG_FREETYPE'
5937 echores "$_freetype"
5939 if test "$_freetype" = no ; then
5940 _fontconfig=no
5941 _res_comment="FreeType support needed"
5943 echocheck "fontconfig"
5944 if test "$_fontconfig" = auto ; then
5945 cat > $TMPC << EOF
5946 #include <stdio.h>
5947 #include <stdlib.h>
5948 #include <fontconfig/fontconfig.h>
5949 int main(void) {
5950 int err = FcInit();
5951 if (err == FcFalse) {
5952 printf("Couldn't initialize fontconfig lib\n");
5953 exit(err);
5955 return 0;
5958 _fontconfig=no
5959 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" ; do
5960 _ld_tmp="-lfontconfig $_ld_tmp"
5961 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
5962 done
5963 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
5964 _inc_tmp=$($_pkg_config --cflags fontconfig)
5965 _ld_tmp=$($_pkg_config --libs fontconfig)
5966 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
5967 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
5970 if test "$_fontconfig" = yes ; then
5971 def_fontconfig='#define CONFIG_FONTCONFIG'
5972 else
5973 def_fontconfig='#undef CONFIG_FONTCONFIG'
5975 echores "$_fontconfig"
5978 echocheck "SSA/ASS support"
5979 if test "$_ass" = auto -o "$_ass" = yes ; then
5980 if $_pkg_config libass; then
5981 _ass=yes
5982 def_ass='#define CONFIG_ASS'
5983 extra_ldflags="$extra_ldflags $($_pkg_config --libs libass)"
5984 extra_cflags="$extra_cflags $($_pkg_config --cflags libass)"
5985 else
5986 _ass=no
5987 def_ass='#undef CONFIG_ASS'
5989 else
5990 def_ass='#undef CONFIG_ASS'
5992 echores "$_ass"
5995 echocheck "fribidi with charsets"
5996 if test "$_fribidi" = auto ; then
5997 if ( $_fribidiconfig --version ) >/dev/null 2>&1 ; then
5998 cat > $TMPC << EOF
5999 #include <stdio.h>
6000 /* workaround for fribidi 0.10.4 and below */
6001 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
6002 #include <fribidi/fribidi.h>
6003 int main(void) {
6004 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
6005 printf("Fribidi headers are not consistents with the library!\n");
6006 exit(1);
6008 return 0;
6011 _fribidi=no
6012 cc_check $($_fribidiconfig --cflags) $($_fribidiconfig --libs) && tmp_run && _fribidi=yes
6013 else
6014 _fribidi=no
6017 if test "$_fribidi" = yes ; then
6018 def_fribidi='#define CONFIG_FRIBIDI'
6019 extra_cflags="$extra_cflags $($_fribidiconfig --cflags)"
6020 extra_ldflags="$extra_ldflags $($_fribidiconfig --libs)"
6021 else
6022 def_fribidi='#undef CONFIG_FRIBIDI'
6024 echores "$_fribidi"
6027 echocheck "ENCA"
6028 if test "$_enca" = auto ; then
6029 cat > $TMPC << EOF
6030 #include <sys/types.h>
6031 #include <enca.h>
6032 int main(void) {
6033 const char **langs;
6034 size_t langcnt;
6035 langs = enca_get_languages(&langcnt);
6036 return 0;
6039 _enca=no
6040 cc_check -lenca $_ld_lm && _enca=yes
6042 if test "$_enca" = yes ; then
6043 def_enca='#define CONFIG_ENCA 1'
6044 extra_ldflags="$extra_ldflags -lenca"
6045 else
6046 def_enca='#undef CONFIG_ENCA'
6048 echores "$_enca"
6051 echocheck "zlib"
6052 cat > $TMPC << EOF
6053 #include <zlib.h>
6054 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
6056 _zlib=no
6057 cc_check -lz && _zlib=yes
6058 if test "$_zlib" = yes ; then
6059 def_zlib='#define CONFIG_ZLIB 1'
6060 extra_ldflags="$extra_ldflags -lz"
6061 else
6062 def_zlib='#define CONFIG_ZLIB 0'
6064 echores "$_zlib"
6067 echocheck "bzlib"
6068 bzlib=no
6069 def_bzlib='#define CONFIG_BZLIB 0'
6070 cat > $TMPC << EOF
6071 #include <bzlib.h>
6072 int main(void) { BZ2_bzlibVersion(); return 0; }
6074 cc_check -lbz2 && bzlib=yes
6075 if test "$bzlib" = yes ; then
6076 def_bzlib='#define CONFIG_BZLIB 1'
6077 extra_ldflags="$extra_ldflags -lbz2"
6079 echores "$bzlib"
6082 echocheck "RTC"
6083 if test "$_rtc" = auto ; then
6084 cat > $TMPC << EOF
6085 #include <sys/ioctl.h>
6086 #ifdef __linux__
6087 #include <linux/rtc.h>
6088 #else
6089 #include <rtc.h>
6090 #define RTC_PIE_ON RTCIO_PIE_ON
6091 #endif
6092 int main(void) { return RTC_PIE_ON; }
6094 _rtc=no
6095 cc_check && _rtc=yes
6096 ppc && _rtc=no
6098 if test "$_rtc" = yes ; then
6099 def_rtc='#define HAVE_RTC 1'
6100 else
6101 def_rtc='#undef HAVE_RTC'
6103 echores "$_rtc"
6106 echocheck "liblzo2 support"
6107 if test "$_liblzo" = auto ; then
6108 _liblzo=no
6109 cat > $TMPC << EOF
6110 #include <lzo/lzo1x.h>
6111 int main(void) { lzo_init();return 0; }
6113 cc_check -llzo2 && _liblzo=yes
6115 if test "$_liblzo" = yes ; then
6116 def_liblzo='#define CONFIG_LIBLZO 1'
6117 extra_ldflags="$extra_ldflags -llzo2"
6118 _codecmodules="liblzo $_codecmodules"
6119 else
6120 def_liblzo='#undef CONFIG_LIBLZO'
6121 _nocodecmodules="liblzo $_nocodecmodules"
6123 echores "$_liblzo"
6126 echocheck "mad support"
6127 if test "$_mad" = auto ; then
6128 _mad=no
6129 cat > $TMPC << EOF
6130 #include <mad.h>
6131 int main(void) { return 0; }
6133 cc_check -lmad && _mad=yes
6135 if test "$_mad" = yes ; then
6136 def_mad='#define CONFIG_LIBMAD 1'
6137 extra_ldflags="$extra_ldflags -lmad"
6138 _codecmodules="libmad $_codecmodules"
6139 else
6140 def_mad='#undef CONFIG_LIBMAD'
6141 _nocodecmodules="libmad $_nocodecmodules"
6143 echores "$_mad"
6145 echocheck "Twolame"
6146 if test "$_twolame" = auto ; then
6147 cat > $TMPC <<EOF
6148 #include <twolame.h>
6149 int main(void) { twolame_init(); return 0; }
6151 _twolame=no
6152 cc_check -ltwolame $_ld_lm && _twolame=yes
6154 if test "$_twolame" = yes ; then
6155 def_twolame='#define CONFIG_TWOLAME 1'
6156 libs_mencoder="$libs_mencoder -ltwolame"
6157 _codecmodules="twolame $_codecmodules"
6158 else
6159 def_twolame='#undef CONFIG_TWOLAME'
6160 _nocodecmodules="twolame $_nocodecmodules"
6162 echores "$_twolame"
6164 echocheck "Toolame"
6165 if test "$_toolame" = auto ; then
6166 _toolame=no
6167 if test "$_twolame" = yes ; then
6168 _res_comment="disabled by twolame"
6169 else
6170 cat > $TMPC <<EOF
6171 #include <toolame.h>
6172 int main(void) { toolame_init(); return 0; }
6174 cc_check -ltoolame $_ld_lm && _toolame=yes
6177 if test "$_toolame" = yes ; then
6178 def_toolame='#define CONFIG_TOOLAME 1'
6179 libs_mencoder="$libs_mencoder -ltoolame"
6180 _codecmodules="toolame $_codecmodules"
6181 else
6182 def_toolame='#undef CONFIG_TOOLAME'
6183 _nocodecmodules="toolame $_nocodecmodules"
6185 if test "$_toolamedir" ; then
6186 _res_comment="using $_toolamedir"
6188 echores "$_toolame"
6190 echocheck "OggVorbis support"
6191 if test "$_tremor_internal" = yes; then
6192 _libvorbis=no
6193 elif test "$_tremor" = auto; then
6194 _tremor=no
6195 cat > $TMPC << EOF
6196 #include <tremor/ivorbiscodec.h>
6197 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6199 cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6201 if test "$_libvorbis" = auto; then
6202 _libvorbis=no
6203 cat > $TMPC << EOF
6204 #include <vorbis/codec.h>
6205 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6207 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
6209 if test "$_tremor_internal" = yes ; then
6210 _vorbis=yes
6211 def_vorbis='#define CONFIG_OGGVORBIS 1'
6212 def_tremor='#define CONFIG_TREMOR 1'
6213 _codecmodules="tremor(internal) $_codecmodules"
6214 _res_comment="internal Tremor"
6215 if test "$_tremor_low" = yes ; then
6216 cflags_tremor_low="-D_LOW_ACCURACY_"
6217 _res_comment="internal low accuracy Tremor"
6219 elif test "$_tremor" = yes ; then
6220 _vorbis=yes
6221 def_vorbis='#define CONFIG_OGGVORBIS 1'
6222 def_tremor='#define CONFIG_TREMOR 1'
6223 _codecmodules="tremor(external) $_codecmodules"
6224 _res_comment="external Tremor"
6225 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6226 elif test "$_libvorbis" = yes ; then
6227 _vorbis=yes
6228 def_vorbis='#define CONFIG_OGGVORBIS 1'
6229 _codecmodules="libvorbis $_codecmodules"
6230 _res_comment="libvorbis"
6231 extra_ldflags="$extra_ldflags -lvorbis -logg"
6232 else
6233 _vorbis=no
6234 _nocodecmodules="libvorbis $_nocodecmodules"
6236 echores "$_vorbis"
6238 echocheck "libspeex (version >= 1.1 required)"
6239 if test "$_speex" = auto ; then
6240 _speex=no
6241 cat > $TMPC << EOF
6242 #include <speex/speex.h>
6243 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
6245 cc_check -lspeex $_ld_lm && _speex=yes
6247 if test "$_speex" = yes ; then
6248 def_speex='#define CONFIG_SPEEX 1'
6249 extra_ldflags="$extra_ldflags -lspeex"
6250 _codecmodules="speex $_codecmodules"
6251 else
6252 def_speex='#undef CONFIG_SPEEX'
6253 _nocodecmodules="speex $_nocodecmodules"
6255 echores "$_speex"
6257 echocheck "OggTheora support"
6258 if test "$_theora" = auto ; then
6259 _theora=no
6260 cat > $TMPC << EOF
6261 #include <theora/theora.h>
6262 #include <string.h>
6263 int main(void) {
6264 /* Theora is in flux, make sure that all interface routines and datatypes
6265 * exist and work the way we expect it, so we don't break MPlayer. */
6266 ogg_packet op;
6267 theora_comment tc;
6268 theora_info inf;
6269 theora_state st;
6270 yuv_buffer yuv;
6271 int r;
6272 double t;
6274 theora_info_init(&inf);
6275 theora_comment_init(&tc);
6277 return 0;
6279 /* we don't want to execute this kind of nonsense; just for making sure
6280 * that compilation works... */
6281 memset(&op, 0, sizeof(op));
6282 r = theora_decode_header(&inf, &tc, &op);
6283 r = theora_decode_init(&st, &inf);
6284 t = theora_granule_time(&st, op.granulepos);
6285 r = theora_decode_packetin(&st, &op);
6286 r = theora_decode_YUVout(&st, &yuv);
6287 theora_clear(&st);
6289 return 0;
6292 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6293 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6294 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6295 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6296 if test _theora = no; then
6297 _ld_theora="-ltheora -logg"
6298 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6300 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6301 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6302 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6303 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6304 extra_ldflags="$extra_ldflags $_ld_theora" &&
6305 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6306 if test _theora = no; then
6307 _ld_theora="-ltheora -logg"
6308 cc_check tremor/bitwise.c $_ld_theora &&
6309 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6313 if test "$_theora" = yes ; then
6314 def_theora='#define CONFIG_OGGTHEORA 1'
6315 _codecmodules="libtheora $_codecmodules"
6316 # when --enable-theora is forced, we'd better provide a probably sane
6317 # $_ld_theora than nothing
6318 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6319 else
6320 def_theora='#undef CONFIG_OGGTHEORA'
6321 _nocodecmodules="libtheora $_nocodecmodules"
6323 echores "$_theora"
6325 echocheck "internal mp3lib support"
6326 if test "$_mp3lib" = auto ; then
6327 test "$cc_vendor" = intel && _mp3lib=no || _mp3lib=yes
6329 if test "$_mp3lib" = yes ; then
6330 def_mp3lib='#define CONFIG_MP3LIB 1'
6331 _codecmodules="mp3lib(internal) $_codecmodules"
6332 else
6333 def_mp3lib='#undef CONFIG_MP3LIB'
6334 _nocodecmodules="mp3lib(internal) $_nocodecmodules"
6336 echores "$_mp3lib"
6338 echocheck "liba52 support"
6339 if test "$_liba52_internal" = auto ; then
6340 test "$cc_vendor" = intel && _liba52_internal=no || _liba52_internal=yes
6342 def_liba52='#undef CONFIG_LIBA52'
6343 def_liba52_internal="#undef CONFIG_LIBA52_INTERNAL"
6344 if test "$_liba52_internal" = yes ; then
6345 _liba52=yes
6346 def_liba52_internal="#define CONFIG_LIBA52_INTERNAL 1"
6347 _res_comment="internal"
6348 elif test "$_liba52_internal" = no && test "$_liba52" = auto ; then
6349 _liba52=no
6350 cat > $TMPC << EOF
6351 #include <inttypes.h>
6352 #include <a52dec/a52.h>
6353 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6355 cc_check -la52 && _liba52=yes && _res_comment="external" && extra_ldflags="$extra_ldflags -la52"
6357 if test "$_liba52" = yes ; then
6358 def_liba52='#define CONFIG_LIBA52 1'
6359 _codecmodules="liba52($_res_comment) $_codecmodules"
6360 else
6361 _nocodecmodules="liba52 $_nocodecmodules"
6363 echores "$_liba52"
6365 echocheck "internal libmpeg2 support"
6366 if test "$_libmpeg2" = auto ; then
6367 _libmpeg2=yes
6368 if alpha && test cc_vendor=gnu; then
6369 case $cc_version in
6370 2*|3.0*|3.1*) # cannot compile MVI instructions
6371 _libmpeg2=no
6372 _res_comment="broken gcc"
6374 esac
6377 if test "$_libmpeg2" = yes ; then
6378 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6379 _codecmodules="libmpeg2(internal) $_codecmodules"
6380 else
6381 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6382 _nocodecmodules="libmpeg2(internal) $_nocodecmodules"
6384 echores "$_libmpeg2"
6386 echocheck "libdca support"
6387 if test "$_libdca" = auto ; then
6388 _libdca=no
6389 cat > $TMPC << EOF
6390 #include <inttypes.h>
6391 #include <dts.h>
6392 int main(void) { dts_init(0); return 0; }
6394 for _ld_dca in -ldts -ldca ; do
6395 cc_check $_ld_dca $_ld_lm && extra_ldflags="$extra_ldflags $_ld_dca" \
6396 && _libdca=yes && break
6397 done
6399 if test "$_libdca" = yes ; then
6400 def_libdca='#define CONFIG_LIBDCA 1'
6401 _codecmodules="libdca $_codecmodules"
6402 else
6403 def_libdca='#undef CONFIG_LIBDCA'
6404 _nocodecmodules="libdca $_nocodecmodules"
6406 echores "$_libdca"
6408 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6409 if test "$_musepack" = auto ; then
6410 _musepack=no
6411 cat > $TMPC << EOF
6412 #include <stddef.h>
6413 #include <mpcdec/mpcdec.h>
6414 int main(void) {
6415 mpc_streaminfo info;
6416 mpc_decoder decoder;
6417 mpc_decoder_set_streaminfo(&decoder, &info);
6418 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6419 return 0;
6422 cc_check -lmpcdec $_ld_lm && _musepack=yes
6424 if test "$_musepack" = yes ; then
6425 def_musepack='#define CONFIG_MUSEPACK 1'
6426 extra_ldflags="$extra_ldflags -lmpcdec"
6427 _codecmodules="musepack $_codecmodules"
6428 else
6429 def_musepack='#undef CONFIG_MUSEPACK'
6430 _nocodecmodules="musepack $_nocodecmodules"
6432 echores "$_musepack"
6435 echocheck "FAAC support"
6436 if test "$_faac" = auto ; then
6437 cat > $TMPC <<EOF
6438 #include <inttypes.h>
6439 #include <faac.h>
6440 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6442 _faac=no
6443 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6444 cc_check -O2 $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6445 done
6447 if test "$_faac" = yes ; then
6448 def_faac="#define CONFIG_FAAC 1"
6449 _codecmodules="faac $_codecmodules"
6450 else
6451 def_faac="#undef CONFIG_FAAC"
6452 _nocodecmodules="faac $_nocodecmodules"
6454 echores "$_faac"
6457 echocheck "FAAD2 support"
6458 if test "$_faad_internal" = auto ; then
6459 if x86_32 && test cc_vendor=gnu; then
6460 case $cc_version in
6461 3.1*|3.2) # ICE/insn with these versions
6462 _faad_internal=no
6463 _res_comment="broken gcc"
6466 _faad=yes
6467 _faad_internal=yes
6469 esac
6470 else
6471 _faad=yes
6472 _faad_internal=yes
6475 if test "$_faad" = auto ; then
6476 cat > $TMPC << EOF
6477 #include <faad.h>
6478 #ifndef FAAD_MIN_STREAMSIZE
6479 #error Too old version
6480 #endif
6481 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6482 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6484 cc_check -lfaad $_ld_lm && _faad=yes
6487 def_faad='#undef CONFIG_FAAD'
6488 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6489 if test "$_faad_internal" = yes ; then
6490 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6491 _res_comment="internal floating-point"
6492 if test "$_faad_fixed" = yes ; then
6493 # The FIXED_POINT implementation of FAAD2 improves performance
6494 # on some platforms, especially for SBR files.
6495 cflags_faad_fixed="-DFIXED_POINT"
6496 _res_comment="internal fixed-point"
6498 elif test "$_faad" = yes ; then
6499 extra_ldflags="$extra_ldflags -lfaad"
6502 if test "$_faad" = yes ; then
6503 def_faad='#define CONFIG_FAAD 1'
6504 if test "$_faad_internal" = yes ; then
6505 _codecmodules="faad2(internal) $_codecmodules"
6506 else
6507 _codecmodules="faad2 $_codecmodules"
6509 else
6510 _faad=no
6511 _nocodecmodules="faad2 $_nocodecmodules"
6513 echores "$_faad"
6516 echocheck "LADSPA plugin support"
6517 if test "$_ladspa" = auto ; then
6518 cat > $TMPC <<EOF
6519 #include <stdio.h>
6520 #include <ladspa.h>
6521 int main(void) {
6522 const LADSPA_Descriptor *ld = NULL;
6523 return 0;
6526 _ladspa=no
6527 cc_check && _ladspa=yes
6529 if test "$_ladspa" = yes; then
6530 def_ladspa="#define CONFIG_LADSPA"
6531 else
6532 def_ladspa="#undef CONFIG_LADSPA"
6534 echores "$_ladspa"
6537 echocheck "libbs2b audio filter support"
6538 if test "$_libbs2b" = auto ; then
6539 cat > $TMPC <<EOF
6540 #include <bs2b.h>
6541 #if BS2B_VERSION_MAJOR < 3
6542 #error Please use libbs2b >= 3.0.0, older versions are not supported.
6543 #endif
6544 int main(void) {
6545 t_bs2bdp filter;
6546 filter=bs2b_open();
6547 bs2b_close(filter);
6548 return 0;
6551 _libbs2b=no
6552 if $_pkg_config --exists libbs2b ; then
6553 _inc_tmp=$($_pkg_config --cflags libbs2b)
6554 _ld_tmp=$($_pkg_config --libs libbs2b)
6555 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
6556 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
6557 else
6558 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
6559 -I/usr/local/include/bs2b ; do
6560 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
6561 extra_ldflags="$extra_ldflags -lbs2b"
6562 extra_cflags="$extra_cflags $_inc_tmp"
6563 _libbs2b=yes
6564 break
6566 done
6569 def_libbs2b="#undef CONFIG_LIBBS2B"
6570 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B"
6571 echores "$_libbs2b"
6574 if test -z "$_codecsdir" ; then
6575 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
6576 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
6577 if test -d "$dir" ; then
6578 _codecsdir="$dir"
6579 break;
6581 done
6583 # Fall back on default directory.
6584 if test -z "$_codecsdir" ; then
6585 _codecsdir="$_libdir/codecs"
6586 mingw32 && _codecsdir="codecs"
6587 os2 && _codecsdir="codecs"
6591 echocheck "Win32 codecs"
6592 if test "$_win32dll" = auto ; then
6593 _win32dll=no
6594 if x86_32 && ! qnx; then
6595 _win32dll=yes
6598 if test "$_win32dll" = yes ; then
6599 def_win32dll='#define CONFIG_WIN32DLL 1'
6600 test -z "$_win32codecsdir" && _win32codecsdir=$_codecsdir
6601 _res_comment="using $_win32codecsdir"
6602 if ! win32 ; then
6603 def_win32_loader='#define WIN32_LOADER 1'
6604 _win32_emulation=yes
6605 else
6606 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
6607 _res_comment="using native windows"
6609 _codecmodules="win32 $_codecmodules"
6610 else
6611 def_win32dll='#undef CONFIG_WIN32DLL'
6612 def_win32_loader='#undef WIN32_LOADER'
6613 _nocodecmodules="win32 $_nocodecmodules"
6615 echores "$_win32dll"
6618 echocheck "XAnim codecs"
6619 if test "$_xanim" = auto ; then
6620 _xanim=no
6621 _res_comment="dynamic loader support needed"
6622 if test "$_dl" = yes ; then
6623 _xanim=yes
6626 if test "$_xanim" = yes ; then
6627 test -z "$_xanimcodecsdir" && _xanimcodecsdir=$_codecsdir
6628 def_xanim='#define CONFIG_XANIM 1'
6629 def_xanim_path="#define XACODEC_PATH \"$_xanimcodecsdir\""
6630 _codecmodules="xanim $_codecmodules"
6631 _res_comment="using $_xanimcodecsdir"
6632 else
6633 def_xanim='#undef CONFIG_XANIM'
6634 def_xanim_path='#undef XACODEC_PATH'
6635 _nocodecmodules="xanim $_nocodecmodules"
6637 echores "$_xanim"
6640 echocheck "RealPlayer codecs"
6641 if test "$_real" = auto ; then
6642 _real=no
6643 _res_comment="dynamic loader support needed"
6644 if test "$_dl" = yes || test "$_win32dll" = yes &&
6645 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32) ; then
6646 _real=yes
6649 if test "$_real" = yes ; then
6650 test -z "$_realcodecsdir" && _realcodecsdir="$_codecsdir"
6651 def_real='#define CONFIG_REALCODECS 1'
6652 def_real_path="#define REALCODEC_PATH \"$_realcodecsdir\""
6653 _codecmodules="real $_codecmodules"
6654 _res_comment="using $_realcodecsdir"
6655 else
6656 def_real='#undef CONFIG_REALCODECS'
6657 def_real_path="#undef REALCODEC_PATH"
6658 _nocodecmodules="real $_nocodecmodules"
6660 echores "$_real"
6663 echocheck "QuickTime codecs"
6664 _qtx_emulation=no
6665 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
6666 def_quicktime='#undef CONFIG_QUICKTIME'
6667 if test "$_qtx" = auto ; then
6668 test "$_win32dll" = yes || darwin && _qtx=yes
6670 if test "$_qtx" = yes ; then
6671 darwin && extra_ldflags="$extra_ldflags -framework QuickTime" && def_quicktime='#define CONFIG_QUICKTIME 1'
6672 def_qtx='#define CONFIG_QTX_CODECS 1'
6673 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
6674 _codecmodules="qtx $_codecmodules"
6675 darwin || win32 || _qtx_emulation=yes
6676 else
6677 def_qtx='#undef CONFIG_QTX_CODECS'
6678 _nocodecmodules="qtx $_nocodecmodules"
6680 echores "$_qtx"
6682 echocheck "Nemesi Streaming Media libraries"
6683 if test "$_nemesi" = auto && test "$_network" = yes ; then
6684 _nemesi=no
6685 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
6686 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
6687 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
6688 _nemesi=yes
6691 if test "$_nemesi" = yes; then
6692 _native_rtsp=no
6693 def_nemesi='#define CONFIG_LIBNEMESI 1'
6694 _inputmodules="nemesi $_inputmodules"
6695 else
6696 _native_rtsp="$_network"
6697 _nemesi=no
6698 def_nemesi='#undef CONFIG_LIBNEMESI'
6699 _noinputmodules="nemesi $_noinputmodules"
6701 echores "$_nemesi"
6703 echocheck "LIVE555 Streaming Media libraries"
6704 if test "$_live" = auto && test "$_network" = yes ; then
6705 cat > $TMPCPP << EOF
6706 #include <liveMedia.hh>
6707 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
6708 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
6709 #endif
6710 int main(void) { return 0; }
6713 _live=no
6714 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
6715 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
6716 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
6717 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
6718 $_livelibdir/groupsock/libgroupsock.a \
6719 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
6720 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
6721 $extra_ldflags -lstdc++" \
6722 extra_cxxflags="-I$_livelibdir/liveMedia/include \
6723 -I$_livelibdir/UsageEnvironment/include \
6724 -I$_livelibdir/BasicUsageEnvironment/include \
6725 -I$_livelibdir/groupsock/include" && \
6726 _live=yes && break
6727 done
6728 if test "$_live" != yes ; then
6729 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock; then
6730 _live_dist=yes
6734 if test "$_live" = yes && test "$_network" = yes; then
6735 test $_livelibdir && _res_comment="using $_livelibdir"
6736 def_live='#define CONFIG_LIVE555 1'
6737 _inputmodules="live555 $_inputmodules"
6738 elif test "$_live_dist" = yes && test "$_network" = yes; then
6739 _res_comment="using distribution version"
6740 _live="yes"
6741 def_live='#define CONFIG_LIVE555 1'
6742 extra_ldflags="$extra_ldflags -lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
6743 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
6744 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
6745 _inputmodules="live555 $_inputmodules"
6746 else
6747 _live=no
6748 def_live='#undef CONFIG_LIVE555'
6749 _noinputmodules="live555 $_noinputmodules"
6751 echores "$_live"
6754 echocheck "FFmpeg libavutil"
6755 if test "$_libavutil" = auto ; then
6756 _libavutil=no
6757 cat > $TMPC << EOF
6758 #include <libavutil/common.h>
6759 int main(void) { av_gcd(1,1); return 0; }
6761 if $_pkg_config --exists libavutil ; then
6762 _inc_libavutil=$($_pkg_config --cflags libavutil)
6763 _ld_tmp=$($_pkg_config --libs libavutil)
6764 cc_check $_inc_libavutil $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" extra_cflags="$extra_cflags $_inc_libavutil" \
6765 && _libavutil=yes
6766 elif cc_check -lavutil $_ld_lm ; then
6767 extra_ldflags="$extra_ldflags -lavutil"
6768 _libavutil=yes
6771 def_libavutil='#undef CONFIG_LIBAVUTIL'
6772 test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1'
6773 # libavutil is not available, but it is mandatory ...
6774 if test "$_libavutil" = no ; then
6775 die "You need libavutil, MPlayer will not compile without!"
6777 echores "$_libavutil"
6779 echocheck "FFmpeg libavcodec"
6780 if test "$_libavcodec" = auto ; then
6781 _libavcodec=no
6782 cat > $TMPC << EOF
6783 #include <libavcodec/avcodec.h>
6784 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
6786 if $_pkg_config --exists libavcodec ; then
6787 _inc_libavcodec=$($_pkg_config --cflags libavcodec)
6788 _ld_tmp=$($_pkg_config --libs libavcodec)
6789 cc_check $_inc_libavcodec $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_libavcodec" \
6790 && _libavcodec=yes
6791 elif cc_check -lavcodec $_ld_lm ; then
6792 extra_ldflags="$extra_ldflags -lavcodec"
6793 _libavcodec=yes
6796 def_libavcodec='#undef CONFIG_LIBAVCODEC'
6797 test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1'
6798 if test "$_libavcodec" = yes ; then
6799 _codecmodules="libavcodec $_codecmodules"
6800 else
6801 _nocodecmodules="libavcodec $_nocodecmodules"
6803 echores "$_libavcodec"
6805 echocheck "FFmpeg libavformat"
6806 if test "$_libavformat" = auto ; then
6807 _libavformat=no
6808 cat > $TMPC <<EOF
6809 #include <libavformat/avformat.h>
6810 #include <libavcodec/opt.h>
6811 int main(void) { av_alloc_format_context(); return 0; }
6813 if $_pkg_config --exists libavformat ; then
6814 _inc_libavformat=$($_pkg_config --cflags libavformat)
6815 _ld_tmp=$($_pkg_config --libs libavformat)
6816 cc_check $_inc_libavformat $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_libavformat" \
6817 && _libavformat=yes
6818 elif cc_check $_ld_lm -lavformat ; then
6819 extra_ldflags="$extra_ldflags -lavformat"
6820 _libavformat=yes
6823 def_libavformat='#undef CONFIG_LIBAVFORMAT'
6824 test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1'
6825 echores "$_libavformat"
6827 echocheck "FFmpeg libpostproc"
6828 if test "$_libpostproc" = auto ; then
6829 _libpostproc=no
6830 cat > $TMPC << EOF
6831 #include <inttypes.h>
6832 #include <libpostproc/postprocess.h>
6833 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
6835 if $_pkg_config --exists libpostproc ; then
6836 _inc_libpostproc=$($_pkg_config --cflags libpostproc)
6837 _ld_tmp=$($_pkg_config --libs libpostproc)
6838 cc_check $_inc_libpostproc $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_libpostproc" \
6839 && _libpostproc=yes
6840 elif cc_check -lpostproc $_ld_lm ; then
6841 extra_ldflags="$extra_ldflags -lpostproc"
6842 _libpostproc=yes
6845 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
6846 test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
6847 echores "$_libpostproc"
6849 echocheck "FFmpeg libswscale"
6850 if test "$_libswscale" = auto ; then
6851 _libswscale=no
6852 cat > $TMPC << EOF
6853 #include <libswscale/swscale.h>
6854 int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; }
6856 if $_pkg_config --exists libswscale ; then
6857 _inc_libswscale=$($_pkg_config --cflags libswscale)
6858 _ld_tmp=$($_pkg_config --libs libswscale)
6859 cc_check $_inc_libswscale $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" extra_cflags="$extra_cflags $_inc_libswscale" \
6860 && _libswscale=yes
6861 elif cc_check -lswscale ; then
6862 extra_ldflags="$extra_ldflags -lswscale"
6863 _libswscale=yes
6866 def_libswscale='#undef CONFIG_LIBSWSCALE'
6867 test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1'
6868 echores "$_libswscale"
6870 def_libswscale_internals="#undef CONFIG_LIBSWSCALE_INTERNALS"
6871 if ! test -z "$_ffmpeg_source" ; then
6872 test "$_libswscale" = yes && def_libswscale_internals="#define CONFIG_LIBSWSCALE_INTERNALS 1" && _libswscale_internals=yes
6875 def_libavcodec_internals="#undef CONFIG_LIBAVCODEC_INTERNALS"
6876 if ! test -z "$_ffmpeg_source" ; then
6877 test "$_libavcodec" = yes && def_libavcodec_internals="#define CONFIG_LIBAVCODEC_INTERNALS 1" && _libavcodec_internals=yes
6880 echocheck "libdv-0.9.5+"
6881 if test "$_libdv" = auto ; then
6882 _libdv=no
6883 cat > $TMPC <<EOF
6884 #include <libdv/dv.h>
6885 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
6887 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
6889 if test "$_libdv" = yes ; then
6890 def_libdv='#define CONFIG_LIBDV095 1'
6891 extra_ldflags="$extra_ldflags -ldv"
6892 _codecmodules="libdv $_codecmodules"
6893 else
6894 def_libdv='#undef CONFIG_LIBDV095'
6895 _nocodecmodules="libdv $_nocodecmodules"
6897 echores "$_libdv"
6900 echocheck "Xvid"
6901 if test "$_xvid" = auto ; then
6902 _xvid=no
6903 cat > $TMPC << EOF
6904 #include <xvid.h>
6905 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
6907 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
6908 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
6909 done
6912 if test "$_xvid" = yes ; then
6913 def_xvid='#define CONFIG_XVID4 1'
6914 _codecmodules="xvid $_codecmodules"
6915 else
6916 def_xvid='#undef CONFIG_XVID4'
6917 _nocodecmodules="xvid $_nocodecmodules"
6919 echores "$_xvid"
6921 echocheck "x264"
6922 if test "$_x264" = auto ; then
6923 cat > $TMPC << EOF
6924 #include <inttypes.h>
6925 #include <x264.h>
6926 #if X264_BUILD < 65
6927 #error We do not support old versions of x264. Get the latest from SVN.
6928 #endif
6929 int main(void) { x264_encoder_open((void*)0); return 0; }
6931 _x264=no
6932 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
6933 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
6934 done
6937 if test "$_x264" = yes ; then
6938 def_x264='#define CONFIG_X264 1'
6939 _codecmodules="x264 $_codecmodules"
6940 else
6941 def_x264='#undef CONFIG_X264'
6942 _nocodecmodules="x264 $_nocodecmodules"
6944 echores "$_x264"
6946 echocheck "libnut"
6947 if test "$_libnut" = auto ; then
6948 cat > $TMPC << EOF
6949 #include <stdio.h>
6950 #include <stdlib.h>
6951 #include <inttypes.h>
6952 #include <libnut.h>
6953 nut_context_tt * nut;
6954 int main(void) { (void)nut_error(0); return 0; }
6956 _libnut=no
6957 cc_check -lnut && _libnut=yes
6960 if test "$_libnut" = yes ; then
6961 def_libnut='#define CONFIG_LIBNUT 1'
6962 extra_ldflags="$extra_ldflags -lnut"
6963 else
6964 def_libnut='#undef CONFIG_LIBNUT'
6966 echores "$_libnut"
6968 # These VO checks must be done after libavcodec/libswscale one
6969 echocheck "/dev/mga_vid"
6970 if test "$_mga" = auto ; then
6971 _mga=no
6972 test -c /dev/mga_vid && _mga=yes
6974 if test "$_mga" = yes ; then
6975 if test "$_libswscale_internals" = yes ; then
6976 def_mga='#define CONFIG_MGA 1'
6977 _vomodules="mga $_vomodules"
6978 else
6979 _res_comment="libswscale internal headers are required by mga, sorry"
6980 def_mga='#undef CONFIG_MGA'
6981 _novomodules="mga $_novomodules"
6983 else
6984 def_mga='#undef CONFIG_MGA'
6985 _novomodules="mga $_novomodules"
6987 echores "$_mga"
6990 echocheck "xmga"
6991 if test "$_xmga" = auto ; then
6992 _xmga=no
6993 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
6995 if test "$_xmga" = yes ; then
6996 if test "$_libswscale_internals" = yes ; then
6997 def_xmga='#define CONFIG_XMGA 1'
6998 _vomodules="xmga $_vomodules"
6999 else
7000 _res_comment="libswscale internal headers are required by mga, sorry"
7001 def_xmga='#undef CONFIG_XMGA'
7002 _novomodules="xmga $_novomodules"
7004 else
7005 def_xmga='#undef CONFIG_XMGA'
7006 _novomodules="xmga $_novomodules"
7008 echores "$_xmga"
7010 echocheck "zr"
7011 if test "$_zr" = auto ; then
7012 #36067's seem to identify themselves as 36057PQC's, so the line
7013 #below should work for 36067's and 36057's.
7014 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
7015 _zr=yes
7016 else
7017 _zr=no
7020 if test "$_zr" = yes ; then
7021 if test "$_libavcodec_internals" = yes ; then
7022 def_zr='#define CONFIG_ZR 1'
7023 _vomodules="zr zr2 $_vomodules"
7024 else
7025 _res_comment="libavcodec internal headers are required by zr, sorry"
7026 _novomodules="zr $_novomodules"
7027 def_zr='#undef CONFIG_ZR'
7029 else
7030 def_zr='#undef CONFIG_ZR'
7031 _novomodules="zr zr2 $_novomodules"
7033 echores "$_zr"
7035 # mencoder requires (optional) those libs: libmp3lame
7036 if test "$_mencoder" != no ; then
7038 echocheck "libmp3lame"
7039 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
7040 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
7041 if test "$_mp3lame" = auto ; then
7042 _mp3lame=no
7043 cat > $TMPC <<EOF
7044 #include <lame/lame.h>
7045 int main(void) { lame_version_t lv; (void) lame_init();
7046 get_lame_version_numerical(&lv); printf("%d%d\n",lv.major,lv.minor);
7047 return 0; }
7049 cc_check -lmp3lame $_ld_lm && tmp_run && _mp3lame=yes
7051 if test "$_mp3lame" = yes ; then
7052 def_mp3lame="#define CONFIG_MP3LAME"
7053 _ld_mp3lame=-lmp3lame
7054 libs_mencoder="$libs_mencoder $_ld_mp3lame"
7055 cat > $TMPC << EOF
7056 #include <lame/lame.h>
7057 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
7059 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET"
7060 cat > $TMPC << EOF
7061 #include <lame/lame.h>
7062 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
7064 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM"
7065 else
7066 def_mp3lame='#undef CONFIG_MP3LAME'
7068 echores "$_mp3lame"
7070 fi # test "$_mencoder" != no
7072 echocheck "mencoder"
7073 if test "$_mencoder" = yes ; then
7074 def_muxers='#define CONFIG_MUXERS 1'
7075 else
7076 def_muxers='#define CONFIG_MUXERS 0'
7078 echores "$_mencoder"
7081 echocheck "UnRAR executable"
7082 if test "$_unrar_exec" = auto ; then
7083 _unrar_exec="yes"
7084 mingw32 && _unrar_exec="no"
7086 if test "$_unrar_exec" = yes ; then
7087 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
7088 else
7089 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
7091 echores "$_unrar_exec"
7093 echocheck "TV interface"
7094 if test "$_tv" = yes ; then
7095 def_tv='#define CONFIG_TV 1'
7096 _inputmodules="tv $_inputmodules"
7097 else
7098 _noinputmodules="tv $_noinputmodules"
7099 def_tv='#undef CONFIG_TV'
7101 echores "$_tv"
7104 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
7105 echocheck "*BSD BT848 bt8xx header"
7106 _ioctl_bt848_h=no
7107 for file in "machine/ioctl_bt848.h" \
7108 "dev/bktr/ioctl_bt848.h" \
7109 "dev/video/bktr/ioctl_bt848.h" \
7110 "dev/ic/bt8xx.h" ; do
7111 cat > $TMPC <<EOF
7112 #include <sys/types.h>
7113 #include <sys/ioctl.h>
7114 #include <$file>
7115 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
7117 if cc_check ; then
7118 _ioctl_bt848_h=yes
7119 _ioctl_bt848_h_name="$file"
7120 break;
7122 done
7123 if test "$_ioctl_bt848_h" = yes ; then
7124 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
7125 _res_comment="using $_ioctl_bt848_h_name"
7126 else
7127 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
7129 echores "$_ioctl_bt848_h"
7131 echocheck "*BSD ioctl_meteor.h"
7132 _ioctl_meteor_h=no
7133 for file in "machine/ioctl_meteor.h" \
7134 "dev/bktr/ioctl_meteor.h" \
7135 "dev/video/bktr/ioctl_meteor.h" ; do
7136 cat > $TMPC <<EOF
7137 #include <sys/types.h>
7138 #include <$file>
7139 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
7141 if cc_check ; then
7142 _ioctl_meteor_h=yes
7143 _ioctl_meteor_h_name="$file"
7144 break;
7146 done
7147 if test "$_ioctl_meteor_h" = yes ; then
7148 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
7149 _res_comment="using $_ioctl_meteor_h_name"
7150 else
7151 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
7153 echores "$_ioctl_meteor_h"
7155 echocheck "*BSD BrookTree 848 TV interface"
7156 if test "$_tv_bsdbt848" = auto ; then
7157 _tv_bsdbt848=no
7158 if test "$_tv" = yes ; then
7159 cat > $TMPC <<EOF
7160 #include <sys/types.h>
7161 $def_ioctl_meteor_h_name
7162 $def_ioctl_bt848_h_name
7163 #ifdef IOCTL_METEOR_H_NAME
7164 #include IOCTL_METEOR_H_NAME
7165 #endif
7166 #ifdef IOCTL_BT848_H_NAME
7167 #include IOCTL_BT848_H_NAME
7168 #endif
7169 int main(void) {
7170 ioctl(0, METEORSINPUT, 0);
7171 ioctl(0, TVTUNER_GETFREQ, 0);
7172 return 0;
7175 cc_check && _tv_bsdbt848=yes
7178 if test "$_tv_bsdbt848" = yes ; then
7179 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
7180 _inputmodules="tv-bsdbt848 $_inputmodules"
7181 else
7182 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
7183 _noinputmodules="tv-bsdbt848 $_noinputmodules"
7185 echores "$_tv_bsdbt848"
7186 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
7189 echocheck "DirectShow TV interface"
7190 if test "$_tv_dshow" = auto ; then
7191 _tv_dshow=no
7192 if test "$_tv" = yes && win32 ; then
7193 cat > $TMPC <<EOF
7194 #include <ole2.h>
7195 int main(void) {
7196 void* p;
7197 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
7198 return 0;
7201 cc_check -lole32 -luuid && _tv_dshow=yes
7204 if test "$_tv_dshow" = yes ; then
7205 _inputmodules="tv-dshow $_inputmodules"
7206 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
7207 extra_ldflags="$extra_ldflags -lole32 -luuid"
7208 else
7209 _noinputmodules="tv-dshow $_noinputmodules"
7210 def_tv_dshow='#undef CONFIG_TV_DSHOW'
7212 echores "$_tv_dshow"
7215 echocheck "Video 4 Linux TV interface"
7216 if test "$_tv_v4l1" = auto ; then
7217 _tv_v4l1=no
7218 if test "$_tv" = yes && linux ; then
7219 cat > $TMPC <<EOF
7220 #include <stdlib.h>
7221 #include <linux/videodev.h>
7222 int main(void) { return 0; }
7224 cc_check && _tv_v4l1=yes
7227 if test "$_tv_v4l1" = yes ; then
7228 _audio_input=yes
7229 _tv_v4l=yes
7230 def_tv_v4l='#define CONFIG_TV_V4L 1'
7231 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
7232 _inputmodules="tv-v4l $_inputmodules"
7233 else
7234 _noinputmodules="tv-v4l1 $_noinputmodules"
7235 def_tv_v4l='#undef CONFIG_TV_V4L'
7237 echores "$_tv_v4l1"
7240 echocheck "Video 4 Linux 2 TV interface"
7241 if test "$_tv_v4l2" = auto ; then
7242 _tv_v4l2=no
7243 if test "$_tv" = yes && linux ; then
7244 cat > $TMPC <<EOF
7245 #include <stdlib.h>
7246 #include <linux/types.h>
7247 #include <linux/videodev2.h>
7248 int main(void) { return 0; }
7250 cc_check && _tv_v4l2=yes
7253 if test "$_tv_v4l2" = yes ; then
7254 _audio_input=yes
7255 _tv_v4l=yes
7256 def_tv_v4l='#define CONFIG_TV_V4L 1'
7257 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
7258 _inputmodules="tv-v4l2 $_inputmodules"
7259 else
7260 _noinputmodules="tv-v4l2 $_noinputmodules"
7261 def_tv_v4l2='#undef CONFIG_TV_V4L2'
7263 echores "$_tv_v4l2"
7266 echocheck "TV teletext interface"
7267 if test "$_tv_teletext" = auto ; then
7268 _tv_teletext=no
7269 if test "$_freetype" = yes && test "$_pthreads" = yes; then
7270 if test "$_tv_v4l2" = yes || test "$_v4l" = yes || test "$_tv_dshow" = yes; then
7271 _tv_teletext=yes
7275 if test "$_tv_teletext" = yes ; then
7276 def_tv_teletext='#define CONFIG_TV_TELETEXT 1'
7277 _inputmodules="tv-teletext $_inputmodules"
7278 else
7279 _noinputmodules="tv-teletext $_noinputmodules"
7280 def_tv_teletext='#undef CONFIG_TV_TELETEXT'
7282 echores "$_tv_teletext"
7285 echocheck "Radio interface"
7286 if test "$_radio" = yes ; then
7287 def_radio='#define CONFIG_RADIO 1'
7288 _inputmodules="radio $_inputmodules"
7289 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
7290 _radio_capture=no
7292 if test "$_radio_capture" = yes ; then
7293 _audio_input=yes
7294 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
7295 else
7296 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7298 else
7299 _noinputmodules="radio $_noinputmodules"
7300 def_radio='#undef CONFIG_RADIO'
7301 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7302 _radio_capture=no
7304 echores "$_radio"
7305 echocheck "Capture for Radio interface"
7306 echores "$_radio_capture"
7308 echocheck "Video 4 Linux 2 Radio interface"
7309 if test "$_radio_v4l2" = auto ; then
7310 _radio_v4l2=no
7311 if test "$_radio" = yes && linux ; then
7312 cat > $TMPC <<EOF
7313 #include <stdlib.h>
7314 #include <linux/types.h>
7315 #include <linux/videodev2.h>
7316 int main(void) { return 0; }
7318 cc_check && _radio_v4l2=yes
7321 if test "$_radio_v4l2" = yes ; then
7322 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
7323 else
7324 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
7326 echores "$_radio_v4l2"
7328 echocheck "Video 4 Linux Radio interface"
7329 if test "$_radio_v4l" = auto ; then
7330 _radio_v4l=no
7331 if test "$_radio" = yes && linux ; then
7332 cat > $TMPC <<EOF
7333 #include <stdlib.h>
7334 #include <linux/videodev.h>
7335 int main(void) { return 0; }
7337 cc_check && _radio_v4l=yes
7340 if test "$_radio_v4l" = yes ; then
7341 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
7342 else
7343 def_radio_v4l='#undef CONFIG_RADIO_V4L'
7345 echores "$_radio_v4l"
7347 if freebsd || netbsd || openbsd || dragonfly || bsdos \
7348 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
7349 echocheck "*BSD BrookTree 848 Radio interface"
7350 _radio_bsdbt848=no
7351 cat > $TMPC <<EOF
7352 #include <sys/types.h>
7353 $def_ioctl_bt848_h_name
7354 #ifdef IOCTL_BT848_H_NAME
7355 #include IOCTL_BT848_H_NAME
7356 #endif
7357 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
7359 cc_check && _radio_bsdbt848=yes
7360 echores "$_radio_bsdbt848"
7361 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
7363 if test "$_radio_bsdbt848" = yes ; then
7364 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
7365 else
7366 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
7369 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
7370 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
7371 die "Radio driver requires BSD BT848, V4L or V4L2!"
7374 echocheck "Video 4 Linux 2 MPEG PVR interface"
7375 if test "$_pvr" = auto ; then
7376 _pvr=no
7377 if test "$_tv_v4l2" = yes && linux ; then
7378 cat > $TMPC <<EOF
7379 #include <stdlib.h>
7380 #include <inttypes.h>
7381 #include <linux/types.h>
7382 #include <linux/videodev2.h>
7383 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
7385 cc_check && _pvr=yes
7388 if test "$_pvr" = yes ; then
7389 def_pvr='#define CONFIG_PVR 1'
7390 _inputmodules="pvr $_inputmodules"
7391 else
7392 _noinputmodules="pvr $_noinputmodules"
7393 def_pvr='#undef CONFIG_PVR'
7395 echores "$_pvr"
7398 echocheck "ftp"
7399 if ! beos && test "$_ftp" = yes ; then
7400 def_ftp='#define CONFIG_FTP 1'
7401 _inputmodules="ftp $_inputmodules"
7402 else
7403 _noinputmodules="ftp $_noinputmodules"
7404 def_ftp='#undef CONFIG_FTP'
7406 echores "$_ftp"
7408 echocheck "vstream client"
7409 if test "$_vstream" = auto ; then
7410 _vstream=no
7411 cat > $TMPC <<EOF
7412 #include <vstream-client.h>
7413 void vstream_error(const char *format, ... ) {}
7414 int main(void) { vstream_start(); return 0; }
7416 cc_check -lvstream-client && _vstream=yes
7418 if test "$_vstream" = yes ; then
7419 def_vstream='#define CONFIG_VSTREAM 1'
7420 _inputmodules="vstream $_inputmodules"
7421 extra_ldflags="$extra_ldflags -lvstream-client"
7422 else
7423 _noinputmodules="vstream $_noinputmodules"
7424 def_vstream='#undef CONFIG_VSTREAM'
7426 echores "$_vstream"
7429 echocheck "OSD menu"
7430 if test "$_menu" = yes ; then
7431 def_menu='#define CONFIG_MENU 1'
7432 test $_dvbin = "yes" && _menu_dvbin=yes
7433 else
7434 def_menu='#undef CONFIG_MENU'
7435 _menu_dvbin=no
7437 echores "$_menu"
7440 echocheck "Subtitles sorting"
7441 if test "$_sortsub" = yes ; then
7442 def_sortsub='#define CONFIG_SORTSUB 1'
7443 else
7444 def_sortsub='#undef CONFIG_SORTSUB'
7446 echores "$_sortsub"
7449 echocheck "XMMS inputplugin support"
7450 if test "$_xmms" = yes ; then
7451 if ( xmms-config --version ) >/dev/null 2>&1 ; then
7452 _xmmsplugindir=$(xmms-config --input-plugin-dir)
7453 _xmmslibdir=$(xmms-config --exec-prefix)/lib
7454 else
7455 _xmmsplugindir=/usr/lib/xmms/Input
7456 _xmmslibdir=/usr/lib
7459 def_xmms='#define CONFIG_XMMS 1'
7460 if darwin ; then
7461 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
7462 else
7463 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
7465 else
7466 def_xmms='#undef CONFIG_XMMS'
7468 echores "$_xmms"
7470 if test "$_charset" != "noconv" ; then
7471 def_charset="#define MSG_CHARSET \"$_charset\""
7472 else
7473 def_charset="#undef MSG_CHARSET"
7474 _charset="UTF-8"
7477 if test -n "$_charset" && test "$_charset" != "UTF-8" ; then
7478 echocheck "iconv program"
7479 iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG"
7480 if test "$?" -ne 0 ; then
7481 echores "no"
7482 echo "No working iconv program found, use "
7483 echo "--charset=UTF-8 to continue anyway."
7484 echo "If you also have problems with iconv library functions use --charset=noconv."
7485 exit 1
7486 else
7487 echores "yes"
7491 #############################################################################
7493 echocheck "automatic gdb attach"
7494 if test "$_crash_debug" = yes ; then
7495 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
7496 else
7497 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
7498 _crash_debug=no
7500 echores "$_crash_debug"
7502 echocheck "compiler support for noexecstack"
7503 cat > $TMPC <<EOF
7504 int main(void) { return 0; }
7506 if cc_check -Wl,-z,noexecstack ; then
7507 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
7508 echores "yes"
7509 else
7510 echores "no"
7514 # Dynamic linking flags
7515 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
7516 _ld_dl_dynamic=''
7517 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
7518 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
7519 _ld_dl_dynamic='-rdynamic'
7522 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
7523 bsdos && extra_ldflags="$extra_ldflags -ldvd"
7524 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
7526 def_debug='#undef MP_DEBUG'
7527 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
7530 echocheck "joystick"
7531 def_joystick='#undef CONFIG_JOYSTICK'
7532 if test "$_joystick" = yes ; then
7533 if linux ; then
7534 # TODO add some check
7535 def_joystick='#define CONFIG_JOYSTICK 1'
7536 else
7537 _joystick="no"
7538 _res_comment="unsupported under $system_name"
7541 echores "$_joystick"
7543 echocheck "lirc"
7544 if test "$_lirc" = auto ; then
7545 _lirc=no
7546 cat > $TMPC <<EOF
7547 #include <lirc/lirc_client.h>
7548 int main(void) { return 0; }
7550 cc_check -llirc_client && _lirc=yes
7552 if test "$_lirc" = yes ; then
7553 def_lirc='#define CONFIG_LIRC 1'
7554 libs_mplayer="$libs_mplayer -llirc_client"
7555 else
7556 def_lirc='#undef CONFIG_LIRC'
7558 echores "$_lirc"
7560 echocheck "lircc"
7561 if test "$_lircc" = auto ; then
7562 _lircc=no
7563 cat > $TMPC <<EOF
7564 #include <lirc/lircc.h>
7565 int main(void) { return 0; }
7567 cc_check -llircc && _lircc=yes
7569 if test "$_lircc" = yes ; then
7570 def_lircc='#define CONFIG_LIRCC 1'
7571 libs_mplayer="$libs_mplayer -llircc"
7572 else
7573 def_lircc='#undef CONFIG_LIRCC'
7575 echores "$_lircc"
7577 if arm; then
7578 # Detect maemo development platform libraries availability (http://www.maemo.org),
7579 # they are used when run on Nokia 770|8x0
7580 echocheck "maemo (Nokia 770|8x0)"
7581 if test "$_maemo" = auto ; then
7582 _maemo=no
7583 cat > $TMPC << EOF
7584 #include <libosso.h>
7585 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
7587 cc_check $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
7589 if test "$_maemo" = yes ; then
7590 def_maemo='#define CONFIG_MAEMO 1'
7591 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
7592 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
7593 else
7594 def_maemo='#undef CONFIG_MAEMO'
7596 echores "$_maemo"
7599 #############################################################################
7601 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
7602 # the OMF format needs to come after the 'extern symbol prefix' check, which
7603 # uses nm.
7604 if os2 ; then
7605 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
7608 # linker paths should be the same for mencoder and mplayer
7609 _ld_tmp=""
7610 for I in $libs_mplayer ; do
7611 _tmp=$(echo $I | sed -e 's/^-L.*$//')
7612 if test -z "$_tmp" ; then
7613 extra_ldflags="$extra_ldflags $I"
7614 else
7615 _ld_tmp="$_ld_tmp $I"
7617 done
7618 libs_mplayer=$_ld_tmp
7621 #############################################################################
7622 # 64 bit file offsets?
7623 if test "$_largefiles" = yes || freebsd ; then
7624 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
7625 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
7626 # dvdread support requires this (for off64_t)
7627 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
7631 CXXFLAGS=" $CFLAGS -Iffmpeg -D__STDC_LIMIT_MACROS"
7633 # This must be the last test to be performed. Any other tests following it
7634 # could fail due to linker errors. libdvdnavmini is intentionally not linked
7635 # against libdvdread (to permit MPlayer to use its own copy of the library).
7636 # So any compilation using the flags added here but not linking against
7637 # libdvdread can fail.
7638 echocheck "DVD support (libdvdnav)"
7639 if test "$_dvdread_internal" = yes && test ! -f "libdvdnav/dvdnav.c" ; then
7640 _dvdnav=no
7642 dvdnav_internal=no
7643 if test "$_dvdnav" = auto ; then
7644 if test "$_dvdread_internal" = yes ; then
7645 _dvdnav=yes
7646 dvdnav_internal=yes
7647 _res_comment="internal"
7648 else
7649 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
7652 if test "$_dvdnav" = auto ; then
7653 cat > $TMPC <<EOF
7654 #include <inttypes.h>
7655 #include <dvdnav/dvdnav.h>
7656 int main(void) { dvdnav_t *dvd=0; return 0; }
7658 _dvdnav=no
7659 _dvdnavdir=$($_dvdnavconfig --cflags)
7660 _dvdnavlibs=$($_dvdnavconfig --libs)
7661 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
7663 if test "$_dvdnav" = yes ; then
7664 _largefiles=yes
7665 def_dvdnav='#define CONFIG_DVDNAV 1'
7666 if test "$dvdnav_internal" = yes ; then
7667 cflags_libdvdnav="-Ilibdvdnav"
7668 _inputmodules="dvdnav(internal) $_inputmodules"
7669 else
7670 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
7671 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
7672 _inputmodules="dvdnav $_inputmodules"
7674 else
7675 def_dvdnav='#undef CONFIG_DVDNAV'
7676 _noinputmodules="dvdnav $_noinputmodules"
7678 echores "$_dvdnav"
7680 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
7681 # Read dvdnav comment above.
7683 #############################################################################
7684 echo "Creating config.mak"
7685 cat > config.mak << EOF
7686 # -------- Generated by configure -----------
7688 # Ensure that locale settings do not interfere with shell commands.
7689 export LC_ALL = C
7691 CONFIGURATION = $_configuration
7693 CHARSET = $_charset
7694 DOC_LANGS = $language_doc
7695 DOC_LANG_ALL = $doc_lang_all
7696 MAN_LANGS = $language_man
7697 MAN_LANG_ALL = $man_lang_all
7699 prefix = \$(DESTDIR)$_prefix
7700 BINDIR = \$(DESTDIR)$_bindir
7701 DATADIR = \$(DESTDIR)$_datadir
7702 LIBDIR = \$(DESTDIR)$_libdir
7703 MANDIR = \$(DESTDIR)$_mandir
7704 CONFDIR = \$(DESTDIR)$_confdir
7706 AR = $_ar
7707 AS = $_cc
7708 CC = $_cc
7709 CXX = $_cc
7710 HOST_CC = $_host_cc
7711 YASM = $_yasm
7712 INSTALL = $_install
7713 INSTALLSTRIP = $_install_strip
7714 RANLIB = $_ranlib
7715 WINDRES = $_windres
7717 CFLAGS = $CFLAGS $extra_cflags
7718 CXXFLAGS = $CXXFLAGS $extra_cflags $extra_cxxflags
7719 CFLAGS_DHAHELPER = $cflags_dhahelper
7720 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
7721 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
7722 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
7723 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
7724 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
7725 CFLAGS_STACKREALIGN = $cflags_stackrealign
7726 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
7727 CFLAGS_TREMOR_LOW = $cflags_tremor_low
7728 YASMFLAGS = $YASMFLAGS
7730 EXTRALIBS = $extra_libs
7731 EXTRA_LIB = $extra_ldflags $_ld_static $_ld_lm
7732 EXTRALIBS_MPLAYER = $libs_mplayer
7733 EXTRALIBS_MENCODER = $libs_mencoder
7735 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 &,"
7736 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 &,"
7738 GETCH = $_getch
7739 HELP_FILE = $_mp_help
7740 TIMER = $_timer
7742 EXESUF = $_exesuf
7743 EXESUFS_ALL = .exe
7745 $_target_arch
7746 $_target_subarch
7747 $(echo $_cpuexts | tr '[a-z] ' '[A-Z]\n' | sed 's/^/HAVE_/;s/$/=yes/')
7749 MENCODER = $_mencoder
7750 MPLAYER = $_mplayer
7752 NEED_GETTIMEOFDAY = $_need_gettimeofday
7753 NEED_GLOB = $_need_glob
7754 NEED_MMAP = $_need_mmap
7755 NEED_SETENV = $_need_setenv
7756 NEED_SHMEM = $_need_shmem
7757 NEED_STRSEP = $_need_strsep
7758 NEED_SWAB = $_need_swab
7759 NEED_VSSCANF = $_need_vsscanf
7761 # features
7762 3DFX = $_3dfx
7763 AA = $_aa
7764 ALSA1X = $_alsa1x
7765 ALSA9 = $_alsa9
7766 ALSA5 = $_alsa5
7767 APPLE_IR = $_apple_ir
7768 APPLE_REMOTE = $_apple_remote
7769 ARTS = $_arts
7770 AUDIO_INPUT = $_audio_input
7771 BITMAP_FONT = $_bitmap_font
7772 BL = $_bl
7773 CACA = $_caca
7774 CDDA = $_cdda
7775 CDDB = $_cddb
7776 COREAUDIO = $_coreaudio
7777 COREVIDEO = $_corevideo
7778 DART = $_dart
7779 DFBMGA = $_dfbmga
7780 DGA = $_dga
7781 DIRECT3D = $_direct3d
7782 DIRECTFB = $_directfb
7783 DIRECTX = $_directx
7784 DVBIN = $_dvbin
7785 DVDNAV = $_dvdnav
7786 DVDNAV_INTERNAL = $dvdnav_internal
7787 DVDREAD = $_dvdread
7788 DVDREAD_INTERNAL = $_dvdread_internal
7789 DXR2 = $_dxr2
7790 DXR3 = $_dxr3
7791 ESD = $_esd
7792 FAAC=$_faac
7793 FAAD = $_faad
7794 FAAD_INTERNAL = $_faad_internal
7795 FASTMEMCPY = $_fastmemcpy
7796 FBDEV = $_fbdev
7797 FREETYPE = $_freetype
7798 FTP = $_ftp
7799 GIF = $_gif
7800 GGI = $_ggi
7801 GL = $_gl
7802 GL_WIN32 = $_gl_win32
7803 HAVE_POSIX_SELECT = $_posix_select
7804 HAVE_SYS_MMAN_H = $_mman
7805 IVTV = $_ivtv
7806 JACK = $_jack
7807 JOYSTICK = $_joystick
7808 JPEG = $_jpeg
7809 KVA = $_kva
7810 LADSPA = $_ladspa
7811 LIBA52 = $_liba52
7812 LIBA52_INTERNAL = $_liba52_internal
7813 LIBASS = $_ass
7814 LIBBS2B = $_libbs2b
7815 LIBDCA = $_libdca
7816 LIBDV = $_libdv
7817 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
7818 LIBLZO = $_liblzo
7819 LIBMAD = $_mad
7820 LIBMENU = $_menu
7821 LIBMENU_DVBIN = $_menu_dvbin
7822 LIBMPEG2 = $_libmpeg2
7823 LIBNEMESI = $_nemesi
7824 LIBNUT = $_libnut
7825 LIBSMBCLIENT = $_smb
7826 LIBTHEORA = $_theora
7827 LIRC = $_lirc
7828 LIVE555 = $_live
7829 MACOSX_BUNDLE = $_macosx_bundle
7830 MACOSX_FINDER = $_macosx_finder
7831 MD5SUM = $_md5sum
7832 MGA = $_mga
7833 MNG = $_mng
7834 MP3LAME = $_mp3lame
7835 MP3LIB = $_mp3lib
7836 MUSEPACK = $_musepack
7837 NAS = $_nas
7838 NATIVE_RTSP = $_native_rtsp
7839 NETWORK = $_network
7840 OPENAL = $_openal
7841 OSS = $_ossaudio
7842 PE_EXECUTABLE = $_pe_executable
7843 PNG = $_png
7844 PNM = $_pnm
7845 PRIORITY = $_priority
7846 PULSE = $_pulse
7847 PVR = $_pvr
7848 QTX_CODECS = $_qtx
7849 QTX_CODECS_WIN32 = $_qtx_codecs_win32
7850 QTX_EMULATION = $_qtx_emulation
7851 QUARTZ = $_quartz
7852 RADIO=$_radio
7853 RADIO_CAPTURE=$_radio_capture
7854 REAL_CODECS = $_real
7855 S3FB = $_s3fb
7856 SDL = $_sdl
7857 SPEEX = $_speex
7858 STREAM_CACHE = $_stream_cache
7859 SGIAUDIO = $_sgiaudio
7860 SUNAUDIO = $_sunaudio
7861 SVGA = $_svga
7862 TDFXFB = $_tdfxfb
7863 TDFXVID = $_tdfxvid
7864 TGA = $_tga
7865 TOOLAME=$_toolame
7866 TREMOR_INTERNAL = $_tremor_internal
7867 TV = $_tv
7868 TV_BSDBT848 = $_tv_bsdbt848
7869 TV_DSHOW = $_tv_dshow
7870 TV_TELETEXT = $_tv_teletext
7871 TV_V4L = $_tv_v4l
7872 TV_V4L1 = $_tv_v4l1
7873 TV_V4L2 = $_tv_v4l2
7874 TWOLAME=$_twolame
7875 UNRAR_EXEC = $_unrar_exec
7876 V4L2 = $_v4l2
7877 VCD = $_vcd
7878 VDPAU = $_vdpau
7879 VESA = $_vesa
7880 VIDIX = $_vidix
7881 VIDIX_PCIDB = $_vidix_pcidb_val
7882 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
7883 VIDIX_IVTV=$_vidix_drv_ivtv
7884 VIDIX_MACH64=$_vidix_drv_mach64
7885 VIDIX_MGA=$_vidix_drv_mga
7886 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
7887 VIDIX_NVIDIA=$_vidix_drv_nvidia
7888 VIDIX_PM2=$_vidix_drv_pm2
7889 VIDIX_PM3=$_vidix_drv_pm3
7890 VIDIX_RADEON=$_vidix_drv_radeon
7891 VIDIX_RAGE128=$_vidix_drv_rage128
7892 VIDIX_S3=$_vidix_drv_s3
7893 VIDIX_SH_VEU=$_vidix_drv_sh_veu
7894 VIDIX_SIS=$_vidix_drv_sis
7895 VIDIX_UNICHROME=$_vidix_drv_unichrome
7896 VORBIS = $_vorbis
7897 VSTREAM = $_vstream
7898 WII = $_wii
7899 WIN32DLL = $_win32dll
7900 WIN32WAVEOUT = $_win32waveout
7901 WIN32_EMULATION = $_win32_emulation
7902 WINVIDIX = $winvidix
7903 X11 = $_x11
7904 X264 = $_x264
7905 XANIM_CODECS = $_xanim
7906 XMGA = $_xmga
7907 XMMS_PLUGINS = $_xmms
7908 XV = $_xv
7909 XVID4 = $_xvid
7910 XVIDIX = $xvidix
7911 XVMC = $_xvmc
7912 XVR100 = $_xvr100
7913 YUV4MPEG = $_yuv4mpeg
7914 ZR = $_zr
7916 # FFmpeg
7917 LIBAVUTIL = $_libavutil
7918 LIBAVCODEC = $_libavcodec
7919 LIBAVFORMAT = $_libavformat
7920 LIBPOSTPROC = $_libpostproc
7921 LIBSWSCALE = $_libswscale
7922 LIBAVCODEC_INTERNALS = $_libavcodec_internals
7923 LIBSWSCALE_INTERNALS = $_libswscale_internals
7924 FFMPEG_SOURCE_PATH = $_ffmpeg_source
7926 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
7927 CONFIG_AANDCT=yes
7928 CONFIG_FFT=yes
7929 CONFIG_FFT_MMX=$fft_mmx
7930 CONFIG_GOLOMB=yes
7931 CONFIG_MDCT=yes
7932 CONFIG_RDFT=yes
7934 CONFIG_BZLIB=$bzlib
7935 CONFIG_ENCODERS=yes
7936 CONFIG_GPL=yes
7937 CONFIG_MLIB = $_mlib
7938 CONFIG_MUXERS=$_mencoder
7939 CONFIG_VDPAU=$_vdpau
7940 CONFIG_XVMC=$_xvmc
7941 CONFIG_ZLIB=$_zlib
7943 HAVE_PTHREADS = $_pthreads
7944 HAVE_SHM = $_shm
7945 HAVE_W32THREADS = $_w32threads
7946 HAVE_YASM = $_have_yasm
7950 #############################################################################
7952 ff_config_enable () {
7953 _nprefix=$3;
7954 test -z "$_nprefix" && _nprefix='CONFIG'
7955 for part in $1; do
7956 if $(echo $2 | grep -q -E "(^| )$part($| )"); then
7957 echo "#define ${_nprefix}_$part 1"
7958 else
7959 echo "#define ${_nprefix}_$part 0"
7961 done
7964 echo "Creating config.h"
7965 cat > $TMPH << EOF
7966 /*----------------------------------------------------------------------------
7967 ** This file has been automatically generated by configure any changes in it
7968 ** will be lost when you run configure again.
7969 ** Instead of modifying definitions here, use the --enable/--disable options
7970 ** of the configure script! See ./configure --help for details.
7971 *---------------------------------------------------------------------------*/
7973 #ifndef MPLAYER_CONFIG_H
7974 #define MPLAYER_CONFIG_H
7976 /* Undefine this if you do not want to select mono audio (left or right)
7977 with a stereo MPEG layer 2/3 audio stream. The command line option
7978 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
7979 right-only), with 0 being the default.
7981 #define CONFIG_FAKE_MONO 1
7983 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
7984 #define MAX_OUTBURST 65536
7986 /* set up audio OUTBURST. Do not change this! */
7987 #define OUTBURST 512
7989 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
7990 #undef FAST_OSD
7991 #undef FAST_OSD_TABLE
7993 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
7994 #define MPEG12_POSTPROC 1
7995 #define ATTRIBUTE_ALIGNED_MAX 16
7999 #define CONFIGURATION "$_configuration"
8001 #define MPLAYER_DATADIR "$_datadir"
8002 #define MPLAYER_CONFDIR "$_confdir"
8003 #define MPLAYER_LIBDIR "$_libdir"
8005 /* definitions needed by included libraries */
8006 #define HAVE_INTTYPES_H 1
8007 /* libmpeg2 + FFmpeg */
8008 $def_fast_inttypes
8009 /* libdvdcss */
8010 #define HAVE_ERRNO_H 1
8011 /* libdvdcss + libdvdread */
8012 #define HAVE_LIMITS_H 1
8013 /* libdvdcss + libfaad2 */
8014 #define HAVE_UNISTD_H 1
8015 /* libfaad2 + libdvdread */
8016 #define STDC_HEADERS 1
8017 #define HAVE_MEMCPY 1
8018 /* libfaad2 */
8019 #define HAVE_STRING_H 1
8020 #define HAVE_STRINGS_H 1
8021 #define HAVE_SYS_STAT_H 1
8022 #define HAVE_SYS_TYPES_H 1
8023 /* libdvdnav */
8024 #define READ_CACHE_TRACE 0
8025 /* libdvdread */
8026 #define HAVE_DLFCN_H 1
8027 $def_dvdcss
8030 /* system headers */
8031 $def_alloca_h
8032 $def_alsa_asoundlib_h
8033 $def_altivec_h
8034 $def_malloc_h
8035 $def_mman_h
8036 $def_mman_has_map_failed
8037 $def_soundcard_h
8038 $def_sys_asoundlib_h
8039 $def_sys_soundcard_h
8040 $def_sys_sysinfo_h
8041 $def_termios_h
8042 $def_termios_sys_h
8043 $def_winsock2_h
8046 /* system functions */
8047 $def_gethostbyname2
8048 $def_gettimeofday
8049 $def_glob
8050 $def_langinfo
8051 $def_llrint
8052 $def_log2
8053 $def_lrint
8054 $def_lrintf
8055 $def_map_memalign
8056 $def_memalign
8057 $def_nanosleep
8058 $def_posix_select
8059 $def_round
8060 $def_roundf
8061 $def_select
8062 $def_setenv
8063 $def_shm
8064 $def_strsep
8065 $def_swab
8066 $def_sysi86
8067 $def_sysi86_iv
8068 $def_termcap
8069 $def_termios
8070 $def_truncf
8071 $def_vsscanf
8074 /* system-specific features */
8075 $def_asmalign_pot
8076 $def_builtin_expect
8077 $def_dl
8078 $def_extern_prefix
8079 $def_iconv
8080 $def_kstat
8081 $def_macosx_bundle
8082 $def_macosx_finder
8083 $def_maemo
8084 $def_named_asm_args
8085 $def_priority
8086 $def_quicktime
8087 $def_restrict_keyword
8088 $def_rtc
8089 $def_unrar_exec
8092 /* configurable options */
8093 $def_charset
8094 $def_crash_debug
8095 $def_debug
8096 $def_dynamic_plugins
8097 $def_fastmemcpy
8098 $def_menu
8099 $def_runtime_cpudetection
8100 $def_sighandler
8101 $def_sortsub
8102 $def_stream_cache
8103 $def_pthread_cache
8106 /* CPU stuff */
8107 #define __CPU__ $iproc
8108 $def_words_endian
8109 $def_bigendian
8110 $(ff_config_enable "$_arch_all" "$_arch" "ARCH")
8111 $(ff_config_enable "$_cpuexts_all" "$_cpuexts" "HAVE")
8114 /* DVD/VCD/CD */
8115 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
8116 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
8117 $def_bsdi_dvd
8118 $def_cddb
8119 $def_cdio
8120 $def_cdparanoia
8121 $def_cdrom
8122 $def_dvd
8123 $def_dvd_bsd
8124 $def_dvd_darwin
8125 $def_dvd_linux
8126 $def_dvd_openbsd
8127 $def_dvdio
8128 $def_dvdnav
8129 $def_dvdread
8130 $def_hpux_scsi_h
8131 $def_libcdio
8132 $def_sol_scsi_h
8133 $def_vcd
8136 /* codec libraries */
8137 $def_faac
8138 $def_faad
8139 $def_faad_internal
8140 $def_liba52
8141 $def_liba52_internal
8142 $def_libdca
8143 $def_libdv
8144 $def_liblzo
8145 $def_libmpeg2
8146 $def_mad
8147 $def_mp3lame
8148 $def_mp3lame_preset
8149 $def_mp3lame_preset_medium
8150 $def_mp3lib
8151 $def_musepack
8152 $def_speex
8153 $def_theora
8154 $def_toolame
8155 $def_tremor
8156 $def_twolame
8157 $def_vorbis
8158 $def_x264
8159 $def_xvid
8160 $def_zlib
8162 $def_libnut
8165 /* binary codecs */
8166 $def_qtx
8167 $def_qtx_win32
8168 $def_real
8169 $def_real_path
8170 $def_win32_loader
8171 $def_win32dll
8172 #define WIN32_PATH "$_win32codecsdir"
8173 $def_xanim
8174 $def_xanim_path
8175 $def_xmms
8176 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
8179 /* Audio output drivers */
8180 $def_alsa
8181 $def_alsa1x
8182 $def_alsa5
8183 $def_alsa9
8184 $def_arts
8185 $def_coreaudio
8186 $def_dart
8187 $def_esd
8188 $def_esd_latency
8189 $def_jack
8190 $def_nas
8191 $def_openal
8192 $def_openal_h
8193 $def_ossaudio
8194 $def_ossaudio_devdsp
8195 $def_ossaudio_devmixer
8196 $def_pulse
8197 $def_sgiaudio
8198 $def_sunaudio
8199 $def_win32waveout
8201 $def_ladspa
8202 $def_libbs2b
8205 /* input */
8206 $def_apple_ir
8207 $def_apple_remote
8208 $def_ioctl_bt848_h_name
8209 $def_ioctl_meteor_h_name
8210 $def_joystick
8211 $def_lirc
8212 $def_lircc
8213 $def_pvr
8214 $def_radio
8215 $def_radio_bsdbt848
8216 $def_radio_capture
8217 $def_radio_v4l
8218 $def_radio_v4l2
8219 $def_tv
8220 $def_tv_bsdbt848
8221 $def_tv_dshow
8222 $def_tv_teletext
8223 $def_tv_v4l
8224 $def_tv_v4l1
8225 $def_tv_v4l2
8228 /* font stuff */
8229 $def_ass
8230 $def_bitmap_font
8231 $def_enca
8232 $def_fontconfig
8233 $def_freetype
8234 $def_fribidi
8237 /* networking */
8238 $def_closesocket
8239 $def_ftp
8240 $def_inet6
8241 $def_inet_aton
8242 $def_inet_pton
8243 $def_live
8244 $def_nemesi
8245 $def_network
8246 $def_smb
8247 $def_socklen_t
8248 $def_vstream
8251 /* libvo options */
8252 $def_3dfx
8253 $def_aa
8254 $def_bl
8255 $def_caca
8256 $def_corevideo
8257 $def_dfbmga
8258 $def_dga
8259 $def_dga1
8260 $def_dga2
8261 $def_direct3d
8262 $def_directfb
8263 $def_directfb_version
8264 $def_directx
8265 $def_dvb
8266 $def_dvb_head
8267 $def_dvbin
8268 $def_dxr2
8269 $def_dxr3
8270 $def_fbdev
8271 $def_ggi
8272 $def_ggiwmh
8273 $def_gif
8274 $def_gif_4
8275 $def_gif_tvt_hack
8276 $def_gl
8277 $def_gl_win32
8278 $def_ivtv
8279 $def_jpeg
8280 $def_kva
8281 $def_md5sum
8282 $def_mga
8283 $def_mng
8284 $def_png
8285 $def_pnm
8286 $def_quartz
8287 $def_s3fb
8288 $def_sdl
8289 $def_sdlbuggy
8290 $def_svga
8291 $def_tdfxfb
8292 $def_tdfxvid
8293 $def_tga
8294 $def_v4l2
8295 $def_vdpau
8296 $def_vesa
8297 $def_vidix
8298 $def_vidix_drv_cyberblade
8299 $def_vidix_drv_ivtv
8300 $def_vidix_drv_mach64
8301 $def_vidix_drv_mga
8302 $def_vidix_drv_mga_crtc2
8303 $def_vidix_drv_nvidia
8304 $def_vidix_drv_pm3
8305 $def_vidix_drv_radeon
8306 $def_vidix_drv_rage128
8307 $def_vidix_drv_s3
8308 $def_vidix_drv_sh_veu
8309 $def_vidix_drv_sis
8310 $def_vidix_drv_unichrome
8311 $def_vidix_pfx
8312 $def_vm
8313 $def_wii
8314 $def_x11
8315 $def_xdpms
8316 $def_xf86keysym
8317 $def_xinerama
8318 $def_xmga
8319 $def_xss
8320 $def_xv
8321 $def_xvmc
8322 $def_xvr100
8323 $def_yuv4mpeg
8324 $def_zr
8327 /* FFmpeg */
8328 $def_libavcodec
8329 $def_libavformat
8330 $def_libavutil
8331 $def_libpostproc
8332 $def_libswscale
8333 $def_libavcodec_internals
8334 $def_libswscale_internals
8336 #define CONFIG_DECODERS 1
8337 #define CONFIG_ENCODERS 1
8338 #define CONFIG_DEMUXERS 1
8339 $def_muxers
8341 $def_arpa_inet_h
8342 $def_bswap
8343 $def_bzlib
8344 $def_dcbzl
8345 $def_dos_paths
8346 $def_fast_64bit
8347 $def_fast_unaligned
8348 $def_memalign_hack
8349 $def_mlib
8350 $def_mkstemp
8351 $def_posix_memalign
8352 $def_pthreads
8353 $def_ten_operands
8354 $def_threads
8355 $def_xform_asm
8356 $def_yasm
8358 #define CONFIG_FASTDIV 0
8359 #define CONFIG_FFSERVER 0
8360 #define CONFIG_GPL 1
8361 #define CONFIG_GRAY 0
8362 #define CONFIG_HARDCODED_TABLES 0
8363 #define CONFIG_LIBVORBIS 0
8364 #define CONFIG_POWERPC_PERF 0
8365 #define CONFIG_SMALL 0
8366 #define CONFIG_SWSCALE 1
8367 #define CONFIG_SWSCALE_ALPHA 1
8369 #define HAVE_ATTRIBUTE_PACKED 1
8370 #define HAVE_GETHRTIME 0
8371 #define HAVE_INLINE_ASM 0
8372 #define HAVE_LDBRX 0
8373 #define HAVE_POLL_H 1
8374 #define HAVE_PPC4XX 0
8375 #define HAVE_VIRTUALALLOC 0
8377 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
8378 #define CONFIG_AANDCT 1
8379 #define CONFIG_FFT 1
8380 #define CONFIG_GOLOMB 1
8381 #define CONFIG_MDCT 1
8382 #define CONFIG_RDFT 1
8384 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
8385 #define HAVE_EBX_AVAILABLE 1
8386 #ifndef MP_DEBUG
8387 #define HAVE_EBP_AVAILABLE 1
8388 #else
8389 #define HAVE_EBP_AVAILABLE 0
8390 #endif
8392 #define CONFIG_H263_VAAPI_HWACCEL 0
8393 #define CONFIG_MPEG2_VAAPI_HWACCEL 0
8394 #define CONFIG_MPEG4_VAAPI_HWACCEL 0
8395 #define CONFIG_H264_VAAPI_HWACCEL 0
8396 #define CONFIG_VC1_VAAPI_HWACCEL 0
8397 #define CONFIG_WMV3_VAAPI_HWACCEL 0
8399 #endif /* MPLAYER_CONFIG_H */
8402 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
8403 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
8405 #############################################################################
8407 cat << EOF
8409 Config files successfully generated by ./configure $_configuration !
8411 Install prefix: $_prefix
8412 Data directory: $_datadir
8413 Config direct.: $_confdir
8415 Byte order: $_byte_order
8416 Optimizing for: $_optimizing
8418 Languages:
8419 Messages: $language_msg
8420 Manual pages: $language_man
8421 Documentation: $language_doc
8423 Enabled optional drivers:
8424 Input: $_inputmodules
8425 Codecs: $_codecmodules
8426 Audio output: $_aomodules
8427 Video output: $_vomodules
8429 Disabled optional drivers:
8430 Input: $_noinputmodules
8431 Codecs: $_nocodecmodules
8432 Audio output: $_noaomodules
8433 Video output: $_novomodules
8435 'config.h' and 'config.mak' contain your configuration options.
8436 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
8437 compile *** DO NOT REPORT BUGS if you tweak these files ***
8439 'make' will now compile MPlayer and 'make install' will install it.
8440 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
8445 if test "$_mtrr" = yes ; then
8446 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)"
8447 echo
8450 if ! x86_32; then
8451 cat <<EOF
8452 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
8453 operating system ($system_name). You may encounter a few files that cannot
8454 be played due to missing open source video/audio codec support.
8460 cat <<EOF
8461 Check $TMPLOG if you wonder why an autodetection failed (make sure
8462 development headers/packages are installed).
8464 NOTE: The --enable-* parameters unconditionally force options on, completely
8465 skipping autodetection. This behavior is unlike what you may be used to from
8466 autoconf-based configure scripts that can decide to override you. This greater
8467 level of control comes at a price. You may have to provide the correct compiler
8468 and linker flags yourself.
8469 If you used one of these options (except --enable-menu and similar ones that
8470 turn on internal features) and experience a compilation or linking failure,
8471 make sure you have passed the necessary compiler/linker flags to configure.
8473 If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html.
8477 if test "$_warn_CFLAGS" = yes; then
8478 cat <<EOF
8480 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
8481 but:
8483 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
8485 It is strongly recommended to let MPlayer choose the correct CFLAGS!
8486 To do so, execute 'CFLAGS= ./configure <options>'
8491 # Last move:
8492 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"