Some people confuse vidix with kernel drivers, so let's add a note about it
[mplayer/glamo.git] / configure
blob75bbc914e6ea72d271508e4952d69c358da7416d
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 # Prevent locale nonsense from breaking basic text processing utils
27 LC_ALL=C
28 export LC_ALL
30 # Prefer these macros to full length text !
31 # These macros only return an error code - NO display is done
32 cc_check() {
33 echo >> "$TMPLOG"
34 cat "$TMPC" >> "$TMPLOG"
35 echo >> "$TMPLOG"
36 echo "$_cc $CFLAGS $_inc_extra $_ld_static $_ld_extra $TMPC -o $TMPO $@" >> "$TMPLOG"
37 rm -f "$TMPO"
38 ( $_cc $CFLAGS $_inc_extra $_ld_static $_ld_extra "$TMPC" -o "$TMPO" "$@" ) >> "$TMPLOG" 2>&1
39 TMP="$?"
40 echo >> "$TMPLOG"
41 echo "ldd $TMPO" >> "$TMPLOG"
42 ( $_ldd "$TMPO" ) >> "$TMPLOG" 2>&1
43 echo >> "$TMPLOG"
44 return "$TMP"
47 # Display error message, flushes tempfile, exit
48 die () {
49 echo
50 echo "Error: $@" >&2
51 echo >&2
52 rm -f "$TMPO" "$TMPC" "$TMPS" "$TMPCPP"
53 echo "Check \"$TMPLOG\" if you do not understand why it failed."
54 exit 1
57 # OS test booleans functions
58 issystem() {
59 test "`echo $system_name | tr A-Z a-z`" = "`echo $1 | tr A-Z a-z`"
61 linux() { issystem "Linux" ; return "$?" ; }
62 sunos() { issystem "SunOS" ; return "$?" ; }
63 hpux() { issystem "HP-UX" ; return "$?" ; }
64 irix() { issystem "IRIX" ; return "$?" ; }
65 cygwin() { issystem "CYGWIN" ; return "$?" ; }
66 freebsd() { issystem "FreeBSD" ; return "$?" ; }
67 netbsd() { issystem "NetBSD" ; return "$?" ; }
68 bsdos() { issystem "BSD/OS" ; return "$?" ; }
69 openbsd() { issystem "OpenBSD" ; return "$?" ; }
70 bsd() { freebsd || netbsd || bsdos || openbsd ; return "$?" ; }
71 qnx() { issystem "QNX" ; return "$?" ; }
72 darwin() { issystem "Darwin" ; return "$?" ; }
73 gnu() { issystem "GNU" ; return "$?" ; }
74 mingw32() { issystem "MINGW32" ; return "$?" ; }
75 morphos() { issystem "MorphOS" ; return "$?" ; }
76 win32() { cygwin || mingw32 ; return "$?" ; }
77 beos() { issystem "BEOS" ; return "$?" ; }
79 # arch test boolean functions
80 # x86/x86pc is used by QNX
81 x86() {
82 case "$host_arch" in
83 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
84 *) return 1 ;;
85 esac
88 ppc() {
89 case "$host_arch" in
90 ppc) return 0;;
91 *) return 1;;
92 esac
95 alpha() {
96 case "$host_arch" in
97 alpha) return 0;;
98 *) return 1;;
99 esac
102 # not boolean test: implement the posix shell "!" operator for a
103 # non-posix /bin/sh.
104 # usage: not {command}
105 # returns exit status "success" when the execution of "command"
106 # fails.
107 not() {
108 eval "$@"
109 test $? -ne 0
112 # Use this before starting a check
113 echocheck() {
114 echo "============ Checking for $@ ============" >> "$TMPLOG"
115 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
118 # Use this to echo the results of a check
119 echores() {
120 echo "Result is: $@" >> "$TMPLOG"
121 echo "##########################################" >> "$TMPLOG"
122 echo "" >> "$TMPLOG"
123 echo "$@"
125 #############################################################################
127 # Check how echo works in this /bin/sh
128 case `echo -n` in
129 -n) _echo_n= _echo_c='\c' ;; # SysV echo
130 *) _echo_n='-n ' _echo_c= ;; # BSD echo
131 esac
133 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"`
135 for parm in "$@" ; do
136 if test "$parm" = "--help" || test "$parm" = "-help" || test "$parm" = "-h" ; then
137 cat << EOF
139 Usage: $0 [OPTIONS]...
141 Configuration:
142 -h, --help display this help and exit
144 Installation directories:
145 --prefix=DIR use this prefix for installing mplayer [/usr/local]
146 --bindir=DIR use this prefix for installing mplayer binary
147 [PREFIX/bin]
148 --datadir=DIR use this prefix for installing machine independent
149 data files (fonts, skins) [PREFIX/share/mplayer]
150 --mandir=DIR use this prefix for installing manpages [PREFIX/man]
151 --confdir=DIR use this prefix for installing configuration files
152 [PREFIX/etc/mplayer]
153 --libdir=DIR use this prefix for object code libraries [PREFIX/lib]
155 Optional features:
156 --disable-mencoder disable mencoder (a/v encoder) compilation [enable]
157 --enable-gui enable gmplayer compilation (GTK 1.2 GUI) [disable]
158 --enable-largefiles enable support for files > 2 GBytes [disable]
159 --enable-linux-devfs set default devices to devfs ones [disable]
160 --enable-termcap use termcap database for key codes [autodetect]
161 --enable-termios use termios database for key codes [autodetect]
162 --disable-iconv do not use iconv(3) function [autodetect]
163 --disable-setlocale disable setlocale using in mplayer [autodetect]
164 --disable-langinfo do not use langinfo [autodetect]
165 --enable-lirc enable LIRC (remote control) support [autodetect]
166 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
167 --enable-joystick enable joystick support [disable]
168 --disable-vm disable support X video mode extensions [autodetect]
169 --disable-xf86keysym disable support for 'multimedia' keys [autodetect]
170 --disable-tv disable TV Interface (tv/dvb grabbers) [enable]
171 --disable-tv-v4l disable Video4Linux TV Interface support [autodetect]
172 --disable-tv-v4l2 disable Video4Linux2 TV Interface support [autodetect]
173 --disable-tv-bsdbt848 disable BSD BT848 Interface support [autodetect]
174 --disable-edl disable EDL (edit decision list) support [enable]
175 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
176 --disable-network disable network support (for: http/mms/rtp) [enable]
177 --enable-winsock2 enable winsock2 usage [autodetect]
178 --enable-smb enable Samba (SMB) input support [autodetect]
179 --enable-live enable LIVE.COM Streaming Media support [autodetect]
180 --disable-dvdread Disable libdvdread support [autodetect]
181 --disable-mpdvdkit Disable mpdvdkit/mpdvdkit2 support [autodetect]
182 --disable-cdparanoia Disable cdparanoia support [autodetect]
183 --disable-freetype Disable freetype2 font rendering support [autodetect]
184 --disable-fontconfig Disable fontconfig font lookup support [autodetect]
185 --disable-unrarlib Disable Unique RAR File Library [enabled]
186 --enable-menu Enable OSD menu support (NOT DVD MENU) [disabled]
187 --disable-sortsub Disable subtitles sorting [enabled]
188 --enable-fribidi Enable using the FriBiDi libs [disabled]
189 --disable-enca Disable using ENCA charset oracle library [autodetect]
190 --disable-macosx Disable Mac OS X specific features [autodetect]
191 --enable-macosx-finder-support Enable Mac OS X Finder invocation parameter parsing [disabled]
192 --enable-macosx-bundle Enable Mac OS X bundle file locations [autodetect]
193 --disable-inet6 Disable IPv6 support [autodetect]
194 --disable-gethostbyname2 gethostbyname() function is not provided by the C
195 library [autodetect]
196 --disable-ftp Disable ftp support [enabled]
197 --disable-vstream Disable tivo vstream client support [autodetect]
198 --disable-pthreads Disable Posix threads support [autodetect]
200 Codecs:
201 --enable-gif enable gif support [autodetect]
202 --enable-png enable png input/output support [autodetect]
203 --enable-jpeg enable jpeg input/output support [autodetect]
204 --enable-liblzo enable external liblzo support [autodetect]
205 --disable-win32 disable Win32 DLL support [autodetect]
206 --disable-dshow disable Win32/DirectShow support [autodetect]
207 --disable-qtx disable Quicktime codecs [autodetect]
208 --disable-xanim disable XAnim DLL support [autodetect]
209 --disable-real disable RealPlayer DLL support [autodetect]
210 --disable-xvid disable XviD codec [autodetect]
211 --disable-x264 disable H.264 encoder [autodetect]
212 --disable-divx4linux disable DivX4linux/Divx5linux codec [autodetect]
213 --enable-opendivx enable _old_ OpenDivx codec [disable]
214 --disable-libavcodec disable libavcodec [autodetect]
215 --disable-libavformat disable libavformat [autodetect]
216 --enable-libfame enable libfame realtime encoder [autodetect]
217 --disable-internal-tremor do not build internal OggVorbis support [enabled]
218 --enable-tremor-low build with lower accuracy internal tremor [disabled]
219 --enable-external-tremor build with external tremor [disabled]
220 --disable-vorbis disable OggVorbis support entirely [autodetect]
221 --enable-theora build with OggTheora support [autodetect]
222 --disable-internal-matroska disable internal Matroska support [enabled]
223 --enable-external-faad build with external FAAD2 (AAC) support [autodetect]
224 --disable-internal-faad disable internal FAAD2 (AAC) support [autodetect]
225 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
226 --disable-ladspa disable LADSPA plugin support [autodetect]
227 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
228 --disable-mad disable libmad (MPEG audio) support [autodetect]
229 --disable-toolame disable Toolame (MPEG layer 2 audio) support in mencoder [autodetect]
230 --disable-twolame disable Twolame (MPEG layer 2 audio) support in mencoder [autodetect]
231 --enable-xmms build with XMMS inputplugin support [disabled]
232 --disable-mp3lib disable builtin mp3lib [enabled]
233 --disable-liba52 disable builtin liba52 [enabled]
234 --enable-libdts enable libdts support [autodetect]
235 --disable-libmpeg2 disable builtin libmpeg2 [enabled]
236 --disable-amr_nb disable amr narrowband, floating point [autodetect]
237 --disable-amr_nb-fixed disable amr narrowband, fixed point [autodetect]
238 --disable-amr_wb disable amr wideband, floating point [autodetect]
239 --disable-codec=CODEC disable specified codec
240 --enable-codec=CODEC dnable specified codec
242 Video output:
243 --disable-vidix disable VIDIX [enable on x86 *nix]
244 --enable-gl build with OpenGL render support [autodetect]
245 --enable-dga[=n] build with DGA [n in {1, 2} ] support [autodetect]
246 --enable-vesa build with VESA support [autodetect]
247 --enable-svga build with SVGAlib support [autodetect]
248 --enable-sdl build with SDL render support [autodetect]
249 --enable-aa build with AAlib render support [autodetect]
250 --enable-caca build with CACA render support [autodetect]
251 --enable-ggi build with GGI render support [autodetect]
252 --enable-ggiwmh build with GGI libggiwmh extension [autodetect]
253 --enable-directx build with DirectX support [autodetect]
254 --enable-dxr2 build with DXR2 render support [autodetect]
255 --enable-dxr3 build with DXR3/H+ render support [autodetect]
256 --enable-dvb build with support for output via DVB-Card [autodetect]
257 --enable-dvbhead build with DVB support (HEAD version) [autodetect]
258 --enable-mga build with mga_vid (for Matrox G200/G4x0/G550) support
259 (check for /dev/mga_vid) [autodetect]
260 --enable-xmga build with mga_vid X Window support
261 (check for X & /dev/mga_vid) [autodetect]
262 --enable-xv build with Xv render support for X 4.x [autodetect]
263 --enable-xvmc build with XvMC acceleration for X 4.x [disable]
264 --enable-vm build with XF86VidMode support for X11 [autodetect]
265 --enable-xinerama build with Xinerama support for X11 [autodetect]
266 --enable-x11 build with X11 render support [autodetect]
267 --enable-fbdev build with FBDev render support [autodetect]
268 --enable-mlib build with MLIB support (Solaris only) [autodetect]
269 --enable-3dfx build with obsolete /dev/3dfx support [disable]
270 --enable-tdfxfb build with tdfxfb (Voodoo 3/banshee) support [disable]
271 --enable-directfb build with DirectFB support [autodetect]
272 --enable-zr build with ZR360[56]7/ZR36060 support [autodetect]
273 --enable-bl build with Blinkenlights support [disable]
274 --enable-tdfxvid build with tdfx_vid support [disable]
275 --disable-tga disable targa output support [enable]
276 --disable-pnm disable pnm output support [enable]
277 --disable-md5sum disable md5sum output support [enable]
279 Audio output:
280 --disable-alsa disable ALSA sound support [autodetect]
281 --disable-ossaudio disable OSS sound support [autodetect]
282 --disable-arts disable aRts sound support [autodetect]
283 --disable-esd disable esd sound support [autodetect]
284 --disable-polyp disable Polypaudio sound support [autodetect]
285 --disable-jack disable JACK sound support [autodetect]
286 --disable-nas disable NAS sound support [autodetect]
287 --disable-sgiaudio disable SGI sound support [autodetect]
288 --disable-sunaudio disable Sun sound support [autodetect]
289 --disable-win32waveout disable Windows waveout sound support [autodetect]
290 --disable-select disable using select() on audio device [enable]
292 Miscellaneous options:
293 --enable-runtime-cpudetection Enable runtime CPU detection [disable]
294 --cc=COMPILER use this C compiler to build MPlayer [gcc]
295 --host-cc=COMPILER use this C compiler to build apps needed for the build process [gcc]
296 --as=ASSEMBLER use this assembler to build MPlayer [as]
297 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
298 --enable-static build a statically linked binary. Set further linking
299 options with --enable-static="-lslang -lncurses"
300 --charset convert the help messages to this charset
301 --language=list a white space or comma separated list of languages
302 for translated man pages, the first language is the
303 primary and therefore used for translated messages
304 and GUI (also the environment variable \$LINGUAS is
305 honored) [en]
306 (Available: $LANGUAGES all)
307 --enable-shared-pp install & use shared postprocessing lib
308 --with-install=PATH use a custom install program (useful if your OS uses
309 a GNU-incompatible install utility by default and
310 you want to use GNU version)
311 --install-path=PATH the path to a custom install program
312 this option is obsolete and will be removed soon,
313 use --with-install instead.
315 Advanced options:
316 --enable-mmx build with MMX support [autodetect]
317 --enable-mmx2 build with MMX2 support (PIII, Athlon) [autodetect]
318 --enable-3dnow build with 3DNow! support [autodetect]
319 --enable-3dnowex build with extended 3DNow! support [autodetect]
320 --enable-sse build with SSE support [autodetect]
321 --enable-sse2 build with SSE2 support [autodetect]
322 --enable-shm build with shm support [autodetect]
323 --enable-altivec build with Altivec support (PowerPC) [autodetect]
324 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy() [enable]
325 --enable-big-endian Force byte order to big-endian [autodetect]
326 --enable-debug[=1-3] compile debugging information into mplayer [disable]
327 --enable-profile compile profiling information into mplayer [disable]
328 --disable-sighandler disable sighandler for crashes [enable]
329 --enable-crash-debug enable automatic gdb attach on crash [disable]
330 --enable-i18n _experimental_ gnu gettext() support [autodetect]
331 --enable-dynamic-plugins Enable support for dynamic a/v plugins [disable]
333 Hazardous options a.k.a. "DO NOT REPORT ANY BUGS!"
334 --disable-gcc-checking disable gcc version checking [enable]
336 Use these options if autodetection fails (Options marked with (*) accept
337 multiple paths separated by ':'):
338 --with-extraincdir=DIR extra headers (png, mad, sdl, ...) in DIR (*)
339 --with-extralibdir=DIR extra library files (png, mad, sdl, ...) in DIR (*)
340 --with-x11incdir=DIR X headers in DIR (*)
341 --with-x11libdir=DIR X library files in DIR (*)
342 --with-dxr2incdir=DIR DXR2 headers in DIR (*)
343 --with-dvbincdir=DIR DVB headers in DIR (*)
344 --with-madlibdir=DIR libmad (libmad shared library) in DIR (*)
345 --with-mlibdir=DIR libmlib (MLIB support) in DIR (Solaris only)
346 --with-codecsdir=DIR Binary codec files in DIR
347 --with-win32libdir=DIR W*ndows DLL files in DIR
348 --with-xanimlibdir=DIR XAnim DLL files in DIR
349 --with-reallibdir=DIR RealPlayer DLL files in DIR
350 --with-xvidlibdir=DIR libxvidcore (XviD) in DIR (*)
351 --with-xvidincdir=DIR XviD header in DIR (*)
352 --with-x264libdir=DIR libx264 in DIR
353 --with-x264incdir=DIR x264 header in DIR
354 --with-dtslibdir=DIR libdts library in DIR (*)
355 --with-dtsincdir=DIR libdts header in DIR (*)
356 --with-livelibdir=DIR LIVE.COM Streaming Media libraries in DIR
357 --with-toolamedir=DIR path to Toolame library and include file
358 --with-xmmsplugindir=DIR XMMS plugins in DIR
359 --with-xmmslibdir=DIR libxmms.so.1 in DIR
360 --with-cdparanoiaincdir=DIR cdparanoia headers in DIR (*)
361 --with-cdparanoialibdir=DIR cdparanoia libraries (libcdda_*) in DIR (*)
362 --with-xvmclib=NAME name of adapter-specific library (e.g. XvMCNVIDIA)
363 --with-termcaplib=NAME name of library with termcap functionality
364 name should be given without leading "lib"
365 checks for "termcap" and "tinfo"
367 --with-freetype-config=PATH path to freetype-config
368 (e.g. /opt/bin/freetype-config)
369 --with-fribidi-config=PATH path to fribidi-config
370 (e.g. /opt/bin/fribidi-config)
371 --with-glib-config=PATH path to glib*-config (e.g. /opt/bin/glib-config)
372 --with-gtk-config=PATH path to gtk*-config (e.g. /opt/bin/gtk-config)
373 --with-sdl-config=PATH path to sdl*-config (e.g. /opt/bin/sdl-config)
375 This configure script is NOT autoconf-based, even though its output is similar.
376 It will try to autodetect all configuration options. If you --enable an option
377 it will be forcefully turned on, skipping autodetection. This can break
378 compilation, so you need to know what you are doing.
380 exit 0
382 done # for parm in ...
385 # 1st pass checking for vital options
386 _install=install
387 _ranlib=ranlib
388 _cc=cc
389 test "$CC" && _cc="$CC"
390 _as=auto
391 _runtime_cpudetection=no
392 for ac_option do
393 case "$ac_option" in
394 --target=*)
395 _target=`echo $ac_option | cut -d '=' -f 2`
397 --cc=*)
398 _cc=`echo $ac_option | cut -d '=' -f 2`
400 --host-cc=*)
401 _host_cc=`echo $ac_option | cut -d '=' -f 2`
403 --as=*)
404 _as=`echo $ac_option | cut -d '=' -f 2`
406 --enable-gcc-checking)
407 _skip_cc_check=no
409 --disable-gcc-checking)
410 _skip_cc_check=yes
412 --enable-static)
413 _ld_static='-static'
415 --disable-static)
416 _ld_static=''
418 --enable-static=*)
419 _ld_static="-static `echo $ac_option | cut -d '=' -f 2`"
421 --with-extraincdir=*)
422 _inc_extra=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
424 --with-extralibdir=*)
425 _ld_extra=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
427 --enable-runtime-cpudetection)
428 _runtime_cpudetection=yes
430 --disable-runtime-cpudetection)
431 _runtime_cpudetection=no
433 --install-path=*)
434 _install=`echo $ac_option | cut -d '=' -f 2 | sed 's/\/$//'`"/install"
436 --with-install=*)
437 _install=`echo $ac_option | cut -d '=' -f 2 `
439 esac
440 done
442 # Determine our OS name and CPU architecture
443 if test -z "$_target" ; then
444 # OS name
445 system_name=`( uname -s ) 2>&1`
446 case "$system_name" in
447 Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU|BeOS)
449 IRIX*)
450 system_name=IRIX
452 HP-UX*)
453 system_name=HP-UX
455 [cC][yY][gG][wW][iI][nN]*)
456 system_name=CYGWIN
458 MINGW32*)
459 system_name=MINGW32
461 MorphOS)
462 system_name=MorphOS
465 system_name="$system_name-UNKNOWN"
467 esac
470 # host's CPU/instruction set
471 host_arch=`( uname -p ) 2>&1`
472 case "$host_arch" in
473 i386|sparc|ppc|alpha|arm|mips|vax)
475 powerpc) # Darwin returns 'powerpc'
476 host_arch=ppc
478 *) # uname -p on Linux returns 'unknown' for the processor type,
479 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
481 # Maybe uname -m (machine hardware name) returns something we
482 # recognize.
484 # x86/x86pc is used by QNX
485 case "`( uname -m ) 2>&1`" in
486 i[3-9]86*|x86|x86pc|k5|k6|k6_2|k6_3|k6-2|k6-3|pentium*|athlon*|i586_i686|i586-i686|BePC) host_arch=i386 ;;
487 ia64) host_arch=ia64 ;;
488 x86_64|amd64)
489 if [ "`$_cc -dumpmachine | grep x86_64 | cut -d- -f1`" = "x86_64" -a \
490 -z "`echo $CFLAGS | grep -- -m32`" ]; then
491 host_arch=x86_64
492 else
493 host_arch=i386
496 macppc|ppc) host_arch=ppc ;;
497 alpha) host_arch=alpha ;;
498 sparc) host_arch=sparc ;;
499 sparc64) host_arch=sparc64 ;;
500 parisc*|hppa*|9000*) host_arch=hppa ;;
501 arm*) host_arch=arm ;;
502 s390) host_arch=s390 ;;
503 s390x) host_arch=s390x ;;
504 mips) host_arch=mips ;;
505 vax) host_arch=vax ;;
506 *) host_arch=UNKNOWN ;;
507 esac
509 esac
510 else
511 system_name=`echo $_target | cut -d '-' -f 2`
512 case "`echo $system_name | tr A-Z a-z`" in
513 linux) system_name=Linux ;;
514 freebsd) system_name=FreeBSD ;;
515 netbsd) system_name=NetBSD ;;
516 bsd/os) system_name=BSD/OS ;;
517 openbsd) system_name=OpenBSD ;;
518 sunos) system_name=SunOS ;;
519 qnx) system_name=QNX ;;
520 morphos) system_name=MorphOS ;;
521 mingw32msvc) system_name=MINGW32 ;;
522 esac
523 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
524 host_arch=`echo $_target | cut -d '-' -f 1 | tr '_' '-'`
527 echo "Detected operating system: $system_name"
528 echo "Detected host architecture: $host_arch"
530 # LGB: temporary files
531 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
532 test "$I" && break
533 done
535 TMPLOG="configure.log"
536 rm -f "$TMPLOG"
537 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
538 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
539 TMPO="$I/mplayer-conf-$RANDOM-$$.o"
540 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
542 # config files
544 # FIXME: A lot of stuff is installed under /usr/local
545 # NK: But we should never use this stuff implicitly since we call compiler
546 # from /usr we should be sure that there no effects from other compilers
547 # (libraries) which might be installed into /usr/local. Let users use this
548 # stuff explicitly as command line argument. In other words: It would be
549 # resonable to have only /usr/include or only /usr/local/include.
551 if freebsd ; then
552 _ld_extra="$_ld_extra -L/usr/local/lib"
553 _inc_extra="$_inc_extra -I/usr/local/include"
556 if netbsd ; then
557 for I in `echo $_ld_extra | sed 's/-L//g'` ; do
558 tmp="$tmp ` echo $I | sed 's/.*/ -L& -Wl,-R&/'`"
559 done
560 _ld_extra=$tmp
563 _ldd=ldd
564 if darwin; then
565 _ldd="otool -L"
568 # Check how to call 'head' and 'tail'. Newer versions spit out warnings
569 # if used as 'head -1' instead of 'head -n 1', but older versions don't
570 # know about '-n'.
571 if test "`(echo line1 ; echo line2) | head -1 2>/dev/null`" = "line1" ; then
572 _head() { head -$1 2>/dev/null ; }
573 else
574 _head() { head -n $1 2>/dev/null ; }
576 if test "`(echo line1 ; echo line2) | tail -1 2>/dev/null`" = "line2" ; then
577 _tail() { tail -$1 2>/dev/null ; }
578 else
579 _tail() { tail -n $1 2>/dev/null ; }
582 # Checking CC version...
583 if test "$_skip_cc_check" != yes ; then
584 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
585 if test "`basename $_cc`" = "icc" || test "`basename $_cc`" = "ecc"; then
586 echocheck "$_cc version"
587 cc_vendor=intel
588 cc_name=`( $_cc -V ) 2>&1 | _head 1 | cut -d ',' -f 1`
589 cc_version=`( $_cc -V ) 2>&1 | _head 1 | cut -d ',' -f 2 | cut -d ' ' -f 3`
590 _cc_major=`echo $cc_version | cut -d '.' -f 1`
591 _cc_minor=`echo $cc_version | cut -d '.' -f 2`
592 # TODO verify older icc/ecc compatibility
593 case $cc_version in
595 cc_version="v. ?.??, bad"
596 cc_verc_fail=yes
598 8.0)
599 cc_version="$cc_version, ok"
600 cc_verc_fail=no
603 cc_version="$cc_version, bad"
604 cc_verc_fail=yes
606 esac
607 echores "$cc_version"
608 else
609 for _cc in "$_cc" gcc gcc-3.4 gcc-3.3 gcc-3.2 gcc-3.1 gcc3 gcc-3.0 cc ; do
610 echocheck "$_cc version"
611 cc_vendor=gnu
612 cc_name=`( $_cc -v ) 2>&1 | _tail 1 | cut -d ' ' -f 1`
613 cc_version=`( $_cc -dumpversion ) 2>&1`
614 if test "$?" -gt 0; then
615 cc_version="not found"
617 case $cc_version in
619 cc_version="v. ?.??, bad"
620 cc_verc_fail=yes
622 2.95.[2-9]|2.95.[2-9][-.]*|[3-4].*)
623 _cc_major=`echo $cc_version | cut -d '.' -f 1`
624 _cc_minor=`echo $cc_version | cut -d '.' -f 2`
625 _cc_mini=`echo $cc_version | cut -d '.' -f 3`
626 cc_version="$cc_version, ok"
627 cc_verc_fail=no
629 'not found')
630 cc_verc_fail=yes
633 cc_version="$cc_version, bad"
634 cc_verc_fail=yes
636 esac
637 echores "$cc_version"
638 (test "$cc_verc_fail" = "no") && break
639 done
640 fi # icc
641 if test "$cc_verc_fail" = yes ; then
642 cat <<EOF
644 *** Please downgrade/upgrade C compiler to version gcc-2.95.x or gcc-3.x! ***
646 You are not using a supported compiler. We do not have the time to make sure
647 everything works with compilers other than the ones we use. Use either the
648 same compiler as we do, or use --disable-gcc-checking but DO *NOT* REPORT BUGS
649 unless you can reproduce them after recompiling with a 2.95.x or 3.x version!
651 Note for gcc 2.96 users: Some versions of this compiler are known to miscompile
652 mplayer and lame (which is used for mencoder). If you get compile errors,
653 first upgrade to the latest 2.96 release (minimum 2.96-85) and try again.
654 If the problem still exists, try with gcc 3.x (or 2.95.x) *BEFORE* reporting
655 bugs!
657 GCC 2.96 IS NOT AND WILL NOT BE SUPPORTED BY US !
659 *** For details please read DOCS/HTML/en/users-vs-dev.html ***
662 die "Bad gcc version"
664 else
665 cat <<EOF
667 ******************************************************************************
669 Hmm. You really want to compile MPlayer with an *UNSUPPORTED* C compiler?
670 Ok. You know. Do it. Did you read DOCS/HTML/en/users-vs-dev.html???
672 DO NOT SEND BUGREPORTS OR COMPLAIN, it's *YOUR* compiler's fault!
673 Get ready for mysterious crashes, no-picture bugs, strange noises... REALLY!
674 Lame which is used by mencoder produces weird errors, too.
676 If you have any problem, install a GCC 2.95.x or 3.x version and try again.
677 If the problem _still_ exists, then read DOCS/HTML/en/bugreports.html !
679 *** DO NOT SEND BUG REPORTS OR COMPLAIN it's *YOUR* compiler's fault! ***
681 ******************************************************************************
685 read _answer
688 echocheck "host cc"
689 if not test "$_host_cc" ; then
690 _host_cc=$_cc
692 echores $_host_cc
695 # ---
697 # now that we know what compiler should be used for compilation, try to find
698 # out which assembler is used by the $_cc compiler
699 if test "$_as" = auto ; then
700 _as=`$_cc -print-prog-name=as`
701 test -z "$_as" && _as=as
704 # XXX: this should be ok..
705 _cpuinfo="echo"
706 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
707 # FIXME: Remove the cygwin check once AMD CPUs are supported
708 if test -r /proc/cpuinfo && not cygwin; then
709 # Linux with /proc mounted, extract CPU information from it
710 _cpuinfo="cat /proc/cpuinfo"
711 elif test -r /compat/linux/proc/cpuinfo && not x86 ; then
712 # FreeBSD with Linux emulation /proc mounted,
713 # extract CPU information from it
714 _cpuinfo="cat /compat/linux/proc/cpuinfo"
715 elif darwin ; then
716 # use hostinfo on Darwin
717 _cpuinfo="hostinfo"
718 elif x86; then
719 # all other OSes try to extract CPU information from a small helper
720 # program TOOLS/cpuinfo instead
721 $_cc -o TOOLS/cpuinfo TOOLS/cpuinfo.c
722 _cpuinfo="TOOLS/cpuinfo"
725 x86_exts_check()
727 pparam=`$_cpuinfo | grep 'features' | cut -d ':' -f 2 | _head 1`
728 if test -z "$pparam" ; then
729 pparam=`$_cpuinfo | grep 'flags' | cut -d ':' -f 2 | _head 1`
732 _mmx=no
733 _3dnow=no
734 _3dnowex=no
735 _mmx2=no
736 _sse=no
737 _sse2=no
738 _mtrr=no
740 for i in $pparam ; do
741 case "$i" in
742 3dnow) _3dnow=yes ;;
743 3dnowext) _3dnow=yes _3dnowex=yes ;;
744 mmx) _mmx=yes ;;
745 mmxext) _mmx2=yes ;;
746 mtrr|k6_mtrr|cyrix_arr) _mtrr=yes ;;
747 xmm|sse|kni) _sse=yes _mmx2=yes ;;
748 sse2) _sse2=yes ;;
749 esac
750 done
753 case "$host_arch" in
754 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
755 _def_arch="#define ARCH_X86 1"
756 _target_arch="TARGET_ARCH_X86 = yes"
758 pname=`$_cpuinfo | grep 'model name' | cut -d ':' -f 2 | _head 1`
759 pvendor=`$_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
760 pfamily=`$_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
761 pmodel=`$_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
762 pstepping=`$_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
764 x86_exts_check
766 echocheck "CPU vendor"
767 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
769 echocheck "CPU type"
770 echores "$pname"
772 case "$pvendor" in
773 AuthenticAMD)
774 case "$pfamily" in
775 3) proc=i386 iproc=386 ;;
776 4) proc=i486 iproc=486 ;;
777 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
778 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
779 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
780 proc=k6-3
781 elif test "$pmodel" -ge 8; then
782 proc=k6-2
783 elif test "$pmodel" -ge 6; then
784 proc=k6
785 else
786 proc=i586
787 iproc=586
790 6) iproc=686
791 if test "$pmodel" -ge 7; then
792 proc=athlon-4
793 elif test "$pmodel" -ge 6; then
794 # only Athlon XP supports ssem MP, Duron etc not
795 # but most of them are CPUID 666, so check if sse detected
796 # btw. there is also athlon-mp opt, but we need extended
797 # CPUID to detect if CPU is SMP capable -> athlon-mp ::atmos
798 if test "$_sse" = yes && test "$pstepping" -ge 2; then
799 proc=athlon-xp
800 else
801 proc=athlon-4
803 elif test "$pmodel" -ge 4; then
804 proc=athlon-tbird
805 else
806 proc=athlon # TODO: should the Duron Spitfire be considered a Thunderbird instead?
809 15) iproc=686
810 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
811 # caught and remedied in the optimization tests below.
812 proc=k8
815 *) proc=athlon-xp iproc=686 ;;
816 esac
818 GenuineIntel)
819 case "$pfamily" in
820 3) proc=i386 iproc=386 ;;
821 4) proc=i486 iproc=486 ;;
822 5) iproc=586
823 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
824 proc=pentium-mmx # 4 is desktop, 8 is mobile
825 else
826 proc=i586
829 6) iproc=686
830 if test "$pmodel" -ge 7; then
831 proc=pentium3
832 elif test "$pmodel" -ge 3; then
833 proc=pentium2
834 else
835 proc=i686
838 15) proc=pentium4 iproc=686 ;;
839 *) proc=pentium4 iproc=686 ;;
840 esac
842 unknown)
843 case "$pfamily" in
844 3) proc=i386 iproc=386 ;;
845 4) proc=i486 iproc=486 ;;
846 *) proc=i586 iproc=586 ;;
847 esac
850 proc=i586 iproc=586 ;;
851 esac
853 # check that gcc supports our CPU, if not, fall back to earlier ones
854 # LGB: check -mcpu and -march swithing step by step with enabling
855 # to fall back till 386.
857 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
859 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
860 cpuopt=-mtune
861 else
862 cpuopt=-mcpu
865 echocheck "GCC & CPU optimization abilities"
866 cat > $TMPC << EOF
867 int main(void) { return 0; }
869 if test "$_runtime_cpudetection" = no ; then
870 if test "$proc" = "k8" -o "$proc" = "opteron" -o "$proc" = "athlon64" -o "$proc" = "athlon-fx" ; then
871 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
873 if test "$proc" = "athlon-xp" || test "$proc" = "athlon-4" || test "$proc" = "athlon-tbird"; then
874 cc_check -march=$proc $cpuopt=$proc || proc=athlon
876 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
877 cc_check -march=$proc $cpuopt=$proc || proc=k6
879 if test "$proc" = "k6"; then
880 if not cc_check -march=$proc $cpuopt=$proc; then
881 if cc_check -march=i586 $cpuopt=i686; then
882 proc=i586-i686
883 else
884 proc=i586
888 if test "$proc" = "pentium4" || test "$proc" = "pentium3" || test "$proc" = "pentium2" || test "$proc" = "athlon"; then
889 cc_check -march=$proc $cpuopt=$proc || proc=i686
891 if test "$proc" = "i686" || test "$proc" = "pentium-mmx"; then
892 cc_check -march=$proc $cpuopt=$proc || proc=i586
894 if test "$proc" = "i586" ; then
895 cc_check -march=$proc $cpuopt=$proc || proc=i486
897 if test "$proc" = "i486" ; then
898 cc_check -march=$proc $cpuopt=$proc || proc=i386
900 if test "$proc" = "i386" ; then
901 cc_check -march=$proc $cpuopt=$proc || proc=error
903 if test "$proc" = "error" ; then
904 echores "Your $_cc does not even support \"i386\" for '-march' and '$cpuopt'."
905 _mcpu=""
906 _march=""
907 _optimizing=""
908 elif test "$proc" = "i586-i686"; then
909 _march="-march=i586"
910 _mcpu="$cpuopt=i686"
911 _optimizing="$proc"
912 else
913 _march="-march=$proc"
914 _mcpu="$cpuopt=$proc"
915 _optimizing="$proc"
917 else
918 # i686 is probably the most common CPU - optimize for it
919 _mcpu="$cpuopt=i686"
920 # at least i486 required, for bswap instruction
921 _march="-march=i486"
922 cc_check $_mcpu || _mcpu=""
923 cc_check $_march $_mcpu || _march=""
926 ## Gabucino : --target takes effect here (hopefully...) by overwriting
927 ## autodetected mcpu/march parameters
928 if test "$_target" ; then
929 # TODO: it may be a good idea to check GCC and fall back in all cases
930 if test "$host_arch" = "i586-i686"; then
931 _march="-march=i586"
932 _mcpu="$cpuopt=i686"
933 else
934 _march="-march=$host_arch"
935 _mcpu="$cpuopt=$host_arch"
938 proc="$host_arch"
940 case "$proc" in
941 i386) iproc=386 ;;
942 i486) iproc=486 ;;
943 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
944 i686|athlon*|pentium*) iproc=686 ;;
945 *) iproc=586 ;;
946 esac
949 echores "$proc"
952 ia64)
953 _def_arch='#define ARCH_IA64 1'
954 _target_arch='TARGET_ARCH_IA64 = yes'
955 iproc='ia64'
956 proc=''
957 _march=''
958 _mcpu=''
959 _optimizing=''
962 x86_64|amd64)
963 _def_arch='#define ARCH_X86_64 1'
964 _target_arch='TARGET_ARCH_X86_64 = yes'
965 iproc='x86_64'
967 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
968 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
969 cpuopt=-mtune
970 else
971 cpuopt=-mcpu
973 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
974 # caught and remedied in the optimization tests below.
975 proc=k8
977 echocheck "GCC & CPU optimization abilities"
978 cat > $TMPC << EOF
979 int main(void) { return 0; }
981 # This is a stripped-down version of the i386 fallback.
982 if test "$_runtime_cpudetection" = no ; then
983 if test "$proc" = "k8" -o "$proc" = "opteron" -o "$proc" = "athlon64" -o "$proc" = "athlon-fx" ; then
984 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
986 # This will fail if gcc version < 3.3, which is ok because earlier
987 # versions don't really support 64-bit on amd64.
988 # Is this a valid assumption? -Corey
989 if test "$proc" = "athlon-xp" || test "$proc" = "athlon-4" ; then
990 cc_check -march=$proc $cpuopt=$proc || proc=error
992 if test "$proc" = "error" ; then
993 echores "Your $_cc does not even support \"athlon-xp\" for '-march' and '$cpuopt'."
994 _mcpu=""
995 _march=""
997 else
998 _march=""
999 _mcpu=""
1002 _march="-march=$proc"
1003 _mcpu="$cpuopt=$proc"
1004 _optimizing=""
1006 echores "$proc"
1008 x86_exts_check
1011 sparc)
1012 _def_arch='#define ARCH_SPARC 1'
1013 _target_arch='TARGET_ARCH_SPARC = yes'
1014 iproc='sparc'
1015 if sunos ; then
1016 echocheck "CPU type"
1017 karch=`uname -m`
1018 case "`echo $karch`" in
1019 sun4) proc=v7 ;;
1020 sun4c) proc=v7 ;;
1021 sun4d) proc=v8 ;;
1022 sun4m) proc=v8 ;;
1023 sun4u) proc=v9 _vis='yes' _def_vis='#define HAVE_VIS = yes' ;;
1024 *) ;;
1025 esac
1026 echores "$proc"
1027 else
1028 proc=v8
1030 _march=''
1031 _mcpu="-mcpu=$proc"
1032 _optimizing="$proc"
1035 sparc64)
1036 _def_arch='#define ARCH_SPARC 1'
1037 _target_arch='TARGET_ARCH_SPARC = yes'
1038 _vis='yes'
1039 _def_vis='#define HAVE_VIS = yes'
1040 iproc='sparc'
1041 proc='v9'
1042 _march=''
1043 _mcpu="-mcpu=$proc"
1044 _optimizing="$proc"
1047 arm|armv4l|armv5tel)
1048 _def_arch='#define ARCH_ARMV4L 1'
1049 _target_arch='TARGET_ARCH_ARMV4L = yes'
1050 iproc='arm'
1051 proc=''
1052 _march=''
1053 _mcpu=''
1054 _optimizing=''
1057 ppc)
1058 _def_arch='#define ARCH_POWERPC 1'
1059 _def_dcbzl='#define NO_DCBZL 1'
1060 _target_arch='TARGET_ARCH_POWERPC = yes'
1061 iproc='ppc'
1062 proc=''
1063 _march=''
1064 _mcpu=''
1065 _optimizing=''
1066 _altivec=no
1068 echocheck "CPU type"
1069 if linux && test -n "$_cpuinfo"; then
1070 proc=`$_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | _head 1`
1071 if test -n "`$_cpuinfo | grep altivec`"; then
1072 _altivec=yes
1075 if darwin ; then
1076 proc=`$_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//'`
1077 if [ `sysctl -n hw.vectorunit` -eq 1 ]; then
1078 _altivec=yes
1079 elif [ "`sysctl -n hw.optional.altivec 2>/dev/null`" = 1 ]; then
1080 _altivec=yes
1083 # only gcc 3.4 works reliably with altivec code under netbsd
1084 if netbsd ; then
1085 case $cc_version in
1086 2*|3.0*|3.1*|3.2*|3.3*)
1089 if [ `sysctl -n machdep.altivec` -eq 1 ]; then
1090 _altivec=yes
1093 esac
1095 if test "$_altivec" = yes; then
1096 echores "$proc altivec"
1097 else
1098 echores "$proc"
1101 echocheck "GCC & CPU optimization abilities"
1103 if test -n "$proc"; then
1104 case "$proc" in
1105 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
1106 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
1107 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
1108 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
1109 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
1110 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
1111 *) ;;
1112 esac
1113 # gcc 3.1(.1) and up supports 7400 and 7450
1114 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
1115 case "$proc" in
1116 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
1117 7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
1118 *) ;;
1119 esac
1121 # gcc 3.2 and up supports 970
1122 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
1123 case "$proc" in
1124 970*) _march='-mcpu=970' _mcpu='-mtune=970'
1125 _def_dcbzl='#undef NO_DCBZL' ;;
1126 *) ;;
1127 esac
1131 if test -n "$_mcpu"; then
1132 _optimizing=`echo $_mcpu | cut -c 8-`
1133 echores "$_optimizing"
1134 else
1135 echores "none"
1140 alpha)
1141 _def_arch='#define ARCH_ALPHA 1'
1142 _target_arch='TARGET_ARCH_ALPHA = yes'
1143 iproc='alpha'
1144 _march=''
1146 echocheck "CPU type"
1147 cat > $TMPC << EOF
1148 int main() {
1149 unsigned long ver, mask;
1150 asm ("implver %0" : "=r" (ver));
1151 asm ("amask %1, %0" : "=r" (mask) : "r" (-1));
1152 printf("%ld-%x\n", ver, ~mask);
1153 return 0;
1156 $_cc -o "$TMPO" "$TMPC"
1157 case `"$TMPO"` in
1159 0-0) proc="ev4"; cpu_understands_mvi="0";;
1160 1-0) proc="ev5"; cpu_understands_mvi="0";;
1161 1-1) proc="ev56"; cpu_understands_mvi="0";;
1162 1-101) proc="pca56"; cpu_understands_mvi="1";;
1163 2-303) proc="ev6"; cpu_understands_mvi="1";;
1164 2-307) proc="ev67"; cpu_understands_mvi="1";;
1165 2-1307) proc="ev68"; cpu_understands_mvi="1";;
1166 esac
1167 echores "$proc"
1169 echocheck "GCC & CPU optimization abilities"
1170 if test "$proc" = "ev68" ; then
1171 cc_check -mcpu=$proc || proc=ev67
1173 if test "$proc" = "ev67" ; then
1174 cc_check -mcpu=$proc || proc=ev6
1176 _mcpu="-mcpu=$proc"
1177 echores "$proc"
1179 _optimizing="$proc"
1181 echocheck "MVI instruction support in GCC"
1182 if test "$_cc_major" -ge "3" && test "$cpu_understands_mvi" = "1" ; then
1183 _def_gcc_mvi_support="#define CAN_COMPILE_ALPHA_MVI 1"
1184 echores "yes"
1185 else
1186 _def_gcc_mvi_support="#undef CAN_COMPILE_ALPHA_MVI"
1187 echores "no, GCC = `( $_cc -dumpversion ) 2>&1` (must be >= 3), CPU = $proc (must be pca56 or later)"
1191 mips)
1192 _def_arch='#define ARCH_SGI_MIPS 1'
1193 _target_arch='TARGET_ARCH_SGI_MIPS = yes'
1194 iproc='sgi-mips'
1195 proc=''
1196 _march=''
1197 _mcpu=''
1198 _optimizing=''
1200 if irix ; then
1201 echocheck "CPU type"
1202 proc=`hinv -c processor | grep CPU | cut -d " " -f3`
1203 case "`echo $proc`" in
1204 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
1205 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
1206 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
1207 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
1208 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
1209 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
1210 esac
1211 echores "$proc"
1216 hppa)
1217 _def_arch='#define ARCH_PA_RISC 1'
1218 _target_arch='TARGET_ARCH_PA_RISC = yes'
1219 iproc='PA-RISC'
1220 proc=''
1221 _march=''
1222 _mcpu=''
1223 _optimizing=''
1226 s390)
1227 _def_arch='#define ARCH_S390 1'
1228 _target_arch='TARGET_ARCH_S390 = yes'
1229 iproc='390'
1230 proc=''
1231 _march=''
1232 _mcpu=''
1233 _optimizing=''
1236 s390x)
1237 _def_arch='#define ARCH_S390X 1'
1238 _target_arch='TARGET_ARCH_S390X = yes'
1239 iproc='390x'
1240 proc=''
1241 _march=''
1242 _mcpu=''
1243 _optimizing=''
1246 vax)
1247 _def_arch='#define ARCH_VAX 1'
1248 _target_arch='TARGET_ARCH_VAX = yes'
1249 iproc='vax'
1250 proc=''
1251 _march=''
1252 _mcpu=''
1253 _optimizing=''
1257 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
1258 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
1259 die "unsupported architecture $host_arch"
1261 esac
1263 if test "$_runtime_cpudetection" = yes ; then
1264 if x86; then
1265 _mmx=yes
1266 _3dnow=yes
1267 _3dnowex=yes
1268 _mmx2=yes
1269 _sse=yes
1270 _sse2=yes
1271 _mtrr=yes
1273 if ppc; then
1274 _altivec=yes
1278 if x86 && test "$_runtime_cpudetection" = no ; then
1279 extcheck() {
1280 if test "$1" = yes ; then
1281 echocheck "kernel support of $2"
1282 cat > $TMPC <<EOF
1283 #include <signal.h>
1284 void catch() { exit(1); }
1285 int main(void){
1286 signal(SIGILL, catch);
1287 __asm__ __volatile__ ("$3":::"memory");return(0);
1291 if ( cc_check && $TMPO ) > /dev/null 2>&1 ; then
1292 echores "yes"
1293 _optimizing="$_optimizing $2"
1294 return 0
1295 else
1296 echores "failed"
1297 echo "It seems that your kernel does not correctly support $2."
1298 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1299 return 1
1302 return 0
1305 extcheck $_mmx "mmx" "emms" || _mmx=no
1306 extcheck $_mmx2 "mmx2" "sfence" || _mmx2=no
1307 extcheck $_3dnow "3dnow" "femms" || _3dnow=no
1308 extcheck $_3dnowex "3dnowex" "pswapd %%mm0, %%mm0" || _3dnowex=no
1309 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _sse=no _gcc3_ext="$_gcc3_ext -mno-sse"
1310 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _sse2=no _gcc3_ext="$_gcc3_ext -mno-sse2"
1311 echocheck "mtrr support"
1312 echores "$_mtrr"
1314 if test "$_mtrr" = yes ; then
1315 _optimizing="$_optimizing mtrr"
1318 if test "$_gcc3_ext" != ""; then
1319 # if we had to disable sse/sse2 because the active kernel does not
1320 # support this instruction set extension, we also have to tell
1321 # gcc3 to not generate sse/sse2 instructions for normal C code
1322 cat > $TMPC << EOF
1323 int main(void) { return 0; }
1325 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1330 echocheck "assembler support of -pipe option"
1331 cat > $TMPC << EOF
1332 int main(void) { return 0; }
1334 cc_check -pipe && _pipe="-pipe" && echores "yes" || echores "no"
1336 _prefix="/usr/local"
1337 _xvmclib="XvMCNVIDIA"
1339 # GOTCHA: the variables below defines the default behavior for autodetection
1340 # and have - unless stated otherwise - at least 2 states : yes no
1341 # If autodetection is available then the third state is: auto
1342 _libavcodec=auto
1343 _amr_nb=auto
1344 _amr_nb_fixed=auto
1345 _amr_wb=auto
1346 _libavcodecs=`grep 'register_avcodec(&[a-z]' libavcodec/allcodecs.c | sed 's/.*&\(.*\)).*/\1/'`
1347 _libavcodecso=auto
1348 _libavformat=auto
1349 _fame=auto
1350 _mp1e=no
1351 _mencoder=yes
1352 _x11=auto
1353 _dga=auto # 1 2 no auto
1354 _xv=auto
1355 _xvmc=no #auto when complete
1356 _sdl=auto
1357 _directx=auto
1358 _win32waveout=auto
1359 _nas=auto
1360 _png=auto
1361 _jpg=auto
1362 _pnm=yes
1363 _md5sum=yes
1364 _gif=auto
1365 _gl=auto
1366 _ggi=auto
1367 _ggiwmh=auto
1368 _aa=auto
1369 _caca=auto
1370 _svga=auto
1371 _vesa=auto
1372 _fbdev=auto
1373 _dvb=auto
1374 _dvbhead=auto
1375 _dxr2=auto
1376 _dxr3=auto
1377 _iconv=auto
1378 _langinfo=auto
1379 _rtc=auto
1380 _ossaudio=auto
1381 _arts=auto
1382 _esd=auto
1383 _polyp=auto
1384 _jack=auto
1385 _liblzo=auto
1386 _mad=auto
1387 _toolame=auto
1388 _twolame=auto
1389 _tremor_internal=yes
1390 _tremor_low=no
1391 _vorbis=auto
1392 _theora=auto
1393 _mp3lib=yes
1394 _liba52=yes
1395 _libdts=auto
1396 _libmpeg2=yes
1397 _matroska_internal=yes
1398 _tremor=no
1399 _faad_internal=auto
1400 _faad_external=auto
1401 _faac=auto
1402 _ladspa=auto
1403 _xmms=no
1404 # dvdnav disabled, it does not work
1405 #_dvdnav=no
1406 _dvdread=auto
1407 _dvdkit=auto
1408 _xanim=auto
1409 _real=auto
1410 _live=auto
1411 _xinerama=auto
1412 _mga=auto
1413 _xmga=auto
1414 _vm=auto
1415 _xf86keysym=auto
1416 _mlib=auto
1417 _sgiaudio=auto
1418 _sunaudio=auto
1419 _alsa=auto
1420 _fastmemcpy=yes
1421 _unrarlib=yes
1422 _win32=auto
1423 _dshow=yes
1424 _select=yes
1425 _tv=yes
1426 _tv_v4l=auto
1427 _tv_v4l2=auto
1428 _tv_bsdbt848=auto
1429 _edl=yes
1430 _network=yes
1431 _winsock2=auto
1432 _smbsupport=auto
1433 _vidix=auto
1434 _joystick=no
1435 _xvid=auto
1436 _x264=auto
1437 _divx4linux=auto
1438 _opendivx=no
1439 _lirc=auto
1440 _lircc=auto
1441 _gui=no
1442 _termcap=auto
1443 _termios=auto
1444 _3dfx=no
1445 _tdfxfb=no
1446 _tdfxvid=no
1447 _tga=yes
1448 _directfb=auto
1449 _zr=auto
1450 _bl=no
1451 _largefiles=no
1452 #_language=en
1453 _shm=auto
1454 _linux_devfs=no
1455 #_charset=utf8
1456 _i18n=auto
1457 _dynamic_plugins=no
1458 _crash_debug=auto
1459 _sighandler=yes
1460 _libdv=auto
1461 _cdparanoia=auto
1462 _big_endian=auto
1463 _freetype=auto
1464 _fontconfig=auto
1465 _shared_pp=no
1466 _menu=no
1467 _qtx=auto
1468 _macosx=auto
1469 _macosx_finder_support=no
1470 _macosx_bundle=auto
1471 _sortsub=yes
1472 _freetypeconfig='freetype-config'
1473 _fribidi=no
1474 _fribidiconfig='fribidi-config'
1475 _enca=auto
1476 _inet6=auto
1477 _gethostbyname2=auto
1478 _ftp=yes
1479 _vstream=auto
1480 _pthreads=yes
1481 for ac_option do
1482 case "$ac_option" in
1483 # Skip 1st pass
1484 --target=*) ;;
1485 --cc=*) ;;
1486 --host-cc=*) ;;
1487 --as=*) ;;
1488 --enable-gcc-checking) ;;
1489 --disable-gcc-checking) ;;
1490 --enable-static*) ;;
1491 --disable-static*) ;;
1492 --with-extraincdir=*) ;;
1493 --with-extralibdir=*) ;;
1494 --enable-runtime-cpudetection) ;;
1495 --disable-runtime-cpudetection) ;;
1496 --install-path=*) ;;
1497 --with-install=*) ;;
1499 # Real 2nd pass
1500 --enable-mencoder) _mencoder=yes ;;
1501 --disable-mencoder) _mencoder=no ;;
1502 --enable-i18n) _i18n=yes ;;
1503 --disable-i18n) _i18n=no ;;
1504 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
1505 --disable-dynamic-plugins) _dynamic_plugins=no ;;
1506 --enable-x11) _x11=yes ;;
1507 --disable-x11) _x11=no ;;
1508 --enable-xv) _xv=yes ;;
1509 --disable-xv) _xv=no ;;
1510 --enable-xvmc) _xvmc=yes ;;
1511 --disable-xvmc) _xvmc=no ;;
1512 --enable-sdl) _sdl=yes ;;
1513 --disable-sdl) _sdl=no ;;
1514 --enable-directx) _directx=yes ;;
1515 --disable-directx) _directx=no ;;
1516 --enable-win32waveout) _win32waveout=yes ;;
1517 --disable-win32waveout) _win32waveout=no ;;
1518 --enable-nas) _nas=yes ;;
1519 --disable-nas) _nas=no ;;
1520 --enable-png) _png=yes ;;
1521 --disable-png) _png=no ;;
1522 --enable-jpeg) _jpg=yes ;;
1523 --disable-jpeg) _jpg=no ;;
1524 --enable-pnm) _pnm=yes ;;
1525 --disable-pnm) _pnm=no ;;
1526 --enable-md5sum) _md5sum=yes ;;
1527 --disable-md5sum) _md5sum=no ;;
1528 --enable-gif) _gif=yes ;;
1529 --disable-gif) _gif=no ;;
1530 --enable-gl) _gl=yes ;;
1531 --disable-gl) _gl=no ;;
1532 --enable-ggi) _ggi=yes ;;
1533 --disable-ggi) _ggi=no ;;
1534 --enable-ggiwmh) _ggiwmh=yes ;;
1535 --disable-ggiwmh) _ggiwmh=no ;;
1536 --enable-aa) _aa=yes ;;
1537 --disable-aa) _aa=no ;;
1538 --enable-caca) _caca=yes ;;
1539 --disable-caca) _caca=no ;;
1540 --enable-svga) _svga=yes ;;
1541 --disable-svga) _svga=no ;;
1542 --enable-vesa) _vesa=yes ;;
1543 --disable-vesa) _vesa=no ;;
1544 --enable-fbdev) _fbdev=yes ;;
1545 --disable-fbdev) _fbdev=no ;;
1546 --enable-dvb) _dvb=yes ;;
1547 --disable-dvb) _dvb=no ;;
1548 --enable-dvbhead) _dvbhead=yes ;;
1549 --disable-dvbhead) _dvbhead=no ;;
1550 --enable-dxr2) _dxr2=yes ;;
1551 --disable-dxr2) _dxr2=no ;;
1552 --enable-dxr3) _dxr3=yes ;;
1553 --disable-dxr3) _dxr3=no ;;
1554 --enable-iconv) _iconv=yes ;;
1555 --disable-iconv) _iconv=no ;;
1556 --enable-langinfo) _langinfo=yes ;;
1557 --disable-langinfo) _langinfo=no ;;
1558 --enable-rtc) _rtc=yes ;;
1559 --disable-rtc) _rtc=no ;;
1560 --enable-mp1e) _mp1e=yes ;;
1561 --disable-mp1e) _mp1e=no ;;
1562 --enable-libdv) _libdv=yes ;;
1563 --disable-libdv) _libdv=no ;;
1564 --enable-ossaudio) _ossaudio=yes ;;
1565 --disable-ossaudio) _ossaudio=no ;;
1566 --enable-arts) _arts=yes ;;
1567 --disable-arts) _arts=no ;;
1568 --enable-esd) _esd=yes ;;
1569 --disable-esd) _esd=no ;;
1570 --enable-polyp) _polyp=yes ;;
1571 --disable-polyp) _polyp=no ;;
1572 --enable-jack) _jack=yes ;;
1573 --disable-jack) _jack=no ;;
1574 --enable-mad) _mad=yes ;;
1575 --disable-mad) _mad=no ;;
1576 --disable-toolame) _toolame=no ;;
1577 --disable-twolame) _twolame=no ;;
1578 --enable-liblzo) _liblzo=yes ;;
1579 --disable-liblzo) _liblzo=no ;;
1580 --enable-vorbis) _vorbis=yes ;;
1581 --disable-vorbis) _vorbis=no ;;
1582 --enable-internal-tremor) _tremor_internal=yes ;;
1583 --disable-internal-tremor) _tremor_internal=no ;;
1584 --enable-tremor-low) _tremor_low=yes ;;
1585 --disable-tremor-low) _tremor_low=no ;;
1586 --enable-external-tremor) _tremor=yes ;;
1587 --disable-external-tremor) _tremor=no ;;
1588 --enable-theora) _theora=yes ;;
1589 --disable-theora) _theora=no ;;
1590 --enable-mp3lib) _mp3lib=yes ;;
1591 --disable-mp3lib) _mp3lib=no ;;
1592 --enable-liba52) _liba52=yes ;;
1593 --disable-liba52) _liba52=no ;;
1594 --enable-libdts) _libdts=yes ;;
1595 --disable-libdts) _libdts=no ;;
1596 --enable-libmpeg2) _libmpeg2=yes ;;
1597 --disable-libmpeg2) _libmpeg2=no ;;
1598 --enable-internal-matroska) _matroska_internal=yes ;;
1599 --disable-internal-matroska) _matroska_internal=no ;;
1600 --enable-internal-faad) _faad_internal=yes _faad_external=no ;;
1601 --disable-internal-faad) _faad_internal=no ;;
1602 --enable-external-faad) _faad_external=yes _faad_internal=no ;;
1603 --disable-external-faad) _faad_external=no ;;
1604 --enable-faac) _faac=yes ;;
1605 --disable-faac) _faac=no ;;
1606 --enable-ladspa) _ladspa=yes ;;
1607 --disable-ladspa) _ladspa=no ;;
1608 --enable-xmms) _xmms=yes ;;
1609 --disable-xmms) _xmms=no ;;
1610 --enable-dvdread) _dvdread=yes ;;
1611 --disable-dvdread) _dvdread=no ;;
1612 --enable-mpdvdkit) _dvdkit=yes ;;
1613 --disable-mpdvdkit) _dvdkit=no ;;
1614 # dvdnav disabled, it does not work
1615 # --enable-dvdnav) _dvdnav=yes ;;
1616 # --disable-dvdnav) _dvdnav=no ;;
1617 --enable-xanim) _xanim=yes ;;
1618 --disable-xanim) _xanim=no ;;
1619 --enable-real) _real=yes ;;
1620 --disable-real) _real=no ;;
1621 --enable-live) _live=yes ;;
1622 --disable-live) _live=no ;;
1623 --enable-xinerama) _xinerama=yes ;;
1624 --disable-xinerama) _xinerama=no ;;
1625 --enable-mga) _mga=yes ;;
1626 --disable-mga) _mga=no ;;
1627 --enable-xmga) _xmga=yes ;;
1628 --disable-xmga) _xmga=no ;;
1629 --enable-vm) _vm=yes ;;
1630 --disable-vm) _vm=no ;;
1631 --enable-xf86keysym) _xf86keysym=yes ;;
1632 --disable-xf86keysym) _xf86keysym=no ;;
1633 --enable-mlib) _mlib=yes ;;
1634 --disable-mlib) _mlib=no ;;
1635 --enable-sunaudio) _sunaudio=yes ;;
1636 --disable-sunaudio) _sunaudio=no ;;
1637 --enable-sgiaudio) _sgiaudio=yes ;;
1638 --disable-sgiaudio) _sgiaudio=no ;;
1639 --enable-alsa) _alsa=yes ;;
1640 --disable-alsa) _alsa=no ;;
1641 --enable-tv) _tv=yes ;;
1642 --disable-tv) _tv=no ;;
1643 --enable-edl) _edl=yes ;;
1644 --disable-edl) _edl=no ;;
1645 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1646 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1647 --enable-tv-v4l) _tv_v4l=yes ;;
1648 --disable-tv-v4l) _tv_v4l=no ;;
1649 --enable-tv-v4l2) _tv_v4l2=yes ;;
1650 --disable-tv-v4l2) _tv_v4l2=no ;;
1651 --enable-fastmemcpy) _fastmemcpy=yes ;;
1652 --disable-fastmemcpy) _fastmemcpy=no ;;
1653 --enable-network) _network=yes ;;
1654 --disable-network) _network=no ;;
1655 --enable-winsock2) _winsock2=yes ;;
1656 --disable-winsock2) _winsock2=no ;;
1657 --enable-smb) _smbsupport=yes ;;
1658 --disable-smb) _smbsupport=no ;;
1659 --enable-vidix) _vidix=yes ;;
1660 --disable-vidix) _vidix=no ;;
1661 --enable-joystick) _joystick=yes ;;
1662 --disable-joystick) _joystick=no ;;
1663 --enable-xvid) _xvid=yes ;;
1664 --disable-xvid) _xvid=no ;;
1665 --enable-x264) _x264=yes ;;
1666 --disable-x264) _x264=no ;;
1667 --enable-divx4linux) _divx4linux=yes ;;
1668 --disable-divx4linux) _divx4linux=no ;;
1669 --enable-opendivx) _opendivx=yes ;;
1670 --disable-opendivx) _opendivx=no ;;
1671 --enable-libavcodec) _libavcodec=yes ;;
1672 --disable-libavcodec) _libavcodec=no ;;
1673 --enable-amr_nb) _amr_nb=yes ;;
1674 --disable-amr_nb) _amr_nb=no ;;
1675 --enable-amr_nb-fixed) _amr_nb_fixed=yes ;;
1676 --disable-amr_nb-fixed) _amr_nb_fixed=no ;;
1677 --enable-amr_wb) _amr_wb=yes ;;
1678 --disable-amr_wb) _amr_wb=no ;;
1679 --enable-codec=*) _libavcodecs="$_libavcodecs `echo $ac_option | cut -d '=' -f 2`" ;;
1680 --disable-codec=*) _libavcodecs=`echo $_libavcodecs | sed "s/\`echo $ac_option | cut -d '=' -f 2\`//g"` ;;
1681 --enable-libavformat) _libavformat=yes;;
1682 --disable-libavformat) _libavformat=no ;;
1683 --enable-libfame) _fame=yes ;;
1684 --disable-libfame) _fame=no ;;
1685 --enable-lirc) _lirc=yes ;;
1686 --disable-lirc) _lirc=no ;;
1687 --enable-lircc) _lircc=yes ;;
1688 --disable-lircc) _lircc=no ;;
1689 --enable-gui) _gui=yes ;;
1690 --disable-gui) _gui=no ;;
1691 --enable-termcap) _termcap=yes ;;
1692 --disable-termcap) _termcap=no ;;
1693 --enable-termios) _termios=yes ;;
1694 --disable-termios) _termios=no ;;
1695 --enable-3dfx) _3dfx=yes ;;
1696 --disable-3dfx) _3dfx=no ;;
1697 --enable-tdfxfb) _tdfxfb=yes ;;
1698 --disable-tdfxvid) _tdfxvid=no ;;
1699 --enable-tdfxvid) _tdfxvid=yes ;;
1700 --disable-tga) _tga=no ;;
1701 --enable-tga) _tga=yes ;;
1702 --disable-tdfxfb) _tdfxfb=no ;;
1703 --enable-directfb) _directfb=yes ;;
1704 --disable-directfb) _directfb=no ;;
1705 --enable-zr) _zr=yes ;;
1706 --disable-zr) _zr=no ;;
1707 --enable-bl) _bl=yes ;;
1708 --disable-bl) _bl=no ;;
1709 --enable-mtrr) _mtrr=yes ;;
1710 --disable-mtrr) _mtrr=no ;;
1711 --enable-largefiles) _largefiles=yes ;;
1712 --disable-largefiles) _largefiles=no ;;
1713 --enable-shm) _shm=yes ;;
1714 --disable-shm) _shm=no ;;
1715 --enable-select) _select=yes ;;
1716 --disable-select) _select=no ;;
1717 --enable-linux-devfs) _linux_devfs=yes ;;
1718 --disable-linux-devfs) _linux_devfs=no ;;
1719 --enable-cdparanoia) _cdparanoia=yes ;;
1720 --disable-cdparanoia) _cdparanoia=no ;;
1721 --enable-big-endian) _big_endian=yes ;;
1722 --disable-big-endian) _big_endian=no ;;
1723 --enable-freetype) _freetype=yes ;;
1724 --disable-freetype) _freetype=no ;;
1725 --enable-fontconfig) _fontconfig=yes ;;
1726 --disable-fontconfig) _fontconfig=no ;;
1727 --enable-unrarlib) _unrarlib=yes ;;
1728 --disable-unrarlib) _unrarlib=no ;;
1729 --enable-ftp) _ftp=yes ;;
1730 --disable-ftp) _ftp=no ;;
1731 --enable-vstream) _vstream=yes ;;
1732 --disable-vstream) _vstream=no ;;
1733 --enable-pthreads) _pthreads=yes ;;
1734 --disable-pthreads) _pthreads=no ;;
1736 --enable-fribidi) _fribidi=yes ;;
1737 --disable-fribidi) _fribidi=no ;;
1739 --enable-enca) _enca=yes ;;
1740 --disable-enca) _enca=no ;;
1742 --enable-inet6) _inet6=yes ;;
1743 --disable-inet6) _inet6=no ;;
1745 --enable-gethostbyname2) _gethostbyname2=yes ;;
1746 --disable-gethostbyname2) _gethostbyname2=no ;;
1748 --enable-dga) _dga=auto ;; # as we don't know if it's 1 or 2
1749 --enable-dga=*) _dga=`echo $ac_option | cut -d '=' -f 2` ;;
1750 --disable-dga) _dga=no ;;
1752 --enable-shared-pp) _shared_pp=yes ;;
1753 --disable-shared-pp) _shared_pp=no ;;
1755 --enable-menu) _menu=yes ;;
1756 --disable-menu) _menu=no ;;
1758 --enable-qtx) _qtx=yes ;;
1759 --disable-qtx) _qtx=no ;;
1761 --enable-macosx) _macosx=yes ;;
1762 --disable-macosx) _macosx=no ;;
1763 --enable-macosx-finder-support) _macosx_finder_support=yes ;;
1764 --disable-macosx-finder-support) _macosx_finder_support=no ;;
1765 --enable-macosx-bundle) _macosx_bundle=yes;;
1766 --disable-macosx-bundle) _macosx_bundle=no;;
1768 --enable-sortsub) _sortsub=yes ;;
1769 --disable-sortsub) _sortsub=no ;;
1771 --charset=*)
1772 _charset=`echo $ac_option | cut -d '=' -f 2`
1774 --language=*)
1775 _language=`echo $ac_option | cut -d '=' -f 2`
1777 # dvdnav disabled, it does not work
1778 # --with-libdvdnav=*)
1779 # _dvdnavdir=`echo $ac_option | cut -d '=' -f 2`
1780 # _dvdnav=yes
1781 # ;;
1783 --with-codecsdir=*)
1784 _win32libdir=`echo $ac_option | cut -d '=' -f 2`
1785 _xanimlibdir=`echo $ac_option | cut -d '=' -f 2`
1786 _reallibdir=`echo $ac_option | cut -d '=' -f 2`
1788 --with-win32libdir=*)
1789 _win32libdir=`echo $ac_option | cut -d '=' -f 2`
1790 _win32=yes
1792 --with-xanimlibdir=*)
1793 _xanimlibdir=`echo $ac_option | cut -d '=' -f 2`
1794 _xanim=yes
1796 --with-reallibdir=*)
1797 _reallibdir=`echo $ac_option | cut -d '=' -f 2`
1798 _real=yes
1800 --with-livelibdir=*)
1801 _livelibdir=`echo $ac_option | cut -d '=' -f 2`
1803 --with-toolamedir=*)
1804 _toolamedir=`echo $ac_option | cut -d '=' -f 2`
1806 --with-mlibdir=*)
1807 _mlibdir=`echo $ac_option | cut -d '=' -f 2`
1808 _mlib=yes
1811 --with-xmmslibdir=*)
1812 _xmmslibdir=`echo $ac_option | cut -d '=' -f 2`
1815 --with-xmmsplugindir=*)
1816 _xmmsplugindir=`echo $ac_option | cut -d '=' -f 2`
1819 --enable-profile)
1820 _profile='-p'
1822 --disable-profile)
1823 _profile=
1825 --enable-debug)
1826 _debug='-g'
1828 --enable-debug=*)
1829 _debug=`echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2`
1831 --disable-debug)
1832 _debug=
1834 --enable-crash-debug)
1835 _crash_debug=yes
1837 --disable-crash-debug)
1838 _crash_debug=no
1840 --enable-sighandler)
1841 _sighandler=yes
1843 --disable-sighandler)
1844 _sighandler=no
1847 --enable-sse) _sse=yes ;;
1848 --disable-sse) _sse=no ;;
1849 --enable-sse2) _sse2=yes ;;
1850 --disable-sse2) _sse2=no ;;
1851 --enable-mmx2) _mmx2=yes ;;
1852 --disable-mmx2) _mmx2=no ;;
1853 --enable-3dnow) _3dnow=yes ;;
1854 --disable-3dnow) _3dnow=no _3dnowex=no ;;
1855 --enable-3dnowex) _3dnow=yes _3dnowex=yes ;;
1856 --disable-3dnowex) _3dnowex=no ;;
1857 --enable-altivec) _altivec=yes ;;
1858 --disable-altivec) _altivec=no ;;
1859 --enable-mmx) _mmx=yes ;;
1860 --disable-mmx) # 3Dnow! and MMX2 require MMX
1861 _3dnow=no _3dnowex=no _mmx=no _mmx2=no ;;
1863 --enable-win32) _win32=yes ;;
1864 --disable-win32) _win32=no _dshow=no ;;
1865 --enable-dshow) _win32=yes _dshow=yes ;;
1866 --disable-dshow) _dshow=no ;;
1868 --with-x11incdir=*)
1869 _inc_x11=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1871 --with-x11libdir=*)
1872 _x11_paths=`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1874 --with-dxr2incdir=*)
1875 _inc_dxr2=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1877 --with-xvmclib=*)
1878 _xvmclib=`echo $ac_option | cut -d '=' -f 2`
1880 --with-dvbincdir=*)
1881 _inc_dvb=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1883 --with-xvidlibdir=*)
1884 _ld_xvid=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1886 --with-xvidincdir=*)
1887 _inc_xvid=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1889 --with-dtslibdir=*)
1890 _ld_libdts=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1892 --with-dtsincdir=*)
1893 _inc_libdts=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1895 --with-x264libdir=*)
1896 _ld_x264=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1898 --with-x264incdir=*)
1899 _inc_x264=-I`echo $ac_option | cut -d '=' -f 2 |sed 's,:, -I,g'`
1901 --with-sdl-config=*)
1902 _sdlconfig=`echo $ac_option | cut -d '=' -f 2`
1904 --with-freetype-config=*)
1905 _freetypeconfig=`echo $ac_option | cut -d '=' -f 2`
1907 --with-fribidi-config=*)
1908 _fribidiconfig=`echo $ac_option | cut -d '=' -f 2`
1910 --with-gtk-config=*)
1911 _gtkconfig=`echo $ac_option | cut -d '=' -f 2`
1913 --with-glib-config=*)
1914 _glibconfig=`echo $ac_option | cut -d '=' -f 2`
1916 # dvdnav disabled, it does not work
1917 # --with-dvdnav-config=*)
1918 # _dvdnavconfig=`echo $ac_option | cut -d '=' -f 2`
1919 # ;;
1920 --with-madlibdir=*)
1921 _ld_mad=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1923 --with-cdparanoiaincdir=*)
1924 _inc_cdparanoia=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1926 --with-cdparanoialibdir=*)
1927 _ld_cdparanoia=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1929 --with-termcaplib=*)
1930 _ld_termcap=-l`echo $ac_option | cut -d '=' -f 2`
1931 _termcap=yes
1933 --prefix=*)
1934 _prefix=`echo $ac_option | cut -d '=' -f 2`
1936 --bindir=*)
1937 _bindir=`echo $ac_option | cut -d '=' -f 2`
1939 --datadir=*)
1940 _datadir=`echo $ac_option | cut -d '=' -f 2`
1942 --mandir=*)
1943 _mandir=`echo $ac_option | cut -d '=' -f 2`
1945 --confdir=*)
1946 _confdir=`echo $ac_option | cut -d '=' -f 2`
1948 --libdir=*)
1949 _libdir=`echo $ac_option | cut -d '=' -f 2`
1953 echo "Unknown parameter: $ac_option"
1954 exit 1
1957 esac
1958 done
1960 # Atmos: moved this here, to be correct, if --prefix is specified
1961 test -z "$_bindir" && _bindir="$_prefix/bin"
1962 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1963 test -z "$_mandir" && _mandir="$_prefix/man"
1964 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1965 test -z "$_libdir" && _libdir="$_prefix/lib"
1966 test -z "$_mlibdir" && _mlibdir="$MLIBHOME"
1968 if x86 ; then
1969 # Checking assembler (_as) compatibility...
1970 # Added workaround for older as that reads from stdin by default - atmos
1971 as_version=`echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p'`
1972 echocheck "assembler ($_as $as_version)"
1974 _pref_as_version='2.9.1'
1975 echo 'nop' > $TMPS
1976 if test "$_mmx" = yes ; then
1977 echo 'emms' >> $TMPS
1979 if test "$_3dnow" = yes ; then
1980 _pref_as_version='2.10.1'
1981 echo 'femms' >> $TMPS
1983 if test "$_3dnowex" = yes ; then
1984 _pref_as_version='2.10.1'
1985 echo 'pswapd %mm0, %mm0' >> $TMPS
1987 if test "$_mmx2" = yes ; then
1988 _pref_as_version='2.10.1'
1989 echo 'movntq %mm0, (%eax)' >> $TMPS
1991 if test "$_sse" = yes ; then
1992 _pref_as_version='2.10.1'
1993 echo 'xorps %xmm0, %xmm0' >> $TMPS
1995 #if test "$_sse2" = yes ; then
1996 # _pref_as_version='2.11'
1997 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
1999 $_as $TMPS -o $TMPO > /dev/null 2>&1 || as_verc_fail=yes
2001 if test "$as_verc_fail" != yes ; then
2002 echores "ok"
2003 else
2004 echores "failed"
2005 echo "Upgrade binutils to ${_pref_as_version} ..."
2006 die "obsolete binutils version"
2010 if ppc ; then
2012 # check if altivec is supported by the compiler, and how to enable it
2014 _altivec_gcc_flags=''
2016 if test "$_altivec" = yes -o "$_runtime_cpudetection" = yes ; then
2017 echocheck "GCC altivec support"
2019 p=''
2020 cat > $TMPC << EOF
2021 int main() {
2022 return 0;
2025 FSF_flags='-maltivec -mabi=altivec'
2026 Darwin_flags='-faltivec -D__APPLE_ALTIVEC__'
2028 # check for Darwin-style flags first, since
2029 # gcc-3.3 (August Update from Apple) on MacOS 10.2.8
2030 # accepts but ignores FSF-style flags...
2032 if test -z "$p"; then
2033 cc_check $Darwin_flags && p='Darwin'
2035 if test -z "$p"; then
2036 cc_check $FSF_flags && p='FSF'
2039 case $p in
2040 FSF) _altivec_gcc_flags="$FSF_flags" _altivec=yes ;;
2041 Darwin) _altivec_gcc_flags="$Darwin_flags" _altivec=yes ;;
2042 *) _altivec=no ;;
2043 esac
2045 if test -z "$p"; then
2046 p=none
2047 else
2048 p="$p-style ($_altivec_gcc_flags)"
2051 echores "$p"
2054 # check if <altivec.h> should be included
2056 _def_altivec_h='#undef HAVE_ALTIVEC_H'
2058 if test "$_altivec" = yes ; then
2059 echocheck "altivec.h"
2060 cat > $TMPC << EOF
2061 #include <altivec.h>
2062 int main(void) { return 0; }
2064 _have_altivec_h=no
2065 cc_check $_altivec_gcc_flags && _have_altivec_h=yes
2066 if test "$_have_altivec_h" = yes ; then
2067 _def_altivec_h='#define HAVE_ALTIVEC_H 1'
2069 echores "$_have_altivec_h"
2072 # disable runtime cpudetection if
2073 # - we cannot generate altivec code
2074 # - altivec is disabled by the user
2076 if test "$_runtime_cpudetection" = yes -a "$_altivec" = no ; then
2077 _runtime_cpudetection=no
2080 # show that we are optimizing for altivec (if enabled and supported)
2082 if test "$_runtime_cpudetection" = no -a "$_altivec" = yes ; then
2083 _optimizing="$_optimizing altivec"
2086 # if altivec is enabled, make sure the correct flags turn up in CFLAGS
2088 if test "$_altivec" = yes ; then
2089 _mcpu="$_mcpu $_altivec_gcc_flags"
2092 # setup _def_altivec correctly
2094 if test "$_altivec" = yes ; then
2095 _def_altivec='#define HAVE_ALTIVEC 1'
2096 else
2097 _def_altivec='#undef HAVE_ALTIVEC'
2101 _def_mmx='#undef HAVE_MMX'
2102 test "$_mmx" = yes && _def_mmx='#define HAVE_MMX 1'
2103 _def_mmx2='#undef HAVE_MMX2'
2104 test "$_mmx2" = yes && _def_mmx2='#define HAVE_MMX2 1'
2105 _def_3dnow='#undef HAVE_3DNOW'
2106 test "$_3dnow" = yes && _def_3dnow='#define HAVE_3DNOW 1'
2107 _def_3dnowex='#undef HAVE_3DNOWEX'
2108 test "$_3dnowex" = yes && _def_3dnowex='#define HAVE_3DNOWEX 1'
2109 _def_sse='#undef HAVE_SSE'
2110 test "$_sse" = yes && _def_sse='#define HAVE_SSE 1'
2111 _def_sse2='#undef HAVE_SSE2'
2112 test "$_sse2" = yes && _def_sse2='#define HAVE_SSE2 1'
2114 # Checking kernel version...
2115 if x86 && linux ; then
2116 _k_verc_problem=no
2117 kernel_version=`uname -r 2>&1`
2118 echocheck "$system_name kernel version"
2119 case "$kernel_version" in
2120 '') kernel_version="?.??"; _k_verc_fail=yes;;
2121 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2122 _k_verc_problem=yes;;
2123 esac
2124 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2125 _k_verc_fail=yes
2127 if test "$_k_verc_fail" ; then
2128 echores "$kernel_version, fail"
2129 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2130 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2131 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2132 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2133 echo "2.2.x you must upgrade it to get SSE support!"
2134 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2135 else
2136 echores "$kernel_version, ok"
2140 if test "$_vidix" = auto ; then
2141 _vidix=no
2142 # should check for x86 systems supporting VIDIX (does QNX have VIDIX?)
2143 x86 && _vidix=yes
2144 ppc && linux && _vidix=yes
2145 alpha && linux && _vidix=yes
2146 qnx && _vidix=no
2147 sunos && _vidix=no
2148 beos && _vidix=no
2151 echocheck "mplayer binary name"
2152 if win32 ; then
2153 _prg="mplayer.exe"
2154 _prg_mencoder="mencoder.exe"
2155 else
2156 _prg="mplayer"
2157 _prg_mencoder="mencoder"
2159 echores $_prg
2162 # On QNX we must link to libph - Gabucino
2163 if qnx ; then
2164 _ld_arch="$_ld_arch -lph"
2167 # checking for a working awk, I'm using mawk first, because it's fastest - atmos
2168 _awk=
2169 if test "$_vidix" = yes ; then
2170 _awk_verc_fail=yes
2171 echocheck "awk"
2172 for _awk in mawk gawk nawk awk; do
2173 if ( $_awk 'BEGIN{testme();}function testme(){print"";}' ) >> "$TMPLOG" 2>&1; then
2174 _awk_verc_fail=no
2175 break
2177 done
2178 test "$_awk_verc_fail" = yes && _awk=no
2179 echores "$_awk"
2180 if test "$_awk_verc_fail" = yes; then
2181 echo "VIDIX needs awk, but no working implementation was found!"
2182 echo "Try the GNU version, which can be downloaded from:"
2183 echo "ftp://ftp.gnu.org/gnu/gawk/"
2184 echo "If you don't need VIDIX, you can use configure --disable-vidix instead."
2185 die "no awk"
2189 # If IRIX we must use ar instead of ranlib (not present on IRIX systems)
2190 if irix ; then
2191 _ranlib='ar -r'
2192 elif linux ; then
2193 _ranlib='true'
2196 ######################
2197 # MAIN TESTS GO HERE #
2198 ######################
2201 echocheck "extra headers"
2202 if test "$_inc_extra" ; then
2203 echores "$_inc_extra"
2204 else
2205 echores "none"
2209 echocheck "extra libs"
2210 if test "$_ld_extra" ; then
2211 echores "$_ld_extra"
2212 else
2213 echores "none"
2216 echocheck "-lposix"
2217 cat > $TMPC <<EOF
2218 int main(void) { return 0; }
2220 if cc_check -lposix ; then
2221 _ld_arch="$_ld_arch -lposix"
2222 echores "yes"
2223 else
2224 echores "no"
2227 echocheck "-lm"
2228 cat > $TMPC <<EOF
2229 int main(void) { return 0; }
2231 if cc_check -lm ; then
2232 _ld_lm="-lm"
2233 echores "yes"
2234 else
2235 _ld_lm=""
2236 echores "no"
2239 # Checking for localization ...
2240 # CSAK EGY MARADHAT - A HEGYLAKO
2241 echocheck "i18n"
2242 if test "$_i18n" != no ; then
2243 cat > $TMPC <<EOF
2244 #include <libintl.h>
2245 int main(void) { gettext("test"); return 0; }
2247 _i18n=no
2248 _i18n_libs=""
2249 if test "$_i18n" = auto ; then
2250 cc_check && _i18n=yes
2251 else
2252 for i18n_lib in "" "-lintl"; do
2253 cc_check $i18n_lib && _i18n=yes && _i18n_libs=$i18n_lib && break
2254 done
2257 if test "$_i18n" = yes ; then
2258 _def_i18n='#define USE_I18N 1'
2259 else
2260 _def_i18n='#undef USE_I18N'
2262 if test -z "$_i18n_libs" ; then
2263 echores "$_i18n"
2264 else
2265 echores "$_i18n (using $_i18n_libs)"
2269 echocheck "iconv"
2270 if test "$_iconv" = auto ; then
2271 _iconv_tmp='#include <iconv.h>'
2273 cat > $TMPC << EOF
2274 #include <stdio.h>
2275 #include <unistd.h>
2276 $_iconv_tmp
2277 #define INBUFSIZE 1024
2278 #define OUTBUFSIZE 4096
2280 char inbuffer[INBUFSIZE];
2281 char outbuffer[OUTBUFSIZE];
2283 int main(void) {
2284 size_t numread;
2285 iconv_t icdsc;
2286 char *tocode="UTF-8";
2287 char *fromcode="cp1250";
2288 if ((icdsc = iconv_open (tocode, fromcode)) != (iconv_t)(-1)) {
2289 while ((numread = read (0, inbuffer, INBUFSIZE))) {
2290 char *iptr=inbuffer;
2291 char *optr=outbuffer;
2292 size_t inleft=numread;
2293 size_t outleft=OUTBUFSIZE;
2294 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
2295 != (size_t)(-1)) {
2296 write (1, outbuffer, OUTBUFSIZE - outleft);
2299 if (iconv_close(icdsc) == -1)
2304 _iconv=no
2305 if cc_check $_ld_lm ; then
2306 _iconv=yes
2307 elif cc_check $_ld_lm -liconv ; then
2308 _iconv=yes
2309 _ld_iconv='-liconv'
2312 if test "$_iconv" = yes ; then
2313 _def_iconv='#define USE_ICONV 1'
2314 else
2315 _def_iconv='#undef USE_ICONV'
2317 echores "$_iconv"
2320 echocheck "langinfo"
2321 if test "$_langinfo" = auto ; then
2322 cat > $TMPC <<EOF
2323 #include <langinfo.h>
2324 int main(void) { nl_langinfo(CODESET); return 0; }
2326 _langinfo=no
2327 cc_check && _langinfo=yes
2329 if test "$_langinfo" = yes ; then
2330 _def_langinfo='#define USE_LANGINFO 1'
2331 else
2332 _def_langinfo='#undef USE_LANGINFO'
2334 echores "$_langinfo"
2337 echocheck "language"
2338 test -z "$_language" && _language=$LINGUAS
2339 _language=`echo $_language | sed 's/,/ /g'`
2340 echo $_language | grep all > /dev/null || LANGUAGES="$_language en"
2341 for lang in $_language ; do
2342 test "$lang" = all && lang=en
2343 if test -f "help/help_mp-${lang}.h" ; then
2344 _language=$lang
2345 break
2346 else
2347 echo -n "$lang not found, "
2348 _language=`echo $_language | sed "s/$lang *//"`
2350 done
2351 test -z "$_language" && _language=en
2352 _mp_help="help/help_mp-${_language}.h"
2353 test -f $_mp_help || die "$_mp_help not found"
2354 for lang in $LANGUAGES ; do
2355 if test -f "DOCS/man/$lang/mplayer.1" ; then
2356 MAN_LANG="$MAN_LANG $lang"
2358 done
2359 _doc_lang=$_language
2360 test -d DOCS/xml/$_doc_lang || _doc_lang=en
2361 echores "using $_language (man pages: $MAN_LANG)"
2364 echocheck "enable sighandler"
2365 if test "$_sighandler" = yes ; then
2366 _def_sighandler='#define ENABLE_SIGHANDLER 1'
2367 else
2368 _def_sighandler='#undef ENABLE_SIGHANDLER'
2370 echores "$_sighandler"
2372 echocheck "runtime cpudetection"
2373 if test "$_runtime_cpudetection" = yes ; then
2374 _optimizing="Runtime CPU-Detection enabled"
2375 _def_runtime_cpudetection='#define RUNTIME_CPUDETECT 1'
2376 else
2377 _def_runtime_cpudetection='#undef RUNTIME_CPUDETECT'
2379 echores "$_runtime_cpudetection"
2382 echocheck "restrict keyword"
2383 for restrict_keyword in restrict __restrict __restrict__ ; do
2384 echo "void foo(char * $restrict_keyword p); int main(){}" > $TMPC
2385 if cc_check; then
2386 _def_restrict_keyword=$restrict_keyword
2387 break;
2389 done
2390 if [ -n "$_def_restrict_keyword" ]; then
2391 echores "$_def_restrict_keyword"
2392 else
2393 echores "none"
2395 # Avoid infinite recursion loop ("#define restrict restrict")
2396 if [ "$_def_restrict_keyword" != "restrict" ]; then
2397 _def_restrict_keyword="#define restrict $_def_restrict_keyword"
2398 else
2399 _def_restrict_keyword=""
2403 echocheck "__builtin_expect"
2404 # GCC branch prediction hint
2405 cat > $TMPC << EOF
2406 int foo (int a) {
2407 a = __builtin_expect (a, 10);
2408 return a == 10 ? 0 : 1;
2410 int main() { return foo(10) && foo(0); }
2412 _builtin_expect=no
2413 cc_check && _builtin_expect=yes
2414 if test "$_builtin_expect" = yes ; then
2415 _def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2416 else
2417 _def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2419 echores "$_builtin_expect"
2422 echocheck "kstat"
2423 cat > $TMPC << EOF
2424 #include <kstat.h>
2425 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
2427 _kstat=no
2428 cc_check -lkstat && _kstat=yes
2429 if test "$_kstat" = yes ; then
2430 _ld_arch="-lkstat $_ld_arch"
2432 if test "$_kstat" = yes ; then
2433 _def_kstat="#define HAVE_LIBKSTAT 1"
2434 else
2435 _def_kstat="#undef HAVE_LIBKSTAT"
2437 echores "$_kstat"
2440 echocheck "posix4"
2441 # required for nanosleep on some systems
2442 cat > $TMPC << EOF
2443 #include <time.h>
2444 int main(void) { (void) nanosleep(0, 0); return 0; }
2446 _posix4=no
2447 cc_check -lposix4 && _posix4=yes
2448 if test "$_posix4" = yes ; then
2449 _ld_arch="-lposix4 $_ld_arch"
2451 echores "$_posix4"
2453 echocheck "-std=gnu99"
2454 cat > $TMPC << EOF
2455 int main(void) { return 0; }
2457 _gnu99=no
2458 cc_check -std=gnu99 && _gnu99=yes
2459 if test "$_gnu99" = yes ; then
2460 _opt_gnu99="-std=gnu99"
2461 else
2462 _opt_gnu99=""
2464 echores "$_gnu99"
2466 echocheck "lrintf"
2467 cat > $TMPC << EOF
2468 #include <math.h>
2469 int main(void) { long (*foo)(float); foo = lrintf; (void)(*foo)(0.0); return 0; }
2471 _lrintf=no
2472 cc_check $_opt_gnu99 -D_GNU_SOURCE $_ld_lm && _lrintf=yes
2473 if test "$_lrintf" = yes ; then
2474 _def_lrintf="#define HAVE_LRINTF 1"
2475 else
2476 _def_lrintf="#undef HAVE_LRINTF"
2478 echores "$_lrintf"
2480 echocheck "round"
2481 cat > $TMPC << EOF
2482 #include <math.h>
2483 int main(void) { (void) round(0.0); return 0; }
2485 _round=no
2486 cc_check $_ld_lm && _round=yes
2487 if test "$_round" = yes ; then
2488 _def_round="#define HAVE_ROUND 1"
2489 else
2490 _def_round="#undef HAVE_ROUND"
2492 echores "$_round"
2494 echocheck "nanosleep"
2495 # also check for nanosleep
2496 cat > $TMPC << EOF
2497 #include <time.h>
2498 int main(void) { (void) nanosleep(0, 0); return 0; }
2500 _nanosleep=no
2501 cc_check $_ld_arch && _nanosleep=yes
2502 if test "$_nanosleep" = yes ; then
2503 _def_nanosleep='#define HAVE_NANOSLEEP 1'
2504 else
2505 _def_nanosleep='#undef HAVE_NANOSLEEP'
2507 echores "$_nanosleep"
2510 echocheck "socklib"
2511 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2512 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2513 cat > $TMPC << EOF
2514 #include <netdb.h>
2515 int main(void) { (void) gethostbyname(0); return 0; }
2517 cc_check -lsocket && _ld_sock="-lsocket"
2518 cc_check -lnsl && _ld_sock="-lnsl"
2519 cc_check -lsocket -lnsl && _ld_sock="-lsocket -lnsl"
2520 cc_check -lsocket -ldnet && _ld_sock="-lsocket -ldnet"
2521 cc_check -lsocket -lbind && _ld_sock="-lsocket -lbind"
2522 if test $_winsock2 = auto && not cygwin ; then
2523 _winsock2=no
2524 cat > $TMPC << EOF
2525 #include <winsock2.h>
2526 int main(void) { (void) gethostbyname(0); return 0; }
2528 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2=yes
2530 if test "$_ld_sock" ; then
2531 echores "yes (using $_ld_sock)"
2532 else
2533 echores "no"
2537 if test $_winsock2 = yes ; then
2538 _ld_sock="-lws2_32"
2539 _def_winsock2='#define HAVE_WINSOCK2 1'
2540 else
2541 _def_winsock2='#undef HAVE_WINSOCK2'
2545 _use_aton=no
2546 echocheck "inet_pton()"
2547 cat > $TMPC << EOF
2548 #include <sys/types.h>
2549 #include <sys/socket.h>
2550 #include <arpa/inet.h>
2551 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
2553 if test "$_winsock2" = yes ; then
2554 echores "not needed (using winsock2 functions)"
2555 elif cc_check $_ld_sock ; then
2556 # NOTE: Linux has libresolv but does not need it
2558 echores "yes (using $_ld_sock)"
2559 elif cc_check $_ld_sock -lresolv ; then
2560 # NOTE: needed for SunOS at least
2561 _ld_sock="$_ld_sock -lresolv"
2562 echores "yes (using $_ld_sock)"
2563 else
2564 echores "no (=> i'll try inet_aton next)"
2566 echocheck "inet_aton()"
2567 cat > $TMPC << EOF
2568 #include <sys/types.h>
2569 #include <sys/socket.h>
2570 #include <arpa/inet.h>
2571 int main(void) { (void) inet_aton(0, 0); return 0; }
2573 _use_aton=yes
2574 if cc_check $_ld_sock ; then
2575 # NOTE: Linux has libresolv but does not need it
2577 echores "yes (using $_ld_sock)"
2578 elif cc_check $_ld_sock -lresolv ; then
2579 # NOTE: needed for SunOS at least
2580 _ld_sock="$_ld_sock -lresolv"
2581 echores "yes (using $_ld_sock)"
2582 else
2583 _use_aton=no
2584 _network=no
2585 echores "no (=> network support disabled)"
2589 _def_use_aton='#undef USE_ATON'
2590 if test "$_use_aton" != no; then
2591 _def_use_aton='#define USE_ATON 1'
2595 echocheck "inttypes.h (required)"
2596 cat > $TMPC << EOF
2597 #include <inttypes.h>
2598 int main(void) { return 0; }
2600 _inttypes=no
2601 cc_check && _inttypes=yes
2602 if test "$_inttypes" = yes ; then
2603 # nothing to do
2605 else
2606 echores "no"
2607 echocheck "bitypes.h (inttypes.h predecessor)"
2608 cat > $TMPC << EOF
2609 #include <sys/bitypes.h>
2610 int main(void) { return 0; }
2612 _inttypes=no
2613 cc_check && _inttypes=yes
2614 if test "$_inttypes" = yes ; then
2615 die "You don't have inttypes.h, but sys/bitypes.h is present. Please copy etc/inttypes.h into the include path, and re-run configure."
2616 else
2617 die "Cannot find header either inttypes.h or bitypes.h (see DOCS/HTML/$_doc_lang/faq.html)."
2620 echores "$_inttypes"
2623 echocheck "int_fastXY_t in inttypes.h"
2624 cat > $TMPC << EOF
2625 #include <inttypes.h>
2626 int main(void) {
2627 volatile int_fast16_t v= 0;
2628 return v; }
2630 _fast_inttypes=no
2631 cc_check && _fast_inttypes=yes
2632 if test "$_fast_inttypes" = yes ; then
2633 # nothing to do
2635 else
2636 _def_fast_inttypes='
2637 typedef signed char int_fast8_t;
2638 typedef signed int int_fast16_t;
2639 typedef signed int int_fast32_t;
2640 typedef unsigned char uint_fast8_t;
2641 typedef unsigned int uint_fast16_t;
2642 typedef unsigned int uint_fast32_t;'
2644 echores "$_fast_inttypes"
2647 echocheck "word size"
2648 _mp_wordsize="#undef MP_WORDSIZE"
2649 cat > $TMPC << EOF
2650 #include <stdio.h>
2651 #include <sys/types.h>
2652 int main(void) { printf("%d\n", sizeof(size_t)*8); return 0; }
2654 cc_check && _wordsize=`$TMPO` && _mp_wordsize="#define MP_WORDSIZE $_wordsize"
2655 echores "$_wordsize"
2658 echocheck "stddef.h"
2659 cat > $TMPC << EOF
2660 #include <stddef.h>
2661 int main(void) { return 0; }
2663 _stddef=no
2664 cc_check && _stddef=yes
2665 if test "$_stddef" = yes ; then
2666 _def_stddef='#define HAVE_STDDEF_H 1'
2667 else
2668 _def_stddef='#undef HAVE_STDDEF_H'
2670 echores "$_stddef"
2673 echocheck "malloc.h"
2674 cat > $TMPC << EOF
2675 #include <malloc.h>
2676 int main(void) { (void) malloc(0); return 0; }
2678 _malloc=no
2679 cc_check && _malloc=yes
2680 if test "$_malloc" = yes ; then
2681 _def_malloc='#define HAVE_MALLOC_H 1'
2682 else
2683 _def_malloc='#undef HAVE_MALLOC_H'
2685 # malloc.h emits a warning in FreeBSD and OpenBSD
2686 (freebsd || openbsd) && _def_malloc='#undef HAVE_MALLOC_H'
2687 echores "$_malloc"
2690 echocheck "memalign()"
2691 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
2692 cat > $TMPC << EOF
2693 #include <malloc.h>
2694 int main (void) { (void) memalign(64, sizeof(char)); return 0; }
2696 _memalign=no
2697 cc_check && _memalign=yes
2698 if test "$_memalign" = yes ; then
2699 _def_memalign='#define HAVE_MEMALIGN 1'
2700 else
2701 _def_memalign='#undef HAVE_MEMALIGN'
2703 echores "$_memalign"
2706 echocheck "alloca.h"
2707 cat > $TMPC << EOF
2708 #include <alloca.h>
2709 int main(void) { (void) alloca(0); return 0; }
2711 _alloca=no
2712 cc_check && _alloca=yes
2713 if cc_check ; then
2714 _def_alloca='#define HAVE_ALLOCA_H 1'
2715 else
2716 _def_alloca='#undef HAVE_ALLOCA_H'
2718 echores "$_alloca"
2721 echocheck "mman.h"
2722 cat > $TMPC << EOF
2723 #include <sys/types.h>
2724 #include <sys/mman.h>
2725 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
2727 _mman=no
2728 cc_check && _mman=yes
2729 if test "$_mman" = yes ; then
2730 _def_mman='#define HAVE_SYS_MMAN_H 1'
2731 else
2732 _def_mman='#undef HAVE_SYS_MMAN_H'
2734 echores "$_mman"
2736 cat > $TMPC << EOF
2737 #include <sys/types.h>
2738 #include <sys/mman.h>
2739 int main(void) { void *p = MAP_FAILED; return 0; }
2741 _mman_has_map_failed=no
2742 cc_check && _mman_has_map_failed=yes
2743 if test "$_mman_has_map_failed" = yes ; then
2744 _def_mman_has_map_failed=''
2745 else
2746 _def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
2749 echocheck "dynamic loader"
2750 cat > $TMPC << EOF
2751 #include <dlfcn.h>
2752 int main(void) { dlopen(0, 0); dlclose(0); dlsym(0, 0); return 0; }
2754 _dl=no
2755 if cc_check ; then
2756 _dl=yes
2757 elif cc_check -ldl ; then
2758 _dl=yes
2759 _ld_dl='-ldl'
2761 if test "$_dl" = yes ; then
2762 _def_dl='#define HAVE_LIBDL 1'
2763 else
2764 _def_dl='#undef HAVE_LIBDL'
2766 echores "$_dl"
2769 echocheck "dynamic a/v plugins support"
2770 if test "$_dl" = no ; then
2771 _dynamic_plugins=no
2773 if test "$_dynamic_plugins" = yes ; then
2774 _def_dynamic_plugins='#define DYNAMIC_PLUGINS 1'
2775 else
2776 _def_dynamic_plugins='#undef DYNAMIC_PLUGINS'
2778 echores "$_dynamic_plugins"
2781 #echocheck "dynamic linking"
2782 # FIXME !! make this dynamic detection work and modify at the end (search _ld_dl_dynamic)
2783 # also gcc flags are different, but ld flags aren't (-Bdynamic/-Bstatic/-Bsymbolic)
2784 #cat > $TMPC << EOF
2785 #int main(void) { return 0; }
2786 #EOF
2787 #if cc_check -rdynamic ; then
2788 # _ld_dl_dynamic='-rdynamic'
2789 #elif cc_check -Bdynamic ; then
2790 # _ld_dl_dynamic='-Bdynamic'
2791 #elif cc_check ; then
2792 # _ld_dl_dynamic=''
2794 #echores "using $_ld_dl_dynamic"
2796 _def_threads='#undef HAVE_THREADS'
2798 echocheck "pthread"
2799 _ld_pthread=''
2800 if test "$_pthreads" != no ; then
2801 cat > $TMPC << EOF
2802 #include <pthread.h>
2803 void* func(void *arg) { return arg; }
2804 int main(void) { pthread_t tid; return pthread_create (&tid, 0, func, 0) == 0 ? 0 : 1; }
2806 if hpux ; then
2807 _ld_pthread=''
2808 elif ( cc_check -lpthreadGC2 && $TMPO ) ; then # mingw pthreads-win32
2809 _ld_pthread='-lpthreadGC2'
2810 elif ( cc_check && $TMPO ) ; then # QNX
2811 _ld_pthread=' ' # _ld_pthread='' would disable pthreads, but the test worked
2812 elif ( cc_check -lpthread && $TMPO ) ; then
2813 _ld_pthread='-lpthread'
2814 elif ( cc_check -pthread && $TMPO ) ; then
2815 _ld_pthread='-pthread'
2816 else
2817 if test "$_ld_static" ; then
2818 # for crosscompilation, we cannot execute the program, be happy if we can link statically
2819 if ( cc_check -lpthread ) ; then
2820 _ld_pthread='-lpthread'
2821 elif ( cc_check -pthread ) ; then
2822 _ld_pthread='-pthread'
2823 else
2824 echores "no static pthread found (v4l, vo_gl, ao_alsa, ao_nas, ao_macosx, Win32 loader disabled)"
2825 _ld_pthread='' ; _nas=no ; _tv_v4l=no ; _macosx=no ; _win32=no
2827 else
2828 echores "no (v4l, vo_gl, ao_alsa, ao_nas, ao_macosx, win32 loader disabled)"
2829 _ld_pthread='' ; _nas=no ; _tv_v4l=no ; _macosx=no ; _win32=no
2833 if test "$_ld_pthread" != '' ; then
2834 echores "yes (using $_ld_pthread)"
2835 _pthreads='yes'
2836 _def_pthreads='#define HAVE_PTHREADS 1'
2837 _def_threads='#define HAVE_THREADS 1'
2838 else
2839 echores "no"
2840 _pthreads=''
2841 _def_pthreads='#undef HAVE_PTHREADS'
2845 echocheck "sys/soundcard.h"
2846 cat > $TMPC << EOF
2847 #include <sys/soundcard.h>
2848 int main(void) { return 0; }
2850 _sys_soundcard=no
2851 cc_check && _sys_soundcard=yes
2852 if test "$_sys_soundcard" = yes ; then
2853 _def_sys_soundcard='#define HAVE_SYS_SOUNDCARD_H 1'
2854 _inc_soundcard='#include <sys/soundcard.h>'
2855 else
2856 _def_sys_soundcard='#undef HAVE_SYS_SOUNDCARD_H'
2858 echores "$_sys_soundcard"
2860 if test "$_sys_soundcard" != yes ; then
2861 echocheck "soundcard.h"
2862 cat > $TMPC << EOF
2863 #include <soundcard.h>
2864 int main(void) { return 0; }
2866 _soundcard=no
2867 cc_check && _soundcard=yes
2868 if linux || test "$_ossaudio" != no ; then
2869 # use soundcard.h on Linux, or when OSS support is enabled
2870 echores "$_soundcard"
2871 else
2872 # we don't want to use soundcard.h on non-Linux if OSS support not enabled!
2873 echores "$_soundcard, but ignored!"
2874 _soundcard=no
2876 if test "$_soundcard" = yes ; then
2877 _def_soundcard='#define HAVE_SOUNDCARD_H 1'
2878 _inc_soundcard='#include <soundcard.h>'
2879 else
2880 _def_soundcard='#undef HAVE_SOUNDCARD_H'
2882 else
2883 _def_soundcard='#undef HAVE_SOUNDCARD_H'
2887 echocheck "sys/dvdio.h"
2888 cat > $TMPC << EOF
2889 #include <unistd.h>
2890 #include <sys/dvdio.h>
2891 int main(void) { return 0; }
2893 _dvdio=no
2894 cc_check && _dvdio=yes
2895 if test "$_dvdio" = yes ; then
2896 _def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
2897 else
2898 _def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
2900 echores "$_dvdio"
2903 echocheck "sys/cdio.h"
2904 cat > $TMPC << EOF
2905 #include <unistd.h>
2906 #include <sys/cdio.h>
2907 int main(void) { return 0; }
2909 _cdio=no
2910 cc_check && _cdio=yes
2911 if test "$_cdio" = yes ; then
2912 _def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
2913 else
2914 _def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
2916 echores "$_cdio"
2919 echocheck "linux/cdrom.h"
2920 cat > $TMPC << EOF
2921 #include <sys/types.h>
2922 #include <linux/cdrom.h>
2923 int main(void) { return 0; }
2925 _cdrom=no
2926 cc_check && _cdrom=yes
2927 if test "$_cdrom" = yes ; then
2928 _def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
2929 else
2930 _def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
2932 echores "$_cdrom"
2935 echocheck "dvd.h"
2936 cat > $TMPC << EOF
2937 #include <dvd.h>
2938 int main(void) { return 0; }
2940 _dvd=no
2941 cc_check && _dvd=yes
2942 if test "$_dvd" = yes ; then
2943 _def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
2944 else
2945 _def_dvd='#undef DVD_STRUCT_IN_DVD_H'
2947 echores "$_dvd"
2950 echocheck "BSDI dvd.h"
2951 cat > $TMPC << EOF
2952 #include <dvd.h>
2953 int main(void) { return 0; }
2955 _bsdi_dvd=no
2956 cc_check && _bsdi_dvd=yes
2957 if test "$_bsdi_dvd" = yes ; then
2958 _def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
2959 else
2960 _def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
2962 echores "$_bsdi_dvd"
2965 echocheck "HPUX SCSI header"
2966 cat > $TMPC << EOF
2967 #include <sys/scsi.h>
2968 int main(void) { return 0; }
2970 _hpux_scsi_h=no
2971 cc_check && _hpux_scsi_h=yes
2972 if test "$_hpux_scsi_h" = yes ; then
2973 _def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
2974 else
2975 _def_hpux_scsi_h='#undef HPUX_SCTL_IO'
2977 echores "$_hpux_scsi_h"
2980 echocheck "userspace SCSI headers (Solaris)"
2981 cat > $TMPC << EOF
2982 # include <unistd.h>
2983 # include <stropts.h>
2984 # include <sys/scsi/scsi_types.h>
2985 # include <sys/scsi/impl/uscsi.h>
2986 int main(void) { return 0; }
2988 _sol_scsi_h=no
2989 cc_check && _sol_scsi_h=yes
2990 if test "$_sol_scsi_h" = yes ; then
2991 _def_sol_scsi_h='#define SOLARIS_USCSI 1'
2992 else
2993 _def_sol_scsi_h='#undef SOLARIS_USCSI'
2995 echores "$_sol_scsi_h"
2998 echocheck "termcap"
2999 if test "$_termcap" = auto ; then
3000 cat > $TMPC <<EOF
3001 int main(void) { return 0; }
3003 _termcap=no
3004 cc_check -ltermcap && _termcap=yes && _ld_termcap='-ltermcap'
3005 cc_check -ltinfo && _termcap=yes && _ld_termcap='-ltinfo'
3007 if test "$_termcap" = yes ; then
3008 _def_termcap='#define USE_TERMCAP 1'
3009 echores "yes (using $_ld_termcap)"
3010 else
3011 _def_termcap='#undef USE_TERMCAP'
3012 echores no
3016 echocheck "termios"
3017 if test "$_termios" = auto ; then
3018 cat > $TMPC <<EOF
3019 #include <sys/termios.h>
3020 int main(void) { return 0; }
3022 _termios=auto
3023 cc_check && _termios=yes
3024 _def_termios_h_name='sys/termios.h'
3026 # second test:
3027 if test "$_termios" = auto ; then
3028 cat > $TMPC <<EOF
3029 #include <termios.h>
3030 int main(void) { return 0; }
3032 _termios=no
3033 cc_check && _termios=yes
3034 _def_termios_h_name='termios.h'
3037 if test "$_termios" = yes ; then
3038 _def_termios='#define HAVE_TERMIOS 1'
3039 _def_termios_h='#undef HAVE_TERMIOS_H'
3040 _def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3042 if test "$_def_termios_h_name" = 'sys/termios.h' ; then
3043 _def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3044 elif test "$_def_termios_h_name" = 'termios.h' ; then
3045 _def_termios_h='#define HAVE_TERMIOS_H 1'
3047 echores "yes (using $_def_termios_h_name)"
3048 else
3049 _def_termios='#undef HAVE_TERMIOS'
3050 _def_termios_h_name=''
3051 echores "no"
3055 echocheck "shm"
3056 if test "$_shm" = auto ; then
3057 cat > $TMPC << EOF
3058 #include <sys/types.h>
3059 #include <sys/shm.h>
3060 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3062 _shm=no
3063 cc_check && _shm=yes
3065 if test "$_shm" = yes ; then
3066 _def_shm='#define HAVE_SHM 1'
3067 else
3068 _def_shm='#undef HAVE_SHM'
3070 echores "$_shm"
3073 # XXX: FIXME, add runtime checking
3074 echocheck "linux devfs"
3075 echores "$_linux_devfs"
3078 echocheck "scandir()"
3079 cat > $TMPC << EOF
3080 int main (void) { scandir("", 0, 0, 0); alphasort(0, 0); return 0; }
3082 _scandir=no
3083 cc_check && _scandir=yes
3084 if test "$_scandir" = yes ; then
3085 _def_scandir='#define HAVE_SCANDIR 1'
3086 else
3087 _def_scandir='#undef HAVE_SCANDIR'
3089 echores "$_scandir"
3092 echocheck "strsep()"
3093 cat > $TMPC << EOF
3094 #include <string.h>
3095 int main (void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3097 _strsep=no
3098 cc_check && _strsep=yes
3099 if test "$_strsep" = yes ; then
3100 _def_strsep='#define HAVE_STRSEP 1'
3101 else
3102 _def_strsep='#undef HAVE_STRSEP'
3104 echores "$_strsep"
3106 echocheck "strlcpy()"
3107 cat > $TMPC << EOF
3108 #include <string.h>
3109 int main (void) { char *s = "Hello, world!", t[20]; (void) strlcpy(t, s, sizeof( t )); return 0; }
3111 _strlcpy=no
3112 cc_check && _strlcpy=yes
3113 if test "$_strlcpy" = yes ; then
3114 _def_strlcpy='#define HAVE_STRLCPY 1'
3115 else
3116 _def_strlcpy='#undef HAVE_STRLCPY'
3118 echores "$_strlcpy"
3120 echocheck "strlcat()"
3121 cat > $TMPC << EOF
3122 #include <string.h>
3123 int main (void) { char *s = "Hello, world!", t[20]; (void) strlcat(t, s, sizeof( t )); return 0; }
3125 _strlcat=no
3126 cc_check && _strlcat=yes
3127 if test "$_strlcat" = yes ; then
3128 _def_strlcat='#define HAVE_STRLCAT 1'
3129 else
3130 _def_strlcat='#undef HAVE_STRLCAT'
3132 echores "$_strlcat"
3134 echocheck "fseeko()"
3135 cat > $TMPC << EOF
3136 #include <stdio.h>
3137 int main (void) { int i; i = fseeko(stdin, 0, 0); return 0; }
3139 _fseeko=no
3140 cc_check && _fseeko=yes
3141 if test "$_fseeko" = yes ; then
3142 _def_fseeko='#define HAVE_FSEEKO 1'
3143 else
3144 _def_fseeko='#undef HAVE_FSEEKO'
3146 echores "$_fseeko"
3148 echocheck "localtime_r()"
3149 cat > $TMPC << EOF
3150 #include <time.h>
3151 int main( void ) { localtime_r(NULL, NULL); }
3153 _localtime_r=no
3154 cc_check && _localtime_r=yes
3155 if test "$_localtime_r" = yes ; then
3156 _def_localtime_r='#define HAVE_LOCALTIME_R 1'
3157 else
3158 _def_localtime_r='#undef HAVE_LOCALTIME_R'
3160 echores "$_localtime_r"
3162 echocheck "vsscanf()"
3163 cat > $TMPC << EOF
3164 #include <stdarg.h>
3165 int main(void) { vsscanf(0, 0, 0); return 0; }
3167 _vsscanf=no
3168 cc_check && _vsscanf=yes
3169 if test "$_vsscanf" = yes ; then
3170 _def_vsscanf='#define HAVE_VSSCANF 1'
3171 else
3172 _def_vsscanf='#undef HAVE_VSSCANF'
3174 echores "$_vsscanf"
3177 echocheck "swab()"
3178 cat > $TMPC << EOF
3179 #include <unistd.h>
3180 int main(void) { swab(0, 0, 0); return 0; }
3182 _swab=no
3183 cc_check && _swab=yes
3184 if test "$_swab" = yes ; then
3185 _def_swab='#define HAVE_SWAB 1'
3186 else
3187 _def_swab='#undef HAVE_SWAB'
3189 echores "$_swab"
3191 echocheck "posix select()"
3192 cat > $TMPC << EOF
3193 #include <stdio.h>
3194 #include <stdlib.h>
3195 #include <sys/types.h>
3196 #include <string.h>
3197 #include <sys/time.h>
3198 #include <unistd.h>
3199 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3201 _posix_select=no
3202 cc_check && _posix_select=yes
3203 if test "$_posix_select" = no ; then
3204 _def_no_posix_select='#define HAVE_NO_POSIX_SELECT 1'
3205 else
3206 _def_no_posix_select='#undef HAVE_NO_POSIX_SELECT'
3208 echores "$_posix_select"
3211 echocheck "gettimeofday()"
3212 cat > $TMPC << EOF
3213 #include <stdio.h>
3214 #include <sys/time.h>
3215 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3217 _gettimeofday=no
3218 cc_check && _gettimeofday=yes
3219 if test "$_gettimeofday" = yes ; then
3220 _def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3221 else
3222 _def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3224 echores "$_gettimeofday"
3227 echocheck "glob()"
3228 cat > $TMPC << EOF
3229 #include <stdio.h>
3230 #include <glob.h>
3231 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3233 _glob=no
3234 cc_check && _glob=yes
3235 if test "$_glob" = yes ; then
3236 _def_glob='#define HAVE_GLOB 1'
3237 else
3238 _def_glob='#undef HAVE_GLOB'
3240 echores "$_glob"
3243 echocheck "sys/sysinfo.h"
3244 cat > $TMPC << EOF
3245 #include <sys/sysinfo.h>
3246 int main(void) {
3247 struct sysinfo s_info;
3248 sysinfo(&s_info);
3249 return 0;
3252 _sys_sysinfo=no
3253 cc_check && _sys_sysinfo=yes
3254 if test "$_sys_sysinfo" = yes ; then
3255 _def_sys_sysinfo='#define HAVE_SYS_SYSINFO_H 1'
3256 _inc_sysinfo='#include <sys/sysinfo.h>'
3257 else
3258 _def_sys_sysinfo='#undef HAVE_SYS_SYSINFO_H'
3260 echores "$_sys_sysinfo"
3263 echocheck "Mac OS X APIs"
3264 if test "$_macosx" = auto ; then
3265 if darwin && ppc; then
3266 _macosx=yes
3267 else
3268 _macosx=no
3269 _def_macosx='#undef MACOSX'
3270 _noaomodules="macosx $_noaomodules"
3271 _novomodules="quartz $_novomodules"
3274 if test "$_macosx" = yes ; then
3275 cat > $TMPC <<EOF
3276 #include <Carbon/Carbon.h>
3277 #include <QuickTime/QuickTime.h>
3278 #include <CoreAudio/CoreAudio.h>
3279 int main(void) {
3280 EnterMovies();
3281 ExitMovies();
3282 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
3285 if cc_check -framework Carbon -framework QuickTime -framework CoreAudio; then
3286 _macosx=yes
3287 _macosx_frameworks="-framework Carbon -framework QuickTime -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
3288 _def_macosx='#define MACOSX 1'
3289 _aosrc="$_aosrc ao_macosx.c"
3290 _aomodules="macosx $_aomodules"
3291 _vosrc="$_vosrc vo_quartz.c"
3292 _vomodules="quartz $_vomodules"
3293 else
3294 _macosx=no
3295 _def_macosx='#undef MACOSX'
3296 _noaomodules="macosx $_noaomodules"
3297 _novomodules="quartz $_novomodules"
3299 cat > $TMPC <<EOF
3300 #include <Carbon/Carbon.h>
3301 #include <QuartzCore/CoreVideo.h>
3302 int main(void) {}
3304 if cc_check -framework Carbon -framework QuartzCore -framework OpenGL; then
3305 _vosrc="$_vosrc vo_macosx.m"
3306 _vomodules="macosx $_vomodules"
3307 _macosx_frameworks="$_macosx_frameworks -framework Cocoa -framework QuartzCore -framework OpenGL"
3308 _def_macosx_corevideo='#define MACOSX_COREVIDEO 1'
3309 _macosx_corevideo=yes
3310 else
3311 _novomodules="macosx $_novomodules"
3312 _def_macosx_corevideo='#undef MACOSX_COREVIDEO'
3313 _macosx_corevideo=no
3316 echores "$_macosx"
3318 echocheck "Mac OS X Finder Support"
3319 if test "$_macosx_finder_support" = auto ; then
3320 _macosx_finder_support=$_macosx
3322 if test "$_macosx_finder_support" = yes; then
3323 _def_macosx_finder_support='#define MACOSX_FINDER_SUPPORT 1'
3324 _macosx_finder_support=yes
3325 else
3326 _def_macosx_finder_support='#undef MACOSX_FINDER_SUPPORT'
3327 _macosx_finder_support=no
3329 echores "$_macosx_finder_support"
3331 echocheck "Mac OS X Bundle file locations"
3332 if test "$_macosx_bundle" = auto ; then
3333 _macosx_bundle=$_macosx_finder_support
3335 if test "$_macosx_bundle" = yes; then
3336 _def_macosx_bundle='#define MACOSX_BUNDLE 1'
3337 else
3338 _def_macosx_bundle='#undef MACOSX_BUNDLE'
3339 _macosx_bundle=no
3341 echores "$_macosx_bundle"
3343 echocheck "Samba support (libsmbclient)"
3344 if test "$_smbsupport" = yes; then
3345 _ld_smb="-lsmbclient"
3347 if test "$_smbsupport" = auto; then
3348 _smbsupport=no
3349 cat > $TMPC << EOF
3350 #include <libsmbclient.h>
3351 int main(void) { smbc_opendir("smb://"); return 0; }
3353 if cc_check -lsmbclient ; then
3354 _smbsupport=yes
3355 _ld_smb="-lsmbclient"
3356 else
3357 if cc_check -lsmbclient $_ld_dl ; then
3358 _smbsupport=yes
3359 _ld_smb="-lsmbclient $_ld_dl"
3360 else
3361 if cc_check -lsmbclient $_ld_dl -lnsl ; then
3362 _smbsupport=yes
3363 _ld_smb="-lsmbclient $_ld_dl -lnsl"
3364 else
3365 if cc_check -lsmbclient $_ld_dl -lssl -lnsl ; then
3366 _smbsupport=yes
3367 _ld_smb="-lsmbclient $_ld_dl -lssl -lnsl"
3374 if test "$_smbsupport" = yes; then
3375 _def_smbsupport="#define LIBSMBCLIENT"
3376 _inputmodules="smb $_inputmodules"
3377 else
3378 _def_smbsupport="#undef LIBSMBCLIENT"
3379 _noinputmodules="smb $_noinputmodules"
3381 echores "$_smbsupport"
3384 #########
3385 # VIDEO #
3386 #########
3389 echocheck "3dfx"
3390 if test "$_3dfx" = yes ; then
3391 _def_3dfx='#define HAVE_3DFX 1'
3392 _vosrc="$_vosrc vo_3dfx.c"
3393 _vomodules="3dfx $_vomodules"
3394 else
3395 _def_3dfx='#undef HAVE_3DFX'
3396 _novomodules="3dfx $_novomodules"
3398 echores "$_3dfx"
3401 echocheck "tdfxfb"
3402 if test "$_tdfxfb" = yes ; then
3403 _def_tdfxfb='#define HAVE_TDFXFB 1'
3404 _vosrc="$_vosrc vo_tdfxfb.c"
3405 _vomodules="tdfxfb $_vomodules"
3406 else
3407 _def_tdfxfb='#undef HAVE_TDFXFB'
3408 _novomodules="tdfxfb $_novomodules"
3410 echores "$_tdfxfb"
3412 echocheck "tdfxvid"
3413 if test "$_tdfxvid" = yes ; then
3414 _def_tdfxvid='#define HAVE_TDFX_VID 1'
3415 _vosrc="$_vosrc vo_tdfx_vid.c"
3416 _vomodules="tdfx_vid $_vomodules"
3417 else
3418 _def_tdfxvid='#undef HAVE_TDFX_VID'
3419 _novomodules="tdfx_vid $_novomodules"
3421 echores "$_tdfxfb"
3423 echocheck "tga"
3424 if test "$_tga" = yes ; then
3425 _def_tga='#define HAVE_TGA 1'
3426 _vosrc="$_vosrc vo_tga.c"
3427 _vomodules="tga $_vomodules"
3428 else
3429 _def_tga='#undef HAVE_TGA'
3430 _novomodules="tga $_novomodules"
3432 echores "$_tga"
3434 echocheck "DirectFB headers presence"
3435 if test -z "$_inc_directfb" ; then
3436 for I in /usr/include /usr/local/include $_inc_extra; do
3437 if test -d "$I/directfb" && test -f "$I/directfb/directfb.h" ; then
3438 _inc_directfb="-I$I/directfb"
3439 echores "yes (using $_inc_directfb)"
3440 break
3442 if test -d "$I" && test -f "$I/directfb.h" ; then
3443 _inc_directfb="-I$I"
3444 echores "yes (using $_inc_directfb)"
3445 break
3447 done
3448 if test -z "$_inc_directfb" ; then
3449 _directfb=no
3450 echores "not found"
3452 else
3453 echores "yes (using $_inc_directfb)"
3455 if test "$_inc_directfb" = "-I/usr/include" ; then
3456 _inc_directfb=""
3459 echocheck "DirectFB"
3460 if test "$_directfb" = auto ; then
3461 _directfb=no
3462 cat > $TMPC <<EOF
3463 #include <directfb.h>
3464 int main(void) { IDirectFB *foo; return 0; }
3466 linux && test -c /dev/fb0 && cc_check $_inc_directfb -ldirectfb && _directfb=yes
3469 if test "$_directfb" = yes; then
3470 cat > $TMPC <<EOF
3471 #include <directfb.h>
3472 int main(void) {
3473 printf ("%i",(directfb_major_version*100+directfb_minor_version)*100+directfb_micro_version);
3474 return 0;
3477 if cc_check $_inc_directfb -ldirectfb && "$TMPO" >> "$TMPLOG" ; then
3478 _directfb_version=`"$TMPO"`
3479 _def_directfb_version="#define DIRECTFBVERSION $_directfb_version"
3480 if test "$_directfb_version" -ge 913; then
3481 echores "yes ($_directfb_version)"
3482 else
3483 _def_directfb_version='#undef DIRECTFBVERSION'
3484 _directfb=no
3485 echores "no (version >=0.9.13 required)"
3487 else
3488 _directfb=no
3489 echores "no (failed to get version)"
3491 else
3492 echores "$_directfb"
3495 if test "$_directfb" = yes ; then
3496 _def_directfb='#define HAVE_DIRECTFB 1'
3497 if test "$_directfb_version" -ge 913; then
3498 _vosrc="$_vosrc vo_directfb2.c"
3499 _vomodules="directfb $_vomodules"
3500 _ld_directfb='-ldirectfb'
3503 if test "$_directfb_version" -ge 915; then
3504 _vosrc="$_vosrc vo_dfbmga.c"
3505 _vomodules="dfbmga $_vomodules"
3507 else
3508 _def_directfb='#undef HAVE_DIRECTFB'
3509 _novomodules="directfb $_novomodules"
3510 _inc_directfb=""
3514 echocheck "X11 headers presence"
3515 if test -z "$_inc_x11" ; then
3516 for I in /usr/X11/include /usr/X11R6/include /usr/include/X11R6 /usr/include /usr/openwin/include ; do
3517 if test -d "$I/X11" && test -f "$I/X11/Xlib.h" ; then
3518 _inc_x11="-I$I"
3519 echores "yes (using $I)"
3520 break
3522 done
3523 if test -z "$_inc_x11" ; then
3524 _x11=no
3525 echores "not found (check if the dev(el) packages are installed)"
3527 else
3528 echores "yes (using $_inc_x11)"
3530 if test "$_inc_x11" = "-I/usr/include" ; then
3531 _inc_x11=""
3535 echocheck "X11"
3536 if test "$_x11" != no ; then
3537 cat > $TMPC <<EOF
3538 #include <X11/Xlib.h>
3539 #include <X11/Xutil.h>
3540 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
3542 if test -z "$_x11_paths" ; then
3543 _x11_paths="/usr/X11R6/lib /usr/lib/X11R6 /usr/X11/lib /usr/lib32 /usr/openwin/lib /usr/X11R6/lib64 /usr/lib"
3545 for I in $_x11_paths ; do
3546 _ld_x11="-L$I -lXext -lX11 $_ld_sock"
3547 if netbsd; then
3548 _ld_x11="$_ld_x11 -Wl,-R$I"
3550 if test -d "$I" && cc_check $_inc_x11 $_ld_x11 ; then
3551 _x11=yes
3552 break
3554 done
3556 if test "$_x11" = yes ; then
3557 _def_x11='#define HAVE_X11 1'
3558 _vosrc="$_vosrc x11_common.c vo_x11.c vo_xover.c"
3559 _vomodules="x11 xover $_vomodules"
3560 echores "yes (using $I)"
3561 else
3562 _x11=no
3563 _def_x11='#undef HAVE_X11'
3564 _inc_x11=''
3565 _ld_x11=''
3566 _novomodules="x11 $_novomodules"
3567 echores "no (check if the dev(el) packages are installed)"
3571 echocheck "DPMS"
3572 _xdpms3=no
3573 if test "$_x11" = yes ; then
3574 cat > $TMPC <<EOF
3575 #include <X11/Xmd.h>
3576 #include <X11/Xlib.h>
3577 #include <X11/Xutil.h>
3578 #include <X11/Xatom.h>
3579 #include <X11/extensions/dpms.h>
3580 int main(void) {
3581 (void) DPMSQueryExtension(0, 0, 0);
3584 cc_check $_inc_x11 -lXdpms $_ld_x11 && _xdpms3=yes
3586 _xdpms4=no
3587 if test "$_x11" = yes ; then
3588 cat > $TMPC <<EOF
3589 #include <X11/Xlib.h>
3590 #include <X11/extensions/dpms.h>
3591 int main(void) {
3592 (void) DPMSQueryExtension(0, 0, 0);
3595 cc_check $_inc_x11 $_ld_x11 && _xdpms4=yes
3597 if test "$_xdpms4" = yes ; then
3598 _def_xdpms='#define HAVE_XDPMS 1'
3599 echores "yes (using Xdpms 4)"
3600 elif test "$_xdpms3" = yes ; then
3601 _def_xdpms='#define HAVE_XDPMS 1'
3602 _ld_x11="-lXdpms $_ld_x11"
3603 echores "yes (using Xdpms 3)"
3604 else
3605 _def_xdpms='#undef HAVE_XDPMS'
3606 echores "no"
3610 echocheck "Xv"
3611 if test "$_x11" = yes && test "$_xv" != no ; then
3612 cat > $TMPC <<EOF
3613 #include <X11/Xlib.h>
3614 #include <X11/extensions/Xvlib.h>
3615 int main(void) {
3616 (void) XvGetPortAttribute(0, 0, 0, 0);
3617 (void) XvQueryPortAttributes(0, 0, 0);
3618 return 0; }
3620 _xv=no
3621 cc_check $_inc_x11 -lXv $_ld_x11 && _xv=yes
3622 else
3623 _xv=no
3625 if test "$_xv" = yes ; then
3626 _def_xv='#define HAVE_XV 1'
3627 _ld_xv='-lXv'
3628 _vosrc="$_vosrc vo_xv.c"
3629 _vomodules="xv $_vomodules"
3630 else
3631 _def_xv='#undef HAVE_XV'
3632 _novomodules="xv $_novomodules"
3634 echores "$_xv"
3637 echocheck "XvMC"
3638 if test "$_x11" = yes && test "$_xv" = yes && test "$_xvmc" != no ; then
3639 _xvmc=no
3640 cat > $TMPC <<EOF
3641 #include <X11/Xlib.h>
3642 #include <X11/extensions/Xvlib.h>
3643 #include <X11/extensions/XvMClib.h>
3644 int main(void) {
3645 (void) XvMCQueryExtension(0,0,0);
3646 (void) XvMCCreateContext(0,0,0,0,0,0,0);
3647 return 0; }
3649 cc_check $_inc_x11 -lXvMC -l$_xvmclib $_ld_xv $_ld_x11 && _xvmc=yes
3651 if test "$_xvmc" = yes ; then
3652 _def_xvmc='#define HAVE_XVMC 1'
3653 _ld_xvmc="-lXvMC -l$_xvmclib"
3654 _vosrc="$_vosrc vo_xvmc.c"
3655 _vomodules="xvmc $_vomodules"
3656 else
3657 _def_xvmc='#undef HAVE_XVMC'
3658 _novomodules="xvmc $_novomodules"
3660 echores "$_xvmc"
3663 echocheck "Xinerama"
3664 if test "$_x11" = yes && test "$_xinerama" != no ; then
3665 cat > $TMPC <<EOF
3666 #include <X11/Xlib.h>
3667 #include <X11/extensions/Xinerama.h>
3668 int main(void) { (void) XineramaIsActive(0); return 0; }
3670 _xinerama=no
3671 cc_check $_inc_x11 -lXinerama $_ld_x11 && _xinerama=yes
3672 else
3673 _xinerama=no
3675 if test "$_xinerama" = yes ; then
3676 _def_xinerama='#define HAVE_XINERAMA 1'
3677 _ld_xinerama='-lXinerama'
3678 else
3679 _def_xinerama='#undef HAVE_XINERAMA'
3681 echores "$_xinerama"
3684 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
3685 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
3686 # named 'X extensions' or something similar.
3687 # This check may be useful for future mplayer versions (to change resolution)
3688 # If you run into problems, remove '-lXxf86vm'.
3689 echocheck "Xxf86vm"
3690 if test "$_x11" = yes && test "$_vm" = auto ; then
3691 cat > $TMPC <<EOF
3692 #include <X11/Xlib.h>
3693 #include <X11/extensions/xf86vmode.h>
3694 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
3696 _vm=no
3697 cc_check $_inc_x11 -lXxf86vm $_ld_x11 && _vm=yes
3699 if test "$_vm" = yes ; then
3700 _def_vm='#define HAVE_XF86VM 1'
3701 _ld_vm='-lXxf86vm'
3702 else
3703 _def_vm='#undef HAVE_XF86VM'
3705 echores "$_vm"
3707 # Check for the presence of special keycodes, like audio control buttons
3708 # that XFree86 might have. Used to be bundled with the xf86vm check, but
3709 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
3710 # have these new keycodes.
3711 echocheck "XF86keysym"
3712 if test "$_xf86keysym" = auto; then
3713 _xf86keysym=no
3714 if test "$_x11" = yes ; then
3715 cat > $TMPC <<EOF
3716 #include <X11/Xlib.h>
3717 #include <X11/XF86keysym.h>
3718 int main(void) { return XF86XK_AudioPause; }
3720 cc_check $_inc_x11 $_ld_x11 && _xf86keysym=yes
3723 if test "$_xf86keysym" = yes ; then
3724 _def_xf86keysym='#define HAVE_XF86XK 1'
3725 else
3726 _def_xf86keysym='#undef HAVE_XF86XK'
3728 echores "$_xf86keysym"
3730 echocheck "DGA"
3731 if test "$_x11" = no ; then
3732 _dga=no
3734 # Version 2 is preferred to version 1 if available
3735 if test "$_dga" = auto ; then
3736 cat > $TMPC << EOF
3737 #include <X11/Xlib.h>
3738 #include <X11/extensions/xf86dga.h>
3739 int main (void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
3741 _dga=no
3742 cc_check $_inc_x11 -lXxf86dga -lXxf86vm $_ld_x11 && _dga=1
3744 cat > $TMPC << EOF
3745 #include <X11/Xlib.h>
3746 #include <X11/extensions/xf86dga.h>
3747 int main (void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
3749 cc_check $_inc_x11 -lXxf86dga $_ld_x11 && _dga=2
3752 _def_dga='#undef HAVE_DGA'
3753 _def_dga2='#undef HAVE_DGA2'
3754 if test "$_dga" = 1 ; then
3755 _def_dga='#define HAVE_DGA 1'
3756 _ld_dga='-lXxf86dga'
3757 _vosrc="$_vosrc vo_dga.c"
3758 _vomodules="dga $_vomodules"
3759 echores "yes (using DGA 1.0)"
3760 elif test "$_dga" = 2 ; then
3761 _def_dga='#define HAVE_DGA 1'
3762 _def_dga2='#define HAVE_DGA2 1'
3763 _ld_dga='-lXxf86dga'
3764 _vosrc="$_vosrc vo_dga.c"
3765 _vomodules="dga $_vomodules"
3766 echores "yes (using DGA 2.0)"
3767 elif test "$_dga" = no ; then
3768 echores "no"
3769 _novomodules="dga $_novomodules"
3770 else
3771 die "DGA version must be 1 or 2"
3775 echocheck "OpenGL"
3776 #Note: this test is run even with --enable-gl since we autodetect $_ld_gl
3777 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
3778 cat > $TMPC << EOF
3779 #include <GL/gl.h>
3780 int main(void) { return 0; }
3782 _gl=no
3783 if cc_check $_inc_x11 $_ld_x11 -lGL $_ld_lm ; then
3784 _gl=yes
3785 _ld_gl="-lGL"
3786 elif cc_check $_inc_x11 $_ld_x11 -lGL $_ld_lm $_ld_pthread ; then
3787 _gl=yes
3788 _ld_gl="-lGL $_ld_pthread"
3789 elif cc_check -lopengl32 ; then
3790 _gl=yes
3791 _gl_win32=yes
3792 _ld_gl="-lopengl32 -lgdi32"
3794 else
3795 _gl=no
3797 if test "$_gl" = yes ; then
3798 _def_gl='#define HAVE_GL 1'
3799 if test "$_gl_win32" = yes ; then
3800 _def_gl_win32='#define GL_WIN32 1'
3801 _vosrc="$_vosrc vo_gl2.c w32_common.c gl_common.c"
3802 else
3803 _vosrc="$_vosrc vo_gl.c vo_gl2.c gl_common.c"
3805 _vomodules="opengl $_vomodules"
3806 else
3807 _def_gl='#undef HAVE_GL'
3808 _def_gl_win32='#undef GL_WIN32'
3809 _novomodules="opengl $_novomodules"
3811 echores "$_gl"
3814 echocheck "/dev/mga_vid"
3815 if test "$_mga" = auto ; then
3816 _mga=no
3817 test -c /dev/mga_vid && _mga=yes
3819 if test "$_mga" = yes ; then
3820 _def_mga='#define HAVE_MGA 1'
3821 _vosrc="$_vosrc vo_mga.c"
3822 _vomodules="mga $_vomodules"
3823 else
3824 _def_mga='#undef HAVE_MGA'
3825 _novomodules="mga $_novomodules"
3827 echores "$_mga"
3830 # echocheck "syncfb"
3831 # _syncfb=no
3832 # test "$_mga" = yes && _syncfb=yes
3833 # if test "$_syncfb" = yes ; then
3834 # _def_syncfb='#define HAVE_SYNCFB 1'
3835 # _vosrc="$_vosrc vo_syncfb.c"
3836 # else
3837 # _def_syncfb='#undef HAVE_SYNCFB'
3838 # fi
3839 # echores "$_syncfb"
3842 echocheck "xmga"
3843 if test "$_xmga" = auto ; then
3844 _xmga=no
3845 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
3847 if test "$_xmga" = yes ; then
3848 _def_xmga='#define HAVE_XMGA 1'
3849 _vosrc="$_vosrc vo_xmga.c"
3850 _vomodules="xmga $_vomodules"
3851 else
3852 _def_xmga='#undef HAVE_XMGA'
3853 _novomodules="xmga $_novomodules"
3855 echores "$_xmga"
3858 echocheck "GGI"
3859 if test "$_ggi" = auto ; then
3860 cat > $TMPC << EOF
3861 #include <ggi/ggi.h>
3862 int main(void) { return 0; }
3864 _ggi=no
3865 cc_check -lggi && _ggi=yes
3867 if test "$_ggi" = yes ; then
3868 _def_ggi='#define HAVE_GGI 1'
3869 _ld_ggi='-lggi'
3870 _vosrc="$_vosrc vo_ggi.c"
3871 _vomodules="ggi $_vomodules"
3872 else
3873 _def_ggi='#undef HAVE_GGI'
3874 _novomodules="ggi $_novomodules"
3876 echores "$_ggi"
3878 echocheck "GGI extension: libggiwmh"
3879 if test "$_ggiwmh" = auto ; then
3880 _ggiwmh=no
3881 cat > $TMPC << EOF
3882 #include <ggi/ggi.h>
3883 #include <ggi/wmh.h>
3884 int main(void) { return 0; }
3886 cc_check -lggi -lggiwmh && _ggiwmh=yes
3888 # needed to get right output on obscure combination
3889 # like --disable-ggi --enable-ggiwmh
3890 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
3891 _def_ggiwmh='#define HAVE_GGIWMH 1'
3892 _ld_ggi="$_ld_ggi -lggiwmh"
3893 else
3894 _ggiwmh=no
3895 _def_ggiwmh='#undef HAVE_GGIWMH'
3897 echores "$_ggiwmh"
3900 echocheck "AA"
3901 if test "$_aa" = auto ; then
3902 cat > $TMPC << EOF
3903 #include <aalib.h>
3904 int main(void) { (void) aa_init(0, 0, 0); return 0; }
3906 _aa=no
3907 if cc_check -laa ; then
3908 _aa=yes
3909 _ld_aa="-laa"
3910 elif cc_check $_ld_x11 -laa ; then
3911 _aa=yes
3912 _ld_aa="$_ld_x11 -laa"
3915 if test "$_aa" = yes ; then
3916 _def_aa='#define HAVE_AA 1'
3917 if cygwin ; then
3918 _ld_aa=`aalib-config --libs | cut -d " " -f 2,5,6`
3920 _vosrc="$_vosrc vo_aa.c"
3921 _vomodules="aa $_vomodules"
3922 else
3923 _def_aa='#undef HAVE_AA'
3924 _novomodules="aa $_novomodules"
3926 echores "$_aa"
3929 echocheck "CACA"
3930 if test "$_caca" = auto ; then
3931 _caca=no
3932 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
3933 cat > $TMPC << EOF
3934 #include <caca.h>
3935 int main(void) { (void) caca_init(); return 0; }
3937 cc_check `caca-config --libs` && _caca=yes
3940 if test "$_caca" = yes ; then
3941 _def_caca='#define HAVE_CACA 1'
3942 _inc_caca=`caca-config --cflags`
3943 _ld_caca=`caca-config --libs`
3944 _vosrc="$_vosrc vo_caca.c"
3945 _vomodules="caca $_vomodules"
3946 else
3947 _def_caca='#undef HAVE_CACA'
3948 _novomodules="caca $_novomodules"
3950 echores "$_caca"
3953 echocheck "SVGAlib"
3954 if test "$_svga" = auto ; then
3955 cat > $TMPC << EOF
3956 #include <vga.h>
3957 #include <vgagl.h>
3958 int main(void) { return 0; }
3960 _svga=no
3961 cc_check -lvgagl -lvga $_ld_lm && _svga=yes
3963 if test "$_svga" = yes ; then
3964 _def_svga='#define HAVE_SVGALIB 1'
3965 _ld_svga="-lvgagl -lvga $_ld_lm"
3966 _vosrc="$_vosrc vo_svga.c"
3967 _vomodules="svga $_vomodules"
3968 else
3969 _def_svga='#undef HAVE_SVGALIB'
3970 _novomodules="svga $_novomodules"
3972 echores "$_svga"
3975 echocheck "FBDev"
3976 if test "$_fbdev" = auto ; then
3977 _fbdev=no
3978 linux && test -c /dev/fb0 && _fbdev=yes
3980 if test "$_fbdev" = yes ; then
3981 _def_fbdev='#define HAVE_FBDEV 1'
3982 _vosrc="$_vosrc vo_fbdev.c vo_fbdev2.c"
3983 _vomodules="fbdev $_vomodules"
3984 else
3985 _def_fbdev='#undef HAVE_FBDEV'
3986 _novomodules="fbdev $_novomodules"
3988 echores "$_fbdev"
3992 echocheck "DVB"
3993 if test "$_dvb" != no ; then
3994 _dvb=no
3995 cat >$TMPC << EOF
3996 #include <sys/poll.h>
3997 #include <sys/ioctl.h>
3998 #include <stdio.h>
3999 #include <time.h>
4000 #include <unistd.h>
4002 #include <ost/dmx.h>
4003 #include <ost/frontend.h>
4004 #include <ost/sec.h>
4005 #include <ost/video.h>
4006 #include <ost/audio.h>
4007 int main(void) {return 0;}
4009 if cc_check ; then
4010 _dvb=yes
4011 echores "yes"
4012 else
4013 for I in "$_inc_dvb" "-I/usr/src/DVB/ost/include" ; do
4014 if cc_check "$I" ; then
4015 _dvb=yes
4016 _inc_dvb="$I"
4017 echores "yes (using $_inc_dvb)"
4018 break
4020 done
4021 test "$_dvb" = no && echores "no (specify path to DVB/ost/include with --with-dvbincdir=DIR)"
4023 else
4024 echores "no"
4026 if test "$_dvb" = yes ; then
4027 _def_dvb='#define HAVE_DVB 1'
4028 _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
4029 _aomodules="mpegpes(dvb) $_aomodules"
4030 _vomodules="mpegpes(dvb) $_vomodules"
4032 if test "$_dvbhead" != no ; then
4033 echocheck "DVB HEAD"
4034 if test "$_dvbhead" != no ; then
4035 _dvbhead=no
4037 cat >$TMPC << EOF
4038 #include <sys/poll.h>
4039 #include <sys/ioctl.h>
4040 #include <stdio.h>
4041 #include <time.h>
4042 #include <unistd.h>
4044 #include <linux/dvb/dmx.h>
4045 #include <linux/dvb/frontend.h>
4046 #include <linux/dvb/video.h>
4047 #include <linux/dvb/audio.h>
4048 int main(void) {return 0;}
4050 if cc_check ; then
4051 _dvbhead=yes
4052 echores "yes"
4053 else
4054 for I in "$_inc_dvb" "-I/usr/src/DVB/include" ; do
4055 if cc_check "$I" ; then
4056 _dvbhead=yes
4057 _inc_dvb="$I"
4058 echores "yes (using $_inc_dvb)"
4059 break
4061 done
4062 test "$_dvbhead" = no && echores "no (specify path to DVB/include (HEAD Version) with --with-dvbincdir=DIR)"
4064 else
4065 echores "no"
4067 if test "$_dvbhead" = yes ; then
4068 _def_dvb='#define HAVE_DVB_HEAD 1'
4069 _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
4070 _aomodules="mpegpes(dvb) $_aomodules"
4071 _vomodules="mpegpes(dvb) $_vomodules"
4074 if test "$_dvbhead" = no && test "$_dvb" = no ; then
4075 _def_dvb='#undef HAVE_DVB'
4076 _def_dvb_in='#undef HAS_DVBIN_SUPPORT '
4077 _aomodules="mpegpes(file) $_aomodules"
4078 _vomodules="mpegpes(file) $_vomodules"
4081 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
4082 _dvbin=yes
4083 _inputmodules="dvb $_inputmodules"
4084 else
4085 _dvbin=no
4086 _noinputmodules="dvb $_noinputmodules"
4089 echocheck "PNG support"
4090 if test "$_png" = auto ; then
4091 _png=no
4092 if irix ; then
4093 # Don't check for -lpng on irix since it has its own libpng
4094 # incompatible with the GNU libpng
4095 echores "disabled on irix (not GNU libpng)"
4096 else
4097 cat > $TMPC << EOF
4098 #include <png.h>
4099 #include <string.h>
4100 int main(void) {
4101 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4102 printf("libpng: %s\n", png_libpng_ver);
4103 return (strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver));
4106 if cc_check -lpng -lz $_ld_lm ; then
4107 if "$TMPO" >> "$TMPLOG" ; then
4108 _png=yes
4109 echores yes
4110 else
4111 echores "no (mismatch of library and header versions)"
4113 else
4114 echores no
4117 else
4118 echores "$_png"
4120 if test "$_png" = yes ; then
4121 _def_png='#define HAVE_PNG 1'
4122 _ld_png='-lpng -lz'
4123 _vosrc="$_vosrc vo_png.c"
4124 _vomodules="png $_vomodules"
4125 _mkf_png="yes"
4126 else
4127 _def_png='#undef HAVE_PNG'
4128 _novomodules="png $_novomodules"
4129 _mkf_png="no"
4132 echocheck "JPEG support"
4133 if test "$_jpg" = auto ; then
4134 _jpg=no
4135 cat > $TMPC << EOF
4136 #include <stdio.h>
4137 #include <stdlib.h>
4138 #include <setjmp.h>
4139 #include <string.h>
4140 #include <jpeglib.h>
4141 int main(void) {
4142 return 0;
4145 if cc_check -ljpeg $_ld_lm ; then
4146 if "$TMPO" >> "$TMPLOG" ; then
4147 _jpg=yes
4151 echores "$_jpg"
4153 if test "$_jpg" = yes ; then
4154 _def_jpg='#define HAVE_JPEG 1'
4155 _vosrc="$_vosrc vo_jpeg.c"
4156 _vomodules="jpeg $_vomodules"
4157 _ld_jpg="-ljpeg"
4158 _mkf_jpg="yes"
4159 else
4160 _def_jpg='#undef HAVE_JPEG'
4161 _novomodules="jpeg $_novomodules"
4162 _mkf_jpg="no"
4167 echocheck "PNM support"
4168 if test "$_pnm" = yes; then
4169 _def_pnm="#define HAVE_PNM"
4170 _vosrc="$_vosrc vo_pnm.c"
4171 _vomodules="pnm $_vomodules"
4172 else
4173 _def_pnm="#undef HAVE_PNM"
4174 _novomodules="pnm $_novomodules"
4176 echores "$_pnm"
4180 echocheck "md5sum support"
4181 if test "$_md5sum" = yes; then
4182 _def_md5sum="#define HAVE_MD5SUM"
4183 _vosrc="$_vosrc vo_md5sum.c md5sum.c"
4184 _vomodules="md5sum $_vomodules"
4185 else
4186 _def_md5sum="#undef HAVE_MD5SUM"
4187 _novomodules="md5sum $_novomodules"
4189 echores "$_md5sum"
4193 echocheck "GIF support"
4194 # This is to appease people who want to force gif support.
4195 # If it is forced to yes, then we still do checks to determine
4196 # which gif library to use.
4197 if test "$_gif" = yes ; then
4198 _force_gif=yes
4199 _gif=auto
4202 if test "$_gif" = auto ; then
4203 _gif=no
4204 cat > $TMPC << EOF
4205 #include <gif_lib.h>
4206 int main(void) {
4207 return 0;
4210 if cc_check -lungif && "$TMPO" >> "$TMPLOG" ; then
4211 _gif=yes
4212 _ld_gif="-lungif"
4213 elif cc_check -lungif $_ld_x11 && "$TMPO" >> "$TMPLOG" ; then
4214 _gif=yes
4215 _ld_gif="-lungif $_ld_x11"
4216 elif cc_check -lgif && "$TMPO" >> "$TMPLOG" ; then
4217 _gif=yes
4218 _ld_gif="-lgif"
4219 elif cc_check -lgif $_ld_x11 && "$TMPO" >> "$TMPLOG" ; then
4220 _gif=yes
4221 _ld_gif="-lgif $_ld_x11"
4225 # If no library was found, and the user wants support forced,
4226 # then we force it on with libgif, as this is the safest
4227 # assumption IMHO. (libungif & libregif both create symbolic
4228 # links to libgif. We also assume that no x11 support is needed,
4229 # because if you are forcing this, then you _should_ know what
4230 # you are doing. [ Besides, package maintainers should never
4231 # have compiled x11 deps into libungif in the first place. ] )
4232 # </rant>
4233 # --Joey
4234 if test "$_force_gif" = yes && test "$_gif" = no ; then
4235 _gif=yes
4236 _ld_gif="-lgif"
4239 if test "$_gif" = yes ; then
4240 _def_gif='#define HAVE_GIF 1'
4241 _vosrc="$_vosrc vo_gif89a.c"
4242 _codecmodules="gif $_codecmodules"
4243 _vomodules="gif89a $_vomodules"
4244 _mkf_gif="yes"
4245 _gif="yes (old version, some encoding functions disabled)"
4246 _def_gif_4='#undef HAVE_GIF_4'
4248 cat > $TMPC << EOF
4249 #include <signal.h>
4250 #include <gif_lib.h>
4251 void catch() { exit(1); }
4252 int main(void) {
4253 signal(SIGSEGV, catch); // catch segfault
4254 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
4255 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
4256 return 0;
4259 if cc_check "$_ld_gif" && ( "$TMPO" ) >>"$TMPLOG" 2>&1 ; then
4260 _def_gif_4='#define HAVE_GIF_4 1'
4261 _gif="yes"
4263 else
4264 _def_gif='#undef HAVE_GIF'
4265 _def_gif_4='#undef HAVE_GIF_4'
4266 _novomodules="gif89a $_novomodules"
4267 _nocodecmodules="gif $_nocodecmodules"
4268 _mkf_gif="no"
4270 echores "$_gif"
4273 case "$_gif" in yes*)
4274 echocheck "broken giflib workaround"
4275 _def_gif_tvt_hack='#define HAVE_GIF_TVT_HACK 1'
4277 cat > $TMPC << EOF
4278 #include <gif_lib.h>
4279 int main(void) {
4280 GifFileType gif;
4281 printf("UserData is at address %p\n", gif.UserData);
4282 return 0;
4285 if cc_check "$_ld_gif" && ( "$TMPO" ) >>"$TMPLOG" 2>&1 ; then
4286 _def_gif_tvt_hack='#undef HAVE_GIF_TVT_HACK'
4287 echores "disabled"
4288 else
4289 echores "enabled"
4292 esac
4295 echocheck "VESA support"
4296 if test "$_vesa" = auto ; then
4297 if x86 && linux ; then
4298 _vesa=no
4299 cat > $TMPC << EOF
4300 #include <sys/io.h>
4301 int main(void) { return 0; }
4303 cc_check && _vesa=yes
4306 if test "$_vesa" = yes ; then
4307 _def_vesa='#define HAVE_VESA 1'
4308 _vosrc="$_vosrc vo_vesa.c vesa_lvo.c"
4309 _vomodules="vesa $_vomodules"
4310 echores "yes"
4311 else
4312 _def_vesa='#undef HAVE_VESA'
4313 echores "no (not supported on this OS/architecture)"
4314 _novomodules="vesa $_novomodules"
4317 #################
4318 # VIDEO + AUDIO #
4319 #################
4322 echocheck "SDL"
4323 if test -z "$_sdlconfig" ; then
4324 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
4325 _sdlconfig="sdl-config"
4326 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
4327 _sdlconfig="sdl11-config"
4328 else
4329 _sdlconfig=false
4332 if test "$_sdl" = auto || test "$_sdl" = yes ; then
4333 cat > $TMPC << EOF
4334 #include <SDL.h>
4335 int main(int argc, char *argv[]) { return 0; }
4337 _sdl=no
4338 if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
4339 if cc_check `$_sdlconfig --cflags` `$_sdlconfig --libs` >>"$TMPLOG" 2>&1 ; then
4340 _sdlversion=`$_sdlconfig --version | sed 's/[^0-9]//g'`
4341 if test "$_sdlversion" -gt 116 ; then
4342 if test "$_sdlversion" -lt 121 ; then
4343 _def_sdlbuggy='#define BUGGY_SDL'
4344 else
4345 _def_sdlbuggy='#undef BUGGY_SDL'
4347 _sdl=yes
4348 else
4349 _sdl=outdated
4354 if test "$_sdl" = yes ; then
4355 _def_sdl='#define HAVE_SDL 1'
4356 if cygwin ; then
4357 _ld_sdl=`$_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/`
4358 _inc_sdl=`$_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/`
4359 elif mingw32 ; then
4360 _ld_sdl=`$_sdlconfig --libs | sed s/-mwindows//`
4361 _inc_sdl=`$_sdlconfig --cflags | sed s/-Dmain=SDL_main//`
4362 else
4363 _ld_sdl=`$_sdlconfig --libs`
4364 _inc_sdl=`$_sdlconfig --cflags`
4366 _vosrc="$_vosrc vo_sdl.c"
4367 _vomodules="sdl $_vomodules"
4368 _aosrc="$_aosrc ao_sdl.c"
4369 _aomodules="sdl $_aomodules"
4370 echores "yes (using $_sdlconfig)"
4371 else
4372 _def_sdl='#undef HAVE_SDL'
4373 _novomodules="sdl $_novomodules"
4374 _noaomodules="sdl $_noaomodules"
4375 echores "no"
4378 echocheck "Windows waveout"
4379 if test "$_win32waveout" = auto ; then
4380 cat > $TMPC << EOF
4381 #include <windows.h>
4382 #include <mmsystem.h>
4383 int main(void) { return 0; }
4385 _win32waveout=no
4386 cc_check -lwinmm && _win32waveout=yes
4388 if test "$_win32waveout" = yes ; then
4389 _def_win32waveout='#define HAVE_WIN32WAVEOUT 1'
4390 _ld_win32libs="-lwinmm $_ld_win32libs"
4391 _aosrc="$_aosrc ao_win32.c"
4392 _aomodules="win32 $_aomodules"
4393 else
4394 _def_win32waveout='#undef HAVE_WIN32WAVEOUT'
4395 _noaomodules="win32 $_noaomodules"
4397 echores "$_win32waveout"
4399 echocheck "Directx"
4400 if test "$_directx" = auto ; then
4401 cat > $TMPC << EOF
4402 #include <windows.h>
4403 #include <ddraw.h>
4404 #include <dsound.h>
4405 int main(void) { return 0; }
4407 _directx=no
4408 cc_check -lgdi32 && _directx=yes
4410 if test "$_directx" = yes ; then
4411 _def_directx='#define HAVE_DIRECTX 1'
4412 _ld_win32libs="-lgdi32 $_ld_win32libs"
4413 _vosrc="$_vosrc vo_directx.c"
4414 _vomodules="directx $_vomodules"
4415 _aosrc="$_aosrc ao_dsound.c"
4416 _aomodules="dsound $_aomodules"
4417 else
4418 _def_directx='#undef HAVE_DIRECTX'
4419 _novomodules="directx $_novomodules"
4420 _noaomodules="dsound $_noaomodules"
4422 echores "$_directx"
4424 echocheck "NAS"
4425 if test "$_nas" = auto || test "$_nas" = yes ; then
4426 cat > $TMPC << EOF
4427 #include <audio/audiolib.h>
4428 int main(void) { return 0; }
4430 _nas=no
4431 cc_check -laudio $_inc_x11 -lXt $_ld_x11 $_ld_lm && _nas=yes
4433 if test "$_nas" = yes ; then
4434 _def_nas='#define HAVE_NAS 1'
4435 _ld_nas="-laudio -lXt $_ld_x11"
4436 _aosrc="$_aosrc ao_nas.c"
4437 _aomodules="nas $_aomodules"
4438 else
4439 _noaomodules="nas $_noaomodules"
4440 _def_nas='#undef HAVE_NAS'
4442 echores "$_nas"
4444 echocheck "DXR2"
4445 if test "$_dxr2" = auto; then
4446 _dxr2=no
4447 for _inc_dxr2 in "$_inc_dxr2" \
4448 "-I/usr/local/include/dxr2" \
4449 "-I/usr/include/dxr2"; do
4450 cat > $TMPC << EOF
4451 #include <dxr2ioctl.h>
4452 int main(void) { return 0; }
4454 cc_check $_inc_dxr2 && _dxr2=yes && break
4455 done
4457 if test "$_dxr2" = yes; then
4458 _def_dxr2='#define HAVE_DXR2 1'
4459 _vosrc="$_vosrc vo_dxr2.c"
4460 _aosrc="$_aosrc ao_dxr2.c"
4461 _aomodules="dxr2 $_aomodules"
4462 _vomodules="dxr2 $_vomodules"
4463 echores "yes (using $_inc_dxr2)"
4464 else
4465 _def_dxr2='#undef HAVE_DXR2'
4466 _noaomodules="dxr2 $_noaomodules"
4467 _novomodules="dxr2 $_novomodules"
4468 _inc_dxr2=""
4469 echores "no"
4472 echocheck "DXR3/H+"
4473 if test "$_dxr3" = auto ; then
4474 cat > $TMPC << EOF
4475 #include <linux/em8300.h>
4476 int main(void) { return 0; }
4478 _dxr3=no
4479 cc_check && _dxr3=yes
4481 if test "$_dxr3" = yes ; then
4482 _def_dxr3='#define HAVE_DXR3 1'
4483 _vosrc="$_vosrc vo_dxr3.c"
4484 _vomodules="dxr3 $_vomodules"
4485 else
4486 _def_dxr3='#undef HAVE_DXR3'
4487 _novomodules="dxr3 $_novomodules"
4488 if test "$_mp1e" = auto ; then
4489 # we don't need mp1e
4490 _mp1e=no
4493 echores "$_dxr3"
4495 echocheck "libmp1e"
4496 if test "$_mmx" = no ; then
4497 # mp1e REQUIRES mmx!
4498 _mp1e=no
4500 if test "$_mp1e" != no ; then
4501 _mp1e=yes
4502 _def_mp1e='#define USE_MP1E'
4503 _ld_mp1e='libmp1e/libmp1e.a'
4504 _dep_mp1e='libmp1e/libmp1e.a'
4505 else
4506 _mp1e=no
4507 _def_mp1e='#undef USE_MP1E'
4508 _ld_mp1e=""
4509 _dep_mp1e=''
4511 echores "$_mp1e"
4514 echocheck "libfame"
4515 if test "$_fame" = auto ; then
4516 _fame=no
4517 test "$_dxr2" = yes && _fame=auto
4518 test "$_dxr3" = yes && _fame=auto
4519 test "$_dvb" = yes && _fame=auto
4521 if test "$_fame" = auto ; then
4522 _fame=no
4523 if test -d libfame && test -f libfame/fame.h ; then
4524 # disable fame on cygwin as no sense to port - atmos
4525 cygwin || _fame=yes
4526 echores $_fame
4527 else
4528 echores "no (no fame dir)"
4530 else
4531 echores "$_fame"
4534 _def_fame='#undef USE_LIBFAME'
4535 if test "$_fame" = yes ; then
4536 _def_fame='#define USE_LIBFAME 1'
4537 _ld_fame='libfame/libfame.a'
4541 #########
4542 # AUDIO #
4543 #########
4546 echocheck "OSS Audio"
4547 if test "$_ossaudio" = auto ; then
4548 cat > $TMPC << EOF
4549 #include <sys/ioctl.h>
4550 $_inc_soundcard
4551 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
4553 _ossaudio=no
4554 cc_check && _ossaudio=yes
4556 if test "$_ossaudio" = yes ; then
4557 _def_ossaudio='#define USE_OSS_AUDIO 1'
4558 _aosrc="$_aosrc ao_oss.c"
4559 _aomodules="oss $_aomodules"
4560 if test "$_linux_devfs" = yes; then
4561 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
4562 _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
4563 else
4564 cat > $TMPC << EOF
4565 #include <sys/ioctl.h>
4566 $_inc_soundcard
4567 #ifdef OPEN_SOUND_SYSTEM
4568 int main(void) { return 0; }
4569 #else
4570 #error Not the real thing
4571 #endif
4573 _real_ossaudio=no
4574 cc_check && _real_ossaudio=yes
4575 if test "$_real_ossaudio" = yes; then
4576 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4577 elif netbsd || openbsd ; then
4578 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
4579 _ld_arch="$_ld_arch -lossaudio"
4580 else
4581 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4583 _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
4585 else
4586 _def_ossaudio='#undef USE_OSS_AUDIO'
4587 _def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
4588 _def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
4589 _noaomodules="oss $_noaomodules"
4591 echores "$_ossaudio"
4594 echocheck "aRts"
4595 if test "$_arts" = auto ; then
4596 _arts=no
4597 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
4599 cat > $TMPC << EOF
4600 #include <artsc.h>
4601 int main(void) { return 0; }
4603 cc_check `artsc-config --libs` `artsc-config --cflags` && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _arts=yes
4608 if test "$_arts" = yes ; then
4609 _def_arts='#define USE_ARTS 1'
4610 _aosrc="$_aosrc ao_arts.c"
4611 _aomodules="arts $_aomodules"
4612 _ld_arts=`artsc-config --libs`
4613 _inc_arts=`artsc-config --cflags`
4614 else
4615 _noaomodules="arts $_noaomodules"
4617 echores "$_arts"
4620 echocheck "EsounD"
4621 if test "$_esd" = auto ; then
4622 _esd=no
4623 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
4625 cat > $TMPC << EOF
4626 #include <esd.h>
4627 int main(void) { return 0; }
4629 cc_check `esd-config --libs` `esd-config --cflags` && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _esd=yes
4633 echores "$_esd"
4635 if test "$_esd" = yes ; then
4636 _def_esd='#define USE_ESD 1'
4637 _aosrc="$_aosrc ao_esd.c"
4638 _aomodules="esd $_aomodules"
4639 _ld_esd=`esd-config --libs`
4640 _inc_esd=`esd-config --cflags`
4642 echocheck "esd_get_latency()"
4643 cat > $TMPC << EOF
4644 #include <esd.h>
4645 int main(void) { return esd_get_latency(0); }
4647 cc_check `esd-config --libs` `esd-config --cflags` && _esd_latency=yes && _def_esd_latency='#define HAVE_ESD_LATENCY'
4648 echores "$_esd_latency"
4649 else
4650 _def_esd='#undef USE_ESD'
4651 _def_esd_latency='#undef HAVE_ESD_LATENCY'
4652 _noaomodules="esd $_noaomodules"
4655 echocheck "Polyp"
4656 if test "$_polyp" = auto ; then
4657 _polyp=no
4658 if ( pkg-config --exists 'polyplib >= 0.6 polyplib-error >= 0.6 polyplib-mainloop >= 0.6' ) >> "$TMPLOG" 2>&1 ; then
4660 cat > $TMPC << EOF
4661 #include <polyp/polyplib.h>
4662 #include <polyp/mainloop.h>
4663 #include <polyp/polyplib-error.h>
4664 int main(void) { return 0; }
4666 cc_check `pkg-config --libs --cflags polyplib polyplib-error polyplib-mainloop` && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _polyp=yes
4670 echores "$_polyp"
4672 if test "$_polyp" = yes ; then
4673 _def_polyp='#define USE_POLYP 1'
4674 _aosrc="$_aosrc ao_polyp.c"
4675 _aomodules="polyp $_aomodules"
4676 _ld_polyp=`pkg-config --libs polyplib polyplib-error polyplib-mainloop`
4677 _inc_polyp=`pkg-config --cflags polyplib polyplib-error polyplib-mainloop`
4678 else
4679 _def_polyp='#undef USE_POLYP'
4680 _noaomodules="polyp $_noaomodules"
4684 echocheck "JACK"
4685 if test "$_jack" = auto ; then
4686 _jack=no
4687 if ( ( pkg-config --modversion jack ) > /dev/null 2>&1 ) &&
4688 ( jackd --version | grep version | awk '{ print $3 }' ) >> "$TMPLOG" 2>&1 ; then
4690 cat > $TMPC << EOF
4691 #include <jack/jack.h>
4692 int main(void) { jack_client_new("test"); return 0; }
4694 cc_check `pkg-config --libs --cflags jack` && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _jack=yes
4698 if test "$_jack" = yes ; then
4699 _def_jack='#define USE_JACK 1'
4700 _aosrc="$_aosrc ao_jack.c"
4701 _aomodules="jack $_aomodules"
4702 _ld_jack="`pkg-config --libs jack`"
4703 _inc_jack=`pkg-config --cflags jack`
4704 else
4705 _noaomodules="jack $_noaomodules"
4707 echores "$_jack"
4710 echocheck "ALSA audio"
4711 if test "$_alsa" != no ; then
4712 _alsa=no
4713 cat > $TMPC << EOF
4714 #include <sys/asoundlib.h>
4715 int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==5)); }
4717 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.5.x'
4719 cat > $TMPC << EOF
4720 #include <sys/asoundlib.h>
4721 int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==9)); }
4723 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.9.x-sys'
4724 cat > $TMPC << EOF
4725 #include <alsa/asoundlib.h>
4726 int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==9)); }
4728 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.9.x-alsa'
4730 cat > $TMPC << EOF
4731 #include <sys/asoundlib.h>
4732 int main(void) { return (!(SND_LIB_MAJOR==1 && SND_LIB_MINOR==0)); }
4734 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='1.0.x-sys'
4735 cat > $TMPC << EOF
4736 #include <alsa/asoundlib.h>
4737 int main(void) { return (!(SND_LIB_MAJOR==1 && SND_LIB_MINOR==0)); }
4739 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='1.0.x-alsa'
4741 _def_alsa5='#undef HAVE_ALSA5'
4742 _def_alsa9='#undef HAVE_ALSA9'
4743 _def_alsa1x='#undef HAVE_ALSA1X'
4744 _def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
4745 _def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
4746 if test "$_alsaver" ; then
4747 if test "$_alsaver" = '0.5.x' ; then
4748 _aosrc="$_aosrc ao_alsa5.c"
4749 _aomodules="alsa5 $_aomodules"
4750 _def_alsa5='#define HAVE_ALSA5 1'
4751 _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
4752 echores "yes (using alsa 0.5.x and sys/asoundlib.h)"
4753 elif test "$_alsaver" = '0.9.x-sys' ; then
4754 _aosrc="$_aosrc ao_alsa.c"
4755 _aomodules="alsa $_aomodules"
4756 _def_alsa9='#define HAVE_ALSA9 1'
4757 _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
4758 echores "yes (using alsa 0.9.x and sys/asoundlib.h)"
4759 elif test "$_alsaver" = '0.9.x-alsa' ; then
4760 _aosrc="$_aosrc ao_alsa.c"
4761 _aomodules="alsa $_aomodules"
4762 _def_alsa9='#define HAVE_ALSA9 1'
4763 _def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
4764 echores "yes (using alsa 0.9.x and alsa/asoundlib.h)"
4765 elif test "$_alsaver" = '1.0.x-sys' ; then
4766 _aosrc="$_aosrc ao_alsa.c"
4767 _aomodules="alsa $_aomodules"
4768 _def_alsa1x="#define HAVE_ALSA1X 1"
4769 _def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
4770 echores "yes (using alsa 1.0.x and sys/asoundlib.h)"
4771 elif test "$_alsaver" = '1.0.x-alsa' ; then
4772 _aosrc="$_aosrc ao_alsa.c"
4773 _aomodules="alsa $_aomodules"
4774 _def_alsa1x="#define HAVE_ALSA1X 1"
4775 _def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
4776 echores "yes (using alsa 1.0.x and alsa/asoundlib.h)"
4778 _ld_alsa="-lasound $_ld_dl $_ld_pthread"
4779 else
4780 _noaomodules="alsa $_noaomodules"
4781 echores "no"
4785 echocheck "Sun audio"
4786 if test "$_sunaudio" = auto ; then
4787 cat > $TMPC << EOF
4788 #include <sys/types.h>
4789 #include <sys/audioio.h>
4790 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
4792 _sunaudio=no
4793 cc_check && _sunaudio=yes
4795 if test "$_sunaudio" = yes ; then
4796 _def_sunaudio='#define USE_SUN_AUDIO 1'
4797 _aosrc="$_aosrc ao_sun.c"
4798 _aomodules="sun $_aomodules"
4799 else
4800 _def_sunaudio='#undef USE_SUN_AUDIO'
4801 _noaomodules="sun $_noaomodules"
4803 echores "$_sunaudio"
4806 echocheck "Sun mediaLib"
4807 if test "$_mlib" = auto ; then
4808 _mlib=no
4809 test -z "$_mlibdir" && _mlibdir=/opt/SUNWmlib
4810 cat > $TMPC << EOF
4811 #include <mlib.h>
4812 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
4814 cc_check -I${_mlibdir}/include -L${_mlibdir}/lib -lmlib && _mlib=yes
4816 if test "$_mlib" = yes ; then
4817 _def_mlib='#define HAVE_MLIB 1'
4818 _inc_mlib=" -I${_mlibdir}/include "
4819 _ld_mlib=" -L${_mlibdir}/lib -R${_mlibdir}/lib -lmlib "
4820 else
4821 _def_mlib='#undef HAVE_MLIB'
4823 echores "$_mlib"
4826 echocheck "SGI audio"
4827 if test "$_sgiaudio" = auto ; then
4828 # check for SGI audio
4829 cat > $TMPC << EOF
4830 #include <dmedia/audio.h>
4831 int main(void) { return 0; }
4833 _sgiaudio=no
4834 cc_check && _sgiaudio=yes
4836 if test "$_sgiaudio" = "yes" ; then
4837 _def_sgiaudio='#define USE_SGI_AUDIO 1'
4838 _ld_sgiaudio='-laudio'
4839 _aosrc="$_aosrc ao_sgi.c"
4840 _aomodules="sgi $_aomodules"
4841 else
4842 _def_sgiaudio='#undef USE_SGI_AUDIO'
4843 _noaomodules="sgi $_noaomodules"
4845 echores "$_sgiaudio"
4848 echocheck "VCD support"
4849 if linux || bsdos || freebsd || netbsd || sunos || darwin ; then
4850 _inputmodules="vcd $_inputmodules"
4851 _def_vcd='#define HAVE_VCD 1'
4852 echores "ok"
4853 else
4854 _def_vcd='#undef HAVE_VCD'
4855 _noinputmodules="vcd $_noinputmodules"
4856 echores "not supported on this OS"
4859 echocheck "DVD support (libmpdvdkit)"
4860 if test "$_dvdkit" = auto ; then
4861 _dvdkit=no
4862 if linux || freebsd || netbsd || darwin || openbsd || win32 || sunos || hpux; then
4863 test -f "./libmpdvdkit2/Makefile" && _dvdkit=yes
4864 test -f "./libmpdvdkit/Makefile" && _dvdkit=yes
4867 if test "$_dvdkit" = yes ; then
4868 if test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || test "$_dvdio" = yes || test "$_bsdi_dvd" = yes || test "$_hpux_scsi_h" = yes || darwin || win32 ; then
4869 if test -f "./libmpdvdkit2/Makefile" ; then
4870 _inputmodules="mpdvdkit2 $_inputmodules"
4871 _dvdread=libmpdvdkit2
4872 _dvdkit2=yes
4873 _dvdkit=no
4874 else
4875 _inputmodules="mpdvdkit $_inputmodules"
4876 _dvdread=libmpdvdkit
4878 else
4879 _noinputmodules="mpdvdkit $_noinputmodules"
4881 _def_dvd_linux='#undef HAVE_LINUX_DVD_STRUCT'
4882 _def_dvd_bsd='#undef HAVE_BSD_DVD_STRUCT'
4883 _dev_dvd_openbsd='#undef HAVE_OPENBSD_DVD_STRUCT'
4884 _def_dvd_darwin='#undef DARWIN_DVD_IOCTL'
4885 if linux || netbsd || openbsd || bsdos ; then
4886 _def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
4887 if openbsd ; then
4888 _dev_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
4890 else
4891 if freebsd ; then
4892 _def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
4893 else
4894 if darwin ; then
4895 _def_dvd_darwin='#define DARWIN_DVD_IOCTL'
4899 else
4900 _noinputmodules="mpdvdkit $_noinputmodules"
4902 if test "$_dvdkit" = yes || test "$_dvdkit2" = yes; then
4903 echores "yes"
4904 else
4905 echores "no"
4908 echocheck "DVD support (libdvdread)"
4909 if test "$_dvdread" = auto ; then
4910 cat > $TMPC << EOF
4911 #include <inttypes.h>
4912 #include <dvdread/dvd_reader.h>
4913 #include <dvdread/ifo_types.h>
4914 #include <dvdread/ifo_read.h>
4915 #include <dvdread/nav_read.h>
4916 int main(void) { return 0; }
4918 _dvdread=no
4919 if test "$_dl" = yes; then
4920 cc_check \
4921 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -ldvdread $_ld_dl && \
4922 _dvdread=yes
4925 _def_mpdvdkit="#undef USE_MPDVDKIT"
4926 case "$_dvdread" in
4927 yes)
4928 _largefiles=yes
4929 _def_dvdread='#define USE_DVDREAD 1'
4930 _ld_dvdread='-ldvdread'
4931 _inputmodules="dvdread $_inputmodules"
4932 echores "yes"
4935 _def_dvdread='#undef USE_DVDREAD'
4936 _noinputmodules="dvdread $_noinputmodules"
4937 echores "no"
4939 libmpdvdkit)
4940 _largefiles=yes
4941 _def_dvdread='#define USE_DVDREAD 1'
4942 _ld_dvdread='-Llibmpdvdkit -lmpdvdkit'
4943 _noinputmodules="dvdread $_noinputmodules"
4944 _def_mpdvdkit="#define USE_MPDVDKIT 1"
4945 echores "disabled by libmpdvdkit"
4947 libmpdvdkit2)
4948 _largefiles=yes
4949 _def_dvdread='#define USE_DVDREAD 1'
4950 _ld_dvdread='-Llibmpdvdkit2 -lmpdvdkit'
4951 _noinputmodules="dvdread $_noinputmodules"
4952 _def_mpdvdkit="#define USE_MPDVDKIT 2"
4953 echores "disabled by libmpdvdkit2"
4955 esac
4957 # dvdnav disabled, it does not work
4958 # echocheck "DVD support (libdvdnav)"
4959 # if test "$_dvdnav" = yes ; then
4960 # cat > $TMPC <<EOF
4961 # #include <dvdnav.h>
4962 # int main(void) { dvdnav_t *dvd=0; return 0; }
4963 # EOF
4964 # _dvdnav=no
4965 # test -n "$_dvdnavdir" && _legal_dvdnavdir=-L$_dvdnavdir/.libs
4966 # if test -z "$_dvdnavconfig" ; then
4967 # if ( dvdnav-config --version ) >/dev/null 2>&1 ; then
4968 # _dvdnavconfig="dvdnav-config"
4969 # fi
4970 # fi
4971 # test -z "$_dvdnavdir" && test -n "$_dvdnavconfig" && _dvdnavdir=`$_dvdnavconfig --cflags`
4972 # _used_css=
4973 # test "$_dvdkit" = no && test "$_dvdkit2" = no && _used_css=$_ld_css
4974 # cc_check $_inc_extra -I$_dvdnavdir $_legal_dvdnavdir -ldvdnav $_used_css $_ld_dl $_ld_pthread && _dvdnav=yes
4975 # fi
4976 # if test "$_dvdnav" = yes ; then
4977 # _largefiles=yes
4978 # _def_dvdnav='#define USE_DVDNAV 1'
4979 # if test -n "$_legal_dvdnavdir" ; then
4980 # _ld_css="$_ld_css $_legal_dvdnavdir -ldvdnav"
4981 # elif test -n "$_dvdnavconfig" ; then
4982 # _ld_css="$_ld_css `$_dvdnavconfig --libs`"
4983 # else
4984 # _ld_css="$_ld_css -ldvdnav"
4985 # fi
4986 # if test -n "$_dvdnavconfig" ; then
4987 # _dvdnav_version=`$_dvdnavconfig --version | sed "s/\.//g"`
4988 # _def_dvdnav_version="#define DVDNAVVERSION $_dvdnav_version"
4989 # fi
4990 # if test -n "$_dvdnavdir" ; then
4991 # _inc_extra="$_inc_extra -I$_dvdnavdir"
4992 # fi
4993 # _inputmodules="dvdnav $_inputmodules"
4994 # echores "yes"
4995 # else
4996 # _def_dvdnav='#undef USE_DVDNAV'
4997 # _noinputmodules="dvdnav $_noinputmodules"
4998 # echores "no"
4999 # fi
5001 echocheck "cdparanoia"
5002 if test "$_cdparanoia" = auto ; then
5003 cat > $TMPC <<EOF
5004 #include <cdda_interface.h>
5005 #include <cdda_paranoia.h>
5006 // This need a better test. How ?
5007 int main(void) { return 1; }
5009 _cdparanoia=no
5010 if cc_check $_inc_cdparanoia $_ld_cdparanoia -lcdda_interface -lcdda_paranoia $_ld_lm ; then
5011 _cdparanoia=yes
5012 else
5013 for I in /usr/include/cdda /usr/local/include/cdda ; do
5014 if cc_check -I$I $_ld_cdparanoia -lcdda_interface -lcdda_paranoia $_ld_lm ; then
5015 _cdparanoia=yes; _inc_cdparanoia="-I$I"; break
5017 done
5020 if test "$_cdparanoia" = yes ; then
5021 _def_cdparanoia='#define HAVE_CDDA'
5022 _inputmodules="cdda $_inputmodules"
5023 _ld_cdparanoia="$_ld_cdparanoia -lcdda_interface -lcdda_paranoia"
5024 openbsd && _ld_cdparanoia="$_ld_cdparanoia -lutil"
5025 else
5026 _def_cdparanoia='#undef HAVE_CDDA'
5027 _noinputmodules="cdda $_noinputmodules"
5029 echores "$_cdparanoia"
5032 echocheck "freetype >= 2.0.9"
5034 # freetype depends on iconv
5035 if test "$_iconv" = no ; then
5036 _freetype="no (iconv support needed)"
5039 if test "$_freetype" = auto ; then
5040 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
5041 cat > $TMPC << EOF
5042 #include <stdio.h>
5043 #include <ft2build.h>
5044 #include FT_FREETYPE_H
5045 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
5046 #error "Need FreeType 2.0.9 or newer"
5047 #endif
5048 int main()
5050 FT_Library library;
5051 FT_Int major=-1,minor=-1,patch=-1;
5052 int err=FT_Init_FreeType(&library);
5053 if(err){
5054 printf("Couldn't initialize freetype2 lib, err code: %d\n",err);
5055 exit(err);
5057 FT_Library_Version(library,&major,&minor,&patch); // in v2.1.0+ only :(((
5058 printf("freetype2 header version: %d.%d.%d library version: %d.%d.%d\n",
5059 FREETYPE_MAJOR,FREETYPE_MINOR,FREETYPE_PATCH,
5060 (int)major,(int)minor,(int)patch );
5061 if(major!=FREETYPE_MAJOR || minor!=FREETYPE_MINOR){
5062 printf("Library and header version mismatch! Fix it in your distribution!\n");
5063 exit(1);
5065 return 0;
5068 _freetype=no
5069 cc_check `$_freetypeconfig --cflags` `$_freetypeconfig --libs` && ( $TMPO >> "$TMPLOG" ) && _freetype=yes
5070 else
5071 _freetype=no
5074 if test "$_freetype" = yes ; then
5075 _def_freetype='#define HAVE_FREETYPE'
5076 _inc_freetype=`$_freetypeconfig --cflags`
5077 _ld_freetype=`$_freetypeconfig --libs`
5078 else
5079 _def_freetype='#undef HAVE_FREETYPE'
5081 echores "$_freetype"
5083 if test "$_freetype" = no ; then
5084 _fontconfig=no
5086 echocheck "fontconfig"
5087 if test "$_fontconfig" = auto ; then
5088 if ( pkg-config --modversion fontconfig) > /dev/null 2>&1 ; then
5089 cat > $TMPC << EOF
5090 #include <stdio.h>
5091 #include <fontconfig/fontconfig.h>
5092 int main()
5094 int err = FcInit();
5095 if(err == FcFalse){
5096 printf("Couldn't initialize fontconfig lib\n");
5097 exit(err);
5099 return 0;
5103 _fontconfig=no
5104 cc_check `pkg-config --cflags --libs fontconfig` && ( $TMPO >> "$TMPLOG" ) && _fontconfig=yes
5105 else
5106 _fontconfig=no
5109 if test "$_fontconfig" = yes ; then
5110 _def_fontconfig='#define HAVE_FONTCONFIG'
5111 _inc_fontconfig=`pkg-config --cflags fontconfig`
5112 _ld_fontconfig=`pkg-config --libs fontconfig`
5113 else
5114 _def_fontconfig='#undef HAVE_FONTCONFIG'
5116 echores "$_fontconfig"
5118 echocheck "fribidi with charsets"
5119 if test "$_fribidi" = yes ; then
5120 if ( $_fribidiconfig --version ) >/dev/null 2>&1 ; then
5121 cat > $TMPC << EOF
5122 #include <stdio.h>
5123 #include <fribidi/fribidi.h>
5124 int main()
5126 if(fribidi_parse_charset("UTF-8") != FRIBIDI_CHARSET_UTF8) {
5127 printf("Fribidi headers are not consistents with the library!\n");
5128 exit(1);
5130 return 0;
5133 _fribidi=no
5134 cc_check `$_fribidiconfig --cflags` `$_fribidiconfig --libs` && ( $TMPO >> "$TMPLOG" ) && _fribidi=yes
5135 else
5136 _fribidi=no
5139 if test "$_fribidi" = yes ; then
5140 _def_fribidi='#define USE_FRIBIDI'
5141 _inc_fribidi=`$_fribidiconfig --cflags`
5142 _ld_fribidi=`$_fribidiconfig --libs`
5143 else
5144 _def_fribidi='#undef USE_FRIBIDI'
5146 echores "$_fribidi"
5149 echocheck "ENCA"
5150 if test "$_enca" = auto ; then
5151 cat > $TMPC << EOF
5152 #include <enca.h>
5153 int main()
5155 const char **langs;
5156 size_t langcnt;
5157 langs = enca_get_languages(&langcnt);
5158 return 0;
5161 _enca=no
5162 cc_check -lenca && _enca=yes
5164 if test "$_enca" = yes ; then
5165 _def_enca='#define HAVE_ENCA 1'
5166 _ld_enca='-lenca'
5167 else
5168 _def_enca='#undef HAVE_ENCA'
5170 echores "$_enca"
5173 echocheck "zlib"
5174 cat > $TMPC << EOF
5175 #include <zlib.h>
5176 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
5178 _zlib=no
5179 cc_check -lz && _zlib=yes
5180 if test "$_zlib" = yes ; then
5181 _def_zlib='#define HAVE_ZLIB 1'
5182 _ld_zlib='-lz'
5183 else
5184 _def_zlib='#undef HAVE_ZLIB'
5186 echores "$_zlib"
5189 echocheck "RTC"
5190 if test "$_rtc" = auto ; then
5191 cat > $TMPC << EOF
5192 #include <sys/ioctl.h>
5193 #ifdef __linux__
5194 #include <linux/rtc.h>
5195 #else
5196 #include <rtc.h>
5197 #define RTC_PIE_ON RTCIO_PIE_ON
5198 #endif
5199 int main(void) { return RTC_PIE_ON; }
5201 _rtc=no
5202 cc_check && _rtc=yes
5204 if test "$_rtc" = yes ; then
5205 _def_rtc='#define HAVE_RTC 1'
5206 else
5207 _def_rtc='#undef HAVE_RTC'
5209 echores "$_rtc"
5212 echocheck "external liblzo support"
5213 if test "$_liblzo" = auto ; then
5214 _liblzo=no
5215 cat > $TMPC << EOF
5216 #include <lzo1x.h>
5217 int main(void) { lzo_init();return 0; }
5219 cc_check -llzo && _liblzo=yes
5221 if test "$_liblzo" = yes ; then
5222 _def_liblzo='#define USE_LIBLZO 1'
5223 _ld_liblzo='-llzo'
5224 _codecmodules="liblzo $_codecmodules"
5225 else
5226 _def_liblzo='#undef USE_LIBLZO'
5227 _nocodecmodules="liblzo $_nocodecmodules"
5229 echores "$_liblzo"
5232 echocheck "mad support"
5233 if test "$_mad" = auto ; then
5234 _mad=no
5235 cat > $TMPC << EOF
5236 #include <mad.h>
5237 int main(void) { return 0; }
5239 cc_check $_madlibdir -lmad && _mad=yes
5241 if test "$_mad" = yes ; then
5242 _def_mad='#define USE_LIBMAD 1'
5243 _ld_mad='-lmad'
5244 _codecmodules="libmad $_codecmodules"
5245 else
5246 _def_mad='#undef USE_LIBMAD'
5247 _nocodecmodules="libmad $_nocodecmodules"
5249 echores "$_mad"
5251 echocheck "Toolame"
5252 if test "$_toolame" = auto ; then
5253 cat > $TMPC <<EOF
5254 #include <toolame.h>
5255 int main(void) { toolame_init(); return 0; }
5257 _toolame=no
5258 _toolame_extraflags=""
5259 _toolame_lib="-ltoolame"
5260 if test -n "$_toolamedir"; then
5261 _toolame_extraflags="-I$_toolamedir -L$_toolamedir"
5263 cc_check $_toolame_extraflags $_toolame_lib $_ld_lm && _toolame=yes
5265 if test "$_toolame" = yes ; then
5266 _def_toolame='#define HAVE_TOOLAME 1'
5267 _codecmodules="$_codecmodules toolame"
5268 else
5269 _def_toolame='#undef HAVE_TOOLAME'
5270 _toolame_lib=""
5271 _nocodecmodules="toolame $_nocodecmodules"
5273 if test -z "$_toolamedir" ; then
5274 echores "$_toolame"
5275 else
5276 echores "$_toolame (using $_toolamedir)"
5279 echocheck "Twolame"
5280 if test "$_twolame" = auto ; then
5281 cat > $TMPC <<EOF
5282 #include <twolame.h>
5283 int main(void) { twolame_init(); return 0; }
5285 _twolame=no
5286 _twolame_lib="-ltwolame"
5287 cc_check $_twolame_lib $_ld_lm && _twolame=yes
5289 if test "$_twolame" = yes ; then
5290 _def_twolame='#define HAVE_TWOLAME 1'
5291 _codecmodules="$_codecmodules twolame"
5292 else
5293 _def_twolame='#undef HAVE_TWOLAME'
5294 _twolame_lib=""
5295 _nocodecmodules="twolame $_nocodecmodules"
5297 echores "$_twolame"
5299 echocheck "OggVorbis support"
5300 if test "$_tremor_internal" = yes; then
5301 _vorbis=yes
5302 elif test "$_vorbis" = auto; then
5303 _vorbis=no
5304 cat > $TMPC << EOF
5305 #include <vorbis/codec.h>
5306 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
5308 cc_check -lvorbis -logg $_ld_lm && _vorbis=yes
5310 if test "$_vorbis" = yes ; then
5311 _def_vorbis='#define HAVE_OGGVORBIS 1'
5312 if test "$_tremor_internal" = yes ; then
5313 # do not set _ld_vorbis as it is resolved separately
5314 # mp3lame support for vorbis is deprecated so don't care
5315 _def_tremor='#define TREMOR 1'
5316 if test "$_tremor_low" = yes ; then
5317 _tremor_flags='-D_LOW_ACCURACY_'
5318 else
5319 _tremor_flags=''
5321 _codecmodules="tremor(internal) $_codecmodules"
5322 elif test "$_tremor" = yes ; then
5323 _def_tremor='#define TREMOR 1'
5324 _ld_vorbis='-lvorbisidec'
5325 _codecmodules="tremor $_codecmodules"
5326 else
5327 _def_tremor='#undef TREMOR'
5328 _ld_vorbis='-lvorbis -logg'
5329 _codecmodules="libvorbis $_codecmodules"
5331 else
5332 _def_vorbis='#undef HAVE_OGGVORBIS'
5333 _def_tremor='#undef TREMOR'
5334 _nocodecmodules="libvorbis $_nocodecmodules"
5336 if test "$_vorbis" = yes -a "$_tremor_internal" = yes -a "$_tremor_low" = yes ; then
5337 echores "$_vorbis (internal low accuracy Tremor)"
5338 elif test "$_vorbis" = yes -a "$_tremor_internal" = yes ; then
5339 echores "$_vorbis (internal Tremor)"
5340 elif test "$_vorbis" = yes -a "$_tremor" = yes ; then
5341 echores "$_vorbis (Tremor)"
5342 else
5343 echores "$_vorbis"
5346 echocheck "OggTheora support (only the CVS version!)"
5347 if test "$_theora" = auto ; then
5348 _theora=no
5349 cat > $TMPC << EOF
5350 #include <theora/theora.h>
5351 #include <string.h>
5352 int main(void)
5354 /* theora is in flux, make sure that all interface routines and
5355 * datatypes exist and work the way we expect it, so we don't break
5356 * mplayer */
5357 ogg_packet op;
5358 theora_comment tc;
5359 theora_info inf;
5360 theora_state st;
5361 yuv_buffer yuv;
5362 int r;
5363 double t;
5365 theora_info_init (&inf);
5366 theora_comment_init (&tc);
5368 return 0;
5370 /* we don't want to execute this kind of nonsense; just for making sure
5371 * that compilation works... */
5372 memset(&op, 0, sizeof(op));
5373 r = theora_decode_header (&inf, &tc, &op);
5374 r = theora_decode_init (&st, &inf);
5375 t = theora_granule_time (&st, op.granulepos);
5376 r = theora_decode_packetin (&st, &op);
5377 r = theora_decode_YUVout (&st, &yuv);
5378 theora_clear (&st);
5380 return 0;
5383 cc_check -ltheora -logg $_ld_lm && _theora=yes
5385 if test "$_theora" = yes ; then
5386 _def_theora='#define HAVE_OGGTHEORA 1'
5387 _codecmodules="libtheora $_codecmodules"
5388 _ld_theora="-ltheora -logg"
5389 else
5390 _def_theora='#undef HAVE_OGGTHEORA'
5391 _nocodecmodules="libtheora $_nocodecmodules"
5393 echores "$_theora"
5395 echocheck "mp3lib support"
5396 if test "$_mp3lib" = yes ; then
5397 _def_mp3lib='#define USE_MP3LIB 1'
5398 _codecmodules="mp3lib $_codecmodules"
5399 else
5400 _def_mp3lib='#undef USE_MP3LIB'
5401 _nocodecmodules="mp3lib $_nocodecmodules"
5403 echores "$_mp3lib"
5405 echocheck "liba52 support"
5406 if test "$_liba52" = yes ; then
5407 _def_liba52='#define USE_LIBA52 1'
5408 _codecmodules="liba52 $_codecmodules"
5409 else
5410 _def_liba52='#undef USE_LIBA52'
5411 _nocodecmodules="liba52 $_nocodecmodules"
5413 echores "$_liba52"
5415 echocheck "libdts support"
5416 if test "$_libdts" = auto ; then
5417 _libdts=no
5418 cat > $TMPC << EOF
5419 #include <inttypes.h>
5420 #include <dts.h>
5421 int main(void) { dts_init (0); return 0; }
5423 cc_check $_inc_libdts $_ld_libdts -ldts $_ld_lm && _libdts=yes
5425 if test "$_libdts" = yes ; then
5426 _def_libdts='#define CONFIG_DTS 1'
5427 _ld_libdts="$_ld_libdts -ldts $_ld_lm"
5428 _codecmodules="libdts $_codecmodules"
5429 else
5430 _def_libdts='#undef CONFIG_DTS'
5431 _nocodecmodules="libdts $_nocodecmodules"
5433 echores "$_libdts"
5435 echocheck "libmpeg2 support"
5436 if test "$_libmpeg2" = yes ; then
5437 _def_libmpeg2='#define USE_LIBMPEG2 1'
5438 _codecmodules="libmpeg2 $_codecmodules"
5439 else
5440 _def_libmpeg2='#undef USE_LIBMPEG2'
5441 _nocodecmodules="libmpeg2 $_nocodecmodules"
5443 echores "$_libmpeg2"
5446 echocheck "Matroska support"
5447 if test "$_matroska_internal" = yes ; then
5448 _inputmodules="matroska $_inputmodules"
5449 _def_matroska='#define HAVE_MATROSKA 1'
5450 else
5451 _noinputmodules="matroska $_noinputmodules"
5452 _def_matroska='#undef HAVE_MATROSKA'
5454 echores "$_matroska_internal"
5456 echocheck "FAAC (AAC encoder) support"
5457 if test "$_faac" = auto ; then
5458 cat > $TMPC <<EOF
5459 #include <inttypes.h>
5460 #include <faac.h>
5461 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
5463 if ( cc_check -c -O4 -lfaac $_ld_lm ); then
5464 _faac=yes
5465 elif ( cc_check -c -O4 -lfaac -lmp4v2 -lstdc++ $_ld_lm ); then
5466 _faac=yes
5467 _ld_faac="-lmp4v2 -lstdc++"
5468 else
5469 _faac=no
5472 if test "$_faac" = yes ; then
5473 _def_faac="#define HAVE_FAAC 1"
5474 _codecmodules="$_codecmodules faac"
5475 _ld_faac="-lfaac $_ld_faac"
5476 else
5477 _def_faac="#undef HAVE_FAAC"
5478 _nocodecmodules="$_nocodecmodules faac"
5480 echores "$_faac"
5482 echocheck "internal FAAD2 (AAC) support"
5483 _inc_faad="-I`pwd`/libfaad2"
5484 if test "$_faad_internal" = auto ; then
5485 # the faad check needs a config.h file
5486 if not test -f "config.h" ; then
5487 > config.h
5489 # internal faad: check if our dear gcc is able to compile it...
5490 cp "`pwd`/libfaad2/cfft.c" $TMPC
5491 if ( cc_check -c -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer $_inc_faad ); then
5492 _faad_internal=yes
5493 else
5494 _faad_internal="no (broken gcc)"
5497 if test "$_faad_internal" = yes ; then
5498 _def_faad_internal="#define USE_INTERNAL_FAAD 1"
5499 _faad_external=no
5500 else
5501 _def_faad_internal="#undef USE_INTERNAL_FAAD"
5502 _inc_faad=
5504 echores "$_faad_internal"
5507 echocheck "external FAAD2 (AAC) support"
5508 if test "$_faad_external" != no ; then
5509 _ld_faad='-lfaad'
5510 _inc_faad="$_inc_extra"
5511 # external faad: check if it's really faad2 :)
5512 if test "$_faad_external" = auto ; then
5513 _faad_external=no
5514 cat > $TMPC << EOF
5515 #include <faad.h>
5516 #ifndef FAAD_MIN_STREAMSIZE
5517 #error Too old version
5518 #endif
5519 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo; testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
5521 cc_check $_inc_faad $_ld_faad $_ld_lm && _faad_external=yes
5523 echores "$_faad_external"
5524 else
5525 echores "no"
5528 if test "$_faad_external" = yes; then
5529 _def_faad='#define HAVE_FAAD 1'
5530 _codecmodules="faad2(external) $_codecmodules"
5531 elif test "$_faad_internal" = yes; then
5532 _def_faad='#define HAVE_FAAD 1'
5533 _codecmodules="faad2(internal) $_codecmodules"
5534 else
5535 _def_faad='#undef HAVE_FAAD'
5536 _nocodecmodules="faad2 $_nocodecmodules"
5537 _ld_faad=
5541 echocheck "LADSPA plugin support"
5542 if test "$_ladspa" = auto ; then
5543 cat > $TMPC <<EOF
5544 #include <stdio.h>
5545 #include <ladspa.h>
5546 int main(void) {
5547 const LADSPA_Descriptor *ld = NULL;
5548 return 0;
5551 _ladspa=no
5552 cc_check && _ladspa=yes
5554 if test "$_ladspa" = yes; then
5555 _def_ladspa="#define HAVE_LADSPA"
5556 _afsrc="$_afsrc af_ladspa.c"
5557 _afmodules="ladspa $_afmodules"
5558 else
5559 _def_ladspa="#undef HAVE_LADSPA"
5560 _noafmodules="ladspa $_noafmodules"
5562 echores "$_ladspa"
5565 if test "$_win32" = auto ; then
5566 if x86 ; then
5567 qnx && _win32=no
5568 else
5569 _win32=no # x86 arch only
5573 if test "$_win32" != no ; then
5574 if test -z "$_win32libdir" ; then
5575 for I in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
5576 if test -d "$I" ; then
5577 _win32libdir="$I"
5578 break;
5580 done
5584 echocheck "Win32 codec DLL support"
5585 if test "$_win32" = auto ; then
5586 _win32=no
5587 test -n "$_win32libdir" && _win32=yes
5589 if test "$_win32" = yes ; then
5590 _def_win32='#define USE_WIN32DLL 1'
5591 echores "yes (using $_win32libdir)"
5592 else
5593 _def_win32='#undef USE_WIN32DLL'
5594 _nocodecmodules="win32 $_nocodecmodules"
5595 _dshow=no
5596 echores "no"
5599 if test "$_win32" != no ; then
5600 _def_win32_loader='#undef WIN32_LOADER'
5601 echocheck "Win32 loader support"
5602 _ld_win32='loader/libloader.a'
5603 _dep_win32='loader/libloader.a'
5604 _codecmodules="win32 $_codecmodules"
5605 if openbsd ; then
5606 x86 && _ld_win32="$_ld_win32 -li386"
5608 if not win32 ; then
5609 _def_win32_loader='#define WIN32_LOADER 1'
5610 echores "yes"
5611 else
5612 _ld_win32libs="$_ld_win32libs -ladvapi32 -lole32"
5613 echores "no (using native windows)"
5617 echocheck "DirectShow"
5618 if false ; then
5620 if test "$_dshow" != no ; then
5621 _dshow=no
5622 # check if compiler supports C++ and C++-libs are installed correctly
5623 cat > "$TMPCPP" << EOF
5624 #include <string>
5625 class myclass {
5626 private: int ret;
5627 public: int myreturn(void);
5629 int myclass::myreturn(void) { ret = 0; return ret ; }
5630 int main(void) { myclass myobject; return myobject.myreturn(); }
5632 echo "------------------------------------------------" >> "$TMPLOG"
5633 cat "$TMPCPP" >> "$TMPLOG"
5634 if ( $_cc "$TMPCPP" -o "$TMPO" && "$TMPO" ) >> "$TMPLOG" 2>&1 ; then
5635 _dshow=yes
5636 echores "yes (C++ is ok)"
5637 else
5638 echores "no"
5639 cat << EOF
5641 Your C++ runtime environment is broken.
5643 Hints: Does $_cc support C++? Do you have you a C++ compiler installed?
5644 Are the C++ libraries correctly installed?
5645 Check for libstdc++ and in (/etc/)ld.so.conf.
5647 If you do not need DirectShow support, you can also use:
5648 ./configure --disable-dshow <your-normal-configure-options>
5649 to disable building the C++ based DirectShow code.
5652 die "$_cc's C++ is broken"
5658 echores "$_dshow"
5660 if test "$_dshow" = yes ; then
5661 _def_dshow='#define USE_DIRECTSHOW 1'
5662 _ld_dshow='loader/dshow/libDS_Filter.a loader/dmo/libDMO_Filter.a'
5663 _dep_dshow='loader/dshow/libDS_Filter.a loader/dmo/libDMO_Filter.a'
5664 _codecmodules="dshow/dmo $_codecmodules"
5665 else
5666 _def_dshow='#undef USE_DIRECTSHOW'
5667 _nocodecmodules="dshow/dmo $_nocodecmodules"
5671 echocheck "XAnim DLL"
5672 if test "$_xanim" = auto ; then
5673 _xanim=no
5674 if test "$_dl" = yes ; then
5675 if test -z "$_xanimlibdir" ; then
5676 for I in "$_libdir/codecs" /usr/local/lib/xanim/mods /usr/lib/xanim/mods /usr/lib/xanim $XANIM_MOD_DIR ; do
5677 if test -d "$I" ; then
5678 _xanimlibdir="$I"
5679 break;
5681 done
5683 test "$_xanimlibdir" && _xanim=yes
5684 if test "$_xanim" = yes ; then
5685 echores "yes (using $_xanimlibdir)"
5686 else
5687 echores "no (no suitable directory found - see DOCS/HTML/$_doc_lang/codecs.html)"
5689 else
5690 echores "no (dynamic loader support needed)"
5692 else
5693 echores "$_xanim (using $_xanimlibdir)"
5695 if test "$_xanim" = yes ; then
5696 _def_xanim='#define USE_XANIM 1'
5697 _def_xanim_path="#define XACODEC_PATH \"$_xanimlibdir\""
5698 _codecmodules="xanim $_codecmodules"
5699 else
5700 _def_xanim='#undef USE_XANIM'
5701 _def_xanim_path='#undef XACODEC_PATH'
5702 _nocodecmodules="xanim $_nocodecmodules"
5705 echocheck "RealPlayer DLL"
5706 if test "$_real" = auto ; then
5707 _real=no
5708 if test "$_dl" = yes || test "$_win32" = yes ; then
5709 # if test "$_dl" = yes ; then
5710 if linux || freebsd || netbsd || win32 || darwin ; then
5711 _real=yes
5712 else
5713 echores "no (tested only on Linux/FreeBSD/NetBSD/Cygwin/MinGW/Darwin)"
5715 if test "$_real" = yes ; then
5716 if test -z "$_reallibdir" ; then
5717 for I in "$_libdir/codecs" "$_libdir/real" /usr/lib/real \
5718 /usr/lib/RealPlayer{9,8,}/Codecs /usr/local/RealPlayer{9,8,}/Codecs \
5719 /usr/local/lib/RealPlayer{9,8,}/Codecs /opt/RealPlayer{9,8,}/{Real/,}Codecs \
5720 {~,}/Applications/RealOne\ Player.app/Contents/MacOS/Library/Codecs \
5721 "$_win32libdir"; do
5722 if test -d "$I" ; then
5723 _reallibdir="$I"
5724 break
5726 done
5728 test "$_reallibdir" || _real=no
5729 if test "$_real" = yes ; then
5730 echores "yes (using $_reallibdir)"
5731 else
5732 echores "no (no suitable directory found - see DOCS/HTML/$_doc_lang/codecs.html)"
5735 else
5736 echores "no (dynamic loader support needed)"
5738 else
5739 echores "$_real (using $_reallibdir)"
5741 if test "$_real" = yes ; then
5742 _def_real='#define USE_REALCODECS 1'
5743 _def_real_path="#define REALCODEC_PATH \"$_reallibdir\""
5744 _codecmodules="real $_codecmodules"
5745 else
5746 _def_real='#undef USE_REALCODECS'
5747 _def_real_path="#undef REALCODEC_PATH"
5748 _nocodecmodules="real $_nocodecmodules"
5752 echocheck "LIVE.COM Streaming Media libraries"
5753 if test "$_live" = auto && test "$_network" = yes ; then
5754 _TMPC=$TMPC
5755 TMPC=$TMPCPP
5756 cat >$TMPC <<EOF
5757 #include <liveMedia.hh>
5758 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1090195200)
5759 #error Please upgrade to version 2004.07.19 or later of the "LIVE.COM Streaming Media" libraries - available from <www.live.com/liveMedia/>
5760 #endif
5761 int main(void) {}
5764 _live_dist=no
5765 if test -z "$_livelibdir" ; then
5766 if cc_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock; then
5767 _live_dist=yes
5768 else
5769 for I in $_libdir/live /usr/lib/live /usr/local/live /usr/local/lib/live; do
5770 if test -d "$I" ; then
5771 _livelibdir="$I"
5772 break;
5774 done
5778 if test "$_live_dist" = no && test "$_livelibdir" && cc_check -I$_livelibdir/liveMedia/include \
5779 -I$_livelibdir/UsageEnvironment/include -I$_livelibdir/groupsock/include; then
5780 _live=yes
5781 else
5782 _live=no
5784 TMPC=$_TMPC
5786 if test "$_live" = yes && test "$_network" = yes ; then
5787 echores "yes (using $_livelibdir)"
5788 _def_live='#define STREAMING_LIVE_DOT_COM 1'
5789 _live_libs_def="# LIVE.COM Streaming Media libraries:
5790 LIVE_LIB_DIR = $_livelibdir
5791 LIVE_LIBS = \$(LIVE_LIB_DIR)/liveMedia/libliveMedia.a
5792 LIVE_LIBS += \$(LIVE_LIB_DIR)/groupsock/libgroupsock.a
5793 LIVE_LIBS += \$(LIVE_LIB_DIR)/UsageEnvironment/libUsageEnvironment.a
5794 LIVE_LIBS += \$(LIVE_LIB_DIR)/BasicUsageEnvironment/libBasicUsageEnvironment.a
5795 LIVE_LIBS += -lstdc++
5796 LIVE_INCLUDES = -I\$(LIVE_LIB_DIR)/liveMedia/include
5797 LIVE_INCLUDES += -I\$(LIVE_LIB_DIR)/UsageEnvironment/include
5798 LIVE_INCLUDES += -I\$(LIVE_LIB_DIR)/BasicUsageEnvironment/include
5799 LIVE_INCLUDES += -I\$(LIVE_LIB_DIR)/groupsock/include"
5800 _ld_live='$(LIVE_LIBS)'
5801 _inputmodules="live.com $_inputmodules"
5802 elif test "$_live_dist" = yes && test "$_network" = yes ; then
5803 echores "yes (using distribution version)"
5804 _live="yes"
5805 _def_live='#define STREAMING_LIVE_DOT_COM 1'
5806 _live_libs_def="# LIVE.COM Streaming Media libraries:
5807 LIVE_LIB_DIR = $_livelibdir
5808 LIVE_LIBS = -lliveMedia
5809 LIVE_LIBS += -lgroupsock
5810 LIVE_LIBS += -lUsageEnvironment
5811 LIVE_LIBS += -lBasicUsageEnvironment
5812 LIVE_LIBS += -lstdc++
5813 LIVE_INCLUDES = -I/usr/include/liveMedia
5814 LIVE_INCLUDES += -I/usr/include/UsageEnvironment
5815 LIVE_INCLUDES += -I/usr/include/BasicUsageEnvironment
5816 LIVE_INCLUDES += -I/usr/include/groupsock"
5817 _ld_live='$(LIVE_LIBS)'
5818 _inputmodules="live.com $_inputmodules"
5819 else
5820 echores "no"
5821 _def_live='#undef STREAMING_LIVE_DOT_COM'
5822 _noinputmodules="live.com $_noinputmodules"
5826 echocheck "FFmpeg libavcodec (static)"
5827 if test "$_libavcodec" = auto ; then
5828 # Note: static linking is preferred to dynamic linking
5829 _libavcodec=no
5830 if test -d libavcodec && test -f libavcodec/utils.c ; then
5831 if grep avcodec_find_encoder_by_name libavcodec/utils.c > /dev/null 2>&1 ; then
5832 _libavcodec=yes
5833 echores "yes"
5834 else
5835 echores "no (old ffmpeg version, use CVS !)"
5837 else
5838 echores "no (see DOCS/HTML/$_doc_lang/codecs.html)"
5840 else
5841 echores "$_libavcodec"
5844 echocheck "FFmpeg libavformat (static)"
5845 if test "$_libavformat" = auto ; then
5846 # Note: static linking is preferred to dynamic linking
5847 _libavformat=no
5848 if test -d libavformat && test -f libavformat/utils.c ; then
5849 _libavformat=yes
5850 echores "yes"
5851 else
5852 echores "no"
5854 else
5855 echores "$_libavformat"
5858 _def_haveffpostprocess='no'
5859 if test -d libavcodec && test -f libavcodec/libpostproc/postprocess.h ; then
5860 _def_haveffpostprocess='yes'
5863 if test "$_libavcodec" != yes ; then
5864 echocheck "FFmpeg libavcodec (dynamic)"
5865 if test "$_libavcodecso" = auto ; then
5866 _libavcodecso=no
5867 # FIXME : check for avcodec_find_encoder_by_name() for mencoder
5868 cat > $TMPC << EOF
5869 #define FF_POSTPROCESS 1
5870 #include <ffmpeg/avcodec.h>
5871 int main(void) {
5872 avcodec_find_encoder_by_name("");
5873 return 0;
5876 if cc_check -lavcodec $_ld_lm ; then
5877 _libavcodecso=yes
5878 echores "yes (using libavcodec.so)"
5879 else
5880 echores "no (libavcodec.so is broken/obsolete)"
5882 else
5883 echores "$_libavcodecso"
5887 _def_libavcodec='#undef USE_LIBAVCODEC'
5888 _def_libavcodecso='#undef USE_LIBAVCODEC_SO'
5889 _def_ffpostprocess='#undef FF_POSTPROCESS'
5890 if test "$_libavcodec" = yes ; then
5891 _def_libavcodec='#define USE_LIBAVCODEC 1'
5892 _ld_libavcodec='libavcodec/libavcodec.a'
5893 _dep_libavcodec='libavcodec/libavcodec.a'
5894 _def_ffpostprocess='#define FF_POSTPROCESS 1'
5895 _codecmodules="libavcodec $_codecmodules"
5896 elif test "$_libavcodecso" = yes ; then
5897 _def_libavcodec='#define USE_LIBAVCODEC 1'
5898 _def_libavcodecso='#define USE_LIBAVCODEC_SO 1'
5899 _ld_libavcodec='-lavcodec'
5900 _codecmodules="libavcodec.so $_codecmodules"
5901 else
5902 _nocodecmodules="libavcodec $_nocodecmodules"
5905 _def_libavformat='#undef USE_LIBAVFORMAT'
5906 _def_libavformat_win32='#undef CONFIG_WIN32'
5907 if test "$_libavformat" = yes ; then
5908 _def_libavformat='#define USE_LIBAVFORMAT 1'
5909 _ld_libavformat='libavformat/libavformat.a'
5910 _dep_libavformat='libavformat/libavformat.a'
5911 if win32 ; then
5912 _def_libavformat_win32='#define CONFIG_WIN32 1'
5916 echocheck "amr narrowband"
5917 _echomsg=""
5918 if test "$_amr_nb" = auto ; then
5919 if test -f libavcodec/amr_float/sp_dec.c ; then
5920 if test "$_libavcodec" = yes ; then
5921 _amr_nb=yes
5922 else
5923 _amr_nb=no
5924 _echomsg "libavcodec (static) is required by amr_nb, sorry"
5926 else
5927 _amr_nb=no
5930 if test "$_amr_nb" = yes ; then
5931 _def_amr_nb='#define AMR_NB 1'
5932 else
5933 _def_amr_nb='#undef AMR_NB'
5935 echores "$_amr_nb $_echomsg"
5937 echocheck "amr narrowband, fixed point"
5938 _echomsg=""
5939 if test "$_amr_nb_fixed" = auto ; then
5940 if test -f libavcodec/amr/dtx_dec.c ; then
5941 if test "$_libavcodec" = yes ; then
5942 if test "$_amr_nb" = no ; then
5943 _amr_nb_fixed=yes
5944 else
5945 _amr_nb_fixed=no
5946 _echomsg="(disabled by amr_nb)"
5948 else
5949 _amr_nb_fixed=no
5950 _echomsg "libavcodec (static) is required by amr_nb-fixed, sorry"
5952 else
5953 _amr_nb_fixed=no
5956 if test "$_amr_nb_fixed" = yes ; then
5957 _def_amr_nb='#define AMR_NB 1'
5958 _def_amr_nb_fixed='#define AMR_NB_FIXED 1'
5959 _amr_nb=yes;
5960 else
5961 _def_amr_nb_fixed='#undef AMR_NB_FIXED'
5963 echores "$_amr_nb_fixed $_echomsg"
5965 if test "$_amr_nb" = yes ; then
5966 _codecmodules="amr_nb $_codecmodules"
5967 else
5968 _nocodecmodules="amr_nb $_nocodecmodules"
5971 echocheck "amr wideband"
5972 _echomsg=""
5973 if test "$_amr_wb" = auto ; then
5974 if test -f libavcodec/amrwb_float/dec_dtx.c ; then
5975 if test "$_libavcodec" = yes ; then
5976 _amr_wb=yes
5977 else
5978 _amr_wb=no
5979 _echomsg="libavcodec (static) is required by amr_wb, sorry"
5981 else
5982 _amr_wb=no
5985 if test "$_amr_wb" = yes ; then
5986 _def_amr_wb='#define AMR_WB 1'
5987 _codecmodules="amr_wb $_codecmodules"
5988 else
5989 _def_amr_wb='#undef AMR_WB'
5990 _nocodecmodules="amr_wb $_nocodecmodules"
5992 echores "$_amr_wb $_echomsg"
5994 echocheck "libdv-0.9.5+"
5995 if test "$_libdv" = auto ; then
5996 _libdv=no
5997 cat > $TMPC <<EOF
5998 #include <libdv/dv.h>
5999 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
6001 cc_check -ldv $_ld_lm && _libdv=yes
6003 if test "$_libdv" = yes ; then
6004 _def_libdv='#define HAVE_LIBDV095 1'
6005 _ld_libdv="-ldv"
6006 _codecmodules="libdv $_codecmodules"
6007 else
6008 _def_libdv='#undef HAVE_LIBDV095'
6009 _nocodecmodules="libdv $_nocodecmodules"
6011 echores "$_libdv"
6013 echocheck "zr"
6014 if test "$_zr" = auto ; then
6015 #36067's seem to identify themselves as 36057PQC's, so the line
6016 #below should work for 36067's and 36057's.
6017 if grep -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci > /dev/null 2>&1; then
6018 _zr=yes
6019 else
6020 _zr=no
6023 if test "$_zr" = yes ; then
6024 if test "$_libavcodec" = yes ; then
6025 _def_zr='#define HAVE_ZR 1'
6026 _vosrc="$_vosrc vo_zr2.c vo_zr.c jpeg_enc.c"
6027 _vomodules="zr zr2 $_vomodules"
6028 echores "$_zr"
6029 else
6030 echores "libavcodec (static) is required by zr, sorry"
6031 _novomodules="zr $_novomodules"
6032 _def_zr='#undef HAVE_ZR'
6034 else
6035 _def_zr='#undef HAVE_ZR'
6036 _novomodules="zr zr2 $_novomodules"
6037 echores "$_zr"
6040 echocheck "bl"
6041 if test "$_bl" = yes ; then
6042 _def_bl='#define HAVE_BL 1'
6043 _vosrc="$_vosrc vo_bl.c"
6044 _vomodules="bl $_vomodules"
6045 else
6046 _def_bl='#undef HAVE_BL'
6047 _novomodules="bl $_novomodules"
6049 echores "$_bl"
6051 echocheck "XviD"
6052 cat > $TMPC << EOF
6053 #include <xvid.h>
6054 int main(void) { xvid_init(0, 0, 0, 0); return 0; }
6056 _ld_xvid="$_ld_xvid -lxvidcore $_ld_lm"
6057 if test "$_xvid" != no && cc_check $_inc_xvid $_ld_xvid ; then
6058 _xvid=yes
6059 _def_xvid3='#define HAVE_XVID3 1'
6060 _def_xvid4='#undef HAVE_XVID4'
6061 _codecmodules="xvid $_codecmodules"
6062 else
6063 cat > $TMPC << EOF
6064 #include <xvid.h>
6065 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
6067 if test "$_xvid" != no && cc_check $_inc_xvid $_ld_xvid ; then
6068 _xvid=yes
6069 _def_xvid3='#undef HAVE_XVID3'
6070 _def_xvid4='#define HAVE_XVID4 1'
6071 _codecmodules="xvid $_codecmodules"
6072 else
6073 _xvid=no
6074 _ld_xvid=''
6075 _def_xvid3='#undef HAVE_XVID3'
6076 _def_xvid4='#undef HAVE_XVID4'
6077 _nocodecmodules="xvid $_nocodecmodules"
6080 echores "$_xvid"
6082 _xvidcompat=no
6083 _def_decore_xvid='#undef DECORE_XVID'
6084 _def_encore_xvid='#undef ENCORE_XVID'
6085 if test "$_xvid" = yes ; then
6086 echocheck "DivX4 compatibility in XviD"
6087 cat > $TMPC << EOF
6088 #include <divx4.h>
6089 int main(void) { (void) decore(0, 0, 0, 0); return 0; }
6091 cc_check $_ld_lm "$_ld_xvid" && _xvidcompat=yes
6092 echores "$_xvidcompat"
6095 echocheck "x264"
6096 cat > $TMPC << EOF
6097 #include <inttypes.h>
6098 #include <x264.h>
6099 #if X264_BUILD < 29
6100 #error We do not support old versions of x264. Get the latest from SVN.
6101 #endif
6102 int main(void) { x264_encoder_open((void*)0); return 0; }
6104 _ld_x264="$_ld_x264 -lx264 $_ld_lm $_ld_pthread"
6105 if test "$_x264" != no && cc_check $_inc_x264 $_ld_x264 ; then
6106 _x264=yes
6107 _def_x264='#define HAVE_X264 1'
6108 _codecmodules="x264 $_codecmodules"
6109 else
6110 _x264=no
6111 _ld_x264=''
6112 _def_x264='#undef HAVE_X264'
6113 _nocodecmodules="x264 $_nocodecmodules"
6115 echores "$_x264"
6117 echocheck "DivX4linux/DivX5linux/OpenDivX decore"
6118 # DivX5: DEC_OPT_MEMORY_REQS - DivX4: DEC_OPT_FRAME_311
6119 cat > $TMPC << EOF
6120 #include <decore.h>
6121 int main(void) { (void) decore(0, 0, 0, 0); return DEC_OPT_FRAME_311; }
6123 if test "$_divx4linux" != no && cc_check $_ld_lm -ldivxdecore ; then
6124 _opendivx=no
6125 _ld_decore='-ldivxdecore'
6126 _def_decore='#define NEW_DECORE 1'
6127 _def_divx='#define USE_DIVX'
6128 _def_divx5='#undef DECORE_DIVX5'
6129 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
6130 _codecmodules="divx4linux $_codecmodules"
6131 echores "DivX4linux (with libdivxdecore.so)"
6132 else
6133 # if test "$_divx4linux" != no ; then
6134 # DivX5 check
6135 # OdivxPP disabled because of:
6136 # ld: Warning: type of symbol `dering' changed from 1 to 2 in opendivx/postprocess.o
6137 cat > $TMPC << EOF
6138 #include <decore.h>
6139 int main(void) { (void) decore(0, 0, 0, 0); return DEC_OPT_INIT; }
6141 if test "$_divx4linux" != no && cc_check $_ld_lm -ldivxdecore ; then
6142 _opendivx=no
6143 # _ld_decore='-ldivxdecore opendivx/postprocess.o'
6144 _ld_decore='-ldivxdecore'
6145 _def_decore='#define NEW_DECORE 1'
6146 _def_divx='#define USE_DIVX'
6147 _def_divx5='#define DECORE_DIVX5 1'
6148 # _def_odivx_postprocess='#define HAVE_ODIVX_POSTPROCESS 1'
6149 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
6150 _codecmodules="divx5linux $_codecmodules"
6151 _nocodecmodules="divx4linux $_nocodecmodules"
6152 echores "DivX5linux (with libdivxdecore.so)"
6153 elif test "$_opendivx" != no ; then
6154 _opendivx=yes
6155 _ld_decore='opendivx/libdecore.a'
6156 _def_decore='#undef NEW_DECORE'
6157 _def_divx='#define USE_DIVX'
6158 _def_divx5='#undef DECORE_DIVX5'
6159 _def_odivx_postprocess='#define HAVE_ODIVX_POSTPROCESS 1'
6160 _codecmodules="opendivx $_codecmodules"
6161 _nocodecmodules="divx5linux $_nocodecmodules"
6162 echores "OpenDivX"
6163 elif test "$_xvidcompat" = yes ; then
6164 _opendivx=no
6165 _ld_decore=''
6166 _def_decore='#define NEW_DECORE 1'
6167 _def_divx='#define USE_DIVX 1'
6168 _def_divx5='#undef DECORE_DIVX5'
6169 _def_decore_xvid='#define DECORE_XVID 1'
6170 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
6171 _nocodecmodules="opendivx divx5linux divx4linux $_nocodecmodules"
6172 echores "XviD compat."
6173 else
6174 _opendivx=no
6175 _ld_decore=''
6176 _def_decore='#undef NEW_DECORE'
6177 _def_divx='#undef USE_DIVX'
6178 _def_divx5='#undef DECORE_DIVX5'
6179 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
6180 _nocodecmodules="opendivx $_nocodecmodules"
6181 echores "no"
6182 fi # DivX5 check
6186 # mencoder requires (optional) those libs: libmp3lame and divx4linux encore
6187 if test "$_mencoder" != no ; then
6189 echocheck "libmp3lame (for mencoder)"
6190 _mp3lame=no
6191 cat > $TMPC <<EOF
6192 #include <lame/lame.h>
6193 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; }
6195 # Note: libmp3lame usually depends on vorbis
6196 cc_check -lmp3lame $_ld_vorbis $_ld_lm && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _mp3lame=yes
6197 if test "$_mp3lame" = yes ; then
6198 _def_mp3lame="#define HAVE_MP3LAME `$TMPO`"
6199 _def_cfg_mp3lame="#define CONFIG_MP3LAME `$TMPO`"
6200 _ld_mp3lame="-lmp3lame $_ld_vorbis"
6201 else
6202 _def_mp3lame='#undef HAVE_MP3LAME'
6203 _def_cfg_mp3lame='#undef CONFIG_MP3LAME'
6205 echores "$_mp3lame"
6208 echocheck "DivX4linux encore (for mencoder)"
6209 cat > $TMPC << EOF
6210 #include <encore2.h>
6211 int main(void) { (void) encore(0, 0, 0, 0); return 0; }
6213 if test "$_divx4linux" != no && cc_check -ldivxencore $_ld_lm ; then
6214 _def_encore='#define HAVE_DIVX4ENCORE 1'
6215 _ld_encore='-ldivxencore'
6216 echores "DivX4linux (with libdivxencore.so)"
6217 elif test "$_xvidcompat" = yes ; then
6218 _def_encore='#define HAVE_DIVX4ENCORE 1'
6219 _ld_encore=''
6220 _def_encore_xvid='#define ENCORE_XVID 1'
6221 echores "XviD compat."
6222 else
6223 _def_encore='#undef HAVE_DIVX4ENCORE'
6224 echores "no"
6229 echocheck "mencoder"
6230 _mencoder_flag='#undef HAVE_MENCODER'
6231 if test "$_mencoder" = yes ; then
6232 _mencoder_flag='#define HAVE_MENCODER'
6234 echores "$_mencoder"
6236 echocheck "fastmemcpy"
6237 # fastmemcpy check is done earlier with tests of CPU & binutils features
6238 if test "$_fastmemcpy" = yes ; then
6239 _def_fastmemcpy='#define USE_FASTMEMCPY 1'
6240 else
6241 _def_fastmemcpy='#undef USE_FASTMEMCPY'
6243 echores "$_fastmemcpy"
6245 echocheck "UniquE RAR File Library"
6246 if test "$_unrarlib" = yes ; then
6247 _def_unrarlib='#define USE_UNRARLIB 1'
6248 else
6249 _def_unrarlib='#undef USE_UNRARLIB'
6251 echores "$_unrarlib"
6253 echocheck "TV interface"
6254 if test "$_tv" = yes ; then
6255 _def_tv='#define USE_TV 1'
6256 _inputmodules="tv $_inputmodules"
6257 else
6258 _noinputmodules="tv $_noinputmodules"
6259 _def_tv='#undef USE_TV'
6261 echores "$_tv"
6263 echocheck "EDL support"
6264 if test "$_edl" = yes ; then
6265 _def_edl='#define USE_EDL'
6266 _inputmodules="edl $_inputmodules"
6267 else
6268 _noinputmodules="edl $_noinputmodules"
6269 _def_edl='#undef USE_EDL'
6271 echores "$_edl"
6273 echocheck "*BSD BrookTree 848 TV interface"
6274 if test "$_tv_bsdbt848" = auto ; then
6275 _tv_bsdbt848=no
6276 if test "$_tv" = yes ; then
6277 cat > $TMPC <<EOF
6278 #include <sys/types.h>
6279 #if defined(__NetBSD__)
6280 #include <dev/ic/bt8xx.h>
6281 #else
6282 #include <machine/ioctl_bt848.h>
6283 #endif
6284 int main(void) { return 0; }
6286 cc_check && _tv_bsdbt848=yes
6289 if test "$_tv_bsdbt848" = yes ; then
6290 _def_tv_bsdbt848='#define HAVE_TV_BSDBT848 1'
6291 _inputmodules="tv-bsdbt848 $_inputmodules"
6292 else
6293 _def_tv_bsdbt848='#undef HAVE_TV_BSDBT848'
6294 _noinputmodules="tv-bsdbt848 $_noinputmodules"
6296 echores "$_tv_bsdbt848"
6298 echocheck "Video 4 Linux TV interface"
6299 if test "$_tv_v4l" = auto ; then
6300 _tv_v4l=no
6301 if test "$_tv" = yes && linux ; then
6302 for I in /dev/video /dev/video? ; do
6303 if test -c $I ; then
6304 cat > $TMPC <<EOF
6305 #include <stdlib.h>
6306 #include <linux/videodev.h>
6307 int main(void) { return 0; }
6309 cc_check && _tv_v4l=yes
6310 break
6312 done
6315 if test "$_tv_v4l" = yes ; then
6316 _def_tv_v4l='#define HAVE_TV_V4L 1'
6317 _inputmodules="tv-v4l $_inputmodules"
6318 else
6319 _noinputmodules="tv-v4l $_noinputmodules"
6320 _def_tv_v4l='#undef HAVE_TV_V4L'
6322 echores "$_tv_v4l"
6325 echocheck "Video 4 Linux 2 TV interface"
6326 if test "$_tv_v4l2" = auto ; then
6327 _tv_v4l2=no
6328 if test "$_tv" = yes && linux ; then
6329 for I in /dev/video /dev/video? ; do
6330 if test -c $I ; then
6331 _tv_v4l2=yes
6332 break
6334 done
6337 if test "$_tv_v4l2" = yes ; then
6338 _def_tv_v4l2='#define HAVE_TV_V4L2 1'
6339 _inputmodules="tv-v4l2 $_inputmodules"
6340 else
6341 _noinputmodules="tv-v4l2 $_noinputmodules"
6342 _def_tv_v4l2='#undef HAVE_TV_V4L2'
6344 echores "$_tv_v4l2"
6347 echocheck "audio select()"
6348 if test "$_select" = no ; then
6349 _def_select='#undef HAVE_AUDIO_SELECT'
6350 elif test "$_select" = yes ; then
6351 _def_select='#define HAVE_AUDIO_SELECT 1'
6353 echores "$_select"
6356 echocheck "network"
6357 # FIXME network check
6358 if test "$_network" != no ; then
6359 _def_network='#define MPLAYER_NETWORK 1'
6360 _ld_network="$_ld_sock"
6361 _inputmodules="network $_inputmodules"
6362 else
6363 _noinputmodules="network $_noinputmodules"
6364 _def_network='#undef MPLAYER_NETWORK'
6365 _ftp=no
6367 echores "$_network"
6369 echocheck "ftp"
6370 if (not beos) && (test "$_ftp" != no) ; then
6371 _def_ftp='#define HAVE_FTP 1'
6372 _inputmodules="ftp $_inputmodules"
6373 else
6374 _noinputmodules="ftp $_noinputmodules"
6375 _def_ftp='#undef HAVE_FTP'
6377 echores "$_ftp"
6379 echocheck "vstream client"
6380 if test "$_vstream" = auto ; then
6381 _vstream=no
6382 cat > $TMPC <<EOF
6383 #include <vstream-client.h>
6384 void vstream_error(const char *format, ... ) {}
6385 int main(void) { vstream_start(); return 0; }
6387 cc_check -lvstream-client && _vstream=yes
6389 if test "$_vstream" = yes ; then
6390 _def_vstream='#define HAVE_VSTREAM 1'
6391 _inputmodules="vstream $_inputmodules"
6392 _ld_vstream='-lvstream-client'
6393 else
6394 _noinputmodules="vstream $_noinputmodules"
6395 _def_vstream='#undef HAVE_VSTREAM'
6397 echores "$_vstream"
6399 # endian testing
6400 echocheck "byte order"
6401 if test "$_big_endian" = auto ; then
6402 cat > $TMPC <<EOF
6403 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
6404 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
6405 int main(){
6406 char* s = (char*)ascii_name;
6407 return 0;
6410 if cc_check ; then
6411 if strings $TMPO | grep -l MPlayerBigEndian >/dev/null ; then
6412 _big_endian=yes
6413 else
6414 _big_endian=no
6416 else
6417 echo -n "failed to autodetect byte order, defaulting to "
6420 if test "$_big_endian" = yes ; then
6421 _byte_order='big-endian'
6422 _def_words_endian='#define WORDS_BIGENDIAN 1'
6423 else
6424 _byte_order='little-endian'
6425 _def_words_endian='#undef WORDS_BIGENDIAN'
6427 echores "$_byte_order"
6429 echocheck "shared postprocess lib"
6430 echores "$_shared_pp"
6432 echocheck "OSD menu"
6433 if test "$_menu" = yes ; then
6434 _def_menu='#define HAVE_MENU 1'
6435 else
6436 _def_menu='#undef HAVE_MENU'
6438 echores "$_menu"
6440 # Check to see if they want QTX codecs enabled
6441 echocheck "QTX codecs"
6442 if test "$_qtx" = auto ; then
6443 _qtx=$_win32
6445 if test "$_qtx" = yes ; then
6446 _def_qtx='#define USE_QTX_CODECS 1'
6447 _codecmodules="qtx $_codecmodules"
6448 else
6449 _def_qtx='#undef USE_QTX_CODECS'
6450 _nocodecmodules="qtx $_nocodecmodules"
6452 echores "$_qtx"
6455 echocheck "Subtitles sorting"
6456 if test "$_sortsub" = yes ; then
6457 _def_sortsub='#define USE_SORTSUB 1'
6458 else
6459 _def_sortsub='#undef USE_SORTSUB'
6461 echores "$_sortsub"
6464 echocheck "XMMS inputplugin support"
6465 if test "$_xmms" = yes ; then
6467 if ( xmms-config --version ) >/dev/null 2>&1 ; then
6468 if test -z "$_xmmsplugindir" ; then
6469 _xmmsplugindir=`xmms-config --input-plugin-dir`
6471 if test -z "$_xmmslibdir" ; then
6472 _xmmslibdir=`xmms-config --exec-prefix`/lib
6474 else
6475 if test -z "$_xmmsplugindir" ; then
6476 _xmmsplugindir=/usr/lib/xmms/Input
6478 if test -z "$_xmmslibdir" ; then
6479 _xmmslibdir=/usr/lib
6483 _def_xmms='#define HAVE_XMMS 1'
6484 if darwin ; then
6485 _xmms_lib="${_xmmslibdir}/libxmms.dylib"
6486 else
6487 _xmms_lib="${_xmmslibdir}/libxmms.so.1 -export-dynamic"
6489 else
6490 _def_xmms='#undef HAVE_XMMS'
6492 echores "$_xmms"
6494 echocheck "inet6"
6495 if test "$_inet6" = auto ; then
6496 cat > $TMPC << EOF
6497 #include <sys/types.h>
6498 #include <sys/socket.h>
6499 int main(void) { socket(AF_INET6, SOCK_STREAM, AF_INET6); }
6501 _inet6=no
6502 if cc_check ; then
6503 _inet6=yes
6506 if test "$_inet6" = yes ; then
6507 _def_inet6='#define HAVE_AF_INET6 1'
6508 else
6509 _def_inet6='#undef HAVE_AF_INET6'
6511 echores "$_inet6"
6514 echocheck "gethostbyname2"
6515 if test "$_gethostbyname2" = auto ; then
6516 cat > $TMPC << EOF
6517 #include <sys/types.h>
6518 #include <sys/socket.h>
6519 #include <netdb.h>
6520 int main(void) { gethostbyname2("", AF_INET); }
6522 _gethostbyname2=no
6523 if cc_check ; then
6524 _gethostbyname2=yes
6528 if test "$_gethostbyname2" = yes ; then
6529 _def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
6530 else
6531 _def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
6533 echores "$_gethostbyname2"
6535 # --------------- GUI specific tests begin -------------------
6536 echocheck "GUI"
6537 echo "$_gui"
6538 if test "$_gui" = yes ; then
6540 # Required libraries
6541 test "$_png" != yes && die "PNG support required for GUI compilation, please install libpng and libpng-dev packages."
6542 test "$_x11" != yes && die "X11 support required for GUI compilation"
6544 echocheck "XShape extension"
6545 _xshape=no
6546 if test "$_x11" = yes ; then
6547 cat > $TMPC << EOF
6548 #include <X11/Xlib.h>
6549 #include <X11/Xproto.h>
6550 #include <X11/Xutil.h>
6551 #include <X11/extensions/shape.h>
6552 #include <stdlib.h>
6553 int main(void) {
6554 char *name = ":0.0";
6555 Display *wsDisplay;
6556 int exitvar = 0;
6557 int eventbase, errorbase;
6558 if (getenv("DISPLAY"))
6559 name=getenv("DISPLAY");
6560 wsDisplay=XOpenDisplay(name);
6561 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
6562 exitvar=1;
6563 XCloseDisplay(wsDisplay);
6564 return exitvar;
6567 cc_check $_inc_x11 $_ld_x11 && _xshape=yes
6569 if test "$_xshape" = yes ; then
6570 _def_xshape='#define HAVE_XSHAPE 1'
6571 else
6572 die "The GUI requires the X11 extension XShape (which was not found)."
6574 echores "$_xshape"
6577 # Check for GTK:
6578 echocheck "GTK version"
6579 if test -z "$_gtkconfig" ; then
6580 if ( gtk-config --version ) >/dev/null 2>&1 ; then
6581 _gtkconfig="gtk-config"
6582 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
6583 _gtkconfig="gtk12-config"
6584 else
6585 die "The GUI requires GTK devel packages (which were not found)."
6588 _gtk=`$_gtkconfig --version 2>&1`
6589 _inc_gtk=`$_gtkconfig --cflags 2>&1`
6590 _ld_gtk=`$_gtkconfig --libs 2>&1`
6591 echores "$_gtk (using $_gtkconfig)"
6593 # Check for GLIB
6594 echocheck "glib version"
6595 if test -z "$_glibconfig" ; then
6596 if ( glib-config --version ) >/dev/null 2>&1 ; then
6597 _glibconfig="glib-config"
6598 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
6599 _glibconfig="glib12-config"
6600 else
6601 die "The GUI requires GLib devel packages (which were not found)"
6604 _glib=`$_glibconfig --version 2>&1`
6605 _inc_glib=`$_glibconfig --cflags 2>&1`
6606 _ld_glib=`$_glibconfig --libs 2>&1`
6607 echores "$_glib (using $_glibconfig)"
6609 _def_gui='#define HAVE_NEW_GUI 1'
6610 _ld_gui='$(GTKLIB) $(GLIBLIB)'
6612 echo "Creating Gui/config.mak"
6613 cat > Gui/config.mak << EOF
6614 # -------- Generated by configure -----------
6616 GTKINC = $_inc_gtk
6617 GTKLIBS = $_ld_gtk
6618 GLIBINC = $_inc_glib
6619 GLIBLIBS = $_ld_glib
6623 else
6624 _def_gui='#undef HAVE_NEW_GUI'
6626 # --------------- GUI specific tests end -------------------
6630 #############################################################################
6632 # Checking for CFLAGS
6633 _stripbinaries=yes
6634 if test "$_profile" != "" || test "$_debug" != "" ; then
6635 CFLAGS="-W -Wall -O2 $_march $_mcpu $_debug $_profile"
6636 if test "$_cc_major" -ge "3" ; then
6637 CFLAGS=`echo "$CFLAGS" | sed -e 's/\(-Wall\)/\1 -Wno-unused-parameter/'`
6639 _stripbinaries=no
6640 elif test -z "$CFLAGS" ; then
6641 CFLAGS="-O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
6642 # always compile with '-g' if .developer:
6643 if test -f ".developer" ; then
6644 CFLAGS="-g $CFLAGS"
6645 if (test "$_crash_debug" = auto) && (not mingw32) ; then
6646 _crash_debug=yes
6648 _stripbinaries=no
6650 else
6651 cat <<EOF
6653 MPlayer compilation will use the CFLAGS set by you, but:
6655 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
6657 It is strongly recommended to let MPlayer choose the correct CFLAGS!
6658 To do so, execute 'CFLAGS= ./configure <options>'
6663 echocheck "automatic gdb attach"
6664 if test "$_crash_debug" = yes ; then
6665 _def_crash_debug='#define CRASH_DEBUG 1'
6666 else
6667 _def_crash_debug='#undef CRASH_DEBUG'
6668 _crash_debug=no
6670 echores "$_crash_debug"
6672 if darwin ; then
6673 CFLAGS="$CFLAGS -mdynamic-no-pic -falign-loops=16 -DSYS_DARWIN"
6674 if [ "$_cc_major" = 3 ] && [ "$_cc_minor" -lt 1 ]; then
6675 CFLAGS="$CFLAGS -no-cpp-precomp"
6678 # libavcodec (from ffmpeg) requires CONFIG_DARWIN to enable AltiVec on Darwin/MacOSX
6679 test "$_altivec" = yes && CFLAGS="$CFLAGS -DCONFIG_DARWIN"
6681 if hpux ; then
6682 # use flag for HPUX missing setenv()
6683 CFLAGS="$CFLAGS -DHPUX"
6685 # Thread support
6686 if linux ; then
6687 CFLAGS="$CFLAGS -D_REENTRANT"
6688 elif bsd ; then
6689 # FIXME bsd needs this so maybe other OS'es
6690 CFLAGS="$CFLAGS -D_THREAD_SAFE"
6692 # 64 bit file offsets?
6693 if test "$_largefiles" = yes || freebsd ; then
6694 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
6695 if test "$_dvdread" = yes ; then
6696 # dvdread support requires this (for off64_t)
6697 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
6701 echocheck "compiler support for -fno-PIC"
6702 if x86; then
6703 cat > $TMPC <<EOF
6704 int main(void) { return 0; }
6706 if cc_check -fno-PIC ; then
6707 CFLAGS="-fno-PIC $CFLAGS"
6708 echores "yes"
6709 else
6710 echores "no"
6712 else
6713 echores "only used for x86"
6716 echocheck "compiler support for noexecstack"
6717 cat > $TMPC <<EOF
6718 int main(void) { return 0; }
6720 if cc_check -Wl,-z,noexecstack ; then
6721 _ld_extra="-Wl,-z,noexecstack $_ld_extra"
6722 echores "yes"
6723 else
6724 echores "no"
6727 echocheck "ftello()"
6728 # if we don't have ftello use the osdep/ compatibility module
6729 cat > $TMPC << EOF
6730 #include <stdio.h>
6731 #include <sys/types.h>
6732 int main (void) { ftello(stdin); return 0; }
6734 _ftello=no
6735 cc_check && _ftello=yes
6736 if test "$_ftello" = yes ; then
6737 _def_ftello='#define HAVE_FTELLO 1'
6738 else
6739 _def_ftello='#undef HAVE_FTELLO'
6741 echores "$_ftello"
6743 # Determine OS dependent libs
6744 if cygwin ; then
6745 _def_confwin32='#define WIN32'
6746 #CFLAGS="$CFLAGS -D__CYGWIN__ -D__CYGWIN_USE_BIG_TYPES__"
6747 # stat.st_size with BIG_TYPES is broken (not set) ::atmos
6748 CFLAGS="$CFLAGS -D__CYGWIN__"
6751 if win32 ; then
6752 _confwin32='TARGET_WIN32 = yes'
6753 else
6754 _confwin32='TARGET_WIN32 = no'
6757 # Dynamic linking flags
6758 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
6759 _ld_dl_dynamic=''
6760 bsd && _ld_dl_dynamic='-rdynamic'
6761 if test "$_real" = yes || test "$_xanim" = yes && not win32 && not qnx ; then
6762 _ld_dl_dynamic='-rdynamic'
6765 _ld_arch="$_ld_arch $_ld_pthread $_ld_dl $_ld_dl_dynamic"
6766 bsdos && _ld_arch="$_ld_arch -ldvd"
6767 if netbsd ; then
6768 x86 && _ld_arch="$_ld_arch -li386"
6771 _def_debug='#undef MP_DEBUG'
6772 test "$_debug" != "" && _def_debug='#define MP_DEBUG 1'
6774 _def_linux='#undef TARGET_LINUX'
6775 linux && _def_linux='#define TARGET_LINUX 1'
6777 # TODO cleanup the VIDIX stuff here
6778 _def_vidix='#define CONFIG_VIDIX 1'
6779 test "$_vidix" = no && _def_vidix='#undef CONFIG_VIDIX'
6780 if test "$_vidix" = yes; then
6781 _vosrc="$_vosrc vo_cvidix.c"
6782 _vomodules="cvidix $_vomodules"
6783 else
6784 _novomodules="cvidix $_novomodules"
6786 if test "$_vidix" = yes && (win32); then
6787 _vosrc="$_vosrc vo_winvidix.c"
6788 _vomodules="winvidix $_vomodules"
6789 _ld_win32libs="-lgdi32 $_ld_win32libs"
6790 else
6791 _novomodules="winvidix $_novomodules"
6793 if test "$_vidix" = yes && test "$_x11" = yes; then
6794 _vosrc="$_vosrc vo_xvidix.c"
6795 _vomodules="xvidix $_vomodules"
6796 else
6797 _novomodules="xvidix $_novomodules"
6799 echo Checking for VIDIX ... "$_vidix"
6801 _def_joystick='#undef HAVE_JOYSTICK'
6802 if test "$_joystick" = yes ; then
6803 if linux ; then
6804 # TODO add some check
6805 _def_joystick='#define HAVE_JOYSTICK 1'
6806 else
6807 _joystick="no (unsupported under $system_name)"
6810 echo Checking for joystick ... "$_joystick"
6812 echocheck "lirc"
6813 if test "$_lirc" = auto ; then
6814 _lirc=no
6815 if test -c /dev/lirc -o -c /dev/lirc/0 ; then
6816 cat > $TMPC <<EOF
6817 #include <lirc/lirc_client.h>
6818 int main(void) { return 0; }
6820 cc_check -llirc_client && _lirc=yes
6823 if test "$_lirc" = yes ; then
6824 _def_lirc='#define HAVE_LIRC 1'
6825 _ld_lirc='-llirc_client'
6826 else
6827 _def_lirc='#undef HAVE_LIRC'
6829 echores "$_lirc"
6831 echocheck "lircc"
6832 if test "$_lircc" = auto ; then
6833 _lircc=no
6834 cat > $TMPC <<EOF
6835 #include <lirc/lircc.h>
6836 int main(void) { return 0; }
6838 cc_check -llircc && _lircc=yes
6840 if test "$_lircc" = yes ; then
6841 _def_lircc='#define HAVE_LIRCC 1'
6842 _ld_lircc='-llircc'
6843 else
6844 _def_lircc='#undef HAVE_LIRCC'
6846 echores "$_lircc"
6848 #############################################################################
6849 echo "Creating config.mak"
6850 cat > config.mak << EOF
6851 # -------- Generated by configure -----------
6853 LANG = C
6854 MAN_LANG = $MAN_LANG
6855 TARGET_OS = $system_name
6856 DESTDIR =
6857 prefix = \$(DESTDIR)$_prefix
6858 BINDIR = \$(DESTDIR)$_bindir
6859 DATADIR = \$(DESTDIR)$_datadir
6860 MANDIR = \$(DESTDIR)$_mandir
6861 CONFDIR = \$(DESTDIR)$_confdir
6862 LIBDIR = \$(DESTDIR)$_libdir
6863 # FFmpeg uses libdir instead of LIBDIR
6864 libdir = \$(LIBDIR)
6865 #AR = ar
6866 CC = $_cc
6867 HOST_CC = $_host_cc
6868 AWK = $_awk
6869 RANLIB = $_ranlib
6870 INSTALL = $_install
6871 # OPTFLAGS = -O4 $_profile $_debug $_march $_mcpu $_pipe -fomit-frame-pointer -ffast-math
6872 EXTRA_INC = $_inc_extra $_inc_gtk
6873 OPTFLAGS = -I../libvo -I../../libvo $_inc_x11 $CFLAGS \$(EXTRA_INC) $_opt_gnu99
6874 STRIPBINARIES = $_stripbinaries
6875 CHARSET = $_charset
6876 HELP_FILE = $_mp_help
6878 PRG = $_prg
6879 PRG_MENCODER = $_prg_mencoder
6881 $_live_libs_def
6883 MPLAYER_NETWORK = $_network
6884 STREAMING_LIVE_DOT_COM = $_live
6885 MPLAYER_NETWORK_LIB = $_ld_live $_ld_vstream $_ld_network
6886 DVBIN = $_dvbin
6887 VIDIX = $_vidix
6888 SHARED_PP = $_shared_pp
6889 CONFIG_PP = yes
6890 CONFIG_RISKY = yes
6891 CONFIG_MP3LAME = $_mp3lame
6892 LIBMENU = $_menu
6893 I18NLIBS = $_i18n_libs
6894 MATROSKA = $_matroska_internal
6896 OPENDIVX = $_opendivx
6898 MP3LIB = $_mp3lib
6899 LIBA52 = $_liba52
6900 LIBMPEG2 = $_libmpeg2
6901 TREMOR = $_tremor_internal
6902 TREMOR_FLAGS = $_tremor_flags
6904 UNRARLIB = $_unrarlib
6905 HAVE_FFPOSTPROCESS = $_def_haveffpostprocess
6906 PNG = $_mkf_png
6907 JPEG = $_mkf_jpg
6908 GIF = $_mkf_gif
6910 EXTRA_LIB = $_ld_extra
6911 Z_LIB = $_ld_static $_ld_zlib
6912 HAVE_MLIB = $_mlib
6913 WIN32_LIB = $_ld_win32libs
6914 STATIC_LIB = $_ld_static
6915 ENCA_LIB = $_ld_enca
6916 HAVE_PTHREADS = $_pthreads
6917 MATH_LIB = $_ld_lm
6919 X11_INC = $_inc_x11
6920 X11DIR = $_ld_x11
6922 HAVE_XVMC_ACCEL = $_xvmc
6924 # for libavcodec:
6925 SRC_PATH=..
6926 LIBPREF=lib
6927 LIBSUF=.a
6928 SLIBPREF=lib
6929 SLIBSUF=.so
6931 # video output
6932 X_LIB = $_ld_gl $_ld_dga $_ld_xv $_ld_xvmc $_ld_vm $_ld_xinerama $_ld_x11 $_ld_sock
6933 GGI_LIB = $_ld_ggi
6934 MLIB_LIB = $_ld_mlib
6935 MLIB_INC = $_inc_mlib
6936 DXR2_INC = $_inc_dxr2
6937 DVB_INC = $_inc_dvb
6938 PNG_LIB = $_ld_png
6939 JPEG_LIB = $_ld_jpg
6940 GIF_LIB = $_ld_gif
6941 SDL_LIB = $_ld_sdl
6942 SVGA_LIB = $_ld_svga
6943 AA_LIB = $_ld_aa
6944 CACA_INC = $_inc_caca
6945 CACA_LIB = $_ld_caca
6947 # audio output
6948 ALSA_LIB = $_ld_alsa
6949 NAS_LIB = $_ld_nas
6950 ARTS_LIB = $_ld_arts
6951 ARTS_INC = $_inc_arts
6952 ESD_LIB = $_ld_esd
6953 ESD_INC = $_inc_esd
6954 POLYP_LIB = $_ld_polyp
6955 POLYP_INC = $_inc_polyp
6956 JACK_LIB = $_ld_jack
6957 JACK_INC = $_inc_jack
6958 SGIAUDIO_LIB = $_ld_sgiaudio
6960 # input/demuxer/codecs
6961 TERMCAP_LIB = $_ld_termcap
6962 LIRC_LIB = $_ld_lirc
6963 LIRCC_LIB = $_ld_lircc
6964 DVDREAD_LIB = $_ld_dvdread
6965 DVDKIT = $_dvdkit
6966 DVDKIT2 = $_dvdkit2
6967 DVDKIT_SHARED = no
6968 SDL_INC = $_inc_sdl
6969 W32_DEP = $_dep_win32
6970 W32_LIB = $_ld_win32
6971 DS_DEP = $_dep_dshow
6972 DS_LIB = $_ld_dshow
6973 AV_DEP = $_dep_libavcodec $_dep_libavformat
6974 AV_LIB = $_ld_libavcodec $_ld_libavformat
6975 CONFIG_LIBAVCODEC = $_libavcodec
6976 CONFIG_LIBAVFORMAT = $_libavformat
6977 ZORAN = $_zr
6978 FAME = $_fame
6979 FAME_LIB = $_ld_fame
6980 MP1E_DEP = $_dep_mp1e
6981 MP1E_LIB = $_ld_mp1e
6982 ARCH_LIB = $_ld_arch $_ld_iconv
6983 XVID = $_xvid
6984 XVID_INC = $_inc_xvid
6985 XVID_LIB = $_ld_xvid
6986 X264 = $_x264
6987 X264_INC = $_inc_x264
6988 X264_LIB = $_ld_x264
6989 CONFIG_DTS = $_libdts
6990 DTS_INC = $_inc_libdts
6991 DTS_LIB = $_ld_libdts
6992 DECORE_LIB = $_ld_decore $_ld_mp3lame
6993 MENCODER = $_mencoder
6994 ENCORE_LIB = $_ld_encore $_ld_mp3lame
6995 DIRECTFB_INC = $_inc_directfb
6996 DIRECTFB_LIB = $_ld_directfb
6997 CDPARANOIA_INC = $_inc_cdparanoia
6998 CDPARANOIA_LIB = $_ld_cdparanoia
6999 FREETYPE_INC = $_inc_freetype
7000 FREETYPE_LIB = $_ld_freetype
7001 FONTCONFIG_INC = $_inc_fontconfig
7002 FONTCONFIG_LIB = $_ld_fontconfig
7003 FRIBIDI_INC = $_inc_fribidi
7004 FRIBIDI_LIB = $_ld_fribidi
7005 LIBLZO_LIB= $_ld_liblzo
7006 MAD_LIB = $_ld_mad
7007 VORBIS_LIB = $_ld_vorbis $_ld_libdv
7008 THEORA_LIB = $_ld_theora
7009 FAAD_LIB = $_ld_faad
7010 INTERNAL_FAAD = $_faad_internal
7011 SMBSUPPORT_LIB = $_ld_smb
7012 XMMS_PLUGINS = $_xmms
7013 XMMS_LIB = $_xmms_lib
7014 MACOSX = $_macosx
7015 MACOSX_FINDER_SUPPORT = $_macosx_finder_support
7016 MACOSX_BUNDLE = $_macosx_bundle
7017 MACOSX_FRAMEWORKS = $_macosx_frameworks
7018 MACOSX_COREVIDEO = $_macosx_corevideo
7019 TOOLAME=$_toolame
7020 TOOLAME_EXTRAFLAGS=$_toolame_extraflags
7021 TOOLAME_LIB=$_toolame_lib
7022 TWOLAME=$_twolame
7023 TWOLAME_LIB=$_twolame_lib
7024 FAAC=$_faac
7025 FAAC_LIB=$_ld_faac
7026 AMR_NB=$_amr_nb
7027 AMR_NB_FIXED=$_amr_nb_fixed
7028 AMR_WB=$_amr_wb
7029 `echo $_libavcodecs | tr 'a-z ' 'A-Z\n' | sed 's/^/CONFIG_/;s/$/=yes/'`
7031 # --- Some stuff for autoconfigure ----
7032 $_target_arch
7033 $_confwin32
7034 TARGET_CPU=$iproc
7035 TARGET_MMX = $_mmx
7036 TARGET_MMX2 = $_mmx2
7037 TARGET_3DNOW = $_3dnow
7038 TARGET_3DNOWEX = $_3dnowex
7039 TARGET_SSE = $_sse
7040 TARGET_ALTIVEC = $_altivec
7041 TARGET_VIS = $_vis
7043 # --- GUI stuff ---
7044 GTKLIB = $_ld_static $_ld_gtk
7045 GLIBLIB = $_ld_static $_ld_glib
7046 GTK_LIBS = $_ld_static $_ld_gui
7047 GUI = $_gui
7048 DEBUG = -DDEBUG
7052 #############################################################################
7053 echo "Creating config.h"
7054 cat > config.h << EOF
7055 /* -------- This file has been automatically generated by configure ---------
7056 Note: Any changes in it will be lost when you run configure again. */
7058 /* Protect against multiple inclusion */
7059 #ifndef MPLAYER_CONFIG_H
7060 #define MPLAYER_CONFIG_H 1
7062 /* use GNU internationalization */
7063 $_def_i18n
7065 /* Runtime CPU detection */
7066 $_def_runtime_cpudetection
7068 /* Dynamic a/v plugins */
7069 $_def_dynamic_plugins
7071 /* "restrict" keyword */
7072 $_def_restrict_keyword
7074 /* __builtin_expect branch prediction hint */
7075 $_def_builtin_expect
7077 /* attribute(used) as needed by some compilers */
7078 #if (__GNUC__ * 100 + __GNUC_MINOR__ >= 300)
7079 # define attribute_used __attribute__((used))
7080 #else
7081 # define attribute_used
7082 #endif
7084 #define PREFIX "$_prefix"
7086 #define USE_OSD 1
7087 #define USE_SUB 1
7089 /* enable/disable SIGHANDLER */
7090 $_def_sighandler
7092 /* enable/disable automatic gdb attach on crash, requires SIGHANDLER */
7093 $_def_crash_debug
7095 /* Toggles debugging informations */
7096 $_def_debug
7098 /* Indicates that Ogle's libdvdread is available for DVD playback */
7099 $_def_dvdread
7101 /* Indicates that dvdread is from libmpdvdkit */
7102 $_def_mpdvdkit
7104 /* Additional options for libmpdvdkit*/
7105 $_def_dvd
7106 $_def_cdrom
7107 $_def_cdio
7108 $_def_dvdio
7109 $_def_bsdi_dvd
7110 $_def_dvd_bsd
7111 $_def_dvd_linux
7112 $_dev_dvd_openbsd
7113 $_def_dvd_darwin
7114 $_def_sol_scsi_h
7115 $_def_hpux_scsi_h
7116 $_def_stddef
7118 /* Common data directory (for fonts, etc) */
7119 #define MPLAYER_DATADIR "$_datadir"
7120 #define MPLAYER_CONFDIR "$_confdir"
7121 #define MPLAYER_LIBDIR "$_libdir"
7123 /* Define this to compile stream-caching support, it can be enabled via
7124 -cache <kilobytes> */
7125 #define USE_STREAM_CACHE 1
7127 /* Define to include support for XviD/Divx4Linux/OpenDivx */
7128 $_def_divx
7130 /* Define to use the new XviD/DivX4Linux library instead of open source OpenDivX */
7131 /* You have to change DECORE_LIBS in config.mak, too! */
7132 $_def_decore
7134 /* Define if you are using DivX5Linux Decore library */
7135 $_def_divx5
7137 /* Define if you are using XviD library */
7138 $_def_xvid3
7139 $_def_xvid4
7140 $_def_decore_xvid
7141 $_def_encore_xvid
7143 /* Define if you are using the X.264 library */
7144 $_def_x264
7146 /* Define to include support for libdv-0.9.5 */
7147 $_def_libdv
7149 /* If build mencoder */
7150 $_mencoder_flag
7152 /* Indicates if XviD/Divx4linux encore is available
7153 Note: for mencoder */
7154 $_def_encore
7156 /* Indicates if libmp3lame is available
7157 Note: for mencoder */
7158 $_def_mp3lame
7159 $_def_cfg_mp3lame
7161 /* Define libmp1e for realtime mpeg encoding (for DXR3 and DVB cards) */
7162 $_def_mp1e
7164 /* Define this to enable avg. byte/sec-based AVI sync method by default:
7165 (use -bps or -nobps commandline option for run-time method selection)
7166 -bps gives better sync for vbr mp3 audio, it is now default */
7167 #define AVI_SYNC_BPS 1
7169 /* Undefine this if you do not want to select mono audio (left or right)
7170 with a stereo MPEG layer 2/3 audio stream. The command line option
7171 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
7172 right-only), with 0 being the default.
7174 #define USE_FAKE_MONO 1
7176 /* Undefine this if your sound card driver has no working select().
7177 If you have kernel Oops, player hangups, or just no audio, you should
7178 try to recompile MPlayer with this option disabled! */
7179 $_def_select
7181 /* define this to use iconv(3) function to codepage conversions */
7182 $_def_iconv
7184 /* define this to use nl_langinfo function */
7185 $_def_langinfo
7187 /* define this to use RTC (/dev/rtc) for video timers */
7188 $_def_rtc
7190 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
7191 #define MAX_OUTBURST 65536
7193 /* set up audio OUTBURST. Do not change this! */
7194 #define OUTBURST 512
7196 /* Define this if your system has the header file for the OSS sound interface */
7197 $_def_sys_soundcard
7199 /* Define this if your system has the header file for the OSS sound interface
7200 * in /usr/include */
7201 $_def_soundcard
7203 /* Define this if your system has the sysinfo header */
7204 $_def_sys_sysinfo
7206 /* Define this if your system has ftello() */
7208 $_def_ftello
7209 #ifndef HAVE_FTELLO
7210 /* Need these for FILE and off_t an config.h is usually before other includes*/
7211 #include <stdio.h>
7212 #include <sys/types.h>
7213 off_t ftello(FILE *);
7214 #endif
7216 /* Define this if your system has the "malloc.h" header file */
7217 $_def_malloc
7219 /* memalign is mapped to malloc if unsupported */
7220 $_def_memalign
7221 #ifndef HAVE_MEMALIGN
7222 # define memalign(a,b) malloc(b)
7223 #define MEMALIGN_HACK 1
7224 #endif
7226 /* Define this if your system has the "alloca.h" header file */
7227 $_def_alloca
7229 /* Define this if your system has the "sys/mman.h" header file */
7230 $_def_mman
7231 $_def_mman_has_map_failed
7233 /* Define this if you have the elf dynamic linker -ldl library */
7234 $_def_dl
7236 /* Define this if you have the kstat kernel statistics library */
7237 $_def_kstat
7239 /* Define this if you have zlib */
7240 $_def_zlib
7241 #ifdef HAVE_ZLIB
7242 #define CONFIG_ZLIB 1
7243 #endif
7245 /* Define this if you have shm support */
7246 $_def_shm
7248 /* Define this if your system has scandir & alphasort */
7249 $_def_scandir
7251 /* Define this if your system has strsep */
7252 $_def_strsep
7254 /* Define this if your system has strlcpy */
7255 $_def_strlcpy
7256 #ifndef HAVE_STRLCPY
7257 unsigned int strlcpy (char *dest, const char *src, unsigned int size);
7258 #endif
7260 /* Define this if your system has strlcat */
7261 $_def_strlcat
7262 #ifndef HAVE_STRLCAT
7263 unsigned int strlcat (char *dest, const char *src, unsigned int size);
7264 #endif
7266 /* Define this if your system has fseeko */
7267 $_def_fseeko
7268 #ifndef HAVE_FSEEKO
7269 /* Need these for FILE and off_t an config.h is usually before other includes*/
7270 #include <stdio.h>
7271 #include <sys/types.h>
7272 int fseeko(FILE *, off_t, int);
7273 #endif
7275 $_def_localtime_r
7277 /* Define this if your system has vsscanf */
7278 $_def_vsscanf
7280 /* Define this if your system has swab */
7281 $_def_swab
7283 /* Define this if your system has no posix select */
7284 $_def_no_posix_select
7286 /* Define this if your system has gettimeofday */
7287 $_def_gettimeofday
7289 /* Define this if your system has glob */
7290 $_def_glob
7292 /* Define this if your system has pthreads */
7293 $_def_pthreads
7295 /* Define this if you enabled thread support for libavcodec */
7296 $_def_threads
7298 /* LIRC (remote control, see www.lirc.org) support: */
7299 $_def_lirc
7302 * LIRCCD (LIRC client daemon)
7303 * See http://www.dolda2000.cjb.net/~fredrik/lirccd/
7305 $_def_lircc
7307 /* DVD navigation support using libdvdnav */
7308 $_def_dvdnav
7309 $_def_dvdnav_version
7311 /* Define this to enable MPEG 1/2 image postprocessing (requires a FAST CPU!) */
7312 #define MPEG12_POSTPROC 1
7314 /* Define this to enable image postprocessing in libavcodec (requires a FAST CPU!) */
7315 $_def_ffpostprocess
7317 /* Define to include support for OpenDivx postprocessing */
7318 $_def_odivx_postprocess
7320 /* Win32 DLL support */
7321 $_def_win32
7322 #define WIN32_PATH "$_win32libdir"
7324 /* DirectShow support */
7325 $_def_dshow
7327 /* Mac OS X specific features */
7328 $_def_macosx
7329 $_def_macosx_finder_support
7330 $_def_macosx_bundle
7331 $_def_macosx_corevideo
7333 /* Build our Win32-loader */
7334 $_def_win32_loader
7336 /* ffmpeg's libavcodec support (requires libavcodec source) */
7337 $_def_libavcodec
7338 $_def_libavcodecso
7340 /* ffmpeg's libavformat support (requires libavformat source) */
7341 $_def_libavformat
7342 $_def_libavformat_win32
7344 /* risky codecs */
7345 #define CONFIG_RISKY 1
7347 /* Use libavcodec's decoders */
7348 #define CONFIG_DECODERS 1
7349 /* Use libavcodec's encoders */
7350 #define CONFIG_ENCODERS 1
7352 #define CONFIG_MPEGAUDIO_HP 1
7354 /* Use amr codecs from libavcodec (requires amr sources) */
7355 $_def_amr_nb
7356 $_def_amr_nb_fixed
7357 $_def_amr_wb
7359 /* Use specific codecs from libavcodec */
7360 `echo $_libavcodecs | tr 'a-z ' 'A-Z\n' | sed 's/^/#define CONFIG_/;s/$/ 1/'`
7362 /* Use codec libs included in mplayer CVS / source dist: */
7363 $_def_mp3lib
7364 $_def_liba52
7365 $_def_libdts
7366 $_def_libmpeg2
7368 /* Use libfame encoder filter */
7369 $_def_fame
7371 /* XAnim DLL support */
7372 $_def_xanim
7373 /* Default search path */
7374 $_def_xanim_path
7376 /* RealPlayer DLL support */
7377 $_def_real
7378 /* Default search path */
7379 $_def_real_path
7381 /* LIVE.COM Streaming Media library support */
7382 $_def_live
7384 /* Use 3dnow/mmxext/sse/mmx optimized fast memcpy() [maybe buggy... signal 4]*/
7385 $_def_fastmemcpy
7387 /* Use unrarlib for Vobsubs */
7388 $_def_unrarlib
7390 /* gui support, please do not edit this option */
7391 $_def_gui
7393 /* Audio output drivers */
7394 $_def_ossaudio
7395 $_def_ossaudio_devdsp
7396 $_def_ossaudio_devmixer
7397 $_def_alsa5
7398 $_def_alsa9
7399 $_def_alsa1x
7400 $_def_arts
7401 $_def_esd
7402 $_def_esd_latency
7403 $_def_polyp
7404 $_def_jack
7405 $_def_sys_asoundlib_h
7406 $_def_alsa_asoundlib_h
7407 $_def_sunaudio
7408 $_def_sgiaudio
7409 $_def_win32waveout
7410 $_def_nas
7412 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
7413 #undef FAST_OSD
7414 #undef FAST_OSD_TABLE
7416 /* Enable TV Interface support */
7417 $_def_tv
7419 /* Enable EDL support */
7420 $_def_edl
7422 /* Enable Video 4 Linux TV interface support */
7423 $_def_tv_v4l
7425 /* Enable Video 4 Linux 2 TV interface support */
7426 $_def_tv_v4l2
7428 /* Enable *BSD BrookTree TV interface support */
7429 $_def_tv_bsdbt848
7431 /* Define if your processor stores words with the most significant
7432 byte first (like Motorola and SPARC, unlike Intel and VAX). */
7433 $_def_words_endian
7435 $_def_arch
7437 /* For the PPC. G5 has the dcbzl when in 64bit mode but G4s and earlier do not
7438 have the instruction. */
7439 $_def_dcbzl
7441 /* libmpeg2 wants ARCH_PPC and the rest of mplayer use ARCH_POWERPC,
7442 * define ARCH_PPC if ARCH_POWERPC is set to cope with that.
7444 #ifdef ARCH_POWERPC
7445 #define ARCH_PPC 1
7446 #endif
7448 /* the same issue as with ARCH_POWERPC but with ffmpeg/libavcodec */
7449 #ifdef ARCH_ARMV4L
7450 #define ARCH_ARM 1
7451 #endif
7453 /* only gcc3 can compile mvi instructions */
7454 $_def_gcc_mvi_support
7456 /* Define this for Cygwin build for win32 */
7457 $_def_confwin32
7459 /* Define this to any prefered value from 386 up to infinity with step 100 */
7460 #define __CPU__ $iproc
7462 $_mp_wordsize
7464 $_def_linux
7466 $_def_vcd
7468 #ifdef sun
7469 #define DEFAULT_CDROM_DEVICE "/vol/dev/aliases/cdrom0"
7470 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
7471 #elif defined(HPUX)
7472 #define DEFAULT_CDROM_DEVICE "/dev/cdrom"
7473 #define DEFAULT_DVD_DEVICE "/dev/dvd"
7474 #elif defined(WIN32)
7475 #define DEFAULT_CDROM_DEVICE "D:"
7476 #define DEFAULT_DVD_DEVICE "D:"
7477 #elif defined(SYS_DARWIN)
7478 #define DEFAULT_CDROM_DEVICE "/dev/disk1"
7479 #define DEFAULT_DVD_DEVICE "/dev/rdiskN"
7480 #elif defined(__OpenBSD__)
7481 #define DEFAULT_CDROM_DEVICE "/dev/rcd0a"
7482 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
7483 #else
7484 #define DEFAULT_CDROM_DEVICE "/dev/cdrom"
7485 #define DEFAULT_DVD_DEVICE "/dev/dvd"
7486 #endif
7489 /*----------------------------------------------------------------------------
7491 ** NOTE: Instead of modifying these definitions here, use the
7492 ** --enable/--disable options of the ./configure script!
7493 ** See ./configure --help for details.
7495 *---------------------------------------------------------------------------*/
7497 /* C99 lrintf function available */
7498 $_def_lrintf
7500 /* round function is available */
7501 $_def_round
7503 /* yes, we have inttypes.h */
7504 #define HAVE_INTTYPES_H 1
7506 /* int_fastXY_t emulation */
7507 $_def_fast_inttypes
7509 /* nanosleep support */
7510 $_def_nanosleep
7512 /* SMB support */
7513 $_def_smbsupport
7515 /* termcap flag for getch2.c */
7516 $_def_termcap
7518 /* termios flag for getch2.c */
7519 $_def_termios
7520 $_def_termios_h
7521 $_def_termios_sys_h
7523 /* enable PNG support */
7524 $_def_png
7526 /* enable JPEG support */
7527 $_def_jpg
7529 /* enable PNM support */
7530 $_def_pnm
7532 /* enable md5sum support */
7533 $_def_md5sum
7535 /* enable GIF support */
7536 $_def_gif
7537 $_def_gif_4
7538 $_def_gif_tvt_hack
7540 /* enable FreeType support */
7541 $_def_freetype
7543 /* enable Fontconfig support */
7544 $_def_fontconfig
7546 /* enable FriBiDi usage */
7547 $_def_fribidi
7549 /* enable ENCA usage */
7550 $_def_enca
7552 /* liblzo support */
7553 $_def_liblzo
7555 /* libmad support */
7556 $_def_mad
7558 /* enable OggVorbis support */
7559 $_def_vorbis
7561 /* enable Tremor as vorbis decoder */
7562 $_def_tremor
7564 /* enable OggTheora support */
7565 $_def_theora
7567 /* enable Matroska support */
7568 $_def_matroska
7570 /* enable FAAD (AAC) support */
7571 $_def_faad
7572 $_def_faad_internal
7574 /* enable FAAC (AAC encoder) support */
7575 $_def_faac
7577 /* enable LADSPA plugin support */
7578 $_def_ladspa
7580 /* enable network */
7581 $_def_network
7583 /* enable ftp support */
7584 $_def_ftp
7586 /* enable vstream support */
7587 $_def_vstream
7589 /* enable winsock2 instead of Unix functions*/
7590 $_def_winsock2
7592 /* define this to use inet_aton() instead of inet_pton() */
7593 $_def_use_aton
7595 /* enables / disables cdparanoia support */
7596 $_def_cdparanoia
7598 /* enables / disables VIDIX usage */
7599 $_def_vidix
7601 /* enables / disables new input joystick support */
7602 $_def_joystick
7604 /* enables / disables QTX codecs */
7605 $_def_qtx
7607 /* enables / disables osd menu */
7608 $_def_menu
7610 /* enables / disables subtitles sorting */
7611 $_def_sortsub
7613 /* XMMS input plugin support */
7614 $_def_xmms
7615 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
7617 /* enables inet6 support */
7618 $_def_inet6
7620 /* do we have gethostbyname2? */
7621 $_def_gethostbyname2
7623 /* Extension defines */
7624 $_def_3dnow // only define if you have 3DNOW (AMD k6-2, AMD Athlon, iDT WinChip, etc.)
7625 $_def_3dnowex // only define if you have 3DNOWEX (AMD Athlon, etc.)
7626 $_def_mmx // only define if you have MMX (newer x86 chips, not P54C/PPro)
7627 $_def_mmx2 // only define if you have MMX2 (Athlon/PIII/4/CelII)
7628 $_def_sse // only define if you have SSE (Intel Pentium III/4 or Celeron II)
7629 $_def_sse2 // only define if you have SSE2 (Intel Pentium 4)
7630 $_def_altivec // only define if you have Altivec (G4)
7632 $_def_altivec_h // enables usage of altivec.h
7635 $_def_mlib // Sun mediaLib, available only on solaris
7636 $_def_vis // only define if you have VIS ( ultrasparc )
7638 /* libmpeg2 uses a different feature test macro for mediaLib */
7639 #ifdef HAVE_MLIB
7640 #define LIBMPEG2_MLIB 1
7641 #endif
7643 /* libvo options */
7644 #define SCREEN_SIZE_X 1
7645 #define SCREEN_SIZE_Y 1
7646 $_def_x11
7647 $_def_xv
7648 $_def_xvmc
7649 $_def_vm
7650 $_def_xf86keysym
7651 $_def_xinerama
7652 $_def_gl
7653 $_def_gl_win32
7654 $_def_dga
7655 $_def_dga2
7656 $_def_sdl
7657 /* defined for SDLlib with keyrepeat bugs (before 1.2.1) */
7658 $_def_sdlbuggy
7659 $_def_directx
7660 $_def_ggi
7661 $_def_ggiwmh
7662 $_def_3dfx
7663 $_def_tdfxfb
7664 $_def_tdfxvid
7665 $_def_directfb
7666 $_def_directfb_version
7667 $_def_zr
7668 $_def_bl
7669 $_def_mga
7670 $_def_xmga
7671 $_def_syncfb
7672 $_def_fbdev
7673 $_def_dxr2
7674 $_def_dxr3
7675 $_def_dvb
7676 $_def_dvb_in
7677 $_def_svga
7678 $_def_vesa
7679 $_def_xdpms
7680 $_def_aa
7681 $_def_caca
7682 $_def_tga
7683 $_def_toolame
7684 $_def_twolame
7686 /* used by GUI: */
7687 $_def_xshape
7689 #if defined(HAVE_GL) || defined(HAVE_X11) || defined(HAVE_XV)
7690 #define X11_FULLSCREEN 1
7691 #endif
7693 #endif /* MPLAYER_CONFIG_H */
7696 #############################################################################
7698 echo "Creating libvo/config.mak"
7699 _voobj=`echo $_vosrc | sed -e 's/\.c/\.o/g;s/\.m/\.o/g'`
7700 cat > libvo/config.mak << EOF
7701 include ../config.mak
7702 OPTIONAL_SRCS = $_vosrc
7703 OPTIONAL_OBJS = $_voobj
7706 #############################################################################
7708 echo "Creating libao2/config.mak"
7709 _aoobj=`echo $_aosrc | sed -e 's/\.c/\.o/g'`
7710 cat > libao2/config.mak << EOF
7711 include ../config.mak
7712 OPTIONAL_SRCS = $_aosrc
7713 OPTIONAL_OBJS = $_aoobj
7716 #############################################################################
7718 echo "Creating libaf/config.mak"
7719 _afobj=`echo $_afsrc | sed -e 's/\.c/\.o/g'`
7720 cat > libaf/config.mak << EOF
7721 include ../config.mak
7722 OPTIONAL_SRCS = $_afsrc
7723 OPTIONAL_OBJS = $_afobj
7726 #############################################################################
7728 cat << EOF
7730 Config files successfully generated by ./configure !
7732 Install prefix: $_prefix
7733 Data directory: $_datadir
7734 Config direct.: $_confdir
7736 Byte order: $_byte_order
7737 Optimizing for: $_optimizing
7739 Languages:
7740 Messages/GUI: $_language
7743 echo -n " Manual pages: $MAN_LANG"
7744 test "$LANGUAGES" = en && echo -n " (no localization selected, use --language=all)"
7745 echo
7747 cat << EOF
7749 Enabled optional drivers:
7750 Input: $_inputmodules
7751 Codecs: $_codecmodules
7752 Audio output: $_aomodules
7753 Video output: $_vomodules
7754 Audio filters: $_afmodules
7755 Disabled optional drivers:
7756 Input: $_noinputmodules
7757 Codecs: $_nocodecmodules
7758 Audio output: $_noaomodules
7759 Video output: $_novomodules
7760 Audio filters: $_noafmodules
7762 'config.h' and 'config.mak' contain your configuration options.
7763 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
7764 compile *** DO NOT REPORT BUGS if you tweak these files ***
7766 'make' will now compile MPlayer and 'make install' will install it.
7767 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
7772 if test "$_mtrr" = yes ; then
7773 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$_doc_lang/video.html#mtrr)"
7774 echo
7777 if test "$_sdl" = "outdated" ; then
7778 cat <<EOF
7779 You have an outdated version of libSDL installed (older than v1.1.7) and SDL
7780 support has therefore been disabled.
7782 Please upgrade to a more recent version (version 1.1.8 and above are known to
7783 work). You may get this library from: http://www.libsdl.org
7785 You need to rerun ./configure and recompile after updating SDL. If you are
7786 only interested in the libSDL audio drivers, then an older version might work.
7788 Use --enable-sdl to force usage of libSDL.
7793 if x86; then
7794 if test "$_win32" = no ; then
7795 if test "$_win32libdir" ; then
7796 echo "Failed to find a Win32 codecs dir at $_win32libdir!"
7797 else
7798 echo "Failed to find a Win32 codecs directory! (default: /usr/local/lib/codecs/)"
7800 cat << EOF
7801 Create it and copy the DLL files there! You can download the codecs from our
7802 homepage at http://www.mplayerhq.hu/MPlayer/releases/codecs/
7806 else
7807 cat <<EOF
7808 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
7809 operating system ($system_name). You may encounter a few files that cannot
7810 be played due to missing open source video/audio codec support.
7816 cat <<EOF
7818 Check $TMPLOG if you wonder why an autodetection failed (check whether
7819 the development headers/packages are installed).
7821 If you suspect a bug, please read DOCS/HTML/$_doc_lang/bugreports.html.
7825 if test "$_vidix" = no ; then
7826 cat <<EOF
7827 You've disabled VIDIX. Although it would be better to PORT it instead.
7828 Have a look at the documentation for supported cards!
7833 # Last move:
7834 rm -f "$TMPO" "$TMPC" "$TMPS" "$TMPCPP"