1.1157: -novideo does not work in some cases, e.g. with MPEG demuxers.
[mplayer/greg.git] / configure
blob045e06e0e370d0195fccec5d22de655e2b3d7444
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
23 # libaf/config.mak
25 #############################################################################
27 # Prevent locale nonsense from breaking basic text processing utils
28 LC_ALL=C
29 export LC_ALL
31 # Prefer these macros to full length text !
32 # These macros only return an error code - NO display is done
33 compile_check() {
34 echo >> "$TMPLOG"
35 cat "$1" >> "$TMPLOG"
36 echo >> "$TMPLOG"
37 echo "$_cc $CFLAGS $_inc_extra $_ld_static $_ld_extra -o $TMPO $@" >> "$TMPLOG"
38 rm -f "$TMPO"
39 $_cc $CFLAGS $_inc_extra $_ld_static $_ld_extra -o "$TMPO" "$@" >> "$TMPLOG" 2>&1
40 TMP="$?"
41 echo >> "$TMPLOG"
42 echo "ldd $TMPO" >> "$TMPLOG"
43 $_ldd "$TMPO" >> "$TMPLOG" 2>&1
44 echo >> "$TMPLOG"
45 return "$TMP"
48 cc_check() {
49 compile_check $TMPC $@
52 cxx_check() {
53 compile_check $TMPCPP $@ -lstdc++
56 tmp_run() {
57 "$TMPO" >> "$TMPLOG" 2>&1
60 # Display error message, flushes tempfile, exit
61 die () {
62 echo
63 echo "Error: $@" >&2
64 echo >&2
65 rm -f "$TMPO" "$TMPC" "$TMPS" "$TMPCPP"
66 echo "Check \"$TMPLOG\" if you do not understand why it failed."
67 exit 1
70 # OS test booleans functions
71 issystem() {
72 test "`echo $system_name | tr A-Z a-z`" = "`echo $1 | tr A-Z a-z`"
74 linux() { issystem "Linux" ; return "$?" ; }
75 sunos() { issystem "SunOS" ; return "$?" ; }
76 hpux() { issystem "HP-UX" ; return "$?" ; }
77 irix() { issystem "IRIX" ; return "$?" ; }
78 cygwin() { issystem "CYGWIN" ; return "$?" ; }
79 freebsd() { issystem "FreeBSD" ; return "$?" ; }
80 netbsd() { issystem "NetBSD" ; return "$?" ; }
81 bsdos() { issystem "BSD/OS" ; return "$?" ; }
82 openbsd() { issystem "OpenBSD" ; return "$?" ; }
83 bsd() { freebsd || netbsd || bsdos || openbsd ; return "$?" ; }
84 qnx() { issystem "QNX" ; return "$?" ; }
85 darwin() { issystem "Darwin" ; return "$?" ; }
86 gnu() { issystem "GNU" ; return "$?" ; }
87 mingw32() { issystem "MINGW32" ; return "$?" ; }
88 morphos() { issystem "MorphOS" ; return "$?" ; }
89 win32() { cygwin || mingw32 ; return "$?" ; }
90 beos() { issystem "BEOS" ; return "$?" ; }
92 # arch test boolean functions
93 # x86/x86pc is used by QNX
94 x86() {
95 case "$host_arch" in
96 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
97 *) return 1 ;;
98 esac
101 x86_64() {
102 case "$host_arch" in
103 x86_64|amd64) return 0 ;;
104 *) return 1 ;;
105 esac
108 ppc() {
109 case "$host_arch" in
110 ppc) return 0;;
111 *) return 1;;
112 esac
115 alpha() {
116 case "$host_arch" in
117 alpha) return 0;;
118 *) return 1;;
119 esac
122 # not boolean test: implement the posix shell "!" operator for a
123 # non-posix /bin/sh.
124 # usage: not {command}
125 # returns exit status "success" when the execution of "command"
126 # fails.
127 not() {
128 eval "$@"
129 test $? -ne 0
132 # Use this before starting a check
133 echocheck() {
134 echo "============ Checking for $@ ============" >> "$TMPLOG"
135 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
138 # Use this to echo the results of a check
139 echores() {
140 if test "$_res_comment" ; then
141 _res_comment="($_res_comment)"
143 echo "Result is: $@ $_res_comment" >> "$TMPLOG"
144 echo "##########################################" >> "$TMPLOG"
145 echo "" >> "$TMPLOG"
146 echo "$@ $_res_comment"
147 _res_comment=""
149 #############################################################################
151 # Check how echo works in this /bin/sh
152 case `echo -n` in
153 -n) _echo_n= _echo_c='\c' ;; # SysV echo
154 *) _echo_n='-n ' _echo_c= ;; # BSD echo
155 esac
157 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"`
159 for parm in "$@" ; do
160 if test "$parm" = "--help" || test "$parm" = "-help" || test "$parm" = "-h" ; then
161 cat << EOF
163 Usage: $0 [OPTIONS]...
165 Configuration:
166 -h, --help display this help and exit
168 Installation directories:
169 --prefix=DIR use this prefix for installing mplayer [/usr/local]
170 --bindir=DIR use this prefix for installing mplayer binary
171 [PREFIX/bin]
172 --datadir=DIR use this prefix for installing machine independent
173 data files (fonts, skins) [PREFIX/share/mplayer]
174 --mandir=DIR use this prefix for installing manpages [PREFIX/man]
175 --confdir=DIR use this prefix for installing configuration files
176 [PREFIX/etc/mplayer]
177 --libdir=DIR use this prefix for object code libraries [PREFIX/lib]
179 Optional features:
180 --disable-mencoder disable mencoder (a/v encoder) compilation [enable]
181 --enable-gui enable gmplayer compilation (GTK+ GUI) [disable]
182 --enable-old-gtk force using GTK 1.2 for GUI [disable]
183 --enable-largefiles enable support for files > 2 GBytes [disable]
184 --enable-linux-devfs set default devices to devfs ones [disable]
185 --enable-termcap use termcap database for key codes [autodetect]
186 --enable-termios use termios database for key codes [autodetect]
187 --disable-iconv do not use iconv(3) function [autodetect]
188 --disable-setlocale disable setlocale using in mplayer [autodetect]
189 --disable-langinfo do not use langinfo [autodetect]
190 --enable-lirc enable LIRC (remote control) support [autodetect]
191 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
192 --enable-joystick enable joystick support [disable]
193 --disable-vm disable support X video mode extensions [autodetect]
194 --disable-xf86keysym disable support for 'multimedia' keys [autodetect]
195 --disable-tv disable TV Interface (tv/dvb grabbers) [enable]
196 --disable-tv-v4l disable Video4Linux TV Interface support [autodetect]
197 --disable-tv-v4l2 disable Video4Linux2 TV Interface support [autodetect]
198 --disable-tv-bsdbt848 disable BSD BT848 Interface support [autodetect]
199 --disable-edl disable EDL (edit decision list) support [enable]
200 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
201 --disable-network disable network support (for: http/mms/rtp) [enable]
202 --enable-winsock2 enable winsock2 usage [autodetect]
203 --enable-smb enable Samba (SMB) input support [autodetect]
204 --enable-live enable LIVE555 Streaming Media support [autodetect]
205 --disable-dvdread Disable libdvdread support [autodetect]
206 --disable-mpdvdkit Disable mpdvdkit/mpdvdkit2 support [autodetect]
207 --disable-cdparanoia Disable cdparanoia support [autodetect]
208 --disable-freetype Disable freetype2 font rendering support [autodetect]
209 --disable-fontconfig Disable fontconfig font lookup support [autodetect]
210 --disable-unrarlib Disable Unique RAR File Library [enabled]
211 --enable-menu Enable OSD menu support (NOT DVD MENU) [disabled]
212 --disable-sortsub Disable subtitles sorting [enabled]
213 --enable-fribidi Enable using the FriBiDi libs [disabled]
214 --disable-enca Disable using ENCA charset oracle library [autodetect]
215 --disable-macosx Disable Mac OS X specific features [autodetect]
216 --enable-macosx-finder-support Enable Mac OS X Finder invocation parameter parsing [disabled]
217 --enable-macosx-bundle Enable Mac OS X bundle file locations [autodetect]
218 --disable-inet6 Disable IPv6 support [autodetect]
219 --disable-gethostbyname2 gethostbyname() function is not provided by the C
220 library [autodetect]
221 --disable-ftp Disable ftp support [enabled]
222 --disable-vstream Disable tivo vstream client support [autodetect]
223 --disable-pthreads Disable Posix threads support [autodetect]
225 Codecs:
226 --enable-gif enable gif support [autodetect]
227 --enable-png enable png input/output support [autodetect]
228 --enable-jpeg enable jpeg input/output support [autodetect]
229 --enable-libcdio enable external libcdio support [autodetect]
230 --enable-liblzo enable external liblzo support [autodetect]
231 --disable-win32 disable Win32 DLL support [autodetect]
232 --disable-dshow disable Win32/DirectShow support [autodetect]
233 --disable-qtx disable Quicktime codecs [autodetect]
234 --disable-xanim disable XAnim DLL support [autodetect]
235 --disable-real disable RealPlayer DLL support [autodetect]
236 --disable-xvid disable XviD codec [autodetect]
237 --disable-x264 disable H.264 encoder [autodetect]
238 --disable-divx4linux disable DivX4linux/Divx5linux codec [autodetect]
239 --enable-opendivx enable _old_ OpenDivx codec [disable]
240 --disable-libavcodec disable libavcodec [autodetect]
241 --disable-libavformat disable libavformat [autodetect]
242 --enable-libfame enable libfame realtime encoder [autodetect]
243 --disable-internal-tremor do not build internal OggVorbis support [enabled]
244 --enable-tremor-low build with lower accuracy internal tremor [disabled]
245 --enable-external-tremor build with external tremor [disabled]
246 --disable-vorbis disable OggVorbis support entirely [autodetect]
247 --disable-speex disable Speex support [autodetect]
248 --enable-theora build with OggTheora support [autodetect]
249 --disable-internal-matroska disable internal Matroska support [enabled]
250 --enable-external-faad build with external FAAD2 (AAC) support [autodetect]
251 --disable-internal-faad disable internal FAAD2 (AAC) support [autodetect]
252 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
253 --disable-ladspa disable LADSPA plugin support [autodetect]
254 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
255 --disable-mad disable libmad (MPEG audio) support [autodetect]
256 --disable-toolame disable Toolame (MPEG layer 2 audio) support in mencoder [autodetect]
257 --disable-twolame disable Twolame (MPEG layer 2 audio) support in mencoder [autodetect]
258 --enable-xmms build with XMMS inputplugin support [disabled]
259 --disable-mp3lib disable builtin mp3lib [enabled]
260 --disable-liba52 disable builtin liba52 [enabled]
261 --enable-libdts enable libdts support [autodetect]
262 --disable-libmpeg2 disable builtin libmpeg2 [enabled]
263 --disable-musepack disable musepack support [autodetect]
264 --disable-amr_nb disable amr narrowband, floating point [autodetect]
265 --disable-amr_nb-fixed disable amr narrowband, fixed point [autodetect]
266 --disable-amr_wb disable amr wideband, floating point [autodetect]
267 --disable-codec=CODEC disable specified codec
268 --enable-codec=CODEC dnable specified codec
270 Video output:
271 --disable-vidix disable VIDIX [enable on x86 *nix]
272 --enable-gl build with OpenGL render support [autodetect]
273 --enable-dga[=n] build with DGA [n in {1, 2} ] support [autodetect]
274 --enable-vesa build with VESA support [autodetect]
275 --enable-svga build with SVGAlib support [autodetect]
276 --enable-sdl build with SDL render support [autodetect]
277 --enable-aa build with AAlib render support [autodetect]
278 --enable-caca build with CACA render support [autodetect]
279 --enable-ggi build with GGI render support [autodetect]
280 --enable-ggiwmh build with GGI libggiwmh extension [autodetect]
281 --enable-directx build with DirectX support [autodetect]
282 --enable-dxr2 build with DXR2 render support [autodetect]
283 --enable-dxr3 build with DXR3/H+ render support [autodetect]
284 --enable-dvb build with support for output via DVB-Card [autodetect]
285 --enable-dvbhead build with DVB support (HEAD version) [autodetect]
286 --enable-mga build with mga_vid (for Matrox G200/G4x0/G550) support
287 (check for /dev/mga_vid) [autodetect]
288 --enable-xmga build with mga_vid X Window support
289 (check for X & /dev/mga_vid) [autodetect]
290 --enable-xv build with Xv render support for X 4.x [autodetect]
291 --enable-xvmc build with XvMC acceleration for X 4.x [disable]
292 --enable-vm build with XF86VidMode support for X11 [autodetect]
293 --enable-xinerama build with Xinerama support for X11 [autodetect]
294 --enable-x11 build with X11 render support [autodetect]
295 --enable-fbdev build with FBDev render support [autodetect]
296 --enable-mlib build with MLIB support (Solaris only) [autodetect]
297 --enable-3dfx build with obsolete /dev/3dfx support [disable]
298 --enable-tdfxfb build with tdfxfb (Voodoo 3/banshee) support [disable]
299 --enable-directfb build with DirectFB support [autodetect]
300 --enable-zr build with ZR360[56]7/ZR36060 support [autodetect]
301 --enable-bl build with Blinkenlights support [disable]
302 --enable-tdfxvid build with tdfx_vid support [disable]
303 --disable-tga disable targa output support [enable]
304 --disable-pnm disable pnm output support [enable]
305 --disable-md5sum disable md5sum output support [enable]
307 Audio output:
308 --disable-alsa disable ALSA sound support [autodetect]
309 --disable-ossaudio disable OSS sound support [autodetect]
310 --disable-arts disable aRts sound support [autodetect]
311 --disable-esd disable esd sound support [autodetect]
312 --disable-polyp disable Polypaudio sound support [autodetect]
313 --disable-jack disable JACK sound support [autodetect]
314 --disable-nas disable NAS sound support [autodetect]
315 --disable-sgiaudio disable SGI sound support [autodetect]
316 --disable-sunaudio disable Sun sound support [autodetect]
317 --disable-win32waveout disable Windows waveout sound support [autodetect]
318 --disable-select disable using select() on audio device [enable]
320 Miscellaneous options:
321 --enable-runtime-cpudetection Enable runtime CPU detection [disable]
322 --enable-cross-compile Enable cross-compilation [autodetect]
323 --cc=COMPILER use this C compiler to build MPlayer [gcc]
324 --host-cc=COMPILER use this C compiler to build apps needed for the build process [gcc]
325 --as=ASSEMBLER use this assembler to build MPlayer [as]
326 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
327 --enable-static build a statically linked binary. Set further linking
328 options with --enable-static="-lslang -lncurses"
329 --charset convert the help messages to this charset
330 --language=list a white space or comma separated list of languages
331 for translated man pages, the first language is the
332 primary and therefore used for translated messages
333 and GUI (also the environment variable \$LINGUAS is
334 honored) [en]
335 (Available: $LANGUAGES all)
336 --with-install=PATH use a custom install program (useful if your OS uses
337 a GNU-incompatible install utility by default and
338 you want to use GNU version)
339 --install-path=PATH the path to a custom install program
340 this option is obsolete and will be removed soon,
341 use --with-install instead.
343 Advanced options:
344 --enable-mmx build with MMX support [autodetect]
345 --enable-mmx2 build with MMX2 support (PIII, Athlon) [autodetect]
346 --enable-3dnow build with 3DNow! support [autodetect]
347 --enable-3dnowex build with extended 3DNow! support [autodetect]
348 --enable-sse build with SSE support [autodetect]
349 --enable-sse2 build with SSE2 support [autodetect]
350 --enable-shm build with shm support [autodetect]
351 --enable-altivec build with Altivec support (PowerPC) [autodetect]
352 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy() [enable]
353 --enable-big-endian Force byte order to big-endian [autodetect]
354 --enable-debug[=1-3] compile debugging information into mplayer [disable]
355 --enable-profile compile profiling information into mplayer [disable]
356 --disable-sighandler disable sighandler for crashes [enable]
357 --enable-crash-debug enable automatic gdb attach on crash [disable]
358 --enable-i18n _experimental_ gnu gettext() support [autodetect]
359 --enable-dynamic-plugins Enable support for dynamic a/v plugins [disable]
361 Hazardous options a.k.a. "DO NOT REPORT ANY BUGS!"
362 --disable-gcc-checking disable gcc version checking [enable]
364 Use these options if autodetection fails (Options marked with (*) accept
365 multiple paths separated by ':'):
366 --with-extraincdir=DIR extra headers (png, mad, sdl, ...) in DIR (*)
367 --with-extralibdir=DIR extra library files (png, mad, sdl, ...) in DIR (*)
368 --with-x11incdir=DIR X headers in DIR (*)
369 --with-x11libdir=DIR X library files in DIR (*)
370 --with-dxr2incdir=DIR DXR2 headers in DIR (*)
371 --with-dvbincdir=DIR DVB headers in DIR (*)
372 --with-madlibdir=DIR libmad (libmad shared library) in DIR (*)
373 --with-mlibdir=DIR libmlib (MLIB support) in DIR (Solaris only)
374 --with-codecsdir=DIR Binary codec files in DIR
375 --with-win32libdir=DIR W*ndows DLL files in DIR
376 --with-xanimlibdir=DIR XAnim DLL files in DIR
377 --with-reallibdir=DIR RealPlayer DLL files in DIR
378 --with-xvidlibdir=DIR libxvidcore (XviD) in DIR (*)
379 --with-xvidincdir=DIR XviD header in DIR (*)
380 --with-x264libdir=DIR libx264 in DIR
381 --with-x264incdir=DIR x264 header in DIR
382 --with-dtslibdir=DIR libdts library in DIR (*)
383 --with-dtsincdir=DIR libdts header in DIR (*)
384 --with-livelibdir=DIR LIVE555 Streaming Media libraries in DIR
385 --with-toolamedir=DIR path to Toolame library and include file
386 --with-xmmsplugindir=DIR XMMS plugins in DIR
387 --with-xmmslibdir=DIR libxmms.so.1 in DIR
388 --with-cdparanoiaincdir=DIR cdparanoia headers in DIR (*)
389 --with-cdparanoialibdir=DIR cdparanoia libraries (libcdda_*) in DIR (*)
390 --with-xvmclib=NAME name of adapter-specific library (e.g. XvMCNVIDIA)
391 --with-termcaplib=NAME name of library with termcap functionality
392 name should be given without leading "lib"
393 checks for "termcap" and "tinfo"
395 --with-freetype-config=PATH path to freetype-config
396 (e.g. /opt/bin/freetype-config)
397 --with-fribidi-config=PATH path to fribidi-config
398 (e.g. /opt/bin/fribidi-config)
399 --with-glib-config=PATH path to glib*-config (e.g. /opt/bin/glib-config)
400 --with-gtk-config=PATH path to gtk*-config (e.g. /opt/bin/gtk-config)
401 --with-sdl-config=PATH path to sdl*-config (e.g. /opt/bin/sdl-config)
403 This configure script is NOT autoconf-based, even though its output is similar.
404 It will try to autodetect all configuration options. If you --enable an option
405 it will be forcefully turned on, skipping autodetection. This can break
406 compilation, so you need to know what you are doing.
408 exit 0
410 done # for parm in ...
413 # 1st pass checking for vital options
414 _install=install
415 _ranlib=ranlib
416 _cc=cc
417 test "$CC" && _cc="$CC"
418 _as=auto
419 _runtime_cpudetection=no
420 _cross_compile=auto
421 for ac_option do
422 case "$ac_option" in
423 --target=*)
424 _target=`echo $ac_option | cut -d '=' -f 2`
426 --cc=*)
427 _cc=`echo $ac_option | cut -d '=' -f 2`
429 --host-cc=*)
430 _host_cc=`echo $ac_option | cut -d '=' -f 2`
432 --as=*)
433 _as=`echo $ac_option | cut -d '=' -f 2`
435 --enable-gcc-checking)
436 _skip_cc_check=no
438 --disable-gcc-checking)
439 _skip_cc_check=yes
441 --enable-static)
442 _ld_static='-static'
444 --disable-static)
445 _ld_static=''
447 --enable-static=*)
448 _ld_static="-static `echo $ac_option | cut -d '=' -f 2`"
450 --with-extraincdir=*)
451 _inc_extra=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
453 --with-extralibdir=*)
454 _ld_extra=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
456 --enable-runtime-cpudetection)
457 _runtime_cpudetection=yes
459 --disable-runtime-cpudetection)
460 _runtime_cpudetection=no
462 --enable-cross-compile)
463 _cross_compile=yes
465 --disable-cross-compile)
466 _cross_compile=no
468 --install-path=*)
469 _install=`echo $ac_option | cut -d '=' -f 2 | sed 's/\/$//'`"/install"
471 --with-install=*)
472 _install=`echo $ac_option | cut -d '=' -f 2 `
474 esac
475 done
477 # Determine our OS name and CPU architecture
478 if test -z "$_target" ; then
479 # OS name
480 system_name=`uname -s 2>&1`
481 case "$system_name" in
482 Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU|BeOS|MorphOS)
484 IRIX*)
485 system_name=IRIX
487 HP-UX*)
488 system_name=HP-UX
490 [cC][yY][gG][wW][iI][nN]*)
491 system_name=CYGWIN
493 MINGW32*)
494 system_name=MINGW32
497 system_name="$system_name-UNKNOWN"
499 esac
502 # host's CPU/instruction set
503 host_arch=`uname -p 2>&1`
504 case "$host_arch" in
505 i386|sparc|ppc|alpha|arm|mips|vax)
507 powerpc) # Darwin returns 'powerpc'
508 host_arch=ppc
510 *) # uname -p on Linux returns 'unknown' for the processor type,
511 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
513 # Maybe uname -m (machine hardware name) returns something we
514 # recognize.
516 # x86/x86pc is used by QNX
517 case "`uname -m 2>&1`" in
518 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 ;;
519 ia64) host_arch=ia64 ;;
520 x86_64|amd64)
521 if [ -n "`$_cc -dumpmachine | sed -n '/^x86_64-/p;/^amd64-/p'`" -a \
522 -z "`echo $CFLAGS | grep -- -m32`" ]; then
523 host_arch=x86_64
524 else
525 host_arch=i386
528 macppc|ppc|ppc64) host_arch=ppc ;;
529 alpha) host_arch=alpha ;;
530 sparc) host_arch=sparc ;;
531 sparc64) host_arch=sparc64 ;;
532 parisc*|hppa*|9000*) host_arch=hppa ;;
533 arm*) host_arch=arm ;;
534 s390) host_arch=s390 ;;
535 s390x) host_arch=s390x ;;
536 mips*) host_arch=mips ;;
537 vax) host_arch=vax ;;
538 *) host_arch=UNKNOWN ;;
539 esac
541 esac
542 else # if test -z "$_target"
543 system_name=`echo $_target | cut -d '-' -f 2`
544 case "`echo $system_name | tr A-Z a-z`" in
545 linux) system_name=Linux ;;
546 freebsd) system_name=FreeBSD ;;
547 netbsd) system_name=NetBSD ;;
548 bsd/os) system_name=BSD/OS ;;
549 openbsd) system_name=OpenBSD ;;
550 sunos) system_name=SunOS ;;
551 qnx) system_name=QNX ;;
552 morphos) system_name=MorphOS ;;
553 mingw32msvc) system_name=MINGW32 ;;
554 esac
555 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
556 host_arch=`echo $_target | cut -d '-' -f 1 | tr '_' '-'`
559 echo "Detected operating system: $system_name"
560 echo "Detected host architecture: $host_arch"
562 # LGB: temporary files
563 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
564 test "$I" && break
565 done
567 TMPLOG="configure.log"
568 rm -f "$TMPLOG"
569 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
570 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
571 TMPO="$I/mplayer-conf-$RANDOM-$$.o"
572 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
574 # config files
576 # FIXME: A lot of stuff is installed under /usr/local
577 # NK: But we should never use this stuff implicitly since we call compiler
578 # from /usr we should be sure that there no effects from other compilers
579 # (libraries) which might be installed into /usr/local. Let users use this
580 # stuff explicitly as command line argument. In other words: It would be
581 # resonable to have only /usr/include or only /usr/local/include.
583 if freebsd ; then
584 _ld_extra="$_ld_extra -L/usr/local/lib"
585 _inc_extra="$_inc_extra -I/usr/local/include"
588 if netbsd ; then
589 for I in `echo $_ld_extra | sed 's/-L//g'` ; do
590 tmp="$tmp ` echo $I | sed 's/.*/ -L& -Wl,-R&/'`"
591 done
592 _ld_extra=$tmp
595 _ldd=ldd
596 if darwin; then
597 _ldd="otool -L"
600 # Check how to call 'head' and 'tail'. Newer versions spit out warnings
601 # if used as 'head -1' instead of 'head -n 1', but older versions don't
602 # know about '-n'.
603 if test "`(echo line1 ; echo line2) | head -1 2>/dev/null`" = "line1" ; then
604 _head() { head -$1 2>/dev/null ; }
605 else
606 _head() { head -n $1 2>/dev/null ; }
608 if test "`(echo line1 ; echo line2) | tail -1 2>/dev/null`" = "line2" ; then
609 _tail() { tail -$1 2>/dev/null ; }
610 else
611 _tail() { tail -n $1 2>/dev/null ; }
614 # Checking CC version...
615 if test "$_skip_cc_check" != yes ; then
616 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
617 if test "`basename $_cc`" = "icc" || test "`basename $_cc`" = "ecc"; then
618 echocheck "$_cc version"
619 cc_vendor=intel
620 cc_name=`$_cc -V 2>&1 | _head 1 | cut -d ',' -f 1`
621 cc_version=`$_cc -V 2>&1 | _head 1 | cut -d ',' -f 2 | cut -d ' ' -f 3`
622 _cc_major=`echo $cc_version | cut -d '.' -f 1`
623 _cc_minor=`echo $cc_version | cut -d '.' -f 2`
624 # TODO verify older icc/ecc compatibility
625 case $cc_version in
627 cc_version="v. ?.??, bad"
628 cc_verc_fail=yes
630 8.0)
631 cc_version="$cc_version, ok"
632 cc_verc_fail=no
635 cc_version="$cc_version, bad"
636 cc_verc_fail=yes
638 esac
639 echores "$cc_version"
640 else
641 for _cc in "$_cc" gcc gcc-3.4 gcc-3.3 gcc-3.2 gcc-3.1 gcc3 gcc-3.0 cc ; do
642 echocheck "$_cc version"
643 cc_vendor=gnu
644 cc_name=`$_cc -v 2>&1 | _tail 1 | cut -d ' ' -f 1`
645 cc_version=`$_cc -dumpversion 2>&1`
646 if test "$?" -gt 0; then
647 cc_version="not found"
649 case $cc_version in
651 cc_version="v. ?.??, bad"
652 cc_verc_fail=yes
654 2.95.[2-9]|2.95.[2-9][-.]*|[3-4].*)
655 _cc_major=`echo $cc_version | cut -d '.' -f 1`
656 _cc_minor=`echo $cc_version | cut -d '.' -f 2`
657 _cc_mini=`echo $cc_version | cut -d '.' -f 3`
658 cc_version="$cc_version, ok"
659 cc_verc_fail=no
661 'not found')
662 cc_verc_fail=yes
665 cc_version="$cc_version, bad"
666 cc_verc_fail=yes
668 esac
669 echores "$cc_version"
670 test "$cc_verc_fail" = "no" && break
671 done
672 fi # icc
673 if test "$cc_verc_fail" = yes ; then
674 cat <<EOF
676 *** Please downgrade/upgrade C compiler to version gcc-2.95.x or gcc-3.x! ***
678 You are not using a supported compiler. We do not have the time to make sure
679 everything works with compilers other than the ones we use. Use either the
680 same compiler as we do, or use --disable-gcc-checking but DO *NOT* REPORT BUGS
681 unless you can reproduce them after recompiling with a 2.95.x or 3.x version!
683 Note for gcc 2.96 users: Some versions of this compiler are known to miscompile
684 mplayer and lame (which is used for mencoder). If you get compile errors,
685 first upgrade to the latest 2.96 release (minimum 2.96-85) and try again.
686 If the problem still exists, try with gcc 3.x (or 2.95.x) *BEFORE* reporting
687 bugs!
689 GCC 2.96 IS NOT AND WILL NOT BE SUPPORTED BY US !
691 *** For details please read DOCS/HTML/en/users-vs-dev.html ***
694 die "Bad gcc version"
696 else
697 cat <<EOF
699 ******************************************************************************
701 Hmm. You really want to compile MPlayer with an *UNSUPPORTED* C compiler?
702 Ok. You know. Do it. Did you read DOCS/HTML/en/users-vs-dev.html???
704 DO NOT SEND BUGREPORTS OR COMPLAIN, it's *YOUR* compiler's fault!
705 Get ready for mysterious crashes, no-picture bugs, strange noises... REALLY!
706 Lame which is used by mencoder produces weird errors, too.
708 If you have any problem, install a GCC 2.95.x or 3.x version and try again.
709 If the problem _still_ exists, then read DOCS/HTML/en/bugreports.html !
711 *** DO NOT SEND BUG REPORTS OR COMPLAIN it's *YOUR* compiler's fault! ***
713 ******************************************************************************
717 read _answer
720 echocheck "host cc"
721 test "$_host_cc" || _host_cc=$_cc
722 echores $_host_cc
724 echocheck "cross compilation"
725 if test $_cross_compile = auto ; then
726 cat > $TMPC << EOF
727 int main() { return 0; }
729 _cross_compile=yes
730 cc_check && "$TMPO" && _cross_compile=no
732 echores $_cross_compile
734 if test $_cross_compile = yes; then
735 tmp_run() {
736 return 0
740 # ---
742 # now that we know what compiler should be used for compilation, try to find
743 # out which assembler is used by the $_cc compiler
744 if test "$_as" = auto ; then
745 _as=`$_cc -print-prog-name=as`
746 test -z "$_as" && _as=as
749 # XXX: this should be ok..
750 _cpuinfo="echo"
751 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
752 # FIXME: Remove the cygwin check once AMD CPUs are supported
753 if test -r /proc/cpuinfo && not cygwin; then
754 # Linux with /proc mounted, extract CPU information from it
755 _cpuinfo="cat /proc/cpuinfo"
756 elif test -r /compat/linux/proc/cpuinfo && not x86 ; then
757 # FreeBSD with Linux emulation /proc mounted,
758 # extract CPU information from it
759 _cpuinfo="cat /compat/linux/proc/cpuinfo"
760 elif darwin ; then
761 # use hostinfo on Darwin
762 _cpuinfo="hostinfo"
763 elif x86; then
764 # all other OSes try to extract CPU information from a small helper
765 # program TOOLS/cpuinfo instead
766 $_cc -o TOOLS/cpuinfo TOOLS/cpuinfo.c
767 _cpuinfo="TOOLS/cpuinfo"
770 x86_exts_check()
772 pparam=`$_cpuinfo | grep 'features' | cut -d ':' -f 2 | _head 1`
773 if test -z "$pparam" ; then
774 pparam=`$_cpuinfo | grep 'flags' | cut -d ':' -f 2 | _head 1`
777 _mmx=no
778 _3dnow=no
779 _3dnowex=no
780 _mmx2=no
781 _sse=no
782 _sse2=no
783 _mtrr=no
785 for i in $pparam ; do
786 case "$i" in
787 3dnow) _3dnow=yes ;;
788 3dnowext) _3dnow=yes _3dnowex=yes ;;
789 mmx) _mmx=yes ;;
790 mmxext) _mmx2=yes ;;
791 mtrr|k6_mtrr|cyrix_arr) _mtrr=yes ;;
792 xmm|sse|kni) _sse=yes _mmx2=yes ;;
793 sse2) _sse2=yes ;;
794 esac
795 done
798 if x86 || x86_64 ; then
799 # gather more CPU information
800 pname=`$_cpuinfo | grep 'model name' | cut -d ':' -f 2 | _head 1`
801 pvendor=`$_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
802 pfamily=`$_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
803 pmodel=`$_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
804 pstepping=`$_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
806 x86_exts_check
808 echocheck "CPU vendor"
809 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
811 echocheck "CPU type"
812 echores "$pname"
815 case "$host_arch" in
816 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
817 _def_arch="#define ARCH_X86 1"
818 _target_arch="TARGET_ARCH_X86 = yes"
821 case "$pvendor" in
822 AuthenticAMD)
823 case "$pfamily" in
824 3) proc=i386 iproc=386 ;;
825 4) proc=i486 iproc=486 ;;
826 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
827 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
828 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
829 proc=k6-3
830 elif test "$pmodel" -ge 8; then
831 proc=k6-2
832 elif test "$pmodel" -ge 6; then
833 proc=k6
834 else
835 proc=i586
836 iproc=586
839 6) iproc=686
840 if test "$pmodel" -ge 7; then
841 proc=athlon-4
842 elif test "$pmodel" -ge 6; then
843 # only Athlon XP supports ssem MP, Duron etc not
844 # but most of them are CPUID 666, so check if sse detected
845 # btw. there is also athlon-mp opt, but we need extended
846 # CPUID to detect if CPU is SMP capable -> athlon-mp ::atmos
847 if test "$_sse" = yes && test "$pstepping" -ge 2; then
848 proc=athlon-xp
849 else
850 proc=athlon-4
852 elif test "$pmodel" -ge 4; then
853 proc=athlon-tbird
854 else
855 proc=athlon # TODO: should the Duron Spitfire be considered a Thunderbird instead?
858 15) iproc=686
859 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
860 # caught and remedied in the optimization tests below.
861 proc=k8
864 *) proc=athlon-xp iproc=686 ;;
865 esac
867 GenuineIntel)
868 case "$pfamily" in
869 3) proc=i386 iproc=386 ;;
870 4) proc=i486 iproc=486 ;;
871 5) iproc=586
872 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
873 proc=pentium-mmx # 4 is desktop, 8 is mobile
874 else
875 proc=i586
878 6) iproc=686
879 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
880 proc=pentium-m
881 elif test "$pmodel" -ge 7; then
882 proc=pentium3
883 elif test "$pmodel" -ge 3; then
884 proc=pentium2
885 else
886 proc=i686
889 15) iproc=686
890 # A nocona in 32-bit mode has no more capabilities than a prescott.
891 if test "$pmodel" -ge 3; then
892 proc=prescott
893 else
894 proc=pentium4
897 *) proc=prescott iproc=686 ;;
898 esac
900 CentaurHauls)
901 case "$pfamily" in
902 5) iproc=586
903 if test "$pmodel" -ge 8; then
904 proc=winchip2
905 elif test "$pmodel" -ge 4; then
906 proc=winchip-c6
907 else
908 proc=i586
911 6) iproc=686
912 # VIA C3 has SSE, but doesn't have MMX2
913 # workaround for SSE => MMX2 implication above
914 _mmx2=no
915 if test "$pmodel" -ge 9; then
916 proc=c3-2
917 elif test "$pmodel" -ge 7; then
918 proc=c3
919 else
920 proc=i686
923 *) proc=i686 iproc=i686 ;;
924 esac
926 unknown)
927 case "$pfamily" in
928 3) proc=i386 iproc=386 ;;
929 4) proc=i486 iproc=486 ;;
930 *) proc=i586 iproc=586 ;;
931 esac
934 proc=i586 iproc=586 ;;
935 esac
937 # check that gcc supports our CPU, if not, fall back to earlier ones
938 # LGB: check -mcpu and -march swithing step by step with enabling
939 # to fall back till 386.
941 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
943 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
944 cpuopt=-mtune
945 else
946 cpuopt=-mcpu
949 echocheck "GCC & CPU optimization abilities"
950 cat > $TMPC << EOF
951 int main(void) { return 0; }
953 if test "$_runtime_cpudetection" = no ; then
954 if test "$proc" = "k8" -o "$proc" = "opteron" -o "$proc" = "athlon64" -o "$proc" = "athlon-fx" ; then
955 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
957 if test "$proc" = "athlon-xp" || test "$proc" = "athlon-4" || test "$proc" = "athlon-tbird"; then
958 cc_check -march=$proc $cpuopt=$proc || proc=athlon
960 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
961 cc_check -march=$proc $cpuopt=$proc || proc=k6
963 if test "$proc" = "k6"; then
964 if not cc_check -march=$proc $cpuopt=$proc; then
965 if cc_check -march=i586 $cpuopt=i686; then
966 proc=i586-i686
967 else
968 proc=i586
972 if test "$proc" = "pentium4" || test "$proc" = "pentium-m" || test "$proc" = "pentium3" || test "$proc" = "pentium2" || test "$proc" = "athlon" || test "$proc" = "c3-2"; then
973 cc_check -march=$proc $cpuopt=$proc || proc=i686
975 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
976 cc_check -march=$proc $cpuopt=$proc || proc=i586
978 if test "$proc" = "i586" || test "$proc" = "c3" || test "$proc" = "c3-2"; then
979 cc_check -march=$proc $cpuopt=$proc || proc=i486
981 if test "$proc" = "i486" ; then
982 cc_check -march=$proc $cpuopt=$proc || proc=i386
984 if test "$proc" = "i386" ; then
985 cc_check -march=$proc $cpuopt=$proc || proc=error
987 if test "$proc" = "error" ; then
988 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
989 _mcpu=""
990 _march=""
991 _optimizing=""
992 elif test "$proc" = "i586-i686"; then
993 _march="-march=i586"
994 _mcpu="$cpuopt=i686"
995 _optimizing="$proc"
996 else
997 _march="-march=$proc"
998 _mcpu="$cpuopt=$proc"
999 _optimizing="$proc"
1001 else # if test "$_runtime_cpudetection" = no
1002 # i686 is probably the most common CPU - optimize for it
1003 _mcpu="$cpuopt=i686"
1004 # at least i486 required, for bswap instruction
1005 _march="-march=i486"
1006 cc_check $_mcpu || _mcpu=""
1007 cc_check $_march $_mcpu || _march=""
1010 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1011 ## autodetected mcpu/march parameters
1012 if test "$_target" ; then
1013 # TODO: it may be a good idea to check GCC and fall back in all cases
1014 if test "$host_arch" = "i586-i686"; then
1015 _march="-march=i586"
1016 _mcpu="$cpuopt=i686"
1017 else
1018 _march="-march=$host_arch"
1019 _mcpu="$cpuopt=$host_arch"
1022 proc="$host_arch"
1024 case "$proc" in
1025 i386) iproc=386 ;;
1026 i486) iproc=486 ;;
1027 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1028 i686|athlon*|pentium*) iproc=686 ;;
1029 *) iproc=586 ;;
1030 esac
1033 echores "$proc"
1036 ia64)
1037 _def_arch='#define ARCH_IA64 1'
1038 _target_arch='TARGET_ARCH_IA64 = yes'
1039 iproc='ia64'
1040 proc=''
1041 _march=''
1042 _mcpu=''
1043 _optimizing=''
1046 x86_64|amd64)
1047 _def_arch='#define ARCH_X86_64 1'
1048 _target_arch='TARGET_ARCH_X86_64 = yes'
1049 iproc='x86_64'
1051 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1052 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1053 cpuopt=-mtune
1054 else
1055 cpuopt=-mcpu
1057 case "$pvendor" in
1058 AuthenticAMD)
1059 proc=k8;;
1060 GenuineIntel)
1061 # 64-bit prescotts exist, but as far as GCC is concerned they have the
1062 # same capabilities as a nocona.
1063 proc=nocona;;
1065 proc=error;;
1066 esac
1068 echocheck "GCC & CPU optimization abilities"
1069 cat > $TMPC << EOF
1070 int main(void) { return 0; }
1072 # This is a stripped-down version of the i386 fallback.
1073 if test "$_runtime_cpudetection" = no ; then
1074 # --- AMD processors ---
1075 if test "$proc" = "k8" -o "$proc" = "opteron" -o "$proc" = "athlon64" -o "$proc" = "athlon-fx" ; then
1076 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1078 # This will fail if gcc version < 3.3, which is ok because earlier
1079 # versions don't really support 64-bit on amd64.
1080 # Is this a valid assumption? -Corey
1081 if test "$proc" = "athlon-xp" || test "$proc" = "athlon-4" ; then
1082 cc_check -march=$proc $cpuopt=$proc || proc=error
1084 # --- Intel processors ---
1085 if test "$proc" = "nocona" || test "$proc" = "prescott" ; then
1086 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1088 if test "$proc" = "pentium4" || test "$proc" = "pentium4m" ; then
1089 cc_check -march=$proc $cpuopt=$proc || proc=error
1092 _march="-march=$proc"
1093 _mcpu="$cpuopt=$proc"
1094 if test "$proc" = "error" ; then
1095 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1096 _mcpu=""
1097 _march=""
1099 else
1100 _march=""
1101 _mcpu=""
1104 _optimizing=""
1106 echores "$proc"
1108 x86_exts_check
1111 sparc)
1112 _def_arch='#define ARCH_SPARC 1'
1113 _target_arch='TARGET_ARCH_SPARC = yes'
1114 iproc='sparc'
1115 if sunos ; then
1116 echocheck "CPU type"
1117 karch=`uname -m`
1118 case "`echo $karch`" in
1119 sun4) proc=v7 ;;
1120 sun4c) proc=v7 ;;
1121 sun4d) proc=v8 ;;
1122 sun4m) proc=v8 ;;
1123 sun4u) proc=v9 _vis='yes' _def_vis='#define HAVE_VIS = yes' ;;
1124 *) ;;
1125 esac
1126 echores "$proc"
1127 else
1128 proc=v8
1130 _march=''
1131 _mcpu="-mcpu=$proc"
1132 _optimizing="$proc"
1135 sparc64)
1136 _def_arch='#define ARCH_SPARC 1'
1137 _target_arch='TARGET_ARCH_SPARC = yes'
1138 _vis='yes'
1139 _def_vis='#define HAVE_VIS = yes'
1140 iproc='sparc'
1141 proc='v9'
1142 _march=''
1143 _mcpu="-mcpu=$proc"
1144 _optimizing="$proc"
1147 arm|armv4l|armv5tel)
1148 _def_arch='#define ARCH_ARMV4L 1'
1149 _target_arch='TARGET_ARCH_ARMV4L = yes'
1150 iproc='arm'
1151 proc=''
1152 _march=''
1153 _mcpu=''
1154 _optimizing=''
1157 ppc)
1158 _def_arch='#define ARCH_POWERPC 1'
1159 _def_dcbzl='#define NO_DCBZL 1'
1160 _target_arch='TARGET_ARCH_POWERPC = yes'
1161 iproc='ppc'
1162 proc=''
1163 _march=''
1164 _mcpu=''
1165 _optimizing=''
1166 _altivec=no
1168 echocheck "CPU type"
1169 case $system_name in
1170 Linux)
1171 proc=`$_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | _head 1`
1172 if test -n "`$_cpuinfo | grep altivec`"; then
1173 _altivec=yes
1176 Darwin)
1177 proc=`$_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//'`
1178 if [ `sysctl -n hw.vectorunit` -eq 1 -o \
1179 "`sysctl -n hw.optional.altivec 2>/dev/null`" -eq 1 ]; then
1180 _altivec=yes
1183 NetBSD)
1184 # only gcc 3.4 works reliably with AltiVec code under NetBSD
1185 case $cc_version in
1186 2*|3.0*|3.1*|3.2*|3.3*)
1189 if [ `sysctl -n machdep.altivec` -eq 1 ]; then
1190 _altivec=yes
1193 esac
1195 esac
1196 if test "$_altivec" = yes; then
1197 echores "$proc altivec"
1198 else
1199 echores "$proc"
1202 echocheck "GCC & CPU optimization abilities"
1204 if test -n "$proc"; then
1205 case "$proc" in
1206 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
1207 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
1208 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
1209 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
1210 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
1211 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
1212 *) ;;
1213 esac
1214 # gcc 3.1(.1) and up supports 7400 and 7450
1215 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
1216 case "$proc" in
1217 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
1218 7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
1219 *) ;;
1220 esac
1222 # gcc 3.2 and up supports 970
1223 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
1224 case "$proc" in
1225 970*) _march='-mcpu=970' _mcpu='-mtune=970'
1226 _def_dcbzl='#undef NO_DCBZL' ;;
1227 *) ;;
1228 esac
1232 if test -n "$_mcpu"; then
1233 _optimizing=`echo $_mcpu | cut -c 8-`
1234 echores "$_optimizing"
1235 else
1236 echores "none"
1241 alpha)
1242 _def_arch='#define ARCH_ALPHA 1'
1243 _target_arch='TARGET_ARCH_ALPHA = yes'
1244 iproc='alpha'
1245 _march=''
1247 echocheck "CPU type"
1248 cat > $TMPC << EOF
1249 int main() {
1250 unsigned long ver, mask;
1251 asm ("implver %0" : "=r" (ver));
1252 asm ("amask %1, %0" : "=r" (mask) : "r" (-1));
1253 printf("%ld-%x\n", ver, ~mask);
1254 return 0;
1257 $_cc -o "$TMPO" "$TMPC"
1258 case `"$TMPO"` in
1260 0-0) proc="ev4"; cpu_understands_mvi="0";;
1261 1-0) proc="ev5"; cpu_understands_mvi="0";;
1262 1-1) proc="ev56"; cpu_understands_mvi="0";;
1263 1-101) proc="pca56"; cpu_understands_mvi="1";;
1264 2-303) proc="ev6"; cpu_understands_mvi="1";;
1265 2-307) proc="ev67"; cpu_understands_mvi="1";;
1266 2-1307) proc="ev68"; cpu_understands_mvi="1";;
1267 esac
1268 echores "$proc"
1270 echocheck "GCC & CPU optimization abilities"
1271 if test "$proc" = "ev68" ; then
1272 cc_check -mcpu=$proc || proc=ev67
1274 if test "$proc" = "ev67" ; then
1275 cc_check -mcpu=$proc || proc=ev6
1277 _mcpu="-mcpu=$proc"
1278 echores "$proc"
1280 _optimizing="$proc"
1282 echocheck "MVI instruction support in GCC"
1283 if test "$_cc_major" -ge "3" && test "$cpu_understands_mvi" = "1" ; then
1284 _def_gcc_mvi_support="#define CAN_COMPILE_ALPHA_MVI 1"
1285 echores "yes"
1286 else
1287 _def_gcc_mvi_support="#undef CAN_COMPILE_ALPHA_MVI"
1288 echores "no, GCC = `$_cc -dumpversion 2>&1` (must be >= 3), CPU = $proc (must be pca56 or later)"
1292 mips)
1293 _def_arch='#define ARCH_SGI_MIPS 1'
1294 _target_arch='TARGET_ARCH_SGI_MIPS = yes'
1295 iproc='sgi-mips'
1296 proc=''
1297 _march=''
1298 _mcpu=''
1299 _optimizing=''
1301 if irix ; then
1302 echocheck "CPU type"
1303 proc=`hinv -c processor | grep CPU | cut -d " " -f3`
1304 case "`echo $proc`" in
1305 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
1306 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
1307 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
1308 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
1309 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
1310 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
1311 esac
1312 echores "$proc"
1317 hppa)
1318 _def_arch='#define ARCH_PA_RISC 1'
1319 _target_arch='TARGET_ARCH_PA_RISC = yes'
1320 iproc='PA-RISC'
1321 proc=''
1322 _march=''
1323 _mcpu=''
1324 _optimizing=''
1327 s390)
1328 _def_arch='#define ARCH_S390 1'
1329 _target_arch='TARGET_ARCH_S390 = yes'
1330 iproc='390'
1331 proc=''
1332 _march=''
1333 _mcpu=''
1334 _optimizing=''
1337 s390x)
1338 _def_arch='#define ARCH_S390X 1'
1339 _target_arch='TARGET_ARCH_S390X = yes'
1340 iproc='390x'
1341 proc=''
1342 _march=''
1343 _mcpu=''
1344 _optimizing=''
1347 vax)
1348 _def_arch='#define ARCH_VAX 1'
1349 _target_arch='TARGET_ARCH_VAX = yes'
1350 iproc='vax'
1351 proc=''
1352 _march=''
1353 _mcpu=''
1354 _optimizing=''
1358 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
1359 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
1360 die "unsupported architecture $host_arch"
1362 esac # case "$host_arch" in
1364 if test "$_runtime_cpudetection" = yes ; then
1365 if x86; then
1366 _mmx=yes
1367 _3dnow=yes
1368 _3dnowex=yes
1369 _mmx2=yes
1370 _sse=yes
1371 _sse2=yes
1372 _mtrr=yes
1374 if ppc; then
1375 _altivec=yes
1379 if x86 && test "$_runtime_cpudetection" = no ; then
1380 extcheck() {
1381 if test "$1" = yes ; then
1382 echocheck "kernel support of $2"
1383 cat > $TMPC <<EOF
1384 #include <signal.h>
1385 void catch() { exit(1); }
1386 int main(void){
1387 signal(SIGILL, catch);
1388 __asm__ __volatile__ ("$3":::"memory");return(0);
1392 if cc_check && tmp_run ; then
1393 echores "yes"
1394 _optimizing="$_optimizing $2"
1395 return 0
1396 else
1397 echores "failed"
1398 echo "It seems that your kernel does not correctly support $2."
1399 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1400 return 1
1403 return 0
1406 extcheck $_mmx "mmx" "emms" || _mmx=no
1407 extcheck $_mmx2 "mmx2" "sfence" || _mmx2=no
1408 extcheck $_3dnow "3dnow" "femms" || _3dnow=no
1409 extcheck $_3dnowex "3dnowex" "pswapd %%mm0, %%mm0" || _3dnowex=no
1410 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _sse=no _gcc3_ext="$_gcc3_ext -mno-sse"
1411 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _sse2=no _gcc3_ext="$_gcc3_ext -mno-sse2"
1412 echocheck "mtrr support"
1413 echores "$_mtrr"
1415 if test "$_mtrr" = yes ; then
1416 _optimizing="$_optimizing mtrr"
1419 if test "$_gcc3_ext" != ""; then
1420 # if we had to disable sse/sse2 because the active kernel does not
1421 # support this instruction set extension, we also have to tell
1422 # gcc3 to not generate sse/sse2 instructions for normal C code
1423 cat > $TMPC << EOF
1424 int main(void) { return 0; }
1426 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1431 echocheck "assembler support of -pipe option"
1432 cat > $TMPC << EOF
1433 int main(void) { return 0; }
1435 cc_check -pipe && _pipe="-pipe" && echores "yes" || echores "no"
1437 _prefix="/usr/local"
1438 _xvmclib="XvMCNVIDIA"
1440 # GOTCHA: the variables below defines the default behavior for autodetection
1441 # and have - unless stated otherwise - at least 2 states : yes no
1442 # If autodetection is available then the third state is: auto
1443 _libavcodec=auto
1444 _amr_nb=auto
1445 _amr_nb_fixed=auto
1446 _amr_wb=auto
1447 _libavcodecs=`grep 'register_avcodec(&[a-z]' libavcodec/allcodecs.c | sed 's/.*&\(.*\)).*/\1/'`
1448 _libavcodecso=auto
1449 _libavformat=auto
1450 _fame=auto
1451 _mp1e=no
1452 _mencoder=yes
1453 _x11=auto
1454 _dga=auto # 1 2 no auto
1455 _xv=auto
1456 _xvmc=no #auto when complete
1457 _sdl=auto
1458 _directx=auto
1459 _win32waveout=auto
1460 _nas=auto
1461 _png=auto
1462 _jpg=auto
1463 _pnm=yes
1464 _md5sum=yes
1465 _gif=auto
1466 _gl=auto
1467 _ggi=auto
1468 _ggiwmh=auto
1469 _aa=auto
1470 _caca=auto
1471 _svga=auto
1472 _vesa=auto
1473 _fbdev=auto
1474 _dvb=auto
1475 _dvbhead=auto
1476 _dxr2=auto
1477 _dxr3=auto
1478 _iconv=auto
1479 _langinfo=auto
1480 _rtc=auto
1481 _ossaudio=auto
1482 _arts=auto
1483 _esd=auto
1484 _polyp=auto
1485 _jack=auto
1486 _libcdio=auto
1487 _liblzo=auto
1488 _mad=auto
1489 _toolame=auto
1490 _twolame=auto
1491 _tremor_internal=yes
1492 _tremor_low=no
1493 _vorbis=auto
1494 _speex=auto
1495 _theora=auto
1496 _mp3lib=yes
1497 _liba52=yes
1498 _libdts=auto
1499 _libmpeg2=yes
1500 _matroska_internal=yes
1501 _tremor=no
1502 _faad_internal=auto
1503 _faad_external=auto
1504 _faac=auto
1505 _ladspa=auto
1506 _xmms=no
1507 # dvdnav disabled, it does not work
1508 #_dvdnav=no
1509 _dvdread=auto
1510 _dvdkit=auto
1511 _xanim=auto
1512 _real=auto
1513 _live=auto
1514 _xinerama=auto
1515 _mga=auto
1516 _xmga=auto
1517 _vm=auto
1518 _xf86keysym=auto
1519 _mlib=auto
1520 _sgiaudio=auto
1521 _sunaudio=auto
1522 _alsa=auto
1523 _fastmemcpy=yes
1524 _unrarlib=yes
1525 _win32=auto
1526 _dshow=yes
1527 _select=yes
1528 _tv=yes
1529 _tv_v4l=auto
1530 _tv_v4l2=auto
1531 _tv_bsdbt848=auto
1532 _edl=yes
1533 _network=yes
1534 _winsock2=auto
1535 _smbsupport=auto
1536 _vidix=auto
1537 _joystick=no
1538 _xvid=auto
1539 _x264=auto
1540 _divx4linux=auto
1541 _opendivx=no
1542 _lirc=auto
1543 _lircc=auto
1544 _gui=no
1545 _gtk1=no
1546 _termcap=auto
1547 _termios=auto
1548 _3dfx=no
1549 _tdfxfb=no
1550 _tdfxvid=no
1551 _tga=yes
1552 _directfb=auto
1553 _zr=auto
1554 _bl=no
1555 _largefiles=no
1556 #_language=en
1557 _shm=auto
1558 _linux_devfs=no
1559 #_charset=utf8
1560 _i18n=auto
1561 _dynamic_plugins=no
1562 _crash_debug=auto
1563 _sighandler=yes
1564 _libdv=auto
1565 _cdparanoia=auto
1566 _big_endian=auto
1567 _freetype=auto
1568 _fontconfig=auto
1569 _menu=no
1570 _qtx=auto
1571 _macosx=auto
1572 _macosx_finder_support=no
1573 _macosx_bundle=auto
1574 _sortsub=yes
1575 _freetypeconfig='freetype-config'
1576 _fribidi=no
1577 _fribidiconfig='fribidi-config'
1578 _enca=auto
1579 _inet6=auto
1580 _gethostbyname2=auto
1581 _ftp=yes
1582 _musepack=auto
1583 _vstream=auto
1584 _pthreads=yes
1585 for ac_option do
1586 case "$ac_option" in
1587 # Skip 1st pass
1588 --target=*) ;;
1589 --cc=*) ;;
1590 --host-cc=*) ;;
1591 --as=*) ;;
1592 --enable-gcc-checking) ;;
1593 --disable-gcc-checking) ;;
1594 --enable-static*) ;;
1595 --disable-static*) ;;
1596 --with-extraincdir=*) ;;
1597 --with-extralibdir=*) ;;
1598 --enable-runtime-cpudetection) ;;
1599 --disable-runtime-cpudetection) ;;
1600 --enable-cross-compile) ;;
1601 --disable-cross-compile) ;;
1602 --install-path=*) ;;
1603 --with-install=*) ;;
1605 # Real 2nd pass
1606 --enable-mencoder) _mencoder=yes ;;
1607 --disable-mencoder) _mencoder=no ;;
1608 --enable-i18n) _i18n=yes ;;
1609 --disable-i18n) _i18n=no ;;
1610 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
1611 --disable-dynamic-plugins) _dynamic_plugins=no ;;
1612 --enable-x11) _x11=yes ;;
1613 --disable-x11) _x11=no ;;
1614 --enable-xv) _xv=yes ;;
1615 --disable-xv) _xv=no ;;
1616 --enable-xvmc) _xvmc=yes ;;
1617 --disable-xvmc) _xvmc=no ;;
1618 --enable-sdl) _sdl=yes ;;
1619 --disable-sdl) _sdl=no ;;
1620 --enable-directx) _directx=yes ;;
1621 --disable-directx) _directx=no ;;
1622 --enable-win32waveout) _win32waveout=yes ;;
1623 --disable-win32waveout) _win32waveout=no ;;
1624 --enable-nas) _nas=yes ;;
1625 --disable-nas) _nas=no ;;
1626 --enable-png) _png=yes ;;
1627 --disable-png) _png=no ;;
1628 --enable-jpeg) _jpg=yes ;;
1629 --disable-jpeg) _jpg=no ;;
1630 --enable-pnm) _pnm=yes ;;
1631 --disable-pnm) _pnm=no ;;
1632 --enable-md5sum) _md5sum=yes ;;
1633 --disable-md5sum) _md5sum=no ;;
1634 --enable-gif) _gif=yes ;;
1635 --disable-gif) _gif=no ;;
1636 --enable-gl) _gl=yes ;;
1637 --disable-gl) _gl=no ;;
1638 --enable-ggi) _ggi=yes ;;
1639 --disable-ggi) _ggi=no ;;
1640 --enable-ggiwmh) _ggiwmh=yes ;;
1641 --disable-ggiwmh) _ggiwmh=no ;;
1642 --enable-aa) _aa=yes ;;
1643 --disable-aa) _aa=no ;;
1644 --enable-caca) _caca=yes ;;
1645 --disable-caca) _caca=no ;;
1646 --enable-svga) _svga=yes ;;
1647 --disable-svga) _svga=no ;;
1648 --enable-vesa) _vesa=yes ;;
1649 --disable-vesa) _vesa=no ;;
1650 --enable-fbdev) _fbdev=yes ;;
1651 --disable-fbdev) _fbdev=no ;;
1652 --enable-dvb) _dvb=yes ;;
1653 --disable-dvb) _dvb=no ;;
1654 --enable-dvbhead) _dvbhead=yes ;;
1655 --disable-dvbhead) _dvbhead=no ;;
1656 --enable-dxr2) _dxr2=yes ;;
1657 --disable-dxr2) _dxr2=no ;;
1658 --enable-dxr3) _dxr3=yes ;;
1659 --disable-dxr3) _dxr3=no ;;
1660 --enable-iconv) _iconv=yes ;;
1661 --disable-iconv) _iconv=no ;;
1662 --enable-langinfo) _langinfo=yes ;;
1663 --disable-langinfo) _langinfo=no ;;
1664 --enable-rtc) _rtc=yes ;;
1665 --disable-rtc) _rtc=no ;;
1666 --enable-mp1e) _mp1e=yes ;;
1667 --disable-mp1e) _mp1e=no ;;
1668 --enable-libdv) _libdv=yes ;;
1669 --disable-libdv) _libdv=no ;;
1670 --enable-ossaudio) _ossaudio=yes ;;
1671 --disable-ossaudio) _ossaudio=no ;;
1672 --enable-arts) _arts=yes ;;
1673 --disable-arts) _arts=no ;;
1674 --enable-esd) _esd=yes ;;
1675 --disable-esd) _esd=no ;;
1676 --enable-polyp) _polyp=yes ;;
1677 --disable-polyp) _polyp=no ;;
1678 --enable-jack) _jack=yes ;;
1679 --disable-jack) _jack=no ;;
1680 --enable-mad) _mad=yes ;;
1681 --disable-mad) _mad=no ;;
1682 --disable-toolame) _toolame=no ;;
1683 --disable-twolame) _twolame=no ;;
1684 --enable-libcdio) _libcdio=yes ;;
1685 --disable-libcdio) _libcdio=no ;;
1686 --enable-liblzo) _liblzo=yes ;;
1687 --disable-liblzo) _liblzo=no ;;
1688 --enable-vorbis) _vorbis=yes ;;
1689 --disable-vorbis) _vorbis=no ;;
1690 --enable-speex) _speex=yes ;;
1691 --disable-speex) _speex=no ;;
1692 --enable-internal-tremor) _tremor_internal=yes ;;
1693 --disable-internal-tremor) _tremor_internal=no ;;
1694 --enable-tremor-low) _tremor_low=yes ;;
1695 --disable-tremor-low) _tremor_low=no ;;
1696 --enable-external-tremor) _tremor=yes ;;
1697 --disable-external-tremor) _tremor=no ;;
1698 --enable-theora) _theora=yes ;;
1699 --disable-theora) _theora=no ;;
1700 --enable-mp3lib) _mp3lib=yes ;;
1701 --disable-mp3lib) _mp3lib=no ;;
1702 --enable-liba52) _liba52=yes ;;
1703 --disable-liba52) _liba52=no ;;
1704 --enable-libdts) _libdts=yes ;;
1705 --disable-libdts) _libdts=no ;;
1706 --enable-libmpeg2) _libmpeg2=yes ;;
1707 --disable-libmpeg2) _libmpeg2=no ;;
1708 --enable-musepack) _musepack=yes ;;
1709 --disable-musepack) _musepack=no ;;
1710 --enable-internal-matroska) _matroska_internal=yes ;;
1711 --disable-internal-matroska) _matroska_internal=no ;;
1712 --enable-internal-faad) _faad_internal=yes _faad_external=no ;;
1713 --disable-internal-faad) _faad_internal=no ;;
1714 --enable-external-faad) _faad_external=yes _faad_internal=no ;;
1715 --disable-external-faad) _faad_external=no ;;
1716 --enable-faac) _faac=yes ;;
1717 --disable-faac) _faac=no ;;
1718 --enable-ladspa) _ladspa=yes ;;
1719 --disable-ladspa) _ladspa=no ;;
1720 --enable-xmms) _xmms=yes ;;
1721 --disable-xmms) _xmms=no ;;
1722 --enable-dvdread) _dvdread=yes ;;
1723 --disable-dvdread) _dvdread=no ;;
1724 --enable-mpdvdkit) _dvdkit=yes ;;
1725 --disable-mpdvdkit) _dvdkit=no ;;
1726 # dvdnav disabled, it does not work
1727 # --enable-dvdnav) _dvdnav=yes ;;
1728 # --disable-dvdnav) _dvdnav=no ;;
1729 --enable-xanim) _xanim=yes ;;
1730 --disable-xanim) _xanim=no ;;
1731 --enable-real) _real=yes ;;
1732 --disable-real) _real=no ;;
1733 --enable-live) _live=yes ;;
1734 --disable-live) _live=no ;;
1735 --enable-xinerama) _xinerama=yes ;;
1736 --disable-xinerama) _xinerama=no ;;
1737 --enable-mga) _mga=yes ;;
1738 --disable-mga) _mga=no ;;
1739 --enable-xmga) _xmga=yes ;;
1740 --disable-xmga) _xmga=no ;;
1741 --enable-vm) _vm=yes ;;
1742 --disable-vm) _vm=no ;;
1743 --enable-xf86keysym) _xf86keysym=yes ;;
1744 --disable-xf86keysym) _xf86keysym=no ;;
1745 --enable-mlib) _mlib=yes ;;
1746 --disable-mlib) _mlib=no ;;
1747 --enable-sunaudio) _sunaudio=yes ;;
1748 --disable-sunaudio) _sunaudio=no ;;
1749 --enable-sgiaudio) _sgiaudio=yes ;;
1750 --disable-sgiaudio) _sgiaudio=no ;;
1751 --enable-alsa) _alsa=yes ;;
1752 --disable-alsa) _alsa=no ;;
1753 --enable-tv) _tv=yes ;;
1754 --disable-tv) _tv=no ;;
1755 --enable-edl) _edl=yes ;;
1756 --disable-edl) _edl=no ;;
1757 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1758 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1759 --enable-tv-v4l) _tv_v4l=yes ;;
1760 --disable-tv-v4l) _tv_v4l=no ;;
1761 --enable-tv-v4l2) _tv_v4l2=yes ;;
1762 --disable-tv-v4l2) _tv_v4l2=no ;;
1763 --enable-fastmemcpy) _fastmemcpy=yes ;;
1764 --disable-fastmemcpy) _fastmemcpy=no ;;
1765 --enable-network) _network=yes ;;
1766 --disable-network) _network=no ;;
1767 --enable-winsock2) _winsock2=yes ;;
1768 --disable-winsock2) _winsock2=no ;;
1769 --enable-smb) _smbsupport=yes ;;
1770 --disable-smb) _smbsupport=no ;;
1771 --enable-vidix) _vidix=yes ;;
1772 --disable-vidix) _vidix=no ;;
1773 --enable-joystick) _joystick=yes ;;
1774 --disable-joystick) _joystick=no ;;
1775 --enable-xvid) _xvid=yes ;;
1776 --disable-xvid) _xvid=no ;;
1777 --enable-x264) _x264=yes ;;
1778 --disable-x264) _x264=no ;;
1779 --enable-divx4linux) _divx4linux=yes ;;
1780 --disable-divx4linux) _divx4linux=no ;;
1781 --enable-opendivx) _opendivx=yes ;;
1782 --disable-opendivx) _opendivx=no ;;
1783 --enable-libavcodec) _libavcodec=yes ;;
1784 --disable-libavcodec) _libavcodec=no ;;
1785 --enable-amr_nb) _amr_nb=yes ;;
1786 --disable-amr_nb) _amr_nb=no ;;
1787 --enable-amr_nb-fixed) _amr_nb_fixed=yes ;;
1788 --disable-amr_nb-fixed) _amr_nb_fixed=no ;;
1789 --enable-amr_wb) _amr_wb=yes ;;
1790 --disable-amr_wb) _amr_wb=no ;;
1791 --enable-codec=*) _libavcodecs="$_libavcodecs `echo $ac_option | cut -d '=' -f 2`" ;;
1792 --disable-codec=*) _libavcodecs=`echo $_libavcodecs | sed "s/\`echo $ac_option | cut -d '=' -f 2\`//g"` ;;
1793 --enable-libavformat) _libavformat=yes;;
1794 --disable-libavformat) _libavformat=no ;;
1795 --enable-libfame) _fame=yes ;;
1796 --disable-libfame) _fame=no ;;
1797 --enable-lirc) _lirc=yes ;;
1798 --disable-lirc) _lirc=no ;;
1799 --enable-lircc) _lircc=yes ;;
1800 --disable-lircc) _lircc=no ;;
1801 --enable-gui) _gui=yes ;;
1802 --disable-gui) _gui=no ;;
1803 --enable-old-gtk) _gtk1=yes ;;
1804 --enable-termcap) _termcap=yes ;;
1805 --disable-termcap) _termcap=no ;;
1806 --enable-termios) _termios=yes ;;
1807 --disable-termios) _termios=no ;;
1808 --enable-3dfx) _3dfx=yes ;;
1809 --disable-3dfx) _3dfx=no ;;
1810 --enable-tdfxfb) _tdfxfb=yes ;;
1811 --disable-tdfxvid) _tdfxvid=no ;;
1812 --enable-tdfxvid) _tdfxvid=yes ;;
1813 --disable-tga) _tga=no ;;
1814 --enable-tga) _tga=yes ;;
1815 --disable-tdfxfb) _tdfxfb=no ;;
1816 --enable-directfb) _directfb=yes ;;
1817 --disable-directfb) _directfb=no ;;
1818 --enable-zr) _zr=yes ;;
1819 --disable-zr) _zr=no ;;
1820 --enable-bl) _bl=yes ;;
1821 --disable-bl) _bl=no ;;
1822 --enable-mtrr) _mtrr=yes ;;
1823 --disable-mtrr) _mtrr=no ;;
1824 --enable-largefiles) _largefiles=yes ;;
1825 --disable-largefiles) _largefiles=no ;;
1826 --enable-shm) _shm=yes ;;
1827 --disable-shm) _shm=no ;;
1828 --enable-select) _select=yes ;;
1829 --disable-select) _select=no ;;
1830 --enable-linux-devfs) _linux_devfs=yes ;;
1831 --disable-linux-devfs) _linux_devfs=no ;;
1832 --enable-cdparanoia) _cdparanoia=yes ;;
1833 --disable-cdparanoia) _cdparanoia=no ;;
1834 --enable-big-endian) _big_endian=yes ;;
1835 --disable-big-endian) _big_endian=no ;;
1836 --enable-freetype) _freetype=yes ;;
1837 --disable-freetype) _freetype=no ;;
1838 --enable-fontconfig) _fontconfig=yes ;;
1839 --disable-fontconfig) _fontconfig=no ;;
1840 --enable-unrarlib) _unrarlib=yes ;;
1841 --disable-unrarlib) _unrarlib=no ;;
1842 --enable-ftp) _ftp=yes ;;
1843 --disable-ftp) _ftp=no ;;
1844 --enable-vstream) _vstream=yes ;;
1845 --disable-vstream) _vstream=no ;;
1846 --enable-pthreads) _pthreads=yes ;;
1847 --disable-pthreads) _pthreads=no ;;
1849 --enable-fribidi) _fribidi=yes ;;
1850 --disable-fribidi) _fribidi=no ;;
1852 --enable-enca) _enca=yes ;;
1853 --disable-enca) _enca=no ;;
1855 --enable-inet6) _inet6=yes ;;
1856 --disable-inet6) _inet6=no ;;
1858 --enable-gethostbyname2) _gethostbyname2=yes ;;
1859 --disable-gethostbyname2) _gethostbyname2=no ;;
1861 --enable-dga) _dga=auto ;; # as we don't know if it's 1 or 2
1862 --enable-dga=*) _dga=`echo $ac_option | cut -d '=' -f 2` ;;
1863 --disable-dga) _dga=no ;;
1865 --enable-menu) _menu=yes ;;
1866 --disable-menu) _menu=no ;;
1868 --enable-qtx) _qtx=yes ;;
1869 --disable-qtx) _qtx=no ;;
1871 --enable-macosx) _macosx=yes ;;
1872 --disable-macosx) _macosx=no ;;
1873 --enable-macosx-finder-support) _macosx_finder_support=yes ;;
1874 --disable-macosx-finder-support) _macosx_finder_support=no ;;
1875 --enable-macosx-bundle) _macosx_bundle=yes;;
1876 --disable-macosx-bundle) _macosx_bundle=no;;
1878 --enable-sortsub) _sortsub=yes ;;
1879 --disable-sortsub) _sortsub=no ;;
1881 --charset=*)
1882 _charset=`echo $ac_option | cut -d '=' -f 2`
1884 --language=*)
1885 _language=`echo $ac_option | cut -d '=' -f 2`
1887 # dvdnav disabled, it does not work
1888 # --with-libdvdnav=*)
1889 # _dvdnavdir=`echo $ac_option | cut -d '=' -f 2`
1890 # _dvdnav=yes
1891 # ;;
1893 --with-codecsdir=*)
1894 _win32libdir=`echo $ac_option | cut -d '=' -f 2`
1895 _xanimlibdir=`echo $ac_option | cut -d '=' -f 2`
1896 _reallibdir=`echo $ac_option | cut -d '=' -f 2`
1898 --with-win32libdir=*)
1899 _win32libdir=`echo $ac_option | cut -d '=' -f 2`
1900 _win32=yes
1902 --with-xanimlibdir=*)
1903 _xanimlibdir=`echo $ac_option | cut -d '=' -f 2`
1904 _xanim=yes
1906 --with-reallibdir=*)
1907 _reallibdir=`echo $ac_option | cut -d '=' -f 2`
1908 _real=yes
1910 --with-livelibdir=*)
1911 _livelibdir=`echo $ac_option | cut -d '=' -f 2`
1913 --with-toolamedir=*)
1914 _toolamedir=`echo $ac_option | cut -d '=' -f 2`
1916 --with-mlibdir=*)
1917 _mlibdir=`echo $ac_option | cut -d '=' -f 2`
1918 _mlib=yes
1921 --with-xmmslibdir=*)
1922 _xmmslibdir=`echo $ac_option | cut -d '=' -f 2`
1925 --with-xmmsplugindir=*)
1926 _xmmsplugindir=`echo $ac_option | cut -d '=' -f 2`
1929 --enable-profile)
1930 _profile='-p'
1932 --disable-profile)
1933 _profile=
1935 --enable-debug)
1936 _debug='-g'
1938 --enable-debug=*)
1939 _debug=`echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2`
1941 --disable-debug)
1942 _debug=
1944 --enable-crash-debug)
1945 _crash_debug=yes
1947 --disable-crash-debug)
1948 _crash_debug=no
1950 --enable-sighandler)
1951 _sighandler=yes
1953 --disable-sighandler)
1954 _sighandler=no
1957 --enable-sse) _sse=yes ;;
1958 --disable-sse) _sse=no ;;
1959 --enable-sse2) _sse2=yes ;;
1960 --disable-sse2) _sse2=no ;;
1961 --enable-mmx2) _mmx2=yes ;;
1962 --disable-mmx2) _mmx2=no ;;
1963 --enable-3dnow) _3dnow=yes ;;
1964 --disable-3dnow) _3dnow=no _3dnowex=no ;;
1965 --enable-3dnowex) _3dnow=yes _3dnowex=yes ;;
1966 --disable-3dnowex) _3dnowex=no ;;
1967 --enable-altivec) _altivec=yes ;;
1968 --disable-altivec) _altivec=no ;;
1969 --enable-mmx) _mmx=yes ;;
1970 --disable-mmx) # 3Dnow! and MMX2 require MMX
1971 _3dnow=no _3dnowex=no _mmx=no _mmx2=no ;;
1973 --enable-win32) _win32=yes ;;
1974 --disable-win32) _win32=no _dshow=no ;;
1975 --enable-dshow) _win32=yes _dshow=yes ;;
1976 --disable-dshow) _dshow=no ;;
1978 --with-x11incdir=*)
1979 _inc_x11=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1981 --with-x11libdir=*)
1982 _x11_paths=`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1984 --with-dxr2incdir=*)
1985 _inc_dxr2=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1987 --with-xvmclib=*)
1988 _xvmclib=`echo $ac_option | cut -d '=' -f 2`
1990 --with-dvbincdir=*)
1991 _inc_dvb=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1993 --with-xvidlibdir=*)
1994 _ld_xvid=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1996 --with-xvidincdir=*)
1997 _inc_xvid=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1999 --with-dtslibdir=*)
2000 _ld_libdts=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
2002 --with-dtsincdir=*)
2003 _inc_libdts=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
2005 --with-x264libdir=*)
2006 _ld_x264=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
2008 --with-x264incdir=*)
2009 _inc_x264=-I`echo $ac_option | cut -d '=' -f 2 |sed 's,:, -I,g'`
2011 --with-sdl-config=*)
2012 _sdlconfig=`echo $ac_option | cut -d '=' -f 2`
2014 --with-freetype-config=*)
2015 _freetypeconfig=`echo $ac_option | cut -d '=' -f 2`
2017 --with-fribidi-config=*)
2018 _fribidiconfig=`echo $ac_option | cut -d '=' -f 2`
2020 --with-gtk-config=*)
2021 _gtkconfig=`echo $ac_option | cut -d '=' -f 2`
2023 --with-glib-config=*)
2024 _glibconfig=`echo $ac_option | cut -d '=' -f 2`
2026 # dvdnav disabled, it does not work
2027 # --with-dvdnav-config=*)
2028 # _dvdnavconfig=`echo $ac_option | cut -d '=' -f 2`
2029 # ;;
2030 --with-madlibdir=*)
2031 _ld_mad=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
2033 --with-cdparanoiaincdir=*)
2034 _inc_cdparanoia=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
2036 --with-cdparanoialibdir=*)
2037 _ld_cdparanoia=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
2039 --with-termcaplib=*)
2040 _ld_termcap=-l`echo $ac_option | cut -d '=' -f 2`
2041 _termcap=yes
2043 --prefix=*)
2044 _prefix=`echo $ac_option | cut -d '=' -f 2`
2046 --bindir=*)
2047 _bindir=`echo $ac_option | cut -d '=' -f 2`
2049 --datadir=*)
2050 _datadir=`echo $ac_option | cut -d '=' -f 2`
2052 --mandir=*)
2053 _mandir=`echo $ac_option | cut -d '=' -f 2`
2055 --confdir=*)
2056 _confdir=`echo $ac_option | cut -d '=' -f 2`
2058 --libdir=*)
2059 _libdir=`echo $ac_option | cut -d '=' -f 2`
2063 echo "Unknown parameter: $ac_option"
2064 exit 1
2067 esac
2068 done
2070 # Atmos: moved this here, to be correct, if --prefix is specified
2071 test -z "$_bindir" && _bindir="$_prefix/bin"
2072 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
2073 test -z "$_mandir" && _mandir="$_prefix/man"
2074 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
2075 test -z "$_libdir" && _libdir="$_prefix/lib"
2076 test -z "$_mlibdir" && _mlibdir="$MLIBHOME"
2078 if x86 ; then
2079 # Checking assembler (_as) compatibility...
2080 # Added workaround for older as that reads from stdin by default - atmos
2081 as_version=`echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p'`
2082 echocheck "assembler ($_as $as_version)"
2084 _pref_as_version='2.9.1'
2085 echo 'nop' > $TMPS
2086 if test "$_mmx" = yes ; then
2087 echo 'emms' >> $TMPS
2089 if test "$_3dnow" = yes ; then
2090 _pref_as_version='2.10.1'
2091 echo 'femms' >> $TMPS
2093 if test "$_3dnowex" = yes ; then
2094 _pref_as_version='2.10.1'
2095 echo 'pswapd %mm0, %mm0' >> $TMPS
2097 if test "$_mmx2" = yes ; then
2098 _pref_as_version='2.10.1'
2099 echo 'movntq %mm0, (%eax)' >> $TMPS
2101 if test "$_sse" = yes ; then
2102 _pref_as_version='2.10.1'
2103 echo 'xorps %xmm0, %xmm0' >> $TMPS
2105 #if test "$_sse2" = yes ; then
2106 # _pref_as_version='2.11'
2107 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2109 $_as $TMPS -o $TMPO > /dev/null 2>&1 || as_verc_fail=yes
2111 if test "$as_verc_fail" != yes ; then
2112 echores "ok"
2113 else
2114 echores "failed"
2115 echo "Upgrade binutils to ${_pref_as_version} ..."
2116 die "obsolete binutils version"
2120 if ppc ; then
2122 # check if altivec is supported by the compiler, and how to enable it
2124 _altivec_gcc_flags=''
2126 if test "$_altivec" = yes -o "$_runtime_cpudetection" = yes ; then
2127 echocheck "GCC altivec support"
2129 p=''
2130 cat > $TMPC << EOF
2131 int main() {
2132 return 0;
2135 FSF_flags='-maltivec -mabi=altivec'
2136 Darwin_flags='-faltivec -D__APPLE_ALTIVEC__'
2138 # check for Darwin-style flags first, since
2139 # gcc-3.3 (August Update from Apple) on MacOS 10.2.8
2140 # accepts but ignores FSF-style flags...
2142 if test -z "$p"; then
2143 cc_check $Darwin_flags && p='Darwin'
2145 if test -z "$p"; then
2146 cc_check $FSF_flags && p='FSF'
2149 case $p in
2150 FSF) _altivec_gcc_flags="$FSF_flags" _altivec=yes ;;
2151 Darwin) _altivec_gcc_flags="$Darwin_flags" _altivec=yes ;;
2152 *) _altivec=no ;;
2153 esac
2155 if test -z "$p"; then
2156 p=none
2157 else
2158 p="$p-style ($_altivec_gcc_flags)"
2161 echores "$p"
2164 # check if <altivec.h> should be included
2166 _def_altivec_h='#undef HAVE_ALTIVEC_H'
2168 if test "$_altivec" = yes ; then
2169 echocheck "altivec.h"
2170 cat > $TMPC << EOF
2171 #include <altivec.h>
2172 int main(void) { return 0; }
2174 _have_altivec_h=no
2175 cc_check $_altivec_gcc_flags && _have_altivec_h=yes
2176 if test "$_have_altivec_h" = yes ; then
2177 _def_altivec_h='#define HAVE_ALTIVEC_H 1'
2179 echores "$_have_altivec_h"
2182 # disable runtime cpudetection if
2183 # - we cannot generate altivec code
2184 # - altivec is disabled by the user
2186 if test "$_runtime_cpudetection" = yes -a "$_altivec" = no ; then
2187 _runtime_cpudetection=no
2190 # show that we are optimizing for altivec (if enabled and supported)
2192 if test "$_runtime_cpudetection" = no -a "$_altivec" = yes ; then
2193 _optimizing="$_optimizing altivec"
2196 # if altivec is enabled, make sure the correct flags turn up in CFLAGS
2198 if test "$_altivec" = yes ; then
2199 _mcpu="$_mcpu $_altivec_gcc_flags"
2202 # setup _def_altivec correctly
2204 if test "$_altivec" = yes ; then
2205 _def_altivec='#define HAVE_ALTIVEC 1'
2206 else
2207 _def_altivec='#undef HAVE_ALTIVEC'
2211 _def_mmx='#undef HAVE_MMX'
2212 test "$_mmx" = yes && _def_mmx='#define HAVE_MMX 1'
2213 _def_mmx2='#undef HAVE_MMX2'
2214 test "$_mmx2" = yes && _def_mmx2='#define HAVE_MMX2 1'
2215 _def_3dnow='#undef HAVE_3DNOW'
2216 test "$_3dnow" = yes && _def_3dnow='#define HAVE_3DNOW 1'
2217 _def_3dnowex='#undef HAVE_3DNOWEX'
2218 test "$_3dnowex" = yes && _def_3dnowex='#define HAVE_3DNOWEX 1'
2219 _def_sse='#undef HAVE_SSE'
2220 test "$_sse" = yes && _def_sse='#define HAVE_SSE 1'
2221 _def_sse2='#undef HAVE_SSE2'
2222 test "$_sse2" = yes && _def_sse2='#define HAVE_SSE2 1'
2224 # Checking kernel version...
2225 if x86 && linux ; then
2226 _k_verc_problem=no
2227 kernel_version=`uname -r 2>&1`
2228 echocheck "$system_name kernel version"
2229 case "$kernel_version" in
2230 '') kernel_version="?.??"; _k_verc_fail=yes;;
2231 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2232 _k_verc_problem=yes;;
2233 esac
2234 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2235 _k_verc_fail=yes
2237 if test "$_k_verc_fail" ; then
2238 echores "$kernel_version, fail"
2239 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2240 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2241 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2242 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2243 echo "2.2.x you must upgrade it to get SSE support!"
2244 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2245 else
2246 echores "$kernel_version, ok"
2250 if test "$_vidix" = auto ; then
2251 _vidix=no
2252 # should check for x86 systems supporting VIDIX (does QNX have VIDIX?)
2253 x86 && _vidix=yes
2254 x86_64 && _vidix=yes
2255 ppc && linux && _vidix=yes
2256 alpha && linux && _vidix=yes
2257 qnx && _vidix=no
2258 sunos && _vidix=no
2259 beos && _vidix=no
2262 echocheck "mplayer binary name"
2263 if win32 ; then
2264 _prg="mplayer.exe"
2265 _prg_mencoder="mencoder.exe"
2266 else
2267 _prg="mplayer"
2268 _prg_mencoder="mencoder"
2270 echores $_prg
2273 # On QNX we must link to libph - Gabucino
2274 if qnx ; then
2275 _ld_arch="$_ld_arch -lph"
2278 # checking for a working awk, I'm using mawk first, because it's fastest - atmos
2279 _awk=
2280 if test "$_vidix" = yes ; then
2281 _awk_verc_fail=yes
2282 echocheck "awk"
2283 for _awk in mawk gawk nawk awk; do
2284 if ( $_awk 'BEGIN{testme();}function testme(){print"";}' ) >> "$TMPLOG" 2>&1; then
2285 _awk_verc_fail=no
2286 break
2288 done
2289 test "$_awk_verc_fail" = yes && _awk=no
2290 echores "$_awk"
2291 if test "$_awk_verc_fail" = yes; then
2292 echo "VIDIX needs awk, but no working implementation was found!"
2293 echo "Try the GNU version, which can be downloaded from:"
2294 echo "ftp://ftp.gnu.org/gnu/gawk/"
2295 echo "If you don't need VIDIX, you can use configure --disable-vidix instead."
2296 die "no awk"
2300 # If IRIX we must use ar instead of ranlib (not present on IRIX systems)
2301 if irix ; then
2302 _ranlib='ar -r'
2303 elif linux ; then
2304 _ranlib='true'
2307 ######################
2308 # MAIN TESTS GO HERE #
2309 ######################
2312 echocheck "extra headers"
2313 if test "$_inc_extra" ; then
2314 echores "$_inc_extra"
2315 else
2316 echores "none"
2320 echocheck "extra libs"
2321 if test "$_ld_extra" ; then
2322 echores "$_ld_extra"
2323 else
2324 echores "none"
2327 echocheck "-lposix"
2328 cat > $TMPC <<EOF
2329 int main(void) { return 0; }
2331 if cc_check -lposix ; then
2332 _ld_arch="$_ld_arch -lposix"
2333 echores "yes"
2334 else
2335 echores "no"
2338 echocheck "-lm"
2339 cat > $TMPC <<EOF
2340 int main(void) { return 0; }
2342 if cc_check -lm ; then
2343 _ld_lm="-lm"
2344 echores "yes"
2345 else
2346 _ld_lm=""
2347 echores "no"
2350 # Checking for localization ...
2351 # CSAK EGY MARADHAT - A HEGYLAKO
2352 echocheck "i18n"
2353 if test "$_i18n" != no ; then
2354 cat > $TMPC <<EOF
2355 #include <libintl.h>
2356 int main(void) { gettext("test"); return 0; }
2358 _i18n=no
2359 _i18n_libs=""
2360 if test "$_i18n" = auto ; then
2361 cc_check && _i18n=yes
2362 else
2363 for i18n_lib in "" "-lintl"; do
2364 cc_check $i18n_lib && _i18n=yes && _i18n_libs=$i18n_lib && break
2365 done
2368 if test "$_i18n" = yes ; then
2369 _def_i18n='#define USE_I18N 1'
2370 else
2371 _def_i18n='#undef USE_I18N'
2373 if test "$_i18n_libs" ; then
2374 _res_comment="using $_i18n_libs"
2376 echores "$_i18n"
2379 echocheck "langinfo"
2380 if test "$_langinfo" = auto ; then
2381 cat > $TMPC <<EOF
2382 #include <langinfo.h>
2383 int main(void) { nl_langinfo(CODESET); return 0; }
2385 _langinfo=no
2386 cc_check && _langinfo=yes
2388 if test "$_langinfo" = yes ; then
2389 _def_langinfo='#define USE_LANGINFO 1'
2390 else
2391 _def_langinfo='#undef USE_LANGINFO'
2393 echores "$_langinfo"
2396 echocheck "language"
2397 test -z "$_language" && _language=$LINGUAS
2398 _language=`echo $_language | sed 's/,/ /g'`
2399 echo $_language | grep all > /dev/null || LANGUAGES="$_language en"
2400 for lang in $_language ; do
2401 test "$lang" = all && lang=en
2402 if test -f "help/help_mp-${lang}.h" ; then
2403 _language=$lang
2404 break
2405 else
2406 echo -n "$lang not found, "
2407 _language=`echo $_language | sed "s/$lang *//"`
2409 done
2410 test -z "$_language" && _language=en
2411 _mp_help="help/help_mp-${_language}.h"
2412 test -f $_mp_help || die "$_mp_help not found"
2413 for lang in $LANGUAGES ; do
2414 if test -f "DOCS/man/$lang/mplayer.1" ; then
2415 MAN_LANG="$MAN_LANG $lang"
2417 done
2418 _doc_lang=$_language
2419 test -d DOCS/xml/$_doc_lang || _doc_lang=en
2420 echores "using $_language (man pages: $MAN_LANG)"
2423 echocheck "enable sighandler"
2424 if test "$_sighandler" = yes ; then
2425 _def_sighandler='#define ENABLE_SIGHANDLER 1'
2426 else
2427 _def_sighandler='#undef ENABLE_SIGHANDLER'
2429 echores "$_sighandler"
2431 echocheck "runtime cpudetection"
2432 if test "$_runtime_cpudetection" = yes ; then
2433 _optimizing="Runtime CPU-Detection enabled"
2434 _def_runtime_cpudetection='#define RUNTIME_CPUDETECT 1'
2435 else
2436 _def_runtime_cpudetection='#undef RUNTIME_CPUDETECT'
2438 echores "$_runtime_cpudetection"
2441 echocheck "restrict keyword"
2442 for restrict_keyword in restrict __restrict __restrict__ ; do
2443 echo "void foo(char * $restrict_keyword p); int main(){}" > $TMPC
2444 if cc_check; then
2445 _def_restrict_keyword=$restrict_keyword
2446 break;
2448 done
2449 if [ -n "$_def_restrict_keyword" ]; then
2450 echores "$_def_restrict_keyword"
2451 else
2452 echores "none"
2454 # Avoid infinite recursion loop ("#define restrict restrict")
2455 if [ "$_def_restrict_keyword" != "restrict" ]; then
2456 _def_restrict_keyword="#define restrict $_def_restrict_keyword"
2457 else
2458 _def_restrict_keyword=""
2462 echocheck "__builtin_expect"
2463 # GCC branch prediction hint
2464 cat > $TMPC << EOF
2465 int foo (int a) {
2466 a = __builtin_expect (a, 10);
2467 return a == 10 ? 0 : 1;
2469 int main() { return foo(10) && foo(0); }
2471 _builtin_expect=no
2472 cc_check && _builtin_expect=yes
2473 if test "$_builtin_expect" = yes ; then
2474 _def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2475 else
2476 _def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2478 echores "$_builtin_expect"
2481 echocheck "kstat"
2482 cat > $TMPC << EOF
2483 #include <kstat.h>
2484 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
2486 _kstat=no
2487 cc_check -lkstat && _kstat=yes
2488 if test "$_kstat" = yes ; then
2489 _def_kstat="#define HAVE_LIBKSTAT 1"
2490 _ld_arch="-lkstat $_ld_arch"
2491 else
2492 _def_kstat="#undef HAVE_LIBKSTAT"
2494 echores "$_kstat"
2497 echocheck "posix4"
2498 # required for nanosleep on some systems
2499 cat > $TMPC << EOF
2500 #include <time.h>
2501 int main(void) { (void) nanosleep(0, 0); return 0; }
2503 _posix4=no
2504 cc_check -lposix4 && _posix4=yes
2505 if test "$_posix4" = yes ; then
2506 _ld_arch="-lposix4 $_ld_arch"
2508 echores "$_posix4"
2510 echocheck "lrintf"
2511 cat > $TMPC << EOF
2512 #include <math.h>
2513 int main(void) { long (*foo)(float); foo = lrintf; (void)(*foo)(0.0); return 0; }
2515 _lrintf=no
2516 cc_check -D_GNU_SOURCE $_ld_lm && _lrintf=yes
2517 if test "$_lrintf" = yes ; then
2518 _def_lrintf="#define HAVE_LRINTF 1"
2519 else
2520 _def_lrintf="#undef HAVE_LRINTF"
2522 echores "$_lrintf"
2524 echocheck "round"
2525 cat > $TMPC << EOF
2526 #include <math.h>
2527 int main(void) { (void) round(0.0); return 0; }
2529 _round=no
2530 cc_check $_ld_lm && _round=yes
2531 if test "$_round" = yes ; then
2532 _def_round="#define HAVE_ROUND 1"
2533 else
2534 _def_round="#undef HAVE_ROUND"
2536 echores "$_round"
2538 echocheck "nanosleep"
2539 # also check for nanosleep
2540 cat > $TMPC << EOF
2541 #include <time.h>
2542 int main(void) { (void) nanosleep(0, 0); return 0; }
2544 _nanosleep=no
2545 cc_check $_ld_arch && _nanosleep=yes
2546 if test "$_nanosleep" = yes ; then
2547 _def_nanosleep='#define HAVE_NANOSLEEP 1'
2548 else
2549 _def_nanosleep='#undef HAVE_NANOSLEEP'
2551 echores "$_nanosleep"
2554 echocheck "socklib"
2555 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2556 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2557 cat > $TMPC << EOF
2558 #include <netdb.h>
2559 #include <sys/socket.h>
2560 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
2562 for _ld_tmp in "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
2563 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && break
2564 done
2565 if test $_winsock2 = auto && not cygwin ; then
2566 _winsock2=no
2567 cat > $TMPC << EOF
2568 #include <winsock2.h>
2569 int main(void) { (void) gethostbyname(0); return 0; }
2571 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2=yes
2573 if test "$_ld_sock" ; then
2574 echores "yes (using $_ld_sock)"
2575 else
2576 echores "no"
2580 if test $_winsock2 = yes ; then
2581 _ld_sock="-lws2_32"
2582 _def_winsock2='#define HAVE_WINSOCK2 1'
2583 else
2584 _def_winsock2='#undef HAVE_WINSOCK2'
2588 _use_aton=no
2589 echocheck "inet_pton()"
2590 cat > $TMPC << EOF
2591 #include <sys/types.h>
2592 #include <sys/socket.h>
2593 #include <arpa/inet.h>
2594 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
2596 if test "$_winsock2" = yes ; then
2597 echores "not needed (using winsock2 functions)"
2598 elif cc_check $_ld_sock ; then
2599 # NOTE: Linux has libresolv but does not need it
2601 echores "yes (using $_ld_sock)"
2602 elif cc_check $_ld_sock -lresolv ; then
2603 # NOTE: needed for SunOS at least
2604 _ld_sock="$_ld_sock -lresolv"
2605 echores "yes (using $_ld_sock)"
2606 else
2607 echores "no (=> i'll try inet_aton next)"
2609 echocheck "inet_aton()"
2610 cat > $TMPC << EOF
2611 #include <sys/types.h>
2612 #include <sys/socket.h>
2613 #include <arpa/inet.h>
2614 int main(void) { (void) inet_aton(0, 0); return 0; }
2616 _use_aton=yes
2617 if cc_check $_ld_sock ; then
2618 # NOTE: Linux has libresolv but does not need it
2620 echores "yes (using $_ld_sock)"
2621 elif cc_check $_ld_sock -lresolv ; then
2622 # NOTE: needed for SunOS at least
2623 _ld_sock="$_ld_sock -lresolv"
2624 echores "yes (using $_ld_sock)"
2625 else
2626 _use_aton=no
2627 _network=no
2628 echores "no (=> network support disabled)"
2632 _def_use_aton='#undef USE_ATON'
2633 if test "$_use_aton" != no; then
2634 _def_use_aton='#define USE_ATON 1'
2638 echocheck "inttypes.h (required)"
2639 cat > $TMPC << EOF
2640 #include <inttypes.h>
2641 int main(void) { return 0; }
2643 _inttypes=no
2644 cc_check && _inttypes=yes
2645 if test "$_inttypes" = yes ; then
2646 # nothing to do
2648 else
2649 echores "no"
2650 echocheck "bitypes.h (inttypes.h predecessor)"
2651 cat > $TMPC << EOF
2652 #include <sys/bitypes.h>
2653 int main(void) { return 0; }
2655 _inttypes=no
2656 cc_check && _inttypes=yes
2657 if test "$_inttypes" = yes ; then
2658 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."
2659 else
2660 die "Cannot find header either inttypes.h or bitypes.h (see DOCS/HTML/$_doc_lang/faq.html)."
2663 echores "$_inttypes"
2666 echocheck "int_fastXY_t in inttypes.h"
2667 cat > $TMPC << EOF
2668 #include <inttypes.h>
2669 int main(void) {
2670 volatile int_fast16_t v= 0;
2671 return v; }
2673 _fast_inttypes=no
2674 cc_check && _fast_inttypes=yes
2675 if test "$_fast_inttypes" = yes ; then
2676 # nothing to do
2678 else
2679 _def_fast_inttypes='
2680 typedef signed char int_fast8_t;
2681 typedef signed int int_fast16_t;
2682 typedef signed int int_fast32_t;
2683 typedef unsigned char uint_fast8_t;
2684 typedef unsigned int uint_fast16_t;
2685 typedef unsigned int uint_fast32_t;'
2687 echores "$_fast_inttypes"
2690 echocheck "word size"
2691 _mp_wordsize="#undef MP_WORDSIZE"
2692 cat > $TMPC << EOF
2693 #include <stdio.h>
2694 #include <sys/types.h>
2695 int main(void) { printf("%d\n", sizeof(size_t)*8); return 0; }
2697 cc_check && _wordsize=`$TMPO` && _mp_wordsize="#define MP_WORDSIZE $_wordsize"
2698 echores "$_wordsize"
2701 echocheck "stddef.h"
2702 cat > $TMPC << EOF
2703 #include <stddef.h>
2704 int main(void) { return 0; }
2706 _stddef=no
2707 cc_check && _stddef=yes
2708 if test "$_stddef" = yes ; then
2709 _def_stddef='#define HAVE_STDDEF_H 1'
2710 else
2711 _def_stddef='#undef HAVE_STDDEF_H'
2713 echores "$_stddef"
2716 echocheck "malloc.h"
2717 cat > $TMPC << EOF
2718 #include <malloc.h>
2719 int main(void) { (void) malloc(0); return 0; }
2721 _malloc=no
2722 cc_check && _malloc=yes
2723 if test "$_malloc" = yes ; then
2724 _def_malloc='#define HAVE_MALLOC_H 1'
2725 else
2726 _def_malloc='#undef HAVE_MALLOC_H'
2728 # malloc.h emits a warning in FreeBSD and OpenBSD
2729 freebsd || openbsd && _def_malloc='#undef HAVE_MALLOC_H'
2730 echores "$_malloc"
2733 echocheck "memalign()"
2734 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
2735 cat > $TMPC << EOF
2736 #include <malloc.h>
2737 int main (void) { (void) memalign(64, sizeof(char)); return 0; }
2739 _memalign=no
2740 cc_check && _memalign=yes
2741 if test "$_memalign" = yes ; then
2742 _def_memalign='#define HAVE_MEMALIGN 1'
2743 else
2744 _def_memalign='#undef HAVE_MEMALIGN'
2746 echores "$_memalign"
2749 echocheck "alloca.h"
2750 cat > $TMPC << EOF
2751 #include <alloca.h>
2752 int main(void) { (void) alloca(0); return 0; }
2754 _alloca=no
2755 cc_check && _alloca=yes
2756 if cc_check ; then
2757 _def_alloca='#define HAVE_ALLOCA_H 1'
2758 else
2759 _def_alloca='#undef HAVE_ALLOCA_H'
2761 echores "$_alloca"
2764 echocheck "mman.h"
2765 cat > $TMPC << EOF
2766 #include <sys/types.h>
2767 #include <sys/mman.h>
2768 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
2770 _mman=no
2771 cc_check && _mman=yes
2772 if test "$_mman" = yes ; then
2773 _def_mman='#define HAVE_SYS_MMAN_H 1'
2774 else
2775 _def_mman='#undef HAVE_SYS_MMAN_H'
2777 echores "$_mman"
2779 cat > $TMPC << EOF
2780 #include <sys/types.h>
2781 #include <sys/mman.h>
2782 int main(void) { void *p = MAP_FAILED; return 0; }
2784 _mman_has_map_failed=no
2785 cc_check && _mman_has_map_failed=yes
2786 if test "$_mman_has_map_failed" = yes ; then
2787 _def_mman_has_map_failed=''
2788 else
2789 _def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
2792 echocheck "dynamic loader"
2793 cat > $TMPC << EOF
2794 #include <dlfcn.h>
2795 int main(void) { dlopen(0, 0); dlclose(0); dlsym(0, 0); return 0; }
2797 _dl=no
2798 for _ld_tmp in "" "-ldl" ; do
2799 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
2800 done
2801 if test "$_dl" = yes ; then
2802 _def_dl='#define HAVE_LIBDL 1'
2803 else
2804 _def_dl='#undef HAVE_LIBDL'
2806 echores "$_dl"
2809 echocheck "dynamic a/v plugins support"
2810 if test "$_dl" = no ; then
2811 _dynamic_plugins=no
2813 if test "$_dynamic_plugins" = yes ; then
2814 _def_dynamic_plugins='#define DYNAMIC_PLUGINS 1'
2815 else
2816 _def_dynamic_plugins='#undef DYNAMIC_PLUGINS'
2818 echores "$_dynamic_plugins"
2821 #echocheck "dynamic linking"
2822 # FIXME !! make this dynamic detection work and modify at the end (search _ld_dl_dynamic)
2823 # also gcc flags are different, but ld flags aren't (-Bdynamic/-Bstatic/-Bsymbolic)
2824 #cat > $TMPC << EOF
2825 #int main(void) { return 0; }
2826 #EOF
2827 #if cc_check -rdynamic ; then
2828 # _ld_dl_dynamic='-rdynamic'
2829 #elif cc_check -Bdynamic ; then
2830 # _ld_dl_dynamic='-Bdynamic'
2831 #elif cc_check ; then
2832 # _ld_dl_dynamic=''
2834 #echores "using $_ld_dl_dynamic"
2836 _def_threads='#undef HAVE_THREADS'
2838 echocheck "pthread"
2839 if test "$_pthreads" != no ; then
2840 cat > $TMPC << EOF
2841 #include <pthread.h>
2842 void* func(void *arg) { return arg; }
2843 int main(void) { pthread_t tid; return pthread_create (&tid, 0, func, 0) == 0 ? 0 : 1; }
2845 _pthreads=no
2846 if not hpux ; then
2847 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
2848 # for crosscompilation, we cannot execute the program, be happy if we can link statically
2849 cc_check $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
2850 done
2853 if test "$_pthreads" = yes ; then
2854 echores "yes (using $_ld_pthread)"
2855 _pthreads='yes'
2856 _def_pthreads='#define HAVE_PTHREADS 1'
2857 _def_threads='#define HAVE_THREADS 1'
2858 else
2859 echores "no (v4l, vo_gl, ao_alsa, ao_nas, ao_macosx, win32 loader disabled)"
2860 _pthreads=''
2861 _def_pthreads='#undef HAVE_PTHREADS'
2862 _nas=no ; _tv_v4l=no ; _macosx=no
2863 if not mingw32 ; then
2864 _win32=no
2869 echocheck "iconv"
2870 if test "$_iconv" = auto ; then
2871 _iconv_tmp='#include <iconv.h>'
2873 cat > $TMPC << EOF
2874 #include <stdio.h>
2875 #include <unistd.h>
2876 $_iconv_tmp
2877 #define INBUFSIZE 1024
2878 #define OUTBUFSIZE 4096
2880 char inbuffer[INBUFSIZE];
2881 char outbuffer[OUTBUFSIZE];
2883 int main(void) {
2884 size_t numread;
2885 iconv_t icdsc;
2886 char *tocode="UTF-8";
2887 char *fromcode="cp1250";
2888 if ((icdsc = iconv_open (tocode, fromcode)) != (iconv_t)(-1)) {
2889 while ((numread = read (0, inbuffer, INBUFSIZE))) {
2890 char *iptr=inbuffer;
2891 char *optr=outbuffer;
2892 size_t inleft=numread;
2893 size_t outleft=OUTBUFSIZE;
2894 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
2895 != (size_t)(-1)) {
2896 write (1, outbuffer, OUTBUFSIZE - outleft);
2899 if (iconv_close(icdsc) == -1)
2904 _iconv=no
2905 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
2906 cc_check $_ld_lm $_ld_tmp && _ld_iconv="$_ld_tmp" && _iconv=yes && break
2907 done
2909 if test "$_iconv" = yes ; then
2910 _def_iconv='#define USE_ICONV 1'
2911 else
2912 _def_iconv='#undef USE_ICONV'
2914 echores "$_iconv"
2917 echocheck "sys/soundcard.h"
2918 cat > $TMPC << EOF
2919 #include <sys/soundcard.h>
2920 int main(void) { return 0; }
2922 _sys_soundcard=no
2923 cc_check && _sys_soundcard=yes
2924 if test "$_sys_soundcard" = yes ; then
2925 _def_sys_soundcard='#define HAVE_SYS_SOUNDCARD_H 1'
2926 _inc_soundcard='#include <sys/soundcard.h>'
2927 else
2928 _def_sys_soundcard='#undef HAVE_SYS_SOUNDCARD_H'
2930 echores "$_sys_soundcard"
2932 if test "$_sys_soundcard" != yes ; then
2933 echocheck "soundcard.h"
2934 cat > $TMPC << EOF
2935 #include <soundcard.h>
2936 int main(void) { return 0; }
2938 _soundcard=no
2939 cc_check && _soundcard=yes
2940 if linux || test "$_ossaudio" != no ; then
2941 # use soundcard.h on Linux, or when OSS support is enabled
2942 echores "$_soundcard"
2943 else
2944 # we don't want to use soundcard.h on non-Linux if OSS support not enabled!
2945 echores "$_soundcard, but ignored!"
2946 _soundcard=no
2948 if test "$_soundcard" = yes ; then
2949 _def_soundcard='#define HAVE_SOUNDCARD_H 1'
2950 _inc_soundcard='#include <soundcard.h>'
2951 else
2952 _def_soundcard='#undef HAVE_SOUNDCARD_H'
2954 else
2955 _def_soundcard='#undef HAVE_SOUNDCARD_H'
2959 echocheck "sys/dvdio.h"
2960 cat > $TMPC << EOF
2961 #include <unistd.h>
2962 #include <sys/dvdio.h>
2963 int main(void) { return 0; }
2965 _dvdio=no
2966 cc_check && _dvdio=yes
2967 if test "$_dvdio" = yes ; then
2968 _def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
2969 else
2970 _def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
2972 echores "$_dvdio"
2975 echocheck "sys/cdio.h"
2976 cat > $TMPC << EOF
2977 #include <unistd.h>
2978 #include <sys/cdio.h>
2979 int main(void) { return 0; }
2981 _cdio=no
2982 cc_check && _cdio=yes
2983 if test "$_cdio" = yes ; then
2984 _def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
2985 else
2986 _def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
2988 echores "$_cdio"
2991 echocheck "linux/cdrom.h"
2992 cat > $TMPC << EOF
2993 #include <sys/types.h>
2994 #include <linux/cdrom.h>
2995 int main(void) { return 0; }
2997 _cdrom=no
2998 cc_check && _cdrom=yes
2999 if test "$_cdrom" = yes ; then
3000 _def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3001 else
3002 _def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3004 echores "$_cdrom"
3007 echocheck "dvd.h"
3008 cat > $TMPC << EOF
3009 #include <dvd.h>
3010 int main(void) { return 0; }
3012 _dvd=no
3013 cc_check && _dvd=yes
3014 if test "$_dvd" = yes ; then
3015 _def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3016 else
3017 _def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3019 echores "$_dvd"
3022 echocheck "BSDI dvd.h"
3023 cat > $TMPC << EOF
3024 #include <dvd.h>
3025 int main(void) { return 0; }
3027 _bsdi_dvd=no
3028 cc_check && _bsdi_dvd=yes
3029 if test "$_bsdi_dvd" = yes ; then
3030 _def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3031 else
3032 _def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3034 echores "$_bsdi_dvd"
3037 echocheck "HPUX SCSI header"
3038 cat > $TMPC << EOF
3039 #include <sys/scsi.h>
3040 int main(void) { return 0; }
3042 _hpux_scsi_h=no
3043 cc_check && _hpux_scsi_h=yes
3044 if test "$_hpux_scsi_h" = yes ; then
3045 _def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3046 else
3047 _def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3049 echores "$_hpux_scsi_h"
3052 echocheck "userspace SCSI headers (Solaris)"
3053 cat > $TMPC << EOF
3054 # include <unistd.h>
3055 # include <stropts.h>
3056 # include <sys/scsi/scsi_types.h>
3057 # include <sys/scsi/impl/uscsi.h>
3058 int main(void) { return 0; }
3060 _sol_scsi_h=no
3061 cc_check && _sol_scsi_h=yes
3062 if test "$_sol_scsi_h" = yes ; then
3063 _def_sol_scsi_h='#define SOLARIS_USCSI 1'
3064 else
3065 _def_sol_scsi_h='#undef SOLARIS_USCSI'
3067 echores "$_sol_scsi_h"
3070 echocheck "termcap"
3071 if test "$_termcap" = auto ; then
3072 cat > $TMPC <<EOF
3073 int main(void) { return 0; }
3075 _termcap=no
3076 for _ld_tmp in "-ltermcap" "-ltinfo" ; do
3077 cc_check $_ld_tmp && _ld_termcap="$_ld_tmp" && _termcap=yes && break
3078 done
3080 if test "$_termcap" = yes ; then
3081 _def_termcap='#define USE_TERMCAP 1'
3082 _res_comment="using $_ld_termcap"
3083 else
3084 _def_termcap='#undef USE_TERMCAP'
3086 echores "$_termcap"
3089 echocheck "termios"
3090 if test "$_termios" = auto ; then
3091 cat > $TMPC <<EOF
3092 #include <sys/termios.h>
3093 int main(void) { return 0; }
3095 _termios=auto
3096 cc_check && _termios=yes
3097 _def_termios_h_name='sys/termios.h'
3099 # second test:
3100 if test "$_termios" = auto ; then
3101 cat > $TMPC <<EOF
3102 #include <termios.h>
3103 int main(void) { return 0; }
3105 _termios=no
3106 cc_check && _termios=yes
3107 _def_termios_h_name='termios.h'
3110 if test "$_termios" = yes ; then
3111 _def_termios='#define HAVE_TERMIOS 1'
3112 _def_termios_h='#undef HAVE_TERMIOS_H'
3113 _def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3115 if test "$_def_termios_h_name" = 'sys/termios.h' ; then
3116 _def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3117 elif test "$_def_termios_h_name" = 'termios.h' ; then
3118 _def_termios_h='#define HAVE_TERMIOS_H 1'
3120 _res_comment="using $_def_termios_h_name"
3121 else
3122 _def_termios='#undef HAVE_TERMIOS'
3123 _def_termios_h_name=''
3124 _termios=no
3126 echores "$_termios"
3129 echocheck "shm"
3130 if test "$_shm" = auto ; then
3131 cat > $TMPC << EOF
3132 #include <sys/types.h>
3133 #include <sys/shm.h>
3134 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3136 _shm=no
3137 cc_check && _shm=yes
3139 if test "$_shm" = yes ; then
3140 _def_shm='#define HAVE_SHM 1'
3141 else
3142 _def_shm='#undef HAVE_SHM'
3144 echores "$_shm"
3147 # XXX: FIXME, add runtime checking
3148 echocheck "linux devfs"
3149 echores "$_linux_devfs"
3152 echocheck "scandir()"
3153 cat > $TMPC << EOF
3154 int main (void) { scandir("", 0, 0, 0); alphasort(0, 0); return 0; }
3156 _scandir=no
3157 cc_check && _scandir=yes
3158 if test "$_scandir" = yes ; then
3159 _def_scandir='#define HAVE_SCANDIR 1'
3160 else
3161 _def_scandir='#undef HAVE_SCANDIR'
3163 echores "$_scandir"
3166 echocheck "strsep()"
3167 cat > $TMPC << EOF
3168 #include <string.h>
3169 int main (void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3171 _strsep=no
3172 cc_check && _strsep=yes
3173 if test "$_strsep" = yes ; then
3174 _def_strsep='#define HAVE_STRSEP 1'
3175 else
3176 _def_strsep='#undef HAVE_STRSEP'
3178 echores "$_strsep"
3180 echocheck "strlcpy()"
3181 cat > $TMPC << EOF
3182 #include <string.h>
3183 int main (void) { char *s = "Hello, world!", t[20]; (void) strlcpy(t, s, sizeof( t )); return 0; }
3185 _strlcpy=no
3186 cc_check && _strlcpy=yes
3187 if test "$_strlcpy" = yes ; then
3188 _def_strlcpy='#define HAVE_STRLCPY 1'
3189 else
3190 _def_strlcpy='#undef HAVE_STRLCPY'
3192 echores "$_strlcpy"
3194 echocheck "strlcat()"
3195 cat > $TMPC << EOF
3196 #include <string.h>
3197 int main (void) { char *s = "Hello, world!", t[20]; (void) strlcat(t, s, sizeof( t )); return 0; }
3199 _strlcat=no
3200 cc_check && _strlcat=yes
3201 if test "$_strlcat" = yes ; then
3202 _def_strlcat='#define HAVE_STRLCAT 1'
3203 else
3204 _def_strlcat='#undef HAVE_STRLCAT'
3206 echores "$_strlcat"
3208 echocheck "fseeko()"
3209 cat > $TMPC << EOF
3210 #include <stdio.h>
3211 int main (void) { int i; i = fseeko(stdin, 0, 0); return 0; }
3213 _fseeko=no
3214 cc_check && _fseeko=yes
3215 if test "$_fseeko" = yes ; then
3216 _def_fseeko='#define HAVE_FSEEKO 1'
3217 else
3218 _def_fseeko='#undef HAVE_FSEEKO'
3220 echores "$_fseeko"
3222 echocheck "localtime_r()"
3223 cat > $TMPC << EOF
3224 #include <time.h>
3225 int main( void ) { localtime_r(NULL, NULL); }
3227 _localtime_r=no
3228 cc_check && _localtime_r=yes
3229 if test "$_localtime_r" = yes ; then
3230 _def_localtime_r='#define HAVE_LOCALTIME_R 1'
3231 else
3232 _def_localtime_r='#undef HAVE_LOCALTIME_R'
3234 echores "$_localtime_r"
3236 echocheck "vsscanf()"
3237 cat > $TMPC << EOF
3238 #include <stdarg.h>
3239 int main(void) { vsscanf(0, 0, 0); return 0; }
3241 _vsscanf=no
3242 cc_check && _vsscanf=yes
3243 if test "$_vsscanf" = yes ; then
3244 _def_vsscanf='#define HAVE_VSSCANF 1'
3245 else
3246 _def_vsscanf='#undef HAVE_VSSCANF'
3248 echores "$_vsscanf"
3251 echocheck "swab()"
3252 cat > $TMPC << EOF
3253 #include <unistd.h>
3254 int main(void) { swab(0, 0, 0); return 0; }
3256 _swab=no
3257 cc_check && _swab=yes
3258 if test "$_swab" = yes ; then
3259 _def_swab='#define HAVE_SWAB 1'
3260 else
3261 _def_swab='#undef HAVE_SWAB'
3263 echores "$_swab"
3265 echocheck "posix select()"
3266 cat > $TMPC << EOF
3267 #include <stdio.h>
3268 #include <stdlib.h>
3269 #include <sys/types.h>
3270 #include <string.h>
3271 #include <sys/time.h>
3272 #include <unistd.h>
3273 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3275 _posix_select=no
3276 cc_check && _posix_select=yes
3277 if test "$_posix_select" = no ; then
3278 _def_no_posix_select='#define HAVE_NO_POSIX_SELECT 1'
3279 else
3280 _def_no_posix_select='#undef HAVE_NO_POSIX_SELECT'
3282 echores "$_posix_select"
3285 echocheck "gettimeofday()"
3286 cat > $TMPC << EOF
3287 #include <stdio.h>
3288 #include <sys/time.h>
3289 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3291 _gettimeofday=no
3292 cc_check && _gettimeofday=yes
3293 if test "$_gettimeofday" = yes ; then
3294 _def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3295 else
3296 _def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3298 echores "$_gettimeofday"
3301 echocheck "glob()"
3302 cat > $TMPC << EOF
3303 #include <stdio.h>
3304 #include <glob.h>
3305 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3307 _glob=no
3308 cc_check && _glob=yes
3309 if test "$_glob" = yes ; then
3310 _def_glob='#define HAVE_GLOB 1'
3311 else
3312 _def_glob='#undef HAVE_GLOB'
3314 echores "$_glob"
3317 echocheck "sys/sysinfo.h"
3318 cat > $TMPC << EOF
3319 #include <sys/sysinfo.h>
3320 int main(void) {
3321 struct sysinfo s_info;
3322 sysinfo(&s_info);
3323 return 0;
3326 _sys_sysinfo=no
3327 cc_check && _sys_sysinfo=yes
3328 if test "$_sys_sysinfo" = yes ; then
3329 _def_sys_sysinfo='#define HAVE_SYS_SYSINFO_H 1'
3330 _inc_sysinfo='#include <sys/sysinfo.h>'
3331 else
3332 _def_sys_sysinfo='#undef HAVE_SYS_SYSINFO_H'
3334 echores "$_sys_sysinfo"
3337 echocheck "Mac OS X APIs"
3338 if test "$_macosx" = auto && darwin ; then
3339 productName=`/usr/bin/sw_vers -productName`
3340 if test "$productName" = "Mac OS X" ; then
3341 _macosx=yes
3342 else
3343 _macosx=no
3344 _def_macosx='#undef MACOSX'
3345 _noaomodules="macosx $_noaomodules"
3346 _novomodules="quartz $_novomodules"
3349 if test "$_macosx" = yes ; then
3350 cat > $TMPC <<EOF
3351 #include <Carbon/Carbon.h>
3352 #include <QuickTime/QuickTime.h>
3353 #include <CoreAudio/CoreAudio.h>
3354 int main(void) {
3355 EnterMovies();
3356 ExitMovies();
3357 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
3360 if cc_check -framework Carbon -framework QuickTime -framework CoreAudio; then
3361 _macosx=yes
3362 _macosx_frameworks="-framework Carbon -framework QuickTime -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
3363 _def_macosx='#define MACOSX 1'
3364 _aosrc="$_aosrc ao_macosx.c"
3365 _aomodules="macosx $_aomodules"
3366 _vosrc="$_vosrc vo_quartz.c"
3367 _vomodules="quartz $_vomodules"
3368 else
3369 _macosx=no
3370 _def_macosx='#undef MACOSX'
3371 _noaomodules="macosx $_noaomodules"
3372 _novomodules="quartz $_novomodules"
3374 cat > $TMPC <<EOF
3375 #include <Carbon/Carbon.h>
3376 #include <QuartzCore/CoreVideo.h>
3377 int main(void) {}
3379 if cc_check -framework Carbon -framework QuartzCore -framework OpenGL; then
3380 _vosrc="$_vosrc vo_macosx.m"
3381 _vomodules="macosx $_vomodules"
3382 _macosx_frameworks="$_macosx_frameworks -framework Cocoa -framework QuartzCore -framework OpenGL"
3383 _def_macosx_corevideo='#define MACOSX_COREVIDEO 1'
3384 _macosx_corevideo=yes
3385 else
3386 _novomodules="macosx $_novomodules"
3387 _def_macosx_corevideo='#undef MACOSX_COREVIDEO'
3388 _macosx_corevideo=no
3391 echores "$_macosx"
3393 echocheck "Mac OS X Finder Support"
3394 if test "$_macosx_finder_support" = auto ; then
3395 _macosx_finder_support=$_macosx
3397 if test "$_macosx_finder_support" = yes; then
3398 _def_macosx_finder_support='#define MACOSX_FINDER_SUPPORT 1'
3399 _macosx_finder_support=yes
3400 else
3401 _def_macosx_finder_support='#undef MACOSX_FINDER_SUPPORT'
3402 _macosx_finder_support=no
3404 echores "$_macosx_finder_support"
3406 echocheck "Mac OS X Bundle file locations"
3407 if test "$_macosx_bundle" = auto ; then
3408 _macosx_bundle=$_macosx_finder_support
3410 if test "$_macosx_bundle" = yes; then
3411 _def_macosx_bundle='#define MACOSX_BUNDLE 1'
3412 else
3413 _def_macosx_bundle='#undef MACOSX_BUNDLE'
3414 _macosx_bundle=no
3416 echores "$_macosx_bundle"
3418 echocheck "Samba support (libsmbclient)"
3419 if test "$_smbsupport" = yes; then
3420 _ld_smb="-lsmbclient"
3422 if test "$_smbsupport" = auto; then
3423 _smbsupport=no
3424 cat > $TMPC << EOF
3425 #include <libsmbclient.h>
3426 int main(void) { smbc_opendir("smb://"); return 0; }
3428 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3429 cc_check $_ld_tmp && _ld_smb="$_ld_tmp" && _smbsupport=yes && break
3430 done
3433 if test "$_smbsupport" = yes; then
3434 _def_smbsupport="#define LIBSMBCLIENT"
3435 _inputmodules="smb $_inputmodules"
3436 else
3437 _def_smbsupport="#undef LIBSMBCLIENT"
3438 _noinputmodules="smb $_noinputmodules"
3440 echores "$_smbsupport"
3443 #########
3444 # VIDEO #
3445 #########
3448 echocheck "3dfx"
3449 if test "$_3dfx" = yes ; then
3450 _def_3dfx='#define HAVE_3DFX 1'
3451 _vosrc="$_vosrc vo_3dfx.c"
3452 _vomodules="3dfx $_vomodules"
3453 else
3454 _def_3dfx='#undef HAVE_3DFX'
3455 _novomodules="3dfx $_novomodules"
3457 echores "$_3dfx"
3460 echocheck "tdfxfb"
3461 if test "$_tdfxfb" = yes ; then
3462 _def_tdfxfb='#define HAVE_TDFXFB 1'
3463 _vosrc="$_vosrc vo_tdfxfb.c"
3464 _vomodules="tdfxfb $_vomodules"
3465 else
3466 _def_tdfxfb='#undef HAVE_TDFXFB'
3467 _novomodules="tdfxfb $_novomodules"
3469 echores "$_tdfxfb"
3471 echocheck "tdfxvid"
3472 if test "$_tdfxvid" = yes ; then
3473 _def_tdfxvid='#define HAVE_TDFX_VID 1'
3474 _vosrc="$_vosrc vo_tdfx_vid.c"
3475 _vomodules="tdfx_vid $_vomodules"
3476 else
3477 _def_tdfxvid='#undef HAVE_TDFX_VID'
3478 _novomodules="tdfx_vid $_novomodules"
3480 echores "$_tdfxfb"
3482 echocheck "tga"
3483 if test "$_tga" = yes ; then
3484 _def_tga='#define HAVE_TGA 1'
3485 _vosrc="$_vosrc vo_tga.c"
3486 _vomodules="tga $_vomodules"
3487 else
3488 _def_tga='#undef HAVE_TGA'
3489 _novomodules="tga $_novomodules"
3491 echores "$_tga"
3493 echocheck "DirectFB headers presence"
3494 if test -z "$_inc_directfb" ; then
3495 for I in /usr/include /usr/local/include $_inc_extra; do
3496 if test -d "$I/directfb" && test -f "$I/directfb/directfb.h" ; then
3497 _inc_directfb="-I$I/directfb"
3498 echores "yes (using $_inc_directfb)"
3499 break
3501 if test -d "$I" && test -f "$I/directfb.h" ; then
3502 _inc_directfb="-I$I"
3503 echores "yes (using $_inc_directfb)"
3504 break
3506 done
3507 if test -z "$_inc_directfb" ; then
3508 _directfb=no
3509 echores "not found"
3511 else
3512 echores "yes (using $_inc_directfb)"
3514 if test "$_inc_directfb" = "-I/usr/include" ; then
3515 _inc_directfb=""
3518 echocheck "DirectFB"
3519 if test "$_directfb" = auto ; then
3520 _directfb=no
3521 cat > $TMPC <<EOF
3522 #include <directfb.h>
3523 int main(void) { IDirectFB *foo; DirectFBInit(0,0); return 0; }
3525 linux && test -c /dev/fb0 && cc_check $_inc_directfb -ldirectfb && _directfb=yes
3528 if test "$_directfb" = yes; then
3529 cat > $TMPC << EOF
3530 #include <directfb_version.h>
3532 dfb_ver = DIRECTFB_MAJOR_VERSION DIRECTFB_MINOR_VERSION DIRECTFB_MICRO_VERSION
3535 if $_cc -E $TMPC $_inc_directfb > "$TMPO"; then
3536 _directfb_version=`sed -n 's/^dfb_ver[^1-9]*\(.*\)/\1/p' "$TMPO" | tr -d '() '`
3537 _def_directfb_version="#define DIRECTFBVERSION $_directfb_version"
3538 if test "$_directfb_version" -ge 913; then
3539 _res_comment="$_directfb_version"
3540 else
3541 _def_directfb_version='#undef DIRECTFBVERSION'
3542 _directfb=no
3543 _res_comment="version >=0.9.13 required"
3545 else
3546 _directfb=no
3547 _res_comment="failed to get version"
3550 echores "$_directfb"
3552 if test "$_directfb" = yes ; then
3553 _def_directfb='#define HAVE_DIRECTFB 1'
3554 if test "$_directfb_version" -ge 913; then
3555 _vosrc="$_vosrc vo_directfb2.c"
3556 _vomodules="directfb $_vomodules"
3557 _ld_directfb='-ldirectfb'
3560 if test "$_directfb_version" -ge 915; then
3561 _vosrc="$_vosrc vo_dfbmga.c"
3562 _vomodules="dfbmga $_vomodules"
3564 else
3565 _def_directfb='#undef HAVE_DIRECTFB'
3566 _novomodules="directfb $_novomodules"
3567 _inc_directfb=""
3571 echocheck "X11 headers presence"
3572 if test -z "$_inc_x11" ; then
3573 for I in /usr/X11/include /usr/X11R6/include /usr/include/X11R6 /usr/include /usr/openwin/include ; do
3574 if test -d "$I/X11" && test -f "$I/X11/Xlib.h" ; then
3575 _inc_x11="-I$I"
3576 echores "yes (using $I)"
3577 break
3579 done
3580 if test -z "$_inc_x11" ; then
3581 _x11=no
3582 echores "not found (check if the dev(el) packages are installed)"
3584 else
3585 echores "yes (using $_inc_x11)"
3587 if test "$_inc_x11" = "-I/usr/include" ; then
3588 _inc_x11=""
3592 echocheck "X11"
3593 if test "$_x11" != no ; then
3594 cat > $TMPC <<EOF
3595 #include <X11/Xlib.h>
3596 #include <X11/Xutil.h>
3597 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
3599 if test -z "$_x11_paths" ; then
3600 _x11_paths="/usr/X11R6/lib /usr/lib/X11R6 /usr/X11/lib /usr/lib32 /usr/openwin/lib /usr/X11R6/lib64 /usr/lib"
3602 for I in $_x11_paths ; do
3603 _ld_x11="-L$I -lXext -lX11 $_ld_sock $_ld_pthread"
3604 if netbsd; then
3605 _ld_x11="$_ld_x11 -Wl,-R$I"
3607 if test -d "$I" && cc_check $_inc_x11 $_ld_x11 ; then
3608 _x11=yes
3609 break
3611 done
3613 if test "$_x11" = yes ; then
3614 _def_x11='#define HAVE_X11 1'
3615 _vosrc="$_vosrc x11_common.c vo_x11.c vo_xover.c"
3616 _vomodules="x11 xover $_vomodules"
3617 _res_comment="using $I"
3618 else
3619 _x11=no
3620 _def_x11='#undef HAVE_X11'
3621 _inc_x11=''
3622 _ld_x11=''
3623 _novomodules="x11 $_novomodules"
3624 _res_comment="check if the dev(el) packages are installed"
3626 echores "$_x11"
3629 echocheck "DPMS"
3630 _xdpms3=no
3631 _xdpms4=no
3632 if test "$_x11" = yes ; then
3633 cat > $TMPC <<EOF
3634 #include <X11/Xmd.h>
3635 #include <X11/Xlib.h>
3636 #include <X11/Xutil.h>
3637 #include <X11/Xatom.h>
3638 #include <X11/extensions/dpms.h>
3639 int main(void) {
3640 (void) DPMSQueryExtension(0, 0, 0);
3643 cc_check $_inc_x11 -lXdpms $_ld_x11 && _xdpms3=yes
3644 cat > $TMPC <<EOF
3645 #include <X11/Xlib.h>
3646 #include <X11/extensions/dpms.h>
3647 int main(void) {
3648 (void) DPMSQueryExtension(0, 0, 0);
3651 cc_check $_inc_x11 $_ld_x11 && _xdpms4=yes
3653 if test "$_xdpms4" = yes ; then
3654 _def_xdpms='#define HAVE_XDPMS 1'
3655 echores "yes (using Xdpms 4)"
3656 elif test "$_xdpms3" = yes ; then
3657 _def_xdpms='#define HAVE_XDPMS 1'
3658 _ld_x11="-lXdpms $_ld_x11"
3659 echores "yes (using Xdpms 3)"
3660 else
3661 _def_xdpms='#undef HAVE_XDPMS'
3662 echores "no"
3666 echocheck "Xv"
3667 if test "$_x11" = yes && test "$_xv" != no ; then
3668 cat > $TMPC <<EOF
3669 #include <X11/Xlib.h>
3670 #include <X11/extensions/Xvlib.h>
3671 int main(void) {
3672 (void) XvGetPortAttribute(0, 0, 0, 0);
3673 (void) XvQueryPortAttributes(0, 0, 0);
3674 return 0; }
3676 _xv=no
3677 cc_check $_inc_x11 -lXv $_ld_x11 && _xv=yes
3678 else
3679 _xv=no
3681 if test "$_xv" = yes ; then
3682 _def_xv='#define HAVE_XV 1'
3683 _ld_xv='-lXv'
3684 _vosrc="$_vosrc vo_xv.c"
3685 _vomodules="xv $_vomodules"
3686 else
3687 _def_xv='#undef HAVE_XV'
3688 _novomodules="xv $_novomodules"
3690 echores "$_xv"
3693 echocheck "XvMC"
3694 if test "$_x11" = yes && test "$_xv" = yes && test "$_xvmc" != no ; then
3695 _xvmc=no
3696 cat > $TMPC <<EOF
3697 #include <X11/Xlib.h>
3698 #include <X11/extensions/Xvlib.h>
3699 #include <X11/extensions/XvMClib.h>
3700 int main(void) {
3701 (void) XvMCQueryExtension(0,0,0);
3702 (void) XvMCCreateContext(0,0,0,0,0,0,0);
3703 return 0; }
3705 cc_check $_inc_x11 -lXvMC -l$_xvmclib $_ld_xv $_ld_x11 && _xvmc=yes
3707 if test "$_xvmc" = yes ; then
3708 _def_xvmc='#define HAVE_XVMC 1'
3709 _ld_xvmc="-lXvMC -l$_xvmclib"
3710 _vosrc="$_vosrc vo_xvmc.c"
3711 _vomodules="xvmc $_vomodules"
3712 else
3713 _def_xvmc='#undef HAVE_XVMC'
3714 _novomodules="xvmc $_novomodules"
3716 echores "$_xvmc"
3719 echocheck "Xinerama"
3720 if test "$_x11" = yes && test "$_xinerama" != no ; then
3721 cat > $TMPC <<EOF
3722 #include <X11/Xlib.h>
3723 #include <X11/extensions/Xinerama.h>
3724 int main(void) { (void) XineramaIsActive(0); return 0; }
3726 _xinerama=no
3727 cc_check $_inc_x11 -lXinerama $_ld_x11 && _xinerama=yes
3728 else
3729 _xinerama=no
3731 if test "$_xinerama" = yes ; then
3732 _def_xinerama='#define HAVE_XINERAMA 1'
3733 _ld_xinerama='-lXinerama'
3734 else
3735 _def_xinerama='#undef HAVE_XINERAMA'
3737 echores "$_xinerama"
3740 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
3741 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
3742 # named 'X extensions' or something similar.
3743 # This check may be useful for future mplayer versions (to change resolution)
3744 # If you run into problems, remove '-lXxf86vm'.
3745 echocheck "Xxf86vm"
3746 if test "$_x11" = yes && test "$_vm" = auto ; then
3747 cat > $TMPC <<EOF
3748 #include <X11/Xlib.h>
3749 #include <X11/extensions/xf86vmode.h>
3750 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
3752 _vm=no
3753 cc_check $_inc_x11 -lXxf86vm $_ld_x11 && _vm=yes
3755 if test "$_vm" = yes ; then
3756 _def_vm='#define HAVE_XF86VM 1'
3757 _ld_vm='-lXxf86vm'
3758 else
3759 _def_vm='#undef HAVE_XF86VM'
3761 echores "$_vm"
3763 # Check for the presence of special keycodes, like audio control buttons
3764 # that XFree86 might have. Used to be bundled with the xf86vm check, but
3765 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
3766 # have these new keycodes.
3767 echocheck "XF86keysym"
3768 if test "$_xf86keysym" = auto; then
3769 _xf86keysym=no
3770 if test "$_x11" = yes ; then
3771 cat > $TMPC <<EOF
3772 #include <X11/Xlib.h>
3773 #include <X11/XF86keysym.h>
3774 int main(void) { return XF86XK_AudioPause; }
3776 cc_check $_inc_x11 $_ld_x11 && _xf86keysym=yes
3779 if test "$_xf86keysym" = yes ; then
3780 _def_xf86keysym='#define HAVE_XF86XK 1'
3781 else
3782 _def_xf86keysym='#undef HAVE_XF86XK'
3784 echores "$_xf86keysym"
3786 echocheck "DGA"
3787 if test "$_x11" = no ; then
3788 _dga=no
3790 # Version 2 is preferred to version 1 if available
3791 if test "$_dga" = auto ; then
3792 cat > $TMPC << EOF
3793 #include <X11/Xlib.h>
3794 #include <X11/extensions/xf86dga.h>
3795 int main (void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
3797 _dga=no
3798 cc_check $_inc_x11 -lXxf86dga -lXxf86vm $_ld_x11 && _dga=1
3800 cat > $TMPC << EOF
3801 #include <X11/Xlib.h>
3802 #include <X11/extensions/xf86dga.h>
3803 int main (void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
3805 cc_check $_inc_x11 -lXxf86dga $_ld_x11 && _dga=2
3808 _def_dga='#undef HAVE_DGA'
3809 _def_dga2='#undef HAVE_DGA2'
3810 if test "$_dga" = 1 ; then
3811 _def_dga='#define HAVE_DGA 1'
3812 _ld_dga='-lXxf86dga'
3813 _vosrc="$_vosrc vo_dga.c"
3814 _vomodules="dga $_vomodules"
3815 echores "yes (using DGA 1.0)"
3816 elif test "$_dga" = 2 ; then
3817 _def_dga='#define HAVE_DGA 1'
3818 _def_dga2='#define HAVE_DGA2 1'
3819 _ld_dga='-lXxf86dga'
3820 _vosrc="$_vosrc vo_dga.c"
3821 _vomodules="dga $_vomodules"
3822 echores "yes (using DGA 2.0)"
3823 elif test "$_dga" = no ; then
3824 echores "no"
3825 _novomodules="dga $_novomodules"
3826 else
3827 die "DGA version must be 1 or 2"
3831 echocheck "OpenGL"
3832 #Note: this test is run even with --enable-gl since we autodetect $_ld_gl
3833 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
3834 cat > $TMPC << EOF
3835 #include <GL/gl.h>
3836 int main(void) { return 0; }
3838 _gl=no
3839 if cc_check $_inc_x11 $_ld_x11 -lGL $_ld_lm ; then
3840 _gl=yes
3841 _ld_gl="-lGL $_ld_dl"
3842 elif cc_check $_inc_x11 $_ld_x11 -lGL $_ld_lm $_ld_pthread ; then
3843 _gl=yes
3844 _ld_gl="-lGL $_ld_pthread $_ld_dl"
3845 elif cc_check -lopengl32 ; then
3846 _gl=yes
3847 _gl_win32=yes
3848 _ld_gl="-lopengl32 -lgdi32"
3850 else
3851 _gl=no
3853 if test "$_gl" = yes ; then
3854 _def_gl='#define HAVE_GL 1'
3855 _vosrc="$_vosrc vo_gl.c vo_gl2.c gl_common.c"
3856 if test "$_gl_win32" = yes ; then
3857 _def_gl_win32='#define GL_WIN32 1'
3858 _vosrc="$_vosrc w32_common.c"
3859 _res_comment="win32 version"
3861 _vomodules="opengl $_vomodules"
3862 else
3863 _def_gl='#undef HAVE_GL'
3864 _def_gl_win32='#undef GL_WIN32'
3865 _novomodules="opengl $_novomodules"
3867 echores "$_gl"
3870 echocheck "/dev/mga_vid"
3871 if test "$_mga" = auto ; then
3872 _mga=no
3873 test -c /dev/mga_vid && _mga=yes
3875 if test "$_mga" = yes ; then
3876 _def_mga='#define HAVE_MGA 1'
3877 _vosrc="$_vosrc vo_mga.c"
3878 _vomodules="mga $_vomodules"
3879 else
3880 _def_mga='#undef HAVE_MGA'
3881 _novomodules="mga $_novomodules"
3883 echores "$_mga"
3886 # echocheck "syncfb"
3887 # _syncfb=no
3888 # test "$_mga" = yes && _syncfb=yes
3889 # if test "$_syncfb" = yes ; then
3890 # _def_syncfb='#define HAVE_SYNCFB 1'
3891 # _vosrc="$_vosrc vo_syncfb.c"
3892 # else
3893 # _def_syncfb='#undef HAVE_SYNCFB'
3894 # fi
3895 # echores "$_syncfb"
3898 echocheck "xmga"
3899 if test "$_xmga" = auto ; then
3900 _xmga=no
3901 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
3903 if test "$_xmga" = yes ; then
3904 _def_xmga='#define HAVE_XMGA 1'
3905 _vosrc="$_vosrc vo_xmga.c"
3906 _vomodules="xmga $_vomodules"
3907 else
3908 _def_xmga='#undef HAVE_XMGA'
3909 _novomodules="xmga $_novomodules"
3911 echores "$_xmga"
3914 echocheck "GGI"
3915 if test "$_ggi" = auto ; then
3916 cat > $TMPC << EOF
3917 #include <ggi/ggi.h>
3918 int main(void) { return 0; }
3920 _ggi=no
3921 cc_check -lggi && _ggi=yes
3923 if test "$_ggi" = yes ; then
3924 _def_ggi='#define HAVE_GGI 1'
3925 _ld_ggi='-lggi'
3926 _vosrc="$_vosrc vo_ggi.c"
3927 _vomodules="ggi $_vomodules"
3928 else
3929 _def_ggi='#undef HAVE_GGI'
3930 _novomodules="ggi $_novomodules"
3932 echores "$_ggi"
3934 echocheck "GGI extension: libggiwmh"
3935 if test "$_ggiwmh" = auto ; then
3936 _ggiwmh=no
3937 cat > $TMPC << EOF
3938 #include <ggi/ggi.h>
3939 #include <ggi/wmh.h>
3940 int main(void) { return 0; }
3942 cc_check -lggi -lggiwmh && _ggiwmh=yes
3944 # needed to get right output on obscure combination
3945 # like --disable-ggi --enable-ggiwmh
3946 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
3947 _def_ggiwmh='#define HAVE_GGIWMH 1'
3948 _ld_ggi="$_ld_ggi -lggiwmh"
3949 else
3950 _ggiwmh=no
3951 _def_ggiwmh='#undef HAVE_GGIWMH'
3953 echores "$_ggiwmh"
3956 echocheck "AA"
3957 if test "$_aa" = auto ; then
3958 cat > $TMPC << EOF
3959 #include <aalib.h>
3960 extern struct aa_hardware_params aa_defparams;
3961 extern struct aa_renderparams aa_defrenderparams;
3962 int main(void) {
3963 aa_context *c;
3964 aa_renderparams *p;
3965 (void) aa_init(0, 0, 0);
3966 c = aa_autoinit(&aa_defparams);
3967 p = aa_getrenderparams();
3968 aa_autoinitkbd(c,0);
3969 return 0; }
3971 _aa=no
3972 for _ld_tmp in "-laa" "$_ld_x11 -laa" ; do
3973 cc_check $_ld_tmp && _ld_aa=$_ld_tmp && _aa=yes && break
3974 done
3976 if test "$_aa" = yes ; then
3977 _def_aa='#define HAVE_AA 1'
3978 if cygwin ; then
3979 _ld_aa=`aalib-config --libs | cut -d " " -f 2,5,6`
3981 _vosrc="$_vosrc vo_aa.c"
3982 _vomodules="aa $_vomodules"
3983 else
3984 _def_aa='#undef HAVE_AA'
3985 _novomodules="aa $_novomodules"
3987 echores "$_aa"
3990 echocheck "CACA"
3991 if test "$_caca" = auto ; then
3992 _caca=no
3993 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
3994 cat > $TMPC << EOF
3995 #include <caca.h>
3996 int main(void) { (void) caca_init(); return 0; }
3998 cc_check `caca-config --libs` && _caca=yes
4001 if test "$_caca" = yes ; then
4002 _def_caca='#define HAVE_CACA 1'
4003 _inc_caca=`caca-config --cflags`
4004 _ld_caca=`caca-config --libs`
4005 _vosrc="$_vosrc vo_caca.c"
4006 _vomodules="caca $_vomodules"
4007 else
4008 _def_caca='#undef HAVE_CACA'
4009 _novomodules="caca $_novomodules"
4011 echores "$_caca"
4014 echocheck "SVGAlib"
4015 if test "$_svga" = auto ; then
4016 cat > $TMPC << EOF
4017 #include <vga.h>
4018 int main(void) { return 0; }
4020 _svga=no
4021 cc_check -lvga $_ld_lm && _svga=yes
4023 if test "$_svga" = yes ; then
4024 _def_svga='#define HAVE_SVGALIB 1'
4025 _ld_svga="-lvga"
4026 _vosrc="$_vosrc vo_svga.c"
4027 _vomodules="svga $_vomodules"
4028 else
4029 _def_svga='#undef HAVE_SVGALIB'
4030 _novomodules="svga $_novomodules"
4032 echores "$_svga"
4035 echocheck "FBDev"
4036 if test "$_fbdev" = auto ; then
4037 _fbdev=no
4038 linux && test -c /dev/fb0 && _fbdev=yes
4040 if test "$_fbdev" = yes ; then
4041 _def_fbdev='#define HAVE_FBDEV 1'
4042 _vosrc="$_vosrc vo_fbdev.c vo_fbdev2.c"
4043 _vomodules="fbdev $_vomodules"
4044 else
4045 _def_fbdev='#undef HAVE_FBDEV'
4046 _novomodules="fbdev $_novomodules"
4048 echores "$_fbdev"
4052 echocheck "DVB"
4053 if test "$_dvb" != no ; then
4054 _dvb=no
4055 cat >$TMPC << EOF
4056 #include <sys/poll.h>
4057 #include <sys/ioctl.h>
4058 #include <stdio.h>
4059 #include <time.h>
4060 #include <unistd.h>
4062 #include <ost/dmx.h>
4063 #include <ost/frontend.h>
4064 #include <ost/sec.h>
4065 #include <ost/video.h>
4066 #include <ost/audio.h>
4067 int main(void) {return 0;}
4069 if cc_check ; then
4070 _dvb=yes
4071 else
4072 for I in "$_inc_dvb" "-I/usr/src/DVB/ost/include" ; do
4073 if cc_check "$I" ; then
4074 _dvb=yes
4075 _inc_dvb="$I"
4076 _res_comment="using $_inc_dvb"
4077 break
4079 done
4080 test "$_dvb" = no && _res_comment="specify path to DVB/ost/include with --with-dvbincdir=DIR"
4083 echores "$_dvb"
4084 if test "$_dvb" = yes ; then
4085 _def_dvb='#define HAVE_DVB 1'
4086 _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
4087 _aomodules="mpegpes(dvb) $_aomodules"
4088 _vomodules="mpegpes(dvb) $_vomodules"
4090 if test "$_dvbhead" != no ; then
4091 echocheck "DVB HEAD"
4092 if test "$_dvbhead" != no ; then
4093 _dvbhead=no
4095 cat >$TMPC << EOF
4096 #include <sys/poll.h>
4097 #include <sys/ioctl.h>
4098 #include <stdio.h>
4099 #include <time.h>
4100 #include <unistd.h>
4102 #include <linux/dvb/dmx.h>
4103 #include <linux/dvb/frontend.h>
4104 #include <linux/dvb/video.h>
4105 #include <linux/dvb/audio.h>
4106 int main(void) {return 0;}
4108 if cc_check ; then
4109 _dvbhead=yes
4110 else
4111 for I in "$_inc_dvb" "-I/usr/src/DVB/include" ; do
4112 if cc_check "$I" ; then
4113 _dvbhead=yes
4114 _inc_dvb="$I"
4115 _res_comment="using $_inc_dvb"
4116 break
4118 done
4119 test "$_dvbhead" = no && _res_comment="specify path to DVB/include (HEAD Version) with --with-dvbincdir=DIR"
4122 echores "$_dvbhead"
4123 if test "$_dvbhead" = yes ; then
4124 _def_dvb='#define HAVE_DVB_HEAD 1'
4125 _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
4126 _aomodules="mpegpes(dvb) $_aomodules"
4127 _vomodules="mpegpes(dvb) $_vomodules"
4130 if test "$_dvbhead" = no && test "$_dvb" = no ; then
4131 _def_dvb='#undef HAVE_DVB'
4132 _def_dvb_in='#undef HAS_DVBIN_SUPPORT '
4133 _aomodules="mpegpes(file) $_aomodules"
4134 _vomodules="mpegpes(file) $_vomodules"
4137 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
4138 _dvbin=yes
4139 _inputmodules="dvb $_inputmodules"
4140 else
4141 _dvbin=no
4142 _noinputmodules="dvb $_noinputmodules"
4145 echocheck "PNG support"
4146 if test "$_png" = auto ; then
4147 _png=no
4148 if irix ; then
4149 # Don't check for -lpng on irix since it has its own libpng
4150 # incompatible with the GNU libpng
4151 _res_comment="disabled on irix (not GNU libpng)"
4152 else
4153 cat > $TMPC << EOF
4154 #include <png.h>
4155 #include <string.h>
4156 int main(void) {
4157 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4158 printf("libpng: %s\n", png_libpng_ver);
4159 return (strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver));
4162 if cc_check -lpng -lz $_ld_lm ; then
4163 if tmp_run ; then
4164 _png=yes
4165 else
4166 _res_comment="mismatch of library and header versions"
4171 echores "$_png"
4172 if test "$_png" = yes ; then
4173 _def_png='#define HAVE_PNG 1'
4174 _ld_png='-lpng -lz'
4175 _vosrc="$_vosrc vo_png.c"
4176 _vomodules="png $_vomodules"
4177 _mkf_png="yes"
4178 else
4179 _def_png='#undef HAVE_PNG'
4180 _novomodules="png $_novomodules"
4181 _mkf_png="no"
4184 echocheck "JPEG support"
4185 if test "$_jpg" = auto ; then
4186 _jpg=no
4187 cat > $TMPC << EOF
4188 #include <stdio.h>
4189 #include <stdlib.h>
4190 #include <setjmp.h>
4191 #include <string.h>
4192 #include <jpeglib.h>
4193 int main(void) {
4194 return 0;
4197 if cc_check -ljpeg $_ld_lm ; then
4198 if tmp_run ; then
4199 _jpg=yes
4203 echores "$_jpg"
4205 if test "$_jpg" = yes ; then
4206 _def_jpg='#define HAVE_JPEG 1'
4207 _vosrc="$_vosrc vo_jpeg.c"
4208 _vomodules="jpeg $_vomodules"
4209 _ld_jpg="-ljpeg"
4210 _mkf_jpg="yes"
4211 else
4212 _def_jpg='#undef HAVE_JPEG'
4213 _novomodules="jpeg $_novomodules"
4214 _mkf_jpg="no"
4219 echocheck "PNM support"
4220 if test "$_pnm" = yes; then
4221 _def_pnm="#define HAVE_PNM"
4222 _vosrc="$_vosrc vo_pnm.c"
4223 _vomodules="pnm $_vomodules"
4224 else
4225 _def_pnm="#undef HAVE_PNM"
4226 _novomodules="pnm $_novomodules"
4228 echores "$_pnm"
4232 echocheck "md5sum support"
4233 if test "$_md5sum" = yes; then
4234 _def_md5sum="#define HAVE_MD5SUM"
4235 _vosrc="$_vosrc vo_md5sum.c md5sum.c"
4236 _vomodules="md5sum $_vomodules"
4237 else
4238 _def_md5sum="#undef HAVE_MD5SUM"
4239 _novomodules="md5sum $_novomodules"
4241 echores "$_md5sum"
4245 echocheck "GIF support"
4246 # This is to appease people who want to force gif support.
4247 # If it is forced to yes, then we still do checks to determine
4248 # which gif library to use.
4249 if test "$_gif" = yes ; then
4250 _force_gif=yes
4251 _gif=auto
4254 if test "$_gif" = auto ; then
4255 _gif=no
4256 cat > $TMPC << EOF
4257 #include <gif_lib.h>
4258 int main(void) {
4259 return 0;
4262 for _ld_tmp in "-lungif" "-lungif $_ld_x11" "-lgif" "-lgif $_ld_x11" ; do
4263 cc_check $_ld_tmp && tmp_run && _ld_gif="$_ld_tmp" && _gif=yes && break
4264 done
4267 # If no library was found, and the user wants support forced,
4268 # then we force it on with libgif, as this is the safest
4269 # assumption IMHO. (libungif & libregif both create symbolic
4270 # links to libgif. We also assume that no x11 support is needed,
4271 # because if you are forcing this, then you _should_ know what
4272 # you are doing. [ Besides, package maintainers should never
4273 # have compiled x11 deps into libungif in the first place. ] )
4274 # </rant>
4275 # --Joey
4276 if test "$_force_gif" = yes && test "$_gif" = no ; then
4277 _gif=yes
4278 _ld_gif="-lgif"
4281 if test "$_gif" = yes ; then
4282 _def_gif='#define HAVE_GIF 1'
4283 _vosrc="$_vosrc vo_gif89a.c"
4284 _codecmodules="gif $_codecmodules"
4285 _vomodules="gif89a $_vomodules"
4286 _mkf_gif="yes"
4287 _gif="yes (old version, some encoding functions disabled)"
4288 _def_gif_4='#undef HAVE_GIF_4'
4290 cat > $TMPC << EOF
4291 #include <signal.h>
4292 #include <gif_lib.h>
4293 void catch() { exit(1); }
4294 int main(void) {
4295 signal(SIGSEGV, catch); // catch segfault
4296 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
4297 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
4298 return 0;
4301 if cc_check "$_ld_gif" && tmp_run ; then
4302 _def_gif_4='#define HAVE_GIF_4 1'
4303 _gif="yes"
4305 else
4306 _def_gif='#undef HAVE_GIF'
4307 _def_gif_4='#undef HAVE_GIF_4'
4308 _novomodules="gif89a $_novomodules"
4309 _nocodecmodules="gif $_nocodecmodules"
4310 _mkf_gif="no"
4312 echores "$_gif"
4315 case "$_gif" in yes*)
4316 echocheck "broken giflib workaround"
4317 _def_gif_tvt_hack='#define HAVE_GIF_TVT_HACK 1'
4319 cat > $TMPC << EOF
4320 #include <gif_lib.h>
4321 int main(void) {
4322 GifFileType gif;
4323 printf("UserData is at address %p\n", gif.UserData);
4324 return 0;
4327 if cc_check "$_ld_gif" && tmp_run ; then
4328 _def_gif_tvt_hack='#undef HAVE_GIF_TVT_HACK'
4329 echores "disabled"
4330 else
4331 echores "enabled"
4334 esac
4337 echocheck "VESA support"
4338 if test "$_vesa" = auto ; then
4339 cat > $TMPC << EOF
4340 #include <vbe.h>
4341 int main(void) { vbeVersion(); return 0; }
4343 _vesa=no
4344 cc_check -lvbe -llrmi && _vesa=yes
4346 if test "$_vesa" = yes ; then
4347 _def_vesa='#define HAVE_VESA 1'
4348 _ld_vesa="-lvbe -llrmi"
4349 _vosrc="$_vosrc vo_vesa.c vesa_lvo.c gtf.c"
4350 _vomodules="vesa $_vomodules"
4351 else
4352 _def_vesa='#undef HAVE_VESA'
4353 _novomodules="vesa $_novomodules"
4355 echores "$_vesa"
4357 #################
4358 # VIDEO + AUDIO #
4359 #################
4362 echocheck "SDL"
4363 if test -z "$_sdlconfig" ; then
4364 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
4365 _sdlconfig="sdl-config"
4366 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
4367 _sdlconfig="sdl11-config"
4368 else
4369 _sdlconfig=false
4372 if test "$_sdl" = auto || test "$_sdl" = yes ; then
4373 cat > $TMPC << EOF
4374 #include <SDL.h>
4375 int main(int argc, char *argv[]) { return 0; }
4377 _sdl=no
4378 if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
4379 if cc_check `$_sdlconfig --cflags` `$_sdlconfig --libs` >>"$TMPLOG" 2>&1 ; then
4380 _sdlversion=`$_sdlconfig --version | sed 's/[^0-9]//g'`
4381 if test "$_sdlversion" -gt 116 ; then
4382 if test "$_sdlversion" -lt 121 ; then
4383 _def_sdlbuggy='#define BUGGY_SDL'
4384 else
4385 _def_sdlbuggy='#undef BUGGY_SDL'
4387 _sdl=yes
4388 else
4389 _res_comment=outdated
4394 if test "$_sdl" = yes ; then
4395 _def_sdl='#define HAVE_SDL 1'
4396 if cygwin ; then
4397 _ld_sdl=`$_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/`
4398 _inc_sdl=`$_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/`
4399 elif mingw32 ; then
4400 _ld_sdl=`$_sdlconfig --libs | sed s/-mwindows//`
4401 _inc_sdl=`$_sdlconfig --cflags | sed s/-Dmain=SDL_main//`
4402 else
4403 _ld_sdl=`$_sdlconfig --libs`
4404 _inc_sdl=`$_sdlconfig --cflags`
4406 _vosrc="$_vosrc vo_sdl.c"
4407 _vomodules="sdl $_vomodules"
4408 _aosrc="$_aosrc ao_sdl.c"
4409 _aomodules="sdl $_aomodules"
4410 _res_comment="using $_sdlconfig"
4411 else
4412 _def_sdl='#undef HAVE_SDL'
4413 _novomodules="sdl $_novomodules"
4414 _noaomodules="sdl $_noaomodules"
4416 echores "$_sdl"
4418 echocheck "Windows waveout"
4419 if test "$_win32waveout" = auto ; then
4420 cat > $TMPC << EOF
4421 #include <windows.h>
4422 #include <mmsystem.h>
4423 int main(void) { return 0; }
4425 _win32waveout=no
4426 cc_check -lwinmm && _win32waveout=yes
4428 if test "$_win32waveout" = yes ; then
4429 _def_win32waveout='#define HAVE_WIN32WAVEOUT 1'
4430 _ld_win32libs="-lwinmm $_ld_win32libs"
4431 _aosrc="$_aosrc ao_win32.c"
4432 _aomodules="win32 $_aomodules"
4433 else
4434 _def_win32waveout='#undef HAVE_WIN32WAVEOUT'
4435 _noaomodules="win32 $_noaomodules"
4437 echores "$_win32waveout"
4439 echocheck "Directx"
4440 if test "$_directx" = auto ; then
4441 cat > $TMPC << EOF
4442 #include <windows.h>
4443 #include <ddraw.h>
4444 #include <dsound.h>
4445 int main(void) { return 0; }
4447 _directx=no
4448 cc_check -lgdi32 && _directx=yes
4450 if test "$_directx" = yes ; then
4451 _def_directx='#define HAVE_DIRECTX 1'
4452 _ld_win32libs="-lgdi32 $_ld_win32libs"
4453 _vosrc="$_vosrc vo_directx.c"
4454 _vomodules="directx $_vomodules"
4455 _aosrc="$_aosrc ao_dsound.c"
4456 _aomodules="dsound $_aomodules"
4457 else
4458 _def_directx='#undef HAVE_DIRECTX'
4459 _novomodules="directx $_novomodules"
4460 _noaomodules="dsound $_noaomodules"
4462 echores "$_directx"
4464 echocheck "NAS"
4465 if test "$_nas" = auto ; then
4466 cat > $TMPC << EOF
4467 #include <audio/audiolib.h>
4468 int main(void) { return 0; }
4470 _nas=no
4471 cc_check -laudio $_inc_x11 -lXt $_ld_x11 $_ld_lm && _nas=yes
4473 if test "$_nas" = yes ; then
4474 _def_nas='#define HAVE_NAS 1'
4475 _ld_nas="-laudio -lXt $_ld_x11"
4476 _aosrc="$_aosrc ao_nas.c"
4477 _aomodules="nas $_aomodules"
4478 else
4479 _noaomodules="nas $_noaomodules"
4480 _def_nas='#undef HAVE_NAS'
4482 echores "$_nas"
4484 echocheck "DXR2"
4485 if test "$_dxr2" = auto; then
4486 _dxr2=no
4487 cat > $TMPC << EOF
4488 #include <dxr2ioctl.h>
4489 int main(void) { return 0; }
4491 for _inc_dxr2 in "$_inc_dxr2" \
4492 "-I/usr/local/include/dxr2" \
4493 "-I/usr/include/dxr2"; do
4494 cc_check $_inc_dxr2 && _dxr2=yes && break
4495 done
4497 if test "$_dxr2" = yes; then
4498 _def_dxr2='#define HAVE_DXR2 1'
4499 _vosrc="$_vosrc vo_dxr2.c"
4500 _aosrc="$_aosrc ao_dxr2.c"
4501 _aomodules="dxr2 $_aomodules"
4502 _vomodules="dxr2 $_vomodules"
4503 _res_comment="using $_inc_dxr2"
4504 else
4505 _def_dxr2='#undef HAVE_DXR2'
4506 _noaomodules="dxr2 $_noaomodules"
4507 _novomodules="dxr2 $_novomodules"
4508 _inc_dxr2=""
4510 echores "$_dxr2"
4512 echocheck "DXR3/H+"
4513 if test "$_dxr3" = auto ; then
4514 cat > $TMPC << EOF
4515 #include <linux/em8300.h>
4516 int main(void) { return 0; }
4518 _dxr3=no
4519 cc_check && _dxr3=yes
4521 if test "$_dxr3" = yes ; then
4522 _def_dxr3='#define HAVE_DXR3 1'
4523 _vosrc="$_vosrc vo_dxr3.c"
4524 _vomodules="dxr3 $_vomodules"
4525 else
4526 _def_dxr3='#undef HAVE_DXR3'
4527 _novomodules="dxr3 $_novomodules"
4528 if test "$_mp1e" = auto ; then
4529 # we don't need mp1e
4530 _mp1e=no
4533 echores "$_dxr3"
4535 echocheck "libmp1e"
4536 if test "$_mmx" = no ; then
4537 # mp1e REQUIRES mmx!
4538 _mp1e=no
4540 if test "$_mp1e" != no ; then
4541 _mp1e=yes
4542 _def_mp1e='#define USE_MP1E'
4543 _ld_mp1e='libmp1e/libmp1e.a'
4544 _dep_mp1e='libmp1e/libmp1e.a'
4545 else
4546 _mp1e=no
4547 _def_mp1e='#undef USE_MP1E'
4548 _ld_mp1e=""
4549 _dep_mp1e=''
4551 echores "$_mp1e"
4554 echocheck "libfame"
4555 if test "$_fame" = auto ; then
4556 _fame=no
4557 test "$_dxr2" = yes && _fame=auto
4558 test "$_dxr3" = yes && _fame=auto
4559 test "$_dvb" = yes && _fame=auto
4561 if test "$_fame" = auto ; then
4562 _fame=no
4563 if test -d libfame && test -f libfame/fame.h ; then
4564 # disable fame on cygwin as no sense to port - atmos
4565 cygwin || _fame=yes
4566 else
4567 _res_comment="no fame dir"
4570 echores "$_fame"
4572 _def_fame='#undef USE_LIBFAME'
4573 if test "$_fame" = yes ; then
4574 _def_fame='#define USE_LIBFAME 1'
4575 _ld_fame='libfame/libfame.a'
4579 #########
4580 # AUDIO #
4581 #########
4584 echocheck "OSS Audio"
4585 if test "$_ossaudio" = auto ; then
4586 cat > $TMPC << EOF
4587 #include <sys/ioctl.h>
4588 $_inc_soundcard
4589 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
4591 _ossaudio=no
4592 cc_check && _ossaudio=yes
4594 if test "$_ossaudio" = yes ; then
4595 _def_ossaudio='#define USE_OSS_AUDIO 1'
4596 _aosrc="$_aosrc ao_oss.c"
4597 _aomodules="oss $_aomodules"
4598 if test "$_linux_devfs" = yes; then
4599 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
4600 _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
4601 else
4602 cat > $TMPC << EOF
4603 #include <sys/ioctl.h>
4604 $_inc_soundcard
4605 #ifdef OPEN_SOUND_SYSTEM
4606 int main(void) { return 0; }
4607 #else
4608 #error Not the real thing
4609 #endif
4611 _real_ossaudio=no
4612 cc_check && _real_ossaudio=yes
4613 if test "$_real_ossaudio" = yes; then
4614 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4615 elif netbsd || openbsd ; then
4616 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
4617 _ld_arch="$_ld_arch -lossaudio"
4618 else
4619 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4621 _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
4623 else
4624 _def_ossaudio='#undef USE_OSS_AUDIO'
4625 _def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
4626 _def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
4627 _noaomodules="oss $_noaomodules"
4629 echores "$_ossaudio"
4632 echocheck "aRts"
4633 if test "$_arts" = auto ; then
4634 _arts=no
4635 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
4637 cat > $TMPC << EOF
4638 #include <artsc.h>
4639 int main(void) { return 0; }
4641 cc_check `artsc-config --libs` `artsc-config --cflags` && tmp_run && _arts=yes
4646 if test "$_arts" = yes ; then
4647 _def_arts='#define USE_ARTS 1'
4648 _aosrc="$_aosrc ao_arts.c"
4649 _aomodules="arts $_aomodules"
4650 _ld_arts=`artsc-config --libs`
4651 _inc_arts=`artsc-config --cflags`
4652 else
4653 _noaomodules="arts $_noaomodules"
4655 echores "$_arts"
4658 echocheck "EsounD"
4659 if test "$_esd" = auto ; then
4660 _esd=no
4661 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
4663 cat > $TMPC << EOF
4664 #include <esd.h>
4665 int main(void) { return 0; }
4667 cc_check `esd-config --libs` `esd-config --cflags` && tmp_run && _esd=yes
4671 echores "$_esd"
4673 if test "$_esd" = yes ; then
4674 _def_esd='#define USE_ESD 1'
4675 _aosrc="$_aosrc ao_esd.c"
4676 _aomodules="esd $_aomodules"
4677 _ld_esd=`esd-config --libs`
4678 _inc_esd=`esd-config --cflags`
4680 echocheck "esd_get_latency()"
4681 cat > $TMPC << EOF
4682 #include <esd.h>
4683 int main(void) { return esd_get_latency(0); }
4685 cc_check `esd-config --libs` `esd-config --cflags` && _esd_latency=yes && _def_esd_latency='#define HAVE_ESD_LATENCY'
4686 echores "$_esd_latency"
4687 else
4688 _def_esd='#undef USE_ESD'
4689 _def_esd_latency='#undef HAVE_ESD_LATENCY'
4690 _noaomodules="esd $_noaomodules"
4693 echocheck "Polyp"
4694 if test "$_polyp" = auto ; then
4695 _polyp=no
4696 if ( pkg-config --exists 'polyplib >= 0.6 polyplib-error >= 0.6 polyplib-mainloop >= 0.6' ) >> "$TMPLOG" 2>&1 ; then
4698 cat > $TMPC << EOF
4699 #include <polyp/polyplib.h>
4700 #include <polyp/mainloop.h>
4701 #include <polyp/polyplib-error.h>
4702 int main(void) { return 0; }
4704 cc_check `pkg-config --libs --cflags polyplib polyplib-error polyplib-mainloop` && tmp_run && _polyp=yes
4708 echores "$_polyp"
4710 if test "$_polyp" = yes ; then
4711 _def_polyp='#define USE_POLYP 1'
4712 _aosrc="$_aosrc ao_polyp.c"
4713 _aomodules="polyp $_aomodules"
4714 _ld_polyp=`pkg-config --libs polyplib polyplib-error polyplib-mainloop`
4715 _inc_polyp=`pkg-config --cflags polyplib polyplib-error polyplib-mainloop`
4716 else
4717 _def_polyp='#undef USE_POLYP'
4718 _noaomodules="polyp $_noaomodules"
4722 echocheck "JACK"
4723 if test "$_jack" = auto ; then
4724 _jack=yes
4726 cat > $TMPC << EOF
4727 #include <jack/jack.h>
4728 int main(void) { jack_client_new("test"); return 0; }
4730 if cc_check -ljack ; then
4731 _ld_jack="-ljack"
4732 elif cc_check `pkg-config --libs --cflags --silence-errors jack` ; then
4733 _ld_jack="`pkg-config --libs jack`"
4734 _inc_jack="`pkg-config --cflags jack`"
4735 else
4736 _jack=no
4740 if test "$_jack" = yes ; then
4741 _def_jack='#define USE_JACK 1'
4742 _aosrc="$_aosrc ao_jack.c"
4743 _aomodules="jack $_aomodules"
4744 else
4745 _noaomodules="jack $_noaomodules"
4747 echores "$_jack"
4750 echocheck "ALSA audio"
4751 if test "$_alsa" != no ; then
4752 _alsa=no
4753 cat > $TMPC << EOF
4754 #include <sys/asoundlib.h>
4755 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
4756 #error "alsa version != 0.5.x"
4757 #endif
4758 int main(void) { return 0; }
4760 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
4762 cat > $TMPC << EOF
4763 #include <sys/asoundlib.h>
4764 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
4765 #error "alsa version != 0.9.x"
4766 #endif
4767 int main(void) { return 0; }
4769 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
4770 cat > $TMPC << EOF
4771 #include <alsa/asoundlib.h>
4772 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
4773 #error "alsa version != 0.9.x"
4774 #endif
4775 int main(void) { return 0; }
4777 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
4779 cat > $TMPC << EOF
4780 #include <sys/asoundlib.h>
4781 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
4782 #error "alsa version != 1.0.x"
4783 #endif
4784 int main(void) { return 0; }
4786 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
4787 cat > $TMPC << EOF
4788 #include <alsa/asoundlib.h>
4789 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
4790 #error "alsa version != 1.0.x"
4791 #endif
4792 int main(void) { return 0; }
4794 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
4796 _def_alsa5='#undef HAVE_ALSA5'
4797 _def_alsa9='#undef HAVE_ALSA9'
4798 _def_alsa1x='#undef HAVE_ALSA1X'
4799 _def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
4800 _def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
4801 if test "$_alsaver" ; then
4802 _alsa=yes
4803 if test "$_alsaver" = '0.5.x' ; then
4804 _aosrc="$_aosrc ao_alsa5.c"
4805 _aomodules="alsa5 $_aomodules"
4806 _def_alsa5='#define HAVE_ALSA5 1'
4807 _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
4808 _res_comment="using alsa 0.5.x and sys/asoundlib.h"
4809 elif test "$_alsaver" = '0.9.x-sys' ; then
4810 _aosrc="$_aosrc ao_alsa.c"
4811 _aomodules="alsa $_aomodules"
4812 _def_alsa9='#define HAVE_ALSA9 1'
4813 _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
4814 _res_comment="using alsa 0.9.x and sys/asoundlib.h"
4815 elif test "$_alsaver" = '0.9.x-alsa' ; then
4816 _aosrc="$_aosrc ao_alsa.c"
4817 _aomodules="alsa $_aomodules"
4818 _def_alsa9='#define HAVE_ALSA9 1'
4819 _def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
4820 _res_comment="using alsa 0.9.x and alsa/asoundlib.h"
4821 elif test "$_alsaver" = '1.0.x-sys' ; then
4822 _aosrc="$_aosrc ao_alsa.c"
4823 _aomodules="alsa $_aomodules"
4824 _def_alsa1x="#define HAVE_ALSA1X 1"
4825 _def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
4826 _res_comment="using alsa 1.0.x and sys/asoundlib.h"
4827 elif test "$_alsaver" = '1.0.x-alsa' ; then
4828 _aosrc="$_aosrc ao_alsa.c"
4829 _aomodules="alsa $_aomodules"
4830 _def_alsa1x="#define HAVE_ALSA1X 1"
4831 _def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
4832 _res_comment="using alsa 1.0.x and alsa/asoundlib.h"
4833 else
4834 _alsa=no
4835 _res_comment="unknown version"
4837 _ld_alsa="-lasound $_ld_dl $_ld_pthread"
4838 else
4839 _noaomodules="alsa $_noaomodules"
4841 echores "$_alsa"
4844 echocheck "Sun audio"
4845 if test "$_sunaudio" = auto ; then
4846 cat > $TMPC << EOF
4847 #include <sys/types.h>
4848 #include <sys/audioio.h>
4849 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
4851 _sunaudio=no
4852 cc_check && _sunaudio=yes
4854 if test "$_sunaudio" = yes ; then
4855 _def_sunaudio='#define USE_SUN_AUDIO 1'
4856 _aosrc="$_aosrc ao_sun.c"
4857 _aomodules="sun $_aomodules"
4858 else
4859 _def_sunaudio='#undef USE_SUN_AUDIO'
4860 _noaomodules="sun $_noaomodules"
4862 echores "$_sunaudio"
4865 echocheck "Sun mediaLib"
4866 if test "$_mlib" = auto ; then
4867 _mlib=no
4868 test -z "$_mlibdir" && _mlibdir=/opt/SUNWmlib
4869 cat > $TMPC << EOF
4870 #include <mlib.h>
4871 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
4873 cc_check -I${_mlibdir}/include -L${_mlibdir}/lib -lmlib && _mlib=yes
4875 if test "$_mlib" = yes ; then
4876 _def_mlib='#define HAVE_MLIB 1'
4877 _inc_mlib=" -I${_mlibdir}/include "
4878 _ld_mlib=" -L${_mlibdir}/lib -R${_mlibdir}/lib -lmlib "
4879 else
4880 _def_mlib='#undef HAVE_MLIB'
4882 echores "$_mlib"
4885 echocheck "SGI audio"
4886 if test "$_sgiaudio" = auto ; then
4887 # check for SGI audio
4888 cat > $TMPC << EOF
4889 #include <dmedia/audio.h>
4890 int main(void) { return 0; }
4892 _sgiaudio=no
4893 cc_check && _sgiaudio=yes
4895 if test "$_sgiaudio" = "yes" ; then
4896 _def_sgiaudio='#define USE_SGI_AUDIO 1'
4897 _ld_sgiaudio='-laudio'
4898 _aosrc="$_aosrc ao_sgi.c"
4899 _aomodules="sgi $_aomodules"
4900 else
4901 _def_sgiaudio='#undef USE_SGI_AUDIO'
4902 _noaomodules="sgi $_noaomodules"
4904 echores "$_sgiaudio"
4907 echocheck "VCD support"
4908 if linux || bsdos || freebsd || netbsd || sunos || darwin ; then
4909 _inputmodules="vcd $_inputmodules"
4910 _def_vcd='#define HAVE_VCD 1'
4911 echores "ok"
4912 else
4913 _def_vcd='#undef HAVE_VCD'
4914 _noinputmodules="vcd $_noinputmodules"
4915 echores "not supported on this OS"
4918 echocheck "DVD support (libmpdvdkit)"
4919 if test "$_dvdkit" = auto ; then
4920 _dvdkit=no
4921 if linux || freebsd || netbsd || darwin || openbsd || win32 || sunos || hpux; then
4922 test -f "./libmpdvdkit2/Makefile" && _dvdkit=yes
4923 test -f "./libmpdvdkit/Makefile" && _dvdkit=yes
4926 if test "$_dvdkit" = yes ; then
4927 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
4928 if test -f "./libmpdvdkit2/Makefile" ; then
4929 _inputmodules="mpdvdkit2 $_inputmodules"
4930 _dvdread=libmpdvdkit2
4931 _dvdkit2=yes
4932 _dvdkit=no
4933 else
4934 _inputmodules="mpdvdkit $_inputmodules"
4935 _dvdread=libmpdvdkit
4937 else
4938 _noinputmodules="mpdvdkit $_noinputmodules"
4940 _def_dvd_linux='#undef HAVE_LINUX_DVD_STRUCT'
4941 _def_dvd_bsd='#undef HAVE_BSD_DVD_STRUCT'
4942 _dev_dvd_openbsd='#undef HAVE_OPENBSD_DVD_STRUCT'
4943 _def_dvd_darwin='#undef DARWIN_DVD_IOCTL'
4944 if linux || netbsd || openbsd || bsdos ; then
4945 _def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
4946 if openbsd ; then
4947 _dev_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
4949 else
4950 if freebsd ; then
4951 _def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
4952 else
4953 if darwin ; then
4954 _def_dvd_darwin='#define DARWIN_DVD_IOCTL'
4958 else
4959 _noinputmodules="mpdvdkit $_noinputmodules"
4961 if test "$_dvdkit" = yes || test "$_dvdkit2" = yes; then
4962 echores "yes"
4963 else
4964 echores "no"
4967 echocheck "DVD support (libdvdread)"
4968 if test "$_dvdread" = auto ; then
4969 cat > $TMPC << EOF
4970 #include <inttypes.h>
4971 #include <dvdread/dvd_reader.h>
4972 #include <dvdread/ifo_types.h>
4973 #include <dvdread/ifo_read.h>
4974 #include <dvdread/nav_read.h>
4975 int main(void) { return 0; }
4977 _dvdread=no
4978 if test "$_dl" = yes; then
4979 cc_check \
4980 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -ldvdread $_ld_dl && \
4981 _dvdread=yes
4984 _def_mpdvdkit="#undef USE_MPDVDKIT"
4985 case "$_dvdread" in
4986 yes)
4987 _largefiles=yes
4988 _def_dvdread='#define USE_DVDREAD 1'
4989 _ld_dvdread='-ldvdread'
4990 _inputmodules="dvdread $_inputmodules"
4991 echores "yes"
4994 _def_dvdread='#undef USE_DVDREAD'
4995 _noinputmodules="dvdread $_noinputmodules"
4996 echores "no"
4998 libmpdvdkit)
4999 _largefiles=yes
5000 _def_dvdread='#define USE_DVDREAD 1'
5001 _ld_dvdread='-Llibmpdvdkit -lmpdvdkit'
5002 _noinputmodules="dvdread $_noinputmodules"
5003 _def_mpdvdkit="#define USE_MPDVDKIT 1"
5004 echores "disabled by libmpdvdkit"
5006 libmpdvdkit2)
5007 _largefiles=yes
5008 _def_dvdread='#define USE_DVDREAD 1'
5009 _ld_dvdread='-Llibmpdvdkit2 -lmpdvdkit'
5010 _noinputmodules="dvdread $_noinputmodules"
5011 _def_mpdvdkit="#define USE_MPDVDKIT 2"
5012 echores "disabled by libmpdvdkit2"
5014 esac
5016 # dvdnav disabled, it does not work
5017 # echocheck "DVD support (libdvdnav)"
5018 # if test "$_dvdnav" = yes ; then
5019 # cat > $TMPC <<EOF
5020 # #include <dvdnav.h>
5021 # int main(void) { dvdnav_t *dvd=0; return 0; }
5022 # EOF
5023 # _dvdnav=no
5024 # test -n "$_dvdnavdir" && _legal_dvdnavdir=-L$_dvdnavdir/.libs
5025 # if test -z "$_dvdnavconfig" ; then
5026 # if ( dvdnav-config --version ) >/dev/null 2>&1 ; then
5027 # _dvdnavconfig="dvdnav-config"
5028 # fi
5029 # fi
5030 # test -z "$_dvdnavdir" && test -n "$_dvdnavconfig" && _dvdnavdir=`$_dvdnavconfig --cflags`
5031 # _used_css=
5032 # test "$_dvdkit" = no && test "$_dvdkit2" = no && _used_css=$_ld_css
5033 # cc_check $_inc_extra -I$_dvdnavdir $_legal_dvdnavdir -ldvdnav $_used_css $_ld_dl $_ld_pthread && _dvdnav=yes
5034 # fi
5035 # if test "$_dvdnav" = yes ; then
5036 # _largefiles=yes
5037 # _def_dvdnav='#define USE_DVDNAV 1'
5038 # if test -n "$_legal_dvdnavdir" ; then
5039 # _ld_css="$_ld_css $_legal_dvdnavdir -ldvdnav"
5040 # elif test -n "$_dvdnavconfig" ; then
5041 # _ld_css="$_ld_css `$_dvdnavconfig --libs`"
5042 # else
5043 # _ld_css="$_ld_css -ldvdnav"
5044 # fi
5045 # if test -n "$_dvdnavconfig" ; then
5046 # _dvdnav_version=`$_dvdnavconfig --version | sed "s/\.//g"`
5047 # _def_dvdnav_version="#define DVDNAVVERSION $_dvdnav_version"
5048 # fi
5049 # if test -n "$_dvdnavdir" ; then
5050 # _inc_extra="$_inc_extra -I$_dvdnavdir"
5051 # fi
5052 # _inputmodules="dvdnav $_inputmodules"
5053 # echores "yes"
5054 # else
5055 # _def_dvdnav='#undef USE_DVDNAV'
5056 # _noinputmodules="dvdnav $_noinputmodules"
5057 # echores "no"
5058 # fi
5060 echocheck "cdparanoia"
5061 if test "$_cdparanoia" = auto ; then
5062 cat > $TMPC <<EOF
5063 #include <cdda_interface.h>
5064 #include <cdda_paranoia.h>
5065 // This need a better test. How ?
5066 int main(void) { return 1; }
5068 _cdparanoia=no
5069 for _inc_tmp in "$_inc_cdparanoia" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5070 cc_check $_inc_tmp $_ld_cdparanoia -lcdda_interface -lcdda_paranoia $_ld_lm && _inc_cdparanoia="$_inc_tmp" && _cdparanoia=yes && break
5071 done
5073 if test "$_cdparanoia" = yes ; then
5074 _def_cdparanoia='#define HAVE_CDDA'
5075 _inputmodules="cdda $_inputmodules"
5076 _ld_cdparanoia="$_ld_cdparanoia -lcdda_interface -lcdda_paranoia"
5077 openbsd && _ld_cdparanoia="$_ld_cdparanoia -lutil"
5078 else
5079 _def_cdparanoia='#undef HAVE_CDDA'
5080 _noinputmodules="cdda $_noinputmodules"
5082 echores "$_cdparanoia"
5085 echocheck "libcdio"
5086 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5087 if ( pkg-config --modversion libcdio) > /dev/null 2>&1 ; then
5088 cat > $TMPC << EOF
5089 #include <stdio.h>
5090 #include <cdio/version.h>
5091 #include <cdio/cdda.h>
5092 #include <cdio/paranoia.h>
5093 int main()
5095 printf("%s\n", CDIO_VERSION);
5096 return 0;
5100 _libcdio=no
5101 for _inc_tmp in "$_inc_libcdio" "-I/usr/include/cdio" "-I/usr/local/include/cdio" ; do
5102 cc_check `pkg-config --cflags --libs libcdio` $_inc_tmp $_ld_libcdio -lcdio_cdda -lcdio_paranoia $_ld_lm && _inc_libcdio="$_inc_tmp" && ( $TMPO >> "$TMPLOG" ) && _libcdio=yes && break
5103 done
5104 else
5105 _libcdio=no
5108 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
5109 _def_libcdio='#define HAVE_LIBCDIO'
5110 _def_cdparanoia='#define HAVE_CDDA'
5111 _def_havelibcdio='yes'
5112 _inputmodules="cdda $_inputmodules"
5113 _inc_libcdio=`pkg-config --cflags libcdio`
5114 _ld_libcdio=`pkg-config --libs libcdio`
5115 _ld_cdparanoia="$_ld_cdparanoia -lcdio_cdda -lcdio_paranoia -lcdio"
5116 else
5117 if test "$_cdparanoia" = yes ; then
5118 _libcdio="no (using cdparanoia)"
5119 else
5120 _libcdio=no
5122 _def_libcdio='#undef HAVE_LIBCDIO'
5123 _def_havelibcdio='no'
5125 echores "$_libcdio"
5128 echocheck "freetype >= 2.0.9"
5130 # freetype depends on iconv
5131 if test "$_iconv" = no ; then
5132 _freetype=no
5133 _res_comment="iconv support needed"
5136 if test "$_freetype" = auto ; then
5137 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
5138 cat > $TMPC << EOF
5139 #include <stdio.h>
5140 #include <ft2build.h>
5141 #include FT_FREETYPE_H
5142 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
5143 #error "Need FreeType 2.0.9 or newer"
5144 #endif
5145 int main()
5147 FT_Library library;
5148 FT_Int major=-1,minor=-1,patch=-1;
5149 int err=FT_Init_FreeType(&library);
5150 if(err){
5151 printf("Couldn't initialize freetype2 lib, err code: %d\n",err);
5152 exit(err);
5154 FT_Library_Version(library,&major,&minor,&patch); // in v2.1.0+ only :(((
5155 printf("freetype2 header version: %d.%d.%d library version: %d.%d.%d\n",
5156 FREETYPE_MAJOR,FREETYPE_MINOR,FREETYPE_PATCH,
5157 (int)major,(int)minor,(int)patch );
5158 if(major!=FREETYPE_MAJOR || minor!=FREETYPE_MINOR){
5159 printf("Library and header version mismatch! Fix it in your distribution!\n");
5160 exit(1);
5162 return 0;
5165 _freetype=no
5166 cc_check `$_freetypeconfig --cflags` `$_freetypeconfig --libs` && tmp_run && _freetype=yes
5167 else
5168 _freetype=no
5171 if test "$_freetype" = yes ; then
5172 _def_freetype='#define HAVE_FREETYPE'
5173 _inc_freetype=`$_freetypeconfig --cflags`
5174 _ld_freetype=`$_freetypeconfig --libs`
5175 else
5176 _def_freetype='#undef HAVE_FREETYPE'
5178 echores "$_freetype"
5180 if test "$_freetype" = no ; then
5181 _fontconfig=no
5182 _res_comment="freetype support needed"
5184 echocheck "fontconfig"
5185 if test "$_fontconfig" = auto ; then
5186 cat > $TMPC << EOF
5187 #include <stdio.h>
5188 #include <fontconfig/fontconfig.h>
5189 int main()
5191 int err = FcInit();
5192 if(err == FcFalse){
5193 printf("Couldn't initialize fontconfig lib\n");
5194 exit(err);
5196 return 0;
5200 _fontconfig=yes
5201 if cc_check -lfontconfig ; then
5202 _ld_fontconfig="-lfontconfig"
5203 elif cc_check `pkg-config --cflags --libs fontconfig` ; then
5204 _inc_fontconfig=`pkg-config --cflags fontconfig`
5205 _ld_fontconfig=`pkg-config --libs fontconfig`
5206 else
5207 _fontconfig=no
5210 if test "$_fontconfig" = yes ; then
5211 _def_fontconfig='#define HAVE_FONTCONFIG'
5212 else
5213 _def_fontconfig='#undef HAVE_FONTCONFIG'
5215 echores "$_fontconfig"
5217 echocheck "fribidi with charsets"
5218 if test "$_fribidi" = yes ; then
5219 if ( $_fribidiconfig --version ) >/dev/null 2>&1 ; then
5220 cat > $TMPC << EOF
5221 #include <stdio.h>
5222 /* workaround for fribidi 0.10.4 and below */
5223 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
5224 #include <fribidi/fribidi.h>
5225 int main()
5227 if(fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
5228 printf("Fribidi headers are not consistents with the library!\n");
5229 exit(1);
5231 return 0;
5234 _fribidi=no
5235 cc_check `$_fribidiconfig --cflags` `$_fribidiconfig --libs` && tmp_run && _fribidi=yes
5236 else
5237 _fribidi=no
5240 if test "$_fribidi" = yes ; then
5241 _def_fribidi='#define USE_FRIBIDI'
5242 _inc_fribidi=`$_fribidiconfig --cflags`
5243 _ld_fribidi=`$_fribidiconfig --libs`
5244 else
5245 _def_fribidi='#undef USE_FRIBIDI'
5247 echores "$_fribidi"
5250 echocheck "ENCA"
5251 if test "$_enca" = auto ; then
5252 cat > $TMPC << EOF
5253 #include <enca.h>
5254 int main()
5256 const char **langs;
5257 size_t langcnt;
5258 langs = enca_get_languages(&langcnt);
5259 return 0;
5262 _enca=no
5263 cc_check -lenca $_ld_lm && _enca=yes
5265 if test "$_enca" = yes ; then
5266 _def_enca='#define HAVE_ENCA 1'
5267 _ld_enca='-lenca'
5268 else
5269 _def_enca='#undef HAVE_ENCA'
5271 echores "$_enca"
5274 echocheck "zlib"
5275 cat > $TMPC << EOF
5276 #include <zlib.h>
5277 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
5279 _zlib=no
5280 cc_check -lz && _zlib=yes
5281 if test "$_zlib" = yes ; then
5282 _def_zlib='#define HAVE_ZLIB 1'
5283 _ld_zlib='-lz'
5284 else
5285 _def_zlib='#undef HAVE_ZLIB'
5287 echores "$_zlib"
5290 echocheck "RTC"
5291 if test "$_rtc" = auto ; then
5292 cat > $TMPC << EOF
5293 #include <sys/ioctl.h>
5294 #ifdef __linux__
5295 #include <linux/rtc.h>
5296 #else
5297 #include <rtc.h>
5298 #define RTC_PIE_ON RTCIO_PIE_ON
5299 #endif
5300 int main(void) { return RTC_PIE_ON; }
5302 _rtc=no
5303 cc_check && _rtc=yes
5305 if test "$_rtc" = yes ; then
5306 _def_rtc='#define HAVE_RTC 1'
5307 else
5308 _def_rtc='#undef HAVE_RTC'
5310 echores "$_rtc"
5313 echocheck "external liblzo support"
5314 if test "$_liblzo" = auto ; then
5315 _liblzo=no
5316 cat > $TMPC << EOF
5317 #include <lzo1x.h>
5318 int main(void) { lzo_init();return 0; }
5320 cc_check -llzo && _liblzo=yes
5322 if test "$_liblzo" = yes ; then
5323 _def_liblzo='#define USE_LIBLZO 1'
5324 _ld_liblzo='-llzo'
5325 _codecmodules="liblzo $_codecmodules"
5326 else
5327 _def_liblzo='#undef USE_LIBLZO'
5328 _nocodecmodules="liblzo $_nocodecmodules"
5330 echores "$_liblzo"
5333 echocheck "mad support"
5334 if test "$_mad" = auto ; then
5335 _mad=no
5336 cat > $TMPC << EOF
5337 #include <mad.h>
5338 int main(void) { return 0; }
5340 cc_check $_madlibdir -lmad && _mad=yes
5342 if test "$_mad" = yes ; then
5343 _def_mad='#define USE_LIBMAD 1'
5344 _ld_mad='-lmad'
5345 _codecmodules="libmad $_codecmodules"
5346 else
5347 _def_mad='#undef USE_LIBMAD'
5348 _nocodecmodules="libmad $_nocodecmodules"
5350 echores "$_mad"
5352 echocheck "Toolame"
5353 if test "$_toolame" = auto ; then
5354 cat > $TMPC <<EOF
5355 #include <toolame.h>
5356 int main(void) { toolame_init(); return 0; }
5358 _toolame=no
5359 _toolame_extraflags=""
5360 _toolame_lib="-ltoolame"
5361 if test -n "$_toolamedir"; then
5362 _toolame_extraflags="-I$_toolamedir -L$_toolamedir"
5364 cc_check $_toolame_extraflags $_toolame_lib $_ld_lm && _toolame=yes
5366 if test "$_toolame" = yes ; then
5367 _def_toolame='#define HAVE_TOOLAME 1'
5368 _codecmodules="$_codecmodules toolame"
5369 else
5370 _def_toolame='#undef HAVE_TOOLAME'
5371 _toolame_lib=""
5372 _nocodecmodules="toolame $_nocodecmodules"
5374 if test "$_toolamedir" ; then
5375 _res_comment="using $_toolamedir"
5377 echores "$_toolame"
5379 echocheck "Twolame"
5380 if test "$_twolame" = auto ; then
5381 cat > $TMPC <<EOF
5382 #include <twolame.h>
5383 int main(void) { twolame_init(); return 0; }
5385 _twolame=no
5386 _twolame_lib="-ltwolame"
5387 cc_check $_twolame_lib $_ld_lm && _twolame=yes
5389 if test "$_twolame" = yes ; then
5390 _def_twolame='#define HAVE_TWOLAME 1'
5391 _codecmodules="$_codecmodules twolame"
5392 else
5393 _def_twolame='#undef HAVE_TWOLAME'
5394 _twolame_lib=""
5395 _nocodecmodules="twolame $_nocodecmodules"
5397 echores "$_twolame"
5399 echocheck "OggVorbis support"
5400 if test "$_tremor_internal" = yes; then
5401 _vorbis=yes
5402 elif test "$_vorbis" = auto; then
5403 _vorbis=no
5404 cat > $TMPC << EOF
5405 #include <vorbis/codec.h>
5406 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
5408 cc_check -lvorbis -logg $_ld_lm && _vorbis=yes
5410 if test "$_vorbis" = yes ; then
5411 _def_vorbis='#define HAVE_OGGVORBIS 1'
5412 if test "$_tremor_internal" = yes ; then
5413 # do not set _ld_vorbis as it is resolved separately
5414 # mp3lame support for vorbis is deprecated so don't care
5415 _def_tremor='#define TREMOR 1'
5416 if test "$_tremor_low" = yes ; then
5417 _tremor_flags='-D_LOW_ACCURACY_'
5418 else
5419 _tremor_flags=''
5421 _codecmodules="tremor(internal) $_codecmodules"
5422 elif test "$_tremor" = yes ; then
5423 _def_tremor='#define TREMOR 1'
5424 _ld_vorbis='-lvorbisidec'
5425 _codecmodules="tremor $_codecmodules"
5426 else
5427 _def_tremor='#undef TREMOR'
5428 _ld_vorbis='-lvorbis -logg'
5429 _codecmodules="libvorbis $_codecmodules"
5431 else
5432 _def_vorbis='#undef HAVE_OGGVORBIS'
5433 _def_tremor='#undef TREMOR'
5434 _nocodecmodules="libvorbis $_nocodecmodules"
5436 if test "$_vorbis" = yes -a "$_tremor_internal" = yes -a "$_tremor_low" = yes ; then
5437 _res_comment="internal low accuracy Tremor"
5438 elif test "$_vorbis" = yes -a "$_tremor_internal" = yes ; then
5439 _res_comment="internal Tremor"
5440 elif test "$_vorbis" = yes -a "$_tremor" = yes ; then
5441 _res_comment="Tremor"
5443 echores "$_vorbis"
5445 echocheck "libspeex (version >= 1.1 required)"
5446 if test "$_speex" = auto ; then
5447 _speex=no
5448 cat > $TMPC << EOF
5449 #include <speex/speex.h>
5450 int main(void) {
5451 SpeexBits bits;
5452 void *dec;
5453 speex_decode_int(dec, &bits, dec);
5456 cc_check -lspeex $_ld_lm && _speex=yes
5458 if test "$_speex" = yes ; then
5459 _def_speex='#define HAVE_SPEEX 1'
5460 _ld_speex='-lspeex'
5461 _codecmodules="speex $_codecmodules"
5462 else
5463 _def_speex='#undef HAVE_SPEEX'
5464 _nocodecmodules="speex $_nocodecmodules"
5466 echores "$_speex"
5468 echocheck "OggTheora support"
5469 if test "$_theora" = auto ; then
5470 _theora=no
5471 cat > $TMPC << EOF
5472 #include <theora/theora.h>
5473 #include <string.h>
5474 int main(void)
5476 /* theora is in flux, make sure that all interface routines and
5477 * datatypes exist and work the way we expect it, so we don't break
5478 * mplayer */
5479 ogg_packet op;
5480 theora_comment tc;
5481 theora_info inf;
5482 theora_state st;
5483 yuv_buffer yuv;
5484 int r;
5485 double t;
5487 theora_info_init (&inf);
5488 theora_comment_init (&tc);
5490 return 0;
5492 /* we don't want to execute this kind of nonsense; just for making sure
5493 * that compilation works... */
5494 memset(&op, 0, sizeof(op));
5495 r = theora_decode_header (&inf, &tc, &op);
5496 r = theora_decode_init (&st, &inf);
5497 t = theora_granule_time (&st, op.granulepos);
5498 r = theora_decode_packetin (&st, &op);
5499 r = theora_decode_YUVout (&st, &yuv);
5500 theora_clear (&st);
5502 return 0;
5505 for _ld_theora in "`pkg-config --silence-errors --libs --cflags theora`" "-ltheora"; do
5506 cc_check $_ld_theora && _theora=yes && break
5507 done
5508 if test "$_theora" = no && test "$_tremor_internal" = yes; then
5509 for _ld_theora in "`pkg-config --silence-errors --libs --cflags theora`" "-ltheora"; do
5510 cc_check -I. tremor/bitwise.c $_ld_theora && _theora=yes && break
5511 done
5514 if test "$_theora" = yes ; then
5515 _def_theora='#define HAVE_OGGTHEORA 1'
5516 _codecmodules="libtheora $_codecmodules"
5517 else
5518 _def_theora='#undef HAVE_OGGTHEORA'
5519 _nocodecmodules="libtheora $_nocodecmodules"
5520 _ld_theora=""
5522 echores "$_theora"
5524 echocheck "mp3lib support"
5525 if test "$_mp3lib" = yes ; then
5526 _def_mp3lib='#define USE_MP3LIB 1'
5527 _codecmodules="mp3lib $_codecmodules"
5528 else
5529 _def_mp3lib='#undef USE_MP3LIB'
5530 _nocodecmodules="mp3lib $_nocodecmodules"
5532 echores "$_mp3lib"
5534 echocheck "liba52 support"
5535 if test "$_liba52" = yes ; then
5536 _def_liba52='#define USE_LIBA52 1'
5537 _codecmodules="liba52 $_codecmodules"
5538 else
5539 _def_liba52='#undef USE_LIBA52'
5540 _nocodecmodules="liba52 $_nocodecmodules"
5542 echores "$_liba52"
5544 echocheck "libdts support"
5545 if test "$_libdts" = auto ; then
5546 _libdts=no
5547 cat > $TMPC << EOF
5548 #include <inttypes.h>
5549 #include <dts.h>
5550 int main(void) { dts_init (0); return 0; }
5552 cc_check $_inc_libdts $_ld_libdts -ldts $_ld_lm && _libdts=yes
5554 if test "$_libdts" = yes ; then
5555 _def_libdts='#define CONFIG_DTS 1'
5556 _ld_libdts="$_ld_libdts -ldts"
5557 _codecmodules="libdts $_codecmodules"
5558 else
5559 _def_libdts='#undef CONFIG_DTS'
5560 _nocodecmodules="libdts $_nocodecmodules"
5562 echores "$_libdts"
5564 echocheck "libmpeg2 support"
5565 if test "$_libmpeg2" = yes ; then
5566 _def_libmpeg2='#define USE_LIBMPEG2 1'
5567 _codecmodules="libmpeg2 $_codecmodules"
5568 else
5569 _def_libmpeg2='#undef USE_LIBMPEG2'
5570 _nocodecmodules="libmpeg2 $_nocodecmodules"
5572 echores "$_libmpeg2"
5574 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
5575 if test "$_musepack" = auto ; then
5576 _musepack=no
5577 cat > $TMPC << EOF
5578 #include <mpcdec/mpcdec.h>
5579 int main(void) {
5580 mpc_streaminfo info;
5581 mpc_decoder decoder;
5582 mpc_decoder_set_streaminfo(&decoder, &info);
5583 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
5586 cc_check -lmpcdec $_ld_lm && _musepack=yes
5588 if test "$_musepack" = yes ; then
5589 _def_musepack='#define HAVE_MUSEPACK 1'
5590 _ld_musepack='-lmpcdec'
5591 _codecmodules="musepack $_codecmodules"
5592 else
5593 _def_musepack='#undef HAVE_MUSEPACK'
5594 _nocodecmodules="musepack $_nocodecmodules"
5596 echores "$_musepack"
5599 echocheck "Matroska support"
5600 if test "$_matroska_internal" = yes ; then
5601 _inputmodules="matroska $_inputmodules"
5602 _def_matroska='#define HAVE_MATROSKA 1'
5603 else
5604 _noinputmodules="matroska $_noinputmodules"
5605 _def_matroska='#undef HAVE_MATROSKA'
5607 echores "$_matroska_internal"
5609 echocheck "FAAC (AAC encoder) support"
5610 if test "$_faac" = auto ; then
5611 cat > $TMPC <<EOF
5612 #include <inttypes.h>
5613 #include <faac.h>
5614 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
5616 _faac=no
5617 for _ld_tmp in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
5618 cc_check -c -O4 $_ld_tmp $_ld_lm && _ld_faac="$_ld_tmp" && _faac=yes && break
5619 done
5621 if test "$_faac" = yes ; then
5622 _def_faac="#define HAVE_FAAC 1"
5623 _codecmodules="faac $_codecmodules"
5624 else
5625 _def_faac="#undef HAVE_FAAC"
5626 _nocodecmodules="faac $_nocodecmodules"
5628 echores "$_faac"
5630 echocheck "internal FAAD2 (AAC) support"
5631 _inc_faad="-I`pwd`/libfaad2"
5632 if test "$_faad_internal" = auto ; then
5633 # the faad check needs a config.h file
5634 if not test -f "config.h" ; then
5635 cat > config.h << EOF
5636 /* C99 lrintf function available */
5637 $_def_lrintf
5640 # internal faad: check if our dear gcc is able to compile it...
5641 cp "`pwd`/libfaad2/cfft.c" $TMPC
5642 if ( cc_check -c -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer -D_GNU_SOURCE $_inc_faad ); then
5643 _faad_internal=yes
5644 else
5645 _faad_internal="no (broken gcc)"
5648 if test "$_faad_internal" = yes ; then
5649 _def_faad_internal="#define USE_INTERNAL_FAAD 1"
5650 _faad_external=no
5651 else
5652 _def_faad_internal="#undef USE_INTERNAL_FAAD"
5653 _inc_faad=
5655 echores "$_faad_internal"
5658 echocheck "external FAAD2 (AAC) support"
5659 if test "$_faad_external" != no ; then
5660 _ld_faad='-lfaad'
5661 _inc_faad="$_inc_extra"
5662 # external faad: check if it's really faad2 :)
5663 if test "$_faad_external" = auto ; then
5664 _faad_external=no
5665 cat > $TMPC << EOF
5666 #include <faad.h>
5667 #ifndef FAAD_MIN_STREAMSIZE
5668 #error Too old version
5669 #endif
5670 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo; testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
5672 cc_check $_inc_faad $_ld_faad $_ld_lm && _faad_external=yes
5675 echores "$_faad_external"
5677 if test "$_faad_external" = yes; then
5678 _def_faad='#define HAVE_FAAD 1'
5679 _codecmodules="faad2(external) $_codecmodules"
5680 elif test "$_faad_internal" = yes; then
5681 _def_faad='#define HAVE_FAAD 1'
5682 _codecmodules="faad2(internal) $_codecmodules"
5683 else
5684 _def_faad='#undef HAVE_FAAD'
5685 _nocodecmodules="faad2 $_nocodecmodules"
5686 _ld_faad=
5690 echocheck "LADSPA plugin support"
5691 if test "$_ladspa" = auto ; then
5692 cat > $TMPC <<EOF
5693 #include <stdio.h>
5694 #include <ladspa.h>
5695 int main(void) {
5696 const LADSPA_Descriptor *ld = NULL;
5697 return 0;
5700 _ladspa=no
5701 cc_check && _ladspa=yes
5703 if test "$_ladspa" = yes; then
5704 _def_ladspa="#define HAVE_LADSPA"
5705 _afsrc="$_afsrc af_ladspa.c"
5706 _afmodules="ladspa $_afmodules"
5707 else
5708 _def_ladspa="#undef HAVE_LADSPA"
5709 _noafmodules="ladspa $_noafmodules"
5711 echores "$_ladspa"
5714 if test "$_win32" = auto ; then
5715 if x86 ; then
5716 qnx && _win32=no
5717 else
5718 _win32=no # x86 arch only
5722 if test "$_win32" != no ; then
5723 if test -z "$_win32libdir" ; then
5724 for I in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
5725 if test -d "$I" ; then
5726 _win32libdir="$I"
5727 break;
5729 done
5733 echocheck "Win32 codec DLL support"
5734 if test "$_win32" = auto ; then
5735 _win32=no
5736 test -n "$_win32libdir" && _win32=yes
5738 if test "$_win32" = yes ; then
5739 _def_win32='#define USE_WIN32DLL 1'
5740 _res_comment="using $_win32libdir"
5741 else
5742 _def_win32='#undef USE_WIN32DLL'
5743 _nocodecmodules="win32 $_nocodecmodules"
5744 _dshow=no
5746 echores "$_win32"
5748 if test "$_win32" != no ; then
5749 _def_win32_loader='#undef WIN32_LOADER'
5750 echocheck "Win32 loader support"
5751 _ld_win32='loader/libloader.a'
5752 _dep_win32='loader/libloader.a'
5753 _codecmodules="win32 $_codecmodules"
5754 if openbsd ; then
5755 x86 && _ld_win32="$_ld_win32 -li386"
5757 if not win32 ; then
5758 _def_win32_loader='#define WIN32_LOADER 1'
5759 echores "yes"
5760 else
5761 _ld_win32libs="$_ld_win32libs -ladvapi32 -lole32"
5762 echores "no (using native windows)"
5766 echocheck "DirectShow"
5767 if false ; then
5769 if test "$_dshow" != no ; then
5770 _dshow=no
5771 # check if compiler supports C++ and C++-libs are installed correctly
5772 cat > "$TMPCPP" << EOF
5773 #include <string>
5774 class myclass {
5775 private: int ret;
5776 public: int myreturn(void);
5778 int myclass::myreturn(void) { ret = 0; return ret ; }
5779 int main(void) { myclass myobject; return myobject.myreturn(); }
5781 if cxx_check && tmp_run ; then
5782 _dshow=yes
5783 echores "yes (C++ is ok)"
5784 else
5785 echores "no"
5786 cat << EOF
5788 Your C++ runtime environment is broken.
5790 Hints: Does $_cc support C++? Do you have you a C++ compiler installed?
5791 Are the C++ libraries correctly installed?
5792 Check for libstdc++ and in (/etc/)ld.so.conf.
5794 If you do not need DirectShow support, you can also use:
5795 ./configure --disable-dshow <your-normal-configure-options>
5796 to disable building the C++ based DirectShow code.
5799 die "$_cc's C++ is broken"
5805 echores "$_dshow"
5807 if test "$_dshow" = yes ; then
5808 _def_dshow='#define USE_DIRECTSHOW 1'
5809 _ld_dshow='loader/dshow/libDS_Filter.a loader/dmo/libDMO_Filter.a'
5810 _dep_dshow='loader/dshow/libDS_Filter.a loader/dmo/libDMO_Filter.a'
5811 _codecmodules="dshow/dmo $_codecmodules"
5812 else
5813 _def_dshow='#undef USE_DIRECTSHOW'
5814 _nocodecmodules="dshow/dmo $_nocodecmodules"
5818 echocheck "XAnim DLL"
5819 if test "$_xanim" = auto ; then
5820 _xanim=no
5821 _res_comment="dynamic loader support needed"
5822 if test "$_dl" = yes ; then
5823 _res_comment="no suitable directory found - see DOCS/HTML/$_doc_lang/codecs.html"
5824 if test -z "$_xanimlibdir" ; then
5825 for I in "$_libdir/codecs" /usr/local/lib/xanim/mods /usr/lib/xanim/mods /usr/lib/xanim $XANIM_MOD_DIR ; do
5826 if test -d "$I" ; then
5827 _xanimlibdir="$I"
5828 break;
5830 done
5832 test "$_xanimlibdir" && _xanim=yes
5835 if test "$_xanim" = yes ; then
5836 _def_xanim='#define USE_XANIM 1'
5837 _def_xanim_path="#define XACODEC_PATH \"$_xanimlibdir\""
5838 _codecmodules="xanim $_codecmodules"
5839 _res_comment="using $_xanimlibdir"
5840 else
5841 _def_xanim='#undef USE_XANIM'
5842 _def_xanim_path='#undef XACODEC_PATH'
5843 _nocodecmodules="xanim $_nocodecmodules"
5845 echores "$_xanim"
5847 echocheck "RealPlayer DLL"
5848 if test "$_real" = auto ; then
5849 _real=no
5850 _res_comment="dynamic loader support needed"
5851 if test "$_dl" = yes || test "$_win32" = yes ; then
5852 # if test "$_dl" = yes ; then
5853 _res_comment="tested only on Linux/FreeBSD/NetBSD/Cygwin/MinGW/Darwin"
5854 if linux || freebsd || netbsd || win32 || darwin ; then
5855 _res_comment="no suitable directory found - see DOCS/HTML/$_doc_lang/codecs.html"
5856 if test -z "$_reallibdir" ; then
5857 for I in "$_libdir/codecs" "$_libdir/real" /usr/lib/real \
5858 /usr/lib/RealPlayer{9,8,}/Codecs /usr/local/RealPlayer{9,8,}/Codecs \
5859 /usr/local/lib/RealPlayer{9,8,}/Codecs /opt/RealPlayer{9,8,}/{Real/,}Codecs \
5860 {~,}/Applications/RealOne\ Player.app/Contents/MacOS/Library/Codecs \
5861 "$_win32libdir"; do
5862 if test -d "$I" ; then
5863 _reallibdir="$I"
5864 break
5866 done
5868 test "$_reallibdir" && _real=yes
5872 if test "$_real" = yes ; then
5873 _def_real='#define USE_REALCODECS 1'
5874 _def_real_path="#define REALCODEC_PATH \"$_reallibdir\""
5875 _codecmodules="real $_codecmodules"
5876 _res_comment="using $_reallibdir"
5877 else
5878 _def_real='#undef USE_REALCODECS'
5879 _def_real_path="#undef REALCODEC_PATH"
5880 _nocodecmodules="real $_nocodecmodules"
5882 echores "$_real"
5885 echocheck "LIVE555 Streaming Media libraries"
5886 if test "$_live" = auto && test "$_network" = yes ; then
5887 cat > $TMPCPP << EOF
5888 #include <liveMedia.hh>
5889 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1090195200)
5890 #error Please upgrade to version 2004.07.19 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
5891 #endif
5892 int main(void) {}
5895 _live=no
5896 for I in "$_livelibdir" "$_libdir/live" "/usr/lib/live" "/usr/local/live" "/usr/local/lib/live" ; do
5897 cxx_check -I$I/liveMedia/include -I$I/UsageEnvironment/include -I$I/groupsock/include && _livelibdir=$I && _live=yes && break
5898 done
5899 if test "$_live" != yes ; then
5900 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock; then
5901 _live_dist=yes
5905 if test "$_live" = yes && test "$_network" = yes ; then
5906 echores "yes (using $_livelibdir)"
5907 _def_live='#define STREAMING_LIVE555 1'
5908 _live_libs_def="# LIVE555 Streaming Media libraries:
5909 LIVE_LIB_DIR = $_livelibdir
5910 LIVE_LIBS = \$(LIVE_LIB_DIR)/liveMedia/libliveMedia.a
5911 LIVE_LIBS += \$(LIVE_LIB_DIR)/groupsock/libgroupsock.a
5912 LIVE_LIBS += \$(LIVE_LIB_DIR)/UsageEnvironment/libUsageEnvironment.a
5913 LIVE_LIBS += \$(LIVE_LIB_DIR)/BasicUsageEnvironment/libBasicUsageEnvironment.a
5914 LIVE_LIBS += -lstdc++
5915 LIVE_INCLUDES = -I\$(LIVE_LIB_DIR)/liveMedia/include
5916 LIVE_INCLUDES += -I\$(LIVE_LIB_DIR)/UsageEnvironment/include
5917 LIVE_INCLUDES += -I\$(LIVE_LIB_DIR)/BasicUsageEnvironment/include
5918 LIVE_INCLUDES += -I\$(LIVE_LIB_DIR)/groupsock/include"
5919 _ld_live='$(LIVE_LIBS)'
5920 _inputmodules="live555 $_inputmodules"
5921 elif test "$_live_dist" = yes && test "$_network" = yes ; then
5922 echores "yes (using distribution version)"
5923 _live="yes"
5924 _def_live='#define STREAMING_LIVE555 1'
5925 _live_libs_def="# LIVE555 Streaming Media libraries:
5926 LIVE_LIB_DIR = $_livelibdir
5927 LIVE_LIBS = -lliveMedia
5928 LIVE_LIBS += -lgroupsock
5929 LIVE_LIBS += -lUsageEnvironment
5930 LIVE_LIBS += -lBasicUsageEnvironment
5931 LIVE_LIBS += -lstdc++
5932 LIVE_INCLUDES = -I/usr/include/liveMedia
5933 LIVE_INCLUDES += -I/usr/include/UsageEnvironment
5934 LIVE_INCLUDES += -I/usr/include/BasicUsageEnvironment
5935 LIVE_INCLUDES += -I/usr/include/groupsock"
5936 _ld_live='$(LIVE_LIBS)'
5937 _inputmodules="live555 $_inputmodules"
5938 else
5939 echores "no"
5940 _def_live='#undef STREAMING_LIVE555'
5941 _noinputmodules="live555 $_noinputmodules"
5944 echocheck "FFmpeg libavutil (static)"
5945 if test -d libavutil ; then
5946 _libavutil=yes
5947 else
5948 _libavutil=no
5950 echores "$_libavutil"
5952 echocheck "FFmpeg libavcodec (static)"
5953 if test "$_libavcodec" = auto ; then
5954 # Note: static linking is preferred to dynamic linking
5955 _libavcodec=no
5956 _res_comment="see DOCS/HTML/$_doc_lang/codecs.html"
5957 if test -d libavcodec && test -f libavcodec/utils.c ; then
5958 _res_comment="old ffmpeg version, use CVS !"
5959 if grep avcodec_find_encoder_by_name libavcodec/utils.c > /dev/null 2>&1 ; then
5960 # check if libavutil is a required
5961 cat > $TMPC << EOF
5962 #include "libavcodec/avcodec.h"
5963 #if LIBAVCODEC_BUILD >= 3211265
5964 #error We need libavutil!
5965 #endif
5966 int main(void) { return 0; }
5969 if cc_check -I. -I./libavutil; then
5970 _libavutil_required="no"
5971 else
5972 _libavutil_required="yes"
5974 _res_comment="libavutil availability does not fit libavcodec version"
5975 if test "$_libavutil_required" = "$_libavutil"; then
5976 _libavcodec="yes"
5977 _res_comment=""
5982 echores "$_libavcodec"
5984 echocheck "FFmpeg libavformat (static)"
5985 if test "$_libavformat" = auto ; then
5986 # Note: static linking is preferred to dynamic linking
5987 _libavformat=no
5988 if test -d libavformat && test -f libavformat/utils.c ; then
5989 _libavformat=yes
5992 echores "$_libavformat"
5994 _def_haveffpostprocess='no'
5995 if test -d libavcodec && test -f libavcodec/libpostproc/postprocess.h ; then
5996 _def_haveffpostprocess='yes'
5999 if test "$_libavcodec" != yes ; then
6000 echocheck "FFmpeg libavcodec (dynamic)"
6001 if test "$_libavcodecso" = auto ; then
6002 _libavcodecso=no
6003 _res_comment="libavcodec.so is broken/obsolete"
6004 # FIXME : check for avcodec_find_encoder_by_name() for mencoder
6005 cat > $TMPC << EOF
6006 #define FF_POSTPROCESS 1
6007 #include <ffmpeg/avcodec.h>
6008 int main(void) {
6009 avcodec_find_encoder_by_name("");
6010 return 0;
6013 if cc_check -lavcodec $_ld_lm ; then
6014 _libavcodecso=yes
6015 _res_comment="using libavcodec.so, but static libavcodec is recommended"
6018 echores "$_libavcodecso"
6021 _def_libavcodec='#undef USE_LIBAVCODEC'
6022 _def_libavcodecso='#undef USE_LIBAVCODEC_SO'
6023 _def_ffpostprocess='#undef FF_POSTPROCESS'
6024 if test "$_libavcodec" = yes ; then
6025 _def_libavcodec='#define USE_LIBAVCODEC 1'
6026 _ld_libavcodec='libavcodec/libavcodec.a'
6027 _dep_libavcodec='libavcodec/libavcodec.a'
6028 _def_ffpostprocess='#define FF_POSTPROCESS 1'
6029 _codecmodules="libavcodec $_codecmodules"
6030 if test "$_libavutil" = yes; then
6031 _ld_libavutil='libavutil/libavutil.a'
6032 _dep_libavutil='libavutil/libavutil.a'
6034 elif test "$_libavcodecso" = yes ; then
6035 _def_libavcodec='#define USE_LIBAVCODEC 1'
6036 _def_libavcodecso='#define USE_LIBAVCODEC_SO 1'
6037 _ld_libavcodec='-lavcodec'
6038 _codecmodules="libavcodec.so $_codecmodules"
6039 else
6040 _nocodecmodules="libavcodec $_nocodecmodules"
6043 _def_libavformat='#undef USE_LIBAVFORMAT'
6044 _def_libavformat_win32='#undef CONFIG_WIN32'
6045 if test "$_libavformat" = yes ; then
6046 _def_libavformat='#define USE_LIBAVFORMAT 1'
6047 _ld_libavformat='libavformat/libavformat.a'
6048 _dep_libavformat='libavformat/libavformat.a'
6049 if win32 ; then
6050 _def_libavformat_win32='#define CONFIG_WIN32 1'
6054 echocheck "amr narrowband"
6055 if test "$_amr_nb" = auto ; then
6056 _amr_nb=no
6057 if test -f libavcodec/amr_float/sp_dec.c ; then
6058 if test "$_libavcodec" = yes ; then
6059 _amr_nb=yes
6060 else
6061 _res_comment="libavcodec (static) is required by amr_nb, sorry"
6065 if test "$_amr_nb" = yes ; then
6066 _def_amr_nb='#define AMR_NB 1'
6067 else
6068 _def_amr_nb='#undef AMR_NB'
6070 echores "$_amr_nb $_echomsg"
6072 echocheck "amr narrowband, fixed point"
6073 if test "$_amr_nb_fixed" = auto ; then
6074 _amr_nb_fixed=no
6075 if test -f libavcodec/amr/dtx_dec.c ; then
6076 if test "$_libavcodec" = yes ; then
6077 if test "$_amr_nb" = no ; then
6078 _amr_nb_fixed=yes
6079 else
6080 _res_comment="disabled by amr_nb"
6082 else
6083 _res_comment="libavcodec (static) is required by amr_nb-fixed, sorry"
6087 if test "$_amr_nb_fixed" = yes ; then
6088 _def_amr_nb='#define AMR_NB 1'
6089 _def_amr_nb_fixed='#define AMR_NB_FIXED 1'
6090 _amr_nb=yes;
6091 else
6092 _def_amr_nb_fixed='#undef AMR_NB_FIXED'
6094 echores "$_amr_nb_fixed"
6096 if test "$_amr_nb" = yes ; then
6097 _codecmodules="amr_nb $_codecmodules"
6098 else
6099 _nocodecmodules="amr_nb $_nocodecmodules"
6102 echocheck "amr wideband"
6103 if test "$_amr_wb" = auto ; then
6104 _amr_wb=no
6105 if test -f libavcodec/amrwb_float/dec_dtx.c ; then
6106 if test "$_libavcodec" = yes ; then
6107 _amr_wb=yes
6108 else
6109 _res_comment="libavcodec (static) is required by amr_wb, sorry"
6113 if test "$_amr_wb" = yes ; then
6114 _def_amr_wb='#define AMR_WB 1'
6115 _codecmodules="amr_wb $_codecmodules"
6116 else
6117 _def_amr_wb='#undef AMR_WB'
6118 _nocodecmodules="amr_wb $_nocodecmodules"
6120 echores "$_amr_wb"
6122 echocheck "libdv-0.9.5+"
6123 if test "$_libdv" = auto ; then
6124 _libdv=no
6125 cat > $TMPC <<EOF
6126 #include <libdv/dv.h>
6127 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
6129 cc_check -ldv $_ld_lm && _libdv=yes
6131 if test "$_libdv" = yes ; then
6132 _def_libdv='#define HAVE_LIBDV095 1'
6133 _ld_libdv="-ldv"
6134 _codecmodules="libdv $_codecmodules"
6135 else
6136 _def_libdv='#undef HAVE_LIBDV095'
6137 _nocodecmodules="libdv $_nocodecmodules"
6139 echores "$_libdv"
6141 echocheck "zr"
6142 if test "$_zr" = auto ; then
6143 #36067's seem to identify themselves as 36057PQC's, so the line
6144 #below should work for 36067's and 36057's.
6145 if grep -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci > /dev/null 2>&1; then
6146 _zr=yes
6147 else
6148 _zr=no
6151 if test "$_zr" = yes ; then
6152 if test "$_libavcodec" = yes ; then
6153 _def_zr='#define HAVE_ZR 1'
6154 _vosrc="$_vosrc vo_zr2.c vo_zr.c jpeg_enc.c"
6155 _vomodules="zr zr2 $_vomodules"
6156 else
6157 _res_comment="libavcodec (static) is required by zr, sorry"
6158 _novomodules="zr $_novomodules"
6159 _def_zr='#undef HAVE_ZR'
6161 else
6162 _def_zr='#undef HAVE_ZR'
6163 _novomodules="zr zr2 $_novomodules"
6165 echores "$_zr"
6167 echocheck "bl"
6168 if test "$_bl" = yes ; then
6169 _def_bl='#define HAVE_BL 1'
6170 _vosrc="$_vosrc vo_bl.c"
6171 _vomodules="bl $_vomodules"
6172 else
6173 _def_bl='#undef HAVE_BL'
6174 _novomodules="bl $_novomodules"
6176 echores "$_bl"
6178 echocheck "XviD"
6179 cat > $TMPC << EOF
6180 #include <xvid.h>
6181 int main(void) { xvid_init(0, 0, 0, 0); return 0; }
6183 _ld_xvid="$_ld_xvid -lxvidcore"
6184 if test "$_xvid" != no && cc_check $_inc_xvid $_ld_xvid $_ld_lm ; then
6185 _xvid=yes
6186 _def_xvid3='#define HAVE_XVID3 1'
6187 _def_xvid4='#undef HAVE_XVID4'
6188 _codecmodules="xvid $_codecmodules"
6189 else
6190 cat > $TMPC << EOF
6191 #include <xvid.h>
6192 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
6194 if test "$_xvid" != no && cc_check $_inc_xvid $_ld_xvid $_ld_lm ; then
6195 _xvid=yes
6196 _def_xvid3='#undef HAVE_XVID3'
6197 _def_xvid4='#define HAVE_XVID4 1'
6198 _codecmodules="xvid $_codecmodules"
6199 else
6200 _xvid=no
6201 _ld_xvid=''
6202 _def_xvid3='#undef HAVE_XVID3'
6203 _def_xvid4='#undef HAVE_XVID4'
6204 _nocodecmodules="xvid $_nocodecmodules"
6207 echores "$_xvid"
6209 _xvidcompat=no
6210 _def_decore_xvid='#undef DECORE_XVID'
6211 _def_encore_xvid='#undef ENCORE_XVID'
6212 if test "$_xvid" = yes ; then
6213 echocheck "DivX4 compatibility in XviD"
6214 cat > $TMPC << EOF
6215 #include <divx4.h>
6216 int main(void) { (void) decore(0, 0, 0, 0); return 0; }
6218 cc_check $_ld_lm "$_ld_xvid" && _xvidcompat=yes
6219 echores "$_xvidcompat"
6222 echocheck "x264"
6223 cat > $TMPC << EOF
6224 #include <inttypes.h>
6225 #include <x264.h>
6226 #if X264_BUILD < 39
6227 #error We do not support old versions of x264. Get the latest from SVN.
6228 #endif
6229 int main(void) { x264_encoder_open((void*)0); return 0; }
6231 _ld_x264="$_ld_x264 -lx264 $_ld_pthread"
6232 if test "$_x264" != no && \
6233 ( cc_check $_inc_x264 $_ld_x264 $_ld_lm || \
6234 ( test "$_x11" = yes && cc_check $_inc_x264 $_inc_x11 $_ld_x264 $_ld_x11 $_ld_lm )) ; \
6235 then
6236 _x264=yes
6237 _def_x264='#define HAVE_X264 1'
6238 _codecmodules="x264 $_codecmodules"
6239 else
6240 _x264=no
6241 _ld_x264=''
6242 _def_x264='#undef HAVE_X264'
6243 _nocodecmodules="x264 $_nocodecmodules"
6245 echores "$_x264"
6247 echocheck "DivX4linux/DivX5linux/OpenDivX decore"
6248 # DivX5: DEC_OPT_MEMORY_REQS - DivX4: DEC_OPT_FRAME_311
6249 cat > $TMPC << EOF
6250 #include <decore.h>
6251 int main(void) { (void) decore(0, 0, 0, 0); return DEC_OPT_FRAME_311; }
6253 if test "$_divx4linux" != no && cc_check $_ld_lm -ldivxdecore ; then
6254 _opendivx=no
6255 _ld_decore='-ldivxdecore'
6256 _def_decore='#define NEW_DECORE 1'
6257 _def_divx='#define USE_DIVX'
6258 _def_divx5='#undef DECORE_DIVX5'
6259 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
6260 _codecmodules="divx4linux $_codecmodules"
6261 echores "DivX4linux (with libdivxdecore.so)"
6262 else
6263 # if test "$_divx4linux" != no ; then
6264 # DivX5 check
6265 # OdivxPP disabled because of:
6266 # ld: Warning: type of symbol `dering' changed from 1 to 2 in opendivx/postprocess.o
6267 cat > $TMPC << EOF
6268 #include <decore.h>
6269 int main(void) { (void) decore(0, 0, 0, 0); return DEC_OPT_INIT; }
6271 if test "$_divx4linux" != no && cc_check $_ld_lm -ldivxdecore ; then
6272 _opendivx=no
6273 # _ld_decore='-ldivxdecore opendivx/postprocess.o'
6274 _ld_decore='-ldivxdecore'
6275 _def_decore='#define NEW_DECORE 1'
6276 _def_divx='#define USE_DIVX'
6277 _def_divx5='#define DECORE_DIVX5 1'
6278 # _def_odivx_postprocess='#define HAVE_ODIVX_POSTPROCESS 1'
6279 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
6280 _codecmodules="divx5linux $_codecmodules"
6281 _nocodecmodules="divx4linux $_nocodecmodules"
6282 echores "DivX5linux (with libdivxdecore.so)"
6283 elif test "$_opendivx" != no ; then
6284 _opendivx=yes
6285 _ld_decore='opendivx/libdecore.a'
6286 _def_decore='#undef NEW_DECORE'
6287 _def_divx='#define USE_DIVX'
6288 _def_divx5='#undef DECORE_DIVX5'
6289 _def_odivx_postprocess='#define HAVE_ODIVX_POSTPROCESS 1'
6290 _codecmodules="opendivx $_codecmodules"
6291 _nocodecmodules="divx5linux $_nocodecmodules"
6292 echores "OpenDivX"
6293 elif test "$_xvidcompat" = yes ; then
6294 _opendivx=no
6295 _ld_decore=''
6296 _def_decore='#define NEW_DECORE 1'
6297 _def_divx='#define USE_DIVX 1'
6298 _def_divx5='#undef DECORE_DIVX5'
6299 _def_decore_xvid='#define DECORE_XVID 1'
6300 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
6301 _nocodecmodules="opendivx divx5linux divx4linux $_nocodecmodules"
6302 echores "XviD compat."
6303 else
6304 _opendivx=no
6305 _ld_decore=''
6306 _def_decore='#undef NEW_DECORE'
6307 _def_divx='#undef USE_DIVX'
6308 _def_divx5='#undef DECORE_DIVX5'
6309 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
6310 _nocodecmodules="opendivx $_nocodecmodules"
6311 echores "no"
6312 fi # DivX5 check
6316 # mencoder requires (optional) those libs: libmp3lame and divx4linux encore
6317 if test "$_mencoder" != no ; then
6319 echocheck "libmp3lame (for mencoder)"
6320 _mp3lame=no
6321 _def_mp3lame_preset='#undef HAVE_MP3LAME_PRESET'
6322 _def_mp3lame_preset_medium='#undef HAVE_MP3LAME_PRESET_MEDIUM'
6323 cat > $TMPC <<EOF
6324 #include <lame/lame.h>
6325 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; }
6327 # Note: libmp3lame usually depends on vorbis
6328 cc_check -lmp3lame $_ld_vorbis $_ld_lm && tmp_run && _mp3lame=yes
6329 if test "$_mp3lame" = yes ; then
6330 _def_mp3lame="#define HAVE_MP3LAME"
6331 _ld_mp3lame="-lmp3lame $_ld_vorbis"
6332 cat > $TMPC << EOF
6333 #include <lame/lame.h>
6334 int main(void) { int p = STANDARD_FAST; return 0; }
6336 cc_check $_ld_mp3lame $_ld_lm && _def_mp3lame_preset="#define HAVE_MP3LAME_PRESET"
6337 cat > $TMPC << EOF
6338 #include <lame/lame.h>
6339 int main(void) { int p = MEDIUM_FAST; return 0; }
6341 cc_check $_ld_mp3lame $_ld_lm && _def_mp3lame_preset_medium="#define HAVE_MP3LAME_PRESET_MEDIUM"
6342 else
6343 _def_mp3lame='#undef HAVE_MP3LAME'
6345 echores "$_mp3lame"
6348 echocheck "DivX4linux encore (for mencoder)"
6349 cat > $TMPC << EOF
6350 #include <encore2.h>
6351 int main(void) { (void) encore(0, 0, 0, 0); return 0; }
6353 if test "$_divx4linux" != no && cc_check -ldivxencore $_ld_lm ; then
6354 _def_encore='#define HAVE_DIVX4ENCORE 1'
6355 _ld_encore='-ldivxencore'
6356 echores "DivX4linux (with libdivxencore.so)"
6357 elif test "$_xvidcompat" = yes ; then
6358 _def_encore='#define HAVE_DIVX4ENCORE 1'
6359 _ld_encore=''
6360 _def_encore_xvid='#define ENCORE_XVID 1'
6361 echores "XviD compat."
6362 else
6363 _def_encore='#undef HAVE_DIVX4ENCORE'
6364 echores "no"
6369 echocheck "mencoder"
6370 _mencoder_flag='#undef HAVE_MENCODER'
6371 if test "$_mencoder" = yes ; then
6372 _mencoder_flag='#define HAVE_MENCODER'
6374 echores "$_mencoder"
6376 echocheck "fastmemcpy"
6377 # fastmemcpy check is done earlier with tests of CPU & binutils features
6378 if test "$_fastmemcpy" = yes ; then
6379 _def_fastmemcpy='#define USE_FASTMEMCPY 1'
6380 else
6381 _def_fastmemcpy='#undef USE_FASTMEMCPY'
6383 echores "$_fastmemcpy"
6385 echocheck "UniquE RAR File Library"
6386 if test "$_unrarlib" = yes ; then
6387 _def_unrarlib='#define USE_UNRARLIB 1'
6388 else
6389 _def_unrarlib='#undef USE_UNRARLIB'
6391 echores "$_unrarlib"
6393 echocheck "TV interface"
6394 if test "$_tv" = yes ; then
6395 _def_tv='#define USE_TV 1'
6396 _inputmodules="tv $_inputmodules"
6397 else
6398 _noinputmodules="tv $_noinputmodules"
6399 _def_tv='#undef USE_TV'
6401 echores "$_tv"
6403 echocheck "EDL support"
6404 if test "$_edl" = yes ; then
6405 _def_edl='#define USE_EDL'
6406 _inputmodules="edl $_inputmodules"
6407 else
6408 _noinputmodules="edl $_noinputmodules"
6409 _def_edl='#undef USE_EDL'
6411 echores "$_edl"
6413 echocheck "*BSD BrookTree 848 TV interface"
6414 if test "$_tv_bsdbt848" = auto ; then
6415 _tv_bsdbt848=no
6416 if test "$_tv" = yes ; then
6417 cat > $TMPC <<EOF
6418 #include <sys/types.h>
6419 #if defined(__NetBSD__)
6420 #include <dev/ic/bt8xx.h>
6421 #else
6422 #include <machine/ioctl_bt848.h>
6423 #endif
6424 int main(void) { return 0; }
6426 cc_check && _tv_bsdbt848=yes
6429 if test "$_tv_bsdbt848" = yes ; then
6430 _def_tv_bsdbt848='#define HAVE_TV_BSDBT848 1'
6431 _inputmodules="tv-bsdbt848 $_inputmodules"
6432 else
6433 _def_tv_bsdbt848='#undef HAVE_TV_BSDBT848'
6434 _noinputmodules="tv-bsdbt848 $_noinputmodules"
6436 echores "$_tv_bsdbt848"
6438 echocheck "Video 4 Linux TV interface"
6439 if test "$_tv_v4l" = auto ; then
6440 _tv_v4l=no
6441 if test "$_tv" = yes && linux ; then
6442 cat > $TMPC <<EOF
6443 #include <stdlib.h>
6444 #include <linux/videodev.h>
6445 int main(void) { return 0; }
6447 cc_check && _tv_v4l=yes
6450 if test "$_tv_v4l" = yes ; then
6451 _def_tv_v4l='#define HAVE_TV_V4L 1'
6452 _inputmodules="tv-v4l $_inputmodules"
6453 else
6454 _noinputmodules="tv-v4l $_noinputmodules"
6455 _def_tv_v4l='#undef HAVE_TV_V4L'
6457 echores "$_tv_v4l"
6460 echocheck "Video 4 Linux 2 TV interface"
6461 if test "$_tv_v4l2" = auto ; then
6462 _tv_v4l2=no
6463 if test "$_tv" = yes && linux ; then
6464 cat > $TMPC <<EOF
6465 #include <stdlib.h>
6466 #include <linux/types.h>
6467 #include <linux/videodev2.h>
6468 int main(void) { return 0; }
6470 cc_check && _tv_v4l2=yes
6473 if test "$_tv_v4l2" = yes ; then
6474 _def_tv_v4l2='#define HAVE_TV_V4L2 1'
6475 _inputmodules="tv-v4l2 $_inputmodules"
6476 else
6477 _noinputmodules="tv-v4l2 $_noinputmodules"
6478 _def_tv_v4l2='#undef HAVE_TV_V4L2'
6480 echores "$_tv_v4l2"
6483 echocheck "audio select()"
6484 if test "$_select" = no ; then
6485 _def_select='#undef HAVE_AUDIO_SELECT'
6486 elif test "$_select" = yes ; then
6487 _def_select='#define HAVE_AUDIO_SELECT 1'
6489 echores "$_select"
6492 echocheck "network"
6493 # FIXME network check
6494 if test "$_network" != no ; then
6495 _def_network='#define MPLAYER_NETWORK 1'
6496 _ld_network="$_ld_sock"
6497 _inputmodules="network $_inputmodules"
6498 else
6499 _noinputmodules="network $_noinputmodules"
6500 _def_network='#undef MPLAYER_NETWORK'
6501 _ftp=no
6503 echores "$_network"
6505 echocheck "ftp"
6506 if not beos && test "$_ftp" != no ; then
6507 _def_ftp='#define HAVE_FTP 1'
6508 _inputmodules="ftp $_inputmodules"
6509 else
6510 _noinputmodules="ftp $_noinputmodules"
6511 _def_ftp='#undef HAVE_FTP'
6513 echores "$_ftp"
6515 echocheck "vstream client"
6516 if test "$_vstream" = auto ; then
6517 _vstream=no
6518 cat > $TMPC <<EOF
6519 #include <vstream-client.h>
6520 void vstream_error(const char *format, ... ) {}
6521 int main(void) { vstream_start(); return 0; }
6523 cc_check -lvstream-client && _vstream=yes
6525 if test "$_vstream" = yes ; then
6526 _def_vstream='#define HAVE_VSTREAM 1'
6527 _inputmodules="vstream $_inputmodules"
6528 _ld_vstream='-lvstream-client'
6529 else
6530 _noinputmodules="vstream $_noinputmodules"
6531 _def_vstream='#undef HAVE_VSTREAM'
6533 echores "$_vstream"
6535 # endian testing
6536 echocheck "byte order"
6537 if test "$_big_endian" = auto ; then
6538 cat > $TMPC <<EOF
6539 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
6540 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
6541 int main(){
6542 char* s = (char*)ascii_name;
6543 return 0;
6546 if cc_check ; then
6547 if strings $TMPO | grep -l MPlayerBigEndian >/dev/null ; then
6548 _big_endian=yes
6549 else
6550 _big_endian=no
6552 else
6553 echo -n "failed to autodetect byte order, defaulting to "
6556 if test "$_big_endian" = yes ; then
6557 _byte_order='big-endian'
6558 _def_words_endian='#define WORDS_BIGENDIAN 1'
6559 else
6560 _byte_order='little-endian'
6561 _def_words_endian='#undef WORDS_BIGENDIAN'
6563 echores "$_byte_order"
6565 echocheck "OSD menu"
6566 if test "$_menu" = yes ; then
6567 _def_menu='#define HAVE_MENU 1'
6568 else
6569 _def_menu='#undef HAVE_MENU'
6571 echores "$_menu"
6573 # Check to see if they want QTX codecs enabled
6574 echocheck "QTX codecs"
6575 if test "$_qtx" = auto ; then
6576 _qtx=$_win32
6578 if test "$_qtx" = yes ; then
6579 _def_qtx='#define USE_QTX_CODECS 1'
6580 _codecmodules="qtx $_codecmodules"
6581 else
6582 _def_qtx='#undef USE_QTX_CODECS'
6583 _nocodecmodules="qtx $_nocodecmodules"
6585 echores "$_qtx"
6588 echocheck "Subtitles sorting"
6589 if test "$_sortsub" = yes ; then
6590 _def_sortsub='#define USE_SORTSUB 1'
6591 else
6592 _def_sortsub='#undef USE_SORTSUB'
6594 echores "$_sortsub"
6597 echocheck "XMMS inputplugin support"
6598 if test "$_xmms" = yes ; then
6600 if ( xmms-config --version ) >/dev/null 2>&1 ; then
6601 if test -z "$_xmmsplugindir" ; then
6602 _xmmsplugindir=`xmms-config --input-plugin-dir`
6604 if test -z "$_xmmslibdir" ; then
6605 _xmmslibdir=`xmms-config --exec-prefix`/lib
6607 else
6608 if test -z "$_xmmsplugindir" ; then
6609 _xmmsplugindir=/usr/lib/xmms/Input
6611 if test -z "$_xmmslibdir" ; then
6612 _xmmslibdir=/usr/lib
6616 _def_xmms='#define HAVE_XMMS 1'
6617 if darwin ; then
6618 _xmms_lib="${_xmmslibdir}/libxmms.dylib"
6619 else
6620 _xmms_lib="${_xmmslibdir}/libxmms.so.1 -export-dynamic"
6622 else
6623 _def_xmms='#undef HAVE_XMMS'
6625 echores "$_xmms"
6627 echocheck "inet6"
6628 if test "$_inet6" = auto ; then
6629 cat > $TMPC << EOF
6630 #include <sys/types.h>
6631 #include <sys/socket.h>
6632 int main(void) { socket(AF_INET6, SOCK_STREAM, AF_INET6); }
6634 _inet6=no
6635 if cc_check ; then
6636 _inet6=yes
6639 if test "$_inet6" = yes ; then
6640 _def_inet6='#define HAVE_AF_INET6 1'
6641 else
6642 _def_inet6='#undef HAVE_AF_INET6'
6644 echores "$_inet6"
6647 echocheck "gethostbyname2"
6648 if test "$_gethostbyname2" = auto ; then
6649 cat > $TMPC << EOF
6650 #include <sys/types.h>
6651 #include <sys/socket.h>
6652 #include <netdb.h>
6653 int main(void) { gethostbyname2("", AF_INET); }
6655 _gethostbyname2=no
6656 if cc_check ; then
6657 _gethostbyname2=yes
6661 if test "$_gethostbyname2" = yes ; then
6662 _def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
6663 else
6664 _def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
6666 echores "$_gethostbyname2"
6668 # --------------- GUI specific tests begin -------------------
6669 echocheck "GUI"
6670 echo "$_gui"
6671 if test "$_gui" = yes ; then
6673 # Required libraries
6674 test "$_png" != yes && die "PNG support required for GUI compilation, please install libpng and libpng-dev packages."
6675 test "$_x11" != yes && die "X11 support required for GUI compilation"
6677 echocheck "XShape extension"
6678 _xshape=no
6679 if test "$_x11" = yes ; then
6680 cat > $TMPC << EOF
6681 #include <X11/Xlib.h>
6682 #include <X11/Xproto.h>
6683 #include <X11/Xutil.h>
6684 #include <X11/extensions/shape.h>
6685 #include <stdlib.h>
6686 int main(void) {
6687 char *name = ":0.0";
6688 Display *wsDisplay;
6689 int exitvar = 0;
6690 int eventbase, errorbase;
6691 if (getenv("DISPLAY"))
6692 name=getenv("DISPLAY");
6693 wsDisplay=XOpenDisplay(name);
6694 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
6695 exitvar=1;
6696 XCloseDisplay(wsDisplay);
6697 return exitvar;
6700 cc_check $_inc_x11 $_ld_x11 && _xshape=yes
6702 if test "$_xshape" = yes ; then
6703 _def_xshape='#define HAVE_XSHAPE 1'
6704 else
6705 die "The GUI requires the X11 extension XShape (which was not found)."
6707 echores "$_xshape"
6709 #Check for GTK
6710 if test "$_gtk1" = no ; then
6711 #Check for GTK2 :
6712 echocheck "GTK+ version"
6714 if pkg-config gtk+-2.0 --exists ; then
6715 _gtk=`pkg-config gtk+-2.0 --modversion 2>/dev/null`
6716 _inc_gtk=`pkg-config gtk+-2.0 --cflags 2>/dev/null`
6717 _ld_gtk=`pkg-config gtk+-2.0 --libs 2>/dev/null`
6718 echores "$_gtk"
6720 # Check for GLIB2
6721 if pkg-config glib-2.0 --exists ; then
6722 echocheck "glib version"
6723 _glib=`pkg-config glib-2.0 --modversion 2>/dev/null`
6724 _inc_glib=`pkg-config glib-2.0 --cflags 2>/dev/null`
6725 _ld_glib=`pkg-config glib-2.0 --libs 2>/dev/null`
6726 echores "$_glib"
6728 _def_gui='#define HAVE_NEW_GUI 1'
6729 _def_gtk2_gui='#define HAVE_GTK2_GUI 1'
6730 _ld_gui='$(GTKLIB) $(GLIBLIB)'
6731 else
6732 _gtk1=yes
6733 echo "GLIB-2 devel packages were not found, trying GTK 1.2"
6735 else
6736 echo "GTK-2 devel packages were not found, trying GTK 1.2"
6737 _gtk1=yes
6741 if test "$_gtk1" = yes ; then
6742 # Check for old GTK (1.2.x)
6743 echocheck "GTK version"
6744 if test -z "$_gtkconfig" ; then
6745 if ( gtk-config --version ) >/dev/null 2>&1 ; then
6746 _gtkconfig="gtk-config"
6747 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
6748 _gtkconfig="gtk12-config"
6749 else
6750 die "The GUI requires GTK devel packages (which were not found)."
6753 _gtk=`$_gtkconfig --version 2>&1`
6754 _inc_gtk=`$_gtkconfig --cflags 2>&1`
6755 _ld_gtk=`$_gtkconfig --libs 2>&1`
6756 echores "$_gtk (using $_gtkconfig)"
6758 # Check for GLIB
6759 echocheck "glib version"
6760 if test -z "$_glibconfig" ; then
6761 if ( glib-config --version ) >/dev/null 2>&1 ; then
6762 _glibconfig="glib-config"
6763 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
6764 _glibconfig="glib12-config"
6765 else
6766 die "The GUI requires GLib devel packages (which were not found)"
6769 _glib=`$_glibconfig --version 2>&1`
6770 _inc_glib=`$_glibconfig --cflags 2>&1`
6771 _ld_glib=`$_glibconfig --libs 2>&1`
6772 echores "$_glib (using $_glibconfig)"
6774 _def_gui='#define HAVE_NEW_GUI 1'
6775 _def_gtk2_gui='#undef HAVE_GTK2_GUI'
6776 _ld_gui='$(GTKLIB) $(GLIBLIB)'
6779 echo "Creating Gui/config.mak"
6780 cat > Gui/config.mak << EOF
6781 # -------- Generated by configure -----------
6783 GTKINC = $_inc_gtk
6784 GTKLIBS = $_ld_gtk
6785 GLIBINC = $_inc_glib
6786 GLIBLIBS = $_ld_glib
6790 else
6791 _def_gui='#undef HAVE_NEW_GUI'
6792 _def_gtk2_gui='#undef HAVE_GTK2_GUI'
6794 # --------------- GUI specific tests end -------------------
6798 #############################################################################
6800 # Checking for CFLAGS
6801 _stripbinaries=yes
6802 if test "$_profile" != "" || test "$_debug" != "" ; then
6803 CFLAGS="-W -Wall -O2 $_march $_mcpu $_debug $_profile"
6804 if test "$_cc_major" -ge "3" ; then
6805 CFLAGS=`echo "$CFLAGS" | sed -e 's/\(-Wall\)/\1 -Wno-unused-parameter/'`
6807 _stripbinaries=no
6808 elif test -z "$CFLAGS" ; then
6809 CFLAGS="-O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
6810 # always compile with '-g' if .developer:
6811 if test -f ".developer" ; then
6812 CFLAGS="-g $CFLAGS"
6813 if test "$_crash_debug" = auto && not mingw32 ; then
6814 _crash_debug=yes
6816 _stripbinaries=no
6818 else
6819 _warn_CFLAGS=yes
6822 echocheck "automatic gdb attach"
6823 if test "$_crash_debug" = yes ; then
6824 _def_crash_debug='#define CRASH_DEBUG 1'
6825 else
6826 _def_crash_debug='#undef CRASH_DEBUG'
6827 _crash_debug=no
6829 echores "$_crash_debug"
6831 if darwin ; then
6832 CFLAGS="$CFLAGS -mdynamic-no-pic -falign-loops=16 -DSYS_DARWIN"
6833 if [ "$_cc_major" = 3 ] && [ "$_cc_minor" -lt 1 ]; then
6834 CFLAGS="$CFLAGS -no-cpp-precomp"
6837 # libavcodec (from ffmpeg) requires CONFIG_DARWIN to enable AltiVec on Darwin/MacOSX
6838 test "$_altivec" = yes && CFLAGS="$CFLAGS -DCONFIG_DARWIN"
6840 if hpux ; then
6841 # use flag for HPUX missing setenv()
6842 CFLAGS="$CFLAGS -DHPUX"
6844 # Thread support
6845 if linux ; then
6846 CFLAGS="$CFLAGS -D_REENTRANT"
6847 elif bsd ; then
6848 # FIXME bsd needs this so maybe other OS'es
6849 CFLAGS="$CFLAGS -D_THREAD_SAFE"
6851 # 64 bit file offsets?
6852 if test "$_largefiles" = yes || freebsd ; then
6853 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
6854 if test "$_dvdread" = yes ; then
6855 # dvdread support requires this (for off64_t)
6856 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
6860 echocheck "compiler support for -fno-PIC"
6861 if x86; then
6862 cat > $TMPC <<EOF
6863 int main(void) { return 0; }
6865 if cc_check -fno-PIC ; then
6866 CFLAGS="-fno-PIC $CFLAGS"
6867 echores "yes"
6868 else
6869 echores "no"
6871 else
6872 echores "only used for x86"
6875 echocheck "compiler support for noexecstack"
6876 cat > $TMPC <<EOF
6877 int main(void) { return 0; }
6879 if cc_check -Wl,-z,noexecstack ; then
6880 _ld_extra="-Wl,-z,noexecstack $_ld_extra"
6881 echores "yes"
6882 else
6883 echores "no"
6886 echocheck "ftello()"
6887 # if we don't have ftello use the osdep/ compatibility module
6888 cat > $TMPC << EOF
6889 #include <stdio.h>
6890 #include <sys/types.h>
6891 int main (void) { ftello(stdin); return 0; }
6893 _ftello=no
6894 cc_check && _ftello=yes
6895 if test "$_ftello" = yes ; then
6896 _def_ftello='#define HAVE_FTELLO 1'
6897 else
6898 _def_ftello='#undef HAVE_FTELLO'
6900 echores "$_ftello"
6902 # Determine OS dependent libs
6903 if cygwin ; then
6904 _def_confwin32='#define WIN32'
6905 #CFLAGS="$CFLAGS -D__CYGWIN__ -D__CYGWIN_USE_BIG_TYPES__"
6906 # stat.st_size with BIG_TYPES is broken (not set) ::atmos
6907 CFLAGS="$CFLAGS -D__CYGWIN__"
6910 if win32 ; then
6911 _confwin32='TARGET_WIN32 = yes'
6912 else
6913 _confwin32='TARGET_WIN32 = no'
6916 # Dynamic linking flags
6917 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
6918 _ld_dl_dynamic=''
6919 bsd && _ld_dl_dynamic='-rdynamic'
6920 if test "$_real" = yes || test "$_xanim" = yes && not win32 && not qnx ; then
6921 _ld_dl_dynamic='-rdynamic'
6924 _ld_arch="$_ld_arch $_ld_pthread $_ld_dl $_ld_dl_dynamic"
6925 bsdos && _ld_arch="$_ld_arch -ldvd"
6926 if netbsd ; then
6927 x86 && _ld_arch="$_ld_arch -li386"
6930 _def_debug='#undef MP_DEBUG'
6931 test "$_debug" != "" && _def_debug='#define MP_DEBUG 1'
6933 _def_linux='#undef TARGET_LINUX'
6934 linux && _def_linux='#define TARGET_LINUX 1'
6936 # TODO cleanup the VIDIX stuff here
6937 echocheck "VIDIX"
6938 _def_vidix='#define CONFIG_VIDIX 1'
6939 test "$_vidix" = no && _def_vidix='#undef CONFIG_VIDIX'
6940 if test "$_vidix" = yes; then
6941 _vosrc="$_vosrc vo_cvidix.c"
6942 _vomodules="cvidix $_vomodules"
6943 else
6944 _novomodules="cvidix $_novomodules"
6946 if test "$_vidix" = yes && win32; then
6947 _vosrc="$_vosrc vo_winvidix.c"
6948 _vomodules="winvidix $_vomodules"
6949 _ld_win32libs="-lgdi32 $_ld_win32libs"
6950 else
6951 _novomodules="winvidix $_novomodules"
6953 if test "$_vidix" = yes && test "$_x11" = yes; then
6954 _vosrc="$_vosrc vo_xvidix.c"
6955 _vomodules="xvidix $_vomodules"
6956 else
6957 _novomodules="xvidix $_novomodules"
6959 echores "$_vidix"
6961 echocheck "joystick"
6962 _def_joystick='#undef HAVE_JOYSTICK'
6963 if test "$_joystick" = yes ; then
6964 if linux ; then
6965 # TODO add some check
6966 _def_joystick='#define HAVE_JOYSTICK 1'
6967 else
6968 _joystick="no (unsupported under $system_name)"
6971 echores "$_joystick"
6973 echocheck "lirc"
6974 if test "$_lirc" = auto ; then
6975 _lirc=no
6976 if test -c /dev/lirc -o -c /dev/lirc/0 ; then
6977 cat > $TMPC <<EOF
6978 #include <lirc/lirc_client.h>
6979 int main(void) { return 0; }
6981 cc_check -llirc_client && _lirc=yes
6984 if test "$_lirc" = yes ; then
6985 _def_lirc='#define HAVE_LIRC 1'
6986 _ld_lirc='-llirc_client'
6987 else
6988 _def_lirc='#undef HAVE_LIRC'
6990 echores "$_lirc"
6992 echocheck "lircc"
6993 if test "$_lircc" = auto ; then
6994 _lircc=no
6995 cat > $TMPC <<EOF
6996 #include <lirc/lircc.h>
6997 int main(void) { return 0; }
6999 cc_check -llircc && _lircc=yes
7001 if test "$_lircc" = yes ; then
7002 _def_lircc='#define HAVE_LIRCC 1'
7003 _ld_lircc='-llircc'
7004 else
7005 _def_lircc='#undef HAVE_LIRCC'
7007 echores "$_lircc"
7009 #############################################################################
7010 echo "Creating config.mak"
7011 cat > config.mak << EOF
7012 # -------- Generated by configure -----------
7014 LANG = C
7015 MAN_LANG = $MAN_LANG
7016 TARGET_OS = $system_name
7017 DESTDIR =
7018 prefix = \$(DESTDIR)$_prefix
7019 BINDIR = \$(DESTDIR)$_bindir
7020 DATADIR = \$(DESTDIR)$_datadir
7021 MANDIR = \$(DESTDIR)$_mandir
7022 CONFDIR = \$(DESTDIR)$_confdir
7023 LIBDIR = \$(DESTDIR)$_libdir
7024 # FFmpeg uses libdir instead of LIBDIR
7025 libdir = \$(LIBDIR)
7026 #AR = ar
7027 CC = $_cc
7028 HOST_CC = $_host_cc
7029 AWK = $_awk
7030 RANLIB = $_ranlib
7031 INSTALL = $_install
7032 # OPTFLAGS = -O4 $_profile $_debug $_march $_mcpu $_pipe -fomit-frame-pointer -ffast-math
7033 EXTRA_INC = $_inc_extra
7034 OPTFLAGS = -I../libvo -I../../libvo $_inc_x11 $CFLAGS \$(EXTRA_INC)
7035 STRIPBINARIES = $_stripbinaries
7036 CHARSET = $_charset
7037 HELP_FILE = $_mp_help
7039 PRG = $_prg
7040 PRG_MENCODER = $_prg_mencoder
7042 $_live_libs_def
7044 MPLAYER_NETWORK = $_network
7045 STREAMING_LIVE555 = $_live
7046 MPLAYER_NETWORK_LIB = $_ld_live $_ld_vstream $_ld_network
7047 DVBIN = $_dvbin
7048 VIDIX = $_vidix
7049 CONFIG_PP = yes
7050 CONFIG_MP3LAME = $_mp3lame
7051 LIBMENU = $_menu
7052 I18NLIBS = $_i18n_libs
7053 MATROSKA = $_matroska_internal
7055 OPENDIVX = $_opendivx
7057 MP3LIB = $_mp3lib
7058 LIBA52 = $_liba52
7059 LIBMPEG2 = $_libmpeg2
7060 TREMOR = $_tremor_internal
7061 TREMOR_FLAGS = $_tremor_flags
7063 SPEEX = $_speex
7064 MUSEPACK = $_musepack
7066 UNRARLIB = $_unrarlib
7067 HAVE_FFPOSTPROCESS = $_def_haveffpostprocess
7068 PNG = $_mkf_png
7069 JPEG = $_mkf_jpg
7070 GIF = $_mkf_gif
7072 EXTRA_LIB = $_ld_extra
7073 Z_LIB = $_ld_static $_ld_zlib
7074 HAVE_MLIB = $_mlib
7075 WIN32_LIB = $_ld_win32libs
7076 STATIC_LIB = $_ld_static
7077 ENCA_LIB = $_ld_enca
7078 HAVE_PTHREADS = $_pthreads
7079 MATH_LIB = $_ld_lm
7081 X11_INC = $_inc_x11
7082 X11DIR = $_ld_x11
7084 HAVE_XVMC_ACCEL = $_xvmc
7086 # for libavcodec:
7087 SRC_PATH=..
7088 LIBPREF=lib
7089 LIBSUF=.a
7090 SLIBPREF=lib
7091 SLIBSUF=.so
7093 # video output
7094 X_LIB = $_ld_gl $_ld_dga $_ld_xv $_ld_xvmc $_ld_vm $_ld_xinerama $_ld_x11 $_ld_sock
7095 GGI_LIB = $_ld_ggi
7096 MLIB_LIB = $_ld_mlib
7097 MLIB_INC = $_inc_mlib
7098 DXR2_INC = $_inc_dxr2
7099 DVB_INC = $_inc_dvb
7100 PNG_LIB = $_ld_png
7101 JPEG_LIB = $_ld_jpg
7102 GIF_LIB = $_ld_gif
7103 SDL_LIB = $_ld_sdl
7104 SVGA_LIB = $_ld_svga
7105 VESA_LIB = $_ld_vesa
7106 AA_LIB = $_ld_aa
7107 CACA_INC = $_inc_caca
7108 CACA_LIB = $_ld_caca
7110 # audio output
7111 ALSA_LIB = $_ld_alsa
7112 NAS_LIB = $_ld_nas
7113 ARTS_LIB = $_ld_arts
7114 ARTS_INC = $_inc_arts
7115 ESD_LIB = $_ld_esd
7116 ESD_INC = $_inc_esd
7117 POLYP_LIB = $_ld_polyp
7118 POLYP_INC = $_inc_polyp
7119 JACK_LIB = $_ld_jack
7120 JACK_INC = $_inc_jack
7121 SGIAUDIO_LIB = $_ld_sgiaudio
7123 # input/demuxer/codecs
7124 TERMCAP_LIB = $_ld_termcap
7125 LIRC_LIB = $_ld_lirc
7126 LIRCC_LIB = $_ld_lircc
7127 DVDREAD_LIB = $_ld_dvdread
7128 DVDKIT = $_dvdkit
7129 DVDKIT2 = $_dvdkit2
7130 DVDKIT_SHARED = no
7131 SDL_INC = $_inc_sdl
7132 W32_DEP = $_dep_win32
7133 W32_LIB = $_ld_win32
7134 DS_DEP = $_dep_dshow
7135 DS_LIB = $_ld_dshow
7136 AV_DEP = $_dep_libavutil $_dep_libavcodec $_dep_libavformat
7137 AV_LIB = $_ld_libavformat $_ld_libavcodec $_ld_libavutil
7138 CONFIG_LIBAVUTIL = $_libavutil
7139 CONFIG_LIBAVCODEC = $_libavcodec
7140 CONFIG_LIBAVCODECSO = $_libavcodecso
7141 CONFIG_LIBAVFORMAT = $_libavformat
7142 ZORAN = $_zr
7143 FAME = $_fame
7144 FAME_LIB = $_ld_fame
7145 MP1E_DEP = $_dep_mp1e
7146 MP1E_LIB = $_ld_mp1e
7147 ARCH_LIB = $_ld_arch $_ld_iconv
7148 XVID = $_xvid
7149 XVID_INC = $_inc_xvid
7150 XVID_LIB = $_ld_xvid
7151 X264 = $_x264
7152 X264_INC = $_inc_x264
7153 X264_LIB = $_ld_x264
7154 CONFIG_DTS = $_libdts
7155 DTS_INC = $_inc_libdts
7156 DTS_LIB = $_ld_libdts
7157 DECORE_LIB = $_ld_decore $_ld_mp3lame
7158 MENCODER = $_mencoder
7159 ENCORE_LIB = $_ld_encore $_ld_mp3lame
7160 DIRECTFB_INC = $_inc_directfb
7161 DIRECTFB_LIB = $_ld_directfb
7162 CDPARANOIA_INC = $_inc_cdparanoia
7163 CDPARANOIA_LIB = $_ld_cdparanoia
7164 FREETYPE_INC = $_inc_freetype
7165 FREETYPE_LIB = $_ld_freetype
7166 FONTCONFIG_INC = $_inc_fontconfig
7167 FONTCONFIG_LIB = $_ld_fontconfig
7168 FRIBIDI_INC = $_inc_fribidi
7169 FRIBIDI_LIB = $_ld_fribidi
7170 LIBCDIO_INC = $_inc_libcdio
7171 LIBCDIO_LIB = $_ld_libcdio
7172 LIBLZO_LIB= $_ld_liblzo
7173 MAD_LIB = $_ld_mad
7174 VORBIS_LIB = $_ld_vorbis $_ld_libdv
7175 SPEEX_LIB = $_ld_speex
7176 THEORA_LIB = $_ld_theora
7177 FAAD_LIB = $_ld_faad
7178 INTERNAL_FAAD = $_faad_internal
7179 SMBSUPPORT_LIB = $_ld_smb
7180 XMMS_PLUGINS = $_xmms
7181 XMMS_LIB = $_xmms_lib
7182 MACOSX = $_macosx
7183 MACOSX_FINDER_SUPPORT = $_macosx_finder_support
7184 MACOSX_BUNDLE = $_macosx_bundle
7185 MACOSX_FRAMEWORKS = $_macosx_frameworks
7186 MACOSX_COREVIDEO = $_macosx_corevideo
7187 TOOLAME=$_toolame
7188 TOOLAME_EXTRAFLAGS=$_toolame_extraflags
7189 TOOLAME_LIB=$_toolame_lib
7190 TWOLAME=$_twolame
7191 TWOLAME_LIB=$_twolame_lib
7192 MUSEPACK_LIB = $_ld_musepack
7193 FAAC=$_faac
7194 FAAC_LIB=$_ld_faac
7195 AMR_NB=$_amr_nb
7196 AMR_NB_FIXED=$_amr_nb_fixed
7197 AMR_WB=$_amr_wb
7198 `echo $_libavcodecs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'`
7199 CONFIG_GPL=yes
7201 # --- Some stuff for autoconfigure ----
7202 $_target_arch
7203 $_confwin32
7204 TARGET_CPU=$iproc
7205 TARGET_MMX = $_mmx
7206 TARGET_MMX2 = $_mmx2
7207 TARGET_3DNOW = $_3dnow
7208 TARGET_3DNOWEX = $_3dnowex
7209 TARGET_SSE = $_sse
7210 TARGET_ALTIVEC = $_altivec
7211 TARGET_VIS = $_vis
7213 # --- GUI stuff ---
7214 GTKINC = $_inc_gtk
7215 GTKLIB = $_ld_static $_ld_gtk
7216 GLIBLIB = $_ld_static $_ld_glib
7217 GTK_LIBS = $_ld_static $_ld_gui
7218 GUI = $_gui
7219 DEBUG = -DDEBUG
7223 #############################################################################
7224 echo "Creating config.h"
7225 cat > config.h << EOF
7226 /* -------- This file has been automatically generated by configure ---------
7227 Note: Any changes in it will be lost when you run configure again. */
7229 /* Protect against multiple inclusion */
7230 #ifndef MPLAYER_CONFIG_H
7231 #define MPLAYER_CONFIG_H 1
7233 /* use GNU internationalization */
7234 $_def_i18n
7236 /* Runtime CPU detection */
7237 $_def_runtime_cpudetection
7239 /* Dynamic a/v plugins */
7240 $_def_dynamic_plugins
7242 /* "restrict" keyword */
7243 $_def_restrict_keyword
7245 /* __builtin_expect branch prediction hint */
7246 $_def_builtin_expect
7247 #ifdef HAVE_BUILTIN_EXPECT
7248 #define likely(x) __builtin_expect ((x) != 0, 1)
7249 #define unlikely(x) __builtin_expect ((x) != 0, 0)
7250 #else
7251 #define likely(x) (x)
7252 #define unlikely(x) (x)
7253 #endif
7255 /* attribute(used) as needed by some compilers */
7256 #if (__GNUC__ * 100 + __GNUC_MINOR__ >= 300)
7257 # define attribute_used __attribute__((used))
7258 #else
7259 # define attribute_used
7260 #endif
7262 #define PREFIX "$_prefix"
7264 #define USE_OSD 1
7265 #define USE_SUB 1
7267 /* enable/disable SIGHANDLER */
7268 $_def_sighandler
7270 /* enable/disable automatic gdb attach on crash, requires SIGHANDLER */
7271 $_def_crash_debug
7273 /* Toggles debugging informations */
7274 $_def_debug
7276 /* Toggles colorized output */
7277 //#define MSG_USE_COLORS 1
7279 /* Indicates that libcdio is available for VCD and CD-DA playback */
7280 $_def_libcdio
7282 /* Indicates that Ogle's libdvdread is available for DVD playback */
7283 $_def_dvdread
7285 /* Indicates that dvdread is from libmpdvdkit */
7286 $_def_mpdvdkit
7288 /* Additional options for libmpdvdkit*/
7289 $_def_dvd
7290 $_def_cdrom
7291 $_def_cdio
7292 $_def_dvdio
7293 $_def_bsdi_dvd
7294 $_def_dvd_bsd
7295 $_def_dvd_linux
7296 $_dev_dvd_openbsd
7297 $_def_dvd_darwin
7298 $_def_sol_scsi_h
7299 $_def_hpux_scsi_h
7300 $_def_stddef
7302 /* Common data directory (for fonts, etc) */
7303 #define MPLAYER_DATADIR "$_datadir"
7304 #define MPLAYER_CONFDIR "$_confdir"
7305 #define MPLAYER_LIBDIR "$_libdir"
7307 /* Define this to compile stream-caching support, it can be enabled via
7308 -cache <kilobytes> */
7309 #define USE_STREAM_CACHE 1
7311 /* Define to include support for XviD/Divx4Linux/OpenDivx */
7312 $_def_divx
7314 /* Define to use the new XviD/DivX4Linux library instead of open source OpenDivX */
7315 /* You have to change DECORE_LIBS in config.mak, too! */
7316 $_def_decore
7318 /* Define if you are using DivX5Linux Decore library */
7319 $_def_divx5
7321 /* Define if you are using XviD library */
7322 $_def_xvid3
7323 $_def_xvid4
7324 $_def_decore_xvid
7325 $_def_encore_xvid
7327 /* Define if you are using the X.264 library */
7328 $_def_x264
7330 /* Define to include support for libdv-0.9.5 */
7331 $_def_libdv
7333 /* If build mencoder */
7334 $_mencoder_flag
7336 /* Indicates if XviD/Divx4linux encore is available
7337 Note: for mencoder */
7338 $_def_encore
7340 /* Indicates if libmp3lame is available
7341 Note: for mencoder */
7342 $_def_mp3lame
7343 $_def_mp3lame_preset
7344 $_def_mp3lame_preset_medium
7346 /* Define libmp1e for realtime mpeg encoding (for DXR3 and DVB cards) */
7347 $_def_mp1e
7349 /* Define this to enable avg. byte/sec-based AVI sync method by default:
7350 (use -bps or -nobps commandline option for run-time method selection)
7351 -bps gives better sync for vbr mp3 audio, it is now default */
7352 #define AVI_SYNC_BPS 1
7354 /* Undefine this if you do not want to select mono audio (left or right)
7355 with a stereo MPEG layer 2/3 audio stream. The command line option
7356 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
7357 right-only), with 0 being the default.
7359 #define USE_FAKE_MONO 1
7361 /* Undefine this if your sound card driver has no working select().
7362 If you have kernel Oops, player hangups, or just no audio, you should
7363 try to recompile MPlayer with this option disabled! */
7364 $_def_select
7366 /* define this to use iconv(3) function to codepage conversions */
7367 $_def_iconv
7369 /* define this to use nl_langinfo function */
7370 $_def_langinfo
7372 /* define this to use RTC (/dev/rtc) for video timers */
7373 $_def_rtc
7375 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
7376 #define MAX_OUTBURST 65536
7378 /* set up audio OUTBURST. Do not change this! */
7379 #define OUTBURST 512
7381 /* Define this if your system has the header file for the OSS sound interface */
7382 $_def_sys_soundcard
7384 /* Define this if your system has the header file for the OSS sound interface
7385 * in /usr/include */
7386 $_def_soundcard
7388 /* Define this if your system has the sysinfo header */
7389 $_def_sys_sysinfo
7391 /* Define this if your system has ftello() */
7393 $_def_ftello
7394 #ifndef HAVE_FTELLO
7395 /* Need these for FILE and off_t an config.h is usually before other includes*/
7396 #include <stdio.h>
7397 #include <sys/types.h>
7398 off_t ftello(FILE *);
7399 #endif
7401 /* Define this if your system has the "malloc.h" header file */
7402 $_def_malloc
7404 /* memalign is mapped to malloc if unsupported */
7405 $_def_memalign
7406 #ifndef HAVE_MEMALIGN
7407 # define memalign(a,b) malloc(b)
7408 #define MEMALIGN_HACK 1
7409 #endif
7411 /* Define this if your system has the "alloca.h" header file */
7412 $_def_alloca
7414 /* Define this if your system has the "sys/mman.h" header file */
7415 $_def_mman
7416 $_def_mman_has_map_failed
7418 /* Define this if you have the elf dynamic linker -ldl library */
7419 $_def_dl
7421 /* Define this if you have the kstat kernel statistics library */
7422 $_def_kstat
7424 /* Define this if you have zlib */
7425 $_def_zlib
7426 #ifdef HAVE_ZLIB
7427 #define CONFIG_ZLIB 1
7428 #endif
7430 /* Define this if you have shm support */
7431 $_def_shm
7433 /* Define this if your system has scandir & alphasort */
7434 $_def_scandir
7436 /* Define this if your system has strsep */
7437 $_def_strsep
7439 /* Define this if your system has strlcpy */
7440 $_def_strlcpy
7441 #ifndef HAVE_STRLCPY
7442 unsigned int strlcpy (char *dest, const char *src, unsigned int size);
7443 #endif
7445 /* Define this if your system has strlcat */
7446 $_def_strlcat
7447 #ifndef HAVE_STRLCAT
7448 unsigned int strlcat (char *dest, const char *src, unsigned int size);
7449 #endif
7451 /* Define this if your system has fseeko */
7452 $_def_fseeko
7453 #ifndef HAVE_FSEEKO
7454 /* Need these for FILE and off_t an config.h is usually before other includes*/
7455 #include <stdio.h>
7456 #include <sys/types.h>
7457 int fseeko(FILE *, off_t, int);
7458 #endif
7460 $_def_localtime_r
7462 /* Define this if your system has vsscanf */
7463 $_def_vsscanf
7465 /* Define this if your system has swab */
7466 $_def_swab
7468 /* Define this if your system has no posix select */
7469 $_def_no_posix_select
7471 /* Define this if your system has gettimeofday */
7472 $_def_gettimeofday
7474 /* Define this if your system has glob */
7475 $_def_glob
7477 /* Define this if your system has pthreads */
7478 $_def_pthreads
7480 /* Define this if you enabled thread support for libavcodec */
7481 $_def_threads
7483 /* LIRC (remote control, see www.lirc.org) support: */
7484 $_def_lirc
7487 * LIRCCD (LIRC client daemon)
7488 * See http://www.dolda2000.cjb.net/~fredrik/lirccd/
7490 $_def_lircc
7492 /* DVD navigation support using libdvdnav */
7493 $_def_dvdnav
7494 $_def_dvdnav_version
7496 /* Define this to enable MPEG 1/2 image postprocessing (requires a FAST CPU!) */
7497 #define MPEG12_POSTPROC 1
7499 /* Define this to enable image postprocessing in libavcodec (requires a FAST CPU!) */
7500 $_def_ffpostprocess
7502 /* Define to include support for OpenDivx postprocessing */
7503 $_def_odivx_postprocess
7505 /* Win32 DLL support */
7506 $_def_win32
7507 #define WIN32_PATH "$_win32libdir"
7509 /* DirectShow support */
7510 $_def_dshow
7512 /* Mac OS X specific features */
7513 $_def_macosx
7514 $_def_macosx_finder_support
7515 $_def_macosx_bundle
7516 $_def_macosx_corevideo
7518 /* Build our Win32-loader */
7519 $_def_win32_loader
7521 /* ffmpeg's libavcodec support (requires libavcodec source) */
7522 $_def_libavcodec
7523 $_def_libavcodecso
7525 /* ffmpeg's libavformat support (requires libavformat source) */
7526 $_def_libavformat
7527 $_def_libavformat_win32
7529 /* Use libavcodec's decoders */
7530 #define CONFIG_DECODERS 1
7531 /* Use libavcodec's encoders */
7532 #define CONFIG_ENCODERS 1
7534 /* Use libavformat's demuxers */
7535 #define CONFIG_DEMUXERS 1
7536 /* Use libavformat's muxers */
7537 #define CONFIG_MUXERS 1
7539 #define CONFIG_MPEGAUDIO_HP 1
7541 #define CONFIG_GPL 1
7543 /* Use amr codecs from libavcodec (requires amr sources) */
7544 $_def_amr_nb
7545 $_def_amr_nb_fixed
7546 $_def_amr_wb
7548 /* Use specific codecs from libavcodec */
7549 `echo $_libavcodecs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/#define CONFIG_/;s/$/ 1/'`
7551 /* Use codec libs included in mplayer CVS / source dist: */
7552 $_def_mp3lib
7553 $_def_liba52
7554 $_def_libdts
7555 $_def_libmpeg2
7557 /* Use libfame encoder filter */
7558 $_def_fame
7560 /* XAnim DLL support */
7561 $_def_xanim
7562 /* Default search path */
7563 $_def_xanim_path
7565 /* RealPlayer DLL support */
7566 $_def_real
7567 /* Default search path */
7568 $_def_real_path
7570 /* LIVE555 Streaming Media library support */
7571 $_def_live
7573 /* Use 3dnow/mmxext/sse/mmx optimized fast memcpy() [maybe buggy... signal 4]*/
7574 $_def_fastmemcpy
7576 /* Use unrarlib for Vobsubs */
7577 $_def_unrarlib
7579 /* gui support, please do not edit this option */
7580 $_def_gui
7581 $_def_gtk2_gui
7583 /* Audio output drivers */
7584 $_def_ossaudio
7585 $_def_ossaudio_devdsp
7586 $_def_ossaudio_devmixer
7587 $_def_alsa5
7588 $_def_alsa9
7589 $_def_alsa1x
7590 $_def_arts
7591 $_def_esd
7592 $_def_esd_latency
7593 $_def_polyp
7594 $_def_jack
7595 $_def_sys_asoundlib_h
7596 $_def_alsa_asoundlib_h
7597 $_def_sunaudio
7598 $_def_sgiaudio
7599 $_def_win32waveout
7600 $_def_nas
7602 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
7603 #undef FAST_OSD
7604 #undef FAST_OSD_TABLE
7606 /* Enable TV Interface support */
7607 $_def_tv
7609 /* Enable EDL support */
7610 $_def_edl
7612 /* Enable Video 4 Linux TV interface support */
7613 $_def_tv_v4l
7615 /* Enable Video 4 Linux 2 TV interface support */
7616 $_def_tv_v4l2
7618 /* Enable *BSD BrookTree TV interface support */
7619 $_def_tv_bsdbt848
7621 /* Define if your processor stores words with the most significant
7622 byte first (like Motorola and SPARC, unlike Intel and VAX). */
7623 $_def_words_endian
7625 $_def_arch
7627 /* For the PPC. G5 has the dcbzl when in 64bit mode but G4s and earlier do not
7628 have the instruction. */
7629 $_def_dcbzl
7631 /* libmpeg2 wants ARCH_PPC and the rest of mplayer use ARCH_POWERPC,
7632 * define ARCH_PPC if ARCH_POWERPC is set to cope with that.
7634 #ifdef ARCH_POWERPC
7635 #define ARCH_PPC 1
7636 #endif
7638 /* the same issue as with ARCH_POWERPC but with ffmpeg/libavcodec */
7639 #ifdef ARCH_ARMV4L
7640 #define ARCH_ARM 1
7641 #endif
7643 /* only gcc3 can compile mvi instructions */
7644 $_def_gcc_mvi_support
7646 /* Define this for Cygwin build for win32 */
7647 $_def_confwin32
7649 /* Define this to any prefered value from 386 up to infinity with step 100 */
7650 #define __CPU__ $iproc
7652 $_mp_wordsize
7654 $_def_linux
7656 $_def_vcd
7658 #ifdef sun
7659 #define DEFAULT_CDROM_DEVICE "/vol/dev/aliases/cdrom0"
7660 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
7661 #elif defined(HPUX)
7662 #define DEFAULT_CDROM_DEVICE "/dev/cdrom"
7663 #define DEFAULT_DVD_DEVICE "/dev/dvd"
7664 #elif defined(WIN32)
7665 #define DEFAULT_CDROM_DEVICE "D:"
7666 #define DEFAULT_DVD_DEVICE "D:"
7667 #elif defined(SYS_DARWIN)
7668 #define DEFAULT_CDROM_DEVICE "/dev/disk1"
7669 #define DEFAULT_DVD_DEVICE "/dev/rdiskN"
7670 #elif defined(__OpenBSD__)
7671 #define DEFAULT_CDROM_DEVICE "/dev/rcd0a"
7672 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
7673 #elif defined(__FreeBSD__)
7674 #define DEFAULT_CDROM_DEVICE "/dev/acd0"
7675 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
7676 #else
7677 #define DEFAULT_CDROM_DEVICE "/dev/cdrom"
7678 #define DEFAULT_DVD_DEVICE "/dev/dvd"
7679 #endif
7682 /*----------------------------------------------------------------------------
7684 ** NOTE: Instead of modifying these definitions here, use the
7685 ** --enable/--disable options of the ./configure script!
7686 ** See ./configure --help for details.
7688 *---------------------------------------------------------------------------*/
7690 /* C99 lrintf function available */
7691 $_def_lrintf
7693 /* round function is available */
7694 $_def_round
7696 /* yes, we have inttypes.h */
7697 #define HAVE_INTTYPES_H 1
7699 /* int_fastXY_t emulation */
7700 $_def_fast_inttypes
7702 /* nanosleep support */
7703 $_def_nanosleep
7705 /* SMB support */
7706 $_def_smbsupport
7708 /* termcap flag for getch2.c */
7709 $_def_termcap
7711 /* termios flag for getch2.c */
7712 $_def_termios
7713 $_def_termios_h
7714 $_def_termios_sys_h
7716 /* enable PNG support */
7717 $_def_png
7719 /* enable JPEG support */
7720 $_def_jpg
7722 /* enable PNM support */
7723 $_def_pnm
7725 /* enable md5sum support */
7726 $_def_md5sum
7728 /* enable GIF support */
7729 $_def_gif
7730 $_def_gif_4
7731 $_def_gif_tvt_hack
7733 /* enable FreeType support */
7734 $_def_freetype
7736 /* enable Fontconfig support */
7737 $_def_fontconfig
7739 /* enable FriBiDi usage */
7740 $_def_fribidi
7742 /* enable ENCA usage */
7743 $_def_enca
7745 /* liblzo support */
7746 $_def_liblzo
7748 /* libmad support */
7749 $_def_mad
7751 /* enable OggVorbis support */
7752 $_def_vorbis
7754 /* enable Tremor as vorbis decoder */
7755 $_def_tremor
7757 /* enable Speex support */
7758 $_def_speex
7760 /* enable musepack support */
7761 $_def_musepack
7763 /* enable OggTheora support */
7764 $_def_theora
7766 /* enable Matroska support */
7767 $_def_matroska
7769 /* enable FAAD (AAC) support */
7770 $_def_faad
7771 $_def_faad_internal
7773 /* enable FAAC (AAC encoder) support */
7774 $_def_faac
7776 /* enable LADSPA plugin support */
7777 $_def_ladspa
7779 /* enable network */
7780 $_def_network
7782 /* enable ftp support */
7783 $_def_ftp
7785 /* enable vstream support */
7786 $_def_vstream
7788 /* enable winsock2 instead of Unix functions*/
7789 $_def_winsock2
7791 /* define this to use inet_aton() instead of inet_pton() */
7792 $_def_use_aton
7794 /* enables / disables cdparanoia support */
7795 $_def_cdparanoia
7797 /* enables / disables VIDIX usage */
7798 $_def_vidix
7800 /* enables / disables new input joystick support */
7801 $_def_joystick
7803 /* enables / disables QTX codecs */
7804 $_def_qtx
7806 /* enables / disables osd menu */
7807 $_def_menu
7809 /* enables / disables subtitles sorting */
7810 $_def_sortsub
7812 /* XMMS input plugin support */
7813 $_def_xmms
7814 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
7816 /* enables inet6 support */
7817 $_def_inet6
7819 /* do we have gethostbyname2? */
7820 $_def_gethostbyname2
7822 /* Extension defines */
7823 $_def_3dnow // only define if you have 3DNOW (AMD k6-2, AMD Athlon, iDT WinChip, etc.)
7824 $_def_3dnowex // only define if you have 3DNOWEX (AMD Athlon, etc.)
7825 $_def_mmx // only define if you have MMX (newer x86 chips, not P54C/PPro)
7826 $_def_mmx2 // only define if you have MMX2 (Athlon/PIII/4/CelII)
7827 $_def_sse // only define if you have SSE (Intel Pentium III/4 or Celeron II)
7828 $_def_sse2 // only define if you have SSE2 (Intel Pentium 4)
7829 $_def_altivec // only define if you have Altivec (G4)
7831 $_def_altivec_h // enables usage of altivec.h
7834 $_def_mlib // Sun mediaLib, available only on solaris
7835 $_def_vis // only define if you have VIS ( ultrasparc )
7837 /* libmpeg2 uses a different feature test macro for mediaLib */
7838 #ifdef HAVE_MLIB
7839 #define LIBMPEG2_MLIB 1
7840 #endif
7842 /* libvo options */
7843 #define SCREEN_SIZE_X 1
7844 #define SCREEN_SIZE_Y 1
7845 $_def_x11
7846 $_def_xv
7847 $_def_xvmc
7848 $_def_vm
7849 $_def_xf86keysym
7850 $_def_xinerama
7851 $_def_gl
7852 $_def_gl_win32
7853 $_def_dga
7854 $_def_dga2
7855 $_def_sdl
7856 /* defined for SDLlib with keyrepeat bugs (before 1.2.1) */
7857 $_def_sdlbuggy
7858 $_def_directx
7859 $_def_ggi
7860 $_def_ggiwmh
7861 $_def_3dfx
7862 $_def_tdfxfb
7863 $_def_tdfxvid
7864 $_def_directfb
7865 $_def_directfb_version
7866 $_def_zr
7867 $_def_bl
7868 $_def_mga
7869 $_def_xmga
7870 $_def_syncfb
7871 $_def_fbdev
7872 $_def_dxr2
7873 $_def_dxr3
7874 $_def_dvb
7875 $_def_dvb_in
7876 $_def_svga
7877 $_def_vesa
7878 $_def_xdpms
7879 $_def_aa
7880 $_def_caca
7881 $_def_tga
7882 $_def_toolame
7883 $_def_twolame
7885 /* used by GUI: */
7886 $_def_xshape
7888 #if defined(HAVE_GL) || defined(HAVE_X11) || defined(HAVE_XV)
7889 #define X11_FULLSCREEN 1
7890 #endif
7892 #endif /* MPLAYER_CONFIG_H */
7895 #############################################################################
7897 echo "Creating libvo/config.mak"
7898 _voobj=`echo $_vosrc | sed -e 's/\.c/\.o/g;s/\.m/\.o/g'`
7899 cat > libvo/config.mak << EOF
7900 include ../config.mak
7901 OPTIONAL_SRCS = $_vosrc
7902 OPTIONAL_OBJS = $_voobj
7905 #############################################################################
7907 echo "Creating libao2/config.mak"
7908 _aoobj=`echo $_aosrc | sed -e 's/\.c/\.o/g'`
7909 cat > libao2/config.mak << EOF
7910 include ../config.mak
7911 OPTIONAL_SRCS = $_aosrc
7912 OPTIONAL_OBJS = $_aoobj
7915 #############################################################################
7917 echo "Creating libaf/config.mak"
7918 _afobj=`echo $_afsrc | sed -e 's/\.c/\.o/g'`
7919 cat > libaf/config.mak << EOF
7920 include ../config.mak
7921 OPTIONAL_SRCS = $_afsrc
7922 OPTIONAL_OBJS = $_afobj
7925 #############################################################################
7927 cat << EOF
7929 Config files successfully generated by ./configure !
7931 Install prefix: $_prefix
7932 Data directory: $_datadir
7933 Config direct.: $_confdir
7935 Byte order: $_byte_order
7936 Optimizing for: $_optimizing
7938 Languages:
7939 Messages/GUI: $_language
7942 echo -n " Manual pages: $MAN_LANG"
7943 test "$LANGUAGES" = en && echo -n " (no localization selected, use --language=all)"
7944 echo
7946 cat << EOF
7948 Enabled optional drivers:
7949 Input: $_inputmodules
7950 Codecs: $_codecmodules
7951 Audio output: $_aomodules
7952 Video output: $_vomodules
7953 Audio filters: $_afmodules
7954 Disabled optional drivers:
7955 Input: $_noinputmodules
7956 Codecs: $_nocodecmodules
7957 Audio output: $_noaomodules
7958 Video output: $_novomodules
7959 Audio filters: $_noafmodules
7961 'config.h' and 'config.mak' contain your configuration options.
7962 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
7963 compile *** DO NOT REPORT BUGS if you tweak these files ***
7965 'make' will now compile MPlayer and 'make install' will install it.
7966 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
7971 if test "$_mtrr" = yes ; then
7972 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$_doc_lang/video.html#mtrr)"
7973 echo
7976 if test "$_sdl" = "outdated" ; then
7977 cat <<EOF
7978 You have an outdated version of libSDL installed (older than v1.1.7) and SDL
7979 support has therefore been disabled.
7981 Please upgrade to a more recent version (version 1.1.8 and above are known to
7982 work). You may get this library from: http://www.libsdl.org
7984 You need to rerun ./configure and recompile after updating SDL. If you are
7985 only interested in the libSDL audio drivers, then an older version might work.
7987 Use --enable-sdl to force usage of libSDL.
7992 if x86; then
7993 if test "$_win32" = no ; then
7994 if test "$_win32libdir" ; then
7995 echo "Failed to find a Win32 codecs dir at $_win32libdir!"
7996 else
7997 echo "Failed to find a Win32 codecs directory! (default: /usr/local/lib/codecs/)"
7999 cat << EOF
8000 Create it and copy the DLL files there! You can download the codecs from our
8001 homepage at http://www.mplayerhq.hu/MPlayer/releases/codecs/
8005 else
8006 cat <<EOF
8007 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
8008 operating system ($system_name). You may encounter a few files that cannot
8009 be played due to missing open source video/audio codec support.
8015 cat <<EOF
8017 Check $TMPLOG if you wonder why an autodetection failed (check whether
8018 the development headers/packages are installed).
8019 Do not report compilation errors if you used any of the --enable-* options
8020 (except --enable-gui and maybe --enable-debug).
8022 If you suspect a bug, please read DOCS/HTML/$_doc_lang/bugreports.html.
8026 if test "$_vidix" = no ; then
8027 cat <<EOF
8028 You've disabled VIDIX. Although it would be better to PORT it instead.
8029 Have a look at the documentation for supported cards!
8034 if test "$_warn_CFLAGS" = yes; then
8035 cat <<EOF
8037 MPlayer compilation will use the CFLAGS set by you, but:
8039 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
8041 It is strongly recommended to let MPlayer choose the correct CFLAGS!
8042 To do so, execute 'CFLAGS= ./configure <options>'
8047 # Last move:
8048 rm -f "$TMPO" "$TMPC" "$TMPS" "$TMPCPP"