Cast void* pointer to appropriate type before using it in an addition; fixes
[mplayer/glamo.git] / configure
blob71af892bf3e5f0c887bdeaa50e57e21a208166b3
1 #! /bin/sh
3 # Original version (C) 2000 Pontscho/fresh!mindworkz
4 # pontscho@makacs.poliod.hu
6 # History / Contributors: Check the Subversion log.
8 # Cleanups all over the place (c) 2001 pl
11 # This configure script is *not* autoconf-based and has different semantics.
12 # It attempts to autodetect all settings and options where possible. It is
13 # possible to override autodetection with the --enable-option/--disable-option
14 # command line parameters. --enable-option forces the option on skipping
15 # autodetection. Yes, this means that compilation may fail and yes, this is not
16 # how autoconf-based configure scripts behave.
18 # configure generates a series of configuration files:
19 # - config.h contains #defines that are used in the C code.
20 # - config.mak is included from the Makefiles.
22 # If you want to add a new check for $feature, here is a simple skeleton:
24 # echocheck "$feature"
25 # if test "$_feature" = auto; then
26 # cat > $TMPC << EOF
27 # #include <feature.h>
28 # int main(void) { return 0; }
29 # EOF
30 # _feature=no
31 # cc_check && _feature=yes
32 # fi
33 # if test "$_feature" = yes ; then
34 # def_feature='#define CONFIG_FEATURE 1'
35 # else
36 # def_feature='#undef CONFIG_FEATURE'
37 # fi
38 # echores "$_feature"
40 # Furthermore you need to add the variable _feature to the list of default
41 # settings and set it to one of yes/no/auto. Also add appropriate
42 # --enable-feature/--disable-feature command line options.
43 # The results of the check should be written to config.h and config.mak
44 # at the end of this script. The variable names used for this should be
45 # uniform, i.e. if the option is named 'feature':
47 # _feature : should have a value of yes/no/auto
48 # def_feature : '#define ... 1' or '#undef ...' for conditional compilation
49 # _ld_feature : '-L/path/dir -lfeature' GCC options
51 #############################################################################
53 # Prevent locale nonsense from breaking basic text processing utils
54 export LC_ALL=C
56 # Store the configure line that was used
57 _configuration="$*"
59 # Prefer these macros to full length text !
60 # These macros only return an error code - NO display is done
61 compile_check() {
62 echo >> "$TMPLOG"
63 cat "$1" >> "$TMPLOG"
64 echo >> "$TMPLOG"
65 echo "$_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o $TMPEXE $@" >> "$TMPLOG"
66 rm -f "$TMPEXE"
67 $_cc $CFLAGS $extra_cflags $_ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o "$TMPEXE" "$@" >> "$TMPLOG" 2>&1
68 TMPRES="$?"
69 echo >> "$TMPLOG"
70 echo >> "$TMPLOG"
71 return "$TMPRES"
74 cc_check() {
75 compile_check $TMPC $@
78 cxx_check() {
79 compile_check $TMPCPP $@ -lstdc++
82 yasm_check() {
83 echo >> "$TMPLOG"
84 cat "$TMPS" >> "$TMPLOG"
85 echo >> "$TMPLOG"
86 echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
87 rm -f "$TMPEXE"
88 $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
89 TMPRES="$?"
90 echo >> "$TMPLOG"
91 echo >> "$TMPLOG"
92 return "$TMPRES"
95 tmp_run() {
96 "$TMPEXE" >> "$TMPLOG" 2>&1
99 # Display error message, flushes tempfile, exit
100 die () {
101 echo
102 echo "Error: $@" >&2
103 echo >&2
104 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
105 echo "Check \"$TMPLOG\" if you do not understand why it failed."
106 exit 1
109 # OS test booleans functions
110 issystem() {
111 test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
113 aix() { issystem "AIX"; }
114 amigaos() { issystem "AmigaOS"; }
115 beos() { issystem "BEOS"; }
116 bsdos() { issystem "BSD/OS"; }
117 cygwin() { issystem "CYGWIN"; }
118 darwin() { issystem "Darwin"; }
119 dragonfly() { issystem "DragonFly"; }
120 freebsd() { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; }
121 gnu() { issystem "GNU"; }
122 hpux() { issystem "HP-UX"; }
123 irix() { issystem "IRIX"; }
124 linux() { issystem "Linux"; }
125 mingw32() { issystem "MINGW32"; }
126 morphos() { issystem "MorphOS"; }
127 netbsd() { issystem "NetBSD"; }
128 openbsd() { issystem "OpenBSD"; }
129 os2() { issystem "OS/2"; }
130 qnx() { issystem "QNX"; }
131 sunos() { issystem "SunOS"; }
132 win32() { cygwin || mingw32; }
134 # arch test boolean functions
135 # x86/x86pc is used by QNX
136 x86_32() {
137 case "$host_arch" in
138 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
139 *) return 1 ;;
140 esac
143 x86_64() {
144 case "$host_arch" in
145 x86_64|amd64) return 0 ;;
146 *) return 1 ;;
147 esac
150 x86() {
151 x86_32 || x86_64
154 ppc() {
155 case "$host_arch" in
156 ppc|ppc64|powerpc|powerpc64) return 0;;
157 *) return 1;;
158 esac
161 alpha() {
162 case "$host_arch" in
163 alpha*) return 0;;
164 *) return 1;;
165 esac
168 arm() {
169 case "$host_arch" in
170 arm*) return 0;;
171 *) return 1;;
172 esac
175 # Use this before starting a check
176 echocheck() {
177 echo "============ Checking for $@ ============" >> "$TMPLOG"
178 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
181 # Use this to echo the results of a check
182 echores() {
183 if test "$res_comment" ; then
184 res_comment="($res_comment)"
186 echo "Result is: $@ $res_comment" >> "$TMPLOG"
187 echo "##########################################" >> "$TMPLOG"
188 echo "" >> "$TMPLOG"
189 echo "$@ $res_comment"
190 res_comment=""
192 #############################################################################
194 # Check how echo works in this /bin/sh
195 case $(echo -n) in
196 -n) _echo_n= _echo_c='\c' ;; # SysV echo
197 *) _echo_n='-n ' _echo_c= ;; # BSD echo
198 esac
200 msg_lang_all=$(echo help/help_mp-??.h help/help_mp-??_??.h | sed -e "s:help/help_mp-\(..\).h:\1:g" -e "s:help/help_mp-\(.....\).h:\1:g")
201 man_lang_all=$(echo DOCS/man/??/mplayer.1 DOCS/man/??_??/mplayer.1 | sed -e "s:DOCS/man/\(..\)/mplayer.1:\1:g" -e "s:DOCS/man/\(.._..\)/mplayer.1:\1:g")
202 doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
204 show_help(){
205 cat << EOF
206 Usage: $0 [OPTIONS]...
208 Configuration:
209 -h, --help display this help and exit
211 Installation directories:
212 --prefix=DIR prefix directory for installation [/usr/local]
213 --bindir=DIR directory for installing binaries [PREFIX/bin]
214 --datadir=DIR directory for installing machine independent
215 data files (skins, etc) [PREFIX/share/mplayer]
216 --mandir=DIR directory for installing man pages [PREFIX/share/man]
217 --confdir=DIR directory for installing configuration files
218 [PREFIX/etc/mplayer]
219 --libdir=DIR directory for object code libraries [PREFIX/lib]
220 --codecsdir=DIR directory for binary codecs [LIBDIR/codecs]
222 Optional features:
223 --disable-mencoder disable MEncoder (A/V encoder) compilation [enable]
224 --disable-mplayer disable MPlayer compilation [enable]
225 --enable-gui enable GMPlayer compilation (GTK+ GUI) [disable]
226 --enable-gtk1 force using GTK 1.2 for the GUI [disable]
227 --disable-largefiles disable support for files > 2GB [enable]
228 --enable-linux-devfs set default devices to devfs [disable]
229 --enable-termcap use termcap database for key codes [autodetect]
230 --enable-termios use termios database for key codes [autodetect]
231 --disable-iconv disable iconv for encoding conversion [autodetect]
232 --disable-langinfo do not use langinfo [autodetect]
233 --enable-lirc enable LIRC (remote control) support [autodetect]
234 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
235 --enable-joystick enable joystick support [disable]
236 --enable-apple-remote enable Apple Remote input (Mac OS X only) [autodetect]
237 --enable-apple-ir enable Apple IR Remote input (Linux only) [autodetect]
238 --disable-vm disable X video mode extensions [autodetect]
239 --disable-xf86keysym disable support for multimedia keys [autodetect]
240 --enable-radio enable radio interface [disable]
241 --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
242 --disable-radio-v4l2 disable Video4Linux2 radio interface [autodetect]
243 --disable-radio-bsdbt848 disable BSD BT848 radio interface [autodetect]
244 --disable-tv disable TV interface (TV/DVB grabbers) [enable]
245 --disable-tv-v4l1 disable Video4Linux TV interface [autodetect]
246 --disable-tv-v4l2 disable Video4Linux2 TV interface [autodetect]
247 --disable-tv-bsdbt848 disable BSD BT848 interface [autodetect]
248 --disable-pvr disable Video4Linux2 MPEG PVR [autodetect]
249 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
250 --disable-network disable networking [enable]
251 --enable-winsock2_h enable winsock2_h [autodetect]
252 --enable-smb enable Samba (SMB) input [autodetect]
253 --enable-live enable LIVE555 Streaming Media [autodetect]
254 --enable-nemesi enable Nemesi Streaming Media [autodetect]
255 --disable-vcd disable VCD support [autodetect]
256 --disable-dvdnav disable libdvdnav [autodetect]
257 --disable-dvdread disable libdvdread [autodetect]
258 --disable-dvdread-internal disable internal libdvdread [autodetect]
259 --disable-libdvdcss-internal disable internal libdvdcss [autodetect]
260 --disable-cdparanoia disable cdparanoia [autodetect]
261 --disable-cddb disable cddb [autodetect]
262 --disable-bitmap-font disable bitmap font support [enable]
263 --disable-freetype disable FreeType 2 font rendering [autodetect]
264 --disable-fontconfig disable fontconfig font lookup [autodetect]
265 --disable-unrarexec disable using of UnRAR executable [enabled]
266 --enable-menu enable OSD menu (not DVD menu) [disabled]
267 --disable-sortsub disable subtitle sorting [enabled]
268 --enable-fribidi enable the FriBiDi libs [autodetect]
269 --disable-enca disable ENCA charset oracle library [autodetect]
270 --disable-maemo disable maemo specific features [autodetect]
271 --enable-macosx-finder enable Mac OS X Finder invocation parameter
272 parsing [disabled]
273 --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
274 --disable-inet6 disable IPv6 support [autodetect]
275 --disable-gethostbyname2 gethostbyname2 part of the C library [autodetect]
276 --disable-ftp disable FTP support [enabled]
277 --disable-vstream disable TiVo vstream client support [autodetect]
278 --disable-pthreads disable Posix threads support [autodetect]
279 --disable-w32threads disable Win32 threads support [autodetect]
280 --disable-ass-internal disable internal SSA/ASS subtitle support [autodetect]
281 --disable-ass disable SSA/ASS subtitle support [autodetect]
282 --enable-rpath enable runtime linker path for extra libs [disabled]
284 Codecs:
285 --enable-gif enable GIF support [autodetect]
286 --enable-png enable PNG input/output support [autodetect]
287 --enable-mng enable MNG input support [autodetect]
288 --enable-jpeg enable JPEG input/output support [autodetect]
289 --enable-libcdio enable libcdio support [autodetect]
290 --enable-liblzo enable liblzo support [autodetect]
291 --disable-win32dll disable Win32 DLL support [autodetect]
292 --disable-qtx disable QuickTime codecs support [enabled]
293 --disable-xanim disable XAnim codecs support [enabled]
294 --disable-real disable RealPlayer codecs support [enabled]
295 --disable-xvid disable Xvid [autodetect]
296 --disable-xvid-lavc disable Xvid in libavcodec [autodetect]
297 --disable-x264 disable x264 [autodetect]
298 --disable-x264-lavc disable x264 in libavcodec [autodetect]
299 --disable-libdirac-lavc disable Dirac in libavcodec [autodetect]
300 --disable-libschroedinger-lavc disable Dirac in libavcodec (Schroedinger
301 decoder) [autodetect]
302 --disable-libvpx-lavc disable libvpx in libavcodec [autodetect]
303 --disable-libnut disable libnut [autodetect]
304 --disable-libavutil_a disable static libavutil [autodetect]
305 --disable-libavcodec_a disable static libavcodec [autodetect]
306 --disable-libavformat_a disable static libavformat [autodetect]
307 --disable-libpostproc_a disable static libpostproc [autodetect]
308 --disable-libswscale_a disable static libswscale [autodetect]
309 --disable-libavutil_so disable shared libavutil [autodetect]
310 --disable-libavcodec_so disable shared libavcodec [autodetect]
311 --disable-libavformat_so disable shared libavformat [autodetect]
312 --disable-libpostproc_so disable shared libpostproc [autodetect]
313 --disable-libswscale_so disable shared libswscale [autodetect]
314 --disable-libavcodec_mpegaudio_hp disable high precision audio decoding
315 in libavcodec [enabled]
316 --disable-tremor-internal disable internal Tremor [enabled]
317 --enable-tremor-low enable lower accuracy internal Tremor [disabled]
318 --enable-tremor enable external Tremor [autodetect]
319 --disable-libvorbis disable libvorbis support [autodetect]
320 --disable-speex disable Speex support [autodetect]
321 --enable-theora enable OggTheora libraries [autodetect]
322 --enable-faad enable external FAAD2 (AAC) [autodetect]
323 --disable-faad-internal disable internal FAAD2 (AAC) [autodetect]
324 --enable-faad-fixed enable fixed-point mode in internal FAAD2 [disabled]
325 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
326 --disable-faac-lavc disable support for FAAC in libavcodec [autodetect]
327 --disable-ladspa disable LADSPA plugin support [autodetect]
328 --disable-libbs2b disable libbs2b audio filter support [autodetect]
329 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
330 --disable-mad disable libmad (MPEG audio) support [autodetect]
331 --disable-mp3lame disable LAME MP3 encoding support [autodetect]
332 --disable-mp3lame-lavc disable LAME in libavcodec [autodetect]
333 --disable-toolame disable Toolame (MPEG layer 2) encoding [autodetect]
334 --disable-twolame disable Twolame (MPEG layer 2) encoding [autodetect]
335 --enable-xmms enable XMMS input plugin support [disabled]
336 --enable-libdca enable libdca support [autodetect]
337 --disable-mp3lib disable builtin mp3lib [autodetect]
338 --disable-liba52 disable liba52 [autodetect]
339 --disable-libmpeg2 disable builtin libmpeg2 [autodetect]
340 --disable-musepack disable musepack support [autodetect]
341 --disable-libopencore_amrnb disable libopencore_amr narrowband [autodetect]
342 --disable-libopencore_amrwb disable libopencore_amr wideband [autodetect]
343 --disable-libopenjpeg disable OpenJPEG (JPEG2000) input/output support [autodetect]
344 --disable-decoder=DECODER disable specified FFmpeg decoder
345 --enable-decoder=DECODER enable specified FFmpeg decoder
346 --disable-encoder=ENCODER disable specified FFmpeg encoder
347 --enable-encoder=ENCODER enable specified FFmpeg encoder
348 --disable-parser=PARSER disable specified FFmpeg parser
349 --enable-parser=PARSER enable specified FFmpeg parser
350 --disable-protocol=PROTO disable specified FFmpeg protocol
351 --enable-protocol=PROTO enable specified FFmpeg protocol
352 --disable-demuxer=DEMUXER disable specified FFmpeg demuxer
353 --enable-demuxer=DEMUXER enable specified FFmpeg demuxer
354 --disable-muxer=MUXER disable specified FFmpeg muxer
355 --enable-muxer=MUXER enable specified FFmpeg muxer
357 Video output:
358 --disable-vidix disable VIDIX [for x86 *nix]
359 --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
360 Available: cyberblade,ivtv,mach64,mga,mga_crtc2,
361 nvidia,pm2,pm3,radeon,rage128,s3,sis,unichrome
362 --disable-vidix-pcidb disable VIDIX PCI device name database
363 --enable-dhahelper enable VIDIX dhahelper support
364 --enable-svgalib_helper enable VIDIX svgalib_helper support
365 --enable-gl enable OpenGL video output [autodetect]
366 --disable-matrixview disable OpenGL MatrixView video output [autodetect]
367 --enable-dga2 enable DGA 2 support [autodetect]
368 --enable-dga1 enable DGA 1 support [autodetect]
369 --enable-vesa enable VESA video output [autodetect]
370 --enable-svga enable SVGAlib video output [autodetect]
371 --enable-sdl enable SDL video output [autodetect]
372 --enable-kva enable KVA video output [autodetect]
373 --enable-aa enable AAlib video output [autodetect]
374 --enable-caca enable CACA video output [autodetect]
375 --enable-ggi enable GGI video output [autodetect]
376 --enable-ggiwmh enable GGI libggiwmh extension [autodetect]
377 --enable-direct3d enable Direct3D video output [autodetect]
378 --enable-directx enable DirectX video output [autodetect]
379 --enable-dxr2 enable DXR2 video output [autodetect]
380 --enable-dxr3 enable DXR3/H+ video output [autodetect]
381 --enable-ivtv enable IVTV TV-Out video output [autodetect]
382 --enable-v4l2 enable V4L2 Decoder audio/video output [autodetect]
383 --enable-dvb enable DVB video output [autodetect]
384 --enable-mga enable mga_vid video output [autodetect]
385 --enable-xmga enable mga_vid X11 video output [autodetect]
386 --enable-xv enable Xv video output [autodetect]
387 --enable-xvmc enable XvMC acceleration [disable]
388 --enable-vdpau enable VDPAU acceleration [autodetect]
389 --enable-vm enable XF86VidMode support [autodetect]
390 --enable-xinerama enable Xinerama support [autodetect]
391 --enable-x11 enable X11 video output [autodetect]
392 --enable-xshape enable XShape support [autodetect]
393 --disable-xss disable screensaver support via xss [autodetect]
394 --enable-fbdev enable FBDev video output [autodetect]
395 --enable-mlib enable mediaLib video output (Solaris) [disable]
396 --enable-3dfx enable obsolete /dev/3dfx video output [disable]
397 --enable-tdfxfb enable tdfxfb video output [disable]
398 --enable-s3fb enable s3fb (S3 ViRGE) video output [disable]
399 --enable-wii enable Nintendo Wii/GameCube video output [disable]
400 --enable-directfb enable DirectFB video output [autodetect]
401 --enable-zr enable ZR360[56]7/ZR36060 video output [autodetect]
402 --enable-bl enable Blinkenlights video output [disable]
403 --enable-tdfxvid enable tdfx_vid video output [disable]
404 --enable-xvr100 enable SUN XVR-100 video output [autodetect]
405 --disable-tga disable Targa video output [enable]
406 --disable-pnm disable PNM video output [enable]
407 --disable-md5sum disable md5sum video output [enable]
408 --disable-yuv4mpeg disable yuv4mpeg video output [enable]
409 --disable-corevideo disable CoreVideo video output [autodetect]
410 --disable-quartz disable Quartz video output [autodetect]
412 Audio output:
413 --disable-alsa disable ALSA audio output [autodetect]
414 --disable-ossaudio disable OSS audio output [autodetect]
415 --disable-arts disable aRts audio output [autodetect]
416 --disable-esd disable esd audio output [autodetect]
417 --disable-pulse disable Pulseaudio audio output [autodetect]
418 --disable-jack disable JACK audio output [autodetect]
419 --disable-openal disable OpenAL audio output [autodetect]
420 --disable-nas disable NAS audio output [autodetect]
421 --disable-sgiaudio disable SGI audio output [autodetect]
422 --disable-sunaudio disable Sun audio output [autodetect]
423 --disable-kai disable KAI audio output [autodetect]
424 --disable-dart disable DART audio output [autodetect]
425 --disable-win32waveout disable Windows waveout audio output [autodetect]
426 --disable-coreaudio disable CoreAudio audio output [autodetect]
427 --disable-select disable using select() on the audio device [enable]
429 Language options:
430 --charset=charset convert the console messages to this character set
431 --language-doc=lang language to use for the documentation [en]
432 --language-man=lang language to use for the man pages [en]
433 --language-msg=lang language to use for the messages and the GUI [en]
434 --language=lang default language to use [en]
435 Specific options override --language. You can pass a list of languages separated
436 by whitespace or commas instead of a single language. Nonexisting translations
437 will be dropped from each list. All documentation and man page translations
438 available in the list will be installed, for the messages the first available
439 translation will be used. The value "all" will activate all translations. The
440 LINGUAS environment variable is honored. In all cases the fallback is English.
441 Available values are: all $msg_lang_all
443 Miscellaneous options:
444 --enable-runtime-cpudetection enable runtime CPU detection [disable]
445 --enable-cross-compile enable cross-compilation [autodetect]
446 --cc=COMPILER C compiler to build MPlayer [gcc]
447 --host-cc=COMPILER C compiler for tools needed while building [gcc]
448 --as=ASSEMBLER assembler to build MPlayer [as]
449 --nm=NM nm tool to build MPlayer [nm]
450 --yasm=YASM Yasm assembler to build MPlayer [yasm]
451 --ar=AR librarian to build MPlayer [ar]
452 --ranlib=RANLIB ranlib to build MPlayer [ranlib]
453 --windres=WINDRES windres to build MPlayer [windres]
454 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
455 --enable-static build a statically linked binary
456 --with-install=PATH path to a custom install program
458 Advanced options:
459 --enable-mmx enable MMX [autodetect]
460 --enable-mmxext enable MMX2 (Pentium III, Athlon) [autodetect]
461 --enable-3dnow enable 3DNow! [autodetect]
462 --enable-3dnowext enable extended 3DNow! [autodetect]
463 --enable-sse enable SSE [autodetect]
464 --enable-sse2 enable SSE2 [autodetect]
465 --enable-ssse3 enable SSSE3 [autodetect]
466 --enable-shm enable shm [autodetect]
467 --enable-altivec enable AltiVec (PowerPC) [autodetect]
468 --enable-armv5te enable DSP extensions (ARM) [autodetect]
469 --enable-armv6 enable ARMv6 (ARM) [autodetect]
470 --enable-armv6t2 enable ARMv6t2 (ARM) [autodetect]
471 --enable-armvfp enable ARM VFP (ARM) [autodetect]
472 --enable-neon enable NEON (ARM) [autodetect]
473 --enable-iwmmxt enable iWMMXt (ARM) [autodetect]
474 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy [enable]
475 --enable-hardcoded-tables put tables in binary instead of calculating them at startup [disable]
476 --enable-big-endian force byte order to big-endian [autodetect]
477 --enable-debug[=1-3] compile-in debugging information [disable]
478 --enable-profile compile-in profiling information [disable]
479 --disable-sighandler disable sighandler for crashes [enable]
480 --enable-crash-debug enable automatic gdb attach on crash [disable]
481 --enable-dynamic-plugins enable dynamic A/V plugins [disable]
483 Use these options if autodetection fails:
484 --extra-cflags=FLAGS extra CFLAGS
485 --extra-ldflags=FLAGS extra LDFLAGS
486 --extra-libs=FLAGS extra linker flags
487 --extra-libs-mplayer=FLAGS extra linker flags for MPlayer
488 --extra-libs-mencoder=FLAGS extra linker flags for MEncoder
489 --with-xvmclib=NAME adapter-specific library name (e.g. XvMCNVIDIA)
491 --with-freetype-config=PATH path to freetype-config
492 --with-glib-config=PATH path to glib*-config
493 --with-gtk-config=PATH path to gtk*-config
494 --with-sdl-config=PATH path to sdl*-config
495 --with-dvdnav-config=PATH path to dvdnav-config
496 --with-dvdread-config=PATH path to dvdread-config
498 This configure script is NOT autoconf-based, even though its output is similar.
499 It will try to autodetect all configuration options. If you --enable an option
500 it will be forcefully turned on, skipping autodetection. This can break
501 compilation, so you need to know what you are doing.
503 exit 0
504 } #show_help()
506 # GOTCHA: the variables below defines the default behavior for autodetection
507 # and have - unless stated otherwise - at least 2 states : yes no
508 # If autodetection is available then the third state is: auto
509 _mmx=auto
510 _3dnow=auto
511 _3dnowext=auto
512 _mmxext=auto
513 _sse=auto
514 _sse2=auto
515 _ssse3=auto
516 _cmov=auto
517 _fast_cmov=auto
518 _fast_clz=auto
519 _armv5te=auto
520 _armv6=auto
521 _armv6t2=auto
522 _armvfp=auto
523 neon=auto
524 _iwmmxt=auto
525 _mtrr=auto
526 _altivec=auto
527 _install=install
528 _ranlib=ranlib
529 _windres=windres
530 _cc=cc
531 _ar=ar
532 test "$CC" && _cc="$CC"
533 _as=auto
534 _nm=auto
535 _yasm=yasm
536 _runtime_cpudetection=no
537 _cross_compile=auto
538 _prefix="/usr/local"
539 _libavutil_a=auto
540 _libavutil_so=auto
541 _libavcodec_a=auto
542 _libopencore_amrnb=auto
543 _libopencore_amrwb=auto
544 libopenjpeg=auto
545 _libavdecoders_all=$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
546 _libavdecoders=$(echo $_libavdecoders_all | sed -e 's/ LIB[A-Z0-9_]*_DECODER//g' -e s/MPEG4AAC_DECODER//)
547 _libavencoders_all=$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
548 _libavencoders=$(echo $_libavencoders_all | sed -e 's/ LIB[A-Z0-9_]*_ENCODER//g' -e s/AAC_ENCODER//)
549 _libavparsers_all=$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
550 _libavparsers=$_libavparsers_all
551 _libavbsfs_all=$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
552 _libavbsfs=$_libavbsfs_all
553 _libavhwaccels_all=$(sed -n 's/^[^#]*HWACCEL.*(.*, *\(.*\)).*/\1_hwaccel/p' libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
554 # Disable all hardware accelerators for now.
555 _libavhwaccels=
556 _libavdemuxers_all=$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
557 _libavdemuxers=$(echo $_libavdemuxers_all | sed -e 's/ LIB[A-Z0-9_]*_DEMUXER//g' -e s/REDIR_DEMUXER// -e s/AVISYNTH_DEMUXER//)
558 _libavmuxers_all=$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
559 _libavmuxers=$(echo $_libavmuxers_all | sed -e 's/ LIB[A-Z0-9_]*_MUXER//g' -e s/RTP_MUXER// -e s/RTSP_MUXER//)
560 _libavprotocols_all=$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' libavformat/allformats.c | tr '[a-z]' '[A-Z]')
561 _libavprotocols=$_libavprotocols_all
562 _libavcodec_so=auto
563 _libavformat_a=auto
564 _libavformat_so=auto
565 _libpostproc_a=auto
566 _libpostproc_so=auto
567 _libswscale_a=auto
568 _libswscale_so=auto
569 _libavcodec_mpegaudio_hp=yes
570 _mencoder=yes
571 _mplayer=yes
572 _x11=auto
573 _xshape=auto
574 _xss=auto
575 _dga1=auto
576 _dga2=auto
577 _xv=auto
578 _xvmc=no #auto when complete
579 _vdpau=auto
580 _sdl=auto
581 _kva=auto
582 _direct3d=auto
583 _directx=auto
584 _win32waveout=auto
585 _nas=auto
586 _png=auto
587 _mng=auto
588 _jpeg=auto
589 _pnm=yes
590 _md5sum=yes
591 _yuv4mpeg=yes
592 _gif=auto
593 _gl=auto
594 matrixview=yes
595 _ggi=auto
596 _ggiwmh=auto
597 _aa=auto
598 _caca=auto
599 _svga=auto
600 _vesa=auto
601 _fbdev=auto
602 _dvb=auto
603 _dxr2=auto
604 _dxr3=auto
605 _ivtv=auto
606 _v4l2=auto
607 _iconv=auto
608 _langinfo=auto
609 _rtc=auto
610 _ossaudio=auto
611 _arts=auto
612 _esd=auto
613 _pulse=auto
614 _jack=auto
615 _kai=auto
616 _dart=auto
617 _openal=auto
618 _libcdio=auto
619 _liblzo=auto
620 _mad=auto
621 _mp3lame=auto
622 _mp3lame_lavc=auto
623 _toolame=auto
624 _twolame=auto
625 _tremor=auto
626 _tremor_internal=yes
627 _tremor_low=no
628 _libvorbis=auto
629 _speex=auto
630 _theora=auto
631 _mp3lib=auto
632 _liba52=auto
633 _libdca=auto
634 _libmpeg2=auto
635 _faad=auto
636 _faad_internal=auto
637 _faad_fixed=no
638 _faac=auto
639 _faac_lavc=auto
640 _ladspa=auto
641 _libbs2b=auto
642 _xmms=no
643 _vcd=auto
644 _dvdnav=auto
645 _dvdnavconfig=dvdnav-config
646 _dvdreadconfig=dvdread-config
647 _dvdread=auto
648 _dvdread_internal=auto
649 _libdvdcss_internal=auto
650 _xanim=auto
651 _real=auto
652 _live=auto
653 _nemesi=auto
654 _native_rtsp=yes
655 _xinerama=auto
656 _mga=auto
657 _xmga=auto
658 _vm=auto
659 _xf86keysym=auto
660 _mlib=no #broken, thus disabled
661 _sgiaudio=auto
662 _sunaudio=auto
663 _alsa=auto
664 _fastmemcpy=yes
665 hardcoded_tables=no
666 _unrar_exec=auto
667 _win32dll=auto
668 _select=yes
669 _radio=no
670 _radio_capture=no
671 _radio_v4l=auto
672 _radio_v4l2=auto
673 _radio_bsdbt848=auto
674 _tv=yes
675 _tv_v4l1=auto
676 _tv_v4l2=auto
677 _tv_bsdbt848=auto
678 _tv_dshow=auto
679 _pvr=auto
680 _network=yes
681 _winsock2_h=auto
682 _struct_addrinfo=auto
683 _getaddrinfo=auto
684 _struct_sockaddr_storage=auto
685 _smb=auto
686 _vidix=auto
687 _vidix_pcidb=yes
688 _dhahelper=no
689 _svgalib_helper=no
690 _joystick=no
691 _xvid=auto
692 _xvid_lavc=auto
693 _x264=auto
694 _x264_lavc=auto
695 _libdirac_lavc=auto
696 _libschroedinger_lavc=auto
697 _libvpx_lavc=auto
698 _libnut=auto
699 _lirc=auto
700 _lircc=auto
701 _apple_remote=auto
702 _apple_ir=auto
703 _gui=no
704 _gtk1=no
705 _termcap=auto
706 _termios=auto
707 _3dfx=no
708 _s3fb=no
709 _wii=no
710 _tdfxfb=no
711 _tdfxvid=no
712 _xvr100=auto
713 _tga=yes
714 _directfb=auto
715 _zr=auto
716 _bl=no
717 _largefiles=yes
718 #language=en
719 _shm=auto
720 _linux_devfs=no
721 _charset="UTF-8"
722 _dynamic_plugins=no
723 _crash_debug=no
724 _sighandler=yes
725 _libdv=auto
726 _cdparanoia=auto
727 _cddb=auto
728 _big_endian=auto
729 _bitmap_font=yes
730 _freetype=auto
731 _fontconfig=auto
732 _menu=no
733 _qtx=auto
734 _maemo=auto
735 _coreaudio=auto
736 _corevideo=auto
737 _quartz=auto
738 quicktime=auto
739 _macosx_finder=no
740 _macosx_bundle=auto
741 _sortsub=yes
742 _freetypeconfig='freetype-config'
743 _fribidi=auto
744 _enca=auto
745 _inet6=auto
746 _gethostbyname2=auto
747 _ftp=yes
748 _musepack=auto
749 _vstream=auto
750 _pthreads=auto
751 _w32threads=auto
752 _ass=auto
753 ass_internal=yes
754 _rpath=no
755 _asmalign_pot=auto
756 _stream_cache=yes
757 _priority=no
758 def_dos_paths="#define HAVE_DOS_PATHS 0"
759 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
760 def_priority="#undef CONFIG_PRIORITY"
761 def_pthread_cache="#undef PTHREAD_CACHE"
762 _need_shmem=yes
763 for ac_option do
764 case "$ac_option" in
765 --help|-help|-h)
766 show_help
768 --prefix=*)
769 _prefix=$(echo $ac_option | cut -d '=' -f 2)
771 --bindir=*)
772 _bindir=$(echo $ac_option | cut -d '=' -f 2)
774 --datadir=*)
775 _datadir=$(echo $ac_option | cut -d '=' -f 2)
777 --mandir=*)
778 _mandir=$(echo $ac_option | cut -d '=' -f 2)
780 --confdir=*)
781 _confdir=$(echo $ac_option | cut -d '=' -f 2)
783 --libdir=*)
784 _libdir=$(echo $ac_option | cut -d '=' -f 2)
786 --codecsdir=*)
787 _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
790 --with-install=*)
791 _install=$(echo $ac_option | cut -d '=' -f 2 )
793 --with-xvmclib=*)
794 _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
797 --with-sdl-config=*)
798 _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
800 --with-freetype-config=*)
801 _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
803 --with-gtk-config=*)
804 _gtkconfig=$(echo $ac_option | cut -d '=' -f 2)
806 --with-glib-config=*)
807 _glibconfig=$(echo $ac_option | cut -d '=' -f 2)
809 --with-dvdnav-config=*)
810 _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
812 --with-dvdread-config=*)
813 _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
816 --extra-cflags=*)
817 extra_cflags=$(echo $ac_option | cut -d '=' -f 2-)
819 --extra-ldflags=*)
820 extra_ldflags=$(echo $ac_option | cut -d '=' -f 2-)
822 --extra-libs=*)
823 extra_libs=$(echo $ac_option | cut -d '=' -f 2)
825 --extra-libs-mplayer=*)
826 libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
828 --extra-libs-mencoder=*)
829 libs_mencoder=$(echo $ac_option | cut -d '=' -f 2)
832 --target=*)
833 _target=$(echo $ac_option | cut -d '=' -f 2)
835 --cc=*)
836 _cc=$(echo $ac_option | cut -d '=' -f 2)
838 --host-cc=*)
839 _host_cc=$(echo $ac_option | cut -d '=' -f 2)
841 --as=*)
842 _as=$(echo $ac_option | cut -d '=' -f 2)
844 --nm=*)
845 _nm=$(echo $ac_option | cut -d '=' -f 2)
847 --yasm=*)
848 _yasm=$(echo $ac_option | cut -d '=' -f 2)
850 --ar=*)
851 _ar=$(echo $ac_option | cut -d '=' -f 2)
853 --ranlib=*)
854 _ranlib=$(echo $ac_option | cut -d '=' -f 2)
856 --windres=*)
857 _windres=$(echo $ac_option | cut -d '=' -f 2)
859 --charset=*)
860 _charset=$(echo $ac_option | cut -d '=' -f 2)
862 --language-doc=*)
863 language_doc=$(echo $ac_option | cut -d '=' -f 2)
865 --language-man=*)
866 language_man=$(echo $ac_option | cut -d '=' -f 2)
868 --language-msg=*)
869 language_msg=$(echo $ac_option | cut -d '=' -f 2)
871 --language=*)
872 language=$(echo $ac_option | cut -d '=' -f 2)
875 --enable-static)
876 _ld_static='-static'
878 --disable-static)
879 _ld_static=''
881 --enable-profile)
882 _profile='-p'
884 --disable-profile)
885 _profile=
887 --enable-debug)
888 _debug='-g'
890 --enable-debug=*)
891 _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
893 --disable-debug)
894 _debug=
896 --enable-runtime-cpudetection) _runtime_cpudetection=yes ;;
897 --disable-runtime-cpudetection) _runtime_cpudetection=no ;;
898 --enable-cross-compile) _cross_compile=yes ;;
899 --disable-cross-compile) _cross_compile=no ;;
900 --enable-mencoder) _mencoder=yes ;;
901 --disable-mencoder) _mencoder=no ;;
902 --enable-mplayer) _mplayer=yes ;;
903 --disable-mplayer) _mplayer=no ;;
904 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
905 --disable-dynamic-plugins) _dynamic_plugins=no ;;
906 --enable-x11) _x11=yes ;;
907 --disable-x11) _x11=no ;;
908 --enable-xshape) _xshape=yes ;;
909 --disable-xshape) _xshape=no ;;
910 --enable-xss) _xss=yes ;;
911 --disable-xss) _xss=no ;;
912 --enable-xv) _xv=yes ;;
913 --disable-xv) _xv=no ;;
914 --enable-xvmc) _xvmc=yes ;;
915 --disable-xvmc) _xvmc=no ;;
916 --enable-vdpau) _vdpau=yes ;;
917 --disable-vdpau) _vdpau=no ;;
918 --enable-sdl) _sdl=yes ;;
919 --disable-sdl) _sdl=no ;;
920 --enable-kva) _kva=yes ;;
921 --disable-kva) _kva=no ;;
922 --enable-direct3d) _direct3d=yes ;;
923 --disable-direct3d) _direct3d=no ;;
924 --enable-directx) _directx=yes ;;
925 --disable-directx) _directx=no ;;
926 --enable-win32waveout) _win32waveout=yes ;;
927 --disable-win32waveout) _win32waveout=no ;;
928 --enable-nas) _nas=yes ;;
929 --disable-nas) _nas=no ;;
930 --enable-png) _png=yes ;;
931 --disable-png) _png=no ;;
932 --enable-mng) _mng=yes ;;
933 --disable-mng) _mng=no ;;
934 --enable-jpeg) _jpeg=yes ;;
935 --disable-jpeg) _jpeg=no ;;
936 --enable-libopenjpeg) libopenjpeg=yes ;;
937 --disable-libopenjpeg)libopenjpeg=no ;;
938 --enable-pnm) _pnm=yes ;;
939 --disable-pnm) _pnm=no ;;
940 --enable-md5sum) _md5sum=yes ;;
941 --disable-md5sum) _md5sum=no ;;
942 --enable-yuv4mpeg) _yuv4mpeg=yes ;;
943 --disable-yuv4mpeg) _yuv4mpeg=no ;;
944 --enable-gif) _gif=yes ;;
945 --disable-gif) _gif=no ;;
946 --enable-gl) _gl=yes ;;
947 --disable-gl) _gl=no ;;
948 --enable-matrixview) matrixview=yes ;;
949 --disable-matrixview) matrixview=no ;;
950 --enable-ggi) _ggi=yes ;;
951 --disable-ggi) _ggi=no ;;
952 --enable-ggiwmh) _ggiwmh=yes ;;
953 --disable-ggiwmh) _ggiwmh=no ;;
954 --enable-aa) _aa=yes ;;
955 --disable-aa) _aa=no ;;
956 --enable-caca) _caca=yes ;;
957 --disable-caca) _caca=no ;;
958 --enable-svga) _svga=yes ;;
959 --disable-svga) _svga=no ;;
960 --enable-vesa) _vesa=yes ;;
961 --disable-vesa) _vesa=no ;;
962 --enable-fbdev) _fbdev=yes ;;
963 --disable-fbdev) _fbdev=no ;;
964 --enable-dvb) _dvb=yes ;;
965 --disable-dvb) _dvb=no ;;
966 --enable-dxr2) _dxr2=yes ;;
967 --disable-dxr2) _dxr2=no ;;
968 --enable-dxr3) _dxr3=yes ;;
969 --disable-dxr3) _dxr3=no ;;
970 --enable-ivtv) _ivtv=yes ;;
971 --disable-ivtv) _ivtv=no ;;
972 --enable-v4l2) _v4l2=yes ;;
973 --disable-v4l2) _v4l2=no ;;
974 --enable-iconv) _iconv=yes ;;
975 --disable-iconv) _iconv=no ;;
976 --enable-langinfo) _langinfo=yes ;;
977 --disable-langinfo) _langinfo=no ;;
978 --enable-rtc) _rtc=yes ;;
979 --disable-rtc) _rtc=no ;;
980 --enable-libdv) _libdv=yes ;;
981 --disable-libdv) _libdv=no ;;
982 --enable-ossaudio) _ossaudio=yes ;;
983 --disable-ossaudio) _ossaudio=no ;;
984 --enable-arts) _arts=yes ;;
985 --disable-arts) _arts=no ;;
986 --enable-esd) _esd=yes ;;
987 --disable-esd) _esd=no ;;
988 --enable-pulse) _pulse=yes ;;
989 --disable-pulse) _pulse=no ;;
990 --enable-jack) _jack=yes ;;
991 --disable-jack) _jack=no ;;
992 --enable-openal) _openal=yes ;;
993 --disable-openal) _openal=no ;;
994 --enable-kai) _kai=yes ;;
995 --disable-kai) _kai=no ;;
996 --enable-dart) _dart=yes ;;
997 --disable-dart) _dart=no ;;
998 --enable-mad) _mad=yes ;;
999 --disable-mad) _mad=no ;;
1000 --enable-mp3lame) _mp3lame=yes ;;
1001 --disable-mp3lame) _mp3lame=no ;;
1002 --enable-mp3lame-lavc) _mp3lame_lavc=yes ;;
1003 --disable-mp3lame-lavc) _mp3lame_lavc=no ;;
1004 --enable-toolame) _toolame=yes ;;
1005 --disable-toolame) _toolame=no ;;
1006 --enable-twolame) _twolame=yes ;;
1007 --disable-twolame) _twolame=no ;;
1008 --enable-libcdio) _libcdio=yes ;;
1009 --disable-libcdio) _libcdio=no ;;
1010 --enable-liblzo) _liblzo=yes ;;
1011 --disable-liblzo) _liblzo=no ;;
1012 --enable-libvorbis) _libvorbis=yes ;;
1013 --disable-libvorbis) _libvorbis=no ;;
1014 --enable-speex) _speex=yes ;;
1015 --disable-speex) _speex=no ;;
1016 --enable-tremor) _tremor=yes ;;
1017 --disable-tremor) _tremor=no ;;
1018 --enable-tremor-internal) _tremor_internal=yes ;;
1019 --disable-tremor-internal) _tremor_internal=no ;;
1020 --enable-tremor-low) _tremor_low=yes ;;
1021 --disable-tremor-low) _tremor_low=no ;;
1022 --enable-theora) _theora=yes ;;
1023 --disable-theora) _theora=no ;;
1024 --enable-mp3lib) _mp3lib=yes ;;
1025 --disable-mp3lib) _mp3lib=no ;;
1026 --enable-liba52) _liba52=yes ;;
1027 --disable-liba52) _liba52=no ;;
1028 --enable-libdca) _libdca=yes ;;
1029 --disable-libdca) _libdca=no ;;
1030 --enable-libmpeg2) _libmpeg2=yes ;;
1031 --disable-libmpeg2) _libmpeg2=no ;;
1032 --enable-musepack) _musepack=yes ;;
1033 --disable-musepack) _musepack=no ;;
1034 --enable-faad) _faad=yes ;;
1035 --disable-faad) _faad=no ;;
1036 --enable-faad-internal) _faad_internal=yes ;;
1037 --disable-faad-internal) _faad_internal=no ;;
1038 --enable-faad-fixed) _faad_fixed=yes ;;
1039 --disable-faad-fixed) _faad_fixed=no ;;
1040 --enable-faac) _faac=yes ;;
1041 --disable-faac) _faac=no ;;
1042 --enable-faac-lavc) _faac_lavc=yes ;;
1043 --disable-faac-lavc) _faac_lavc=no ;;
1044 --enable-ladspa) _ladspa=yes ;;
1045 --disable-ladspa) _ladspa=no ;;
1046 --enable-libbs2b) _libbs2b=yes ;;
1047 --disable-libbs2b) _libbs2b=no ;;
1048 --enable-xmms) _xmms=yes ;;
1049 --disable-xmms) _xmms=no ;;
1050 --enable-vcd) _vcd=yes ;;
1051 --disable-vcd) _vcd=no ;;
1052 --enable-dvdread) _dvdread=yes ;;
1053 --disable-dvdread) _dvdread=no ;;
1054 --enable-dvdread-internal) _dvdread_internal=yes ;;
1055 --disable-dvdread-internal) _dvdread_internal=no ;;
1056 --enable-libdvdcss-internal) _libdvdcss_internal=yes ;;
1057 --disable-libdvdcss-internal) _libdvdcss_internal=no ;;
1058 --enable-dvdnav) _dvdnav=yes ;;
1059 --disable-dvdnav) _dvdnav=no ;;
1060 --enable-xanim) _xanim=yes ;;
1061 --disable-xanim) _xanim=no ;;
1062 --enable-real) _real=yes ;;
1063 --disable-real) _real=no ;;
1064 --enable-live) _live=yes ;;
1065 --disable-live) _live=no ;;
1066 --enable-nemesi) _nemesi=yes ;;
1067 --disable-nemesi) _nemesi=no ;;
1068 --enable-xinerama) _xinerama=yes ;;
1069 --disable-xinerama) _xinerama=no ;;
1070 --enable-mga) _mga=yes ;;
1071 --disable-mga) _mga=no ;;
1072 --enable-xmga) _xmga=yes ;;
1073 --disable-xmga) _xmga=no ;;
1074 --enable-vm) _vm=yes ;;
1075 --disable-vm) _vm=no ;;
1076 --enable-xf86keysym) _xf86keysym=yes ;;
1077 --disable-xf86keysym) _xf86keysym=no ;;
1078 --enable-mlib) _mlib=yes ;;
1079 --disable-mlib) _mlib=no ;;
1080 --enable-sunaudio) _sunaudio=yes ;;
1081 --disable-sunaudio) _sunaudio=no ;;
1082 --enable-sgiaudio) _sgiaudio=yes ;;
1083 --disable-sgiaudio) _sgiaudio=no ;;
1084 --enable-alsa) _alsa=yes ;;
1085 --disable-alsa) _alsa=no ;;
1086 --enable-tv) _tv=yes ;;
1087 --disable-tv) _tv=no ;;
1088 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1089 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1090 --enable-tv-v4l1) _tv_v4l1=yes ;;
1091 --disable-tv-v4l1) _tv_v4l1=no ;;
1092 --enable-tv-v4l2) _tv_v4l2=yes ;;
1093 --disable-tv-v4l2) _tv_v4l2=no ;;
1094 --enable-tv-dshow) _tv_dshow=yes ;;
1095 --disable-tv-dshow) _tv_dshow=no ;;
1096 --enable-radio) _radio=yes ;;
1097 --enable-radio-capture) _radio_capture=yes ;;
1098 --disable-radio-capture) _radio_capture=no ;;
1099 --disable-radio) _radio=no ;;
1100 --enable-radio-v4l) _radio_v4l=yes ;;
1101 --disable-radio-v4l) _radio_v4l=no ;;
1102 --enable-radio-v4l2) _radio_v4l2=yes ;;
1103 --disable-radio-v4l2) _radio_v4l2=no ;;
1104 --enable-radio-bsdbt848) _radio_bsdbt848=yes ;;
1105 --disable-radio-bsdbt848) _radio_bsdbt848=no ;;
1106 --enable-pvr) _pvr=yes ;;
1107 --disable-pvr) _pvr=no ;;
1108 --enable-fastmemcpy) _fastmemcpy=yes ;;
1109 --disable-fastmemcpy) _fastmemcpy=no ;;
1110 --enable-hardcoded-tables) hardcoded_tables=yes ;;
1111 --disable-hardcoded-tables) hardcoded_tables=no ;;
1112 --enable-network) _network=yes ;;
1113 --disable-network) _network=no ;;
1114 --enable-winsock2_h) _winsock2_h=yes ;;
1115 --disable-winsock2_h) _winsock2_h=no ;;
1116 --enable-smb) _smb=yes ;;
1117 --disable-smb) _smb=no ;;
1118 --enable-vidix) _vidix=yes ;;
1119 --disable-vidix) _vidix=no ;;
1120 --with-vidix-drivers=*)
1121 _vidix_drivers=$(echo $ac_option | cut -d '=' -f 2)
1123 --disable-vidix-pcidb) _vidix_pcidb=no ;;
1124 --enable-dhahelper) _dhahelper=yes ;;
1125 --disable-dhahelper) _dhahelper=no ;;
1126 --enable-svgalib_helper) _svgalib_helper=yes ;;
1127 --disable-svgalib_helper) _svgalib_helper=no ;;
1128 --enable-joystick) _joystick=yes ;;
1129 --disable-joystick) _joystick=no ;;
1130 --enable-xvid) _xvid=yes ;;
1131 --disable-xvid) _xvid=no ;;
1132 --enable-xvid-lavc) _xvid_lavc=yes ;;
1133 --disable-xvid-lavc) _xvid_lavc=no ;;
1134 --enable-x264) _x264=yes ;;
1135 --disable-x264) _x264=no ;;
1136 --enable-x264-lavc) _x264_lavc=yes ;;
1137 --disable-x264-lavc) _x264_lavc=no ;;
1138 --enable-libdirac-lavc) _libdirac_lavc=yes ;;
1139 --disable-libdirac-lavc) _libdirac_lavc=no ;;
1140 --enable-libschroedinger-lavc) _libschroedinger_lavc=yes ;;
1141 --disable-libschroedinger-lavc) _libschroedinger_lavc=no ;;
1142 --enable-libvpx-lavc) _libvpx_lavc=yes ;;
1143 --disable-libvpx-lavc) _libvpx_lavc=no ;;
1144 --enable-libnut) _libnut=yes ;;
1145 --disable-libnut) _libnut=no ;;
1146 --enable-libavutil_a) _libavutil_a=yes ;;
1147 --disable-libavutil_a) _libavutil_a=no ;;
1148 --enable-libavutil_so) _libavutil_so=yes ;;
1149 --disable-libavutil_so) _libavutil_so=no ;;
1150 --enable-libavcodec_a) _libavcodec_a=yes ;;
1151 --disable-libavcodec_a) _libavcodec_a=no ;;
1152 --enable-libavcodec_so) _libavcodec_so=yes ;;
1153 --disable-libavcodec_so) _libavcodec_so=no ;;
1154 --enable-libopencore_amrnb) _libopencore_amrnb=yes ;;
1155 --disable-libopencore_amrnb) _libopencore_amrnb=no ;;
1156 --enable-libopencore_amrwb) _libopencore_amrwb=yes ;;
1157 --disable-libopencore_amrwb) _libopencore_amrwb=no ;;
1158 --enable-decoder=*) _libavdecoders="$_libavdecoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1159 --disable-decoder=*) _libavdecoders=$(echo $_libavdecoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1160 --enable-encoder=*) _libavencoders="$_libavencoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1161 --disable-encoder=*) _libavencoders=$(echo $_libavencoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1162 --enable-parser=*) _libavparsers="$_libavparsers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1163 --disable-parser=*) _libavparsers=$(echo $_libavparsers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1164 --enable-protocol=*) _libavprotocols="$_libavprotocols $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1165 --disable-protocol=*) _libavprotocols=$(echo $_libavprotocols | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1166 --enable-demuxer=*) _libavdemuxers="$_libavdemuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1167 --disable-demuxer=*) _libavdemuxers=$(echo $_libavdemuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1168 --enable-muxer=*) _libavmuxers="$_libavmuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1169 --disable-muxer=*) _libavmuxers=$(echo $_libavmuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1170 --enable-libavformat_a) _libavformat_a=yes ;;
1171 --disable-libavformat_a) _libavformat_a=no ;;
1172 --enable-libavformat_so) _libavformat_so=yes ;;
1173 --disable-libavformat_so) _libavformat_so=no ;;
1174 --enable-libpostproc_a) _libpostproc_a=yes ;;
1175 --disable-libpostproc_a) _libpostproc_a=no ;;
1176 --enable-libpostproc_so) _libpostproc_so=yes ;;
1177 --disable-libpostproc_so) _libpostproc_so=no ;;
1178 --enable-libswscale_a) _libswscale_a=yes ;;
1179 --disable-libswscale_a) _libswscale_a=no ;;
1180 --enable-libswscale_so) _libswscale_so=yes ;;
1181 --disable-libswscale_so) _libswscale_so=no ;;
1182 --enable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=yes ;;
1183 --disable-libavcodec_mpegaudio_hp) _libavcodec_mpegaudio_hp=no ;;
1185 --enable-lirc) _lirc=yes ;;
1186 --disable-lirc) _lirc=no ;;
1187 --enable-lircc) _lircc=yes ;;
1188 --disable-lircc) _lircc=no ;;
1189 --enable-apple-remote) _apple_remote=yes ;;
1190 --disable-apple-remote) _apple_remote=no ;;
1191 --enable-apple-ir) _apple_ir=yes ;;
1192 --disable-apple-ir) _apple_ir=no ;;
1193 --enable-gui) _gui=yes ;;
1194 --disable-gui) _gui=no ;;
1195 --enable-gtk1) _gtk1=yes ;;
1196 --disable-gtk1) _gtk1=no ;;
1197 --enable-termcap) _termcap=yes ;;
1198 --disable-termcap) _termcap=no ;;
1199 --enable-termios) _termios=yes ;;
1200 --disable-termios) _termios=no ;;
1201 --enable-3dfx) _3dfx=yes ;;
1202 --disable-3dfx) _3dfx=no ;;
1203 --enable-s3fb) _s3fb=yes ;;
1204 --disable-s3fb) _s3fb=no ;;
1205 --enable-wii) _wii=yes ;;
1206 --disable-wii) _wii=no ;;
1207 --enable-tdfxfb) _tdfxfb=yes ;;
1208 --disable-tdfxfb) _tdfxfb=no ;;
1209 --disable-tdfxvid) _tdfxvid=no ;;
1210 --enable-tdfxvid) _tdfxvid=yes ;;
1211 --disable-xvr100) _xvr100=no ;;
1212 --enable-xvr100) _xvr100=yes ;;
1213 --disable-tga) _tga=no ;;
1214 --enable-tga) _tga=yes ;;
1215 --enable-directfb) _directfb=yes ;;
1216 --disable-directfb) _directfb=no ;;
1217 --enable-zr) _zr=yes ;;
1218 --disable-zr) _zr=no ;;
1219 --enable-bl) _bl=yes ;;
1220 --disable-bl) _bl=no ;;
1221 --enable-mtrr) _mtrr=yes ;;
1222 --disable-mtrr) _mtrr=no ;;
1223 --enable-largefiles) _largefiles=yes ;;
1224 --disable-largefiles) _largefiles=no ;;
1225 --enable-shm) _shm=yes ;;
1226 --disable-shm) _shm=no ;;
1227 --enable-select) _select=yes ;;
1228 --disable-select) _select=no ;;
1229 --enable-linux-devfs) _linux_devfs=yes ;;
1230 --disable-linux-devfs) _linux_devfs=no ;;
1231 --enable-cdparanoia) _cdparanoia=yes ;;
1232 --disable-cdparanoia) _cdparanoia=no ;;
1233 --enable-cddb) _cddb=yes ;;
1234 --disable-cddb) _cddb=no ;;
1235 --enable-big-endian) _big_endian=yes ;;
1236 --disable-big-endian) _big_endian=no ;;
1237 --enable-bitmap-font) _bitmap_font=yes ;;
1238 --disable-bitmap-font) _bitmap_font=no ;;
1239 --enable-freetype) _freetype=yes ;;
1240 --disable-freetype) _freetype=no ;;
1241 --enable-fontconfig) _fontconfig=yes ;;
1242 --disable-fontconfig) _fontconfig=no ;;
1243 --enable-unrarexec) _unrar_exec=yes ;;
1244 --disable-unrarexec) _unrar_exec=no ;;
1245 --enable-ftp) _ftp=yes ;;
1246 --disable-ftp) _ftp=no ;;
1247 --enable-vstream) _vstream=yes ;;
1248 --disable-vstream) _vstream=no ;;
1249 --enable-pthreads) _pthreads=yes ;;
1250 --disable-pthreads) _pthreads=no ;;
1251 --enable-w32threads) _w32threads=yes ;;
1252 --disable-w32threads) _w32threads=no ;;
1253 --enable-ass) _ass=yes ;;
1254 --disable-ass) _ass=no ;;
1255 --enable-ass-internal) ass_internal=yes ;;
1256 --disable-ass-internal) ass_internal=no ;;
1257 --enable-rpath) _rpath=yes ;;
1258 --disable-rpath) _rpath=no ;;
1260 --enable-fribidi) _fribidi=yes ;;
1261 --disable-fribidi) _fribidi=no ;;
1263 --enable-enca) _enca=yes ;;
1264 --disable-enca) _enca=no ;;
1266 --enable-inet6) _inet6=yes ;;
1267 --disable-inet6) _inet6=no ;;
1269 --enable-gethostbyname2) _gethostbyname2=yes ;;
1270 --disable-gethostbyname2) _gethostbyname2=no ;;
1272 --enable-dga1) _dga1=yes ;;
1273 --disable-dga1) _dga1=no ;;
1274 --enable-dga2) _dga2=yes ;;
1275 --disable-dga2) _dga2=no ;;
1277 --enable-menu) _menu=yes ;;
1278 --disable-menu) _menu=no ;;
1280 --enable-qtx) _qtx=yes ;;
1281 --disable-qtx) _qtx=no ;;
1283 --enable-coreaudio) _coreaudio=yes ;;
1284 --disable-coreaudio) _coreaudio=no ;;
1285 --enable-corevideo) _corevideo=yes ;;
1286 --disable-corevideo) _corevideo=no ;;
1287 --enable-quartz) _quartz=yes ;;
1288 --disable-quartz) _quartz=no ;;
1289 --enable-macosx-finder) _macosx_finder=yes ;;
1290 --disable-macosx-finder) _macosx_finder=no ;;
1291 --enable-macosx-bundle) _macosx_bundle=yes ;;
1292 --disable-macosx-bundle) _macosx_bundle=no ;;
1294 --enable-maemo) _maemo=yes ;;
1295 --disable-maemo) _maemo=no ;;
1297 --enable-sortsub) _sortsub=yes ;;
1298 --disable-sortsub) _sortsub=no ;;
1300 --enable-crash-debug) _crash_debug=yes ;;
1301 --disable-crash-debug) _crash_debug=no ;;
1302 --enable-sighandler) _sighandler=yes ;;
1303 --disable-sighandler) _sighandler=no ;;
1304 --enable-win32dll) _win32dll=yes ;;
1305 --disable-win32dll) _win32dll=no ;;
1307 --enable-sse) _sse=yes ;;
1308 --disable-sse) _sse=no ;;
1309 --enable-sse2) _sse2=yes ;;
1310 --disable-sse2) _sse2=no ;;
1311 --enable-ssse3) _ssse3=yes ;;
1312 --disable-ssse3) _ssse3=no ;;
1313 --enable-mmxext) _mmxext=yes ;;
1314 --disable-mmxext) _mmxext=no ;;
1315 --enable-3dnow) _3dnow=yes ;;
1316 --disable-3dnow) _3dnow=no _3dnowext=no ;;
1317 --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1318 --disable-3dnowext) _3dnowext=no ;;
1319 --enable-cmov) _cmov=yes ;;
1320 --disable-cmov) _cmov=no ;;
1321 --enable-fast-cmov) _fast_cmov=yes ;;
1322 --disable-fast-cmov) _fast_cmov=no ;;
1323 --enable-fast-clz) _fast_clz=yes ;;
1324 --disable-fast-clz) _fast_clz=no ;;
1325 --enable-altivec) _altivec=yes ;;
1326 --disable-altivec) _altivec=no ;;
1327 --enable-armv5te) _armv5te=yes ;;
1328 --disable-armv5te) _armv5te=no ;;
1329 --enable-armv6) _armv6=yes ;;
1330 --disable-armv6) _armv6=no ;;
1331 --enable-armv6t2) _armv6t2=yes ;;
1332 --disable-armv6t2) _armv6t2=no ;;
1333 --enable-armvfp) _armvfp=yes ;;
1334 --disable-armvfp) _armvfp=no ;;
1335 --enable-neon) neon=yes ;;
1336 --disable-neon) neon=no ;;
1337 --enable-iwmmxt) _iwmmxt=yes ;;
1338 --disable-iwmmxt) _iwmmxt=no ;;
1339 --enable-mmx) _mmx=yes ;;
1340 --disable-mmx) # 3Dnow! and MMX2 require MMX
1341 _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1344 echo "Unknown parameter: $ac_option"
1345 exit 1
1348 esac
1349 done
1351 # Atmos: moved this here, to be correct, if --prefix is specified
1352 test -z "$_bindir" && _bindir="$_prefix/bin"
1353 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1354 test -z "$_mandir" && _mandir="$_prefix/share/man"
1355 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1356 test -z "$_libdir" && _libdir="$_prefix/lib"
1358 # Determine our OS name and CPU architecture
1359 if test -z "$_target" ; then
1360 # OS name
1361 system_name=$(uname -s 2>&1)
1362 case "$system_name" in
1363 Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|BeOS|MorphOS|AIX|AmigaOS)
1365 Haiku)
1366 system_name=BeOS
1368 IRIX*)
1369 system_name=IRIX
1371 GNU/kFreeBSD)
1372 system_name=FreeBSD
1374 HP-UX*)
1375 system_name=HP-UX
1377 [cC][yY][gG][wW][iI][nN]*)
1378 system_name=CYGWIN
1380 MINGW32*)
1381 system_name=MINGW32
1383 OS/2*)
1384 system_name=OS/2
1387 system_name="$system_name-UNKNOWN"
1389 esac
1392 # host's CPU/instruction set
1393 host_arch=$(uname -p 2>&1)
1394 case "$host_arch" in
1395 i386|sparc|ppc|alpha|arm|mips|vax)
1397 powerpc) # Darwin returns 'powerpc'
1398 host_arch=ppc
1400 *) # uname -p on Linux returns 'unknown' for the processor type,
1401 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
1403 # Maybe uname -m (machine hardware name) returns something we
1404 # recognize.
1406 # x86/x86pc is used by QNX
1407 case "$(uname -m 2>&1)" in
1408 x86_64|amd64|i[3-9]86*|x86|x86pc|k5|k6|k6_2|k6_3|k6-2|k6-3|pentium*|athlon*|i586_i686|i586-i686|BePC) host_arch=i386 ;;
1409 ia64) host_arch=ia64 ;;
1410 macppc|ppc) host_arch=ppc ;;
1411 ppc64) host_arch=ppc64 ;;
1412 alpha) host_arch=alpha ;;
1413 sparc) host_arch=sparc ;;
1414 sparc64) host_arch=sparc64 ;;
1415 parisc*|hppa*|9000*) host_arch=hppa ;;
1416 arm*|zaurus|cats) host_arch=arm ;;
1417 sh3|sh4|sh4a) host_arch=sh ;;
1418 s390) host_arch=s390 ;;
1419 s390x) host_arch=s390x ;;
1420 *mips*) host_arch=mips ;;
1421 vax) host_arch=vax ;;
1422 xtensa*) host_arch=xtensa ;;
1423 *) host_arch=UNKNOWN ;;
1424 esac
1426 esac
1427 else # if test -z "$_target"
1428 system_name=$(echo $_target | cut -d '-' -f 2)
1429 case "$(echo $system_name | tr A-Z a-z)" in
1430 linux) system_name=Linux ;;
1431 freebsd) system_name=FreeBSD ;;
1432 gnu/kfreebsd) system_name=FreeBSD ;;
1433 netbsd) system_name=NetBSD ;;
1434 bsd/os) system_name=BSD/OS ;;
1435 openbsd) system_name=OpenBSD ;;
1436 dragonfly) system_name=DragonFly ;;
1437 sunos) system_name=SunOS ;;
1438 qnx) system_name=QNX ;;
1439 morphos) system_name=MorphOS ;;
1440 amigaos) system_name=AmigaOS ;;
1441 mingw32*) system_name=MINGW32 ;;
1442 esac
1443 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1444 host_arch=$(echo $_target | cut -d '-' -f 1)
1445 if test $(echo $host_arch) != "x86_64" ; then
1446 host_arch=$(echo $host_arch | tr '_' '-')
1450 extra_cflags="-I. $extra_cflags"
1451 _timer=timer-linux.c
1452 _getch=getch2.c
1453 if freebsd ; then
1454 extra_ldflags="$extra_ldflags -L/usr/local/lib"
1455 extra_cflags="$extra_cflags -I/usr/local/include"
1458 if netbsd || dragonfly ; then
1459 extra_ldflags="$extra_ldflags -L/usr/pkg/lib"
1460 extra_cflags="$extra_cflags -I/usr/pkg/include"
1463 if darwin; then
1464 extra_cflags="-mdynamic-no-pic -falign-loops=16 -shared-libgcc $extra_cflags"
1465 _timer=timer-darwin.c
1468 if aix ; then
1469 extra_ldflags="$extra_ldflags -lC"
1472 if irix ; then
1473 _ranlib='ar -r'
1474 elif linux ; then
1475 _ranlib='true'
1478 if win32 ; then
1479 _exesuf=".exe"
1480 extra_cflags="$extra_cflags -fno-common"
1481 # -lwinmm is always needed for osdep/timer-win2.c
1482 extra_ldflags="$extra_ldflags -lwinmm"
1483 _pe_executable=yes
1484 _timer=timer-win2.c
1485 _priority=yes
1486 def_dos_paths="#define HAVE_DOS_PATHS 1"
1487 def_priority="#define CONFIG_PRIORITY 1"
1490 if mingw32 ; then
1491 _getch=getch2-win.c
1492 _need_shmem=no
1495 if amigaos ; then
1496 _select=no
1497 _sighandler=no
1498 _stream_cache=no
1499 def_stream_cache="#undef CONFIG_STREAM_CACHE"
1500 extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1503 if qnx ; then
1504 extra_ldflags="$extra_ldflags -lph"
1507 if os2 ; then
1508 _exesuf=".exe"
1509 _getch=getch2-os2.c
1510 _need_shmem=no
1511 _priority=yes
1512 def_dos_paths="#define HAVE_DOS_PATHS 1"
1513 def_priority="#define CONFIG_PRIORITY 1"
1516 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1517 test "$I" && break
1518 done
1521 TMPLOG="configure.log"
1522 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
1523 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
1524 TMPEXE="$I/mplayer-conf-$RANDOM-$$$_exesuf"
1525 TMPH="$I/mplayer-conf-$RANDOM-$$.h"
1526 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
1528 rm -f "$TMPLOG"
1529 echo configuration: $_configuration > "$TMPLOG"
1530 echo >> "$TMPLOG"
1533 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1534 die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1538 # Checking CC version...
1539 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1540 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1541 echocheck "$_cc version"
1542 cc_vendor=intel
1543 cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1544 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1545 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1546 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1547 # TODO verify older icc/ecc compatibility
1548 case $cc_version in
1550 cc_version="v. ?.??, bad"
1551 cc_fail=yes
1553 10.1|11.0|11.1)
1554 cc_version="$cc_version, ok"
1557 cc_version="$cc_version, bad"
1558 cc_fail=yes
1560 esac
1561 echores "$cc_version"
1562 else
1563 for _cc in "$_cc" gcc cc ; do
1564 cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1565 if test "$cc_name_tmp" = "gcc"; then
1566 cc_name=$cc_name_tmp
1567 echocheck "$_cc version"
1568 cc_vendor=gnu
1569 cc_version=$($_cc -dumpversion 2>&1)
1570 case $cc_version in
1571 2.96*)
1572 cc_fail=yes
1575 _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1576 _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1577 _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1579 esac
1580 echores "$cc_version"
1581 break
1583 cc_name_tmp=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 2,3)
1584 if test "$cc_name_tmp" = "Sun C"; then
1585 echocheck "$_cc version"
1586 cc_vendor=sun
1587 cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 4)
1588 res_comment="experimental support only"
1589 echores "Sun C $cc_version"
1590 break
1592 done
1593 fi # icc
1594 test "$cc_fail" = yes && die "unsupported compiler version"
1596 if test -z "$_target" && x86 ; then
1597 cat > $TMPC << EOF
1598 int main(void) {
1599 int test[(int)sizeof(char *)-7];
1600 return 0;
1603 cc_check && host_arch=x86_64 || host_arch=i386
1606 echo "Detected operating system: $system_name"
1607 echo "Detected host architecture: $host_arch"
1609 echocheck "host cc"
1610 test "$_host_cc" || _host_cc=$_cc
1611 echores $_host_cc
1613 echocheck "cross compilation"
1614 if test $_cross_compile = auto ; then
1615 cat > $TMPC << EOF
1616 int main(void) { return 0; }
1618 _cross_compile=yes
1619 cc_check && "$TMPEXE" && _cross_compile=no
1621 echores $_cross_compile
1623 if test $_cross_compile = yes; then
1624 tmp_run() {
1625 return 0
1629 # ---
1631 # now that we know what compiler should be used for compilation, try to find
1632 # out which assembler is used by the $_cc compiler
1633 if test "$_as" = auto ; then
1634 _as=$($_cc -print-prog-name=as)
1635 test -z "$_as" && _as=as
1638 if test "$_nm" = auto ; then
1639 _nm=$($_cc -print-prog-name=nm)
1640 test -z "$_nm" && _nm=nm
1643 # XXX: this should be ok..
1644 _cpuinfo="echo"
1646 if test "$_runtime_cpudetection" = no ; then
1648 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1649 # FIXME: Remove the cygwin check once AMD CPUs are supported
1650 if test -r /proc/cpuinfo && ! cygwin; then
1651 # Linux with /proc mounted, extract CPU information from it
1652 _cpuinfo="cat /proc/cpuinfo"
1653 elif test -r /compat/linux/proc/cpuinfo && ! x86 ; then
1654 # FreeBSD with Linux emulation /proc mounted,
1655 # extract CPU information from it
1656 # Don't use it on x86 though, it never reports 3Dnow
1657 _cpuinfo="cat /compat/linux/proc/cpuinfo"
1658 elif darwin && ! x86 ; then
1659 # use hostinfo on Darwin
1660 _cpuinfo="hostinfo"
1661 elif aix; then
1662 # use 'lsattr' on AIX
1663 _cpuinfo="lsattr -E -l proc0 -a type"
1664 elif x86; then
1665 # all other OSes try to extract CPU information from a small helper
1666 # program cpuinfo instead
1667 $_cc -o cpuinfo$_exesuf cpuinfo.c
1668 _cpuinfo="./cpuinfo$_exesuf"
1671 if [ "$cc_vendor" = "gnu" ] && [ "$_cc_major" = 2 ] ; then
1672 test $_sse = auto && _sse=no
1673 test $_win32dll = auto && _win32dll=no
1674 ass_internal=no
1677 if x86 ; then
1678 # gather more CPU information
1679 pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1680 pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1681 pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1682 pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1683 pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1685 exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1687 pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1688 -e s/xmm/sse/ -e s/kni/sse/)
1690 for ext in $pparam ; do
1691 eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1692 done
1694 # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1695 test $_sse = kernel_check && _mmxext=kernel_check
1697 echocheck "CPU vendor"
1698 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1700 echocheck "CPU type"
1701 echores "$pname"
1704 fi # test "$_runtime_cpudetection" = no
1706 if x86 && test "$_runtime_cpudetection" = no ; then
1707 extcheck() {
1708 if test "$1" = kernel_check ; then
1709 echocheck "kernel support of $2"
1710 cat > $TMPC <<EOF
1711 #include <stdlib.h>
1712 #include <signal.h>
1713 void catch() { exit(1); }
1714 int main(void) {
1715 signal(SIGILL, catch);
1716 __asm__ volatile ("$3":::"memory"); return 0;
1720 if cc_check && tmp_run ; then
1721 eval _$2=yes
1722 echores "yes"
1723 _optimizing="$_optimizing $2"
1724 return 0
1725 else
1726 eval _$2=no
1727 echores "failed"
1728 echo "It seems that your kernel does not correctly support $2."
1729 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1730 return 1
1733 return 0
1736 extcheck $_mmx "mmx" "emms"
1737 extcheck $_mmxext "mmxext" "sfence"
1738 extcheck $_3dnow "3dnow" "femms"
1739 extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1740 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1741 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1742 extcheck $_ssse3 "ssse3" "pabsd %%xmm0, %%xmm0"
1743 extcheck $_cmov "cmov" "cmovb %%eax,%%ebx"
1745 echocheck "mtrr support"
1746 if test "$_mtrr" = kernel_check ; then
1747 _mtrr="yes"
1748 _optimizing="$_optimizing mtrr"
1750 echores "$_mtrr"
1752 if test "$_gcc3_ext" != ""; then
1753 # if we had to disable sse/sse2 because the active kernel does not
1754 # support this instruction set extension, we also have to tell
1755 # gcc3 to not generate sse/sse2 instructions for normal C code
1756 cat > $TMPC << EOF
1757 int main(void) { return 0; }
1759 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1765 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1766 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1767 def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 0'
1768 def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 0'
1769 arch_all='X86 IA64 SPARC ARM AVR32 SH4 PPC ALPHA MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC'
1770 subarch_all='X86_32 X86_64 PPC64'
1771 case "$host_arch" in
1772 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1773 arch='x86'
1774 subarch='x86_32'
1775 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1776 def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 1'
1777 def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 1'
1778 iproc=486
1779 proc=i486
1782 if test "$_runtime_cpudetection" = no ; then
1783 case "$pvendor" in
1784 AuthenticAMD)
1785 case "$pfamily" in
1786 3) proc=i386 iproc=386 ;;
1787 4) proc=i486 iproc=486 ;;
1788 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1789 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1790 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1791 proc=k6-3
1792 elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1793 proc=geode
1794 elif test "$pmodel" -ge 8; then
1795 proc=k6-2
1796 elif test "$pmodel" -ge 6; then
1797 proc=k6
1798 else
1799 proc=i586
1802 6) iproc=686
1803 # It's a bit difficult to determine the correct type of Family 6
1804 # AMD CPUs just from their signature. Instead, we check directly
1805 # whether it supports SSE.
1806 if test "$_sse" = yes; then
1807 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1808 proc=athlon-xp
1809 else
1810 # Again, gcc treats athlon and athlon-tbird similarly.
1811 proc=athlon
1814 15) iproc=686
1815 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
1816 # caught and remedied in the optimization tests below.
1817 proc=k8
1820 *) proc=amdfam10 iproc=686
1821 test $_fast_clz = "auto" && _fast_clz=yes
1823 esac
1825 GenuineIntel)
1826 case "$pfamily" in
1827 3) proc=i386 iproc=386 ;;
1828 4) proc=i486 iproc=486 ;;
1829 5) iproc=586
1830 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1831 proc=pentium-mmx # 4 is desktop, 8 is mobile
1832 else
1833 proc=i586
1836 6) iproc=686
1837 if test "$pmodel" -ge 15; then
1838 proc=core2
1839 elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1840 proc=pentium-m
1841 elif test "$pmodel" -ge 7; then
1842 proc=pentium3
1843 elif test "$pmodel" -ge 3; then
1844 proc=pentium2
1845 else
1846 proc=i686
1848 test $_fast_clz = "auto" && _fast_clz=yes
1850 15) iproc=686
1851 # A nocona in 32-bit mode has no more capabilities than a prescott.
1852 if test "$pmodel" -ge 3; then
1853 proc=prescott
1854 else
1855 proc=pentium4
1856 test $_fast_clz = "auto" && _fast_clz=yes
1858 test $_fast_cmov = "auto" && _fast_cmov=no
1860 *) proc=prescott iproc=686 ;;
1861 esac
1863 CentaurHauls)
1864 case "$pfamily" in
1865 5) iproc=586
1866 if test "$pmodel" -ge 8; then
1867 proc=winchip2
1868 elif test "$pmodel" -ge 4; then
1869 proc=winchip-c6
1870 else
1871 proc=i586
1874 6) iproc=686
1875 if test "$pmodel" -ge 9; then
1876 proc=c3-2
1877 else
1878 proc=c3
1879 iproc=586
1882 *) proc=i686 iproc=i686 ;;
1883 esac
1885 unknown)
1886 case "$pfamily" in
1887 3) proc=i386 iproc=386 ;;
1888 4) proc=i486 iproc=486 ;;
1889 *) proc=i586 iproc=586 ;;
1890 esac
1893 proc=i586 iproc=586 ;;
1894 esac
1895 test $_fast_clz = "auto" && _fast_clz=no
1896 fi # test "$_runtime_cpudetection" = no
1899 # check that gcc supports our CPU, if not, fall back to earlier ones
1900 # LGB: check -mcpu and -march swithing step by step with enabling
1901 # to fall back till 386.
1903 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1905 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
1906 cpuopt=-mtune
1907 else
1908 cpuopt=-mcpu
1911 echocheck "GCC & CPU optimization abilities"
1912 cat > $TMPC << EOF
1913 int main(void) { return 0; }
1915 if test "$_runtime_cpudetection" = no ; then
1916 if test $cc_vendor != "intel" ; then
1917 cc_check -march=native && proc=native
1919 if test "$proc" = "amdfam10"; then
1920 cc_check -march=$proc $cpuopt=$proc || proc=k8
1922 if test "$proc" = "k8"; then
1923 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1925 if test "$proc" = "athlon-xp"; then
1926 cc_check -march=$proc $cpuopt=$proc || proc=athlon
1928 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
1929 cc_check -march=$proc $cpuopt=$proc || proc=k6
1931 if test "$proc" = "k6" || test "$proc" = "c3"; then
1932 if ! cc_check -march=$proc $cpuopt=$proc; then
1933 if cc_check -march=i586 $cpuopt=i686; then
1934 proc=i586-i686
1935 else
1936 proc=i586
1940 if test "$proc" = "prescott" ; then
1941 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1943 if test "$proc" = "core2" ; then
1944 cc_check -march=$proc $cpuopt=$proc || proc=pentium-m
1946 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
1947 cc_check -march=$proc $cpuopt=$proc || proc=i686
1949 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
1950 cc_check -march=$proc $cpuopt=$proc || proc=i586
1952 if test "$proc" = "i586"; then
1953 cc_check -march=$proc $cpuopt=$proc || proc=i486
1955 if test "$proc" = "i486" ; then
1956 cc_check -march=$proc $cpuopt=$proc || proc=i386
1958 if test "$proc" = "i386" ; then
1959 cc_check -march=$proc $cpuopt=$proc || proc=error
1961 if test "$proc" = "error" ; then
1962 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1963 _mcpu=""
1964 _march=""
1965 _optimizing=""
1966 elif test "$proc" = "i586-i686"; then
1967 _march="-march=i586"
1968 _mcpu="$cpuopt=i686"
1969 _optimizing="$proc"
1970 else
1971 _march="-march=$proc"
1972 _mcpu="$cpuopt=$proc"
1973 _optimizing="$proc"
1975 else # if test "$_runtime_cpudetection" = no
1976 _mcpu="$cpuopt=generic"
1977 # at least i486 required, for bswap instruction
1978 _march="-march=i486"
1979 cc_check $_mcpu || _mcpu="$cpuopt=i686"
1980 cc_check $_mcpu || _mcpu=""
1981 cc_check $_march $_mcpu || _march=""
1984 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1985 ## autodetected mcpu/march parameters
1986 if test "$_target" ; then
1987 # TODO: it may be a good idea to check GCC and fall back in all cases
1988 if test "$host_arch" = "i586-i686"; then
1989 _march="-march=i586"
1990 _mcpu="$cpuopt=i686"
1991 else
1992 _march="-march=$host_arch"
1993 _mcpu="$cpuopt=$host_arch"
1996 proc="$host_arch"
1998 case "$proc" in
1999 i386) iproc=386 ;;
2000 i486) iproc=486 ;;
2001 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
2002 i686|athlon*|pentium*) iproc=686 ;;
2003 *) iproc=586 ;;
2004 esac
2007 if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
2008 _fast_cmov="yes"
2009 else
2010 _fast_cmov="no"
2012 test $_fast_clz = "auto" && _fast_clz=yes
2014 echores "$proc"
2017 ia64)
2018 arch='ia64'
2019 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2020 iproc='ia64'
2023 x86_64|amd64)
2024 arch='x86'
2025 subarch='x86_64'
2026 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2027 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2028 iproc='x86_64'
2030 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
2031 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
2032 cpuopt=-mtune
2033 else
2034 cpuopt=-mcpu
2036 if test "$_runtime_cpudetection" = no ; then
2037 case "$pvendor" in
2038 AuthenticAMD)
2039 case "$pfamily" in
2040 15) proc=k8
2041 test $_fast_clz = "auto" && _fast_clz=no
2043 *) proc=amdfam10;;
2044 esac
2046 GenuineIntel)
2047 case "$pfamily" in
2048 6) proc=core2;;
2050 # 64-bit prescotts exist, but as far as GCC is concerned they
2051 # have the same capabilities as a nocona.
2052 proc=nocona
2053 test $_fast_cmov = "auto" && _fast_cmov=no
2054 test $_fast_clz = "auto" && _fast_clz=no
2056 esac
2059 proc=error;;
2060 esac
2061 fi # test "$_runtime_cpudetection" = no
2063 echocheck "GCC & CPU optimization abilities"
2064 cat > $TMPC << EOF
2065 int main(void) { return 0; }
2067 # This is a stripped-down version of the i386 fallback.
2068 if test "$_runtime_cpudetection" = no ; then
2069 if test $cc_vendor != "intel" ; then
2070 cc_check -march=native && proc=native
2072 # --- AMD processors ---
2073 if test "$proc" = "k8"; then
2074 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
2076 # This will fail if gcc version < 3.3, which is ok because earlier
2077 # versions don't really support 64-bit on amd64.
2078 # Is this a valid assumption? -Corey
2079 if test "$proc" = "athlon-xp"; then
2080 cc_check -march=$proc $cpuopt=$proc || proc=error
2082 # --- Intel processors ---
2083 if test "$proc" = "core2"; then
2084 cc_check -march=$proc $cpuopt=$proc || proc=x86-64
2086 if test "$proc" = "x86-64"; then
2087 cc_check -march=$proc $cpuopt=$proc || proc=nocona
2089 if test "$proc" = "nocona"; then
2090 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
2092 if test "$proc" = "pentium4"; then
2093 cc_check -march=$proc $cpuopt=$proc || proc=error
2096 _march="-march=$proc"
2097 _mcpu="$cpuopt=$proc"
2098 if test "$proc" = "error" ; then
2099 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
2100 _mcpu=""
2101 _march=""
2103 else # if test "$_runtime_cpudetection" = no
2104 # x86-64 is an undocumented option, an intersection of k8 and nocona.
2105 _march="-march=x86-64"
2106 _mcpu="$cpuopt=generic"
2107 cc_check $_mcpu || _mcpu="x86-64"
2108 cc_check $_mcpu || _mcpu=""
2109 cc_check $_march $_mcpu || _march=""
2112 _optimizing="$proc"
2113 test $_fast_cmov = "auto" && _fast_cmov=yes
2114 test $_fast_clz = "auto" && _fast_clz=yes
2116 echores "$proc"
2119 sparc|sparc64)
2120 arch='sparc'
2121 iproc='sparc'
2122 if test "$host_arch" = "sparc64" ; then
2123 _vis='yes'
2124 proc='ultrasparc'
2125 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2126 elif sunos ; then
2127 echocheck "CPU type"
2128 karch=$(uname -m)
2129 case "$(echo $karch)" in
2130 sun4) proc=v7 ;;
2131 sun4c) proc=v7 ;;
2132 sun4d) proc=v8 ;;
2133 sun4m) proc=v8 ;;
2134 sun4u) proc=ultrasparc _vis='yes' ;;
2135 sun4v) proc=v9 ;;
2136 *) proc=v8 ;;
2137 esac
2138 echores "$proc"
2139 else
2140 proc=v8
2142 _mcpu="-mcpu=$proc"
2143 _optimizing="$proc"
2146 arm*)
2147 arch='arm'
2148 iproc='arm'
2151 avr32)
2152 arch='avr32'
2153 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2154 iproc='avr32'
2155 test $_fast_clz = "auto" && _fast_clz=yes
2158 sh|sh4)
2159 arch='sh4'
2160 iproc='sh4'
2163 ppc|ppc64|powerpc|powerpc64)
2164 arch='ppc'
2165 def_dcbzl='#define HAVE_DCBZL 0'
2166 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2167 def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 1'
2168 def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 1'
2169 iproc='ppc'
2171 if test "$host_arch" = "ppc64" -o "$host_arch" = "powerpc64" ; then
2172 subarch='ppc64'
2173 def_fast_64bit='#define HAVE_FAST_64BIT 1'
2175 echocheck "CPU type"
2176 case $system_name in
2177 Linux)
2178 proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2179 if test -n "$($_cpuinfo | grep altivec)"; then
2180 test $_altivec = auto && _altivec=yes
2183 Darwin)
2184 proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2185 if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2186 "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2187 test $_altivec = auto && _altivec=yes
2190 NetBSD)
2191 # only gcc 3.4 works reliably with AltiVec code under NetBSD
2192 case $cc_version in
2193 2*|3.0*|3.1*|3.2*|3.3*)
2196 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2197 test $_altivec = auto && _altivec=yes
2200 esac
2202 AIX)
2203 proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2205 esac
2206 if test "$_altivec" = yes; then
2207 echores "$proc altivec"
2208 else
2209 _altivec=no
2210 echores "$proc"
2213 echocheck "GCC & CPU optimization abilities"
2215 if test -n "$proc"; then
2216 case "$proc" in
2217 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2218 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2219 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2220 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2221 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2222 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2223 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
2224 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2225 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2226 *) ;;
2227 esac
2228 # gcc 3.1(.1) and up supports 7400 and 7450
2229 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2230 case "$proc" in
2231 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2232 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2233 *) ;;
2234 esac
2236 # gcc 3.2 and up supports 970
2237 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2238 case "$proc" in
2239 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2240 def_dcbzl='#define HAVE_DCBZL 1' ;;
2241 *) ;;
2242 esac
2244 # gcc 3.3 and up supports POWER4
2245 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2246 case "$proc" in
2247 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2248 *) ;;
2249 esac
2251 # gcc 3.4 and up supports 440*
2252 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2253 case "$proc" in
2254 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2255 440G* ) _march='-mcpu=440' _mcpu='-mtune=440' ;;
2256 *) ;;
2257 esac
2259 # gcc 4.0 and up supports POWER5
2260 if test "$_cc_major" -ge "4"; then
2261 case "$proc" in
2262 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2263 *) ;;
2264 esac
2268 if test -n "$_mcpu"; then
2269 _optimizing=$(echo $_mcpu | cut -c 8-)
2270 echores "$_optimizing"
2271 else
2272 echores "none"
2275 test $_fast_clz = "auto" && _fast_clz=yes
2279 alpha*)
2280 arch='alpha'
2281 iproc='alpha'
2283 echocheck "CPU type"
2284 cat > $TMPC << EOF
2285 int main(void) {
2286 unsigned long ver, mask;
2287 __asm__ ("implver %0" : "=r" (ver));
2288 __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2289 printf("%ld-%x\n", ver, ~mask);
2290 return 0;
2293 $_cc -o "$TMPEXE" "$TMPC"
2294 case $("$TMPEXE") in
2296 0-0) proc="ev4"; _mvi="0";;
2297 1-0) proc="ev5"; _mvi="0";;
2298 1-1) proc="ev56"; _mvi="0";;
2299 1-101) proc="pca56"; _mvi="1";;
2300 2-303) proc="ev6"; _mvi="1";;
2301 2-307) proc="ev67"; _mvi="1";;
2302 2-1307) proc="ev68"; _mvi="1";;
2303 esac
2304 echores "$proc"
2306 echocheck "GCC & CPU optimization abilities"
2307 if test "$proc" = "ev68" ; then
2308 cc_check -mcpu=$proc || proc=ev67
2310 if test "$proc" = "ev67" ; then
2311 cc_check -mcpu=$proc || proc=ev6
2313 _mcpu="-mcpu=$proc"
2314 echores "$proc"
2316 test $_fast_clz = "auto" && _fast_clz=yes
2318 _optimizing="$proc"
2321 mips)
2322 arch='mips'
2323 iproc='mips'
2325 if irix ; then
2326 echocheck "CPU type"
2327 proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2328 case "$(echo $proc)" in
2329 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2330 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2331 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2332 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2333 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2334 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2335 esac
2336 # gcc < 3.x does not support -mtune.
2337 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2338 _mcpu=''
2340 echores "$proc"
2343 test $_fast_clz = "auto" && _fast_clz=yes
2347 hppa)
2348 arch='pa_risc'
2349 iproc='PA-RISC'
2352 s390)
2353 arch='s390'
2354 iproc='390'
2357 s390x)
2358 arch='s390x'
2359 iproc='390x'
2362 vax)
2363 arch='vax'
2364 iproc='vax'
2367 xtensa)
2368 arch='xtensa'
2369 iproc='xtensa'
2372 generic)
2373 arch='generic'
2377 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2378 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2379 die "unsupported architecture $host_arch"
2381 esac # case "$host_arch" in
2383 if test "$_runtime_cpudetection" = yes ; then
2384 if x86 ; then
2385 test "$_cmov" != no && _cmov=yes
2386 x86_32 && _cmov=no
2387 test "$_mmx" != no && _mmx=yes
2388 test "$_3dnow" != no && _3dnow=yes
2389 test "$_3dnowext" != no && _3dnowext=yes
2390 test "$_mmxext" != no && _mmxext=yes
2391 test "$_sse" != no && _sse=yes
2392 test "$_sse2" != no && _sse2=yes
2393 test "$_ssse3" != no && _ssse3=yes
2394 test "$_mtrr" != no && _mtrr=yes
2396 if ppc; then
2397 _altivec=yes
2402 # endian testing
2403 echocheck "byte order"
2404 if test "$_big_endian" = auto ; then
2405 cat > $TMPC <<EOF
2406 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
2407 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
2408 int main(void) { return (int)ascii_name; }
2410 if cc_check ; then
2411 if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2412 _big_endian=yes
2413 else
2414 _big_endian=no
2416 else
2417 echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2420 if test "$_big_endian" = yes ; then
2421 _byte_order='big-endian'
2422 def_words_endian='#define WORDS_BIGENDIAN 1'
2423 def_bigendian='#define HAVE_BIGENDIAN 1'
2424 def_av_bigendian='#define AV_HAVE_BIGENDIAN 1'
2425 else
2426 _byte_order='little-endian'
2427 def_words_endian='#undef WORDS_BIGENDIAN'
2428 def_bigendian='#define HAVE_BIGENDIAN 0'
2429 def_av_bigendian='#define AV_HAVE_BIGENDIAN 0'
2431 echores "$_byte_order"
2434 echocheck "extern symbol prefix"
2435 cat > $TMPC << EOF
2436 int ff_extern;
2438 cc_check -c || die "Symbol mangling check failed."
2439 sym=$($_nm -P -g $TMPEXE)
2440 extern_prefix=${sym%%ff_extern*}
2441 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2442 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2443 echores $extern_prefix
2446 echocheck "assembler support of -pipe option"
2447 cat > $TMPC << EOF
2448 int main(void) { return 0; }
2450 # -I. helps to detect compilers that just misunderstand -pipe like Sun C
2451 cc_check -pipe -I. && _pipe="-pipe" && echores "yes" || echores "no"
2454 echocheck "compiler support of named assembler arguments"
2455 _named_asm_args=yes
2456 def_named_asm_args="#define NAMED_ASM_ARGS 1"
2457 if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 \
2458 -o "$_cc_major" -eq 3 -a "$_cc_minor" = 0 ; then
2459 _named_asm_args=no
2460 def_named_asm_args="#undef NAMED_ASM_ARGS"
2462 echores $_named_asm_args
2465 if darwin && test "$cc_vendor" = "gnu" ; then
2466 echocheck "GCC support of -mstackrealign"
2467 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2468 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2469 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2470 # wrong code with this flag, but this can be worked around by adding
2471 # -fno-unit-at-a-time as described in the blog post at
2472 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2473 cat > $TMPC << EOF
2474 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2475 int main(void) { return foo3(1,2,3) == 3 ? 0 : 1; }
2477 cc_check -O4 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2478 test -z "$cflags_stackrealign" && cc_check -O4 -mstackrealign -fno-unit-at-a-time \
2479 && tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2480 test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2481 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2484 # Checking for CFLAGS
2485 _install_strip="-s"
2486 if test "$_profile" != "" || test "$_debug" != "" ; then
2487 CFLAGS="-W -Wall -O2 $_march $_mcpu $_pipe $_debug $_profile"
2488 _install_strip=
2489 elif test -z "$CFLAGS" ; then
2490 if test "$cc_vendor" = "intel" ; then
2491 CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer -wd167 -wd556 -wd144"
2492 elif test "$cc_vendor" = "sun" ; then
2493 CFLAGS="-O2 $_march $_mcpu $_pipe -xc99 -xregs=frameptr"
2494 elif test "$cc_vendor" != "gnu" ; then
2495 CFLAGS="-O2 $_march $_mcpu $_pipe"
2496 else
2497 CFLAGS="-Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2498 extra_ldflags="$extra_ldflags -ffast-math"
2500 else
2501 _warn_CFLAGS=yes
2504 cat > $TMPC << EOF
2505 int main(void) { return 0; }
2507 if test "$cc_vendor" = "gnu" ; then
2508 cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
2509 cc_check -Wdeclaration-after-statement && CFLAGS="-Wdeclaration-after-statement $CFLAGS"
2510 cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
2511 cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
2512 cc_check -Wundef && CFLAGS="-Wundef $CFLAGS"
2513 cc_check -Wmissing-prototypes && CFLAGS="-Wmissing-prototypes $CFLAGS"
2514 cc_check -Wstrict-prototypes && CFLAGS="-Wstrict-prototypes $CFLAGS"
2515 else
2516 CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2519 cc_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2520 cc_check -MD -MP && CFLAGS="-MD -MP $CFLAGS"
2523 if test -n "$LDFLAGS" ; then
2524 extra_ldflags="$extra_ldflags $LDFLAGS"
2525 _warn_CFLAGS=yes
2526 elif test "$cc_vendor" = "intel" ; then
2527 extra_ldflags="$extra_ldflags -i-static"
2529 if test -n "$CPPFLAGS" ; then
2530 extra_cflags="$extra_cflags $CPPFLAGS"
2531 _warn_CFLAGS=yes
2536 if x86_32 ; then
2537 # Checking assembler (_as) compatibility...
2538 # Added workaround for older as that reads from stdin by default - atmos
2539 as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2540 echocheck "assembler ($_as $as_version)"
2542 _pref_as_version='2.9.1'
2543 echo 'nop' > $TMPS
2544 if test "$_mmx" = yes ; then
2545 echo 'emms' >> $TMPS
2547 if test "$_3dnow" = yes ; then
2548 _pref_as_version='2.10.1'
2549 echo 'femms' >> $TMPS
2551 if test "$_3dnowext" = yes ; then
2552 _pref_as_version='2.10.1'
2553 echo 'pswapd %mm0, %mm0' >> $TMPS
2555 if test "$_mmxext" = yes ; then
2556 _pref_as_version='2.10.1'
2557 echo 'movntq %mm0, (%eax)' >> $TMPS
2559 if test "$_sse" = yes ; then
2560 _pref_as_version='2.10.1'
2561 echo 'xorps %xmm0, %xmm0' >> $TMPS
2563 #if test "$_sse2" = yes ; then
2564 # _pref_as_version='2.11'
2565 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2567 if test "$_cmov" = yes ; then
2568 _pref_as_version='2.10.1'
2569 echo 'cmovb %eax, %ebx' >> $TMPS
2571 if test "$_ssse3" = yes ; then
2572 _pref_as_version='2.16.92'
2573 echo 'pabsd %xmm0, %xmm1' >> $TMPS
2575 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2577 if test "$as_verc_fail" != yes ; then
2578 echores "ok"
2579 else
2580 res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2581 echores "failed"
2582 die "obsolete binutils version"
2585 fi #if x86_32
2587 echocheck ".align is a power of two"
2588 if test "$_asmalign_pot" = auto ; then
2589 _asmalign_pot=no
2590 cat > $TMPC << EOF
2591 int main(void) { __asm__ (".align 3"); return 0; }
2593 cc_check && _asmalign_pot=yes
2595 if test "$_asmalign_pot" = "yes" ; then
2596 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2597 else
2598 def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2600 echores $_asmalign_pot
2602 if x86 ; then
2603 echocheck "10 assembler operands"
2604 ten_operands=no
2605 def_ten_operands='#define HAVE_TEN_OPERANDS 0'
2606 cat > $TMPC << EOF
2607 int main(void) {
2608 int x=0;
2609 __asm__ volatile(
2611 :"+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x), "+&rm"(x)
2613 return 0;
2616 cc_check && ten_operands=yes && def_ten_operands='#define HAVE_TEN_OPERANDS 1'
2617 echores $ten_operands
2619 echocheck "ebx availability"
2620 ebx_available=no
2621 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2622 cat > $TMPC << EOF
2623 int main(void) {
2624 int x;
2625 __asm__ volatile(
2626 "xor %0, %0"
2627 :"=b"(x)
2628 // just adding ebx to clobber list seems unreliable with some
2629 // compilers, e.g. Haiku's gcc 2.95
2631 // and the above check does not work for OSX 64 bit...
2632 __asm__ volatile("":::"%ebx");
2633 return 0;
2636 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2637 echores $ebx_available
2639 echocheck "PIC"
2640 pic=no
2641 cat > $TMPC << EOF
2642 int main(void) {
2643 #if !(defined(__PIC__) || defined(__pic__) || defined(PIC))
2644 #error PIC not enabled
2645 #endif
2646 return 0;
2649 cc_check && pic=yes && extra_cflags="$extra_cflags -DPIC"
2650 echores $pic
2652 echocheck "yasm"
2653 if test -z "$YASMFLAGS" ; then
2654 if darwin ; then
2655 x86_64 && objformat="macho64" || objformat="macho"
2656 elif win32 ; then
2657 objformat="win32"
2658 else
2659 objformat="elf"
2661 # currently tested for Linux x86, x86_64
2662 YASMFLAGS="-f $objformat"
2663 x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
2664 test "$pic" = "yes" && YASMFLAGS="$YASMFLAGS -DPIC"
2665 case "$objformat" in
2666 elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2667 *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
2668 esac
2669 else
2670 _warn_CFLAGS=yes
2673 echo "pabsw xmm0, xmm0" > $TMPS
2674 yasm_check || _yasm=""
2675 if test $_yasm ; then
2676 def_yasm='#define HAVE_YASM 1'
2677 have_yasm="yes"
2678 echores "$_yasm"
2679 else
2680 def_yasm='#define HAVE_YASM 0'
2681 have_yasm="no"
2682 echores "no"
2685 echocheck "bswap"
2686 def_bswap='#define HAVE_BSWAP 0'
2687 echo 'bswap %eax' > $TMPS
2688 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2689 echores "$bswap"
2690 fi #if x86
2693 #FIXME: This should happen before the check for CFLAGS..
2694 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2695 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2697 # check if AltiVec is supported by the compiler, and how to enable it
2698 echocheck "GCC AltiVec flags"
2699 cat > $TMPC << EOF
2700 int main(void) { return 0; }
2702 if $(cc_check -maltivec -mabi=altivec) ; then
2703 _altivec_gcc_flags="-maltivec -mabi=altivec"
2704 # check if <altivec.h> should be included
2705 cat > $TMPC << EOF
2706 #include <altivec.h>
2707 int main(void) { return 0; }
2709 if $(cc_check $_altivec_gcc_flags) ; then
2710 def_altivec_h='#define HAVE_ALTIVEC_H 1'
2711 inc_altivec_h='#include <altivec.h>'
2712 else
2713 cat > $TMPC << EOF
2714 int main(void) { return 0; }
2716 if $(cc_check -faltivec) ; then
2717 _altivec_gcc_flags="-faltivec"
2718 else
2719 _altivec=no
2720 _altivec_gcc_flags="none, AltiVec disabled"
2724 echores "$_altivec_gcc_flags"
2726 # check if the compiler supports braces for vector declarations
2727 cat > $TMPC << EOF
2728 $inc_altivec_h
2729 int main(void) { (vector int) {1}; return 0; }
2731 cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2733 # Disable runtime cpudetection if we cannot generate AltiVec code or
2734 # AltiVec is disabled by the user.
2735 test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2736 && _runtime_cpudetection=no
2738 # Show that we are optimizing for AltiVec (if enabled and supported).
2739 test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2740 && _optimizing="$_optimizing altivec"
2742 # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2743 test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2746 if ppc ; then
2747 def_xform_asm='#define HAVE_XFORM_ASM 0'
2748 xform_asm=no
2749 echocheck "XFORM ASM support"
2750 cat > $TMPC << EOF
2751 int main(void) { __asm__ volatile ("lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)); return 0; }
2753 cc_check && xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2754 echores "$xform_asm"
2757 if arm ; then
2758 echocheck "ARM pld instruction"
2759 cat > $TMPC << EOF
2760 int main(void) { __asm__ volatile ("pld [r0]"); return 0; }
2762 pld=no
2763 cc_check && pld=yes
2764 echores "$pld"
2766 echocheck "ARMv5TE (Enhanced DSP Extensions)"
2767 if test $_armv5te = "auto" ; then
2768 cat > $TMPC << EOF
2769 int main(void) { __asm__ volatile ("qadd r0, r0, r0"); return 0; }
2771 _armv5te=no
2772 cc_check && _armv5te=yes
2774 echores "$_armv5te"
2776 test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz=yes
2778 echocheck "ARMv6 (SIMD instructions)"
2779 if test $_armv6 = "auto" ; then
2780 cat > $TMPC << EOF
2781 int main(void) { __asm__ volatile ("sadd16 r0, r0, r0"); return 0; }
2783 _armv6=no
2784 cc_check && _armv6=yes
2786 echores "$_armv6"
2788 echocheck "ARMv6t2 (SIMD instructions)"
2789 if test $_armv6t2 = "auto" ; then
2790 cat > $TMPC << EOF
2791 int main(void) { __asm__ volatile ("movt r0, #0"); return 0; }
2793 _armv6t2=no
2794 cc_check && _armv6t2=yes
2796 echores "$_armv6"
2798 echocheck "ARM VFP"
2799 if test $_armvfp = "auto" ; then
2800 cat > $TMPC << EOF
2801 int main(void) { __asm__ volatile ("fadds s0, s0, s0"); return 0; }
2803 _armvfp=no
2804 cc_check && _armvfp=yes
2806 echores "$_armvfp"
2808 echocheck "ARM NEON"
2809 if test $neon = "auto" ; then
2810 cat > $TMPC << EOF
2811 int main(void) { __asm__ volatile ("vadd.i16 q0, q0, q0"); return 0; }
2813 neon=no
2814 cc_check && neon=yes
2816 echores "$neon"
2818 echocheck "iWMMXt (Intel XScale SIMD instructions)"
2819 if test $_iwmmxt = "auto" ; then
2820 cat > $TMPC << EOF
2821 int main(void) { __asm__ volatile ("wunpckelub wr6, wr4"); return 0; }
2823 _iwmmxt=no
2824 cc_check && _iwmmxt=yes
2826 echores "$_iwmmxt"
2829 cpuexts_all='ALTIVEC MMX MMX2 AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV FAST_CLZ PLD ARMV5TE ARMV6 ARMV6T2 ARMVFP NEON IWMMXT MMI VIS MVI'
2830 test "$_altivec" = yes && cpuexts="ALTIVEC $cpuexts"
2831 test "$_mmx" = yes && cpuexts="MMX $cpuexts"
2832 test "$_mmxext" = yes && cpuexts="MMX2 $cpuexts"
2833 test "$_3dnow" = yes && cpuexts="AMD3DNOW $cpuexts"
2834 test "$_3dnowext" = yes && cpuexts="AMD3DNOWEXT $cpuexts"
2835 test "$_sse" = yes && cpuexts="SSE $cpuexts"
2836 test "$_sse2" = yes && cpuexts="SSE2 $cpuexts"
2837 test "$_ssse3" = yes && cpuexts="SSSE3 $cpuexts"
2838 test "$_cmov" = yes && cpuexts="CMOV $cpuexts"
2839 test "$_fast_cmov" = yes && cpuexts="FAST_CMOV $cpuexts"
2840 test "$_fast_clz" = yes && cpuexts="FAST_CLZ $cpuexts"
2841 test "$pld" = yes && cpuexts="PLD $cpuexts"
2842 test "$_armv5te" = yes && cpuexts="ARMV5TE $cpuexts"
2843 test "$_armv6" = yes && cpuexts="ARMV6 $cpuexts"
2844 test "$_armv6t2" = yes && cpuexts="ARMV6T2 $cpuexts"
2845 test "$_armvfp" = yes && cpuexts="ARMVFP $cpuexts"
2846 test "$neon" = yes && cpuexts="NEON $cpuexts"
2847 test "$_iwmmxt" = yes && cpuexts="IWMMXT $cpuexts"
2848 test "$_vis" = yes && cpuexts="VIS $cpuexts"
2849 test "$_mvi" = yes && cpuexts="MVI $cpuexts"
2851 # Checking kernel version...
2852 if x86_32 && linux ; then
2853 _k_verc_problem=no
2854 kernel_version=$(uname -r 2>&1)
2855 echocheck "$system_name kernel version"
2856 case "$kernel_version" in
2857 '') kernel_version="?.??"; _k_verc_fail=yes;;
2858 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2859 _k_verc_problem=yes;;
2860 esac
2861 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2862 _k_verc_fail=yes
2864 if test "$_k_verc_fail" ; then
2865 echores "$kernel_version, fail"
2866 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2867 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2868 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2869 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2870 echo "2.2.x you must upgrade it to get SSE support!"
2871 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2872 else
2873 echores "$kernel_version, ok"
2877 ######################
2878 # MAIN TESTS GO HERE #
2879 ######################
2882 echocheck "-lposix"
2883 cat > $TMPC <<EOF
2884 int main(void) { return 0; }
2886 if cc_check -lposix ; then
2887 extra_ldflags="$extra_ldflags -lposix"
2888 echores "yes"
2889 else
2890 echores "no"
2893 echocheck "-lm"
2894 cat > $TMPC <<EOF
2895 int main(void) { return 0; }
2897 if cc_check -lm ; then
2898 _ld_lm="-lm"
2899 echores "yes"
2900 else
2901 _ld_lm=""
2902 echores "no"
2906 echocheck "langinfo"
2907 if test "$_langinfo" = auto ; then
2908 cat > $TMPC <<EOF
2909 #include <langinfo.h>
2910 int main(void) { nl_langinfo(CODESET); return 0; }
2912 _langinfo=no
2913 cc_check && _langinfo=yes
2915 if test "$_langinfo" = yes ; then
2916 def_langinfo='#define HAVE_LANGINFO 1'
2917 else
2918 def_langinfo='#undef HAVE_LANGINFO'
2920 echores "$_langinfo"
2923 echocheck "language"
2924 # Set preferred languages, "all" uses English as main language.
2925 test -z "$language" && language=$LINGUAS
2926 test -z "$language_doc" && language_doc=$language
2927 test -z "$language_man" && language_man=$language
2928 test -z "$language_msg" && language_msg=$language
2929 language_doc=$(echo $language_doc | tr , " ")
2930 language_man=$(echo $language_man | tr , " ")
2931 language_msg=$(echo $language_msg | tr , " ")
2933 test "$language_doc" = "all" && language_doc=$doc_lang_all
2934 test "$language_man" = "all" && language_man=$man_lang_all
2935 test "$language_msg" = "all" && language_msg=en
2937 # Prune non-existing translations from language lists.
2938 # Set message translation to the first available language.
2939 # Fall back on English.
2940 for lang in $language_doc ; do
2941 test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
2942 done
2943 language_doc=$tmp_language_doc
2944 test -z "$language_doc" && language_doc=en
2946 for lang in $language_man ; do
2947 test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
2948 done
2949 language_man=$tmp_language_man
2950 test -z "$language_man" && language_man=en
2952 for lang in $language_msg ; do
2953 test -f "help/help_mp-${lang}.h" && tmp_language_msg=$lang && break
2954 done
2955 language_msg=$tmp_language_msg
2956 test -z "$language_msg" && language_msg=en
2957 _mp_help="help/help_mp-${language_msg}.h"
2958 echores "messages: $language_msg - man pages: $language_man - documentation: $language_doc"
2961 echocheck "enable sighandler"
2962 if test "$_sighandler" = yes ; then
2963 def_sighandler='#define CONFIG_SIGHANDLER 1'
2964 else
2965 def_sighandler='#undef CONFIG_SIGHANDLER'
2967 echores "$_sighandler"
2969 echocheck "runtime cpudetection"
2970 if test "$_runtime_cpudetection" = yes ; then
2971 _optimizing="Runtime CPU-Detection enabled"
2972 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 1'
2973 else
2974 def_runtime_cpudetection='#define CONFIG_RUNTIME_CPUDETECT 0'
2976 echores "$_runtime_cpudetection"
2979 echocheck "restrict keyword"
2980 for restrict_keyword in restrict __restrict __restrict__ ; do
2981 echo "void foo(char * $restrict_keyword p); int main(void) { return 0; }" > $TMPC
2982 if cc_check; then
2983 def_restrict_keyword=$restrict_keyword
2984 break;
2986 done
2987 if [ -n "$def_restrict_keyword" ]; then
2988 echores "$def_restrict_keyword"
2989 else
2990 echores "none"
2992 # Avoid infinite recursion loop ("#define restrict restrict")
2993 if [ "$def_restrict_keyword" != "restrict" ]; then
2994 def_restrict_keyword="#define restrict $def_restrict_keyword"
2995 else
2996 def_restrict_keyword=""
3000 echocheck "__builtin_expect"
3001 # GCC branch prediction hint
3002 cat > $TMPC << EOF
3003 int foo(int a) {
3004 a = __builtin_expect(a, 10);
3005 return a == 10 ? 0 : 1;
3007 int main(void) { return foo(10) && foo(0); }
3009 _builtin_expect=no
3010 cc_check && _builtin_expect=yes
3011 if test "$_builtin_expect" = yes ; then
3012 def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
3013 else
3014 def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
3016 echores "$_builtin_expect"
3019 echocheck "kstat"
3020 cat > $TMPC << EOF
3021 #include <kstat.h>
3022 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
3024 _kstat=no
3025 cc_check -lkstat && _kstat=yes
3026 if test "$_kstat" = yes ; then
3027 def_kstat="#define HAVE_LIBKSTAT 1"
3028 extra_ldflags="$extra_ldflags -lkstat"
3029 else
3030 def_kstat="#undef HAVE_LIBKSTAT"
3032 echores "$_kstat"
3035 echocheck "posix4"
3036 # required for nanosleep on some systems
3037 cat > $TMPC << EOF
3038 #include <time.h>
3039 int main(void) { (void) nanosleep(0, 0); return 0; }
3041 _posix4=no
3042 cc_check -lposix4 && _posix4=yes
3043 if test "$_posix4" = yes ; then
3044 extra_ldflags="$extra_ldflags -lposix4"
3046 echores "$_posix4"
3048 for func in exp2 exp2f llrint llrintf log2 log2f lrint lrintf round roundf truncf; do
3049 echocheck $func
3050 cat > $TMPC << EOF
3051 #include <math.h>
3052 int main(void) { long (*foo)(float); foo = $func; (void)(*foo)(0.0); return 0; }
3054 eval _$func=no
3055 cc_check -D_ISOC99_SOURCE $_ld_lm && eval _$func=yes
3056 if eval test "x\$_$func" = "xyes"; then
3057 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 1\""
3058 echores yes
3059 else
3060 eval def_$func="\"#define HAVE_$(echo $func | tr '[a-z]' '[A-Z]') 0\""
3061 echores no
3063 done
3066 echocheck "mkstemp"
3067 cat > $TMPC << EOF
3068 #include <stdlib.h>
3069 int main(void) { char a; mkstemp(&a); return 0; }
3071 _mkstemp=no
3072 cc_check && _mkstemp=yes
3073 if test "$_mkstemp" = yes ; then
3074 def_mkstemp='#define HAVE_MKSTEMP 1'
3075 else
3076 def_mkstemp='#undef HAVE_MKSTEMP'
3078 echores "$_mkstemp"
3081 echocheck "nanosleep"
3082 # also check for nanosleep
3083 cat > $TMPC << EOF
3084 #include <time.h>
3085 int main(void) { (void) nanosleep(0, 0); return 0; }
3087 _nanosleep=no
3088 cc_check && _nanosleep=yes
3089 if test "$_nanosleep" = yes ; then
3090 def_nanosleep='#define HAVE_NANOSLEEP 1'
3091 else
3092 def_nanosleep='#undef HAVE_NANOSLEEP'
3094 echores "$_nanosleep"
3097 echocheck "socklib"
3098 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
3099 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
3100 cat > $TMPC << EOF
3101 #include <netdb.h>
3102 #include <sys/socket.h>
3103 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
3105 _socklib=no
3106 for _ld_tmp in "" "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
3107 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && _socklib=yes && break
3108 done
3109 test $_socklib = yes && test $_winsock2_h = auto && _winsock2_h=no
3110 if test $_winsock2_h = auto ; then
3111 _winsock2_h=no
3112 cat > $TMPC << EOF
3113 #include <winsock2.h>
3114 int main(void) { (void) gethostbyname(0); return 0; }
3116 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2_h=yes
3118 test "$_ld_sock" && res_comment="using $_ld_sock"
3119 echores "$_socklib"
3122 if test $_winsock2_h = yes ; then
3123 _ld_sock="-lws2_32"
3124 def_winsock2_h='#define HAVE_WINSOCK2_H 1'
3125 cc_check_winsock2_h='-DHAVE_WINSOCK2_H=1'
3126 else
3127 def_winsock2_h='#define HAVE_WINSOCK2_H 0'
3128 cc_check_winsock2_h='-DHAVE_WINSOCK2_H=0'
3132 echocheck "netdb.h, struct addrinfo"
3133 if test "$_struct_addrinfo" = auto; then
3134 _struct_addrinfo=no
3135 cat > $TMPC << EOF
3136 #if HAVE_WINSOCK2_H
3137 #include <winsock2.h>
3138 #include <ws2tcpip.h>
3139 #else
3140 #include <sys/types.h>
3141 #include <sys/socket.h>
3142 #include <netdb.h>
3143 #endif
3144 int main(void) { struct addrinfo ai; return 0; }
3146 cc_check $cc_check_winsock2_h && _struct_addrinfo=yes
3148 echores "$_struct_addrinfo"
3150 if test "$_struct_addrinfo" = yes; then
3151 def_addrinfo="#define HAVE_STRUCT_ADDRINFO 1"
3152 else
3153 def_addrinfo="#define HAVE_STRUCT_ADDRINFO 0"
3157 echocheck "netdb.h, getaddrinfo()"
3158 if test "$_getaddrinfo" = auto; then
3159 _getaddrinfo=no
3160 cat > $TMPC << EOF
3161 #if HAVE_WINSOCK2_H
3162 #include <winsock2.h>
3163 #else
3164 #include <sys/types.h>
3165 #include <sys/socket.h>
3166 #include <netdb.h>
3167 #endif
3168 int main(void) { (void) getaddrinfo(0, 0, 0, 0); return 0; }
3170 cc_check $cc_check_winsock2_h && _getaddrinfo=yes
3172 echores "$_getaddrinfo"
3174 if test "$_getaddrinfo" = yes; then
3175 def_getaddrinfo="#define HAVE_GETADDRINFO 1"
3176 else
3177 def_getaddrinfo="#define HAVE_GETADDRINFO 0"
3181 echocheck "sockaddr_storage"
3182 if test "$_struct_sockaddr_storage" = auto; then
3183 _struct_sockaddr_storage=no
3184 cat > $TMPC << EOF
3185 #if HAVE_WINSOCK2_H
3186 #include <winsock2.h>
3187 #else
3188 #include <sys/socket.h>
3189 #endif
3190 int main(void) { struct sockaddr_storage sas; return 0; }
3192 cc_check $cc_check_winsock2_h && _struct_sockaddr_storage=yes
3194 echores "$_struct_sockaddr_storage"
3196 if test "$_struct_sockaddr_storage" = yes; then
3197 def_sockaddr_storage="#define HAVE_STRUCT_SOCKADDR_STORAGE 1"
3198 else
3199 def_sockaddr_storage="#define HAVE_STRUCT_SOCKADDR_STORAGE 0"
3203 echocheck "struct ipv6_mreq"
3204 _struct_ipv6_mreq=no
3205 def_struct_ipv6_mreq="#define HAVE_STRUCT_IPV6_MREQ 0"
3206 for header in "netinet/in.h" "ws2tcpip.h" ; do
3207 cat > $TMPC << EOF
3208 #include <$header>
3209 int main(void) { struct ipv6_mreq mreq6; return 0; }
3211 cc_check && _struct_ipv6_mreq=yes && \
3212 def_struct_ipv6_mreq="#define HAVE_STRUCT_IPV6_MREQ 1" && break
3213 done
3214 echores "$_struct_ipv6_mreq"
3217 echocheck "struct sockaddr_in6"
3218 _struct_sockaddr_in6=no
3219 def_struct_sockaddr_in6="#define HAVE_STRUCT_SOCKADDR_IN6 0"
3220 for header in "netinet/in.h" "ws2tcpip.h" ; do
3221 cat > $TMPC << EOF
3222 #include <$header>
3223 int main(void) { struct sockaddr_in6 addr; return 0; }
3225 cc_check && _struct_sockaddr_in6=yes && \
3226 def_struct_sockaddr_in6="#define HAVE_STRUCT_SOCKADDR_IN6 1" && break
3227 done
3228 echores "$_struct_sockaddr_in6"
3231 echocheck "struct sockaddr sa_len"
3232 _struct_sockaddr_sa_len=no
3233 def_struct_sockaddr_sa_len="#define HAVE_STRUCT_SOCKADDR_SA_LEN 0"
3234 cat > $TMPC << EOF
3235 #if HAVE_WINSOCK2_H
3236 #include <winsock2.h>
3237 #else
3238 #include <sys/types.h>
3239 #include <sys/socket.h>
3240 #endif
3241 int main(void) { const void *p = &((struct sockaddr *)0)->sa_len; return 0; }
3243 cc_check $cc_check_winsock2_h && _struct_sockaddr_sa_len=yes && \
3244 def_struct_sockaddr_sa_len="#define HAVE_STRUCT_SOCKADDR_SA_LEN 1"
3245 echores "$_struct_sockaddr_sa_len"
3248 echocheck "arpa/inet.h"
3249 arpa_inet_h=no
3250 def_arpa_inet_h='#define HAVE_ARPA_INET_H 0'
3251 cat > $TMPC << EOF
3252 #include <arpa/inet.h>
3253 int main(void) { return 0; }
3255 cc_check && arpa_inet_h=yes && def_arpa_inet_h='#define HAVE_ARPA_INET_H 1'
3256 echores "$arpa_inet_h"
3259 echocheck "inet_pton()"
3260 def_inet_pton='#define HAVE_INET_PTON 0'
3261 inet_pton=no
3262 cat > $TMPC << EOF
3263 #include <sys/types.h>
3264 #include <sys/socket.h>
3265 #include <arpa/inet.h>
3266 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
3268 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3269 cc_check $_ld_tmp && inet_pton=yes && break
3270 done
3271 if test $inet_pton = yes ; then
3272 test "$_ld_tmp" && res_comment="using $_ld_tmp"
3273 def_inet_pton='#define HAVE_INET_PTON 1'
3275 echores "$inet_pton"
3278 echocheck "inet_aton()"
3279 def_inet_aton='#define HAVE_INET_ATON 0'
3280 inet_aton=no
3281 cat > $TMPC << EOF
3282 #include <sys/types.h>
3283 #include <sys/socket.h>
3284 #include <arpa/inet.h>
3285 int main(void) { (void) inet_aton(0, 0); return 0; }
3287 for _ld_tmp in "$_ld_sock" "$_ld_sock -lresolv" ; do
3288 cc_check $_ld_tmp && inet_aton=yes && break
3289 done
3290 if test $inet_aton = yes ; then
3291 test "$_ld_tmp" && res_comment="using $_ld_tmp"
3292 def_inet_aton='#define HAVE_INET_ATON 1'
3294 echores "$inet_aton"
3297 echocheck "socklen_t"
3298 _socklen_t=no
3299 for header in "sys/socket.h" "ws2tcpip.h" "sys/types.h" ; do
3300 cat > $TMPC << EOF
3301 #include <$header>
3302 int main(void) { socklen_t v = 0; return v; }
3304 cc_check && _socklen_t=yes && break
3305 done
3306 if test "$_socklen_t" = yes ; then
3307 def_socklen_t='#define HAVE_SOCKLEN_T 1'
3308 else
3309 def_socklen_t='#define HAVE_SOCKLEN_T 0'
3311 echores "$_socklen_t"
3314 echocheck "closesocket()"
3315 _closesocket=no
3316 cat > $TMPC << EOF
3317 #include <winsock2.h>
3318 int main(void) { closesocket(~0); return 0; }
3320 cc_check $_ld_sock && _closesocket=yes
3321 if test "$_closesocket" = yes ; then
3322 def_closesocket='#define HAVE_CLOSESOCKET 1'
3323 else
3324 def_closesocket='#define HAVE_CLOSESOCKET 0'
3326 echores "$_closesocket"
3329 echocheck "network"
3330 test $_winsock2_h = no && test $inet_pton = no &&
3331 test $inet_aton = no && _network=no
3332 if test "$_network" = yes ; then
3333 def_network='#define CONFIG_NETWORK 1'
3334 extra_ldflags="$extra_ldflags $_ld_sock"
3335 inputmodules="network $inputmodules"
3336 else
3337 noinputmodules="network $noinputmodules"
3338 def_network='#undef CONFIG_NETWORK'
3339 _ftp=no
3340 _libavprotocols=$(echo $_libavprotocols | sed -e s/GOPHER_PROTOCOL// -e s/HTTP_PROTOCOL// -e s/RTMP_PROTOCOL// -e s/RTP_PROTOCOL// -e s/TCP_PROTOCOL// -e s/UDP_PROTOCOL//)
3341 _libavdemuxers=$(echo $_libavdemuxers | sed -e s/RTSP_DEMUXER// -e s/SDP_DEMUXER//)
3343 echores "$_network"
3346 echocheck "inet6"
3347 if test "$_inet6" = auto ; then
3348 cat > $TMPC << EOF
3349 #include <sys/types.h>
3350 #if !defined(_WIN32) || defined(__CYGWIN__)
3351 #include <sys/socket.h>
3352 #include <netinet/in.h>
3353 #else
3354 #include <ws2tcpip.h>
3355 #endif
3356 int main(void) { struct sockaddr_in6 six; socket(AF_INET6, SOCK_STREAM, AF_INET6); return 0; }
3358 _inet6=no
3359 if cc_check $_ld_sock ; then
3360 _inet6=yes
3363 if test "$_inet6" = yes ; then
3364 def_inet6='#define HAVE_AF_INET6 1'
3365 else
3366 def_inet6='#undef HAVE_AF_INET6'
3368 echores "$_inet6"
3371 echocheck "gethostbyname2"
3372 if test "$_gethostbyname2" = auto ; then
3373 cat > $TMPC << EOF
3374 #include <sys/types.h>
3375 #include <sys/socket.h>
3376 #include <netdb.h>
3377 int main(void) { gethostbyname2("", AF_INET); return 0; }
3379 _gethostbyname2=no
3380 if cc_check ; then
3381 _gethostbyname2=yes
3384 if test "$_gethostbyname2" = yes ; then
3385 def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
3386 else
3387 def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
3389 echores "$_gethostbyname2"
3392 echocheck "inttypes.h (required)"
3393 cat > $TMPC << EOF
3394 #include <inttypes.h>
3395 int main(void) { return 0; }
3397 _inttypes=no
3398 cc_check && _inttypes=yes
3399 echores "$_inttypes"
3401 if test "$_inttypes" = no ; then
3402 echocheck "bitypes.h (inttypes.h predecessor)"
3403 cat > $TMPC << EOF
3404 #include <sys/bitypes.h>
3405 int main(void) { return 0; }
3407 cc_check && _inttypes=yes
3408 if test "$_inttypes" = yes ; then
3409 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."
3410 else
3411 die "Cannot find header either inttypes.h or bitypes.h. There is no chance for compilation to succeed."
3416 echocheck "int_fastXY_t in inttypes.h"
3417 cat > $TMPC << EOF
3418 #include <inttypes.h>
3419 int main(void) {
3420 volatile int_fast16_t v= 0;
3421 return v; }
3423 _fast_inttypes=no
3424 cc_check && _fast_inttypes=yes
3425 if test "$_fast_inttypes" = no ; then
3426 def_fast_inttypes='
3427 typedef signed char int_fast8_t;
3428 typedef signed int int_fast16_t;
3429 typedef signed int int_fast32_t;
3430 typedef signed long long int_fast64_t;
3431 typedef unsigned char uint_fast8_t;
3432 typedef unsigned int uint_fast16_t;
3433 typedef unsigned int uint_fast32_t;
3434 typedef unsigned long long uint_fast64_t;'
3436 echores "$_fast_inttypes"
3439 echocheck "malloc.h"
3440 cat > $TMPC << EOF
3441 #include <malloc.h>
3442 int main(void) { (void) malloc(0); return 0; }
3444 _malloc=no
3445 cc_check && _malloc=yes
3446 if test "$_malloc" = yes ; then
3447 def_malloc_h='#define HAVE_MALLOC_H 1'
3448 else
3449 def_malloc_h='#define HAVE_MALLOC_H 0'
3451 echores "$_malloc"
3454 echocheck "memalign()"
3455 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
3456 def_memalign_hack='#define CONFIG_MEMALIGN_HACK 0'
3457 cat > $TMPC << EOF
3458 #include <malloc.h>
3459 int main(void) { (void) memalign(64, sizeof(char)); return 0; }
3461 _memalign=no
3462 cc_check && _memalign=yes
3463 if test "$_memalign" = yes ; then
3464 def_memalign='#define HAVE_MEMALIGN 1'
3465 else
3466 def_memalign='#define HAVE_MEMALIGN 0'
3467 def_map_memalign='#define memalign(a,b) malloc(b)'
3468 darwin || def_memalign_hack='#define CONFIG_MEMALIGN_HACK 1'
3470 echores "$_memalign"
3473 echocheck "posix_memalign()"
3474 posix_memalign=no
3475 def_posix_memalign='#define HAVE_POSIX_MEMALIGN 0'
3476 cat > $TMPC << EOF
3477 #define _XOPEN_SOURCE 600
3478 #include <stdlib.h>
3479 int main(void) { posix_memalign(NULL, 0, 0); }
3481 cc_check && posix_memalign=yes && def_posix_memalign='#define HAVE_POSIX_MEMALIGN 1'
3482 echores "$posix_memalign"
3485 echocheck "alloca.h"
3486 cat > $TMPC << EOF
3487 #include <alloca.h>
3488 int main(void) { (void) alloca(0); return 0; }
3490 _alloca=no
3491 cc_check && _alloca=yes
3492 if cc_check ; then
3493 def_alloca_h='#define HAVE_ALLOCA_H 1'
3494 else
3495 def_alloca_h='#undef HAVE_ALLOCA_H'
3497 echores "$_alloca"
3500 echocheck "fastmemcpy"
3501 if test "$_fastmemcpy" = yes ; then
3502 def_fastmemcpy='#define CONFIG_FASTMEMCPY 1'
3503 else
3504 def_fastmemcpy='#undef CONFIG_FASTMEMCPY'
3506 echores "$_fastmemcpy"
3509 echocheck "hard-coded tables"
3510 if test "$hardcoded_tables" = yes ; then
3511 def_hardcoded_tables='#define CONFIG_HARDCODED_TABLES 1'
3512 mak_hardcoded_tables='CONFIG_HARDCODED_TABLES = yes'
3513 else
3514 def_hardcoded_tables='#define CONFIG_HARDCODED_TABLES 0'
3516 echores "$hardcoded_tables"
3519 echocheck "mman.h"
3520 cat > $TMPC << EOF
3521 #include <sys/types.h>
3522 #include <sys/mman.h>
3523 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
3525 _mman=no
3526 cc_check && _mman=yes
3527 if test "$_mman" = yes ; then
3528 def_mman_h='#define HAVE_SYS_MMAN_H 1'
3529 else
3530 def_mman_h='#undef HAVE_SYS_MMAN_H'
3531 os2 && _need_mmap=yes
3533 echores "$_mman"
3535 cat > $TMPC << EOF
3536 #include <sys/types.h>
3537 #include <sys/mman.h>
3538 int main(void) { void *p = MAP_FAILED; return 0; }
3540 _mman_has_map_failed=no
3541 cc_check && _mman_has_map_failed=yes
3542 if test "$_mman_has_map_failed" = yes ; then
3543 def_mman_has_map_failed=''
3544 else
3545 def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
3548 echocheck "dynamic loader"
3549 cat > $TMPC << EOF
3550 #include <stddef.h>
3551 #include <dlfcn.h>
3552 int main(void) { dlopen("", 0); dlclose(NULL); dlsym(NULL, ""); return 0; }
3554 _dl=no
3555 for _ld_tmp in "" "-ldl" ; do
3556 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
3557 done
3558 if test "$_dl" = yes ; then
3559 def_dl='#define HAVE_LIBDL 1'
3560 else
3561 def_dl='#undef HAVE_LIBDL'
3563 echores "$_dl"
3566 echocheck "dynamic a/v plugins support"
3567 if test "$_dl" = no ; then
3568 _dynamic_plugins=no
3570 if test "$_dynamic_plugins" = yes ; then
3571 def_dynamic_plugins='#define CONFIG_DYNAMIC_PLUGINS 1'
3572 else
3573 def_dynamic_plugins='#undef CONFIG_DYNAMIC_PLUGINS'
3575 echores "$_dynamic_plugins"
3578 def_threads='#define HAVE_THREADS 0'
3580 echocheck "pthread"
3581 if linux ; then
3582 THREAD_CFLAGS=-D_REENTRANT
3583 elif freebsd || netbsd || openbsd || bsdos ; then
3584 THREAD_CFLAGS=-D_THREAD_SAFE
3586 if test "$_pthreads" = auto ; then
3587 cat > $TMPC << EOF
3588 #include <pthread.h>
3589 void* func(void *arg) { return arg; }
3590 int main(void) { pthread_t tid; return pthread_create(&tid, 0, func, 0) == 0 ? 0 : 1; }
3592 _pthreads=no
3593 if ! hpux ; then
3594 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
3595 # for crosscompilation, we cannot execute the program, be happy if we can link statically
3596 cc_check $THREAD_CFLAGS $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
3597 done
3600 if test "$_pthreads" = yes ; then
3601 test $_ld_pthread && res_comment="using $_ld_pthread"
3602 def_pthreads='#define HAVE_PTHREADS 1'
3603 def_threads='#define HAVE_THREADS 1'
3604 extra_cflags="$extra_cflags $THREAD_CFLAGS"
3605 else
3606 res_comment="v4l, v4l2, ao_nas, win32 loader disabled"
3607 def_pthreads='#undef HAVE_PTHREADS'
3608 _nas=no ; _tv_v4l1=no ; _tv_v4l2=no
3609 mingw32 || _win32dll=no
3611 echores "$_pthreads"
3613 if cygwin ; then
3614 if test "$_pthreads" = yes ; then
3615 def_pthread_cache="#define PTHREAD_CACHE 1"
3616 else
3617 _stream_cache=no
3618 def_stream_cache="#undef CONFIG_STREAM_CACHE"
3622 echocheck "w32threads"
3623 if test "$_pthreads" = yes ; then
3624 res_comment="using pthread instead"
3625 _w32threads=no
3627 if test "$_w32threads" = auto ; then
3628 _w32threads=no
3629 mingw32 && _w32threads=yes
3631 test "$_w32threads" = yes && def_threads='#define HAVE_THREADS 1'
3632 echores "$_w32threads"
3634 echocheck "rpath"
3635 netbsd &&_rpath=yes
3636 if test "$_rpath" = yes ; then
3637 for I in $(echo $extra_ldflags | sed 's/-L//g') ; do
3638 tmp="$tmp $(echo $I | sed 's/.*/ -L& -Wl,-R&/')"
3639 done
3640 extra_ldflags=$tmp
3642 echores "$_rpath"
3644 echocheck "iconv"
3645 if test "$_iconv" = auto ; then
3646 cat > $TMPC << EOF
3647 #include <stdio.h>
3648 #include <unistd.h>
3649 #include <iconv.h>
3650 #define INBUFSIZE 1024
3651 #define OUTBUFSIZE 4096
3653 char inbuffer[INBUFSIZE];
3654 char outbuffer[OUTBUFSIZE];
3656 int main(void) {
3657 size_t numread;
3658 iconv_t icdsc;
3659 char *tocode="UTF-8";
3660 char *fromcode="cp1250";
3661 if ((icdsc = iconv_open(tocode, fromcode)) != (iconv_t)(-1)) {
3662 while ((numread = read(0, inbuffer, INBUFSIZE))) {
3663 char *iptr=inbuffer;
3664 char *optr=outbuffer;
3665 size_t inleft=numread;
3666 size_t outleft=OUTBUFSIZE;
3667 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
3668 != (size_t)(-1)) {
3669 write(1, outbuffer, OUTBUFSIZE - outleft);
3672 if (iconv_close(icdsc) == -1)
3675 return 0;
3678 _iconv=no
3679 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
3680 cc_check $_ld_lm $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
3681 _iconv=yes && break
3682 done
3684 if test "$_iconv" = yes ; then
3685 def_iconv='#define CONFIG_ICONV 1'
3686 else
3687 def_iconv='#undef CONFIG_ICONV'
3689 echores "$_iconv"
3692 echocheck "soundcard.h"
3693 _soundcard_h=no
3694 def_soundcard_h='#undef HAVE_SOUNDCARD_H'
3695 def_sys_soundcard_h='#undef HAVE_SYS_SOUNDCARD_H'
3696 for _soundcard_header in "sys/soundcard.h" "soundcard.h"; do
3697 cat > $TMPC << EOF
3698 #include <$_soundcard_header>
3699 int main(void) { return 0; }
3701 cc_check && _soundcard_h=yes && res_comment="$_soundcard_header" && break
3702 done
3704 if test "$_soundcard_h" = yes ; then
3705 if test $_soundcard_header = "sys/soundcard.h"; then
3706 def_sys_soundcard_h='#define HAVE_SYS_SOUNDCARD_H 1'
3707 else
3708 def_soundcard_h='#define HAVE_SOUNDCARD_H 1'
3711 echores "$_soundcard_h"
3714 echocheck "sys/dvdio.h"
3715 cat > $TMPC << EOF
3716 #include <unistd.h>
3717 #include <sys/dvdio.h>
3718 int main(void) { return 0; }
3720 _dvdio=no
3721 cc_check && _dvdio=yes
3722 if test "$_dvdio" = yes ; then
3723 def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
3724 else
3725 def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
3727 echores "$_dvdio"
3730 echocheck "sys/cdio.h"
3731 cat > $TMPC << EOF
3732 #include <unistd.h>
3733 #include <sys/cdio.h>
3734 int main(void) { return 0; }
3736 _cdio=no
3737 cc_check && _cdio=yes
3738 if test "$_cdio" = yes ; then
3739 def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3740 else
3741 def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3743 echores "$_cdio"
3746 echocheck "linux/cdrom.h"
3747 cat > $TMPC << EOF
3748 #include <sys/types.h>
3749 #include <linux/cdrom.h>
3750 int main(void) { return 0; }
3752 _cdrom=no
3753 cc_check && _cdrom=yes
3754 if test "$_cdrom" = yes ; then
3755 def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3756 else
3757 def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3759 echores "$_cdrom"
3762 echocheck "dvd.h"
3763 cat > $TMPC << EOF
3764 #include <dvd.h>
3765 int main(void) { return 0; }
3767 _dvd=no
3768 cc_check && _dvd=yes
3769 if test "$_dvd" = yes ; then
3770 def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3771 else
3772 def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3774 echores "$_dvd"
3777 if bsdos; then
3778 echocheck "BSDI dvd.h"
3779 cat > $TMPC << EOF
3780 #include <dvd.h>
3781 int main(void) { return 0; }
3783 _bsdi_dvd=no
3784 cc_check && _bsdi_dvd=yes
3785 if test "$_bsdi_dvd" = yes ; then
3786 def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3787 else
3788 def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3790 echores "$_bsdi_dvd"
3791 fi #if bsdos
3794 if hpux; then
3795 # also used by AIX, but AIX does not support VCD and/or libdvdread
3796 echocheck "HP-UX SCSI header"
3797 cat > $TMPC << EOF
3798 #include <sys/scsi.h>
3799 int main(void) { return 0; }
3801 _hpux_scsi_h=no
3802 cc_check && _hpux_scsi_h=yes
3803 if test "$_hpux_scsi_h" = yes ; then
3804 def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3805 else
3806 def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3808 echores "$_hpux_scsi_h"
3809 fi #if hpux
3812 if sunos; then
3813 echocheck "userspace SCSI headers (Solaris)"
3814 cat > $TMPC << EOF
3815 #include <unistd.h>
3816 #include <stropts.h>
3817 #include <sys/scsi/scsi_types.h>
3818 #include <sys/scsi/impl/uscsi.h>
3819 int main(void) { return 0; }
3821 _sol_scsi_h=no
3822 cc_check && _sol_scsi_h=yes
3823 if test "$_sol_scsi_h" = yes ; then
3824 def_sol_scsi_h='#define SOLARIS_USCSI 1'
3825 else
3826 def_sol_scsi_h='#undef SOLARIS_USCSI'
3828 echores "$_sol_scsi_h"
3829 fi #if sunos
3832 echocheck "termcap"
3833 if test "$_termcap" = auto ; then
3834 cat > $TMPC <<EOF
3835 #include <stddef.h>
3836 #include <term.h>
3837 int main(void) { tgetent(NULL, NULL); return 0; }
3839 _termcap=no
3840 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3841 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
3842 && _termcap=yes && break
3843 done
3845 if test "$_termcap" = yes ; then
3846 def_termcap='#define HAVE_TERMCAP 1'
3847 test $_ld_tmp && res_comment="using $_ld_tmp"
3848 else
3849 def_termcap='#undef HAVE_TERMCAP'
3851 echores "$_termcap"
3854 echocheck "termios"
3855 def_termios='#undef HAVE_TERMIOS'
3856 def_termios_h='#undef HAVE_TERMIOS_H'
3857 def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3858 if test "$_termios" = auto ; then
3859 _termios=no
3860 for _termios_header in "termios.h" "sys/termios.h"; do
3861 cat > $TMPC <<EOF
3862 #include <$_termios_header>
3863 int main(void) { return 0; }
3865 cc_check && _termios=yes && res_comment="using $_termios_header" && break
3866 done
3869 if test "$_termios" = yes ; then
3870 def_termios='#define HAVE_TERMIOS 1'
3871 if test "$_termios_header" = "termios.h" ; then
3872 def_termios_h='#define HAVE_TERMIOS_H 1'
3873 else
3874 def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3877 echores "$_termios"
3880 echocheck "shm"
3881 if test "$_shm" = auto ; then
3882 cat > $TMPC << EOF
3883 #include <sys/types.h>
3884 #include <sys/shm.h>
3885 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3887 _shm=no
3888 cc_check && _shm=yes
3890 if test "$_shm" = yes ; then
3891 def_shm='#define HAVE_SHM 1'
3892 else
3893 def_shm='#undef HAVE_SHM'
3895 echores "$_shm"
3898 echocheck "strsep()"
3899 cat > $TMPC << EOF
3900 #include <string.h>
3901 int main(void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3903 _strsep=no
3904 cc_check && _strsep=yes
3905 if test "$_strsep" = yes ; then
3906 def_strsep='#define HAVE_STRSEP 1'
3907 _need_strsep=no
3908 else
3909 def_strsep='#undef HAVE_STRSEP'
3910 _need_strsep=yes
3912 echores "$_strsep"
3915 echocheck "vsscanf()"
3916 cat > $TMPC << EOF
3917 #define _ISOC99_SOURCE
3918 #include <stdarg.h>
3919 #include <stdio.h>
3920 int main(void) { va_list ap; vsscanf("foo", "bar", ap); return 0; }
3922 _vsscanf=no
3923 cc_check && _vsscanf=yes
3924 if test "$_vsscanf" = yes ; then
3925 def_vsscanf='#define HAVE_VSSCANF 1'
3926 _need_vsscanf=no
3927 else
3928 def_vsscanf='#undef HAVE_VSSCANF'
3929 _need_vsscanf=yes
3931 echores "$_vsscanf"
3934 echocheck "swab()"
3935 cat > $TMPC << EOF
3936 #define _XOPEN_SOURCE 600
3937 #include <unistd.h>
3938 int main(void) { swab(0, 0, 0); return 0; }
3940 _swab=no
3941 cc_check && _swab=yes
3942 if test "$_swab" = yes ; then
3943 def_swab='#define HAVE_SWAB 1'
3944 _need_swab=no
3945 else
3946 def_swab='#undef HAVE_SWAB'
3947 _need_swab=yes
3949 echores "$_swab"
3951 echocheck "POSIX select()"
3952 cat > $TMPC << EOF
3953 #include <stdio.h>
3954 #include <stdlib.h>
3955 #include <sys/types.h>
3956 #include <string.h>
3957 #include <sys/time.h>
3958 #include <unistd.h>
3959 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3961 _posix_select=no
3962 def_posix_select='#undef HAVE_POSIX_SELECT'
3963 #select() of kLIBC (OS/2) supports socket only
3964 ! os2 && cc_check && _posix_select=yes \
3965 && def_posix_select='#define HAVE_POSIX_SELECT 1'
3966 echores "$_posix_select"
3969 echocheck "audio select()"
3970 if test "$_select" = no ; then
3971 def_select='#undef HAVE_AUDIO_SELECT'
3972 elif test "$_select" = yes ; then
3973 def_select='#define HAVE_AUDIO_SELECT 1'
3975 echores "$_select"
3978 echocheck "gettimeofday()"
3979 cat > $TMPC << EOF
3980 #include <stdio.h>
3981 #include <sys/time.h>
3982 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3984 _gettimeofday=no
3985 cc_check && _gettimeofday=yes
3986 if test "$_gettimeofday" = yes ; then
3987 def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3988 _need_gettimeofday=no
3989 else
3990 def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3991 _need_gettimeofday=yes
3993 echores "$_gettimeofday"
3996 echocheck "glob()"
3997 cat > $TMPC << EOF
3998 #include <stdio.h>
3999 #include <glob.h>
4000 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
4002 _glob=no
4003 cc_check && _glob=yes
4004 if test "$_glob" = yes ; then
4005 def_glob='#define HAVE_GLOB 1'
4006 _need_glob=no
4007 else
4008 def_glob='#undef HAVE_GLOB'
4009 _need_glob=yes
4011 echores "$_glob"
4014 echocheck "setenv()"
4015 cat > $TMPC << EOF
4016 #include <stdlib.h>
4017 int main(void) { setenv("","",0); return 0; }
4019 _setenv=no
4020 cc_check && _setenv=yes
4021 if test "$_setenv" = yes ; then
4022 def_setenv='#define HAVE_SETENV 1'
4023 _need_setenv=no
4024 else
4025 def_setenv='#undef HAVE_SETENV'
4026 _need_setenv=yes
4028 echores "$_setenv"
4031 echocheck "setmode()"
4032 _setmode=no
4033 def_setmode='#define HAVE_SETMODE 0'
4034 cat > $TMPC << EOF
4035 #include <io.h>
4036 int main(void) { setmode(0, 0); return 0; }
4038 cc_check && _setmode=yes && def_setmode='#define HAVE_SETMODE 1'
4039 echores "$_setmode"
4042 if sunos; then
4043 echocheck "sysi86()"
4044 cat > $TMPC << EOF
4045 #include <sys/sysi86.h>
4046 int main(void) { sysi86(0); return 0; }
4048 _sysi86=no
4049 cc_check && _sysi86=yes
4050 if test "$_sysi86" = yes ; then
4051 def_sysi86='#define HAVE_SYSI86 1'
4052 cat > $TMPC << EOF
4053 #include <sys/sysi86.h>
4054 int main(void) { int sysi86(int, void*); sysi86(0); return 0; }
4056 cc_check && def_sysi86_iv='#define HAVE_SYSI86_iv 1'
4057 else
4058 def_sysi86='#undef HAVE_SYSI86'
4060 echores "$_sysi86"
4061 fi #if sunos
4064 echocheck "sys/sysinfo.h"
4065 cat > $TMPC << EOF
4066 #include <sys/sysinfo.h>
4067 int main(void) {
4068 struct sysinfo s_info;
4069 sysinfo(&s_info);
4070 return 0;
4073 _sys_sysinfo=no
4074 cc_check && _sys_sysinfo=yes
4075 if test "$_sys_sysinfo" = yes ; then
4076 def_sys_sysinfo_h='#define HAVE_SYS_SYSINFO_H 1'
4077 else
4078 def_sys_sysinfo_h='#undef HAVE_SYS_SYSINFO_H'
4080 echores "$_sys_sysinfo"
4083 if darwin; then
4085 echocheck "Mac OS X Finder Support"
4086 def_macosx_finder='#undef CONFIG_MACOSX_FINDER'
4087 if test "$_macosx_finder" = yes ; then
4088 def_macosx_finder='#define CONFIG_MACOSX_FINDER 1'
4089 extra_ldflags="$extra_ldflags -framework Carbon"
4091 echores "$_macosx_finder"
4093 echocheck "Mac OS X Bundle file locations"
4094 def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
4095 test "$_macosx_bundle" = auto && _macosx_bundle=$_macosx_finder
4096 if test "$_macosx_bundle" = yes ; then
4097 def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
4098 extra_ldflags="$extra_ldflags -framework Carbon"
4100 echores "$_macosx_bundle"
4102 echocheck "Apple Remote"
4103 if test "$_apple_remote" = auto ; then
4104 _apple_remote=no
4105 cat > $TMPC <<EOF
4106 #include <stdio.h>
4107 #include <IOKit/IOCFPlugIn.h>
4108 int main(void) {
4109 io_iterator_t hidObjectIterator = (io_iterator_t)NULL;
4110 CFMutableDictionaryRef hidMatchDictionary;
4111 IOReturn ioReturnValue;
4113 // Set up a matching dictionary to search the I/O Registry by class.
4114 // name for all HID class devices
4115 hidMatchDictionary = IOServiceMatching("AppleIRController");
4117 // Now search I/O Registry for matching devices.
4118 ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault,
4119 hidMatchDictionary, &hidObjectIterator);
4121 // If search is unsuccessful, return nonzero.
4122 if (ioReturnValue != kIOReturnSuccess ||
4123 !IOIteratorIsValid(hidObjectIterator)) {
4124 return 1;
4126 return 0;
4129 cc_check -framework IOKit && tmp_run && _apple_remote=yes
4131 if test "$_apple_remote" = yes ; then
4132 def_apple_remote='#define CONFIG_APPLE_REMOTE 1'
4133 libs_mplayer="$libs_mplayer -framework IOKit -framework Cocoa"
4134 else
4135 def_apple_remote='#undef CONFIG_APPLE_REMOTE'
4137 echores "$_apple_remote"
4139 fi #if darwin
4141 if linux; then
4143 echocheck "Apple IR"
4144 if test "$_apple_ir" = auto ; then
4145 _apple_ir=no
4146 cat > $TMPC <<EOF
4147 #include <linux/types.h>
4148 #include <linux/input.h>
4149 int main(void) {
4150 struct input_event ev;
4151 struct input_id id;
4152 return 0;
4155 cc_check && _apple_ir=yes
4157 if test "$_apple_ir" = yes ; then
4158 def_apple_ir='#define CONFIG_APPLE_IR 1'
4159 else
4160 def_apple_ir='#undef CONFIG_APPLE_IR'
4162 echores "$_apple_ir"
4163 fi #if linux
4165 echocheck "pkg-config"
4166 _pkg_config=pkg-config
4167 if $($_pkg_config --version > /dev/null 2>&1); then
4168 if test "$_ld_static"; then
4169 _pkg_config="$_pkg_config --static"
4171 echores "yes"
4172 else
4173 _pkg_config=false
4174 echores "no"
4178 echocheck "Samba support (libsmbclient)"
4179 if test "$_smb" = yes; then
4180 extra_ldflags="$extra_ldflags -lsmbclient"
4182 if test "$_smb" = auto; then
4183 _smb=no
4184 cat > $TMPC << EOF
4185 #include <libsmbclient.h>
4186 int main(void) { smbc_opendir("smb://"); return 0; }
4188 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
4189 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && \
4190 _smb=yes && break
4191 done
4194 if test "$_smb" = yes; then
4195 def_smb="#define CONFIG_LIBSMBCLIENT 1"
4196 inputmodules="smb $inputmodules"
4197 else
4198 def_smb="#undef CONFIG_LIBSMBCLIENT"
4199 noinputmodules="smb $noinputmodules"
4201 echores "$_smb"
4204 #########
4205 # VIDEO #
4206 #########
4209 echocheck "tdfxfb"
4210 if test "$_tdfxfb" = yes ; then
4211 def_tdfxfb='#define CONFIG_TDFXFB 1'
4212 vomodules="tdfxfb $vomodules"
4213 else
4214 def_tdfxfb='#undef CONFIG_TDFXFB'
4215 novomodules="tdfxfb $novomodules"
4217 echores "$_tdfxfb"
4219 echocheck "s3fb"
4220 if test "$_s3fb" = yes ; then
4221 def_s3fb='#define CONFIG_S3FB 1'
4222 vomodules="s3fb $vomodules"
4223 else
4224 def_s3fb='#undef CONFIG_S3FB'
4225 novomodules="s3fb $novomodules"
4227 echores "$_s3fb"
4229 echocheck "wii"
4230 if test "$_wii" = yes ; then
4231 def_wii='#define CONFIG_WII 1'
4232 vomodules="wii $vomodules"
4233 else
4234 def_wii='#undef CONFIG_WII'
4235 novomodules="wii $novomodules"
4237 echores "$_wii"
4239 echocheck "tdfxvid"
4240 if test "$_tdfxvid" = yes ; then
4241 def_tdfxvid='#define CONFIG_TDFX_VID 1'
4242 vomodules="tdfx_vid $vomodules"
4243 else
4244 def_tdfxvid='#undef CONFIG_TDFX_VID'
4245 novomodules="tdfx_vid $novomodules"
4247 echores "$_tdfxvid"
4249 echocheck "xvr100"
4250 if test "$_xvr100" = auto ; then
4251 cat > $TMPC << EOF
4252 #include <unistd.h>
4253 #include <sys/fbio.h>
4254 #include <sys/visual_io.h>
4255 int main(void) {
4256 struct vis_identifier ident;
4257 struct fbgattr attr;
4258 ioctl(0, VIS_GETIDENTIFIER, &ident);
4259 ioctl(0, FBIOGATTR, &attr);
4260 return 0;
4263 _xvr100=no
4264 cc_check && _xvr100=yes
4266 if test "$_xvr100" = yes ; then
4267 def_xvr100='#define CONFIG_XVR100 1'
4268 vomodules="xvr100 $vomodules"
4269 else
4270 def_tdfxvid='#undef CONFIG_XVR100'
4271 novomodules="xvr100 $novomodules"
4273 echores "$_xvr100"
4275 echocheck "tga"
4276 if test "$_tga" = yes ; then
4277 def_tga='#define CONFIG_TGA 1'
4278 vomodules="tga $vomodules"
4279 else
4280 def_tga='#undef CONFIG_TGA'
4281 novomodules="tga $novomodules"
4283 echores "$_tga"
4286 echocheck "md5sum support"
4287 if test "$_md5sum" = yes; then
4288 def_md5sum="#define CONFIG_MD5SUM 1"
4289 vomodules="md5sum $vomodules"
4290 else
4291 def_md5sum="#undef CONFIG_MD5SUM"
4292 novomodules="md5sum $novomodules"
4294 echores "$_md5sum"
4297 echocheck "yuv4mpeg support"
4298 if test "$_yuv4mpeg" = yes; then
4299 def_yuv4mpeg="#define CONFIG_YUV4MPEG 1"
4300 vomodules="yuv4mpeg $vomodules"
4301 else
4302 def_yuv4mpeg="#undef CONFIG_YUV4MPEG"
4303 novomodules="yuv4mpeg $novomodules"
4305 echores "$_yuv4mpeg"
4308 echocheck "bl"
4309 if test "$_bl" = yes ; then
4310 def_bl='#define CONFIG_BL 1'
4311 vomodules="bl $vomodules"
4312 else
4313 def_bl='#undef CONFIG_BL'
4314 novomodules="bl $novomodules"
4316 echores "$_bl"
4319 echocheck "DirectFB"
4320 if test "$_directfb" = auto ; then
4321 _directfb=no
4322 cat > $TMPC <<EOF
4323 #include <directfb.h>
4324 int main(void) { DirectFBInit(0, 0); return 0; }
4326 for _inc_tmp in "" -I/usr/local/include/directfb \
4327 -I/usr/include/directfb -I/usr/local/include; do
4328 cc_check $_inc_tmp -ldirectfb && _directfb=yes && \
4329 extra_cflags="$extra_cflags $_inc_tmp" && break
4330 done
4333 dfb_version() {
4334 expr $1 \* 65536 + $2 \* 256 + $3
4337 if test "$_directfb" = yes; then
4338 cat > $TMPC << EOF
4339 #include <directfb_version.h>
4341 dfb_ver = DIRECTFB_MAJOR_VERSION.DIRECTFB_MINOR_VERSION.DIRECTFB_MICRO_VERSION
4344 if $_cc -E $TMPC $extra_cflags > "$TMPEXE"; then
4345 _directfb_version=$(sed -n 's/^dfb_ver[^0-9]*\(.*\)/\1/p' "$TMPEXE" | tr -d '()')
4346 _dfb_major=$(echo $_directfb_version | cut -d . -f 1)
4347 _dfb_minor=$(echo $_directfb_version | cut -d . -f 2)
4348 _dfb_micro=$(echo $_directfb_version | cut -d . -f 3)
4349 _dfb_version=$(dfb_version $_dfb_major $_dfb_minor $_dfb_micro)
4350 if test "$_dfb_version" -ge $(dfb_version 0 9 13); then
4351 def_directfb_version="#define DIRECTFBVERSION $_dfb_version"
4352 res_comment="$_directfb_version"
4353 test "$_dfb_version" -ge $(dfb_version 0 9 15) && _dfbmga=yes
4354 else
4355 def_directfb_version='#undef DIRECTFBVERSION'
4356 _directfb=no
4357 res_comment="version >=0.9.13 required"
4359 else
4360 _directfb=no
4361 res_comment="failed to get version"
4364 echores "$_directfb"
4366 if test "$_directfb" = yes ; then
4367 def_directfb='#define CONFIG_DIRECTFB 1'
4368 vomodules="directfb $vomodules"
4369 libs_mplayer="$libs_mplayer -ldirectfb"
4370 else
4371 def_directfb='#undef CONFIG_DIRECTFB'
4372 novomodules="directfb $novomodules"
4374 if test "$_dfbmga" = yes; then
4375 vomodules="dfbmga $vomodules"
4376 def_dfbmga='#define CONFIG_DFBMGA 1'
4377 else
4378 novomodules="dfbmga $novomodules"
4379 def_dfbmga='#undef CONFIG_DFBMGA'
4383 echocheck "X11 headers presence"
4384 _x11_headers="no"
4385 res_comment="check if the dev(el) packages are installed"
4386 for I in $(echo $extra_cflags | sed s/-I//g) /usr/include ; do
4387 if test -f "$I/X11/Xlib.h" ; then
4388 _x11_headers="yes"
4389 res_comment=""
4390 break
4392 done
4393 if test $_cross_compile = no; then
4394 for I in /usr/X11/include /usr/X11R7/include /usr/local/include /usr/X11R6/include \
4395 /usr/include/X11R6 /usr/openwin/include ; do
4396 if test -f "$I/X11/Xlib.h" ; then
4397 extra_cflags="$extra_cflags -I$I"
4398 _x11_headers="yes"
4399 res_comment="using $I"
4400 break
4402 done
4404 echores "$_x11_headers"
4407 echocheck "X11"
4408 if test "$_x11" = auto && test "$_x11_headers" = yes ; then
4409 cat > $TMPC <<EOF
4410 #include <X11/Xlib.h>
4411 #include <X11/Xutil.h>
4412 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
4414 for I in "" -L/usr/X11R7/lib -L/usr/local/lib -L/usr/X11R6/lib -L/usr/lib/X11R6 \
4415 -L/usr/X11/lib -L/usr/lib32 -L/usr/openwin/lib -L/usr/local/lib64 -L/usr/X11R6/lib64 \
4416 -L/usr/lib ; do
4417 if netbsd; then
4418 _ld_tmp="$I -lXext -lX11 $_ld_pthread -Wl,-R$(echo $I | sed s/^-L//)"
4419 else
4420 _ld_tmp="$I -lXext -lX11 $_ld_pthread"
4422 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" \
4423 && _x11=yes && break
4424 done
4426 if test "$_x11" = yes ; then
4427 def_x11='#define CONFIG_X11 1'
4428 vomodules="x11 xover $vomodules"
4429 else
4430 _x11=no
4431 def_x11='#undef CONFIG_X11'
4432 novomodules="x11 $novomodules"
4433 res_comment="check if the dev(el) packages are installed"
4434 # disable stuff that depends on X
4435 _xv=no ; _xvmc=no ; _xinerama=no ; _vm=no ; _xf86keysym=no ; _vdpau=no
4437 echores "$_x11"
4439 echocheck "Xss screensaver extensions"
4440 if test "$_xss" = auto ; then
4441 cat > $TMPC << EOF
4442 #include <X11/Xlib.h>
4443 #include <X11/extensions/scrnsaver.h>
4444 int main(void) { XScreenSaverSuspend(NULL, True); return 0; }
4446 _xss=no
4447 cc_check -lXss && _xss=yes
4449 if test "$_xss" = yes ; then
4450 def_xss='#define CONFIG_XSS 1'
4451 libs_mplayer="$libs_mplayer -lXss"
4452 else
4453 def_xss='#undef CONFIG_XSS'
4455 echores "$_xss"
4457 echocheck "DPMS"
4458 _xdpms3=no
4459 _xdpms4=no
4460 if test "$_x11" = yes ; then
4461 cat > $TMPC <<EOF
4462 #include <X11/Xmd.h>
4463 #include <X11/Xlib.h>
4464 #include <X11/Xutil.h>
4465 #include <X11/Xatom.h>
4466 #include <X11/extensions/dpms.h>
4467 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4469 cc_check -lXdpms && _xdpms3=yes
4470 cat > $TMPC <<EOF
4471 #include <X11/Xlib.h>
4472 #include <X11/extensions/dpms.h>
4473 int main(void) { (void) DPMSQueryExtension(0, 0, 0); return 0; }
4475 cc_check -lXext && _xdpms4=yes
4477 if test "$_xdpms4" = yes ; then
4478 def_xdpms='#define CONFIG_XDPMS 1'
4479 res_comment="using Xdpms 4"
4480 echores "yes"
4481 elif test "$_xdpms3" = yes ; then
4482 def_xdpms='#define CONFIG_XDPMS 1'
4483 libs_mplayer="$libs_mplayer -lXdpms"
4484 res_comment="using Xdpms 3"
4485 echores "yes"
4486 else
4487 def_xdpms='#undef CONFIG_XDPMS'
4488 echores "no"
4492 echocheck "Xv"
4493 if test "$_xv" = auto ; then
4494 cat > $TMPC <<EOF
4495 #include <X11/Xlib.h>
4496 #include <X11/extensions/Xvlib.h>
4497 int main(void) {
4498 (void) XvGetPortAttribute(0, 0, 0, 0);
4499 (void) XvQueryPortAttributes(0, 0, 0);
4500 return 0; }
4502 _xv=no
4503 cc_check -lXv && _xv=yes
4506 if test "$_xv" = yes ; then
4507 def_xv='#define CONFIG_XV 1'
4508 libs_mplayer="$libs_mplayer -lXv"
4509 vomodules="xv $vomodules"
4510 else
4511 def_xv='#undef CONFIG_XV'
4512 novomodules="xv $novomodules"
4514 echores "$_xv"
4517 echocheck "XvMC"
4518 if test "$_xv" = yes && test "$_xvmc" != no ; then
4519 _xvmc=no
4520 cat > $TMPC <<EOF
4521 #include <X11/Xlib.h>
4522 #include <X11/extensions/Xvlib.h>
4523 #include <X11/extensions/XvMClib.h>
4524 int main(void) {
4525 (void) XvMCQueryExtension(0,0,0);
4526 (void) XvMCCreateContext(0,0,0,0,0,0,0);
4527 return 0; }
4529 for _ld_tmp in $_xvmclib XvMCNVIDIA XvMCW I810XvMC ; do
4530 cc_check -lXvMC -l$_ld_tmp && _xvmc=yes && _xvmclib="$_ld_tmp" && break
4531 done
4533 if test "$_xvmc" = yes ; then
4534 def_xvmc='#define CONFIG_XVMC 1'
4535 libs_mplayer="$libs_mplayer -lXvMC -l$_xvmclib"
4536 vomodules="xvmc $vomodules"
4537 res_comment="using $_xvmclib"
4538 else
4539 def_xvmc='#define CONFIG_XVMC 0'
4540 novomodules="xvmc $novomodules"
4541 _libavdecoders=$(echo $_libavdecoders | sed -e s/MPEG_XVMC_DECODER//)
4543 echores "$_xvmc"
4546 echocheck "VDPAU"
4547 if test "$_vdpau" = auto ; then
4548 _vdpau=no
4549 if test "$_dl" = yes ; then
4550 cat > $TMPC <<EOF
4551 #include <vdpau/vdpau_x11.h>
4552 int main(void) {
4553 (void) vdp_device_create_x11(0, 0, 0, 0);
4554 return VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1; }
4556 cc_check -lvdpau && _vdpau=yes
4559 if test "$_vdpau" = yes ; then
4560 def_vdpau='#define CONFIG_VDPAU 1'
4561 libs_mplayer="$libs_mplayer -lvdpau"
4562 vomodules="vdpau $vomodules"
4563 else
4564 def_vdpau='#define CONFIG_VDPAU 0'
4565 novomodules="vdpau $novomodules"
4566 _libavdecoders=$(echo $_libavdecoders | sed -e s/MPEG_VDPAU_DECODER// -e s/MPEG1_VDPAU_DECODER// -e s/H264_VDPAU_DECODER// -e s/WMV3_VDPAU_DECODER// -e s/VC1_VDPAU_DECODER// -e s/MPEG4_VDPAU_DECODER//)
4568 echores "$_vdpau"
4571 echocheck "Xinerama"
4572 if test "$_xinerama" = auto ; then
4573 cat > $TMPC <<EOF
4574 #include <X11/Xlib.h>
4575 #include <X11/extensions/Xinerama.h>
4576 int main(void) { (void) XineramaIsActive(0); return 0; }
4578 _xinerama=no
4579 cc_check -lXinerama && _xinerama=yes
4582 if test "$_xinerama" = yes ; then
4583 def_xinerama='#define CONFIG_XINERAMA 1'
4584 libs_mplayer="$libs_mplayer -lXinerama"
4585 else
4586 def_xinerama='#undef CONFIG_XINERAMA'
4588 echores "$_xinerama"
4591 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
4592 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
4593 # named 'X extensions' or something similar.
4594 # This check may be useful for future mplayer versions (to change resolution)
4595 # If you run into problems, remove '-lXxf86vm'.
4596 echocheck "Xxf86vm"
4597 if test "$_vm" = auto ; then
4598 cat > $TMPC <<EOF
4599 #include <X11/Xlib.h>
4600 #include <X11/extensions/xf86vmode.h>
4601 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
4603 _vm=no
4604 cc_check -lXxf86vm && _vm=yes
4606 if test "$_vm" = yes ; then
4607 def_vm='#define CONFIG_XF86VM 1'
4608 libs_mplayer="$libs_mplayer -lXxf86vm"
4609 else
4610 def_vm='#undef CONFIG_XF86VM'
4612 echores "$_vm"
4614 # Check for the presence of special keycodes, like audio control buttons
4615 # that XFree86 might have. Used to be bundled with the xf86vm check, but
4616 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
4617 # have these new keycodes.
4618 echocheck "XF86keysym"
4619 if test "$_xf86keysym" = auto; then
4620 _xf86keysym=no
4621 cat > $TMPC <<EOF
4622 #include <X11/Xlib.h>
4623 #include <X11/XF86keysym.h>
4624 int main(void) { return XF86XK_AudioPause; }
4626 cc_check && _xf86keysym=yes
4628 if test "$_xf86keysym" = yes ; then
4629 def_xf86keysym='#define CONFIG_XF86XK 1'
4630 else
4631 def_xf86keysym='#undef CONFIG_XF86XK'
4633 echores "$_xf86keysym"
4635 echocheck "DGA"
4636 if test "$_dga2" = auto && test "$_x11" = yes ; then
4637 cat > $TMPC << EOF
4638 #include <X11/Xlib.h>
4639 #include <X11/extensions/xf86dga.h>
4640 int main(void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
4642 _dga2=no
4643 cc_check -lXxf86dga && _dga2=yes
4645 if test "$_dga1" = auto && test "$_dga2" = no && test "$_vm" = yes ; then
4646 cat > $TMPC << EOF
4647 #include <X11/Xlib.h>
4648 #include <X11/extensions/xf86dga.h>
4649 int main(void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
4651 _dga1=no
4652 cc_check -lXxf86dga -lXxf86vm && _dga1=yes
4655 _dga=no
4656 def_dga='#undef CONFIG_DGA'
4657 def_dga1='#undef CONFIG_DGA1'
4658 def_dga2='#undef CONFIG_DGA2'
4659 if test "$_dga1" = yes ; then
4660 _dga=yes
4661 def_dga1='#define CONFIG_DGA1 1'
4662 res_comment="using DGA 1.0"
4663 elif test "$_dga2" = yes ; then
4664 _dga=yes
4665 def_dga2='#define CONFIG_DGA2 1'
4666 res_comment="using DGA 2.0"
4668 if test "$_dga" = yes ; then
4669 def_dga='#define CONFIG_DGA 1'
4670 libs_mplayer="$libs_mplayer -lXxf86dga"
4671 vomodules="dga $vomodules"
4672 else
4673 novomodules="dga $novomodules"
4675 echores "$_dga"
4678 echocheck "3dfx"
4679 if test "$_3dfx" = yes && test "$_dga" = yes ; then
4680 def_3dfx='#define CONFIG_3DFX 1'
4681 vomodules="3dfx $vomodules"
4682 else
4683 def_3dfx='#undef CONFIG_3DFX'
4684 novomodules="3dfx $novomodules"
4686 echores "$_3dfx"
4689 echocheck "VIDIX"
4690 def_vidix='#undef CONFIG_VIDIX'
4691 def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
4692 _vidix_drv_cyberblade=no
4693 def_vidix_drv_ivtv='#undef CONFIG_VIDIX_DRV_IVTV'
4694 _vidix_drv_ivtv=no
4695 def_vidix_drv_mach64='#undef CONFIG_VIDIX_DRV_MACH64'
4696 _vidix_drv_mach64=no
4697 def_vidix_drv_mga='#undef CONFIG_VIDIX_DRV_MGA'
4698 _vidix_drv_mga=no
4699 def_vidix_drv_mga_crtc2='#undef CONFIG_VIDIX_DRV_MGA_CRTC2'
4700 _vidix_drv_mga_crtc2=no
4701 def_vidix_drv_nvidia='#undef CONFIG_VIDIX_DRV_NVIDIA'
4702 _vidix_drv_nvidia=no
4703 def_vidix_drv_pm2='#undef CONFIG_VIDIX_DRV_PM2'
4704 _vidix_drv_pm2=no
4705 def_vidix_drv_pm3='#undef CONFIG_VIDIX_DRV_PM3'
4706 _vidix_drv_pm3=no
4707 def_vidix_drv_radeon='#undef CONFIG_VIDIX_DRV_RADEON'
4708 _vidix_drv_radeon=no
4709 def_vidix_drv_rage128='#undef CONFIG_VIDIX_DRV_RAGE128'
4710 _vidix_drv_rage128=no
4711 def_vidix_drv_s3='#undef CONFIG_VIDIX_DRV_S3'
4712 _vidix_drv_s3=no
4713 def_vidix_drv_sh_veu='#undef CONFIG_VIDIX_DRV_SH_VEU'
4714 _vidix_drv_sh_veu=no
4715 def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
4716 _vidix_drv_sis=no
4717 def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
4718 _vidix_drv_unichrome=no
4719 if test "$_vidix" = auto ; then
4720 _vidix=no
4721 x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
4722 && _vidix=yes
4723 x86_64 && ! linux && _vidix=no
4724 (ppc || alpha) && linux && _vidix=yes
4726 echores "$_vidix"
4728 if test "$_vidix" = yes ; then
4729 def_vidix='#define CONFIG_VIDIX 1'
4730 vomodules="cvidix $vomodules"
4731 # FIXME: ivtv driver temporarily disabled until we have a proper test
4732 #test "$_vidix_drivers" || _vidix_drivers="cyberblade ivtv mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4733 test "$_vidix_drivers" || _vidix_drivers="cyberblade mach64 mga mga_crtc2 nvidia pm2 pm3 radeon rage128 s3 sh_veu sis unichrome"
4735 # some vidix drivers are architecture and os specific, discard them elsewhere
4736 x86 || _vidix_drivers=$(echo $_vidix_drivers | sed -e s/cyberblade// -e s/sis// -e s/unichrome// -e s/s3//)
4737 (test $host_arch = "sh" && linux) || _vidix_drivers=$(echo $_vidix_drivers | sed s/sh_veu//)
4739 for driver in $_vidix_drivers ; do
4740 uc_driver=$(echo $driver | tr '[a-z]' '[A-Z]')
4741 eval _vidix_drv_${driver}=yes
4742 eval def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
4743 done
4745 echocheck "VIDIX PCI device name database"
4746 echores "$_vidix_pcidb"
4747 if test "$_vidix_pcidb" = yes ; then
4748 _vidix_pcidb_val=1
4749 else
4750 _vidix_pcidb_val=0
4753 echocheck "VIDIX dhahelper support"
4754 test "$_dhahelper" = yes && cflags_dhahelper=-DCONFIG_DHAHELPER
4755 echores "$_dhahelper"
4757 echocheck "VIDIX svgalib_helper support"
4758 test "$_svgalib_helper" = yes && cflags_svgalib_helper=-DCONFIG_SVGAHELPER
4759 echores "$_svgalib_helper"
4761 else
4762 novomodules="cvidix $novomodules"
4765 if test "$_vidix" = yes && win32; then
4766 winvidix=yes
4767 vomodules="winvidix $vomodules"
4768 libs_mplayer="$libs_mplayer -lgdi32"
4769 else
4770 novomodules="winvidix $novomodules"
4772 if test "$_vidix" = yes && test "$_x11" = yes; then
4773 xvidix=yes
4774 vomodules="xvidix $vomodules"
4775 else
4776 novomodules="xvidix $novomodules"
4779 echocheck "/dev/mga_vid"
4780 if test "$_mga" = auto ; then
4781 _mga=no
4782 test -c /dev/mga_vid && _mga=yes
4784 if test "$_mga" = yes ; then
4785 def_mga='#define CONFIG_MGA 1'
4786 vomodules="mga $vomodules"
4787 else
4788 def_mga='#undef CONFIG_MGA'
4789 novomodules="mga $novomodules"
4791 echores "$_mga"
4793 echocheck "xmga"
4794 if test "$_xmga" = auto ; then
4795 _xmga=no
4796 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
4798 if test "$_xmga" = yes ; then
4799 def_xmga='#define CONFIG_XMGA 1'
4800 vomodules="xmga $vomodules"
4801 else
4802 def_xmga='#undef CONFIG_XMGA'
4803 novomodules="xmga $novomodules"
4805 echores "$_xmga"
4808 echocheck "GGI"
4809 if test "$_ggi" = auto ; then
4810 cat > $TMPC << EOF
4811 #include <ggi/ggi.h>
4812 int main(void) { ggiInit(); return 0; }
4814 _ggi=no
4815 cc_check -lggi && _ggi=yes
4817 if test "$_ggi" = yes ; then
4818 def_ggi='#define CONFIG_GGI 1'
4819 libs_mplayer="$libs_mplayer -lggi"
4820 vomodules="ggi $vomodules"
4821 else
4822 def_ggi='#undef CONFIG_GGI'
4823 novomodules="ggi $novomodules"
4825 echores "$_ggi"
4827 echocheck "GGI extension: libggiwmh"
4828 if test "$_ggiwmh" = auto ; then
4829 _ggiwmh=no
4830 cat > $TMPC << EOF
4831 #include <ggi/ggi.h>
4832 #include <ggi/wmh.h>
4833 int main(void) { ggiInit(); ggiWmhInit(); return 0; }
4835 cc_check -lggi -lggiwmh && _ggiwmh=yes
4837 # needed to get right output on obscure combination
4838 # like --disable-ggi --enable-ggiwmh
4839 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
4840 def_ggiwmh='#define CONFIG_GGIWMH 1'
4841 libs_mplayer="$libs_mplayer -lggiwmh"
4842 else
4843 _ggiwmh=no
4844 def_ggiwmh='#undef CONFIG_GGIWMH'
4846 echores "$_ggiwmh"
4849 echocheck "AA"
4850 if test "$_aa" = auto ; then
4851 cat > $TMPC << EOF
4852 #include <aalib.h>
4853 extern struct aa_hardware_params aa_defparams;
4854 extern struct aa_renderparams aa_defrenderparams;
4855 int main(void) {
4856 aa_context *c;
4857 aa_renderparams *p;
4858 (void) aa_init(0, 0, 0);
4859 c = aa_autoinit(&aa_defparams);
4860 p = aa_getrenderparams();
4861 aa_autoinitkbd(c,0);
4862 return 0; }
4864 _aa=no
4865 for _ld_tmp in "-laa" ; do
4866 cc_check $_ld_tmp && libs_mplayer="$libs_mplayer $_ld_tmp" && _aa=yes && break
4867 done
4869 if test "$_aa" = yes ; then
4870 def_aa='#define CONFIG_AA 1'
4871 if cygwin ; then
4872 libs_mplayer="$libs_mplayer $(aalib-config --libs | cut -d " " -f 2,5,6)"
4874 vomodules="aa $vomodules"
4875 else
4876 def_aa='#undef CONFIG_AA'
4877 novomodules="aa $novomodules"
4879 echores "$_aa"
4882 echocheck "CACA"
4883 if test "$_caca" = auto ; then
4884 _caca=no
4885 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4886 cat > $TMPC << EOF
4887 #include <caca.h>
4888 #ifdef CACA_API_VERSION_1
4889 #include <caca0.h>
4890 #endif
4891 int main(void) { (void) caca_init(); return 0; }
4893 cc_check $(caca-config --libs) && _caca=yes
4896 if test "$_caca" = yes ; then
4897 def_caca='#define CONFIG_CACA 1'
4898 extra_cflags="$extra_cflags $(caca-config --cflags)"
4899 libs_mplayer="$libs_mplayer $(caca-config --libs)"
4900 vomodules="caca $vomodules"
4901 else
4902 def_caca='#undef CONFIG_CACA'
4903 novomodules="caca $novomodules"
4905 echores "$_caca"
4908 echocheck "SVGAlib"
4909 if test "$_svga" = auto ; then
4910 cat > $TMPC << EOF
4911 #include <vga.h>
4912 int main(void) { return 0; }
4914 _svga=no
4915 cc_check -lvga $_ld_lm && _svga=yes
4917 if test "$_svga" = yes ; then
4918 def_svga='#define CONFIG_SVGALIB 1'
4919 libs_mplayer="$libs_mplayer -lvga"
4920 vomodules="svga $vomodules"
4921 else
4922 def_svga='#undef CONFIG_SVGALIB'
4923 novomodules="svga $novomodules"
4925 echores "$_svga"
4928 echocheck "FBDev"
4929 if test "$_fbdev" = auto ; then
4930 _fbdev=no
4931 linux && _fbdev=yes
4933 if test "$_fbdev" = yes ; then
4934 def_fbdev='#define CONFIG_FBDEV 1'
4935 vomodules="fbdev $vomodules"
4936 else
4937 def_fbdev='#undef CONFIG_FBDEV'
4938 novomodules="fbdev $novomodules"
4940 echores "$_fbdev"
4944 echocheck "DVB"
4945 if test "$_dvb" = auto ; then
4946 _dvb=no
4947 cat >$TMPC << EOF
4948 #include <poll.h>
4949 #include <sys/ioctl.h>
4950 #include <stdio.h>
4951 #include <time.h>
4952 #include <unistd.h>
4953 #include <linux/dvb/dmx.h>
4954 #include <linux/dvb/frontend.h>
4955 #include <linux/dvb/video.h>
4956 #include <linux/dvb/audio.h>
4957 int main(void) {return 0;}
4959 for _inc_tmp in "" "-I/usr/src/DVB/include" ; do
4960 cc_check $_inc_tmp && _dvb=yes && \
4961 extra_cflags="$extra_cflags $_inc_tmp" && break
4962 done
4964 echores "$_dvb"
4965 if test "$_dvb" = yes ; then
4966 _dvbin=yes
4967 inputmodules="dvb $inputmodules"
4968 def_dvb='#define CONFIG_DVB 1'
4969 def_dvbin='#define CONFIG_DVBIN 1'
4970 aomodules="mpegpes(dvb) $aomodules"
4971 vomodules="mpegpes(dvb) $vomodules"
4972 else
4973 _dvbin=no
4974 noinputmodules="dvb $noinputmodules"
4975 def_dvb='#undef CONFIG_DVB'
4976 def_dvbin='#undef CONFIG_DVBIN '
4977 aomodules="mpegpes(file) $aomodules"
4978 vomodules="mpegpes(file) $vomodules"
4982 if darwin; then
4984 echocheck "QuickTime"
4985 if test "$quicktime" = auto ; then
4986 cat > $TMPC <<EOF
4987 #include <QuickTime/QuickTime.h>
4988 int main(void) {
4989 ImageDescription *desc;
4990 EnterMovies();
4991 ExitMovies();
4992 return 0;
4995 quicktime=no
4996 cc_check -framework QuickTime && quicktime=yes
4998 if test "$quicktime" = yes ; then
4999 extra_ldflags="$extra_ldflags -framework QuickTime"
5000 def_quicktime='#define CONFIG_QUICKTIME 1'
5001 else
5002 def_quicktime='#undef CONFIG_QUICKTIME'
5003 _quartz=no
5005 echores $quicktime
5007 echocheck "Quartz"
5008 if test "$_quartz" = auto ; then
5009 cat > $TMPC <<EOF
5010 #include <Carbon/Carbon.h>
5011 int main(void) {
5012 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
5013 return 0;
5016 _quartz=no
5017 cc_check -framework Carbon && _quartz=yes
5019 if test "$_quartz" = yes ; then
5020 libs_mplayer="$libs_mplayer -framework Carbon"
5021 def_quartz='#define CONFIG_QUARTZ 1'
5022 vomodules="quartz $vomodules"
5023 else
5024 def_quartz='#undef CONFIG_QUARTZ'
5025 novomodules="quartz $novomodules"
5027 echores $_quartz
5029 echocheck "CoreVideo"
5030 if test "$_corevideo" = auto ; then
5031 cat > $TMPC <<EOF
5032 #include <Carbon/Carbon.h>
5033 #include <CoreServices/CoreServices.h>
5034 #include <OpenGL/OpenGL.h>
5035 #include <QuartzCore/CoreVideo.h>
5036 int main(void) { return 0; }
5038 _corevideo=no
5039 cc_check -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL && _corevideo=yes
5041 if test "$_corevideo" = yes ; then
5042 vomodules="corevideo $vomodules"
5043 libs_mplayer="$libs_mplayer -framework Carbon -framework Cocoa -framework QuartzCore -framework OpenGL"
5044 def_corevideo='#define CONFIG_COREVIDEO 1'
5045 else
5046 novomodules="corevideo $novomodules"
5047 def_corevideo='#undef CONFIG_COREVIDEO'
5049 echores "$_corevideo"
5051 fi #if darwin
5054 echocheck "PNG support"
5055 if test "$_png" = auto ; then
5056 _png=no
5057 if irix ; then
5058 # Don't check for -lpng on irix since it has its own libpng
5059 # incompatible with the GNU libpng
5060 res_comment="disabled on irix (not GNU libpng)"
5061 else
5062 cat > $TMPC << EOF
5063 #include <png.h>
5064 #include <string.h>
5065 int main(void) {
5066 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
5067 printf("libpng: %s\n", png_libpng_ver);
5068 return strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver);
5071 cc_check -lpng -lz $_ld_lm && _png=yes
5074 echores "$_png"
5075 if test "$_png" = yes ; then
5076 def_png='#define CONFIG_PNG 1'
5077 extra_ldflags="$extra_ldflags -lpng -lz"
5078 else
5079 def_png='#undef CONFIG_PNG'
5082 echocheck "MNG support"
5083 if test "$_mng" = auto ; then
5084 _mng=no
5085 cat > $TMPC << EOF
5086 #include <libmng.h>
5087 int main(void) {
5088 const char * p_ver = mng_version_text();
5089 return !p_ver || p_ver[0] == 0;
5092 if cc_check -lmng -lz $_ld_lm ; then
5093 _mng=yes
5096 echores "$_mng"
5097 if test "$_mng" = yes ; then
5098 def_mng='#define CONFIG_MNG 1'
5099 extra_ldflags="$extra_ldflags -lmng -lz"
5100 else
5101 def_mng='#undef CONFIG_MNG'
5104 echocheck "JPEG support"
5105 if test "$_jpeg" = auto ; then
5106 _jpeg=no
5107 cat > $TMPC << EOF
5108 #include <stdio.h>
5109 #include <stdlib.h>
5110 #include <setjmp.h>
5111 #include <string.h>
5112 #include <jpeglib.h>
5113 int main(void) { return 0; }
5115 cc_check -ljpeg $_ld_lm && _jpeg=yes
5117 echores "$_jpeg"
5119 if test "$_jpeg" = yes ; then
5120 def_jpeg='#define CONFIG_JPEG 1'
5121 vomodules="jpeg $vomodules"
5122 extra_ldflags="$extra_ldflags -ljpeg"
5123 else
5124 def_jpeg='#undef CONFIG_JPEG'
5125 novomodules="jpeg $novomodules"
5129 echocheck "OpenJPEG (JPEG2000) support"
5130 if test "$libopenjpeg" = auto ; then
5131 libopenjpeg=no
5132 cat > $TMPC << EOF
5133 #define OPJ_STATIC
5134 #include <openjpeg.h>
5135 int main(void) { opj_dparameters_t dec_params; opj_set_default_decoder_parameters(&dec_params); return 0; }
5137 cc_check -lopenjpeg $_ld_lm && libopenjpeg=yes
5139 echores "$libopenjpeg"
5140 if test "$libopenjpeg" = yes ; then
5141 def_libopenjpeg='#define CONFIG_LIBOPENJPEG 1'
5142 extra_ldflags="$extra_ldflags -lopenjpeg"
5143 _libavdecoders="$_libavdecoders LIBOPENJPEG_DECODER"
5144 _libavencoders="$_libavencoders LIBOPENJPEG_ENCODER"
5145 codecmodules="OpenJPEG $codecmodules"
5146 else
5147 def_libopenjpeg='#define CONFIG_LIBOPENJPEG 0'
5148 nocodecmodules="OpenJPEG $nocodecmodules"
5152 echocheck "PNM support"
5153 if test "$_pnm" = yes; then
5154 def_pnm="#define CONFIG_PNM 1"
5155 vomodules="pnm $vomodules"
5156 else
5157 def_pnm="#undef CONFIG_PNM"
5158 novomodules="pnm $novomodules"
5160 echores "$_pnm"
5164 echocheck "GIF support"
5165 # This is to appease people who want to force gif support.
5166 # If it is forced to yes, then we still do checks to determine
5167 # which gif library to use.
5168 if test "$_gif" = yes ; then
5169 _force_gif=yes
5170 _gif=auto
5173 if test "$_gif" = auto ; then
5174 _gif=no
5175 cat > $TMPC << EOF
5176 #include <gif_lib.h>
5177 int main(void) { return 0; }
5179 for _ld_gif in "-lungif" "-lgif" ; do
5180 cc_check $_ld_gif && _gif=yes && break
5181 done
5184 # If no library was found, and the user wants support forced,
5185 # then we force it on with libgif, as this is the safest
5186 # assumption IMHO. (libungif & libregif both create symbolic
5187 # links to libgif. We also assume that no x11 support is needed,
5188 # because if you are forcing this, then you _should_ know what
5189 # you are doing. [ Besides, package maintainers should never
5190 # have compiled x11 deps into libungif in the first place. ] )
5191 # </rant>
5192 # --Joey
5193 if test "$_force_gif" = yes && test "$_gif" = no ; then
5194 _gif=yes
5195 _ld_gif="-lgif"
5198 if test "$_gif" = yes ; then
5199 def_gif='#define CONFIG_GIF 1'
5200 codecmodules="gif $codecmodules"
5201 vomodules="gif89a $vomodules"
5202 res_comment="old version, some encoding functions disabled"
5203 def_gif_4='#undef CONFIG_GIF_4'
5204 extra_ldflags="$extra_ldflags $_ld_gif"
5206 cat > $TMPC << EOF
5207 #include <signal.h>
5208 #include <gif_lib.h>
5209 void catch() { exit(1); }
5210 int main(void) {
5211 signal(SIGSEGV, catch); // catch segfault
5212 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
5213 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
5214 return 0;
5217 if cc_check "$_ld_gif" ; then
5218 def_gif_4='#define CONFIG_GIF_4 1'
5219 res_comment=""
5221 else
5222 def_gif='#undef CONFIG_GIF'
5223 def_gif_4='#undef CONFIG_GIF_4'
5224 novomodules="gif89a $novomodules"
5225 nocodecmodules="gif $nocodecmodules"
5227 echores "$_gif"
5230 case "$_gif" in yes*)
5231 echocheck "broken giflib workaround"
5232 def_gif_tvt_hack='#define CONFIG_GIF_TVT_HACK 1'
5234 cat > $TMPC << EOF
5235 #include <gif_lib.h>
5236 int main(void) {
5237 GifFileType gif;
5238 printf("UserData is at address %p\n", gif.UserData);
5239 return 0;
5242 if cc_check "$_ld_gif" ; then
5243 def_gif_tvt_hack='#undef CONFIG_GIF_TVT_HACK'
5244 echores "disabled"
5245 else
5246 echores "enabled"
5249 esac
5252 echocheck "VESA support"
5253 if test "$_vesa" = auto ; then
5254 cat > $TMPC << EOF
5255 #include <vbe.h>
5256 int main(void) { vbeVersion(); return 0; }
5258 _vesa=no
5259 cc_check -lvbe -llrmi && _vesa=yes
5261 if test "$_vesa" = yes ; then
5262 def_vesa='#define CONFIG_VESA 1'
5263 libs_mplayer="$libs_mplayer -lvbe -llrmi"
5264 vomodules="vesa $vomodules"
5265 else
5266 def_vesa='#undef CONFIG_VESA'
5267 novomodules="vesa $novomodules"
5269 echores "$_vesa"
5271 #################
5272 # VIDEO + AUDIO #
5273 #################
5276 echocheck "SDL"
5277 _inc_tmp=""
5278 _ld_tmp=""
5279 def_sdl_sdl_h="#undef CONFIG_SDL_SDL_H"
5280 if test -z "$_sdlconfig" ; then
5281 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
5282 _sdlconfig="sdl-config"
5283 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
5284 _sdlconfig="sdl11-config"
5285 else
5286 _sdlconfig=false
5289 if test "$_sdl" = auto || test "$_sdl" = yes ; then
5290 cat > $TMPC << EOF
5291 #ifdef CONFIG_SDL_SDL_H
5292 #include <SDL/SDL.h>
5293 #else
5294 #include <SDL.h>
5295 #endif
5296 #ifndef __APPLE__
5297 // we allow SDL hacking our main() only on OSX
5298 #undef main
5299 #endif
5300 int main(int argc, char *argv[]) {
5301 SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE);
5302 return 0;
5305 _sdl=no
5306 for _ld_tmp in "-lSDL" "-lSDL -lpthread" "-lSDL -lwinmm -lgdi32" "-lSDL -lwinmm -lgdi32 -ldxguid" ; do
5307 if cc_check -DCONFIG_SDL_SDL_H $_inc_tmp $_ld_tmp ; then
5308 _sdl=yes
5309 def_sdl_sdl_h="#define CONFIG_SDL_SDL_H 1"
5310 break
5312 done
5313 if test "$_sdl" = no && "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
5314 res_comment="using $_sdlconfig"
5315 if cygwin ; then
5316 _inc_tmp="$($_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/)"
5317 _ld_tmp="$($_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/)"
5318 elif mingw32 ; then
5319 _inc_tmp=$($_sdlconfig --cflags | sed s/-Dmain=SDL_main//)
5320 _ld_tmp=$($_sdlconfig --libs | sed -e s/-mwindows// -e s/-lmingw32//)
5321 else
5322 _inc_tmp="$($_sdlconfig --cflags)"
5323 _ld_tmp="$($_sdlconfig --libs)"
5325 if cc_check $_inc_tmp $_ld_tmp >>"$TMPLOG" 2>&1 ; then
5326 _sdl=yes
5330 if test "$_sdl" = yes ; then
5331 def_sdl='#define CONFIG_SDL 1'
5332 extra_cflags="$extra_cflags $_inc_tmp"
5333 libs_mplayer="$libs_mplayer $_ld_tmp"
5334 vomodules="sdl $vomodules"
5335 aomodules="sdl $aomodules"
5336 else
5337 def_sdl='#undef CONFIG_SDL'
5338 novomodules="sdl $novomodules"
5339 noaomodules="sdl $noaomodules"
5341 echores "$_sdl"
5344 # make sure this stays below CoreVideo to avoid issues due to namespace
5345 # conflicts between -lGL and -framework OpenGL
5346 echocheck "OpenGL"
5347 #Note: this test is run even with --enable-gl since we autodetect linker flags
5348 if (test "$_x11" = yes || test "$_sdl" = yes || win32) && test "$_gl" != no ; then
5349 cat > $TMPC << EOF
5350 #ifdef GL_WIN32
5351 #include <windows.h>
5352 #include <GL/gl.h>
5353 #elif defined(GL_SDL)
5354 #include <GL/gl.h>
5355 #ifdef CONFIG_SDL_SDL_H
5356 #include <SDL/SDL.h>
5357 #else
5358 #include <SDL.h>
5359 #endif
5360 #ifndef __APPLE__
5361 // we allow SDL hacking our main() only on OSX
5362 #undef main
5363 #endif
5364 #else
5365 #include <GL/gl.h>
5366 #include <X11/Xlib.h>
5367 #include <GL/glx.h>
5368 #endif
5369 int main(void) {
5370 #ifdef GL_WIN32
5371 HDC dc;
5372 wglCreateContext(dc);
5373 #elif defined(GL_SDL)
5374 SDL_GL_SwapBuffers();
5375 #else
5376 glXCreateContext(NULL, NULL, NULL, True);
5377 #endif
5378 glFinish();
5379 return 0;
5382 _gl=no
5383 for _ld_tmp in "" -lGL "-lGL -lXdamage" "-lGL $_ld_pthread" ; do
5384 if cc_check $_ld_tmp $_ld_lm ; then
5385 _gl=yes
5386 _gl_x11=yes
5387 libs_mplayer="$libs_mplayer $_ld_tmp $_ld_dl"
5388 break
5390 done
5391 if cc_check -DGL_WIN32 -lopengl32 ; then
5392 _gl=yes
5393 _gl_win32=yes
5394 libs_mplayer="$libs_mplayer -lopengl32 -lgdi32"
5396 # last so it can reuse any linker etc. flags detected before
5397 if test "$_sdl" = yes ; then
5398 if cc_check -DGL_SDL ||
5399 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL ; then
5400 _gl=yes
5401 _gl_sdl=yes
5402 elif cc_check -DGL_SDL -lGL ||
5403 cc_check -DCONFIG_SDL_SDL_H -DGL_SDL -lGL ; then
5404 _gl=yes
5405 _gl_sdl=yes
5406 libs_mplayer="$libs_mplayer -lGL"
5409 else
5410 _gl=no
5412 if test "$_gl" = yes ; then
5413 def_gl='#define CONFIG_GL 1'
5414 res_comment="backends:"
5415 if test "$_gl_win32" = yes ; then
5416 def_gl_win32='#define CONFIG_GL_WIN32 1'
5417 res_comment="$res_comment win32"
5419 if test "$_gl_x11" = yes ; then
5420 def_gl_x11='#define CONFIG_GL_X11 1'
5421 res_comment="$res_comment x11"
5423 if test "$_gl_sdl" = yes ; then
5424 def_gl_sdl='#define CONFIG_GL_SDL 1'
5425 res_comment="$res_comment sdl"
5427 vomodules="opengl $vomodules"
5428 else
5429 def_gl='#undef CONFIG_GL'
5430 def_gl_win32='#undef CONFIG_GL_WIN32'
5431 def_gl_x11='#undef CONFIG_GL_X11'
5432 def_gl_sdl='#undef CONFIG_GL_SDL'
5433 novomodules="opengl $novomodules"
5435 echores "$_gl"
5438 echocheck "MatrixView"
5439 if test "$_gl" = no ; then
5440 matrixview=no
5442 if test "$matrixview" = yes ; then
5443 vomodules="matrixview $vomodules"
5444 def_matrixview='#define CONFIG_MATRIXVIEW 1'
5445 else
5446 novomodules="matrixview $novomodules"
5447 def_matrixview='#undef CONFIG_MATRIXVIEW'
5449 echores "$matrixview"
5452 if os2 ; then
5453 echocheck "KVA (SNAP/WarpOverlay!/DIVE)"
5454 if test "$_kva" = auto; then
5455 cat > $TMPC << EOF
5456 #include <os2.h>
5457 #include <kva.h>
5458 int main( void ) { return 0; }
5460 _kva=no;
5461 cc_check -lkva && _kva=yes
5463 if test "$_kva" = yes ; then
5464 def_kva='#define CONFIG_KVA 1'
5465 libs_mplayer="$libs_mplayer -lkva"
5466 vomodules="kva $vomodules"
5467 else
5468 def_kva='#undef CONFIG_KVA'
5469 novomodules="kva $novomodules"
5471 echores "$_kva"
5472 fi #if os2
5475 if win32; then
5477 echocheck "Windows waveout"
5478 if test "$_win32waveout" = auto ; then
5479 cat > $TMPC << EOF
5480 #include <windows.h>
5481 #include <mmsystem.h>
5482 int main(void) { return 0; }
5484 _win32waveout=no
5485 cc_check -lwinmm && _win32waveout=yes
5487 if test "$_win32waveout" = yes ; then
5488 def_win32waveout='#define CONFIG_WIN32WAVEOUT 1'
5489 libs_mplayer="$libs_mplayer -lwinmm"
5490 aomodules="win32 $aomodules"
5491 else
5492 def_win32waveout='#undef CONFIG_WIN32WAVEOUT'
5493 noaomodules="win32 $noaomodules"
5495 echores "$_win32waveout"
5497 echocheck "Direct3D"
5498 if test "$_direct3d" = auto ; then
5499 cat > $TMPC << EOF
5500 #include <windows.h>
5501 #include <d3d9.h>
5502 int main(void) { return 0; }
5504 _direct3d=no
5505 cc_check && _direct3d=yes
5507 if test "$_direct3d" = yes ; then
5508 def_direct3d='#define CONFIG_DIRECT3D 1'
5509 vomodules="direct3d $vomodules"
5510 else
5511 def_direct3d='#undef CONFIG_DIRECT3D'
5512 novomodules="direct3d $novomodules"
5514 echores "$_direct3d"
5516 echocheck "Directx"
5517 if test "$_directx" = auto ; then
5518 cat > $TMPC << EOF
5519 #include <windows.h>
5520 #include <ddraw.h>
5521 #include <dsound.h>
5522 int main(void) { return 0; }
5524 _directx=no
5525 cc_check -lgdi32 && _directx=yes
5527 if test "$_directx" = yes ; then
5528 def_directx='#define CONFIG_DIRECTX 1'
5529 libs_mplayer="$libs_mplayer -lgdi32"
5530 vomodules="directx $vomodules"
5531 aomodules="dsound $aomodules"
5532 else
5533 def_directx='#undef CONFIG_DIRECTX'
5534 novomodules="directx $novomodules"
5535 noaomodules="dsound $noaomodules"
5537 echores "$_directx"
5539 fi #if win32; then
5542 echocheck "DXR2"
5543 if test "$_dxr2" = auto; then
5544 _dxr2=no
5545 cat > $TMPC << EOF
5546 #include <dxr2ioctl.h>
5547 int main(void) { return 0; }
5549 for _inc_tmp in "" -I/usr/local/include/dxr2 -I/usr/include/dxr2; do
5550 cc_check $_inc_tmp && _dxr2=yes && \
5551 extra_cflags="$extra_cflags $_inc_tmp" && break
5552 done
5554 if test "$_dxr2" = yes; then
5555 def_dxr2='#define CONFIG_DXR2 1'
5556 aomodules="dxr2 $aomodules"
5557 vomodules="dxr2 $vomodules"
5558 else
5559 def_dxr2='#undef CONFIG_DXR2'
5560 noaomodules="dxr2 $noaomodules"
5561 novomodules="dxr2 $novomodules"
5563 echores "$_dxr2"
5565 echocheck "DXR3/H+"
5566 if test "$_dxr3" = auto ; then
5567 cat > $TMPC << EOF
5568 #include <linux/em8300.h>
5569 int main(void) { return 0; }
5571 _dxr3=no
5572 cc_check && _dxr3=yes
5574 if test "$_dxr3" = yes ; then
5575 def_dxr3='#define CONFIG_DXR3 1'
5576 vomodules="dxr3 $vomodules"
5577 else
5578 def_dxr3='#undef CONFIG_DXR3'
5579 novomodules="dxr3 $novomodules"
5581 echores "$_dxr3"
5584 echocheck "IVTV TV-Out (pre linux-2.6.24)"
5585 if test "$_ivtv" = auto ; then
5586 cat > $TMPC << EOF
5587 #include <stdlib.h>
5588 #include <inttypes.h>
5589 #include <linux/types.h>
5590 #include <linux/videodev2.h>
5591 #include <linux/ivtv.h>
5592 #include <sys/ioctl.h>
5593 int main(void) {
5594 struct ivtv_cfg_stop_decode sd;
5595 struct ivtv_cfg_start_decode sd1;
5596 ioctl(0, IVTV_IOC_START_DECODE, &sd1);
5597 ioctl(0, IVTV_IOC_STOP_DECODE, &sd);
5598 return 0; }
5600 _ivtv=no
5601 cc_check && _ivtv=yes
5603 if test "$_ivtv" = yes ; then
5604 def_ivtv='#define CONFIG_IVTV 1'
5605 vomodules="ivtv $vomodules"
5606 aomodules="ivtv $aomodules"
5607 else
5608 def_ivtv='#undef CONFIG_IVTV'
5609 novomodules="ivtv $novomodules"
5610 noaomodules="ivtv $noaomodules"
5612 echores "$_ivtv"
5615 echocheck "V4L2 MPEG Decoder"
5616 if test "$_v4l2" = auto ; then
5617 cat > $TMPC << EOF
5618 #include <stdlib.h>
5619 #include <inttypes.h>
5620 #include <linux/types.h>
5621 #include <linux/videodev2.h>
5622 #include <linux/version.h>
5623 int main(void) {
5624 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
5625 #error kernel headers too old, need 2.6.22
5626 #endif
5627 struct v4l2_ext_controls ctrls;
5628 ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG;
5629 return 0;
5632 _v4l2=no
5633 cc_check && _v4l2=yes
5635 if test "$_v4l2" = yes ; then
5636 def_v4l2='#define CONFIG_V4L2_DECODER 1'
5637 vomodules="v4l2 $vomodules"
5638 aomodules="v4l2 $aomodules"
5639 else
5640 def_v4l2='#undef CONFIG_V4L2_DECODER'
5641 novomodules="v4l2 $novomodules"
5642 noaomodules="v4l2 $noaomodules"
5644 echores "$_v4l2"
5648 #########
5649 # AUDIO #
5650 #########
5653 echocheck "OSS Audio"
5654 if test "$_ossaudio" = auto ; then
5655 cat > $TMPC << EOF
5656 #include <sys/ioctl.h>
5657 #include <$_soundcard_header>
5658 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
5660 _ossaudio=no
5661 cc_check && _ossaudio=yes
5663 if test "$_ossaudio" = yes ; then
5664 def_ossaudio='#define CONFIG_OSS_AUDIO 1'
5665 aomodules="oss $aomodules"
5666 if test "$_linux_devfs" = yes; then
5667 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
5668 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
5669 else
5670 cat > $TMPC << EOF
5671 #include <sys/ioctl.h>
5672 #include <$_soundcard_header>
5673 #ifdef OPEN_SOUND_SYSTEM
5674 int main(void) { return 0; }
5675 #else
5676 #error Not the real thing
5677 #endif
5679 _real_ossaudio=no
5680 cc_check && _real_ossaudio=yes
5681 if test "$_real_ossaudio" = yes; then
5682 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5683 elif netbsd || openbsd ; then
5684 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
5685 extra_ldflags="$extra_ldflags -lossaudio"
5686 else
5687 def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
5689 def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
5691 else
5692 def_ossaudio='#undef CONFIG_OSS_AUDIO'
5693 def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
5694 def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
5695 noaomodules="oss $noaomodules"
5697 echores "$_ossaudio"
5700 echocheck "aRts"
5701 if test "$_arts" = auto ; then
5702 _arts=no
5703 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
5705 cat > $TMPC << EOF
5706 #include <artsc.h>
5707 int main(void) { return 0; }
5709 cc_check $(artsc-config --libs) $(artsc-config --cflags) && _arts=yes
5714 if test "$_arts" = yes ; then
5715 def_arts='#define CONFIG_ARTS 1'
5716 aomodules="arts $aomodules"
5717 libs_mplayer="$libs_mplayer $(artsc-config --libs)"
5718 extra_cflags="$extra_cflags $(artsc-config --cflags)"
5719 else
5720 noaomodules="arts $noaomodules"
5722 echores "$_arts"
5725 echocheck "EsounD"
5726 if test "$_esd" = auto ; then
5727 _esd=no
5728 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
5730 cat > $TMPC << EOF
5731 #include <esd.h>
5732 int main(void) { int fd = esd_open_sound("test"); return fd; }
5734 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd=yes
5738 echores "$_esd"
5740 if test "$_esd" = yes ; then
5741 def_esd='#define CONFIG_ESD 1'
5742 aomodules="esd $aomodules"
5743 libs_mplayer="$libs_mplayer $(esd-config --libs)"
5744 extra_cflags="$extra_cflags $(esd-config --cflags)"
5746 echocheck "esd_get_latency()"
5747 cat > $TMPC << EOF
5748 #include <esd.h>
5749 int main(void) { return esd_get_latency(0); }
5751 cc_check $(esd-config --libs) $(esd-config --cflags) && _esd_latency=yes && def_esd_latency='#define CONFIG_ESD_LATENCY 1'
5752 echores "$_esd_latency"
5753 else
5754 def_esd='#undef CONFIG_ESD'
5755 def_esd_latency='#undef CONFIG_ESD_LATENCY'
5756 noaomodules="esd $noaomodules"
5760 echocheck "NAS"
5761 if test "$_nas" = auto ; then
5762 cat > $TMPC << EOF
5763 #include <audio/audiolib.h>
5764 int main(void) { return 0; }
5766 _nas=no
5767 cc_check $_ld_lm -laudio -lXt && _nas=yes
5769 if test "$_nas" = yes ; then
5770 def_nas='#define CONFIG_NAS 1'
5771 libs_mplayer="$libs_mplayer -laudio -lXt"
5772 aomodules="nas $aomodules"
5773 else
5774 noaomodules="nas $noaomodules"
5775 def_nas='#undef CONFIG_NAS'
5777 echores "$_nas"
5780 echocheck "pulse"
5781 if test "$_pulse" = auto ; then
5782 _pulse=no
5783 if $_pkg_config --exists 'libpulse >= 0.9' ; then
5785 cat > $TMPC << EOF
5786 #include <pulse/pulseaudio.h>
5787 int main(void) { return 0; }
5789 cc_check $($_pkg_config --libs --cflags libpulse) && _pulse=yes
5793 echores "$_pulse"
5795 if test "$_pulse" = yes ; then
5796 def_pulse='#define CONFIG_PULSE 1'
5797 aomodules="pulse $aomodules"
5798 libs_mplayer="$libs_mplayer $($_pkg_config --libs libpulse)"
5799 extra_cflags="$extra_cflags $($_pkg_config --cflags libpulse)"
5800 else
5801 def_pulse='#undef CONFIG_PULSE'
5802 noaomodules="pulse $noaomodules"
5806 echocheck "JACK"
5807 if test "$_jack" = auto ; then
5808 _jack=yes
5810 cat > $TMPC << EOF
5811 #include <jack/jack.h>
5812 int main(void) { jack_client_open("test", JackUseExactName, NULL); return 0; }
5814 if cc_check -ljack ; then
5815 libs_mplayer="$libs_mplayer -ljack"
5816 elif cc_check $($_pkg_config --libs --cflags --silence-errors jack) ; then
5817 libs_mplayer="$libs_mplayer $($_pkg_config --libs jack)"
5818 extra_cflags="$extra_cflags "$($_pkg_config --cflags jack)""
5819 else
5820 _jack=no
5824 if test "$_jack" = yes ; then
5825 def_jack='#define CONFIG_JACK 1'
5826 aomodules="jack $aomodules"
5827 else
5828 noaomodules="jack $noaomodules"
5830 echores "$_jack"
5832 echocheck "OpenAL"
5833 if test "$_openal" = auto ; then
5834 _openal=no
5835 cat > $TMPC << EOF
5836 #ifdef OPENAL_AL_H
5837 #include <OpenAL/al.h>
5838 #else
5839 #include <AL/al.h>
5840 #endif
5841 int main(void) {
5842 alSourceQueueBuffers(0, 0, 0);
5843 // alGetSourcei(0, AL_SAMPLE_OFFSET, 0);
5844 return 0;
5847 for I in "-lopenal" "-lopenal32" "-framework OpenAL" ; do
5848 cc_check $I && _openal=yes && break
5849 cc_check -DOPENAL_AL_H=1 $I && def_openal_h='#define OPENAL_AL_H 1' && _openal=yes && break
5850 done
5851 test "$_openal" = yes && libs_mplayer="$libs_mplayer $I"
5853 if test "$_openal" = yes ; then
5854 def_openal='#define CONFIG_OPENAL 1'
5855 aomodules="openal $aomodules"
5856 else
5857 noaomodules="openal $noaomodules"
5859 echores "$_openal"
5861 echocheck "ALSA audio"
5862 if test "$_alloca" != yes ; then
5863 _alsa=no
5864 res_comment="alloca missing"
5866 if test "$_alsa" != no ; then
5867 _alsa=no
5868 cat > $TMPC << EOF
5869 #include <sys/time.h>
5870 #include <sys/asoundlib.h>
5871 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
5872 #error "alsa version != 0.5.x"
5873 #endif
5874 int main(void) { return 0; }
5876 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
5878 cat > $TMPC << EOF
5879 #include <sys/time.h>
5880 #include <sys/asoundlib.h>
5881 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5882 #error "alsa version != 0.9.x"
5883 #endif
5884 int main(void) { return 0; }
5886 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
5887 cat > $TMPC << EOF
5888 #include <sys/time.h>
5889 #include <alsa/asoundlib.h>
5890 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
5891 #error "alsa version != 0.9.x"
5892 #endif
5893 int main(void) { return 0; }
5895 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
5897 cat > $TMPC << EOF
5898 #include <sys/time.h>
5899 #include <sys/asoundlib.h>
5900 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5901 #error "alsa version != 1.0.x"
5902 #endif
5903 int main(void) { return 0; }
5905 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
5906 cat > $TMPC << EOF
5907 #include <sys/time.h>
5908 #include <alsa/asoundlib.h>
5909 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
5910 #error "alsa version != 1.0.x"
5911 #endif
5912 int main(void) { return 0; }
5914 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
5916 def_alsa='#undef CONFIG_ALSA'
5917 def_alsa5='#undef CONFIG_ALSA5'
5918 def_alsa9='#undef CONFIG_ALSA9'
5919 def_alsa1x='#undef CONFIG_ALSA1X'
5920 def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
5921 def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
5922 if test "$_alsaver" ; then
5923 _alsa=yes
5924 if test "$_alsaver" = '0.5.x' ; then
5925 _alsa5=yes
5926 aomodules="alsa5 $aomodules"
5927 def_alsa5='#define CONFIG_ALSA5 1'
5928 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5929 res_comment="using alsa 0.5.x and sys/asoundlib.h"
5930 elif test "$_alsaver" = '0.9.x-sys' ; then
5931 _alsa9=yes
5932 aomodules="alsa $aomodules"
5933 def_alsa='#define CONFIG_ALSA 1'
5934 def_alsa9='#define CONFIG_ALSA9 1'
5935 def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5936 res_comment="using alsa 0.9.x and sys/asoundlib.h"
5937 elif test "$_alsaver" = '0.9.x-alsa' ; then
5938 _alsa9=yes
5939 aomodules="alsa $aomodules"
5940 def_alsa='#define CONFIG_ALSA 1'
5941 def_alsa9='#define CONFIG_ALSA9 1'
5942 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5943 res_comment="using alsa 0.9.x and alsa/asoundlib.h"
5944 elif test "$_alsaver" = '1.0.x-sys' ; then
5945 _alsa1x=yes
5946 aomodules="alsa $aomodules"
5947 def_alsa='#define CONFIG_ALSA 1'
5948 def_alsa1x="#define CONFIG_ALSA1X 1"
5949 def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
5950 res_comment="using alsa 1.0.x and sys/asoundlib.h"
5951 elif test "$_alsaver" = '1.0.x-alsa' ; then
5952 _alsa1x=yes
5953 aomodules="alsa $aomodules"
5954 def_alsa='#define CONFIG_ALSA 1'
5955 def_alsa1x="#define CONFIG_ALSA1X 1"
5956 def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
5957 res_comment="using alsa 1.0.x and alsa/asoundlib.h"
5958 else
5959 _alsa=no
5960 res_comment="unknown version"
5962 extra_ldflags="$extra_ldflags -lasound $_ld_dl $_ld_pthread"
5963 else
5964 noaomodules="alsa $noaomodules"
5966 echores "$_alsa"
5969 echocheck "Sun audio"
5970 if test "$_sunaudio" = auto ; then
5971 cat > $TMPC << EOF
5972 #include <sys/types.h>
5973 #include <sys/audioio.h>
5974 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
5976 _sunaudio=no
5977 cc_check && _sunaudio=yes
5979 if test "$_sunaudio" = yes ; then
5980 def_sunaudio='#define CONFIG_SUN_AUDIO 1'
5981 aomodules="sun $aomodules"
5982 else
5983 def_sunaudio='#undef CONFIG_SUN_AUDIO'
5984 noaomodules="sun $noaomodules"
5986 echores "$_sunaudio"
5989 def_mlib='#define CONFIG_MLIB 0'
5990 if sunos; then
5991 echocheck "Sun mediaLib"
5992 if test "$_mlib" = auto ; then
5993 _mlib=no
5994 cat > $TMPC << EOF
5995 #include <mlib.h>
5996 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
5998 cc_check -lmlib && _mlib=yes && def_mlib='#define CONFIG_MLIB 1'
6000 echores "$_mlib"
6001 fi #if sunos
6004 if darwin; then
6005 echocheck "CoreAudio"
6006 if test "$_coreaudio" = auto ; then
6007 cat > $TMPC <<EOF
6008 #include <CoreAudio/CoreAudio.h>
6009 #include <AudioToolbox/AudioToolbox.h>
6010 #include <AudioUnit/AudioUnit.h>
6011 int main(void) { return 0; }
6013 _coreaudio=no
6014 cc_check -framework CoreAudio -framework AudioUnit -framework AudioToolbox && _coreaudio=yes
6016 if test "$_coreaudio" = yes ; then
6017 libs_mplayer="$libs_mplayer -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
6018 def_coreaudio='#define CONFIG_COREAUDIO 1'
6019 aomodules="coreaudio $aomodules"
6020 else
6021 def_coreaudio='#undef CONFIG_COREAUDIO'
6022 noaomodules="coreaudio $noaomodules"
6024 echores $_coreaudio
6025 fi #if darwin
6028 if irix; then
6029 echocheck "SGI audio"
6030 if test "$_sgiaudio" = auto ; then
6031 # check for SGI audio
6032 cat > $TMPC << EOF
6033 #include <dmedia/audio.h>
6034 int main(void) { return 0; }
6036 _sgiaudio=no
6037 cc_check && _sgiaudio=yes
6039 if test "$_sgiaudio" = "yes" ; then
6040 def_sgiaudio='#define CONFIG_SGI_AUDIO 1'
6041 libs_mplayer="$libs_mplayer -laudio"
6042 aomodules="sgi $aomodules"
6043 else
6044 def_sgiaudio='#undef CONFIG_SGI_AUDIO'
6045 noaomodules="sgi $noaomodules"
6047 echores "$_sgiaudio"
6048 fi #if irix
6051 if os2 ; then
6052 echocheck "KAI (UNIAUD/DART)"
6053 if test "$_kai" = auto; then
6054 cat > $TMPC << EOF
6055 #include <os2.h>
6056 #include <kai.h>
6057 int main(void) { return 0; }
6059 _kai=no;
6060 cc_check -lkai && _kai=yes
6062 if test "$_kai" = yes ; then
6063 def_kai='#define CONFIG_KAI 1'
6064 libs_mplayer="$libs_mplayer -lkai"
6065 aomodules="kai $aomodules"
6066 else
6067 def_kai='#undef CONFIG_KAI'
6068 noaomodules="kai $noaomodules"
6070 echores "$_kai"
6072 echocheck "DART"
6073 if test "$_dart" = auto; then
6074 cat > $TMPC << EOF
6075 #include <os2.h>
6076 #include <dart.h>
6077 int main( void ) { return 0; }
6079 _dart=no;
6080 cc_check -ldart && _dart=yes
6082 if test "$_dart" = yes ; then
6083 def_dart='#define CONFIG_DART 1'
6084 libs_mplayer="$libs_mplayer -ldart"
6085 aomodules="dart $aomodules"
6086 else
6087 def_dart='#undef CONFIG_DART'
6088 noaomodules="dart $noaomodules"
6090 echores "$_dart"
6091 fi #if os2
6094 # set default CD/DVD devices
6095 if win32 || os2 ; then
6096 default_cdrom_device="D:"
6097 elif darwin ; then
6098 default_cdrom_device="/dev/disk1"
6099 elif dragonfly ; then
6100 default_cdrom_device="/dev/cd0"
6101 elif freebsd ; then
6102 default_cdrom_device="/dev/acd0"
6103 elif openbsd ; then
6104 default_cdrom_device="/dev/rcd0a"
6105 elif sunos ; then
6106 default_cdrom_device="/vol/dev/aliases/cdrom0"
6107 # Modern Solaris versions use HAL instead of the vold daemon, the volfs
6108 # file system and the volfs service.
6109 test -r "/cdrom/cdrom0" && default_cdrom_device="/cdrom/cdrom0"
6110 elif amigaos ; then
6111 default_cdrom_device="a1ide.device:2"
6112 else
6113 default_cdrom_device="/dev/cdrom"
6116 if win32 || os2 || dragonfly || freebsd || openbsd || sunos || amigaos ; then
6117 default_dvd_device=$default_cdrom_device
6118 elif darwin ; then
6119 default_dvd_device="/dev/rdiskN"
6120 else
6121 default_dvd_device="/dev/dvd"
6125 echocheck "VCD support"
6126 if test "$_vcd" = auto; then
6127 _vcd=no
6128 if linux || freebsd || netbsd || openbsd || dragonfly || bsdos || darwin || sunos || os2; then
6129 _vcd=yes
6130 elif mingw32; then
6131 cat > $TMPC << EOF
6132 #include <ddk/ntddcdrm.h>
6133 int main(void) { return 0; }
6135 cc_check && _vcd=yes
6138 if test "$_vcd" = yes; then
6139 inputmodules="vcd $inputmodules"
6140 def_vcd='#define CONFIG_VCD 1'
6141 else
6142 def_vcd='#undef CONFIG_VCD'
6143 noinputmodules="vcd $noinputmodules"
6144 res_comment="not supported on this OS"
6146 echores "$_vcd"
6150 echocheck "dvdread"
6151 if test "$_dvdread_internal" = auto ; then
6152 _dvdread_internal=no
6153 _dvdread=no
6154 if (linux || freebsd || netbsd || openbsd || dragonfly || sunos || hpux) \
6155 && (test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || \
6156 test "$_dvdio" = yes || test "$_bsdi_dvd" = yes) \
6157 || darwin || win32 || os2; then
6158 _dvdread_internal=yes
6159 _dvdread=yes
6160 extra_cflags="-Ilibdvdread4 $extra_cflags"
6162 elif test "$_dvdread" = auto ; then
6163 _dvdread=no
6164 if test "$_dl" = yes; then
6165 cat > $TMPC << EOF
6166 #include <inttypes.h>
6167 #include <dvdread/dvd_reader.h>
6168 #include <dvdread/ifo_types.h>
6169 #include <dvdread/ifo_read.h>
6170 #include <dvdread/nav_read.h>
6171 int main(void) { return 0; }
6173 _dvdreadcflags=$($_dvdreadconfig --cflags)
6174 _dvdreadlibs=$($_dvdreadconfig --libs)
6175 if cc_check -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE \
6176 $_dvdreadcflags $_dvdreadlibs $_ld_dl ; then
6177 _dvdread=yes
6178 extra_cflags="$extra_cflags $_dvdreadcflags"
6179 extra_ldflags="$extra_ldflags $_dvdreadlibs"
6180 res_comment="external"
6185 if test "$_dvdread_internal" = yes; then
6186 def_dvdread='#define CONFIG_DVDREAD 1'
6187 inputmodules="dvdread(internal) $inputmodules"
6188 _largefiles=yes
6189 res_comment="internal"
6190 elif test "$_dvdread" = yes; then
6191 def_dvdread='#define CONFIG_DVDREAD 1'
6192 _largefiles=yes
6193 extra_ldflags="$extra_ldflags -ldvdread"
6194 inputmodules="dvdread(external) $inputmodules"
6195 res_comment="external"
6196 else
6197 def_dvdread='#undef CONFIG_DVDREAD'
6198 noinputmodules="dvdread $noinputmodules"
6200 echores "$_dvdread"
6203 echocheck "internal libdvdcss"
6204 if test "$_libdvdcss_internal" = auto ; then
6205 _libdvdcss_internal=no
6206 test "$_dvdread_internal" = yes && _libdvdcss_internal=yes
6207 hpux && test "$_hpux_scsi_h" = no && _libdvdcss_internal=no
6209 if test "$_libdvdcss_internal" = yes ; then
6210 if linux || netbsd || openbsd || bsdos ; then
6211 def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
6212 openbsd && def_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
6213 elif freebsd || dragonfly ; then
6214 def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
6215 elif darwin ; then
6216 def_dvd_darwin='#define DARWIN_DVD_IOCTL'
6217 extra_ldflags="$extra_ldflags -framework IOKit -framework Carbon"
6218 elif cygwin ; then
6219 cflags_libdvdcss="-DSYS_CYGWIN -DWIN32"
6220 elif beos ; then
6221 cflags_libdvdcss="-DSYS_BEOS"
6222 elif os2 ; then
6223 cflags_libdvdcss="-DSYS_OS2"
6225 cflags_libdvdcss_dvdread="-Ilibdvdcss"
6226 def_dvdcss="#define HAVE_DVDCSS_DVDCSS_H 1"
6227 inputmodules="libdvdcss(internal) $inputmodules"
6228 _largefiles=yes
6229 else
6230 noinputmodules="libdvdcss(internal) $noinputmodules"
6232 echores "$_libdvdcss_internal"
6235 echocheck "cdparanoia"
6236 if test "$_cdparanoia" = auto ; then
6237 cat > $TMPC <<EOF
6238 #include <cdda_interface.h>
6239 #include <cdda_paranoia.h>
6240 // This need a better test. How ?
6241 int main(void) { void *test = cdda_verbose_set; return test == (void *)1; }
6243 _cdparanoia=no
6244 for _inc_tmp in "" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
6245 cc_check $_inc_tmp -lcdda_interface -lcdda_paranoia $_ld_lm && \
6246 _cdparanoia=yes && extra_cflags="$extra_cflags $_inc_tmp" && break
6247 done
6249 if test "$_cdparanoia" = yes ; then
6250 _cdda='yes'
6251 extra_ldflags="$extra_ldflags -lcdda_interface -lcdda_paranoia"
6252 openbsd && extra_ldflags="$extra_ldflags -lutil"
6254 echores "$_cdparanoia"
6257 echocheck "libcdio"
6258 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
6259 cat > $TMPC << EOF
6260 #include <stdio.h>
6261 #include <cdio/version.h>
6262 #include <cdio/cdda.h>
6263 #include <cdio/paranoia.h>
6264 int main(void) {
6265 void *test = cdda_verbose_set;
6266 printf("%s\n", CDIO_VERSION);
6267 return test == (void *)1;
6270 _libcdio=no
6271 for _ld_tmp in "" "-lwinmm" ; do
6272 _ld_tmp="-lcdio_cdda -lcdio -lcdio_paranoia $_ld_tmp"
6273 cc_check $_ld_tmp $_ld_lm \
6274 && _libcdio=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6275 done
6276 if test "$_libcdio" = no && $_pkg_config --exists libcdio_paranoia ; then
6277 _inc_tmp=$($_pkg_config --cflags libcdio_paranoia)
6278 _ld_tmp=$($_pkg_config --libs libcdio_paranoia)
6279 cc_check $_inc_tmp $_ld_tmp $_ld_lm && _libcdio=yes \
6280 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6283 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
6284 _cdda='yes'
6285 def_libcdio='#define CONFIG_LIBCDIO 1'
6286 def_havelibcdio='yes'
6287 else
6288 if test "$_cdparanoia" = yes ; then
6289 res_comment="using cdparanoia"
6291 def_libcdio='#undef CONFIG_LIBCDIO'
6292 def_havelibcdio='no'
6294 echores "$_libcdio"
6296 if test "$_cdda" = yes ; then
6297 test $_cddb = auto && test $_network = yes && _cddb=yes
6298 def_cdparanoia='#define CONFIG_CDDA 1'
6299 inputmodules="cdda $inputmodules"
6300 else
6301 def_cdparanoia='#undef CONFIG_CDDA'
6302 noinputmodules="cdda $noinputmodules"
6305 if test "$_cddb" = yes ; then
6306 def_cddb='#define CONFIG_CDDB 1'
6307 inputmodules="cddb $inputmodules"
6308 else
6309 _cddb=no
6310 def_cddb='#undef CONFIG_CDDB'
6311 noinputmodules="cddb $noinputmodules"
6314 echocheck "bitmap font support"
6315 if test "$_bitmap_font" = yes ; then
6316 def_bitmap_font="#define CONFIG_BITMAP_FONT 1"
6317 else
6318 def_bitmap_font="#undef CONFIG_BITMAP_FONT"
6320 echores "$_bitmap_font"
6323 echocheck "freetype >= 2.0.9"
6325 # freetype depends on iconv
6326 if test "$_iconv" = no ; then
6327 _freetype=no
6328 res_comment="iconv support needed"
6331 if test "$_freetype" = auto ; then
6332 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
6333 cat > $TMPC << EOF
6334 #include <stdio.h>
6335 #include <ft2build.h>
6336 #include FT_FREETYPE_H
6337 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
6338 #error "Need FreeType 2.0.9 or newer"
6339 #endif
6340 int main(void) {
6341 FT_Library library;
6342 FT_Int major=-1,minor=-1,patch=-1;
6343 int err=FT_Init_FreeType(&library);
6344 return 0;
6347 _freetype=no
6348 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _freetype=yes
6349 else
6350 _freetype=no
6353 if test "$_freetype" = yes ; then
6354 def_freetype='#define CONFIG_FREETYPE 1'
6355 extra_cflags="$extra_cflags $($_freetypeconfig --cflags)"
6356 extra_ldflags="$extra_ldflags $($_freetypeconfig --libs)"
6357 else
6358 def_freetype='#undef CONFIG_FREETYPE'
6360 echores "$_freetype"
6362 if test "$_freetype" = no ; then
6363 _fontconfig=no
6364 res_comment="FreeType support needed"
6366 echocheck "fontconfig"
6367 if test "$_fontconfig" = auto ; then
6368 cat > $TMPC << EOF
6369 #include <stdio.h>
6370 #include <stdlib.h>
6371 #include <fontconfig/fontconfig.h>
6372 #if FC_VERSION < 20402
6373 #error At least version 2.4.2 of fontconfig required
6374 #endif
6375 int main(void) {
6376 int err = FcInit();
6377 if (err == FcFalse) {
6378 printf("Couldn't initialize fontconfig lib\n");
6379 exit(err);
6381 return 0;
6384 _fontconfig=no
6385 for _ld_tmp in "" "-lexpat -lfreetype" "-lexpat -lfreetype -lz" "-lexpat -lfreetype -lz -liconv" ; do
6386 _ld_tmp="-lfontconfig $_ld_tmp"
6387 cc_check $_ld_tmp && _fontconfig=yes && extra_ldflags="$extra_ldflags $_ld_tmp" && break
6388 done
6389 if test "$_fontconfig" = no && $_pkg_config --exists fontconfig ; then
6390 _inc_tmp=$($_pkg_config --cflags fontconfig)
6391 _ld_tmp=$($_pkg_config --libs fontconfig)
6392 cc_check $_inc_tmp $_ld_tmp && _fontconfig=yes \
6393 && extra_ldflags="$extra_ldflags $_ld_tmp" && extra_cflags="$extra_cflags $_inc_tmp"
6396 if test "$_fontconfig" = yes ; then
6397 def_fontconfig='#define CONFIG_FONTCONFIG 1'
6398 else
6399 def_fontconfig='#undef CONFIG_FONTCONFIG'
6401 echores "$_fontconfig"
6404 echocheck "SSA/ASS support"
6405 # libass depends on FreeType
6406 if test "$_freetype" = no ; then
6407 _ass=no
6408 ass_internal=no
6409 res_comment="FreeType support needed"
6412 if test "$_ass" = auto ; then
6413 cat > $TMPC << EOF
6414 #include <ft2build.h>
6415 #include FT_FREETYPE_H
6416 #if ((FREETYPE_MAJOR < 2) || (FREETYPE_MINOR < 2) || ((FREETYPE_MINOR == 2) && (FREETYPE_PATCH < 1)))
6417 #error "Need FreeType 2.2.1 or newer"
6418 #endif
6419 int main(void) { return 0; }
6421 _ass=no
6422 cc_check $($_freetypeconfig --cflags) $($_freetypeconfig --libs) && _ass=yes
6423 if test "$_ass" = no ; then
6424 ass_internal=no
6425 res_comment="FreeType >= 2.2.1 needed"
6426 elif test "$ass_internal" = no ; then
6427 cat > $TMPC << EOF
6428 #include <ass/ass.h>
6429 int main(void) {
6430 #if defined(LIBASS_VERSION) && LIBASS_VERSION >= 0x00907010
6431 ass_process_force_style(0);
6432 #else
6433 process_force_style(0);
6434 #endif
6435 return 0;
6438 if cc_check -lass ; then
6439 res_comment="external"
6440 extra_ldflags="$extra_ldflags -lass"
6441 else
6442 _ass=no
6446 if test "$_ass" = yes ; then
6447 def_ass='#define CONFIG_ASS 1'
6448 else
6449 def_ass='#undef CONFIG_ASS'
6451 if test "$ass_internal" = yes ; then
6452 def_ass_internal='#define CONFIG_ASS_INTERNAL 1'
6453 else
6454 def_ass_internal='#undef CONFIG_ASS_INTERNAL'
6456 echores "$_ass"
6459 echocheck "fribidi with charsets"
6460 _inc_tmp=""
6461 _ld_tmp=""
6462 if test "$_fribidi" = auto ; then
6463 cat > $TMPC << EOF
6464 #include <stdio.h>
6465 #include <stdlib.h>
6466 /* workaround for fribidi 0.10.4 and below */
6467 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
6468 #include <fribidi/fribidi.h>
6469 int main(void) {
6470 if (fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
6471 printf("Fribidi headers are not consistents with the library!\n");
6472 exit(1);
6474 return 0;
6477 _fribidi=no
6478 _inc_tmp=""
6479 _ld_tmp="-lfribidi"
6480 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6481 if $_pkg_config --exists fribidi > /dev/null 2>&1 &&
6482 test "$_fribidi" = no ; then
6483 _inc_tmp="$($_pkg_config --cflags)"
6484 _ld_tmp="$($_pkg_config --libs)"
6485 cc_check $_inc_tmp $_ld_tmp && _fribidi=yes
6488 if test "$_fribidi" = yes ; then
6489 def_fribidi='#define CONFIG_FRIBIDI 1'
6490 extra_cflags="$extra_cflags $_inc_tmp"
6491 extra_ldflags="$extra_ldflags $_ld_tmp"
6492 else
6493 def_fribidi='#undef CONFIG_FRIBIDI'
6495 echores "$_fribidi"
6498 echocheck "ENCA"
6499 if test "$_enca" = auto ; then
6500 cat > $TMPC << EOF
6501 #include <sys/types.h>
6502 #include <enca.h>
6503 int main(void) {
6504 const char **langs;
6505 size_t langcnt;
6506 langs = enca_get_languages(&langcnt);
6507 return 0;
6510 _enca=no
6511 cc_check -lenca $_ld_lm && _enca=yes
6513 if test "$_enca" = yes ; then
6514 def_enca='#define CONFIG_ENCA 1'
6515 extra_ldflags="$extra_ldflags -lenca"
6516 else
6517 def_enca='#undef CONFIG_ENCA'
6519 echores "$_enca"
6522 echocheck "zlib"
6523 cat > $TMPC << EOF
6524 #include <zlib.h>
6525 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
6527 _zlib=no
6528 cc_check -lz && _zlib=yes
6529 if test "$_zlib" = yes ; then
6530 def_zlib='#define CONFIG_ZLIB 1'
6531 extra_ldflags="$extra_ldflags -lz"
6532 else
6533 def_zlib='#define CONFIG_ZLIB 0'
6534 _libavdecoders=$(echo $_libavdecoders | sed -e s/FLASHSV_DECODER// -e s/PNG_DECODER// -e s/ZMBV_DECODER// -e s/ZLIB_DECODER// -e s/DXA_DECODER// -e s/TSCC_DECODER//)
6535 _libavencoders=$(echo $_libavencoders | sed -e s/FLASHSV_ENCODER// -e s/PNG_ENCODER// -e s/ZMBV_ENCODER// -e s/ZLIB_ENCODER//)
6537 echores "$_zlib"
6540 echocheck "bzlib"
6541 bzlib=no
6542 def_bzlib='#define CONFIG_BZLIB 0'
6543 cat > $TMPC << EOF
6544 #include <bzlib.h>
6545 int main(void) { BZ2_bzlibVersion(); return 0; }
6547 cc_check -lbz2 && bzlib=yes
6548 if test "$bzlib" = yes ; then
6549 def_bzlib='#define CONFIG_BZLIB 1'
6550 extra_ldflags="$extra_ldflags -lbz2"
6552 echores "$bzlib"
6555 echocheck "RTC"
6556 if test "$_rtc" = auto ; then
6557 cat > $TMPC << EOF
6558 #include <sys/ioctl.h>
6559 #ifdef __linux__
6560 #include <linux/rtc.h>
6561 #else
6562 #include <rtc.h>
6563 #define RTC_PIE_ON RTCIO_PIE_ON
6564 #endif
6565 int main(void) { return RTC_PIE_ON; }
6567 _rtc=no
6568 cc_check && _rtc=yes
6569 ppc && _rtc=no
6571 if test "$_rtc" = yes ; then
6572 def_rtc='#define HAVE_RTC 1'
6573 else
6574 def_rtc='#undef HAVE_RTC'
6576 echores "$_rtc"
6579 echocheck "liblzo2 support"
6580 if test "$_liblzo" = auto ; then
6581 _liblzo=no
6582 cat > $TMPC << EOF
6583 #include <lzo/lzo1x.h>
6584 int main(void) { lzo_init();return 0; }
6586 cc_check -llzo2 && _liblzo=yes
6588 if test "$_liblzo" = yes ; then
6589 def_liblzo='#define CONFIG_LIBLZO 1'
6590 extra_ldflags="$extra_ldflags -llzo2"
6591 codecmodules="liblzo $codecmodules"
6592 else
6593 def_liblzo='#undef CONFIG_LIBLZO'
6594 nocodecmodules="liblzo $nocodecmodules"
6596 echores "$_liblzo"
6599 echocheck "mad support"
6600 if test "$_mad" = auto ; then
6601 _mad=no
6602 cat > $TMPC << EOF
6603 #include <mad.h>
6604 int main(void) { return 0; }
6606 cc_check -lmad && _mad=yes
6608 if test "$_mad" = yes ; then
6609 def_mad='#define CONFIG_LIBMAD 1'
6610 extra_ldflags="$extra_ldflags -lmad"
6611 codecmodules="libmad $codecmodules"
6612 else
6613 def_mad='#undef CONFIG_LIBMAD'
6614 nocodecmodules="libmad $nocodecmodules"
6616 echores "$_mad"
6618 echocheck "Twolame"
6619 if test "$_twolame" = auto ; then
6620 cat > $TMPC <<EOF
6621 #include <twolame.h>
6622 int main(void) { twolame_init(); return 0; }
6624 _twolame=no
6625 cc_check -ltwolame $_ld_lm && _twolame=yes
6627 if test "$_twolame" = yes ; then
6628 def_twolame='#define CONFIG_TWOLAME 1'
6629 libs_mencoder="$libs_mencoder -ltwolame"
6630 codecmodules="twolame $codecmodules"
6631 else
6632 def_twolame='#undef CONFIG_TWOLAME'
6633 nocodecmodules="twolame $nocodecmodules"
6635 echores "$_twolame"
6637 echocheck "Toolame"
6638 if test "$_toolame" = auto ; then
6639 _toolame=no
6640 if test "$_twolame" = yes ; then
6641 res_comment="disabled by twolame"
6642 else
6643 cat > $TMPC <<EOF
6644 #include <toolame.h>
6645 int main(void) { toolame_init(); return 0; }
6647 cc_check -ltoolame $_ld_lm && _toolame=yes
6650 if test "$_toolame" = yes ; then
6651 def_toolame='#define CONFIG_TOOLAME 1'
6652 libs_mencoder="$libs_mencoder -ltoolame"
6653 codecmodules="toolame $codecmodules"
6654 else
6655 def_toolame='#undef CONFIG_TOOLAME'
6656 nocodecmodules="toolame $nocodecmodules"
6658 if test "$_toolamedir" ; then
6659 res_comment="using $_toolamedir"
6661 echores "$_toolame"
6663 echocheck "OggVorbis support"
6664 if test "$_tremor_internal" = yes; then
6665 _libvorbis=no
6666 elif test "$_tremor" = auto; then
6667 _tremor=no
6668 cat > $TMPC << EOF
6669 #include <tremor/ivorbiscodec.h>
6670 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6672 cc_check -logg -lvorbisidec $_ld_lm && _tremor=yes && _libvorbis=no
6674 if test "$_libvorbis" = auto; then
6675 _libvorbis=no
6676 cat > $TMPC << EOF
6677 #include <vorbis/codec.h>
6678 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
6680 cc_check -lvorbis -logg $_ld_lm && _libvorbis=yes
6682 if test "$_tremor_internal" = yes ; then
6683 _vorbis=yes
6684 def_vorbis='#define CONFIG_OGGVORBIS 1'
6685 def_tremor='#define CONFIG_TREMOR 1'
6686 codecmodules="tremor(internal) $codecmodules"
6687 res_comment="internal Tremor"
6688 if test "$_tremor_low" = yes ; then
6689 cflags_tremor_low="-D_LOW_ACCURACY_"
6690 res_comment="internal low accuracy Tremor"
6692 elif test "$_tremor" = yes ; then
6693 _vorbis=yes
6694 def_vorbis='#define CONFIG_OGGVORBIS 1'
6695 def_tremor='#define CONFIG_TREMOR 1'
6696 codecmodules="tremor(external) $codecmodules"
6697 res_comment="external Tremor"
6698 extra_ldflags="$extra_ldflags -logg -lvorbisidec"
6699 elif test "$_libvorbis" = yes ; then
6700 _vorbis=yes
6701 def_vorbis='#define CONFIG_OGGVORBIS 1'
6702 codecmodules="libvorbis $codecmodules"
6703 res_comment="libvorbis"
6704 extra_ldflags="$extra_ldflags -lvorbis -logg"
6705 else
6706 _vorbis=no
6707 nocodecmodules="libvorbis $nocodecmodules"
6709 echores "$_vorbis"
6711 echocheck "libspeex (version >= 1.1 required)"
6712 if test "$_speex" = auto ; then
6713 _speex=no
6714 cat > $TMPC << EOF
6715 #include <speex/speex.h>
6716 int main(void) { SpeexBits bits; void *dec; speex_decode_int(dec, &bits, dec); return 0; }
6718 cc_check -lspeex $_ld_lm && _speex=yes
6720 if test "$_speex" = yes ; then
6721 def_speex='#define CONFIG_SPEEX 1'
6722 extra_ldflags="$extra_ldflags -lspeex"
6723 codecmodules="speex $codecmodules"
6724 else
6725 def_speex='#undef CONFIG_SPEEX'
6726 nocodecmodules="speex $nocodecmodules"
6728 echores "$_speex"
6730 echocheck "OggTheora support"
6731 if test "$_theora" = auto ; then
6732 _theora=no
6733 cat > $TMPC << EOF
6734 #include <theora/theora.h>
6735 #include <string.h>
6736 int main(void) {
6737 /* Theora is in flux, make sure that all interface routines and datatypes
6738 * exist and work the way we expect it, so we don't break MPlayer. */
6739 ogg_packet op;
6740 theora_comment tc;
6741 theora_info inf;
6742 theora_state st;
6743 yuv_buffer yuv;
6744 int r;
6745 double t;
6747 theora_info_init(&inf);
6748 theora_comment_init(&tc);
6750 return 0;
6752 /* we don't want to execute this kind of nonsense; just for making sure
6753 * that compilation works... */
6754 memset(&op, 0, sizeof(op));
6755 r = theora_decode_header(&inf, &tc, &op);
6756 r = theora_decode_init(&st, &inf);
6757 t = theora_granule_time(&st, op.granulepos);
6758 r = theora_decode_packetin(&st, &op);
6759 r = theora_decode_YUVout(&st, &yuv);
6760 theora_clear(&st);
6762 return 0;
6765 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6766 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6767 cc_check $_inc_theora $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" &&
6768 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6769 if test _theora = no; then
6770 _ld_theora="-ltheora -logg"
6771 cc_check $_ld_theora && extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6773 if test "$_theora" = no && test "$_tremor_internal" = yes; then
6774 _ld_theora=$($_pkg_config --silence-errors --libs theora)
6775 _inc_theora=$($_pkg_config --silence-errors --cflags theora)
6776 cc_check tremor/bitwise.c $_inc_theora $_ld_theora &&
6777 extra_ldflags="$extra_ldflags $_ld_theora" &&
6778 extra_cflags="$extra_cflags $_inc_theora" && _theora=yes
6779 if test _theora = no; then
6780 _ld_theora="-ltheora -logg"
6781 cc_check tremor/bitwise.c $_ld_theora &&
6782 extra_ldflags="$extra_ldflags $_ld_theora" && _theora=yes
6786 if test "$_theora" = yes ; then
6787 def_theora='#define CONFIG_OGGTHEORA 1'
6788 codecmodules="libtheora $codecmodules"
6789 # when --enable-theora is forced, we'd better provide a probably sane
6790 # $_ld_theora than nothing
6791 test -z "$_ld_theora" && extra_ldflags="$extra_ldflags -ltheora -logg"
6792 else
6793 def_theora='#undef CONFIG_OGGTHEORA'
6794 nocodecmodules="libtheora $nocodecmodules"
6796 echores "$_theora"
6798 echocheck "mp3lib support"
6799 if test "$_mp3lib" = auto ; then
6800 test "$cc_vendor" = intel && test "$_cc_major" -le 10 -o "$_cc_major" -eq 11 -a "$_cc_minor" -eq 0 && _mp3lib=no || _mp3lib=yes
6802 if test "$_mp3lib" = yes ; then
6803 def_mp3lib='#define CONFIG_MP3LIB 1'
6804 codecmodules="mp3lib(internal) $codecmodules"
6805 else
6806 def_mp3lib='#undef CONFIG_MP3LIB'
6807 nocodecmodules="mp3lib(internal) $nocodecmodules"
6809 echores "$_mp3lib"
6811 echocheck "liba52 support"
6812 def_liba52='#undef CONFIG_LIBA52'
6813 if test "$_liba52" = auto ; then
6814 _liba52=no
6815 cat > $TMPC << EOF
6816 #include <inttypes.h>
6817 #include <a52dec/a52.h>
6818 int main(void) { a52_state_t *testHand; testHand=a52_init(0); return 0; }
6820 cc_check -la52 && _liba52=yes && extra_ldflags="$extra_ldflags -la52"
6822 if test "$_liba52" = yes ; then
6823 def_liba52='#define CONFIG_LIBA52 1'
6824 codecmodules="liba52 $codecmodules"
6825 else
6826 nocodecmodules="liba52 $nocodecmodules"
6828 echores "$_liba52"
6830 echocheck "internal libmpeg2 support"
6831 if test "$_libmpeg2" = auto ; then
6832 _libmpeg2=yes
6833 if alpha && test cc_vendor=gnu; then
6834 case $cc_version in
6835 2*|3.0*|3.1*) # cannot compile MVI instructions
6836 _libmpeg2=no
6837 res_comment="broken gcc"
6839 esac
6842 if test "$_libmpeg2" = yes ; then
6843 def_libmpeg2='#define CONFIG_LIBMPEG2 1'
6844 codecmodules="libmpeg2(internal) $codecmodules"
6845 else
6846 def_libmpeg2='#undef CONFIG_LIBMPEG2'
6847 nocodecmodules="libmpeg2(internal) $nocodecmodules"
6849 echores "$_libmpeg2"
6851 echocheck "libdca support"
6852 if test "$_libdca" = auto ; then
6853 _libdca=no
6854 cat > $TMPC << EOF
6855 #include <inttypes.h>
6856 #include <dts.h>
6857 int main(void) { dts_init(0); return 0; }
6859 for _ld_dca in -ldca -ldts ; do
6860 cc_check $_ld_dca $_ld_lm && extra_ldflags="$extra_ldflags $_ld_dca" \
6861 && _libdca=yes && break
6862 done
6864 if test "$_libdca" = yes ; then
6865 def_libdca='#define CONFIG_LIBDCA 1'
6866 codecmodules="libdca $codecmodules"
6867 else
6868 def_libdca='#undef CONFIG_LIBDCA'
6869 nocodecmodules="libdca $nocodecmodules"
6871 echores "$_libdca"
6873 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
6874 if test "$_musepack" = auto ; then
6875 _musepack=no
6876 cat > $TMPC << EOF
6877 #include <stddef.h>
6878 #include <mpcdec/mpcdec.h>
6879 int main(void) {
6880 mpc_streaminfo info;
6881 mpc_decoder decoder;
6882 mpc_decoder_set_streaminfo(&decoder, &info);
6883 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
6884 return 0;
6887 cc_check -lmpcdec $_ld_lm && _musepack=yes
6889 if test "$_musepack" = yes ; then
6890 def_musepack='#define CONFIG_MUSEPACK 1'
6891 extra_ldflags="$extra_ldflags -lmpcdec"
6892 codecmodules="musepack $codecmodules"
6893 else
6894 def_musepack='#undef CONFIG_MUSEPACK'
6895 nocodecmodules="musepack $nocodecmodules"
6897 echores "$_musepack"
6900 echocheck "FAAC support"
6901 if test "$_faac" = auto ; then
6902 cat > $TMPC <<EOF
6903 #include <inttypes.h>
6904 #include <faac.h>
6905 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
6907 _faac=no
6908 for _ld_faac in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
6909 cc_check $_ld_faac $_ld_lm && libs_mencoder="$libs_mencoder $_ld_faac" && _faac=yes && break
6910 done
6912 if test "$_faac" = yes ; then
6913 def_faac="#define CONFIG_FAAC 1"
6914 test "$_faac_lavc" = auto && _faac_lavc=yes
6915 if test "$_faac_lavc" = yes ; then
6916 def_faac_lavc="#define CONFIG_LIBFAAC 1"
6917 libs_mplayer="$libs_mplayer $_ld_faac"
6918 _libavencoders="$_libavencoders LIBFAAC_ENCODER"
6920 codecmodules="faac $codecmodules"
6921 else
6922 _faac_lavc=no
6923 def_faac="#undef CONFIG_FAAC"
6924 def_faac_lavc="#define CONFIG_LIBFAAC 0"
6925 nocodecmodules="faac $nocodecmodules"
6927 res_comment="in libavcodec: $_faac_lavc"
6928 echores "$_faac"
6931 echocheck "FAAD2 support"
6932 if test "$_faad_internal" = auto ; then
6933 if x86_32 && test cc_vendor=gnu; then
6934 case $cc_version in
6935 3.1*|3.2) # ICE/insn with these versions
6936 _faad_internal=no
6937 res_comment="broken gcc"
6940 _faad=yes
6941 _faad_internal=yes
6943 esac
6944 else
6945 _faad=yes
6946 _faad_internal=yes
6949 if test "$_faad" = auto ; then
6950 cat > $TMPC << EOF
6951 #include <faad.h>
6952 #ifndef FAAD_MIN_STREAMSIZE
6953 #error Too old version
6954 #endif
6955 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo;
6956 testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
6958 cc_check -lfaad $_ld_lm && _faad=yes
6961 def_faad='#undef CONFIG_FAAD'
6962 def_faad_internal="#undef CONFIG_FAAD_INTERNAL"
6963 if test "$_faad_internal" = yes ; then
6964 def_faad_internal="#define CONFIG_FAAD_INTERNAL 1"
6965 res_comment="internal floating-point"
6966 if test "$_faad_fixed" = yes ; then
6967 # The FIXED_POINT implementation of FAAD2 improves performance
6968 # on some platforms, especially for SBR files.
6969 cflags_faad_fixed="-DFIXED_POINT"
6970 res_comment="internal fixed-point"
6972 elif test "$_faad" = yes ; then
6973 extra_ldflags="$extra_ldflags -lfaad"
6976 if test "$_faad" = yes ; then
6977 def_faad='#define CONFIG_FAAD 1'
6978 if test "$_faad_internal" = yes ; then
6979 codecmodules="faad2(internal) $codecmodules"
6980 else
6981 codecmodules="faad2 $codecmodules"
6983 else
6984 _faad=no
6985 nocodecmodules="faad2 $nocodecmodules"
6987 echores "$_faad"
6990 echocheck "LADSPA plugin support"
6991 if test "$_ladspa" = auto ; then
6992 cat > $TMPC <<EOF
6993 #include <stdio.h>
6994 #include <ladspa.h>
6995 int main(void) {
6996 const LADSPA_Descriptor *ld = NULL;
6997 return 0;
7000 _ladspa=no
7001 cc_check && _ladspa=yes
7003 if test "$_ladspa" = yes; then
7004 def_ladspa="#define CONFIG_LADSPA 1"
7005 else
7006 def_ladspa="#undef CONFIG_LADSPA"
7008 echores "$_ladspa"
7011 echocheck "libbs2b audio filter support"
7012 if test "$_libbs2b" = auto ; then
7013 cat > $TMPC <<EOF
7014 #include <bs2b.h>
7015 #if BS2B_VERSION_MAJOR < 3
7016 #error Please use libbs2b >= 3.0.0, older versions are not supported.
7017 #endif
7018 int main(void) {
7019 t_bs2bdp filter;
7020 filter=bs2b_open();
7021 bs2b_close(filter);
7022 return 0;
7025 _libbs2b=no
7026 if $_pkg_config --exists libbs2b ; then
7027 _inc_tmp=$($_pkg_config --cflags libbs2b)
7028 _ld_tmp=$($_pkg_config --libs libbs2b)
7029 cc_check $_inc_tmp $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" &&
7030 extra_cflags="$extra_cflags $_inc_tmp" && _libbs2b=yes
7031 else
7032 for _inc_tmp in "" -I/usr/include/bs2b -I/usr/local/include \
7033 -I/usr/local/include/bs2b ; do
7034 if cc_check $_inc_tmp $_ld_lm -lbs2b ; then
7035 extra_ldflags="$extra_ldflags -lbs2b"
7036 extra_cflags="$extra_cflags $_inc_tmp"
7037 _libbs2b=yes
7038 break
7040 done
7043 def_libbs2b="#undef CONFIG_LIBBS2B"
7044 test "$_libbs2b" = yes && def_libbs2b="#define CONFIG_LIBBS2B 1"
7045 echores "$_libbs2b"
7048 if test -z "$_codecsdir" ; then
7049 for dir in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs \
7050 /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
7051 if test -d "$dir" ; then
7052 _codecsdir="$dir"
7053 break;
7055 done
7057 # Fall back on default directory.
7058 if test -z "$_codecsdir" ; then
7059 _codecsdir="$_libdir/codecs"
7060 mingw32 || os2 && _codecsdir="codecs"
7064 echocheck "Win32 codecs"
7065 if test "$_win32dll" = auto ; then
7066 _win32dll=no
7067 if x86_32 && ! qnx; then
7068 _win32dll=yes
7071 if test "$_win32dll" = yes ; then
7072 def_win32dll='#define CONFIG_WIN32DLL 1'
7073 if ! win32 ; then
7074 def_win32_loader='#define WIN32_LOADER 1'
7075 _win32_emulation=yes
7076 else
7077 extra_ldflags="$extra_ldflags -ladvapi32 -lole32"
7078 res_comment="using native windows"
7080 codecmodules="win32 $codecmodules"
7081 else
7082 def_win32dll='#undef CONFIG_WIN32DLL'
7083 def_win32_loader='#undef WIN32_LOADER'
7084 nocodecmodules="win32 $nocodecmodules"
7086 echores "$_win32dll"
7089 echocheck "XAnim codecs"
7090 if test "$_xanim" = auto ; then
7091 _xanim=no
7092 res_comment="dynamic loader support needed"
7093 if test "$_dl" = yes ; then
7094 _xanim=yes
7097 if test "$_xanim" = yes ; then
7098 def_xanim='#define CONFIG_XANIM 1'
7099 codecmodules="xanim $codecmodules"
7100 else
7101 def_xanim='#undef CONFIG_XANIM'
7102 nocodecmodules="xanim $nocodecmodules"
7104 echores "$_xanim"
7107 echocheck "RealPlayer codecs"
7108 if test "$_real" = auto ; then
7109 _real=no
7110 res_comment="dynamic loader support needed"
7111 if test "$_dl" = yes || test "$_win32dll" = yes &&
7112 (linux || freebsd || netbsd || openbsd || dragonfly || darwin || win32 || os2) ; then
7113 _real=yes
7116 if test "$_real" = yes ; then
7117 def_real='#define CONFIG_REALCODECS 1'
7118 codecmodules="real $codecmodules"
7119 else
7120 def_real='#undef CONFIG_REALCODECS'
7121 nocodecmodules="real $nocodecmodules"
7123 echores "$_real"
7126 echocheck "QuickTime codecs"
7127 _qtx_emulation=no
7128 def_qtx_win32='#undef CONFIG_QTX_CODECS_WIN32'
7129 if test "$_qtx" = auto ; then
7130 test "$_win32dll" = yes || test "$quicktime" = yes && _qtx=yes
7132 if test "$_qtx" = yes ; then
7133 def_qtx='#define CONFIG_QTX_CODECS 1'
7134 win32 && _qtx_codecs_win32=yes && def_qtx_win32='#define CONFIG_QTX_CODECS_WIN32 1'
7135 codecmodules="qtx $codecmodules"
7136 darwin || win32 || _qtx_emulation=yes
7137 else
7138 def_qtx='#undef CONFIG_QTX_CODECS'
7139 nocodecmodules="qtx $nocodecmodules"
7141 echores "$_qtx"
7143 echocheck "Nemesi Streaming Media libraries"
7144 if test "$_nemesi" = auto && test "$_network" = yes ; then
7145 _nemesi=no
7146 if $_pkg_config libnemesi --atleast-version=0.6.3 ; then
7147 extra_cflags="$extra_cflags $($_pkg_config --cflags libnemesi)"
7148 extra_ldflags="$extra_ldflags $($_pkg_config --libs libnemesi)"
7149 _nemesi=yes
7152 if test "$_nemesi" = yes; then
7153 _native_rtsp=no
7154 def_nemesi='#define CONFIG_LIBNEMESI 1'
7155 inputmodules="nemesi $inputmodules"
7156 else
7157 _native_rtsp="$_network"
7158 _nemesi=no
7159 def_nemesi='#undef CONFIG_LIBNEMESI'
7160 noinputmodules="nemesi $noinputmodules"
7162 echores "$_nemesi"
7164 echocheck "LIVE555 Streaming Media libraries"
7165 if test "$_live" = auto && test "$_network" = yes ; then
7166 cat > $TMPCPP << EOF
7167 #include <liveMedia.hh>
7168 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1141257600)
7169 #error Please upgrade to version 2006.03.03 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
7170 #endif
7171 int main(void) { return 0; }
7174 _live=no
7175 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
7176 cxx_check $I/liveMedia/include $I/UsageEnvironment/include \
7177 $I/groupsock/include && _livelibdir=$(echo $I| sed s/-I//) && \
7178 extra_ldflags="$_livelibdir/liveMedia/libliveMedia.a \
7179 $_livelibdir/groupsock/libgroupsock.a \
7180 $_livelibdir/UsageEnvironment/libUsageEnvironment.a \
7181 $_livelibdir/BasicUsageEnvironment/libBasicUsageEnvironment.a \
7182 $extra_ldflags -lstdc++" \
7183 extra_cxxflags="-I$_livelibdir/liveMedia/include \
7184 -I$_livelibdir/UsageEnvironment/include \
7185 -I$_livelibdir/BasicUsageEnvironment/include \
7186 -I$_livelibdir/groupsock/include" && \
7187 _live=yes && break
7188 done
7189 if test "$_live" != yes ; then
7190 ld_tmp="-lliveMedia -lgroupsock -lUsageEnvironment -lBasicUsageEnvironment -lstdc++"
7191 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock $ld_tmp; then
7192 _live_dist=yes
7196 if test "$_live" = yes && test "$_network" = yes; then
7197 test $_livelibdir && res_comment="using $_livelibdir"
7198 def_live='#define CONFIG_LIVE555 1'
7199 inputmodules="live555 $inputmodules"
7200 elif test "$_live_dist" = yes && test "$_network" = yes; then
7201 res_comment="using distribution version"
7202 _live="yes"
7203 def_live='#define CONFIG_LIVE555 1'
7204 extra_ldflags="$extra_ldflags $ld_tmp"
7205 extra_cxxflags="-I/usr/include/liveMedia -I/usr/include/UsageEnvironment \
7206 -I/usr/include/BasicUsageEnvironment -I/usr/include/groupsock"
7207 inputmodules="live555 $inputmodules"
7208 else
7209 _live=no
7210 def_live='#undef CONFIG_LIVE555'
7211 noinputmodules="live555 $noinputmodules"
7213 echores "$_live"
7216 echocheck "FFmpeg libavutil"
7217 if test "$_libavutil_a" = auto ; then
7218 if test -d libavutil ; then
7219 _libavutil_a=yes
7220 res_comment="static"
7221 else
7222 die "MPlayer will not compile without libavutil in the source tree."
7224 elif test "$_libavutil_so" = auto ; then
7225 _libavutil_so=no
7226 cat > $TMPC << EOF
7227 #include <libavutil/common.h>
7228 int main(void) { av_clip(1, 1, 1); return 0; }
7230 if $_pkg_config --exists libavutil ; then
7231 _inc_libavutil=$($_pkg_config --cflags libavutil)
7232 _ld_tmp=$($_pkg_config --libs libavutil)
7233 cc_check $_inc_libavutil $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7234 && _libavutil_so=yes
7235 elif cc_check -lavutil $_ld_lm ; then
7236 extra_ldflags="$extra_ldflags -lavutil"
7237 _libavutil_so=yes
7238 res_comment="using libavutil.so, but static libavutil is recommended"
7241 _libavutil=no
7242 def_libavutil='#undef CONFIG_LIBAVUTIL'
7243 def_libavutil_a='#undef CONFIG_LIBAVUTIL_A'
7244 def_libavutil_so='#undef CONFIG_LIBAVUTIL_SO'
7245 test "$_libavutil_a" = yes || test "$_libavutil_so" = yes && _libavutil=yes
7246 test "$_libavutil" = yes && def_libavutil='#define CONFIG_LIBAVUTIL 1'
7247 test "$_libavutil_a" = yes && def_libavutil_a='#define CONFIG_LIBAVUTIL_A 1'
7248 test "$_libavutil_so" = yes && def_libavutil_so='#define CONFIG_LIBAVUTIL_SO 1'
7249 # neither static nor shared libavutil is available, but it is mandatory ...
7250 if test "$_libavutil" = no ; then
7251 die "You need static or shared libavutil, MPlayer will not compile without!"
7253 echores "$_libavutil"
7255 echocheck "FFmpeg libavcodec"
7256 if test "$_libavcodec_a" = auto ; then
7257 _libavcodec_a=no
7258 if test -d libavcodec && test -f libavcodec/utils.c ; then
7259 _libavcodec_a="yes"
7260 res_comment="static"
7262 elif test "$_libavcodec_so" = auto ; then
7263 _libavcodec_so=no
7264 res_comment="libavcodec.so is discouraged over static libavcodec"
7265 cat > $TMPC << EOF
7266 #include <libavcodec/avcodec.h>
7267 int main(void) { avcodec_find_encoder_by_name(""); return 0; }
7269 if $_pkg_config --exists libavcodec ; then
7270 _inc_libavcodec=$($_pkg_config --cflags libavcodec)
7271 _ld_tmp=$($_pkg_config --libs libavcodec)
7272 cc_check $_inc_libavcodec $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7273 && _libavcodec_so=yes
7274 elif cc_check -lavcodec $_ld_lm ; then
7275 extra_ldflags="$extra_ldflags -lavcodec"
7276 _libavcodec_so=yes
7277 res_comment="using libavcodec.so, but static libavcodec is recommended"
7280 _libavcodec=no
7281 def_libavcodec='#undef CONFIG_LIBAVCODEC'
7282 def_libavcodec_a='#undef CONFIG_LIBAVCODEC_A'
7283 def_libavcodec_so='#undef CONFIG_LIBAVCODEC_SO'
7284 test "$_libavcodec_a" = yes || test "$_libavcodec_so" = yes && _libavcodec=yes
7285 test "$_libavcodec" = yes && def_libavcodec='#define CONFIG_LIBAVCODEC 1'
7286 test "$_libavcodec_a" = yes && def_libavcodec_a='#define CONFIG_LIBAVCODEC_A 1'
7287 test "$_libavcodec_so" = yes && def_libavcodec_so='#define CONFIG_LIBAVCODEC_SO 1'
7288 test "$_libavcodec_mpegaudio_hp" = yes \
7289 && def_libavcodec_mpegaudio_hp='#define CONFIG_MPEGAUDIO_HP 1' \
7290 && mak_libavcodec_mpegaudio_hp='CONFIG_MPEGAUDIO_HP = yes'
7291 if test "$_libavcodec_a" = yes ; then
7292 codecmodules="libavcodec(internal) $codecmodules"
7293 elif test "$_libavcodec_so" = yes ; then
7294 codecmodules="libavcodec.so $codecmodules"
7295 else
7296 nocodecmodules="libavcodec $nocodecmodules"
7298 echores "$_libavcodec"
7300 echocheck "FFmpeg libavformat"
7301 if test "$_libavformat_a" = auto ; then
7302 _libavformat_a=no
7303 if test -d libavformat && test -f libavformat/utils.c ; then
7304 _libavformat_a=yes
7305 res_comment="static"
7307 elif test "$_libavformat_so" = auto ; then
7308 _libavformat_so=no
7309 cat > $TMPC <<EOF
7310 #include <libavformat/avformat.h>
7311 #include <libavcodec/opt.h>
7312 int main(void) { av_alloc_format_context(); return 0; }
7314 if $_pkg_config --exists libavformat ; then
7315 _inc_libavformat=$($_pkg_config --cflags libavformat)
7316 _ld_tmp=$($_pkg_config --libs libavformat)
7317 cc_check $_inc_libavformat $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7318 && _libavformat_so=yes
7319 elif cc_check $_ld_lm -lavformat ; then
7320 extra_ldflags="$extra_ldflags -lavformat"
7321 _libavformat_so=yes
7322 res_comment="using libavformat.so, but static libavformat is recommended"
7325 _libavformat=no
7326 def_libavformat='#undef CONFIG_LIBAVFORMAT'
7327 def_libavformat_a='#undef CONFIG_LIBAVFORMAT_A'
7328 def_libavformat_so='#undef CONFIG_LIBAVFORMAT_SO'
7329 test "$_libavformat_a" = yes || test "$_libavformat_so" = yes && _libavformat=yes
7330 test "$_libavformat" = yes && def_libavformat='#define CONFIG_LIBAVFORMAT 1'
7331 test "$_libavformat_a" = yes && def_libavformat_a='#define CONFIG_LIBAVFORMAT_A 1'
7332 test "$_libavformat_so" = yes \
7333 && def_libavformat_so='#define CONFIG_LIBAVFORMAT_SO 1'
7334 echores "$_libavformat"
7336 echocheck "FFmpeg libpostproc"
7337 if test "$_libpostproc_a" = auto ; then
7338 _libpostproc_a=no
7339 if test -d libpostproc && test -f libpostproc/postprocess.h ; then
7340 _libpostproc_a='yes'
7341 res_comment="static"
7343 elif test "$_libpostproc_so" = auto ; then
7344 _libpostproc_so=no
7345 cat > $TMPC << EOF
7346 #include <inttypes.h>
7347 #include <libpostproc/postprocess.h>
7348 int main(void) { pp_get_mode_by_name_and_quality("de", 0); return 0; }
7350 if cc_check -lpostproc $_ld_lm ; then
7351 extra_ldflags="$extra_ldflags -lpostproc"
7352 _libpostproc_so=yes
7353 res_comment="using libpostproc.so, but static libpostproc is recommended"
7356 _libpostproc=no
7357 def_libpostproc='#undef CONFIG_LIBPOSTPROC'
7358 def_libpostproc_a='#undef CONFIG_LIBPOSTPROC_A'
7359 def_libpostproc_so='#undef CONFIG_LIBPOSTPROC_SO'
7360 test "$_libpostproc_a" = yes || test "$_libpostproc_so" = yes && _libpostproc=yes
7361 test "$_libpostproc" = yes && def_libpostproc='#define CONFIG_LIBPOSTPROC 1'
7362 test "$_libpostproc_a" = yes && def_libpostproc_a='#define CONFIG_LIBPOSTPROC_A 1'
7363 test "$_libpostproc_so" = yes \
7364 && def_libpostproc_so='#define CONFIG_LIBPOSTPROC_SO 1'
7365 echores "$_libpostproc"
7367 echocheck "FFmpeg libswscale"
7368 if test "$_libswscale_a" = auto ; then
7369 _libswscale_a=no
7370 if test -d libswscale && test -f libswscale/swscale.h ; then
7371 _libswscale_a='yes'
7372 res_comment="static"
7374 elif test "$_libswscale_so" = auto ; then
7375 _libswscale_so=no
7376 res_comment="using libswscale.so, but static libswscale is recommended"
7377 cat > $TMPC << EOF
7378 #include <libswscale/swscale.h>
7379 int main(void) { sws_scale(0, 0, 0, 0, 0, 0, 0); return 0; }
7381 if $_pkg_config --exists libswscale ; then
7382 _inc_libswscale=$($_pkg_config --cflags libswscale)
7383 _ld_tmp=$($_pkg_config --libs libswscale)
7384 cc_check $_inc_libswscale $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" \
7385 && _libswscale_so=yes
7386 elif cc_check -lswscale ; then
7387 extra_ldflags="$extra_ldflags -lswscale"
7388 _libswscale_so=yes
7391 _libswscale=no
7392 def_libswscale='#undef CONFIG_LIBSWSCALE'
7393 def_libswscale_a='#undef CONFIG_LIBSWSCALE_A'
7394 def_libswscale_so='#undef CONFIG_LIBSWSCALE_SO'
7395 test "$_libswscale_a" = yes || test "$_libswscale_so" = yes && _libswscale=yes
7396 test "$_libswscale" = yes && def_libswscale='#define CONFIG_LIBSWSCALE 1'
7397 test "$_libswscale_a" = yes && def_libswscale_a='#define CONFIG_LIBSWSCALE_A 1'
7398 test "$_libswscale_so" = yes \
7399 && def_libswscale_so='#define CONFIG_LIBSWSCALE_SO 1'
7400 echores "$_libswscale"
7402 echocheck "libopencore_amr narrowband"
7403 if test "$_libopencore_amrnb" = auto ; then
7404 _libopencore_amrnb=no
7405 cat > $TMPC << EOF
7406 #include <opencore-amrnb/interf_dec.h>
7407 int main(void) { Decoder_Interface_init(); return 0; }
7409 cc_check -lopencore-amrnb && _libopencore_amrnb=yes
7410 if test "$_libavcodec_a" != yes ; then
7411 _libopencore_amrnb=no
7412 res_comment="libavcodec (static) is required by libopencore_amrnb, sorry"
7415 if test "$_libopencore_amrnb" = yes ; then
7416 _libopencore_amr=yes
7417 extra_ldflags="$extra_ldflags -lopencore-amrnb"
7418 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 1'
7419 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRNB_DECODER"
7420 _libavencoders="$_libavencoders LIBOPENCORE_AMRNB_ENCODER"
7421 codecmodules="libopencore_amrnb $codecmodules"
7422 else
7423 def_libopencore_amrnb='#define CONFIG_LIBOPENCORE_AMRNB 0'
7424 nocodecmodules="libopencore_amrnb $nocodecmodules"
7426 echores "$_libopencore_amrnb"
7429 echocheck "libopencore_amr wideband"
7430 if test "$_libopencore_amrwb" = auto ; then
7431 _libopencore_amrwb=no
7432 cat > $TMPC << EOF
7433 #include <opencore-amrwb/dec_if.h>
7434 int main(void) { D_IF_init(); return 0; }
7436 cc_check -lopencore-amrwb && _libopencore_amrwb=yes
7437 if test "$_libavcodec_a" != yes ; then
7438 _libopencore_amrwb=no
7439 res_comment="libavcodec (static) is required by libopencore_amrwb, sorry"
7442 if test "$_libopencore_amrwb" = yes ; then
7443 _libopencore_amr=yes
7444 extra_ldflags="$extra_ldflags -lopencore-amrwb"
7445 def_libopencore_amrwb='#define CONFIG_LIBOPENCORE_AMRWB 1'
7446 _libavdecoders="$_libavdecoders LIBOPENCORE_AMRWB_DECODER"
7447 codecmodules="libopencore_amrwb $codecmodules"
7448 else
7449 def_libopencore_amrwb='#define LIBOPENCORE_AMRWB 0'
7450 nocodecmodules="libopencore_amrwb $nocodecmodules"
7452 echores "$_libopencore_amrwb"
7454 echocheck "libdv-0.9.5+"
7455 if test "$_libdv" = auto ; then
7456 _libdv=no
7457 cat > $TMPC <<EOF
7458 #include <libdv/dv.h>
7459 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
7461 cc_check -ldv $_ld_pthread $_ld_lm && _libdv=yes
7463 if test "$_libdv" = yes ; then
7464 def_libdv='#define CONFIG_LIBDV095 1'
7465 extra_ldflags="$extra_ldflags -ldv"
7466 codecmodules="libdv $codecmodules"
7467 else
7468 def_libdv='#undef CONFIG_LIBDV095'
7469 nocodecmodules="libdv $nocodecmodules"
7471 echores "$_libdv"
7474 echocheck "Xvid"
7475 if test "$_xvid" = auto ; then
7476 _xvid=no
7477 cat > $TMPC << EOF
7478 #include <xvid.h>
7479 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
7481 for _ld_tmp in "-lxvidcore $_ld_lm" "-lxvidcore $_ld_lm $_ld_pthread" ; do
7482 cc_check $_ld_tmp && extra_ldflags="$extra_ldflags $_ld_tmp" && _xvid=yes && break
7483 done
7486 if test "$_xvid" = yes ; then
7487 def_xvid='#define CONFIG_XVID4 1'
7488 codecmodules="xvid $codecmodules"
7489 else
7490 def_xvid='#undef CONFIG_XVID4'
7491 nocodecmodules="xvid $nocodecmodules"
7493 echores "$_xvid"
7495 echocheck "Xvid two pass plugin"
7496 if test "$_xvid" = yes && test "$_xvid_lavc" = auto ; then
7497 cat > $TMPC << EOF
7498 #include <xvid.h>
7499 int main(void) { xvid_plugin_2pass2_t s; s.vbv_size=0; return 0; }
7501 cc_check && _xvid_lavc=yes
7503 if test "$_xvid_lavc" = yes ; then
7504 def_xvid_lavc='#define CONFIG_LIBXVID 1'
7505 _libavencoders="$_libavencoders LIBXVID_ENCODER"
7506 else
7507 _xvid_lavc=no
7508 def_xvid_lavc='#define CONFIG_LIBXVID 0'
7510 echores "$_xvid_lavc"
7513 echocheck "x264"
7514 if test "$_x264" = auto ; then
7515 cat > $TMPC << EOF
7516 #include <inttypes.h>
7517 #include <x264.h>
7518 #if X264_BUILD < 89
7519 #error We do not support old versions of x264. Get the latest from git.
7520 #endif
7521 int main(void) { x264_encoder_open((void*)0); return 0; }
7523 _x264=no
7524 for _ld_x264 in "-lx264 $_ld_pthread" "-lx264 $_ld_pthread $_ld_lm" ; do
7525 cc_check $_ld_x264 && libs_mencoder="$libs_mencoder $_ld_x264" && _x264=yes && break
7526 done
7529 if test "$_x264" = yes ; then
7530 def_x264='#define CONFIG_X264 1'
7531 codecmodules="x264 $codecmodules"
7532 test "$_x264_lavc" = auto && _x264_lavc=yes
7533 if test "$_x264_lavc" = yes ; then
7534 def_x264_lavc='#define CONFIG_LIBX264 1'
7535 libs_mplayer="$libs_mplayer $_ld_x264"
7536 _libavencoders="$_libavencoders LIBX264_ENCODER"
7538 else
7539 _x264_lavc=no
7540 def_x264='#undef CONFIG_X264'
7541 def_x264_lavc='#define CONFIG_LIBX264 0'
7542 nocodecmodules="x264 $nocodecmodules"
7544 res_comment="in libavcodec: $_x264_lavc"
7545 echores "$_x264"
7548 echocheck "libdirac"
7549 if test "$_libdirac_lavc" = auto; then
7550 _libdirac_lavc=no
7551 if test "$_libavcodec_a" != yes; then
7552 res_comment="libavcodec (static) is required by libdirac, sorry"
7553 else
7554 cat > $TMPC << EOF
7555 #include <libdirac_encoder/dirac_encoder.h>
7556 #include <libdirac_decoder/dirac_parser.h>
7557 int main(void)
7559 dirac_encoder_context_t enc_ctx;
7560 dirac_decoder_t *dec_handle;
7561 dirac_encoder_context_init(&enc_ctx, VIDEO_FORMAT_SD_576I50);
7562 dec_handle = dirac_decoder_init(0);
7563 if (dec_handle)
7564 dirac_decoder_close(dec_handle);
7565 return 0;
7568 if $_pkg_config --exists dirac ; then
7569 _inc_dirac=$($_pkg_config --silence-errors --cflags dirac)
7570 _ld_dirac=$($_pkg_config --silence-errors --libs dirac)
7571 cc_check $_inc_dirac $_ld_dirac &&
7572 _libdirac_lavc=yes &&
7573 extra_cflags="$extra_cflags $_inc_dirac" &&
7574 extra_ldflags="$extra_ldflags $_ld_dirac"
7578 if test "$_libdirac_lavc" = yes ; then
7579 def_libdirac_lavc='#define CONFIG_LIBDIRAC 1'
7580 _libavencoders="$_libavencoders LIBDIRAC_ENCODER"
7581 _libavdecoders="$_libavdecoders LIBDIRAC_DECODER"
7582 codecmodules="libdirac $codecmodules"
7583 else
7584 def_libdirac_lavc='#define CONFIG_LIBDIRAC 0'
7585 nocodecmodules="libdirac $nocodecmodules"
7587 echores "$_libdirac_lavc"
7590 echocheck "libschroedinger"
7591 if test "$_libschroedinger_lavc" = auto ; then
7592 _libschroedinger_lavc=no
7593 if test "$_libavcodec_a" != yes; then
7594 res_comment="libavcodec (static) is required by libschroedinger, sorry"
7595 else
7596 cat > $TMPC << EOF
7597 #include <schroedinger/schro.h>
7598 int main(void) { schro_init(); return SCHRO_ENCODER_RATE_CONTROL_CONSTANT_QUALITY; }
7600 if $_pkg_config --exists schroedinger-1.0 ; then
7601 _inc_schroedinger=$($_pkg_config --silence-errors --cflags schroedinger-1.0)
7602 _ld_schroedinger=$($_pkg_config --silence-errors --libs schroedinger-1.0)
7603 cc_check $_inc_schroedinger $_ld_schroedinger &&
7604 _libschroedinger_lavc=yes &&
7605 extra_cflags="$extra_cflags $_inc_schroedinger" &&
7606 extra_ldflags="$extra_ldflags $_ld_schroedinger"
7610 if test "$_libschroedinger_lavc" = yes ; then
7611 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 1'
7612 _libavencoders="$_libavencoders LIBSCHROEDINGER_ENCODER"
7613 _libavdecoders="$_libavdecoders LIBSCHROEDINGER_DECODER"
7614 codecmodules="libschroedinger $codecmodules"
7615 else
7616 def_libschroedinger_lavc='#define CONFIG_LIBSCHROEDINGER 0'
7617 nocodecmodules="libschroedinger $nocodecmodules"
7619 echores "$_libschroedinger_lavc"
7621 echocheck "libvpx"
7622 if test "$_libvpx_lavc" = auto; then
7623 _libvpx_lavc=no
7624 if test "$_libavcodec_a" != yes; then
7625 res_comment="libavcodec (static) is required by libvpx, sorry"
7626 else
7627 cat > $TMPC << EOF
7628 #include <vpx/vpx_decoder.h>
7629 #include <vpx/vp8dx.h>
7630 int main(void) { vpx_codec_dec_init(NULL, &vpx_codec_vp8_dx_algo, NULL, 0); return 0; }
7632 cc_check -lvpx && _libvpx_lavc=yes && extra_ldflags="$extra_ldflags -lvpx"
7635 if test "$_libvpx_lavc" = yes ; then
7636 def_libvpx_lavc='#define CONFIG_LIBVPX 1'
7637 _libavdecoders="$_libavdecoders LIBVPX_DECODER"
7638 codecmodules="libvpx $codecmodules"
7639 else
7640 def_libvpx_lavc='#define CONFIG_LIBVPX 0'
7641 nocodecmodules="libvpx $nocodecmodules"
7643 echores "$_libvpx_lavc"
7645 echocheck "libnut"
7646 if test "$_libnut" = auto ; then
7647 cat > $TMPC << EOF
7648 #include <stdio.h>
7649 #include <stdlib.h>
7650 #include <inttypes.h>
7651 #include <libnut.h>
7652 nut_context_tt * nut;
7653 int main(void) { (void)nut_error(0); return 0; }
7655 _libnut=no
7656 cc_check -lnut && _libnut=yes
7659 if test "$_libnut" = yes ; then
7660 def_libnut='#define CONFIG_LIBNUT 1'
7661 extra_ldflags="$extra_ldflags -lnut"
7662 else
7663 def_libnut='#undef CONFIG_LIBNUT'
7665 echores "$_libnut"
7667 #check must be done after libavcodec one
7668 echocheck "zr"
7669 if test "$_zr" = auto ; then
7670 #36067's seem to identify themselves as 36057PQC's, so the line
7671 #below should work for 36067's and 36057's.
7672 if grep -q -s -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci ; then
7673 _zr=yes
7674 else
7675 _zr=no
7678 if test "$_zr" = yes ; then
7679 if test "$_libavcodec_a" = yes ; then
7680 def_zr='#define CONFIG_ZR 1'
7681 vomodules="zr zr2 $vomodules"
7682 else
7683 res_comment="libavcodec (static) is required by zr, sorry"
7684 novomodules="zr $novomodules"
7685 def_zr='#undef CONFIG_ZR'
7687 else
7688 def_zr='#undef CONFIG_ZR'
7689 novomodules="zr zr2 $novomodules"
7691 echores "$_zr"
7693 # mencoder requires (optional) those libs: libmp3lame
7694 if test "$_mencoder" != no ; then
7696 echocheck "libmp3lame"
7697 def_mp3lame_preset='#undef CONFIG_MP3LAME_PRESET'
7698 def_mp3lame_preset_medium='#undef CONFIG_MP3LAME_PRESET_MEDIUM'
7699 if test "$_mp3lame" = auto ; then
7700 _mp3lame=no
7701 cat > $TMPC <<EOF
7702 #include <lame/lame.h>
7703 int main(void) { lame_version_t lv; (void) lame_init();
7704 get_lame_version_numerical(&lv);
7705 return 0; }
7707 cc_check -lmp3lame $_ld_lm && _mp3lame=yes
7709 if test "$_mp3lame" = yes ; then
7710 def_mp3lame="#define CONFIG_MP3LAME 1"
7711 _ld_mp3lame=-lmp3lame
7712 libs_mencoder="$libs_mencoder $_ld_mp3lame"
7713 cat > $TMPC << EOF
7714 #include <lame/lame.h>
7715 int main(void) { lame_set_preset(NULL, STANDARD_FAST); return 0; }
7717 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset="#define CONFIG_MP3LAME_PRESET 1"
7718 cat > $TMPC << EOF
7719 #include <lame/lame.h>
7720 int main(void) { lame_set_preset(NULL, MEDIUM_FAST); return 0; }
7722 cc_check $_ld_mp3lame $_ld_lm && def_mp3lame_preset_medium="#define CONFIG_MP3LAME_PRESET_MEDIUM 1"
7723 test "$_mp3lame_lavc" = auto && _mp3lame_lavc=yes
7724 if test "$_mp3lame_lavc" = yes ; then
7725 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 1"
7726 _libavencoders="$_libavencoders LIBMP3LAME_ENCODER"
7727 libs_mplayer="$libs_mplayer $_ld_mp3lame"
7729 else
7730 _mp3lame_lavc=no
7731 def_mp3lame='#undef CONFIG_MP3LAME'
7732 def_mp3lame_lavc="#define CONFIG_LIBMP3LAME 0"
7734 res_comment="in libavcodec: $_mp3lame_lavc"
7735 echores "$_mp3lame"
7737 fi # test "$_mencoder" != no
7739 echocheck "mencoder"
7740 if test "$_mencoder" = yes ; then
7741 def_muxers='#define CONFIG_MUXERS 1'
7742 else
7743 # mpeg1video for vf_lavc, snow for vf_uspp / vf_mcdeint,
7744 # png for vf_screenshot, mjpeg for zr
7745 _libavencoders="MPEG1VIDEO_ENCODER SNOW_ENCODER"
7746 test "$_zlib" = yes && _libavencoders="$_libavencoders PNG_ENCODER"
7747 test "$_zr" = yes && _libavencoders="$_libavencoders MJPEG_ENCODER"
7748 _libavmuxers=""
7749 def_muxers='#define CONFIG_MUXERS 0'
7751 echores "$_mencoder"
7754 echocheck "UnRAR executable"
7755 if test "$_unrar_exec" = auto ; then
7756 _unrar_exec="yes"
7757 mingw32 && _unrar_exec="no"
7759 if test "$_unrar_exec" = yes ; then
7760 def_unrar_exec='#define CONFIG_UNRAR_EXEC 1'
7761 else
7762 def_unrar_exec='#undef CONFIG_UNRAR_EXEC'
7764 echores "$_unrar_exec"
7766 echocheck "TV interface"
7767 if test "$_tv" = yes ; then
7768 def_tv='#define CONFIG_TV 1'
7769 inputmodules="tv $inputmodules"
7770 else
7771 noinputmodules="tv $noinputmodules"
7772 def_tv='#undef CONFIG_TV'
7774 echores "$_tv"
7777 if freebsd || netbsd || openbsd || dragonfly || bsdos ; then
7778 echocheck "*BSD BT848 bt8xx header"
7779 _ioctl_bt848_h=no
7780 for file in "machine/ioctl_bt848.h" \
7781 "dev/bktr/ioctl_bt848.h" \
7782 "dev/video/bktr/ioctl_bt848.h" \
7783 "dev/ic/bt8xx.h" ; do
7784 cat > $TMPC <<EOF
7785 #include <sys/types.h>
7786 #include <sys/ioctl.h>
7787 #include <$file>
7788 int main(void) { ioctl(0, TVTUNER_GETFREQ, 0); return 0; }
7790 if cc_check ; then
7791 _ioctl_bt848_h=yes
7792 _ioctl_bt848_h_name="$file"
7793 break;
7795 done
7796 if test "$_ioctl_bt848_h" = yes ; then
7797 def_ioctl_bt848_h_name="#define IOCTL_BT848_H_NAME <$_ioctl_bt848_h_name>"
7798 res_comment="using $_ioctl_bt848_h_name"
7799 else
7800 def_ioctl_bt848_h_name="#undef IOCTL_BT848_H_NAME"
7802 echores "$_ioctl_bt848_h"
7804 echocheck "*BSD ioctl_meteor.h"
7805 _ioctl_meteor_h=no
7806 for file in "machine/ioctl_meteor.h" \
7807 "dev/bktr/ioctl_meteor.h" \
7808 "dev/video/bktr/ioctl_meteor.h" ; do
7809 cat > $TMPC <<EOF
7810 #include <sys/types.h>
7811 #include <$file>
7812 int main(void) { ioctl(0, METEORSINPUT, 0); return 0; }
7814 if cc_check ; then
7815 _ioctl_meteor_h=yes
7816 _ioctl_meteor_h_name="$file"
7817 break;
7819 done
7820 if test "$_ioctl_meteor_h" = yes ; then
7821 def_ioctl_meteor_h_name="#define IOCTL_METEOR_H_NAME <$_ioctl_meteor_h_name>"
7822 res_comment="using $_ioctl_meteor_h_name"
7823 else
7824 def_ioctl_meteor_h_name="#undef IOCTL_METEOR_H_NAME"
7826 echores "$_ioctl_meteor_h"
7828 echocheck "*BSD BrookTree 848 TV interface"
7829 if test "$_tv_bsdbt848" = auto ; then
7830 _tv_bsdbt848=no
7831 if test "$_tv" = yes ; then
7832 cat > $TMPC <<EOF
7833 #include <sys/types.h>
7834 $def_ioctl_meteor_h_name
7835 $def_ioctl_bt848_h_name
7836 #ifdef IOCTL_METEOR_H_NAME
7837 #include IOCTL_METEOR_H_NAME
7838 #endif
7839 #ifdef IOCTL_BT848_H_NAME
7840 #include IOCTL_BT848_H_NAME
7841 #endif
7842 int main(void) {
7843 ioctl(0, METEORSINPUT, 0);
7844 ioctl(0, TVTUNER_GETFREQ, 0);
7845 return 0;
7848 cc_check && _tv_bsdbt848=yes
7851 if test "$_tv_bsdbt848" = yes ; then
7852 def_tv_bsdbt848='#define CONFIG_TV_BSDBT848 1'
7853 inputmodules="tv-bsdbt848 $inputmodules"
7854 else
7855 def_tv_bsdbt848='#undef CONFIG_TV_BSDBT848'
7856 noinputmodules="tv-bsdbt848 $noinputmodules"
7858 echores "$_tv_bsdbt848"
7859 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos
7862 echocheck "DirectShow TV interface"
7863 if test "$_tv_dshow" = auto ; then
7864 _tv_dshow=no
7865 if test "$_tv" = yes && win32 ; then
7866 cat > $TMPC <<EOF
7867 #include <ole2.h>
7868 int main(void) {
7869 void* p;
7870 CoCreateInstance((GUID*)&GUID_NULL, NULL, CLSCTX_INPROC_SERVER, &GUID_NULL, &p);
7871 return 0;
7874 cc_check -lole32 -luuid && _tv_dshow=yes
7877 if test "$_tv_dshow" = yes ; then
7878 inputmodules="tv-dshow $inputmodules"
7879 def_tv_dshow='#define CONFIG_TV_DSHOW 1'
7880 extra_ldflags="$extra_ldflags -lole32 -luuid"
7881 else
7882 noinputmodules="tv-dshow $noinputmodules"
7883 def_tv_dshow='#undef CONFIG_TV_DSHOW'
7885 echores "$_tv_dshow"
7888 echocheck "Video 4 Linux TV interface"
7889 if test "$_tv_v4l1" = auto ; then
7890 _tv_v4l1=no
7891 if test "$_tv" = yes && linux ; then
7892 cat > $TMPC <<EOF
7893 #include <stdlib.h>
7894 #include <linux/videodev.h>
7895 int main(void) { return 0; }
7897 cc_check && _tv_v4l1=yes
7900 if test "$_tv_v4l1" = yes ; then
7901 _audio_input=yes
7902 _tv_v4l=yes
7903 def_tv_v4l='#define CONFIG_TV_V4L 1'
7904 def_tv_v4l1='#define CONFIG_TV_V4L1 1'
7905 inputmodules="tv-v4l $inputmodules"
7906 else
7907 noinputmodules="tv-v4l1 $noinputmodules"
7908 def_tv_v4l='#undef CONFIG_TV_V4L'
7910 echores "$_tv_v4l1"
7913 echocheck "Video 4 Linux 2 TV interface"
7914 if test "$_tv_v4l2" = auto ; then
7915 _tv_v4l2=no
7916 if test "$_tv" = yes && linux ; then
7917 cat > $TMPC <<EOF
7918 #include <stdlib.h>
7919 #include <linux/types.h>
7920 #include <linux/videodev2.h>
7921 int main(void) { return 0; }
7923 cc_check && _tv_v4l2=yes
7926 if test "$_tv_v4l2" = yes ; then
7927 _audio_input=yes
7928 _tv_v4l=yes
7929 def_tv_v4l='#define CONFIG_TV_V4L 1'
7930 def_tv_v4l2='#define CONFIG_TV_V4L2 1'
7931 inputmodules="tv-v4l2 $inputmodules"
7932 else
7933 noinputmodules="tv-v4l2 $noinputmodules"
7934 def_tv_v4l2='#undef CONFIG_TV_V4L2'
7936 echores "$_tv_v4l2"
7939 echocheck "Radio interface"
7940 if test "$_radio" = yes ; then
7941 def_radio='#define CONFIG_RADIO 1'
7942 inputmodules="radio $inputmodules"
7943 if test "$_alsa9" != yes -a "$_alsa1x" != yes -a "$_ossaudio" != yes ; then
7944 _radio_capture=no
7946 if test "$_radio_capture" = yes ; then
7947 _audio_input=yes
7948 def_radio_capture="#define CONFIG_RADIO_CAPTURE 1"
7949 else
7950 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7952 else
7953 noinputmodules="radio $noinputmodules"
7954 def_radio='#undef CONFIG_RADIO'
7955 def_radio_capture="#undef CONFIG_RADIO_CAPTURE"
7956 _radio_capture=no
7958 echores "$_radio"
7959 echocheck "Capture for Radio interface"
7960 echores "$_radio_capture"
7962 echocheck "Video 4 Linux 2 Radio interface"
7963 if test "$_radio_v4l2" = auto ; then
7964 _radio_v4l2=no
7965 if test "$_radio" = yes && linux ; then
7966 cat > $TMPC <<EOF
7967 #include <stdlib.h>
7968 #include <linux/types.h>
7969 #include <linux/videodev2.h>
7970 int main(void) { return 0; }
7972 cc_check && _radio_v4l2=yes
7975 if test "$_radio_v4l2" = yes ; then
7976 def_radio_v4l2='#define CONFIG_RADIO_V4L2 1'
7977 else
7978 def_radio_v4l2='#undef CONFIG_RADIO_V4L2'
7980 echores "$_radio_v4l2"
7982 echocheck "Video 4 Linux Radio interface"
7983 if test "$_radio_v4l" = auto ; then
7984 _radio_v4l=no
7985 if test "$_radio" = yes && linux ; then
7986 cat > $TMPC <<EOF
7987 #include <stdlib.h>
7988 #include <linux/videodev.h>
7989 int main(void) { return 0; }
7991 cc_check && _radio_v4l=yes
7994 if test "$_radio_v4l" = yes ; then
7995 def_radio_v4l='#define CONFIG_RADIO_V4L 1'
7996 else
7997 def_radio_v4l='#undef CONFIG_RADIO_V4L'
7999 echores "$_radio_v4l"
8001 if freebsd || netbsd || openbsd || dragonfly || bsdos \
8002 && test "$_radio" = yes && test "$_radio_bsdbt848" = auto ; then
8003 echocheck "*BSD BrookTree 848 Radio interface"
8004 _radio_bsdbt848=no
8005 cat > $TMPC <<EOF
8006 #include <sys/types.h>
8007 $def_ioctl_bt848_h_name
8008 #ifdef IOCTL_BT848_H_NAME
8009 #include IOCTL_BT848_H_NAME
8010 #endif
8011 int main(void) { ioctl(0, RADIO_GETFREQ, 0); return 0; }
8013 cc_check && _radio_bsdbt848=yes
8014 echores "$_radio_bsdbt848"
8015 fi #if freebsd || netbsd || openbsd || dragonfly || bsdos && _radio && _radio_bsdbt848
8017 if test "$_radio_bsdbt848" = yes ; then
8018 def_radio_bsdbt848='#define CONFIG_RADIO_BSDBT848 1'
8019 else
8020 def_radio_bsdbt848='#undef CONFIG_RADIO_BSDBT848'
8023 if test "$_radio_v4l" = no && test "$_radio_v4l2" = no && \
8024 test "$_radio_bsdbt848" = no && test "$_radio" = yes ; then
8025 die "Radio driver requires BSD BT848, V4L or V4L2!"
8028 echocheck "Video 4 Linux 2 MPEG PVR interface"
8029 if test "$_pvr" = auto ; then
8030 _pvr=no
8031 if test "$_tv_v4l2" = yes && linux ; then
8032 cat > $TMPC <<EOF
8033 #include <stdlib.h>
8034 #include <inttypes.h>
8035 #include <linux/types.h>
8036 #include <linux/videodev2.h>
8037 int main(void) { struct v4l2_ext_controls ext; return ext.controls->value; }
8039 cc_check && _pvr=yes
8042 if test "$_pvr" = yes ; then
8043 def_pvr='#define CONFIG_PVR 1'
8044 inputmodules="pvr $inputmodules"
8045 else
8046 noinputmodules="pvr $noinputmodules"
8047 def_pvr='#undef CONFIG_PVR'
8049 echores "$_pvr"
8052 echocheck "ftp"
8053 if ! beos && test "$_ftp" = yes ; then
8054 def_ftp='#define CONFIG_FTP 1'
8055 inputmodules="ftp $inputmodules"
8056 else
8057 noinputmodules="ftp $noinputmodules"
8058 def_ftp='#undef CONFIG_FTP'
8060 echores "$_ftp"
8062 echocheck "vstream client"
8063 if test "$_vstream" = auto ; then
8064 _vstream=no
8065 cat > $TMPC <<EOF
8066 #include <vstream-client.h>
8067 void vstream_error(const char *format, ... ) {}
8068 int main(void) { vstream_start(); return 0; }
8070 cc_check -lvstream-client && _vstream=yes
8072 if test "$_vstream" = yes ; then
8073 def_vstream='#define CONFIG_VSTREAM 1'
8074 inputmodules="vstream $inputmodules"
8075 extra_ldflags="$extra_ldflags -lvstream-client"
8076 else
8077 noinputmodules="vstream $noinputmodules"
8078 def_vstream='#undef CONFIG_VSTREAM'
8080 echores "$_vstream"
8083 echocheck "OSD menu"
8084 if test "$_menu" = yes ; then
8085 def_menu='#define CONFIG_MENU 1'
8086 test $_dvbin = "yes" && _menu_dvbin=yes
8087 else
8088 def_menu='#undef CONFIG_MENU'
8089 _menu_dvbin=no
8091 echores "$_menu"
8094 echocheck "Subtitles sorting"
8095 if test "$_sortsub" = yes ; then
8096 def_sortsub='#define CONFIG_SORTSUB 1'
8097 else
8098 def_sortsub='#undef CONFIG_SORTSUB'
8100 echores "$_sortsub"
8103 echocheck "XMMS inputplugin support"
8104 if test "$_xmms" = yes ; then
8105 if ( xmms-config --version ) >/dev/null 2>&1 ; then
8106 _xmmsplugindir=$(xmms-config --input-plugin-dir)
8107 _xmmslibdir=$(xmms-config --exec-prefix)/lib
8108 else
8109 _xmmsplugindir=/usr/lib/xmms/Input
8110 _xmmslibdir=/usr/lib
8113 def_xmms='#define CONFIG_XMMS 1'
8114 if darwin ; then
8115 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.dylib"
8116 else
8117 extra_ldflags="$extra_ldflags ${_xmmslibdir}/libxmms.so.1 -export-dynamic"
8119 else
8120 def_xmms='#undef CONFIG_XMMS'
8122 echores "$_xmms"
8125 # --------------- GUI specific tests begin -------------------
8126 echocheck "GUI"
8127 echo "$_gui"
8128 if test "$_gui" = yes ; then
8130 # Required libraries
8131 if test "$_libavcodec" != yes ||
8132 ! echo $_libavdecoders | grep -q PNG_DECODER ; then
8133 die "The GUI requires libavcodec with PNG support (needs zlib)."
8135 test "$_freetype" = no && test "$_bitmap_font" = no && \
8136 die "The GUI requires either FreeType or bitmap font support."
8137 if ! win32 ; then
8138 _gui_gtk=yes
8139 test "$_x11" != yes && die "X11 support required for GUI compilation."
8141 echocheck "XShape extension"
8142 if test "$_xshape" = auto ; then
8143 _xshape=no
8144 cat > $TMPC << EOF
8145 #include <X11/Xlib.h>
8146 #include <X11/Xproto.h>
8147 #include <X11/Xutil.h>
8148 #include <X11/extensions/shape.h>
8149 #include <stdlib.h>
8150 int main(void) {
8151 char *name = ":0.0";
8152 Display *wsDisplay;
8153 int exitvar = 0;
8154 int eventbase, errorbase;
8155 if (getenv("DISPLAY"))
8156 name=getenv("DISPLAY");
8157 wsDisplay=XOpenDisplay(name);
8158 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
8159 exitvar=1;
8160 XCloseDisplay(wsDisplay);
8161 return exitvar;
8164 cc_check -lXext && _xshape=yes
8166 if test "$_xshape" = yes ; then
8167 def_xshape='#define CONFIG_XSHAPE 1'
8168 else
8169 die "The GUI requires the X11 extension XShape (which was not found)."
8171 echores "$_xshape"
8173 #Check for GTK
8174 if test "$_gtk1" = no ; then
8175 #Check for GTK2 :
8176 echocheck "GTK+ version"
8178 if $_pkg_config gtk+-2.0 --exists ; then
8179 _gtk=$($_pkg_config gtk+-2.0 --modversion 2>/dev/null)
8180 extra_cflags="$extra_cflags $($_pkg_config gtk+-2.0 --cflags 2>/dev/null)"
8181 libs_mplayer="$libs_mplayer $($_pkg_config gtk+-2.0 --libs 2>/dev/null)"
8182 echores "$_gtk"
8184 # Check for GLIB2
8185 if $_pkg_config glib-2.0 --exists ; then
8186 echocheck "glib version"
8187 _glib=$($_pkg_config glib-2.0 --modversion 2>/dev/null)
8188 libs_mplayer="$libs_mplayer $($_pkg_config glib-2.0 --libs 2>/dev/null)"
8189 echores "$_glib"
8191 def_gui='#define CONFIG_GUI 1'
8192 def_gtk2='#define CONFIG_GTK2 1'
8193 else
8194 _gtk1=yes
8195 echo "GLIB-2 devel packages were not found, trying GTK 1.2"
8197 else
8198 echo "GTK-2 devel packages were not found, trying GTK 1.2"
8199 _gtk1=yes
8203 if test "$_gtk1" = yes ; then
8204 # Check for old GTK (1.2.x)
8205 echocheck "GTK version"
8206 if test -z "$_gtkconfig" ; then
8207 if ( gtk-config --version ) >/dev/null 2>&1 ; then
8208 _gtkconfig="gtk-config"
8209 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
8210 _gtkconfig="gtk12-config"
8211 else
8212 die "The GUI requires GTK devel packages (which were not found)."
8215 _gtk=$($_gtkconfig --version 2>&1)
8216 extra_cflags="$extra_cflags $($_gtkconfig --cflags 2>&1)"
8217 libs_mplayer="$libs_mplayer $($_gtkconfig --libs 2>&1)"
8218 echores "$_gtk (using $_gtkconfig)"
8220 # Check for GLIB
8221 echocheck "glib version"
8222 if test -z "$_glibconfig" ; then
8223 if ( glib-config --version ) >/dev/null 2>&1 ; then
8224 _glibconfig="glib-config"
8225 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
8226 _glibconfig="glib12-config"
8227 else
8228 die "The GUI requires GLIB devel packages (which were not found)"
8231 _glib=$($_glibconfig --version 2>&1)
8232 libs_mplayer="$libs_mplayer $($_glibconfig --libs 2>&1)"
8233 echores "$_glib (using $_glibconfig)"
8235 def_gui='#define CONFIG_GUI 1'
8236 def_gtk2='#undef CONFIG_GTK2'
8239 else #if ! win32
8240 _gui_win32=yes
8241 libs_mplayer="$libs_mplayer -lcomdlg32 -lcomctl32 -lshell32 -lkernel32"
8242 def_gui='#define CONFIG_GUI 1'
8243 def_gtk2='#undef CONFIG_GTK2'
8244 fi #if ! win32
8246 else #if test "$_gui"
8247 def_gui='#undef CONFIG_GUI'
8248 def_gtk2='#undef CONFIG_GTK2'
8249 fi #if test "$_gui"
8250 # --------------- GUI specific tests end -------------------
8253 if test "$_charset" != "noconv" ; then
8254 def_charset="#define MSG_CHARSET \"$_charset\""
8255 else
8256 def_charset="#undef MSG_CHARSET"
8257 _charset="UTF-8"
8260 if test -n "$_charset" && test "$_charset" != "UTF-8" ; then
8261 echocheck "iconv program"
8262 iconv -f UTF-8 -t $_charset ${_mp_help} > /dev/null 2>> "$TMPLOG"
8263 if test "$?" -ne 0 ; then
8264 echores "no"
8265 echo "No working iconv program found, use "
8266 echo "--charset=UTF-8 to continue anyway."
8267 echo "If you also have problems with iconv library functions use --charset=noconv."
8268 echo "Messages in the GTK-2 interface will be broken then."
8269 exit 1
8270 else
8271 echores "yes"
8275 #############################################################################
8277 echocheck "automatic gdb attach"
8278 if test "$_crash_debug" = yes ; then
8279 def_crash_debug='#define CONFIG_CRASH_DEBUG 1'
8280 else
8281 def_crash_debug='#undef CONFIG_CRASH_DEBUG'
8282 _crash_debug=no
8284 echores "$_crash_debug"
8286 echocheck "compiler support for noexecstack"
8287 cat > $TMPC <<EOF
8288 int main(void) { return 0; }
8290 if cc_check -Wl,-z,noexecstack ; then
8291 extra_ldflags="-Wl,-z,noexecstack $extra_ldflags"
8292 echores "yes"
8293 else
8294 echores "no"
8297 echocheck "linker support for --nxcompat --no-seh --dynamicbase"
8298 if cc_check "-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase" ; then
8299 extra_ldflags="-Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase $extra_ldflags"
8300 echores "yes"
8301 else
8302 echores "no"
8306 # Dynamic linking flags
8307 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
8308 _ld_dl_dynamic=''
8309 freebsd || netbsd || openbsd || dragonfly || bsdos && _ld_dl_dynamic='-rdynamic'
8310 if test "$_real" = yes || test "$_xanim" = yes && ! win32 && ! qnx && ! darwin && ! os2 && ! sunos; then
8311 _ld_dl_dynamic='-rdynamic'
8314 extra_ldflags="$extra_ldflags $_ld_pthread $_ld_dl $_ld_dl_dynamic"
8315 bsdos && extra_ldflags="$extra_ldflags -ldvd"
8316 (netbsd || openbsd) && x86_32 && extra_ldflags="$extra_ldflags -li386"
8318 def_debug='#undef MP_DEBUG'
8319 test "$_debug" != "" && def_debug='#define MP_DEBUG 1'
8322 echocheck "joystick"
8323 def_joystick='#undef CONFIG_JOYSTICK'
8324 if test "$_joystick" = yes ; then
8325 if linux ; then
8326 # TODO add some check
8327 def_joystick='#define CONFIG_JOYSTICK 1'
8328 else
8329 _joystick="no"
8330 res_comment="unsupported under $system_name"
8333 echores "$_joystick"
8335 echocheck "lirc"
8336 if test "$_lirc" = auto ; then
8337 _lirc=no
8338 cat > $TMPC <<EOF
8339 #include <lirc/lirc_client.h>
8340 int main(void) { return 0; }
8342 cc_check -llirc_client && _lirc=yes
8344 if test "$_lirc" = yes ; then
8345 def_lirc='#define CONFIG_LIRC 1'
8346 libs_mplayer="$libs_mplayer -llirc_client"
8347 else
8348 def_lirc='#undef CONFIG_LIRC'
8350 echores "$_lirc"
8352 echocheck "lircc"
8353 if test "$_lircc" = auto ; then
8354 _lircc=no
8355 cat > $TMPC <<EOF
8356 #include <lirc/lircc.h>
8357 int main(void) { return 0; }
8359 cc_check -llircc && _lircc=yes
8361 if test "$_lircc" = yes ; then
8362 def_lircc='#define CONFIG_LIRCC 1'
8363 libs_mplayer="$libs_mplayer -llircc"
8364 else
8365 def_lircc='#undef CONFIG_LIRCC'
8367 echores "$_lircc"
8369 if arm; then
8370 # Detect maemo development platform libraries availability (http://www.maemo.org),
8371 # they are used when run on Nokia 770|8x0
8372 echocheck "maemo (Nokia 770|8x0)"
8373 if test "$_maemo" = auto ; then
8374 _maemo=no
8375 cat > $TMPC << EOF
8376 #include <libosso.h>
8377 int main(void) { (void) osso_initialize("", "", 0, NULL); return 0; }
8379 cc_check $($_pkg_config --cflags --libs libosso 2>/dev/null) && _maemo=yes
8381 if test "$_maemo" = yes ; then
8382 def_maemo='#define CONFIG_MAEMO 1'
8383 extra_cflags="$extra_cflags $($_pkg_config --cflags libosso)"
8384 extra_ldflags="$extra_ldflags $($_pkg_config --libs libosso) -lXsp"
8385 else
8386 def_maemo='#undef CONFIG_MAEMO'
8388 echores "$_maemo"
8391 #############################################################################
8393 # On OS/2 nm supports only a.out. So the -Zomf compiler option to generate
8394 # the OMF format needs to come after the 'extern symbol prefix' check, which
8395 # uses nm.
8396 if os2 ; then
8397 extra_ldflags="$extra_ldflags -Zomf -Zstack 16384 -Zbin-files -Zargs-wild"
8400 # linker paths should be the same for mencoder and mplayer
8401 _ld_tmp=""
8402 for I in $libs_mplayer ; do
8403 _tmp=$(echo $I | sed -e 's/^-L.*$//')
8404 if test -z "$_tmp" ; then
8405 extra_ldflags="$extra_ldflags $I"
8406 else
8407 _ld_tmp="$_ld_tmp $I"
8409 done
8410 libs_mplayer=$_ld_tmp
8413 #############################################################################
8414 # 64 bit file offsets?
8415 if test "$_largefiles" = yes || freebsd ; then
8416 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
8417 if test "$_dvdread" = yes || test "$_libdvdcss_internal" = yes ; then
8418 # dvdread support requires this (for off64_t)
8419 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
8423 CXXFLAGS=" $CFLAGS -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS"
8425 # This must be the last test to be performed. Any other tests following it
8426 # could fail due to linker errors. libdvdnavmini is intentionally not linked
8427 # against libdvdread (to permit MPlayer to use its own copy of the library).
8428 # So any compilation using the flags added here but not linking against
8429 # libdvdread can fail.
8430 echocheck "DVD support (libdvdnav)"
8431 dvdnav_internal=no
8432 if test "$_dvdnav" = auto ; then
8433 if test "$_dvdread_internal" = yes ; then
8434 _dvdnav=yes
8435 dvdnav_internal=yes
8436 res_comment="internal"
8437 else
8438 $_dvdnavconfig --version --minilibs >> $TMPLOG 2>&1 || _dvdnav=no
8441 if test "$_dvdnav" = auto ; then
8442 cat > $TMPC <<EOF
8443 #include <inttypes.h>
8444 #include <dvdnav/dvdnav.h>
8445 int main(void) { dvdnav_t *dvd=0; return 0; }
8447 _dvdnav=no
8448 _dvdnavdir=$($_dvdnavconfig --cflags)
8449 _dvdnavlibs=$($_dvdnavconfig --libs)
8450 cc_check $_dvdnavdir $_dvdnavlibs $_ld_dl $_ld_pthread && _dvdnav=yes
8452 if test "$_dvdnav" = yes ; then
8453 _largefiles=yes
8454 def_dvdnav='#define CONFIG_DVDNAV 1'
8455 if test "$dvdnav_internal" = yes ; then
8456 cflags_libdvdnav="-Ilibdvdnav"
8457 inputmodules="dvdnav(internal) $inputmodules"
8458 else
8459 extra_cflags="$extra_cflags $($_dvdnavconfig --cflags)"
8460 extra_ldflags="$extra_ldflags $($_dvdnavconfig --minilibs)"
8461 inputmodules="dvdnav $inputmodules"
8463 else
8464 def_dvdnav='#undef CONFIG_DVDNAV'
8465 noinputmodules="dvdnav $noinputmodules"
8467 echores "$_dvdnav"
8469 # DO NOT ADD ANY TESTS THAT USE LINKER FLAGS HERE (like cc_check).
8470 # Read dvdnav comment above.
8472 mak_enable () {
8473 list=$(echo $1 | tr '[a-z]' '[A-Z]')
8474 item=$(echo $2 | tr '[a-z]' '[A-Z]')
8475 nprefix=$3;
8476 for part in $list; do
8477 if $(echo $item | grep -q -E "(^| )$part($| )"); then
8478 echo "${nprefix}_$part = yes"
8480 done
8483 #############################################################################
8484 echo "Creating config.mak"
8485 cat > config.mak << EOF
8486 # -------- Generated by configure -----------
8488 # Ensure that locale settings do not interfere with shell commands.
8489 export LC_ALL = C
8491 CONFIGURATION = $_configuration
8493 CHARSET = $_charset
8494 DOC_LANGS = $language_doc
8495 DOC_LANG_ALL = $doc_lang_all
8496 MAN_LANGS = $language_man
8497 MAN_LANG_ALL = $man_lang_all
8499 prefix = \$(DESTDIR)$_prefix
8500 BINDIR = \$(DESTDIR)$_bindir
8501 DATADIR = \$(DESTDIR)$_datadir
8502 LIBDIR = \$(DESTDIR)$_libdir
8503 MANDIR = \$(DESTDIR)$_mandir
8504 CONFDIR = \$(DESTDIR)$_confdir
8506 AR = $_ar
8507 AS = $_cc
8508 CC = $_cc
8509 CXX = $_cc
8510 HOST_CC = $_host_cc
8511 INSTALL = $_install
8512 INSTALLSTRIP = $_install_strip
8513 WINDRES = $_windres
8515 CFLAGS = $CFLAGS $extra_cflags
8516 ASFLAGS = \$(CFLAGS)
8517 CXXFLAGS = $CXXFLAGS $extra_cflags $extra_cxxflags
8519 CFLAGS_DHAHELPER = $cflags_dhahelper
8520 CFLAGS_FAAD_FIXED = $cflags_faad_fixed
8521 CFLAGS_LIBDVDCSS = $cflags_libdvdcss
8522 CFLAGS_LIBDVDCSS_DVDREAD = $cflags_libdvdcss_dvdread
8523 CFLAGS_LIBDVDNAV = $cflags_libdvdnav
8524 CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
8525 CFLAGS_STACKREALIGN = $cflags_stackrealign
8526 CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
8527 CFLAGS_TREMOR_LOW = $cflags_tremor_low
8529 EXTRALIBS = $extra_ldflags $_ld_static $_ld_lm $extra_libs
8530 EXTRALIBS_MPLAYER = $libs_mplayer
8531 EXTRALIBS_MENCODER = $libs_mencoder
8533 GETCH = $_getch
8534 HELP_FILE = $_mp_help
8535 TIMER = $_timer
8537 EXESUF = $_exesuf
8538 EXESUFS_ALL = .exe
8540 ARCH = $arch
8541 $(mak_enable "$arch_all" "$arch" ARCH)
8542 $(mak_enable "$subarch_all" "$subarch" ARCH)
8543 $(mak_enable "$cpuexts_all" "$cpuexts" HAVE)
8545 MENCODER = $_mencoder
8546 MPLAYER = $_mplayer
8548 NEED_GETTIMEOFDAY = $_need_gettimeofday
8549 NEED_GLOB = $_need_glob
8550 NEED_MMAP = $_need_mmap
8551 NEED_SETENV = $_need_setenv
8552 NEED_SHMEM = $_need_shmem
8553 NEED_STRSEP = $_need_strsep
8554 NEED_SWAB = $_need_swab
8555 NEED_VSSCANF = $_need_vsscanf
8557 # features
8558 3DFX = $_3dfx
8559 AA = $_aa
8560 ALSA1X = $_alsa1x
8561 ALSA9 = $_alsa9
8562 ALSA5 = $_alsa5
8563 APPLE_IR = $_apple_ir
8564 APPLE_REMOTE = $_apple_remote
8565 ARTS = $_arts
8566 AUDIO_INPUT = $_audio_input
8567 BITMAP_FONT = $_bitmap_font
8568 BL = $_bl
8569 CACA = $_caca
8570 CDDA = $_cdda
8571 CDDB = $_cddb
8572 COREAUDIO = $_coreaudio
8573 COREVIDEO = $_corevideo
8574 DART = $_dart
8575 DFBMGA = $_dfbmga
8576 DGA = $_dga
8577 DIRECT3D = $_direct3d
8578 DIRECTFB = $_directfb
8579 DIRECTX = $_directx
8580 DVBIN = $_dvbin
8581 DVDNAV = $_dvdnav
8582 DVDNAV_INTERNAL = $dvdnav_internal
8583 DVDREAD = $_dvdread
8584 DVDREAD_INTERNAL = $_dvdread_internal
8585 DXR2 = $_dxr2
8586 DXR3 = $_dxr3
8587 ESD = $_esd
8588 FAAC=$_faac
8589 FAAD = $_faad
8590 FAAD_INTERNAL = $_faad_internal
8591 FASTMEMCPY = $_fastmemcpy
8592 FBDEV = $_fbdev
8593 FREETYPE = $_freetype
8594 FTP = $_ftp
8595 GIF = $_gif
8596 GGI = $_ggi
8597 GL = $_gl
8598 GL_WIN32 = $_gl_win32
8599 GL_X11 = $_gl_x11
8600 GL_SDL = $_gl_sdl
8601 MATRIXVIEW = $matrixview
8602 GUI = $_gui
8603 GUI_GTK = $_gui_gtk
8604 GUI_WIN32 = $_gui_win32
8605 HAVE_POSIX_SELECT = $_posix_select
8606 HAVE_SYS_MMAN_H = $_mman
8607 IVTV = $_ivtv
8608 JACK = $_jack
8609 JOYSTICK = $_joystick
8610 JPEG = $_jpeg
8611 KAI = $_kai
8612 KVA = $_kva
8613 LADSPA = $_ladspa
8614 LIBA52 = $_liba52
8615 LIBASS = $_ass
8616 LIBASS_INTERNAL = $ass_internal
8617 LIBBS2B = $_libbs2b
8618 LIBDCA = $_libdca
8619 LIBDV = $_libdv
8620 LIBDVDCSS_INTERNAL = $_libdvdcss_internal
8621 LIBLZO = $_liblzo
8622 LIBMAD = $_mad
8623 LIBMENU = $_menu
8624 LIBMENU_DVBIN = $_menu_dvbin
8625 LIBMPEG2 = $_libmpeg2
8626 LIBNEMESI = $_nemesi
8627 LIBNUT = $_libnut
8628 LIBSMBCLIENT = $_smb
8629 LIBTHEORA = $_theora
8630 LIRC = $_lirc
8631 LIVE555 = $_live
8632 MACOSX_FINDER = $_macosx_finder
8633 MD5SUM = $_md5sum
8634 MGA = $_mga
8635 MNG = $_mng
8636 MP3LAME = $_mp3lame
8637 MP3LIB = $_mp3lib
8638 MUSEPACK = $_musepack
8639 NAS = $_nas
8640 NATIVE_RTSP = $_native_rtsp
8641 NETWORK = $_network
8642 OPENAL = $_openal
8643 OSS = $_ossaudio
8644 PE_EXECUTABLE = $_pe_executable
8645 PNG = $_png
8646 PNM = $_pnm
8647 PRIORITY = $_priority
8648 PULSE = $_pulse
8649 PVR = $_pvr
8650 QTX_CODECS = $_qtx
8651 QTX_CODECS_WIN32 = $_qtx_codecs_win32
8652 QTX_EMULATION = $_qtx_emulation
8653 QUARTZ = $_quartz
8654 RADIO=$_radio
8655 RADIO_CAPTURE=$_radio_capture
8656 REAL_CODECS = $_real
8657 S3FB = $_s3fb
8658 SDL = $_sdl
8659 SPEEX = $_speex
8660 STREAM_CACHE = $_stream_cache
8661 SGIAUDIO = $_sgiaudio
8662 SUNAUDIO = $_sunaudio
8663 SVGA = $_svga
8664 TDFXFB = $_tdfxfb
8665 TDFXVID = $_tdfxvid
8666 TGA = $_tga
8667 TOOLAME=$_toolame
8668 TREMOR_INTERNAL = $_tremor_internal
8669 TV = $_tv
8670 TV_BSDBT848 = $_tv_bsdbt848
8671 TV_DSHOW = $_tv_dshow
8672 TV_V4L = $_tv_v4l
8673 TV_V4L1 = $_tv_v4l1
8674 TV_V4L2 = $_tv_v4l2
8675 TWOLAME=$_twolame
8676 UNRAR_EXEC = $_unrar_exec
8677 V4L2 = $_v4l2
8678 VCD = $_vcd
8679 VDPAU = $_vdpau
8680 VESA = $_vesa
8681 VIDIX = $_vidix
8682 VIDIX_PCIDB = $_vidix_pcidb_val
8683 VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
8684 VIDIX_IVTV=$_vidix_drv_ivtv
8685 VIDIX_MACH64=$_vidix_drv_mach64
8686 VIDIX_MGA=$_vidix_drv_mga
8687 VIDIX_MGA_CRTC2=$_vidix_drv_mga_crtc2
8688 VIDIX_NVIDIA=$_vidix_drv_nvidia
8689 VIDIX_PM2=$_vidix_drv_pm2
8690 VIDIX_PM3=$_vidix_drv_pm3
8691 VIDIX_RADEON=$_vidix_drv_radeon
8692 VIDIX_RAGE128=$_vidix_drv_rage128
8693 VIDIX_S3=$_vidix_drv_s3
8694 VIDIX_SH_VEU=$_vidix_drv_sh_veu
8695 VIDIX_SIS=$_vidix_drv_sis
8696 VIDIX_UNICHROME=$_vidix_drv_unichrome
8697 VORBIS = $_vorbis
8698 VSTREAM = $_vstream
8699 WII = $_wii
8700 WIN32DLL = $_win32dll
8701 WIN32WAVEOUT = $_win32waveout
8702 WIN32_EMULATION = $_win32_emulation
8703 WINVIDIX = $winvidix
8704 X11 = $_x11
8705 X264 = $_x264
8706 XANIM_CODECS = $_xanim
8707 XMGA = $_xmga
8708 XMMS_PLUGINS = $_xmms
8709 XV = $_xv
8710 XVID4 = $_xvid
8711 XVIDIX = $xvidix
8712 XVMC = $_xvmc
8713 XVR100 = $_xvr100
8714 YUV4MPEG = $_yuv4mpeg
8715 ZR = $_zr
8717 # FFmpeg
8718 LIBAVUTIL = $_libavutil
8719 LIBAVUTIL_A = $_libavutil_a
8720 LIBAVUTIL_SO = $_libavutil_so
8721 LIBAVCODEC = $_libavcodec
8722 LIBAVCODEC_A = $_libavcodec_a
8723 LIBAVCODEC_SO = $_libavcodec_so
8724 LIBAVFORMAT = $_libavformat
8725 LIBAVFORMAT_A = $_libavformat_a
8726 LIBAVFORMAT_SO = $_libavformat_so
8727 LIBPOSTPROC = $_libpostproc
8728 LIBPOSTPROC_A = $_libpostproc_a
8729 LIBPOSTPROC_SO = $_libpostproc_so
8730 LIBSWSCALE = $_libswscale
8731 LIBSWSCALE_A = $_libswscale_a
8732 LIBSWSCALE_SO = $_libswscale_so
8734 HOSTCC = \$(HOST_CC)
8735 HOSTCFLAGS = -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -O3
8736 HOSTLIBS = -lm
8737 CC_O = -o \$@
8738 LD = gcc
8739 RANLIB = $_ranlib
8740 YASM = $_yasm
8741 YASMFLAGS = $YASMFLAGS
8743 CONFIG_STATIC = yes
8744 SRC_PATH = ..
8745 BUILD_ROOT = ..
8746 LIBPREF = lib
8747 LIBSUF = .a
8748 LIBNAME = \$(LIBPREF)\$(NAME)\$(LIBSUF)
8749 FULLNAME = \$(NAME)\$(BUILDSUF)
8751 # Some FFmpeg codecs depend on these. Enable them unconditionally for now.
8752 CONFIG_AANDCT = yes
8753 CONFIG_DCT = yes
8754 CONFIG_DWT = yes
8755 CONFIG_FFT = yes
8756 CONFIG_GOLOMB = yes
8757 CONFIG_H264DSP = yes
8758 CONFIG_LPC = yes
8759 CONFIG_LSP = yes
8760 CONFIG_MDCT = yes
8761 CONFIG_RDFT = yes
8763 $mak_hardcoded_tables
8764 $mak_libavcodec_mpegaudio_hp
8765 !CONFIG_LIBRTMP = yes
8767 CONFIG_BZLIB = $bzlib
8768 CONFIG_ENCODERS = yes
8769 CONFIG_GPL = yes
8770 CONFIG_LIBDIRAC_DECODER = $_libdirac_lavc
8771 CONFIG_LIBDIRAC_ENCODER = $_libdirac_lavc
8772 CONFIG_LIBFAAC_ENCODER = $_faac_lavc
8773 CONFIG_LIBMP3LAME_ENCODER = $_mp3lame_lavc
8774 CONFIG_LIBOPENCORE_AMRNB_DECODER = $_libopencore_amrnb
8775 CONFIG_LIBOPENCORE_AMRNB_ENCODER = $_libopencore_amrnb
8776 CONFIG_LIBOPENCORE_AMRWB_DECODER = $_libopencore_amrwb
8777 OCNFIG_LIBOPENJPEG_DECODER = $libopenjpeg
8778 OCNFIG_LIBOPENJPEG_ENCODER = $libopenjpeg
8779 CONFIG_LIBSCHROEDINGER_DECODER = $_libschroedinger_lavc
8780 CONFIG_LIBSCHROEDINGER_ENCODER = $_libschroedinger_lavc
8781 CONFIG_LIBVORBIS_ENCODER = $_libvorbis
8782 CONFIG_LIBX264_ENCODER = $_x264_lavc
8783 CONFIG_LIBXVID_ENCODER = $_xvid_lavc
8784 CONFIG_MLIB = $_mlib
8785 CONFIG_MUXERS = $_mencoder
8786 CONFIG_POSTPROC = yes
8787 CONFIG_VDPAU = $_vdpau
8788 CONFIG_XVMC = $_xvmc
8789 CONFIG_ZLIB = $_zlib
8791 HAVE_PTHREADS = $_pthreads
8792 HAVE_SHM = $_shm
8793 HAVE_W32THREADS = $_w32threads
8794 HAVE_YASM = $have_yasm
8796 $(echo $_libavdecoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8797 $(echo $_libavencoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8798 $(echo $_libavparsers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8799 $(echo $_libavdemuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8800 $(echo $_libavmuxers | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8801 $(echo $_libavprotocols | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8802 $(echo $_libavbsfs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8803 $(echo $_libavhwaccels | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/')
8806 #############################################################################
8808 ff_config_enable () {
8809 list=$(echo $1 | tr '[a-z]' '[A-Z]')
8810 item=$(echo $2 | tr '[a-z]' '[A-Z]')
8811 _nprefix=$3;
8812 test -z "$_nprefix" && _nprefix='CONFIG'
8813 for part in $list; do
8814 if $(echo $item | grep -q -E "(^| )$part($| )"); then
8815 echo "#define ${_nprefix}_$part 1"
8816 else
8817 echo "#define ${_nprefix}_$part 0"
8819 done
8822 echo "Creating config.h"
8823 cat > $TMPH << EOF
8824 /*----------------------------------------------------------------------------
8825 ** This file has been automatically generated by configure any changes in it
8826 ** will be lost when you run configure again.
8827 ** Instead of modifying definitions here, use the --enable/--disable options
8828 ** of the configure script! See ./configure --help for details.
8829 *---------------------------------------------------------------------------*/
8831 #ifndef MPLAYER_CONFIG_H
8832 #define MPLAYER_CONFIG_H
8834 /* Undefine this if you do not want to select mono audio (left or right)
8835 with a stereo MPEG layer 2/3 audio stream. The command line option
8836 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
8837 right-only), with 0 being the default.
8839 #define CONFIG_FAKE_MONO 1
8841 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
8842 #define MAX_OUTBURST 65536
8844 /* set up audio OUTBURST. Do not change this! */
8845 #define OUTBURST 512
8847 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
8848 #undef FAST_OSD
8849 #undef FAST_OSD_TABLE
8851 /* Define this to enable MPEG-1/2 image postprocessing in libmpeg2 */
8852 #define MPEG12_POSTPROC 1
8853 #define ATTRIBUTE_ALIGNED_MAX 16
8857 #define CONFIGURATION "$_configuration"
8859 #define MPLAYER_DATADIR "$_datadir"
8860 #define MPLAYER_CONFDIR "$_confdir"
8861 #define MPLAYER_LIBDIR "$_libdir"
8863 /* definitions needed by included libraries */
8864 #define HAVE_INTTYPES_H 1
8865 /* libmpeg2 + FFmpeg */
8866 $def_fast_inttypes
8867 /* libdvdcss */
8868 #define HAVE_ERRNO_H 1
8869 /* libdvdcss + libdvdread */
8870 #define HAVE_LIMITS_H 1
8871 /* libdvdcss + libfaad2 */
8872 #define HAVE_UNISTD_H 1
8873 /* libfaad2 + libdvdread */
8874 #define STDC_HEADERS 1
8875 #define HAVE_MEMCPY 1
8876 /* libfaad2 */
8877 #define HAVE_STRING_H 1
8878 #define HAVE_STRINGS_H 1
8879 #define HAVE_SYS_STAT_H 1
8880 #define HAVE_SYS_TYPES_H 1
8881 /* libdvdnav */
8882 #define READ_CACHE_TRACE 0
8883 /* libdvdread */
8884 #define HAVE_DLFCN_H 1
8885 $def_dvdcss
8888 /* system headers */
8889 $def_alloca_h
8890 $def_alsa_asoundlib_h
8891 $def_altivec_h
8892 $def_malloc_h
8893 $def_mman_h
8894 $def_mman_has_map_failed
8895 $def_soundcard_h
8896 $def_sys_asoundlib_h
8897 $def_sys_soundcard_h
8898 $def_sys_sysinfo_h
8899 $def_termios_h
8900 $def_termios_sys_h
8901 $def_winsock2_h
8904 /* system functions */
8905 $def_gethostbyname2
8906 $def_gettimeofday
8907 $def_glob
8908 $def_langinfo
8909 $def_lrintf
8910 $def_map_memalign
8911 $def_memalign
8912 $def_nanosleep
8913 $def_posix_select
8914 $def_select
8915 $def_setenv
8916 $def_setmode
8917 $def_shm
8918 $def_strsep
8919 $def_swab
8920 $def_sysi86
8921 $def_sysi86_iv
8922 $def_termcap
8923 $def_termios
8924 $def_vsscanf
8927 /* system-specific features */
8928 $def_asmalign_pot
8929 $def_builtin_expect
8930 $def_dl
8931 $def_dos_paths
8932 $def_extern_asm
8933 $def_extern_prefix
8934 $def_iconv
8935 $def_kstat
8936 $def_macosx_bundle
8937 $def_macosx_finder
8938 $def_maemo
8939 $def_named_asm_args
8940 $def_priority
8941 $def_quicktime
8942 $def_restrict_keyword
8943 $def_rtc
8944 $def_unrar_exec
8947 /* configurable options */
8948 $def_charset
8949 $def_crash_debug
8950 $def_debug
8951 $def_dynamic_plugins
8952 $def_fastmemcpy
8953 $def_menu
8954 $def_runtime_cpudetection
8955 $def_sighandler
8956 $def_sortsub
8957 $def_stream_cache
8958 $def_pthread_cache
8961 /* CPU stuff */
8962 #define __CPU__ $iproc
8963 $def_words_endian
8964 $def_bigendian
8965 $(ff_config_enable "$arch_all" "$arch" "ARCH")
8966 $(ff_config_enable "$subarch_all" "$subarch" "ARCH")
8967 $(ff_config_enable "$cpuexts_all" "$cpuexts" "HAVE")
8970 /* DVD/VCD/CD */
8971 #define DEFAULT_CDROM_DEVICE "$default_cdrom_device"
8972 #define DEFAULT_DVD_DEVICE "$default_dvd_device"
8973 $def_bsdi_dvd
8974 $def_cddb
8975 $def_cdio
8976 $def_cdparanoia
8977 $def_cdrom
8978 $def_dvd
8979 $def_dvd_bsd
8980 $def_dvd_darwin
8981 $def_dvd_linux
8982 $def_dvd_openbsd
8983 $def_dvdio
8984 $def_dvdnav
8985 $def_dvdread
8986 $def_hpux_scsi_h
8987 $def_libcdio
8988 $def_sol_scsi_h
8989 $def_vcd
8992 /* codec libraries */
8993 $def_faac
8994 $def_faad
8995 $def_faad_internal
8996 $def_liba52
8997 $def_libdca
8998 $def_libdv
8999 $def_liblzo
9000 $def_libmpeg2
9001 $def_mad
9002 $def_mp3lame
9003 $def_mp3lame_preset
9004 $def_mp3lame_preset_medium
9005 $def_mp3lib
9006 $def_musepack
9007 $def_speex
9008 $def_theora
9009 $def_toolame
9010 $def_tremor
9011 $def_twolame
9012 $def_vorbis
9013 $def_x264
9014 $def_xvid
9015 $def_zlib
9017 $def_libnut
9020 /* binary codecs */
9021 $def_qtx
9022 $def_qtx_win32
9023 $def_real
9024 $def_win32_loader
9025 $def_win32dll
9026 $def_xanim
9027 $def_xmms
9028 #define BINARY_CODECS_PATH "$_codecsdir"
9029 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
9032 /* GUI */
9033 $def_gtk2
9034 $def_gui
9035 $def_xshape
9038 /* Audio output drivers */
9039 $def_alsa
9040 $def_alsa1x
9041 $def_alsa5
9042 $def_alsa9
9043 $def_arts
9044 $def_coreaudio
9045 $def_dart
9046 $def_esd
9047 $def_esd_latency
9048 $def_jack
9049 $def_kai
9050 $def_nas
9051 $def_openal
9052 $def_openal_h
9053 $def_ossaudio
9054 $def_ossaudio_devdsp
9055 $def_ossaudio_devmixer
9056 $def_pulse
9057 $def_sgiaudio
9058 $def_sunaudio
9059 $def_win32waveout
9061 $def_ladspa
9062 $def_libbs2b
9065 /* input */
9066 $def_apple_ir
9067 $def_apple_remote
9068 $def_ioctl_bt848_h_name
9069 $def_ioctl_meteor_h_name
9070 $def_joystick
9071 $def_lirc
9072 $def_lircc
9073 $def_pvr
9074 $def_radio
9075 $def_radio_bsdbt848
9076 $def_radio_capture
9077 $def_radio_v4l
9078 $def_radio_v4l2
9079 $def_tv
9080 $def_tv_bsdbt848
9081 $def_tv_dshow
9082 $def_tv_v4l
9083 $def_tv_v4l1
9084 $def_tv_v4l2
9087 /* font stuff */
9088 $def_ass
9089 $def_ass_internal
9090 $def_bitmap_font
9091 $def_enca
9092 $def_fontconfig
9093 $def_freetype
9094 $def_fribidi
9097 /* networking */
9098 $def_closesocket
9099 $def_ftp
9100 $def_inet6
9101 $def_inet_aton
9102 $def_inet_pton
9103 $def_live
9104 $def_nemesi
9105 $def_network
9106 $def_smb
9107 $def_socklen_t
9108 $def_struct_ipv6_mreq
9109 $def_struct_sockaddr_in6
9110 $def_struct_sockaddr_sa_len
9111 $def_vstream
9112 $def_addrinfo
9113 $def_getaddrinfo
9114 $def_sockaddr_storage
9117 /* libvo options */
9118 $def_3dfx
9119 $def_aa
9120 $def_bl
9121 $def_caca
9122 $def_corevideo
9123 $def_dfbmga
9124 $def_dga
9125 $def_dga1
9126 $def_dga2
9127 $def_direct3d
9128 $def_directfb
9129 $def_directfb_version
9130 $def_directx
9131 $def_dvb
9132 $def_dvbin
9133 $def_dxr2
9134 $def_dxr3
9135 $def_fbdev
9136 $def_ggi
9137 $def_ggiwmh
9138 $def_gif
9139 $def_gif_4
9140 $def_gif_tvt_hack
9141 $def_gl
9142 $def_gl_win32
9143 $def_gl_x11
9144 $def_gl_sdl
9145 $def_matrixview
9146 $def_ivtv
9147 $def_jpeg
9148 $def_kva
9149 $def_md5sum
9150 $def_mga
9151 $def_mng
9152 $def_png
9153 $def_pnm
9154 $def_quartz
9155 $def_s3fb
9156 $def_sdl
9157 $def_sdl_sdl_h
9158 $def_svga
9159 $def_tdfxfb
9160 $def_tdfxvid
9161 $def_tga
9162 $def_v4l2
9163 $def_vdpau
9164 $def_vesa
9165 $def_vidix
9166 $def_vidix_drv_cyberblade
9167 $def_vidix_drv_ivtv
9168 $def_vidix_drv_mach64
9169 $def_vidix_drv_mga
9170 $def_vidix_drv_mga_crtc2
9171 $def_vidix_drv_nvidia
9172 $def_vidix_drv_pm3
9173 $def_vidix_drv_radeon
9174 $def_vidix_drv_rage128
9175 $def_vidix_drv_s3
9176 $def_vidix_drv_sh_veu
9177 $def_vidix_drv_sis
9178 $def_vidix_drv_unichrome
9179 $def_vidix_pfx
9180 $def_vm
9181 $def_wii
9182 $def_x11
9183 $def_xdpms
9184 $def_xf86keysym
9185 $def_xinerama
9186 $def_xmga
9187 $def_xss
9188 $def_xv
9189 $def_xvmc
9190 $def_xvr100
9191 $def_yuv4mpeg
9192 $def_zr
9195 /* FFmpeg */
9196 $def_libavcodec
9197 $def_libavcodec_a
9198 $def_libavcodec_so
9199 $def_libavformat
9200 $def_libavformat_a
9201 $def_libavformat_so
9202 $def_libavutil
9203 $def_libavutil_a
9204 $def_libavutil_so
9205 $def_libpostproc
9206 $def_libpostproc_a
9207 $def_libpostproc_so
9208 $def_libswscale
9209 $def_libswscale_a
9210 $def_libswscale_so
9212 #define CONFIG_DECODERS 1
9213 #define CONFIG_ENCODERS 1
9214 #define CONFIG_DEMUXERS 1
9215 $def_muxers
9217 $def_arpa_inet_h
9218 $def_bswap
9219 $def_bzlib
9220 $def_dcbzl
9221 $def_exp2
9222 $def_exp2f
9223 $def_fast_64bit
9224 $def_fast_unaligned
9225 $def_hardcoded_tables
9226 $def_libavcodec_mpegaudio_hp
9227 $def_llrint
9228 $def_llrintf
9229 $def_local_aligned_8
9230 $def_local_aligned_16
9231 $def_log2
9232 $def_log2f
9233 $def_lrint
9234 $def_memalign_hack
9235 $def_mlib
9236 $def_mkstemp
9237 $def_posix_memalign
9238 $def_pthreads
9239 $def_round
9240 $def_roundf
9241 $def_ten_operands
9242 $def_threads
9243 $def_truncf
9244 $def_xform_asm
9245 $def_yasm
9247 #define CONFIG_FASTDIV 0
9248 #define CONFIG_FFSERVER 0
9249 #define CONFIG_GPL 1
9250 #define CONFIG_GRAY 0
9251 #define CONFIG_LIBRTMP 0
9252 #define CONFIG_LIBVORBIS 0
9253 #define CONFIG_POWERPC_PERF 0
9254 #define CONFIG_SMALL 0
9255 #define CONFIG_SWSCALE_ALPHA 1
9257 #if defined(HAVE_AF_INET6) && (!defined(_WIN32) || defined(__CYGWIN__))
9258 #define CONFIG_IPV6 1
9259 #else
9260 #define CONFIG_IPV6 0
9261 #endif
9263 #define HAVE_ATTRIBUTE_PACKED 1
9264 #define HAVE_GETHRTIME 0
9265 #define HAVE_INLINE_ASM 1
9266 #define HAVE_LDBRX 0
9267 #define HAVE_POLL_H 1
9268 #define HAVE_PPC4XX 0
9269 #define HAVE_STRERROR_R 0
9270 #define HAVE_SYS_SELECT_H 0
9271 #define HAVE_VFP_ARGS 1
9272 #define HAVE_VIRTUALALLOC 0
9274 /* Some FFmpeg codecs depend on these. Enable them unconditionally for now. */
9275 #define CONFIG_AANDCT 1
9276 #define CONFIG_DCT 1
9277 #define CONFIG_DWT 1
9278 #define CONFIG_FFT 1
9279 #define CONFIG_GOLOMB 1
9280 #define CONFIG_H264DSP 1
9281 #define CONFIG_LPC 1
9282 #define CONFIG_MDCT 1
9283 #define CONFIG_RDFT 1
9285 /* Use these registers in FFmpeg x86 inline asm. No proper detection yet. */
9286 $def_ebx_available
9287 #ifndef MP_DEBUG
9288 #define HAVE_EBP_AVAILABLE 1
9289 #else
9290 #define HAVE_EBP_AVAILABLE 0
9291 #endif
9293 #define FFMPEG_CONFIGURATION "--enable-gpl --enable-postproc"
9294 #define FFMPEG_LICENSE "GPL version 2 or later"
9296 /* External libraries used through libavcodec. */
9297 $def_faac_lavc
9298 $def_libdirac_lavc
9299 $def_libopencore_amrnb
9300 $def_libopencore_amrwb
9301 $def_libopenjpeg
9302 $def_libschroedinger_lavc
9303 $def_mp3lame_lavc
9304 $def_x264_lavc
9305 $def_xvid_lavc
9307 $(ff_config_enable "$_libavdecoders_all" "$_libavdecoders")
9308 $(ff_config_enable "$_libavencoders_all" "$_libavencoders")
9309 $(ff_config_enable "$_libavparsers_all" "$_libavparsers")
9310 $(ff_config_enable "$_libavdemuxers_all" "$_libavdemuxers")
9311 $(ff_config_enable "$_libavmuxers_all" "$_libavmuxers")
9312 $(ff_config_enable "$_libavprotocols_all" "$_libavprotocols")
9313 $(ff_config_enable "$_libavbsfs_all" "$_libavbsfs")
9314 $(ff_config_enable "$_libavhwaccels_all" "$_libavhwaccels")
9316 #endif /* MPLAYER_CONFIG_H */
9319 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
9320 cmp -s "$TMPH" config.h || mv -f "$TMPH" config.h
9322 ############################################################################
9324 # Create avconfig.h for FFmpeg.
9325 cat > "$TMPH" << EOF
9326 /* Generated by mpconfigure */
9327 #ifndef AVUTIL_AVCONFIG_H
9328 #define AVUTIL_AVCONFIG_H
9329 $def_av_bigendian
9330 #endif /* AVUTIL_AVCONFIG_H */
9333 # Do not overwrite an unchanged avconfig.h to avoid superfluous rebuilds.
9334 cmp -s "$TMPH" libavutil/avconfig.h || mv -f "$TMPH" libavutil/avconfig.h
9336 #############################################################################
9338 cat << EOF
9340 Config files successfully generated by ./configure $_configuration !
9342 Install prefix: $_prefix
9343 Data directory: $_datadir
9344 Config direct.: $_confdir
9346 Byte order: $_byte_order
9347 Optimizing for: $_optimizing
9349 Languages:
9350 Messages/GUI: $language_msg
9351 Manual pages: $language_man
9352 Documentation: $language_doc
9354 Enabled optional drivers:
9355 Input: $inputmodules
9356 Codecs: $codecmodules
9357 Audio output: $aomodules
9358 Video output: $vomodules
9360 Disabled optional drivers:
9361 Input: $noinputmodules
9362 Codecs: $nocodecmodules
9363 Audio output: $noaomodules
9364 Video output: $novomodules
9366 'config.h' and 'config.mak' contain your configuration options.
9367 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
9368 compile *** DO NOT REPORT BUGS if you tweak these files ***
9370 'make' will now compile MPlayer and 'make install' will install it.
9371 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
9376 if test "$_mtrr" = yes ; then
9377 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$doc_lang/video.html#mtrr)"
9378 echo
9381 if ! x86_32; then
9382 cat <<EOF
9383 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
9384 operating system ($system_name). You may encounter a few files that cannot
9385 be played due to missing open source video/audio codec support.
9391 cat <<EOF
9392 Check $TMPLOG if you wonder why an autodetection failed (make sure
9393 development headers/packages are installed).
9395 NOTE: The --enable-* parameters unconditionally force options on, completely
9396 skipping autodetection. This behavior is unlike what you may be used to from
9397 autoconf-based configure scripts that can decide to override you. This greater
9398 level of control comes at a price. You may have to provide the correct compiler
9399 and linker flags yourself.
9400 If you used one of these options (except --enable-menu and similar ones that
9401 turn on internal features) and experience a compilation or linking failure,
9402 make sure you have passed the necessary compiler/linker flags to configure.
9404 If you suspect a bug, please read DOCS/HTML/$doc_lang/bugreports.html.
9408 if test "$_warn_CFLAGS" = yes; then
9409 cat <<EOF
9411 MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
9412 but:
9414 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
9416 It is strongly recommended to let MPlayer choose the correct CFLAGS!
9417 To do so, execute 'CFLAGS= ./configure <options>'
9422 # Last move:
9423 rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP" "$TMPH"