10l, patch by Jan Knutar <jknutar@nic.fi>
[mplayer.git] / configure
blobb6f3457824b3880606fe8c26e1845dee0178f537
1 #! /bin/sh
3 # Original version (C) 2000 Pontscho/fresh!mindworkz
4 # pontscho@makacs.poliod.hu
6 # History / Contributors: check the cvs log !
8 # Cleanups all over the place (c) 2001 pl
11 # Guidelines:
12 # If the option is named 'opt':
13 # _opt : should have a value in yes/no/auto
14 # _def_opt : '#define ... 1' or '#undef ...' that is: some C code
15 # _ld_opt : ' -L/path/dir -lopt ' that is: some GCC option
16 # _inc_opt : ' -I/path/dir/include '
18 # In this file, a tab is 8 chars and indentation shift is 2 characters
20 # GOTCHAS:
21 # - config files are currently:
22 # config.h config.mak libvo/config.mak libao2/config.mak Gui/config.mak
24 #############################################################################
26 # Prefer these macros to full length text !
27 # These macros only return an error code - NO display is done
28 cc_check() {
29 echo >> "$TMPLOG"
30 cat "$TMPC" >> "$TMPLOG"
31 echo >> "$TMPLOG"
32 echo "$_cc $CFLAGS $_inc_extra $_ld_static $_ld_extra $TMPC -o $TMPO $@" >> "$TMPLOG"
33 rm -f "$TMPO"
34 ( $_cc $CFLAGS $_inc_extra $_ld_static $_ld_extra "$TMPC" -o "$TMPO" "$@" ) >> "$TMPLOG" 2>&1
35 TMP="$?"
36 echo >> "$TMPLOG"
37 echo "ldd $TMPO" >> "$TMPLOG"
38 ( $_ldd "$TMPO" ) >> "$TMPLOG" 2>&1
39 echo >> "$TMPLOG"
40 return "$TMP"
43 # Display error message, flushes tempfile, exit
44 die () {
45 echo
46 echo "Error: $@" >&2
47 echo >&2
48 rm -f "$TMPO" "$TMPC" "$TMPS" "$TMPCPP"
49 echo "Check \"$TMPLOG\" if you do not understand why it failed."
50 exit 1
53 # OS test booleans functions
54 issystem() {
55 test "`echo $system_name | tr A-Z a-z`" = "`echo $1 | tr A-Z a-z`"
57 linux() { issystem "Linux" ; return "$?" ; }
58 sunos() { issystem "SunOS" ; return "$?" ; }
59 hpux() { issystem "HP-UX" ; return "$?" ; }
60 irix() { issystem "IRIX" ; return "$?" ; }
61 cygwin() { issystem "CYGWIN" ; return "$?" ; }
62 freebsd() { issystem "FreeBSD" ; return "$?" ; }
63 netbsd() { issystem "NetBSD" ; return "$?" ; }
64 bsdos() { issystem "BSD/OS" ; return "$?" ; }
65 openbsd() { issystem "OpenBSD" ; return "$?" ; }
66 bsd() { freebsd || netbsd || bsdos || openbsd ; return "$?" ; }
67 qnx() { issystem "QNX" ; return "$?" ; }
68 darwin() { issystem "Darwin" ; return "$?" ; }
69 gnu() { issystem "GNU" ; return "$?" ; }
70 mingw32() { issystem "MINGW32" ; return "$?" ; }
71 morphos() { issystem "MorphOS" ; return "$?" ; }
72 win32() { cygwin || mingw32 ; return "$?" ; }
73 beos() { issystem "BEOS" ; return "$?" ; }
75 # arch test boolean functions
76 # x86/x86pc is used by QNX
77 x86() {
78 case "$host_arch" in
79 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
80 *) return 1 ;;
81 esac
84 ppc() {
85 case "$host_arch" in
86 ppc) return 0;;
87 *) return 1;;
88 esac
91 alpha() {
92 case "$host_arch" in
93 alpha) return 0;;
94 *) return 1;;
95 esac
98 # not boolean test: implement the posix shell "!" operator for a
99 # non-posix /bin/sh.
100 # usage: not {command}
101 # returns exit status "success" when the execution of "command"
102 # fails.
103 not() {
104 eval "$@"
105 test $? -ne 0
108 # Use this before starting a check
109 echocheck() {
110 echo "============ Checking for $@ ============" >> "$TMPLOG"
111 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
114 # Use this to echo the results of a check
115 echores() {
116 echo "Result is: $@" >> "$TMPLOG"
117 echo "##########################################" >> "$TMPLOG"
118 echo "" >> "$TMPLOG"
119 echo "$@"
121 #############################################################################
123 # Check how echo works in this /bin/sh
124 case `echo -n` in
125 -n) _echo_n= _echo_c='\c' ;; # SysV echo
126 *) _echo_n='-n ' _echo_c= ;; # BSD echo
127 esac
129 LANGUAGES=`echo help/help_mp-??.h help/help_mp-??_??.h | sed "s:help/help_mp-\(..\).h:\1:g" | sed "s:help/help_mp-\(.....\).h:\1:g"`
131 for parm in "$@" ; do
132 if test "$parm" = "--help" || test "$parm" = "-help" || test "$parm" = "-h" ; then
133 cat << EOF
135 Usage: $0 [OPTIONS]...
137 Configuration:
138 -h, --help display this help and exit
140 Installation directories:
141 --prefix=DIR use this prefix for installing mplayer [/usr/local]
142 --bindir=DIR use this prefix for installing mplayer binary
143 [PREFIX/bin]
144 --datadir=DIR use this prefix for installing machine independent
145 data files (fonts, skins) [PREFIX/share/mplayer]
146 --mandir=DIR use this prefix for installing manpages [PREFIX/man]
147 --confdir=DIR use this prefix for installing configuration files
148 [PREFIX/etc/mplayer]
149 --libdir=DIR use this prefix for object code libraries [PREFIX/lib]
151 Optional features:
152 --disable-mencoder disable mencoder (a/v encoder) compilation [enable]
153 --enable-gui enable gmplayer compilation (GTK 1.2 GUI) [disable]
154 --enable-largefiles enable support for files > 2 GBytes [disable]
155 --enable-linux-devfs set default devices to devfs ones [disable]
156 --enable-termcap use termcap database for key codes [autodetect]
157 --enable-termios use termios database for key codes [autodetect]
158 --disable-iconv do not use iconv(3) function [autodetect]
159 --disable-setlocale disable setlocale using in mplayer [autodetect]
160 --disable-langinfo do not use langinfo [autodetect]
161 --enable-lirc enable LIRC (remote control) support [autodetect]
162 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
163 --enable-joystick enable joystick support [disable]
164 --disable-tv disable TV Interface (tv/dvb grabbers) [enable]
165 --disable-tv-v4l disable Video4Linux TV Interface support [autodetect]
166 --disable-tv-v4l2 disable Video4Linux2 TV Interface support [autodetect]
167 --disable-tv-bsdbt848 disable BSD BT848 Interface support [autodetect]
168 --disable-edl disable EDL (edit decision list) support [enable]
169 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
170 --disable-network disable network support (for: http/mms/rtp) [enable]
171 --enable-winsock2 enable winsock2 usage [autodetect]
172 --enable-smb enable Samba (SMB) input support [autodetect]
173 --enable-live enable LIVE.COM Streaming Media support [autodetect]
174 --disable-dvdread Disable libdvdread support [autodetect]
175 --disable-mpdvdkit Disable mpdvdkit/mpdvdkit2 support [autodetect]
176 --disable-cdparanoia Disable cdparanoia support [autodetect]
177 --disable-freetype Disable freetype2 font rendering support [autodetect]
178 --disable-fontconfig Disable fontconfig font lookup support [autodetect]
179 --disable-unrarlib Disable Unique RAR File Library [enabled]
180 --enable-menu Enable OSD menu support (NOT DVD MENU) [disabled]
181 --disable-sortsub Disable subtitles sorting [enabled]
182 --enable-fribidi Enable using the FriBiDi libs [disabled]
183 --disable-enca Disable using ENCA charset oracle library [autodetect]
184 --disable-macosx Disable Mac OS X specific features [autodetect]
185 --disable-inet6 Disable IPv6 support [autodetect]
186 --disable-gethostbyname2 gethostbyname() function is not provided by the C
187 library [autodetect]
188 --disable-ftp Disable ftp support [enabled]
190 Codecs:
191 --enable-gif enable gif support [autodetect]
192 --enable-png enable png input/output support [autodetect]
193 --enable-jpeg enable jpeg input/output support [autodetect]
194 --enable-liblzo enable external liblzo support [autodetect]
195 --disable-win32 disable Win32 DLL support [autodetect]
196 --disable-macshlb disable Mac OS X SHLB support [autodetect]
197 --disable-dshow disable Win32/DirectShow support [autodetect]
198 --disable-qtx disable Quicktime codecs [autodetect]
199 --disable-xanim disable XAnim DLL support [autodetect]
200 --disable-real disable RealPlayer DLL support [autodetect]
201 --disable-xvid disable XviD codec [autodetect]
202 --disable-x264 disable H.264 encoder [autodetect]
203 --disable-divx4linux disable DivX4linux/Divx5linux codec [autodetect]
204 --enable-opendivx enable _old_ OpenDivx codec [disable]
205 --disable-libavcodec disable libavcodec [autodetect]
206 --disable-libavformat disable libavformat [autodetect]
207 --enable-libfame enable libfame realtime encoder [autodetect]
208 --enable-vorbis build with OggVorbis support [autodetect]
209 --enable-tremor build with integer-only OggVorbis support [disabled]
210 --enable-theora build with OggTheora support [autodetect]
211 --disable-internal-matroska disable internal Matroska support [enabled]
212 --enable-external-faad build with external FAAD2 (AAC) support [autodetect]
213 --disable-internal-faad disable internal FAAD2 (AAC) support [autodetect]
214 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
215 --disable-mad disable libmad (MPEG audio) support [autodetect]
216 --disable-toolame disable Toolame (MPEG layer 2 audio) support in mencoder [autodetect]
217 --enable-xmms build with XMMS inputplugin support [disabled]
218 --disable-mp3lib disable builtin mp3lib [enabled]
219 --disable-liba52 disable builtin liba52 [enabled]
220 --enable-libdts enable libdts support [autodetect]
221 --disable-libmpeg2 disable builtin libmpeg2 [enabled]
223 Video output:
224 --disable-vidix disable VIDIX [enable on x86 *nix]
225 --enable-gl build with OpenGL render support [autodetect]
226 --enable-dga[=n] build with DGA [n in {1, 2} ] support [autodetect]
227 --enable-vesa build with VESA support [autodetect]
228 --enable-svga build with SVGAlib support [autodetect]
229 --enable-sdl build with SDL render support [autodetect]
230 --enable-aa build with AAlib render support [autodetect]
231 --enable-caca build with CACA render support [autodetect]
232 --enable-ggi build with GGI render support [autodetect]
233 --enable-directx build with DirectX support [autodetect]
234 --enable-dxr2 build with DXR2 render support [autodetect]
235 --enable-dxr3 build with DXR3/H+ render support [autodetect]
236 --enable-dvb build with support for output via DVB-Card [autodetect]
237 --enable-dvbhead build with DVB support (HEAD version) [autodetect]
238 --enable-mga build with mga_vid (for Matrox G200/G4x0/G550) support
239 (check for /dev/mga_vid) [autodetect]
240 --enable-xmga build with mga_vid X Window support
241 (check for X & /dev/mga_vid) [autodetect]
242 --enable-xv build with Xv render support for X 4.x [autodetect]
243 --enable-xvmc build with XvMC acceleration for X 4.x [autodetect]
244 --enable-vm build with XF86VidMode support for X11 [autodetect]
245 --enable-xinerama build with Xinerama support for X11 [autodetect]
246 --enable-x11 build with X11 render support [autodetect]
247 --enable-fbdev build with FBDev render support [autodetect]
248 --enable-mlib build with MLIB support (Solaris only) [autodetect]
249 --enable-3dfx build with obsolete /dev/3dfx support [disable]
250 --enable-tdfxfb build with tdfxfb (Voodoo 3/banshee) support [disable]
251 --enable-directfb build with DirectFB support [autodetect]
252 --enable-zr build with ZR360[56]7/ZR36060 support [autodetect]
253 --enable-bl build with Blinkenlights support [disable]
254 --enable-tdfxvid build with tdfx_vid support [disable]
255 --disable-tga disable targa output support [enable]
257 Audio output:
258 --disable-alsa disable ALSA sound support [autodetect]
259 --disable-ossaudio disable OSS sound support [autodetect]
260 --disable-arts disable aRts sound support [autodetect]
261 --disable-esd disable esd sound support [autodetect]
262 --disable-jack disable JACK sound support [autodetect]
263 --disable-nas disable NAS sound support [autodetect]
264 --disable-sgiaudio disable SGI sound support [autodetect]
265 --disable-sunaudio disable Sun sound support [autodetect]
266 --disable-win32waveout disable Windows waveout sound support [autodetect]
267 --disable-select disable using select() on audio device [enable]
269 Miscellaneous options:
270 --enable-runtime-cpudetection Enable runtime CPU detection [disable]
271 --cc=COMPILER use this C compiler to build MPlayer [gcc]
272 --host-cc=COMPILER use this C compiler to build apps needed for the build process [gcc]
273 --as=ASSEMBLER use this assembler to build MPlayer [as]
274 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
275 --enable-static build a statically linked binary. Set further linking
276 options with --enable-static="-lslang -lncurses"
277 --language=list a white space or comma separated list of languages
278 for translated man pages, the first language is the
279 primary and therefore used for translated messages
280 and GUI (also the environment variable \$LINGUAS is
281 honored) [en]
282 (Available: $LANGUAGES all)
283 --enable-shared-pp install & use shared postprocessing lib
284 --with-install=PATH use a custom install program (useful if your OS uses
285 a GNU-incompatible install utility by default and
286 you want to use GNU version)
287 --install-path=PATH the path to a custom install program
288 this option is obsolete and will be removed soon,
289 use --with-install instead.
291 Advanced options:
292 --enable-mmx build with MMX support [autodetect]
293 --enable-mmx2 build with MMX2 support (PIII, Athlon) [autodetect]
294 --enable-3dnow build with 3DNow! support [autodetect]
295 --enable-3dnowex build with extended 3DNow! support [autodetect]
296 --enable-sse build with SSE support [autodetect]
297 --enable-sse2 build with SSE2 support [autodetect]
298 --enable-shm build with shm support [autodetect]
299 --enable-altivec build with Altivec support (PowerPC) [autodetect]
300 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy() [enable]
301 --enable-big-endian Force byte order to big-endian [autodetect]
302 --enable-debug[=1-3] compile debugging information into mplayer [disable]
303 --enable-profile compile profiling information into mplayer [disable]
304 --disable-sighandler disable sighandler for crashes [enable]
305 --enable-i18n _experimental_ gnu gettext() support [autodetect]
306 --enable-dynamic-plugins Enable support for dynamic a/v plugins [disable]
308 Hazardous options a.k.a. "DO NOT REPORT ANY BUGS!"
309 --disable-gcc-checking disable gcc version checking [enable]
311 Use these options if autodetection fails (Options marked with (*) accept
312 multiple paths separated by ':'):
313 --with-extraincdir=DIR extra headers (png, mad, sdl, ...) in DIR (*)
314 --with-extralibdir=DIR extra library files (png, mad, sdl, ...) in DIR (*)
315 --with-x11incdir=DIR X headers in DIR (*)
316 --with-x11libdir=DIR X library files in DIR (*)
317 --with-dxr2incdir=DIR DXR2 headers in DIR (*)
318 --with-dvbincdir=DIR DVB headers in DIR (*)
319 --with-madlibdir=DIR libmad (libmad shared library) in DIR (*)
320 --with-mlibdir=DIR libmlib (MLIB support) in DIR (Solaris only)
321 --with-codecsdir=DIR Binary codec files in DIR
322 --with-win32libdir=DIR W*ndows DLL files in DIR
323 --with-xanimlibdir=DIR XAnim DLL files in DIR
324 --with-reallibdir=DIR RealPlayer DLL files in DIR
325 --with-xvidlibdir=DIR libxvidcore (XviD) in DIR (*)
326 --with-xvidincdir=DIR XviD header in DIR (*)
327 --with-x264libdir=DIR libx264 in DIR
328 --with-x264incdir=DIR x264 header in DIR
329 --with-dtslibdir=DIR libdts library in DIR (*)
330 --with-dtsincdir=DIR libdts header in DIR (*)
331 --with-livelibdir=DIR LIVE.COM Streaming Media libraries in DIR
332 --with-toolamedir=DIR path to Toolame library and include file
333 --with-xmmsplugindir=DIR XMMS plugins in DIR
334 --with-xmmslibdir=DIR libxmms.so.1 in DIR
335 --with-bio2jack=DIR libbio2jack.a in DIR
336 --with-cdparanoiaincdir=DIR cdparanoia headers in DIR (*)
337 --with-cdparanoialibdir=DIR cdparanoia libraries (libcdda_*) in DIR (*)
338 --with-xvmclib=NAME name of adapter-specific library (e.g. XvMCNVIDIA)
339 --with-termcaplib=NAME name of library with termcap functionality
340 name should be given without leading "lib"
341 checks for "termcap" and "tinfo"
343 --with-freetype-config=PATH path to freetype-config
344 (e.g. /opt/bin/freetype-config)
345 --with-fribidi-config=PATH path to fribidi-config
346 (e.g. /opt/bin/fribidi-config)
347 --with-glib-config=PATH path to glib*-config (e.g. /opt/bin/glib-config)
348 --with-gtk-config=PATH path to gtk*-config (e.g. /opt/bin/gtk-config)
349 --with-sdl-config=PATH path to sdl*-config (e.g. /opt/bin/sdl-config)
351 exit 0
353 done # for parm in ...
356 # 1st pass checking for vital options
357 _install=install
358 _ranlib=ranlib
359 _cc=cc
360 test "$CC" && _cc="$CC"
361 _as=auto
362 _runtime_cpudetection=no
363 for ac_option do
364 case "$ac_option" in
365 --target=*)
366 _target=`echo $ac_option | cut -d '=' -f 2`
368 --cc=*)
369 _cc=`echo $ac_option | cut -d '=' -f 2`
371 --host-cc=*)
372 _host_cc=`echo $ac_option | cut -d '=' -f 2`
374 --as=*)
375 _as=`echo $ac_option | cut -d '=' -f 2`
377 --enable-gcc-checking)
378 _skip_cc_check=no
380 --disable-gcc-checking)
381 _skip_cc_check=yes
383 --enable-static)
384 _ld_static='-static'
386 --disable-static)
387 _ld_static=''
389 --enable-static=*)
390 _ld_static="-static `echo $ac_option | cut -d '=' -f 2`"
392 --with-extraincdir=*)
393 _inc_extra=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
395 --with-extralibdir=*)
396 _ld_extra=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
398 --enable-runtime-cpudetection)
399 _runtime_cpudetection=yes
401 --disable-runtime-cpudetection)
402 _runtime_cpudetection=no
404 --install-path=*)
405 _install=`echo $ac_option | cut -d '=' -f 2 | sed 's/\/$//'`"/install"
407 --with-install=*)
408 _install=`echo $ac_option | cut -d '=' -f 2 `
410 esac
411 done
413 # Determine our OS name and CPU architecture
414 if test -z "$_target" ; then
415 # OS name
416 system_name=`( uname -s ) 2>&1`
417 case "$system_name" in
418 Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU|BeOS)
420 IRIX*)
421 system_name=IRIX
423 HP-UX*)
424 system_name=HP-UX
426 [cC][yY][gG][wW][iI][nN]*)
427 system_name=CYGWIN
429 MINGW32*)
430 system_name=MINGW32
432 MorphOS)
433 system_name=MorphOS
436 system_name="$system_name-UNKNOWN"
438 esac
441 # host's CPU/instruction set
442 host_arch=`( uname -p ) 2>&1`
443 case "$host_arch" in
444 i386|sparc|ppc|alpha|arm|mips|vax)
446 powerpc) # Darwin returns 'powerpc'
447 host_arch=ppc
449 *) # uname -p on Linux returns 'unknown' for the processor type,
450 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
452 # Maybe uname -m (machine hardware name) returns something we
453 # recognize.
455 # x86/x86pc is used by QNX
456 case "`( uname -m ) 2>&1`" in
457 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 ;;
458 ia64) host_arch=ia64 ;;
459 x86_64|amd64) host_arch=x86_64 ;;
460 macppc|ppc) host_arch=ppc ;;
461 alpha) host_arch=alpha ;;
462 sparc) host_arch=sparc ;;
463 sparc64) host_arch=sparc64 ;;
464 parisc*|hppa*|9000*) host_arch=hppa ;;
465 arm*) host_arch=arm ;;
466 s390) host_arch=s390 ;;
467 s390x) host_arch=s390x ;;
468 mips) host_arch=mips ;;
469 vax) host_arch=vax ;;
470 *) host_arch=UNKNOWN ;;
471 esac
473 esac
474 else
475 system_name=`echo $_target | cut -d '-' -f 2`
476 case "`echo $system_name | tr A-Z a-z`" in
477 linux) system_name=Linux ;;
478 freebsd) system_name=FreeBSD ;;
479 netbsd) system_name=NetBSD ;;
480 bsd/os) system_name=BSD/OS ;;
481 openbsd) system_name=OpenBSD ;;
482 sunos) system_name=SunOS ;;
483 qnx) system_name=QNX ;;
484 morphos) system_name=MorphOS ;;
485 mingw32msvc) system_name=MINGW32 ;;
486 esac
487 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
488 host_arch=`echo $_target | cut -d '-' -f 1 | tr '_' '-'`
491 echo "Detected operating system: $system_name"
492 echo "Detected host architecture: $host_arch"
494 # LGB: temporary files
495 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
496 test "$I" && break
497 done
499 TMPLOG="configure.log"
500 rm -f "$TMPLOG"
501 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
502 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
503 TMPO="$I/mplayer-conf-$RANDOM-$$.o"
504 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
506 # config files
508 # FIXME: A lot of stuff is installed under /usr/local
509 # NK: But we should never use this stuff implicitly since we call compiler
510 # from /usr we should be sure that there no effects from other compilers
511 # (libraries) which might be installed into /usr/local. Let users use this
512 # stuff explicitly as command line argument. In other words: It would be
513 # resonable to have only /usr/include or only /usr/local/include.
515 if freebsd ; then
516 _ld_extra="$_ld_extra -L/usr/local/lib"
517 _inc_extra="$_inc_extra -I/usr/local/include"
520 if netbsd ; then
521 for I in `echo $_ld_extra | sed 's/-L//g'` ; do
522 tmp="$tmp ` echo $I | sed 's/.*/ -L& -Wl,-R&/'`"
523 done
524 _ld_extra=$tmp
527 _ldd=ldd
528 if darwin; then
529 _ldd="otool -L"
532 # Checking CC version...
533 if test "$_skip_cc_check" != yes ; then
534 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
535 if test "`basename $_cc`" = "icc" || test "`basename $_cc`" = "ecc"; then
536 echocheck "$_cc version"
537 cc_vendor=intel
538 cc_name=`( $_cc -V ) 2>&1 | head -1 | cut -d ',' -f 1`
539 cc_version=`( $_cc -V ) 2>&1 | head -1 | cut -d ',' -f 2 | cut -d ' ' -f 3`
540 _cc_major=`echo $cc_version | cut -d '.' -f 1`
541 _cc_minor=`echo $cc_version | cut -d '.' -f 2`
542 # TODO verify older icc/ecc compatibility
543 case $cc_version in
545 cc_version="v. ?.??, bad"
546 cc_verc_fail=yes
548 8.0)
549 cc_version="$cc_version, ok"
550 cc_verc_fail=no
553 cc_version="$cc_version, bad"
554 cc_verc_fail=yes
556 esac
557 echores "$cc_version"
558 else
559 for _cc in "$_cc" gcc gcc-3.4 gcc-3.3 gcc-3.2 gcc-3.1 gcc3 gcc-3.0 cc ; do
560 echocheck "$_cc version"
561 cc_vendor=gnu
562 cc_name=`( $_cc -v ) 2>&1 | tail -1 | cut -d ' ' -f 1`
563 cc_version=`( $_cc -dumpversion ) 2>&1`
564 if test "$?" -gt 0; then
565 cc_version="not found"
567 case $cc_version in
569 cc_version="v. ?.??, bad"
570 cc_verc_fail=yes
572 2.95.[2-9]|2.95.[2-9][-.]*|3.[0-9]|3.[0-9].[0-9])
573 _cc_major=`echo $cc_version | cut -d '.' -f 1`
574 _cc_minor=`echo $cc_version | cut -d '.' -f 2`
575 _cc_mini=`echo $cc_version | cut -d '.' -f 3`
576 cc_version="$cc_version, ok"
577 cc_verc_fail=no
579 'not found')
580 cc_verc_fail=yes
583 cc_version="$cc_version, bad"
584 cc_verc_fail=yes
586 esac
587 echores "$cc_version"
588 (test "$cc_verc_fail" = "no") && break
589 done
590 fi # icc
591 if test "$cc_verc_fail" = yes ; then
592 cat <<EOF
594 *** Please downgrade/upgrade C compiler to version gcc-2.95.x or gcc-3.x! ***
596 You are not using a supported compiler. We do not have the time to make sure
597 everything works with compilers other than the ones we use. Use either the
598 same compiler as we do, or use --disable-gcc-checking but DO *NOT* REPORT BUGS
599 unless you can reproduce them after recompiling with a 2.95.x or 3.x version!
601 Note for gcc 2.96 users: Some versions of this compiler are known to miscompile
602 mplayer and lame (which is used for mencoder). If you get compile errors,
603 first upgrade to the latest 2.96 release (minimum 2.96-85) and try again.
604 If the problem still exists, try with gcc 3.x (or 2.95.x) *BEFORE* reporting
605 bugs!
607 GCC 2.96 IS NOT AND WILL NOT BE SUPPORTED BY US !
609 *** For details please read DOCS/HTML/en/users-vs-dev.html ***
612 die "Bad gcc version"
614 else
615 cat <<EOF
617 ******************************************************************************
619 Hmm. You really want to compile MPlayer with an *UNSUPPORTED* C compiler?
620 Ok. You know. Do it. Did you read DOCS/HTML/en/users-vs-dev.html???
622 DO NOT SEND BUGREPORTS OR COMPLAIN, it's *YOUR* compiler's fault!
623 Get ready for mysterious crashes, no-picture bugs, strange noises... REALLY!
624 Lame which is used by mencoder produces weird errors, too.
626 If you have any problem, install a GCC 2.95.x or 3.x version and try again.
627 If the problem _still_ exists, then read DOCS/HTML/en/bugreports.html !
629 *** DO NOT SEND BUG REPORTS OR COMPLAIN it's *YOUR* compiler's fault! ***
631 ******************************************************************************
635 read _answer
638 echocheck "host cc"
639 if not test "$_host_cc" ; then
640 _host_cc=$_cc
642 echores $_host_cc
645 # ---
647 # now that we know what compiler should be used for compilation, try to find
648 # out which assembler is used by the $_cc compiler
649 if test "$_as" = auto ; then
650 _as=`$_cc -print-prog-name=as`
651 test -z "$_as" && _as=as
654 # XXX: this should be ok..
655 _cpuinfo="echo"
656 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
657 # FIXME: Remove the cygwin check once AMD CPUs are supported
658 if test -r /proc/cpuinfo && not cygwin; then
659 # Linux with /proc mounted, extract CPU information from it
660 _cpuinfo="cat /proc/cpuinfo"
661 elif test -r /compat/linux/proc/cpuinfo && not x86 ; then
662 # FreeBSD with Linux emulation /proc mounted,
663 # extract CPU information from it
664 _cpuinfo="cat /compat/linux/proc/cpuinfo"
665 elif darwin ; then
666 # use hostinfo on Darwin
667 _cpuinfo="hostinfo"
668 elif x86; then
669 # all other OSes try to extract CPU information from a small helper
670 # program TOOLS/cpuinfo instead
671 $_cc -o TOOLS/cpuinfo TOOLS/cpuinfo.c
672 _cpuinfo="TOOLS/cpuinfo"
675 case "$host_arch" in
676 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
677 _def_arch="#define ARCH_X86 1"
678 _target_arch="TARGET_ARCH_X86 = yes"
680 pname=`$_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -1`
681 pvendor=`$_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
682 pfamily=`$_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
683 pmodel=`$_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
684 pstepping=`$_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
686 pparam=`$_cpuinfo | grep 'features' | cut -d ':' -f 2 | head -1`
687 if test -z "$pparam" ; then
688 pparam=`$_cpuinfo | grep 'flags' | cut -d ':' -f 2 | head -1`
691 _mmx=no
692 _3dnow=no
693 _3dnowex=no
694 _mmx2=no
695 _sse=no
696 _sse2=no
697 _mtrr=no
699 for i in $pparam ; do
700 case "$i" in
701 3dnow) _3dnow=yes ;;
702 3dnowext) _3dnow=yes _3dnowex=yes ;;
703 mmx) _mmx=yes ;;
704 mmxext) _mmx2=yes ;;
705 mtrr|k6_mtrr|cyrix_arr) _mtrr=yes ;;
706 xmm|sse|kni) _sse=yes _mmx2=yes ;;
707 sse2) _sse2=yes ;;
708 esac
709 done
711 echocheck "CPU vendor"
712 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
714 echocheck "CPU type"
715 echores "$pname"
717 case "$pvendor" in
718 AuthenticAMD)
719 case "$pfamily" in
720 3) proc=i386 iproc=386 ;;
721 4) proc=i486 iproc=486 ;;
722 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
723 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
724 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
725 proc=k6-3
726 elif test "$pmodel" -ge 8; then
727 proc=k6-2
728 elif test "$pmodel" -ge 6; then
729 proc=k6
730 else
731 proc=i586
732 iproc=586
735 6) iproc=686
736 if test "$pmodel" -ge 7; then
737 proc=athlon-4
738 elif test "$pmodel" -ge 6; then
739 # only Athlon XP supports ssem MP, Duron etc not
740 # but most of them are CPUID 666, so check if sse detected
741 # btw. there is also athlon-mp opt, but we need extended
742 # CPUID to detect if CPU is SMP capable -> athlon-mp ::atmos
743 if test "$_sse" = yes && test "$pstepping" -ge 2; then
744 proc=athlon-xp
745 else
746 proc=athlon-4
748 elif test "$pmodel" -ge 4; then
749 proc=athlon-tbird
750 else
751 proc=athlon # TODO: should the Duron Spitfire be considered a Thunderbird instead?
755 *) proc=athlon-xp iproc=686 ;;
756 esac
758 GenuineIntel)
759 case "$pfamily" in
760 3) proc=i386 iproc=386 ;;
761 4) proc=i486 iproc=486 ;;
762 5) iproc=586
763 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
764 proc=pentium-mmx # 4 is desktop, 8 is mobile
765 else
766 proc=i586
769 6) iproc=686
770 if test "$pmodel" -ge 7; then
771 proc=pentium3
772 elif test "$pmodel" -ge 3; then
773 proc=pentium2
774 else
775 proc=i686
778 15) proc=pentium4 iproc=686 ;;
779 *) proc=pentium4 iproc=686 ;;
780 esac
782 unknown)
783 case "$pfamily" in
784 3) proc=i386 iproc=386 ;;
785 4) proc=i486 iproc=486 ;;
786 *) proc=i586 iproc=586 ;;
787 esac
790 proc=i586 iproc=586 ;;
791 esac
793 # check that gcc supports our CPU, if not, fall back to earlier ones
794 # LGB: check -mcpu and -march swithing step by step with enabling
795 # to fall back till 386.
797 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
799 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
800 cpuopt=-mtune
801 else
802 cpuopt=-mcpu
805 echocheck "GCC & CPU optimization abilities"
806 cat > $TMPC << EOF
807 int main(void) { return 0; }
809 if test "$_runtime_cpudetection" = no ; then
810 if test "$proc" = "athlon-xp" || test "$proc" = "athlon-4" || test "$proc" = "athlon-tbird"; then
811 cc_check -march=$proc $cpuopt=$proc || proc=athlon
813 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
814 cc_check -march=$proc $cpuopt=$proc || proc=k6
816 if test "$proc" = "k6"; then
817 if not cc_check -march=$proc $cpuopt=$proc; then
818 if cc_check -march=i586 $cpuopt=i686; then
819 proc=i586-i686
820 else
821 proc=i586
825 if test "$proc" = "pentium4" || test "$proc" = "pentium3" || test "$proc" = "pentium2" || test "$proc" = "athlon"; then
826 cc_check -march=$proc $cpuopt=$proc || proc=i686
828 if test "$proc" = "i686" || test "$proc" = "pentium-mmx"; then
829 cc_check -march=$proc $cpuopt=$proc || proc=i586
831 if test "$proc" = "i586" ; then
832 cc_check -march=$proc $cpuopt=$proc || proc=i486
834 if test "$proc" = "i486" ; then
835 cc_check -march=$proc $cpuopt=$proc || proc=i386
837 if test "$proc" = "i386" ; then
838 cc_check -march=$proc $cpuopt=$proc || proc=error
840 if test "$proc" = "error" ; then
841 echores "Your $_cc does not even support \"i386\" for '-march' and '$cpuopt'."
842 _mcpu=""
843 _march=""
844 _optimizing=""
845 elif test "$proc" = "i586-i686"; then
846 _march="-march=i586"
847 _mcpu="$cpuopt=i686"
848 _optimizing="$proc"
849 else
850 _march="-march=$proc"
851 _mcpu="$cpuopt=$proc"
852 _optimizing="$proc"
854 else
855 # i686 is probably the most common CPU - optimize for it
856 _mcpu="$cpuopt=i686"
857 # at least i486 required, for bswap instruction
858 _march="-march=i486"
859 cc_check $_mcpu || _mcpu=""
860 cc_check $_march $_mcpu || _march=""
863 ## Gabucino : --target takes effect here (hopefully...) by overwriting
864 ## autodetected mcpu/march parameters
865 if test "$_target" ; then
866 # TODO: it may be a good idea to check GCC and fall back in all cases
867 if test "$host_arch" = "i586-i686"; then
868 _march="-march=i586"
869 _mcpu="$cpuopt=i686"
870 else
871 _march="-march=$host_arch"
872 _mcpu="$cpuopt=$host_arch"
875 proc="$host_arch"
877 case "$proc" in
878 i386) iproc=386 ;;
879 i486) iproc=486 ;;
880 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
881 i686|athlon*|pentium*) iproc=686 ;;
882 *) iproc=586 ;;
883 esac
886 echores "$proc"
889 ia64)
890 _def_arch='#define ARCH_IA64 1'
891 _target_arch='TARGET_ARCH_IA64 = yes'
892 iproc='ia64'
893 proc=''
894 _march=''
895 _mcpu=''
896 _optimizing=''
899 x86_64|amd64)
900 _def_arch='#define ARCH_X86_64 1'
901 _target_arch='TARGET_ARCH_X86_64 = yes'
902 iproc='x86_64'
903 proc=''
904 _march=''
905 _mcpu=''
906 _optimizing=''
909 sparc)
910 _def_arch='#define ARCH_SPARC 1'
911 _target_arch='TARGET_ARCH_SPARC = yes'
912 iproc='sparc'
913 if sunos ; then
914 echocheck "CPU type"
915 karch=`uname -m`
916 case "`echo $karch`" in
917 sun4) proc=v7 ;;
918 sun4c) proc=v7 ;;
919 sun4d) proc=v8 ;;
920 sun4m) proc=v8 ;;
921 sun4u) proc=v9 _vis='yes' _def_vis='#define HAVE_VIS = yes' ;;
922 *) ;;
923 esac
924 echores "$proc"
925 else
926 proc=v8
928 _march=''
929 _mcpu="-mcpu=$proc"
930 _optimizing="$proc"
933 sparc64)
934 _def_arch='#define ARCH_SPARC 1'
935 _target_arch='TARGET_ARCH_SPARC = yes'
936 _vis='yes'
937 _def_vis='#define HAVE_VIS = yes'
938 iproc='sparc'
939 proc='v9'
940 _march=''
941 _mcpu="-mcpu=$proc"
942 _optimizing="$proc"
945 arm|armv4l|armv5tel)
946 _def_arch='#define ARCH_ARMV4L 1'
947 _target_arch='TARGET_ARCH_ARMV4L = yes'
948 iproc='arm'
949 proc=''
950 _march=''
951 _mcpu=''
952 _optimizing=''
955 ppc)
956 _def_arch='#define ARCH_POWERPC 1'
957 _target_arch='TARGET_ARCH_POWERPC = yes'
958 iproc='ppc'
959 proc=''
960 _march=''
961 _mcpu=''
962 _optimizing=''
963 _altivec=no
965 echocheck "CPU type"
966 if linux && test -n "$_cpuinfo"; then
967 proc=`$_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -1`
968 if test -n "`$_cpuinfo | grep altivec`"; then
969 _altivec=yes
972 if darwin ; then
973 proc=`$_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//'`
974 if [ `sysctl -n hw.vectorunit` -eq 1 ]; then
975 _altivec=yes
976 elif [ "`sysctl -n hw.optional.altivec 2>/dev/null`" = 1 ]; then
977 _altivec=yes
980 # only gcc 3.4 works reliably with altivec code under netbsd
981 if netbsd ; then
982 case $cc_version in
983 2*|3.0*|3.1*|3.2*|3.3*)
986 if [ `sysctl -n machdep.altivec` -eq 1 ]; then
987 _altivec=yes
990 esac
992 if test "$_altivec" = yes; then
993 echores "$proc altivec"
994 else
995 echores "$proc"
998 echocheck "GCC & CPU optimization abilities"
1000 if test -n "$proc"; then
1001 case "$proc" in
1002 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
1003 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
1004 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
1005 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
1006 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
1007 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
1008 *) ;;
1009 esac
1010 # gcc 3.1(.1) and up supports 7400 and 7450
1011 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1"; then
1012 case "$proc" in
1013 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
1014 7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
1015 *) ;;
1016 esac
1018 # gcc 3.2 and up supports 970
1019 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3"; then
1020 case "$proc" in
1021 970*) _march='-mcpu=970' _mcpu='-mtune=970' ;;
1022 *) ;;
1023 esac
1027 if test -n "$_mcpu"; then
1028 _optimizing=`echo $_mcpu | cut -c 8-`
1029 echores "$_optimizing"
1030 else
1031 echores "none"
1036 alpha)
1037 _def_arch='#define ARCH_ALPHA 1'
1038 _target_arch='TARGET_ARCH_ALPHA = yes'
1039 iproc='alpha'
1040 _march=''
1042 echocheck "CPU type"
1043 cat > $TMPC << EOF
1044 int main() {
1045 unsigned long ver, mask;
1046 asm ("implver %0" : "=r" (ver));
1047 asm ("amask %1, %0" : "=r" (mask) : "r" (-1));
1048 printf("%ld-%x\n", ver, ~mask);
1049 return 0;
1052 $_cc -o "$TMPO" "$TMPC"
1053 case `"$TMPO"` in
1055 0-0) proc="ev4"; cpu_understands_mvi="0";;
1056 1-0) proc="ev5"; cpu_understands_mvi="0";;
1057 1-1) proc="ev56"; cpu_understands_mvi="0";;
1058 1-101) proc="pca56"; cpu_understands_mvi="1";;
1059 2-303) proc="ev6"; cpu_understands_mvi="1";;
1060 2-307) proc="ev67"; cpu_understands_mvi="1";;
1061 2-1307) proc="ev68"; cpu_understands_mvi="1";;
1062 esac
1063 echores "$proc"
1065 echocheck "GCC & CPU optimization abilities"
1066 if test "$proc" = "ev68" ; then
1067 cc_check -mcpu=$proc || proc=ev67
1069 if test "$proc" = "ev67" ; then
1070 cc_check -mcpu=$proc || proc=ev6
1072 _mcpu="-mcpu=$proc"
1073 echores "$proc"
1075 _optimizing="$proc"
1077 echocheck "MVI instruction support in GCC"
1078 if test "$_cc_major" -ge "3" && test "$cpu_understands_mvi" = "1" ; then
1079 _def_gcc_mvi_support="#define CAN_COMPILE_ALPHA_MVI 1"
1080 echores "yes"
1081 else
1082 _def_gcc_mvi_support="#undef CAN_COMPILE_ALPHA_MVI"
1083 echores "no, GCC = `( $_cc -dumpversion ) 2>&1` (must be >= 3), CPU = $proc (must be pca56 or later)"
1087 mips)
1088 _def_arch='#define ARCH_SGI_MIPS 1'
1089 _target_arch='TARGET_ARCH_SGI_MIPS = yes'
1090 iproc='sgi-mips'
1091 proc=''
1092 _march=''
1093 _mcpu=''
1094 _optimizing=''
1096 if irix ; then
1097 echocheck "CPU type"
1098 proc=`hinv -c processor | grep CPU | cut -d " " -f3`
1099 case "`echo $proc`" in
1100 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
1101 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
1102 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
1103 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
1104 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
1105 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
1106 esac
1107 echores "$proc"
1112 hppa)
1113 _def_arch='#define ARCH_PA_RISC 1'
1114 _target_arch='TARGET_ARCH_PA_RISC = yes'
1115 iproc='PA-RISC'
1116 proc=''
1117 _march=''
1118 _mcpu=''
1119 _optimizing=''
1122 s390)
1123 _def_arch='#define ARCH_S390 1'
1124 _target_arch='TARGET_ARCH_S390 = yes'
1125 iproc='390'
1126 proc=''
1127 _march=''
1128 _mcpu=''
1129 _optimizing=''
1132 s390x)
1133 _def_arch='#define ARCH_S390X 1'
1134 _target_arch='TARGET_ARCH_S390X = yes'
1135 iproc='390x'
1136 proc=''
1137 _march=''
1138 _mcpu=''
1139 _optimizing=''
1142 vax)
1143 _def_arch='#define ARCH_VAX 1'
1144 _target_arch='TARGET_ARCH_VAX = yes'
1145 iproc='vax'
1146 proc=''
1147 _march=''
1148 _mcpu=''
1149 _optimizing=''
1153 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
1154 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
1155 die "unsupported architecture $host_arch"
1157 esac
1159 if test "$_runtime_cpudetection" = yes ; then
1160 if x86; then
1161 _mmx=yes
1162 _3dnow=yes
1163 _3dnowex=yes
1164 _mmx2=yes
1165 _sse=yes
1166 _sse2=yes
1167 _mtrr=yes
1169 if ppc; then
1170 _altivec=yes
1174 if x86 && test "$_runtime_cpudetection" = no ; then
1175 extcheck() {
1176 if test "$1" = yes ; then
1177 echocheck "kernel support of $2"
1178 cat > $TMPC <<EOF
1179 #include <signal.h>
1180 void catch() { exit(1); }
1181 int main(void){
1182 signal(SIGILL, catch);
1183 __asm__ __volatile__ ("$3":::"memory");return(0);
1187 if ( cc_check && $TMPO ) > /dev/null 2>&1 ; then
1188 echores "yes"
1189 _optimizing="$_optimizing $2"
1190 return 0
1191 else
1192 echores "failed"
1193 echo "It seems that your kernel does not correctly support $2."
1194 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1195 return 1
1198 return 0
1201 extcheck $_mmx "mmx" "emms" || _mmx=no
1202 extcheck $_mmx2 "mmx2" "sfence" || _mmx2=no
1203 extcheck $_3dnow "3dnow" "femms" || _3dnow=no
1204 extcheck $_3dnowex "3dnowex" "pswapd %%mm0, %%mm0" || _3dnowex=no
1205 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _sse=no _gcc3_ext="$_gcc3_ext -mno-sse"
1206 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _sse2=no _gcc3_ext="$_gcc3_ext -mno-sse2"
1207 echocheck "mtrr support"
1208 echores "$_mtrr"
1210 if test "$_mtrr" = yes ; then
1211 _optimizing="$_optimizing mtrr"
1214 if test "$_gcc3_ext" != ""; then
1215 # if we had to disable sse/sse2 because the active kernel does not
1216 # support this instruction set extension, we also have to tell
1217 # gcc3 to not generate sse/sse2 instructions for normal C code
1218 cat > $TMPC << EOF
1219 int main(void) { return 0; }
1221 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1226 echocheck "assembler support of -pipe option"
1227 cat > $TMPC << EOF
1228 int main(void) { return 0; }
1230 cc_check -pipe && _pipe="-pipe" && echores "yes" || echores "no"
1232 _prefix="/usr/local"
1233 _xvmclib="XvMCNVIDIA"
1235 # GOTCHA: the variables below defines the default behavior for autodetection
1236 # and have - unless stated otherwise - at least 2 states : yes no
1237 # If autodetection is available then the third state is: auto
1238 _libavcodec=auto
1239 _libavcodecso=auto
1240 _libavformat=auto
1241 _fame=auto
1242 _mp1e=no
1243 _mencoder=yes
1244 _x11=auto
1245 _dga=auto # 1 2 no auto
1246 _xv=auto
1247 _xvmc=no #auto when complete
1248 _sdl=auto
1249 _directx=auto
1250 _win32waveout=auto
1251 _nas=auto
1252 _png=auto
1253 _jpg=auto
1254 _gif=auto
1255 _gl=auto
1256 _ggi=auto
1257 _aa=auto
1258 _caca=auto
1259 _svga=auto
1260 _vesa=auto
1261 _fbdev=auto
1262 _dvb=auto
1263 _dvbhead=auto
1264 _dxr2=auto
1265 _dxr3=auto
1266 _iconv=auto
1267 _langinfo=auto
1268 _rtc=auto
1269 _ossaudio=auto
1270 _arts=auto
1271 _esd=auto
1272 _jack=auto
1273 _liblzo=auto
1274 _mad=auto
1275 _toolame=auto
1276 _vorbis=auto
1277 _theora=auto
1278 _mp3lib=yes
1279 _liba52=yes
1280 _libdts=auto
1281 _libmpeg2=yes
1282 _matroska_internal=yes
1283 _tremor=no
1284 _faad_internal=auto
1285 _faad_external=auto
1286 _xmms=no
1287 # dvdnav disabled, it does not work
1288 #_dvdnav=no
1289 _dvdread=auto
1290 _dvdkit=auto
1291 _xanim=auto
1292 _real=auto
1293 _live=auto
1294 _xinerama=auto
1295 _mga=auto
1296 _xmga=auto
1297 _vm=auto
1298 _mlib=auto
1299 _sgiaudio=auto
1300 _sunaudio=auto
1301 _alsa=auto
1302 _fastmemcpy=yes
1303 _unrarlib=yes
1304 _macshlb=auto
1305 _win32=auto
1306 _dshow=yes
1307 _select=yes
1308 _tv=yes
1309 _tv_v4l=auto
1310 _tv_v4l2=auto
1311 _tv_bsdbt848=auto
1312 _edl=yes
1313 _network=yes
1314 _winsock2=auto
1315 _smbsupport=auto
1316 _vidix=auto
1317 _joystick=no
1318 _xvid=auto
1319 _x264=auto
1320 _divx4linux=auto
1321 _opendivx=no
1322 _lirc=auto
1323 _lircc=auto
1324 _gui=no
1325 _termcap=auto
1326 _termios=auto
1327 _3dfx=no
1328 _tdfxfb=no
1329 _tdfxvid=no
1330 _tga=yes
1331 _directfb=auto
1332 _zr=auto
1333 _bl=no
1334 _largefiles=no
1335 #_language=en
1336 _shm=auto
1337 _linux_devfs=no
1338 _i18n=auto
1339 _dynamic_plugins=no
1340 _setlocale=auto
1341 _sighandler=yes
1342 _libdv=auto
1343 _cdparanoia=auto
1344 _big_endian=auto
1345 _freetype=auto
1346 _fontconfig=auto
1347 _shared_pp=no
1348 _menu=no
1349 _qtx=auto
1350 _macosx=auto
1351 _sortsub=yes
1352 _freetypeconfig='freetype-config'
1353 _fribidi=no
1354 _fribidiconfig='fribidi-config'
1355 _enca=auto
1356 _inet6=auto
1357 _gethostbyname2=auto
1358 _ftp=yes
1359 for ac_option do
1360 case "$ac_option" in
1361 # Skip 1st pass
1362 --target=*) ;;
1363 --cc=*) ;;
1364 --host-cc=*) ;;
1365 --as=*) ;;
1366 --enable-gcc-checking) ;;
1367 --disable-gcc-checking) ;;
1368 --enable-static*) ;;
1369 --disable-static*) ;;
1370 --with-extraincdir=*) ;;
1371 --with-extralibdir=*) ;;
1372 --enable-runtime-cpudetection) ;;
1373 --disable-runtime-cpudetection) ;;
1374 --install-path=*) ;;
1375 --with-install=*) ;;
1377 # Real 2nd pass
1378 --enable-mencoder) _mencoder=yes ;;
1379 --disable-mencoder) _mencoder=no ;;
1380 --enable-i18n) _i18n=yes ;;
1381 --disable-i18n) _i18n=no ;;
1382 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
1383 --disable-dynamic-plugins) _dynamic_plugins=no ;;
1384 --enable-setlocale) _setlocale=yes ;;
1385 --disable-setlocale) _setlocale=no ;;
1386 --enable-x11) _x11=yes ;;
1387 --disable-x11) _x11=no ;;
1388 --enable-xv) _xv=yes ;;
1389 --disable-xv) _xv=no ;;
1390 --enable-xvmc) _xvmc=yes ;;
1391 --disable-xvmc) _xvmc=no ;;
1392 --enable-sdl) _sdl=yes ;;
1393 --disable-sdl) _sdl=no ;;
1394 --enable-directx) _directx=yes ;;
1395 --disable-directx) _directx=no ;;
1396 --enable-win32waveout) _win32waveout=yes ;;
1397 --disable-win32waveout) _win32waveout=no ;;
1398 --enable-nas) _nas=yes ;;
1399 --disable-nas) _nas=no ;;
1400 --enable-png) _png=yes ;;
1401 --disable-png) _png=no ;;
1402 --enable-jpeg) _jpg=yes ;;
1403 --disable-jpeg) _jpg=no ;;
1404 --enable-gif) _gif=yes ;;
1405 --disable-gif) _gif=no ;;
1406 --enable-gl) _gl=yes ;;
1407 --disable-gl) _gl=no ;;
1408 --enable-ggi) _ggi=yes ;;
1409 --disable-ggi) _ggi=no ;;
1410 --enable-aa) _aa=yes ;;
1411 --disable-aa) _aa=no ;;
1412 --enable-caca) _caca=yes ;;
1413 --disable-caca) _caca=no ;;
1414 --enable-svga) _svga=yes ;;
1415 --disable-svga) _svga=no ;;
1416 --enable-vesa) _vesa=yes ;;
1417 --disable-vesa) _vesa=no ;;
1418 --enable-fbdev) _fbdev=yes ;;
1419 --disable-fbdev) _fbdev=no ;;
1420 --enable-dvb) _dvb=yes ;;
1421 --disable-dvb) _dvb=no ;;
1422 --enable-dvbhead) _dvbhead=yes ;;
1423 --disable-dvbhead) _dvbhead=no ;;
1424 --enable-dxr2) _dxr2=yes ;;
1425 --disable-dxr2) _dxr2=no ;;
1426 --enable-dxr3) _dxr3=yes ;;
1427 --disable-dxr3) _dxr3=no ;;
1428 --enable-iconv) _iconv=yes ;;
1429 --disable-iconv) _iconv=no ;;
1430 --enable-langinfo) _langinfo=yes ;;
1431 --disable-langinfo) _langinfo=no ;;
1432 --enable-rtc) _rtc=yes ;;
1433 --disable-rtc) _rtc=no ;;
1434 --enable-mp1e) _mp1e=yes ;;
1435 --disable-mp1e) _mp1e=no ;;
1436 --enable-libdv) _libdv=yes ;;
1437 --disable-libdv) _libdv=no ;;
1438 --enable-ossaudio) _ossaudio=yes ;;
1439 --disable-ossaudio) _ossaudio=no ;;
1440 --enable-arts) _arts=yes ;;
1441 --disable-arts) _arts=no ;;
1442 --enable-esd) _esd=yes ;;
1443 --disable-esd) _esd=no ;;
1444 --enable-jack) _jack=yes ;;
1445 --disable-jack) _jack=no ;;
1446 --enable-mad) _mad=yes ;;
1447 --disable-mad) _mad=no ;;
1448 --disable-toolame) _toolame=no ;;
1449 --enable-liblzo) _liblzo=yes ;;
1450 --disable-liblzo) _liblzo=no ;;
1451 --enable-vorbis) _vorbis=yes ;;
1452 --disable-vorbis) _vorbis=no ;;
1453 --enable-tremor) _tremor=yes ;;
1454 --disable-tremor) _tremor=no ;;
1455 --enable-theora) _theora=yes ;;
1456 --disable-theora) _theora=no ;;
1457 --enable-mp3lib) _mp3lib=yes ;;
1458 --disable-mp3lib) _mp3lib=no ;;
1459 --enable-liba52) _liba52=yes ;;
1460 --disable-liba52) _liba52=no ;;
1461 --enable-libdts) _libdts=yes ;;
1462 --disable-libdts) _libdts=no ;;
1463 --enable-libmpeg2) _libmpeg2=yes ;;
1464 --disable-libmpeg2) _libmpeg2=no ;;
1465 --enable-internal-matroska) _matroska_internal=yes ;;
1466 --disable-internal-matroska) _matroska_internal=no ;;
1467 --enable-internal-faad) _faad_internal=yes _faad_external=no ;;
1468 --disable-internal-faad) _faad_internal=no ;;
1469 --enable-external-faad) _faad_external=yes _faad_internal=no ;;
1470 --disable-external-faad) _faad_external=no ;;
1471 --enable-xmms) _xmms=yes ;;
1472 --disable-xmms) _xmms=no ;;
1473 --enable-dvdread) _dvdread=yes ;;
1474 --disable-dvdread) _dvdread=no ;;
1475 --enable-mpdvdkit) _dvdkit=yes ;;
1476 --disable-mpdvdkit) _dvdkit=no ;;
1477 # dvdnav disabled, it does not work
1478 # --enable-dvdnav) _dvdnav=yes ;;
1479 # --disable-dvdnav) _dvdnav=no ;;
1480 --enable-xanim) _xanim=yes ;;
1481 --disable-xanim) _xanim=no ;;
1482 --enable-real) _real=yes ;;
1483 --disable-real) _real=no ;;
1484 --enable-live) _live=yes ;;
1485 --disable-live) _live=no ;;
1486 --enable-xinerama) _xinerama=yes ;;
1487 --disable-xinerama) _xinerama=no ;;
1488 --enable-mga) _mga=yes ;;
1489 --disable-mga) _mga=no ;;
1490 --enable-xmga) _xmga=yes ;;
1491 --disable-xmga) _xmga=no ;;
1492 --enable-vm) _vm=yes ;;
1493 --disable-vm) _vm=no ;;
1494 --enable-mlib) _mlib=yes ;;
1495 --disable-mlib) _mlib=no ;;
1496 --enable-sunaudio) _sunaudio=yes ;;
1497 --disable-sunaudio) _sunaudio=no ;;
1498 --enable-sgiaudio) _sgiaudio=yes ;;
1499 --disable-sgiaudio) _sgiaudio=no ;;
1500 --enable-alsa) _alsa=yes ;;
1501 --disable-alsa) _alsa=no ;;
1502 --enable-tv) _tv=yes ;;
1503 --disable-tv) _tv=no ;;
1504 --enable-edl) _edl=yes ;;
1505 --disable-edl) _edl=no ;;
1506 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1507 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1508 --enable-tv-v4l) _tv_v4l=yes ;;
1509 --disable-tv-v4l) _tv_v4l=no ;;
1510 --enable-tv-v4l2) _tv_v4l2=yes ;;
1511 --disable-tv-v4l2) _tv_v4l2=no ;;
1512 --enable-fastmemcpy) _fastmemcpy=yes ;;
1513 --disable-fastmemcpy) _fastmemcpy=no ;;
1514 --enable-network) _network=yes ;;
1515 --disable-network) _network=no ;;
1516 --enable-winsock2) _winsock2=yes ;;
1517 --disable-winsock2) _winsock2=no ;;
1518 --enable-smb) _smbsupport=yes ;;
1519 --disable-smb) _smbsupport=no ;;
1520 --enable-vidix) _vidix=yes ;;
1521 --disable-vidix) _vidix=no ;;
1522 --enable-joystick) _joystick=yes ;;
1523 --disable-joystick) _joystick=no ;;
1524 --enable-xvid) _xvid=yes ;;
1525 --disable-xvid) _xvid=no ;;
1526 --enable-x264) _x264=yes ;;
1527 --disable-x264) _x264=no ;;
1528 --enable-divx4linux) _divx4linux=yes ;;
1529 --disable-divx4linux) _divx4linux=no ;;
1530 --enable-opendivx) _opendivx=yes ;;
1531 --disable-opendivx) _opendivx=no ;;
1532 --enable-libavcodec) _libavcodec=yes ;;
1533 --disable-libavcodec) _libavcodec=no ;;
1534 --enable-libavformat) _libavformat=yes;;
1535 --disable-libavformat) _libavformat=no ;;
1536 --enable-libfame) _fame=yes ;;
1537 --disable-libfame) _fame=no ;;
1538 --enable-lirc) _lirc=yes ;;
1539 --disable-lirc) _lirc=no ;;
1540 --enable-lircc) _lircc=yes ;;
1541 --disable-lircc) _lircc=no ;;
1542 --enable-gui) _gui=yes ;;
1543 --disable-gui) _gui=no ;;
1544 --enable-termcap) _termcap=yes ;;
1545 --disable-termcap) _termcap=no ;;
1546 --enable-termios) _termios=yes ;;
1547 --disable-termios) _termios=no ;;
1548 --enable-3dfx) _3dfx=yes ;;
1549 --disable-3dfx) _3dfx=no ;;
1550 --enable-tdfxfb) _tdfxfb=yes ;;
1551 --disable-tdfxvid) _tdfxvid=no ;;
1552 --enable-tdfxvid) _tdfxvid=yes ;;
1553 --disable-tga) _tga=no ;;
1554 --enable-tga) _tga=yes ;;
1555 --disable-tdfxfb) _tdfxfb=no ;;
1556 --enable-directfb) _directfb=yes ;;
1557 --disable-directfb) _directfb=no ;;
1558 --enable-zr) _zr=yes ;;
1559 --disable-zr) _zr=no ;;
1560 --enable-bl) _bl=yes ;;
1561 --disable-bl) _bl=no ;;
1562 --enable-mtrr) _mtrr=yes ;;
1563 --disable-mtrr) _mtrr=no ;;
1564 --enable-largefiles) _largefiles=yes ;;
1565 --disable-largefiles) _largefiles=no ;;
1566 --enable-shm) _shm=yes ;;
1567 --disable-shm) _shm=no ;;
1568 --enable-select) _select=yes ;;
1569 --disable-select) _select=no ;;
1570 --enable-linux-devfs) _linux_devfs=yes ;;
1571 --disable-linux-devfs) _linux_devfs=no ;;
1572 --enable-cdparanoia) _cdparanoia=yes ;;
1573 --disable-cdparanoia) _cdparanoia=no ;;
1574 --enable-big-endian) _big_endian=yes ;;
1575 --disable-big-endian) _big_endian=no ;;
1576 --enable-freetype) _freetype=yes ;;
1577 --disable-freetype) _freetype=no ;;
1578 --enable-fontconfig) _fontconfig=yes ;;
1579 --disable-fontconfig) _fontconfig=no ;;
1580 --enable-unrarlib) _unrarlib=yes ;;
1581 --disable-unrarlib) _unrarlib=no ;;
1582 --enable-ftp) _ftp=yes ;;
1583 --disable-ftp) _ftp=no ;;
1585 --enable-fribidi) _fribidi=yes ;;
1586 --disable-fribidi) _fribidi=no ;;
1588 --enable-enca) _enca=yes ;;
1589 --disable-enca) _enca=no ;;
1591 --enable-inet6) _inet6=yes ;;
1592 --disable-inet6) _inet6=no ;;
1594 --enable-gethostbyname2) _gethostbyname2=yes ;;
1595 --disable-gethostbyname2) _gethostbyname2=no ;;
1597 --enable-dga) _dga=auto ;; # as we don't know if it's 1 or 2
1598 --enable-dga=*) _dga=`echo $ac_option | cut -d '=' -f 2` ;;
1599 --disable-dga) _dga=no ;;
1601 --enable-shared-pp) _shared_pp=yes ;;
1602 --disable-shared-pp) _shared_pp=no ;;
1604 --enable-menu) _menu=yes ;;
1605 --disable-menu) _menu=no ;;
1607 --enable-qtx) _qtx=yes ;;
1608 --disable-qtx) _qtx=no ;;
1610 --enable-macosx) _macosx=yes ;;
1611 --disable-macosx) _macosx=no ;;
1613 --enable-sortsub) _sortsub=yes ;;
1614 --disable-sortsub) _sortsub=no ;;
1616 --language=*)
1617 _language=`echo $ac_option | cut -d '=' -f 2`
1619 # dvdnav disabled, it does not work
1620 # --with-libdvdnav=*)
1621 # _dvdnavdir=`echo $ac_option | cut -d '=' -f 2`
1622 # _dvdnav=yes
1623 # ;;
1625 --with-codecsdir=*)
1626 _win32libdir=`echo $ac_option | cut -d '=' -f 2`
1627 _xanimlibdir=`echo $ac_option | cut -d '=' -f 2`
1628 _reallibdir=`echo $ac_option | cut -d '=' -f 2`
1630 --with-win32libdir=*)
1631 _win32libdir=`echo $ac_option | cut -d '=' -f 2`
1632 _win32=yes
1634 --with-xanimlibdir=*)
1635 _xanimlibdir=`echo $ac_option | cut -d '=' -f 2`
1636 _xanim=yes
1638 --with-reallibdir=*)
1639 _reallibdir=`echo $ac_option | cut -d '=' -f 2`
1640 _real=yes
1642 --with-livelibdir=*)
1643 _livelibdir=`echo $ac_option | cut -d '=' -f 2`
1645 --with-toolamedir=*)
1646 _toolamedir=`echo $ac_option | cut -d '=' -f 2`
1648 --with-mlibdir=*)
1649 _mlibdir=`echo $ac_option | cut -d '=' -f 2`
1650 _mlib=yes
1653 --with-xmmslibdir=*)
1654 _xmmslibdir=`echo $ac_option | cut -d '=' -f 2`
1657 --with-xmmsplugindir=*)
1658 _xmmsplugindir=`echo $ac_option | cut -d '=' -f 2`
1661 --with-bio2jack=*)
1662 _bio2jackdir=`echo $ac_option | cut -d '=' -f 2`
1665 --enable-profile)
1666 _profile='-p'
1668 --disable-profile)
1669 _profile=
1671 --enable-debug)
1672 _debug='-g'
1674 --enable-debug=*)
1675 _debug=`echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2`
1677 --disable-debug)
1678 _debug=
1680 --enable-sighandler)
1681 _sighandler=yes
1683 --disable-sighandler)
1684 _sighandler=no
1687 --enable-sse) _sse=yes ;;
1688 --disable-sse) _sse=no ;;
1689 --enable-sse2) _sse2=yes ;;
1690 --disable-sse2) _sse2=no ;;
1691 --enable-mmx2) _mmx2=yes ;;
1692 --disable-mmx2) _mmx2=no ;;
1693 --enable-3dnow) _3dnow=yes ;;
1694 --disable-3dnow) _3dnow=no _3dnowex=no ;;
1695 --enable-3dnowex) _3dnow=yes _3dnowex=yes ;;
1696 --disable-3dnowex) _3dnowex=no ;;
1697 --enable-altivec) _altivec=yes ;;
1698 --disable-altivec) _altivec=no ;;
1699 --enable-mmx) _mmx=yes ;;
1700 --disable-mmx) # 3Dnow! and MMX2 require MMX
1701 _3dnow=no _3dnowex=no _mmx=no _mmx2=no ;;
1703 --enable-macshlb) _macshlb=yes ;;
1704 --disable-macshlb) _macshlb=no ;;
1705 --enable-win32) _win32=yes ;;
1706 --disable-win32) _win32=no _dshow=no ;;
1707 --enable-dshow) _win32=yes _dshow=yes ;;
1708 --disable-dshow) _dshow=no ;;
1710 --with-x11incdir=*)
1711 _inc_x11=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1713 --with-x11libdir=*)
1714 _ld_x11=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1716 --with-dxr2incdir=*)
1717 _inc_dxr2=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1719 --with-xvmclib=*)
1720 _xvmclib=`echo $ac_option | cut -d '=' -f 2`
1722 --with-dvbincdir=*)
1723 _inc_dvb=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1725 --with-xvidlibdir=*)
1726 _ld_xvid=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1728 --with-xvidincdir=*)
1729 _inc_xvid=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1731 --with-dtslibdir=*)
1732 _ld_libdts=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1734 --with-dtsincdir=*)
1735 _inc_libdts=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1737 --with-x264libdir=*)
1738 _ld_x264=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1740 --with-x264incdir=*)
1741 _inc_x264=-I`echo $ac_option | cut -d '=' -f 2 |sed 's,:, -I,g'`
1743 --with-sdl-config=*)
1744 _sdlconfig=`echo $ac_option | cut -d '=' -f 2`
1746 --with-freetype-config=*)
1747 _freetypeconfig=`echo $ac_option | cut -d '=' -f 2`
1749 --with-fribidi-config=*)
1750 _fribidiconfig=`echo $ac_option | cut -d '=' -f 2`
1752 --with-gtk-config=*)
1753 _gtkconfig=`echo $ac_option | cut -d '=' -f 2`
1755 --with-glib-config=*)
1756 _glibconfig=`echo $ac_option | cut -d '=' -f 2`
1758 # dvdnav disabled, it does not work
1759 # --with-dvdnav-config=*)
1760 # _dvdnavconfig=`echo $ac_option | cut -d '=' -f 2`
1761 # ;;
1762 --with-madlibdir=*)
1763 _ld_mad=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1765 --with-cdparanoiaincdir=*)
1766 _inc_cdparanoia=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1768 --with-cdparanoialibdir=*)
1769 _ld_cdparanoia=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1771 --with-termcaplib=*)
1772 _ld_termcap=-l`echo $ac_option | cut -d '=' -f 2`
1773 _termcap=yes
1775 --prefix=*)
1776 _prefix=`echo $ac_option | cut -d '=' -f 2`
1778 --bindir=*)
1779 _bindir=`echo $ac_option | cut -d '=' -f 2`
1781 --datadir=*)
1782 _datadir=`echo $ac_option | cut -d '=' -f 2`
1784 --mandir=*)
1785 _mandir=`echo $ac_option | cut -d '=' -f 2`
1787 --confdir=*)
1788 _confdir=`echo $ac_option | cut -d '=' -f 2`
1790 --libdir=*)
1791 _libdir=`echo $ac_option | cut -d '=' -f 2`
1795 echo "Unknown parameter: $ac_option"
1796 exit 1
1799 esac
1800 done
1802 # Atmos: moved this here, to be correct, if --prefix is specified
1803 test -z "$_bindir" && _bindir="$_prefix/bin"
1804 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1805 test -z "$_mandir" && _mandir="$_prefix/man"
1806 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1807 test -z "$_libdir" && _libdir="$_prefix/lib"
1808 test -z "$_mlibdir" && _mlibdir="$MLIBHOME"
1810 if x86 ; then
1811 # Checking assembler (_as) compatibility...
1812 # Added workaround for older as that reads from stdin by default - atmos
1813 as_version=`echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p'`
1814 echocheck "assembler ($_as $as_version)"
1816 _pref_as_version='2.9.1'
1817 echo 'nop' > $TMPS
1818 if test "$_mmx" = yes ; then
1819 echo 'emms' >> $TMPS
1821 if test "$_3dnow" = yes ; then
1822 _pref_as_version='2.10.1'
1823 echo 'femms' >> $TMPS
1825 if test "$_3dnowex" = yes ; then
1826 _pref_as_version='2.10.1'
1827 echo 'pswapd %mm0, %mm0' >> $TMPS
1829 if test "$_mmx2" = yes ; then
1830 _pref_as_version='2.10.1'
1831 echo 'movntq %mm0, (%eax)' >> $TMPS
1833 if test "$_sse" = yes ; then
1834 _pref_as_version='2.10.1'
1835 echo 'xorps %xmm0, %xmm0' >> $TMPS
1837 #if test "$_sse2" = yes ; then
1838 # _pref_as_version='2.11'
1839 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
1841 $_as $TMPS -o $TMPO > /dev/null 2>&1 || as_verc_fail=yes
1843 if test "$as_verc_fail" != yes ; then
1844 echores "ok"
1845 else
1846 echores "failed"
1847 echo "Upgrade binutils to ${_pref_as_version} ..."
1848 die "obsolete binutils version"
1852 if ppc ; then
1854 # check if altivec is supported by the compiler, and how to enable it
1856 _altivec_gcc_flags=''
1858 if test "$_altivec" = yes -o "$_runtime_cpudetection" = yes ; then
1859 echocheck "GCC altivec support"
1861 p=''
1862 cat > $TMPC << EOF
1863 int main() {
1864 return 0;
1867 FSF_flags='-maltivec -mabi=altivec'
1868 Darwin_flags='-faltivec'
1870 # check for Darwin-style flags first, since
1871 # gcc-3.3 (August Update from Apple) on MacOS 10.2.8
1872 # accepts but ignores FSF-style flags...
1874 if test -z "$p"; then
1875 cc_check $Darwin_flags && p='Darwin'
1877 if test -z "$p"; then
1878 cc_check $FSF_flags && p='FSF'
1881 case $p in
1882 FSF) _altivec_gcc_flags="$FSF_flags" _altivec=yes ;;
1883 Darwin) _altivec_gcc_flags="$Darwin_flags" _altivec=yes ;;
1884 *) _altivec=no ;;
1885 esac
1887 if test -z "$p"; then
1888 p=none
1889 else
1890 p="$p-style ($_altivec_gcc_flags)"
1893 echores "$p"
1896 # check if <altivec.h> should be included
1898 _def_altivec_h='#undef HAVE_ALTIVEC_H'
1900 if test "$_altivec" = yes ; then
1901 echocheck "altivec.h"
1902 cat > $TMPC << EOF
1903 #include <altivec.h>
1904 int main(void) { return 0; }
1906 _have_altivec_h=no
1907 cc_check $_altivec_gcc_flags && _have_altivec_h=yes
1908 if test "$_have_altivec_h" = yes ; then
1909 _def_altivec_h='#define HAVE_ALTIVEC_H 1'
1911 echores "$_have_altivec_h"
1914 # disable runtime cpudetection if
1915 # - we cannot generate altivec code
1916 # - altivec is disabled by the user
1918 if test "$_runtime_cpudetection" = yes -a "$_altivec" = no ; then
1919 _runtime_cpudetection=no
1922 # show that we are optimizing for altivec (if enabled and supported)
1924 if test "$_runtime_cpudetection" = no -a "$_altivec" = yes ; then
1925 _optimizing="$_optimizing altivec"
1928 # if altivec is enabled, make sure the correct flags turn up in CFLAGS
1930 if test "$_altivec" = yes ; then
1931 _mcpu="$_mcpu $_altivec_gcc_flags"
1934 # setup _def_altivec correctly
1936 if test "$_altivec" = yes ; then
1937 _def_altivec='#define HAVE_ALTIVEC 1'
1938 else
1939 _def_altivec='#undef HAVE_ALTIVEC'
1943 _def_mmx='#undef HAVE_MMX'
1944 test "$_mmx" = yes && _def_mmx='#define HAVE_MMX 1'
1945 _def_mmx2='#undef HAVE_MMX2'
1946 test "$_mmx2" = yes && _def_mmx2='#define HAVE_MMX2 1'
1947 _def_3dnow='#undef HAVE_3DNOW'
1948 test "$_3dnow" = yes && _def_3dnow='#define HAVE_3DNOW 1'
1949 _def_3dnowex='#undef HAVE_3DNOWEX'
1950 test "$_3dnowex" = yes && _def_3dnowex='#define HAVE_3DNOWEX 1'
1951 _def_sse='#undef HAVE_SSE'
1952 test "$_sse" = yes && _def_sse='#define HAVE_SSE 1'
1953 _def_sse2='#undef HAVE_SSE2'
1954 test "$_sse2" = yes && _def_sse2='#define HAVE_SSE2 1'
1956 # Checking kernel version...
1957 if x86 && linux ; then
1958 _k_verc_problem=no
1959 kernel_version=`uname -r 2>&1`
1960 echocheck "$system_name kernel version"
1961 case "$kernel_version" in
1962 '') kernel_version="?.??"; _k_verc_fail=yes;;
1963 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
1964 _k_verc_problem=yes;;
1965 esac
1966 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
1967 _k_verc_fail=yes
1969 if test "$_k_verc_fail" ; then
1970 echores "$kernel_version, fail"
1971 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
1972 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
1973 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
1974 echo "supports SSE, but you have been warned! If you are using a kernel older than"
1975 echo "2.2.x you must upgrade it to get SSE support!"
1976 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
1977 else
1978 echores "$kernel_version, ok"
1982 if test "$_vidix" = auto ; then
1983 _vidix=no
1984 # should check for x86 systems supporting VIDIX (does QNX have VIDIX?)
1985 x86 && _vidix=yes
1986 ppc && linux && _vidix=yes
1987 alpha && linux && _vidix=yes
1988 qnx && _vidix=no
1989 sunos && _vidix=no
1990 beos && _vidix=no
1993 echocheck "mplayer binary name"
1994 if win32 ; then
1995 _prg="mplayer.exe"
1996 _prg_mencoder="mencoder.exe"
1997 else
1998 _prg="mplayer"
1999 _prg_mencoder="mencoder"
2001 echores $_prg
2004 # On QNX we must link to libph - Gabucino
2005 if qnx ; then
2006 _ld_arch="$_ld_arch -lph"
2009 # checking for a working awk, I'm using mawk first, because it's fastest - atmos
2010 _awk=
2011 if test "$_vidix" = yes ; then
2012 _awk_verc_fail=yes
2013 echocheck "awk"
2014 for _awk in mawk gawk nawk awk; do
2015 if ( $_awk 'BEGIN{testme();}function testme(){print"";}' ) >> "$TMPLOG" 2>&1; then
2016 _awk_verc_fail=no
2017 break
2019 done
2020 test "$_awk_verc_fail" = yes && _awk=no
2021 echores "$_awk"
2022 if test "$_awk_verc_fail" = yes; then
2023 echo "VIDIX needs awk, but no working implementation was found!"
2024 echo "Try the GNU version, which can be downloaded from:"
2025 echo "ftp://ftp.gnu.org/gnu/gawk/"
2026 echo "If you don't need VIDIX, you can use configure --disable-vidix instead."
2027 die "no awk"
2031 # If IRIX we must use ar instead of ranlib (not present on IRIX systems)
2032 if irix ; then
2033 _ranlib='ar -r'
2034 elif linux ; then
2035 _ranlib='true'
2038 ######################
2039 # MAIN TESTS GO HERE #
2040 ######################
2043 echocheck "extra headers"
2044 if test "$_inc_extra" ; then
2045 echores "$_inc_extra"
2046 else
2047 echores "none"
2051 echocheck "extra libs"
2052 if test "$_ld_extra" ; then
2053 echores "$_ld_extra"
2054 else
2055 echores "none"
2058 echocheck "-lposix"
2059 cat > $TMPC <<EOF
2060 int main(void) { return 0; }
2062 if cc_check -lposix ; then
2063 _ld_arch="$_ld_arch -lposix"
2064 echores "yes"
2065 else
2066 echores "no"
2069 echocheck "-lm"
2070 cat > $TMPC <<EOF
2071 int main(void) { return 0; }
2073 if cc_check -lm ; then
2074 _ld_lm="-lm"
2075 echores "yes"
2076 else
2077 _ld_lm=""
2078 echores "no"
2081 # Checking for localization ...
2082 # CSAK EGY MARADHAT - A HEGYLAKO
2083 echocheck "i18n"
2084 if test "$_i18n" != no ; then
2085 cat > $TMPC <<EOF
2086 #include <libintl.h>
2087 int main(void) { gettext("test"); return 0; }
2089 _i18n=no
2090 _i18n_libs=""
2091 if test "$_i18n" = auto ; then
2092 cc_check && _i18n=yes
2093 else
2094 for i18n_lib in "" "-lintl"; do
2095 cc_check $i18n_lib && _i18n=yes && _i18n_libs=$i18n_lib && break
2096 done
2099 if test "$_i18n" = yes ; then
2100 _def_i18n='#define USE_I18N 1'
2101 else
2102 _def_i18n='#undef USE_I18N'
2104 if test -z "$_i18n_libs" ; then
2105 echores "$_i18n"
2106 else
2107 echores "$_i18n (using $_i18n_libs)"
2111 # Checking for setlocale() ...
2112 # CSAK EGY MARADHAT - A HEGYLAKO
2113 # Nemnem. a TV Maci !
2114 echocheck "setlocale()"
2115 if test "$_setlocale" = auto ; then
2116 cat > $TMPC <<EOF
2117 #include <locale.h>
2118 int main(void) { setlocale( LC_ALL,"" ); return 0; }
2120 _setlocale=no
2121 cc_check && _setlocale=yes
2123 if test "$_setlocale" = yes ; then
2124 _def_setlocale='#define USE_SETLOCALE 1'
2125 else
2126 _def_setlocale='#undef USE_SETLOCALE'
2128 echores "$_setlocale"
2131 echocheck "iconv"
2132 if test "$_iconv" = auto ; then
2133 _iconv_tmp='#include <iconv.h>'
2135 cat > $TMPC << EOF
2136 #include <stdio.h>
2137 #include <unistd.h>
2138 $_iconv_tmp
2139 #define INBUFSIZE 1024
2140 #define OUTBUFSIZE 4096
2142 char inbuffer[INBUFSIZE];
2143 char outbuffer[OUTBUFSIZE];
2145 int main(void) {
2146 size_t numread;
2147 iconv_t icdsc;
2148 char *tocode="UTF-8";
2149 char *fromcode="cp1250";
2150 if ((icdsc = iconv_open (tocode, fromcode)) != (iconv_t)(-1)) {
2151 while ((numread = read (0, inbuffer, INBUFSIZE))) {
2152 char *iptr=inbuffer;
2153 char *optr=outbuffer;
2154 size_t inleft=numread;
2155 size_t outleft=OUTBUFSIZE;
2156 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
2157 != (size_t)(-1)) {
2158 write (1, outbuffer, OUTBUFSIZE - outleft);
2161 if (iconv_close(icdsc) == -1)
2166 _iconv=no
2167 if cc_check $_ld_lm ; then
2168 _iconv=yes
2169 elif cc_check $_ld_lm -liconv ; then
2170 _iconv=yes
2171 _ld_iconv='-liconv'
2174 if test "$_iconv" = yes ; then
2175 _def_iconv='#define USE_ICONV 1'
2176 else
2177 _def_iconv='#undef USE_ICONV'
2179 echores "$_iconv"
2182 echocheck "langinfo"
2183 if test "$_langinfo" = auto ; then
2184 cat > $TMPC <<EOF
2185 #include <langinfo.h>
2186 int main(void) { nl_langinfo(CODESET); return 0; }
2188 _langinfo=no
2189 cc_check && _langinfo=yes
2191 if test "$_langinfo" = yes ; then
2192 _def_langinfo='#define USE_LANGINFO 1'
2193 else
2194 _def_langinfo='#undef USE_LANGINFO'
2196 echores "$_langinfo"
2199 echocheck "language"
2200 test -z "$_language" && _language=$LINGUAS
2201 _language=`echo $_language | sed 's/,/ /g'`
2202 echo $_language | grep all > /dev/null || LANGUAGES="$_language en"
2203 for lang in $_language ; do
2204 test "$lang" = all && lang=en
2205 if test -f "help/help_mp-${lang}.h" ; then
2206 _language=$lang
2207 break
2208 else
2209 echo -n "$lang not found, "
2210 _language=`echo $_language | sed "s/$lang *//"`
2212 done
2213 test -z "$_language" && _language=en
2214 _mp_help="help/help_mp-${_language}.h"
2215 test -f $_mp_help || die "$_mp_help not found"
2216 for lang in $LANGUAGES ; do
2217 if test -f "DOCS/man/$lang/mplayer.1" ; then
2218 MAN_LANG="$MAN_LANG $lang"
2220 done
2221 _doc_lang=$_language
2222 test -d DOCS/xml/$_doc_lang || _doc_lang=en
2223 echores "using $_language (man pages: $MAN_LANG)"
2226 echocheck "enable sighandler"
2227 if test "$_sighandler" = yes ; then
2228 _def_sighandler='#define ENABLE_SIGHANDLER 1'
2229 else
2230 _def_sighandler='#undef ENABLE_SIGHANDLER'
2232 echores "$_sighandler"
2234 echocheck "runtime cpudetection"
2235 if test "$_runtime_cpudetection" = yes ; then
2236 _optimizing="Runtime CPU-Detection enabled"
2237 _def_runtime_cpudetection='#define RUNTIME_CPUDETECT 1'
2238 else
2239 _def_runtime_cpudetection='#undef RUNTIME_CPUDETECT'
2241 echores "$_runtime_cpudetection"
2244 echocheck "restrict keyword"
2245 for restrict_keyword in restrict __restrict __restrict__ ; do
2246 echo "void foo(char * $restrict_keyword p); int main(){}" > $TMPC
2247 if cc_check; then
2248 _def_restrict_keyword=$restrict_keyword
2249 break;
2251 done
2252 if [ -n "$_def_restrict_keyword" ]; then
2253 echores "$_def_restrict_keyword"
2254 else
2255 echores "none"
2259 echocheck "kstat"
2260 cat > $TMPC << EOF
2261 #include <kstat.h>
2262 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
2264 _kstat=no
2265 cc_check -lkstat && _kstat=yes
2266 if test "$_kstat" = yes ; then
2267 _ld_arch="-lkstat $_ld_arch"
2269 if test "$_kstat" = yes ; then
2270 _def_kstat="#define HAVE_LIBKSTAT 1"
2271 else
2272 _def_kstat="#undef HAVE_LIBKSTAT"
2274 echores "$_kstat"
2277 echocheck "posix4"
2278 # required for nanosleep on some systems
2279 cat > $TMPC << EOF
2280 #include <time.h>
2281 int main(void) { (void) nanosleep(0, 0); return 0; }
2283 _posix4=no
2284 cc_check -lposix4 && _posix4=yes
2285 if test "$_posix4" = yes ; then
2286 _ld_arch="-lposix4 $_ld_arch"
2288 echores "$_posix4"
2291 echocheck "lrintf"
2292 cat > $TMPC << EOF
2293 #include <math.h>
2294 int main(void) { (void) lrintf(0.0); return 0; }
2296 _lrintf=no
2297 cc_check $_ld_lm && _lrintf=yes
2298 if test "$_lrintf" = yes ; then
2299 _def_lrintf="#define HAVE_LRINTF 1"
2300 else
2301 _def_lrintf="#undef HAVE_LRINTF"
2303 echores "$_lrintf"
2306 echocheck "nanosleep"
2307 # also check for nanosleep
2308 cat > $TMPC << EOF
2309 #include <time.h>
2310 int main(void) { (void) nanosleep(0, 0); return 0; }
2312 _nanosleep=no
2313 cc_check $_ld_arch && _nanosleep=yes
2314 if test "$_nanosleep" = yes ; then
2315 _def_nanosleep='#define HAVE_NANOSLEEP 1'
2316 else
2317 _def_nanosleep='#undef HAVE_NANOSLEEP'
2319 echores "$_nanosleep"
2322 echocheck "socklib"
2323 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2324 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2325 cat > $TMPC << EOF
2326 #include <netdb.h>
2327 int main(void) { (void) gethostbyname(0); return 0; }
2329 cc_check -lsocket && _ld_sock="-lsocket"
2330 cc_check -lnsl && _ld_sock="-lnsl"
2331 cc_check -lsocket -lnsl && _ld_sock="-lsocket -lnsl"
2332 cc_check -lsocket -ldnet && _ld_sock="-lsocket -ldnet"
2333 cc_check -lsocket -lbind && _ld_sock="-lsocket -lbind"
2334 if test $_winsock2 = auto && not cygwin ; then
2335 _winsock2=no
2336 cat > $TMPC << EOF
2337 #include <winsock2.h>
2338 int main(void) { (void) gethostbyname(0); return 0; }
2340 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2=yes
2342 if test "$_ld_sock" ; then
2343 echores "yes (using $_ld_sock)"
2344 else
2345 echores "no"
2349 if test $_winsock2 = yes ; then
2350 _ld_sock="-lws2_32"
2351 _def_winsock2='#define HAVE_WINSOCK2 1'
2352 else
2353 _def_winsock2='#undef HAVE_WINSOCK2'
2357 _use_aton=no
2358 echocheck "inet_pton()"
2359 cat > $TMPC << EOF
2360 #include <sys/types.h>
2361 #include <sys/socket.h>
2362 #include <arpa/inet.h>
2363 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
2365 if test "$_winsock2" = yes ; then
2366 echores "not needed (using winsock2 functions)"
2367 elif cc_check $_ld_sock ; then
2368 # NOTE: Linux has libresolv but does not need it
2370 echores "yes (using $_ld_sock)"
2371 elif cc_check $_ld_sock -lresolv ; then
2372 # NOTE: needed for SunOS at least
2373 _ld_sock="$_ld_sock -lresolv"
2374 echores "yes (using $_ld_sock)"
2375 else
2376 echores "no (=> i'll try inet_aton next)"
2378 echocheck "inet_aton()"
2379 cat > $TMPC << EOF
2380 #include <sys/types.h>
2381 #include <sys/socket.h>
2382 #include <arpa/inet.h>
2383 int main(void) { (void) inet_aton(0, 0); return 0; }
2385 _use_aton=yes
2386 if cc_check $_ld_sock ; then
2387 # NOTE: Linux has libresolv but does not need it
2389 echores "yes (using $_ld_sock)"
2390 elif cc_check $_ld_sock -lresolv ; then
2391 # NOTE: needed for SunOS at least
2392 _ld_sock="$_ld_sock -lresolv"
2393 echores "yes (using $_ld_sock)"
2394 else
2395 _use_aton=no
2396 _network=no
2397 echores "no (=> network support disabled)"
2401 _def_use_aton='#undef USE_ATON'
2402 if test "$_use_aton" != no; then
2403 _def_use_aton='#define USE_ATON 1'
2407 echocheck "inttypes.h (required)"
2408 cat > $TMPC << EOF
2409 #include <inttypes.h>
2410 int main(void) { return 0; }
2412 _inttypes=no
2413 cc_check && _inttypes=yes
2414 if test "$_inttypes" = yes ; then
2415 # nothing to do
2417 else
2418 echores "no"
2419 echocheck "bitypes.h (inttypes.h predecessor)"
2420 cat > $TMPC << EOF
2421 #include <sys/bitypes.h>
2422 int main(void) { return 0; }
2424 _inttypes=no
2425 cc_check && _inttypes=yes
2426 if test "$_inttypes" = yes ; then
2427 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."
2428 else
2429 die "Cannot find header either inttypes.h or bitypes.h (see DOCS/HTML/$_doc_lang/faq.html)."
2432 echores "$_inttypes"
2435 echocheck "int_fastXY_t in inttypes.h"
2436 cat > $TMPC << EOF
2437 #include <inttypes.h>
2438 int main(void) {
2439 volatile int_fast16_t v= 0;
2440 return v; }
2442 _fast_inttypes=no
2443 cc_check && _fast_inttypes=yes
2444 if test "$_fast_inttypes" = yes ; then
2445 # nothing to do
2447 else
2448 _def_fast_inttypes='
2449 typedef signed char int_fast8_t;
2450 typedef signed int int_fast16_t;
2451 typedef signed int int_fast32_t;
2452 typedef unsigned char uint_fast8_t;
2453 typedef unsigned int uint_fast16_t;
2454 typedef unsigned int uint_fast32_t;'
2456 echores "$_fast_inttypes"
2459 echocheck "word size"
2460 _mp_wordsize="#undef MP_WORDSIZE"
2461 cat > $TMPC << EOF
2462 #include <stdio.h>
2463 #include <sys/types.h>
2464 int main(void) { printf("%d\n", sizeof(size_t)*8); return 0; }
2466 cc_check && _wordsize=`$TMPO` && _mp_wordsize="#define MP_WORDSIZE $_wordsize"
2467 echores "$_wordsize"
2470 echocheck "stddef.h"
2471 cat > $TMPC << EOF
2472 #include <stddef.h>
2473 int main(void) { return 0; }
2475 _stddef=no
2476 cc_check && _stddef=yes
2477 if test "$_stddef" = yes ; then
2478 _def_stddef='#define HAVE_STDDEF_H 1'
2479 else
2480 _def_stddef='#undef HAVE_STDDEF_H'
2482 echores "$_stddef"
2485 echocheck "malloc.h"
2486 cat > $TMPC << EOF
2487 #include <malloc.h>
2488 int main(void) { (void) malloc(0); return 0; }
2490 _malloc=no
2491 cc_check && _malloc=yes
2492 if test "$_malloc" = yes ; then
2493 _def_malloc='#define HAVE_MALLOC_H 1'
2494 else
2495 _def_malloc='#undef HAVE_MALLOC_H'
2497 # malloc.h emits a warning in FreeBSD and OpenBSD
2498 (freebsd || openbsd) && _def_malloc='#undef HAVE_MALLOC_H'
2499 echores "$_malloc"
2502 echocheck "memalign()"
2503 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
2504 cat > $TMPC << EOF
2505 #include <malloc.h>
2506 int main (void) { (void) memalign(64, sizeof(char)); return 0; }
2508 _memalign=no
2509 cc_check && _memalign=yes
2510 if test "$_memalign" = yes ; then
2511 _def_memalign='#define HAVE_MEMALIGN 1'
2512 else
2513 _def_memalign='#undef HAVE_MEMALIGN'
2515 echores "$_memalign"
2518 echocheck "alloca.h"
2519 cat > $TMPC << EOF
2520 #include <alloca.h>
2521 int main(void) { (void) alloca(0); return 0; }
2523 _alloca=no
2524 cc_check && _alloca=yes
2525 if cc_check ; then
2526 _def_alloca='#define HAVE_ALLOCA_H 1'
2527 else
2528 _def_alloca='#undef HAVE_ALLOCA_H'
2530 echores "$_alloca"
2533 echocheck "mman.h"
2534 cat > $TMPC << EOF
2535 #include <sys/types.h>
2536 #include <sys/mman.h>
2537 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
2539 _mman=no
2540 cc_check && _mman=yes
2541 if test "$_mman" = yes ; then
2542 _def_mman='#define HAVE_SYS_MMAN_H 1'
2543 else
2544 _def_mman='#undef HAVE_SYS_MMAN_H'
2546 echores "$_mman"
2548 echocheck "dynamic loader"
2549 cat > $TMPC << EOF
2550 #include <dlfcn.h>
2551 int main(void) { dlopen(0, 0); dlclose(0); dlsym(0, 0); return 0; }
2553 _dl=no
2554 if cc_check ; then
2555 _dl=yes
2556 elif cc_check -ldl ; then
2557 _dl=yes
2558 _ld_dl='-ldl'
2560 if test "$_dl" = yes ; then
2561 _def_dl='#define HAVE_LIBDL 1'
2562 else
2563 _def_dl='#undef HAVE_LIBDL'
2565 echores "$_dl"
2568 echocheck "dynamic a/v plugins support"
2569 if test "$_dl" = no ; then
2570 _dynamic_plugins=no
2572 if test "$_dynamic_plugins" = yes ; then
2573 _def_dynamic_plugins='#define DYNAMIC_PLUGINS 1'
2574 else
2575 _def_dynamic_plugins='#undef DYNAMIC_PLUGINS'
2577 echores "$_dynamic_plugins"
2580 #echocheck "dynamic linking"
2581 # FIXME !! make this dynamic detection work and modify at the end (search _ld_dl_dynamic)
2582 # also gcc flags are different, but ld flags aren't (-Bdynamic/-Bstatic/-Bsymbolic)
2583 #cat > $TMPC << EOF
2584 #int main(void) { return 0; }
2585 #EOF
2586 #if cc_check -rdynamic ; then
2587 # _ld_dl_dynamic='-rdynamic'
2588 #elif cc_check -Bdynamic ; then
2589 # _ld_dl_dynamic='-Bdynamic'
2590 #elif cc_check ; then
2591 # _ld_dl_dynamic=''
2593 #echores "using $_ld_dl_dynamic"
2596 echocheck "pthread"
2597 cat > $TMPC << EOF
2598 #include <pthread.h>
2599 void* func(void *arg) { return arg; }
2600 int main(void) { pthread_t tid; return pthread_create (&tid, 0, func, 0) == 0 ? 0 : 1; }
2602 if mingw32 ; then
2603 _ld_pthread=''
2604 elif ( cc_check && $TMPO ) ; then # QNX
2605 _ld_pthread=''
2606 elif ( cc_check -lpthread && $TMPO ) ; then
2607 _ld_pthread='-lpthread'
2608 elif ( cc_check -pthread && $TMPO ) ; then
2609 _ld_pthread='-pthread'
2610 else
2611 if test "$_ld_static" ; then
2612 # for crosscompilation, we cannot execute the program, be happy if we can link statically
2613 if ( cc_check -lpthread ) ; then
2614 _ld_pthread='-lpthread'
2615 elif ( cc_check -pthread ) ; then
2616 _ld_pthread='-pthread'
2617 else
2618 echores "no static pthread found (v4l, vo_gl, ao_alsa, ao_nas, ao_macosx, Win32 loader disabled)"
2619 _ld_pthread='' ; _nas=no ; _tv_v4l=no ; _macosx=no ; _win32=no
2621 else
2622 echores "no (v4l, vo_gl, ao_alsa, ao_nas, ao_macosx, win32 loader disabled)"
2623 _ld_pthread='' ; _nas=no ; _tv_v4l=no ; _macosx=no ; _win32=no
2626 if test "$_ld_pthread" != '' ; then
2627 echores "yes (using $_ld_pthread)"
2628 _pthreads='yes'
2629 _def_pthreads='#define HAVE_PTHREADS 1'
2630 else
2631 echores "no"
2632 _pthreads=''
2633 _def_pthreads='#undef HAVE_PTHREADS'
2637 echocheck "sys/soundcard.h"
2638 cat > $TMPC << EOF
2639 #include <sys/soundcard.h>
2640 int main(void) { return 0; }
2642 _sys_soundcard=no
2643 cc_check && _sys_soundcard=yes
2644 if test "$_sys_soundcard" = yes ; then
2645 _def_sys_soundcard='#define HAVE_SYS_SOUNDCARD_H 1'
2646 _inc_soundcard='#include <sys/soundcard.h>'
2647 else
2648 _def_sys_soundcard='#undef HAVE_SYS_SOUNDCARD_H'
2650 echores "$_sys_soundcard"
2652 if test "$_sys_soundcard" != yes ; then
2653 echocheck "soundcard.h"
2654 cat > $TMPC << EOF
2655 #include <soundcard.h>
2656 int main(void) { return 0; }
2658 _soundcard=no
2659 cc_check && _soundcard=yes
2660 if linux || test "$_ossaudio" != no ; then
2661 # use soundcard.h on Linux, or when OSS support is enabled
2662 echores "$_soundcard"
2663 else
2664 # we don't want to use soundcard.h on non-Linux if OSS support not enabled!
2665 echores "$_soundcard, but ignored!"
2666 _soundcard=no
2668 if test "$_soundcard" = yes ; then
2669 _def_soundcard='#define HAVE_SOUNDCARD_H 1'
2670 _inc_soundcard='#include <soundcard.h>'
2671 else
2672 _def_soundcard='#undef HAVE_SOUNDCARD_H'
2674 else
2675 _def_soundcard='#undef HAVE_SOUNDCARD_H'
2679 echocheck "sys/dvdio.h"
2680 cat > $TMPC << EOF
2681 #include <unistd.h>
2682 #include <sys/dvdio.h>
2683 int main(void) { return 0; }
2685 _dvdio=no
2686 cc_check && _dvdio=yes
2687 if test "$_dvdio" = yes ; then
2688 _def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
2689 else
2690 _def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
2692 echores "$_dvdio"
2695 echocheck "sys/cdio.h"
2696 cat > $TMPC << EOF
2697 #include <unistd.h>
2698 #include <sys/cdio.h>
2699 int main(void) { return 0; }
2701 _cdio=no
2702 cc_check && _cdio=yes
2703 if test "$_cdio" = yes ; then
2704 _def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
2705 else
2706 _def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
2708 echores "$_cdio"
2711 echocheck "linux/cdrom.h"
2712 cat > $TMPC << EOF
2713 #include <sys/types.h>
2714 #include <linux/cdrom.h>
2715 int main(void) { return 0; }
2717 _cdrom=no
2718 cc_check && _cdrom=yes
2719 if test "$_cdrom" = yes ; then
2720 _def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
2721 else
2722 _def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
2724 echores "$_cdrom"
2727 echocheck "dvd.h"
2728 cat > $TMPC << EOF
2729 #include <dvd.h>
2730 int main(void) { return 0; }
2732 _dvd=no
2733 cc_check && _dvd=yes
2734 if test "$_dvd" = yes ; then
2735 _def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
2736 else
2737 _def_dvd='#undef DVD_STRUCT_IN_DVD_H'
2739 echores "$_dvd"
2742 echocheck "BSDI dvd.h"
2743 cat > $TMPC << EOF
2744 #include <dvd.h>
2745 int main(void) { return 0; }
2747 _bsdi_dvd=no
2748 cc_check && _bsdi_dvd=yes
2749 if test "$_bsdi_dvd" = yes ; then
2750 _def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
2751 else
2752 _def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
2754 echores "$_bsdi_dvd"
2757 echocheck "HPUX SCSI header"
2758 cat > $TMPC << EOF
2759 #include <sys/scsi.h>
2760 int main(void) { return 0; }
2762 _hpux_scsi_h=no
2763 cc_check && _hpux_scsi_h=yes
2764 if test "$_hpux_scsi_h" = yes ; then
2765 _def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
2766 else
2767 _def_hpux_scsi_h='#undef HPUX_SCTL_IO'
2769 echores "$_hpux_scsi_h"
2772 echocheck "userspace SCSI headers (Solaris)"
2773 cat > $TMPC << EOF
2774 # include <unistd.h>
2775 # include <stropts.h>
2776 # include <sys/scsi/scsi_types.h>
2777 # include <sys/scsi/impl/uscsi.h>
2778 int main(void) { return 0; }
2780 _sol_scsi_h=no
2781 cc_check && _sol_scsi_h=yes
2782 if test "$_sol_scsi_h" = yes ; then
2783 _def_sol_scsi_h='#define SOLARIS_USCSI 1'
2784 else
2785 _def_sol_scsi_h='#undef SOLARIS_USCSI'
2787 echores "$_sol_scsi_h"
2790 echocheck "termcap"
2791 if test "$_termcap" = auto ; then
2792 cat > $TMPC <<EOF
2793 int main(void) { return 0; }
2795 _termcap=no
2796 cc_check -ltermcap && _termcap=yes && _ld_termcap='-ltermcap'
2797 cc_check -ltinfo && _termcap=yes && _ld_termcap='-ltinfo'
2799 if test "$_termcap" = yes ; then
2800 _def_termcap='#define USE_TERMCAP 1'
2801 echores "yes (using $_ld_termcap)"
2802 else
2803 _def_termcap='#undef USE_TERMCAP'
2804 echores no
2808 echocheck "termios"
2809 if test "$_termios" = auto ; then
2810 cat > $TMPC <<EOF
2811 #include <sys/termios.h>
2812 int main(void) { return 0; }
2814 _termios=no
2815 cc_check && _termios=yes
2816 _def_termios_h_name='sys/termios.h'
2818 # second test:
2819 if test "$_termios" = no ; then
2820 cat > $TMPC <<EOF
2821 #include <termios.h>
2822 int main(void) { return 0; }
2824 _termios=no
2825 cc_check && _termios=yes
2826 _def_termios_h_name='termios.h'
2829 if test "$_termios" = yes ; then
2830 _def_termios='#define HAVE_TERMIOS 1'
2831 _def_termios_h='#undef HAVE_TERMIOS_H'
2832 _def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
2834 if test "$_def_termios_h_name" = 'sys/termios.h' ; then
2835 _def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
2836 elif test "$_def_termios_h_name" = 'termios.h' ; then
2837 _def_termios_h='#define HAVE_TERMIOS_H 1'
2839 echores "yes (using $_def_termios_h_name)"
2840 else
2841 _def_termios='#undef HAVE_TERMIOS'
2842 _def_termios_h_name=''
2843 echores "no"
2847 echocheck "shm"
2848 if test "$_shm" = auto ; then
2849 cat > $TMPC << EOF
2850 #include <sys/types.h>
2851 #include <sys/shm.h>
2852 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
2854 _shm=no
2855 cc_check && _shm=yes
2857 if test "$_shm" = yes ; then
2858 _def_shm='#define HAVE_SHM 1'
2859 else
2860 _def_shm='#undef HAVE_SHM'
2862 echores "$_shm"
2865 # XXX: FIXME, add runtime checking
2866 echocheck "linux devfs"
2867 echores "$_linux_devfs"
2870 echocheck "scandir()"
2871 cat > $TMPC << EOF
2872 int main (void) { scandir("", 0, 0, 0); alphasort(0, 0); return 0; }
2874 _scandir=no
2875 cc_check && _scandir=yes
2876 if test "$_scandir" = yes ; then
2877 _def_scandir='#define HAVE_SCANDIR 1'
2878 else
2879 _def_scandir='#undef HAVE_SCANDIR'
2881 echores "$_scandir"
2884 echocheck "strsep()"
2885 cat > $TMPC << EOF
2886 #include <string.h>
2887 int main (void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
2889 _strsep=no
2890 cc_check && _strsep=yes
2891 if test "$_strsep" = yes ; then
2892 _def_strsep='#define HAVE_STRSEP 1'
2893 else
2894 _def_strsep='#undef HAVE_STRSEP'
2896 echores "$_strsep"
2898 echocheck "strlcpy()"
2899 cat > $TMPC << EOF
2900 #include <string.h>
2901 int main (void) { char *s = "Hello, world!", t[20]; (void) strlcpy(t, s, sizeof( t )); return 0; }
2903 _strlcpy=no
2904 cc_check && _strlcpy=yes
2905 if test "$_strlcpy" = yes ; then
2906 _def_strlcpy='#define HAVE_STRLCPY 1'
2907 else
2908 _def_strlcpy='#undef HAVE_STRLCPY'
2910 echores "$_strlcpy"
2912 echocheck "strlcat()"
2913 cat > $TMPC << EOF
2914 #include <string.h>
2915 int main (void) { char *s = "Hello, world!", t[20]; (void) strlcat(t, s, sizeof( t )); return 0; }
2917 _strlcat=no
2918 cc_check && _strlcat=yes
2919 if test "$_strlcat" = yes ; then
2920 _def_strlcat='#define HAVE_STRLCAT 1'
2921 else
2922 _def_strlcat='#undef HAVE_STRLCAT'
2924 echores "$_strlcat"
2926 echocheck "fseeko()"
2927 cat > $TMPC << EOF
2928 #include <stdio.h>
2929 int main (void) { int i; i = fseeko(stdin, 0, 0); return 0; }
2931 _fseeko=no
2932 cc_check && _fseeko=yes
2933 if test "$_fseeko" = yes ; then
2934 _def_fseeko='#define HAVE_FSEEKO 1'
2935 else
2936 _def_fseeko='#undef HAVE_FSEEKO'
2938 echores "$_fseeko"
2940 echocheck "localtime_r()"
2941 cat > $TMPC << EOF
2942 #include <time.h>
2943 int main( void ) { localtime_r(NULL, NULL); }
2945 _localtime_r=no
2946 cc_check && _localtime_r=yes
2947 if test "$_localtime_r" = yes ; then
2948 _def_localtime_r='#define HAVE_LOCALTIME_R 1'
2949 else
2950 _def_localtime_r='#undef HAVE_LOCALTIME_R'
2952 echores "$_localtime_r"
2954 echocheck "vsscanf()"
2955 cat > $TMPC << EOF
2956 #include <stdarg.h>
2957 int main(void) { vsscanf(0, 0, 0); return 0; }
2959 _vsscanf=no
2960 cc_check && _vsscanf=yes
2961 if test "$_vsscanf" = yes ; then
2962 _def_vsscanf='#define HAVE_VSSCANF 1'
2963 else
2964 _def_vsscanf='#undef HAVE_VSSCANF'
2966 echores "$_vsscanf"
2969 echocheck "swab()"
2970 cat > $TMPC << EOF
2971 #include <unistd.h>
2972 int main(void) { swab(0, 0, 0); return 0; }
2974 _swab=no
2975 cc_check && _swab=yes
2976 if test "$_swab" = yes ; then
2977 _def_swab='#define HAVE_SWAB 1'
2978 else
2979 _def_swab='#undef HAVE_SWAB'
2981 echores "$_swab"
2983 echocheck "posix select()"
2984 cat > $TMPC << EOF
2985 #include <stdio.h>
2986 #include <stdlib.h>
2987 #include <sys/types.h>
2988 #include <string.h>
2989 #include <sys/time.h>
2990 #include <unistd.h>
2991 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
2993 _posix_select=no
2994 cc_check && _posix_select=yes
2995 if test "$_posix_select" = no ; then
2996 _def_no_posix_select='#define HAVE_NO_POSIX_SELECT 1'
2997 else
2998 _def_no_posix_select='#undef HAVE_NO_POSIX_SELECT'
3000 echores "$_posix_select"
3003 echocheck "gettimeofday()"
3004 cat > $TMPC << EOF
3005 #include <stdio.h>
3006 #include <sys/time.h>
3007 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3009 _gettimeofday=no
3010 cc_check && _gettimeofday=yes
3011 if test "$_gettimeofday" = yes ; then
3012 _def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3013 else
3014 _def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3016 echores "$_gettimeofday"
3019 echocheck "glob()"
3020 cat > $TMPC << EOF
3021 #include <stdio.h>
3022 #include <glob.h>
3023 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3025 _glob=no
3026 cc_check && _glob=yes
3027 if test "$_glob" = yes ; then
3028 _def_glob='#define HAVE_GLOB 1'
3029 else
3030 _def_glob='#undef HAVE_GLOB'
3032 echores "$_glob"
3035 echocheck "sys/sysinfo.h"
3036 cat > $TMPC << EOF
3037 #include <sys/sysinfo.h>
3038 int main(void) {
3039 struct sysinfo s_info;
3040 sysinfo(&s_info);
3041 return 0;
3044 _sys_sysinfo=no
3045 cc_check && _sys_sysinfo=yes
3046 if test "$_sys_sysinfo" = yes ; then
3047 _def_sys_sysinfo='#define HAVE_SYS_SYSINFO_H 1'
3048 _inc_sysinfo='#include <sys/sysinfo.h>'
3049 else
3050 _def_sys_sysinfo='#undef HAVE_SYS_SYSINFO_H'
3052 echores "$_sys_sysinfo"
3055 echocheck "Mac OS X APIs"
3056 if test "$_macosx" = auto ; then
3057 if darwin && ppc; then
3058 _macosx=yes
3059 else
3060 _macosx=no
3061 _def_macosx='#undef MACOSX'
3062 _noaomodules="macosx $_noaomodules"
3063 _novomodules="quartz $_novomodules"
3066 if test "$_macosx" = yes ; then
3067 cat > $TMPC <<EOF
3068 #include <Carbon/Carbon.h>
3069 #include <QuickTime/QuickTime.h>
3070 #include <CoreAudio/CoreAudio.h>
3071 int main(void) {
3072 EnterMovies();
3073 ExitMovies();
3074 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
3077 if cc_check -framework Carbon -framework QuickTime -framework CoreAudio; then
3078 _macosx=yes
3079 _macosx_frameworks="-framework Carbon -framework QuickTime -framework CoreAudio"
3080 _def_macosx='#define MACOSX 1'
3081 _aosrc="$_aosrc ao_macosx.c"
3082 _aomodules="macosx $_aomodules"
3083 _vosrc="$_vosrc vo_quartz.c"
3084 _vomodules="quartz $_vomodules"
3085 else
3086 _macosx=no
3087 _def_macosx='#undef MACOSX'
3088 _noaomodules="macosx $_noaomodules"
3089 _novomodules="quartz $_novomodules"
3092 echores "$_macosx"
3095 echocheck "Samba support (libsmbclient)"
3096 if test "$_smbsupport" = yes; then
3097 _ld_smb="-lsmbclient"
3099 if test "$_smbsupport" = auto; then
3100 _smbsupport=no
3101 cat > $TMPC << EOF
3102 #include <libsmbclient.h>
3103 int main(void) { smbc_opendir("smb://"); return 0; }
3105 if cc_check -lsmbclient ; then
3106 _smbsupport=yes
3107 _ld_smb="-lsmbclient"
3108 else
3109 if cc_check -lsmbclient $_ld_dl ; then
3110 _smbsupport=yes
3111 _ld_smb="-lsmbclient $_ld_dl"
3112 else
3113 if cc_check -lsmbclient $_ld_dl -lnsl ; then
3114 _smbsupport=yes
3115 _ld_smb="-lsmbclient $_ld_dl -lnsl"
3121 if test "$_smbsupport" = yes; then
3122 _def_smbsupport="#define LIBSMBCLIENT"
3123 _inputmodules="smb $_inputmodules"
3124 else
3125 _def_smbsupport="#undef LIBSMBCLIENT"
3126 _noinputmodules="smb $_noinputmodules"
3128 echores "$_smbsupport"
3131 #########
3132 # VIDEO #
3133 #########
3136 echocheck "3dfx"
3137 if test "$_3dfx" = yes ; then
3138 _def_3dfx='#define HAVE_3DFX 1'
3139 _vosrc="$_vosrc vo_3dfx.c"
3140 _vomodules="3dfx $_vomodules"
3141 else
3142 _def_3dfx='#undef HAVE_3DFX'
3143 _novomodules="3dfx $_novomodules"
3145 echores "$_3dfx"
3148 echocheck "tdfxfb"
3149 if test "$_tdfxfb" = yes ; then
3150 _def_tdfxfb='#define HAVE_TDFXFB 1'
3151 _vosrc="$_vosrc vo_tdfxfb.c"
3152 _vomodules="tdfxfb $_vomodules"
3153 else
3154 _def_tdfxfb='#undef HAVE_TDFXFB'
3155 _novomodules="tdfxfb $_novomodules"
3157 echores "$_tdfxfb"
3159 echocheck "tdfxvid"
3160 if test "$_tdfxvid" = yes ; then
3161 _def_tdfxvid='#define HAVE_TDFX_VID 1'
3162 _vosrc="$_vosrc vo_tdfx_vid.c"
3163 _vomodules="tdfx_vid $_vomodules"
3164 else
3165 _def_tdfxvid='#undef HAVE_TDFX_VID'
3166 _novomodules="tdfx_vid $_novomodules"
3168 echores "$_tdfxfb"
3170 echocheck "tga"
3171 if test "$_tga" = yes ; then
3172 _def_tga='#define HAVE_TGA 1'
3173 _vosrc="$_vosrc vo_tga.c"
3174 _vomodules="tga $_vomodules"
3175 else
3176 _def_tga='#undef HAVE_TGA'
3177 _novomodules="tga $_novomodules"
3179 echores "$_tga"
3181 echocheck "DirectFB headers presence"
3182 if test -z "$_inc_directfb" ; then
3183 for I in /usr/include /usr/local/include $_inc_extra; do
3184 if test -d "$I/directfb" && test -f "$I/directfb/directfb.h" ; then
3185 _inc_directfb="-I$I/directfb"
3186 echores "yes (using $_inc_directfb)"
3187 break
3189 if test -d "$I" && test -f "$I/directfb.h" ; then
3190 _inc_directfb="-I$I"
3191 echores "yes (using $_inc_directfb)"
3192 break
3194 done
3195 if test -z "$_inc_directfb" ; then
3196 _directfb=no
3197 echores "not found"
3199 else
3200 echores "yes (using $_inc_directfb)"
3202 if test "$_inc_directfb" = "-I/usr/include" ; then
3203 _inc_directfb=""
3206 echocheck "DirectFB"
3207 if test "$_directfb" = auto ; then
3208 _directfb=no
3209 cat > $TMPC <<EOF
3210 #include <directfb.h>
3211 int main(void) { IDirectFB *foo; return 0; }
3213 linux && test -c /dev/fb0 && cc_check $_inc_directfb -ldirectfb && _directfb=yes
3216 if test "$_directfb" = yes; then
3217 cat > $TMPC <<EOF
3218 #include <directfb.h>
3219 int main(void) {
3220 printf ("%i",(directfb_major_version*100+directfb_minor_version)*100+directfb_micro_version);
3221 return 0;
3224 if cc_check $_inc_directfb -ldirectfb && "$TMPO" >> "$TMPLOG" ; then
3225 _directfb_version=`"$TMPO"`
3226 _def_directfb_version="#define DIRECTFBVERSION $_directfb_version"
3227 echores "yes ($_directfb_version)"
3228 else
3229 _directfb=no
3230 echores "no (failed to get version)"
3232 else
3233 echores "$_directfb"
3236 if test "$_directfb" = yes ; then
3237 _def_directfb='#define HAVE_DIRECTFB 1'
3238 if test "$_directfb_version" -ge 913; then
3239 _vosrc="$_vosrc vo_directfb2.c"
3240 else
3241 _vosrc="$_vosrc vo_directfb.c"
3243 _vomodules="directfb $_vomodules"
3244 _ld_directfb='-ldirectfb'
3246 if test "$_directfb_version" -ge 915; then
3247 _vosrc="$_vosrc vo_dfbmga.c"
3248 _vomodules="dfbmga $_vomodules"
3250 else
3251 _def_directfb='#undef HAVE_DIRECTFB'
3252 _novomodules="directfb $_novomodules"
3253 _inc_directfb=""
3257 echocheck "X11 headers presence"
3258 if test -z "$_inc_x11" ; then
3259 for I in /usr/X11/include /usr/X11R6/include /usr/include/X11R6 /usr/include /usr/openwin/include ; do
3260 if test -d "$I/X11" && test -f "$I/X11/Xlib.h" ; then
3261 _inc_x11="-I$I"
3262 echores "yes (using $I)"
3263 break
3265 done
3266 if test -z "$_inc_x11" ; then
3267 _x11=no
3268 echores "not found (check if the dev(el) packages are installed)"
3270 else
3271 echores "yes (using $_inc_x11)"
3273 if test "$_inc_x11" = "-I/usr/include" ; then
3274 _inc_x11=""
3278 echocheck "X11 libs presence"
3279 if test -z "$_ld_x11" ; then
3280 for I in /usr/X11R6/lib /usr/lib/X11R6 /usr/X11/lib /usr/lib32 /usr/openwin/lib /usr/X11R6/lib64 /usr/lib ; do
3281 if test -d "$I" && ( test -f "$I/libX11.so" || test -f "$I/libX11.a" || test -f "$I/libX11.dll.a" ) ; then
3282 if netbsd; then
3283 _ld_x11="-L$I -Wl,-R$I"
3284 else
3285 _ld_x11="-L$I"
3287 echores "yes (using $I)"
3288 break;
3290 done
3291 if test -z "$_ld_x11" ; then
3292 _x11=no
3293 echores "not found (check if the dev(el) packages are installed)"
3295 else
3296 echores "yes (using $_ld_x11)"
3298 _ld_x11="$_ld_x11 -lXext -lX11 $_ld_sock"
3301 echocheck "X11"
3302 if test "$_x11" != no ; then
3303 cat > $TMPC <<EOF
3304 #include <X11/Xlib.h>
3305 #include <X11/Xutil.h>
3306 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
3308 _x11=no
3309 cc_check $_inc_x11 $_ld_x11 && _x11=yes
3311 if test "$_x11" = yes ; then
3312 _def_x11='#define HAVE_X11 1'
3313 _vosrc="$_vosrc x11_common.c vo_x11.c vo_xover.c"
3314 _vomodules="x11 xover $_vomodules"
3315 else
3316 _def_x11='#undef HAVE_X11'
3317 _inc_x11=''
3318 _ld_x11=''
3319 _novomodules="x11 $_novomodules"
3321 echores "$_x11"
3324 echocheck "DPMS"
3325 _xdpms3=no
3326 if test "$_x11" = yes ; then
3327 cat > $TMPC <<EOF
3328 #include <X11/Xmd.h>
3329 #include <X11/Xlib.h>
3330 #include <X11/Xutil.h>
3331 #include <X11/Xatom.h>
3332 #include <X11/extensions/dpms.h>
3333 int main(void) {
3334 (void) DPMSQueryExtension(0, 0, 0);
3337 cc_check $_inc_x11 -lXdpms $_ld_x11 && _xdpms3=yes
3339 _xdpms4=no
3340 if test "$_x11" = yes ; then
3341 cat > $TMPC <<EOF
3342 #include <X11/Xlib.h>
3343 #include <X11/extensions/dpms.h>
3344 int main(void) {
3345 (void) DPMSQueryExtension(0, 0, 0);
3348 cc_check $_inc_x11 $_ld_x11 && _xdpms4=yes
3350 if test "$_xdpms4" = yes ; then
3351 _def_xdpms='#define HAVE_XDPMS 1'
3352 echores "yes (using Xdpms 4)"
3353 elif test "$_xdpms3" = yes ; then
3354 _def_xdpms='#define HAVE_XDPMS 1'
3355 _ld_x11="-lXdpms $_ld_x11"
3356 echores "yes (using Xdpms 3)"
3357 else
3358 _def_xdpms='#undef HAVE_XDPMS'
3359 echores "no"
3363 echocheck "Xv"
3364 if test "$_x11" = yes && test "$_xv" != no ; then
3365 cat > $TMPC <<EOF
3366 #include <X11/Xlib.h>
3367 #include <X11/extensions/Xvlib.h>
3368 int main(void) { (void) XvGetPortAttribute(0, 0, 0, 0); return 0; }
3370 _xv=no
3371 cc_check $_inc_x11 -lXv $_ld_x11 && _xv=yes
3372 else
3373 _xv=no
3375 if test "$_xv" = yes ; then
3376 _def_xv='#define HAVE_XV 1'
3377 _ld_xv='-lXv'
3378 _vosrc="$_vosrc vo_xv.c"
3379 _vomodules="xv $_vomodules"
3380 else
3381 _def_xv='#undef HAVE_XV'
3382 _novomodules="xv $_novomodules"
3384 echores "$_xv"
3387 echocheck "XvMC"
3388 if test "$_x11" = yes && test "$_xv" = yes && test "$_xvmc" != no ; then
3389 _xvmc=no
3390 cat > $TMPC <<EOF
3391 #include <X11/Xlib.h>
3392 #include <X11/extensions/Xvlib.h>
3393 #include <X11/extensions/XvMClib.h>
3394 int main(void) {
3395 (void) XvMCQueryExtension(0,0,0);
3396 (void) XvMCCreateContext(0,0,0,0,0,0,0);
3397 return 0; }
3399 cc_check $_inc_x11 -lXvMC -l$_xvmclib $_ld_xv $_ld_x11 && _xvmc=yes
3401 if test "$_xvmc" = yes ; then
3402 _def_xvmc='#define HAVE_XVMC 1'
3403 _ld_xvmc="-lXvMC -l$_xvmclib"
3404 _vosrc="$_vosrc vo_xvmc.c"
3405 _vomodules="xvmc $_vomodules"
3406 else
3407 _def_xvmc='#undef HAVE_XVMC'
3408 _novomodules="xvmc $_novomodules"
3410 echores "$_xvmc"
3413 echocheck "Xinerama"
3414 if test "$_x11" = yes && test "$_xinerama" != no ; then
3415 cat > $TMPC <<EOF
3416 #include <X11/Xlib.h>
3417 #include <X11/extensions/Xinerama.h>
3418 int main(void) { (void) XineramaIsActive(0); return 0; }
3420 _xinerama=no
3421 cc_check $_inc_x11 -lXinerama $_ld_x11 && _xinerama=yes
3422 else
3423 _xinerama=no
3425 if test "$_xinerama" = yes ; then
3426 _def_xinerama='#define HAVE_XINERAMA 1'
3427 _ld_xinerama='-lXinerama'
3428 else
3429 _def_xinerama='#undef HAVE_XINERAMA'
3431 echores "$_xinerama"
3434 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
3435 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
3436 # named 'X extensions' or something similar.
3437 # This check may be useful for future mplayer versions (to change resolution)
3438 # If you run into problems, remove '-lXxf86vm'.
3439 echocheck "Xxf86vm"
3440 if test "$_x11" = yes && test "$_vm" != no ; then
3441 cat > $TMPC <<EOF
3442 #include <X11/Xlib.h>
3443 #include <X11/extensions/xf86vmode.h>
3444 #include <X11/XF86keysym.h>
3445 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
3447 _vm=no
3448 cc_check $_inc_x11 -lXxf86vm $_ld_x11 && _vm=yes
3449 else
3450 _vm=no
3452 if test "$_vm" = yes ; then
3453 _def_vm='#define HAVE_XF86VM 1'
3454 _ld_vm='-lXxf86vm'
3455 else
3456 _def_vm='#undef HAVE_XF86VM'
3458 echores "$_vm"
3461 echocheck "DGA"
3462 # Version 2 is preferred to version 1 if available
3463 if test "$_dga" = auto ; then
3464 cat > $TMPC << EOF
3465 #include <X11/Xlib.h>
3466 #include <X11/extensions/xf86dga.h>
3467 int main (void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
3469 _dga=no
3470 cc_check $_inc_x11 -lXxf86dga -lXxf86vm $_ld_x11 && _dga=1
3472 cat > $TMPC << EOF
3473 #include <X11/Xlib.h>
3474 #include <X11/extensions/xf86dga.h>
3475 int main (void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
3477 cc_check $_inc_x11 -lXxf86dga $_ld_x11 && _dga=2
3480 _def_dga='#undef HAVE_DGA'
3481 _def_dga2='#undef HAVE_DGA2'
3482 if test "$_dga" = 1 ; then
3483 _def_dga='#define HAVE_DGA 1'
3484 _ld_dga='-lXxf86dga'
3485 _vosrc="$_vosrc vo_dga.c"
3486 _vomodules="dga $_vomodules"
3487 echores "yes (using DGA 1.0)"
3488 elif test "$_dga" = 2 ; then
3489 _def_dga='#define HAVE_DGA 1'
3490 _def_dga2='#define HAVE_DGA2 1'
3491 _ld_dga='-lXxf86dga'
3492 _vosrc="$_vosrc vo_dga.c"
3493 _vomodules="dga $_vomodules"
3494 echores "yes (using DGA 2.0)"
3495 elif test "$_dga" = no ; then
3496 echores "no"
3497 _novomodules="dga $_novomodules"
3498 else
3499 die "DGA version must be 1 or 2"
3503 echocheck "OpenGL"
3504 #Note: this test is run even with --enable-gl since we autodetect $_ld_gl
3505 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
3506 cat > $TMPC << EOF
3507 #include <GL/gl.h>
3508 int main(void) { return 0; }
3510 _gl=no
3511 if cc_check $_inc_x11 $_ld_x11 -lGL $_ld_lm ; then
3512 _gl=yes
3513 _ld_gl="-lGL"
3514 elif cc_check $_inc_x11 $_ld_x11 -lGL $_ld_lm $_ld_pthread ; then
3515 _gl=yes
3516 _ld_gl="-lGL $_ld_pthread"
3517 elif cc_check -lopengl32 ; then
3518 _gl=yes
3519 _gl_win32=yes
3520 _ld_gl="-lopengl32 -lgdi32"
3522 else
3523 _gl=no
3525 if test "$_gl" = yes ; then
3526 _def_gl='#define HAVE_GL 1'
3527 if test "$_gl_win32" = yes ; then
3528 _def_gl_win32='#define GL_WIN32 1'
3529 _vosrc="$_vosrc vo_gl2.c w32_common.c gl_common.c"
3530 else
3531 _vosrc="$_vosrc vo_gl.c vo_gl2.c gl_common.c"
3533 _vomodules="opengl $_vomodules"
3534 else
3535 _def_gl='#undef HAVE_GL'
3536 _def_gl_win32='#undef GL_WIN32'
3537 _novomodules="opengl $_novomodules"
3539 echores "$_gl"
3542 echocheck "/dev/mga_vid"
3543 if test "$_mga" = auto ; then
3544 _mga=no
3545 test -c /dev/mga_vid && _mga=yes
3547 if test "$_mga" = yes ; then
3548 _def_mga='#define HAVE_MGA 1'
3549 _vosrc="$_vosrc vo_mga.c"
3550 _vomodules="mga $_vomodules"
3551 else
3552 _def_mga='#undef HAVE_MGA'
3553 _novomodules="mga $_novomodules"
3555 echores "$_mga"
3558 # echocheck "syncfb"
3559 # _syncfb=no
3560 # test "$_mga" = yes && _syncfb=yes
3561 # if test "$_syncfb" = yes ; then
3562 # _def_syncfb='#define HAVE_SYNCFB 1'
3563 # _vosrc="$_vosrc vo_syncfb.c"
3564 # else
3565 # _def_syncfb='#undef HAVE_SYNCFB'
3566 # fi
3567 # echores "$_syncfb"
3570 echocheck "xmga"
3571 if test "$_xmga" = auto ; then
3572 _xmga=no
3573 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
3575 if test "$_xmga" = yes ; then
3576 _def_xmga='#define HAVE_XMGA 1'
3577 _vosrc="$_vosrc vo_xmga.c"
3578 _vomodules="xmga $_vomodules"
3579 else
3580 _def_xmga='#undef HAVE_XMGA'
3581 _novomodules="xmga $_novomodules"
3583 echores "$_xmga"
3586 echocheck "GGI"
3587 if test "$_ggi" = auto ; then
3588 cat > $TMPC << EOF
3589 #include <ggi/ggi.h>
3590 int main(void) { return 0; }
3592 _ggi=no
3593 cc_check -lggi && _ggi=yes
3595 if test "$_ggi" = yes ; then
3596 _def_ggi='#define HAVE_GGI 1'
3597 _ld_ggi='-lggi'
3598 _vosrc="$_vosrc vo_ggi.c"
3599 _vomodules="ggi $_vomodules"
3600 else
3601 _def_ggi='#undef HAVE_GGI'
3602 _novomodules="ggi $_novomodules"
3604 echores "$_ggi"
3607 echocheck "AA"
3608 if test "$_aa" = auto ; then
3609 cat > $TMPC << EOF
3610 #include <aalib.h>
3611 int main(void) { (void) aa_init(0, 0, 0); return 0; }
3613 _aa=no
3614 cc_check -laa && _aa=yes
3616 if test "$_aa" = yes ; then
3617 _def_aa='#define HAVE_AA 1'
3618 if cygwin ; then
3619 _ld_aa=`aalib-config --libs | cut -d " " -f 2,5,6`
3620 else
3621 _ld_aa='-laa'
3623 _vosrc="$_vosrc vo_aa.c"
3624 _vomodules="aa $_vomodules"
3625 else
3626 _def_aa='#undef HAVE_AA'
3627 _novomodules="aa $_novomodules"
3629 echores "$_aa"
3632 echocheck "CACA"
3633 if test "$_caca" = auto ; then
3634 _caca=no
3635 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
3636 cat > $TMPC << EOF
3637 #include <caca.h>
3638 int main(void) { (void) caca_init(); return 0; }
3640 cc_check `caca-config --libs` && _caca=yes
3643 if test "$_caca" = yes ; then
3644 _def_caca='#define HAVE_CACA 1'
3645 _inc_caca=`caca-config --cflags`
3646 _ld_caca=`caca-config --libs`
3647 _vosrc="$_vosrc vo_caca.c"
3648 _vomodules="caca $_vomodules"
3649 else
3650 _def_caca='#undef HAVE_CACA'
3651 _novomodules="caca $_novomodules"
3653 echores "$_caca"
3656 echocheck "SVGAlib"
3657 if test "$_svga" = auto ; then
3658 cat > $TMPC << EOF
3659 #include <vga.h>
3660 #include <vgagl.h>
3661 int main(void) { return 0; }
3663 _svga=no
3664 cc_check -lvgagl -lvga $_ld_lm && _svga=yes
3666 if test "$_svga" = yes ; then
3667 _def_svga='#define HAVE_SVGALIB 1'
3668 _ld_svga="-lvgagl -lvga $_ld_lm"
3669 _vosrc="$_vosrc vo_svga.c"
3670 _vomodules="svga $_vomodules"
3671 else
3672 _def_svga='#undef HAVE_SVGALIB'
3673 _novomodules="svga $_novomodules"
3675 echores "$_svga"
3678 echocheck "FBDev"
3679 if test "$_fbdev" = auto ; then
3680 _fbdev=no
3681 linux && test -c /dev/fb0 && _fbdev=yes
3683 if test "$_fbdev" = yes ; then
3684 _def_fbdev='#define HAVE_FBDEV 1'
3685 _vosrc="$_vosrc vo_fbdev.c vo_fbdev2.c"
3686 _vomodules="fbdev $_vomodules"
3687 else
3688 _def_fbdev='#undef HAVE_FBDEV'
3689 _novomodules="fbdev $_novomodules"
3691 echores "$_fbdev"
3695 echocheck "DVB"
3696 if test "$_dvb" != no ; then
3697 _dvb=no
3698 cat >$TMPC << EOF
3699 #include <sys/poll.h>
3700 #include <sys/ioctl.h>
3701 #include <stdio.h>
3702 #include <time.h>
3703 #include <unistd.h>
3705 #include <ost/dmx.h>
3706 #include <ost/frontend.h>
3707 #include <ost/sec.h>
3708 #include <ost/video.h>
3709 #include <ost/audio.h>
3710 int main(void) {return 0;}
3712 if cc_check ; then
3713 _dvb=yes
3714 echores "yes"
3715 else
3716 for I in "$_inc_dvb" "-I/usr/src/DVB/ost/include" ; do
3717 if cc_check "$I" ; then
3718 _dvb=yes
3719 _inc_dvb="$I"
3720 echores "yes (using $_inc_dvb)"
3721 break
3723 done
3724 test "$_dvb" = no && echores "no (specify path to DVB/ost/include with --with-dvbincdir=DIR)"
3726 else
3727 echores "no"
3729 if test "$_dvb" = yes ; then
3730 _def_dvb='#define HAVE_DVB 1'
3731 _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
3732 _aomodules="mpegpes(dvb) $_aomodules"
3733 _vomodules="mpegpes(dvb) $_vomodules"
3735 if test "$_dvbhead" != no ; then
3736 echocheck "DVB HEAD"
3737 if test "$_dvbhead" != no ; then
3738 _dvbhead=no
3740 cat >$TMPC << EOF
3741 #include <sys/poll.h>
3742 #include <sys/ioctl.h>
3743 #include <stdio.h>
3744 #include <time.h>
3745 #include <unistd.h>
3747 #include <linux/dvb/dmx.h>
3748 #include <linux/dvb/frontend.h>
3749 #include <linux/dvb/video.h>
3750 #include <linux/dvb/audio.h>
3751 int main(void) {return 0;}
3753 if cc_check ; then
3754 _dvbhead=yes
3755 echores "yes"
3756 else
3757 for I in "$_inc_dvb" "-I/usr/src/DVB/include" ; do
3758 if cc_check "$I" ; then
3759 _dvbhead=yes
3760 _inc_dvb="$I"
3761 echores "yes (using $_inc_dvb)"
3762 break
3764 done
3765 test "$_dvbhead" = no && echores "no (specify path to DVB/include (HEAD Version) with --with-dvbincdir=DIR)"
3767 else
3768 echores "no"
3770 if test "$_dvbhead" = yes ; then
3771 _def_dvb='#define HAVE_DVB_HEAD 1'
3772 _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
3773 _aomodules="mpegpes(dvb) $_aomodules"
3774 _vomodules="mpegpes(dvb) $_vomodules"
3777 if test "$_dvbhead" = no && test "$_dvb" = no ; then
3778 _def_dvb='#undef HAVE_DVB'
3779 _def_dvb_in='#undef HAS_DVBIN_SUPPORT '
3780 _aomodules="mpegpes(file) $_aomodules"
3781 _vomodules="mpegpes(file) $_vomodules"
3784 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
3785 _dvbin=yes
3786 _inputmodules="dvb $_inputmodules"
3787 else
3788 _dvbin=no
3789 _noinputmodules="dvb $_noinputmodules"
3792 echocheck "PNG support"
3793 if test "$_png" = auto ; then
3794 _png=no
3795 if irix ; then
3796 # Don't check for -lpng on irix since it has its own libpng
3797 # incompatible with the GNU libpng
3798 echores "disabled on irix (not GNU libpng)"
3799 else
3800 cat > $TMPC << EOF
3801 #include <png.h>
3802 #include <string.h>
3803 int main(void) {
3804 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
3805 printf("libpng: %s\n", png_libpng_ver);
3806 return (strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver));
3809 if cc_check -lpng -lz $_ld_lm ; then
3810 if "$TMPO" >> "$TMPLOG" ; then
3811 _png=yes
3812 echores yes
3813 else
3814 echores "no (mismatch of library and header versions)"
3816 else
3817 echores no
3820 else
3821 echores "$_png"
3823 if test "$_png" = yes ; then
3824 _def_png='#define HAVE_PNG 1'
3825 _ld_png='-lpng -lz'
3826 _vosrc="$_vosrc vo_png.c"
3827 _vomodules="png $_vomodules"
3828 _mkf_png="yes"
3829 else
3830 _def_png='#undef HAVE_PNG'
3831 _novomodules="png $_novomodules"
3832 _mkf_png="no"
3835 echocheck "JPEG support"
3836 if test "$_jpg" = auto ; then
3837 _jpg=no
3838 cat > $TMPC << EOF
3839 #include <stdio.h>
3840 #include <stdlib.h>
3841 #include <setjmp.h>
3842 #include <string.h>
3843 #include <jpeglib.h>
3844 int main(void) {
3845 return 0;
3848 if cc_check -ljpeg $_ld_lm ; then
3849 if "$TMPO" >> "$TMPLOG" ; then
3850 _jpg=yes
3854 echores "$_jpg"
3856 if test "$_jpg" = yes ; then
3857 _def_jpg='#define HAVE_JPEG 1'
3858 _vosrc="$_vosrc vo_jpeg.c"
3859 _vomodules="jpeg $_vomodules"
3860 _ld_jpg="-ljpeg"
3861 _mkf_jpg="yes"
3862 else
3863 _def_jpg='#undef HAVE_JPEG'
3864 _novomodules="jpeg $_novomodules"
3865 _mkf_jpg="no"
3869 echocheck "GIF support"
3870 # This is to appease people who want to force gif support.
3871 # If it is forced to yes, then we still do checks to determine
3872 # which gif library to use.
3873 if test "$_gif" = yes ; then
3874 _force_gif=yes
3875 _gif=auto
3878 if test "$_gif" = auto ; then
3879 _gif=no
3880 cat > $TMPC << EOF
3881 #include <gif_lib.h>
3882 int main(void) {
3883 return 0;
3886 if cc_check -lungif && "$TMPO" >> "$TMPLOG" ; then
3887 _gif=yes
3888 _ld_gif="-lungif"
3889 elif cc_check -lungif $_ld_x11 && "$TMPO" >> "$TMPLOG" ; then
3890 _gif=yes
3891 _ld_gif="-lungif $_ld_x11"
3892 elif cc_check -lgif && "$TMPO" >> "$TMPLOG" ; then
3893 _gif=yes
3894 _ld_gif="-lgif"
3895 elif cc_check -lgif $_ld_x11 && "$TMPO" >> "$TMPLOG" ; then
3896 _gif=yes
3897 _ld_gif="-lgif $_ld_x11"
3901 # If no library was found, and the user wants support forced,
3902 # then we force it on with libgif, as this is the safest
3903 # assumption IMHO. (libungif & libregif both create symbolic
3904 # links to libgif. We also assume that no x11 support is needed,
3905 # because if you are forcing this, then you _should_ know what
3906 # you are doing. [ Besides, package maintainers should never
3907 # have compiled x11 deps into libungif in the first place. ] )
3908 # </rant>
3909 # --Joey
3910 if test "$_force_gif" = yes && test "$_gif" = no ; then
3911 _gif=yes
3912 _ld_gif="-lgif"
3915 if test "$_gif" = yes ; then
3916 _def_gif='#define HAVE_GIF 1'
3917 _vosrc="$_vosrc vo_gif89a.c"
3918 _codecmodules="gif $_codecmodules"
3919 _vomodules="gif89a $_vomodules"
3920 _mkf_gif="yes"
3921 _gif="yes (old version, some encoding functions disabled)"
3922 _def_gif_4='#undef HAVE_GIF_4'
3924 cat > $TMPC << EOF
3925 #include <signal.h>
3926 #include <gif_lib.h>
3927 void catch() { exit(1); }
3928 int main(void) {
3929 signal(SIGSEGV, catch); // catch segfault
3930 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
3931 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
3932 return 0;
3935 if cc_check "$_ld_gif" && ( "$TMPO" ) >>"$TMPLOG" 2>&1 ; then
3936 _def_gif_4='#define HAVE_GIF_4 1'
3937 _gif="yes"
3939 else
3940 _def_gif='#undef HAVE_GIF'
3941 _def_gif_4='#undef HAVE_GIF_4'
3942 _novomodules="gif89a $_novomodules"
3943 _nocodecmodules="gif $_codecmodules"
3944 _mkf_gif="no"
3946 echores "$_gif"
3949 case "$_gif" in yes*)
3950 echocheck "broken giflib workaround"
3951 _def_gif_tvt_hack='#define HAVE_GIF_TVT_HACK 1'
3953 cat > $TMPC << EOF
3954 #include <gif_lib.h>
3955 int main(void) {
3956 GifFileType gif;
3957 printf("UserData is at address %p\n", gif.UserData);
3958 return 0;
3961 if cc_check "$_ld_gif" && ( "$TMPO" ) >>"$TMPLOG" 2>&1 ; then
3962 _def_gif_tvt_hack='#undef HAVE_GIF_TVT_HACK'
3963 echores "disabled"
3964 else
3965 echores "enabled"
3968 esac
3971 echocheck "VESA support"
3972 if test "$_vesa" = auto ; then
3973 if x86 && linux ; then
3974 _vesa=no
3975 cat > $TMPC << EOF
3976 #include <sys/io.h>
3977 int main(void) { return 0; }
3979 cc_check && _vesa=yes
3982 if test "$_vesa" = yes ; then
3983 _def_vesa='#define HAVE_VESA 1'
3984 _vosrc="$_vosrc vo_vesa.c vesa_lvo.c"
3985 _vomodules="vesa $_vomodules"
3986 echores "yes"
3987 else
3988 _def_vesa='#undef HAVE_VESA'
3989 echores "no (not supported on this OS/architecture)"
3990 _novomodules="vesa $_novomodules"
3993 #################
3994 # VIDEO + AUDIO #
3995 #################
3998 echocheck "SDL"
3999 if test -z "$_sdlconfig" ; then
4000 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
4001 _sdlconfig="sdl-config"
4002 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
4003 _sdlconfig="sdl11-config"
4004 else
4005 _sdlconfig=false
4008 if test "$_sdl" = auto || test "$_sdl" = yes ; then
4009 cat > $TMPC << EOF
4010 #include <SDL.h>
4011 int main(int argc, char *argv[]) { return 0; }
4013 _sdl=no
4014 if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
4015 if cc_check `$_sdlconfig --cflags` `$_sdlconfig --libs` >>"$TMPLOG" 2>&1 ; then
4016 _sdlversion=`$_sdlconfig --version | sed 's/[^0-9]//g'`
4017 if test "$_sdlversion" -gt 116 ; then
4018 if test "$_sdlversion" -lt 121 ; then
4019 _def_sdlbuggy='#define BUGGY_SDL'
4020 else
4021 _def_sdlbuggy='#undef BUGGY_SDL'
4023 _sdl=yes
4024 else
4025 _sdl=outdated
4030 if test "$_sdl" = yes ; then
4031 _def_sdl='#define HAVE_SDL 1'
4032 if cygwin ; then
4033 _ld_sdl=`$_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/`
4034 _inc_sdl=`$_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/`
4035 elif mingw32 ; then
4036 _ld_sdl=`$_sdlconfig --libs | sed s/-mwindows//`
4037 _inc_sdl=`$_sdlconfig --cflags | sed s/-Dmain=SDL_main//`
4038 else
4039 _ld_sdl=`$_sdlconfig --libs`
4040 _inc_sdl=`$_sdlconfig --cflags`
4042 _vosrc="$_vosrc vo_sdl.c"
4043 _vomodules="sdl $_vomodules"
4044 _aosrc="$_aosrc ao_sdl.c"
4045 _aomodules="sdl $_aomodules"
4046 echores "yes (using $_sdlconfig)"
4047 else
4048 _def_sdl='#undef HAVE_SDL'
4049 _novomodules="sdl $_novomodules"
4050 _noaomodules="sdl $_noaomodules"
4051 echores "no"
4054 echocheck "Windows waveout"
4055 if test "$_win32waveout" = auto ; then
4056 cat > $TMPC << EOF
4057 #include <windows.h>
4058 #include <mmsystem.h>
4059 int main(void) { return 0; }
4061 _win32waveout=no
4062 cc_check -lwinmm && _win32waveout=yes
4064 if test "$_win32waveout" = yes ; then
4065 _def_win32waveout='#define HAVE_WIN32WAVEOUT 1'
4066 _ld_win32libs="-lwinmm $_ld_win32libs"
4067 _aosrc="$_aosrc ao_win32.c"
4068 _aomodules="win32 $_aomodules"
4069 else
4070 _def_win32waveout='#undef HAVE_WIN32WAVEOUT'
4071 _noaomodules="win32 $_noaomodules"
4073 echores "$_win32waveout"
4075 echocheck "Directx"
4076 if test "$_directx" = auto ; then
4077 cat > $TMPC << EOF
4078 #include <windows.h>
4079 #include <ddraw.h>
4080 #include <dsound.h>
4081 int main(void) { return 0; }
4083 _directx=no
4084 cc_check -lgdi32 && _directx=yes
4086 if test "$_directx" = yes ; then
4087 _def_directx='#define HAVE_DIRECTX 1'
4088 _ld_win32libs="-lgdi32 $_ld_win32libs"
4089 _vosrc="$_vosrc vo_directx.c"
4090 _vomodules="directx $_vomodules"
4091 _aosrc="$_aosrc ao_dsound.c"
4092 _aomodules="dsound $_aomodules"
4093 else
4094 _def_directx='#undef HAVE_DIRECTX'
4095 _novomodules="directx $_novomodules"
4096 _noaomodules="dsound $_noaomodules"
4098 echores "$_directx"
4100 echocheck "NAS"
4101 if test "$_nas" = auto || test "$_nas" = yes ; then
4102 cat > $TMPC << EOF
4103 #include <audio/audiolib.h>
4104 int main(void) { return 0; }
4106 _nas=no
4107 cc_check -laudio $_inc_x11 -lXt $_ld_x11 $_ld_lm && _nas=yes
4109 if test "$_nas" = yes ; then
4110 _def_nas='#define HAVE_NAS 1'
4111 _ld_nas="-laudio -lXt $_ld_x11"
4112 _aosrc="$_aosrc ao_nas.c"
4113 _aomodules="nas $_aomodules"
4114 else
4115 _noaomodules="nas $_noaomodules"
4116 _def_nas='#undef HAVE_NAS'
4118 echores "$_nas"
4120 echocheck "DXR2"
4121 if test "$_dxr2" = auto; then
4122 _dxr2=no
4123 for _inc_dxr2 in "$_inc_dxr2" \
4124 "-I/usr/local/include/dxr2" \
4125 "-I/usr/include/dxr2"; do
4126 cat > $TMPC << EOF
4127 #include <dxr2ioctl.h>
4128 int main(void) { return 0; }
4130 cc_check $_inc_dxr2 && _dxr2=yes && break
4131 done
4133 if test "$_dxr2" = yes; then
4134 _def_dxr2='#define HAVE_DXR2 1'
4135 _vosrc="$_vosrc vo_dxr2.c"
4136 _aosrc="$_aosrc ao_dxr2.c"
4137 _aomodules="dxr2 $_aomodules"
4138 _vomodules="dxr2 $_vomodules"
4139 echores "yes (using $_inc_dxr2)"
4140 else
4141 _def_dxr2='#undef HAVE_DXR2'
4142 _noaomodules="dxr2 $_noaomodules"
4143 _novomodules="dxr2 $_novomodules"
4144 _inc_dxr2=""
4145 echores "no"
4148 echocheck "DXR3/H+"
4149 if test "$_dxr3" = auto ; then
4150 cat > $TMPC << EOF
4151 #include <linux/em8300.h>
4152 int main(void) { return 0; }
4154 _dxr3=no
4155 cc_check && _dxr3=yes
4157 if test "$_dxr3" = yes ; then
4158 _def_dxr3='#define HAVE_DXR3 1'
4159 _vosrc="$_vosrc vo_dxr3.c"
4160 _vomodules="dxr3 $_vomodules"
4161 else
4162 _def_dxr3='#undef HAVE_DXR3'
4163 _novomodules="dxr3 $_novomodules"
4164 if test "$_mp1e" = auto ; then
4165 # we don't need mp1e
4166 _mp1e=no
4169 echores "$_dxr3"
4171 echocheck "libmp1e"
4172 if test "$_mmx" = no ; then
4173 # mp1e REQUIRES mmx!
4174 _mp1e=no
4176 if test "$_mp1e" != no ; then
4177 _mp1e=yes
4178 _def_mp1e='#define USE_MP1E'
4179 _ld_mp1e='libmp1e/libmp1e.a'
4180 _dep_mp1e='libmp1e/libmp1e.a'
4181 else
4182 _mp1e=no
4183 _def_mp1e='#undef USE_MP1E'
4184 _ld_mp1e=""
4185 _dep_mp1e=''
4187 echores "$_mp1e"
4190 echocheck "libfame"
4191 if test "$_fame" = auto ; then
4192 _fame=no
4193 test "$_dxr2" = yes && _fame=auto
4194 test "$_dxr3" = yes && _fame=auto
4195 test "$_dvb" = yes && _fame=auto
4197 if test "$_fame" = auto ; then
4198 _fame=no
4199 if test -d libfame && test -f libfame/fame.h ; then
4200 # disable fame on cygwin as no sense to port - atmos
4201 cygwin || _fame=yes
4202 echores $_fame
4203 else
4204 echores "no (no fame dir)"
4206 else
4207 echores "$_fame"
4210 _def_fame='#undef USE_LIBFAME'
4211 if test "$_fame" = yes ; then
4212 _def_fame='#define USE_LIBFAME 1'
4213 _ld_fame='libfame/libfame.a'
4217 #########
4218 # AUDIO #
4219 #########
4222 echocheck "OSS Audio"
4223 if test "$_ossaudio" = auto ; then
4224 cat > $TMPC << EOF
4225 #include <sys/ioctl.h>
4226 $_inc_soundcard
4227 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
4229 _ossaudio=no
4230 cc_check && _ossaudio=yes
4232 if test "$_ossaudio" = yes ; then
4233 _def_ossaudio='#define USE_OSS_AUDIO 1'
4234 _aosrc="$_aosrc ao_oss.c"
4235 _aomodules="oss $_aomodules"
4236 if test "$_linux_devfs" = yes; then
4237 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
4238 _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
4239 else
4240 cat > $TMPC << EOF
4241 #include <sys/ioctl.h>
4242 $_inc_soundcard
4243 #ifdef OPEN_SOUND_SYSTEM
4244 int main(void) { return 0; }
4245 #else
4246 #error Not the real thing
4247 #endif
4249 _real_ossaudio=no
4250 cc_check && _real_ossaudio=yes
4251 if test "$_real_ossaudio" = yes; then
4252 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4253 elif netbsd || openbsd ; then
4254 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
4255 _ld_arch="$_ld_arch -lossaudio"
4256 else
4257 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4259 _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
4261 else
4262 _def_ossaudio='#undef USE_OSS_AUDIO'
4263 _def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
4264 _def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
4265 _noaomodules="oss $_noaomodules"
4267 echores "$_ossaudio"
4270 echocheck "aRts"
4271 if test "$_arts" = auto ; then
4272 _arts=no
4273 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
4275 cat > $TMPC << EOF
4276 #include <artsc.h>
4277 int main(void) { return 0; }
4279 cc_check `artsc-config --libs` `artsc-config --cflags` && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _arts=yes
4284 if test "$_arts" = yes ; then
4285 _def_arts='#define USE_ARTS 1'
4286 _aosrc="$_aosrc ao_arts.c"
4287 _aomodules="arts $_aomodules"
4288 _ld_arts=`artsc-config --libs`
4289 _inc_arts=`artsc-config --cflags`
4290 else
4291 _noaomodules="arts $_noaomodules"
4293 echores "$_arts"
4296 echocheck "EsounD"
4297 if test "$_esd" = auto ; then
4298 _esd=no
4299 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
4301 cat > $TMPC << EOF
4302 #include <esd.h>
4303 int main(void) { return 0; }
4305 cc_check `esd-config --libs` `esd-config --cflags` && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _esd=yes
4309 echores "$_esd"
4311 if test "$_esd" = yes ; then
4312 _def_esd='#define USE_ESD 1'
4313 _aosrc="$_aosrc ao_esd.c"
4314 _aomodules="esd $_aomodules"
4315 _ld_esd=`esd-config --libs`
4316 _inc_esd=`esd-config --cflags`
4318 echocheck "esd_get_latency()"
4319 cat > $TMPC << EOF
4320 #include <esd.h>
4321 int main(void) { return esd_get_latency(0); }
4323 cc_check `esd-config --libs` `esd-config --cflags` && _esd_latency=yes && _def_esd_latency='#define HAVE_ESD_LATENCY'
4324 echores "$_esd_latency"
4325 else
4326 _def_esd='#undef USE_ESD'
4327 _def_esd_latency='#undef HAVE_ESD_LATENCY'
4328 _noaomodules="esd $_noaomodules"
4332 echocheck "JACK"
4333 if test "$_jack" = auto ; then
4334 _jack=no
4335 if ( ( pkg-config --modversion jack ) > /dev/null 2>&1 ) &&
4336 ( jackd --version | grep version | awk '{ print $3 }' ) >> "$TMPLOG" 2>&1 ; then
4338 cat > $TMPC << EOF
4339 #include <jack/jack.h>
4340 int main(void) { JACK_Init(); return 0; }
4342 # This test only checks the minor version number.
4343 if ( ( test `bio2jack-config --version | cut -d '.' -f 2` -ge 3 ) ) >/dev/null 2>&1 ; then
4344 if test -z "$_bio2jackdir" ; then
4345 cc_check -lbio2jack `pkg-config --libs --cflags jack` && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _jack=yes
4346 else
4347 cc_check -L "$_bio2jackdir" -lbio2jack `pkg-config --libs --cflags jack` && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _jack=yes
4353 if test "$_jack" = yes ; then
4354 _def_jack='#define USE_JACK 1'
4355 _aosrc="$_aosrc ao_jack.c"
4356 _aomodules="jack $_aomodules"
4357 if test -z "$_bio2jackdir" ; then
4358 _ld_jack="-lbio2jack `pkg-config --libs jack`"
4359 else
4360 _ld_jack="-L \"$_bio2jackdir\" -lbio2jack `pkg-config --libs jack`"
4362 _inc_jack=`pkg-config --cflags jack`
4363 else
4364 _noaomodules="jack $_noaomodules"
4366 echores "$_jack"
4369 echocheck "ALSA audio"
4370 if test "$_alsa" != no ; then
4371 _alsa=no
4372 cat > $TMPC << EOF
4373 #include <sys/asoundlib.h>
4374 int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==5)); }
4376 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.5.x'
4378 cat > $TMPC << EOF
4379 #include <sys/asoundlib.h>
4380 int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==9)); }
4382 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.9.x-sys'
4383 cat > $TMPC << EOF
4384 #include <alsa/asoundlib.h>
4385 int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==9)); }
4387 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.9.x-alsa'
4389 cat > $TMPC << EOF
4390 #include <sys/asoundlib.h>
4391 int main(void) { return (!(SND_LIB_MAJOR==1 && SND_LIB_MINOR==0)); }
4393 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='1.0.x-sys'
4394 cat > $TMPC << EOF
4395 #include <alsa/asoundlib.h>
4396 int main(void) { return (!(SND_LIB_MAJOR==1 && SND_LIB_MINOR==0)); }
4398 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='1.0.x-alsa'
4400 _def_alsa5='#undef HAVE_ALSA5'
4401 _def_alsa9='#undef HAVE_ALSA9'
4402 _def_alsa1x='#undef HAVE_ALSA1X'
4403 _def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
4404 _def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
4405 if test "$_alsaver" ; then
4406 if test "$_alsaver" = '0.5.x' ; then
4407 _aosrc="$_aosrc ao_alsa5.c"
4408 _aomodules="alsa5 $_aomodules"
4409 _def_alsa5='#define HAVE_ALSA5 1'
4410 _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
4411 echores "yes (using alsa 0.5.x and sys/asoundlib.h)"
4412 elif test "$_alsaver" = '0.9.x-sys' ; then
4413 _aosrc="$_aosrc ao_alsa.c"
4414 _aomodules="alsa $_aomodules"
4415 _def_alsa9='#define HAVE_ALSA9 1'
4416 _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
4417 echores "yes (using alsa 0.9.x and sys/asoundlib.h)"
4418 elif test "$_alsaver" = '0.9.x-alsa' ; then
4419 _aosrc="$_aosrc ao_alsa.c"
4420 _aomodules="alsa $_aomodules"
4421 _def_alsa9='#define HAVE_ALSA9 1'
4422 _def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
4423 echores "yes (using alsa 0.9.x and alsa/asoundlib.h)"
4424 elif test "$_alsaver" = '1.0.x-sys' ; then
4425 _aosrc="$_aosrc ao_alsa.c"
4426 _aomodules="alsa $_aomodules"
4427 _def_alsa1x="#define HAVE_ALSA1X 1"
4428 _def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
4429 echores "yes (using alsa 1.0.x and sys/asoundlib.h)"
4430 elif test "$_alsaver" = '1.0.x-alsa' ; then
4431 _aosrc="$_aosrc ao_alsa.c"
4432 _aomodules="alsa $_aomodules"
4433 _def_alsa1x="#define HAVE_ALSA1X 1"
4434 _def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
4435 echores "yes (using alsa 1.0.x and alsa/asoundlib.h)"
4437 _ld_alsa="-lasound $_ld_dl $_ld_pthread"
4438 else
4439 _noaomodules="alsa $_noaomodules"
4440 echores "no"
4444 echocheck "Sun audio"
4445 if test "$_sunaudio" = auto ; then
4446 cat > $TMPC << EOF
4447 #include <sys/types.h>
4448 #include <sys/audioio.h>
4449 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
4451 _sunaudio=no
4452 cc_check && _sunaudio=yes
4454 if test "$_sunaudio" = yes ; then
4455 _def_sunaudio='#define USE_SUN_AUDIO 1'
4456 _aosrc="$_aosrc ao_sun.c"
4457 _aomodules="sun $_aomodules"
4458 else
4459 _def_sunaudio='#undef USE_SUN_AUDIO'
4460 _noaomodules="sun $_noaomodules"
4462 echores "$_sunaudio"
4465 echocheck "Sun mediaLib"
4466 if test "$_mlib" = auto ; then
4467 _mlib=no
4468 test -z "$_mlibdir" && _mlibdir=/opt/SUNWmlib
4469 cat > $TMPC << EOF
4470 #include <mlib.h>
4471 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
4473 cc_check -I${_mlibdir}/include -L${_mlibdir}/lib -lmlib && _mlib=yes
4475 if test "$_mlib" = yes ; then
4476 _def_mlib='#define HAVE_MLIB 1'
4477 _inc_mlib=" -I${_mlibdir}/include "
4478 _ld_mlib=" -L${_mlibdir}/lib -R${_mlibdir}/lib -lmlib "
4479 else
4480 _def_mlib='#undef HAVE_MLIB'
4482 echores "$_mlib"
4485 echocheck "SGI audio"
4486 if test "$_sgiaudio" = auto ; then
4487 # check for SGI audio
4488 cat > $TMPC << EOF
4489 #include <dmedia/audio.h>
4490 int main(void) { return 0; }
4492 _sgiaudio=no
4493 cc_check && _sgiaudio=yes
4495 if test "$_sgiaudio" = "yes" ; then
4496 _def_sgiaudio='#define USE_SGI_AUDIO 1'
4497 _ld_sgiaudio='-laudio'
4498 _aosrc="$_aosrc ao_sgi.c"
4499 _aomodules="sgi $_aomodules"
4500 else
4501 _def_sgiaudio='#undef USE_SGI_AUDIO'
4502 _noaomodules="sgi $_noaomodules"
4504 echores "$_sgiaudio"
4507 echocheck "VCD support"
4508 if linux || bsdos || freebsd || netbsd || sunos || (darwin && ppc) ; then
4509 _inputmodules="vcd $_inputmodules"
4510 _def_vcd='#define HAVE_VCD 1'
4511 echores "ok"
4512 else
4513 _def_vcd='#undef HAVE_VCD'
4514 _noinputmodules="vcd $_noinputmodules"
4515 echores "not supported on this OS"
4518 echocheck "DVD support (libmpdvdkit)"
4519 if test "$_dvdkit" = auto ; then
4520 _dvdkit=no
4521 if linux || freebsd || netbsd || darwin || openbsd || win32 || sunos || hpux; then
4522 test -f "./libmpdvdkit2/Makefile" && _dvdkit=yes
4523 test -f "./libmpdvdkit/Makefile" && _dvdkit=yes
4526 if test "$_dvdkit" = yes ; then
4527 if test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || test "$_dvdio" = yes || test "$_bsdi_dvd" = yes || test "$_hpux_scsi_h" = yes || darwin || win32 ; then
4528 if test -f "./libmpdvdkit2/Makefile" ; then
4529 _inputmodules="mpdvdkit2 $_inputmodules"
4530 _dvdread=libmpdvdkit2
4531 _dvdkit2=yes
4532 _dvdkit=no
4533 else
4534 _inputmodules="mpdvdkit $_inputmodules"
4535 _dvdread=libmpdvdkit
4537 else
4538 _noinputmodules="mpdvdkit $_noinputmodules"
4540 _def_dvd_linux='#undef HAVE_LINUX_DVD_STRUCT'
4541 _def_dvd_bsd='#undef HAVE_BSD_DVD_STRUCT'
4542 _dev_dvd_openbsd='#undef HAVE_OPENBSD_DVD_STRUCT'
4543 _def_dvd_darwin='#undef DARWIN_DVD_IOCTL'
4544 if linux || netbsd || openbsd || bsdos ; then
4545 _def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
4546 if openbsd ; then
4547 _dev_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
4549 else
4550 if freebsd ; then
4551 _def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
4552 else
4553 if darwin ; then
4554 _def_dvd_darwin='#define DARWIN_DVD_IOCTL'
4558 else
4559 _noinputmodules="mpdvdkit $_noinputmodules"
4561 if test "$_dvdkit" = yes || test "$_dvdkit2" = yes; then
4562 echores "yes"
4563 else
4564 echores "no"
4567 echocheck "DVD support (libdvdread)"
4568 if test "$_dvdread" = auto ; then
4569 cat > $TMPC << EOF
4570 #include <inttypes.h>
4571 #include <dvdread/dvd_reader.h>
4572 #include <dvdread/ifo_types.h>
4573 #include <dvdread/ifo_read.h>
4574 #include <dvdread/nav_read.h>
4575 int main(void) { return 0; }
4577 _dvdread=no
4578 if test "$_dl" = yes; then
4579 cc_check \
4580 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -ldvdread $_ld_dl && \
4581 _dvdread=yes
4584 _def_mpdvdkit="#undef USE_MPDVDKIT"
4585 case "$_dvdread" in
4586 yes)
4587 _largefiles=yes
4588 _def_dvdread='#define USE_DVDREAD 1'
4589 _ld_dvdread='-ldvdread'
4590 _inputmodules="dvdread $_inputmodules"
4591 echores "yes"
4594 _def_dvdread='#undef USE_DVDREAD'
4595 _noinputmodules="dvdread $_noinputmodules"
4596 echores "no"
4598 libmpdvdkit)
4599 _largefiles=yes
4600 _def_dvdread='#define USE_DVDREAD 1'
4601 _ld_dvdread='-Llibmpdvdkit -lmpdvdkit'
4602 _noinputmodules="dvdread $_noinputmodules"
4603 _def_mpdvdkit="#define USE_MPDVDKIT 1"
4604 echores "disabled by libmpdvdkit"
4606 libmpdvdkit2)
4607 _largefiles=yes
4608 _def_dvdread='#define USE_DVDREAD 1'
4609 _ld_dvdread='-Llibmpdvdkit2 -lmpdvdkit'
4610 _noinputmodules="dvdread $_noinputmodules"
4611 _def_mpdvdkit="#define USE_MPDVDKIT 2"
4612 echores "disabled by libmpdvdkit2"
4614 esac
4616 # dvdnav disabled, it does not work
4617 # echocheck "DVD support (libdvdnav)"
4618 # if test "$_dvdnav" = yes ; then
4619 # cat > $TMPC <<EOF
4620 # #include <dvdnav.h>
4621 # int main(void) { dvdnav_t *dvd=0; return 0; }
4622 # EOF
4623 # _dvdnav=no
4624 # test -n "$_dvdnavdir" && _legal_dvdnavdir=-L$_dvdnavdir/.libs
4625 # if test -z "$_dvdnavconfig" ; then
4626 # if ( dvdnav-config --version ) >/dev/null 2>&1 ; then
4627 # _dvdnavconfig="dvdnav-config"
4628 # fi
4629 # fi
4630 # test -z "$_dvdnavdir" && test -n "$_dvdnavconfig" && _dvdnavdir=`$_dvdnavconfig --cflags`
4631 # _used_css=
4632 # test "$_dvdkit" = no && test "$_dvdkit2" = no && _used_css=$_ld_css
4633 # cc_check $_inc_extra -I$_dvdnavdir $_legal_dvdnavdir -ldvdnav $_used_css $_ld_dl $_ld_pthread && _dvdnav=yes
4634 # fi
4635 # if test "$_dvdnav" = yes ; then
4636 # _largefiles=yes
4637 # _def_dvdnav='#define USE_DVDNAV 1'
4638 # if test -n "$_legal_dvdnavdir" ; then
4639 # _ld_css="$_ld_css $_legal_dvdnavdir -ldvdnav"
4640 # elif test -n "$_dvdnavconfig" ; then
4641 # _ld_css="$_ld_css `$_dvdnavconfig --libs`"
4642 # else
4643 # _ld_css="$_ld_css -ldvdnav"
4644 # fi
4645 # if test -n "$_dvdnavconfig" ; then
4646 # _dvdnav_version=`$_dvdnavconfig --version | sed "s/\.//g"`
4647 # _def_dvdnav_version="#define DVDNAVVERSION $_dvdnav_version"
4648 # fi
4649 # if test -n "$_dvdnavdir" ; then
4650 # _inc_extra="$_inc_extra -I$_dvdnavdir"
4651 # fi
4652 # _inputmodules="dvdnav $_inputmodules"
4653 # echores "yes"
4654 # else
4655 # _def_dvdnav='#undef USE_DVDNAV'
4656 # _noinputmodules="dvdnav $_noinputmodules"
4657 # echores "no"
4658 # fi
4660 echocheck "cdparanoia"
4661 if test "$_cdparanoia" = auto ; then
4662 cat > $TMPC <<EOF
4663 #include <cdda_interface.h>
4664 #include <cdda_paranoia.h>
4665 // This need a better test. How ?
4666 int main(void) { return 1; }
4668 _cdparanoia=no
4669 if cc_check $_inc_cdparanoia $_ld_cdparanoia -lcdda_interface -lcdda_paranoia $_ld_lm ; then
4670 _cdparanoia=yes
4671 else
4672 for I in /usr/include/cdda /usr/local/include/cdda ; do
4673 if cc_check -I$I $_ld_cdparanoia -lcdda_interface -lcdda_paranoia $_ld_lm ; then
4674 _cdparanoia=yes; _inc_cdparanoia="-I$I"; break
4676 done
4679 if test "$_cdparanoia" = yes ; then
4680 _def_cdparanoia='#define HAVE_CDDA'
4681 _inputmodules="cdda $_inputmodules"
4682 _ld_cdparanoia="$_ld_cdparanoia -lcdda_interface -lcdda_paranoia"
4683 openbsd && _ld_cdparanoia="$_ld_cdparanoia -lutil"
4684 else
4685 _def_cdparanoia='#undef HAVE_CDDA'
4686 _noinputmodules="cdda $_noinputmodules"
4688 echores "$_cdparanoia"
4691 echocheck "freetype >= 2.0.9"
4693 # freetype depends on iconv
4694 if test "$_iconv" = no ; then
4695 _freetype="no (iconv support needed)"
4698 if test "$_freetype" = auto ; then
4699 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
4700 cat > $TMPC << EOF
4701 #include <stdio.h>
4702 #include <ft2build.h>
4703 #include FT_FREETYPE_H
4704 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
4705 #error "Need FreeType 2.0.9 or newer"
4706 #endif
4707 int main()
4709 FT_Library library;
4710 FT_Int major=-1,minor=-1,patch=-1;
4711 int err=FT_Init_FreeType(&library);
4712 if(err){
4713 printf("Couldn't initialize freetype2 lib, err code: %d\n",err);
4714 exit(err);
4716 FT_Library_Version(library,&major,&minor,&patch); // in v2.1.0+ only :(((
4717 printf("freetype2 header version: %d.%d.%d library version: %d.%d.%d\n",
4718 FREETYPE_MAJOR,FREETYPE_MINOR,FREETYPE_PATCH,
4719 (int)major,(int)minor,(int)patch );
4720 if(major!=FREETYPE_MAJOR || minor!=FREETYPE_MINOR){
4721 printf("Library and header version mismatch! Fix it in your distribution!\n");
4722 exit(1);
4724 return 0;
4727 _freetype=no
4728 cc_check `$_freetypeconfig --cflags` `$_freetypeconfig --libs` && ( $TMPO >> "$TMPLOG" ) && _freetype=yes
4729 else
4730 _freetype=no
4733 if test "$_freetype" = yes ; then
4734 _def_freetype='#define HAVE_FREETYPE'
4735 _inc_freetype=`$_freetypeconfig --cflags`
4736 _ld_freetype=`$_freetypeconfig --libs`
4737 else
4738 _def_freetype='#undef HAVE_FREETYPE'
4740 echores "$_freetype"
4742 if test "$_freetype" = no ; then
4743 _fontconfig=no
4745 echocheck "fontconfig"
4746 if test "$_fontconfig" = auto ; then
4747 if ( pkg-config --modversion fontconfig) > /dev/null 2>&1 ; then
4748 cat > $TMPC << EOF
4749 #include <stdio.h>
4750 #include <fontconfig/fontconfig.h>
4751 int main()
4753 int err = FcInit();
4754 if(err == FcFalse){
4755 printf("Couldn't initialize fontconfig lib\n");
4756 exit(err);
4758 return 0;
4762 _fontconfig=no
4763 cc_check `pkg-config --cflags --libs fontconfig` && ( $TMPO >> "$TMPLOG" ) && _fontconfig=yes
4764 else
4765 _fontconfig=no
4768 if test "$_fontconfig" = yes ; then
4769 _def_fontconfig='#define HAVE_FONTCONFIG'
4770 _inc_fontconfig=`pkg-config --cflags fontconfig`
4771 _ld_fontconfig=`pkg-config --libs fontconfig`
4772 else
4773 _def_fontconfig='#undef HAVE_FONTCONFIG'
4775 echores "$_fontconfig"
4777 echocheck "fribidi with charsets"
4778 if test "$_fribidi" = yes ; then
4779 if ( $_fribidiconfig --version ) >/dev/null 2>&1 ; then
4780 cat > $TMPC << EOF
4781 #include <stdio.h>
4782 #include <fribidi/fribidi.h>
4783 int main()
4785 if(fribidi_parse_charset("UTF-8") != FRIBIDI_CHARSET_UTF8) {
4786 printf("Fribidi headers are not consistents with the library!\n");
4787 exit(1);
4789 return 0;
4792 _fribidi=no
4793 cc_check `$_fribidiconfig --cflags` `$_fribidiconfig --libs` && ( $TMPO >> "$TMPLOG" ) && _fribidi=yes
4794 else
4795 _fribidi=no
4798 if test "$_fribidi" = yes ; then
4799 _def_fribidi='#define USE_FRIBIDI'
4800 _inc_fribidi=`$_fribidiconfig --cflags`
4801 _ld_fribidi=`$_fribidiconfig --libs`
4802 else
4803 _def_fribidi='#undef USE_FRIBIDI'
4805 echores "$_fribidi"
4808 echocheck "ENCA"
4809 if test "$_enca" = auto ; then
4810 cat > $TMPC << EOF
4811 #include <enca.h>
4812 int main()
4814 const char **langs;
4815 size_t langcnt;
4816 langs = enca_get_languages(&langcnt);
4817 return 0;
4820 _enca=no
4821 cc_check -lenca && _enca=yes
4822 if test "$_enca" = yes ; then
4823 _def_enca='#define HAVE_ENCA 1'
4824 _ld_enca='-lenca'
4825 else
4826 _def_enca='#undef HAVE_ENCA'
4829 echores "$_enca"
4832 echocheck "zlib"
4833 cat > $TMPC << EOF
4834 #include <zlib.h>
4835 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
4837 _zlib=no
4838 cc_check -lz && _zlib=yes
4839 if test "$_zlib" = yes ; then
4840 _def_zlib='#define HAVE_ZLIB 1'
4841 _ld_zlib='-lz'
4842 else
4843 _def_zlib='#undef HAVE_ZLIB'
4845 echores "$_zlib"
4848 echocheck "RTC"
4849 if linux ; then
4850 if test "$_rtc" = auto ; then
4851 cat > $TMPC << EOF
4852 #include <sys/ioctl.h>
4853 #include <linux/rtc.h>
4854 int main(void) { return RTC_IRQP_READ; }
4856 _rtc=no
4857 cc_check && _rtc=yes
4859 echores "$_rtc"
4860 else
4861 _rtc=no
4862 echores "no (Linux specific feature)"
4864 if test "$_rtc" = yes ; then
4865 _def_rtc='#define HAVE_RTC 1'
4866 else
4867 _def_rtc='#undef HAVE_RTC'
4871 echocheck "external liblzo support"
4872 if test "$_liblzo" = auto ; then
4873 _liblzo=no
4874 cat > $TMPC << EOF
4875 #include <lzo1x.h>
4876 int main(void) { lzo_init();return 0; }
4878 cc_check -llzo && _liblzo=yes
4880 if test "$_liblzo" = yes ; then
4881 _def_liblzo='#define USE_LIBLZO 1'
4882 _ld_liblzo='-llzo'
4883 _codecmodules="liblzo $_codecmodules"
4884 else
4885 _def_liblzo='#undef USE_LIBLZO'
4886 _nocodecmodules="liblzo $_nocodecmodules"
4888 echores "$_liblzo"
4891 echocheck "mad support"
4892 if test "$_mad" = auto ; then
4893 _mad=no
4894 cat > $TMPC << EOF
4895 #include <mad.h>
4896 int main(void) { return 0; }
4898 cc_check $_madlibdir -lmad && _mad=yes
4900 if test "$_mad" = yes ; then
4901 _def_mad='#define USE_LIBMAD 1'
4902 _ld_mad='-lmad'
4903 _codecmodules="libmad $_codecmodules"
4904 else
4905 _def_mad='#undef USE_LIBMAD'
4906 _nocodecmodules="libmad $_nocodecmodules"
4908 echores "$_mad"
4910 echocheck "Toolame"
4911 if test "$_toolame" = auto ; then
4912 cat > $TMPC <<EOF
4913 #include <toolame.h>
4914 int main(void) { toolame_init(); return 0; }
4916 _toolame=no
4917 _toolame_extraflags=""
4918 _toolame_lib="-ltoolame"
4919 if test -n "$_toolamedir"; then
4920 _toolame_extraflags="-I$_toolamedir -L$_toolamedir"
4922 cc_check $_toolame_extraflags $_toolame_lib $_ld_lm && _toolame=yes
4924 if test "$_toolame" = yes ; then
4925 _def_toolame='#define HAVE_TOOLAME 1'
4926 _codecmodules="$_codecmodules toolame"
4927 else
4928 _def_toolame='#undef HAVE_TOOLAME'
4929 _toolame_lib=""
4930 _nocodecmodules="toolame $_nocodecmodules"
4932 if test -z "$_toolamedir" ; then
4933 echores "$_toolame"
4934 else
4935 echores "$_toolame (using $_toolamedir)"
4938 echocheck "OggVorbis support"
4939 if test "$_vorbis" = auto ; then
4940 _vorbis=no
4941 cat > $TMPC << EOF
4942 #include <vorbis/codec.h>
4943 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
4945 cc_check -lvorbis -logg $_ld_lm && _vorbis=yes
4947 if test "$_vorbis" = yes ; then
4948 _def_vorbis='#define HAVE_OGGVORBIS 1'
4949 if test "$_tremor" = yes ; then
4950 _def_tremor='#define TREMOR 1'
4951 _ld_vorbis='-lvorbisidec'
4952 else
4953 _def_tremor='#undef TREMOR'
4954 _ld_vorbis='-lvorbis -logg'
4956 _codecmodules="libvorbis $_codecmodules"
4957 else
4958 _def_vorbis='#undef HAVE_OGGVORBIS'
4959 _def_tremor='#undef TREMOR'
4960 _nocodecmodules="libvorbis $_nocodecmodules"
4962 if test "$_vorbis" = yes -a "$_tremor" = yes ; then
4963 echores "$_vorbis (Tremor)"
4964 else
4965 echores "$_vorbis"
4968 echocheck "OggTheora support (only the CVS version!)"
4969 if test "$_theora" = auto ; then
4970 _theora=no
4971 cat > $TMPC << EOF
4972 #include <theora/theora.h>
4973 #include <string.h>
4974 int main(void)
4976 /* theora is in flux, make sure that all interface routines and
4977 * datatypes exist and work the way we expect it, so we don't break
4978 * mplayer */
4979 ogg_packet op;
4980 theora_comment tc;
4981 theora_info inf;
4982 theora_state st;
4983 yuv_buffer yuv;
4984 int r;
4985 double t;
4987 theora_info_init (&inf);
4988 theora_comment_init (&tc);
4990 return 0;
4992 /* we don't want to execute this kind of nonsense; just for making sure
4993 * that compilation works... */
4994 memset(&op, 0, sizeof(op));
4995 r = theora_decode_header (&inf, &tc, &op);
4996 r = theora_decode_init (&st, &inf);
4997 t = theora_granule_time (&st, op.granulepos);
4998 r = theora_decode_packetin (&st, &op);
4999 r = theora_decode_YUVout (&st, &yuv);
5000 theora_clear (&st);
5002 return 0;
5005 cc_check -ltheora -logg $_ld_lm && _theora=yes
5007 if test "$_theora" = yes ; then
5008 _def_theora='#define HAVE_OGGTHEORA 1'
5009 _codecmodules="libtheora $_codecmodules"
5010 _ld_theora="-ltheora -logg"
5011 else
5012 _def_theora='#undef HAVE_OGGTHEORA'
5013 _nocodecmodules="libtheora $_nocodecmodules"
5015 echores "$_theora"
5017 echocheck "mp3lib support"
5018 if test "$_mp3lib" = yes ; then
5019 _def_mp3lib='#define USE_MP3LIB 1'
5020 _codecmodules="mp3lib $_codecmodules"
5021 else
5022 _def_mp3lib='#undef USE_MP3LIB'
5023 _nocodecmodules="mp3lib $_nocodecmodules"
5025 echores "$_mp3lib"
5027 echocheck "liba52 support"
5028 if test "$_liba52" = yes ; then
5029 _def_liba52='#define USE_LIBA52 1'
5030 _codecmodules="liba52 $_codecmodules"
5031 else
5032 _def_liba52='#undef USE_LIBA52'
5033 _nocodecmodules="liba52 $_nocodecmodules"
5035 echores "$_liba52"
5037 echocheck "libdts support"
5038 if test "$_libdts" = auto ; then
5039 _libdts=no
5040 cat > $TMPC << EOF
5041 #include <stdint.h>
5042 #include <dts.h>
5043 int main(void) { dts_init (0); return 0; }
5045 cc_check $_inc_libdts $_ld_libdts -ldts $_ld_lm && _libdts=yes
5047 if test "$_libdts" = yes ; then
5048 _def_libdts='#define CONFIG_DTS 1'
5049 _ld_libdts="$_ld_libdts -ldts $_ld_lm"
5050 _codecmodules="libdts $_codecmodules"
5051 else
5052 _def_libdts='#undef CONFIG_DTS'
5053 _nocodecmodules="libdts $_nocodecmodules"
5055 echores "$_libdts"
5057 echocheck "libmpeg2 support"
5058 if test "$_libmpeg2" = yes ; then
5059 _def_libmpeg2='#define USE_LIBMPEG2 1'
5060 _codecmodules="libmpeg2 $_codecmodules"
5061 else
5062 _def_libmpeg2='#undef USE_LIBMPEG2'
5063 _nocodecmodules="libmpeg2 $_nocodecmodules"
5065 echores "$_libmpeg2"
5068 echocheck "Matroska support"
5069 if test "$_matroska_internal" = yes ; then
5070 _inputmodules="matroska $_inputmodules"
5071 _def_matroska='#define HAVE_MATROSKA 1'
5072 else
5073 _noinputmodules="matroska $_noinputmodules"
5074 _def_matroska='#undef HAVE_MATROSKA'
5076 echores "$_matroska_internal"
5079 echocheck "internal FAAD2 (AAC) support"
5080 _inc_faad="-I`pwd`/libfaad2"
5081 if test "$_faad_internal" = auto ; then
5082 # the faad check needs a config.h file
5083 if not test -f "config.h" ; then
5084 > config.h
5086 # internal faad: check if our dear gcc is able to compile it...
5087 cp "`pwd`/libfaad2/cfft.c" $TMPC
5088 if ( cc_check -c -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer $_inc_faad ); then
5089 _faad_internal=yes
5090 else
5091 _faad_internal="no (broken gcc)"
5094 if test "$_faad_internal" = yes ; then
5095 _def_faad_internal="#define USE_INTERNAL_FAAD 1"
5096 _faad_external=no
5097 else
5098 _def_faad_internal="#undef USE_INTERNAL_FAAD"
5099 _inc_faad=
5101 echores "$_faad_internal"
5104 echocheck "external FAAD2 (AAC) support"
5105 if test "$_faad_external" != no ; then
5106 _ld_faad='-lfaad'
5107 _inc_faad="$_inc_extra"
5108 # external faad: check if it's really faad2 :)
5109 if test "$_faad_external" = auto ; then
5110 _faad_external=no
5111 cat > $TMPC << EOF
5112 #include <faad.h>
5113 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo; testhand = faacDecOpen(); return 0; }
5115 cc_check $_inc_faad $_ld_faad $_ld_lm && _faad_external=yes
5117 echores "$_faad_external"
5118 else
5119 echores "no"
5122 if test "$_faad_internal" = yes -o "$_faad_external" = yes; then
5123 echocheck "FAAD2 version"
5124 cat > $TMPC <<EOF
5125 #include <faad.h>
5126 #ifndef FAAD_MIN_STREAMSIZE
5127 #error Too old version
5128 #endif
5129 int main(void) {
5130 #ifdef FAAD2_VERSION
5131 printf("%s\n",FAAD2_VERSION);
5132 #else
5133 printf("1.0\n");
5134 #endif
5135 return 0;
5138 if cc_check -I- $_inc_faad $_ld_faad $_ld_lm && "$TMPO" >> "$TMPLOG" ; then
5139 _faad_version=`"$TMPO"`
5140 _faad_tempversion=`"$TMPO" | sed -e 's/^\([0-9]\{1,\}\)\.\([0-9]\{1,\}\).*/\1\2/'`
5141 _def_faad_version="#define FAADVERSION $_faad_tempversion"
5142 echores "$_faad_version"
5143 else
5144 _faad_external=no
5145 _faad_internal=no
5146 echores "failed to get version"
5150 if test "$_faad_external" = yes; then
5151 _def_faad='#define HAVE_FAAD 1'
5152 _codecmodules="faad2(external) $_codecmodules"
5153 elif test "$_faad_internal" = yes; then
5154 _def_faad='#define HAVE_FAAD 1'
5155 _codecmodules="faad2(internal) $_codecmodules"
5156 else
5157 _def_faad='#undef HAVE_FAAD'
5158 _nocodecmodules="faad2 $_nocodecmodules"
5159 _ld_faad=
5162 echocheck "MacOS X SHLB (shared lib) support"
5163 if test "$_macshlb" = auto ; then
5164 if test "$_macosx" = yes ; then
5165 _macshlb=yes
5166 else
5167 _macshlb=no
5170 echores "$_macshlb"
5171 if test "$_macshlb" = yes ; then
5172 _def_macshlb='#define USE_MACSHLB 1'
5173 else
5174 _def_macshlb='#undef USE_MACSHLB'
5177 if test "$_win32" = auto ; then
5178 if x86 ; then
5179 qnx && _win32=no
5180 else
5181 _win32=no # x86 arch only
5185 if test "$_win32" != no ; then
5186 if test -z "$_win32libdir" ; then
5187 for I in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/win32 /usr/lib/win32 ; do
5188 if test -d "$I" ; then
5189 _win32libdir="$I"
5190 break;
5192 done
5196 echocheck "Win32 codec DLL support"
5197 if test "$_win32" = auto ; then
5198 _win32=no
5199 test -n "$_win32libdir" && _win32=yes
5201 if test "$_win32" = yes ; then
5202 _def_win32='#define USE_WIN32DLL 1'
5203 echores "yes (using $_win32libdir)"
5204 else
5205 _def_win32='#undef USE_WIN32DLL'
5206 _nocodecmodules="win32 $_nocodecmodules"
5207 _dshow=no
5208 echores "no"
5211 if test "$_win32" != no ; then
5212 _def_win32_loader='#undef WIN32_LOADER'
5213 echocheck "Win32 loader support"
5214 _ld_win32='loader/libloader.a'
5215 _dep_win32='loader/libloader.a'
5216 _codecmodules="win32 $_codecmodules"
5217 if openbsd ; then
5218 x86 && _ld_win32="$_ld_win32 -li386"
5220 if not win32 ; then
5221 _def_win32_loader='#define WIN32_LOADER 1'
5222 echores "yes"
5223 else
5224 _ld_win32libs="$_ld_win32libs -ladvapi32 -lole32"
5225 echores "no (using native windows)"
5229 echocheck "DirectShow"
5230 if false ; then
5232 if test "$_dshow" != no ; then
5233 _dshow=no
5234 # check if compiler supports C++ and C++-libs are installed correctly
5235 cat > "$TMPCPP" << EOF
5236 #include <string>
5237 class myclass {
5238 private: int ret;
5239 public: int myreturn(void);
5241 int myclass::myreturn(void) { ret = 0; return ret ; }
5242 int main(void) { myclass myobject; return myobject.myreturn(); }
5244 echo "------------------------------------------------" >> "$TMPLOG"
5245 cat "$TMPCPP" >> "$TMPLOG"
5246 if ( $_cc "$TMPCPP" -o "$TMPO" && "$TMPO" ) >> "$TMPLOG" 2>&1 ; then
5247 _dshow=yes
5248 echores "yes (C++ is ok)"
5249 else
5250 echores "no"
5251 cat << EOF
5253 Your C++ runtime environment is broken.
5255 Hints: Does $_cc support C++? Do you have you a C++ compiler installed?
5256 Are the C++ libraries correctly installed?
5257 Check for libstdc++ and in (/etc/)ld.so.conf.
5259 If you do not need DirectShow support, you can also use:
5260 ./configure --disable-dshow <your-normal-configure-options>
5261 to disable building the C++ based DirectShow code.
5264 die "$_cc's C++ is broken"
5270 echores "$_dshow"
5272 if test "$_dshow" = yes ; then
5273 _def_dshow='#define USE_DIRECTSHOW 1'
5274 _ld_dshow='loader/dshow/libDS_Filter.a loader/dmo/libDMO_Filter.a'
5275 _dep_dshow='loader/dshow/libDS_Filter.a loader/dmo/libDMO_Filter.a'
5276 _codecmodules="dshow/dmo $_codecmodules"
5277 else
5278 _def_dshow='#undef USE_DIRECTSHOW'
5279 _nocodecmodules="dshow/dmo $_nocodecmodules"
5283 echocheck "XAnim DLL"
5284 if test "$_xanim" = auto ; then
5285 _xanim=no
5286 if test "$_dl" = yes ; then
5287 if test -z "$_xanimlibdir" ; then
5288 for I in "$_libdir/codecs" /usr/local/lib/xanim/mods /usr/lib/xanim/mods /usr/lib/xanim $XANIM_MOD_DIR ; do
5289 if test -d "$I" ; then
5290 _xanimlibdir="$I"
5291 break;
5293 done
5295 test "$_xanimlibdir" && _xanim=yes
5296 if test "$_xanim" = yes ; then
5297 echores "yes (using $_xanimlibdir)"
5298 else
5299 echores "no (no suitable directory found - see DOCS/HTML/$_doc_lang/codecs.html)"
5301 else
5302 echores "no (dynamic loader support needed)"
5304 else
5305 echores "$_xanim (using $_xanimlibdir)"
5307 if test "$_xanim" = yes ; then
5308 _def_xanim='#define USE_XANIM 1'
5309 _def_xanim_path="#define XACODEC_PATH \"$_xanimlibdir\""
5310 _codecmodules="xanim $_codecmodules"
5311 else
5312 _def_xanim='#undef USE_XANIM'
5313 _def_xanim_path='#undef XACODEC_PATH'
5314 _nocodecmodules="xanim $_nocodecmodules"
5317 echocheck "RealPlayer DLL"
5318 if test "$_real" = auto ; then
5319 _real=no
5320 if test "$_dl" = yes || test "$_win32" = yes || test "$_macshlb" = yes ; then
5321 # if test "$_dl" = yes ; then
5322 if linux || freebsd || netbsd || win32 || darwin ; then
5323 _real=yes
5324 else
5325 echores "no (tested only on Linux/FreeBSD/NetBSD/Cygwin/MinGW/Darwin)"
5327 if test "$_real" = yes ; then
5328 if test -z "$_reallibdir" ; then
5329 for I in "$_libdir/codecs" "$_libdir/real" /usr/lib/real \
5330 /usr/lib/RealPlayer{9,8,}/Codecs /usr/local/RealPlayer{9,8,}/Codecs \
5331 /usr/local/lib/RealPlayer{9,8,}/Codecs /opt/RealPlayer{9,8,}/{Real/,}Codecs \
5332 {~,}/Applications/RealOne\ Player.app/Contents/MacOS/Library/Codecs \
5333 "$_win32libdir"; do
5334 if test -d "$I" ; then
5335 _reallibdir="$I"
5336 break
5338 done
5340 test "$_reallibdir" || _real=no
5341 if test "$_real" = yes ; then
5342 echores "yes (using $_reallibdir)"
5343 else
5344 echores "no (no suitable directory found - see DOCS/HTML/$_doc_lang/codecs.html)"
5347 else
5348 echores "no (dynamic loader support needed)"
5350 else
5351 echores "$_real (using $_reallibdir)"
5353 if test "$_real" = yes ; then
5354 _def_real='#define USE_REALCODECS 1'
5355 _def_real_path="#define REALCODEC_PATH \"$_reallibdir\""
5356 _codecmodules="real $_codecmodules"
5357 else
5358 _def_real='#undef USE_REALCODECS'
5359 _def_real_path="#undef REALCODEC_PATH"
5360 _nocodecmodules="real $_nocodecmodules"
5364 if test -z "$_livelibdir" ; then
5365 for I in $_libdir/live /usr/lib/live /usr/local/live /usr/local/lib/live; do
5366 if test -d "$I" ; then
5367 _livelibdir="$I"
5368 break;
5370 done
5373 echocheck "LIVE.COM Streaming Media libraries"
5374 if test "$_live" = auto && test "$_network" = yes ; then
5375 _TMPC=$TMPC
5376 TMPC=$TMPCPP
5377 cat >$TMPC <<EOF
5378 #include <liveMedia.hh>
5379 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1090195200)
5380 #error Please upgrade to version 2004.07.19 or later of the "LIVE.COM Streaming Media" libraries - available from <www.live.com/liveMedia/>
5381 #endif
5382 int main(void) {}
5384 if cc_check -I$_livelibdir/liveMedia/include/ -I$_livelibdir/UsageEnvironment/include -I$_livelibdir/groupsock/include; then
5385 _live=yes
5386 else
5387 _live=no
5389 TMPC=$_TMPC
5391 if test "$_live" = yes && test "$_network" = yes ; then
5392 echores "yes (using $_livelibdir)"
5393 _def_live='#define STREAMING_LIVE_DOT_COM 1'
5394 _live_libs_def="# LIVE.COM Streaming Media libraries:
5395 LIVE_LIB_DIR = $_livelibdir
5396 LIVE_LIBS = \$(LIVE_LIB_DIR)/liveMedia/libliveMedia.a
5397 LIVE_LIBS += \$(LIVE_LIB_DIR)/groupsock/libgroupsock.a
5398 LIVE_LIBS += \$(LIVE_LIB_DIR)/UsageEnvironment/libUsageEnvironment.a
5399 LIVE_LIBS += \$(LIVE_LIB_DIR)/BasicUsageEnvironment/libBasicUsageEnvironment.a
5400 LIVE_LIBS += -lstdc++"
5401 _ld_live='$(LIVE_LIBS)'
5402 _inputmodules="live.com $_inputmodules"
5403 else
5404 echores "no"
5405 _def_live='#undef STREAMING_LIVE_DOT_COM'
5406 _noinputmodules="live.com $_noinputmodules"
5410 echocheck "FFmpeg libavcodec (static)"
5411 if test "$_libavcodec" = auto ; then
5412 # Note: static linking is preferred to dynamic linking
5413 _libavcodec=no
5414 if test -d libavcodec && test -f libavcodec/utils.c ; then
5415 if grep avcodec_find_encoder_by_name libavcodec/utils.c > /dev/null 2>&1 ; then
5416 _libavcodec=yes
5417 echores "yes"
5418 else
5419 echores "no (old ffmpeg version, use CVS !)"
5421 else
5422 echores "no (see DOCS/HTML/$_doc_lang/codecs.html)"
5424 else
5425 echores "$_libavcodec"
5428 echocheck "FFmpeg libavformat (static)"
5429 if test "$_libavformat" = auto ; then
5430 # Note: static linking is preferred to dynamic linking
5431 _libavformat=no
5432 if test -d libavformat && test -f libavformat/utils.c ; then
5433 _libavformat=yes
5434 echores "yes"
5435 else
5436 echores "no"
5438 else
5439 echores "$_libavformat"
5442 _def_haveffpostprocess='no'
5443 if test -d libavcodec && test -f libavcodec/libpostproc/postprocess.h ; then
5444 _def_haveffpostprocess='yes'
5447 if test "$_libavcodec" != yes ; then
5448 echocheck "FFmpeg libavcodec (dynamic)"
5449 if test "$_libavcodecso" = auto ; then
5450 _libavcodecso=no
5451 # FIXME : check for avcodec_find_encoder_by_name() for mencoder
5452 cat > $TMPC << EOF
5453 #define FF_POSTPROCESS 1
5454 #include <ffmpeg/avcodec.h>
5455 int main(void) {
5456 avcodec_find_encoder_by_name("");
5457 return 0;
5460 if cc_check -lavcodec $_ld_lm ; then
5461 _libavcodecso=yes
5462 echores "yes (using libavcodec.so)"
5463 else
5464 echores "no (libavcodec.so is broken/obsolete)"
5466 else
5467 echores "$_libavcodecso"
5471 _def_libavcodec='#undef USE_LIBAVCODEC'
5472 _def_libavcodecso='#undef USE_LIBAVCODEC_SO'
5473 _def_ffpostprocess='#undef FF_POSTPROCESS'
5474 if test "$_libavcodec" = yes ; then
5475 _def_libavcodec='#define USE_LIBAVCODEC 1'
5476 _ld_libavcodec='libavcodec/libavcodec.a'
5477 _dep_libavcodec='libavcodec/libavcodec.a'
5478 _def_ffpostprocess='#define FF_POSTPROCESS 1'
5479 _codecmodules="libavcodec $_codecmodules"
5480 elif test "$_libavcodecso" = yes ; then
5481 _def_libavcodec='#define USE_LIBAVCODEC 1'
5482 _def_libavcodecso='#define USE_LIBAVCODEC_SO 1'
5483 _ld_libavcodec='-lavcodec'
5484 _codecmodules="libavcodec.so $_codecmodules"
5485 else
5486 _nocodecmodules="libavcodec $_nocodecmodules"
5489 _def_libavformat='#undef USE_LIBAVFORMAT'
5490 _def_libavformat_win32='#undef CONFIG_WIN32'
5491 if test "$_libavformat" = yes ; then
5492 _def_libavformat='#define USE_LIBAVFORMAT 1'
5493 _ld_libavformat='libavformat/libavformat.a'
5494 _dep_libavformat='libavformat/libavformat.a'
5495 if win32 ; then
5496 _def_libavformat_win32='#define CONFIG_WIN32 1'
5500 echocheck "libdv-0.9.5+"
5501 if test "$_libdv" = auto ; then
5502 _libdv=no
5503 cat > $TMPC <<EOF
5504 #include <libdv/dv.h>
5505 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
5507 cc_check -ldv $_ld_lm && _libdv=yes
5509 if test "$_libdv" = yes ; then
5510 _def_libdv='#define HAVE_LIBDV095 1'
5511 _ld_libdv="-ldv"
5512 _codecmodules="libdv $_codecmodules"
5513 else
5514 _def_libdv='#undef HAVE_LIBDV095'
5515 _nocodecmodules="libdv $_nocodecmodules"
5517 echores "$_libdv"
5519 echocheck "zr"
5520 if test "$_zr" = auto ; then
5521 #36067's seem to identify themselves as 36057PQC's, so the line
5522 #below should work for 36067's and 36057's.
5523 if grep -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci > /dev/null 2>&1; then
5524 _zr=yes
5525 else
5526 _zr=no
5529 if test "$_zr" = yes ; then
5530 if test "$_libavcodec" = yes ; then
5531 _def_zr='#define HAVE_ZR 1'
5532 _vosrc="$_vosrc vo_zr2.c vo_zr.c jpeg_enc.c"
5533 _vomodules="zr zr2 $_vomodules"
5534 echores "$_zr"
5535 else
5536 echores "libavcodec (static) is required by zr, sorry"
5537 _novomodules="zr $_novomodules"
5538 _def_zr='#undef HAVE_ZR'
5540 else
5541 _def_zr='#undef HAVE_ZR'
5542 _novomodules="zr zr2 $_novomodules"
5543 echores "$_zr"
5546 echocheck "bl"
5547 if test "$_bl" = yes ; then
5548 _def_bl='#define HAVE_BL 1'
5549 _vosrc="$_vosrc vo_bl.c"
5550 _vomodules="bl $_vomodules"
5551 else
5552 _def_bl='#undef HAVE_BL'
5553 _novomodules="bl $_novomodules"
5555 echores "$_bl"
5557 echocheck "XviD"
5558 cat > $TMPC << EOF
5559 #include <xvid.h>
5560 int main(void) { xvid_init(0, 0, 0, 0); return 0; }
5562 _ld_xvid="$_ld_xvid -lxvidcore $_ld_lm"
5563 if test "$_xvid" != no && cc_check $_inc_xvid $_ld_xvid ; then
5564 _xvid=yes
5565 _def_xvid3='#define HAVE_XVID3 1'
5566 _def_xvid4='#undef HAVE_XVID4'
5567 _codecmodules="xvid $_codecmodules"
5568 else
5569 cat > $TMPC << EOF
5570 #include <xvid.h>
5571 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
5573 if test "$_xvid" != no && cc_check $_inc_xvid $_ld_xvid ; then
5574 _xvid=yes
5575 _def_xvid3='#undef HAVE_XVID3'
5576 _def_xvid4='#define HAVE_XVID4 1'
5577 _codecmodules="xvid $_codecmodules"
5578 else
5579 _xvid=no
5580 _ld_xvid=''
5581 _def_xvid3='#undef HAVE_XVID3'
5582 _def_xvid4='#undef HAVE_XVID4'
5583 _nocodecmodules="xvid $_nocodecmodules"
5586 echores "$_xvid"
5588 _xvidcompat=no
5589 _def_decore_xvid='#undef DECORE_XVID'
5590 _def_encore_xvid='#undef ENCORE_XVID'
5591 if test "$_xvid" = yes ; then
5592 echocheck "DivX4 compatibility in XviD"
5593 cat > $TMPC << EOF
5594 #include <divx4.h>
5595 int main(void) { (void) decore(0, 0, 0, 0); return 0; }
5597 cc_check $_ld_lm "$_ld_xvid" && _xvidcompat=yes
5598 echores "$_xvidcompat"
5601 echocheck "x264"
5602 cat > $TMPC << EOF
5603 #include <stdint.h>
5604 #include <stdarg.h>
5605 #include <x264.h>
5606 int main(void) { x264_encoder_open((void*)0); return 0; }
5608 _ld_x264="$_ld_x264 -lx264 $_ld_lm"
5609 if test "$_x264" != no && cc_check $_inc_x264 $_ld_x264 ; then
5610 _x264=yes
5611 _def_x264='#define HAVE_X264 1'
5612 _codecmodules="x264 $_codecmodules"
5613 else
5614 _x264=no
5615 _ld_x264=''
5616 _def_x264='#undef HAVE_X264'
5617 _nocodecmodules="x264 $_nocodecmodules"
5619 echores "$_x264"
5621 echocheck "DivX4linux/DivX5linux/OpenDivX decore"
5622 # DivX5: DEC_OPT_MEMORY_REQS - DivX4: DEC_OPT_FRAME_311
5623 cat > $TMPC << EOF
5624 #include <decore.h>
5625 int main(void) { (void) decore(0, 0, 0, 0); return DEC_OPT_FRAME_311; }
5627 if test "$_divx4linux" != no && cc_check $_ld_lm -ldivxdecore ; then
5628 _opendivx=no
5629 _ld_decore='-ldivxdecore'
5630 _def_decore='#define NEW_DECORE 1'
5631 _def_divx='#define USE_DIVX'
5632 _def_divx5='#undef DECORE_DIVX5'
5633 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
5634 _codecmodules="divx4linux $_codecmodules"
5635 echores "DivX4linux (with libdivxdecore.so)"
5636 else
5637 # if test "$_divx4linux" != no ; then
5638 # DivX5 check
5639 # OdivxPP disabled because of:
5640 # ld: Warning: type of symbol `dering' changed from 1 to 2 in opendivx/postprocess.o
5641 cat > $TMPC << EOF
5642 #include <decore.h>
5643 int main(void) { (void) decore(0, 0, 0, 0); return DEC_OPT_INIT; }
5645 if test "$_divx4linux" != no && cc_check $_ld_lm -ldivxdecore ; then
5646 _opendivx=no
5647 # _ld_decore='-ldivxdecore opendivx/postprocess.o'
5648 _ld_decore='-ldivxdecore'
5649 _def_decore='#define NEW_DECORE 1'
5650 _def_divx='#define USE_DIVX'
5651 _def_divx5='#define DECORE_DIVX5 1'
5652 # _def_odivx_postprocess='#define HAVE_ODIVX_POSTPROCESS 1'
5653 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
5654 _codecmodules="divx5linux $_codecmodules"
5655 _nocodecmodules="divx4linux $_nocodecmodules"
5656 echores "DivX5linux (with libdivxdecore.so)"
5657 elif test "$_opendivx" != no ; then
5658 _opendivx=yes
5659 _ld_decore='opendivx/libdecore.a'
5660 _def_decore='#undef NEW_DECORE'
5661 _def_divx='#define USE_DIVX'
5662 _def_divx5='#undef DECORE_DIVX5'
5663 _def_odivx_postprocess='#define HAVE_ODIVX_POSTPROCESS 1'
5664 _codecmodules="opendivx $_codecmodules"
5665 _nocodecmodules="divx5linux $_nocodecmodules"
5666 echores "OpenDivX"
5667 elif test "$_xvidcompat" = yes ; then
5668 _opendivx=no
5669 _ld_decore=''
5670 _def_decore='#define NEW_DECORE 1'
5671 _def_divx='#define USE_DIVX 1'
5672 _def_divx5='#undef DECORE_DIVX5'
5673 _def_decore_xvid='#define DECORE_XVID 1'
5674 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
5675 _nocodecmodules="opendivx divx5linux divx4linux $_nocodecmodules"
5676 echores "XviD compat."
5677 else
5678 _opendivx=no
5679 _ld_decore=''
5680 _def_decore='#undef NEW_DECORE'
5681 _def_divx='#undef USE_DIVX'
5682 _def_divx5='#undef DECORE_DIVX5'
5683 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
5684 _nocodecmodules="opendivx $_nocodecmodules"
5685 echores "no"
5686 fi # DivX5 check
5690 # mencoder requires (optional) those libs: libmp3lame and divx4linux encore
5691 if test "$_mencoder" != no ; then
5693 echocheck "libmp3lame (for mencoder)"
5694 _mp3lame=no
5695 cat > $TMPC <<EOF
5696 #include <lame/lame.h>
5697 int main(void) { lame_version_t lv; (void) lame_init(); get_lame_version_numerical(&lv); printf("%d%d\n",lv.major,lv.minor); return 0; }
5699 # Note: libmp3lame usually depends on vorbis
5700 cc_check -lmp3lame $_ld_vorbis $_ld_lm && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _mp3lame=yes
5701 if test "$_mp3lame" = yes ; then
5702 _def_mp3lame="#define HAVE_MP3LAME `$TMPO`"
5703 _def_cfg_mp3lame="#define CONFIG_MP3LAME `$TMPO`"
5704 _ld_mp3lame="-lmp3lame $_ld_vorbis"
5705 else
5706 _def_mp3lame='#undef HAVE_MP3LAME'
5707 _def_cfg_mp3lame='#undef CONFIG_MP3LAME'
5709 echores "$_mp3lame"
5712 echocheck "DivX4linux encore (for mencoder)"
5713 cat > $TMPC << EOF
5714 #include <encore2.h>
5715 int main(void) { (void) encore(0, 0, 0, 0); return 0; }
5717 if test "$_divx4linux" != no && cc_check -ldivxencore $_ld_lm ; then
5718 _def_encore='#define HAVE_DIVX4ENCORE 1'
5719 _ld_encore='-ldivxencore'
5720 echores "DivX4linux (with libdivxencore.so)"
5721 elif test "$_xvidcompat" = yes ; then
5722 _def_encore='#define HAVE_DIVX4ENCORE 1'
5723 _ld_encore=''
5724 _def_encore_xvid='#define ENCORE_XVID 1'
5725 echores "XviD compat."
5726 else
5727 _def_encore='#undef HAVE_DIVX4ENCORE'
5728 echores "no"
5733 echocheck "mencoder"
5734 _mencoder_flag='#undef HAVE_MENCODER'
5735 if test "$_mencoder" = yes ; then
5736 _mencoder_flag='#define HAVE_MENCODER'
5738 echores "$_mencoder"
5740 echocheck "fastmemcpy"
5741 # fastmemcpy check is done earlier with tests of CPU & binutils features
5742 if test "$_fastmemcpy" = yes ; then
5743 _def_fastmemcpy='#define USE_FASTMEMCPY 1'
5744 else
5745 _def_fastmemcpy='#undef USE_FASTMEMCPY'
5747 echores "$_fastmemcpy"
5749 echocheck "UniquE RAR File Library"
5750 if test "$_unrarlib" = yes ; then
5751 _def_unrarlib='#define USE_UNRARLIB 1'
5752 else
5753 _def_unrarlib='#undef USE_UNRARLIB'
5755 echores "$_unrarlib"
5757 echocheck "TV interface"
5758 if test "$_tv" = yes ; then
5759 _def_tv='#define USE_TV 1'
5760 _inputmodules="tv $_inputmodules"
5761 else
5762 _noinputmodules="tv $_noinputmodules"
5763 _def_tv='#undef USE_TV'
5765 echores "$_tv"
5767 echocheck "EDL support"
5768 if test "$_edl" = yes ; then
5769 _def_edl='#define USE_EDL'
5770 _inputmodules="edl $_inputmodules"
5771 else
5772 _noinputmodules="edl $_noinputmodules"
5773 _def_edl='#undef USE_EDL'
5775 echores "$_edl"
5777 echocheck "*BSD BrookTree 848 TV interface"
5778 if test "$_tv_bsdbt848" = auto ; then
5779 _tv_bsdbt848=no
5780 if test "$_tv" = yes ; then
5781 cat > $TMPC <<EOF
5782 #include <sys/types.h>
5783 #if defined(__NetBSD__)
5784 #include <dev/ic/bt8xx.h>
5785 #else
5786 #include <machine/ioctl_bt848.h>
5787 #endif
5788 int main(void) { return 0; }
5790 cc_check && _tv_bsdbt848=yes
5793 if test "$_tv_bsdbt848" = yes ; then
5794 _def_tv_bsdbt848='#define HAVE_TV_BSDBT848 1'
5795 _inputmodules="tv-bsdbt848 $_inputmodules"
5796 else
5797 _def_tv_bsdbt848='#undef HAVE_TV_BSDBT848'
5798 _noinputmodules="tv-bsdbt848 $_noinputmodules"
5800 echores "$_tv_bsdbt848"
5802 echocheck "Video 4 Linux TV interface"
5803 if test "$_tv_v4l" = auto ; then
5804 _tv_v4l=no
5805 if test "$_tv" = yes && linux ; then
5806 for I in /dev/video /dev/video? ; do
5807 if test -c $I ; then
5808 cat > $TMPC <<EOF
5809 #include <stdlib.h>
5810 #include <linux/videodev.h>
5811 int main(void) { return 0; }
5813 cc_check && _tv_v4l=yes
5814 break
5816 done
5819 if test "$_tv_v4l" = yes ; then
5820 _def_tv_v4l='#define HAVE_TV_V4L 1'
5821 _inputmodules="tv-v4l $_inputmodules"
5822 else
5823 _noinputmodules="tv-v4l $_noinputmodules"
5824 _def_tv_v4l='#undef HAVE_TV_V4L'
5826 echores "$_tv_v4l"
5829 echocheck "Video 4 Linux 2 TV interface"
5830 if test "$_tv_v4l2" = auto ; then
5831 _tv_v4l2=no
5832 if test "$_tv" = yes && linux ; then
5833 for I in /dev/video /dev/video? ; do
5834 if test -c $I ; then
5835 _tv_v4l2=yes
5836 break
5838 done
5841 if test "$_tv_v4l2" = yes ; then
5842 _def_tv_v4l2='#define HAVE_TV_V4L2 1'
5843 _inputmodules="tv-v4l2 $_inputmodules"
5844 else
5845 _noinputmodules="tv-v4l2 $_noinputmodules"
5846 _def_tv_v4l2='#undef HAVE_TV_V4L2'
5848 echores "$_tv_v4l2"
5851 echocheck "audio select()"
5852 if test "$_select" = no ; then
5853 _def_select='#undef HAVE_AUDIO_SELECT'
5854 elif test "$_select" = yes ; then
5855 _def_select='#define HAVE_AUDIO_SELECT 1'
5857 echores "$_select"
5860 echocheck "network"
5861 # FIXME network check
5862 if test "$_network" != no ; then
5863 _def_network='#define MPLAYER_NETWORK 1'
5864 _ld_network="$_ld_sock"
5865 _inputmodules="network $_inputmodules"
5866 else
5867 _noinputmodules="network $_noinputmodules"
5868 _def_network='#undef MPLAYER_NETWORK'
5869 _ftp=no
5871 echores "$_network"
5873 echocheck "ftp"
5874 if (not beos) && (test "$_ftp" != no) ; then
5875 _def_ftp='#define HAVE_FTP 1'
5876 _inputmodules="ftp $_inputmodules"
5877 else
5878 _noinputmodules="ftp $_noinputmodules"
5879 _def_ftp='#undef HAVE_FTP'
5881 echores "$_ftp"
5883 # endian testing
5884 echocheck "byte order"
5885 if test "$_big_endian" = auto ; then
5886 cat > $TMPC <<EOF
5887 short asci_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|0)};
5888 int main(){
5889 char* s = (char*)asci_name;
5890 return 0;
5893 if cc_check ; then
5894 if test `grep -l MPlayer $TMPO` ; then
5895 _big_endian=yes
5896 else
5897 _big_endian=no
5899 else
5900 echo -n "failed to autodetect byte order, defaulting to "
5903 if test "$_big_endian" = yes ; then
5904 _byte_order='big-endian'
5905 _def_words_endian='#define WORDS_BIGENDIAN 1'
5906 else
5907 _byte_order='little-endian'
5908 _def_words_endian='#undef WORDS_BIGENDIAN'
5910 echores "$_byte_order"
5912 echocheck "shared postprocess lib"
5913 echores "$_shared_pp"
5915 echocheck "OSD menu"
5916 if test "$_menu" = yes ; then
5917 _def_menu='#define HAVE_MENU 1'
5918 else
5919 _def_menu='#undef HAVE_MENU'
5921 echores "$_menu"
5923 # Check to see if they want QTX codecs enabled
5924 echocheck "QTX codecs"
5925 if test "$_qtx" = auto ; then
5926 _qtx=$_win32
5928 if test "$_qtx" = yes ; then
5929 _def_qtx='#define USE_QTX_CODECS 1'
5930 _codecmodules="qtx $_codecmodules"
5931 else
5932 _def_qtx='#undef USE_QTX_CODECS'
5933 _nocodecmodules="qtx $_nocodecmodules"
5935 echores "$_qtx"
5938 echocheck "Subtitles sorting"
5939 if test "$_sortsub" = yes ; then
5940 _def_sortsub='#define USE_SORTSUB 1'
5941 else
5942 _def_sortsub='#undef USE_SORTSUB'
5944 echores "$_sortsub"
5947 echocheck "XMMS inputplugin support"
5948 if test "$_xmms" = yes ; then
5950 if ( xmms-config --version ) >/dev/null 2>&1 ; then
5951 if test -z "$_xmmsplugindir" ; then
5952 _xmmsplugindir=`xmms-config --input-plugin-dir`
5954 if test -z "$_xmmslibdir" ; then
5955 _xmmslibdir=`xmms-config --exec-prefix`/lib
5957 else
5958 if test -z "$_xmmsplugindir" ; then
5959 _xmmsplugindir=/usr/lib/xmms/Input
5961 if test -z "$_xmmslibdir" ; then
5962 _xmmslibdir=/usr/lib
5966 _def_xmms='#define HAVE_XMMS 1'
5967 if darwin ; then
5968 _xmms_lib="${_xmmslibdir}/libxmms.dylib"
5969 else
5970 _xmms_lib="${_xmmslibdir}/libxmms.so.1 -export-dynamic"
5972 else
5973 _def_xmms='#undef HAVE_XMMS'
5975 echores "$_xmms"
5977 echocheck "inet6"
5978 if test "$_inet6" = auto ; then
5979 cat > $TMPC << EOF
5980 #include <sys/types.h>
5981 #include <sys/socket.h>
5982 int main(void) { socket(AF_INET6, SOCK_STREAM, AF_INET6); }
5984 _inet6=no
5985 if cc_check ; then
5986 _inet6=yes
5989 if test "$_inet6" = yes ; then
5990 _def_inet6='#define HAVE_AF_INET6 1'
5991 else
5992 _def_inet6='#undef HAVE_AF_INET6'
5994 echores "$_inet6"
5997 echocheck "gethostbyname2"
5998 if test "$_gethostbyname2" = auto ; then
5999 cat > $TMPC << EOF
6000 #include <sys/types.h>
6001 #include <sys/socket.h>
6002 #include <netdb.h>
6003 int main(void) { gethostbyname2("", AF_INET); }
6005 _gethostbyname2=no
6006 if cc_check ; then
6007 _gethostbyname2=yes
6011 if test "$_gethostbyname2" = yes ; then
6012 _def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
6013 else
6014 _def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
6016 echores "$_gethostbyname2"
6018 # --------------- GUI specific tests begin -------------------
6019 echocheck "GUI"
6020 echo "$_gui"
6021 if test "$_gui" = yes ; then
6023 # Required libraries
6024 test "$_png" != yes && die "PNG support required for GUI compilation, please install libpng and libpng-dev packages."
6025 test "$_x11" != yes && die "X11 support required for GUI compilation"
6027 echocheck "XShape extension"
6028 _xshape=no
6029 if test "$_x11" = yes ; then
6030 cat > $TMPC << EOF
6031 #include <X11/Xlib.h>
6032 #include <X11/Xproto.h>
6033 #include <X11/Xutil.h>
6034 #include <X11/extensions/shape.h>
6035 #include <stdlib.h>
6036 int main(void) {
6037 char *name = ":0.0";
6038 Display *wsDisplay;
6039 int exitvar = 0;
6040 int eventbase, errorbase;
6041 if (getenv("DISPLAY"))
6042 name=getenv("DISPLAY");
6043 wsDisplay=XOpenDisplay(name);
6044 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
6045 exitvar=1;
6046 XCloseDisplay(wsDisplay);
6047 return exitvar;
6050 cc_check $_inc_x11 $_ld_x11 && _xshape=yes
6052 if test "$_xshape" = yes ; then
6053 _def_xshape='#define HAVE_XSHAPE 1'
6054 else
6055 die "The GUI requires the X11 extension XShape (which was not found)."
6057 echores "$_xshape"
6060 # Check for GTK:
6061 echocheck "GTK version"
6062 if test -z "$_gtkconfig" ; then
6063 if ( gtk-config --version ) >/dev/null 2>&1 ; then
6064 _gtkconfig="gtk-config"
6065 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
6066 _gtkconfig="gtk12-config"
6067 else
6068 die "The GUI requires GTK devel packages (which were not found)."
6071 _gtk=`$_gtkconfig --version 2>&1`
6072 _inc_gtk=`$_gtkconfig --cflags 2>&1`
6073 _ld_gtk=`$_gtkconfig --libs 2>&1`
6074 echores "$_gtk (using $_gtkconfig)"
6076 # Check for GLIB
6077 echocheck "glib version"
6078 if test -z "$_glibconfig" ; then
6079 if ( glib-config --version ) >/dev/null 2>&1 ; then
6080 _glibconfig="glib-config"
6081 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
6082 _glibconfig="glib12-config"
6083 else
6084 die "The GUI requires GLib devel packages (which were not found)"
6087 _glib=`$_glibconfig --version 2>&1`
6088 _inc_glib=`$_glibconfig --cflags 2>&1`
6089 _ld_glib=`$_glibconfig --libs 2>&1`
6090 echores "$_glib (using $_glibconfig)"
6092 _def_gui='#define HAVE_NEW_GUI 1'
6093 _ld_gui='$(GTKLIB) $(GLIBLIB)'
6095 echo "Creating Gui/config.mak"
6096 cat > Gui/config.mak << EOF
6097 # -------- Generated by configure -----------
6099 GTKINC = $_inc_gtk
6100 GTKLIBS = $_ld_gtk
6101 GLIBINC = $_inc_glib
6102 GLIBLIBS = $_ld_glib
6106 else
6107 _def_gui='#undef HAVE_NEW_GUI'
6109 # --------------- GUI specific tests end -------------------
6113 #############################################################################
6115 # Checking for CFLAGS
6116 _stripbinaries=yes
6117 if test "$_profile" != "" || test "$_debug" != "" ; then
6118 CFLAGS="-W -Wall -O2 $_march $_mcpu $_debug $_profile"
6119 if test "$_cc_major" -ge "3" ; then
6120 CFLAGS=`echo "$CFLAGS" | sed -e 's/\(-Wall\)/\1 -Wno-unused-parameter/'`
6122 _stripbinaries=no
6123 elif test -z "$CFLAGS" ; then
6124 CFLAGS="-O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
6125 # always compile with '-g' if .developer:
6126 if test -f ".developer" ; then
6127 CFLAGS="-g $CFLAGS"
6128 _stripbinaries=no
6130 else
6131 cat <<EOF
6133 MPlayer compilation will use the CFLAGS set by you, but:
6135 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
6137 It is strongly recommended to let MPlayer choose the correct CFLAGS!
6138 To do so, execute 'CFLAGS= ./configure <options>'
6142 if darwin ; then
6143 CFLAGS="$CFLAGS -DSYS_DARWIN"
6144 if [ "$_cc_major" = 3 ] && [ "$_cc_minor" -lt 1 ]; then
6145 CFLAGS="$CFLAGS -no-cpp-precomp"
6148 # libavcodec (from ffmpeg) requires CONFIG_DARWIN to enable AltiVec on Darwin/MacOSX
6149 test "$_altivec" = yes && CFLAGS="$CFLAGS -DCONFIG_DARWIN"
6151 if hpux ; then
6152 # use flag for HPUX missing setenv()
6153 CFLAGS="$CFLAGS -DHPUX"
6155 # Thread support
6156 if linux ; then
6157 CFLAGS="$CFLAGS -D_REENTRANT"
6158 elif bsd ; then
6159 # FIXME bsd needs this so maybe other OS'es
6160 CFLAGS="$CFLAGS -D_THREAD_SAFE"
6162 # 64 bit file offsets?
6163 if test "$_largefiles" = yes || freebsd ; then
6164 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
6165 if test "$_dvdread" = yes ; then
6166 # dvdread support requires this (for off64_t)
6167 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
6171 echocheck "compiler support for -fno-PIC"
6172 if x86; then
6173 cat > $TMPC <<EOF
6174 int main(void) { return 0; }
6176 if cc_check -fno-PIC ; then
6177 CFLAGS="-fno-PIC $CFLAGS"
6178 echores "yes"
6179 else
6180 echores "no"
6182 else
6183 echores "only used for x86"
6186 echocheck "ftello()"
6187 # if we don't have ftello use the osdep/ compatibility module
6188 cat > $TMPC << EOF
6189 #include <stdio.h>
6190 #include <sys/types.h>
6191 int main (void) { ftello(stdin); return 0; }
6193 _ftello=no
6194 cc_check && _ftello=yes
6195 if test "$_ftello" = yes ; then
6196 _def_ftello='#define HAVE_FTELLO 1'
6197 else
6198 _def_ftello='#undef HAVE_FTELLO'
6200 echores "$_ftello"
6202 # Determine OS dependent libs
6203 if cygwin ; then
6204 _def_confwin32='#define WIN32'
6205 #CFLAGS="$CFLAGS -D__CYGWIN__ -D__CYGWIN_USE_BIG_TYPES__"
6206 # stat.st_size with BIG_TYPES is broken (not set) ::atmos
6207 CFLAGS="$CFLAGS -D__CYGWIN__"
6210 if win32 ; then
6211 _confwin32='TARGET_WIN32 = yes'
6212 else
6213 _confwin32='TARGET_WIN32 = no'
6216 # Dynamic linking flags
6217 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
6218 _ld_dl_dynamic=''
6219 bsd && _ld_dl_dynamic='-rdynamic'
6220 if test "$_real" = yes || test "$_xanim" = yes && not win32 && not qnx ; then
6221 _ld_dl_dynamic='-rdynamic'
6224 _ld_arch="$_ld_arch $_ld_pthread $_ld_dl $_ld_dl_dynamic"
6225 bsdos && _ld_arch="$_ld_arch -ldvd"
6226 if netbsd ; then
6227 x86 && _ld_arch="$_ld_arch -li386"
6230 _def_debug='#undef MP_DEBUG'
6231 test "$_debug" != "" && _def_debug='#define MP_DEBUG 1'
6233 _def_linux='#undef TARGET_LINUX'
6234 linux && _def_linux='#define TARGET_LINUX 1'
6236 # TODO cleanup the VIDIX stuff here
6237 _def_vidix='#define CONFIG_VIDIX 1'
6238 test "$_vidix" = no && _def_vidix='#undef CONFIG_VIDIX'
6239 if test "$_vidix" = yes; then
6240 _vosrc="$_vosrc vo_cvidix.c"
6241 _vomodules="cvidix $_vomodules"
6242 else
6243 _novomodules="cvidix $_novomodules"
6245 if test "$_vidix" = yes && (win32); then
6246 _vosrc="$_vosrc vo_winvidix.c"
6247 _vomodules="winvidix $_vomodules"
6248 else
6249 _novomodules="winvidix $_novomodules"
6251 if test "$_vidix" = yes && test "$_x11" = yes; then
6252 _vosrc="$_vosrc vo_xvidix.c"
6253 _vomodules="xvidix $_vomodules"
6254 else
6255 _novomodules="xvidix $_novomodules"
6257 echo Checking for VIDIX ... "$_vidix"
6259 _def_joystick='#undef HAVE_JOYSTICK'
6260 if test "$_joystick" = yes ; then
6261 if linux ; then
6262 # TODO add some check
6263 _def_joystick='#define HAVE_JOYSTICK 1'
6264 else
6265 _joystick="no (unsupported under $system_name)"
6268 echo Checking for joystick ... "$_joystick"
6270 echocheck "lirc"
6271 if test "$_lirc" = auto ; then
6272 _lirc=no
6273 if test -c /dev/lirc -o -c /dev/lirc/0 ; then
6274 cat > $TMPC <<EOF
6275 #include <lirc/lirc_client.h>
6276 int main(void) { return 0; }
6278 cc_check -llirc_client && _lirc=yes
6281 if test "$_lirc" = yes ; then
6282 _def_lirc='#define HAVE_LIRC 1'
6283 _ld_lirc='-llirc_client'
6284 else
6285 _def_lirc='#undef HAVE_LIRC'
6287 echores "$_lirc"
6289 echocheck "lircc"
6290 if test "$_lircc" = auto ; then
6291 _lircc=no
6292 cat > $TMPC <<EOF
6293 #include <lirc/lircc.h>
6294 int main(void) { return 0; }
6296 cc_check -llircc && _lircc=yes
6298 if test "$_lircc" = yes ; then
6299 _def_lircc='#define HAVE_LIRCC 1'
6300 _ld_lircc='-llircc'
6301 else
6302 _def_lircc='#undef HAVE_LIRCC'
6304 echores "$_lircc"
6306 #############################################################################
6307 echo "Creating config.mak"
6308 cat > config.mak << EOF
6309 # -------- Generated by configure -----------
6311 LANG = C
6312 MAN_LANG = $MAN_LANG
6313 TARGET_OS = $system_name
6314 DESTDIR =
6315 prefix = \$(DESTDIR)$_prefix
6316 BINDIR = \$(DESTDIR)$_bindir
6317 DATADIR = \$(DESTDIR)$_datadir
6318 MANDIR = \$(DESTDIR)$_mandir
6319 CONFDIR = \$(DESTDIR)$_confdir
6320 LIBDIR = \$(DESTDIR)$_libdir
6321 #AR = ar
6322 CC = $_cc
6323 HOST_CC = $_host_cc
6324 AWK = $_awk
6325 RANLIB = $_ranlib
6326 INSTALL = $_install
6327 # OPTFLAGS = -O4 $_profile $_debug $_march $_mcpu $_pipe -fomit-frame-pointer -ffast-math
6328 EXTRA_INC = $_inc_extra $_inc_gtk
6329 OPTFLAGS = -I../libvo -I../../libvo $_inc_x11 $CFLAGS \$(EXTRA_INC)
6330 STRIPBINARIES = $_stripbinaries
6332 PRG = $_prg
6333 PRG_MENCODER = $_prg_mencoder
6335 $_live_libs_def
6337 MPLAYER_NETWORK = $_network
6338 STREAMING_LIVE_DOT_COM = $_live
6339 MPLAYER_NETWORK_LIB = $_ld_live $_ld_network
6340 DVBIN = $_dvbin
6341 VIDIX = $_vidix
6342 SHARED_PP = $_shared_pp
6343 CONFIG_PP = yes
6344 CONFIG_RISKY = yes
6345 CONFIG_MP3LAME = $_mp3lame
6346 LIBMENU = $_menu
6347 I18NLIBS = $_i18n_libs
6348 MATROSKA = $_matroska_internal
6350 OPENDIVX = $_opendivx
6352 MP3LIB = $_mp3lib
6353 LIBA52 = $_liba52
6354 LIBMPEG2 = $_libmpeg2
6356 UNRARLIB = $_unrarlib
6357 HAVE_FFPOSTPROCESS = $_def_haveffpostprocess
6358 PNG = $_mkf_png
6359 JPEG = $_mkf_jpg
6360 GIF = $_mkf_gif
6362 EXTRA_LIB = $_ld_extra
6363 Z_LIB = $_ld_static $_ld_zlib
6364 HAVE_MLIB = $_mlib
6365 WIN32_LIB = $_ld_win32libs
6366 STATIC_LIB = $_ld_static
6367 ENCA_LIB = $_ld_enca
6368 HAVE_PTHREADS = $_pthreads
6369 MATH_LIB = $_ld_lm
6371 X11_INC = $_inc_x11
6372 X11DIR = $_ld_x11
6374 HAVE_XVMC_ACCEL = $_xvmc
6376 # for libavcodec:
6377 SRC_PATH=..
6378 LIBPREF=lib
6379 LIBSUF=.a
6380 SLIBPREF=lib
6381 SLIBSUF=.so
6383 # video output
6384 X_LIB = $_ld_gl $_ld_dga $_ld_xv $_ld_xvmc $_ld_vm $_ld_xinerama $_ld_x11 $_ld_sock
6385 GGI_LIB = $_ld_ggi
6386 MLIB_LIB = $_ld_mlib
6387 MLIB_INC = $_inc_mlib
6388 DXR2_INC = $_inc_dxr2
6389 DVB_INC = $_inc_dvb
6390 PNG_LIB = $_ld_png
6391 JPEG_LIB = $_ld_jpg
6392 GIF_LIB = $_ld_gif
6393 SDL_LIB = $_ld_sdl
6394 SVGA_LIB = $_ld_svga
6395 AA_LIB = $_ld_aa
6396 CACA_INC = $_inc_caca
6397 CACA_LIB = $_ld_caca
6399 # audio output
6400 ALSA_LIB = $_ld_alsa
6401 NAS_LIB = $_ld_nas
6402 ARTS_LIB = $_ld_arts
6403 ARTS_INC = $_inc_arts
6404 ESD_LIB = $_ld_esd
6405 ESD_INC = $_inc_esd
6406 JACK_LIB = $_ld_jack
6407 JACK_INC = $_inc_jack
6408 SGIAUDIO_LIB = $_ld_sgiaudio
6410 # input/demuxer/codecs
6411 TERMCAP_LIB = $_ld_termcap
6412 LIRC_LIB = $_ld_lirc
6413 LIRCC_LIB = $_ld_lircc
6414 DVDREAD_LIB = $_ld_dvdread
6415 DVDKIT = $_dvdkit
6416 DVDKIT2 = $_dvdkit2
6417 DVDKIT_SHARED = no
6418 SDL_INC = $_inc_sdl
6419 W32_DEP = $_dep_win32
6420 W32_LIB = $_ld_win32
6421 DS_DEP = $_dep_dshow
6422 DS_LIB = $_ld_dshow
6423 AV_DEP = $_dep_libavcodec $_dep_libavformat
6424 AV_LIB = $_ld_libavcodec $_ld_libavformat
6425 CONFIG_LIBAVFORMAT = $_libavformat
6426 ZORAN = $_zr
6427 FAME = $_fame
6428 FAME_LIB = $_ld_fame
6429 MP1E_DEP = $_dep_mp1e
6430 MP1E_LIB = $_ld_mp1e
6431 ARCH_LIB = $_ld_arch $_ld_iconv
6432 XVID = $_xvid
6433 XVID_INC = $_inc_xvid
6434 XVID_LIB = $_ld_xvid
6435 X264 = $_x264
6436 X264_INC = $_inc_x264
6437 X264_LIB = $_ld_x264
6438 CONFIG_DTS = $_libdts
6439 DTS_INC = $_inc_libdts
6440 DTS_LIB = $_ld_libdts
6441 DECORE_LIB = $_ld_decore $_ld_mp3lame
6442 MENCODER = $_mencoder
6443 ENCORE_LIB = $_ld_encore $_ld_mp3lame
6444 DIRECTFB_INC = $_inc_directfb
6445 DIRECTFB_LIB = $_ld_directfb
6446 CDPARANOIA_INC = $_inc_cdparanoia
6447 CDPARANOIA_LIB = $_ld_cdparanoia
6448 FREETYPE_INC = $_inc_freetype
6449 FREETYPE_LIB = $_ld_freetype
6450 FONTCONFIG_INC = $_inc_fontconfig
6451 FONTCONFIG_LIB = $_ld_fontconfig
6452 FRIBIDI_INC = $_inc_fribidi
6453 FRIBIDI_LIB = $_ld_fribidi
6454 LIBLZO_LIB= $_ld_liblzo
6455 MAD_LIB = $_ld_mad
6456 VORBIS_LIB = $_ld_vorbis $_ld_libdv
6457 THEORA_LIB = $_ld_theora
6458 FAAD_LIB = $_ld_faad
6459 INTERNAL_FAAD = $_faad_internal
6460 SMBSUPPORT_LIB = $_ld_smb
6461 XMMS_PLUGINS = $_xmms
6462 XMMS_LIB = $_xmms_lib
6463 MACOSX = $_macosx
6464 MACOSX_FRAMEWORKS = $_macosx_frameworks
6465 TOOLAME=$_toolame
6466 TOOLAME_EXTRAFLAGS=$_toolame_extraflags
6467 TOOLAME_LIB=$_toolame_lib
6469 # --- Some stuff for autoconfigure ----
6470 $_target_arch
6471 $_confwin32
6472 TARGET_CPU=$iproc
6473 TARGET_MMX = $_mmx
6474 TARGET_MMX2 = $_mmx2
6475 TARGET_3DNOW = $_3dnow
6476 TARGET_3DNOWEX = $_3dnowex
6477 TARGET_SSE = $_sse
6478 TARGET_ALTIVEC = $_altivec
6479 TARGET_VIS = $_vis
6481 # --- GUI stuff ---
6482 GTKLIB = $_ld_static $_ld_gtk
6483 GLIBLIB = $_ld_static $_ld_glib
6484 GTK_LIBS = $_ld_static $_ld_gui
6485 GUI = $_gui
6486 DEBUG = -DDEBUG
6490 #############################################################################
6491 echo "Creating config.h"
6492 cat > config.h << EOF
6493 /* -------- This file has been automatically generated by configure ---------
6494 Note: Any changes in it will be lost when you run configure again. */
6496 /* Protect against multiple inclusion */
6497 #ifndef MPLAYER_CONFIG_H
6498 #define MPLAYER_CONFIG_H 1
6500 /* use GNU internationalization */
6501 $_def_i18n
6503 /* missing mmap function on libc5 systems */
6504 #ifndef MAP_FAILED
6505 # define MAP_FAILED ((void *) -1)
6506 #endif
6508 /* use setlocale() function */
6509 $_def_setlocale
6511 /* Runtime CPU detection */
6512 $_def_runtime_cpudetection
6514 /* Dynamic a/v plugins */
6515 $_def_dynamic_plugins
6517 /* "restrict" keyword */
6518 #define restrict $_def_restrict_keyword
6520 /* attribute(used) as needed by some compilers */
6521 #if (__GNUC__ * 100 + __GNUC_MINOR__ >= 300)
6522 # define attribute_used __attribute__((used))
6523 #else
6524 # define attribute_used
6525 #endif
6527 #define PREFIX "$_prefix"
6529 #define USE_OSD 1
6530 #define USE_SUB 1
6532 /* enable/disable SIGHANDLER */
6533 $_def_sighandler
6535 /* Toggles debugging informations */
6536 $_def_debug
6538 /* Indicates that Ogle's libdvdread is available for DVD playback */
6539 $_def_dvdread
6541 /* Indicates that dvdread is from libmpdvdkit */
6542 $_def_mpdvdkit
6544 /* Additional options for libmpdvdkit*/
6545 $_def_dvd
6546 $_def_cdrom
6547 $_def_cdio
6548 $_def_dvdio
6549 $_def_bsdi_dvd
6550 $_def_dvd_bsd
6551 $_def_dvd_linux
6552 $_dev_dvd_openbsd
6553 $_def_dvd_darwin
6554 $_def_sol_scsi_h
6555 $_def_hpux_scsi_h
6556 $_def_stddef
6558 /* Common data directory (for fonts, etc) */
6559 #define MPLAYER_DATADIR "$_datadir"
6560 #define MPLAYER_CONFDIR "$_confdir"
6561 #define MPLAYER_LIBDIR "$_libdir"
6563 /* Define this to compile stream-caching support, it can be enabled via
6564 -cache <kilobytes> */
6565 #define USE_STREAM_CACHE 1
6567 /* Define to include support for XviD/Divx4Linux/OpenDivx */
6568 $_def_divx
6570 /* Define to use the new XviD/DivX4Linux library instead of open source OpenDivX */
6571 /* You have to change DECORE_LIBS in config.mak, too! */
6572 $_def_decore
6574 /* Define if you are using DivX5Linux Decore library */
6575 $_def_divx5
6577 /* Define if you are using XviD library */
6578 $_def_xvid3
6579 $_def_xvid4
6580 $_def_decore_xvid
6581 $_def_encore_xvid
6583 /* Define if you are using the X.264 library */
6584 $_def_x264
6586 /* Define to include support for libdv-0.9.5 */
6587 $_def_libdv
6589 /* If build mencoder */
6590 $_mencoder_flag
6592 /* Indicates if XviD/Divx4linux encore is available
6593 Note: for mencoder */
6594 $_def_encore
6596 /* Indicates if libmp3lame is available
6597 Note: for mencoder */
6598 $_def_mp3lame
6599 $_def_cfg_mp3lame
6601 /* Define libmp1e for realtime mpeg encoding (for DXR3 and DVB cards) */
6602 $_def_mp1e
6604 /* Define this to enable avg. byte/sec-based AVI sync method by default:
6605 (use -bps or -nobps commandline option for run-time method selection)
6606 -bps gives better sync for vbr mp3 audio, it is now default */
6607 #define AVI_SYNC_BPS 1
6609 /* Undefine this if you do not want to select mono audio (left or right)
6610 with a stereo MPEG layer 2/3 audio stream. The command line option
6611 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
6612 right-only), with 0 being the default.
6614 #define USE_FAKE_MONO 1
6616 /* Undefine this if your sound card driver has no working select().
6617 If you have kernel Oops, player hangups, or just no audio, you should
6618 try to recompile MPlayer with this option disabled! */
6619 $_def_select
6621 /* define this to use iconv(3) function to codepage conversions */
6622 $_def_iconv
6624 /* define this to use nl_langinfo function */
6625 $_def_langinfo
6627 /* define this to use RTC (/dev/rtc) for video timers (LINUX only) */
6628 $_def_rtc
6630 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
6631 #define MAX_OUTBURST 65536
6633 /* set up audio OUTBURST. Do not change this! */
6634 #define OUTBURST 512
6636 /* Define this if your system has the header file for the OSS sound interface */
6637 $_def_sys_soundcard
6639 /* Define this if your system has the header file for the OSS sound interface
6640 * in /usr/include */
6641 $_def_soundcard
6643 /* Define this if your system has the sysinfo header */
6644 $_def_sys_sysinfo
6646 /* Define this if your system has ftello() */
6648 $_def_ftello
6649 #ifndef HAVE_FTELLO
6650 /* Need these for FILE and off_t an config.h is usually before other includes*/
6651 #include <stdio.h>
6652 #include <sys/types.h>
6653 off_t ftello(FILE *);
6654 #endif
6656 /* Define this if your system has the "malloc.h" header file */
6657 $_def_malloc
6659 /* memalign is mapped to malloc if unsupported */
6660 $_def_memalign
6661 #ifndef HAVE_MEMALIGN
6662 # define memalign(a,b) malloc(b)
6663 #endif
6665 /* Define this if your system has the "alloca.h" header file */
6666 $_def_alloca
6668 /* Define this if your system has the "sys/mman.h" header file */
6669 $_def_mman
6671 /* Define this if you have the elf dynamic linker -ldl library */
6672 $_def_dl
6674 /* Define this if you have the kstat kernel statistics library */
6675 $_def_kstat
6677 /* Define this if you have zlib */
6678 $_def_zlib
6679 #ifdef HAVE_ZLIB
6680 #define CONFIG_ZLIB 1
6681 #endif
6683 /* Define this if you have shm support */
6684 $_def_shm
6686 /* Define this if your system has scandir & alphasort */
6687 $_def_scandir
6689 /* Define this if your system has strsep */
6690 $_def_strsep
6692 /* Define this if your system has strlcpy */
6693 $_def_strlcpy
6694 #ifndef HAVE_STRLCPY
6695 unsigned int strlcpy (char *dest, char *src, unsigned int size);
6696 #endif
6698 /* Define this if your system has strlcat */
6699 $_def_strlcat
6700 #ifndef HAVE_STRLCAT
6701 unsigned int strlcat (char *dest, char *src, unsigned int size);
6702 #endif
6704 /* Define this if your system has fseeko */
6705 $_def_fseeko
6706 #ifndef HAVE_FSEEKO
6707 /* Need these for FILE and off_t an config.h is usually before other includes*/
6708 #include <stdio.h>
6709 #include <sys/types.h>
6710 int fseeko(FILE *, off_t, int);
6711 #endif
6713 $_def_localtime_r
6715 /* Define this if your system has vsscanf */
6716 $_def_vsscanf
6718 /* Define this if your system has swab */
6719 $_def_swab
6721 /* Define this if your system has no posix select */
6722 $_def_no_posix_select
6724 /* Define this if your system has gettimeofday */
6725 $_def_gettimeofday
6727 /* Define this if your system has glob */
6728 $_def_glob
6730 /* Define this if your system has pthreads */
6731 $_def_pthreads
6733 /* LIRC (remote control, see www.lirc.org) support: */
6734 $_def_lirc
6737 * LIRCCD (LIRC client daemon)
6738 * See http://www.dolda2000.cjb.net/~fredrik/lirccd/
6740 $_def_lircc
6742 /* DVD navigation support using libdvdnav */
6743 $_def_dvdnav
6744 $_def_dvdnav_version
6746 /* Define this to enable MPEG 1/2 image postprocessing (requires a FAST CPU!) */
6747 #define MPEG12_POSTPROC 1
6749 /* Define this to enable image postprocessing in libavcodec (requires a FAST CPU!) */
6750 $_def_ffpostprocess
6752 /* Define to include support for OpenDivx postprocessing */
6753 $_def_odivx_postprocess
6755 /* Win32 DLL support */
6756 $_def_win32
6757 #define WIN32_PATH "$_win32libdir"
6759 /* DirectShow support */
6760 $_def_dshow
6762 /* Mac OS X specific features */
6763 $_def_macosx
6765 /* Mac OS X SHLB support */
6766 $_def_macshlb
6768 /* Build our Win32-loader */
6769 $_def_win32_loader
6771 /* ffmpeg's libavcodec support (requires libavcodec source) */
6772 $_def_libavcodec
6773 $_def_libavcodecso
6775 /* ffmpeg's libavformat support (requires libavformat source) */
6776 $_def_libavformat
6777 $_def_libavformat_win32
6779 /* risky codecs */
6780 #define CONFIG_RISKY 1
6782 /* Use libavcodec's decoders */
6783 #define CONFIG_DECODERS 1
6784 /* Use libavcodec's encoders */
6785 #define CONFIG_ENCODERS 1
6787 #define CONFIG_MPEGAUDIO_HP 1
6789 /* Use codec libs included in mplayer CVS / source dist: */
6790 $_def_mp3lib
6791 $_def_liba52
6792 $_def_libdts
6793 $_def_libmpeg2
6795 /* Use libfame encoder filter */
6796 $_def_fame
6798 /* XAnim DLL support */
6799 $_def_xanim
6800 /* Default search path */
6801 $_def_xanim_path
6803 /* RealPlayer DLL support */
6804 $_def_real
6805 /* Default search path */
6806 $_def_real_path
6808 /* LIVE.COM Streaming Media library support */
6809 $_def_live
6811 /* Use 3dnow/mmxext/sse/mmx optimized fast memcpy() [maybe buggy... signal 4]*/
6812 $_def_fastmemcpy
6814 /* Use unrarlib for Vobsubs */
6815 $_def_unrarlib
6817 /* gui support, please do not edit this option */
6818 $_def_gui
6820 /* Audio output drivers */
6821 $_def_ossaudio
6822 $_def_ossaudio_devdsp
6823 $_def_ossaudio_devmixer
6824 $_def_alsa5
6825 $_def_alsa9
6826 $_def_alsa1x
6827 $_def_arts
6828 $_def_esd
6829 $_def_esd_latency
6830 $_def_jack
6831 $_def_sys_asoundlib_h
6832 $_def_alsa_asoundlib_h
6833 $_def_sunaudio
6834 $_def_sgiaudio
6835 $_def_win32waveout
6836 $_def_nas
6838 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
6839 #undef FAST_OSD
6840 #undef FAST_OSD_TABLE
6842 /* Enable TV Interface support */
6843 $_def_tv
6845 /* Enable EDL support */
6846 $_def_edl
6848 /* Enable Video 4 Linux TV interface support */
6849 $_def_tv_v4l
6851 /* Enable Video 4 Linux 2 TV interface support */
6852 $_def_tv_v4l2
6854 /* Enable *BSD BrookTree TV interface support */
6855 $_def_tv_bsdbt848
6857 /* Define if your processor stores words with the most significant
6858 byte first (like Motorola and SPARC, unlike Intel and VAX). */
6859 $_def_words_endian
6861 $_def_arch
6863 /* libmpeg2 wants ARCH_PPC and the rest of mplayer use ARCH_POWERPC,
6864 * define ARCH_PPC if ARCH_POWERPC is set to cope with that.
6866 #ifdef ARCH_POWERPC
6867 #define ARCH_PPC 1
6868 #endif
6870 /* the same issue as with ARCH_POWERPC but with ffmpeg/libavcodec */
6871 #ifdef ARCH_ARMV4L
6872 #define ARCH_ARM 1
6873 #endif
6875 /* only gcc3 can compile mvi instructions */
6876 $_def_gcc_mvi_support
6878 /* Define this for Cygwin build for win32 */
6879 $_def_confwin32
6881 /* Define this to any prefered value from 386 up to infinity with step 100 */
6882 #define __CPU__ $iproc
6884 $_mp_wordsize
6886 $_def_linux
6888 $_def_vcd
6890 #ifdef sun
6891 #define DEFAULT_CDROM_DEVICE "/vol/dev/aliases/cdrom0"
6892 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
6893 #elif defined(HPUX)
6894 #define DEFAULT_CDROM_DEVICE "/dev/cdrom"
6895 #define DEFAULT_DVD_DEVICE "/dev/dvd"
6896 #elif defined(WIN32)
6897 #define DEFAULT_CDROM_DEVICE "D:"
6898 #define DEFAULT_DVD_DEVICE "D:"
6899 #elif defined(SYS_DARWIN)
6900 #define DEFAULT_CDROM_DEVICE "/dev/disk1"
6901 #define DEFAULT_DVD_DEVICE "/dev/rdiskN"
6902 #elif defined(__OpenBSD__)
6903 #define DEFAULT_CDROM_DEVICE "/dev/rcd0a"
6904 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
6905 #else
6906 #define DEFAULT_CDROM_DEVICE "/dev/cdrom"
6907 #define DEFAULT_DVD_DEVICE "/dev/dvd"
6908 #endif
6911 /*----------------------------------------------------------------------------
6913 ** NOTE: Instead of modifying these definitions here, use the
6914 ** --enable/--disable options of the ./configure script!
6915 ** See ./configure --help for details.
6917 *---------------------------------------------------------------------------*/
6919 /* C99 lrintf function available */
6920 $_def_lrintf
6922 /* yes, we have inttypes.h */
6923 #define HAVE_INTTYPES_H 1
6925 /* int_fastXY_t emulation */
6926 $_def_fast_inttypes
6928 /* nanosleep support */
6929 $_def_nanosleep
6931 /* SMB support */
6932 $_def_smbsupport
6934 /* termcap flag for getch2.c */
6935 $_def_termcap
6937 /* termios flag for getch2.c */
6938 $_def_termios
6939 $_def_termios_h
6940 $_def_termios_sys_h
6942 /* enable PNG support */
6943 $_def_png
6945 /* enable JPEG support */
6946 $_def_jpg
6948 /* enable GIF support */
6949 $_def_gif
6950 $_def_gif_4
6951 $_def_gif_tvt_hack
6953 /* enable FreeType support */
6954 $_def_freetype
6956 /* enable Fontconfig support */
6957 $_def_fontconfig
6959 /* enable FriBiDi usage */
6960 $_def_fribidi
6962 /* enable ENCA usage */
6963 $_def_enca
6965 /* liblzo support */
6966 $_def_liblzo
6968 /* libmad support */
6969 $_def_mad
6971 /* enable OggVorbis support */
6972 $_def_vorbis
6974 /* enable Tremor as vorbis decoder */
6975 $_def_tremor
6977 /* enable OggTheora support */
6978 $_def_theora
6980 /* enable Matroska support */
6981 $_def_matroska
6983 /* enable FAAD (AAC) support */
6984 $_def_faad
6985 $_def_faad_internal
6986 $_def_faad_version
6988 /* enable network */
6989 $_def_network
6991 /* enable ftp support */
6992 $_def_ftp
6994 /* enable winsock2 instead of Unix functions*/
6995 $_def_winsock2
6997 /* define this to use inet_aton() instead of inet_pton() */
6998 $_def_use_aton
7000 /* enables / disables cdparanoia support */
7001 $_def_cdparanoia
7003 /* enables / disables VIDIX usage */
7004 $_def_vidix
7006 /* enables / disables new input joystick support */
7007 $_def_joystick
7009 /* enables / disables QTX codecs */
7010 $_def_qtx
7012 /* enables / disables osd menu */
7013 $_def_menu
7015 /* enables / disables subtitles sorting */
7016 $_def_sortsub
7018 /* XMMS input plugin support */
7019 $_def_xmms
7020 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
7022 /* enables inet6 support */
7023 $_def_inet6
7025 /* do we have gethostbyname2? */
7026 $_def_gethostbyname2
7028 /* Extension defines */
7029 $_def_3dnow // only define if you have 3DNOW (AMD k6-2, AMD Athlon, iDT WinChip, etc.)
7030 $_def_3dnowex // only define if you have 3DNOWEX (AMD Athlon, etc.)
7031 $_def_mmx // only define if you have MMX (newer x86 chips, not P54C/PPro)
7032 $_def_mmx2 // only define if you have MMX2 (Athlon/PIII/4/CelII)
7033 $_def_sse // only define if you have SSE (Intel Pentium III/4 or Celeron II)
7034 $_def_sse2 // only define if you have SSE2 (Intel Pentium 4)
7035 $_def_altivec // only define if you have Altivec (G4)
7037 $_def_altivec_h // enables usage of altivec.h
7040 $_def_mlib // Sun mediaLib, available only on solaris
7041 $_def_vis // only define if you have VIS ( ultrasparc )
7043 /* libmpeg2 uses a different feature test macro for mediaLib */
7044 #ifdef HAVE_MLIB
7045 #define LIBMPEG2_MLIB 1
7046 #endif
7048 /* libvo options */
7049 #define SCREEN_SIZE_X 1
7050 #define SCREEN_SIZE_Y 1
7051 $_def_x11
7052 $_def_xv
7053 $_def_xvmc
7054 $_def_vm
7055 $_def_xinerama
7056 $_def_gl
7057 $_def_gl_win32
7058 $_def_dga
7059 $_def_dga2
7060 $_def_sdl
7061 /* defined for SDLlib with keyrepeat bugs (before 1.2.1) */
7062 $_def_sdlbuggy
7063 $_def_directx
7064 $_def_ggi
7065 $_def_3dfx
7066 $_def_tdfxfb
7067 $_def_tdfxvid
7068 $_def_directfb
7069 $_def_directfb_version
7070 $_def_zr
7071 $_def_bl
7072 $_def_mga
7073 $_def_xmga
7074 $_def_syncfb
7075 $_def_fbdev
7076 $_def_dxr2
7077 $_def_dxr3
7078 $_def_dvb
7079 $_def_dvb_in
7080 $_def_svga
7081 $_def_vesa
7082 $_def_xdpms
7083 $_def_aa
7084 $_def_caca
7085 $_def_tga
7086 $_def_toolame
7088 /* used by GUI: */
7089 $_def_xshape
7091 #if defined(HAVE_GL) || defined(HAVE_X11) || defined(HAVE_XV)
7092 #define X11_FULLSCREEN 1
7093 #endif
7095 #endif /* MPLAYER_CONFIG_H */
7098 #############################################################################
7100 echo "Creating libvo/config.mak"
7101 _voobj=`echo $_vosrc | sed -e 's/\.c/\.o/g'`
7102 cat > libvo/config.mak << EOF
7103 include ../config.mak
7104 OPTIONAL_SRCS = $_vosrc
7105 OPTIONAL_OBJS = $_voobj
7108 #############################################################################
7110 echo "Creating libao2/config.mak"
7111 _aoobj=`echo $_aosrc | sed -e 's/\.c/\.o/g'`
7112 cat > libao2/config.mak << EOF
7113 include ../config.mak
7114 OPTIONAL_SRCS = $_aosrc
7115 OPTIONAL_OBJS = $_aoobj
7118 #############################################################################
7120 echo "Creating help_mp.h"
7121 cat > help_mp.h << EOF
7123 // WARNING! This is a generated file. Do NOT edit.
7124 // See the help/ subdir for the editable files.
7126 #include "$_mp_help"
7129 if test $_mp_help != "help/help_mp-en.h"; then
7130 echo "Adding untranslated messages to help_mp.h"
7131 echo '// untranslated messages from the english master-file:' >> help_mp.h
7132 help/help_diff.sh $_mp_help <help/help_mp-en.h >> help_mp.h
7135 #############################################################################
7137 cat << EOF
7139 Config files successfully generated by ./configure !
7141 Install prefix: $_prefix
7142 Data directory: $_datadir
7143 Config direct.: $_confdir
7145 Byte order: $_byte_order
7146 Optimizing for: $_optimizing
7148 Languages:
7149 Messages/GUI: $_language
7152 echo -n " Manual pages: $MAN_LANG"
7153 test "$LANGUAGES" = en && echo -n " (no localization selected, use --language=all)"
7154 echo
7156 cat << EOF
7158 Enabled optional drivers:
7159 Input: $_inputmodules
7160 Codecs: $_codecmodules
7161 Audio output: $_aomodules
7162 Video output: $_vomodules
7163 Disabled optional drivers:
7164 Input: $_noinputmodules
7165 Codecs: $_nocodecmodules
7166 Audio output: $_noaomodules
7167 Video output: $_novomodules
7169 'config.h' and 'config.mak' contain your configuration options.
7170 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
7171 compile *** DO NOT REPORT BUGS if you tweak these files ***
7173 'make' will now compile MPlayer and 'make install' will install it.
7174 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
7179 if test "$_mtrr" = yes ; then
7180 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$_doc_lang/devices.html#mtrr)"
7181 echo
7184 if test "$_sdl" = "outdated" ; then
7185 cat <<EOF
7186 You have an outdated version of libSDL installed (older than v1.1.7) and SDL
7187 support has therefore been disabled.
7189 Please upgrade to a more recent version (version 1.1.8 and above are known to
7190 work). You may get this library from: http://www.libsdl.org
7192 You need to rerun ./configure and recompile after updating SDL. If you are
7193 only interested in the libSDL audio drivers, then an older version might work.
7195 Use --enable-sdl to force usage of libSDL.
7200 if x86; then
7201 if test "$_win32" = no ; then
7202 if test "$_win32libdir" ; then
7203 echo "Failed to find a Win32 codecs dir at $_win32libdir!"
7204 else
7205 echo "Failed to find a Win32 codecs directory! (default: /usr/local/lib/codecs/)"
7207 cat << EOF
7208 Create it and copy the DLL files there! You can download the codecs from our
7209 homepage at http://www.mplayerhq.hu/MPlayer/releases/codecs/
7213 else
7214 cat <<EOF
7215 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
7216 operating system ($system_name). You may encounter a few files that cannot
7217 be played due to missing open source video/audio codec support.
7223 cat <<EOF
7225 Check $TMPLOG if you wonder why an autodetection failed (check whether
7226 the development headers/packages are installed).
7228 If you suspect a bug, please read DOCS/HTML/$_doc_lang/bugreports.html.
7232 if test "$_vidix" = no ; then
7233 cat <<EOF
7234 You've disabled VIDIX. Although it would be better to PORT it instead.
7235 Have a look at the documentation for supported cards!
7240 # Last move:
7241 rm -f "$TMPO" "$TMPC" "$TMPS" "$TMPCPP"