Real rstp:// streaming support, ported from xine
[mplayer/greg.git] / configure
blob405b81eb81521f5fa4cec79d7f6352834f86e894
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 "$?" ; }
71 # arch test boolean functions
72 # x86/x86pc is used by QNX
73 x86() {
74 case "$host_arch" in
75 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
76 *) return 1 ;;
77 esac
80 ppc() {
81 case "$host_arch" in
82 ppc) return 0;;
83 *) return 1;;
84 esac
87 # not boolean test: implement the posix shell "!" operator for a
88 # non-posix /bin/sh.
89 # usage: not {command}
90 # returns exit status "success" when the execution of "command"
91 # fails.
92 not() {
93 eval "$@"
94 test $? -ne 0
97 # Use this before starting a check
98 echocheck() {
99 echo "============ Checking for $@ ============" >> "$TMPLOG"
100 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
103 # Use this to echo the results of a check
104 echores() {
105 echo "Result is: $@" >> "$TMPLOG"
106 echo "##########################################" >> "$TMPLOG"
107 echo "" >> "$TMPLOG"
108 echo "$@"
110 #############################################################################
112 # Check how echo works in this /bin/sh
113 case `echo -n` in
114 -n) _echo_n= _echo_c='\c' ;; # SysV echo
115 *) _echo_n='-n ' _echo_c= ;; # BSD echo
116 esac
118 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"`
120 for parm in "$@" ; do
121 if test "$parm" = "--help" || test "$parm" = "-help" || test "$parm" = "-h" ; then
122 cat << EOF
124 Usage: $0 [OPTIONS]...
126 Configuration:
127 -h, --help display this help and exit
129 Installation directories:
130 --prefix=DIR use this prefix for installing mplayer [/usr/local]
131 --bindir=DIR use this prefix for installing mplayer binary
132 [PREFIX/bin]
133 --datadir=DIR use this prefix for installing machine independent
134 data files (fonts, skins) [PREFIX/share/mplayer]
135 --mandir=DIR use this prefix for installing manpages [PREFIX/man]
136 --confdir=DIR use this prefix for installing configuration files
137 [PREFIX/etc/mplayer]
138 --libdir=DIR use this prefix for object code libraries [PREFIX/lib]
140 Optional features:
141 --disable-mencoder disable mencoder (a/v encoder) compilation [enable]
142 --enable-gui enable gmplayer compilation (gtk-1.2 GUI) [disable]
143 --enable-largefiles enable support for files > 2 GBytes [disable]
144 --enable-linux-devfs set default devices to devfs ones [disable]
145 --enable-termcap use termcap database for key codes [autodetect]
146 --disable-iconv do not use iconv(3) function [autodetect]
147 --disable-setlocale disable setlocale using in mplayer [autodetect]
148 --enable-lirc enable LIRC (remote control) support [autodetect]
149 --enable-joystick enable joystick support [disable]
150 --disable-tv disable TV Interface (tv/dvb grabbers) [enable]
151 --disable-tv-v4l disable Video4Linux TV Interface support [autodetect]
152 --disable-tv-bsdbt848 disable BSD BT848 Interface support [autodetect]
153 --disable-edl disable EDL (edit decision list) support [enable]
154 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
155 --disable-streaming disable network streaming support
156 (support for: http/mms/rtp) [enable]
157 --enable-smb enable Samba (SMB) input support [autodetect]
158 --enable-live enable LIVE.COM Streaming Media support [disable]
159 --enable-dvdnav enable dvdnav support [disable]
160 --disable-dvdread Disable libdvdread support [autodetect]
161 --disable-mpdvdkit Disable mpdvdkit/mpdvdkit2 support [autodetect]
162 --disable-css Disable old-style libcss DVD support [autodetect]
163 --disable-cdparanoia Disable cdparanoia support [autodetect]
164 --disable-freetype Disable freetype2 font rendering support [autodetect]
165 --disable-unrarlib Disable Unique RAR File Library [enabled]
166 --disable-new-conf Disable new experimental config parser code [enabled]
167 --enable-menu Enable osd menu support (needs new config) [disabled]
168 --disable-sortsub Disable subtitles sorting [enabled]
169 --enable-fribidi Enable using the FriBiDi libs [disabled]
170 --disable-macosx Disable Mac OS X specific features [autodetect]
171 --disable-inet6 Disable IPv6 support [autodetect]
172 --disable-gethostbyname2
173 gethostbyname() is not provided by the c library [autodetect]
174 Codecs:
175 --enable-gif enable gif support [autodetect]
176 --enable-png enable png input/output support [autodetect]
177 --enable-jpeg enable jpeg input/output support [autodetect]
178 --enable-liblzo enable external liblzo support [autodetect]
179 --disable-win32 disable Win32 DLL support [autodetect]
180 --disable-dshow disable Win32/DirectShow support [autodetect]
181 --disable-qtx-codecs disable Quicktime codecs [autodetect]
182 --disable-xanim disable XAnim DLL support [autodetect]
183 --disable-real disable RealPlayer DLL support [autodetect]
184 --disable-xvid disable XviD codec [autodetect]
185 --disable-divx4linux disable DivX4linux/Divx5linux codec [autodetect]
186 --enable-opendivx enable _old_ OpenDivx codec [disable]
187 --disable-libavcodec disable libavcodec [autodetect]
188 --enable-libfame enable libfame realtime encoder [autodetect]
189 --enable-vorbis build with OggVorbis support [autodetect]
190 --enable-tremor build with integer-only OggVorbis support [disabled]
191 --enable-faad build with FAAD2 (MP4/AAC) support [autodetect]
192 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
193 --disable-mad disable libmad (mpeg audio) support [autodetect]
194 --enable-xmms build with XMMS inputplugin support [disabled]
196 Video output:
197 --disable-vidix disable VIDIX stuff [enable on x86 *nix]
198 --enable-gl build with OpenGL render support [autodetect]
199 --enable-dga[=n] build with DGA [n in {1, 2} ] support [autodetect]
200 --enable-vesa build with VESA support [autodetect]
201 --enable-svga build with SVGAlib support [autodetect]
202 --enable-sdl build with SDL render support [autodetect]
203 --enable-aa build with AAlib render support [autodetect]
204 --enable-ggi build with GGI render support [autodetect]
205 --enable-directx build with Directx support [autodetect]
206 --enable-dxr2 build with DXR2 render support [autodetect]
207 --enable-dxr3 build with DXR3/H+ render support [autodetect]
208 --enable-dvb build with support for output via DVB-Card [autodetect]
209 --enable-mga build with mga_vid (for Matrox G200/G4x0/G550) support
210 (check for /dev/mga_vid) [autodetect]
211 --enable-xmga build with mga_vid X Window support
212 (check for X & /dev/mga_vid) [autodetect]
213 --enable-xv build with Xv render support for X 4.x [autodetect]
214 --enable-vm build with XF86VidMode support for X11 [autodetect]
215 --enable-xinerama build with Xinerama support for X11 [autodetect]
216 --enable-x11 build with X11 render support [autodetect]
217 --enable-fbdev build with FBDev render support [autodetect]
218 --enable-fbdev=nocopy yuv12 converts directly into framebuffer
219 --enable-mlib build with MLIB support (Solaris only) [autodetect]
220 --enable-3dfx build with obsolete /dev/3dfx support [disable]
221 --enable-tdfxfb build with tdfxfb (Voodoo 3/banshee) support [disable]
222 --enable-directfb build with DirectFB support [autodetect]
223 --enable-zr build with ZR360[56]7/ZR36060 support [autodetect]
224 --enable-bl build with Blinkenlights support [disable]
225 --enable-tdfxvid build with tdfx vid support [disable]
227 Audio output:
228 --disable-ossaudio disable OSS sound support [autodetect]
229 --disable-arts disable aRts sound support [autodetect]
230 --disable-esd disable esd sound support [autodetect]
231 --disable-alsa disable alsa sound support [autodetect]
232 --disable-sunaudio disable Sun sound support [autodetect]
233 --disable-nas disable NAS sound support [autodetect]
234 --disable-win32waveout disable Windows waveout sound support [autodetect]
235 --disable-select disable using select() on audio device [enable]
237 Miscellaneous options:
238 --enable-runtime-cpudetection Enable runtime CPU detection [disable]
239 --cc=COMPILER use this C compiler to build MPlayer [gcc]
240 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
241 --enable-static build a statically linked binary. Set further linking
242 options with --enable-static="-lslang -lncurses"
243 --language=list a white space or comma separated list of languages
244 for translated man pages, the first language is the
245 primary and therefore used for translated messages
246 and GUI (also the environment variable \$LINGUAS is
247 honored) [en]
248 (Available: $LANGUAGES all)
249 --enable-shared-pp install & use shared postprocessing lib
250 --install-path=PATH the path to a custom install program (useful if
251 your OS uses a GNU-incompatible install utility by
252 default and you want to point to the GNU version)
254 Advanced options:
255 --enable-mmx build with mmx support [autodetect]
256 --enable-mmx2 build with mmx2 support (PIII, Athlon) [autodetect]
257 --enable-3dnow build with 3dnow! support [autodetect]
258 --enable-3dnowex build with 3dnow-dsp! support (K7) [autodetect]
259 --enable-sse build with sse support [autodetect]
260 --enable-sse2 build with sse2 support [autodetect]
261 --disable-fastmemcpy disable 3dnow/sse/mmx optimized memcpy() [enable]
262 --disable-big-endian Force byte order to little endian [autodetect]
263 --enable-big-endian Force byte order to big endian [autodetect]
264 --enable-debug[=1-3] compile debugging information into mplayer [disable]
265 --enable-profile compile profiling information into mplayer [disable]
266 --disable-sighandler disable sighandler for crashes [enable]
267 --enable-i18n _experimental_ gnu gettext() support [autodetect]
268 --enable-dynamic-plugins Enable support for dynamic a/v plugins [disable]
270 Hazardous options a.k.a. "DO NOT REPORT ANY BUGS!"
271 --disable-gcc-checking disable gcc version checking [enable]
273 Use these options if autodetection fails:
274 --with-extraincdir=DIR extra headers (png, dvb, mad, sdl, css, ...) in DIR
275 --with-extralibdir=DIR extra library files (png, SDL, ...) in DIR
276 --with-x11incdir=DIR X headers in DIR
277 --with-x11libdir=DIR X library files in DIR
278 --with-dxr2incdir=DIR DXR2 headers in DIR
279 --with-csslibdir=DIR libcss in DIR
280 --with-madlibdir=DIR libmad (libmad shared library) in DIR
281 --with-mlibdir=DIR libmlib (MLIB support) in DIR (Solaris only)
282 --with-libdvdnav=DIR libdvdnav in DIR
283 --with-win32libdir=DIR W*ndows DLL files in DIR
284 --with-xanimlibdir=DIR XAnim DLL files in DIR
285 --with-reallibdir=DIR RealPlayer DLL files in DIR
286 --with-xvidcore=PATH path to XviD libxvidcore.a
287 (e.g. /opt/lib/libxvidcore.a)
288 --with-sdl-config=PATH path to sdl*-config (e.g. /opt/bin/sdl-config)
289 --with-freetype-config=PATH path to freetype-config
290 (e.g. /opt/bin/freetype-config)
291 --with-gtk-config=PATH path to gtk*-config (e.g. /opt/bin/gtk-config)
292 --with-glib-config=PATH path to glib*-config (e.g. /opt/bin/glib-config)
293 --with-dvdnav-config=PATH path to dvdnav-config
294 --with-livelibdir=DIR path to LIVE.COM Streaming Media libraries
295 --with-xmmsplugindir=DIR path to xmms plugins
296 --with-xmmslibdir=DIR path to libxmms.so.1
297 --with-cdparanoiaincdir=DIR cdparanoia headers in DIR
298 --with-cdparanoialibdir=DIR cdparanoia libraries (libcdda_*) in DIR
299 --with-fribidi-config=PATH path to fribidi-config
300 (e.g. /opt/bin/fribidi-config)
303 exit 0
305 done # for parm in ...
308 # 1st pass checking for vital options
309 _install=install
310 _ranlib=ranlib
311 _cc=gcc
312 test "$CC" && _cc="$CC"
313 _as=auto
314 _runtime_cpudetection=no
315 for ac_option do
316 case "$ac_option" in
317 --target=*)
318 _target=`echo $ac_option | cut -d '=' -f 2`
320 --cc=*)
321 _cc=`echo $ac_option | cut -d '=' -f 2`
323 --as=*)
324 _as=`echo $ac_option | cut -d '=' -f 2`
326 --enable-gcc-checking)
327 _skip_cc_check=no
329 --disable-gcc-checking)
330 _skip_cc_check=yes
332 --enable-static)
333 _ld_static='-static'
335 --disable-static)
336 _ld_static=''
338 --enable-static=*)
339 _ld_static="-static `echo $ac_option | cut -d '=' -f 2`"
341 --with-extraincdir=*)
342 _inc_extra=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
344 --with-extralibdir=*)
345 _ld_extra=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
346 # _ld_extra="${_ld_extra} -Wl,-R"`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -Wl\,-R,g'`" -L"`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
348 --enable-runtime-cpudetection)
349 _runtime_cpudetection=yes
351 --disable-runtime-cpudetection)
352 _runtime_cpudetection=no
354 --install-path=*)
355 _install=`echo $ac_option | cut -d '=' -f 2 | sed 's/\/$//'`"/install"
357 esac
358 done
360 # Determine our OS name and CPU architecture
361 if test -z "$_target" ; then
362 # OS name
363 system_name=`( uname -s ) 2>&1`
364 case "$system_name" in
365 Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU)
367 IRIX*)
368 system_name=IRIX
370 HP-UX*)
371 system_name=HP-UX
373 [cC][yY][gG][wW][iI][nN]*)
374 system_name=CYGWIN
377 system_name="$system_name-UNKNOWN"
379 esac
382 # host's CPU/instruction set
383 host_arch=`( uname -p ) 2>&1`
384 case "$host_arch" in
385 i386|sparc|ppc|alpha|arm|mips)
387 powerpc) # Darwin returns 'powerpc'
388 host_arch=ppc
390 *) # uname -p on Linux returns 'unknown' for the processor type,
391 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
393 # Maybe uname -m (machine hardware name) returns something we
394 # recognize.
396 # x86/x86pc is used by QNX
397 case "`( uname -m ) 2>&1`" in
398 i[3-9]86*|x86|x86pc|k5|k6|k6_2|k6_3|k6-2|k6-3|pentium*|athlon*|i586_i686|i586-i686) host_arch=i386 ;;
399 ia64) host_arch=ia64 ;;
400 x86_64) host_arch=x86_64 ;;
401 ppc) host_arch=ppc ;;
402 alpha) host_arch=alpha ;;
403 sparc*) host_arch=sparc ;;
404 9000*) host_arch=hppa ;;
405 arm*) host_arch=arm ;;
406 s390) host_arch=s390 ;;
407 s390x) host_arch=s390x ;;
408 mips) host_arch=mips ;;
409 *) host_arch=UNKNOWN ;;
410 esac
412 esac
413 else
414 system_name=`echo $_target | cut -d '-' -f 2`
415 case "`echo $system_name | tr A-Z a-z`" in
416 linux) system_name=Linux ;;
417 freebsd) system_name=FreeBSD ;;
418 netbsd) system_name=NetBSD ;;
419 bsd/os) system_name=BSD/OS ;;
420 openbsd) system_name=OpenBSD ;;
421 sunos) system_name=SunOS ;;
422 qnx) system_name=QNX ;;
423 esac
424 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
425 host_arch=`echo $_target | cut -d '-' -f 1 | tr '_' '-'`
428 echo "Detected operating system: $system_name"
429 echo "Detected host architecture: $host_arch"
431 # LGB: temporary files
432 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
433 test "$I" && break
434 done
436 TMPLOG="configure.log"
437 rm -f "$TMPLOG"
438 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
439 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
440 TMPO="$I/mplayer-conf-$RANDOM-$$.o"
441 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
443 # config files
445 # FIXME: A lot of stuff is installed under /usr/local
446 # NK: But we should never use this stuff implicitly since we call compiler
447 # from /usr we should be sure that there no effects from other compilers
448 # (libraries) which might be installed into /usr/local. Let users use this
449 # stuff explicitly as command line argument. In other words: It would be
450 # resonable to have only /usr/include or only /usr/local/include.
452 if freebsd ; then
453 _ld_extra="$_ld_extra -L/usr/local/lib"
454 _inc_extra="$_inc_extra -I/usr/local/include"
458 # Checking CC version...
459 if test "$_skip_cc_check" != yes ; then
460 for _cc in "$_cc" gcc-3.1 gcc3 gcc-3.0 cc ; do
461 echocheck "$_cc version"
462 cc_name=`( $_cc -v ) 2>&1 | tail -1 | cut -d ' ' -f 1`
463 cc_version=`( $_cc -dumpversion ) 2>&1`
464 if test "$?" -gt 0; then
465 cc_version="not found"
467 case $cc_version in
469 cc_version="v. ?.??, bad"
470 cc_verc_fail=yes
472 2.95.[2-9]|2.95.[2-9][-.]*|3.[0-9]|3.[0-9].[0-9])
473 _cc_major=`echo $cc_version | cut -d '.' -f 1`
474 _cc_minor=`echo $cc_version | cut -d '.' -f 2`
475 _cc_mini=`echo $cc_version | cut -d '.' -f 3`
476 cc_version="$cc_version, ok"
477 cc_verc_fail=no
479 'not found')
480 cc_verc_fail=yes
483 cc_version="$cc_version, bad"
484 cc_verc_fail=yes
486 esac
487 echores "$cc_version"
488 (test "$cc_verc_fail" = "no") && break
489 done
490 if test "$cc_verc_fail" = yes ; then
491 cat <<EOF
493 *** Please downgrade/upgrade C compiler to version gcc-2.95.x or gcc-3.x! ***
495 You are not using a supported compiler. We do not have the time to make sure
496 everything works with compilers other than the ones we use. Use either the
497 same compiler as we do, or use --disable-gcc-checking but DO *NOT* REPORT BUGS
498 unless you can reproduce them after recompiling with a 2.95.x or 3.x version!
500 Note for gcc 2.96 users: Some versions of this compiler are known to miscompile
501 mplayer and lame (which is used for mencoder). If you get compile errors,
502 first upgrade to the latest 2.96 release (minimum 2.96-85) and try again.
503 If the problem still exists, try with gcc 3.x (or 2.95.x) *BEFORE* reporting
504 bugs!
506 GCC 2.96 IS NOT AND WILL NOT BE SUPPORTED BY US !
508 *** For details please read DOCS/users_against_developers.html ***
511 die "Bad gcc version"
513 else
514 cat <<EOF
516 ******************************************************************************
518 Hmm. You really want to compile MPlayer with an *UNSUPPORTED* C compiler?
519 Ok. You know. Do it. Did you already read DOCS/users_against_developers.html???
521 DO NOT SEND BUGREPORTS OR COMPLAIN, it's *YOUR* compiler's fault!
522 Get ready for mysterious crashes, no-picture bugs, strange noises... REALLY!
523 Lame which is used by mencoder produces weird errors, too.
525 If you have any problem, install a GCC 2.95.x or 3.x version and try again.
526 If the problem _still_ exists, then read DOCS/bugreports.html !
528 *** DO NOT SEND BUG REPORTS OR COMPLAIN it's *YOUR* compiler's fault! ***
530 ******************************************************************************
534 read _answer
537 # ---
539 # now that we know what compiler should be used for compilation, try to find
540 # out which assembler is used by the $_cc compiler
541 if test "$_as" = auto ; then
542 _as=`$_cc -print-prog-name=as`
543 test -z "$_as" && _as=as
546 # Try to find the available options for the current CPU
547 if x86 || ppc; then
548 if test -r /proc/cpuinfo ; then
549 # Linux with /proc mounted, extract CPU information from it
550 _cpuinfo="cat /proc/cpuinfo"
551 elif test -r /compat/linux/proc/cpuinfo ; then
552 # FreeBSD with Linux emulation /proc mounted,
553 # extract CPU information from it
554 _cpuinfo="cat /compat/linux/proc/cpuinfo"
555 elif x86; then
556 # all other OSes try to extract CPU information from a small helper
557 # program TOOLS/cpuinfo instead
558 $_cc -o TOOLS/cpuinfo TOOLS/cpuinfo.c
559 _cpuinfo="TOOLS/cpuinfo"
562 pname=`$_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -1`
563 pvendor=`$_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
564 pfamily=`$_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
565 pmodel=`$_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
566 pstepping=`$_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
568 pparam=`$_cpuinfo | grep 'features' | cut -d ':' -f 2 | head -1`
569 if test -z "$pparam" ; then
570 pparam=`$_cpuinfo | grep 'flags' | cut -d ':' -f 2 | head -1`
573 _mmx=no
574 _3dnow=no
575 _3dnowex=no
576 _mmx2=no
577 _sse=no
578 _sse2=no
579 _mtrr=no
580 _altivec=no
582 for i in $pparam ; do
583 case "$i" in
584 3dnow) _3dnow=yes ;;
585 3dnowext) _3dnow=yes _3dnowex=yes ;;
586 mmx) _mmx=yes ;;
587 altivec) _altivec=yes ;;
588 mmxext) _mmx2=yes ;;
589 mtrr|k6_mtrr|cyrix_arr) _mtrr=yes ;;
590 xmm|sse|kni) _sse=yes _mmx2=yes ;;
591 sse2) _sse2=yes ;;
592 esac
593 done
595 echocheck "CPU vendor"
596 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
598 echocheck "CPU type"
599 echores "$pname"
601 # leaving this here because of the non-x86 optimizations
602 if test "$_runtime_cpudetection" = yes ; then
603 if x86; then
604 _mmx=yes
605 _3dnow=yes
606 _3dnowex=yes
607 _mmx2=yes
608 _sse=yes
609 _sse2=yes
610 _mtrr=yes
612 _optimizing="Runtime CPU-Detection enabled"
618 if [ "$host_arch" = alpha ]; then
619 echocheck "CPU type"
620 cat > $TMPC << EOF
621 int main() {
622 unsigned long ver, mask;
623 asm ("implver %0" : "=r" (ver));
624 asm ("amask %1, %0" : "=r" (mask) : "r" (-1));
625 printf("%ld-%x\n", ver, ~mask);
626 return 0;
629 $_cc -o "$TMPO" "$TMPC"
630 case `"$TMPO"` in
631 0-0) proc="ev4" ;;
632 1-0) proc="ev5" ;;
633 1-1) proc="ev56" ;;
634 1-101) proc="pca56" ;;
635 2-303) proc="ev6" ;;
636 2-307) proc="ev67" ;;
637 2-1307) proc="ev68" ;;
638 esac
639 echores "$proc"
643 # x86/x86pc is used by QNX
644 case "$host_arch" in
645 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
646 _def_arch="#define ARCH_X86 1"
647 _target_arch="TARGET_ARCH_X86 = yes"
649 case "$pvendor" in
650 AuthenticAMD)
651 case "$pfamily" in
652 3) proc=i386 iproc=386 ;;
653 4) proc=i486 iproc=486 ;;
654 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
655 # TODO: how to determine if model 13 is a k6-2 or a k6-3? Couldn't find anything on amd.com
656 if test "$pmodel" -eq 9; then
657 proc=k6-3
658 elif test "$pmodel" -ge 8; then
659 proc=k6-2
660 elif test "$pmodel" -ge 6; then
661 proc=k6
662 else
663 proc=i586
664 iproc=586
667 6) iproc=686
668 if test "$pmodel" -ge 7; then
669 proc=athlon-4
670 elif test "$pmodel" -ge 6; then
671 # only Athlon XP supports ssem MP, Duron etc not
672 # but most of them are CPUID 666, so check if sse detected
673 # btw. there is also athlon-mp opt, but we need extended
674 # CPUID to detect if CPU is SMP capable -> athlon-mp ::atmos
675 if test "$_sse" = yes && test "$pstepping" -ge 2; then
676 proc=athlon-xp
677 else
678 proc=athlon-4
680 elif test "$pmodel" -ge 4; then
681 proc=athlon-tbird
682 else
683 proc=athlon # TODO: should the Duron Spitfire be considered a Thunderbird instead?
687 *) proc=athlon-xp iproc=686 ;;
688 esac
690 GenuineIntel)
691 case "$pfamily" in
692 3) proc=i386 iproc=386 ;;
693 4) proc=i486 iproc=486 ;;
694 5) iproc=586
695 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
696 proc=pentium-mmx # 4 is desktop, 8 is mobile
697 else
698 proc=i586
701 6) iproc=686
702 if test "$pmodel" -ge 7; then
703 proc=pentium3
704 elif test "$pmodel" -ge 3; then
705 proc=pentium2
706 else
707 proc=i686
710 15) proc=pentium4 iproc=686 ;;
711 *) proc=pentium4 iproc=686 ;;
712 esac
714 unknown)
715 case "$pfamily" in
716 3) proc=i386 iproc=386 ;;
717 4) proc=i486 iproc=486 ;;
718 *) proc=i586 iproc=586 ;;
719 esac
722 proc=i586 iproc=586 ;;
723 esac
725 # check that gcc supports our CPU, if not, fall back to earlier ones
726 # LGB: check -mcpu and -march swithing step by step with enabling
727 # to fall back till 386.
729 echocheck "GCC & CPU optimization abilities"
730 cat > $TMPC << EOF
731 int main(void) { return 0; }
733 if test "$_runtime_cpudetection" = no ; then
734 if test "$proc" = "athlon-xp" || test "$proc" = "athlon-4" || test "$proc" = "athlon-tbird"; then
735 cc_check -march=$proc -mcpu=$proc || proc=athlon
737 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
738 cc_check -march=$proc -mcpu=$proc || proc=k6
740 if test "$proc" = "k6"; then
741 if not cc_check -march=$proc -mcpu=$proc; then
742 if cc_check -march=i586 -mcpu=i686; then
743 proc=i586-i686
744 else
745 proc=i586
749 if test "$proc" = "pentium4" || test "$proc" = "pentium3" || test "$proc" = "pentium2" || test "$proc" = "athlon"; then
750 cc_check -march=$proc -mcpu=$proc || proc=i686
752 if test "$proc" = "i686" || test "$proc" = "pentium-mmx"; then
753 cc_check -march=$proc -mcpu=$proc || proc=i586
755 if test "$proc" = "i586" ; then
756 cc_check -march=$proc -mcpu=$proc || proc=i486
758 if test "$proc" = "i486" ; then
759 cc_check -march=$proc -mcpu=$proc || proc=i386
761 if test "$proc" = "i386" ; then
762 cc_check -march=$proc -mcpu=$proc || proc=error
764 if test "$proc" = "error" ; then
765 echores "Your $_cc does not even support \"i386\" for '-march' and '-mcpu'."
766 _mcpu=""
767 _march=""
768 _optimizing=""
769 elif test "$proc" = "i586-i686"; then
770 _march="-march=i586"
771 _mcpu="-mcpu=i686"
772 _optimizing="$proc"
773 else
774 _march="-march=$proc"
775 _mcpu="-mcpu=$proc"
776 _optimizing="$proc"
778 else
779 # i686 is probably the most common CPU - optimize for it
780 _mcpu="-mcpu=i686"
781 # at least i486 required, for bswap instruction
782 _march="-march=i486"
783 cc_check $_mcpu || _mcpu=""
784 cc_check $_march $_mcpu || _march=""
787 ## Gabucino : --target takes effect here (hopefully...) by overwriting
788 ## autodetected mcpu/march parameters
789 if test "$_target" ; then
790 # TODO: it may be a good idea to check GCC and fall back in all cases
791 if test "$host_arch" = "i586-i686"; then
792 _march="-march=i586"
793 _mcpu="-mcpu=i686"
794 else
795 _march="-march=$host_arch"
796 _mcpu="-mcpu=$host_arch"
799 proc="$host_arch"
801 case "$proc" in
802 i386) iproc=386 ;;
803 i486) iproc=486 ;;
804 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
805 i686|athlon*|pentium*) iproc=686 ;;
806 *) iproc=586 ;;
807 esac
810 echores "$proc"
813 ia64)
814 _def_arch='#define ARCH_IA64 1'
815 _target_arch='TARGET_ARCH_IA64 = yes'
816 iproc='ia64'
817 proc=''
818 _march=''
819 _mcpu=''
822 x86_64)
823 _def_arch='#define ARCH_X86_64 1'
824 _target_arch='TARGET_ARCH_X86_64 = yes'
825 iproc='x86_64'
826 proc=''
827 _march=''
828 _mcpu=''
831 sparc)
832 _def_arch='#define ARCH_SPARC 1'
833 _target_arch='TARGET_ARCH_SPARC = yes'
834 iproc='sparc'
835 proc='v8'
836 _march=''
837 _mcpu="-mcpu=$proc"
840 arm)
841 _def_arch='#define ARCH_ARM 1'
842 _target_arch='TARGET_ARCH_ARM = yes'
843 iproc=arm
844 proc=''
845 _march=''
846 _mcpu=''
849 ppc)
850 _def_arch='#define ARCH_POWERPC 1'
851 _target_arch='TARGET_ARCH_POWERPC = yes'
852 iproc='ppc'
853 proc=''
854 _march=''
855 _mcpu=''
856 cpu750=`$_cpuinfo | grep "cpu.*750"`
857 if test -n "$cpu750"; then
858 _march='-mcpu=750'
859 _mcpu='-mtune=750'
861 if darwin ; then
862 if [[ $(sysctl -n hw.vectorunit) == 1 ]]; then
863 _altivec=yes
868 alpha)
869 _def_arch='#define ARCH_ALPHA 1'
870 _target_arch='TARGET_ARCH_ALPHA = yes'
871 iproc='alpha'
872 _march=''
873 echocheck "GCC & CPU optimization abilities"
874 if test "$proc" = "ev68" ; then
875 cc_check -mcpu=$proc || proc=ev67
877 if test "$proc" = "ev67" ; then
878 cc_check -mcpu=$proc || proc=ev6
880 _mcpu="-mcpu=$proc"
881 echores "$proc"
884 mips)
885 _def_arch='#define ARCH_SGI_MIPS 1'
886 _target_arch='TARGET_ARCH_SGI_MIPS = yes'
887 iproc='sgi-mips'
888 proc=''
889 _march=''
890 _mcpu=''
893 hppa)
894 _def_arch='#define ARCH_PA_RISC 1'
895 _target_arch='TARGET_ARCH_PA_RISC = yes'
896 iproc='PA-RISC'
897 proc=''
898 _march=''
899 _mcpu=''
902 s390)
903 _def_arch='#define ARCH_S390 1'
904 _target_arch='TARGET_ARCH_S390 = yes'
905 iproc='390'
906 proc=''
907 _march=''
908 _mcpu=''
911 s390x)
912 _def_arch='#define ARCH_S390X 1'
913 _target_arch='TARGET_ARCH_S390X = yes'
914 iproc='390x'
915 proc=''
916 _march=''
917 _mcpu=''
921 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
922 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
923 die "unsupported architecture $host_arch"
925 esac
928 if x86 && test "$_runtime_cpudetection" = no ; then
929 extcheck() {
930 if test "$1" = yes ; then
931 echocheck "kernel support of $2"
932 cat > $TMPC <<EOF
933 #include <signal.h>
934 void catch() { exit(1); }
935 int main(void){
936 signal(SIGILL, catch);
937 __asm__ __volatile__ ("$3":::"memory");return(0);
941 if ( cc_check && $TMPO ) > /dev/null 2>&1 ; then
942 echores "yes"
943 _optimizing="$_optimizing $2"
944 return 0
945 else
946 echores "failed"
947 echo "It seems that your kernel does not correctly support $2."
948 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
949 return 1
952 return 0
955 extcheck $_mmx "mmx" "emms" || _mmx=no
956 extcheck $_mmx2 "mmx2" "sfence" || _mmx2=no
957 extcheck $_3dnow "3dnow" "femms" || _3dnow=no
958 extcheck $_3dnowex "3dnowex" "pswapd %%mm0, %%mm0" || _3dnowex=no
959 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _sse=no _gcc3_ext="$_gcc3_ext -mno-sse"
960 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _sse2=no _gcc3_ext="$_gcc3_ext -mno-sse2"
961 echocheck "mtrr support"
962 echores "$_mtrr"
964 if test "$_mtrr" = yes ; then
965 _optimizing="$_optimizing mtrr"
968 if test "$_gcc3_ext" != ""; then
969 # if we had to disable sse/sse2 because the active kernel does not
970 # support this instruction set extension, we also have to tell
971 # gcc3 to not generate sse/sse2 instructions for normal C code
972 cat > $TMPC << EOF
973 int main(void) { return 0; }
975 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
981 _prefix="/usr/local"
983 # GOTCHA: the variables below defines the default behavior for autodetection
984 # and have - unless stated otherwise - at least 2 states : yes no
985 # If autodetection is available then the third state is: auto
986 _libavcodec=auto
987 _libavcodecso=auto
988 _fame=auto
989 _mp1e=no
990 _mencoder=yes
991 _x11=auto
992 _dga=auto # 1 2 no auto
993 _xv=auto
994 _sdl=auto
995 _directx=auto
996 _win32waveout=auto
997 _nas=auto
998 _png=auto
999 _jpg=auto
1000 _gif=auto
1001 _gl=auto
1002 _ggi=auto
1003 _aa=auto
1004 _svga=auto
1005 _vesa=auto
1006 _fbdev=auto
1007 _fbdev_nocopy=no
1008 _dvb=auto
1009 _dvbhead=auto
1010 _dxr2=auto
1011 _dxr3=auto
1012 _iconv=auto
1013 _rtc=auto
1014 _ossaudio=auto
1015 _arts=auto
1016 _esd=auto
1017 _liblzo=auto
1018 _mad=auto
1019 _vorbis=auto
1020 _tremor=no
1021 _faad=auto
1022 _xmms=no
1023 _css=auto
1024 _dvdnav=no
1025 _dvdread=auto
1026 _dvdkit=auto
1027 _xanim=auto
1028 _real=auto
1029 _live=no
1030 _xinerama=auto
1031 _mga=auto
1032 _xmga=auto
1033 _vm=auto
1034 _mlib=auto
1035 _sgiaudio=auto
1036 _sunaudio=auto
1037 _alsa=auto
1038 _fastmemcpy=yes
1039 _unrarlib=yes
1040 _win32=auto
1041 _dshow=yes
1042 _select=yes
1043 _tv=yes
1044 _tv_v4l=auto
1045 _tv_bsdbt848=auto
1046 _edl=yes
1047 _streaming=yes
1048 _smbsupport=auto
1049 _vidix=auto
1050 _joystick=no
1051 _xvid=auto
1052 _divx4linux=auto
1053 _opendivx=no
1054 _lirc=auto
1055 _gui=no
1056 _termcap=auto
1057 _termios=auto
1058 _3dfx=no
1059 _tdfxfb=no
1060 _tdfxvid=no
1061 _directfb=auto
1062 _zr=auto
1063 _bl=no
1064 _largefiles=no
1065 #_language=en
1066 _shm=auto
1067 _linux_devfs=no
1068 _i18n=auto
1069 _dynamic_plugins=no
1070 _setlocale=auto
1071 _sighandler=yes
1072 _libdv=auto
1073 _cdparanoia=auto
1074 _big_endian=auto
1075 _freetype=auto
1076 _shared_pp=no
1077 _new_conf=yes
1078 _menu=no
1079 _qtx_codecs=auto
1080 _macosx=auto
1081 _sortsub=yes
1082 _freetypeconfig='freetype-config'
1083 _fribidi=no
1084 _fribidiconfig='fribidi-config'
1085 _inet6=auto
1086 _gethostbyname2=auto
1087 for ac_option do
1088 case "$ac_option" in
1089 # Skip 1st pass
1090 --target=*) ;;
1091 --cc=*) ;;
1092 --as=*) ;;
1093 --enable-gcc-checking) ;;
1094 --disable-gcc-checking) ;;
1095 --enable-static*) ;;
1096 --disable-static*) ;;
1097 --with-extraincdir=*) ;;
1098 --with-extralibdir=*) ;;
1099 --enable-runtime-cpudetection) ;;
1100 --disable-runtime-cpudetection) ;;
1101 --install-path=*) ;;
1103 # Real 2nd pass
1104 --enable-mencoder) _mencoder=yes ;;
1105 --disable-mencoder) _mencoder=no ;;
1106 --enable-i18n) _i18n=yes ;;
1107 --disable-i18n) _i18n=no ;;
1108 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
1109 --disable-dynamic-plugins) _dynamic_plugins=no ;;
1110 --enable-setlocale) _setlocale=yes ;;
1111 --disable-setlocale) _setlocale=no ;;
1112 --enable-x11) _x11=yes ;;
1113 --disable-x11) _x11=no ;;
1114 --enable-xv) _xv=yes ;;
1115 --disable-xv) _xv=no ;;
1116 --enable-sdl) _sdl=yes ;;
1117 --disable-sdl) _sdl=no ;;
1118 --enable-directx) _directx=yes ;;
1119 --disable-directx) _directx=no ;;
1120 --enable-win32waveout) _win32waveout=yes ;;
1121 --disable-win32waveout) _win32waveout=no ;;
1122 --enable-nas) _nas=yes ;;
1123 --disable-nas) _nas=no ;;
1124 --enable-png) _png=yes ;;
1125 --disable-png) _png=no ;;
1126 --enable-jpeg) _jpg=yes ;;
1127 --disable-jpeg) _jpg=no ;;
1128 --enable-gif) _gif=yes ;;
1129 --disable-gif) _gif=no ;;
1130 --enable-gl) _gl=yes ;;
1131 --disable-gl) _gl=no ;;
1132 --enable-ggi) _ggi=yes ;;
1133 --disable-ggi) _ggi=no ;;
1134 --enable-aa) _aa=yes ;;
1135 --disable-aa) _aa=no ;;
1136 --enable-svga) _svga=yes ;;
1137 --disable-svga) _svga=no ;;
1138 --enable-vesa) _vesa=yes ;;
1139 --disable-vesa) _vesa=no ;;
1140 --enable-fbdev) _fbdev=yes ;;
1141 --enable-fbdev=nocopy) _fbdev=yes; _fbdev_nocopy=yes ;;
1142 --disable-fbdev) _fbdev=no ;;
1143 --enable-dvb) _dvb=yes ;;
1144 --disable-dvb) _dvb=no ;;
1145 --enable-dvbhead) _dvbhead=yes ;;
1146 --disable-dvbhead) _dvbhead=no ;;
1147 --enable-dxr2) _dxr2=yes ;;
1148 --disable-dxr2) _dxr2=no ;;
1149 --enable-dxr3) _dxr3=yes ;;
1150 --disable-dxr3) _dxr3=no ;;
1151 --enable-iconv) _iconv=yes ;;
1152 --disable-iconv) _iconv=no ;;
1153 --enable-rtc) _rtc=yes ;;
1154 --disable-rtc) _rtc=no ;;
1155 --enable-mp1e) _mp1e=yes ;;
1156 --disable-mp1e) _mp1e=no ;;
1157 --enable-libdv) _libdv=yes ;;
1158 --disable-libdv) _libdv=no ;;
1159 --enable-ossaudio) _ossaudio=yes ;;
1160 --disable-ossaudio) _ossaudio=no ;;
1161 --enable-arts) _arts=yes ;;
1162 --disable-arts) _arts=no ;;
1163 --enable-esd) _esd=yes ;;
1164 --disable-esd) _esd=no ;;
1165 --enable-mad) _mad=yes ;;
1166 --disable-mad) _mad=no ;;
1167 --enable-liblzo) _liblzo=yes ;;
1168 --disable-liblzo) _liblzo=no ;;
1169 --enable-vorbis) _vorbis=yes ;;
1170 --disable-vorbis) _vorbis=no ;;
1171 --enable-tremor) _tremor=yes ;;
1172 --disable-tremor) _tremor=no ;;
1173 --enable-faad) _faad=yes ;;
1174 --disable-faad) _faad=no ;;
1175 --enable-xmms) _xmms=yes ;;
1176 --enable-css) _css=yes ;;
1177 --disable-css) _css=no ;;
1178 --enable-dvdread) _dvdread=yes ;;
1179 --disable-dvdread) _dvdread=no ;;
1180 --enable-mpdvdkit) _dvdkit=yes ;;
1181 --disable-mpdvdkit) _dvdkit=no ;;
1182 --enable-dvdnav) _dvdnav=yes ;;
1183 --disable-dvdnav) _dvdnav=no ;;
1184 --enable-xanim) _xanim=yes ;;
1185 --disable-xanim) _xanim=no ;;
1186 --enable-real) _real=yes ;;
1187 --disable-real) _real=no ;;
1188 --enable-live) _live=yes ;;
1189 --disable-live) _live=no ;;
1190 --enable-xinerama) _xinerama=yes ;;
1191 --disable-xinerama) _xinerama=no ;;
1192 --enable-mga) _mga=yes ;;
1193 --disable-mga) _mga=no ;;
1194 --enable-xmga) _xmga=yes ;;
1195 --disable-xmga) _xmga=no ;;
1196 --enable-vm) _vm=yes ;;
1197 --disable-vm) _vm=no ;;
1198 --enable-mlib) _mlib=yes ;;
1199 --disable-mlib) _mlib=no ;;
1200 --enable-sunaudio) _sunaudio=yes ;;
1201 --disable-sunaudio) _sunaudio=no ;;
1202 --enable-sgiaudio) _sgiaudio=yes ;;
1203 --disable-sgiaudio) _sgiaudio=no ;;
1204 --enable-alsa) _alsa=yes ;;
1205 --disable-alsa) _alsa=no ;;
1206 --enable-tv) _tv=yes ;;
1207 --disable-tv) _tv=no ;;
1208 --enable-edl) _edl=yes ;;
1209 --disable-edl) _edl=no ;;
1210 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1211 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1212 --enable-tv-v4l) _tv_v4l=yes ;;
1213 --disable-tv-v4l) _tv_v4l=no ;;
1214 --enable-fastmemcpy) _fastmemcpy=yes ;;
1215 --disable-fastmemcpy) _fastmemcpy=no ;;
1216 --enable-streaming) _streaming=yes ;;
1217 --disable-streaming) _streaming=no ;;
1218 --enable-smb) _smbsupport=yes ;;
1219 --disable-smb) _smbsupport=no ;;
1220 --enable-vidix) _vidix=yes ;;
1221 --disable-vidix) _vidix=no ;;
1222 --enable-joystick) _joystick=yes ;;
1223 --disable-joystick) _joystick=no ;;
1224 --enable-xvid) _xvid=yes ;;
1225 --disable-xvid) _xvid=no ;;
1226 --enable-divx4linux) _divx4linux=yes ;;
1227 --disable-divx4linux) _divx4linux=no ;;
1228 --enable-opendivx) _opendivx=yes ;;
1229 --disable-opendivx) _opendivx=no ;;
1230 --enable-libavcodec) _libavcodec=yes ;;
1231 --disable-libavcodec) _libavcodec=no ;;
1232 --enable-libfame) _fame=yes ;;
1233 --disable-libfame) _fame=no ;;
1234 --enable-lirc) _lirc=yes ;;
1235 --disable-lirc) _lirc=no ;;
1236 --enable-gui) _gui=yes ;;
1237 --disable-gui) _gui=no ;;
1238 --enable-termcap) _termcap=yes ;;
1239 --disable-termcap) _termcap=no ;;
1240 --enable-termios) _termios=yes ;;
1241 --disable-termios) _termios=no ;;
1242 --enable-3dfx) _3dfx=yes ;;
1243 --disable-3dfx) _3dfx=no ;;
1244 --enable-tdfxfb) _tdfxfb=yes ;;
1245 --disable-tdfxvid) _tdfxvid=no ;;
1246 --enable-tdfxvid) _tdfxvid=yes ;;
1247 --disable-tdfxfb) _tdfxfb=no ;;
1248 --enable-directfb) _directfb=yes ;;
1249 --disable-directfb) _directfb=no ;;
1250 --enable-zr) _zr=yes ;;
1251 --disable-zr) _zr=no ;;
1252 --enable-bl) _bl=yes ;;
1253 --disable-bl) _bl=no ;;
1254 --enable-mtrr) _mtrr=yes ;;
1255 --disable-mtrr) _mtrr=no ;;
1256 --enable-largefiles) _largefiles=yes ;;
1257 --disable-largefiles) _largefiles=no ;;
1258 --enable-shm) _shm=yes ;;
1259 --disable-shm) _shm=no ;;
1260 --enable-select) _select=yes ;;
1261 --disable-select) _select=no ;;
1262 --enable-linux-devfs) _linux_devfs=yes ;;
1263 --disable-linux-devfs) _linux_devfs=no ;;
1264 --enable-cdparanoia) _cdparanoia=yes ;;
1265 --disable-cdparanoia) _cdparanoia=no ;;
1266 --enable-big-endian) _big_endian=yes ;;
1267 --disable-big-endian) _big_endian=no ;;
1268 --enable-freetype) _freetype=yes ;;
1269 --disable-freetype) _freetype=no ;;
1270 --enable-unrarlib) _unrarlib=yes ;;
1271 --disable-unrarlib) _unrarlib=no ;;
1273 --enable-fribidi) _fribidi=yes ;;
1274 --disable-fribidi) _fribidi=no ;;
1276 --enable-inet6) _inet6=yes ;;
1277 --disable-inet6) _inet6=no ;;
1279 --enable-gethostbyname2) _gethostbyname2=yes ;;
1280 --disable-gethostbyname2) _gethostbyname2=no ;;
1282 --enable-dga) _dga=auto ;; # as we don't know if it's 1 or 2
1283 --enable-dga=*) _dga=`echo $ac_option | cut -d '=' -f 2` ;;
1284 --disable-dga) _dga=no ;;
1286 --enable-shared-pp) _shared_pp=yes ;;
1287 --disable-shared-pp) _shared_pp=no ;;
1289 --enable-new-conf) _new_conf=yes ;;
1290 --disable-new-conf) _new_conf=no ;;
1292 --enable-menu) _menu=yes ;;
1293 --disable-menu) _menu=no ;;
1295 --enable-qtx-codecs) _qtx_codecs=yes ;;
1296 --disable-qtx-codecs) _qtx_codecs=no ;;
1298 --enable-macosx) _macosx=yes ;;
1299 --disable-macosx) _macosx=no ;;
1301 --enable-sortsub) _sortsub=yes ;;
1302 --disable-sortsub) _sortsub=no ;;
1304 --language=*)
1305 _language=`echo $ac_option | cut -d '=' -f 2`
1307 --with-libdvdnav=*)
1308 _dvdnavdir=`echo $ac_option | cut -d '=' -f 2`
1309 _dvdnav=yes
1312 --with-win32libdir=*)
1313 _win32libdir=`echo $ac_option | cut -d '=' -f 2`
1314 _win32=yes
1316 --with-xanimlibdir=*)
1317 _xanimlibdir=`echo $ac_option | cut -d '=' -f 2`
1318 _xanim=yes
1320 --with-reallibdir=*)
1321 _reallibdir=`echo $ac_option | cut -d '=' -f 2`
1322 _real=yes
1324 --with-livelibdir=*)
1325 _livelibdir=`echo $ac_option | cut -d '=' -f 2`
1326 _live=yes
1328 --with-csslibdir=*)
1329 _csslibdir=`echo $ac_option | cut -d '=' -f 2`
1330 _css=yes
1332 --with-mlibdir=*)
1333 _mlibdir=`echo $ac_option | cut -d '=' -f 2`
1334 _mlib=yes
1337 --with-xmmslibdir=*)
1338 _xmmslibdir=`echo $ac_option | cut -d '=' -f 2`
1341 --with-xmmsplugindir=*)
1342 _xmmsplugindir=`echo $ac_option | cut -d '=' -f 2`
1345 --disable-profile)
1346 _profile=
1348 --enable-profile)
1349 _profile='-p'
1351 --enable-debug)
1352 _debug='-g'
1354 --enable-debug=*)
1355 _debug=`echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2`
1357 --disable-sighandler)
1358 _sighandler=no
1361 --enable-sse) _sse=yes ;;
1362 --disable-sse) _sse=no ;;
1363 --enable-sse2) _sse2=yes ;;
1364 --disable-sse2) _sse2=no ;;
1365 --enable-mmx2) _mmx2=yes ;;
1366 --disable-mmx2) _mmx2=no ;;
1367 --enable-3dnow) _3dnow=yes ;;
1368 --disable-3dnow) _3dnow=no _3dnowex=no ;;
1369 --enable-3dnowex) _3dnow=yes _3dnowex=yes ;;
1370 --disable-3dnowex) _3dnowex=no ;;
1371 --enable-altivec) _altivec=yes ;;
1372 --disable-altivec) _altivec=no ;;
1373 --enable-mmx) _mmx=yes ;;
1374 --disable-mmx) # 3Dnow! and MMX2 require MMX
1375 _3dnow=no _3dnowex=no _mmx=no _mmx2=no ;;
1377 --enable-win32) _win32=yes ;;
1378 --disable-win32) _win32=no _dshow=no ;;
1379 --enable-dshow) _win32=yes _dshow=yes ;;
1380 --disable-dshow) _dshow=no ;;
1382 --with-x11incdir=*)
1383 _inc_x11=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1385 --with-x11libdir=*)
1386 _ld_x11=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1388 --with-dxr2incdir=*)
1389 _inc_dxr2=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1391 --with-xvidcore=*)
1392 _xvidcore=`echo $ac_option | cut -d '=' -f 2`
1394 --with-sdl-config=*)
1395 _sdlconfig=`echo $ac_option | cut -d '=' -f 2`
1397 --with-freetype-config=*)
1398 _freetypeconfig=`echo $ac_option | cut -d '=' -f 2`
1400 --with-fribidi-config=*)
1401 _fribidiconfig=`echo $ac_option | cut -d '=' -f 2`
1403 --with-gtk-config=*)
1404 _gtkconfig=`echo $ac_option | cut -d '=' -f 2`
1406 --with-glib-config=*)
1407 _glibconfig=`echo $ac_option | cut -d '=' -f 2`
1409 --with-dvdnav-config=*)
1410 _dvdnavconfig=`echo $ac_option | cut -d '=' -f 2`
1412 --with-madlibdir=*)
1413 _ld_mad=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1415 --with-cdparanoiaincdir=*)
1416 _inc_cdparanoia=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1418 --with-cdparanoialibdir=*)
1419 _ld_cdparanoia=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1422 --prefix=*)
1423 _prefix=`echo $ac_option | cut -d '=' -f 2`
1425 --bindir=*)
1426 _bindir=`echo $ac_option | cut -d '=' -f 2`
1428 --datadir=*)
1429 _datadir=`echo $ac_option | cut -d '=' -f 2`
1431 --mandir=*)
1432 _mandir=`echo $ac_option | cut -d '=' -f 2`
1434 --confdir=*)
1435 _confdir=`echo $ac_option | cut -d '=' -f 2`
1437 --libdir=*)
1438 _libdir=`echo $ac_option | cut -d '=' -f 2`
1442 echo "Unknown parameter: $ac_option"
1443 exit 1
1446 esac
1447 done
1449 # Atmos: moved this here, to be correct, if --prefix is specified
1450 test -z "$_bindir" && _bindir="$_prefix/bin"
1451 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1452 test -z "$_mandir" && _mandir="$_prefix/man"
1453 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1454 test -z "$_libdir" && _libdir="$_prefix/lib"
1455 test -z "$_mlibdir" && _mlibdir="$MLIBHOME"
1457 if x86 ; then
1458 # Checking assembler (_as) compatibility...
1459 # Added workaround for older as that reads from stdin by default - atmos
1460 as_version=`echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p'`
1461 echocheck "assembler ($_as $as_version)"
1463 _pref_as_version='2.9.1'
1464 echo 'nop' > $TMPS
1465 if test "$_mmx" = yes ; then
1466 echo 'emms' >> $TMPS
1468 if test "$_3dnow" = yes ; then
1469 _pref_as_version='2.10.1'
1470 echo 'femms' >> $TMPS
1472 if test "$_3dnowex" = yes ; then
1473 _pref_as_version='2.10.1'
1474 echo 'pswapd %mm0, %mm0' >> $TMPS
1476 if test "$_mmx2" = yes ; then
1477 _pref_as_version='2.10.1'
1478 echo 'movntq %mm0, (%eax)' >> $TMPS
1480 if test "$_sse" = yes ; then
1481 _pref_as_version='2.10.1'
1482 echo 'xorps %xmm0, %xmm0' >> $TMPS
1484 #if test "$_sse2" = yes ; then
1485 # _pref_as_version='2.11'
1486 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
1488 $_as $TMPS -o $TMPO > /dev/null 2>&1 || as_verc_fail=yes
1490 if test "$as_verc_fail" != yes ; then
1491 echores "ok"
1492 else
1493 echores "failed"
1494 echo "Upgrade binutils to ${_pref_as_version} ..."
1495 die "obsolete binutils version"
1499 _def_mmx='#undef HAVE_MMX'
1500 test "$_mmx" = yes && _def_mmx='#define HAVE_MMX 1'
1501 _def_mmx2='#undef HAVE_MMX2'
1502 test "$_mmx2" = yes && _def_mmx2='#define HAVE_MMX2 1'
1503 _def_3dnow='#undef HAVE_3DNOW'
1504 test "$_3dnow" = yes && _def_3dnow='#define HAVE_3DNOW 1'
1505 _def_3dnowex='#undef HAVE_3DNOWEX'
1506 test "$_3dnowex" = yes && _def_3dnowex='#define HAVE_3DNOWEX 1'
1507 _def_sse='#undef HAVE_SSE'
1508 test "$_sse" = yes && _def_sse='#define HAVE_SSE 1'
1509 _def_sse2='#undef HAVE_SSE2'
1510 test "$_sse2" = yes && _def_sse2='#define HAVE_SSE2 1'
1511 _def_altivec='#undef HAVE_ALTIVEC'
1512 test "$_altivec" = yes && _def_altivec='#define HAVE_ALTIVEC 1'
1515 # Checking kernel version...
1516 if x86 && linux ; then
1517 _k_verc_problem=no
1518 kernel_version=`uname -r 2>&1`
1519 echocheck "$system_name kernel version"
1520 case "$kernel_version" in
1521 '') kernel_version="?.??"; _k_verc_fail=yes;;
1522 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
1523 _k_verc_problem=yes;;
1524 esac
1525 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
1526 _k_verc_fail=yes
1528 if test "$_k_verc_fail" ; then
1529 echores "$kernel_version, fail"
1530 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
1531 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
1532 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
1533 echo "supports SSE, but you have been warned! If you are using a kernel older than"
1534 echo "2.2.x you must upgrade it to get SSE support!"
1535 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
1536 else
1537 echores "$kernel_version, ok"
1541 if test "$_vidix" = auto ; then
1542 _vidix=no
1543 # should check for x86 systems supporting VIDIX (does QNX have VIDIX?)
1544 x86 && _vidix=yes
1545 ppc && linux && _vidix=yes
1546 cygwin && _vidix=no
1547 qnx && _vidix=no
1548 sunos && _vidix=no
1551 # On QNX we must link to libph - Gabucino
1552 if qnx ; then
1553 _ld_arch="$_ld_arch -lph"
1556 # checking for a working awk, I'm using mawk first, because it's fastest - atmos
1557 _awk=
1558 if test "$_vidix" = yes ; then
1559 _awk_verc_fail=yes
1560 echocheck "awk"
1561 for _awk in mawk gawk nawk awk; do
1562 if ( $_awk 'BEGIN{testme();}function testme(){print"";}' ) >> "$TMPLOG" 2>&1; then
1563 _awk_verc_fail=no
1564 break
1566 done
1567 test "$_awk_verc_fail" = yes && _awk=no
1568 echores "$_awk"
1569 if test "$_awk_verc_fail" = yes; then
1570 echo "VIDIX needs awk, but no working implementation was found!"
1571 echo "Try the GNU version, which can be downloaded from:"
1572 echo "ftp://ftp.gnu.org/gnu/gawk/"
1573 echo "If you don't need VIDIX, you can use configure --disable-vidix instead."
1574 die "no awk"
1578 # If IRIX we must use ar instead of ranlib (not present on IRIX systems)
1579 if irix ; then
1580 _ranlib='ar -r'
1583 ######################
1584 # MAIN TESTS GO HERE #
1585 ######################
1588 echocheck "extra headers"
1589 if test "$_inc_extra" ; then
1590 echores "$_inc_extra"
1591 else
1592 echores "none"
1596 echocheck "extra libs"
1597 if test "$_ld_extra" ; then
1598 echores "$_ld_extra"
1599 else
1600 echores "none"
1604 # Checking for localization ...
1605 # CSAK EGY MARADHAT - A HEGYLAKO
1606 echocheck "i18n"
1607 if test "$_i18n" != no ; then
1608 cat > $TMPC <<EOF
1609 #include <libintl.h>
1610 int main(void) { gettext("test"); return 0; }
1612 _i18n=no
1613 _i18n_libs=""
1614 if test "$_i18n" = auto ; then
1615 cc_check && _i18n=yes
1616 else
1617 for i18n_lib in "" "-lintl"; do
1618 cc_check $i18n_lib && _i18n=yes && _i18n_libs=$i18n_lib && break
1619 done
1622 if test "$_i18n" = yes ; then
1623 _def_i18n='#define USE_I18N 1'
1624 else
1625 _def_i18n='#undef USE_I18N'
1627 if test -z "$_i18n_libs" ; then
1628 echores "$_i18n"
1629 else
1630 echores "$_i18n (using $_i18n_libs)"
1634 # Checking for setlocale() ...
1635 # CSAK EGY MARADHAT - A HEGYLAKO
1636 # Nemnem. a TV Maci !
1637 echocheck "setlocale()"
1638 if test "$_setlocale" = auto ; then
1639 cat > $TMPC <<EOF
1640 #include <locale.h>
1641 int main(void) { setlocale( LC_ALL,"" ); return 0; }
1643 _setlocale=no
1644 cc_check && _setlocale=yes
1646 if test "$_setlocale" = yes ; then
1647 _def_setlocale='#define USE_SETLOCALE 1'
1648 else
1649 _def_setlocale='#undef USE_SETLOCALE'
1651 echores "$_setlocale"
1654 echocheck "language"
1655 test -z "$_language" && _language=$LINGUAS
1656 _language=`echo $_language | sed 's/,/ /g'`
1657 echo $_language | grep all > /dev/null || LANGUAGES="$_language en"
1658 for i in $_language ; do
1659 test "$i" = all && i=en
1660 if test -f "help/help_mp-${i}.h" ; then
1661 _language=$i
1662 break
1663 else
1664 echo -n "$i not found, "
1665 _language=`echo $_language | sed "s/$i *//g"`
1667 done
1668 test -z "$_language" && _language=en
1669 for i in $LANGUAGES ; do
1670 if test -f "DOCS/$i/mplayer.1" ; then
1671 LANGUAGES=`echo $LANGUAGES | sed "s/$i *//2" | sed 's/ *$//'`
1672 else
1673 LANGUAGES=`echo $LANGUAGES | sed "s/$i *//g" | sed 's/ *$//'`
1675 done
1676 echores "using $_language (man pages: $LANGUAGES)"
1677 _mp_help="help/help_mp-${_language}.h"
1678 test -f $_mp_help || die "$_mp_help not found"
1680 echocheck "enable sighandler"
1681 if test "$_sighandler" = yes ; then
1682 _def_sighandler='#define ENABLE_SIGHANDLER 1'
1683 else
1684 _def_sighandler='#undef ENABLE_SIGHANDLER'
1686 echores "$_sighandler"
1688 echocheck "runtime cpudetection"
1689 if test "$_runtime_cpudetection" = yes ; then
1690 _def_runtime_cpudetection='#define RUNTIME_CPUDETECT 1'
1691 else
1692 _def_runtime_cpudetection='#undef RUNTIME_CPUDETECT'
1694 echores "$_runtime_cpudetection"
1697 echocheck "restrict keyword"
1698 for restrict_keyword in restrict __restrict __restrict__ ; do
1699 echo "void foo(char * $restrict_keyword p); int main(){}" > $TMPC
1700 if cc_check; then
1701 _def_restrict_keyword=$restrict_keyword
1702 break;
1704 done
1705 if [ -n "$_def_restrict_keyword" ]; then
1706 echores "$_def_restrict_keyword"
1707 else
1708 echores "none"
1712 echocheck "kstat"
1713 cat > $TMPC << EOF
1714 #include <kstat.h>
1715 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
1717 _kstat=no
1718 cc_check -lkstat && _kstat=yes
1719 if test "$_kstat" = yes ; then
1720 _ld_arch="-lkstat $_ld_arch"
1722 if test "$_kstat" = yes ; then
1723 _def_kstat="#define HAVE_LIBKSTAT 1"
1724 else
1725 _def_kstat="#undef HAVE_LIBKSTAT"
1727 echores "$_kstat"
1730 echocheck "posix4"
1731 # required for nanosleep on some systems
1732 cat > $TMPC << EOF
1733 #include <time.h>
1734 int main(void) { (void) nanosleep(0, 0); return 0; }
1736 _posix4=no
1737 cc_check -lposix4 && _posix4=yes
1738 if test "$_posix4" = yes ; then
1739 _ld_arch="-lposix4 $_ld_arch"
1741 echores "$_posix4"
1744 echocheck "lrintf"
1745 cat > $TMPC << EOF
1746 #include <math.h>
1747 int main(void) { (void) lrintf(0.0); return 0; }
1749 _lrintf=no
1750 cc_check -lm && _lrintf=yes
1751 if test "$_lrintf" = yes ; then
1752 _def_lrintf="#define HAVE_LRINTF 1"
1753 else
1754 _def_lrintf="#undef HAVE_LRINTF"
1756 echores "$_lrintf"
1759 echocheck "nanosleep"
1760 # also check for nanosleep
1761 cat > $TMPC << EOF
1762 #include <time.h>
1763 int main(void) { (void) nanosleep(0, 0); return 0; }
1765 _nanosleep=no
1766 cc_check $_ld_arch && _nanosleep=yes
1767 if test "$_nanosleep" = yes ; then
1768 _def_nanosleep='#define HAVE_NANOSLEEP 1'
1769 else
1770 _def_nanosleep='#undef HAVE_NANOSLEEP'
1772 echores "$_nanosleep"
1775 echocheck "socklib"
1776 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
1777 cat > $TMPC << EOF
1778 #include <netdb.h>
1779 int main(void) { (void) gethostbyname(0); return 0; }
1781 cc_check -lsocket && _ld_sock="-lsocket"
1782 cc_check -lnsl && _ld_sock="-lnsl"
1783 cc_check -lsocket -lnsl && _ld_sock="-lsocket -lnsl"
1784 if test "$_ld_sock" ; then
1785 echores "yes (using $_ld_sock)"
1786 else
1787 echores "no"
1791 _use_aton=no
1792 echocheck "inet_pton()"
1793 cat > $TMPC << EOF
1794 #include <sys/types.h>
1795 #include <sys/socket.h>
1796 #include <arpa/inet.h>
1797 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
1799 if cc_check $_ld_sock ; then
1800 # NOTE: Linux has libresolv but does not need it
1802 echores "yes (using $_ld_sock)"
1803 elif cc_check $_ld_sock -lresolv ; then
1804 # NOTE: needed for SunOS at least
1805 _ld_sock="$_ld_sock -lresolv"
1806 echores "yes (using $_ld_sock)"
1807 else
1808 echores "no (=> i'll try inet_aton next)"
1810 echocheck "inet_aton()"
1811 cat > $TMPC << EOF
1812 #include <sys/types.h>
1813 #include <sys/socket.h>
1814 #include <arpa/inet.h>
1815 int main(void) { (void) inet_aton(0, 0); return 0; }
1817 _use_aton=yes
1818 if cc_check $_ld_sock ; then
1819 # NOTE: Linux has libresolv but does not need it
1821 echores "yes (using $_ld_sock)"
1822 elif cc_check $_ld_sock -lresolv ; then
1823 # NOTE: needed for SunOS at least
1824 _ld_sock="$_ld_sock -lresolv"
1825 echores "yes (using $_ld_sock)"
1826 else
1827 _use_aton=no
1828 _streaming=no
1829 echores "no (=> streaming support disabled)"
1833 _def_use_aton='#undef USE_ATON'
1834 if test "$_use_aton" != no; then
1835 _def_use_aton='#define USE_ATON 1'
1839 echocheck "inttypes.h (required)"
1840 cat > $TMPC << EOF
1841 #include <inttypes.h>
1842 int main(void) { return 0; }
1844 _inttypes=no
1845 cc_check && _inttypes=yes
1846 if test "$_inttypes" = yes ; then
1847 # nothing to do
1849 else
1850 die "cannot find header inttypes.h (see DOCS/faq.html)"
1852 echores "$_inttypes"
1855 echocheck "word size"
1856 _mp_wordsize="#undef MP_WORDSIZE"
1857 cat > $TMPC << EOF
1858 #include <stdio.h>
1859 #include <sys/types.h>
1860 int main(void) { printf("%d\n", sizeof(size_t)*8); return 0; }
1862 cc_check && _wordsize=`$TMPO` && _mp_wordsize="#define MP_WORDSIZE $_wordsize"
1863 echores "$_wordsize"
1866 echocheck "stddef.h"
1867 cat > $TMPC << EOF
1868 #include <stddef.h>
1869 int main(void) { return 0; }
1871 _stddef=no
1872 cc_check && _stddef=yes
1873 if test "$_stddef" = yes ; then
1874 _def_stddef='#define HAVE_STDDEF_H 1'
1875 else
1876 _def_stddef='#undef HAVE_STDDEF_H'
1878 echores "$_stddef"
1881 echocheck "malloc.h"
1882 cat > $TMPC << EOF
1883 #include <malloc.h>
1884 int main(void) { (void) malloc(0); return 0; }
1886 _malloc=no
1887 cc_check && _malloc=yes
1888 if test "$_malloc" = yes ; then
1889 _def_malloc='#define HAVE_MALLOC_H 1'
1890 else
1891 _def_malloc='#undef HAVE_MALLOC_H'
1893 # malloc.h emits a warning in FreeBSD and OpenBSD
1894 (freebsd || openbsd) && _def_malloc='#undef HAVE_MALLOC_H'
1895 echores "$_malloc"
1898 echocheck "memalign()"
1899 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
1900 cat > $TMPC << EOF
1901 #include <malloc.h>
1902 int main (void) { (void) memalign(64, sizeof(char)); return 0; }
1904 _memalign=no
1905 cc_check && _memalign=yes
1906 if test "$_memalign" = yes ; then
1907 _def_memalign='#define HAVE_MEMALIGN 1'
1908 else
1909 _def_memalign='#undef HAVE_MEMALIGN'
1911 echores "$_memalign"
1914 echocheck "alloca.h"
1915 cat > $TMPC << EOF
1916 #include <alloca.h>
1917 int main(void) { (void) alloca(0); return 0; }
1919 _alloca=no
1920 cc_check && _alloca=yes
1921 if cc_check ; then
1922 _def_alloca='#define HAVE_ALLOCA_H 1'
1923 else
1924 _def_alloca='#undef HAVE_ALLOCA_H'
1926 echores "$_alloca"
1929 echocheck "mman.h"
1930 cat > $TMPC << EOF
1931 #include <sys/types.h>
1932 #include <sys/mman.h>
1933 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
1935 _mman=no
1936 cc_check && _mman=yes
1937 if test "$_mman" = yes ; then
1938 _def_mman='#define HAVE_SYS_MMAN_H 1'
1939 else
1940 _def_mman='#undef HAVE_SYS_MMAN_H'
1942 echores "$_mman"
1945 echocheck "dynamic loader"
1946 cat > $TMPC << EOF
1947 #include <dlfcn.h>
1948 int main(void) { dlopen(0, 0); dlclose(0); dlsym(0, 0); return 0; }
1950 _dl=no
1951 if cc_check ; then
1952 _dl=yes
1953 elif cc_check -ldl ; then
1954 _dl=yes
1955 _ld_dl='-ldl'
1957 if test "$_dl" = yes ; then
1958 _def_dl='#define HAVE_LIBDL 1'
1959 else
1960 _def_dl='#undef HAVE_LIBDL'
1962 echores "$_dl"
1965 echocheck "dynamic a/v plugins support"
1966 if test "$_dl" = no ; then
1967 _dynamic_plugins = no
1969 if test "$_dynamic_plugins" = yes ; then
1970 _def_dynamic_plugins='#define DYNAMIC_PLUGINS 1'
1971 else
1972 _def_dynamic_plugins='#undef DYNAMIC_PLUGINS'
1974 echores "$_dynamic_plugins"
1977 #echocheck "dynamic linking"
1978 # FIXME !! make this dynamic detection work and modify at the end (search _ld_dl_dynamic)
1979 # also gcc flags are different, but ld flags aren't (-Bdynamic/-Bstatic/-Bsymbolic)
1980 #cat > $TMPC << EOF
1981 #int main(void) { return 0; }
1982 #EOF
1983 #if cc_check -rdynamic ; then
1984 # _ld_dl_dynamic='-rdynamic'
1985 #elif cc_check -Bdynamic ; then
1986 # _ld_dl_dynamic='-Bdynamic'
1987 #elif cc_check ; then
1988 # _ld_dl_dynamic=''
1990 #echores "using $_ld_dl_dynamic"
1993 echocheck "pthread"
1994 cat > $TMPC << EOF
1995 #include <pthread.h>
1996 void* func(void *arg) { return arg; }
1997 int main(void) { pthread_t tid; return pthread_create (&tid, 0, func, 0) == 0 ? 0 : 1; }
1999 if ( cc_check && $TMPO ) ; then # QNX
2000 _ld_pthread=''
2001 elif ( cc_check -lpthread && $TMPO ) ; then
2002 _ld_pthread='-lpthread'
2003 elif ( cc_check -pthread && $TMPO ) ; then
2004 _ld_pthread='-pthread'
2005 else
2006 if test "$_ld_static" ; then
2007 # for crosscompilation, we cannot execute the program, be happy if we can link statically
2008 if ( cc_check -lpthread ) ; then
2009 _ld_pthread='-lpthread'
2010 elif ( cc_check -pthread ) ; then
2011 _ld_pthread='-pthread'
2012 else
2013 die "Static lib pthread not found (needed by Windows and networking stufff)."
2015 else
2016 die "Lib pthread not found (needed by Windows and networking stuff)."
2019 echores "yes (using $_ld_pthread)"
2022 echocheck "sys/soundcard.h"
2023 cat > $TMPC << EOF
2024 #include <sys/soundcard.h>
2025 int main(void) { return 0; }
2027 _sys_soundcard=no
2028 cc_check && _sys_soundcard=yes
2029 if test "$_sys_soundcard" = yes ; then
2030 _def_sys_soundcard='#define HAVE_SYS_SOUNDCARD_H 1'
2031 _inc_soundcard='#include <sys/soundcard.h>'
2032 else
2033 _def_sys_soundcard='#undef HAVE_SYS_SOUNDCARD_H'
2035 echores "$_sys_soundcard"
2037 if test "$_sys_soundcard" != yes ; then
2038 echocheck "soundcard.h"
2039 cat > $TMPC << EOF
2040 #include <soundcard.h>
2041 int main(void) { return 0; }
2043 _soundcard=no
2044 cc_check && _soundcard=yes
2045 if linux || test "$_ossaudio" != no ; then
2046 # use soundcard.h on Linux, or when OSS support is enabled
2047 echores "$_soundcard"
2048 else
2049 # we don't want to use soundcard.h on non-Linux if OSS support not enabled!
2050 echores "$_soundcard, but ignored!"
2051 _soundcard=no
2053 if test "$_soundcard" = yes ; then
2054 _def_soundcard='#define HAVE_SOUNDCARD_H 1'
2055 _inc_soundcard='#include <soundcard.h>'
2056 else
2057 _def_soundcard='#undef HAVE_SOUNDCARD_H'
2059 else
2060 _def_soundcard='#undef HAVE_SOUNDCARD_H'
2064 echocheck "sys/dvdio.h"
2065 cat > $TMPC << EOF
2066 #include <unistd.h>
2067 #include <sys/dvdio.h>
2068 int main(void) { return 0; }
2070 _dvdio=no
2071 cc_check && _dvdio=yes
2072 if test "$_dvdio" = yes ; then
2073 _def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
2074 else
2075 _def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
2077 echores "$_dvdio"
2080 echocheck "sys/cdio.h"
2081 cat > $TMPC << EOF
2082 #include <unistd.h>
2083 #include <sys/cdio.h>
2084 int main(void) { return 0; }
2086 _cdio=no
2087 cc_check && _cdio=yes
2088 if test "$_cdio" = yes ; then
2089 _def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
2090 else
2091 _def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
2093 echores "$_cdio"
2096 echocheck "linux/cdrom.h"
2097 cat > $TMPC << EOF
2098 #include <sys/types.h>
2099 #include <linux/cdrom.h>
2100 int main(void) { return 0; }
2102 _cdrom=no
2103 cc_check && _cdrom=yes
2104 if test "$_cdrom" = yes ; then
2105 _def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
2106 else
2107 _def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
2109 echores "$_cdrom"
2112 echocheck "dvd.h"
2113 cat > $TMPC << EOF
2114 #include <dvd.h>
2115 int main(void) { return 0; }
2117 _dvd=no
2118 cc_check && _dvd=yes
2119 if test "$_dvd" = yes ; then
2120 _def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
2121 else
2122 _def_dvd='#undef DVD_STRUCT_IN_DVD_H'
2124 echores "$_dvd"
2127 echocheck "BSDI dvd.h"
2128 cat > $TMPC << EOF
2129 #include <dvd.h>
2130 int main(void) { return 0; }
2132 _bsdi_dvd=no
2133 cc_check && _bsdi_dvd=yes
2134 if test "$_bsdi_dvd" = yes ; then
2135 _def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
2136 else
2137 _def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
2139 echores "$_bsdi_dvd"
2142 echocheck "HPUX SCSI header"
2143 cat > $TMPC << EOF
2144 #include <sys/scsi.h>
2145 int main(void) { return 0; }
2147 _hpux_scsi_h=no
2148 cc_check && _hpux_scsi_h=yes
2149 if test "$_hpux_scsi_h" = yes ; then
2150 _def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
2151 else
2152 _def_hpux_scsi_h='#undef HPUX_SCTL_IO'
2154 echores "$_hpux_scsi_h"
2157 echocheck "userspace SCSI headers (Solaris)"
2158 cat > $TMPC << EOF
2159 # include <unistd.h>
2160 # include <stropts.h>
2161 # include <sys/scsi/scsi_types.h>
2162 # include <sys/scsi/impl/uscsi.h>
2163 int main(void) { return 0; }
2165 _sol_scsi_h=no
2166 cc_check && _sol_scsi_h=yes
2167 if test "$_sol_scsi_h" = yes ; then
2168 _def_sol_scsi_h='#define SOLARIS_USCSI 1'
2169 else
2170 _def_sol_scsi_h='#undef SOLARIS_USCSI'
2172 echores "$_sol_scsi_h"
2175 echocheck "termcap"
2176 if test "$_termcap" = auto ; then
2177 cat > $TMPC <<EOF
2178 int main(void) { return 0; }
2180 _termcap=no
2181 cc_check -ltermcap && _termcap=yes
2183 if test "$_termcap" = yes ; then
2184 _def_termcap='#define USE_TERMCAP 1'
2185 _ld_termcap='-ltermcap'
2186 else
2187 _def_termcap='#undef USE_TERMCAP'
2189 echores "$_termcap"
2192 echocheck "termios"
2193 if test "$_termios" = auto ; then
2194 cat > $TMPC <<EOF
2195 #include <sys/termios.h>
2196 int main(void) { return 0; }
2198 _termios=no
2199 cc_check && _termios=yes
2200 _def_termios_h_name='sys/termios.h'
2202 # second test:
2203 if test "$_termios" = no ; then
2204 cat > $TMPC <<EOF
2205 #include <termios.h>
2206 int main(void) { return 0; }
2208 _termios=no
2209 cc_check && _termios=yes
2210 _def_termios_h_name='termios.h'
2213 if test "$_termios" = yes ; then
2214 _def_termios='#define HAVE_TERMIOS 1'
2215 _def_termios_h='#undef HAVE_TERMIOS_H'
2216 _def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
2218 if test "$_def_termios_h_name" = 'sys/termios.h' ; then
2219 _def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
2220 elif test "$_def_termios_h_name" = 'termios.h' ; then
2221 _def_termios_h='#define HAVE_TERMIOS_H 1'
2223 echores "yes (using $_def_termios_h_name)"
2224 else
2225 _def_termios='#undef HAVE_TERMIOS'
2226 _def_termios_h_name=''
2227 echores "no"
2231 echocheck "shm"
2232 if test "$_shm" = auto ; then
2233 cat > $TMPC << EOF
2234 #include <sys/types.h>
2235 #include <sys/shm.h>
2236 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
2238 _shm=no
2239 cc_check && _shm=yes
2241 if test "$_shm" = yes ; then
2242 _def_shm='#define HAVE_SHM 1'
2243 else
2244 _def_shm='#undef HAVE_SHM'
2246 echores "$_shm"
2249 # XXX: FIXME, add runtime checking
2250 echocheck "linux devfs"
2251 echores "$_linux_devfs"
2254 echocheck "scandir()"
2255 cat > $TMPC << EOF
2256 int main (void) { scandir("", 0, 0, 0); alphasort(0, 0); return 0; }
2258 _scandir=no
2259 cc_check && _scandir=yes
2260 if test "$_scandir" = yes ; then
2261 _def_scandir='#define HAVE_SCANDIR 1'
2262 else
2263 _def_scandir='#undef HAVE_SCANDIR'
2265 echores "$_scandir"
2268 echocheck "strsep()"
2269 cat > $TMPC << EOF
2270 #include <string.h>
2271 int main (void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
2273 _strsep=no
2274 cc_check && _strsep=yes
2275 if test "$_strsep" = yes ; then
2276 _def_strsep='#define HAVE_STRSEP 1'
2277 else
2278 _def_strsep='#undef HAVE_STRSEP'
2280 echores "$_strsep"
2283 echocheck "vsscanf()"
2284 cat > $TMPC << EOF
2285 #include <stdarg.h>
2286 int main(void) { vsscanf(); return 0; }
2288 _vsscanf=no
2289 cc_check && _vsscanf=yes
2290 if test "$_vsscanf" = yes ; then
2291 _def_vsscanf='#define HAVE_VSSCANF 1'
2292 else
2293 _def_vsscanf='#undef HAVE_VSSCANF'
2295 echores "$_vsscanf"
2298 echocheck "posix select()"
2299 cat > $TMPC << EOF
2300 #include <stdio.h>
2301 #include <stdlib.h>
2302 #include <sys/types.h>
2303 #include <string.h>
2304 #include <sys/time.h>
2305 #include <unistd.h>
2306 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
2308 _posix_select=no
2309 cc_check && _posix_select=yes
2310 if test "$_posix_select" = no ; then
2311 _def_no_posix_select='#define HAVE_NO_POSIX_SELECT 1'
2312 else
2313 _def_no_posix_select='#undef HAVE_NO_POSIX_SELECT'
2315 echores "$_posix_select"
2318 echocheck "gettimeofday()"
2319 cat > $TMPC << EOF
2320 #include <stdio.h>
2321 #include <sys/time.h>
2322 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
2324 _gettimeofday=no
2325 cc_check && _gettimeofday=yes
2326 if test "$_gettimeofday" = yes ; then
2327 _def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
2328 else
2329 _def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
2331 echores "$_gettimeofday"
2334 echocheck "glob()"
2335 cat > $TMPC << EOF
2336 #include <stdio.h>
2337 #include <glob.h>
2338 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
2340 _glob=no
2341 cc_check && _glob=yes
2342 if test "$_glob" = yes ; then
2343 _def_glob='#define HAVE_GLOB 1'
2344 else
2345 _def_glob='#undef HAVE_GLOB'
2347 echores "$_glob"
2350 echocheck "sys/sysinfo.h"
2351 cat > $TMPC << EOF
2352 #include <sys/sysinfo.h>
2353 int main(void) {
2354 struct sysinfo s_info;
2355 sysinfo(&s_info);
2356 return 0;
2359 _sys_sysinfo=no
2360 cc_check && _sys_sysinfo=yes
2361 if test "$_sys_sysinfo" = yes ; then
2362 _def_sys_sysinfo='#define HAVE_SYS_SYSINFO_H 1'
2363 _inc_sysinfo='#include <sys/sysinfo.h>'
2364 else
2365 _def_sys_sysinfo='#undef HAVE_SYS_SYSINFO_H'
2367 echores "$_sys_sysinfo"
2370 echocheck "Mac OS X APIs"
2371 if test "$_macosx" = auto ; then
2372 if darwin && ppc; then
2373 _macosx=yes
2374 else
2375 _macosx=no
2376 _def_macosx='#undef MACOSX'
2379 if test "$_macosx" = yes ; then
2380 cat > $TMPC <<EOF
2381 #include <Carbon/Carbon.h>
2382 #include <QuickTime/QuickTime.h>
2383 int main(void) {
2384 EnterMovies();
2385 ExitMovies();
2386 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
2389 if cc_check -framework Carbon -framework QuickTime ; then
2390 _macosx=yes
2391 _macosx_frameworks="-framework Carbon -framework QuickTime"
2392 _def_macosx='#define MACOSX 1'
2393 else
2394 _macosx=no
2395 _def_macosx='#undef MACOSX'
2398 echores "$_macosx"
2401 echocheck "Samba support (libsmbclient)"
2402 if test "$_smbsupport" = auto; then
2403 _smbsupport=no
2404 cat > $TMPC << EOF
2405 #include <libsmbclient.h>
2406 int main(void) { smbc_opendir("smb://"); return 0; }
2408 if cc_check -lsmbclient ; then
2409 # this is not working for me becouse it needs -ldl and some NIS (YP) libs
2410 # $_ld_dl and -lyp ? should be added
2411 _smbsupport=yes
2415 if test "$_smbsupport" = yes; then
2416 _ld_smb="-lsmbclient"
2417 _def_smbsupport="#define LIBSMBCLIENT"
2418 _inputmodules="smb $_inputmodules"
2419 else
2420 _def_smbsupport="#undef LIBSMBCLIENT"
2421 _noinputmodules="smb $_noinputmodules"
2423 echores "$_smbsupport"
2426 #########
2427 # VIDEO #
2428 #########
2431 echocheck "3dfx"
2432 if test "$_3dfx" = yes ; then
2433 _def_3dfx='#define HAVE_3DFX 1'
2434 _vosrc="$_vosrc vo_3dfx.c"
2435 _vomodules="3dfx $_vomodules"
2436 else
2437 _def_3dfx='#undef HAVE_3DFX'
2438 _novomodules="3dfx $_novomodules"
2440 echores "$_3dfx"
2443 echocheck "tdfxfb"
2444 if test "$_tdfxfb" = yes ; then
2445 _def_tdfxfb='#define HAVE_TDFXFB 1'
2446 _vosrc="$_vosrc vo_tdfxfb.c"
2447 _vomodules="tdfxfb $_vomodules"
2448 else
2449 _def_tdfxfb='#undef HAVE_TDFXFB'
2450 _novomodules="tdfxfb $_novomodules"
2452 echores "$_tdfxfb"
2454 echocheck "tdfxvid"
2455 if test "$_tdfxvid" = yes ; then
2456 _def_tdfxvid='#define HAVE_TDFX_VID 1'
2457 _vosrc="$_vosrc vo_tdfx_vid.c"
2458 _vomodules="tdfx_vid $_vomodules"
2459 else
2460 _def_tdfxvid='#undef HAVE_TDFX_VID'
2461 _novomodules="tdfx_vid $_novomodules"
2463 echores "$_tdfxfb"
2465 echocheck "DirectFB headers presence"
2466 if test -z "$_inc_directfb" ; then
2467 for I in /usr/include /usr/local/include; do
2468 if test -d "$I/directfb" && test -f "$I/directfb/directfb.h" ; then
2469 _inc_directfb="-I$I/directfb"
2470 echores "yes (using $_inc_directfb)"
2471 break
2473 if test -d "$I" && test -f "$I/directfb.h" ; then
2474 _inc_directfb="-I$I"
2475 echores "yes (using $_inc_directfb)"
2476 break
2478 done
2479 if test -z "$_inc_directfb" ; then
2480 _directfb=no
2481 echores "not found"
2483 else
2484 echores "yes (using $_inc_directfb)"
2486 if test "$_inc_directfb" = "-I/usr/include" ; then
2487 _inc_directfb=""
2490 echocheck "DirectFB"
2491 if test "$_directfb" = auto ; then
2492 _directfb=no
2493 cat > $TMPC <<EOF
2494 #include <directfb.h>
2495 int main(void) { IDirectFB *foo; return 0; }
2497 linux && test -c /dev/fb0 && cc_check $_inc_directfb -ldirectfb && _directfb=yes
2500 if test "$_directfb" = yes; then
2501 cat > $TMPC <<EOF
2502 #include <directfb.h>
2503 int main(void) {
2504 printf ("%i",(directfb_major_version*100+directfb_minor_version)*100+directfb_micro_version);
2505 return 0;
2508 if cc_check $_inc_directfb -ldirectfb && "$TMPO" >> "$TMPLOG" ; then
2509 _directfb_version=`"$TMPO"`
2510 _def_directfb_version="#define DIRECTFBVERSION $_directfb_version"
2511 echores "yes ($_directfb_version)"
2512 else
2513 _directfb=no
2514 echores "no (failed to get version)"
2516 else
2517 echores "$_directfb"
2520 if test "$_directfb" = yes ; then
2521 _def_directfb='#define HAVE_DIRECTFB 1'
2522 if test "$_directfb_version" -ge 913; then
2523 _vosrc="$_vosrc vo_directfb2.c"
2524 else
2525 _vosrc="$_vosrc vo_directfb.c"
2527 _vomodules="directfb $_vomodules"
2528 _ld_directfb='-ldirectfb'
2530 if test "$_directfb_version" -ge 914; then
2531 _vosrc="$_vosrc vo_dfbmga.c"
2532 _vomodules="dfbmga $_vomodules"
2534 else
2535 _def_directfb='#undef HAVE_DIRECTFB'
2536 _novomodules="directfb $_novomodules"
2537 _inc_directfb=""
2541 echocheck "X11 headers presence"
2542 if test -z "$_inc_x11" ; then
2543 for I in /usr/X11/include /usr/X11R6/include /usr/include/X11R6 /usr/include /usr/openwin/include ; do
2544 if test -d "$I/X11" && test -f "$I/X11/Xlib.h" ; then
2545 _inc_x11="-I$I"
2546 echores "yes (using $I)"
2547 break
2549 done
2550 if test -z "$_inc_x11" ; then
2551 _x11=no
2552 echores "not found (check if the dev(el) packages are installed)"
2554 else
2555 echores "yes (using $_inc_x11)"
2557 if test "$_inc_x11" = "-I/usr/include" ; then
2558 _inc_x11=""
2562 echocheck "X11 libs presence"
2563 if test -z "$_ld_x11" ; then
2564 for I in /usr/X11R6/lib /usr/lib/X11R6 /usr/X11/lib /usr/lib32 /usr/openwin/lib /usr/X11R6/lib64 ; do
2565 if test -d "$I" && ( test -f "$I/libX11.so" || test -f "$I/libX11.a" ) ; then
2566 _ld_x11="-L$I"
2567 echores "yes (using $I)"
2568 break;
2570 done
2571 if test -z "$_ld_x11" ; then
2572 _x11=no
2573 echores "not found (check if the dev(el) packages are installed)"
2575 else
2576 echores "yes (using $_ld_x11)"
2578 _ld_x11="$_ld_x11 -lXext -lX11 $_ld_sock"
2581 echocheck "X11"
2582 if test "$_x11" != no ; then
2583 cat > $TMPC <<EOF
2584 #include <X11/Xlib.h>
2585 #include <X11/Xutil.h>
2586 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
2588 _x11=no
2589 cc_check $_inc_x11 $_ld_x11 && _x11=yes
2591 if test "$_x11" = yes ; then
2592 _def_x11='#define HAVE_X11 1'
2593 _vosrc="$_vosrc x11_common.c vo_x11.c vo_xover.c"
2594 _vomodules="x11 xover $_vomodules"
2595 else
2596 _def_x11='#undef HAVE_X11'
2597 _inc_x11=''
2598 _ld_x11=''
2599 _novomodules="x11 $_novomodules"
2601 echores "$_x11"
2604 echocheck "DPMS"
2605 _xdpms3=no
2606 if test "$_x11" = yes ; then
2607 cat > $TMPC <<EOF
2608 #include <X11/Xmd.h>
2609 #include <X11/Xlib.h>
2610 #include <X11/Xutil.h>
2611 #include <X11/Xatom.h>
2612 #include <X11/extensions/dpms.h>
2613 int main(void) {
2614 (void) DPMSQueryExtension(0, 0, 0);
2617 cc_check $_inc_x11 -lXdpms $_ld_x11 && _xdpms3=yes
2619 _xdpms4=no
2620 if test "$_x11" = yes ; then
2621 cat > $TMPC <<EOF
2622 #include <X11/Xlib.h>
2623 #include <X11/extensions/dpms.h>
2624 int main(void) {
2625 (void) DPMSQueryExtension(0, 0, 0);
2628 cc_check $_inc_x11 $_ld_x11 && _xdpms4=yes
2630 if test "$_xdpms4" = yes ; then
2631 _def_xdpms='#define HAVE_XDPMS 1'
2632 echores "yes (using Xdpms 4)"
2633 elif test "$_xdpms3" = yes ; then
2634 _def_xdpms='#define HAVE_XDPMS 1'
2635 _ld_x11="-lXdpms $_ld_x11"
2636 echores "yes (using Xdpms 3)"
2637 else
2638 _def_xdpms='#undef HAVE_XDPMS'
2639 echores "no"
2643 echocheck "Xv"
2644 if test "$_x11" = yes && test "$_xv" != no ; then
2645 cat > $TMPC <<EOF
2646 #include <X11/Xlib.h>
2647 #include <X11/extensions/Xvlib.h>
2648 int main(void) { (void) XvGetPortAttribute(0, 0, 0, 0); return 0; }
2650 _xv=no
2651 cc_check $_inc_x11 -lXv $_ld_x11 && _xv=yes
2652 else
2653 _xv=no
2655 if test "$_xv" = yes ; then
2656 _def_xv='#define HAVE_XV 1'
2657 _ld_xv='-lXv'
2658 _vosrc="$_vosrc vo_xv.c"
2659 _vomodules="xv $_vomodules"
2660 else
2661 _def_xv='#undef HAVE_XV'
2662 _novomodules="xv $_novomodules"
2664 echores "$_xv"
2667 echocheck "Xinerama"
2668 if test "$_x11" = yes && test "$_xinerama" != no ; then
2669 cat > $TMPC <<EOF
2670 #include <X11/Xlib.h>
2671 #include <X11/extensions/Xinerama.h>
2672 int main(void) { (void) XineramaIsActive(0); return 0; }
2674 _xinerama=no
2675 cc_check $_inc_x11 -lXinerama $_ld_x11 && _xinerama=yes
2676 else
2677 _xinerama=no
2679 if test "$_xinerama" = yes ; then
2680 _def_xinerama='#define HAVE_XINERAMA 1'
2681 _ld_xinerama='-lXinerama'
2682 else
2683 _def_xinerama='#undef HAVE_XINERAMA'
2685 echores "$_xinerama"
2688 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
2689 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
2690 # named 'X extensions' or something similar.
2691 # This check may be useful for future mplayer versions (to change resolution)
2692 # If you run into problems, remove '-lXxf86vm'.
2693 echocheck "Xxf86vm"
2694 if test "$_x11" = yes && test "$_vm" != no ; then
2695 cat > $TMPC <<EOF
2696 #include <X11/Xlib.h>
2697 #include <X11/extensions/xf86vmode.h>
2698 #include <X11/XF86keysym.h>
2699 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
2701 _vm=no
2702 cc_check $_inc_x11 -lXxf86vm $_ld_x11 && _vm=yes
2703 else
2704 _vm=no
2706 if test "$_vm" = yes ; then
2707 _def_vm='#define HAVE_XF86VM 1'
2708 _ld_vm='-lXxf86vm'
2709 else
2710 _def_vm='#undef HAVE_XF86VM'
2712 echores "$_vm"
2715 echocheck "DGA"
2716 # Version 2 is preferred to version 1 if available
2717 if test "$_dga" = auto ; then
2718 cat > $TMPC << EOF
2719 #include <X11/Xlib.h>
2720 #include <X11/extensions/xf86dga.h>
2721 int main (void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
2723 _dga=no
2724 cc_check $_inc_x11 -lXxf86dga -lXxf86vm $_ld_x11 && _dga=1
2726 cat > $TMPC << EOF
2727 #include <X11/Xlib.h>
2728 #include <X11/extensions/xf86dga.h>
2729 int main (void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
2731 cc_check $_inc_x11 -lXxf86dga $_ld_x11 && _dga=2
2734 _def_dga='#undef HAVE_DGA'
2735 _def_dga2='#undef HAVE_DGA2'
2736 if test "$_dga" = 1 ; then
2737 _def_dga='#define HAVE_DGA 1'
2738 _ld_dga='-lXxf86dga'
2739 _vosrc="$_vosrc vo_dga.c"
2740 _vomodules="dga $_vomodules"
2741 echores "yes (using DGA 1.0)"
2742 elif test "$_dga" = 2 ; then
2743 _def_dga='#define HAVE_DGA 1'
2744 _def_dga2='#define HAVE_DGA2 1'
2745 _ld_dga='-lXxf86dga'
2746 _vosrc="$_vosrc vo_dga.c"
2747 _vomodules="dga $_vomodules"
2748 echores "yes (using DGA 2.0)"
2749 elif test "$_dga" = no ; then
2750 echores "no"
2751 _novomodules="dga $_novomodules"
2752 else
2753 die "DGA version must be 1 or 2"
2757 echocheck "OpenGL"
2758 cygwin && _gl=no
2759 #Note: this test is run even with --enable-gl since we autodetect $_ld_gl
2760 if test "$_x11" = yes && test "$_gl" != no ; then
2761 cat > $TMPC << EOF
2762 #include <GL/gl.h>
2763 int main(void) { return 0; }
2765 _gl=no
2766 if cc_check $_inc_x11 $_ld_x11 -lGL -lm ; then
2767 _gl=yes
2768 _ld_gl="-lGL"
2769 elif cc_check $_inc_x11 $_ld_x11 -lGL -lm $_ld_pthread ; then
2770 _gl=yes
2771 _ld_gl="-lGL $_ld_pthread"
2773 else
2774 _gl=no
2776 if test "$_gl" = yes ; then
2777 _def_gl='#define HAVE_GL 1'
2778 _vosrc="$_vosrc vo_gl.c vo_gl2.c"
2779 _vomodules="opengl $_vomodules"
2780 else
2781 _def_gl='#undef HAVE_GL'
2782 _novomodules="opengl $_novomodules"
2784 echores "$_gl"
2787 echocheck "/dev/mga_vid"
2788 if test "$_mga" = auto ; then
2789 _mga=no
2790 test -c /dev/mga_vid && _mga=yes
2792 if test "$_mga" = yes ; then
2793 _def_mga='#define HAVE_MGA 1'
2794 _vosrc="$_vosrc vo_mga.c"
2795 _vomodules="mga $_vomodules"
2796 else
2797 _def_mga='#undef HAVE_MGA'
2798 _novomodules="mga $_novomodules"
2800 echores "$_mga"
2803 # echocheck "syncfb"
2804 # _syncfb=no
2805 # test "$_mga" = yes && _syncfb=yes
2806 # if test "$_syncfb" = yes ; then
2807 # _def_syncfb='#define HAVE_SYNCFB 1'
2808 # _vosrc="$_vosrc vo_syncfb.c"
2809 # else
2810 # _def_syncfb='#undef HAVE_SYNCFB'
2811 # fi
2812 # echores "$_syncfb"
2815 echocheck "xmga"
2816 if test "$_xmga" = auto ; then
2817 _xmga=no
2818 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
2820 if test "$_xmga" = yes ; then
2821 _def_xmga='#define HAVE_XMGA 1'
2822 _vosrc="$_vosrc vo_xmga.c"
2823 _vomodules="xmga $_vomodules"
2824 else
2825 _def_xmga='#undef HAVE_XMGA'
2826 _novomodules="xmga $_novomodules"
2828 echores "$_xmga"
2831 echocheck "GGI"
2832 if test "$_ggi" = auto ; then
2833 cat > $TMPC << EOF
2834 #include <ggi/ggi.h>
2835 int main(void) { return 0; }
2837 _ggi=no
2838 cc_check -lggi && _ggi=yes
2840 if test "$_ggi" = yes ; then
2841 _def_ggi='#define HAVE_GGI 1'
2842 _ld_ggi='-lggi'
2843 _vosrc="$_vosrc vo_ggi.c"
2844 _vomodules="ggi $_vomodules"
2845 else
2846 _def_ggi='#undef HAVE_GGI'
2847 _novomodules="ggi $_novomodules"
2849 echores "$_ggi"
2852 echocheck "AA"
2853 if test "$_aa" = auto ; then
2854 cat > $TMPC << EOF
2855 #include <aalib.h>
2856 int main(void) { (void) aa_init(0, 0, 0); return 0; }
2858 _aa=no
2859 cc_check -laa && _aa=yes
2861 if test "$_aa" = yes ; then
2862 _def_aa='#define HAVE_AA 1'
2863 if cygwin ; then
2864 _ld_aa=`aalib-config --libs | cut -d " " -f 2,5,6`
2865 else
2866 _ld_aa='-laa'
2868 _vosrc="$_vosrc vo_aa.c"
2869 _vomodules="aa $_vomodules"
2870 else
2871 _def_aa='#undef HAVE_AA'
2872 _novomodules="aa $_novomodules"
2874 echores "$_aa"
2877 echocheck "SVGAlib"
2878 if test "$_svga" = auto ; then
2879 cat > $TMPC << EOF
2880 #include <vga.h>
2881 #include <vgagl.h>
2882 int main(void) { return 0; }
2884 _svga=no
2885 cc_check -lvgagl -lvga -lm && _svga=yes
2887 if test "$_svga" = yes ; then
2888 _def_svga='#define HAVE_SVGALIB 1'
2889 _ld_svga='-lvgagl -lvga -lm'
2890 _vosrc="$_vosrc vo_svga.c"
2891 _vomodules="svga $_vomodules"
2892 else
2893 _def_svga='#undef HAVE_SVGALIB'
2894 _novomodules="svga $_novomodules"
2896 echores "$_svga"
2899 echocheck "FBDev"
2900 if test "$_fbdev" = auto ; then
2901 _fbdev=no
2902 linux && test -c /dev/fb0 && _fbdev=yes
2904 if test "$_fbdev" = yes ; then
2905 _def_fbdev='#define HAVE_FBDEV 1'
2906 _vosrc="$_vosrc vo_fbdev.c"
2907 _vomodules="fbdev $_vomodules"
2909 if test "$_fbdev_nocopy" = yes ; then
2910 _def_fbdev_nocopy='#define USE_CONVERT2FB 1'
2912 else
2913 _def_fbdev='#undef HAVE_FBDEV'
2914 _def_fbdev_nocopy='#undef USE_CONVERT2FB'
2915 _novomodules="fbdev $_novomodules"
2917 echores "$_fbdev"
2921 echocheck "DVB"
2922 if test "$_dvb" != no ; then
2923 _dvb=no
2924 cat >$TMPC << EOF
2925 #include <sys/poll.h>
2926 #include <sys/ioctl.h>
2927 #include <stdio.h>
2928 #include <time.h>
2929 #include <unistd.h>
2931 #include <ost/dmx.h>
2932 #include <ost/frontend.h>
2933 #include <ost/sec.h>
2934 #include <ost/video.h>
2935 #include <ost/audio.h>
2936 int main(void) {return 0;}
2938 if cc_check ; then
2939 _dvb=yes
2940 echores "yes"
2941 else
2942 for I in "-I/usr/src/DVB/ost/include" "$_inc_extra/ost/include" ; do
2943 if cc_check "$I" ; then
2944 _dvb=yes
2945 _inc_dvb="$I"
2946 echores "yes (using $_inc_dvb)"
2947 break
2949 done
2950 test "$_dvb" = no && echores "no (specify path to DVB/ost/include with --with-extraincdir=DIR)"
2952 else
2953 echores "no"
2955 if test "$_dvb" = yes ; then
2956 _def_dvb='#define HAVE_DVB 1'
2957 _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
2958 _aomodules="mpegpes(dvb) $_aomodules"
2959 _vomodules="mpegpes(dvb) $_vomodules"
2961 if test "$_dvbhead" != no ; then
2962 echocheck "DVB HEAD"
2963 if test "$_dvbhead" != no ; then
2964 _dvbhead=no
2966 cat >$TMPC << EOF
2967 #include <sys/poll.h>
2968 #include <sys/ioctl.h>
2969 #include <stdio.h>
2970 #include <time.h>
2971 #include <unistd.h>
2973 #include <linux/dvb/dmx.h>
2974 #include <linux/dvb/frontend.h>
2975 #include <linux/dvb/video.h>
2976 #include <linux/dvb/audio.h>
2977 int main(void) {return 0;}
2979 if cc_check ; then
2980 _dvbhead=yes
2981 echores "yes"
2982 else
2983 for I in "-I/usr/src/DVB/include" "$_inc_extra/include/linux" ; do
2984 if cc_check "$I" ; then
2985 _dvbhead=yes
2986 _inc_dvb="$I"
2987 echores "yes (using $_inc_dvb)"
2988 break
2990 done
2991 test "$_dvbhead" = no && echores "no (specify path to DVB/include (HEAD Version) with --with-extraincdir=DIR)"
2993 else
2994 echores "no"
2996 if test "$_dvbhead" = yes ; then
2997 _def_dvb='#define HAVE_DVB_HEAD 1'
2998 _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
2999 _aomodules="mpegpes(dvb) $_aomodules"
3000 _vomodules="mpegpes(dvb) $_vomodules"
3003 if test "$_dvbhead" = no && test "$_dvb" = no ; then
3004 _def_dvb='#undef HAVE_DVB'
3005 _def_dvb_in='#undef HAS_DVBIN_SUPPORT '
3006 _aomodules="mpegpes(file) $_aomodules"
3007 _vomodules="mpegpes(file) $_vomodules"
3010 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
3011 _dvbin=yes
3012 else
3013 _dvbin=no
3016 echocheck "PNG support"
3017 if test "$_png" = auto ; then
3018 _png=no
3019 if irix ; then
3020 # Don't check for -lpng on irix since it has its own libpng
3021 # incompatible with the GNU libpng
3022 echores "disabled on irix (not GNU libpng)"
3023 else
3024 cat > $TMPC << EOF
3025 #include <png.h>
3026 #include <string.h>
3027 int main(void) {
3028 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
3029 printf("libpng: %s\n", png_libpng_ver);
3030 return (strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver));
3033 if cc_check -lpng -lz -lm ; then
3034 if "$TMPO" >> "$TMPLOG" ; then
3035 _png=yes
3036 echores yes
3037 else
3038 echores "no (mismatch of library and header versions)"
3040 else
3041 echores no
3044 else
3045 echores "$_png"
3047 if test "$_png" = yes ; then
3048 _def_png='#define HAVE_PNG 1'
3049 _ld_png='-lpng -lz'
3050 _vosrc="$_vosrc vo_png.c"
3051 _vomodules="png $_vomodules"
3052 _mkf_png="yes"
3053 else
3054 _def_png='#undef HAVE_PNG'
3055 _novomodules="png $_novomodules"
3056 _mkf_png="no"
3059 echocheck "JPEG support"
3060 if test "$_jpg" = auto ; then
3061 _jpg=no
3062 cat > $TMPC << EOF
3063 #include <stdio.h>
3064 #include <stdlib.h>
3065 #include <setjmp.h>
3066 #include <string.h>
3067 #include <jpeglib.h>
3068 int main(void) {
3069 return 0;
3072 if cc_check -ljpeg -lm ; then
3073 if "$TMPO" >> "$TMPLOG" ; then
3074 _jpg=yes
3078 echores "$_jpg"
3080 if test "$_jpg" = yes ; then
3081 _def_jpg='#define HAVE_JPEG 1'
3082 _vosrc="$_vosrc vo_jpeg.c"
3083 _vomodules="jpeg $_vomodules"
3084 _ld_jpg="-ljpeg"
3085 _mkf_jpg="yes"
3086 else
3087 _def_jpg='#undef HAVE_JPEG'
3088 _novomodules="jpeg $_novomodules"
3089 _mkf_jpg="no"
3093 echocheck "GIF support"
3094 if test "$_gif" = auto ; then
3095 _gif=no
3096 cat > $TMPC << EOF
3097 #include <gif_lib.h>
3098 int main(void) {
3099 return 0;
3102 if cc_check -lungif && "$TMPO" >> "$TMPLOG" ; then
3103 _gif=yes
3104 _ld_gif="-lungif"
3105 elif cc_check -lungif $_ld_x11 && "$TMPO" >> "$TMPLOG" ; then
3106 _gif=yes
3107 _ld_gif="-lungif $_ld_x11"
3108 elif cc_check -lgif && "$TMPO" >> "$TMPLOG" ; then
3109 _gif=yes
3110 _ld_gif="-lgif"
3111 elif cc_check -lgif $_ld_x11 && "$TMPO" >> "$TMPLOG" ; then
3112 _gif=yes
3113 _ld_gif="-lgif $_ld_x11"
3117 if test "$_gif" = yes ; then
3118 _def_gif='#define HAVE_GIF 1'
3119 _vosrc="$_vosrc vo_gif89a.c"
3120 _codecmodules="gif $_codecmodules"
3121 _vomodules="gif89a $_vomodules"
3122 _mkf_gif="yes"
3123 _gif="yes (old version, some encoding functions disabled)"
3124 _def_gif_4='#undef HAVE_GIF_4'
3126 cat > $TMPC << EOF
3127 #include <signal.h>
3128 #include <gif_lib.h>
3129 void catch() { exit(1); }
3130 int main(void) {
3131 signal(SIGSEGV, catch); // catch segfault
3132 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
3133 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
3134 return 0;
3137 if cc_check "$_ld_gif" && ( "$TMPO" ) >>"$TMPLOG" 2>&1 ; then
3138 _def_gif_4='#define HAVE_GIF_4 1'
3139 _gif="yes"
3141 else
3142 _def_gif='#undef HAVE_GIF'
3143 _def_gif_4='#undef HAVE_GIF_4'
3144 _novomodules="gif89a $_novomodules"
3145 _nocodecmodules="gif $_codecmodules"
3146 _mkf_gif="no"
3148 echores "$_gif"
3151 case "$_gif" in yes*)
3152 echocheck "broken giflib workaround"
3153 _def_gif_tvt_hack='#define HAVE_GIF_TVT_HACK 1'
3155 cat > $TMPC << EOF
3156 #include <gif_lib.h>
3157 int main(void) {
3158 GifFileType gif;
3159 printf("UserData is at address %p\n", gif.UserData);
3160 return 0;
3163 if cc_check "$_ld_gif" && ( "$TMPO" ) >>"$TMPLOG" 2>&1 ; then
3164 _def_gif_tvt_hack='#undef HAVE_GIF_TVT_HACK'
3165 echores "disabled"
3166 else
3167 echores "enabled"
3170 esac
3173 if test "$_vesa" != no ; then
3174 echocheck "VESA support"
3175 if x86 && linux ; then
3176 _def_vesa='#define HAVE_VESA 1'
3177 _vosrc="$_vosrc vo_vesa.c vesa_lvo.c"
3178 _vomodules="vesa $_vomodules"
3179 echores "yes"
3180 else
3181 _def_vesa='#undef HAVE_VESA'
3182 _novomodules="vesa $_novomodules"
3183 echores "no (not supported on this OS/architecture)"
3185 else
3186 _def_vesa='#undef HAVE_VESA'
3190 #################
3191 # VIDEO + AUDIO #
3192 #################
3195 echocheck "SDL"
3196 if test -z "$_sdlconfig" ; then
3197 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
3198 _sdlconfig="sdl-config"
3199 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
3200 _sdlconfig="sdl11-config"
3201 else
3202 _sdlconfig=false
3205 if test "$_sdl" = auto || test "$_sdl" = yes ; then
3206 cat > $TMPC << EOF
3207 #include <SDL.h>
3208 int main(int argc, char *argv[]) { return 0; }
3210 _sdl=no
3211 if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
3212 if cc_check `$_sdlconfig --cflags` `$_sdlconfig --libs` >>"$TMPLOG" 2>&1 ; then
3213 _sdlversion=`$_sdlconfig --version | sed 's/[^0-9]//g'`
3214 if test "$_sdlversion" -gt 116 ; then
3215 if test "$_sdlversion" -lt 121 ; then
3216 _def_sdlbuggy='#define BUGGY_SDL'
3217 else
3218 _def_sdlbuggy='#undef BUGGY_SDL'
3220 _sdl=yes
3221 else
3222 _sdl=outdated
3227 if test "$_sdl" = yes ; then
3228 _def_sdl='#define HAVE_SDL 1'
3229 if cygwin ; then
3230 _ld_sdl=`$_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/`
3231 _inc_sdl=`$_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/`
3232 else
3233 _ld_sdl=`$_sdlconfig --libs`
3234 _inc_sdl=`$_sdlconfig --cflags`
3236 _vosrc="$_vosrc vo_sdl.c"
3237 _vomodules="sdl $_vomodules"
3238 _aosrc="$_aosrc ao_sdl.c"
3239 _aomodules="sdl $_aomodules"
3240 echores "yes (using $_sdlconfig)"
3241 else
3242 _def_sdl='#undef HAVE_SDL'
3243 _novomodules="sdl $_novomodules"
3244 _noaomodules="sdl $_noaomodules"
3245 echores "no"
3248 echocheck "Windows waveout"
3249 if test "$_win32waveout" = auto ; then
3250 cat > $TMPC << EOF
3251 #include <windows.h>
3252 #include <mmsystem.h>
3253 int main(void) { return 0; }
3255 _win32waveout=no
3256 cc_check -lwinmm && _win32waveout=yes
3258 if test "$_win32waveout" = yes ; then
3259 _def_win32waveout='#define HAVE_WIN32WAVEOUT 1'
3260 _ld_win32libs="-lwinmm $_ld_win32libs"
3261 _aosrc="$_aosrc ao_win32.c"
3262 _aomodules="win32 $_aomodules"
3263 else
3264 _def_win32waveout='#undef HAVE_WIN32WAVEOUT'
3265 _noaomodules="win32 $_noaomodules"
3267 echores "$_win32waveout"
3269 echocheck "Directx"
3270 if test "$_directx" = auto ; then
3271 cat > $TMPC << EOF
3272 #include <windows.h>
3273 #include <ddraw.h>
3274 int main(void) { return 0; }
3276 _directx=no
3277 cc_check -lgdi32 && _directx=yes
3279 if test "$_directx" = yes ; then
3280 _def_directx='#define HAVE_DIRECTX 1'
3281 _ld_win32libs="-lgdi32 $_ld_win32libs"
3282 _vosrc="$_vosrc vo_directx.c"
3283 _vomodules="directx $_vomodules"
3284 else
3285 _def_directx='#undef HAVE_DIRECTX'
3286 _novomodules="directx $_novomodules"
3288 echores "$_directx"
3290 echocheck "NAS"
3291 if test "$_nas" = auto || test "$_nas" = yes ; then
3292 cat > $TMPC << EOF
3293 #include <audio/audiolib.h>
3294 int main(void) { return 0; }
3296 _nas=no
3297 cc_check -laudio $_inc_x11 -lXt $_ld_x11 -lm && _nas=yes
3299 if test "$_nas" = yes ; then
3300 _def_nas='#define HAVE_NAS 1'
3301 _ld_nas="-laudio -lXt $_ld_x11"
3302 _aosrc="$_aosrc ao_nas.c"
3303 _aomodules="nas $_aomodules"
3304 else
3305 _noaomodules="nas $_noaomodules"
3306 _def_nas='#undef HAVE_NAS'
3308 echores "$_nas"
3310 echocheck "DXR2"
3311 if test "$_dxr2" = auto; then
3312 _dxr2=no
3313 for _inc_dxr2 in "$_inc_dxr2" \
3314 "-I/usr/local/include/dxr2" \
3315 "-I/usr/include/dxr2"; do
3316 cat > $TMPC << EOF
3317 #include <dxr2ioctl.h>
3318 int main(void) { return 0; }
3320 cc_check $_inc_dxr2 && _dxr2=yes && break
3321 done
3323 if test "$_dxr2" = yes; then
3324 _def_dxr2='#define HAVE_DXR2 1'
3325 _vosrc="$_vosrc vo_dxr2.c"
3326 _aosrc="$_aosrc ao_dxr2.c"
3327 _aomodules="dxr2 $_aomodules"
3328 _vomodules="dxr2 $_vomodules"
3329 echores "yes (using $_inc_dxr2)"
3330 else
3331 _def_dxr2='#undef HAVE_DXR2'
3332 _noaomodules="dxr2 $_noaomodules"
3333 _novomodules="dxr2 $_novomodules"
3334 _inc_dxr2=""
3335 echores "no"
3338 echocheck "DXR3/H+"
3339 if test "$_dxr3" = auto ; then
3340 cat > $TMPC << EOF
3341 #include <linux/em8300.h>
3342 int main(void) { return 0; }
3344 _dxr3=no
3345 cc_check && _dxr3=yes
3347 if test "$_dxr3" = yes ; then
3348 _def_dxr3='#define HAVE_DXR3 1'
3349 _vosrc="$_vosrc vo_dxr3.c"
3350 _vomodules="dxr3 $_vomodules"
3351 else
3352 _def_dxr3='#undef HAVE_DXR3'
3353 _novomodules="dxr3 $_novomodules"
3354 if test "$_mp1e" = auto ; then
3355 # we don't need mp1e
3356 _mp1e=no
3359 echores "$_dxr3"
3361 echocheck "libmp1e"
3362 if test "$_mmx" = no ; then
3363 # mp1e REQUIRES mmx!
3364 _mp1e=no
3366 if test "$_mp1e" != no ; then
3367 _mp1e=yes
3368 _def_mp1e='#define USE_MP1E'
3369 _ld_mp1e='libmp1e/libmp1e.a'
3370 _dep_mp1e='libmp1e/libmp1e.a'
3371 else
3372 _mp1e=no
3373 _def_mp1e='#undef USE_MP1E'
3374 _ld_mp1e=""
3375 _dep_mp1e=''
3377 echores "$_mp1e"
3380 echocheck "libfame"
3381 if test "$_fame" = auto ; then
3382 _fame=no
3383 test "$_dxr2" = yes && _fame=auto
3384 test "$_dxr3" = yes && _fame=auto
3385 test "$_dvb" = yes && _fame=auto
3387 if test "$_fame" = auto ; then
3388 _fame=no
3389 if test -d libfame && test -f libfame/fame.h ; then
3390 # disable fame on cygwin as no sense to port - atmos
3391 cygwin || _fame=yes
3392 echores $_fame
3393 else
3394 echores "no (no fame dir)"
3396 else
3397 echores "$_fame"
3400 _def_fame='#undef USE_LIBFAME'
3401 if test "$_fame" = yes ; then
3402 _def_fame='#define USE_LIBFAME 1'
3403 _ld_fame='libfame/libfame.a'
3407 #########
3408 # AUDIO #
3409 #########
3412 echocheck "OSS Audio"
3413 if test "$_ossaudio" = auto ; then
3414 cat > $TMPC << EOF
3415 #include <sys/ioctl.h>
3416 $_inc_soundcard
3417 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
3419 _ossaudio=no
3420 cc_check && _ossaudio=yes
3422 if test "$_ossaudio" = yes ; then
3423 _def_ossaudio='#define USE_OSS_AUDIO 1'
3424 _aosrc="$_aosrc ao_oss.c"
3425 _aomodules="oss $_aomodules"
3426 if test "$_linux_devfs" = yes; then
3427 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
3428 _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
3429 else
3430 cat > $TMPC << EOF
3431 #include <sys/ioctl.h>
3432 $_inc_soundcard
3433 #ifdef OPEN_SOUND_SYSTEM
3434 int main(void) { return 0; }
3435 #else
3436 #error Not the real thing
3437 #endif
3439 _real_ossaudio=no
3440 cc_check && _real_ossaudio=yes
3441 if test "$_real_ossaudio" = yes; then
3442 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
3443 elif netbsd || openbsd ; then
3444 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
3445 _ld_arch="$_ld_arch -lossaudio"
3446 else
3447 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
3449 _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
3451 else
3452 _def_ossaudio='#undef USE_OSS_AUDIO'
3453 _def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
3454 _def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
3455 _noaomodules="oss $_noaomodules"
3457 echores "$_ossaudio"
3460 echocheck "aRts"
3461 if test "$_arts" = auto ; then
3462 _arts=no
3463 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
3465 cat > $TMPC << EOF
3466 #include <artsc.h>
3467 int main(void) { return 0; }
3469 cc_check `artsc-config --libs` `artsc-config --cflags` && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _arts=yes
3474 if test "$_arts" = yes ; then
3475 _def_arts='#define USE_ARTS 1'
3476 _aosrc="$_aosrc ao_arts.c"
3477 _aomodules="arts $_aomodules"
3478 _ld_arts=`artsc-config --libs`
3479 _inc_arts=`artsc-config --cflags`
3480 else
3481 _noaomodules="arts $_noaomodules"
3483 echores "$_arts"
3486 echocheck "EsounD"
3487 if test "$_esd" = auto ; then
3488 _esd=no
3489 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
3491 cat > $TMPC << EOF
3492 #include <esd.h>
3493 int main(void) { return 0; }
3495 cc_check `esd-config --libs` `esd-config --cflags` && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _esd=yes
3500 if test "$_esd" = yes ; then
3501 _def_esd='#define USE_ESD 1'
3502 _aosrc="$_aosrc ao_esd.c"
3503 _aomodules="esd $_aomodules"
3504 _ld_esd=`esd-config --libs`
3505 _inc_esd=`esd-config --cflags`
3506 else
3507 _noaomodules="esd $_noaomodules"
3509 echores "$_esd"
3512 echocheck "ALSA audio"
3513 if test "$_alsa" != no ; then
3514 _alsa=no
3515 cat > $TMPC << EOF
3516 #include <sys/asoundlib.h>
3517 int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==5)); }
3519 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.5.x'
3521 cat > $TMPC << EOF
3522 #include <sys/asoundlib.h>
3523 int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==9)); }
3525 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.9.x-sys'
3526 cat > $TMPC << EOF
3527 #include <alsa/asoundlib.h>
3528 int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==9)); }
3530 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.9.x-alsa'
3532 _def_alsa5='#undef HAVE_ALSA5'
3533 _def_alsa9='#undef HAVE_ALSA9'
3534 _def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
3535 _def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
3536 if test "$_alsaver" ; then
3537 if test "$_alsaver" = '0.5.x' ; then
3538 _aosrc="$_aosrc ao_alsa5.c"
3539 _aomodules="alsa5 $_aomodules"
3540 _def_alsa5='#define HAVE_ALSA5 1'
3541 _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
3542 echores "yes (using alsa 0.5.x and sys/asoundlib.h)"
3543 elif test "$_alsaver" = '0.9.x-sys' ; then
3544 _aosrc="$_aosrc ao_alsa9.c"
3545 _aomodules="alsa9 $_aomodules"
3546 _def_alsa9='#define HAVE_ALSA9 1'
3547 _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
3548 echores "yes (using alsa 0.9.x and sys/asoundlib.h)"
3549 elif test "$_alsaver" = '0.9.x-alsa' ; then
3550 _aosrc="$_aosrc ao_alsa9.c"
3551 _aomodules="alsa9 $_aomodules"
3552 _def_alsa9='#define HAVE_ALSA9 1'
3553 _def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
3554 echores "yes (using alsa 0.9.x and alsa/asoundlib.h)"
3556 _ld_alsa="-lasound $_ld_dl $_ld_pthread"
3557 else
3558 _noaomodules="alsa $_noaomodules"
3559 echores "no"
3563 echocheck "Sun audio"
3564 if test "$_sunaudio" = auto ; then
3565 cat > $TMPC << EOF
3566 #include <sys/types.h>
3567 #include <sys/audioio.h>
3568 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
3570 _sunaudio=no
3571 cc_check && _sunaudio=yes
3573 if test "$_sunaudio" = yes ; then
3574 _def_sunaudio='#define USE_SUN_AUDIO 1'
3575 _aosrc="$_aosrc ao_sun.c"
3576 _aomodules="sun $_aomodules"
3577 else
3578 _def_sunaudio='#undef USE_SUN_AUDIO'
3579 _noaomodules="sun $_noaomodules"
3581 echores "$_sunaudio"
3584 echocheck "Sun mediaLib"
3585 if test "$_mlib" = auto ; then
3586 _mlib=no
3587 test -z "$_mlibdir" && _mlibdir=/opt/SUNWmlib
3588 cat > $TMPC << EOF
3589 #include <mlib.h>
3590 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
3592 cc_check -I${_mlibdir}/include -L${_mlibdir}/lib -lmlib && _mlib=yes
3594 if test "$_mlib" = yes ; then
3595 _def_mlib='#define HAVE_MLIB 1'
3596 _inc_mlib=" -I${_mlibdir}/include "
3597 _ld_mlib=" -L${_mlibdir}/lib -R${_mlibdir}/lib -lmlib "
3598 else
3599 _def_mlib='#undef HAVE_MLIB'
3601 echores "$_mlib"
3604 echocheck "SGI audio"
3605 if test "$_sgiaudio" = auto ; then
3606 # check for SGI audio
3607 cat > $TMPC << EOF
3608 #include <dmedia/audio.h>
3609 int main(void) { return 0; }
3611 _sgiaudio=no
3612 cc_check && _sgiaudio=yes
3614 if test "$_sgiaudio" = "yes" ; then
3615 _def_sgiaudio='#define USE_SGI_AUDIO 1'
3616 _ld_sgiaudio='-laudio'
3617 _aosrc="$_aosrc ao_sgi.c"
3618 _aomodules="sgi $_aomodules"
3619 else
3620 _def_sgiaudio='#undef USE_SGI_AUDIO'
3621 _noaomodules="sgi $_noaomodules"
3623 echores "$_sgiaudio"
3626 echocheck "VCD support"
3627 if linux || bsdos || freebsd || netbsd || sunos ; then
3628 _inputmodules="vcd $_inputmodules"
3629 _def_vcd='#define HAVE_VCD 1'
3630 echores "ok"
3631 else
3632 _def_vcd='#undef HAVE_VCD'
3633 _noinputmodules="vcd $_noinputmodules"
3634 echores "not supported on this OS"
3637 echocheck "DVD support (libmpdvdkit)"
3638 if test "$_dvdkit" = auto ; then
3639 _dvdkit=no
3640 if linux || freebsd || netbsd || darwin || cygwin || openbsd || sunos || hpux; then
3641 test -f "./libmpdvdkit2/Makefile" && _dvdkit=yes
3642 test -f "./libmpdvdkit/Makefile" && _dvdkit=yes
3645 if test "$_dvdkit" = yes ; then
3646 if test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || test "$_dvdio" = yes || test "$_bsdi_dvd" = yes || test "$_hpux_scsi_h" = yes || darwin || cygwin ; then
3647 if test -f "./libmpdvdkit2/Makefile" ; then
3648 _inputmodules="mpdvdkit2 $_inputmodules"
3649 _dvdread=libmpdvdkit2
3650 _dvdkit2=yes
3651 _dvdkit=no
3652 else
3653 _inputmodules="mpdvdkit $_inputmodules"
3654 _dvdread=libmpdvdkit
3656 else
3657 _noinputmodules="mpdvdkit $_noinputmodules"
3659 _def_dvd_linux='#undef HAVE_LINUX_DVD_STRUCT'
3660 _def_dvd_bsd='#undef HAVE_BSD_DVD_STRUCT'
3661 _dev_dvd_openbsd='#undef HAVE_OPENBSD_DVD_STRUCT'
3662 _def_dvd_darwin='#undef DARWIN_DVD_IOCTL'
3663 if linux || netbsd || openbsd || bsdos ; then
3664 _def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
3665 if openbsd ; then
3666 _dev_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
3668 else
3669 if freebsd ; then
3670 _def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
3671 else
3672 if darwin ; then
3673 _def_dvd_darwin='#define DARWIN_DVD_IOCTL'
3677 else
3678 _noinputmodules="mpdvdkit $_noinputmodules"
3680 if test "$_dvdkit" = yes || test "$_dvdkit2" = yes; then
3681 echores "yes"
3682 else
3683 echores "no"
3686 echocheck "DVD support (libcss - old style)"
3687 if test "$_css" = auto ; then
3688 cat > $TMPC <<EOF
3689 #include <sys/types.h>
3690 #include <css.h>
3691 int main(void) { (void) CSSisEncrypted(0); return 0; }
3693 _css=no
3694 cc_check -lcss $_ld_dl && _css=yes
3696 if test "$_css" = yes ; then
3697 _def_css='#define HAVE_LIBCSS 1'
3698 test "$_csslibdir" && _ld_css="-L${_csslibdir} $_ld_css"
3699 _inputmodules="dvdcss $_inputmodules"
3700 _largefiles=yes
3701 echores "yes"
3702 else
3703 _def_css='#undef HAVE_LIBCSS'
3704 _noinputmodules="dvdcss $_noinputmodules"
3705 echores "no"
3708 echocheck "DVD support (libdvdread - new style)"
3709 if test "$_dvdread" = auto ; then
3710 cat > $TMPC << EOF
3711 #include <dvdread/dvd_reader.h>
3712 #include <dvdread/ifo_types.h>
3713 #include <dvdread/ifo_read.h>
3714 #include <dvdread/nav_read.h>
3715 int main(void) { return 0; }
3717 _dvdread=no
3718 if test "$_dl" = yes; then
3719 cc_check \
3720 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -ldvdread $_ld_dl && \
3721 _dvdread=yes
3724 _def_mpdvdkit="#undef USE_MPDVDKIT"
3725 case "$_dvdread" in
3726 yes)
3727 _largefiles=yes
3728 _def_dvdread='#define USE_DVDREAD 1'
3729 _ld_css='-ldvdread'
3730 _inputmodules="dvdread $_inputmodules"
3731 echores "yes"
3734 _def_dvdread='#undef USE_DVDREAD'
3735 _noinputmodules="dvdread $_noinputmodules"
3736 echores "no"
3738 libmpdvdkit)
3739 _largefiles=yes
3740 _def_dvdread='#define USE_DVDREAD 1'
3741 _ld_css='-Llibmpdvdkit -lmpdvdkit'
3742 _noinputmodules="dvdread $_noinputmodules"
3743 _def_mpdvdkit="#define USE_MPDVDKIT 1"
3744 echores "disabled by libmpdvdkit"
3746 libmpdvdkit2)
3747 _largefiles=yes
3748 _def_dvdread='#define USE_DVDREAD 1'
3749 _ld_css='-Llibmpdvdkit2 -lmpdvdkit'
3750 _noinputmodules="dvdread $_noinputmodules"
3751 _def_mpdvdkit="#define USE_MPDVDKIT 2"
3752 echores "disabled by libmpdvdkit2"
3754 esac
3756 echocheck "DVD support (libdvdnav)"
3757 if test "$_dvdnav" = yes ; then
3758 cat > $TMPC <<EOF
3759 #include <dvdnav.h>
3760 int main(void) { dvdnav_t *dvd=0; return 0; }
3762 _dvdnav=no
3763 test -n "$_dvdnavdir" && _legal_dvdnavdir=-L$_dvdnavdir/.libs
3764 if test -z "$_dvdnavconfig" ; then
3765 if ( dvdnav-config --version ) >/dev/null 2>&1 ; then
3766 _dvdnavconfig="dvdnav-config"
3769 test -z "$_dvdnavdir" && test -n "$_dvdnavconfig" && _dvdnavdir=`$_dvdnavconfig --cflags`
3770 _used_css=
3771 test "$_dvdkit" = no && test "$_dvdkit2" = no && _used_css=$_ld_css
3772 cc_check $_inc_extra -I$_dvdnavdir $_legal_dvdnavdir -ldvdnav $_used_css $_ld_dl $_ld_pthread && _dvdnav=yes
3774 if test "$_dvdnav" = yes ; then
3775 _largefiles=yes
3776 _def_dvdnav='#define USE_DVDNAV 1'
3777 if test -n "$_legal_dvdnavdir" ; then
3778 _ld_css="$_ld_css $_legal_dvdnavdir -ldvdnav"
3779 elif test -n "$_dvdnavconfig" ; then
3780 _ld_css="$_ld_css `$_dvdnavconfig --libs`"
3781 else
3782 _ld_css="$_ld_css -ldvdnav"
3784 if test -n "$_dvdnavconfig" ; then
3785 _dvdnav_version=`$_dvdnavconfig --version | sed "s/\.//g"`
3786 _def_dvdnav_version="#define DVDNAVVERSION $_dvdnav_version"
3788 if test -n "$_dvdnavdir" ; then
3789 _inc_extra="$_inc_extra -I$_dvdnavdir"
3791 _inputmodules="dvdnav $_inputmodules"
3792 echores "yes"
3793 else
3794 _def_dvdnav='#undef USE_DVDNAV'
3795 _noinputmodules="dvdnav $_noinputmodules"
3796 echores "no"
3799 echocheck "cdparanoia"
3800 if test "$_cdparanoia" = auto ; then
3801 cat > $TMPC <<EOF
3802 #include <cdda_interface.h>
3803 #include <cdda_paranoia.h>
3804 // This need a better test. How ?
3805 int main(void) { return 1; }
3807 _cdparanoia=no
3808 if cc_check $_inc_cdparanoia $_ld_cdparanoia -lcdda_interface -lcdda_paranoia -lm ; then
3809 _cdparanoia=yes
3810 else
3811 for I in /usr/include/cdda /usr/local/include/cdda ; do
3812 if cc_check -I$I $_ld_cdparanoia -lcdda_interface -lcdda_paranoia -lm ; then
3813 _cdparanoia=yes; _inc_cdparanoia="-I$I"; break
3815 done
3818 if test "$_cdparanoia" = yes ; then
3819 _def_cdparanoia='#define HAVE_CDDA'
3820 _inputmodules="cdda $_inputmodules"
3821 _ld_cdparanoia="$_ld_cdparanoia -lcdda_interface -lcdda_paranoia"
3822 openbsd && _ld_cdparanoia="$_ld_cdparanoia -lutil"
3823 else
3824 _def_cdparanoia='#undef HAVE_CDDA'
3825 _noinputmodules="cdda $_noinputmodules"
3827 echores "$_cdparanoia"
3829 echocheck "freetype >= 2.0.9"
3830 if test "$_freetype" = auto ; then
3831 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
3832 cat > $TMPC << EOF
3833 #include <stdio.h>
3834 #include <freetype/freetype.h>
3835 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
3836 #error "Need FreeType 2.0.9 or newer"
3837 #endif
3838 int main()
3840 FT_Library library;
3841 FT_Int major=-1,minor=-1,patch=-1;
3842 int err=FT_Init_FreeType(&library);
3843 if(err){
3844 printf("Couldn't initialize freetype2 lib, err code: %d\n",err);
3845 exit(err);
3847 FT_Library_Version(library,&major,&minor,&patch); // in v2.1.0+ only :(((
3848 printf("freetype2 header version: %d.%d.%d library version: %d.%d.%d\n",
3849 FREETYPE_MAJOR,FREETYPE_MINOR,FREETYPE_PATCH,
3850 (int)major,(int)minor,(int)patch );
3851 if(major!=FREETYPE_MAJOR || minor!=FREETYPE_MINOR){
3852 printf("Library and header version mismatch! Fix it in your distribution!\n");
3853 exit(1);
3855 return 0;
3858 _freetype=no
3859 cc_check `$_freetypeconfig --cflags` `$_freetypeconfig --libs` && ( $TMPO >> "$TMPLOG" ) && _freetype=yes
3860 else
3861 _freetype=no
3864 if test "$_freetype" = yes ; then
3865 _def_freetype='#define HAVE_FREETYPE'
3866 _inc_freetype=`$_freetypeconfig --cflags`
3867 _ld_freetype=`$_freetypeconfig --libs`
3868 else
3869 _def_freetype='#undef HAVE_FREETYPE'
3871 echores "$_freetype"
3874 echocheck "fribidi with charsets"
3875 if test "$_fribidi" = yes ; then
3876 if ( $_fribidiconfig --version ) >/dev/null 2>&1 ; then
3877 cat > $TMPC << EOF
3878 #include <stdio.h>
3879 #include <fribidi/fribidi.h>
3880 int main()
3882 if(fribidi_parse_charset("UTF-8") != FRIBIDI_CHARSET_UTF8) {
3883 printf("Fribidi headers are not consistents with the library!\n");
3884 exit(1);
3886 return 0;
3889 _fribidi=no
3890 cc_check `$_fribidiconfig --cflags` `$_fribidiconfig --libs` && ( $TMPO >> "$TMPLOG" ) && _fribidi=yes
3891 else
3892 _fribidi=no
3895 if test "$_fribidi" = yes ; then
3896 _def_fribidi='#define USE_FRIBIDI'
3897 _inc_fribidi=`$_fribidiconfig --cflags`
3898 _ld_fribidi=`$_fribidiconfig --libs`
3899 else
3900 _def_fribidi='#undef USE_FRIBIDI'
3902 echores "$_fribidi"
3905 echocheck "zlib"
3906 cat > $TMPC << EOF
3907 #include <zlib.h>
3908 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
3910 _zlib=no
3911 cc_check -lz && _zlib=yes
3912 if test "$_zlib" = yes ; then
3913 _def_zlib='#define HAVE_ZLIB 1'
3914 _ld_zlib='-lz'
3915 else
3916 _def_zlib='#undef HAVE_ZLIB'
3918 echores "$_zlib"
3921 echocheck "RTC"
3922 if linux ; then
3923 if test "$_rtc" = auto ; then
3924 cat > $TMPC << EOF
3925 #include <sys/ioctl.h>
3926 #include <linux/rtc.h>
3927 int main(void) { return RTC_IRQP_READ; }
3929 _rtc=no
3930 cc_check && _rtc=yes
3932 echores "$_rtc"
3933 else
3934 _rtc=no
3935 echores "no (Linux specific feature)"
3937 if test "$_rtc" = yes ; then
3938 _def_rtc='#define HAVE_RTC 1'
3939 else
3940 _def_rtc='#undef HAVE_RTC'
3944 echocheck "external liblzo support"
3945 if test "$_liblzo" = auto ; then
3946 _liblzo=no
3947 cat > $TMPC << EOF
3948 #include <lzo1x.h>
3949 int main(void) { lzo_init();return 0; }
3951 cc_check -llzo && _liblzo=yes
3953 if test "$_liblzo" = yes ; then
3954 _def_liblzo='#define USE_LIBLZO 1'
3955 _ld_liblzo='-llzo'
3956 _codecmodules="liblzo $_codecmodules"
3957 else
3958 _def_liblzo='#undef USE_LIBLZO'
3959 _nocodecmodules="liblzo $_nocodecmodules"
3961 echores "$_liblzo"
3964 echocheck "mad support"
3965 if test "$_mad" = auto ; then
3966 _mad=no
3967 cat > $TMPC << EOF
3968 #include <mad.h>
3969 int main(void) { return 0; }
3971 cc_check $_madlibdir -lmad && _mad=yes
3973 if test "$_mad" = yes ; then
3974 _def_mad='#define USE_LIBMAD 1'
3975 _ld_mad='-lmad'
3976 _codecmodules="libmad $_codecmodules"
3977 else
3978 _def_mad='#undef USE_LIBMAD'
3979 _nocodecmodules="libmad $_nocodecmodules"
3981 echores "$_mad"
3984 echocheck "OggVorbis support"
3985 if test "$_vorbis" = auto ; then
3986 _vorbis=no
3987 cat > $TMPC << EOF
3988 #include <vorbis/codec.h>
3989 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
3991 cc_check -lvorbis -logg -lm && _vorbis=yes
3993 if test "$_vorbis" = yes ; then
3994 _def_vorbis='#define HAVE_OGGVORBIS 1'
3995 if test "$_tremor" = yes ; then
3996 _def_tremor='#define TREMOR 1'
3997 _ld_vorbis='-lvorbisidec'
3998 else
3999 _def_tremor='#undef TREMOR'
4000 _ld_vorbis='-lvorbis -logg'
4002 _codecmodules="libvorbis $_codecmodules"
4003 else
4004 _def_vorbis='#undef HAVE_OGGVORBIS'
4005 _def_tremor='#undef TREMOR'
4006 _nocodecmodules="libvorbis $_nocodecmodules"
4008 echores "$_vorbis"
4011 echocheck "faad2 (AAC) support"
4012 if test "$_faad" = auto ; then
4013 _faad=no
4014 cat > $TMPC << EOF
4015 #include <faad.h>
4016 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo; testhand = faacDecOpen(); return 0; }
4018 cc_check -lfaad -lm && _faad=yes
4020 if test "$_faad" = yes ; then
4021 _def_faad='#define HAVE_FAAD 1'
4022 _ld_faad='-lfaad'
4023 else
4024 _def_faad='#undef HAVE_FAAD'
4027 if test "$_faad" = yes; then
4028 cat > $TMPC <<EOF
4029 #include <faad.h>
4030 #ifndef FAAD_MIN_STREAMSIZE
4031 #error Too old version
4032 #endif
4033 int main(void) {
4034 #ifdef FAAD2_VERSION
4035 printf("%s",FAAD2_VERSION);
4036 #else
4037 printf("1.0");
4038 #endif
4039 return 0;
4042 if cc_check $_ld_faad -lm && "$TMPO" >> "$TMPLOG" ; then
4043 _faad_version=`"$TMPO"`
4044 _faad_tempversion=`"$TMPO" | sed -e 's/^\([0-9]\{1,\}\)\.\([0-9]\{1,\}\).*/\1\2/'`
4045 _def_faad_version="#define FAADVERSION $_faad_tempversion"
4046 echores "yes ($_faad_version)"
4047 else
4048 _faad=no
4049 echores "no (failed to get version)"
4051 else
4052 echores "$_faad"
4055 if test "$_win32" = auto ; then
4056 if x86 ; then
4057 cygwin && _win32=no # Win32 DLLs not supported under Cygwin
4058 qnx && _win32=no
4059 else
4060 _win32=no # x86 arch only
4064 if test "$_win32" != no ; then
4065 echocheck "Win32 codec DLL files path"
4066 if test -z "$_win32libdir" ; then
4067 for I in "$_libdir/win32" /usr/local/lib/win32 /usr/lib/win32 ; do
4068 if test -d "$I" ; then
4069 _win32libdir="$I"
4070 break;
4072 done
4074 echores "$_win32libdir"
4077 echocheck "Win32 codec DLL support"
4078 if test "$_win32" = auto ; then
4079 _win32=no
4080 test -n "$_win32libdir" && _win32=yes
4082 if test "$_win32" = yes ; then
4083 _def_win32='#define USE_WIN32DLL 1'
4084 echores "yes"
4085 else
4086 _def_win32='#undef USE_WIN32DLL'
4087 _nocodecmodules="win32 $_nocodecmodules"
4088 _dshow=no
4089 echores "no"
4092 if test "$_win32" != no ; then
4093 _def_win32_loader='#undef WIN32_LOADER'
4094 echocheck "Win32 loader support"
4095 if not cygwin ; then
4096 _ld_win32='loader/libloader.a'
4097 _dep_win32='loader/libloader.a'
4098 _codecmodules="win32 $_codecmodules"
4099 if openbsd ; then
4100 x86 && _ld_win32="$_ld_win32 -li386"
4102 _def_win32_loader='#define WIN32_LOADER 1'
4103 echores "yes"
4104 else
4105 echores "no (using native windows)"
4109 echocheck "DirectShow"
4110 if false ; then
4112 if test "$_dshow" != no ; then
4113 _dshow=no
4114 # check if compiler supports C++ and C++-libs are installed correctly
4115 cat > "$TMPCPP" << EOF
4116 #include <string>
4117 class myclass {
4118 private: int ret;
4119 public: int myreturn(void);
4121 int myclass::myreturn(void) { ret = 0; return ret ; }
4122 int main(void) { myclass myobject; return myobject.myreturn(); }
4124 echo "------------------------------------------------" >> "$TMPLOG"
4125 cat "$TMPCPP" >> "$TMPLOG"
4126 if ( $_cc "$TMPCPP" -o "$TMPO" && "$TMPO" ) >> "$TMPLOG" 2>&1 ; then
4127 _dshow=yes
4128 echores "yes (C++ is ok)"
4129 else
4130 echores "no"
4131 cat << EOF
4133 Your C++ runtime environment is broken.
4135 Hints: Does $_cc support C++? Do you have you a C++ compiler installed?
4136 Are the C++ libraries correctly installed?
4137 Check for libstdc++ and in (/etc/)ld.so.conf.
4139 If you do not need DirectShow support, you can also use:
4140 ./configure --disable-dshow <your-normal-configure-options>
4141 to disable building the C++ based DirectShow code.
4144 die "$_cc's C++ is broken"
4150 echores "$_dshow"
4152 if test "$_dshow" = yes ; then
4153 _def_dshow='#define USE_DIRECTSHOW 1'
4154 _ld_dshow='loader/dshow/libDS_Filter.a loader/dmo/libDMO_Filter.a'
4155 _dep_dshow='loader/dshow/libDS_Filter.a loader/dmo/libDMO_Filter.a'
4156 _codecmodules="dshow/dmo $_codecmodules"
4157 else
4158 _def_dshow='#undef USE_DIRECTSHOW'
4159 _nocodecmodules="dshow/dmo $_nocodecmodules"
4163 echocheck "XAnim DLL"
4164 if test "$_xanim" = auto ; then
4165 _xanim=no
4166 if test "$_dl" = yes ; then
4167 if test -z "$_xanimlibdir" ; then
4168 for I in /usr/local/lib/xanim/mods /usr/lib/xanim/mods /usr/lib/xanim $XANIM_MOD_DIR ; do
4169 if test -d "$I" ; then
4170 _xanimlibdir="$I"
4171 break;
4173 done
4175 test "$_xanimlibdir" && _xanim=yes
4176 if test "$_xanim" = yes ; then
4177 echores "yes (using $_xanimlibdir)"
4178 else
4179 echores "no (no suitable directory found - see DOCS/codecs.html)"
4181 else
4182 echores "no (dynamic loader support needed)"
4184 else
4185 echores "$_xanim"
4187 if test "$_xanim" = yes ; then
4188 _def_xanim='#define USE_XANIM 1'
4189 _def_xanim_path="#define XACODEC_PATH \"$_xanimlibdir\""
4190 _codecmodules="xanim $_codecmodules"
4191 else
4192 _def_xanim='#undef USE_XANIM'
4193 _def_xanim_path='#undef XACODEC_PATH'
4194 _nocodecmodules="xanim $_nocodecmodules"
4197 echocheck "RealPlayer DLL"
4198 if test "$_real" = auto ; then
4199 _real=no
4200 if test "$_dl" = yes || test "$_win32" = yes ; then
4201 # if test "$_dl" = yes ; then
4202 if linux || freebsd || netbsd || cygwin ; then
4203 _real=yes
4204 else
4205 echores "no (tested only on Linux/FreeBSD/NetBSD/CygWin)"
4207 if test "$_real" = yes ; then
4208 if test -z "$_reallibdir" ; then
4209 for I in $_libdir/real /usr/lib/real /usr/lib/RealPlayer*/Codecs \
4210 /usr/local/RealPlayer*/Codecs /usr/local/lib/RealPlayer*/Codecs \
4211 /opt/RealPlayer*/Codecs; do
4212 if test -d "$I" ; then
4213 _reallibdir="$I"
4214 break;
4216 done
4218 test "$_reallibdir" || _real=no
4219 if test "$_real" = yes ; then
4220 echores "yes (using $_reallibdir)"
4221 else
4222 echores "no (no suitable directory found - see DOCS/codecs.html)"
4225 else
4226 echores "no (dynamic loader support needed)"
4228 else
4229 echores "$_real"
4231 if test "$_real" = yes ; then
4232 _def_real='#define USE_REALCODECS 1'
4233 _def_real_path="#define REALCODEC_PATH \"$_reallibdir\""
4234 _codecmodules="real $_codecmodules"
4235 else
4236 _def_real='#undef USE_REALCODECS'
4237 _def_real_path="#undef REALCODEC_PATH"
4238 _nocodecmodules="real $_nocodecmodules"
4242 if test -z "$_livelibdir" ; then
4243 for I in $_libdir/live /usr/lib/live /usr/local/live /usr/local/lib/live; do
4244 if test -d "$I" ; then
4245 _livelibdir="$I"
4246 break;
4248 done
4251 echocheck "LIVE.COM Streaming Media libraries"
4252 if test "$_live" = auto && test "$_streaming" = yes ; then
4253 _live=yes
4254 test "$_livelibdir" || _live=no
4255 # TODO: deeper, more reliable test of libs, and version!
4256 # (users may have empty live/ dir or something different there, for
4257 # example 'live config files', or they may have old, incompatibel version)
4259 if test "$_live" = yes && test "$_streaming" = yes ; then
4260 echores "yes (using $_livelibdir)"
4261 _def_live='#define STREAMING_LIVE_DOT_COM 1'
4262 _live_libs_def="# LIVE.COM Streaming Media libraries:
4263 LIVE_LIB_DIR = $_livelibdir
4264 LIVE_LIBS = \$(LIVE_LIB_DIR)/liveMedia/libliveMedia.a
4265 LIVE_LIBS += \$(LIVE_LIB_DIR)/groupsock/libgroupsock.a
4266 LIVE_LIBS += \$(LIVE_LIB_DIR)/UsageEnvironment/libUsageEnvironment.a
4267 LIVE_LIBS += \$(LIVE_LIB_DIR)/BasicUsageEnvironment/libBasicUsageEnvironment.a
4268 LIVE_LIBS += -lstdc++"
4269 _ld_live='$(LIVE_LIBS)'
4270 else
4271 echores "no"
4272 _def_live='#undef STREAMING_LIVE_DOT_COM'
4276 echocheck "iconv"
4277 if test "$_iconv" = auto ; then
4278 _iconv_tmp='#include <iconv.h>'
4280 cat > $TMPC << EOF
4281 #include <stdio.h>
4282 #include <unistd.h>
4283 $_iconv_tmp
4284 #define INBUFSIZE 1024
4285 #define OUTBUFSIZE 4096
4287 char inbuffer[INBUFSIZE];
4288 char outbuffer[OUTBUFSIZE];
4290 int main(void) {
4291 ssize_t numread;
4292 iconv_t icdsc;
4293 char *tocode="UTF-8";
4294 char *fromcode="cp1250";
4295 if ((icdsc = iconv_open (tocode, fromcode)) != (iconv_t)(-1)) {
4296 while ((numread = read (0, inbuffer, INBUFSIZE))) {
4297 char *iptr=inbuffer;
4298 char *optr=outbuffer;
4299 size_t inleft=numread;
4300 size_t outleft=OUTBUFSIZE;
4301 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
4302 != (size_t)(-1)) {
4303 write (1, outbuffer, OUTBUFSIZE - outleft);
4306 if (iconv_close(icdsc) == -1)
4311 _iconv=no
4312 if cc_check -lm -liconv ; then
4313 _iconv=yes
4314 _ld_iconv='-liconv'
4315 else
4316 cc_check -lm && _iconv=yes
4319 if test "$_iconv" = yes ; then
4320 _def_iconv='#define USE_ICONV 1'
4321 else
4322 _def_iconv='#undef USE_ICONV'
4324 echores "$_iconv"
4327 echocheck "FFmpeg libavcodec (static)"
4328 if test "$_libavcodec" = auto ; then
4329 # Note: static linking is preferred to dynamic linking
4330 _libavcodec=no
4331 if test -d libavcodec && test -f libavcodec/utils.c ; then
4332 if grep avcodec_find_encoder_by_name libavcodec/utils.c > /dev/null 2>&1 ; then
4333 _libavcodec=yes
4334 echores "yes"
4335 else
4336 echores "no (old ffmpeg version, use CVS !)"
4338 else
4339 echores "no (see DOCS/codecs.html)"
4341 else
4342 echores "$_libavcodec"
4345 if test "$_libavcodec" != yes ; then
4346 echocheck "FFmpeg libavcodec (dynamic)"
4347 if test "$_libavcodecso" = auto ; then
4348 _libavcodecso=no
4349 # FIXME : check for avcodec_find_encoder_by_name() for mencoder
4350 cat > $TMPC << EOF
4351 #define FF_POSTPROCESS 1
4352 #include <ffmpeg/avcodec.h>
4353 int main(void) {
4354 avcodec_find_encoder_by_name("");
4355 return 0;
4358 if cc_check -lavcodec -lm ; then
4359 _libavcodecso=yes
4360 echores "yes (using libavcodec.so)"
4361 else
4362 echores "no (libavcodec.so is broken/obsolete)"
4364 else
4365 echores "$_libavcodecso"
4369 _def_libavcodec='#undef USE_LIBAVCODEC'
4370 _def_libavcodecso='#undef USE_LIBAVCODEC_SO'
4371 _def_ffpostprocess='#undef FF_POSTPROCESS'
4372 if test "$_libavcodec" = yes ; then
4373 _def_libavcodec='#define USE_LIBAVCODEC 1'
4374 _ld_libavcodec='libavcodec/libavcodec.a'
4375 _dep_libavcodec='libavcodec/libavcodec.a'
4376 _def_ffpostprocess='#define FF_POSTPROCESS 1'
4377 _codecmodules="libavcodec $_codecmodules"
4378 elif test "$_libavcodecso" = yes ; then
4379 _def_libavcodec='#define USE_LIBAVCODEC 1'
4380 _def_libavcodecso='#define USE_LIBAVCODEC_SO 1'
4381 _ld_libavcodec='-lavcodec'
4382 _def_ffpostprocess='#define FF_POSTPROCESS 1'
4383 _codecmodules="libavcodec.so $_codecmodules"
4384 else
4385 _nocodecmodules="libavcodec $_nocodecmodules"
4388 echocheck "libdv-0.9.5+"
4389 if test "$_libdv" = auto ; then
4390 _libdv=no
4391 cat > $TMPC <<EOF
4392 #include <libdv/dv.h>
4393 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
4395 cc_check -ldv -lm && _libdv=yes
4397 if test "$_libdv" = yes ; then
4398 _def_libdv='#define HAVE_LIBDV095 1'
4399 _ld_libdv="-ldv"
4400 _codecmodules="libdv $_codecmodules"
4401 else
4402 _def_libdv='#undef HAVE_LIBDV095'
4403 _nocodecmodules="libdv $_nocodecmodules"
4405 echores "$_libdv"
4407 echocheck "zr"
4408 if test "$_zr" = auto ; then
4409 #36067's seem to identify themselves as 36057PQC's, so the line
4410 #below should work for 36067's and 36057's.
4411 if grep -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci > /dev/null 2>&1; then
4412 _zr=yes
4413 else
4414 _zr=no
4417 if test "$_zr" = yes ; then
4418 if test "$_libavcodec" = yes ; then
4419 _def_zr='#define HAVE_ZR 1'
4420 _vosrc="$_vosrc vo_zr.c jpeg_enc.c"
4421 _vomodules="zr $_vomodules"
4422 echores "$_zr"
4423 else
4424 echores "libavcodec (static) is required by zr, sorry"
4425 _novomodules="zr $_novomodules"
4426 _def_zr='#undef HAVE_ZR'
4428 else
4429 _def_zr='#undef HAVE_ZR'
4430 _novomodules="zr $_novomodules"
4431 echores "$_zr"
4434 echocheck "bl"
4435 if test "$_bl" = yes ; then
4436 _def_bl='#define HAVE_BL 1'
4437 _vosrc="$_vosrc vo_bl.c"
4438 _vomodules="bl $_vomodules"
4439 else
4440 _def_bl='#undef HAVE_BL'
4441 _novomodules="bl $_novomodules"
4443 echores "$_bl"
4445 echocheck "XviD"
4446 cat > $TMPC << EOF
4447 #include <xvid.h>
4448 int main(void) { xvid_init(0, 0, 0, 0); return 0; }
4450 if test "$_xvid" != no && cc_check "$_xvidcore" -lm ; then
4451 _xvid=yes
4452 _ld_xvid="$_xvidcore"
4453 _def_xvid='#define HAVE_XVID 1'
4454 _codecmodules="xvid $_codecmodules"
4455 elif test "$_xvid" != no && cc_check -lxvidcore -lm ; then
4456 _xvid=yes
4457 _ld_xvid='-lxvidcore'
4458 _def_xvid='#define HAVE_XVID 1'
4459 _codecmodules="xvid $_codecmodules"
4460 else
4461 _xvid=no
4462 _ld_xvid=''
4463 _def_xvid='#undef HAVE_XVID'
4464 _nocodecmodules="xvid $_nocodecmodules"
4466 echores "$_xvid"
4468 _xvidcompat=no
4469 _def_decore_xvid='#undef DECORE_XVID'
4470 _def_encore_xvid='#undef ENCORE_XVID'
4471 if test "$_xvid" = yes ; then
4472 echocheck "DivX4 compatibility in XviD"
4473 cat > $TMPC << EOF
4474 #include <divx4.h>
4475 int main(void) { (void) decore(0, 0, 0, 0); return 0; }
4477 cc_check -lm "$_ld_xvid" && _xvidcompat=yes
4478 echores "$_xvidcompat"
4482 echocheck "DivX4linux/DivX5linux/OpenDivX decore"
4483 # DivX5: DEC_OPT_MEMORY_REQS - DivX4: DEC_OPT_FRAME_311
4484 cat > $TMPC << EOF
4485 #include <decore.h>
4486 int main(void) { (void) decore(0, 0, 0, 0); return DEC_OPT_FRAME_311; }
4488 if test "$_divx4linux" != no && cc_check -lm -ldivxdecore -lm ; then
4489 _opendivx=no
4490 _ld_decore='-ldivxdecore'
4491 _def_decore='#define NEW_DECORE 1'
4492 _def_divx='#define USE_DIVX'
4493 _def_divx5='#undef DECORE_DIVX5'
4494 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
4495 _codecmodules="divx4linux $_codecmodules"
4496 echores "DivX4linux (with libdivxdecore.so)"
4497 else
4498 # if test "$_divx4linux" != no ; then
4499 # DivX5 check
4500 # OdivxPP disabled because of:
4501 # ld: Warning: type of symbol `dering' changed from 1 to 2 in opendivx/postprocess.o
4502 cat > $TMPC << EOF
4503 #include <decore.h>
4504 int main(void) { (void) decore(0, 0, 0, 0); return DEC_OPT_MEMORY_REQS; }
4506 if test "$_divx4linux" != no && cc_check -lm -ldivxdecore -lm ; then
4507 _opendivx=no
4508 # _ld_decore='-ldivxdecore opendivx/postprocess.o'
4509 _ld_decore='-ldivxdecore'
4510 _def_decore='#define NEW_DECORE 1'
4511 _def_divx='#define USE_DIVX'
4512 _def_divx5='#define DECORE_DIVX5 1'
4513 # _def_odivx_postprocess='#define HAVE_ODIVX_POSTPROCESS 1'
4514 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
4515 _codecmodules="divx5linux $_codecmodules"
4516 _nocodecmodules="divx4linux $_nocodecmodules"
4517 echores "DivX5linux (with libdivxdecore.so)"
4518 elif test "$_opendivx" != no ; then
4519 _opendivx=yes
4520 _ld_decore='opendivx/libdecore.a'
4521 _def_decore='#undef NEW_DECORE'
4522 _def_divx='#define USE_DIVX'
4523 _def_divx5='#undef DECORE_DIVX5'
4524 _def_odivx_postprocess='#define HAVE_ODIVX_POSTPROCESS 1'
4525 _codecmodules="opendivx $_codecmodules"
4526 _nocodecmodules="divx5linux $_nocodecmodules"
4527 echores "OpenDivX"
4528 elif test "$_xvidcompat" = yes ; then
4529 _opendivx=no
4530 _ld_decore=''
4531 _def_decore='#define NEW_DECORE 1'
4532 _def_divx='#define USE_DIVX 1'
4533 _def_divx5='#undef DECORE_DIVX5'
4534 _def_decore_xvid='#define DECORE_XVID 1'
4535 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
4536 _nocodecmodules="opendivx divx5linux divx4linux $_nocodecmodules"
4537 echores "XviD compat."
4538 else
4539 _opendivx=no
4540 _ld_decore=''
4541 _def_decore='#undef NEW_DECORE'
4542 _def_divx='#undef USE_DIVX'
4543 _def_divx5='#undef DECORE_DIVX5'
4544 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
4545 _nocodecmodules="opendivx $_nocodecmodules"
4546 echores "no"
4547 fi # DivX5 check
4551 # mencoder requires (optional) those libs: libmp3lame and divx4linux encore
4552 if test "$_mencoder" != no ; then
4554 echocheck "libmp3lame (for mencoder)"
4555 _mp3lame=no
4556 cat > $TMPC <<EOF
4557 #include <lame/lame.h>
4558 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; }
4560 # Note: libmp3lame usually depends on vorbis
4561 cc_check -lmp3lame $_ld_vorbis -lm && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _mp3lame=yes
4562 if test "$_mp3lame" = yes ; then
4563 _def_mp3lame="#define HAVE_MP3LAME `$TMPO`"
4564 _ld_mp3lame="-lmp3lame $_ld_vorbis"
4565 else
4566 _def_mp3lame='#undef HAVE_MP3LAME'
4568 echores "$_mp3lame"
4571 echocheck "DivX4linux encore (for mencoder)"
4572 cat > $TMPC << EOF
4573 #include <encore2.h>
4574 int main(void) { (void) encore(0, 0, 0, 0); return 0; }
4576 if test "$_divx4linux" != no && cc_check -ldivxencore -lm ; then
4577 _def_encore='#define HAVE_DIVX4ENCORE 1'
4578 _ld_encore='-ldivxencore'
4579 echores "DivX4linux (with libdivxencore.so)"
4580 elif test "$_xvidcompat" = yes ; then
4581 _def_encore='#define HAVE_DIVX4ENCORE 1'
4582 _ld_encore=''
4583 _def_encore_xvid='#define ENCORE_XVID 1'
4584 echores "XviD compat."
4585 else
4586 _def_encore='#undef HAVE_DIVX4ENCORE'
4587 echores "no"
4592 echocheck "mencoder"
4593 _mencoder_flag='#undef HAVE_MENCODER'
4594 if test "$_mencoder" = yes ; then
4595 _mencoder_flag='#define HAVE_MENCODER'
4597 echores "$_mencoder"
4599 echocheck "fastmemcpy"
4600 # fastmemcpy check is done earlier with tests of CPU & binutils features
4601 if test "$_fastmemcpy" = yes ; then
4602 _def_fastmemcpy='#define USE_FASTMEMCPY 1'
4603 else
4604 _def_fastmemcpy='#undef USE_FASTMEMCPY'
4606 echores "$_fastmemcpy"
4608 echocheck "UniquE RAR File Library"
4609 if test "$_unrarlib" = yes ; then
4610 _def_unrarlib='#define USE_UNRARLIB 1'
4611 else
4612 _def_unrarlib='#undef USE_UNRARLIB'
4614 echores "$_unrarlib"
4616 echocheck "TV interface"
4617 if test "$_tv" = yes ; then
4618 _def_tv='#define USE_TV 1'
4619 _inputmodules="tv $_inputmodules"
4620 else
4621 _noinputmodules="tv $_noinputmodules"
4622 _def_tv='#undef USE_TV'
4624 echores "$_tv"
4626 echocheck "EDL support"
4627 if test "$_edl" = yes ; then
4628 _def_edl='#define USE_EDL'
4629 _inputmodules="edl $_inputmodules"
4630 else
4631 _noinputmodules="edl $_noinputmodules"
4632 _def_edl='#undef USE_EDL'
4634 echores "$_edl"
4636 echocheck "*BSD BrookTree 848 TV interface"
4637 if test "$_tv_bsdbt848" = auto ; then
4638 _tv_bsdbt848=no
4639 if test "$_tv" = yes ; then
4640 cat > $TMPC <<EOF
4641 #include <sys/types.h>
4642 #if defined(__NetBSD__)
4643 #include <dev/ic/bt8xx.h>
4644 #else
4645 #include <machine/ioctl_bt848.h>
4646 #endif
4647 int main(void) { return 0; }
4649 cc_check && _tv_bsdbt848=yes
4652 if test "$_tv_bsdbt848" = yes ; then
4653 _def_tv_bsdbt848='#define HAVE_TV_BSDBT848 1'
4654 _inputmodules="tv-bsdbt848 $_inputmodules"
4655 else
4656 _def_tv_bsdbt848='#undef HAVE_TV_BSDBT848'
4657 _noinputmodules="tv-bsdbt848 $_noinputmodules"
4659 echores "$_tv_bsdbt848"
4661 echocheck "Video 4 Linux TV interface"
4662 if test "$_tv_v4l" = auto ; then
4663 _tv_v4l=no
4664 if test "$_tv" = yes && linux ; then
4665 for I in /dev/video /dev/video? ; do
4666 if test -c $I ; then
4667 cat > $TMPC <<EOF
4668 #include <stdlib.h>
4669 #include <linux/videodev.h>
4670 int main(void) { return 0; }
4672 cc_check && _tv_v4l=yes
4673 break
4675 done
4678 if test "$_tv_v4l" = yes ; then
4679 _def_tv_v4l='#define HAVE_TV_V4L 1'
4680 _inputmodules="tv-v4l $_inputmodules"
4681 else
4682 _noinputmodules="tv-v4l $_noinputmodules"
4683 _def_tv_v4l='#undef HAVE_TV_V4L'
4685 echores "$_tv_v4l"
4688 echocheck "audio select()"
4689 if test "$_select" = no ; then
4690 _def_select='#undef HAVE_AUDIO_SELECT'
4691 elif test "$_select" = yes ; then
4692 _def_select='#define HAVE_AUDIO_SELECT 1'
4694 echores "$_select"
4697 echocheck "streaming"
4698 # FIXME streaming check
4699 if test "$_streaming" != no ; then
4700 _def_streaming='#define STREAMING 1'
4701 _ld_streaming="$_ld_sock"
4702 _inputmodules="streaming $_inputmodules"
4703 else
4704 _noinputmodules="streaming $_noinputmodules"
4705 _def_streaming='#undef STREAMING'
4707 echores "$_streaming"
4709 # endian testing
4710 echocheck "byte order"
4711 if test "$_big_endian" = auto ; then
4712 cat > $TMPC <<EOF
4713 #include <inttypes.h>
4714 int main(void) {
4715 volatile uint32_t i=0x01234567;
4716 return (*((uint8_t*)(&i))) == 0x67;
4719 if cc_check ; then
4720 if $TMPO ; then
4721 _big_endian=yes
4722 else
4723 _big_endian=no
4725 else
4726 echo -n "failed to autodetect byte order, defaulting to "
4729 if test "$_big_endian" = yes ; then
4730 _byte_order='Big Endian'
4731 _def_words_endian='#define WORDS_BIGENDIAN 1'
4732 else
4733 _byte_order='Little Endian'
4734 _def_words_endian='#undef WORDS_BIGENDIAN'
4736 echores "$_byte_order"
4738 echocheck "shared postprocess lib"
4739 echores "$_shared_pp"
4741 echocheck "New config"
4742 if test "$_new_conf" = yes ; then
4743 _def_new_conf='#define NEW_CONFIG 1'
4744 else
4745 _def_new_conf='#undef NEW_CONFIG'
4747 echores "$_new_conf"
4749 echocheck "OSD menu"
4750 if test "$_menu" = yes ; then
4751 test "$_new_conf" != yes && die "New config support needed for the OSD menu (--enable-new-conf)."
4752 _def_menu='#define HAVE_MENU 1'
4753 else
4754 _def_menu='#undef HAVE_MENU'
4756 echores "$_menu"
4758 # Check to see if they want QTX codecs enabled
4759 echocheck "QTX codecs"
4760 if test "$_qtx_codecs" = auto ; then
4761 _qtx_codecs=$_win32
4763 if test "$_qtx_codecs" = yes ; then
4764 _def_qtx_codecs='#define USE_QTX_CODECS 1'
4765 _codecmodules="qtx $_codecmodules"
4766 else
4767 _def_qtx_codecs='#undef USE_QTX_CODECS'
4768 _nocodecmodules="qtx $_nocodecmodules"
4770 echores "$_qtx_codecs"
4773 echocheck "Subtitles sorting"
4774 if test "$_sortsub" = yes ; then
4775 _def_sortsub='#define USE_SORTSUB 1'
4776 else
4777 _def_sortsub='#undef USE_SORTSUB'
4779 echores "$_sortsub"
4782 echocheck "XMMS inputplugin support"
4783 if test "$_xmms" = yes ; then
4785 if ( xmms-config --version ) >/dev/null 2>&1 ; then
4786 if test -z "$_xmmsplugindir" ; then
4787 _xmmsplugindir=`xmms-config --input-plugin-dir`
4789 if test -z "$_xmmslibdir" ; then
4790 _xmmslibdir=`xmms-config --exec-prefix`/lib
4792 else
4793 if test -z "$_xmmsplugindir" ; then
4794 _xmmsplugindir=/usr/lib/xmms/Input
4796 if test -z "$_xmmslibdir" ; then
4797 _xmmslibdir=/usr/lib
4801 _def_xmms='#define HAVE_XMMS 1'
4802 _xmms_lib="${_xmmslibdir}/libxmms.so.1 -export-dynamic"
4803 else
4804 _def_xmms='#undef HAVE_XMMS'
4806 echores "$_xmms"
4809 echocheck "inet6"
4810 if test "$_inet6" = auto ; then
4811 cat > $TMPC << EOF
4812 #include <sys/types.h>
4813 #include <sys/socket.h>
4814 int main(void) { socket(AF_INET6, SOCK_STREAM, AF_INET6); }
4816 _inet6=no
4817 if cc_check ; then
4818 _inet6=yes
4821 if test "$_inet6" = yes ; then
4822 _def_inet6='#define HAVE_AF_INET6 1'
4823 else
4824 _def_inet6='#undef HAVE_AF_INET6'
4826 echores "$_inet6"
4829 echocheck "gethostbyname2"
4830 if test "$_gethostbyname2" = auto ; then
4831 cat > $TMPC << EOF
4832 #include <sys/types.h>
4833 #include <sys/socket.h>
4834 #include <netdb.h>
4835 int main(void) { gethostbyname2("", AF_INET); }
4837 _gethostbyname2=no
4838 if cc_check ; then
4839 _gethostbyname2=yes
4843 if test "$_gethostbyname2" = yes ; then
4844 _def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
4845 else
4846 _def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
4848 echores "$_gethostbyname2"
4850 # --------------- GUI specific tests begin -------------------
4851 echocheck "GUI"
4852 echo "$_gui"
4853 if test "$_gui" = yes ; then
4855 # Required libraries
4856 test "$_png" != yes && die "PNG support required for GUI compilation, please install libpng and libpng-dev packages."
4857 test "$_x11" != yes && die "X11 support required for GUI compilation"
4859 echocheck "XShape extension"
4860 _xshape=no
4861 if test "$_x11" = yes ; then
4862 cat > $TMPC << EOF
4863 #include <X11/Xlib.h>
4864 #include <X11/Xproto.h>
4865 #include <X11/Xutil.h>
4866 #include <X11/extensions/shape.h>
4867 #include <stdlib.h>
4868 int main(void) {
4869 char *name = ":0.0";
4870 Display *wsDisplay;
4871 int exitvar = 0;
4872 int eventbase, errorbase;
4873 if (getenv("DISPLAY"))
4874 name=getenv("DISPLAY");
4875 wsDisplay=XOpenDisplay(name);
4876 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
4877 exitvar=1;
4878 XCloseDisplay(wsDisplay);
4879 return exitvar;
4882 cc_check $_inc_x11 $_ld_x11 && _xshape=yes
4884 if test "$_xshape" = yes ; then
4885 _def_xshape='#define HAVE_XSHAPE 1'
4886 else
4887 die "the GUI requires the X11 extension XShape (which was not found)"
4889 echores "$_xshape"
4892 # Check for GTK:
4893 echocheck "gtk version"
4894 if test -z "$_gtkconfig" ; then
4895 if ( gtk-config --version ) >/dev/null 2>&1 ; then
4896 _gtkconfig="gtk-config"
4897 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
4898 _gtkconfig="gtk12-config"
4899 else
4900 die "the GUI requires GTK (which was not found)"
4903 _gtk=`$_gtkconfig --version 2>&1`
4904 _inc_gtk=`$_gtkconfig --cflags 2>&1`
4905 _ld_gtk=`$_gtkconfig --libs 2>&1`
4906 echores "$_gtk (using $_gtkconfig)"
4908 # Check for GLIB
4909 echocheck "glib version"
4910 if test -z "$_glibconfig" ; then
4911 if ( glib-config --version ) >/dev/null 2>&1 ; then
4912 _glibconfig="glib-config"
4913 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
4914 _glibconfig="glib12-config"
4915 else
4916 die "the GUI requires GLIB (which was not found)"
4919 _glib=`$_glibconfig --version 2>&1`
4920 _inc_glib=`$_glibconfig --cflags 2>&1`
4921 _ld_glib=`$_glibconfig --libs 2>&1`
4922 echores "$_glib (using $_glibconfig)"
4924 _def_gui='#define HAVE_NEW_GUI 1'
4925 _ld_gui='$(GTKLIB) $(GLIBLIB)'
4927 echo "Creating Gui/config.mak"
4928 cat > Gui/config.mak << EOF
4929 # -------- Generated by configure -----------
4931 GTKINC = $_inc_gtk
4932 GTKLIBS = $_ld_gtk
4933 GLIBINC = $_inc_glib
4934 GLIBLIBS = $_ld_glib
4938 else
4939 _def_gui='#undef HAVE_NEW_GUI'
4941 # --------------- GUI specific tests end -------------------
4945 #############################################################################
4947 # Checking for CFLAGS
4948 _stripbinaries=yes
4949 if test "$_profile" != "" || test "$_debug" != "" ; then
4950 CFLAGS="-W -Wall -O2 $_march $_mcpu $_debug $_profile"
4951 if test "$_cc_major" -ge "3" ; then
4952 CFLAGS=`echo "$CFLAGS" | sed -e 's/\(-Wall\)/\1 -Wno-unused-parameter/'`
4954 _stripbinaries=no
4955 elif test -z "$CFLAGS" ; then
4956 if test "$host_arch" != "mips" ; then
4957 CFLAGS="-O4 $_march $_mcpu -pipe -ffast-math -fomit-frame-pointer"
4958 else
4959 CFLAGS="-O4 $_march $_mcpu -ffast-math -fomit-frame-pointer"
4961 # always compile with '-g' if .developer:
4962 if test -f ".developer" ; then
4963 CFLAGS="-g $CFLAGS"
4964 _stripbinaries=no
4966 else
4967 cat <<EOF
4969 MPlayer compilation will use the CFLAGS set by you, but:
4971 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
4973 It is strongly recommended to let MPlayer choose the correct CFLAGS!
4974 To do so, execute 'CFLAGS= ./configure <options>'
4978 if darwin ; then
4979 # use gnu style cpp on Darwin
4980 CFLAGS="$CFLAGS -no-cpp-precomp -DSYS_DARWIN"
4981 # libavcodec (from ffmpeg) requires CONFIG_DARWIN to enable AltiVec on Darwin/MacOSX
4982 test "$_altivec" = yes && CFLAGS="$CFLAGS -DCONFIG_DARWIN"
4984 if hpux ; then
4985 # use flag for HPUX missing setenv()
4986 CFLAGS="$CFLAGS -DHPUX"
4988 # Thread support
4989 if linux ; then
4990 CFLAGS="$CFLAGS -D_REENTRANT"
4991 elif bsd ; then
4992 # FIXME bsd needs this so maybe other OS'es
4993 CFLAGS="$CFLAGS -D_THREAD_SAFE"
4995 # 64 bit file offsets?
4996 if test "$_largefiles" = yes || freebsd ; then
4997 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
4998 if test "$_dvdread" = yes ; then
4999 # dvdread support requires this (for off64_t)
5000 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
5004 echocheck "ftello()"
5005 # if we dont have ftello map it to ftell
5006 cat > $TMPC << EOF
5007 #include <stdio.h>
5008 int main (void) { ftello(stdin); return 0; }
5010 _ftello=no
5011 cc_check && _ftello=yes
5012 if test "$_ftello" = yes ; then
5013 _def_ftello='#define HAVE_FTELLO 1'
5014 else
5015 _def_ftello='#undef HAVE_FTELLO'
5017 echores "$_ftello"
5019 # Determine OS dependent libs
5020 if cygwin ; then
5021 _confcygwin='TARGET_CYGWIN = yes'
5022 _def_confwin32='#define WIN32'
5023 #CFLAGS="$CFLAGS -D__CYGWIN__ -D__CYGWIN_USE_BIG_TYPES__"
5024 # stat.st_size with BIG_TYPES is broken (not set) ::atmos
5025 CFLAGS="$CFLAGS -D__CYGWIN__"
5026 else
5027 _confcygwin="TARGET_CYGWIN = no"
5030 # Dynamic linking flags
5031 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
5032 _ld_dl_dynamic=''
5033 bsd && _ld_dl_dynamic='-rdynamic'
5034 test "$_xanim" = yes && _ld_dl_dynamic='-rdynamic'
5035 test "$_real" = yes && _ld_dl_dynamic='-rdynamic'
5037 _ld_arch="$_ld_arch $_ld_pthread $_ld_dl $_ld_dl_dynamic"
5038 bsdos && _ld_arch="$_ld_arch -ldvd"
5039 if netbsd ; then
5040 x86 && _ld_arch="$_ld_arch -li386"
5043 _def_debug='#undef MP_DEBUG'
5044 test "$_debug" != "" && _def_debug='#define MP_DEBUG 1'
5046 _def_linux='#undef TARGET_LINUX'
5047 linux && _def_linux='#define TARGET_LINUX 1'
5049 # TODO cleanup the VIDIX stuff here
5050 _def_vidix='#define CONFIG_VIDIX 1'
5051 test "$_vidix" = no && _def_vidix='#undef CONFIG_VIDIX'
5052 if test "$_vidix" = yes && test "$_x11" = yes; then
5053 _vosrc="$_vosrc vo_xvidix.c"
5054 _vomodules="xvidix $_vomodules"
5055 else
5056 _novomodules="xvidix $_novomodules"
5058 echo Checking for vidix ... "$_vidix"
5060 _def_joystick='#undef HAVE_JOYSTICK'
5061 if test "$_joystick" = yes ; then
5062 if linux ; then
5063 # TODO add some check
5064 _def_joystick='#define HAVE_JOYSTICK 1'
5065 else
5066 _joystick="no (unsupported under $system_name)"
5069 echo Checking for joystick ... "$_joystick"
5071 echocheck "lirc"
5072 if test "$_lirc" = auto ; then
5073 _lirc=no
5074 if test -c /dev/lirc ; then
5075 cat > $TMPC <<EOF
5076 #include <lirc/lirc_client.h>
5077 int main(void) { return 0; }
5079 cc_check -llirc_client && _lirc=yes
5082 if test "$_lirc" = yes ; then
5083 _def_lirc='#define HAVE_LIRC 1'
5084 _ld_lirc='-llirc_client'
5085 else
5086 _def_lirc='#undef HAVE_LIRC'
5088 echores "$_lirc"
5091 #############################################################################
5092 echo "Creating config.mak"
5093 cat > config.mak << EOF
5094 # -------- Generated by configure -----------
5096 LANG = C
5097 LANGUAGES = $LANGUAGES
5098 TARGET_OS = $system_name
5099 DESTDIR =
5100 prefix = \$(DESTDIR)$_prefix
5101 BINDIR = \$(DESTDIR)$_bindir
5102 DATADIR = \$(DESTDIR)$_datadir
5103 MANDIR = \$(DESTDIR)$_mandir
5104 CONFDIR = \$(DESTDIR)$_confdir
5105 LIBDIR = \$(DESTDIR)$_libdir
5106 #AR = ar
5107 CC = $_cc
5108 AWK = $_awk
5109 RANLIB = $_ranlib
5110 INSTALL = $_install
5111 # OPTFLAGS = -O4 $_profile $_debug $_march $_mcpu -pipe -fomit-frame-pointer -ffast-math
5112 OPTFLAGS = $CFLAGS
5113 EXTRA_INC = $_inc_extra $_inc_gtk
5114 STRIPBINARIES = $_stripbinaries
5116 $_live_libs_def
5118 STREAMING = $_streaming
5119 STREAMING_LIVE_DOT_COM = $_live
5120 STREAMING_LIB = $_ld_streaming $_ld_live
5121 DVBIN = $_dvbin
5122 VIDIX = $_vidix
5123 SHARED_PP = $_shared_pp
5124 CONFIG_PP = yes
5125 CONFIG_RISKY = yes
5126 LIBMENU = $_menu
5127 I18NLIBS = $_i18n_libs
5129 OPENDIVX = $_opendivx
5131 UNRARLIB = $_unrarlib
5133 PNG = $_mkf_png
5134 JPEG = $_mkf_jpg
5135 GIF = $_mkf_gif
5137 EXTRA_LIB = $_ld_extra
5138 Z_LIB = $_ld_static $_ld_zlib
5139 HAVE_MLIB = $_mlib
5140 WIN32_LIB = $_ld_win32libs
5141 STATIC_LIB = $_ld_static
5143 X11_INC = $_inc_x11
5144 X11DIR = $_ld_x11
5146 # for libavcodec:
5147 SRC_PATH=.
5149 # video output
5150 X_LIB = $_ld_gl $_ld_dga $_ld_xv $_ld_vm $_ld_xinerama $_ld_x11 $_ld_mad $_ld_sock
5151 GGI_LIB = $_ld_ggi
5152 MLIB_LIB = $_ld_mlib
5153 MLIB_INC = $_inc_mlib
5154 DXR2_INC = $_inc_dxr2
5155 DVB_INC = $_inc_dvb
5156 PNG_LIB = $_ld_png
5157 JPEG_LIB = $_ld_jpg
5158 GIF_LIB = $_ld_gif
5159 SDL_LIB = $_ld_sdl
5160 SVGA_LIB = $_ld_svga
5161 AA_LIB = $_ld_aa
5163 # audio output
5164 ALSA_LIB = $_ld_alsa
5165 NAS_LIB = $_ld_nas
5166 ARTS_LIB = $_ld_arts
5167 ARTS_INC = $_inc_arts
5168 ESD_LIB = $_ld_esd
5169 ESD_INC = $_inc_esd
5170 SGIAUDIO_LIB = $_ld_sgiaudio
5172 # input/demuxer/codecs
5173 TERMCAP_LIB = $_ld_termcap
5174 LIRC_LIB = $_ld_lirc
5175 CSS_USE = $_css
5176 CSS_LIB = $_ld_css
5177 DVDKIT = $_dvdkit
5178 DVDKIT2 = $_dvdkit2
5179 DVDKIT_SHARED = no
5180 SDL_INC = $_inc_sdl
5181 W32_DEP = $_dep_win32
5182 W32_LIB = $_ld_win32
5183 DS_DEP = $_dep_dshow
5184 DS_LIB = $_ld_dshow
5185 AV_DEP = $_dep_libavcodec
5186 AV_LIB = $_ld_libavcodec
5187 FAME = $_fame
5188 FAME_LIB = $_ld_fame
5189 MP1E_DEP = $_dep_mp1e
5190 MP1E_LIB = $_ld_mp1e
5191 ARCH_LIB = $_ld_arch $_ld_iconv
5192 XVID = $_xvid
5193 XVID_LIB = $_ld_xvid
5194 DECORE_LIB = $_ld_decore
5195 MENCODER = $_mencoder
5196 ENCORE_LIB = $_ld_encore $_ld_mp3lame
5197 DIRECTFB_INC = $_inc_directfb
5198 DIRECTFB_LIB = $_ld_directfb
5199 CDPARANOIA_INC = $_inc_cdparanoia
5200 CDPARANOIA_LIB = $_ld_cdparanoia
5201 FREETYPE_INC = $_inc_freetype
5202 FREETYPE_LIB = $_ld_freetype
5203 FRIBIDI_INC = $_inc_fribidi
5204 FRIBIDI_LIB = $_ld_fribidi
5205 LIBLZO_LIB= $_ld_liblzo
5206 MAD_LIB = $_ld_mad
5207 VORBIS_LIB = $_ld_vorbis $_ld_libdv
5208 FAAD_LIB = $_ld_faad
5209 SMBSUPPORT_LIB = $_ld_smb
5210 XMMS_PLUGINS = $_xmms
5211 XMMS_LIB = $_xmms_lib
5212 MACOSX = $_macosx
5213 MACOSX_FRAMEWORKS = $_macosx_frameworks
5215 # --- Some stuff for autoconfigure ----
5216 $_target_arch
5217 $_confcygwin
5218 TARGET_CPU=$iproc
5219 TARGET_MMX = $_mmx
5220 TARGET_MMX2 = $_mmx2
5221 TARGET_3DNOW = $_3dnow
5222 TARGET_3DNOWEX = $_3dnowex
5223 TARGET_SSE = $_sse
5224 TARGET_ALTIVEC = $_altivec
5226 # --- GUI stuff ---
5227 GTKLIB = $_ld_static $_ld_gtk
5228 GLIBLIB = $_ld_static $_ld_glib
5229 GTK_LIBS = $_ld_static $_ld_gui
5230 GUI = $_gui
5231 DEBUG = -DDEBUG
5235 #############################################################################
5236 echo "Creating config.h"
5237 cat > config.h << EOF
5238 /* -------- This file has been automatically generated by configure ---------
5239 Note: Any changes in it will be lost when you run configure again. */
5241 /* use GNU internationalization */
5242 $_def_i18n
5244 /* use setlocale() function */
5245 $_def_setlocale
5247 /* Runtime CPU detection */
5248 $_def_runtime_cpudetection
5250 /* Dynamic a/v plugins */
5251 $_def_dynamic_plugins
5253 /* "restrict" keyword */
5254 #define restrict $_def_restrict_keyword
5256 #define PREFIX "$_prefix"
5258 /* define this to use simple idct with patched libavcodec */
5259 #define SIMPLE_IDCT 1
5261 #define USE_OSD 1
5262 #define USE_SUB 1
5264 /* enable/disable SIGHANDLER */
5265 $_def_sighandler
5267 /* Toggles debugging informations */
5268 $_def_debug
5270 /* Indicates that Ogle's libdvdread is available for DVD playback */
5271 $_def_dvdread
5273 /* Indicates that dvdread is from libmpdvdkit */
5274 $_def_mpdvdkit
5276 /* Additional options for libmpdvdkit*/
5277 $_def_dvd
5278 $_def_cdrom
5279 $_def_cdio
5280 $_def_dvdio
5281 $_def_bsdi_dvd
5282 $_def_dvd_bsd
5283 $_def_dvd_linux
5284 $_dev_dvd_openbsd
5285 $_def_dvd_darwin
5286 $_def_sol_scsi_h
5287 $_def_hpux_scsi_h
5288 $_def_stddef
5290 /* Common data directory (for fonts, etc) */
5291 #define DATADIR "$_datadir"
5292 #define CONFDIR "$_confdir"
5293 #define LIBDIR "$_libdir"
5295 /* Define this to compile stream-caching support, it can be enabled via
5296 -cache <kilobytes> */
5297 #define USE_STREAM_CACHE 1
5299 /* Define to include support for XviD/Divx4Linux/OpenDivx */
5300 $_def_divx
5302 /* Define to use the new XviD/DivX4Linux library instead of open source OpenDivX */
5303 /* You have to change DECORE_LIBS in config.mak, too! */
5304 $_def_decore
5306 /* Define if you are using DivX5Linux Decore library */
5307 $_def_divx5
5309 /* Define if you are using XviD library */
5310 $_def_xvid
5311 $_def_decore_xvid
5312 $_def_encore_xvid
5314 /* Define to include support for libdv-0.9.5 */
5315 $_def_libdv
5317 /* If build mencoder */
5318 $_mencoder_flag
5320 /* Indicates if XviD/Divx4linux encore is available
5321 Note: for mencoder */
5322 $_def_encore
5324 /* Indicates if libmp3lame is available
5325 Note: for mencoder */
5326 $_def_mp3lame
5328 /* Define libmp1e for realtime mpeg encoding (for DXR3 and DVB cards) */
5329 $_def_mp1e
5331 /* Define this to enable avg. byte/sec-based AVI sync method by default:
5332 (use -bps or -nobps commandline option for run-time method selection)
5333 -bps gives better sync for vbr mp3 audio, it is now default */
5334 #define AVI_SYNC_BPS 1
5336 /* Undefine this if you do not want to select mono audio (left or right)
5337 with a stereo MPEG layer 2/3 audio stream. The command line option
5338 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
5339 right-only), with 0 being the default.
5341 #define USE_FAKE_MONO 1
5343 /* Undefine this if your sound card driver has no working select().
5344 If you have kernel Oops, player hangups, or just no audio, you should
5345 try to recompile MPlayer with this option disabled! */
5346 $_def_select
5348 /* define this to use iconv(3) function to codepage conversions */
5349 $_def_iconv
5351 /* define this to use RTC (/dev/rtc) for video timers (LINUX only) */
5352 $_def_rtc
5354 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
5355 #define MAX_OUTBURST 65536
5357 /* set up audio OUTBURST. Do not change this! */
5358 #define OUTBURST 512
5360 /* Define this if your system has the header file for the OSS sound interface */
5361 $_def_sys_soundcard
5363 /* Define this if your system has the header file for the OSS sound interface
5364 * in /usr/include */
5365 $_def_soundcard
5367 /* Define this if your system has the sysinfo header */
5368 $_def_sys_sysinfo
5370 /* Define this if your system uses ftello() for off_t seeking */
5372 $_def_ftello
5373 #ifndef HAVE_FTELLO
5374 # define ftello(a) ftell(a)
5375 #endif
5377 /* Define this if your system has the "malloc.h" header file */
5378 $_def_malloc
5380 /* memalign is mapped to malloc if unsupported */
5381 $_def_memalign
5382 #ifndef HAVE_MEMALIGN
5383 # define memalign(a,b) malloc(b)
5384 #endif
5386 /* Define this if your system has the "alloca.h" header file */
5387 $_def_alloca
5389 /* Define this if your system has the "sys/mman.h" header file */
5390 $_def_mman
5392 /* Define this if you have the elf dynamic linker -ldl library */
5393 $_def_dl
5395 /* Define this if you have the kstat kernel statistics library */
5396 $_def_kstat
5398 /* Define this if you have zlib */
5399 $_def_zlib
5401 /* Define this if you have shm support */
5402 $_def_shm
5404 /* Define this if your system has scandir & alphasort */
5405 $_def_scandir
5407 /* Define this if your system has strsep */
5408 $_def_strsep
5410 /* Define this if your system has vsscanf */
5411 $_def_vsscanf
5413 /* Define this if your system has no posix select */
5414 $_def_no_posix_select
5416 /* Define this if your system has gettimeofday */
5417 $_def_gettimeofday
5419 /* Define this if your system has glob */
5420 $_def_glob
5422 /* LIRC (remote control, see www.lirc.org) support: */
5423 $_def_lirc
5425 /* DeCSS support using libcss */
5426 $_def_css
5428 /* DVD navigation support using libdvdnav */
5429 $_def_dvdnav
5430 $_def_dvdnav_version
5432 /* Define this to enable MPEG 1/2 image postprocessing (requires a FAST CPU!) */
5433 #define MPEG12_POSTPROC 1
5435 /* Define this to enable image postprocessing in libavcodec (requires a FAST CPU!) */
5436 $_def_ffpostprocess
5438 /* Define to include support for OpenDivx postprocessing */
5439 $_def_odivx_postprocess
5441 /* Win32 DLL support */
5442 $_def_win32
5443 #define WIN32_PATH "$_win32libdir"
5445 /* DirectShow support */
5446 $_def_dshow
5448 /* Mac OS X specific features */
5449 $_def_macosx
5451 /* Build our Win32-loader */
5452 $_def_win32_loader
5454 /* ffmpeg's libavcodec support (requires libavcodec source) */
5455 $_def_libavcodec
5456 $_def_libavcodecso
5458 /* risky codecs */
5459 #define CONFIG_RISKY 1
5461 /* Use libavcodec's decoders */
5462 #define CONFIG_DECODERS 1
5463 /* Use libavcodec's encoders */
5464 #define CONFIG_ENCODERS 1
5466 /* Use codec libs included in mplayer CVS / source dist: */
5467 #define USE_MP3LIB
5468 #define USE_LIBA52
5469 #define USE_LIBMPEG2
5471 /* Use the SVQ1 decoder in libmpcodecs - we don't want/need it with libavcodec */
5472 #ifndef USE_LIBAVCODEC
5473 #define USE_SVQ1
5474 #endif
5476 /* Use libfame encoder filter */
5477 $_def_fame
5479 /* XAnim DLL support */
5480 $_def_xanim
5481 /* Default search path */
5482 $_def_xanim_path
5484 /* RealPlayer DLL support */
5485 $_def_real
5486 /* Default search path */
5487 $_def_real_path
5489 /* LIVE.COM Streaming Media library support */
5490 $_def_live
5492 /* Use 3dnow/mmxext/sse/mmx optimized fast memcpy() [maybe buggy... signal 4]*/
5493 $_def_fastmemcpy
5495 /* Use unrarlib for Vobsubs */
5496 $_def_unrarlib
5498 /* gui support, please do not edit this option */
5499 $_def_gui
5501 /* Audio output drivers */
5502 $_def_ossaudio
5503 $_def_ossaudio_devdsp
5504 $_def_ossaudio_devmixer
5505 $_def_alsa5
5506 $_def_alsa9
5507 $_def_arts
5508 $_def_esd
5509 $_def_sys_asoundlib_h
5510 $_def_alsa_asoundlib_h
5511 $_def_sunaudio
5512 $_def_sgiaudio
5513 $_def_win32waveout
5514 $_def_nas
5516 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
5517 #undef FAST_OSD
5518 #undef FAST_OSD_TABLE
5520 /* Enable TV Interface support */
5521 $_def_tv
5523 /* Enable EDL support */
5524 $_def_edl
5526 /* Enable Video 4 Linux TV interface support */
5527 $_def_tv_v4l
5529 /* Enable *BSD BrookTree TV interface support */
5530 $_def_tv_bsdbt848
5532 /* Define if your processor stores words with the most significant
5533 byte first (like Motorola and SPARC, unlike Intel and VAX). */
5534 $_def_words_endian
5536 $_def_arch
5538 /* Define this for Cygwin build for win32 */
5539 $_def_confwin32
5541 /* Define this to any prefered value from 386 up to infinity with step 100 */
5542 #define __CPU__ $iproc
5544 $_mp_wordsize
5546 $_def_linux
5548 $_def_vcd
5550 #ifdef sun
5551 #define DEFAULT_CDROM_DEVICE "/vol/dev/aliases/cdrom0"
5552 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
5553 #elif defined(HPUX)
5554 #define DEFAULT_CDROM_DEVICE "/dev/cdrom"
5555 #define DEFAULT_DVD_DEVICE "/dev/dvd"
5556 #elif defined(WIN32)
5557 #define DEFAULT_CDROM_DEVICE "D:"
5558 #define DEFAULT_DVD_DEVICE "D:"
5559 #elif defined(SYS_DARWIN)
5560 #define DEFAULT_CDROM_DEVICE "/dev/rdiskN"
5561 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
5562 #else
5563 #define DEFAULT_CDROM_DEVICE "/dev/cdrom"
5564 #define DEFAULT_DVD_DEVICE "/dev/dvd"
5565 #endif
5568 /*----------------------------------------------------------------------------
5570 ** NOTE: Instead of modifying these definitions here, use the
5571 ** --enable/--disable options of the ./configure script!
5572 ** See ./configure --help for details.
5574 *---------------------------------------------------------------------------*/
5576 /* C99 lrintf function available */
5577 $_def_lrintf
5579 /* nanosleep support */
5580 $_def_nanosleep
5582 /* SMB support */
5583 $_def_smbsupport
5585 /* termcap flag for getch2.c */
5586 $_def_termcap
5588 /* termios flag for getch2.c */
5589 $_def_termios
5590 $_def_termios_h
5591 $_def_termios_sys_h
5593 /* enable PNG support */
5594 $_def_png
5596 /* enable JPEG support */
5597 $_def_jpg
5599 /* enable GIF support */
5600 $_def_gif
5601 $_def_gif_4
5602 $_def_gif_tvt_hack
5604 /* enable FreeType support */
5605 $_def_freetype
5607 /* enable FriBiDi usage */
5608 $_def_fribidi
5610 /* liblzo support */
5611 $_def_liblzo
5613 /* libmad support */
5614 $_def_mad
5616 /* enable OggVorbis support */
5617 $_def_vorbis
5619 /* enable Tremor as vorbis decoder */
5620 $_def_tremor
5622 /* enable FAAD (AAC) support */
5623 $_def_faad
5624 $_def_faad_version
5626 /* enable streaming */
5627 $_def_streaming
5629 /* define this to use inet_aton() instead of inet_pton() */
5630 $_def_use_aton
5632 /* enables / disables cdparanoia support */
5633 $_def_cdparanoia
5635 /* enables / disables VIDIX usage */
5636 $_def_vidix
5638 /* enables / disables new input joystick support */
5639 $_def_joystick
5641 /* enables / disables new config */
5642 $_def_new_conf
5644 /* enables / disables QTX codecs */
5645 $_def_qtx_codecs
5647 /* enables / disables osd menu */
5648 $_def_menu
5650 /* enables / disables subtitles sorting */
5651 $_def_sortsub
5653 /* XMMS input plugin support */
5654 $_def_xmms
5655 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
5657 /* enables inet6 support */
5658 $_def_inet6
5660 /* do we have gethostbyname2? */
5661 $_def_gethostbyname2
5663 /* Extension defines */
5664 $_def_3dnow // only define if you have 3DNOW (AMD k6-2, AMD Athlon, iDT WinChip, etc.)
5665 $_def_3dnowex // only define if you have 3DNOWEX (AMD Athlon, etc.)
5666 $_def_mmx // only define if you have MMX (newer x86 chips, not P54C/PPro)
5667 $_def_mmx2 // only define if you have MMX2 (Athlon/PIII/4/CelII)
5668 $_def_sse // only define if you have SSE (Intel Pentium III/4 or Celeron II)
5669 $_def_sse2 // only define if you have SSE2 (Intel Pentium 4)
5670 $_def_altivec // only define if you have Altivec (G4)
5672 #ifdef HAVE_MMX
5673 #define USE_MMX_IDCT 1
5674 #endif
5676 $_def_mlib // Sun mediaLib, available only on solaris
5678 /* libmpeg2 uses a different feature test macro for mediaLib */
5679 #ifdef HAVE_MLIB
5680 #define LIBMPEG2_MLIB 1
5681 #endif
5683 /* libvo options */
5684 #define SCREEN_SIZE_X 1
5685 #define SCREEN_SIZE_Y 1
5686 $_def_x11
5687 $_def_xv
5688 $_def_vm
5689 $_def_xinerama
5690 $_def_gl
5691 $_def_dga
5692 $_def_dga2
5693 $_def_sdl
5694 /* defined for SDLlib with keyrepeat bugs (before 1.2.1) */
5695 $_def_sdlbuggy
5696 $_def_directx
5697 $_def_ggi
5698 $_def_3dfx
5699 $_def_tdfxfb
5700 $_def_tdfxvid
5701 $_def_directfb
5702 $_def_directfb_version
5703 $_def_zr
5704 $_def_bl
5705 $_def_mga
5706 $_def_xmga
5707 $_def_syncfb
5708 $_def_fbdev
5709 $_def_fbdev_nocopy
5710 $_def_dxr2
5711 $_def_dxr3
5712 $_def_dvb
5713 $_def_dvb_in
5714 $_def_svga
5715 $_def_vesa
5716 $_def_xdpms
5717 $_def_aa
5719 /* used by GUI: */
5720 $_def_xshape
5722 #if defined(HAVE_GL) || defined(HAVE_X11) || defined(HAVE_XV)
5723 #define X11_FULLSCREEN 1
5724 #endif
5728 #############################################################################
5730 echo "Creating libvo/config.mak"
5731 _voobj=`echo $_vosrc | sed -e 's/\.c/\.o/g'`
5732 cat > libvo/config.mak << EOF
5733 include ../config.mak
5734 OPTIONAL_SRCS = $_vosrc
5735 OPTIONAL_OBJS = $_voobj
5738 #############################################################################
5740 echo "Creating libao2/config.mak"
5741 _aoobj=`echo $_aosrc | sed -e 's/\.c/\.o/g'`
5742 cat > libao2/config.mak << EOF
5743 include ../config.mak
5744 OPTIONAL_SRCS = $_aosrc
5745 OPTIONAL_OBJS = $_aoobj
5748 #############################################################################
5750 echo "Creating help_mp.h"
5751 cat > help_mp.h << EOF
5753 // WARNING! This is a generated file. Do NOT edit.
5754 // See the help/ subdir for the editable files.
5756 #include "$_mp_help"
5759 if test $_mp_help != "help/help_mp-en.h"; then
5760 echo "Adding untranslated messages to help_mp.h"
5761 echo '// untranslated messages from the english master-file:' >> help_mp.h
5762 help/help_diff.sh $_mp_help <help/help_mp-en.h >> help_mp.h
5765 #############################################################################
5767 cat << EOF
5769 Config files successfully generated by ./configure !
5771 Install prefix: $_prefix
5772 Data directory: $_datadir
5773 Config direct.: $_confdir
5775 Byte order: $_byte_order
5776 Optimizing for: $_optimizing
5778 Languages:
5779 Messages/GUI: $_language
5782 echo -n " Manual pages: $LANGUAGES"
5783 test "$LANGUAGES" = en && echo -n " (no localization selected, use --language=all)"
5784 echo
5786 cat << EOF
5788 Enabled optional drivers:
5789 Input: $_inputmodules
5790 Codecs: $_codecmodules
5791 Audio output: $_aomodules
5792 Video output: $_vomodules
5793 Disabled optional drivers:
5794 Input: $_noinputmodules
5795 Codecs: $_nocodecmodules
5796 Audio output: $_noaomodules
5797 Video output: $_novomodules
5799 'config.h' and 'config.mak' contain your configuration options.
5800 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
5801 compile *** DO NOT REPORT BUGS if you tweak these files ***
5803 'make' will now compile MPlayer and 'make install' will install it.
5804 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
5809 if test "$_mtrr" = yes ; then
5810 echo "Please check mtrr settings at /proc/mtrr (see DOCS/video.html#mtrr)"
5811 echo
5814 if test "$_sdl" = "outdated" ; then
5815 cat <<EOF
5816 You have an outdated version of libSDL installed (older than v1.1.7) and SDL
5817 support has therefore been disabled.
5819 Please upgrade to a more recent version (version 1.1.8 and above are known to
5820 work). You may get this library from: http://www.libsdl.org
5822 You need to rerun ./configure and recompile after updating SDL. If you are
5823 only interested in the libSDL audio drivers, then an older version might work.
5825 Use --enable-sdl to force usage of libSDL.
5830 if x86 && not cygwin; then
5831 if test "$_win32" = no ; then
5832 if test "$_win32libdir" ; then
5833 cat <<EOF
5834 Failed to find a Win32 codecs dir at $_win32libdir!
5835 Create it and copy the DLL files there! (You can get them from your Windows
5836 directory or download them from:
5837 ftp://ftp.MPlayerHQ.hu/MPlayer/releases/w32codec.tar.bz2
5841 else
5842 if test "$_win32libdir" ; then
5843 # echo "Ok, found Win32 codecs directory at $_win32libdir."
5845 else
5846 cat <<EOF
5847 Failed to find a Win32 codecs directory!
5848 Create it and copy the DLL files there! (You can get them from your Windows
5849 directory or download them from:
5850 ftp://ftp.MPlayerHQ.hu/MPlayer/releases/w32codec.tar.bz2
5855 else
5856 cat <<EOF
5857 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
5858 operating system ($system_name). Why don't you help us port it?
5859 You may encounter a few AVI files that cannot be played due to missing
5860 Open Source video/audio codec support.
5866 cat <<EOF
5868 Check $TMPLOG if you wonder why an autodetection failed (check whether
5869 the development headers/packages are installed).
5871 If you suspect a bug, please read DOCS/bugreports.html.
5875 if test "$_vidix" = no ; then
5876 cat <<EOF
5877 You've disabled VIDIX. Although it would be better to PORT it instead.
5878 Have a look at the documentation for supported cards!
5883 # Last move:
5884 rm -f "$TMPO" "$TMPC" "$TMPS" "$TMPCPP"